Browse Source

[maxwell] fix ordering of sizes for atomicops

Signed-off-by: lizzie <lizzie@eden-emu.dev>
atomicops-mxwell
lizzie 2 months ago
parent
commit
b4f7f64c5f
No known key found for this signature in database GPG Key ID: 287378CADCAB13
  1. 32
      src/shader_recompiler/frontend/maxwell/translate/impl/surface_atomic_operations.cpp

32
src/shader_recompiler/frontend/maxwell/translate/impl/surface_atomic_operations.cpp

@ -9,21 +9,31 @@
namespace Shader::Maxwell { namespace Shader::Maxwell {
namespace { namespace {
enum class Type : u64 { enum class Type : u64 {
_1D,
BUFFER_1D,
ARRAY_1D,
_2D,
ARRAY_2D,
_3D,
_1D = 0,
_1D_BUFFER = 1,
_1D_ARRAY = 2,
_2D = 3,
_2D_ARRAY = 4,
_3D = 5,
_UNK6 = 6,
_UNK7 = 7,
_1D = 8,
_1D_BUFFER = 9,
_1D_ARRAY = 10,
_2D = 11,
_2D_ARRAY = 12,
_3D = 13,
_UNK14 = 14,
_UNK15 = 15,
}; };
enum class Size : u64 { enum class Size : u64 {
U32, U32,
S32, S32,
U64, U64,
S64,
F32FTZRN, F32FTZRN,
F16x2FTZRN, F16x2FTZRN,
S64,
SD32, SD32,
SD64, SD64,
}; };
@ -50,13 +60,13 @@ TextureType GetType(Type type) {
switch (type) { switch (type) {
case Type::_1D: case Type::_1D:
return TextureType::Color1D; return TextureType::Color1D;
case Type::BUFFER_1D:
case Type::_1D_BUFFER:
return TextureType::Buffer; return TextureType::Buffer;
case Type::ARRAY_1D:
case Type::_1D_ARRAY:
return TextureType::ColorArray1D; return TextureType::ColorArray1D;
case Type::_2D: case Type::_2D:
return TextureType::Color2D; return TextureType::Color2D;
case Type::ARRAY_2D:
case Type::_2D_ARRAY:
return TextureType::ColorArray2D; return TextureType::ColorArray2D;
case Type::_3D: case Type::_3D:
return TextureType::Color3D; return TextureType::Color3D;
@ -67,7 +77,7 @@ TextureType GetType(Type type) {
IR::Value MakeCoords(TranslatorVisitor& v, IR::Reg reg, Type type) { IR::Value MakeCoords(TranslatorVisitor& v, IR::Reg reg, Type type) {
switch (type) { switch (type) {
case Type::_1D: case Type::_1D:
case Type::BUFFER_1D:
case Type::_1D_BUFFER:
return v.X(reg); return v.X(reg);
case Type::_2D: case Type::_2D:
return v.ir.CompositeConstruct(v.X(reg), v.X(reg + 1)); return v.ir.CompositeConstruct(v.X(reg), v.X(reg + 1));

Loading…
Cancel
Save