anv: Implement Xe version of anv_physical_device_get_parameters()
authorJosé Roberto de Souza <jose.souza@intel.com>
Thu, 9 Feb 2023 18:09:16 +0000 (10:09 -0800)
committerMarge Bot <emma+marge@anholt.net>
Wed, 15 Mar 2023 18:17:11 +0000 (18:17 +0000)
Signed-off-by: José Roberto de Souza <jose.souza@intel.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21885>

src/intel/vulkan/anv_device.c
src/intel/vulkan/xe/anv_device.c
src/intel/vulkan/xe/anv_device.h

index 9a23815..2a23bd0 100644 (file)
@@ -793,7 +793,15 @@ anv_physical_device_init_queue_families(struct anv_physical_device *pdevice)
 static VkResult
 anv_physical_device_get_parameters(struct anv_physical_device *device)
 {
-   return anv_i915_physical_device_get_parameters(device);
+   switch (device->info.kmd_type) {
+   case INTEL_KMD_TYPE_I915:
+      return anv_i915_physical_device_get_parameters(device);
+   case INTEL_KMD_TYPE_XE:
+      return anv_xe_physical_device_get_parameters(device);
+   default:
+      unreachable("Missing");
+      return VK_ERROR_UNKNOWN;
+   }
 }
 
 static VkResult
index 8b85c39..bc3afb2 100644 (file)
@@ -45,3 +45,13 @@ VkResult anv_xe_device_setup_vm(struct anv_device *device)
    device->vm_id = create.vm_id;
    return VK_SUCCESS;
 }
+
+VkResult
+anv_xe_physical_device_get_parameters(struct anv_physical_device *device)
+{
+   device->has_exec_timeline = true;
+   /* TODO: fetch max_context_priority */
+   device->max_context_priority = VK_QUEUE_GLOBAL_PRIORITY_LOW_KHR;
+
+   return VK_SUCCESS;
+}
index 03d222a..026f5aa 100644 (file)
 #include "vulkan/vulkan_core.h"
 
 struct anv_device;
+struct anv_physical_device;
 
 bool anv_xe_device_destroy_vm(struct anv_device *device);
 VkResult anv_xe_device_setup_vm(struct anv_device *device);
+
+VkResult
+anv_xe_physical_device_get_parameters(struct anv_physical_device *device);