Reviewed-by: Lionel Landwerlin <lionel.g.landwer...@intel.com>

On 18/01/18 01:16, Jason Ekstrand wrote:
Without this, we may end up dereferencing blend before we check for
binding->index != UINT32_MAX.  However, Vulkan allows the blend state to
be NULL so long as you don't have any color attachments.  This fixes a
segfault when running The Talos Principal.

Fixes: 12f4e00b69e724a23504b7bd3958fb75dc462950
Cc: mesa-sta...@lists.freedesktop.org
---
  src/intel/vulkan/genX_pipeline.c | 6 +++---
  1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/src/intel/vulkan/genX_pipeline.c b/src/intel/vulkan/genX_pipeline.c
index cfc3bea..e8ac7c6 100644
--- a/src/intel/vulkan/genX_pipeline.c
+++ b/src/intel/vulkan/genX_pipeline.c
@@ -1345,10 +1345,10 @@ has_color_buffer_write_enabled(const struct 
anv_pipeline *pipeline,
        if (binding->set != ANV_DESCRIPTOR_SET_COLOR_ATTACHMENTS)
           continue;
- const VkPipelineColorBlendAttachmentState *a =
-         &blend->pAttachments[binding->index];
+      if (binding->index == UINT32_MAX)
+         continue;
- if (binding->index != UINT32_MAX && a->colorWriteMask != 0)
+      if (blend->pAttachments[binding->index].colorWriteMask != 0)
           return true;
     }


_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to