Re: [Intel-gfx] [PATCH v4 8/8] drm/i915: Bump gen7+ fb size limits to 16kx16k
On Thu, May 16, 2019 at 06:33:21PM +0200, Maarten Lankhorst wrote: > Op 09-05-2019 om 14:21 schreef Ville Syrjala: > > From: Ville Syrjälä > > > > With gtt remapping in place we can use arbitrarily large > > framebuffers. Let's bump the limits to 16kx16k on gen7+. > > The limit was chosen to match the maximum 2D surface size > > of the 3D engine. > > > > With the remapping we could easily go higher than that for the > > display engine. However the modesetting ddx will blindly assume > > it can handle whatever is reported via kms. The oversized > > buffer dimensions are not caught by glamor nor Mesa until > > finally an assert will trip when genxml attempts to pack the > > SURFACE_STATE. So we pick a safe limit to avoid the X server > > from crashing (or potentially misbehaving if the genxml asserts > > are compiled out). > > > > Reviewed-by: Daniel Vetter > > Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=110187 > > Signed-off-by: Ville Syrjälä > > --- > > drivers/gpu/drm/i915/intel_display.c | 18 -- > > 1 file changed, 12 insertions(+), 6 deletions(-) > > > > diff --git a/drivers/gpu/drm/i915/intel_display.c > > b/drivers/gpu/drm/i915/intel_display.c > > index a2e4ef938d53..a495fd2dcaa3 100644 > > --- a/drivers/gpu/drm/i915/intel_display.c > > +++ b/drivers/gpu/drm/i915/intel_display.c > > @@ -15783,16 +15783,22 @@ int intel_modeset_init(struct drm_device *dev) > > } > > } > > > > - /* maximum framebuffer dimensions */ > > - if (IS_GEN(dev_priv, 2)) { > > - dev->mode_config.max_width = 2048; > > - dev->mode_config.max_height = 2048; > > + /* > > +* Maximum framebuffer dimensions, chosen to match > > +* the maximum render engine surface size on gen4+. > > +*/ > > + if (INTEL_GEN(dev_priv) >= 7) { > > + dev->mode_config.max_width = 16384; > > + dev->mode_config.max_height = 16384; > > + } else if (INTEL_GEN(dev_priv) >= 4) { > > + dev->mode_config.max_width = 8192; > > + dev->mode_config.max_height = 8192; > > } else if (IS_GEN(dev_priv, 3)) { > > dev->mode_config.max_width = 4096; > > dev->mode_config.max_height = 4096; > > } else { > > - dev->mode_config.max_width = 8192; > > - dev->mode_config.max_height = 8192; > > + dev->mode_config.max_width = 2048; > > + dev->mode_config.max_height = 2048; > > } > > > > if (IS_I845G(dev_priv) || IS_I865G(dev_priv)) { > > Should be good enough, lets not go too crazy. :) > > For whole series: > > Reviewed-by: Maarten Lankhorst Yay! Everything rb'd so series pushed to dinq. Thanks for the reviews everyone. -- Ville Syrjälä Intel ___ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx
Re: [Intel-gfx] [PATCH v4 8/8] drm/i915: Bump gen7+ fb size limits to 16kx16k
Op 09-05-2019 om 14:21 schreef Ville Syrjala: > From: Ville Syrjälä > > With gtt remapping in place we can use arbitrarily large > framebuffers. Let's bump the limits to 16kx16k on gen7+. > The limit was chosen to match the maximum 2D surface size > of the 3D engine. > > With the remapping we could easily go higher than that for the > display engine. However the modesetting ddx will blindly assume > it can handle whatever is reported via kms. The oversized > buffer dimensions are not caught by glamor nor Mesa until > finally an assert will trip when genxml attempts to pack the > SURFACE_STATE. So we pick a safe limit to avoid the X server > from crashing (or potentially misbehaving if the genxml asserts > are compiled out). > > Reviewed-by: Daniel Vetter > Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=110187 > Signed-off-by: Ville Syrjälä > --- > drivers/gpu/drm/i915/intel_display.c | 18 -- > 1 file changed, 12 insertions(+), 6 deletions(-) > > diff --git a/drivers/gpu/drm/i915/intel_display.c > b/drivers/gpu/drm/i915/intel_display.c > index a2e4ef938d53..a495fd2dcaa3 100644 > --- a/drivers/gpu/drm/i915/intel_display.c > +++ b/drivers/gpu/drm/i915/intel_display.c > @@ -15783,16 +15783,22 @@ int intel_modeset_init(struct drm_device *dev) > } > } > > - /* maximum framebuffer dimensions */ > - if (IS_GEN(dev_priv, 2)) { > - dev->mode_config.max_width = 2048; > - dev->mode_config.max_height = 2048; > + /* > + * Maximum framebuffer dimensions, chosen to match > + * the maximum render engine surface size on gen4+. > + */ > + if (INTEL_GEN(dev_priv) >= 7) { > + dev->mode_config.max_width = 16384; > + dev->mode_config.max_height = 16384; > + } else if (INTEL_GEN(dev_priv) >= 4) { > + dev->mode_config.max_width = 8192; > + dev->mode_config.max_height = 8192; > } else if (IS_GEN(dev_priv, 3)) { > dev->mode_config.max_width = 4096; > dev->mode_config.max_height = 4096; > } else { > - dev->mode_config.max_width = 8192; > - dev->mode_config.max_height = 8192; > + dev->mode_config.max_width = 2048; > + dev->mode_config.max_height = 2048; > } > > if (IS_I845G(dev_priv) || IS_I865G(dev_priv)) { Should be good enough, lets not go too crazy. :) For whole series: Reviewed-by: Maarten Lankhorst ___ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx
[Intel-gfx] [PATCH v4 8/8] drm/i915: Bump gen7+ fb size limits to 16kx16k
From: Ville Syrjälä With gtt remapping in place we can use arbitrarily large framebuffers. Let's bump the limits to 16kx16k on gen7+. The limit was chosen to match the maximum 2D surface size of the 3D engine. With the remapping we could easily go higher than that for the display engine. However the modesetting ddx will blindly assume it can handle whatever is reported via kms. The oversized buffer dimensions are not caught by glamor nor Mesa until finally an assert will trip when genxml attempts to pack the SURFACE_STATE. So we pick a safe limit to avoid the X server from crashing (or potentially misbehaving if the genxml asserts are compiled out). Reviewed-by: Daniel Vetter Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=110187 Signed-off-by: Ville Syrjälä --- drivers/gpu/drm/i915/intel_display.c | 18 -- 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c index a2e4ef938d53..a495fd2dcaa3 100644 --- a/drivers/gpu/drm/i915/intel_display.c +++ b/drivers/gpu/drm/i915/intel_display.c @@ -15783,16 +15783,22 @@ int intel_modeset_init(struct drm_device *dev) } } - /* maximum framebuffer dimensions */ - if (IS_GEN(dev_priv, 2)) { - dev->mode_config.max_width = 2048; - dev->mode_config.max_height = 2048; + /* +* Maximum framebuffer dimensions, chosen to match +* the maximum render engine surface size on gen4+. +*/ + if (INTEL_GEN(dev_priv) >= 7) { + dev->mode_config.max_width = 16384; + dev->mode_config.max_height = 16384; + } else if (INTEL_GEN(dev_priv) >= 4) { + dev->mode_config.max_width = 8192; + dev->mode_config.max_height = 8192; } else if (IS_GEN(dev_priv, 3)) { dev->mode_config.max_width = 4096; dev->mode_config.max_height = 4096; } else { - dev->mode_config.max_width = 8192; - dev->mode_config.max_height = 8192; + dev->mode_config.max_width = 2048; + dev->mode_config.max_height = 2048; } if (IS_I845G(dev_priv) || IS_I865G(dev_priv)) { -- 2.21.0 ___ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx