PDA

View Full Version : GLSL compiler problem with shader storage blocks in latest Intel driver



Nikki_k
12-01-2014, 01:53 AM
I encountered this while running GZDoom (http://forum.drdteam.org/viewtopic.php?f=23&t=6398) 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[];
};

malexander
12-02-2014, 01:37 PM
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.

Nikki_k
12-03-2014, 01:48 AM
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.

malexander
12-03-2014, 07:19 AM
You could try posting to their Graphics Driver bug forum. Don't know how active it is.

https://software.intel.com/en-us/forums/graphics-driver-bug-reporting

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