Bug 17341

Summary: No pixmaps or text after 1ab7239b73a5e298cadaf44e5605cf05855f08e9
Product: xorg Reporter: Philip Langdale <xorgbugs.philipl>
Component: Driver/intelAssignee: Jesse Barnes <jbarnes>
Status: RESOLVED FIXED QA Contact: Xorg Project Team <xorg-team>
Severity: blocker    
Priority: high CC: ascii79, bgamari, brian, stavallo
Version: git   
Hardware: Other   
OS: All   
Whiteboard:
i915 platform: i915 features:
Bug Depends on:    
Bug Blocks: 16926    
Attachments:
Description Flags
don't use drm_bo_map if !use_drm_mode none

Description Philip Langdale 2008-08-28 12:10:24 UTC
I've been tracking the bleeding edge Intel experience (drm/mesa/xserver) with the exception of kernel modesetting and after this particular change to the driver, text and pixmaps stopped rendering with EXA (and UXA just renders garbage as if the row stride is wrong)

It can't be reverted cleanly against the current tip.

My hardware is an Acer TravelMate 5720 with an X3100.
Comment 1 Jesse Barnes 2008-08-28 12:48:56 UTC
You could try something like this, but I'm seeing some bugginess too. with GEM enabled kernels.  Trying to track it down.

diff --git a/src/i965_render.c b/src/i965_render.c                              
index a4334c6..180bcfd 100644                                                   
--- a/src/i965_render.c                                                         
+++ b/src/i965_render.c                                                         
@@ -1450,7 +1450,7 @@ gen4_render_state_init(ScrnInfoPtr pScrn)                 
                                                                                
     render_state->card_state_offset = pI830->gen4_render_state_mem->offset;    
                                                                                
-    if (pI830->gen4_render_state_mem->bo) {                                    
+    if (pI830->use_drm_mode) {                                                 
        ret = dri_bo_map(pI830->gen4_render_state_mem->bo, 1);                  
        if (ret) {                                                              
            xf86DrvMsg(pScrn->scrnIndex, X_WARNING,                             
Comment 2 Philip Langdale 2008-08-28 14:27:02 UTC
That seems to have got things back to where they were. Thanks.
Comment 3 Gordon Jin 2008-08-29 06:06:19 UTC
Philip, are you using GEM kernel? Is the sympton the same as bug#17304?
Comment 4 Philip Langdale 2008-08-29 07:57:27 UTC
Yes, it seems like the same bug. His EXA and UXA + tiling symptoms seem exactly like mine. I have not tried UXA without tiling yet, but I'll check today.
Comment 5 Jesse Barnes 2008-08-29 09:04:35 UTC
Created attachment 18570 [details] [review]
don't use drm_bo_map if !use_drm_mode

Here's a more complete patch that fixes the teardown path as well.
Comment 6 Philip Langdale 2008-08-29 10:11:45 UTC
That fixes EXA but UXA without tiling looks the same - no pixmaps and text. And UXA with tiling shows the incorrect stride corruption. As a bonus, attempting to VT switch from X with UXA turned on causes it to immediately switch back to X. But who knows what's going on there.
Comment 7 Jesse Barnes 2008-08-29 10:34:35 UTC
Yeah, tiling & UXA don't get along right now, so you have to disable it manually.

The VT switch problem probably deserves a separate bug though.
Comment 8 Philip Langdale 2008-08-29 10:42:27 UTC
Just to clarify - UXA without tiling is *not* fixed by your patch. The patch only fixes EXA.
Comment 9 Gordon Jin 2008-09-09 19:04:12 UTC
Jesse, how about commit your patch?
I hope it could also help bug#17304 and #17425.
Comment 10 Jesse Barnes 2008-09-12 14:23:59 UTC
Ok, just pushed this workaround.

Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.