ANV: fp64 shader leaked
A device-global shader "fp64_nir" was introduced here:
It's causing memory leaks in our (Google Fuchsia) CI, for example:
[00142.846079][82228][82230][klog] INFO: Indirect leak of 64 byte(s) in 1 object(s) allocated from:
[00142.846122][82228][82230][klog] INFO: #0 0x0000204e1c16b55d in malloc() compiler-rt/lib/asan/asan_malloc_linux.cpp:69 <libclang_rt.asan.so>+0x5955d
[00142.846123][82228][82230][klog] INFO: #1 0x00002233d98aa255 in ralloc_size(const void*, size_t) ../../third_party/mesa/src/util/ralloc.c:117 <libvulkan_intel.so>+0x42e255
[00142.846124][82228][82230][klog] INFO: #2.1 0x00002233d98aa76a in ralloc_array_size(const void*, size_t, unsigned int) ../../third_party/mesa/src/util/ralloc.c:221 <libvulkan_intel.so>+0x42e76a
[00142.846124][82228][82230][klog] INFO: #2 0x00002233d98aa76a in ralloc_strdup(const void*, const char*) ../../third_party/mesa/src/util/ralloc.c:376 <libvulkan_intel.so>+0x42e76a
[00142.846125][82228][82230][klog] INFO: #3 0x00002233d9905b1f in nir_local_variable_create(nir_function_impl*, const glsl_type*, const char*) ../../third_party/mesa/src/compiler/nir/nir.c:316 <libvulkan_intel.so>+0x489b1f
[00142.846125][82228][82230][klog] INFO: #4.1 0x00002233d993b2ad in lower_returns_in_block(nir_block*, lower_returns_state*) ../../third_party/mesa/src/compiler/nir/nir_lower_returns.c:208 <libvulkan_intel.so>+0x4bf2ad
[00142.846125][82228][82230][klog] INFO: #4 0x00002233d993b2ad in lower_returns_in_cf_list(exec_list*, lower_returns_state*) ../../third_party/mesa/src/compiler/nir/nir_lower_returns.c:248 <libvulkan_intel.so>+0x4bf2ad
[00142.846126][82228][82230][klog] INFO: #5.1 0x00002233d993b18f in lower_returns_in_if(nir_if*, lower_returns_state*) ../../third_party/mesa/src/compiler/nir/nir_lower_returns.c:111 <libvulkan_intel.so>+0x4bf18f
[00142.846126][82228][82230][klog] INFO: #5 0x00002233d993b18f in lower_returns_in_cf_list(exec_list*, lower_returns_state*) ../../third_party/mesa/src/compiler/nir/nir_lower_returns.c:253 <libvulkan_intel.so>+0x4bf18f
[00142.846127][82228][82230][klog] INFO: #6.1 0x00002233d993b18f in lower_returns_in_if(nir_if*, lower_returns_state*) ../../third_party/mesa/src/compiler/nir/nir_lower_returns.c:111 <libvulkan_intel.so>+0x4bf18f
[00142.846127][82228][82230][klog] INFO: #6 0x00002233d993b18f in lower_returns_in_cf_list(exec_list*, lower_returns_state*) ../../third_party/mesa/src/compiler/nir/nir_lower_returns.c:253 <libvulkan_intel.so>+0x4bf18f
[00142.846127][82228][82230][klog] INFO: #7.1 0x00002233d993b18f in lower_returns_in_if(nir_if*, lower_returns_state*) ../../third_party/mesa/src/compiler/nir/nir_lower_returns.c:111 <libvulkan_intel.so>+0x4bf18f
[00142.846127][82228][82230][klog] INFO: #7 0x00002233d993b18f in lower_returns_in_cf_list(exec_list*, lower_returns_state*) ../../third_party/mesa/src/compiler/nir/nir_lower_returns.c:253 <libvulkan_intel.so>+0x4bf18f
[00142.846128][82228][82230][klog] INFO: #8 0x00002233d993b076 in nir_lower_returns_impl(nir_function_impl*) ../../third_party/mesa/src/compiler/nir/nir_lower_returns.c:284 <libvulkan_intel.so>+0x4bf076
[00142.846129][82228][82230][klog] INFO: #9 0x00002233d993b5c3 in nir_lower_returns(nir_shader*) ../../third_party/mesa/src/compiler/nir/nir_lower_returns.c:304 <libvulkan_intel.so>+0x4bf5c3
[00142.846129][82228][82230][klog] INFO: #10 0x00002233d97ea086 in anv_load_fp64_shader(anv_device*) ../../third_party/mesa/src/intel/vulkan/anv_pipeline_cache.c:464 <libvulkan_intel.so>+0x36e086
[00142.846130][82228][82230][klog] INFO: #11 0x00002233d97d0f0d in anv_CreateDevice(VkPhysicalDevice, VkDeviceCreateInfo const*, VkAllocationCallbacks const*, VkDevice*) ../../third_party/mesa/src/intel/vulkan/anv_device.c:3824 <libvulkan_intel.so>+0x354f0d
[00142.846131][82228][82230][klog] INFO: #12 0x000021bb7b5d7679 in terminator_CreateDevice(VkPhysicalDevice, VkDeviceCreateInfo const*, VkAllocationCallbacks const*, VkDevice*) ../../third_party/Vulkan-Loader/loader/loader.c:5793 <libvulkan.so>+0x99679
[00142.846132][82228][82230][klog] INFO: #13 0x000021bb7b5d1cb0 in loader_create_device_chain(VkPhysicalDevice const, VkDeviceCreateInfo const*, VkAllocationCallbacks const*, const loader_instance*, loader_device*, PFN_vkGetInstanceProcAddr, PFN_vkGetDeviceProcAddr*) ../../third_party/Vulkan-Loader/loader/loader.c:4949 <libvulkan.so>+0x93cb0
[00142.846132][82228][82230][klog] INFO: #14 0x000021bb7b5d07ef in loader_layer_create_device(VkInstance, VkPhysicalDevice, VkDeviceCreateInfo const*, VkAllocationCallbacks const*, VkDevice*, PFN_vkGetInstanceProcAddr, PFN_vkGetDeviceProcAddr*) ../../third_party/Vulkan-Loader/loader/loader.c:4370 <libvulkan.so>+0x927ef
[00142.846133][82228][82230][klog] INFO: #15 0x000021bb7b5e41a1 in vkCreateDevice(VkPhysicalDevice, VkDeviceCreateInfo const*, VkAllocationCallbacks const*, VkDevice*) ../../third_party/Vulkan-Loader/loader/trampoline.c:842 <libvulkan.so>+0xa61a1
[00142.846134][82228][82230][klog] INFO: #16 0x0000230609fe7668 in AppGpu::AppGpu(AppGpu*, AppInstance&, uint32_t, VkPhysicalDevice) ../../third_party/Vulkan-Tools/vulkaninfo/vulkaninfo.h:1604 <<application>>+0x149668
[00142.846134][82228][82230][klog] INFO: #17 0x0000230609fe36da in main(int, char**) ../../third_party/Vulkan-Tools/vulkaninfo/vulkaninfo.cpp:1119 <<application>>+0x1456da
[00142.846134][82228][82230][klog] INFO: #18.1 0x000043bf6e663741 in call_main(int, char**, char**, int (*)(int, char**, char**)) ../../zircon/third_party/ulib/musl/src/env/__libc_start_main.c:64 <libc.so>+0x83741
[00142.846134][82228][82230][klog] INFO: #18 0x000043bf6e663741 in start_main(const start_params*) ../../zircon/third_party/ulib/musl/src/env/__libc_start_main.c:185 <libc.so>+0x83741
[00142.846135][82228][82230][klog] INFO: #19 0x000043bf6e663d3a in __libc_start_main(zx_handle_t, int (*)(int, char**, char**)) ../../zircon/third_party/ulib/musl/src/env/__libc_start_main.c:263 <libc.so>+0x83d3a
[00142.846135][82228][82230][klog] INFO:
[00142.846158][82228][82230][klog] INFO: SUMMARY: AddressSanitizer: 18086480 byte(s) leaked in 35010 allocation(s).
Edited by C Stout