From: Timothy Arceri Date: Wed, 30 Nov 2016 21:52:20 +0000 (+1100) Subject: mesa: reset linked_stages bitmask when re-linking X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=966567aa1296f99b16baec1ce92d64a8b3533d25;p=mesa.git mesa: reset linked_stages bitmask when re-linking 34953f8907fdd added this bitmask but it wasn't being reset when a program was relinked. If a stage was removed from the new program then it could case a crash as we expect the linked shader for that stage to not be null. Fixes crashes in: ESEXT-CTS.tessellation_shader.single.xfb_captures_data_from_correct_stage ES31-CTS.core.tessellation_shader.single.xfb_captures_data_from_correct_stage Reviewed-by: Kenneth Graunke Reviewed-by: Dave Airlie Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=98917 --- diff --git a/src/mesa/main/shaderobj.c b/src/mesa/main/shaderobj.c index 998656af9c8..6fcdf442828 100644 --- a/src/mesa/main/shaderobj.c +++ b/src/mesa/main/shaderobj.c @@ -348,6 +348,8 @@ _mesa_clear_shader_program_data(struct gl_context *ctx, } } + shProg->data->linked_stages = 0; + if (shProg->data->UniformStorage) { for (unsigned i = 0; i < shProg->data->NumUniformStorage; ++i) _mesa_uniform_detach_all_driver_storage(&shProg->data->