Bug 60553

Summary: [trine2] wrong colors when executed fullscreen
Product: Mesa Reporter: Laurent carlier <lordheavym>
Component: Drivers/Gallium/r600Assignee: Default DRI bug account <dri-devel>
Status: RESOLVED FIXED QA Contact:
Severity: normal    
Priority: medium CC: vmerlet
Version: git   
Hardware: x86-64 (AMD64)   
OS: Linux (All)   
Whiteboard:
i915 platform: i915 features:
Attachments: Trine2 screen with wrong colors
trine2 with correct rendering (windowed)
Trine 2 in fullscreen, heavy miss rendering.
Trine 2 in fullscreen, heavy miss rendering.
Trine 2 windowed. Proper rendering.

Description Laurent carlier 2013-02-09 18:00:36 UTC
Created attachment 74499 [details]
Trine2 screen with wrong colors

* mesa from git
* xf86-video-ati-7.0.0
* radeon HD6870

Trine2 game colors are wrong when running fullscreen, not windowed. Here is the start of an apitrace output (it fail with an error):

[lordh@archMain Trine 2]$ apitrace dump trine2_linux_32bit.trace 
6 glXChooseVisual(dpy = 0xcfdcfb8, screen = 0, attribList = {GLX_RGBA, GLX_RED_SIZE, GLX_LEVEL, GLX_GREEN_SIZE, GLX_LEVEL, GLX_BLUE_SIZE, GLX_BUFFER_SIZE, GLX_DOUBLEBUFFER, GLX_DEPTH_SIZE, GLX_ACCUM_BLUE_SIZE, 0}) = &{visual = 0xcfe8b28, visualid = 557, screen = 0, depth = 24, c_class = 4, red_mask = 16711680, green_mask = 65280, blue_mask = 255, colormap_size = 256, bits_per_rgb = 8}
7 glXCreateContext(dpy = 0xcfdcfb8, vis = &{visual = 0xcfe8b28, visualid = 557, screen = 0, depth = 24, c_class = 4, red_mask = 16711680, green_mask = 65280, blue_mask = 255, colormap_size = 256, bits_per_rgb = 8}, shareList = NULL, direct = True) = 0xcfd3240
8 glXMakeCurrent(dpy = 0xcfdcfb8, drawable = 98566146, ctx = 0xcfd3240) = True
14 glXMakeCurrent(dpy = 0xcfdcfb8, drawable = 0, ctx = NULL) = True
15 glXDestroyContext(dpy = 0xcfdcfb8, ctx = 0xcfd3240)
16 glXChooseVisual(dpy = 0xcfdcfb8, screen = 0, attribList = {GLX_RGBA, GLX_RED_SIZE, GLX_LEVEL, GLX_GREEN_SIZE, GLX_LEVEL, GLX_BLUE_SIZE, GLX_BUFFER_SIZE, GLX_DOUBLEBUFFER, GLX_DEPTH_SIZE, GLX_ACCUM_BLUE_SIZE, 0}) = &{visual = 0xcfe8b28, visualid = 557, screen = 0, depth = 24, c_class = 4, red_mask = 16711680, green_mask = 65280, blue_mask = 255, colormap_size = 256, bits_per_rgb = 8}
17 glXCreateContext(dpy = 0xcfdcfb8, vis = &{visual = 0xcfe8b28, visualid = 557, screen = 0, depth = 24, c_class = 4, red_mask = 16711680, green_mask = 65280, blue_mask = 255, colormap_size = 256, bits_per_rgb = 8}, shareList = NULL, direct = True) = 0xd025658
18 glXMakeCurrent(dpy = 0xcfdcfb8, drawable = 98566149, ctx = 0xd025658) = True
21 glXMakeCurrent(dpy = 0xcfdcfb8, drawable = 0, ctx = NULL) = True
22 glXDestroyContext(dpy = 0xcfdcfb8, ctx = 0xd025658)
29 glXChooseVisual(dpy = 0xcfdcfb8, screen = 0, attribList = {GLX_RGBA, GLX_RED_SIZE, GLX_RED_SIZE, GLX_GREEN_SIZE, GLX_RED_SIZE, GLX_BLUE_SIZE, GLX_RED_SIZE, GLX_DOUBLEBUFFER, GLX_DEPTH_SIZE, 24, GLX_STENCIL_SIZE, GLX_RED_SIZE, 0}) = &{visual = 0xcfe8be8, visualid = 563, screen = 0, depth = 24, c_class = 4, red_mask = 16711680, green_mask = 65280, blue_mask = 255, colormap_size = 256, bits_per_rgb = 8}
30 glXCreateContext(dpy = 0xcfdcfb8, vis = &{visual = 0xcfe8be8, visualid = 563, screen = 0, depth = 24, c_class = 4, red_mask = 16711680, green_mask = 65280, blue_mask = 255, colormap_size = 256, bits_per_rgb = 8}, shareList = NULL, direct = True) = 0xd000248
31 glXMakeCurrent(dpy = 0xcfdcfb8, drawable = 98566152, ctx = 0xd000248) = True
37 glXMakeCurrent(dpy = 0xcfdcfb8, drawable = 0, ctx = NULL) = True
38 glXDestroyContext(dpy = 0xcfdcfb8, ctx = 0xd000248)
39 glXChooseVisual(dpy = 0xcfdcfb8, screen = 0, attribList = {GLX_RGBA, GLX_RED_SIZE, GLX_RED_SIZE, GLX_GREEN_SIZE, GLX_RED_SIZE, GLX_BLUE_SIZE, GLX_RED_SIZE, GLX_DOUBLEBUFFER, GLX_DEPTH_SIZE, 24, GLX_STENCIL_SIZE, GLX_RED_SIZE, 0}) = &{visual = 0xcfe8be8, visualid = 563, screen = 0, depth = 24, c_class = 4, red_mask = 16711680, green_mask = 65280, blue_mask = 255, colormap_size = 256, bits_per_rgb = 8}
error: unknown event 4
Comment 1 Laurent carlier 2013-02-09 18:06:15 UTC
Created attachment 74500 [details]
trine2 with correct rendering (windowed)
Comment 2 Laurent carlier 2013-02-09 18:15:36 UTC
Tracing the game windows gives a working trace:

6 glXChooseVisual(dpy = 0xc4d0010, screen = 0, attribList = {GLX_RGBA, GLX_RED_SIZE, GLX_LEVEL, GLX_GREEN_SIZE, GLX_LEVEL, GLX_BLUE_SIZE, GLX_BUFFER_SIZE, GLX_DOUBLEBUFFER, GLX_DEPTH_SIZE, GLX_ACCUM_BLUE_SIZE, 0}) = &{visual = 0xc4dbb80, visualid = 557, screen = 0, depth = 24, c_class = 4, red_mask = 16711680, green_mask = 65280, blue_mask = 255, colormap_size = 256, bits_per_rgb = 8}
7 glXCreateContext(dpy = 0xc4d0010, vis = &{visual = 0xc4dbb80, visualid = 557, screen = 0, depth = 24, c_class = 4, red_mask = 16711680, green_mask = 65280, blue_mask = 255, colormap_size = 256, bits_per_rgb = 8}, shareList = NULL, direct = True) = 0xc4e8bc0
8 glXMakeCurrent(dpy = 0xc4d0010, drawable = 23068674, ctx = 0xc4e8bc0) = True
14 glXMakeCurrent(dpy = 0xc4d0010, drawable = 0, ctx = NULL) = True
15 glXDestroyContext(dpy = 0xc4d0010, ctx = 0xc4e8bc0)
16 glXChooseVisual(dpy = 0xc4d0010, screen = 0, attribList = {GLX_RGBA, GLX_RED_SIZE, GLX_LEVEL, GLX_GREEN_SIZE, GLX_LEVEL, GLX_BLUE_SIZE, GLX_BUFFER_SIZE, GLX_DOUBLEBUFFER, GLX_DEPTH_SIZE, GLX_ACCUM_BLUE_SIZE, 0}) = &{visual = 0xc4dbb80, visualid = 557, screen = 0, depth = 24, c_class = 4, red_mask = 16711680, green_mask = 65280, blue_mask = 255, colormap_size = 256, bits_per_rgb = 8}
17 glXCreateContext(dpy = 0xc4d0010, vis = &{visual = 0xc4dbb80, visualid = 557, screen = 0, depth = 24, c_class = 4, red_mask = 16711680, green_mask = 65280, blue_mask = 255, colormap_size = 256, bits_per_rgb = 8}, shareList = NULL, direct = True) = 0xc518380
18 glXMakeCurrent(dpy = 0xc4d0010, drawable = 23068677, ctx = 0xc518380) = True
21 glXMakeCurrent(dpy = 0xc4d0010, drawable = 0, ctx = NULL) = True
22 glXDestroyContext(dpy = 0xc4d0010, ctx = 0xc518380)
29 glXChooseVisual(dpy = 0xc4d0010, screen = 0, attribList = {GLX_RGBA, GLX_RED_SIZE, GLX_RED_SIZE, GLX_GREEN_SIZE, GLX_RED_SIZE, GLX_BLUE_SIZE, GLX_RED_SIZE, GLX_DOUBLEBUFFER, GLX_DEPTH_SIZE, 24, GLX_STENCIL_SIZE, GLX_RED_SIZE, 0}) = &{visual = 0xc4dbc40, visualid = 563, screen = 0, depth = 24, c_class = 4, red_mask = 16711680, green_mask = 65280, blue_mask = 255, colormap_size = 256, bits_per_rgb = 8}
30 glXCreateContext(dpy = 0xc4d0010, vis = &{visual = 0xc4dbc40, visualid = 563, screen = 0, depth = 24, c_class = 4, red_mask = 16711680, green_mask = 65280, blue_mask = 255, colormap_size = 256, bits_per_rgb = 8}, shareList = NULL, direct = True) = 0xc4c6d00
31 glXMakeCurrent(dpy = 0xc4d0010, drawable = 23068680, ctx = 0xc4c6d00) = True
37 glXMakeCurrent(dpy = 0xc4d0010, drawable = 0, ctx = NULL) = True
38 glXDestroyContext(dpy = 0xc4d0010, ctx = 0xc4c6d00)
39 glXChooseVisual(dpy = 0xc4d0010, screen = 0, attribList = {GLX_RGBA, GLX_RED_SIZE, GLX_RED_SIZE, GLX_GREEN_SIZE, GLX_RED_SIZE, GLX_BLUE_SIZE, GLX_RED_SIZE, GLX_DOUBLEBUFFER, GLX_DEPTH_SIZE, 24, GLX_STENCIL_SIZE, GLX_RED_SIZE, 0}) = &{visual = 0xc4dbc40, visualid = 563, screen = 0, depth = 24, c_class = 4, red_mask = 16711680, green_mask = 65280, blue_mask = 255, colormap_size = 256, bits_per_rgb = 8}
40 glXCreateContext(dpy = 0xc4d0010, vis = &{visual = 0xc4dbc40, visualid = 563, screen = 0, depth = 24, c_class = 4, red_mask = 16711680, green_mask = 65280, blue_mask = 255, colormap_size = 256, bits_per_rgb = 8}, shareList = NULL, direct = True) = 0xc4fda30
41 glXMakeCurrent(dpy = 0xc4d0010, drawable = 23068683, ctx = 0xc4fda30) = True
........ and so on......
Comment 3 letharion 2013-03-11 14:51:04 UTC
I can confirm I have the same issue. Works in windowed, colors wrong in fullscreen, and some objects fail to render completely during gameplay.

