|
|
@ -8,6 +8,72 @@ |
|
|
|
|
|
|
|
|
namespace Shader::Backend::GLASM { |
|
|
namespace Shader::Backend::GLASM { |
|
|
|
|
|
|
|
|
|
|
|
void EmitImageAtomicIAdd32([[maybe_unused]] EmitContext& ctx, [[maybe_unused]] IR::Inst& inst, |
|
|
|
|
|
[[maybe_unused]] const IR::Value& index, |
|
|
|
|
|
[[maybe_unused]] Register coords, [[maybe_unused]] ScalarU32 value) { |
|
|
|
|
|
throw NotImplementedException("GLASM instruction"); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
void EmitImageAtomicSMin32([[maybe_unused]] EmitContext& ctx, [[maybe_unused]] IR::Inst& inst, |
|
|
|
|
|
[[maybe_unused]] const IR::Value& index, |
|
|
|
|
|
[[maybe_unused]] Register coords, [[maybe_unused]] ScalarS32 value) { |
|
|
|
|
|
throw NotImplementedException("GLASM instruction"); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
void EmitImageAtomicUMin32([[maybe_unused]] EmitContext& ctx, [[maybe_unused]] IR::Inst& inst, |
|
|
|
|
|
[[maybe_unused]] const IR::Value& index, |
|
|
|
|
|
[[maybe_unused]] Register coords, [[maybe_unused]] ScalarU32 value) { |
|
|
|
|
|
throw NotImplementedException("GLASM instruction"); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
void EmitImageAtomicSMax32([[maybe_unused]] EmitContext& ctx, [[maybe_unused]] IR::Inst& inst, |
|
|
|
|
|
[[maybe_unused]] const IR::Value& index, |
|
|
|
|
|
[[maybe_unused]] Register coords, [[maybe_unused]] ScalarS32 value) { |
|
|
|
|
|
throw NotImplementedException("GLASM instruction"); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
void EmitImageAtomicUMax32([[maybe_unused]] EmitContext& ctx, [[maybe_unused]] IR::Inst& inst, |
|
|
|
|
|
[[maybe_unused]] const IR::Value& index, |
|
|
|
|
|
[[maybe_unused]] Register coords, [[maybe_unused]] ScalarU32 value) { |
|
|
|
|
|
throw NotImplementedException("GLASM instruction"); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
void EmitImageAtomicInc32([[maybe_unused]] EmitContext& ctx, [[maybe_unused]] IR::Inst& inst, |
|
|
|
|
|
[[maybe_unused]] const IR::Value& index, [[maybe_unused]] Register coords, |
|
|
|
|
|
[[maybe_unused]] ScalarU32 value) { |
|
|
|
|
|
throw NotImplementedException("GLASM instruction"); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
void EmitImageAtomicDec32([[maybe_unused]] EmitContext& ctx, [[maybe_unused]] IR::Inst& inst, |
|
|
|
|
|
[[maybe_unused]] const IR::Value& index, [[maybe_unused]] Register coords, |
|
|
|
|
|
[[maybe_unused]] ScalarU32 value) { |
|
|
|
|
|
throw NotImplementedException("GLASM instruction"); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
void EmitImageAtomicAnd32([[maybe_unused]] EmitContext& ctx, [[maybe_unused]] IR::Inst& inst, |
|
|
|
|
|
[[maybe_unused]] const IR::Value& index, [[maybe_unused]] Register coords, |
|
|
|
|
|
[[maybe_unused]] ScalarU32 value) { |
|
|
|
|
|
throw NotImplementedException("GLASM instruction"); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
void EmitImageAtomicOr32([[maybe_unused]] EmitContext& ctx, [[maybe_unused]] IR::Inst& inst, |
|
|
|
|
|
[[maybe_unused]] const IR::Value& index, [[maybe_unused]] Register coords, |
|
|
|
|
|
[[maybe_unused]] ScalarU32 value) { |
|
|
|
|
|
throw NotImplementedException("GLASM instruction"); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
void EmitImageAtomicXor32([[maybe_unused]] EmitContext& ctx, [[maybe_unused]] IR::Inst& inst, |
|
|
|
|
|
[[maybe_unused]] const IR::Value& index, [[maybe_unused]] Register coords, |
|
|
|
|
|
[[maybe_unused]] ScalarU32 value) { |
|
|
|
|
|
throw NotImplementedException("GLASM instruction"); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
void EmitImageAtomicExchange32([[maybe_unused]] EmitContext& ctx, [[maybe_unused]] IR::Inst& inst, |
|
|
|
|
|
[[maybe_unused]] const IR::Value& index, |
|
|
|
|
|
[[maybe_unused]] Register coords, [[maybe_unused]] ScalarU32 value) { |
|
|
|
|
|
throw NotImplementedException("GLASM instruction"); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
void EmitBindlessImageAtomicIAdd32(EmitContext&) { |
|
|
void EmitBindlessImageAtomicIAdd32(EmitContext&) { |
|
|
throw LogicError("Unreachable instruction"); |
|
|
throw LogicError("Unreachable instruction"); |
|
|
} |
|
|
} |
|
|
@ -96,70 +162,4 @@ void EmitBoundImageAtomicExchange32(EmitContext&) { |
|
|
throw LogicError("Unreachable instruction"); |
|
|
throw LogicError("Unreachable instruction"); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
void EmitImageAtomicIAdd32([[maybe_unused]] EmitContext& ctx, [[maybe_unused]] IR::Inst& inst, |
|
|
|
|
|
[[maybe_unused]] const IR::Value& index, |
|
|
|
|
|
[[maybe_unused]] Register coords, [[maybe_unused]] ScalarU32 value) { |
|
|
|
|
|
throw NotImplementedException("GLASM instruction"); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
void EmitImageAtomicSMin32([[maybe_unused]] EmitContext& ctx, [[maybe_unused]] IR::Inst& inst, |
|
|
|
|
|
[[maybe_unused]] const IR::Value& index, |
|
|
|
|
|
[[maybe_unused]] Register coords, [[maybe_unused]] ScalarS32 value) { |
|
|
|
|
|
throw NotImplementedException("GLASM instruction"); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
void EmitImageAtomicUMin32([[maybe_unused]] EmitContext& ctx, [[maybe_unused]] IR::Inst& inst, |
|
|
|
|
|
[[maybe_unused]] const IR::Value& index, |
|
|
|
|
|
[[maybe_unused]] Register coords, [[maybe_unused]] ScalarU32 value) { |
|
|
|
|
|
throw NotImplementedException("GLASM instruction"); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
void EmitImageAtomicSMax32([[maybe_unused]] EmitContext& ctx, [[maybe_unused]] IR::Inst& inst, |
|
|
|
|
|
[[maybe_unused]] const IR::Value& index, |
|
|
|
|
|
[[maybe_unused]] Register coords, [[maybe_unused]] ScalarS32 value) { |
|
|
|
|
|
throw NotImplementedException("GLASM instruction"); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
void EmitImageAtomicUMax32([[maybe_unused]] EmitContext& ctx, [[maybe_unused]] IR::Inst& inst, |
|
|
|
|
|
[[maybe_unused]] const IR::Value& index, |
|
|
|
|
|
[[maybe_unused]] Register coords, [[maybe_unused]] ScalarU32 value) { |
|
|
|
|
|
throw NotImplementedException("GLASM instruction"); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
void EmitImageAtomicInc32([[maybe_unused]] EmitContext& ctx, [[maybe_unused]] IR::Inst& inst, |
|
|
|
|
|
[[maybe_unused]] const IR::Value& index, [[maybe_unused]] Register coords, |
|
|
|
|
|
[[maybe_unused]] ScalarU32 value) { |
|
|
|
|
|
throw NotImplementedException("GLASM instruction"); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
void EmitImageAtomicDec32([[maybe_unused]] EmitContext& ctx, [[maybe_unused]] IR::Inst& inst, |
|
|
|
|
|
[[maybe_unused]] const IR::Value& index, [[maybe_unused]] Register coords, |
|
|
|
|
|
[[maybe_unused]] ScalarU32 value) { |
|
|
|
|
|
throw NotImplementedException("GLASM instruction"); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
void EmitImageAtomicAnd32([[maybe_unused]] EmitContext& ctx, [[maybe_unused]] IR::Inst& inst, |
|
|
|
|
|
[[maybe_unused]] const IR::Value& index, [[maybe_unused]] Register coords, |
|
|
|
|
|
[[maybe_unused]] ScalarU32 value) { |
|
|
|
|
|
throw NotImplementedException("GLASM instruction"); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
void EmitImageAtomicOr32([[maybe_unused]] EmitContext& ctx, [[maybe_unused]] IR::Inst& inst, |
|
|
|
|
|
[[maybe_unused]] const IR::Value& index, [[maybe_unused]] Register coords, |
|
|
|
|
|
[[maybe_unused]] ScalarU32 value) { |
|
|
|
|
|
throw NotImplementedException("GLASM instruction"); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
void EmitImageAtomicXor32([[maybe_unused]] EmitContext& ctx, [[maybe_unused]] IR::Inst& inst, |
|
|
|
|
|
[[maybe_unused]] const IR::Value& index, [[maybe_unused]] Register coords, |
|
|
|
|
|
[[maybe_unused]] ScalarU32 value) { |
|
|
|
|
|
throw NotImplementedException("GLASM instruction"); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
void EmitImageAtomicExchange32([[maybe_unused]] EmitContext& ctx, [[maybe_unused]] IR::Inst& inst, |
|
|
|
|
|
[[maybe_unused]] const IR::Value& index, |
|
|
|
|
|
[[maybe_unused]] Register coords, [[maybe_unused]] ScalarU32 value) { |
|
|
|
|
|
throw NotImplementedException("GLASM instruction"); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
} // namespace Shader::Backend::GLASM
|
|
|
} // namespace Shader::Backend::GLASM
|