i915: Accelerate depth textures with border color.

The fallback was introduced to fix bug #16697, but made the test it was
fixing run excessively long.
This commit is contained in:
Eric Anholt
2008-10-08 23:34:38 -07:00
parent a71b1af5ad
commit 9aec1288ee
2 changed files with 16 additions and 8 deletions
+15 -4
View File
@@ -307,10 +307,21 @@ i915_update_tex_unit(struct intel_context *intel, GLuint unit, GLuint ss3)
}
state[I915_TEXREG_SS4] = INTEL_PACKCOLOR8888(tObj->_BorderChan[0],
tObj->_BorderChan[1],
tObj->_BorderChan[2],
tObj->_BorderChan[3]);
if (firstImage->_BaseFormat == GL_DEPTH_COMPONENT) {
/* GL specs that border color for depth textures is taken from the
* R channel, while the hardware uses A. Spam R into all the channels
* for safety.
*/
state[I915_TEXREG_SS4] = INTEL_PACKCOLOR8888(tObj->_BorderChan[0],
tObj->_BorderChan[0],
tObj->_BorderChan[0],
tObj->_BorderChan[0]);
} else {
state[I915_TEXREG_SS4] = INTEL_PACKCOLOR8888(tObj->_BorderChan[0],
tObj->_BorderChan[1],
tObj->_BorderChan[2],
tObj->_BorderChan[3]);
}
I915_ACTIVESTATE(i915, I915_UPLOAD_TEX(unit), GL_TRUE);
@@ -141,10 +141,7 @@ intel_finalize_mipmap_tree(struct intel_context *intel, GLuint unit)
/* Fallback case:
*/
if (firstImage->base.Border ||
((firstImage->base._BaseFormat == GL_DEPTH_COMPONENT) &&
((tObj->WrapS == GL_CLAMP_TO_BORDER) ||
(tObj->WrapT == GL_CLAMP_TO_BORDER)))) {
if (firstImage->base.Border) {
if (intelObj->mt) {
intel_miptree_release(intel, &intelObj->mt);
}