[Mesa-dev] [PATCH] i915: Set swrast_texture_image::Buffer and ::Map during swrast mapping

Brian Paul brianp at vmware.com
Thu Feb 16 17:29:20 PST 2012


On 02/16/2012 04:48 PM, Eric Anholt wrote:
> On Tue, 14 Feb 2012 10:57:17 -0800, "Ian Romanick"<idr at freedesktop.org>  wrote:
>> From: Ian Romanick<ian.d.romanick at intel.com>
>>
>> Before calling _tnl_run_pipeline, the i915 driver maps all textures
>> used in vertex shaders (via intel_tex_map_images).  Later run_vp tries
>> to map the textures again (via _swrast_map_texture).  However, this
>> just replaces the actual mappings with NULL pointers.  When the
>> pointers are dereferened, a segfault occurs.
>>
>> Setting swrast_texture_image::Buffer in intel_tex_map_images works
>> around the problem, but I have a hard time believing this is the right
>> fix.
>
> Seems to me like the swrast map-things-for-texturing should be using
> MapTextureImage.  Then we wouldn't need the intel
> pre-_tnl_run_pipeline() mapping.

I may have been too hasty with commit 
4bbab2275f792553f8ed6bcebfe6acc4cb4179c2 which removed some tex image 
mapping code from tnl.

The tnl module should probably call ctx->Driver.MapTextureImage() for 
the vertex textures that it needs, like Eric says.

-Brian


More information about the mesa-dev mailing list