[D3D12] DXBC: Portion of result storing

This commit is contained in:
Triang3l
2018-09-05 21:13:16 +03:00
parent 5fb3fe3ab5
commit fd27057ce1
2 changed files with 181 additions and 11 deletions

View File

@@ -187,6 +187,12 @@ class DxbcShaderTranslator : public ShaderTranslator {
// Frees the last allocated internal r# registers for later reuse.
void PopSystemTemp(uint32_t count = 1);
// Gets the x# register array used for color outputs (since colors are
// remapped).
inline uint32_t GetColorIndexableTemp() const {
return uses_register_dynamic_addressing() ? 1 : 0;
}
// Writing the prologue.
void StartVertexShader_SwapVertexIndex();
void StartVertexShader();
@@ -246,6 +252,10 @@ class DxbcShaderTranslator : public ShaderTranslator {
uint32_t select_component = 4, bool negate = false);
void UnloadDxbcSourceOperand(const DxbcSourceOperand& operand);
// Writes xyzw or xxxx of the specified r# to the destination.
void StoreResult(const InstructionResult& result, uint32_t reg,
bool replicate_x);
void ProcessVectorAluInstruction(const ParsedAluInstruction& instr);
void ProcessScalarAluInstruction(const ParsedAluInstruction& instr);