Module: Mesa
Branch: 7.10
Commit: e5408efb20327c46fe67d35e18348ddd6300e282
URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=e5408efb20327c46fe67d35e18348ddd6300e282

Author: Marek Olšák <mar...@gmail.com>
Date:   Thu Jun  9 04:23:14 2011 +0200

r300g: fix texturing with non-3D textures and wrap R mode set to sample border

If the wrap R (3rd) mode is set to CLAMP or CLAMP_TO_BORDER and the texture
isn't 3D, r300 always samples the border color regardless of texture
coordinates.

I HATE THIS HARDWARE.

NOTE: This is a candidate for the 7.10 branch.
(cherry picked from commit da8b4c07986e202b0596b729a5eec31c9aec5fcc)

Conflicts:

        src/gallium/drivers/r300/r300_state_derived.c

---

 src/gallium/drivers/r300/r300_state_derived.c |    6 ++++++
 1 files changed, 6 insertions(+), 0 deletions(-)

diff --git a/src/gallium/drivers/r300/r300_state_derived.c 
b/src/gallium/drivers/r300/r300_state_derived.c
index d5fc8ec..e833d3d 100644
--- a/src/gallium/drivers/r300/r300_state_derived.c
+++ b/src/gallium/drivers/r300/r300_state_derived.c
@@ -782,6 +782,12 @@ static void r300_merge_textures_and_samplers(struct 
r300_context* r300)
                 texstate->filter0 |= R300_TX_WRAP_T(R300_TX_CLAMP_TO_EDGE);
             }
 
+            /* The hardware doesn't like CLAMP and CLAMP_TO_BORDER
+             * for the 3rd coordinate if the texture isn't 3D. */
+            if (tex->desc.b.b.target != PIPE_TEXTURE_3D) {
+                texstate->filter0 &= ~R300_TX_WRAP_R_MASK;
+            }
+
             if (tex->desc.is_npot) {
                 /* NPOT textures don't support mip filter, unfortunately.
                  * This prevents incorrect rendering. */

_______________________________________________
mesa-commit mailing list
mesa-commit@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-commit

Reply via email to