broadcom/compiler: allow color TLB writes in last instruction
Only Z writes are disallowed. total instructions in shared programs: 11578449 -> 11577369 (<.01%) instructions in affected programs: 38132 -> 37052 (-2.83%) helped: 1080 HURT: 0 Instructions are helped. total max-temps in shared programs: 2334416 -> 2334395 (<.01%) max-temps in affected programs: 218 -> 197 (-9.63%) helped: 21 HURT: 0 Max-temps are helped. total inst-and-stalls in shared programs: 11607890 -> 11606810 (<.01%) inst-and-stalls in affected programs: 38265 -> 37185 (-2.82%) helped: 1080 HURT: 0 Inst-and-stalls are helped. total nops in shared programs: 338316 -> 337236 (-0.32%) nops in affected programs: 2625 -> 1545 (-41.14%) helped: 1080 HURT: 0 Nops are helped. Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13964>
This commit is contained in:

committed by
Marge Bot

parent
f533d7a446
commit
6923dd687c
@@ -1757,6 +1757,7 @@ emit_frag_end(struct v3d_compile *c)
|
|||||||
inst->uniform = vir_get_uniform_index(c, QUNIFORM_CONSTANT,
|
inst->uniform = vir_get_uniform_index(c, QUNIFORM_CONSTANT,
|
||||||
tlb_specifier |
|
tlb_specifier |
|
||||||
0xffffff00);
|
0xffffff00);
|
||||||
|
inst->is_tlb_z_write = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* XXX: Performance improvement: Merge Z write and color writes TLB
|
/* XXX: Performance improvement: Merge Z write and color writes TLB
|
||||||
|
@@ -1503,10 +1503,7 @@ qpu_inst_valid_in_thrend_slot(struct v3d_compile *c,
|
|||||||
{
|
{
|
||||||
const struct v3d_qpu_instr *inst = &qinst->qpu;
|
const struct v3d_qpu_instr *inst = &qinst->qpu;
|
||||||
|
|
||||||
/* Only TLB Z writes are prohibited in the last slot, but we don't
|
if (slot == 2 && qinst->is_tlb_z_write)
|
||||||
* have those flagged so prohibit all TLB ops for now.
|
|
||||||
*/
|
|
||||||
if (slot == 2 && qpu_inst_is_tlb(inst))
|
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
if (slot > 0 && qinst->uniform != ~0)
|
if (slot > 0 && qinst->uniform != ~0)
|
||||||
|
@@ -169,6 +169,9 @@ struct qinst {
|
|||||||
* otherwise.
|
* otherwise.
|
||||||
*/
|
*/
|
||||||
int uniform;
|
int uniform;
|
||||||
|
|
||||||
|
/* If this is a a TLB Z write */
|
||||||
|
bool is_tlb_z_write;
|
||||||
};
|
};
|
||||||
|
|
||||||
enum quniform_contents {
|
enum quniform_contents {
|
||||||
|
Reference in New Issue
Block a user