I am a software engineer who recently upgraded to a new laptop. In the process I discovered that one of our widely distributed applications does not function properly with my new hardware. I have a strong suspicion that it is a driver issue. My configuration is as follows:
Dell Latitude E6520
Windows 7 Enterprise (64-bit)
Intel HD 3000
Driver Version: 18.104.22.16827
Driver Date: 8/9/2012
With this configuration glReadPixels() causes an access violation when reading the full width of the stencil buffer (GL_STENCIL_INDEX). Full-width reads of the color buffer (GL_RGBA) operate as expected, and do not experience an access violation. This code executes as expected with no violation in a variety of other hardware configurations, including when executed using the NVIDIA NVS 4200M in the same machine.
The 'sbuffer' buffer below is generally 768 * 1024 bytes, with glPixelStorei() set to a pack alignment of one. I increased the size tenfold for these examples to put to rest any concerns of insufficiently sized buffers on our end:
With a 768x1024 window, the following code crashes:
glReadPixels( 0, 0, 768, 1024, GL_STENCIL_INDEX, GL_UNSIGNED_BYTE, static_cast<GLvoid*>( sbuffer ) );
When reducing only the height the code still crashes:
glReadPixels( 0, 0, 768, 1023, GL_STENCIL_INDEX, GL_UNSIGNED_BYTE, static_cast<GLvoid*>( sbuffer ) );
However, when reducing only the width, the code does not crash:
glReadPixels( 0, 0, 767, 1024, GL_STENCIL_INDEX, GL_UNSIGNED_BYTE, static_cast<GLvoid*>( sbuffer ) );
Any assistance or information on how we can help escalate the issue would be greatly appreciated. Thanks!
We have replicated the issue and are investigating the cause. I will post back once we have more information. Also, could you please verify the issue is occurring with the latest Intel HD Graphics driver available here?
Thank you for the updates. I am happy to hear you were able to replicate the issue. Unfortunately the issue is still present with the 22.214.171.12461 (126.96.36.19961) drivers you recommended.
I get the impression from your post that I had the incorrect drivers installed. I was using version 188.8.131.52.2827 (184.108.40.20627), but on closer inspection, those drivers were intended for the base HD series. Windows complained about the driver "downgrade":
"This computer currently contains driver versions newer than the versions you are about to install. Are you sure you want to overwrite the following drivers with the older versions?
Intel(R) HD Graphics 3000 (220.127.116.1127)"
I am planning to stick with the older drivers that explicitly support the HD 3000, as you suggested. The Intel Driver Update Utility confirms this is the latest driver for my chipset.