From 9eb1592e57a4433144813fd875ce9c21606c57d5 Mon Sep 17 00:00:00 2001 From: Chia-I Wu Date: Fri, 28 Jan 2022 16:53:48 -0800 Subject: [PATCH] turnip: respect buf->bo_offset in transform feedback buf->bo->iova should always be offset by buf->bo_offset. Part-of: --- src/freedreno/vulkan/tu_cmd_buffer.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/freedreno/vulkan/tu_cmd_buffer.c b/src/freedreno/vulkan/tu_cmd_buffer.c index d3d54f3b574..771be244749 100644 --- a/src/freedreno/vulkan/tu_cmd_buffer.c +++ b/src/freedreno/vulkan/tu_cmd_buffer.c @@ -2076,8 +2076,8 @@ tu_CmdBindTransformFeedbackBuffersEXT(VkCommandBuffer commandBuffer, for (uint32_t i = 0; i < bindingCount; i++) { TU_FROM_HANDLE(tu_buffer, buf, pBuffers[i]); - uint64_t iova = buf->bo->iova + pOffsets[i]; - uint32_t size = buf->bo->size - pOffsets[i]; + uint64_t iova = buf->bo->iova + buf->bo_offset + pOffsets[i]; + uint32_t size = buf->bo->size - buf->bo_offset - pOffsets[i]; uint32_t idx = i + firstBinding; if (pSizes && pSizes[i] != VK_WHOLE_SIZE) @@ -2129,7 +2129,7 @@ tu_CmdBeginTransformFeedbackEXT(VkCommandBuffer commandBuffer, tu_cs_emit(cs, CP_MEM_TO_REG_0_REG(REG_A6XX_VPC_SO_BUFFER_OFFSET(idx)) | CP_MEM_TO_REG_0_UNK31 | CP_MEM_TO_REG_0_CNT(1)); - tu_cs_emit_qw(cs, buf->bo->iova + counter_buffer_offset); + tu_cs_emit_qw(cs, buf->bo->iova + buf->bo_offset + counter_buffer_offset); if (offset) { tu_cs_emit_pkt7(cs, CP_REG_RMW, 3); @@ -2195,7 +2195,7 @@ tu_CmdEndTransformFeedbackEXT(VkCommandBuffer commandBuffer, tu_cs_emit_pkt7(cs, CP_REG_TO_MEM, 3); tu_cs_emit(cs, CP_REG_TO_MEM_0_REG(REG_A6XX_CP_SCRATCH_REG(0)) | CP_REG_TO_MEM_0_CNT(1)); - tu_cs_emit_qw(cs, buf->bo->iova + counter_buffer_offset); + tu_cs_emit_qw(cs, buf->bo->iova + buf->bo_offset + counter_buffer_offset); } tu_cond_exec_end(cs);