[Mesa-dev] [PATCH] radv: only emit ZPASS_DONE for timestamp queries on gfx queues

Dave Airlie airlied at gmail.com
Tue Sep 25 06:39:48 UTC 2018


On Tue, 25 Sep 2018 at 16:37, Andres Rodriguez <andresx7 at gmail.com> wrote:
>
> A ZPASS_DONE packet doesn't make sense for the compute queue. It will
> result in a gpu hang.
>
> This change resolves a gpu hang for SteamVR+Vega.
>
> Cc: mesa-stable at lists.freedesktop.org
> Fixes: 1f616a840eac02241c585d28e9dac8f19a297f39 "radv: emit a dummy ..."
> Signed-off-by: Andres Rodriguez <andresx7 at gmail.com>
> Reviewed-by: Dave Airlie <airlied at redhat.com>

I confirmed AMDVLK does the same and I think Marek pointed this out a
week or two ago to me, and I totally missed it.

Dave.

> ---
>  src/amd/vulkan/si_cmd_buffer.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/src/amd/vulkan/si_cmd_buffer.c b/src/amd/vulkan/si_cmd_buffer.c
> index 7ff1717022d..e5bc151f64b 100644
> --- a/src/amd/vulkan/si_cmd_buffer.c
> +++ b/src/amd/vulkan/si_cmd_buffer.c
> @@ -683,7 +683,7 @@ void si_cs_emit_write_event_eop(struct radeon_cmdbuf *cs,
>                  * counters) must immediately precede every timestamp event to
>                  * prevent a GPU hang on GFX9.
>                  */
> -               if (chip_class == GFX9) {
> +               if (chip_class == GFX9 && !is_mec) {
>                         radeon_emit(cs, PKT3(PKT3_EVENT_WRITE, 2, 0));
>                         radeon_emit(cs, EVENT_TYPE(EVENT_TYPE_ZPASS_DONE) | EVENT_INDEX(1));
>                         radeon_emit(cs, gfx9_eop_bug_va);
> --
> 2.17.1
>


More information about the mesa-dev mailing list