turnip: respect buf->bo_offset in transform feedback
buf->bo->iova should always be offset by buf->bo_offset. Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14786>
This commit is contained in:
parent
cbe4943ae9
commit
9eb1592e57
|
@ -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);
|
||||
|
|
Loading…
Reference in New Issue