diff --git a/src/graphics/shader/recompiler/ExecMask.cpp b/src/graphics/shader/recompiler/ExecMask.cpp deleted file mode 100644 index 7859fe7bb..000000000 --- a/src/graphics/shader/recompiler/ExecMask.cpp +++ /dev/null @@ -1,51 +0,0 @@ -#include "graphics/shader/recompiler/ExecMask.h" - -namespace Libs::Graphics::ShaderRecompiler::Exec { - -Mask FullMask(uint32_t wave_size) { - return {0xffffffffu, wave_size == 64u ? 0xffffffffu : 0u}; -} - -Mask ApplyWaveSize(Mask mask, uint32_t wave_size) { - const auto full = FullMask(wave_size); - mask.low &= full.low; - mask.high &= full.high; - return mask; -} - -Mask ReadExec(const State& state) { - return ApplyWaveSize(state.exec, state.wave_size); -} - -void WriteExec(State& state, Mask mask) { - state.exec = ApplyWaveSize(mask, state.wave_size); -} - -void AndExec(State& state, Mask mask) { - WriteExec(state, {state.exec.low & mask.low, state.exec.high & mask.high}); -} - -void OrExec(State& state, Mask mask) { - WriteExec(state, {state.exec.low | mask.low, state.exec.high | mask.high}); -} - -void XorExec(State& state, Mask mask) { - WriteExec(state, {state.exec.low ^ mask.low, state.exec.high ^ mask.high}); -} - -void InvertExec(State& state) { - const auto full = FullMask(state.wave_size); - WriteExec(state, {~state.exec.low & full.low, ~state.exec.high & full.high}); -} - -bool IsExecZero(const State& state) { - const auto exec = ReadExec(state); - return exec.low == 0u && exec.high == 0u; -} - -bool IsVccZero(const State& state) { - const auto vcc = ApplyWaveSize(state.vcc, state.wave_size); - return vcc.low == 0u && vcc.high == 0u; -} - -} // namespace Libs::Graphics::ShaderRecompiler::Exec diff --git a/src/graphics/shader/recompiler/ExecMask.h b/src/graphics/shader/recompiler/ExecMask.h deleted file mode 100644 index e30b42ce1..000000000 --- a/src/graphics/shader/recompiler/ExecMask.h +++ /dev/null @@ -1,34 +0,0 @@ -#ifndef EMULATOR_INCLUDE_EMULATOR_GRAPHICS_SHADER_RECOMPILER_EXECMASK_H_ -#define EMULATOR_INCLUDE_EMULATOR_GRAPHICS_SHADER_RECOMPILER_EXECMASK_H_ - -#include "common/common.h" - -namespace Libs::Graphics::ShaderRecompiler::Exec { - -struct Mask { - uint32_t low = 0; - uint32_t high = 0; -}; - -struct State { - uint32_t wave_size = 64; - Mask exec; - Mask vcc; - bool scc = false; -}; - -Mask FullMask(uint32_t wave_size); -Mask ApplyWaveSize(Mask mask, uint32_t wave_size); - -Mask ReadExec(const State& state); -void WriteExec(State& state, Mask mask); -void AndExec(State& state, Mask mask); -void OrExec(State& state, Mask mask); -void XorExec(State& state, Mask mask); -void InvertExec(State& state); -bool IsExecZero(const State& state); -bool IsVccZero(const State& state); - -} // namespace Libs::Graphics::ShaderRecompiler::Exec - -#endif /* EMULATOR_INCLUDE_EMULATOR_GRAPHICS_SHADER_RECOMPILER_EXECMASK_H_ */ diff --git a/src/graphics/shader/recompiler/backend/spirv/spirvEmitterValueAlu.cpp b/src/graphics/shader/recompiler/backend/spirv/spirvEmitterAlu.cpp similarity index 100% rename from src/graphics/shader/recompiler/backend/spirv/spirvEmitterValueAlu.cpp rename to src/graphics/shader/recompiler/backend/spirv/spirvEmitterAlu.cpp diff --git a/src/graphics/shader/recompiler/backend/spirv/spirvEmitterValueAluHelpers.cpp b/src/graphics/shader/recompiler/backend/spirv/spirvEmitterAluHelpers.cpp similarity index 100% rename from src/graphics/shader/recompiler/backend/spirv/spirvEmitterValueAluHelpers.cpp rename to src/graphics/shader/recompiler/backend/spirv/spirvEmitterAluHelpers.cpp diff --git a/src/graphics/shader/recompiler/backend/spirv/spirvEmitterValueFlow.cpp b/src/graphics/shader/recompiler/backend/spirv/spirvEmitterFlow.cpp similarity index 100% rename from src/graphics/shader/recompiler/backend/spirv/spirvEmitterValueFlow.cpp rename to src/graphics/shader/recompiler/backend/spirv/spirvEmitterFlow.cpp diff --git a/src/graphics/shader/recompiler/backend/spirv/spirvEmitterValueHelpers.cpp b/src/graphics/shader/recompiler/backend/spirv/spirvEmitterHelpers.cpp similarity index 100% rename from src/graphics/shader/recompiler/backend/spirv/spirvEmitterValueHelpers.cpp rename to src/graphics/shader/recompiler/backend/spirv/spirvEmitterHelpers.cpp diff --git a/src/graphics/shader/recompiler/backend/spirv/spirvEmitterValueImage.cpp b/src/graphics/shader/recompiler/backend/spirv/spirvEmitterImage.cpp similarity index 100% rename from src/graphics/shader/recompiler/backend/spirv/spirvEmitterValueImage.cpp rename to src/graphics/shader/recompiler/backend/spirv/spirvEmitterImage.cpp diff --git a/src/graphics/shader/recompiler/backend/spirv/spirvEmitterValueMemory.cpp b/src/graphics/shader/recompiler/backend/spirv/spirvEmitterMemory.cpp similarity index 100% rename from src/graphics/shader/recompiler/backend/spirv/spirvEmitterValueMemory.cpp rename to src/graphics/shader/recompiler/backend/spirv/spirvEmitterMemory.cpp diff --git a/src/graphics/shader/recompiler/backend/spirv/spirvEmitterValueMemoryHelpers.cpp b/src/graphics/shader/recompiler/backend/spirv/spirvEmitterMemoryHelpers.cpp similarity index 100% rename from src/graphics/shader/recompiler/backend/spirv/spirvEmitterValueMemoryHelpers.cpp rename to src/graphics/shader/recompiler/backend/spirv/spirvEmitterMemoryHelpers.cpp diff --git a/src/graphics/shader/recompiler/backend/spirv/spirvEmitterValue.cpp b/src/graphics/shader/recompiler/backend/spirv/spirvEmitterProgram.cpp similarity index 100% rename from src/graphics/shader/recompiler/backend/spirv/spirvEmitterValue.cpp rename to src/graphics/shader/recompiler/backend/spirv/spirvEmitterProgram.cpp diff --git a/tests/shaderCfgTests.cpp b/tests/shaderCfgTests.cpp index 82c254999..eea9a6b5d 100644 --- a/tests/shaderCfgTests.cpp +++ b/tests/shaderCfgTests.cpp @@ -9,7 +9,6 @@ #include "graphics/host_gpu/renderer/image/textureCommon.h" #include "graphics/host_gpu/renderer/pipeline/shaderResourceBarrier.h" #include "graphics/host_gpu/renderer/pipeline/shaderSubgroup.h" -#include "graphics/shader/recompiler/ExecMask.h" #include "graphics/shader/recompiler/ShaderRecompiler.h" #include "graphics/shader/recompiler/backend/spirv/SpirvEmitter.h" #include "graphics/shader/recompiler/backend/spirv/spirvEmitterInternal.h" @@ -7244,36 +7243,6 @@ void TestNewShaderRecompilerCfgIrreducibleDispatcher() { CheckSpirvBinaryValidates(result.spirv); } -void TestNewShaderRecompilerExecMaskHelpers() { - using namespace ShaderRecompiler::Exec; - - State wave32; - wave32.wave_size = 32; - WriteExec(wave32, FullMask(64)); - Check(ReadExec(wave32).low == 0xffffffffu && ReadExec(wave32).high == 0u, - "wave32 EXEC high half was not masked off"); - AndExec(wave32, {0x0fu, 0xffffffffu}); - Check(ReadExec(wave32).low == 0x0fu && ReadExec(wave32).high == 0u, - "wave32 AndExec did not preserve wave size"); - InvertExec(wave32); - Check(ReadExec(wave32).low == 0xfffffff0u && ReadExec(wave32).high == 0u, - "wave32 InvertExec did not preserve wave size"); - WriteExec(wave32, {0u, 0xffffffffu}); - Check(IsExecZero(wave32), "wave32 IsExecZero used inactive high lanes"); - - State wave64; - wave64.wave_size = 64; - WriteExec(wave64, FullMask(64)); - Check(ReadExec(wave64).low == 0xffffffffu && - ReadExec(wave64).high == 0xffffffffu, - "wave64 EXEC full mask was wrong"); - XorExec(wave64, {0xffffffffu, 0u}); - Check(ReadExec(wave64).low == 0u && ReadExec(wave64).high == 0xffffffffu, - "wave64 XorExec did not update both halves correctly"); - wave64.vcc = {0u, 1u}; - Check(!IsVccZero(wave64), "wave64 VCC high half was ignored"); -} - void TestComputeShaderInputWaveSize() { const auto decode_wave_size = [](uint32_t rsrc1) { const bool wave32 = (((rsrc1 >> Pm4::COMPUTE_PGM_RSRC1_W32_EN_SHIFT) &