<html><head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  </head>
  <body>
    Why that?<br>
    <br>
    This is the save buffer for GDS, not the old style GDS BOs.<br>
    <br>
    Christian.<br>
    <br>
    <div class="moz-cite-prefix">Am 06.04.23 um 09:36 schrieb Marek
      Olšák:<br>
    </div>
    <blockquote type="cite" cite="mid:CAAxE2A7nvmXdUaXESi4g6HVBFxk+dooz7tZYQfjGE8O2fKFi-w@mail.gmail.com">
      
      <div dir="ltr">
        <div>gds_va is unnecessary.</div>
        <div><br>
        </div>
        <div>Marek<br>
        </div>
      </div>
      <br>
      <div class="gmail_quote">
        <div dir="ltr" class="gmail_attr">On Thu, Mar 30, 2023 at
          3:18 PM Alex Deucher <<a href="mailto:alexander.deucher@amd.com" moz-do-not-send="true" class="moz-txt-link-freetext">alexander.deucher@amd.com</a>>
          wrote:<br>
        </div>
        <blockquote class="gmail_quote" style="margin:0px 0px 0px
          0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">For
          GFX11, the UMD needs to allocate some shadow buffers<br>
          to be used for preemption.  The UMD allocates the buffers<br>
          and passes the GPU virtual address to the kernel since the<br>
          kernel will program the packet that specified these<br>
          addresses as part of its IB submission frame.<br>
          <br>
          v2: UMD passes shadow init to tell kernel when to initialize<br>
              the shadow<br>
          <br>
          Reviewed-by: Christian König <<a href="mailto:christian.koenig@amd.com" target="_blank" moz-do-not-send="true" class="moz-txt-link-freetext">christian.koenig@amd.com</a>><br>
          Signed-off-by: Alex Deucher <<a href="mailto:alexander.deucher@amd.com" target="_blank" moz-do-not-send="true" class="moz-txt-link-freetext">alexander.deucher@amd.com</a>><br>
          ---<br>
           include/uapi/drm/amdgpu_drm.h | 10 ++++++++++<br>
           1 file changed, 10 insertions(+)<br>
          <br>
          diff --git a/include/uapi/drm/amdgpu_drm.h
          b/include/uapi/drm/amdgpu_drm.h<br>
          index b6eb90df5d05..3d9474af6566 100644<br>
          --- a/include/uapi/drm/amdgpu_drm.h<br>
          +++ b/include/uapi/drm/amdgpu_drm.h<br>
          @@ -592,6 +592,7 @@ struct drm_amdgpu_gem_va {<br>
           #define AMDGPU_CHUNK_ID_SCHEDULED_DEPENDENCIES 0x07<br>
           #define AMDGPU_CHUNK_ID_SYNCOBJ_TIMELINE_WAIT    0x08<br>
           #define AMDGPU_CHUNK_ID_SYNCOBJ_TIMELINE_SIGNAL  0x09<br>
          +#define AMDGPU_CHUNK_ID_CP_GFX_SHADOW   0x0a<br>
          <br>
           struct drm_amdgpu_cs_chunk {<br>
                  __u32           chunk_id;<br>
          @@ -708,6 +709,15 @@ struct drm_amdgpu_cs_chunk_data {<br>
                  };<br>
           };<br>
          <br>
          +#define AMDGPU_CS_CHUNK_CP_GFX_SHADOW_FLAGS_INIT_SHADOW     
             0x1<br>
          +<br>
          +struct drm_amdgpu_cs_chunk_cp_gfx_shadow {<br>
          +       __u64 shadow_va;<br>
          +       __u64 csa_va;<br>
          +       __u64 gds_va;<br>
          +       __u64 flags;<br>
          +};<br>
          +<br>
           /*<br>
            *  Query h/w info: Flag that this is integrated (a.h.a.
          fusion) GPU<br>
            *<br>
          -- <br>
          2.39.2<br>
          <br>
        </blockquote>
      </div>
    </blockquote>
    <br>
  </body>
</html>