Graphics
Intel® graphics drivers and software, compatibility, troubleshooting, performance, and optimization
20642 Discussions

OpenGL issues

Andriy_K_
Beginner
725 Views

 I'm writing an OpenGL application for Windows, and experiencing some difficulties on Intel HD. The test machine is Windows 7 64-bit, HD 4600 (9.18.10.3165).

For some reason it is impossible to read the content of offscreene FBO with glReadPixels.

......

ActiveTexture(GL_TEXTURE0+4);
glBindTexture(GL_TEXTURE_2D_ARRAY, tex_ms);
TexImage3D(GL_TEXTURE_2D_ARRAY, 0, GL_RGBA32F, mww, mhh, 1+detail_l, 0, GL_RGBA, GL_FLOAT, 0); // viewport width & height

glTexParameteri(GL_TEXTURE_2D_ARRAY, GL_TEXTURE_MAX_LEVEL, 0);
glTexParameteri(GL_TEXTURE_2D_ARRAY, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
glTexParameteri(GL_TEXTURE_2D_ARRAY, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
glTexParameterf(GL_TEXTURE_2D_ARRAY, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
glTexParameterf(GL_TEXTURE_2D_ARRAY, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);

result = glGetError();

if (!result) {
GenFramebuffers(1, &builder_frame);

BindFramebuffer(GL_DRAW_FRAMEBUFFER, builder_frame);
BindFramebuffer(GL_READ_FRAMEBUFFER, builder_frame);
for (int ii(0);ii<=detail_l;ii++) FramebufferTextureLayer(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0+ii, tex_ms, 0, ii);


glReadBuffer(GL_COLOR_ATTACHMENT0);
}

result |= (CheckFramebufferStatus(GL_FRAMEBUFFER) != GL_FRAMEBUFFER_COMPLETE);

 ....

some rendering

...

float selection_vals[16]; 

glReadPixels(po_x, po_y, 1, 1, GL_RGBA, GL_FLOAT, selection_vals);

...

glGetError returns no_error, and selection_vals are not updated. And the same code works fine on AMD and Nvidia.

I have to mention that when read framebuffer changed to default framebuffer, glReadPixels works as it is suppose to.

 

 

So, how to resove the situation?

 

 

 

 

 

 

 

 

 

 

 

0 Kudos
2 Replies
John_H_4
Beginner
713 Views

I am also having this problem.  I have an Intel HD 4600 with the latest drivers.  I am getting an OpenGL Debug message back from the ig75icd32.dll of a GL_INVALID_OPERATION and a GLError 1282 is on the error stack.

One difference is I am using RenderBuffers not TextureBuffers.

I have this posted in  https://communities.intel.com/message/263941.  My code snippets have been reviewed as OK.

This code also works fine with NVIDEA and AMD cards.

I would like my code to work on Intel hardware so I can recommend this hardware for users of our software.

I note there has been no feedback on this since you posted in 2013.  Have you resolved it??

0 Kudos
Michael_C_Intel2
Employee
713 Views

Hi,

We recently created a sub forum for reporting suspecting driver issues. I am moving thread there. Also you will see a sticky post I created about reported graphics driver issues. If you provide the information in the format provided I can quickly create an internal ticket and discuss the issues with our OpenGL developers.

-Michael

0 Kudos
Reply