SpirvShader: Add EmitState
As we implement more complex control flow, we need to emit blocks with different active lane masks, and have finer control over block generation.
Bug: b/128527271
Change-Id: Ica51bbea196b87ab442b394f0915e9a2cd375ac0
Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/27770
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>
Reviewed-by: Nicolas Capens <nicolascapens@google.com>
diff --git a/src/Pipeline/VertexProgram.cpp b/src/Pipeline/VertexProgram.cpp
index b1ec6bf..71e48c4 100644
--- a/src/Pipeline/VertexProgram.cpp
+++ b/src/Pipeline/VertexProgram.cpp
@@ -74,7 +74,8 @@
As<Float4>(Int4(index) + Int4(0, 1, 2, 3));
}
- spirvShader->emit(&routine);
+ auto activeLaneMask = SIMD::Int(0xFFFFFFFF); // TODO: Control this.
+ spirvShader->emit(&routine, activeLaneMask);
if(currentLabel != -1)
{