[D3D12] DXBC internal registers

This commit is contained in:
Triang3l
2018-09-02 16:50:00 +03:00
parent 1413a7d206
commit 5dcff19efc
2 changed files with 39 additions and 2 deletions

View File

@@ -180,7 +180,7 @@ class DxbcShaderTranslator : public ShaderTranslator {
}
// Allocates a new r# register for internal use and returns its index.
uint32_t PushSystemTemp();
uint32_t PushSystemTemp(bool zero = false);
// Frees the last allocated internal r# registers for later reuse.
void PopSystemTemp(uint32_t count = 1);
@@ -327,6 +327,15 @@ class DxbcShaderTranslator : public ShaderTranslator {
// translation (for the declaration).
uint32_t system_temp_count_max_;
// Temporary register ID for previous scalar result, program counter,
// predicate and absolute address register.
uint32_t system_temp_ps_pc_p0_a0_;
// Loop index stack - .x is the active loop, shifted right to .yzw on push.
uint32_t system_temp_aL_;
// Loop counter stack, .x is the active loop. Represents number of times
// remaining to loop.
uint32_t system_temp_loop_count_;
bool writes_depth_;
// The STAT chunk (based on Wine d3dcompiler_parse_stat).