Bug 91230

Summary: Mouse cursor drawn at wrong position while running Unity engine games
Product: xorg Reporter: Daniel Scharrer <daniel>
Component: Driver/RadeonAssignee: xf86-video-ati maintainers <xorg-driver-ati>
Status: RESOLVED FIXED QA Contact: Xorg Project Team <xorg-team>
Severity: normal    
Priority: medium    
Version: git   
Hardware: x86-64 (AMD64)   
OS: Linux (All)   
Whiteboard:
i915 platform: i915 features:
Attachments:
Description Flags
Xorg.0.log
none
dmesg log none

Description Daniel Scharrer 2015-07-05 01:30:07 UTC
Created attachment 116942 [details]
Xorg.0.log

While running various Unity engine games (tested with  the cursor is drawn slightly offset to the bottom-right of the real position observed by applications. It does not matter whether the cursor is over the game's window or if it has focus or is fullscreen / windowed / iconified.

I have bisected this to the following change in xf86-video-ati:
commit ddaba449e8d6fe9fc0d97085e4045843fd8d7af9
Author: Piotr Redlewski <predlewski@gmail.com>
Date:   Wed Jun 24 18:44:39 2015 +0200

    Disable CRTCs when disabling the outputs
    
    When turning the outputs off (DPMSModeOff), CRTCs stayed enabled. This led
    to higher gpu temperatures than with fglrx driver.
    
    v2: when entering DPMS also disable active CRTCs
    v3: use drmmode_set_mode_major() for enabling CRTCs when leaving DPMS
    
    Signed-off-by: Piotr Redlewski <predlewski@gmail.com>
    Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>

:040000 040000 4cee4e2cdce31663527116812bb616dc0f2d42c6 a4510278e95f9c0006ae2b5d9f2d6caaf589961d M      src


The cursor is drawn at the correct position while not running a Unity engine game.

GPU: Radeon HD 7950 (TAHITI)
Mesa: git-ff0a41b
LLVM: r241381
glamor: git-347ef4f
libdrm: git-676c806
xorg-server: 1.17.1
Comment 1 Daniel Scharrer 2015-07-05 01:30:50 UTC
Created attachment 116943 [details]
dmesg log
Comment 2 Daniel Scharrer 2015-07-05 01:42:22 UTC
Additional details: When moving the mouse, the cursor flickers between the correct and offset position. While the mouse is stationary, the cursor is always at the wrong position.

I only have a single monitor connected. In my xorg.conf I have disabled DPMS suspend / etc. (my monitor does not always turn back on without manually turning it off and on again):
Section "ServerLayout"
        Identifier    "layout"
        Screen        0 "screen0" 0 0
        Option        "BlankTime"   "0"
        Option        "StandbyTime" "0"
        Option        "SuspendTime" "0"
        Option        "OffTime"     "0"
EndSection
Comment 4 Daniel Scharrer 2015-07-07 05:45:49 UTC
Yes, that seems to have fixed it.

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.