summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSøren Sandmann <ssp@redhat.com>2010-06-21 23:17:37 -0400
committerSøren Sandmann Pedersen <ssp@redhat.com>2010-09-14 06:38:50 -0400
commit3b5b14d9614f8da294a118317372ed5d142f957c (patch)
treec8c4600b8f3f168349f6986e753ac49c3a653f8d
parent7cbd91765524409f2dff9a7be7a4a28deb48387e (diff)
Disable acceleration; fix bug with forgotten multiplication with bpp
-rw-r--r--src/qxl_driver.c35
1 files changed, 25 insertions, 10 deletions
diff --git a/src/qxl_driver.c b/src/qxl_driver.c
index 77f1f8e..734e3f4 100644
--- a/src/qxl_driver.c
+++ b/src/qxl_driver.c
@@ -844,7 +844,7 @@ download_box (qxl_screen_t *qxl, uint8_t *host,
if (y1 != 0 || x1 != 0 || y2 != 1200 || x2 != 1600)
ErrorF ("asdf\n");
-
+
ram_header->update_area.top = y1;
ram_header->update_area.bottom = y2;
ram_header->update_area.left = x1;
@@ -867,7 +867,7 @@ download_box (qxl_screen_t *qxl, uint8_t *host,
{
uint8_t *h = host_line;
uint8_t *d = dev_line;
- int w = x2 - x1;
+ int w = (x2 - x1) * Bpp;
host_line += stride;
dev_line += stride;
@@ -890,6 +890,8 @@ qxl_prepare_access(PixmapPtr pixmap, RegionPtr region, uxa_access_t access)
int stride;
stride = qxl->current_mode->stride;
+
+ ErrorF ("Stride: %d\n", stride);
n_bytes = stride * pixmap->drawable.height;
@@ -898,6 +900,8 @@ qxl_prepare_access(PixmapPtr pixmap, RegionPtr region, uxa_access_t access)
if (!copy)
return FALSE;
+ memset (copy, 0x80, n_bytes);
+
/* QXL's framebuffer has a negative stride */
copy += stride * (pixmap->drawable.height - 1);
@@ -936,6 +940,17 @@ qxl_finish_access (PixmapPtr pixmap)
ErrorF ("Finishing access to %p (stride: %d)\n", pixmap, stride);
+ {
+ struct qxl_rect qrect;
+
+ qrect.left = 0;
+ qrect.right = w;
+ qrect.top = 0;
+ qrect.bottom = h;
+
+ submit_fill (qxl, &qrect, 0xff00ff00);
+ }
+
rect.left = 0;
rect.right = w;
rect.top = 0;
@@ -1140,16 +1155,16 @@ setup_uxa (qxl_screen_t *qxl, ScreenPtr screen)
qxl->uxa->uxa_minor = 0;
/* Solid fill */
- qxl->uxa->check_solid = qxl_check_solid;
- qxl->uxa->prepare_solid = qxl_prepare_solid;
- qxl->uxa->solid = qxl_solid;
- qxl->uxa->done_solid = qxl_done_solid;
+ qxl->uxa->check_solid = unaccel; // qxl_check_solid;
+ qxl->uxa->prepare_solid = unaccel; // qxl_prepare_solid;
+ qxl->uxa->solid = unaccel; // qxl_solid;
+ qxl->uxa->done_solid = unaccel; // qxl_done_solid;
/* Copy */
- qxl->uxa->check_copy = qxl_check_copy;
- qxl->uxa->prepare_copy = qxl_prepare_copy;
- qxl->uxa->copy = qxl_copy;
- qxl->uxa->done_copy = qxl_done_copy;
+ qxl->uxa->check_copy = unaccel; // qxl_check_copy;
+ qxl->uxa->prepare_copy = unaccel; // qxl_prepare_copy;
+ qxl->uxa->copy = unaccel; // qxl_copy;
+ qxl->uxa->done_copy = unaccel; // qxl_done_copy;
/* Composite */
qxl->uxa->check_composite = unaccel;