From ae817c0f0f684db26e3c3d18a8327e7d492098c5 Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Thu, 3 Sep 2020 11:56:45 -0700 Subject: [PATCH] turnip: Fix truncation of iovas to 32 bits in queries. Fixes regression when switching to msm-next-pgtables. Fixes: e34b0d65f971 ("turnip: Implement and enable VK_QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT") Part-of: (cherry picked from commit 802d3611dcec8102ef75fe2461340c2997af931e) --- .pick_status.json | 2 +- src/freedreno/vulkan/tu_query.c | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/.pick_status.json b/.pick_status.json index 2dcf2e376ee..1e1f87e5e81 100644 --- a/.pick_status.json +++ b/.pick_status.json @@ -751,7 +751,7 @@ "description": "turnip: Fix truncation of iovas to 32 bits in queries.", "nominated": true, "nomination_type": 1, - "resolution": 0, + "resolution": 1, "master_sha": null, "because_sha": "e34b0d65f9715b9376408a769e2005bb579128f8" }, diff --git a/src/freedreno/vulkan/tu_query.c b/src/freedreno/vulkan/tu_query.c index 9b013060cb3..697387cc2d8 100644 --- a/src/freedreno/vulkan/tu_query.c +++ b/src/freedreno/vulkan/tu_query.c @@ -532,7 +532,7 @@ emit_begin_occlusion_query(struct tu_cmd_buffer *cmdbuf, A6XX_RB_SAMPLE_COUNT_CONTROL(.copy = true)); tu_cs_emit_regs(cs, - A6XX_RB_SAMPLE_COUNT_ADDR_LO(begin_iova)); + A6XX_RB_SAMPLE_COUNT_ADDR(.qword = begin_iova)); tu_cs_emit_pkt7(cs, CP_EVENT_WRITE, 1); tu_cs_emit(cs, ZPASS_DONE); @@ -547,7 +547,7 @@ emit_begin_xfb_query(struct tu_cmd_buffer *cmdbuf, struct tu_cs *cs = cmdbuf->state.pass ? &cmdbuf->draw_cs : &cmdbuf->cs; uint64_t begin_iova = primitive_query_iova(pool, query, begin[0], 0); - tu_cs_emit_regs(cs, A6XX_VPC_SO_STREAM_COUNTS_LO(begin_iova)); + tu_cs_emit_regs(cs, A6XX_VPC_SO_STREAM_COUNTS(.qword = begin_iova)); tu6_emit_event_write(cmdbuf, cs, WRITE_PRIMITIVE_COUNTS); } @@ -640,7 +640,7 @@ emit_end_occlusion_query(struct tu_cmd_buffer *cmdbuf, A6XX_RB_SAMPLE_COUNT_CONTROL(.copy = true)); tu_cs_emit_regs(cs, - A6XX_RB_SAMPLE_COUNT_ADDR_LO(end_iova)); + A6XX_RB_SAMPLE_COUNT_ADDR(.qword = end_iova)); tu_cs_emit_pkt7(cs, CP_EVENT_WRITE, 1); tu_cs_emit(cs, ZPASS_DONE); @@ -694,7 +694,7 @@ emit_end_xfb_query(struct tu_cmd_buffer *cmdbuf, uint64_t end_generated_iova = primitive_query_iova(pool, query, end[stream_id], 1); uint64_t available_iova = query_available_iova(pool, query); - tu_cs_emit_regs(cs, A6XX_VPC_SO_STREAM_COUNTS_LO(end_iova)); + tu_cs_emit_regs(cs, A6XX_VPC_SO_STREAM_COUNTS(.qword = end_iova)); tu6_emit_event_write(cmdbuf, cs, WRITE_PRIMITIVE_COUNTS); tu_cs_emit_wfi(cs);