mirror of
https://gitee.com/openharmony/third_party_mesa3d
synced 2024-11-24 07:50:26 +00:00
r600/sb: schedule LDS ops in appropriate places.
So LDS ops have to be SLOT_X, and LDS OQ reads have read port restrictions so we try and force those into only having one per slot and avoiding bank swizzles. Acked-By: Roland Scheidegger <sroland@vmware.com> Signed-off-by: Dave Airlie <airlied@redhat.com>
This commit is contained in:
parent
71a50de4fc
commit
8cfec333c0
@ -711,6 +711,9 @@ public:
|
||||
mask = 0x0F;
|
||||
if (!is_cayman() && (slot_flags & AF_S))
|
||||
mask |= 0x10;
|
||||
/* Force LDS_IDX ops into SLOT_X */
|
||||
if (op_ptr->opcode[0] == -1 && ((op_ptr->opcode[1] & 0xFF) == 0x11))
|
||||
mask = 0x01;
|
||||
return mask;
|
||||
}
|
||||
|
||||
|
@ -461,6 +461,10 @@ bool alu_group_tracker::try_reserve(alu_node* n) {
|
||||
if (n->uses_ar() && has_mova)
|
||||
return false;
|
||||
|
||||
if (consumes_lds_oqa)
|
||||
return false;
|
||||
if (n->consumes_lds_oq() && available_slots != (sh.get_ctx().has_trans ? 0x1F : 0x0F))
|
||||
return false;
|
||||
for (unsigned i = 0; i < nsrc; ++i) {
|
||||
|
||||
unsigned last_id = next_id;
|
||||
|
Loading…
Reference in New Issue
Block a user