diff options
author | Eric Anholt <eric@anholt.net> | 2020-09-03 11:56:45 -0700 |
---|---|---|
committer | Dylan Baker <dylan.c.baker@intel.com> | 2020-09-11 10:32:43 -0700 |
commit | ae817c0f0f684db26e3c3d18a8327e7d492098c5 (patch) | |
tree | 1833c98a3454a6712f06aa71fc3e09623e35fd13 | |
parent | 102fed30b95d099f2e83260edaaacfda71c81d84 (diff) |
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: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6592>
(cherry picked from commit 802d3611dcec8102ef75fe2461340c2997af931e)
-rw-r--r-- | .pick_status.json | 2 | ||||
-rw-r--r-- | 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); |