From 156c65bfa9bed19417e1641bccbaa694a45d8290 Mon Sep 17 00:00:00 2001 From: DanielSvoboda Date: Sun, 28 Jul 2024 17:46:21 -0300 Subject: [PATCH] Update emit_spirv_atomic.cpp --- .../backend/spirv/emit_spirv_atomic.cpp | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/src/shader_recompiler/backend/spirv/emit_spirv_atomic.cpp b/src/shader_recompiler/backend/spirv/emit_spirv_atomic.cpp index fe2315c1..01cf8c06 100644 --- a/src/shader_recompiler/backend/spirv/emit_spirv_atomic.cpp +++ b/src/shader_recompiler/backend/spirv/emit_spirv_atomic.cpp @@ -41,12 +41,14 @@ Id EmitImageAtomicUMax32(EmitContext& ctx, IR::Inst* inst, u32 handle, Id coords return ImageAtomicU32(ctx, inst, handle, coords, value, &Sirit::Module::OpAtomicUMax); } -Id EmitImageAtomicInc32(EmitContext& ctx, IR::Inst* inst, u32 handle, Id coords, Id value) { - return ImageAtomicU32(ctx, inst, handle, coords, value, &Sirit::Module::OpAtomicInc); +Id EmitImageAtomicInc32(EmitContext&, IR::Inst*, u32, Id, Id) { + // TODO: This is not yet implemented + throw NotImplementedException("SPIR-V Instruction"); } -Id EmitImageAtomicDec32(EmitContext& ctx, IR::Inst* inst, u32 handle, Id coords, Id value) { - return ImageAtomicU32(ctx, inst, handle, coords, value, &Sirit::Module::OpAtomicDec); +Id EmitImageAtomicDec32(EmitContext&, IR::Inst*, u32, Id, Id) { + // TODO: This is not yet implemented + throw NotImplementedException("SPIR-V Instruction"); } Id EmitImageAtomicAnd32(EmitContext& ctx, IR::Inst* inst, u32 handle, Id coords, Id value) { @@ -66,11 +68,12 @@ Id EmitImageAtomicExchange32(EmitContext& ctx, IR::Inst* inst, u32 handle, Id co } Id EmitBufferAtomicIMin32(EmitContext& ctx, IR::Inst* inst, u32 handle, Id coords, Id value) { - return ImageAtomicU32(ctx, inst, handle, coords, value, &Sirit::Module::OpAtomicMin); + return ImageAtomicU32(ctx, inst, handle, coords, value, &Sirit::Module::OpAtomicSMin); } Id EmitBufferAtomicIMax32(EmitContext& ctx, IR::Inst* inst, u32 handle, Id coords, Id value) { - return ImageAtomicU32(ctx, inst, handle, coords, value, &Sirit::Module::OpAtomicMax); + return ImageAtomicU32(ctx, inst, handle, coords, value, &Sirit::Module::OpAtomicSMax); } + } // namespace Shader::Backend::SPIRV