Add flags for local size values ( compute shader )
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
This commit is contained in:
parent
664ad418f8
commit
352e668a6d
5 changed files with 98 additions and 79 deletions
|
|
@ -48,6 +48,9 @@ shared vec4 s;
|
|||
layout(location = 2) shared vec4 sl; // ERROR
|
||||
shared float fs = 4.2; // ERROR
|
||||
|
||||
layout(local_size_y = 1) in;
|
||||
layout(local_size_y = 2) in; // ERROR, changing
|
||||
layout(local_size_y = 1) in;
|
||||
layout(local_size_x = 2, local_size_y = 3, local_size_z = 4) out; // ERROR
|
||||
|
||||
int arrX[gl_WorkGroupSize.x];
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue