diff options
author | Dave Airlie <airlied@redhat.com> | 2009-08-17 12:17:31 +1000 |
---|---|---|
committer | Dave Airlie <airlied@itt42.(none)> | 2009-08-17 12:17:31 +1000 |
commit | 36e51c4d63836863dd7a17cbf6e5a9b7c1bbd31a (patch) | |
tree | f77b0c1d50430413dc90eeebda386ec1a19895bc /src/radeon_exa_render.c | |
parent | 595f7c3a60ca982ca2836a0174e1f36f9d1a4fec (diff) |
r100/r200: dont emit wrong clamp modes.
for rect textures you don't want to use wrap clamping which
is the default.
Diffstat (limited to 'src/radeon_exa_render.c')
-rw-r--r-- | src/radeon_exa_render.c | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/src/radeon_exa_render.c b/src/radeon_exa_render.c index c35ecba8..4dbdc147 100644 --- a/src/radeon_exa_render.c +++ b/src/radeon_exa_render.c @@ -410,8 +410,7 @@ static Bool FUNC_NAME(R100TextureSetup)(PicturePtr pPict, PixmapPtr pPix, RADEON_FALLBACK(("Bad filter 0x%x\n", pPict->filter)); } - if (repeat) { - switch (pPict->repeatType) { + switch (pPict->repeatType) { case RepeatNormal: txfilter |= RADEON_CLAMP_S_WRAP | RADEON_CLAMP_T_WRAP; break; @@ -422,9 +421,10 @@ static Bool FUNC_NAME(R100TextureSetup)(PicturePtr pPict, PixmapPtr pPix, txfilter |= RADEON_CLAMP_S_MIRROR | RADEON_CLAMP_T_MIRROR; break; case RepeatNone: - /* Nothing to do */ + /* don't set an illegal clamp mode for rects */ + if (txformat & RADEON_TXFORMAT_NON_POWER2) + txfilter |= RADEON_CLAMP_S_CLAMP_LAST | RADEON_CLAMP_T_CLAMP_LAST; break; - } } BEGIN_ACCEL_RELOC(5, 1); @@ -793,8 +793,7 @@ static Bool FUNC_NAME(R200TextureSetup)(PicturePtr pPict, PixmapPtr pPix, RADEON_FALLBACK(("Bad filter 0x%x\n", pPict->filter)); } - if (repeat) { - switch (pPict->repeatType) { + switch (pPict->repeatType) { case RepeatNormal: txfilter |= R200_CLAMP_S_WRAP | R200_CLAMP_T_WRAP; break; @@ -805,9 +804,10 @@ static Bool FUNC_NAME(R200TextureSetup)(PicturePtr pPict, PixmapPtr pPix, txfilter |= R200_CLAMP_S_MIRROR | R200_CLAMP_T_MIRROR; break; case RepeatNone: - /* Nothing to do */ + /* don't set an illegal clamp mode for rect textures */ + if (txformat & R200_TXFORMAT_NON_POWER2) + txfilter |= R200_CLAMP_S_CLAMP_LAST | R200_CLAMP_T_CLAMP_LAST; break; - } } BEGIN_ACCEL_RELOC(6, 1); |