From 7490bcad372b820166b0e60664d8fabcdbc71514 Mon Sep 17 00:00:00 2001 From: Iago Toral Quiroga Date: Fri, 12 Nov 2021 08:28:18 +0100 Subject: [PATCH] v3dv: don't use a global constant for default pipeline dynamic state MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Some of these may change across V3D versions, so it is not practical. Reviewed-by: Alejandro PiƱeiro Part-of: --- src/broadcom/vulkan/v3dv_cmd_buffer.c | 32 --------------------------- src/broadcom/vulkan/v3dv_pipeline.c | 9 +++++++- src/broadcom/vulkan/v3dv_private.h | 2 -- 3 files changed, 8 insertions(+), 35 deletions(-) diff --git a/src/broadcom/vulkan/v3dv_cmd_buffer.c b/src/broadcom/vulkan/v3dv_cmd_buffer.c index ba30f34af80..4fe78ad71e7 100644 --- a/src/broadcom/vulkan/v3dv_cmd_buffer.c +++ b/src/broadcom/vulkan/v3dv_cmd_buffer.c @@ -26,38 +26,6 @@ #include "vk_format_info.h" #include "vk_util.h" -const struct v3dv_dynamic_state default_dynamic_state = { - .viewport = { - .count = 0, - }, - .scissor = { - .count = 0, - }, - .stencil_compare_mask = - { - .front = ~0u, - .back = ~0u, - }, - .stencil_write_mask = - { - .front = ~0u, - .back = ~0u, - }, - .stencil_reference = - { - .front = 0u, - .back = 0u, - }, - .blend_constants = { 0.0f, 0.0f, 0.0f, 0.0f }, - .depth_bias = { - .constant_factor = 0.0f, - .depth_bias_clamp = 0.0f, - .slope_factor = 0.0f, - }, - .line_width = 1.0f, - .color_write_enable = (1ull << (4 * V3D_MAX_DRAW_BUFFERS)) - 1, -}; - void v3dv_job_add_bo(struct v3dv_job *job, struct v3dv_bo *bo) { diff --git a/src/broadcom/vulkan/v3dv_pipeline.c b/src/broadcom/vulkan/v3dv_pipeline.c index 9477087ae3a..0f5c07de052 100644 --- a/src/broadcom/vulkan/v3dv_pipeline.c +++ b/src/broadcom/vulkan/v3dv_pipeline.c @@ -2694,8 +2694,15 @@ pipeline_init_dynamic_state( const VkPipelineRasterizationStateCreateInfo *pRasterizationState, const VkPipelineColorWriteCreateInfoEXT *pColorWriteState) { - pipeline->dynamic_state = default_dynamic_state; + /* Initialize to default values */ struct v3dv_dynamic_state *dynamic = &pipeline->dynamic_state; + memset(dynamic, 0, sizeof(*dynamic)); + dynamic->stencil_compare_mask.front = ~0; + dynamic->stencil_compare_mask.back = ~0; + dynamic->stencil_write_mask.front = ~0; + dynamic->stencil_write_mask.back = ~0; + dynamic->line_width = 1.0f; + dynamic->color_write_enable = (1ull << (4 * V3D_MAX_DRAW_BUFFERS)) - 1; /* Create a mask of enabled dynamic states */ uint32_t dynamic_states = 0; diff --git a/src/broadcom/vulkan/v3dv_private.h b/src/broadcom/vulkan/v3dv_private.h index 8fbb78eb739..314e058269b 100644 --- a/src/broadcom/vulkan/v3dv_private.h +++ b/src/broadcom/vulkan/v3dv_private.h @@ -843,8 +843,6 @@ struct v3dv_dynamic_state { uint32_t color_write_enable; }; -extern const struct v3dv_dynamic_state default_dynamic_state; - void v3dv_viewport_compute_xform(const VkViewport *viewport, float scale[3], float translate[3]);