summaryrefslogtreecommitdiffstats
path: root/src/gallium/drivers/r600/sb
diff options
context:
space:
mode:
authorDave Airlie <[email protected]>2018-01-10 04:22:28 +0000
committerDave Airlie <[email protected]>2018-01-18 03:37:27 +0000
commitc314b0a27ac3f957a92863df3e5bc462432b0262 (patch)
treea9653f81bfb62cf4b0e597e42684bb8f8cb08d21 /src/gallium/drivers/r600/sb
parent9f3a1e9b0c75a202ede2718bd4d2b2a61b539e5d (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/gallium/drivers/r600/sb')
-rw-r--r--src/gallium/drivers/r600/sb/sb_bc_finalize.cpp12
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();