Mesa (main): v3dv: don't use a global constant for default pipeline dynamic state

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Fri Nov 12 11:22:12 UTC 2021


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

Author: Iago Toral Quiroga <itoral at igalia.com>
Date:   Fri Nov 12 08:28:18 2021 +0100

v3dv: don't use a global constant for default pipeline dynamic state

Some of these may change across V3D versions, so it is not practical.

Reviewed-by: Alejandro Piñeiro <apinheiro at igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13775>

---

 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]);



More information about the mesa-commit mailing list