[Mesa-dev] [PATCH 02/27] i965/miptree: Remove redundant check for null texture

Jason Ekstrand jason at jlekstrand.net
Mon Jan 16 16:33:09 UTC 2017


On Mon, Jan 16, 2017 at 1:13 AM, Topi Pohjolainen <
topi.pohjolainen at gmail.com> wrote:

> There exact same check earlier in brw_miptree_layout() which
> intel_miptree_create_layout() in turn calls unconditionally.
>
> Signed-off-by: Topi Pohjolainen <topi.pohjolainen at intel.com>
> ---
>  src/mesa/drivers/dri/i965/intel_mipmap_tree.c | 7 +------
>  1 file changed, 1 insertion(+), 6 deletions(-)
>
> diff --git a/src/mesa/drivers/dri/i965/intel_mipmap_tree.c
> b/src/mesa/drivers/dri/i965/intel_mipmap_tree.c
> index 25f8f39..9488bec 100644
> --- a/src/mesa/drivers/dri/i965/intel_mipmap_tree.c
> +++ b/src/mesa/drivers/dri/i965/intel_mipmap_tree.c
> @@ -628,13 +628,8 @@ miptree_create(struct brw_context *brw,
>                                      first_level, last_level, width0,
>                                      height0, depth0, num_samples,
>                                      layout_flags);
> -   /*
> -    * pitch == 0 || height == 0  indicates the null texture
> -    */
> -   if (!mt || !mt->total_width || !mt->total_height) {
> -      intel_miptree_release(&mt);
> +   if (!mt)
>        return NULL;
>

Ugh... Not quite.  More miptree nastiness!  Looking through the code,
brw_miptree_layout does do this check and unrefs the miptree but has no way
of indicating to higher levels that it has unref'd the miptree!  In other
words, if that ever happens, the aux_disable lines at the end of
intel_miptree_create_layout will read/write freed memory and
intel_miptree_create_layout will a valid-looking (but freed) pointer.


> -   }
>
>     if (mt->tiling == (I915_TILING_Y | I915_TILING_X))
>        mt->tiling = I915_TILING_Y;
> --
> 2.5.5
>
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/mesa-dev
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/mesa-dev/attachments/20170116/995f6a47/attachment-0001.html>


More information about the mesa-dev mailing list