All of lore.kernel.org
 help / color / mirror / Atom feed
From: bugzilla-daemon@freedesktop.org
To: dri-devel@lists.freedesktop.org
Subject: [Bug 41158] New: RADEON KMS: radeon_crtc_cursor_move is off by one pixel
Date: Fri, 23 Sep 2011 11:46:18 -0700 (PDT)	[thread overview]
Message-ID: <bug-41158-502@http.bugs.freedesktop.org/> (raw)

https://bugs.freedesktop.org/show_bug.cgi?id=41158

           Summary: RADEON KMS: radeon_crtc_cursor_move is off by one
                    pixel
           Product: DRI
           Version: XOrg CVS
          Platform: Other
        OS/Version: All
            Status: NEW
          Severity: normal
          Priority: medium
         Component: DRM/Radeon
        AssignedTo: dri-devel@lists.freedesktop.org
        ReportedBy: nmiell@gmail.com


Created an attachment (id=51555)
 --> (https://bugs.freedesktop.org/attachment.cgi?id=51555)
test cursor theme, unzip into ~/.icons and configure your desktop environment
to use it

When the mouse cursor is partially off the top or left edge of the screen, the
cursor image is drawn one pixel further to the top or left than the actual
position.

This manifests itself in two ways:

1) When the cursor transitions from entirely on the screen to partially
offscreen, the image jumps two pixels instead of moving by only one pixel. (Due
to the transition from a correctly positioned image to an off-by-one image.)

2) It is possible to move the cursor's hotspot off the screen. (Appearance
only, of course, as far as X is concerned the hotspot is still in the uppermost
or leftmost row of pixels.)

This seems obvious when you map out what the function actually does to
calculate the xorigin and yorigin values, but some doubt was raised based on
the wording of the register descriptions in the manuals. (Instead of speaking
of offsets or coordinates, the term "length" is used, and it wasn't clear
whether this length included the actual hotspot pixel.)

So I tested it empirically by constructing a rather hideous looking cursor
theme. It is a 31x31 mouse cursor image with the hotspot on the exact center
pixel.

The cursor has a one pixel red border. Immediately inside the red border is one
pixel of yellow. You will not be able to position the cursor on the screen such
that the outer red border is off the top or left but the inner yellow border is
still visible.

There is a one pixel wide yellow cross in the center of the cursor image, with
the center pixel of the cross being the cursor's hotspot. Surrounding the
yellow cross is a one pixel red border. When you move the cursor to the upper
left pixel, the yellow cross vanishes entirely, which shouldn't be possible
because you can't move the mouse cursor's hotspot off of the screen.

Neither of these things happen when you use SWcursor.

Testing was done on a RS880. I assume Evergreen is broken in the same way, but
I'm not sure about pre-Avivo chips.

-- 
Configure bugmail: https://bugs.freedesktop.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.

             reply	other threads:[~2011-09-23 18:46 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-09-23 18:46 bugzilla-daemon [this message]
2011-09-29 17:24 ` [Bug 41158] RADEON KMS: radeon_crtc_cursor_move is off by one pixel bugzilla-daemon
2011-10-05  9:38 ` bugzilla-daemon

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=bug-41158-502@http.bugs.freedesktop.org/ \
    --to=bugzilla-daemon@freedesktop.org \
    --cc=dri-devel@lists.freedesktop.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.