Radeon HD 6550D
Mesa 9.1
xf86-video-ati 7.1.0
Comment 4 Laurent carlier 2013-04-30 22:01:11 UTC
It seem now fixed with:
3.1 (Core Profile) Mesa 9.2.0 (git-c4bea00)

So, closing
Comment 5 letharion 2013-05-04 21:26:34 UTC
Running with mesa as of c4150123aa9c2a71a62fed800d7c4424e9b948f2 I do not see this fixed.

The problems in the main menu, as shows in the screenshots already attached, remain. I'll attach images of gameplay as well, as the effect is shown more clearly there.
Comment 6 letharion 2013-05-04 21:27:41 UTC
Created attachment 78860 [details]
Trine 2 in fullscreen, heavy miss rendering.
Comment 7 letharion 2013-05-04 21:29:12 UTC
Created attachment 78861 [details]
Trine 2 in fullscreen, heavy miss rendering.
Comment 8 letharion 2013-05-04 21:29:44 UTC
Created attachment 78862 [details]
Trine 2 windowed. Proper rendering.
Comment 9 Laurent carlier 2014-09-05 07:16:11 UTC
Is it still an issue?
Comment 10 letharion 2015-05-14 12:57:56 UTC
I tested on the current git version today, and this is no longer an issue. :)

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.