<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  </head>
  <body text="#000000" bgcolor="#FFFFFF">
    <div class="moz-cite-prefix">
      <blockquote type="cite">Can you be more specific, Christian? Mesa
        has this, I don't think it needs anything else:</blockquote>
      Completely agree, that's what I suggested to implement.<br>
      <br>
      The point is this kernel change now needs to be reworked and
      adapted to what Mesa is doing.<br>
      <br>
      Regards,<br>
      Christian.<br>
      <br>
      Am 12.04.2018 um 18:40 schrieb Marek Olšák:<br>
    </div>
    <blockquote type="cite"
cite="mid:CAAxE2A4msxZa19Cvv6giMDDYg57-M_qawgFRM2aaK6sUERuqSA@mail.gmail.com">
      <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
      <div dir="ltr">
        <div>Can you be more specific, Christian? Mesa has this, I don't
          think it needs anything else:<br>
          <a
href="https://cgit.freedesktop.org/mesa/mesa/commit/?id=7d2079908d9ef05ec3f35b7078833e57846cab5b"
            moz-do-not-send="true">https://cgit.freedesktop.org/mesa/mesa/commit/?id=7d2079908d9ef05ec3f35b7078833e57846cab5b</a><br>
          <br>
        </div>
        Marek<br>
      </div>
      <div class="gmail_extra"><br>
        <div class="gmail_quote">On Wed, Mar 28, 2018 at 3:46 AM,
          Christian König <span dir="ltr"><<a
              href="mailto:ckoenig.leichtzumerken@gmail.com"
              target="_blank" moz-do-not-send="true">ckoenig.leichtzumerken@gmail.com</a>></span>
          wrote:<br>
          <blockquote class="gmail_quote" style="margin:0 0 0
            .8ex;border-left:1px #ccc solid;padding-left:1ex"><span
              class="">Am 28.03.2018 um 00:22 schrieb Samuel Li:<br>
              <blockquote class="gmail_quote" style="margin:0 0 0
                .8ex;border-left:1px #ccc solid;padding-left:1ex">
                It's auto by default. For CZ/ST, auto setting enables sg
                display<br>
                when vram size is small; otherwise still uses vram.<br>
                This patch fixed some potential hang issue introduced by
                change<br>
                "allow framebuffer in GART memory as well" due to CZ/ST
                hardware<br>
                limitation.<br>
              </blockquote>
              <br>
            </span>
            Well that is still a NAK.<br>
            <br>
            As discussed now multiple times please implement the
            necessary changes in Mesa.<br>
            <br>
            Regards,<br>
            Christian.
            <div class="HOEnZb">
              <div class="h5"><br>
                <br>
                <blockquote class="gmail_quote" style="margin:0 0 0
                  .8ex;border-left:1px #ccc solid;padding-left:1ex">
                  <br>
                  v2: Change default setting to auto, also some misc
                  changes.<br>
                  Signed-off-by: Samuel Li <<a
                    href="mailto:Samuel.Li@amd.com" target="_blank"
                    moz-do-not-send="true">Samuel.Li@amd.com</a>><br>
                  ---<br>
                    drivers/gpu/drm/amd/amdgpu/amd<wbr>gpu.h           
                     |  1 +<br>
                    drivers/gpu/drm/amd/amdgpu/amd<wbr>gpu_display.c   
                     | 10 ++++++++--<br>
                    drivers/gpu/drm/amd/amdgpu/amd<wbr>gpu_display.h   
                     |  2 ++<br>
                    drivers/gpu/drm/amd/amdgpu/amd<wbr>gpu_drv.c       
                     |  4 ++++<br>
                    drivers/gpu/drm/amd/amdgpu/amd<wbr>gpu_fb.c         
                    |  2 ++<br>
                    drivers/gpu/drm/amd/display/am<wbr>dgpu_dm/amdgpu_dm.c
                  |  3 ++-<br>
                    6 files changed, 19 insertions(+), 3 deletions(-)<br>
                  <br>
                  diff --git a/drivers/gpu/drm/amd/amdgpu/a<wbr>mdgpu.h
                  b/drivers/gpu/drm/amd/amdgpu/a<wbr>mdgpu.h<br>
                  index a7e2229..c942362 100644<br>
                  --- a/drivers/gpu/drm/amd/amdgpu/a<wbr>mdgpu.h<br>
                  +++ b/drivers/gpu/drm/amd/amdgpu/a<wbr>mdgpu.h<br>
                  @@ -129,6 +129,7 @@ extern int amdgpu_lbpw;<br>
                    extern int amdgpu_compute_multipipe;<br>
                    extern int amdgpu_gpu_recovery;<br>
                    extern int amdgpu_emu_mode;<br>
                  +extern int amdgpu_sg_display;<br>
                      #ifdef CONFIG_DRM_AMDGPU_SI<br>
                    extern int amdgpu_si_support;<br>
                  diff --git a/drivers/gpu/drm/amd/amdgpu/a<wbr>mdgpu_display.c
                  b/drivers/gpu/drm/amd/amdgpu/a<wbr>mdgpu_display.c<br>
                  index 5495b29..1e7b950 100644<br>
                  --- a/drivers/gpu/drm/amd/amdgpu/a<wbr>mdgpu_display.c<br>
                  +++ b/drivers/gpu/drm/amd/amdgpu/a<wbr>mdgpu_display.c<br>
                  @@ -513,8 +513,14 @@ uint32_t
                  amdgpu_display_framebuffer_dom<wbr>ains(struct
                  amdgpu_device *adev)<br>
                    #if defined(CONFIG_DRM_AMD_DC)<br>
                          if (adev->asic_type >= CHIP_CARRIZO
                  && adev->asic_type < CHIP_RAVEN
                  &&<br>
                              adev->flags & AMD_IS_APU &&<br>
                  -           amdgpu_device_asic_has_dc_sup<wbr>port(adev->asic_type))<br>
                  -               domain |= AMDGPU_GEM_DOMAIN_GTT;<br>
                  +           amdgpu_device_asic_has_dc_sup<wbr>port(adev->asic_type))
                  {<br>
                  +               if (amdgpu_sg_display == 1)<br>
                  +                       domain =
                  AMDGPU_GEM_DOMAIN_GTT;<br>
                  +               else if (amdgpu_sg_display == -1) {<br>
                  +                       if
                  (adev->gmc.real_vram_size < AMDGPU_SG_THRESHOLD)<br>
                  +                               domain =
                  AMDGPU_GEM_DOMAIN_GTT;<br>
                  +               }<br>
                  +       }<br>
                    #endif<br>
                          return domain;<br>
                  diff --git a/drivers/gpu/drm/amd/amdgpu/a<wbr>mdgpu_display.h
                  b/drivers/gpu/drm/amd/amdgpu/a<wbr>mdgpu_display.h<br>
                  index 2b11d80..2b25393 100644<br>
                  --- a/drivers/gpu/drm/amd/amdgpu/a<wbr>mdgpu_display.h<br>
                  +++ b/drivers/gpu/drm/amd/amdgpu/a<wbr>mdgpu_display.h<br>
                  @@ -23,6 +23,8 @@<br>
                    #ifndef __AMDGPU_DISPLAY_H__<br>
                    #define __AMDGPU_DISPLAY_H__<br>
                    +#define AMDGPU_SG_THRESHOLD  (256*1024*1024)<br>
                  +<br>
                    uint32_t amdgpu_display_framebuffer_dom<wbr>ains(struct
                  amdgpu_device *adev);<br>
                    struct drm_framebuffer *<br>
                    amdgpu_display_user_framebuffe<wbr>r_create(struct
                  drm_device *dev,<br>
                  diff --git a/drivers/gpu/drm/amd/amdgpu/a<wbr>mdgpu_drv.c
                  b/drivers/gpu/drm/amd/amdgpu/a<wbr>mdgpu_drv.c<br>
                  index 1bfce79..19f11a5 100644<br>
                  --- a/drivers/gpu/drm/amd/amdgpu/a<wbr>mdgpu_drv.c<br>
                  +++ b/drivers/gpu/drm/amd/amdgpu/a<wbr>mdgpu_drv.c<br>
                  @@ -132,6 +132,7 @@ int amdgpu_lbpw = -1;<br>
                    int amdgpu_compute_multipipe = -1;<br>
                    int amdgpu_gpu_recovery = -1; /* auto */<br>
                    int amdgpu_emu_mode = 0;<br>
                  +int amdgpu_sg_display = -1;<br>
                      MODULE_PARM_DESC(vramlimit, "Restrict VRAM for
                  testing, in megabytes");<br>
                    module_param_named(vramlimit, amdgpu_vram_limit,
                  int, 0600);<br>
                  @@ -290,6 +291,9 @@ module_param_named(gpu_recover<wbr>y,
                  amdgpu_gpu_recovery, int, 0444);<br>
                    MODULE_PARM_DESC(emu_mode, "Emulation mode, (1 =
                  enable, 0 = disable)");<br>
                    module_param_named(emu_mode, amdgpu_emu_mode, int,
                  0444);<br>
                    +MODULE_PARM_DESC(sg_display, "Enable scatter gather
                  display, (1 = enable, 0 = disable, -1 = auto");<br>
                  +module_param_named(sg_display<wbr>,
                  amdgpu_sg_display, int, 0444);<br>
                  +<br>
                    #ifdef CONFIG_DRM_AMDGPU_SI<br>
                      #if defined(CONFIG_DRM_RADEON) ||
                  defined(CONFIG_DRM_RADEON_MODU<wbr>LE)<br>
                  diff --git a/drivers/gpu/drm/amd/amdgpu/a<wbr>mdgpu_fb.c
                  b/drivers/gpu/drm/amd/amdgpu/a<wbr>mdgpu_fb.c<br>
                  index 1206301..f57c355 100644<br>
                  --- a/drivers/gpu/drm/amd/amdgpu/a<wbr>mdgpu_fb.c<br>
                  +++ b/drivers/gpu/drm/amd/amdgpu/a<wbr>mdgpu_fb.c<br>
                  @@ -138,6 +138,8 @@ static int
                  amdgpufb_create_pinned_object(<wbr>struct amdgpu_fbdev
                  *rfbdev,<br>
                          mode_cmd->pitches[0] =
                  amdgpu_align_pitch(adev, mode_cmd->width, cpp,<br>
                                                                   
                  fb_tiled);<br>
                          domain = amdgpu_display_framebuffer_dom<wbr>ains(adev);<br>
                  +       if (domain & AMDGPU_GEM_DOMAIN_GTT)<br>
                  +               DRM_DEBUG_DRIVER("Scatter gather
                  display: enabled\n");<br>
                          height = ALIGN(mode_cmd->height, 8);<br>
                          size = mode_cmd->pitches[0] * height;<br>
                  diff --git a/drivers/gpu/drm/amd/display/<wbr>amdgpu_dm/amdgpu_dm.c
                  b/drivers/gpu/drm/amd/display/<wbr>amdgpu_dm/amdgpu_dm.c<br>
                  index 68ab325..7e9f247 100644<br>
                  --- a/drivers/gpu/drm/amd/display/<wbr>amdgpu_dm/amdgpu_dm.c<br>
                  +++ b/drivers/gpu/drm/amd/display/<wbr>amdgpu_dm/amdgpu_dm.c<br>
                  @@ -3074,7 +3074,8 @@ static int
                  dm_plane_helper_prepare_fb(str<wbr>uct drm_plane
                  *plane,<br>
                                  domain = AMDGPU_GEM_DOMAIN_VRAM;<br>
                          r = amdgpu_bo_pin(rbo, domain,
                  &afb->address);<br>
                  -<br>
                  +       rbo->preferred_domains = domain;<br>
                  +       rbo->allowed_domains = domain;<br>
                          amdgpu_bo_unreserve(rbo);<br>
                          if (unlikely(r != 0)) {<br>
                </blockquote>
                <br>
              </div>
            </div>
            <div class="HOEnZb">
              <div class="h5">
                ______________________________<wbr>_________________<br>
                amd-gfx mailing list<br>
                <a href="mailto:amd-gfx@lists.freedesktop.org"
                  target="_blank" moz-do-not-send="true">amd-gfx@lists.freedesktop.org</a><br>
                <a
                  href="https://lists.freedesktop.org/mailman/listinfo/amd-gfx"
                  rel="noreferrer" target="_blank"
                  moz-do-not-send="true">https://lists.freedesktop.org/<wbr>mailman/listinfo/amd-gfx</a><br>
              </div>
            </div>
          </blockquote>
        </div>
        <br>
      </div>
    </blockquote>
    <br>
  </body>
</html>