st/mesa: ignore gl_texture_object::BaseLevel when allocating gallium textures
authorBrian Paul <brianp@vmware.com>
Thu, 29 Apr 2010 21:32:36 +0000 (15:32 -0600)
committerBrian Paul <brianp@vmware.com>
Fri, 30 Apr 2010 18:33:40 +0000 (12:33 -0600)
commite648d4a1d1c0c5f70916e38366b863f0bec79a62
treebb0471dbdd4a69594d62fb715641eb3f91f77f5d
parente9bf09a98a624e594bdea2503326bb693b8cf9b8
st/mesa: ignore gl_texture_object::BaseLevel when allocating gallium textures

Previously, when we created a gallium texture for a corresponding Mesa
texture we'd only allocate space for mipmap levels >= BaseLevel.

This patch undoes that mechanism.  This fixes a render-to-texture bug
when rendering to level 0 when BaseLevel=1.

Also, it makes sense to allocate the whole texture object memory when
BaseLevel > 0 since a common use of GL_TEXTURE_BASE_LEVEL is to
progressively load/render mipmaps.  Eventually, the app almost always
fills in the level=0 mipmap image.

Finally, the texture image code is bit easier to understand now.
src/mesa/state_tracker/st_atom_sampler.c
src/mesa/state_tracker/st_atom_texture.c
src/mesa/state_tracker/st_cb_fbo.c
src/mesa/state_tracker/st_cb_texture.c
src/mesa/state_tracker/st_gen_mipmap.c
src/mesa/state_tracker/st_texture.c
src/mesa/state_tracker/st_texture.h