Module: Mesa
Branch: main
Commit: 463bf134115909d11dc1d9dd440f59fcea93bb7e
URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=463bf134115909d11dc1d9dd440f59fcea93bb7e

Author: Jordan Justen <[email protected]>
Date:   Mon Apr  3 12:51:22 2023 -0400

anv: Use set PAT extension on BO creation for MTL

Reworks:
 * Drop local pat_index var (suggested by José)

Signed-off-by: Jordan Justen <[email protected]>
Reviewed-by: José Roberto de Souza <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22878>

---

 src/intel/vulkan/i915/anv_kmd_backend.c | 14 ++++++++++++++
 1 file changed, 14 insertions(+)

diff --git a/src/intel/vulkan/i915/anv_kmd_backend.c 
b/src/intel/vulkan/i915/anv_kmd_backend.c
index 3c7222f2f87..231844b4da0 100644
--- a/src/intel/vulkan/i915/anv_kmd_backend.c
+++ b/src/intel/vulkan/i915/anv_kmd_backend.c
@@ -75,6 +75,20 @@ i915_gem_create(struct anv_device *device,
       .flags = flags,
    };
 
+   struct drm_i915_gem_create_ext_set_pat set_pat_param = { 0 };
+   if (device->info->has_set_pat_uapi) {
+      /* Set PAT param */
+      if (alloc_flags & (ANV_BO_ALLOC_SNOOPED))
+         set_pat_param.pat_index = device->info->pat.coherent;
+      else if (alloc_flags & (ANV_BO_ALLOC_EXTERNAL | ANV_BO_ALLOC_SCANOUT))
+         set_pat_param.pat_index = device->info->pat.scanout;
+      else
+         set_pat_param.pat_index = device->info->pat.writeback;
+      intel_gem_add_ext(&gem_create.extensions,
+                        I915_GEM_CREATE_EXT_SET_PAT,
+                        &set_pat_param.base);
+   }
+
    if (intel_ioctl(device->fd, DRM_IOCTL_I915_GEM_CREATE_EXT, &gem_create))
       return 0;
 

Reply via email to