These actually mean something completely different, at least on A5xx and A6xx. The only other usage of the old flags on something older than A6xx was a typo, so I don't know if it was always this way, but at the same time it means that we don't have to worry too much about that. Reviewed-by: Eric Anholt <eric@anholt.net> Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3116> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3116>master
@@ -966,8 +966,10 @@ opcode: CP_LOAD_STATE4 (30) (4 dwords) | |||
<bitfield name="REG" low="0" high="15" type="hex"/> | |||
<!-- number of registers/dwords copied is max(CNT, 1). --> | |||
<bitfield name="CNT" low="19" high="29" type="uint"/> | |||
<bitfield name="64B" pos="30" type="boolean"/> | |||
<bitfield name="ACCUMULATE" pos="31" type="boolean"/> | |||
<!-- shift each DWORD left by 2 while copying --> | |||
<bitfield name="SHIFT_BY_2" pos="30" type="boolean"/> | |||
<!-- does the same thing as CP_MEM_TO_MEM::UNK31 --> | |||
<bitfield name="UNK31" pos="31" type="boolean"/> | |||
</reg32> | |||
<reg32 offset="1" name="1"> | |||
<bitfield name="SRC" low="0" high="31"/> |
@@ -106,7 +106,7 @@ perfcntr_resume(struct fd_acc_query *aq, struct fd_batch *batch) | |||
const struct fd_perfcntr_counter *counter = &g->counters[counter_idx]; | |||
OUT_PKT3(ring, CP_REG_TO_MEM, 2); | |||
OUT_RING(ring, counter->counter_reg_lo | CP_MEM_TO_REG_0_ACCUMULATE); | |||
OUT_RING(ring, counter->counter_reg_lo | CP_REG_TO_MEM_0_ACCUMULATE); | |||
OUT_RELOCW(ring, query_sample_idx(aq, i, start)); | |||
} | |||
} | |||
@@ -133,7 +133,7 @@ perfcntr_pause(struct fd_acc_query *aq, struct fd_batch *batch) | |||
const struct fd_perfcntr_counter *counter = &g->counters[counter_idx]; | |||
OUT_PKT3(ring, CP_REG_TO_MEM, 2); | |||
OUT_RING(ring, counter->counter_reg_lo | CP_MEM_TO_REG_0_ACCUMULATE); | |||
OUT_RING(ring, counter->counter_reg_lo | CP_REG_TO_MEM_0_ACCUMULATE); | |||
OUT_RELOCW(ring, query_sample_idx(aq, i, stop)); | |||
} | |||
} |
@@ -753,7 +753,7 @@ fd6_emit_streamout(struct fd_ringbuffer *ring, struct fd6_emit *emit, struct ir3 | |||
} else { | |||
OUT_PKT7(ring, CP_MEM_TO_REG, 3); | |||
OUT_RING(ring, CP_MEM_TO_REG_0_REG(REG_A6XX_VPC_SO_BUFFER_OFFSET(i)) | | |||
CP_MEM_TO_REG_0_64B | CP_MEM_TO_REG_0_ACCUMULATE | | |||
CP_MEM_TO_REG_0_SHIFT_BY_2 | CP_MEM_TO_REG_0_UNK31 | | |||
CP_MEM_TO_REG_0_CNT(0)); | |||
OUT_RELOC(ring, control_ptr(fd6_context(ctx), flush_base[i].offset)); | |||
} |