diff --git a/src/intel/vulkan/anv_perf.c b/src/intel/vulkan/anv_perf.c index 5a94906733f..5c2d0656910 100644 --- a/src/intel/vulkan/anv_perf.c +++ b/src/intel/vulkan/anv_perf.c @@ -94,6 +94,16 @@ anv_device_perf_init(struct anv_device *device) device->perf_fd = -1; } +void +anv_device_perf_close(struct anv_device *device) +{ + if (device->perf_fd == -1) + return; + + close(device->perf_fd); + device->perf_fd = -1; +} + static int anv_device_perf_open(struct anv_device *device, uint64_t metric_id) { @@ -245,10 +255,7 @@ void anv_UninitializePerformanceApiINTEL( { ANV_FROM_HANDLE(anv_device, device, _device); - if (device->perf_fd >= 0) { - close(device->perf_fd); - device->perf_fd = -1; - } + anv_device_perf_close(device); } /* VK_KHR_performance_query */ @@ -381,11 +388,7 @@ void anv_ReleaseProfilingLockKHR( { ANV_FROM_HANDLE(anv_device, device, _device); - if (!INTEL_DEBUG(DEBUG_NO_OACONFIG)) { - assert(device->perf_fd >= 0); - close(device->perf_fd); - } - device->perf_fd = -1; + anv_device_perf_close(device); } void diff --git a/src/intel/vulkan/anv_private.h b/src/intel/vulkan/anv_private.h index 9d03b9c9c42..88e0e6b1ad5 100644 --- a/src/intel/vulkan/anv_private.h +++ b/src/intel/vulkan/anv_private.h @@ -6173,6 +6173,7 @@ struct anv_performance_configuration_intel { void anv_physical_device_init_va_ranges(struct anv_physical_device *device); void anv_physical_device_init_perf(struct anv_physical_device *device, int fd); void anv_device_perf_init(struct anv_device *device); +void anv_device_perf_close(struct anv_device *device); void anv_perf_write_pass_results(struct intel_perf_config *perf, struct anv_query_pool *pool, uint32_t pass, const struct intel_perf_query_result *accumulated_results,