Previously this was left uninitialized, with exciting results
when a shader used it for buffer indexing etc.
Bug: b/
126871859
Test: dEQP-VK.*push_constant*
Test: dEQP-VK.glsl.*
Test: dEQP-VK.spirv_assembly.*
Change-Id: I57fb9e22cbe57a87072b1039a7d799bedd28ae91
Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/27628
Presubmit-Ready: Chris Forbes <chrisforbes@google.com>
Reviewed-by: Nicolas Capens <nicolascapens@google.com>
Reviewed-by: Ben Clayton <bclayton@google.com>
Tested-by: Chris Forbes <chrisforbes@google.com>
Kokoro-Presubmit: kokoro <noreply+kokoro@google.com>
}
});
+ setInputBuiltin(spv::BuiltInWorkgroupId, [&](const SpirvShader::BuiltinMapping& builtin, Array<SIMD::Float>& value)
+ {
+ for (uint32_t component = 0; component < builtin.SizeInComponents; component++)
+ {
+ value[builtin.FirstComponent + component] =
+ As<SIMD::Float>(SIMD::Int(Extract(workgroupID, component)));
+ }
+ });
+
setInputBuiltin(spv::BuiltInWorkgroupSize, [&](const SpirvShader::BuiltinMapping& builtin, Array<SIMD::Float>& value)
{
for (uint32_t component = 0; component < builtin.SizeInComponents; component++)