From 2bfcd291553b2b3088e04637a27872443e9e42ef Mon Sep 17 00:00:00 2001 From: Lionel Landwerlin Date: Mon, 4 Jul 2022 10:05:21 +0300 Subject: [PATCH] anv: move restart index to gfx state Signed-off-by: Lionel Landwerlin Reviewed-by: Jason Ekstrand Part-of: --- src/intel/vulkan/anv_cmd_buffer.c | 2 +- src/intel/vulkan/anv_private.h | 3 ++- src/intel/vulkan/genX_cmd_buffer.c | 2 +- src/intel/vulkan/gfx7_cmd_buffer.c | 2 +- src/intel/vulkan/gfx8_cmd_buffer.c | 2 +- 5 files changed, 6 insertions(+), 5 deletions(-) diff --git a/src/intel/vulkan/anv_cmd_buffer.c b/src/intel/vulkan/anv_cmd_buffer.c index 9f15ef75f4a..a83cc64a1ff 100644 --- a/src/intel/vulkan/anv_cmd_buffer.c +++ b/src/intel/vulkan/anv_cmd_buffer.c @@ -258,8 +258,8 @@ anv_cmd_state_init(struct anv_cmd_buffer *cmd_buffer) memset(state, 0, sizeof(*state)); state->current_pipeline = UINT32_MAX; - state->restart_index = UINT32_MAX; anv_dynamic_state_init(&state->gfx.dynamic); + state->gfx.restart_index = UINT32_MAX; state->gfx.dirty = ANV_CMD_DIRTY_DYNAMIC_ALL; } diff --git a/src/intel/vulkan/anv_private.h b/src/intel/vulkan/anv_private.h index 27b6a61f898..408f95360a6 100644 --- a/src/intel/vulkan/anv_private.h +++ b/src/intel/vulkan/anv_private.h @@ -2890,6 +2890,8 @@ struct anv_cmd_graphics_state { struct anv_vb_cache_range vb_bound_ranges[33]; struct anv_vb_cache_range vb_dirty_ranges[33]; + uint32_t restart_index; + VkShaderStageFlags push_constant_stages; struct anv_dynamic_state dynamic; @@ -2954,7 +2956,6 @@ struct anv_cmd_state { VkShaderStageFlags descriptors_dirty; VkShaderStageFlags push_constants_dirty; - uint32_t restart_index; struct anv_vertex_binding vertex_bindings[MAX_VBS]; bool xfb_enabled; struct anv_xfb_binding xfb_bindings[MAX_XFB_BUFFERS]; diff --git a/src/intel/vulkan/genX_cmd_buffer.c b/src/intel/vulkan/genX_cmd_buffer.c index 9671fd20333..445c8cef695 100644 --- a/src/intel/vulkan/genX_cmd_buffer.c +++ b/src/intel/vulkan/genX_cmd_buffer.c @@ -7396,7 +7396,7 @@ void genX(CmdBindIndexBuffer)( ANV_FROM_HANDLE(anv_cmd_buffer, cmd_buffer, commandBuffer); ANV_FROM_HANDLE(anv_buffer, buffer, _buffer); - cmd_buffer->state.restart_index = restart_index_for_type(indexType); + cmd_buffer->state.gfx.restart_index = restart_index_for_type(indexType); cmd_buffer->state.gfx.index_buffer = buffer; cmd_buffer->state.gfx.index_type = vk_to_intel_index_type(indexType); cmd_buffer->state.gfx.index_offset = offset; diff --git a/src/intel/vulkan/gfx7_cmd_buffer.c b/src/intel/vulkan/gfx7_cmd_buffer.c index c230c0a6329..b59b54407a8 100644 --- a/src/intel/vulkan/gfx7_cmd_buffer.c +++ b/src/intel/vulkan/gfx7_cmd_buffer.c @@ -207,7 +207,7 @@ genX(cmd_buffer_flush_dynamic_state)(struct anv_cmd_buffer *cmd_buffer) #if GFX_VERx10 == 75 anv_batch_emit(&cmd_buffer->batch, GFX75_3DSTATE_VF, vf) { vf.IndexedDrawCutIndexEnable = d->primitive_restart_enable; - vf.CutIndex = cmd_buffer->state.restart_index; + vf.CutIndex = cmd_buffer->state.gfx.restart_index; } #endif diff --git a/src/intel/vulkan/gfx8_cmd_buffer.c b/src/intel/vulkan/gfx8_cmd_buffer.c index efd0b1bdc6a..21959427f30 100644 --- a/src/intel/vulkan/gfx8_cmd_buffer.c +++ b/src/intel/vulkan/gfx8_cmd_buffer.c @@ -588,7 +588,7 @@ genX(cmd_buffer_flush_dynamic_state)(struct anv_cmd_buffer *cmd_buffer) vf.GeometryDistributionEnable = true; #endif vf.IndexedDrawCutIndexEnable = d->primitive_restart_enable; - vf.CutIndex = cmd_buffer->state.restart_index; + vf.CutIndex = cmd_buffer->state.gfx.restart_index; } }