Module: Mesa
Branch: main
Commit: 9efb0f3c7dec36560527efe4384444b482785cb9
URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=9efb0f3c7dec36560527efe4384444b482785cb9

Author: Connor Abbott <[email protected]>
Date:   Tue Sep 12 20:58:40 2023 +0200

tu: Don't use pipeline for active stages

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25276>

---

 src/freedreno/vulkan/tu_cmd_buffer.cc | 9 +++------
 1 file changed, 3 insertions(+), 6 deletions(-)

diff --git a/src/freedreno/vulkan/tu_cmd_buffer.cc 
b/src/freedreno/vulkan/tu_cmd_buffer.cc
index a4eae51e94d..6eb4bc20b52 100644
--- a/src/freedreno/vulkan/tu_cmd_buffer.cc
+++ b/src/freedreno/vulkan/tu_cmd_buffer.cc
@@ -4871,7 +4871,6 @@ tu6_draw_common(struct tu_cmd_buffer *cmd,
 static uint32_t
 tu_draw_initiator(struct tu_cmd_buffer *cmd, enum pc_di_src_sel src_sel)
 {
-   const struct tu_pipeline *pipeline = &cmd->state.pipeline->base;
    enum pc_di_primtype primtype =
       
tu6_primtype((VkPrimitiveTopology)cmd->vk.dynamic_graphics_state.ia.primitive_topology);
 
@@ -4885,7 +4884,7 @@ tu_draw_initiator(struct tu_cmd_buffer *cmd, enum 
pc_di_src_sel src_sel)
       CP_DRAW_INDX_OFFSET_0_INDEX_SIZE((enum a4xx_index_size) 
cmd->state.index_size) |
       CP_DRAW_INDX_OFFSET_0_VIS_CULL(USE_VISIBILITY);
 
-   if (pipeline->active_stages & VK_SHADER_STAGE_GEOMETRY_BIT)
+   if (cmd->state.shaders[MESA_SHADER_GEOMETRY]->variant)
       initiator |= CP_DRAW_INDX_OFFSET_0_GS_ENABLE;
 
    const struct tu_shader *tes = cmd->state.shaders[MESA_SHADER_TESS_EVAL];
@@ -5032,8 +5031,7 @@ tu_CmdDrawMultiEXT(VkCommandBuffer commandBuffer,
    if (!drawCount)
       return;
 
-   bool has_tess =
-         cmd->state.pipeline->base.active_stages & 
VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT;
+   bool has_tess = cmd->state.shaders[MESA_SHADER_TESS_CTRL]->variant;
 
    uint32_t max_vertex_count = 0;
    if (has_tess) {
@@ -5106,8 +5104,7 @@ tu_CmdDrawMultiIndexedEXT(VkCommandBuffer commandBuffer,
    if (!drawCount)
       return;
 
-   bool has_tess =
-         cmd->state.pipeline->base.active_stages & 
VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT;
+   bool has_tess = cmd->state.shaders[MESA_SHADER_TESS_CTRL]->variant;
 
    uint32_t max_index_count = 0;
    if (has_tess) {

Reply via email to