r600/sb: handle lds special dest registers.
authorDave Airlie <airlied@redhat.com>
Wed, 10 Jan 2018 04:25:41 +0000 (04:25 +0000)
committerDave Airlie <airlied@redhat.com>
Thu, 18 Jan 2018 03:37:39 +0000 (03:37 +0000)
This adds lds to the geom emit handling

Acked-By: Roland Scheidegger <sroland@vmware.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
src/gallium/drivers/r600/sb/sb_bc_finalize.cpp
src/gallium/drivers/r600/sb/sb_sched.cpp

index d377a3950a6d98b69dd405af30b081431d74fb3f..099b295f18f34621d5562c6de0e1fe06900e5481 100644 (file)
@@ -294,7 +294,7 @@ void bc_finalizer::finalize_alu_group(alu_group_node* g, node *prev_node) {
                value *d = n->dst.empty() ? NULL : n->dst[0];
 
                if (d && d->is_special_reg()) {
-                       assert((n->bc.op_ptr->flags & AF_MOVA) || d->is_geometry_emit());
+                       assert((n->bc.op_ptr->flags & AF_MOVA) || d->is_geometry_emit() || d->is_lds_oq() || d->is_lds_access());
                        d = NULL;
                }
 
index 4158317765f0fd059a4a33a1e071a1cdfdcdffcf..6d7ab671ff5ae33f67f87f4ef7557f64eff93741 100644 (file)
@@ -1663,7 +1663,7 @@ unsigned post_scheduler::try_add_instruction(node *n) {
                value *d = a->dst.empty() ? NULL : a->dst[0];
 
                if (d && d->is_special_reg()) {
-                       assert((a->bc.op_ptr->flags & AF_MOVA) || d->is_geometry_emit());
+                       assert((a->bc.op_ptr->flags & AF_MOVA) || d->is_geometry_emit() || d->is_lds_oq() || d->is_lds_access());
                        d = NULL;
                }