diff options
author | Andres Rodriguez <andresx7@gmail.com> | 2017-10-20 18:02:16 -0400 |
---|---|---|
committer | Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl> | 2017-10-21 01:01:44 +0200 |
commit | 92724338ba2db433f99f4017a18d2ee4f6601d6c (patch) | |
tree | 565db29ef8f66d411502ab7ad9fc770b593237ab | |
parent | 9f7edf4d1f4e2d6acf5ed520ce85815fb1c5d884 (diff) |
radv: Expose VK_EXT_global_priority
Expose the extension string as supported
Signed-off-by: Andres Rodriguez <andresx7@gmail.com>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
-rw-r--r-- | src/amd/common/ac_gpu_info.c | 1 | ||||
-rw-r--r-- | src/amd/common/ac_gpu_info.h | 1 | ||||
-rw-r--r-- | src/amd/vulkan/radv_device.c | 2 | ||||
-rw-r--r-- | src/amd/vulkan/radv_extensions.py | 1 |
4 files changed, 5 insertions, 0 deletions
diff --git a/src/amd/common/ac_gpu_info.c b/src/amd/common/ac_gpu_info.c index 82ff18d4366..2e560125508 100644 --- a/src/amd/common/ac_gpu_info.c +++ b/src/amd/common/ac_gpu_info.c @@ -270,6 +270,7 @@ bool ac_query_gpu_info(int fd, amdgpu_device_handle dev, info->has_userptr = true; info->has_syncobj = has_syncobj(fd); info->has_sync_file = info->has_syncobj && info->drm_minor >= 21; + info->has_ctx_priority = info->drm_minor >= 22; info->num_render_backends = amdinfo->rb_pipes; info->clock_crystal_freq = amdinfo->gpu_counter_freq; if (!info->clock_crystal_freq) { diff --git a/src/amd/common/ac_gpu_info.h b/src/amd/common/ac_gpu_info.h index 960fd74fcf0..92c94f046b5 100644 --- a/src/amd/common/ac_gpu_info.h +++ b/src/amd/common/ac_gpu_info.h @@ -82,6 +82,7 @@ struct radeon_info { bool has_userptr; bool has_syncobj; bool has_sync_file; + bool has_ctx_priority; /* Shader cores. */ uint32_t r600_max_quad_pipes; /* wave size / 16 */ diff --git a/src/amd/vulkan/radv_device.c b/src/amd/vulkan/radv_device.c index 307d5579573..3748d51488f 100644 --- a/src/amd/vulkan/radv_device.c +++ b/src/amd/vulkan/radv_device.c @@ -989,6 +989,8 @@ VkResult radv_CreateDevice( const VkDeviceQueueGlobalPriorityCreateInfoEXT *global_priority = vk_find_struct_const(queue_create->pNext, DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_EXT); + assert(!global_priority || device->physical_device->rad_info.has_ctx_priority); + device->queues[qfi] = vk_alloc(&device->alloc, queue_create->queueCount * sizeof(struct radv_queue), 8, VK_SYSTEM_ALLOCATION_SCOPE_DEVICE); if (!device->queues[qfi]) { diff --git a/src/amd/vulkan/radv_extensions.py b/src/amd/vulkan/radv_extensions.py index cde91085b55..dfeb2880fc2 100644 --- a/src/amd/vulkan/radv_extensions.py +++ b/src/amd/vulkan/radv_extensions.py @@ -78,6 +78,7 @@ EXTENSIONS = [ Extension('VK_KHR_xlib_surface', 6, 'VK_USE_PLATFORM_XLIB_KHR'), Extension('VK_KHX_multiview', 1, True), Extension('VK_EXT_debug_report', 8, True), + Extension('VK_EXT_global_priority', 1, 'device->rad_info.has_ctx_priority'), Extension('VK_AMD_draw_indirect_count', 1, True), Extension('VK_AMD_rasterization_order', 1, 'device->rad_info.chip_class >= VI && device->rad_info.max_se >= 2'), ] |