summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlex Deucher <alexdeucher@gmail.com>2009-02-03 18:16:06 -0500
committerAlex Deucher <alexdeucher@gmail.com>2009-02-03 18:16:06 -0500
commite78c9ed1ebd4f9b2fdd12303c19c1fd0f0a3f95f (patch)
tree609790627a22a5337b541f0171b2665bf53813e4
parente90be90c47dcac5b183a88d77ba44753aa2c9d76 (diff)
EXA: fix and re-enable Solid() on R7xx
last bit was set in final alu instruction.
-rw-r--r--src/r600_exa.c12
1 files changed, 3 insertions, 9 deletions
diff --git a/src/r600_exa.c b/src/r600_exa.c
index 4d69198..0908e20 100644
--- a/src/r600_exa.c
+++ b/src/r600_exa.c
@@ -89,12 +89,6 @@ R600PrepareSolid(PixmapPtr pPix, int alu, Pixel pm, Pixel fg)
uint32_t a, r, g, b;
float ps_alu_consts[4];
- // FIXME
- // R7xx seems to hang when using PS constants for fg color
- // sending the color as a vertex attribute works
- if (rhdPtr->ChipSet >= RHD_RV770)
- return FALSE;
-
accel_state->dst_mc_addr = exaGetPixmapOffset(pPix) + rhdPtr->FbIntAddress + rhdPtr->FbScanoutStart;
accel_state->dst_size = exaGetPixmapPitch(pPix) * pPix->drawable.height;
accel_state->dst_pitch = exaGetPixmapPitch(pPix) / (pPix->drawable.bitsPerPixel / 8);
@@ -2412,8 +2406,8 @@ R600LoadShaders(ScrnInfoPtr pScrn, ScreenPtr pScreen)
ps[i++] = CF_ALU_DWORD0(ADDR(2),
KCACHE_BANK0(0),
KCACHE_BANK1(0),
- KCACHE_MODE0(0));
- ps[i++] = CF_ALU_DWORD1(KCACHE_MODE1(0),
+ KCACHE_MODE0(SQ_CF_KCACHE_NOP));
+ ps[i++] = CF_ALU_DWORD1(KCACHE_MODE1(SQ_CF_KCACHE_NOP),
KCACHE_ADDR0(0),
KCACHE_ADDR1(0),
I_COUNT(4),
@@ -2529,7 +2523,7 @@ R600LoadShaders(ScrnInfoPtr pScrn, ScreenPtr pScreen)
SRC1_NEG(0),
INDEX_MODE(SQ_INDEX_AR_X),
PRED_SEL(SQ_PRED_SEL_OFF),
- LAST(0));
+ LAST(1));
ps[i++] = ALU_DWORD1_OP2(rhdPtr->ChipSet,
SRC0_ABS(0),
SRC1_ABS(0),