Add more dedicated test shader for defer-parens.
This commit is contained in:
parent
03a26e593d
commit
b8b202f489
21
reference/shaders/comp/defer-parens.comp
Normal file
21
reference/shaders/comp/defer-parens.comp
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
#version 310 es
|
||||||
|
layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
|
||||||
|
|
||||||
|
layout(binding = 0, std430) buffer SSBO
|
||||||
|
{
|
||||||
|
vec4 data;
|
||||||
|
int index;
|
||||||
|
} _13;
|
||||||
|
|
||||||
|
void main()
|
||||||
|
{
|
||||||
|
vec4 d = _13.data;
|
||||||
|
_13.data = vec4(d.x, d.yz + vec2(10.0), d.w);
|
||||||
|
_13.data = (d + d) + d;
|
||||||
|
_13.data = (d.yz + vec2(10.0)).xxyy;
|
||||||
|
float t = (d.yz + vec2(10.0)).y;
|
||||||
|
_13.data = vec4(t);
|
||||||
|
t = (d.zw + vec2(10.0))[_13.index];
|
||||||
|
_13.data = vec4(t);
|
||||||
|
}
|
||||||
|
|
30
shaders/comp/defer-parens.comp
Normal file
30
shaders/comp/defer-parens.comp
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
#version 310 es
|
||||||
|
layout(local_size_x = 1) in;
|
||||||
|
|
||||||
|
layout(binding = 0, std430) buffer SSBO
|
||||||
|
{
|
||||||
|
vec4 data;
|
||||||
|
int index;
|
||||||
|
};
|
||||||
|
|
||||||
|
void main()
|
||||||
|
{
|
||||||
|
// Tests defer-parens behavior where a binary expression is OpCompositeExtracted chained together
|
||||||
|
// with an OpCompositeConstruct optimization.
|
||||||
|
vec4 d = data;
|
||||||
|
data = vec4(d.x, d.yz + 10.0, d.w);
|
||||||
|
|
||||||
|
// Verify binary ops.
|
||||||
|
data = d + d + d;
|
||||||
|
|
||||||
|
// Verify swizzles.
|
||||||
|
data = (d.yz + 10.0).xxyy;
|
||||||
|
|
||||||
|
// OpCompositeExtract
|
||||||
|
float t = (d.yz + 10.0).y;
|
||||||
|
data = vec4(t);
|
||||||
|
|
||||||
|
// OpVectorExtractDynamic
|
||||||
|
t = (d.zw + 10.0)[index];
|
||||||
|
data = vec4(t);
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user