diff options
author | Hans-Kristian Arntzen <post@arntzen-software.no> | 2020-01-09 14:10:59 +0300 |
---|---|---|
committer | Hans-Kristian Arntzen <post@arntzen-software.no> | 2020-01-09 14:35:18 +0300 |
commit | 88ddeec49a232399a700255b9539d6ffeaa30d8c (patch) | |
tree | b7a7c0594b954de1e5e2eb3bed0e80b3893ec77d /shaders-hlsl-no-opt | |
parent | 5253da9e6352d8cc34b42312a029cd3c849c50b3 (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.frag | 65 |
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 |