From: Patrick Rudolph Date: Tue, 12 May 2015 18:07:09 +0000 (+0200) Subject: st/nine: Fix GenerateMipSubLevels potential crash X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=bb1c2c2aa3b15ee1fdf8b8085cc1ca9f8ef04ed9;p=mesa.git st/nine: Fix GenerateMipSubLevels potential crash For the case of D3DPOOL_MANAGED textures, This->base.resource can be NULL at the start of the function. In This case, UploadSelf will take care of the defining. Assign resource after the UploadSelf call to prevent NULL pointer exception. Reviewed-by: Axel Davy Signed-off-by: Patrick Rudolph --- diff --git a/src/gallium/state_trackers/nine/basetexture9.c b/src/gallium/state_trackers/nine/basetexture9.c index 110df79769e..48fccb242bb 100644 --- a/src/gallium/state_trackers/nine/basetexture9.c +++ b/src/gallium/state_trackers/nine/basetexture9.c @@ -385,8 +385,7 @@ NineBaseTexture9_UploadSelf( struct NineBaseTexture9 *This ) void WINAPI NineBaseTexture9_GenerateMipSubLevels( struct NineBaseTexture9 *This ) { - struct pipe_resource *resource = This->base.resource; - + struct pipe_resource *resource; unsigned base_level = 0; unsigned last_level = This->base.info.last_level - This->managed.lod; unsigned first_layer = 0; @@ -409,6 +408,8 @@ NineBaseTexture9_GenerateMipSubLevels( struct NineBaseTexture9 *This ) last_layer = util_max_layer(This->view[0]->texture, base_level); + resource = This->base.resource; + util_gen_mipmap(This->pipe, resource, resource->format, base_level, last_level, first_layer, last_layer, filter);