Bug 94568 - glamor: wrong offset with ARGB
Summary: glamor: wrong offset with ARGB
Status: RESOLVED FIXED
Alias: None
Product: xorg
Classification: Unclassified
Component: Server/Acceleration/glamor (show other bugs)
Version: unspecified
Hardware: Other All
: medium normal
Assignee: Xorg Project Team
QA Contact: Xorg Project Team
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2016-03-16 09:59 UTC by Olivier Fourdan
Modified: 2017-06-06 12:58 UTC (History)
0 users

See Also:
i915 platform:
i915 features:


Attachments
Reproducer program (2.24 KB, text/plain)
2016-03-16 09:59 UTC, Olivier Fourdan
no flags Details
Expected result (28.04 KB, image/png)
2016-03-16 10:01 UTC, Olivier Fourdan
no flags Details
Actual result (28.72 KB, image/png)
2016-03-16 10:01 UTC, Olivier Fourdan
no flags Details
Possible fix (1.20 KB, patch)
2016-03-17 08:43 UTC, Olivier Fourdan
no flags Details | Splinter Review
[xserver,RFC,v2] glamor: fix wrong offset on composite rectangles (2.29 KB, patch)
2016-03-17 08:56 UTC, Olivier Fourdan
no flags Details | Splinter Review

Description Olivier Fourdan 2016-03-16 09:59:56 UTC
Created attachment 122340 [details]
Reproducer program

Description:

When enabling glamor acceleration wit hthe modesettings driver, the ARGB surface seems to be painted at (0,0) even though the window is elsewhere.

How reproducible:

100% reproducible

Steps to reproduce:

1. Enable modesetting with glamor acceleration
2. Save and build the attached reproducer

   $ gcc -o cairoframe -g cairoframe.c $(pkg-config --libs --cflags cairo x11)

3. Run the reproducer:

   $ ./cairoframe

Actual result:

The semi-transparent area is placed in (0,0) instead of the window location, leaving part of the window unpainted

Expected result:

The semi-transparent area matches the window location

Additional data:

If relevant, this is on Intel Haswell-ULT Integrated Graphics Controller

The same issue does not occur if glamor accel is not used with modesettings (AccelMethod "None") or when using the intel driver.
Comment 1 Olivier Fourdan 2016-03-16 10:01:03 UTC
Created attachment 122341 [details]
Expected result

This is the expected result, as seen when disabling glamor accel or using intel driver
Comment 2 Olivier Fourdan 2016-03-16 10:01:37 UTC
Created attachment 122342 [details]
Actual result

This is the actual result with modesettings and glamor
Comment 3 Olivier Fourdan 2016-03-16 10:33:54 UTC
This issue is also present in 1.18.2
Comment 4 Olivier Fourdan 2016-03-17 08:28:49 UTC
glamor debug logs captured with the given reproducer:

source pixmap 0x12b65b0 (100 100) mask(0 0) dest(0 0) width 400 height 300 
first clipped when compositing.
[mi] num: 1 size: 0
[mi] extents: 0 0 400 300
[mi] 0 0 400 300 
[mi] 
clipped (100 100) (0 0) (0 0) width 400 height 300 
dest 0 0 
dest(0,0) source(0 0) mask (0 -5408), width 400 height 300 
finish rendering.
glamor_composite_rectangles(op=3, b31159b3 x 1 [(0, 0)x(400, 300) ...])
glamor_composite_rectangles: converted to op 3
_pixman_region_init_clipped_rectangles: nrects=1, region=(100, 100), (500, 400) x 1
glamor_composite_rectangles: drawable extents (100, 100),(500, 400) x 1
glamor_composite_rectangles: clipped extents (100, 100),(500, 400) x 1
glamor_composite_rectangles: pixmap +(-100, -100) extents (0, 0),(400, 300)
clipped (0 0) (0 0) (0 0) width 400 height 300 
dest 0 0 
dest(-100,-100) source(-100 22006) mask (32513 -97), width 400 height 300 
finish rendering.
glamor_composite_rectangles(op=1, ff1980ff x 4 [(0, 0)x(400, 2) ...])
glamor_composite_rectangles: converted to op 1
_pixman_region_init_clipped_rectangles: nrects=4, region=(100, 100), (500, 400) x 4
glamor_composite_rectangles: drawable extents (100, 100),(500, 400) x 4
glamor_composite_rectangles: clipped extents (100, 100),(500, 400) x 4
glamor_composite_rectangles: pixmap +(-100, -100) extents (0, 0),(400, 300)
Comment 5 Olivier Fourdan 2016-03-17 08:43:28 UTC
Created attachment 122364 [details] [review]
Possible fix

That patch fixes the issue for me.
Comment 6 Olivier Fourdan 2016-03-17 08:56:56 UTC
Created attachment 122365 [details] [review]
[xserver,RFC,v2] glamor: fix wrong offset on composite rectangles

https://patchwork.freedesktop.org/patch/77243/

Note: I am not entirely confident with this patch, it fixes the issue for me but I am definitely not certain it's correct...
Comment 7 Olivier Fourdan 2017-06-06 12:58:51 UTC
The patch has landed some time ago, closing.


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.