From 66fa676e8dbe4d4ed65f0e72c1201cfedb867605 Mon Sep 17 00:00:00 2001 From: Mike Blumenkrantz Date: Fri, 27 Aug 2021 14:02:46 -0400 Subject: [PATCH] radv: ignore dynamic line stipple if line stipple isn't enabled ==244108== Conditional jump or move depends on uninitialised value(s) ==244108== at 0x48498D5: bcmp (vg_replace_strmem.c:1129) ==244108== by 0x1C37B7DD: radv_bind_dynamic_state (radv_cmd_buffer.c:237) ==244108== by 0x1C388027: radv_CmdBindPipeline (radv_cmd_buffer.c:4794) ==244108== by 0x14E9C01E: bool update_gfx_pipeline(zink_context*, zink_batch_state*, pipe_prim_type) (zink_draw.cpp:406) ==244108== by 0x14E9AAB9: void zink_draw_vbo<(zink_multidraw)1, (zink_dynamic_state)1, (zink_dynamic_state2)1, (zink_dynamic_vertex_input)1, true>(pipe_cont> ==244108== by 0x14B017EB: tc_call_draw_single (u_threaded_context.c:3033) ==244108== by 0x14AF9C0E: tc_batch_execute (u_threaded_context.c:190) ==244108== by 0x14AFA24F: _tc_sync (u_threaded_context.c:341) ==244108== by 0x14B006E7: tc_texture_subdata (u_threaded_context.c:2549) ==244108== by 0x14238F8C: st_TexSubImage (st_cb_texture.c:2134) ==244108== by 0x14239931: st_TexImage (st_cb_texture.c:2363) ==244108== by 0x1453698A: teximage (teximage.c:3154) ==244108== by 0x1453698A: teximage_err (teximage.c:3181) ==244108== by 0x145388BD: _mesa_TexImage2D (teximage.c:3252) ==244108== by 0x5E88D4: ??? (in /home/zmike/src/piglit/tesseract/bin_unix/linux_64_client) ==244108== by 0x5E9527: ??? (in /home/zmike/src/piglit/tesseract/bin_unix/linux_64_client) ==244108== by 0x5E9B72: ??? (in /home/zmike/src/piglit/tesseract/bin_unix/linux_64_client) ==244108== by 0x5F1092: ??? (in /home/zmike/src/piglit/tesseract/bin_unix/linux_64_client) ==244108== by 0x5F10AC: ??? (in /home/zmike/src/piglit/tesseract/bin_unix/linux_64_client) ==244108== by 0x48CC66: ??? (in /home/zmike/src/piglit/tesseract/bin_unix/linux_64_client) ==244108== by 0x48DDC7: ??? (in /home/zmike/src/piglit/tesseract/bin_unix/linux_64_client) ==244108== by 0x40D525: ??? (in /home/zmike/src/piglit/tesseract/bin_unix/linux_64_client) ==244108== by 0x4FF7B74: (below main) (in /usr/lib64/libc-2.33.so) ==244108== Uninitialised value was created by a stack allocation ==244108== at 0x14ECDF55: zink_create_gfx_pipeline (zink_pipeline.c:53) Reviewed-by: Samuel Pitoiset Part-of: --- src/amd/vulkan/radv_pipeline.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/amd/vulkan/radv_pipeline.c b/src/amd/vulkan/radv_pipeline.c index ae79894..81e7027 100644 --- a/src/amd/vulkan/radv_pipeline.c +++ b/src/amd/vulkan/radv_pipeline.c @@ -1383,10 +1383,14 @@ radv_pipeline_needed_dynamic_state(const VkGraphicsPipelineCreateInfo *pCreateIn PIPELINE_SAMPLE_LOCATIONS_STATE_CREATE_INFO_EXT)) states &= ~RADV_DYNAMIC_SAMPLE_LOCATIONS; - if (!pCreateInfo->pRasterizationState || - !vk_find_struct_const(pCreateInfo->pRasterizationState->pNext, - PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO_EXT)) + if (!pCreateInfo->pRasterizationState) states &= ~RADV_DYNAMIC_LINE_STIPPLE; + else { + const VkPipelineRasterizationLineStateCreateInfoEXT *rast_line_info = vk_find_struct_const(pCreateInfo->pRasterizationState->pNext, + PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO_EXT); + if (!rast_line_info || !rast_line_info->stippledLineEnable) + states &= ~RADV_DYNAMIC_LINE_STIPPLE; + } if (!vk_find_struct_const(pCreateInfo->pNext, PIPELINE_FRAGMENT_SHADING_RATE_STATE_CREATE_INFO_KHR) && -- 2.7.4