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