compiler/glsl: handle case where we have multiple users for types
Both Vulkan and OpenGL might be using glsl_types simultaneously or we can also have multiple concurrent Vulkan instances using glsl_types. Patch adds a one time init to track number of users and will release types only when last user calls _glsl_type_singleton_decref(). This change fixes glsl_type memory leaks we have with anv driver. v2: reuse hash_mutex, cleanup, apply fix also to radv driver and rename helper functions (Jason) v3: move init, destroy to happen on GL context init and destroy Signed-off-by:Tapani Pälli <tapani.palli@intel.com> Reviewed-by:
Timothy Arceri <tarceri@itsqueeze.com> Reviewed-by:
Jason Ekstrand <jason@jlekstrand.net>
Showing
- src/amd/vulkan/radv_device.c 3 additions, 0 deletionssrc/amd/vulkan/radv_device.c
- src/compiler/glsl/glsl_parser_extras.cpp 18 additions, 2 deletionssrc/compiler/glsl/glsl_parser_extras.cpp
- src/compiler/glsl/glsl_parser_extras.h 2 additions, 0 deletionssrc/compiler/glsl/glsl_parser_extras.h
- src/compiler/glsl/standalone.cpp 2 additions, 1 deletionsrc/compiler/glsl/standalone.cpp
- src/compiler/glsl_types.cpp 27 additions, 5 deletionssrc/compiler/glsl_types.cpp
- src/compiler/glsl_types.h 7 additions, 3 deletionssrc/compiler/glsl_types.h
- src/intel/vulkan/anv_device.c 3 additions, 0 deletionssrc/intel/vulkan/anv_device.c
- src/mesa/main/context.c 4 additions, 0 deletionssrc/mesa/main/context.c
Loading
Please register or sign in to comment