This has some interesting implications...

>From the Sky Lake PRM, Vol 7, section "Vertex XY Clamping and Quantization",

> In addition, in order to be correctly rendered, objects must have a
screenspace
> bounding box not exceeding 8K in the X or Y direction. This additional
restriction
> must also be comprehended by software, i.e., enforced by use of clipping.

This seems to imply that you can't render a single primitive that's larger
than 8K which would imply that you can't really have a render target that
large.  The text dates back to at least Sandy Bridge so it may be
out-of-date.

I did a little archaeology and found out that, in January of 2013, commit
416326e33, Eric updated our guardband settings to follow this rule to fix a
GTF clip test on Ivy Bridge.  In August of 2014, commit 0bac2551e4041, Ken
disabled the guardband clip test for the case where the viewport is larger
than the guardband to fix some ES3 conformance tests.  Given my (admittedly
a bit shaky) understanding of clipping, both of these make sense in a world
with 8Kx8K framebuffers but not with 16Kx16K given the PRM text.

Have you run the CTS at 16Kx16K yet?  Have you seen any issues doing so?

On Wed, Nov 30, 2016 at 8:12 PM, Jordan Justen <jordan.l.jus...@intel.com>
wrote:

> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=98297
> Signed-off-by: Jordan Justen <jordan.l.jus...@intel.com>
> ---
>  src/mesa/drivers/dri/i965/brw_context.c | 13 ++++++++++---
>  1 file changed, 10 insertions(+), 3 deletions(-)
>
> diff --git a/src/mesa/drivers/dri/i965/brw_context.c
> b/src/mesa/drivers/dri/i965/brw_context.c
> index b928f94..4ca77c7 100644
> --- a/src/mesa/drivers/dri/i965/brw_context.c
> +++ b/src/mesa/drivers/dri/i965/brw_context.c
> @@ -527,14 +527,21 @@ brw_initialize_context_constants(struct brw_context
> *brw)
>
>     ctx->Const.MaxTextureCoordUnits = 8; /* Mesa limit */
>     ctx->Const.MaxImageUnits = MAX_IMAGE_UNITS;
> -   ctx->Const.MaxRenderbufferSize = 8192;
> -   ctx->Const.MaxTextureLevels = MIN2(14 /* 8192 */, MAX_TEXTURE_LEVELS);
> +   if (brw->gen >= 7) {
> +      ctx->Const.MaxRenderbufferSize = 16384;
> +      ctx->Const.MaxTextureLevels = MIN2(15 /* 16384 */,
> MAX_TEXTURE_LEVELS);
> +      ctx->Const.MaxCubeTextureLevels = 15; /* 16384 */
> +   } else {
> +      ctx->Const.MaxRenderbufferSize = 8192;
> +      ctx->Const.MaxTextureLevels = MIN2(14 /* 8192 */,
> MAX_TEXTURE_LEVELS);
> +      ctx->Const.MaxCubeTextureLevels = 14; /* 8192 */
> +   }
>     ctx->Const.Max3DTextureLevels = 12; /* 2048 */
> -   ctx->Const.MaxCubeTextureLevels = 14; /* 8192 */
>     ctx->Const.MaxArrayTextureLayers = brw->gen >= 7 ? 2048 : 512;
>     ctx->Const.MaxTextureMbytes = 1536;
>     ctx->Const.MaxTextureRectSize = 1 << 12;
>     ctx->Const.MaxTextureMaxAnisotropy = 16.0;
> +   ctx->Const.MaxTextureLodBias = 15.0;
>     ctx->Const.StripTextureBorder = true;
>     if (brw->gen >= 7) {
>        ctx->Const.MaxProgramTextureGatherComponents = 4;
> --
> 2.10.2
>
> _______________________________________________
> mesa-dev mailing list
> mesa-dev@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/mesa-dev
>
_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to