summaryrefslogtreecommitdiff
path: root/.pick_status.json
diff options
context:
space:
mode:
authorSamuel Pitoiset <samuel.pitoiset@gmail.com>2020-09-03 22:02:01 +0200
committerEric Engestrom <eric@engestrom.ch>2020-09-28 18:23:20 +0200
commitdb4a29d078fcfacb434d9c12027da9ec684d64d4 (patch)
treeaa150aad9990cd24fc1c672f4fe06c831673caec /.pick_status.json
parent4bff9ca69160ec991200aba4db292a6d88bd548a (diff)
spirv: fix emitting switch cases that directly jump to the merge block
As shown in the valid SPIR-V below, if one switch case statement directly jumps to the merge block, it has no branches at all and we have to reset the fall variable. Otherwise, it creates an unintentional fallthrough. OpSelectionMerge %97 None OpSwitch %96 %97 1 %99 2 %100 %100 = OpLabel %102 = OpAccessChain %_ptr_StorageBuffer_v4float %86 %uint_0 %uint_37 %103 = OpLoad %v4float %102 %104 = OpBitcast %v4uint %103 %105 = OpCompositeExtract %uint %104 0 %106 = OpShiftLeftLogical %uint %105 %uint_1 OpBranch %97 %99 = OpLabel OpBranch %97 %97 = OpLabel %107 = OpPhi %uint %uint_4 %75 %uint_5 %99 %106 %100 This fixes serious corruption in Horizon Zero Dawn. v2: Changed the code to skip the entire if-block instead of resetting the fallthrough variable. Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/3460 Cc: mesa-stable Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com> Signed-off-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl> Reviewed-by: Daniel Schürmann <daniel@schuermann.dev> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6590> (cherry picked from commit 57fba85da408dd4ec98508b5106c156d616b5602)
Diffstat (limited to '.pick_status.json')
-rw-r--r--.pick_status.json2
1 files changed, 1 insertions, 1 deletions
diff --git a/.pick_status.json b/.pick_status.json
index 4b56dbf333c..f6a950f52e4 100644
--- a/.pick_status.json
+++ b/.pick_status.json
@@ -5566,7 +5566,7 @@
"description": "spirv: fix emitting switch cases that directly jump to the merge block",
"nominated": true,
"nomination_type": 0,
- "resolution": 0,
+ "resolution": 1,
"master_sha": null,
"because_sha": null
},