diff options
author | Eric Anholt <anholt@freebsd.org> | 2003-12-27 10:46:55 +0000 |
---|---|---|
committer | Eric Anholt <anholt@freebsd.org> | 2003-12-27 10:46:55 +0000 |
commit | afd080a9cc746f297aa8b97aedf0d230367e6719 (patch) | |
tree | 64e0d849e01ae17cd3ec8678c97ce6f0bbfc4d77 | |
parent | 92ab7214593061fa57d5cdd829dc98de6434ef7c (diff) |
Properly initialize texture registers in Blend. Fixes problems with
blending code such as whiteness in test-render, or no blending at all.
Tested by: andersca
-rw-r--r-- | hw/kdrive/ati/ati_reg.h | 11 | ||||
-rw-r--r-- | hw/kdrive/ati/r128_blendtmp.h | 4 |
2 files changed, 13 insertions, 2 deletions
diff --git a/hw/kdrive/ati/ati_reg.h b/hw/kdrive/ati/ati_reg.h index 4b0341c3b..51d3c6739 100644 --- a/hw/kdrive/ati/ati_reg.h +++ b/hw/kdrive/ati/ati_reg.h @@ -93,8 +93,8 @@ # define R128_BM_GLOBAL_FORCE_TO_PCI (1 << 23) #define R128_REG_GUI_STAT 0x1740 # define R128_GUI_ACTIVE (1 << 31) -#define R128_REG_TEX_CNTL 0x1800 +#define R128_REG_TEX_CNTL 0x1800 #define R128_REG_SCALE_SRC_HEIGHT_WIDTH 0x1994 #define R128_REG_SCALE_OFFSET_0 0x1998 #define R128_REG_SCALE_PITCH 0x199c @@ -104,6 +104,7 @@ #define R128_REG_SCALE_VACC 0x19ac #define R128_REG_SCALE_DST_X_Y 0x19b0 #define R128_REG_SCALE_DST_HEIGHT_WIDTH 0x19b4 + #define R128_REG_SCALE_3D_CNTL 0x1a00 # define R128_SCALE_DITHER_ERR_DIFF (0 << 1) # define R128_SCALE_DITHER_TABLE (1 << 1) @@ -164,8 +165,16 @@ # define R128_TEX_MAP_ALPHA_IN_TEXTURE (1 << 30) # define R128_TEX_CACHE_LINE_SIZE_8QW (0 << 31) # define R128_TEX_CACHE_LINE_SIZE_4QW (1 << 31) + #define R128_REG_SCALE_3D_DATATYPE 0x1a20 +#define R128_REG_TEX_CNTL_C 0x1c9c +# define R128_TEX_ALPHA_EN (1 << 9) +# define R128_TEX_CACHE_FLUSH (1 << 23) + +#define R128_REG_PRIM_TEX_CNTL_C 0x1cb0 +#define R128_REG_PRIM_TEXTURE_COMBINE_CNTL_C 0x1cb4 + #define R128_DATATYPE_C8 2 #define R128_DATATYPE_ARGB_1555 3 #define R128_DATATYPE_RGB_565 4 diff --git a/hw/kdrive/ati/r128_blendtmp.h b/hw/kdrive/ati/r128_blendtmp.h index af2fc5cdd..e40aaf4c0 100644 --- a/hw/kdrive/ati/r128_blendtmp.h +++ b/hw/kdrive/ati/r128_blendtmp.h @@ -64,7 +64,7 @@ TAG(R128PrepareBlend)(int op, PicturePtr pSrcPicture, PicturePtr pDstPicture, !R128GetDatatype(pSrcPicture->format, &srcDatatype)) return FALSE; - BEGIN(9); + BEGIN(11); OUT_REG(RADEON_REG_DP_GUI_MASTER_CNTL, (dstDatatype << 8) | RADEON_GMC_SRC_DATATYPE_COLOR | @@ -73,6 +73,8 @@ TAG(R128PrepareBlend)(int op, PicturePtr pSrcPicture, PicturePtr pDstPicture, RADEON_GMC_AUX_CLIP_DIS | (ATIBltRop[3] << 16) | RADEON_GMC_3D_FCN_EN); + OUT_REG(R128_REG_TEX_CNTL_C, R128_TEX_ALPHA_EN | R128_TEX_CACHE_FLUSH); + OUT_REG(R128_REG_PRIM_TEXTURE_COMBINE_CNTL_C, 0); OUT_REG(R128_REG_SCALE_3D_CNTL, R128_SCALE_3D_SCALE | R128BlendOp[op] | |