[Mesa-dev] [Mesa-stable] [PATCH v2 01/64] i965: Drop the maximum 3D texture size to 512 on Sandy Bridge
Ian Romanick
idr at freedesktop.org
Wed Jun 22 19:09:30 UTC 2016
This patch is
Reviewed-by: Ian Romanick <ian.d.romanick at intel.com>
On 06/21/2016 03:45 PM, Jason Ekstrand wrote:
> The RenderTargetViewExtent field of RENDER_SURFACE_STATE is supposed to be
> set to the depth of a 3-D texture when rendering. Unfortunatley, that
> field is only 9 bits on Sandy Bridge and prior so we can't actually bind
> a 3-D texturing for rendering if it has depth > 512. On Ivy Bridge, this
> field was bumpped to 11 bits so we can go all the way up to 2048. On Iron
> Lake and prior, we don't support layered rendering and we use OffsetX/Y
> hacks to render to particular layers so 2048 is ok there too.
>
> Cc: "11.1 11.2 12.0" <mesa-stable at lists.freedesktop.org>
> Cc: Ian Romanick <idr at freedesktop.org>
>
> ---
> src/mesa/drivers/dri/i965/brw_context.c | 11 ++++++++++-
> 1 file changed, 10 insertions(+), 1 deletion(-)
>
> diff --git a/src/mesa/drivers/dri/i965/brw_context.c b/src/mesa/drivers/dri/i965/brw_context.c
> index f7c7874..c7a66cb 100644
> --- a/src/mesa/drivers/dri/i965/brw_context.c
> +++ b/src/mesa/drivers/dri/i965/brw_context.c
> @@ -467,7 +467,16 @@ 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);
> - ctx->Const.Max3DTextureLevels = 12; /* 2048 */
> +
> + /* 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.MaxCubeTextureLevels = 14; /* 8192 */
> ctx->Const.MaxArrayTextureLayers = brw->gen >= 7 ? 2048 : 512;
> ctx->Const.MaxTextureMbytes = 1536;
>
More information about the mesa-dev
mailing list