mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-04-05 10:20:36 +02:00
tu: Template tu_CmdBeginTransformFeedbackEXT() by CHIP.
Gets the right regs for reg packing on 8xx. Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38796>
This commit is contained in:
parent
b69aa77456
commit
bfbc625f79
1 changed files with 6 additions and 4 deletions
|
|
@ -5039,6 +5039,7 @@ tu_CmdBindTransformFeedbackBuffersEXT(VkCommandBuffer commandBuffer,
|
|||
tu_cond_exec_end(cs);
|
||||
}
|
||||
|
||||
template <chip CHIP>
|
||||
VKAPI_ATTR void VKAPI_CALL
|
||||
tu_CmdBeginTransformFeedbackEXT(VkCommandBuffer commandBuffer,
|
||||
uint32_t firstCounterBuffer,
|
||||
|
|
@ -5053,11 +5054,11 @@ tu_CmdBeginTransformFeedbackEXT(VkCommandBuffer commandBuffer,
|
|||
CP_COND_REG_EXEC_0_SYSMEM |
|
||||
CP_COND_REG_EXEC_0_BINNING);
|
||||
|
||||
tu_cs_emit_regs(cs, A6XX_VPC_SO_OVERRIDE(false));
|
||||
tu_cs_emit_regs(cs, VPC_SO_OVERRIDE(CHIP, false));
|
||||
|
||||
/* TODO: only update offset for active buffers */
|
||||
for (uint32_t i = 0; i < IR3_MAX_SO_BUFFERS; i++)
|
||||
tu_cs_emit_regs(cs, A6XX_VPC_SO_BUFFER_OFFSET(i, cmd->state.streamout_offset[i]));
|
||||
tu_cs_emit_regs(cs, VPC_SO_BUFFER_OFFSET(CHIP, i, cmd->state.streamout_offset[i]));
|
||||
|
||||
for (uint32_t i = 0; i < (pCounterBuffers ? counterBufferCount : 0); i++) {
|
||||
uint32_t idx = firstCounterBuffer + i;
|
||||
|
|
@ -5070,14 +5071,14 @@ tu_CmdBeginTransformFeedbackEXT(VkCommandBuffer commandBuffer,
|
|||
VK_FROM_HANDLE(tu_buffer, buf, pCounterBuffers[i]);
|
||||
|
||||
tu_cs_emit_pkt7(cs, CP_MEM_TO_REG, 3);
|
||||
tu_cs_emit(cs, CP_MEM_TO_REG_0_REG(REG_A6XX_VPC_SO_BUFFER_OFFSET(idx)) |
|
||||
tu_cs_emit(cs, CP_MEM_TO_REG_0_REG(VPC_SO_BUFFER_OFFSET(CHIP, idx).reg) |
|
||||
CP_MEM_TO_REG_0_UNK31 |
|
||||
CP_MEM_TO_REG_0_CNT(1));
|
||||
tu_cs_emit_qw(cs, vk_buffer_address(&buf->vk, counter_buffer_offset));
|
||||
|
||||
if (offset) {
|
||||
tu_cs_emit_pkt7(cs, CP_REG_RMW, 3);
|
||||
tu_cs_emit(cs, CP_REG_RMW_0_DST_REG(REG_A6XX_VPC_SO_BUFFER_OFFSET(idx)) |
|
||||
tu_cs_emit(cs, CP_REG_RMW_0_DST_REG(VPC_SO_BUFFER_OFFSET(CHIP, idx).reg) |
|
||||
CP_REG_RMW_0_SRC1_ADD);
|
||||
tu_cs_emit(cs, 0xffffffff);
|
||||
tu_cs_emit(cs, offset);
|
||||
|
|
@ -5086,6 +5087,7 @@ tu_CmdBeginTransformFeedbackEXT(VkCommandBuffer commandBuffer,
|
|||
|
||||
tu_cond_exec_end(cs);
|
||||
}
|
||||
TU_GENX(tu_CmdBeginTransformFeedbackEXT);
|
||||
|
||||
template <chip CHIP>
|
||||
VKAPI_ATTR void VKAPI_CALL
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue