i915: fallback for cube map texture.
authorXiang, Haihao <haihao.xiang@intel.com>
Thu, 11 Dec 2008 06:03:00 +0000 (14:03 +0800)
committerXiang, Haihao <haihao.xiang@intel.com>
Thu, 11 Dec 2008 06:03:00 +0000 (14:03 +0800)
The i915 (and related graphics cores) only support TEXCOORDMODE_CLAMP and
TEXCOORDMODE_CUBE when using cube map texture coordinates, so fall back to
software rendering for other modes to avoid potential gpu hang issue. This
fixes scorched3d issue on 945GM(see bug 14539).

src/mesa/drivers/dri/i915/i915_texstate.c

index d1b0dcdf319cad7693d0bf348593189c9311b83d..d53e2cbd5aa288a94c81e9f28f19fa3c6d532e4b 100644 (file)
@@ -295,6 +295,13 @@ i915_update_tex_unit(struct intel_context *intel, GLuint unit, GLuint ss3)
            wt == GL_CLAMP_TO_BORDER || wr == GL_CLAMP_TO_BORDER))
          return GL_FALSE;
 
+      /* Only support TEXCOORDMODE_CLAMP_EDGE and TEXCOORDMODE_CUBE (not 
+       * used) when using cube map texture coordinates
+       */
+      if (tObj->Target == GL_TEXTURE_CUBE_MAP_ARB &&
+          (((ws != GL_CLAMP) && (ws != GL_CLAMP_TO_EDGE)) ||
+           ((wr != GL_CLAMP) && (wr != GL_CLAMP_TO_EDGE))))
+          return GL_FALSE;
 
       state[I915_TEXREG_SS3] = ss3;     /* SS3_NORMALIZED_COORDS */