mirror of
https://github.com/KytyPS5/KytyPS5.git
synced 2026-10-20 10:56:58 +02:00
35 lines
901 B
C++
35 lines
901 B
C++
#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_ */
|