From 2ea061509ddab9054514ad87f28de950fb30dba1 Mon Sep 17 00:00:00 2001 From: Vinson Lee Date: Wed, 23 Dec 2009 14:52:06 -0800 Subject: st/xorg: Use C-style comments. --- src/gallium/state_trackers/xorg/xorg_driver.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) (limited to 'src/gallium/state_trackers/xorg/xorg_driver.c') diff --git a/src/gallium/state_trackers/xorg/xorg_driver.c b/src/gallium/state_trackers/xorg/xorg_driver.c index 643b6b3b9e..05f14734cd 100644 --- a/src/gallium/state_trackers/xorg/xorg_driver.c +++ b/src/gallium/state_trackers/xorg/xorg_driver.c @@ -179,10 +179,12 @@ static Bool crtc_resize(ScrnInfoPtr pScrn, int width, int height) { modesettingPtr ms = modesettingPTR(pScrn); - //ScreenPtr pScreen = pScrn->pScreen; - //PixmapPtr rootPixmap = pScreen->GetScreenPixmap(pScreen); - //Bool fbAccessDisabled; - //CARD8 *fbstart; + /* + ScreenPtr pScreen = pScrn->pScreen; + PixmapPtr rootPixmap = pScreen->GetScreenPixmap(pScreen); + Bool fbAccessDisabled; + CARD8 *fbstart; + */ if (width == pScrn->virtualX && height == pScrn->virtualY) return TRUE; -- cgit v1.2.3 From 53e314cb8057797ae75187d91836a50f61170dd7 Mon Sep 17 00:00:00 2001 From: Jakob Bornecrantz Date: Wed, 30 Dec 2009 04:22:12 +0100 Subject: st/xorg: Make sure we don't overrun the fence array in block handler --- src/gallium/state_trackers/xorg/xorg_driver.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/gallium/state_trackers/xorg/xorg_driver.c') diff --git a/src/gallium/state_trackers/xorg/xorg_driver.c b/src/gallium/state_trackers/xorg/xorg_driver.c index bf0a23fe9c..ee01ba0dcf 100644 --- a/src/gallium/state_trackers/xorg/xorg_driver.c +++ b/src/gallium/state_trackers/xorg/xorg_driver.c @@ -467,7 +467,7 @@ static void drv_block_handler(int i, pointer blockData, pointer pTimeout, * quite small. Let us get a fair way ahead of hardware before * throttling. */ - for (j = 0; j < XORG_NR_FENCES; j++) + for (j = 0; j < XORG_NR_FENCES - 1; j++) ms->screen->fence_reference(ms->screen, &ms->fence[j], ms->fence[j+1]); -- cgit v1.2.3 From d34fdf149d250275e819ca58554a41a8bff82785 Mon Sep 17 00:00:00 2001 From: Jakob Bornecrantz Date: Wed, 30 Dec 2009 04:46:12 +0100 Subject: st/xorg: On close wait on fences and then destroy the screen --- src/gallium/state_trackers/xorg/xorg_driver.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) (limited to 'src/gallium/state_trackers/xorg/xorg_driver.c') diff --git a/src/gallium/state_trackers/xorg/xorg_driver.c b/src/gallium/state_trackers/xorg/xorg_driver.c index ee01ba0dcf..ccaa0c68ef 100644 --- a/src/gallium/state_trackers/xorg/xorg_driver.c +++ b/src/gallium/state_trackers/xorg/xorg_driver.c @@ -255,9 +255,19 @@ static Bool drv_close_resource_management(ScrnInfoPtr pScrn) { modesettingPtr ms = modesettingPTR(pScrn); + int i; - if (ms->screen) + if (ms->screen) { + assert(ms->ctx == NULL); + + for (i = 0; i < XORG_NR_FENCES; i++) { + if (ms->fence[i]) { + ms->screen->fence_finish(ms->screen, ms->fence[i], 0); + ms->screen->fence_reference(ms->screen, &ms->fence[i], NULL); + } + } ms->screen->destroy(ms->screen); + } ms->screen = NULL; if (ms->api && ms->api->destroy) -- cgit v1.2.3 From 5169775345fc6b17b1f984e8bc3b5c3708733a7f Mon Sep 17 00:00:00 2001 From: Jakob Bornecrantz Date: Wed, 30 Dec 2009 05:08:09 +0100 Subject: st/xorg: Fix warning and add a TODO comment --- src/gallium/state_trackers/xorg/xorg_driver.c | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'src/gallium/state_trackers/xorg/xorg_driver.c') diff --git a/src/gallium/state_trackers/xorg/xorg_driver.c b/src/gallium/state_trackers/xorg/xorg_driver.c index ccaa0c68ef..4d169a1d14 100644 --- a/src/gallium/state_trackers/xorg/xorg_driver.c +++ b/src/gallium/state_trackers/xorg/xorg_driver.c @@ -931,6 +931,12 @@ drv_destroy_front_buffer_kms(ScrnInfoPtr pScrn) ScreenPtr pScreen = pScrn->pScreen; PixmapPtr rootPixmap = pScreen->GetScreenPixmap(pScreen); + /* XXX Do something with the rootPixmap. + * This currently works fine but if we are getting crashes in + * the fb functions after VT switches maybe look more into it. + */ + (void)rootPixmap; + if (!ms->root_bo) return TRUE; -- cgit v1.2.3 From c114f000df269787afb449d73cd8aae202be2550 Mon Sep 17 00:00:00 2001 From: Michel Dänzer Date: Mon, 4 Jan 2010 13:04:05 +0100 Subject: st/xorg: Proper calculation of screen pitch. --- src/gallium/state_trackers/xorg/xorg_driver.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) (limited to 'src/gallium/state_trackers/xorg/xorg_driver.c') diff --git a/src/gallium/state_trackers/xorg/xorg_driver.c b/src/gallium/state_trackers/xorg/xorg_driver.c index 4d169a1d14..b02fe68f31 100644 --- a/src/gallium/state_trackers/xorg/xorg_driver.c +++ b/src/gallium/state_trackers/xorg/xorg_driver.c @@ -181,8 +181,7 @@ drv_crtc_resize(ScrnInfoPtr pScrn, int width, int height) if (!pScreen->ModifyPixmapHeader(rootPixmap, width, height, -1, -1, -1, NULL)) return FALSE; - /* HW dependent - FIXME */ - pScrn->displayWidth = pScrn->virtualX; + pScrn->displayWidth = rootPixmap->devKind / (rootPixmap->drawable.bitsPerPixel / 8); /* now create new frontbuffer */ return ms->create_front_buffer(pScrn) && ms->bind_front_buffer(pScrn); -- cgit v1.2.3