mirror of
https://github.com/encounter/dawn-cmake.git
synced 2025-05-31 19:51:24 +00:00
In HLSL code, if a switch statement has only a default case, FXC will effectively ignore the code in that case. In this change, we detect this and work around it by emitting the code in the default block without the switch. Bug: tint:1188 Change-Id: I69b405cdb4c669fb093eb49aa138923419dcf8f8 Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/68440 Kokoro: Antonio Maiorano <amaiorano@google.com> Commit-Queue: Antonio Maiorano <amaiorano@google.com> Reviewed-by: Ben Clayton <bclayton@chromium.org>
30 lines
899 B
Plaintext
30 lines
899 B
Plaintext
; SPIR-V
|
|
; Version: 1.3
|
|
; Generator: Google Tint Compiler; 0
|
|
; Bound: 13
|
|
; Schema: 0
|
|
OpCapability Shader
|
|
OpMemoryModel Logical GLSL450
|
|
OpEntryPoint GLCompute %f "f"
|
|
OpExecutionMode %f LocalSize 1 1 1
|
|
OpName %f "f"
|
|
OpName %i "i"
|
|
%void = OpTypeVoid
|
|
%1 = OpTypeFunction %void
|
|
%int = OpTypeInt 32 1
|
|
%_ptr_Function_int = OpTypePointer Function %int
|
|
%8 = OpConstantNull %int
|
|
%f = OpFunction %void None %1
|
|
%4 = OpLabel
|
|
%i = OpVariable %_ptr_Function_int Function %8
|
|
%10 = OpLoad %int %i
|
|
OpSelectionMerge %9 None
|
|
OpSwitch %10 %11 0 %12
|
|
%12 = OpLabel
|
|
OpBranch %11
|
|
%11 = OpLabel
|
|
OpBranch %9
|
|
%9 = OpLabel
|
|
OpReturn
|
|
OpFunctionEnd
|