Bug 103389 - [regression, bisected] Bad flickering of items in steam, completely broken graphics in Rocket League
Summary: [regression, bisected] Bad flickering of items in steam, completely broken gr...
Alias: None
Product: Mesa
Classification: Unclassified
Component: Drivers/Gallium/radeonsi (show other bugs)
Version: git
Hardware: Other All
: medium normal
Assignee: Default DRI bug account
QA Contact: Default DRI bug account
Depends on:
Reported: 2017-10-21 10:39 UTC by Gregor Münch
Modified: 2017-10-29 15:23 UTC (History)
1 user (show)

See Also:
i915 platform:
i915 features:

regressed steam menu (149.88 KB, image/jpeg)
2017-10-21 10:39 UTC, Gregor Münch
Rocket League ingame (723.00 KB, image/jpeg)
2017-10-21 14:23 UTC, Gregor Münch
glxgears bug (1.19 MB, image/gif)
2017-10-21 17:46 UTC, bartos.petr
Layers of Fear segfault (33.94 KB, text/plain)
2017-10-29 15:23 UTC, bartos.petr

Description Gregor Münch 2017-10-21 10:39:36 UTC
Created attachment 134972 [details]
regressed steam menu

Steam has some very bad flickering of menu items in latest mesa git. 

OpenGL renderer string: AMD Radeon HD 7900 Series (TAHITI / DRM 3.23.0 / 4.13.0-2-amd-staging-drm-next-git, LLVM 6.0.0)
OpenGL core profile version string: 4.5 (Core Profile) Mesa 17.3.0-devel (git-0fdd531457)

Bisected to:

2f4705afde707e8eb41b9414c25df91aa1ea2fb3 is the first bad commit
commit 2f4705afde707e8eb41b9414c25df91aa1ea2fb3
Author: Marek Olšák <marek.olsak@amd.com>
Date:   Sun Oct 8 03:44:07 2017 +0200

    radeonsi: if there's just const buffer 0, set it in place of CONST/SSBO pointer
    SI_SGPR_CONST_AND_SHADER_BUFFERS now contains the pointer to const buffer 0
    if there is no other buffer there.
    - there is no constbuf descriptor upload and shader load
    It's assumed that all constant addresses are within bounds. Non-constant
    addresses are clamped against the last declared CONST variable.
    This only works if the state tracker ensures the bound constant buffer
    matches what the shader needs.
    Once we get 32-bit pointers, we can only do this for user constant buffers
    where the driver is in charge of the upload so that it can guarantee a 32-bit
    The real performance benefit might not be measurable.
    These apps get 100% theoretical benefit in all shaders (except where noted):
    - antichamber
    - barman arkham origins
    - borderlands 2
    - borderlands pre-sequel
    - brutal legend
    - civilization BE
    - CS:GO
    - deadcore
    - dota 2 -- most shaders
    - europa universalis
    - grid autosport -- most shaders
    - left 4 dead 2
    - legend of grimrock
    - life is strange
    - payday 2
    - portal
    - rocket league
    - serious sam 3 bfe
    - talos principle
    - team fortress 2
    - thea
    - unigine heaven
    - unigine valley -- also sanctuary and tropics
    - wasteland 2
    - xcom: enemy unknown & enemy within
    - tesseract
    - unity (engine)
    Changed stats only:
        SGPRS: 2059998 -> 2086238 (1.27 %)
        VGPRS: 1626888 -> 1626904 (0.00 %)
        Spilled SGPRs: 7902 -> 7865 (-0.47 %)
        Code Size: 60924520 -> 60982660 (0.10 %) bytes
        Max Waves: 374539 -> 374526 (-0.00 %)
    Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>

:040000 040000 7b660ccfb110c80ecd9b3d2f7f06ace5380cb76f d8ddc8515150a84131e566c4ddafb05d3d7be0a7 M	src

Confirmed bad commit by reverting it.
Comment 1 Gregor Münch 2017-10-21 14:23:40 UTC
Created attachment 134975 [details]
Rocket League ingame

Rocket League is also badly broken. Reverting the commit also helps here.
Comment 2 bartos.petr 2017-10-21 17:45:24 UTC
This commit also breaks linux version of Layers of Fear (flickering lights/shadows in some areas), Clive Barkers Jericho (black background of menu instead of animated "flesh", white/overbrighted screen in-game) and even glxgears (weird pulsating lights)
Comment 3 bartos.petr 2017-10-21 17:46:07 UTC
Created attachment 134979 [details]
glxgears bug
Comment 4 Marek Olšák 2017-10-27 11:08:20 UTC
Fixed with https://cgit.freedesktop.org/mesa/mesa/commit/?id=3f8e3c2bd8f54ae6817f7496be47f4e1a8860d9c

You also need to update LLVM 6.0 from git or switch to LLVM 5.0. Anything in between will lead to the same corruption.
Comment 5 bartos.petr 2017-10-29 15:23:26 UTC
Created attachment 135156 [details]
Layers of Fear segfault

I`ve upgraded to latest git versions of mesa, llvm, clang and compiler-rt. Jericho and glxgears are fixed, however Layers of Fear segfaults on start.

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.