Add support for GLSLstd450Floor ExtInst
Bug: b/127804400
Test: dEQP-VK.glsl.operator.common_functions.floor.*
Change-Id: Iaefeef8f006673e55d4f85184d7782ac0aafb314
Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/26572
Presubmit-Ready: Chris Forbes <chrisforbes@google.com>
Reviewed-by: Ben Clayton <bclayton@google.com>
Reviewed-by: Nicolas Capens <nicolascapens@google.com>
Kokoro-Presubmit: kokoro <noreply+kokoro@google.com>
Tested-by: Chris Forbes <chrisforbes@google.com>
diff --git a/src/Pipeline/SpirvShader.cpp b/src/Pipeline/SpirvShader.cpp
index f63c9fe..6ca034f 100644
--- a/src/Pipeline/SpirvShader.cpp
+++ b/src/Pipeline/SpirvShader.cpp
@@ -1708,6 +1708,15 @@
dst.emplace(2, lhs[0] * rhs[1] - rhs[0] * lhs[1]);
break;
}
+ case GLSLstd450Floor:
+ {
+ auto src = GenericValue(this, routine, insn.word(5));
+ for (auto i = 0u; i < type.sizeInComponents; i++)
+ {
+ dst.emplace(i, Floor(src[i]));
+ }
+ break;
+ }
default:
UNIMPLEMENTED("Unhandled ExtInst %d", extInstIndex);
}