Module: Mesa Branch: master Commit: c8949e24984266cca3593291c30ea199baef5358 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=c8949e24984266cca3593291c30ea199baef5358
Author: Jason Ekstrand <[email protected]> Date: Wed Jan 17 17:10:34 2018 -0800 anv/pipeline: Don't look at blend state unless we have an attachment 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: [email protected] Reviewed-by: Alex Smith <[email protected]> Reviewed-by: Lionel Landwerlin <[email protected]> --- 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 82fdf206a9..10efe54210 100644 --- a/src/intel/vulkan/genX_pipeline.c +++ b/src/intel/vulkan/genX_pipeline.c @@ -1351,10 +1351,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-commit mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/mesa-commit
