3 Replies Latest reply on Sep 11, 2012 7:22 AM by tmccraw

    Intel HD3000 Access Violation on glReadPixels() with GL_STENCIL_INDEX




      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:

      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!