iris: Reference the shader variant for last_vue_map as well
We call update_last_vue_map after updating the shaders, which compares
the new and old VUE maps. Except...updating the shaders may have
dropped the last reference to the variant that ice->shaders.last_vue_map
belonged to, leading to a classic use-after-free.
Fix this by taking a reference to the variant for the last VUE stage,
so it stays around until we're done with it.
Fixes: 1afed51445
("iris: Store a list of shader variants in the shader itself")
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/4311
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9143>
This commit is contained in:

committed by
Marge Bot

parent
0fa7ec1473
commit
4c4a91abe5
@@ -630,7 +630,7 @@ struct iris_context {
|
||||
struct {
|
||||
struct iris_uncompiled_shader *uncompiled[MESA_SHADER_STAGES];
|
||||
struct iris_compiled_shader *prog[MESA_SHADER_STAGES];
|
||||
struct brw_vue_map *last_vue_map;
|
||||
struct iris_compiled_shader *last_vue_shader;
|
||||
struct {
|
||||
unsigned size[4];
|
||||
unsigned entries[4];
|
||||
|
Reference in New Issue
Block a user