mesa: create/use a fallback texture when bound texture is incomplete
authorBrian Paul <brianp@vmware.com>
Fri, 1 May 2009 15:30:32 +0000 (09:30 -0600)
committerIan Romanick <ian.d.romanick@intel.com>
Mon, 22 Jun 2009 22:15:19 +0000 (15:15 -0700)
commit00e203fe17cbf2127abc422c785cf9fad3232adb
treef925c2f859536a7c87f088191050c964276594d1
parentabfd56c24c821e0dec233348ef01aef5b57f2763
mesa: create/use a fallback texture when bound texture is incomplete

When a GLSL sampler reads from an incomplete texture it should
return (0,0,0,1).  Instead of jumping through hoops in all the drivers
to make this happen, just create/install a fallback texture with those
texel values.

Fixes piglit/fp-incomplete-tex on i965 and more importantly, fixes some
GPU lockups when trying to sample from missing surfaces.  If a binding
table entry is NULL, it seems that sampling sometimes works, but not
always (lockup).

Todo: create a fallback texture for each type of texture target?
(cherry picked from commit 3f25219c7bf0f090502489928f0f018e62c4f6cf)
src/mesa/main/mtypes.h
src/mesa/main/texobj.c
src/mesa/main/texobj.h
src/mesa/main/texstate.c