Purpose : According to GLSL SPEC 4.6 ( 4.4.1.4 Compute Shader Inputs), for compute shader input qualifiers, we should declare such qualifiers with same values in the same shader (local_size_x, y and z). "If such a layout qualifier is declared more than once in the same shader, all those declarations must set the same set of local work-group sizes and set them to the same values; otherwise a compile-time error results." Why this fix: If we manually set "local_size_x = 1" and directly following a declaration like "local_size_x = 2", this would not be detected. That is because currently we treat all the '1' as default value and could not restrictly detect whether those are default values. Test case: ...... layout(local_size_x=1) in; layout(local_size_x=2) in; ...... So I add test cases for this fix: 1. set local_size_y = 1 => success 2. set local_size_y = 2 => error 3. set local_size_y = 1 => success |
||
|---|---|---|
| .. | ||
| arrays.h | ||
| BaseTypes.h | ||
| Common.h | ||
| ConstantUnion.h | ||
| InfoSink.h | ||
| InitializeGlobals.h | ||
| intermediate.h | ||
| PoolAlloc.h | ||
| ResourceLimits.h | ||
| revision.h | ||
| revision.template | ||
| ShHandle.h | ||
| Types.h | ||