mirror of
https://github.com/KytyPS5/KytyPS5.git
synced 2026-10-21 03:16:54 +02:00
56 lines
3.2 KiB
C++
56 lines
3.2 KiB
C++
#ifndef EMULATOR_SRC_GRAPHICS_SHADER_RECOMPILER_SHADERIR_SHADERIRINTERNAL_H_
|
|
#define EMULATOR_SRC_GRAPHICS_SHADER_RECOMPILER_SHADERIR_SHADERIRINTERNAL_H_
|
|
|
|
#include "graphics/shader/recompiler/ir/ShaderIR.h"
|
|
|
|
namespace Libs::Graphics::ShaderRecompiler::IR {
|
|
|
|
void SetError(std::string* error, const char* message);
|
|
|
|
Opcode LookupIrOpcode(Decoder::Opcode opcode);
|
|
bool IsImplemented(Decoder::Opcode opcode);
|
|
bool IsReversedBinary(Decoder::Opcode opcode);
|
|
bool IsVectorCarryOutOpcode(Decoder::Opcode opcode);
|
|
bool ScalarResultWritesSccNonZero(Decoder::Opcode opcode);
|
|
bool ScalarResultIs64Bit(Decoder::Opcode opcode);
|
|
|
|
Operand MakeSccOperand();
|
|
Operand MakeImmediateU32(uint32_t value);
|
|
Operand MakePcRelativeU32(uint32_t value);
|
|
bool AppendScalarResultSccNonZero(const Decoder::Instruction& decoded, BasicBlock& block,
|
|
std::string* error);
|
|
uint32_t VectorByteConvertIndex(Decoder::Opcode opcode);
|
|
void CopyOperandModifiers(const Decoder::Operand& decoded, Operand& operand);
|
|
bool LowerRegisterOperand(const Decoder::Operand& decoded, Operand& operand, std::string* error);
|
|
bool LowerSourceOperand(const Decoder::Operand& decoded, Operand& operand, std::string* error);
|
|
void ApplyDppDestinationMask(const Decoder::Instruction& decoded, Operand& dst);
|
|
uint32_t ResourceIndexFromOperand(const Decoder::Operand& operand);
|
|
MemoryInfo MemoryInfoFromDecoded(const Decoder::Instruction& decoded, ResourceKind kind);
|
|
uint32_t RawScalarLoadBase(const Decoder::Operand& operand);
|
|
void ClearRegisterOffsetModifiers(Decoder::Operand& operand);
|
|
bool TryGetScalarDestinationCode(const Decoder::Operand& operand, uint32_t& code);
|
|
bool TryOffsetScalarDestination(const Decoder::Operand& operand, uint32_t index,
|
|
Decoder::Operand& result);
|
|
Decoder::Operand OffsetDecodedRegister(const Decoder::Operand& operand, uint32_t index);
|
|
MemoryInfo OffsetMemoryInfo(const Decoder::Instruction& decoded, ResourceKind kind,
|
|
uint32_t dword_index);
|
|
uint32_t TypedBufferComponentOffsetBytes(const Decoder::Instruction& decoded,
|
|
uint32_t component_index);
|
|
uint32_t TypedBufferFormatComponentCount(const Decoder::Instruction& decoded);
|
|
bool LowerMoveImmediateU32(uint32_t pc, const Decoder::Operand& dst, uint32_t value,
|
|
BasicBlock& block, std::string* error);
|
|
MemoryInfo OffsetBufferMemoryInfo(const Decoder::Instruction& decoded, uint32_t component_index);
|
|
MemoryInfo ByteOffsetMemoryInfo(const Decoder::Instruction& decoded, ResourceKind kind,
|
|
uint32_t byte_offset);
|
|
ResourceKind FlatSegmentResourceKind(uint32_t segment);
|
|
const Decoder::Operand& DecodedSourceAt(const Decoder::Instruction& decoded, uint32_t index);
|
|
Decoder::Operand M0Operand();
|
|
|
|
bool IsMemoryOpcode(Decoder::Opcode opcode);
|
|
bool LowerMemoryInstruction(const Decoder::Instruction& decoded, BasicBlock& block,
|
|
std::string* error);
|
|
|
|
} // namespace Libs::Graphics::ShaderRecompiler::IR
|
|
|
|
#endif // EMULATOR_SRC_GRAPHICS_SHADER_RECOMPILER_SHADERIR_SHADERIRINTERNAL_H_
|