Bug 92072

Summary: Wine breakage since d082c5324 (st/mesa: don't call st_validate_state in BlitFramebuffer)
Product: Mesa Reporter: Andrew Randrianasulu <randrik>
Component: Drivers/DRI/nouveauAssignee: Nouveau Project <nouveau>
Status: RESOLVED FIXED QA Contact: Nouveau Project <nouveau>
Severity: normal    
Priority: medium    
Version: git   
Hardware: x86 (IA32)   
OS: Linux (All)   
Whiteboard:
i915 platform: i915 features:
Attachments: X log

Description Andrew Randrianasulu 2015-09-22 11:25:51 UTC
Created attachment 118396 [details]
X log

Hello. 

Recently I tried  to play win32  version of UnrealTournament (first version) via wine. It worked before, but now failed. Updating wine to latest git (wine-1.7.51-201-g60d1d6f) not helped. I've bisected this down to mesa  commit in summary (bisect was  done on 10.6 branch, while bug was also present  on master, what I usually use).

Bug manifested itself as static desktop image instead of  fullscreen or even windowed game (in windowed mode it was not wine's desktop, yet not anything from game). I also suspect llvmpipe can be affected - because I tried with LIBGL_ALWAYS_SOFTWARE=1 and saw similar effect.

Hopefully below  you can find apitrace from successfull game startup:
https://cloud.mail.ru/public/Hre5/bqVCYrwod

(3.2 Mb)

git bisect log below:
----------------
git bisect start
# good: [0b8e73a6ae2a77d0e9a7810cca5b181ba5f0893e] r600g,radeonsi: add driver queries for GPU temperature and shader+memory clocks
git bisect good 0b8e73a6ae2a77d0e9a7810cca5b181ba5f0893e
# bad: [02387926addc62198c9b684f4f51f7cbe06b3e25] docs: add sha256 checksums for 10.6.8
git bisect bad 02387926addc62198c9b684f4f51f7cbe06b3e25
# good: [65d4a20f1c1923498220637f9474d2ae399df52d] main: Refactor invalidate_framebuffer_storage.
git bisect good 65d4a20f1c1923498220637f9474d2ae399df52d
# good: [1f3ec929761d9aee986362ef90a4a150f4481496] mesa: Turn need_rgb_to_luminance_conversion() in to a global function
git bisect good 1f3ec929761d9aee986362ef90a4a150f4481496
# bad: [1f6798a70a6d7e6db636decc6af752f9a7714906] egl: Add eglQuerySurface surface type check for EGL_LARGEST_PBUFFER attrib
git bisect bad 1f6798a70a6d7e6db636decc6af752f9a7714906
# bad: [1f6798a70a6d7e6db636decc6af752f9a7714906] egl: Add eglQuerySurface surface type check for EGL_LARGEST_PBUFFER attrib
git bisect bad 1f6798a70a6d7e6db636decc6af752f9a7714906
# good: [4c3a4ac6da7820226ecad5fd654899ae727e11e0] nvc0: turn sample counts off during blit
git bisect good 4c3a4ac6da7820226ecad5fd654899ae727e11e0
# good: [ddc976368fef367e464472ebcc2ac4fd89eb9fd8] Add release notes for 10.6.3
git bisect good ddc976368fef367e464472ebcc2ac4fd89eb9fd8
# bad: [ba10c9ff5088b99591c13cad0b70929b49e6319c] nvc0: fix geometry program revalidation of clipping params
git bisect bad ba10c9ff5088b99591c13cad0b70929b49e6319c
# bad: [fbc464803a777bea4f9b7b11eeba192122adf8cb] mesa: Turn get_readpixels_transfer_ops() in to a global function
git bisect bad fbc464803a777bea4f9b7b11eeba192122adf8cb
# bad: [504903b827604f1a630a335d14231f88c2cf36be] st/mesa: don't call st_validate_state in BlitFramebuffer
git bisect bad 504903b827604f1a630a335d14231f88c2cf36be
# good: [c33ca1696a0a967091937805fa198ffc3317a03f] configure.ac: do not set HAVE_DRI(23) when libdrm is missing
git bisect good c33ca1696a0a967091937805fa198ffc3317a03f

---------------

Hw:
05:00.0 VGA compatible controller: NVIDIA Corporation G92 [GeForce 8800 GS] (rev a2) (prog-if 00 [VGA controller])

Note: I use older (patched) X server from 1.12 branch - but as far as I can see it doesn't expose anything new (sRGB fbconfigs, etc), and just changing nouveau_dri.so alone enough to make bug visible.
Comment 1 Ilia Mirkin 2015-09-22 18:17:03 UTC
This appears to affect all gallium drivers -- Glenn confirmed this was also showing black on r600. i965 is unaffected.
Comment 2 Ilia Mirkin 2015-09-22 18:23:03 UTC
(Updating commit id in subject to upstream commit, not stable branch)
Comment 3 Samuel Pitoiset 2015-09-22 20:05:41 UTC
I can also reproduce this bug on GF119 (nvc0 driver) with master, and (obviously) reverting that commit fixes the issue, but the assert in ext_framebuffer_blit/blit-early is back.
Comment 4 Ilia Mirkin 2015-09-23 01:06:54 UTC
FYI Marek has a fix: http://patchwork.freedesktop.org/patch/60146/

I tested it with this trace, and it seems to fix it.
Comment 5 Andrew Randrianasulu 2015-09-23 10:28:41 UTC
(In reply to Ilia Mirkin from comment #4)
> FYI Marek has a fix: http://patchwork.freedesktop.org/patch/60146/
> 
> I tested it with this trace, and it seems to fix it.

Yes, just tested it - works fine for both UT and 3Dmark2000! Thanks, Marek!
Comment 6 Marek Olšák 2015-09-24 18:28:57 UTC
Fixed by f3a081953393c7d40bd8df9ec22a2551d01098f5. 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.