summaryrefslogtreecommitdiffstats
path: root/src/shader_recompiler/backend/spirv/emit_context.cpp
diff options
context:
space:
mode:
authorameerj <52414509+ameerj@users.noreply.github.com>2021-03-29 04:23:45 +0200
committerameerj <52414509+ameerj@users.noreply.github.com>2021-07-23 03:51:25 +0200
commit6c51f496320f698e123207c09ca61e55180a31b5 (patch)
treec5ecbbce29797fd7ba3138e11f9c364899375e2b /src/shader_recompiler/backend/spirv/emit_context.cpp
parentshader: Implement BRX (diff)
downloadyuzu-6c51f496320f698e123207c09ca61e55180a31b5.tar
yuzu-6c51f496320f698e123207c09ca61e55180a31b5.tar.gz
yuzu-6c51f496320f698e123207c09ca61e55180a31b5.tar.bz2
yuzu-6c51f496320f698e123207c09ca61e55180a31b5.tar.lz
yuzu-6c51f496320f698e123207c09ca61e55180a31b5.tar.xz
yuzu-6c51f496320f698e123207c09ca61e55180a31b5.tar.zst
yuzu-6c51f496320f698e123207c09ca61e55180a31b5.zip
Diffstat (limited to '')
-rw-r--r--src/shader_recompiler/backend/spirv/emit_context.cpp8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/shader_recompiler/backend/spirv/emit_context.cpp b/src/shader_recompiler/backend/spirv/emit_context.cpp
index 96d0e9b4d..7531f8b21 100644
--- a/src/shader_recompiler/backend/spirv/emit_context.cpp
+++ b/src/shader_recompiler/backend/spirv/emit_context.cpp
@@ -393,6 +393,14 @@ void EmitContext::DefineInputs(const Info& info) {
subgroup_local_invocation_id =
DefineInput(*this, U32[1], spv::BuiltIn::SubgroupLocalInvocationId);
}
+ if (info.uses_fswzadd) {
+ const Id f32_one{Constant(F32[1], 1.0f)};
+ const Id f32_minus_one{Constant(F32[1], -1.0f)};
+ const Id f32_zero{Constant(F32[1], 0.0f)};
+ fswzadd_lut_a = ConstantComposite(F32[4], f32_minus_one, f32_one, f32_minus_one, f32_zero);
+ fswzadd_lut_b =
+ ConstantComposite(F32[4], f32_minus_one, f32_minus_one, f32_one, f32_minus_one);
+ }
if (info.loads_position) {
const bool is_fragment{stage != Stage::Fragment};
const spv::BuiltIn built_in{is_fragment ? spv::BuiltIn::Position : spv::BuiltIn::FragCoord};