diff options
author | Dave Airlie <[email protected]> | 2018-01-10 04:22:28 +0000 |
---|---|---|
committer | Dave Airlie <[email protected]> | 2018-01-18 03:37:27 +0000 |
commit | c314b0a27ac3f957a92863df3e5bc462432b0262 (patch) | |
tree | a9653f81bfb62cf4b0e597e42684bb8f8cb08d21 /src | |
parent | 9f3a1e9b0c75a202ede2718bd4d2b2a61b539e5d (diff) |
r600/sb: add finalising for lds output queue special values.
We need to convert these to the hw special registers.
Acked-By: Roland Scheidegger <[email protected]>
Signed-off-by: Dave Airlie <[email protected]>
Diffstat (limited to 'src')
-rw-r--r-- | src/gallium/drivers/r600/sb/sb_bc_finalize.cpp | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/src/gallium/drivers/r600/sb/sb_bc_finalize.cpp b/src/gallium/drivers/r600/sb/sb_bc_finalize.cpp index 2ec4db624a5..d377a3950a6 100644 --- a/src/gallium/drivers/r600/sb/sb_bc_finalize.cpp +++ b/src/gallium/drivers/r600/sb/sb_bc_finalize.cpp @@ -428,6 +428,18 @@ bool bc_finalizer::finalize_alu_src(alu_group_node* g, alu_node* a, alu_group_no src.chan = k.chan(); break; } + case VLK_SPECIAL_REG: + if (v->select.sel() == SV_LDS_OQA) { + src.sel = ALU_SRC_LDS_OQ_A_POP; + src.chan = 0; + } else if (v->select.sel() == SV_LDS_OQB) { + src.sel = ALU_SRC_LDS_OQ_B_POP; + src.chan = 0; + } else { + src.sel = ALU_SRC_0; + src.chan = 0; + } + break; case VLK_PARAM: case VLK_SPECIAL_CONST: src.sel = v->select.sel(); |