broadcom/qpu_instr: wait is not a read or write vpm instruction
authorAlejandro Piñeiro <apinheiro@igalia.com>
Wed, 26 Aug 2020 23:07:20 +0000 (01:07 +0200)
committerAlejandro Piñeiro <apinheiro@igalia.com>
Mon, 31 Aug 2020 13:02:42 +0000 (15:02 +0200)
commit7059708dcdb7d594579b941edcd03d57762183d3
tree39feb6f6ec49df4b8c744cdc7333e2fcb011f243
parentefd29d429ea71cb31641e6602a087f537124a417
broadcom/qpu_instr: wait is not a read or write vpm instruction

For several schedule restrictions, we are checking if the instruction
is using the vpm. So far it was implemented as being a read or a write
of the vpm. But VPM wait (vpmwt) is not a read or a write (it is a
wait until all pending writes finishes). This is relevant to implement
peripheral accesses restrictions, as for some cases where vpm
read|writes are allowed, vpmwt is not.

Fixes:
  dEQP-VK.binding_model.descriptorset_random.sets8.constant.ubolimitlow.sbolimitlow.sampledimglow.outimgtexlow.noiub.nouab.vert.noia.0

On the sim, as it was raising an assert for wrong peripheral access.

v2: simplify v3d_qpu_waits_vpm (Iago)

Reviewed-by: Iago Toral Quiroga <itoral@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6498>
src/broadcom/compiler/qpu_schedule.c
src/broadcom/qpu/qpu_instr.c
src/broadcom/qpu/qpu_instr.h