GLSL compiler problem with shader storage blocks in latest Intel driver

I encountered this while running GZDoom after updating my machine to the latest Intel driver.

That program shows an error about not allowing an unsized array at the end of a shader storage buffer, complaining about

ERROR: 0:64: ‘array without size’ : supported in geometry shaders only

with a rat’s tail of other errors as a result of an apparently confused parser.

So what gives? I have been under the impression that this is a valid construct as the specification contains this example:

      // Shader storage block holding an array <fragments> declared without
      // a fixed size.  Application code should determine how many fragments
      // it wants to record and allocate a buffer appropriately.  With the 
      // "std140" layout, each FragmentData record will take 32B.  With other
      // layouts, the stride of the array is implementation-dependent.  The
      // "binding=2" layout qualifier says that the block <Fragments> should
      // be associated with shader storage buffer binding point #2.
      layout(std140, binding=2) buffer Fragments {
        FragmentData fragments[];

The buffer declaration the compiler complains about - and which compiles without problems on the same machine with the primary NVidia card being selected:

	layout(std430, binding = 1) buffer LightBufferSSO
		vec4 lights[];

Sounds like a GLSL compiler bug to me. It’s pretty easy to get the Intel compiler into a bad state where it throws a ton of errors; one shader of mine accidentally had a semicolon after an #endif; and it generated more errors than lines in the shader.

Is there any place I can report bugs to Intel?

I also ran in another one recently, that a GLSL 1.3 shader refused to accept the GL_ARB_uniform buffer extension, although it was reported as present. Compiling the same shader with GLSL set to 1.4 worked fine.

You could try posting to their Graphics Driver bug forum. Don’t know how active it is.

(I have a partner contact at Intel through my company, so I go through them)

This topic was automatically closed 183 days after the last reply. New replies are no longer allowed.