summaryrefslogtreecommitdiffstats
path: root/src/shader_recompiler/backend/glsl/emit_glsl_bitwise_conversion.cpp
diff options
context:
space:
mode:
authorameerj <52414509+ameerj@users.noreply.github.com>2021-05-22 07:52:03 +0200
committerameerj <52414509+ameerj@users.noreply.github.com>2021-07-23 03:51:36 +0200
commit5e9095ef2203e7cddcaba84fa3b01cc0d940b634 (patch)
tree3ecb46dfb2a04ed269ccb07eb85cfa7c8e44a99d /src/shader_recompiler/backend/glsl/emit_glsl_bitwise_conversion.cpp
parentglsl: Fixup build issues (diff)
downloadyuzu-5e9095ef2203e7cddcaba84fa3b01cc0d940b634.tar
yuzu-5e9095ef2203e7cddcaba84fa3b01cc0d940b634.tar.gz
yuzu-5e9095ef2203e7cddcaba84fa3b01cc0d940b634.tar.bz2
yuzu-5e9095ef2203e7cddcaba84fa3b01cc0d940b634.tar.lz
yuzu-5e9095ef2203e7cddcaba84fa3b01cc0d940b634.tar.xz
yuzu-5e9095ef2203e7cddcaba84fa3b01cc0d940b634.tar.zst
yuzu-5e9095ef2203e7cddcaba84fa3b01cc0d940b634.zip
Diffstat (limited to 'src/shader_recompiler/backend/glsl/emit_glsl_bitwise_conversion.cpp')
-rw-r--r--src/shader_recompiler/backend/glsl/emit_glsl_bitwise_conversion.cpp49
1 files changed, 49 insertions, 0 deletions
diff --git a/src/shader_recompiler/backend/glsl/emit_glsl_bitwise_conversion.cpp b/src/shader_recompiler/backend/glsl/emit_glsl_bitwise_conversion.cpp
index 73cb66674..a1e97b4cb 100644
--- a/src/shader_recompiler/backend/glsl/emit_glsl_bitwise_conversion.cpp
+++ b/src/shader_recompiler/backend/glsl/emit_glsl_bitwise_conversion.cpp
@@ -30,6 +30,30 @@ void EmitConditionRef(EmitContext& ctx, IR::Inst& inst, const IR::Value& value)
ctx.AddU1("{}={};", inst, ctx.reg_alloc.Consume(value));
}
+void EmitBitCastU16F16([[maybe_unused]] EmitContext& ctx, [[maybe_unused]] IR::Inst& inst) {
+ throw NotImplementedException("GLSL Instruction");
+}
+
+void EmitBitCastU32F32(EmitContext& ctx, IR::Inst& inst, std::string_view value) {
+ ctx.AddU32("{}=floatBitsToUint({});", inst, value);
+}
+
+void EmitBitCastU64F64(EmitContext& ctx, IR::Inst& inst, std::string_view value) {
+ ctx.AddU64("{}=doubleBitsToUint64({});", inst, value);
+}
+
+void EmitBitCastF16U16([[maybe_unused]] EmitContext& ctx, [[maybe_unused]] IR::Inst& inst) {
+ throw NotImplementedException("GLSL Instruction");
+}
+
+void EmitBitCastF32U32(EmitContext& ctx, IR::Inst& inst, std::string_view value) {
+ ctx.AddF32("{}=uintBitsToFloat({});", inst, value);
+}
+
+void EmitBitCastF64U64(EmitContext& ctx, IR::Inst& inst, std::string_view value) {
+ ctx.AddF64("{}=uint64BitsToDouble({});", inst, value);
+}
+
void EmitPackUint2x32(EmitContext& ctx, IR::Inst& inst, std::string_view value) {
ctx.AddU64("{}=packUint2x32({});", inst, value);
}
@@ -38,4 +62,29 @@ void EmitUnpackUint2x32(EmitContext& ctx, IR::Inst& inst, std::string_view value
ctx.AddU32x2("{}=unpackUint2x32({});", inst, value);
}
+void EmitPackFloat2x16([[maybe_unused]] EmitContext& ctx, [[maybe_unused]] std::string_view value) {
+ throw NotImplementedException("GLSL Instruction");
+}
+
+void EmitUnpackFloat2x16([[maybe_unused]] EmitContext& ctx,
+ [[maybe_unused]] std::string_view value) {
+ throw NotImplementedException("GLSL Instruction");
+}
+
+void EmitPackHalf2x16(EmitContext& ctx, IR::Inst& inst, std::string_view value) {
+ ctx.AddU32("{}=packHalf2x16({});", inst, value);
+}
+
+void EmitUnpackHalf2x16(EmitContext& ctx, IR::Inst& inst, std::string_view value) {
+ ctx.AddF32x2("{}=unpackHalf2x16({});", inst, value);
+}
+
+void EmitPackDouble2x32(EmitContext& ctx, IR::Inst& inst, std::string_view value) {
+ ctx.AddF64("{}=packDouble2x32({});", inst, value);
+}
+
+void EmitUnpackDouble2x32(EmitContext& ctx, IR::Inst& inst, std::string_view value) {
+ ctx.AddU32x2("{}=unpackDouble2x32({});", inst, value);
+}
+
} // namespace Shader::Backend::GLSL