Summary: | 915GM/945GM XRender does not display stretched image when multiple windows overlap on second display. | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Product: | xorg | Reporter: | marc-andre.parent | ||||||||
Component: | Driver/intel | Assignee: | Chris Wilson <chris> | ||||||||
Status: | VERIFIED FIXED | QA Contact: | Intel GFX Bugs mailing list <intel-gfx-bugs> | ||||||||
Severity: | normal | ||||||||||
Priority: | medium | CC: | marc-andre.parent | ||||||||
Version: | unspecified | ||||||||||
Hardware: | x86 (IA32) | ||||||||||
OS: | Linux (All) | ||||||||||
Whiteboard: | |||||||||||
i915 platform: | i915 features: | ||||||||||
Attachments: |
|
Description
marc-andre.parent
2016-01-21 19:53:04 UTC
Created attachment 121194 [details]
Zipped Xorg configuration, log and xrandr output
Created attachment 121466 [details]
C code to replicate the issue along with driver debug logs
In c_test_app.zip, there is a c application which replicates the issue using only Xlib and Xrender calls.
To compile: gcc xrenderscaledimage.c -o xrenderscaledimage -lX11 -lm -lXrender
Here's what the application does:
1. Creates two 1920x1080 side-by-side colored windows(1 & 2) and maps them.
2. Creates two smaller white windows(3 & 4) of 150x150 and maps them over the first two.
3. Creates Pictures for windows 1 and 2.
4. Creates two Pictures for an image and scales them from 300x300 to 600x600.
5. On the 'Expose' event, the image Pictures are XRenderComposite'd over the window Pictures.
***The problem is that on the second head, the scaled image is not displayed.
If SCALE_FACTOR in xrenderscaledimage.c is set to 1.0 the problem doesn't occur.
In c_test_app.zip, there is also intel driver debug logs for executing the code separately on each head. Strangely, at some point, there seems to be negative coordinates used for the second head:
sna_blt_copy_boxes src=(0, 0) -> (-1920, 0) x 1, tiling=(0, 1), pitch=(15360, 4096)
Sorry, just took me a bit of time to remember how to trick a single panel into demonstrating the bug... commit 8b8c9a36828e90e46ad0755c6861df85f5307fb5 Author: Chris Wilson <chris@chris-wilson.co.uk> Date: Wed Feb 3 12:37:30 2016 +0000 sna/gen3: Add missing destination offsets to a few vertex emitters Sometimes we apply a destination offset (for when the coordinates are too large to be automatically offset by the 3D pipeline). Only a few paths had forgotten to apply the aforementioned offset. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=93816 Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> I confirm that the issue is fixed by commit: 8b8c9a36828e90e46ad0755c6861df85f5307fb5. Thanks. |
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.