diff --git a/src/shader_recompiler/backend/spirv/emit_spirv_convert.cpp b/src/shader_recompiler/backend/spirv/emit_spirv_convert.cpp index d4ff3ff69..9fb9d44e2 100644 --- a/src/shader_recompiler/backend/spirv/emit_spirv_convert.cpp +++ b/src/shader_recompiler/backend/spirv/emit_spirv_convert.cpp @@ -272,12 +272,14 @@ Id EmitConvertU32U8(EmitContext& ctx, Id value) { } Id EmitConvertS32S8(EmitContext& ctx, Id value) { + ASSERT(ctx.profile.support_int8); // TODO const Id as_s8 = ctx.OpBitcast(ctx.S8, value); const Id as_s32 = ctx.OpSConvert(ctx.S32[1], as_s8); return ctx.OpBitcast(ctx.U32[1], as_s32); } Id EmitConvertS32S16(EmitContext& ctx, Id value) { + ASSERT(ctx.profile.support_int16); // TODO const Id as_s16 = ctx.OpBitcast(ctx.S16, value); const Id as_s32 = ctx.OpSConvert(ctx.S32[1], as_s16); return ctx.OpBitcast(ctx.U32[1], as_s32); diff --git a/src/shader_recompiler/backend/spirv/spirv_emit_context.cpp b/src/shader_recompiler/backend/spirv/spirv_emit_context.cpp index 6a731d05c..87d6730ee 100644 --- a/src/shader_recompiler/backend/spirv/spirv_emit_context.cpp +++ b/src/shader_recompiler/backend/spirv/spirv_emit_context.cpp @@ -117,7 +117,9 @@ void EmitContext::DefineArithmeticTypes() { void_id = Name(TypeVoid(), "void_id"); U1[1] = Name(TypeBool(), "bool_id"); U8 = Name(TypeUInt(8), "u8_id"); + S8 = Name(TypeSInt(8), "i8_id"); U16 = Name(TypeUInt(16), "u16_id"); + S16 = Name(TypeSInt(16), "i16_id"); if (info.uses_fp16) { F16[1] = Name(TypeFloat(16), "f16_id"); U16 = Name(TypeUInt(16), "u16_id");