Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/KhronosGroup/SPIRV-Cross.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHans-Kristian Arntzen <post@arntzen-software.no>2020-01-09 14:10:59 +0300
committerHans-Kristian Arntzen <post@arntzen-software.no>2020-01-09 14:35:18 +0300
commit88ddeec49a232399a700255b9539d6ffeaa30d8c (patch)
treeb7a7c0594b954de1e5e2eb3bed0e80b3893ec77d /shaders-hlsl-no-opt
parent5253da9e6352d8cc34b42312a029cd3c849c50b3 (diff)
HLSL: Deal with casting for WaveActiveMin/Max.
Diffstat (limited to 'shaders-hlsl-no-opt')
-rw-r--r--shaders-hlsl-no-opt/asm/frag/subgroup-arithmetic-cast.invalid.nofxc.sm60.asm.frag65
1 files changed, 65 insertions, 0 deletions
diff --git a/shaders-hlsl-no-opt/asm/frag/subgroup-arithmetic-cast.invalid.nofxc.sm60.asm.frag b/shaders-hlsl-no-opt/asm/frag/subgroup-arithmetic-cast.invalid.nofxc.sm60.asm.frag
new file mode 100644
index 00000000..a9b34893
--- /dev/null
+++ b/shaders-hlsl-no-opt/asm/frag/subgroup-arithmetic-cast.invalid.nofxc.sm60.asm.frag
@@ -0,0 +1,65 @@
+; SPIR-V
+; Version: 1.3
+; Generator: Khronos Glslang Reference Front End; 8
+; Bound: 78
+; Schema: 0
+ OpCapability Shader
+ OpCapability GroupNonUniform
+ OpCapability GroupNonUniformArithmetic
+ OpCapability GroupNonUniformClustered
+ %1 = OpExtInstImport "GLSL.std.450"
+ OpMemoryModel Logical GLSL450
+ OpEntryPoint Fragment %main "main" %index %FragColor
+ OpExecutionMode %main OriginUpperLeft
+ OpSource GLSL 450
+ OpSourceExtension "GL_KHR_shader_subgroup_arithmetic"
+ OpSourceExtension "GL_KHR_shader_subgroup_basic"
+ OpSourceExtension "GL_KHR_shader_subgroup_clustered"
+ OpName %main "main"
+ OpName %index "index"
+ OpName %FragColor "FragColor"
+ OpDecorate %index Flat
+ OpDecorate %index Location 0
+ OpDecorate %FragColor Location 0
+ %void = OpTypeVoid
+ %3 = OpTypeFunction %void
+ %uint = OpTypeInt 32 0
+%_ptr_Function_uint = OpTypePointer Function %uint
+ %uint_0 = OpConstant %uint 0
+ %int = OpTypeInt 32 1
+%_ptr_Input_int = OpTypePointer Input %int
+ %index = OpVariable %_ptr_Input_int Input
+ %uint_3 = OpConstant %uint 3
+ %uint_4 = OpConstant %uint 4
+%_ptr_Output_uint = OpTypePointer Output %uint
+ %FragColor = OpVariable %_ptr_Output_uint Output
+ %main = OpFunction %void None %3
+ %5 = OpLabel
+ %i = OpLoad %int %index
+ %u = OpBitcast %uint %i
+ %res0 = OpGroupNonUniformSMin %uint %uint_3 Reduce %i
+ %res1 = OpGroupNonUniformSMax %uint %uint_3 Reduce %u
+ %res2 = OpGroupNonUniformUMin %uint %uint_3 Reduce %i
+ %res3 = OpGroupNonUniformUMax %uint %uint_3 Reduce %u
+ ;%res4 = OpGroupNonUniformSMax %uint %uint_3 InclusiveScan %i
+ ;%res5 = OpGroupNonUniformSMin %uint %uint_3 InclusiveScan %u
+ ;%res6 = OpGroupNonUniformUMax %uint %uint_3 ExclusiveScan %i
+ ;%res7 = OpGroupNonUniformUMin %uint %uint_3 ExclusiveScan %u
+ ;%res8 = OpGroupNonUniformSMin %uint %uint_3 ClusteredReduce %i %uint_4
+ ;%res9 = OpGroupNonUniformSMax %uint %uint_3 ClusteredReduce %u %uint_4
+ ;%res10 = OpGroupNonUniformUMin %uint %uint_3 ClusteredReduce %i %uint_4
+ ;%res11 = OpGroupNonUniformUMax %uint %uint_3 ClusteredReduce %u %uint_4
+ OpStore %FragColor %res0
+ OpStore %FragColor %res1
+ OpStore %FragColor %res2
+ OpStore %FragColor %res3
+ ;OpStore %FragColor %res4
+ ;OpStore %FragColor %res5
+ ;OpStore %FragColor %res6
+ ;OpStore %FragColor %res7
+ ;OpStore %FragColor %res8
+ ;OpStore %FragColor %res9
+ ;OpStore %FragColor %res10
+ ;OpStore %FragColor %res11
+ OpReturn
+ OpFunctionEnd