[Mesa-dev] [PATCH] intel: Be more conservative in disabling tiling to save memory.
Daniel Vetter
daniel at ffwll.ch
Fri Apr 26 08:08:13 PDT 2013
On Thu, Apr 25, 2013 at 03:41:01PM -0700, Eric Anholt wrote:
> Improves GLB2.7 trex performance 1.01985% +/- 0.721366% on my IVB (n=10)
> and by 3.38771% +/- 0.584241% (n=15) on my HSW, due to a 32x32 ARGB8888
> cubemap going from untiled to tiled.
> ---
> src/mesa/drivers/dri/intel/intel_mipmap_tree.c | 8 +++++---
> 1 file changed, 5 insertions(+), 3 deletions(-)
>
> diff --git a/src/mesa/drivers/dri/intel/intel_mipmap_tree.c b/src/mesa/drivers/dri/intel/intel_mipmap_tree.c
> index 98f1e98..12a4a22 100644
> --- a/src/mesa/drivers/dri/intel/intel_mipmap_tree.c
> +++ b/src/mesa/drivers/dri/intel/intel_mipmap_tree.c
> @@ -345,11 +345,13 @@ intel_miptree_choose_tiling(struct intel_context *intel,
> base_format == GL_DEPTH_STENCIL_EXT))
> return I915_TILING_Y;
>
> - /* If the width is smaller than a tile, don't bother tiling. */
> - if (width0 < 64)
> + int minimum_pitch = mt->total_width * mt->cpp;
> +
> + /* If the width is much smaller than a tile, don't bother tiling. */
> + if (minimum_pitch < 64)
> return I915_TILING_NONE;
The old limit made sense for X-tiled and dword-size pixels, so shouldn't
we move this around a bit and keep a break of 256b for X-tiled and 64b
when Y-tiling is possible?
Otoh only pre-gen6 would care, so meh. Either way
Reviewed-by: Daniel Vetter <daniel.vetter at ffwll.ch>
>
> - if (ALIGN(mt->total_width * mt->cpp, 512) >= 32768) {
> + if (ALIGN(minimum_pitch, 512) >= 32768) {
> perf_debug("%dx%d miptree too large to blit, falling back to untiled",
> mt->total_width, mt->total_height);
> return I915_TILING_NONE;
> --
> 1.7.10.4
>
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/mesa-dev
--
Daniel Vetter
Software Engineer, Intel Corporation
+41 (0) 79 365 57 48 - http://blog.ffwll.ch
More information about the mesa-dev
mailing list