[Mesa-dev] [PATCH 3/3] Revert "i965: Drop the maximum 3D texture size to 512 on Sandy Bridge"

Chad Versace chadversary at chromium.org
Mon Sep 12 23:46:40 UTC 2016


On Mon 12 Sep 2016, Kenneth Graunke wrote:
> On Monday, September 12, 2016 3:16:31 PM PDT Jason Ekstrand wrote:
> > This reverts commit 6ba88bce64b343761aabe3a6c7ee285c6020a959.  The commit
> > was erroneous because GL already provides a separate guard on the number of
> > layers you are allowed to render into.  On Sandy Bridge, we set this guard
> > correctly so creating a 3D texture bigger than 512 is fine, you just can't
> > render into all of the slices at once.
> > 
> > Signed-off-by: Jason Ekstrand <jason at jlekstrand.net>
> > ---
> >  src/mesa/drivers/dri/i965/brw_context.c | 11 +----------
> >  1 file changed, 1 insertion(+), 10 deletions(-)
> > 
> > diff --git a/src/mesa/drivers/dri/i965/brw_context.c b/src/mesa/drivers/dri/i965/brw_context.c
> > index c28401a..3af4555 100644
> > --- a/src/mesa/drivers/dri/i965/brw_context.c
> > +++ b/src/mesa/drivers/dri/i965/brw_context.c
> > @@ -524,16 +524,7 @@ brw_initialize_context_constants(struct brw_context *brw)
> >     ctx->Const.MaxImageUnits = MAX_IMAGE_UNITS;
> >     ctx->Const.MaxRenderbufferSize = 8192;
> >     ctx->Const.MaxTextureLevels = MIN2(14 /* 8192 */, MAX_TEXTURE_LEVELS);
> > -
> > -   /* On Sandy Bridge and prior, the "Render Target View Extent" field of
> > -    * RENDER_SURFACE_STATE is only 9 bits so the largest 3-D texture we can do
> > -    * a layered render into has a depth of 512.  On Iron Lake and earlier, we
> > -    * don't support layered rendering and we use manual offsetting to render
> > -    * into the different layers so this doesn't matter.  On Sandy Bridge,
> > -    * however, we do support layered rendering so this is a problem.
> > -    */
> > -   ctx->Const.Max3DTextureLevels = brw->gen == 6 ? 10 /* 512 */ : 12; /* 2048 */
> > -
> > +   ctx->Const.Max3DTextureLevels = 12; /* 2048 */
> >     ctx->Const.MaxCubeTextureLevels = 14; /* 8192 */
> >     ctx->Const.MaxArrayTextureLayers = brw->gen >= 7 ? 2048 : 512;
> >     ctx->Const.MaxTextureMbytes = 1536;
> > 
> 
> To clarify...that limit is GL_MAX_FRAMEBUFFER_LAYERS.

Good. If the limit is GL_MAX_FRAMEBUFFER_LAYERS, then I agree with this
patch.

Reviewed-by: Chad Versace <chadversary at chromium.org>


More information about the mesa-dev mailing list