Bug 4951

Summary: [ATI/radeon] HW cursor becomes SW with EXA
Product: xorg Reporter: Michel Dänzer <michel>
Component: Driver/RadeonAssignee: Michel Dänzer <michel>
Status: RESOLVED FIXED QA Contact:
Severity: normal    
Priority: high CC: benh
Version: git   
Hardware: Other   
OS: Linux (All)   
Whiteboard:
i915 platform: i915 features:
Bug Depends on:    
Bug Blocks: 1690    
Attachments:
Description Flags
Proposed fix none

Description Michel Dänzer 2005-11-03 04:49:47 UTC
When using EXA, sometimes (in particular after a VT switch) the HW cursor
silently becomes SW. This is highly annoying as the SW cursor interacts badly
with the DRI, Xv and compositing performance and there's no way to go back to HW
cursor without restarting the X server, so I think this should be fixed before
6.9/7.0.
Comment 1 Michel Dänzer 2005-11-03 04:51:03 UTC
I'll attach a proposed fix shortly.
Comment 2 Michel Dänzer 2005-11-03 05:02:05 UTC
Created attachment 3689 [details] [review]
Proposed fix

The basic idea is to check for the condition in RADEONUseHWCursor() and try to
re-allocate the offscreen area for the HW cursor when necessary. As the
condition mostly (only?) seems to occur on VT switches, I tried doing it in
RADEONEnterVT() instead, but exaOffscreenAlloc() doesn't seem to work there
yet.
Comment 3 Michel Dänzer 2005-11-08 02:00:52 UTC
CVSROOT:        /cvs/xorg
Module name:    xc
Changes by:     daenzer@gabe.freedesktop.org    05/11/08 01:44:41

Log message:
  2005-11-08  Michel Daenzer  <michel@daenzer.net>
  
        * programs/Xserver/hw/xfree86/drivers/ati/radeon_cursor.c:
        (RADEONCursorSave), (RADEONCursorAllocEXA), (RADEONUseHWCursor),
        (RADEONUseHWCursorARGB), (RADEONCursorInit):
        * programs/Xserver/hw/xfree86/drivers/ati/radeon_driver.c:
        (RADEONScreenInit):
        bugzilla #4951 (https://bugs.freedesktop.org/show_bug.cgi?id=4951)
        attachment #3689 [details] [review] (http://bugs.freedesktop.org/attachment.cgi?id=3689)
        Fix HW cursor getting silently disabled with EXA.

Modified files:
      ./:
        ChangeLog 
      xc/programs/Xserver/hw/xfree86/drivers/ati/:
        radeon_cursor.c radeon_driver.c 
  
  Revision      Changes    Path
  1.1499        +11 -0     xc/ChangeLog
  http://cvs.freedesktop.org/xorg/xc/ChangeLog
  1.9           +48 -28   
xc/programs/Xserver/hw/xfree86/drivers/ati/radeon_cursor.c
 
http://cvs.freedesktop.org/xorg/xc/programs/Xserver/hw/xfree86/drivers/ati/radeon_cursor.c
  1.81          +0 -7     
xc/programs/Xserver/hw/xfree86/drivers/ati/radeon_driver.c
 
http://cvs.freedesktop.org/xorg/xc/programs/Xserver/hw/xfree86/drivers/ati/radeon_driver.c

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.