summaryrefslogtreecommitdiff
path: root/src/shader_recompiler/backend
diff options
context:
space:
mode:
Diffstat (limited to 'src/shader_recompiler/backend')
-rw-r--r--src/shader_recompiler/backend/spirv/emit_spirv_convert.cpp10
1 files changed, 5 insertions, 5 deletions
diff --git a/src/shader_recompiler/backend/spirv/emit_spirv_convert.cpp b/src/shader_recompiler/backend/spirv/emit_spirv_convert.cpp
index 2c4250a0c..fd42b7a16 100644
--- a/src/shader_recompiler/backend/spirv/emit_spirv_convert.cpp
+++ b/src/shader_recompiler/backend/spirv/emit_spirv_convert.cpp
@@ -17,14 +17,14 @@ Id ExtractU16(EmitContext& ctx, Id value) {
17 17
18Id ExtractS16(EmitContext& ctx, Id value) { 18Id ExtractS16(EmitContext& ctx, Id value) {
19 if (ctx.profile.support_int16) { 19 if (ctx.profile.support_int16) {
20 return ctx.OpUConvert(ctx.S16, value); 20 return ctx.OpSConvert(ctx.S16, value);
21 } else { 21 } else {
22 return ctx.OpBitFieldSExtract(ctx.U32[1], value, ctx.u32_zero_value, ctx.Const(16u)); 22 return ctx.OpBitFieldSExtract(ctx.U32[1], value, ctx.u32_zero_value, ctx.Const(16u));
23 } 23 }
24} 24}
25 25
26Id ExtractU8(EmitContext& ctx, Id value) { 26Id ExtractU8(EmitContext& ctx, Id value) {
27 if (ctx.profile.support_int16) { 27 if (ctx.profile.support_int8) {
28 return ctx.OpUConvert(ctx.U8, value); 28 return ctx.OpUConvert(ctx.U8, value);
29 } else { 29 } else {
30 return ctx.OpBitFieldUExtract(ctx.U32[1], value, ctx.u32_zero_value, ctx.Const(8u)); 30 return ctx.OpBitFieldUExtract(ctx.U32[1], value, ctx.u32_zero_value, ctx.Const(8u));
@@ -42,7 +42,7 @@ Id ExtractS8(EmitContext& ctx, Id value) {
42 42
43Id EmitConvertS16F16(EmitContext& ctx, Id value) { 43Id EmitConvertS16F16(EmitContext& ctx, Id value) {
44 if (ctx.profile.support_int16) { 44 if (ctx.profile.support_int16) {
45 return ctx.OpUConvert(ctx.U32[1], ctx.OpConvertFToS(ctx.U16, value)); 45 return ctx.OpSConvert(ctx.U32[1], ctx.OpConvertFToS(ctx.U16, value));
46 } else { 46 } else {
47 return ExtractS16(ctx, ctx.OpConvertFToS(ctx.U32[1], value)); 47 return ExtractS16(ctx, ctx.OpConvertFToS(ctx.U32[1], value));
48 } 48 }
@@ -50,7 +50,7 @@ Id EmitConvertS16F16(EmitContext& ctx, Id value) {
50 50
51Id EmitConvertS16F32(EmitContext& ctx, Id value) { 51Id EmitConvertS16F32(EmitContext& ctx, Id value) {
52 if (ctx.profile.support_int16) { 52 if (ctx.profile.support_int16) {
53 return ctx.OpUConvert(ctx.U32[1], ctx.OpConvertFToS(ctx.U16, value)); 53 return ctx.OpSConvert(ctx.U32[1], ctx.OpConvertFToS(ctx.U16, value));
54 } else { 54 } else {
55 return ExtractS16(ctx, ctx.OpConvertFToS(ctx.U32[1], value)); 55 return ExtractS16(ctx, ctx.OpConvertFToS(ctx.U32[1], value));
56 } 56 }
@@ -58,7 +58,7 @@ Id EmitConvertS16F32(EmitContext& ctx, Id value) {
58 58
59Id EmitConvertS16F64(EmitContext& ctx, Id value) { 59Id EmitConvertS16F64(EmitContext& ctx, Id value) {
60 if (ctx.profile.support_int16) { 60 if (ctx.profile.support_int16) {
61 return ctx.OpUConvert(ctx.U32[1], ctx.OpConvertFToS(ctx.U16, value)); 61 return ctx.OpSConvert(ctx.U32[1], ctx.OpConvertFToS(ctx.U16, value));
62 } else { 62 } else {
63 return ExtractS16(ctx, ctx.OpConvertFToS(ctx.U32[1], value)); 63 return ExtractS16(ctx, ctx.OpConvertFToS(ctx.U32[1], value));
64 } 64 }