<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <div class="moz-cite-prefix">On 14/05/2022 00:06, Jordan Justen
      wrote:<br>
    </div>
    <blockquote type="cite"
      cite="mid:165247597144.852381.16262736277926454494@jljusten-skl">
      <pre class="moz-quote-pre" wrap="">On 2022-05-13 05:31:00, Lionel Landwerlin wrote:
</pre>
      <blockquote type="cite">
        <pre class="moz-quote-pre" wrap="">On 02/05/2022 17:15, Ramalingam C wrote:
</pre>
        <blockquote type="cite">
          <pre class="moz-quote-pre" wrap="">Capture the impact of memory region preference list of the objects, on
their memory residency and Flat-CCS capability.

v2:
   Fix the Flat-CCS capability of an obj with {lmem, smem} preference
   list [Thomas]
v3:
   Reworded the doc [Matt]

Signed-off-by: Ramalingam C <a class="moz-txt-link-rfc2396E" href="mailto:ramalingam.c@intel.com"><ramalingam.c@intel.com></a>
cc: Matthew Auld <a class="moz-txt-link-rfc2396E" href="mailto:matthew.auld@intel.com"><matthew.auld@intel.com></a>
cc: Thomas Hellstrom <a class="moz-txt-link-rfc2396E" href="mailto:thomas.hellstrom@linux.intel.com"><thomas.hellstrom@linux.intel.com></a>
cc: Daniel Vetter <a class="moz-txt-link-rfc2396E" href="mailto:daniel.vetter@ffwll.ch"><daniel.vetter@ffwll.ch></a>
cc: Jon Bloomfield <a class="moz-txt-link-rfc2396E" href="mailto:jon.bloomfield@intel.com"><jon.bloomfield@intel.com></a>
cc: Lionel Landwerlin <a class="moz-txt-link-rfc2396E" href="mailto:lionel.g.landwerlin@intel.com"><lionel.g.landwerlin@intel.com></a>
cc: Kenneth Graunke <a class="moz-txt-link-rfc2396E" href="mailto:kenneth@whitecape.org"><kenneth@whitecape.org></a>
cc: <a class="moz-txt-link-abbreviated" href="mailto:mesa-dev@lists.freedesktop.org">mesa-dev@lists.freedesktop.org</a>
cc: Jordan Justen <a class="moz-txt-link-rfc2396E" href="mailto:jordan.l.justen@intel.com"><jordan.l.justen@intel.com></a>
cc: Tony Ye <a class="moz-txt-link-rfc2396E" href="mailto:tony.ye@intel.com"><tony.ye@intel.com></a>
Reviewed-by: Matthew Auld <a class="moz-txt-link-rfc2396E" href="mailto:matthew.auld@intel.com"><matthew.auld@intel.com></a>
---
  include/uapi/drm/i915_drm.h | 16 ++++++++++++++++
  1 file changed, 16 insertions(+)

diff --git a/include/uapi/drm/i915_drm.h b/include/uapi/drm/i915_drm.h
index a2def7b27009..b7e1c2fe08dc 100644
--- a/include/uapi/drm/i915_drm.h
+++ b/include/uapi/drm/i915_drm.h
@@ -3443,6 +3443,22 @@ struct drm_i915_gem_create_ext {
   * At which point we get the object handle in &drm_i915_gem_create_ext.handle,
   * along with the final object size in &drm_i915_gem_create_ext.size, which
   * should account for any rounding up, if required.
+ *
+ * Note that userspace has no means of knowing the current backing region
+ * for objects where @num_regions is larger than one. The kernel will only
+ * ensure that the priority order of the @regions array is honoured, either
+ * when initially placing the object, or when moving memory around due to
+ * memory pressure
+ *
+ * On Flat-CCS capable HW, compression is supported for the objects residing
+ * in I915_MEMORY_CLASS_DEVICE. When such objects (compressed) has other
+ * memory class in @regions and migrated (by I915, due to memory
+ * constrain) to the non I915_MEMORY_CLASS_DEVICE region, then I915 needs to
+ * decompress the content. But I915 dosen't have the required information to
+ * decompress the userspace compressed objects.
+ *
+ * So I915 supports Flat-CCS, only on the objects which can reside only on
+ * I915_MEMORY_CLASS_DEVICE regions.
</pre>
        </blockquote>
        <pre class="moz-quote-pre" wrap="">
I think it's fine to assume Flat-CSS surface will always be in lmem.

I see no issue for the Anv Vulkan driver.

Maybe Nanley or Ken can speak for the Iris GL driver?

</pre>
      </blockquote>
      <pre class="moz-quote-pre" wrap="">
Acked-by: Jordan Justen <a class="moz-txt-link-rfc2396E" href="mailto:jordan.l.justen@intel.com"><jordan.l.justen@intel.com></a>

I think Nanley has accounted for this on iris with:

<a class="moz-txt-link-freetext" href="https://gitlab.freedesktop.org/mesa/mesa/-/commit/42a865730ef72574e179b56a314f30fdccc6cba8">https://gitlab.freedesktop.org/mesa/mesa/-/commit/42a865730ef72574e179b56a314f30fdccc6cba8</a>

-Jordan
</pre>
    </blockquote>
    <p>Thanks Jordan,</p>
    <p><br>
    </p>
    <p>We might want to through in an additional : assert((<code>flags
        &</code><code> BO_ALLOC_SMEM) == 0); in the CCS case<br>
      </code></p>
    <p><code><br>
      </code></p>
    <p><code>-Lionel<br>
      </code></p>
  </body>
</html>