OSDN Git Service

SpirvRoutine: Add activeLaneMask to conditionally load / store per lane.
authorBen Clayton <bclayton@google.com>
Tue, 12 Mar 2019 20:05:04 +0000 (20:05 +0000)
committerBen Clayton <bclayton@google.com>
Fri, 15 Mar 2019 15:29:13 +0000 (15:29 +0000)
commit49d8158b1da8b10954b25f4d5a855fefa0811193
tree91477d18e33b636154028bf4e6f12454ec8cb2ea
parent35e90e22d6da82871030a1040cb31e4a9a0317ab
SpirvRoutine: Add activeLaneMask to conditionally load / store per lane.

Use this to disable reads and writes on compute shader lanes that are not part of the subgroup.

Bug: b/126871859
Bug: b/128527271
Change-Id: Idd7ad240a8f09e6e47db34b6ed5b0ec7ba959d39
Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/27009
Presubmit-Ready: Ben Clayton <bclayton@google.com>
Kokoro-Presubmit: kokoro <noreply+kokoro@google.com>
Tested-by: Ben Clayton <bclayton@google.com>
Reviewed-by: Chris Forbes <chrisforbes@google.com>
src/Pipeline/ComputeProgram.cpp
src/Pipeline/SpirvShader.cpp
src/Pipeline/SpirvShader.hpp
tests/VulkanUnitTests/unittests.cpp