radv: Use a shader for occlusion CmdCopyQueryPoolResults.
authorBas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Sun, 9 Apr 2017 20:35:32 +0000 (22:35 +0200)
committerBas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Tue, 11 Apr 2017 07:33:17 +0000 (09:33 +0200)
commit8911dd6d1216cfb7b90df69d3576e11d4c619f31
tree2afab394b771ad9d103a7ec6ee36ae36cb6a9da9
parentce0c8cf941e38b9d8b4d3284514feb36453d5e83
radv: Use a shader for occlusion CmdCopyQueryPoolResults.

Use the new occlusion query copy shader.

We don't use the shader for the waiting as a polling loop ineracts badly
with having caching enabled. I noticed on my GPU (Tonga) that the values
are written out in order, so I just use a WAIT_REG_MEM on the last value.

If it turns out other chips don't do that we may need to look a bit more
into this. Having 8 WAIT_REG_MEM packets per query doesn't sound ideal.

This also restricts the availability word in the pool to timestamp queries
only, as occlusion queries don't use it, and pipeline statistic queries
likely won't either.

Signed-off-by: Bas Nieuwenhuizen <basni@google.com>
Reviewed-by: Dave Airlie <airlied@redhat.com>
src/amd/vulkan/radv_query.c