|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
f1d64e5 |
From 982c22f16c8eeee9be81779fbfe17d8d3f9b6897 Mon Sep 17 00:00:00 2001
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
f1d64e5 |
From: Adam Jackson <ajax@redhat.com>
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
f1d64e5 |
Date: Thu, 14 Apr 2011 16:04:50 -0400
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
f1d64e5 |
Subject: [PATCH] R520: Fix textures larger than 2k
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
f1d64e5 |
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
f1d64e5 |
Ported from the equivalent fix in Mesa.
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
f1d64e5 |
---
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
f1d64e5 |
src/radeon_exa_render.c | 30 +++++++++++++++++++++++++++---
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
f1d64e5 |
src/radeon_reg.h | 1 +
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
f1d64e5 |
src/radeon_textured_videofuncs.c | 27 ++++++++++++++++++++++++---
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
f1d64e5 |
3 files changed, 52 insertions(+), 6 deletions(-)
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
f1d64e5 |
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
f1d64e5 |
diff --git a/src/radeon_exa_render.c b/src/radeon_exa_render.c
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
f1d64e5 |
index 43d3555..e5c231f 100644
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
f1d64e5 |
--- a/src/radeon_exa_render.c
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
f1d64e5 |
+++ b/src/radeon_exa_render.c
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
f1d64e5 |
@@ -1180,10 +1180,10 @@ static Bool FUNC_NAME(R300TextureSetup)(PicturePtr pPict, PixmapPtr pPix,
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
f1d64e5 |
int unit)
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
f1d64e5 |
{
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
f1d64e5 |
RINFO_FROM_SCREEN(pPix->drawable.pScreen);
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
f1d64e5 |
- uint32_t txfilter, txformat0, txformat1, txoffset, txpitch;
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
f1d64e5 |
+ uint32_t txfilter, txformat0, txformat1, txoffset, txpitch, us_format = 0;
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
f1d64e5 |
int w = pPict->pDrawable->width;
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
f1d64e5 |
int h = pPict->pDrawable->height;
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
f1d64e5 |
- int i, pixel_shift;
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
f1d64e5 |
+ int i, pixel_shift, out_size = 6;
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
f1d64e5 |
unsigned int repeatType = pPict->repeat ? pPict->repeatType : RepeatNone;
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
f1d64e5 |
struct radeon_exa_pixmap_priv *driver_priv;
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
f1d64e5 |
ACCEL_PREAMBLE();
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
f1d64e5 |
@@ -1230,6 +1230,26 @@ static Bool FUNC_NAME(R300TextureSetup)(PicturePtr pPict, PixmapPtr pPix,
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
f1d64e5 |
if (IS_R500_3D && ((h - 1) & 0x800))
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
f1d64e5 |
txpitch |= R500_TXHEIGHT_11;
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
f1d64e5 |
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
f1d64e5 |
+ if (info->ChipFamily == CHIP_FAMILY_R520) {
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
f1d64e5 |
+ unsigned us_width = (w - 1) & 0x7ff;
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
f1d64e5 |
+ unsigned us_height = (h - 1) & 0x7ff;
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
f1d64e5 |
+ unsigned us_depth = 0;
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
f1d64e5 |
+
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
f1d64e5 |
+ if (w > 2048) {
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
f1d64e5 |
+ us_width = (0x7ff + us_width) >> 1;
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
f1d64e5 |
+ us_depth |= 0x0d;
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
f1d64e5 |
+ }
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
f1d64e5 |
+ if (h > 2048) {
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
f1d64e5 |
+ us_height = (0x7ff + us_height) >> 1;
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
f1d64e5 |
+ us_depth |= 0x0e;
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
f1d64e5 |
+ }
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
f1d64e5 |
+
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
f1d64e5 |
+ us_format = (us_width << R300_TXWIDTH_SHIFT) |
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
f1d64e5 |
+ (us_height << R300_TXHEIGHT_SHIFT) |
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
f1d64e5 |
+ (us_depth << R300_TXDEPTH_SHIFT);
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
f1d64e5 |
+ out_size++;
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
f1d64e5 |
+ }
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
f1d64e5 |
+
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
f1d64e5 |
/* Use TXPITCH instead of TXWIDTH for address computations: we could
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
f1d64e5 |
* omit this if there is no padding, but there is no apparent advantage
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
f1d64e5 |
* in doing so.
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
f1d64e5 |
@@ -1276,7 +1296,9 @@ static Bool FUNC_NAME(R300TextureSetup)(PicturePtr pPict, PixmapPtr pPix,
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
f1d64e5 |
RADEON_FALLBACK(("Bad filter 0x%x\n", pPict->filter));
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
f1d64e5 |
}
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
f1d64e5 |
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
f1d64e5 |
- BEGIN_ACCEL_RELOC(repeatType == RepeatNone ? 7 : 6, 1);
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
f1d64e5 |
+ if (repeatType == RepeatNone)
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
f1d64e5 |
+ out_size++;
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
f1d64e5 |
+ BEGIN_ACCEL_RELOC(out_size, 1);
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
f1d64e5 |
OUT_ACCEL_REG(R300_TX_FILTER0_0 + (unit * 4), txfilter);
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
f1d64e5 |
OUT_ACCEL_REG(R300_TX_FILTER1_0 + (unit * 4), 0);
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
f1d64e5 |
OUT_ACCEL_REG(R300_TX_FORMAT0_0 + (unit * 4), txformat0);
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
f1d64e5 |
@@ -1287,6 +1309,8 @@ static Bool FUNC_NAME(R300TextureSetup)(PicturePtr pPict, PixmapPtr pPix,
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
f1d64e5 |
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
f1d64e5 |
if (repeatType == RepeatNone)
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
f1d64e5 |
OUT_ACCEL_REG(R300_TX_BORDER_COLOR_0 + (unit * 4), 0);
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
f1d64e5 |
+ if (info->ChipFamily == CHIP_FAMILY_R520)
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
f1d64e5 |
+ OUT_ACCEL_REG(R500_US_FORMAT0_0 + (unit * 4), us_format);
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
f1d64e5 |
FINISH_ACCEL();
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
f1d64e5 |
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
f1d64e5 |
if (pPict->transform != 0) {
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
f1d64e5 |
diff --git a/src/radeon_reg.h b/src/radeon_reg.h
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
f1d64e5 |
index e61c29d..fbf1558 100644
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
f1d64e5 |
--- a/src/radeon_reg.h
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
f1d64e5 |
+++ b/src/radeon_reg.h
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
f1d64e5 |
@@ -4688,6 +4688,7 @@
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
f1d64e5 |
#define R300_TX_FORMAT0_2 0x4488
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
f1d64e5 |
# define R300_TXWIDTH_SHIFT 0
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
f1d64e5 |
# define R300_TXHEIGHT_SHIFT 11
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
f1d64e5 |
+# define R300_TXDEPTH_SHIFT 22
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
f1d64e5 |
# define R300_NUM_LEVELS_SHIFT 26
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
f1d64e5 |
# define R300_NUM_LEVELS_MASK 0x
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
f1d64e5 |
# define R300_TXPROJECTED (1 << 30)
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
f1d64e5 |
diff --git a/src/radeon_textured_videofuncs.c b/src/radeon_textured_videofuncs.c
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
f1d64e5 |
index a22c416..84aba6f 100644
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
f1d64e5 |
--- a/src/radeon_textured_videofuncs.c
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
f1d64e5 |
+++ b/src/radeon_textured_videofuncs.c
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
f1d64e5 |
@@ -2661,11 +2661,11 @@ FUNC_NAME(R500PrepareTexturedVideo)(ScrnInfoPtr pScrn, RADEONPortPrivPtr pPriv)
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
f1d64e5 |
PixmapPtr pPixmap = pPriv->pPixmap;
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
f1d64e5 |
struct radeon_exa_pixmap_priv *driver_priv;
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
f1d64e5 |
struct radeon_bo *src_bo = pPriv->src_bo[pPriv->currentBuffer];
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
f1d64e5 |
- uint32_t txfilter, txformat0, txformat1, txoffset, txpitch;
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
f1d64e5 |
+ uint32_t txfilter, txformat0, txformat1, txoffset, txpitch, us_format = 0;
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
f1d64e5 |
uint32_t dst_pitch, dst_format;
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
f1d64e5 |
uint32_t txenable, colorpitch, bicubic_offset;
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
f1d64e5 |
uint32_t output_fmt;
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
f1d64e5 |
- int pixel_shift;
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
f1d64e5 |
+ int pixel_shift, out_size = 6;
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
f1d64e5 |
ACCEL_PREAMBLE();
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
f1d64e5 |
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
f1d64e5 |
#ifdef XF86DRM_MODE
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
f1d64e5 |
@@ -2791,15 +2791,36 @@ FUNC_NAME(R500PrepareTexturedVideo)(ScrnInfoPtr pScrn, RADEONPortPrivPtr pPriv)
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
f1d64e5 |
if ((pPriv->h - 1) & 0x800)
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
f1d64e5 |
txpitch |= R500_TXHEIGHT_11;
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
f1d64e5 |
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
f1d64e5 |
+ if (info->ChipFamily == CHIP_FAMILY_R520) {
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
f1d64e5 |
+ unsigned us_width = (pPriv->w - 1) & 0x7ff;
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
f1d64e5 |
+ unsigned us_height = (pPriv->h - 1) & 0x7ff;
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
f1d64e5 |
+ unsigned us_depth = 0;
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
f1d64e5 |
+
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
f1d64e5 |
+ if (pPriv->w > 2048) {
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
f1d64e5 |
+ us_width = (0x7ff + us_width) >> 1;
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
f1d64e5 |
+ us_depth |= 0x0d;
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
f1d64e5 |
+ }
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
f1d64e5 |
+ if (pPriv->h > 2048) {
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
f1d64e5 |
+ us_height = (0x7ff + us_height) >> 1;
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
f1d64e5 |
+ us_depth |= 0x0e;
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
f1d64e5 |
+ }
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
f1d64e5 |
+ us_format = (us_width << R300_TXWIDTH_SHIFT) |
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
f1d64e5 |
+ (us_height << R300_TXHEIGHT_SHIFT) |
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
f1d64e5 |
+ (us_depth << R300_TXDEPTH_SHIFT);
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
f1d64e5 |
+ out_size++;
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
f1d64e5 |
+ }
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
f1d64e5 |
+
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
f1d64e5 |
txoffset = info->cs ? 0 : pPriv->src_offset;
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
f1d64e5 |
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
f1d64e5 |
- BEGIN_ACCEL_RELOC(6, 1);
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
f1d64e5 |
+ BEGIN_ACCEL_RELOC(out_size, 1);
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
f1d64e5 |
OUT_ACCEL_REG(R300_TX_FILTER0_0, txfilter);
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
f1d64e5 |
OUT_ACCEL_REG(R300_TX_FILTER1_0, 0);
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
f1d64e5 |
OUT_ACCEL_REG(R300_TX_FORMAT0_0, txformat0);
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
f1d64e5 |
OUT_ACCEL_REG(R300_TX_FORMAT1_0, txformat1);
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
f1d64e5 |
OUT_ACCEL_REG(R300_TX_FORMAT2_0, txpitch);
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
f1d64e5 |
OUT_TEXTURE_REG(R300_TX_OFFSET_0, txoffset, src_bo);
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
f1d64e5 |
+ if (info->ChipFamily == CHIP_FAMILY_R520)
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
f1d64e5 |
+ OUT_ACCEL_REG(R500_US_FORMAT0_0, us_format);
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
f1d64e5 |
FINISH_ACCEL();
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
f1d64e5 |
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
f1d64e5 |
txenable = R300_TEX_0_ENABLE;
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
f1d64e5 |
--
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
f1d64e5 |
1.7.4.4
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
f1d64e5 |
|