diff options
author | Hans-Kristian Arntzen <post@arntzen-software.no> | 2021-04-07 15:35:00 +0300 |
---|---|---|
committer | Hans-Kristian Arntzen <post@arntzen-software.no> | 2021-04-19 13:10:49 +0300 |
commit | ff3f5bcba5c9a33f5c217493118dd7eb1cfc06a9 (patch) | |
tree | ed9265459a9f9f337e84b88ac2d42788ae809c33 /shaders-msl | |
parent | 6ecdd64a91b59cac2375e27dca9d1cd08a41e225 (diff) |
MSL: Handle masking of builtin control points.
Diffstat (limited to 'shaders-msl')
4 files changed, 116 insertions, 0 deletions
diff --git a/shaders-msl/masking/write-outputs.mask-location-0.tesc b/shaders-msl/masking/write-outputs.mask-location-0.tesc new file mode 100644 index 00000000..9f3ca9fc --- /dev/null +++ b/shaders-msl/masking/write-outputs.mask-location-0.tesc @@ -0,0 +1,29 @@ +#version 450 + +layout(vertices = 4) out; + +layout(location = 0) out vec4 v0[]; +layout(location = 1) patch out vec4 v1[2]; +layout(location = 3) patch out vec4 v3; + +void write_in_func() +{ + v0[gl_InvocationID] = vec4(1.0); + v0[gl_InvocationID].z = 3.0; + if (gl_InvocationID == 0) + { + v1[0] = vec4(2.0); + v1[0].x = 3.0; + v1[1] = vec4(2.0); + v1[1].x = 5.0; + } + v3 = vec4(5.0); + gl_out[gl_InvocationID].gl_Position = vec4(10.0); + gl_out[gl_InvocationID].gl_Position.z = 20.0; + gl_out[gl_InvocationID].gl_PointSize = 40.0; +} + +void main() +{ + write_in_func(); +} diff --git a/shaders-msl/masking/write-outputs.mask-location-1.tesc b/shaders-msl/masking/write-outputs.mask-location-1.tesc new file mode 100644 index 00000000..9f3ca9fc --- /dev/null +++ b/shaders-msl/masking/write-outputs.mask-location-1.tesc @@ -0,0 +1,29 @@ +#version 450 + +layout(vertices = 4) out; + +layout(location = 0) out vec4 v0[]; +layout(location = 1) patch out vec4 v1[2]; +layout(location = 3) patch out vec4 v3; + +void write_in_func() +{ + v0[gl_InvocationID] = vec4(1.0); + v0[gl_InvocationID].z = 3.0; + if (gl_InvocationID == 0) + { + v1[0] = vec4(2.0); + v1[0].x = 3.0; + v1[1] = vec4(2.0); + v1[1].x = 5.0; + } + v3 = vec4(5.0); + gl_out[gl_InvocationID].gl_Position = vec4(10.0); + gl_out[gl_InvocationID].gl_Position.z = 20.0; + gl_out[gl_InvocationID].gl_PointSize = 40.0; +} + +void main() +{ + write_in_func(); +} diff --git a/shaders-msl/masking/write-outputs.mask-point-size.tesc b/shaders-msl/masking/write-outputs.mask-point-size.tesc new file mode 100644 index 00000000..9f3ca9fc --- /dev/null +++ b/shaders-msl/masking/write-outputs.mask-point-size.tesc @@ -0,0 +1,29 @@ +#version 450 + +layout(vertices = 4) out; + +layout(location = 0) out vec4 v0[]; +layout(location = 1) patch out vec4 v1[2]; +layout(location = 3) patch out vec4 v3; + +void write_in_func() +{ + v0[gl_InvocationID] = vec4(1.0); + v0[gl_InvocationID].z = 3.0; + if (gl_InvocationID == 0) + { + v1[0] = vec4(2.0); + v1[0].x = 3.0; + v1[1] = vec4(2.0); + v1[1].x = 5.0; + } + v3 = vec4(5.0); + gl_out[gl_InvocationID].gl_Position = vec4(10.0); + gl_out[gl_InvocationID].gl_Position.z = 20.0; + gl_out[gl_InvocationID].gl_PointSize = 40.0; +} + +void main() +{ + write_in_func(); +} diff --git a/shaders-msl/masking/write-outputs.mask-position.tesc b/shaders-msl/masking/write-outputs.mask-position.tesc new file mode 100644 index 00000000..9f3ca9fc --- /dev/null +++ b/shaders-msl/masking/write-outputs.mask-position.tesc @@ -0,0 +1,29 @@ +#version 450 + +layout(vertices = 4) out; + +layout(location = 0) out vec4 v0[]; +layout(location = 1) patch out vec4 v1[2]; +layout(location = 3) patch out vec4 v3; + +void write_in_func() +{ + v0[gl_InvocationID] = vec4(1.0); + v0[gl_InvocationID].z = 3.0; + if (gl_InvocationID == 0) + { + v1[0] = vec4(2.0); + v1[0].x = 3.0; + v1[1] = vec4(2.0); + v1[1].x = 5.0; + } + v3 = vec4(5.0); + gl_out[gl_InvocationID].gl_Position = vec4(10.0); + gl_out[gl_InvocationID].gl_Position.z = 20.0; + gl_out[gl_InvocationID].gl_PointSize = 40.0; +} + +void main() +{ + write_in_func(); +} |