summaryrefslogtreecommitdiff
path: root/src/shader_recompiler/backend/spirv
diff options
context:
space:
mode:
authorGravatar ameerj2021-03-01 15:58:16 -0500
committerGravatar ameerj2021-07-22 21:51:23 -0400
commit103b9da4f7115ff47eee52d0dbd31b5b7a18b257 (patch)
tree52e00b1766326559fad61cefa460b6666d2792c9 /src/shader_recompiler/backend/spirv
parentshader: Implement ISET, add common_funcs (diff)
downloadyuzu-103b9da4f7115ff47eee52d0dbd31b5b7a18b257.tar.gz
yuzu-103b9da4f7115ff47eee52d0dbd31b5b7a18b257.tar.xz
yuzu-103b9da4f7115ff47eee52d0dbd31b5b7a18b257.zip
shader: Implement FLO
Diffstat (limited to 'src/shader_recompiler/backend/spirv')
-rw-r--r--src/shader_recompiler/backend/spirv/emit_spirv.h4
-rw-r--r--src/shader_recompiler/backend/spirv/emit_spirv_integer.cpp12
2 files changed, 13 insertions, 3 deletions
diff --git a/src/shader_recompiler/backend/spirv/emit_spirv.h b/src/shader_recompiler/backend/spirv/emit_spirv.h
index 4d00b235d..5446d6ab6 100644
--- a/src/shader_recompiler/backend/spirv/emit_spirv.h
+++ b/src/shader_recompiler/backend/spirv/emit_spirv.h
@@ -229,7 +229,9 @@ Id EmitBitFieldSExtract(EmitContext& ctx, Id base, Id offset, Id count);
229Id EmitBitFieldUExtract(EmitContext& ctx, Id base, Id offset, Id count); 229Id EmitBitFieldUExtract(EmitContext& ctx, Id base, Id offset, Id count);
230Id EmitBitReverse32(EmitContext& ctx, Id value); 230Id EmitBitReverse32(EmitContext& ctx, Id value);
231Id EmitBitCount32(EmitContext& ctx, Id value); 231Id EmitBitCount32(EmitContext& ctx, Id value);
232Id EmitBitwiseNot32(EmitContext& ctx, Id a); 232Id EmitBitwiseNot32(EmitContext& ctx, Id value);
233Id EmitFindSMsb32(EmitContext& ctx, Id value);
234Id EmitFindUMsb32(EmitContext& ctx, Id value);
233Id EmitSMin32(EmitContext& ctx, Id a, Id b); 235Id EmitSMin32(EmitContext& ctx, Id a, Id b);
234Id EmitUMin32(EmitContext& ctx, Id a, Id b); 236Id EmitUMin32(EmitContext& ctx, Id a, Id b);
235Id EmitSMax32(EmitContext& ctx, Id a, Id b); 237Id EmitSMax32(EmitContext& ctx, Id a, Id b);
diff --git a/src/shader_recompiler/backend/spirv/emit_spirv_integer.cpp b/src/shader_recompiler/backend/spirv/emit_spirv_integer.cpp
index 5bdd943a4..162fb6a91 100644
--- a/src/shader_recompiler/backend/spirv/emit_spirv_integer.cpp
+++ b/src/shader_recompiler/backend/spirv/emit_spirv_integer.cpp
@@ -110,8 +110,16 @@ Id EmitBitCount32(EmitContext& ctx, Id value) {
110 return ctx.OpBitCount(ctx.U32[1], value); 110 return ctx.OpBitCount(ctx.U32[1], value);
111} 111}
112 112
113Id EmitBitwiseNot32(EmitContext& ctx, Id a) { 113Id EmitBitwiseNot32(EmitContext& ctx, Id value) {
114 return ctx.OpNot(ctx.U32[1], a); 114 return ctx.OpNot(ctx.U32[1], value);
115}
116
117Id EmitFindSMsb32(EmitContext& ctx, Id value) {
118 return ctx.OpFindSMsb(ctx.U32[1], value);
119}
120
121Id EmitFindUMsb32(EmitContext& ctx, Id value) {
122 return ctx.OpFindUMsb(ctx.U32[1], value);
115} 123}
116 124
117Id EmitSMin32(EmitContext& ctx, Id a, Id b) { 125Id EmitSMin32(EmitContext& ctx, Id a, Id b) {