summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJordan Crouse <jordan.crouse@amd.com>2007-06-15 18:08:56 -0600
committerJordan Crouse <jordan.crouse@amd.com>2007-07-06 17:00:26 -0600
commitea11d99bc29086a8fa92c01dd22f195d626b33d2 (patch)
tree8d00524d46e04d7f3d688ec7c7930737d3921036
parent7bf0627cd001325affbe16118a2f27225179eabd (diff)
Two fixes for compositing for Cairo 1.4.4 and X server 1.3+
-rw-r--r--src/amd_lx_exa.c6
-rw-r--r--src/cim/cim_gp.c5
2 files changed, 6 insertions, 5 deletions
diff --git a/src/amd_lx_exa.c b/src/amd_lx_exa.c
index eec6a7c..2f5ef85 100644
--- a/src/amd_lx_exa.c
+++ b/src/amd_lx_exa.c
@@ -577,9 +577,9 @@ static Bool lx_prepare_composite(int op, PicturePtr pSrc, PicturePtr pMsk,
/* Get the source color */
if (direction == 0)
- exaScratch.srcColor = lx_get_source_color(pSrc, 0, 0, pSrc->format);
+ exaScratch.srcColor = lx_get_source_color(pSrc, 0, 0, pDst->format);
else
- exaScratch.srcColor = lx_get_source_color(pDst, 0, 0, pDst->format);
+ exaScratch.srcColor = lx_get_source_color(pDst, 0, 0, pSrc->format);
/* FIXME: What to do here? */
@@ -1025,7 +1025,7 @@ Bool LXExaInit(ScreenPtr pScreen)
pExa->WaitMarker = lx_wait_marker;
pExa->UploadToScreen = lx_upload;
- pExa->DownloadFromScreen = lx_download;
+ //pExa->DownloadFromScreen = lx_download;
pExa->PrepareSolid = lx_prepare_solid;
pExa->Solid = lx_do_solid;
diff --git a/src/cim/cim_gp.c b/src/cim/cim_gp.c
index 6aad40f..7c4bc5b 100644
--- a/src/cim/cim_gp.c
+++ b/src/cim/cim_gp.c
@@ -3407,7 +3407,8 @@ gp_blend_mask_blt(unsigned long dstoffset, unsigned long srcx,
unsigned long base, depth_flag;
base = ((gp3_fb_base << 24) + (dstoffset & 0xFFC00000)) |
- (gp3_base_register & ~GP3_BASE_OFFSET_DSTMASK);
+ ((gp3_fb_base << 4) + (dataoffset >> 20)) |
+ (gp3_base_register & GP3_BASE_OFFSET_SRCMASK);
/* ENABLE ALL RELEVANT REGISTERS */
/* We override the raster mode register to force the */
@@ -3457,7 +3458,7 @@ gp_blend_mask_blt(unsigned long dstoffset, unsigned long srcx,
WRITE_COMMAND32(GP3_BLT_DST_OFFSET, (dstoffset & 0x3FFFFF));
/* Set the offset of the CH3 data in memory */
- WRITE_COMMAND32(GP3_BLT_CH3_OFFSET, dataoffset & 0xFFFFFFF);
+ WRITE_COMMAND32(GP3_BLT_CH3_OFFSET, dataoffset & 0x3FFFFF);
WRITE_COMMAND32(GP3_BLT_WID_HEIGHT, size);
WRITE_COMMAND32(GP3_BLT_CH3_WIDHI, size);