https://bugs.freedesktop.org/show_bug.cgi?id=91808
Bug ID: 91808 Summary: trine1 misrender r600g Product: Mesa Version: git Hardware: Other OS: All Status: NEW Severity: normal Priority: medium Component: Drivers/Gallium/r600 Assignee: dri-devel@lists.freedesktop.org Reporter: serafean@gmail.com QA Contact: dri-devel@lists.freedesktop.org
Created attachment 117987 --> https://bugs.freedesktop.org/attachment.cgi?id=117987&action=edit misrendered scene
Trine 1 misrenders sometimes on HD6950, with mesa 11.0 rc
OpenGL renderer string: Gallium 0.4 on AMD CAYMAN (DRM 2.42.0, LLVM 3.6.2) OpenGL core profile version string: 3.3 (Core Profile) Mesa 11.0.0-rc1 OpenGL core profile shading language version string: 3.30
See attached screenshot. I also made an apitrace, but am unsure as to where to post it.
https://bugs.freedesktop.org/show_bug.cgi?id=91808
--- Comment #1 from Martin Bednar serafean@gmail.com --- apitrace : http://uloz.to/xh9tNZr9/trine1-linux-32bit-trace Can upload elsewhere if trouble arises :)
https://bugs.freedesktop.org/show_bug.cgi?id=91808
Alex Deucher alexdeucher@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Attachment #117987|text/plain |image/png mime type| |
https://bugs.freedesktop.org/show_bug.cgi?id=91808
--- Comment #2 from Alex Deucher alexdeucher@gmail.com --- Possibly a duplicate of bug 66067.
https://bugs.freedesktop.org/show_bug.cgi?id=91808
--- Comment #3 from Martin Bednar serafean@gmail.com ---
From what I gather, 66067 is about colors & luminosity. I reported this because
of the line that goes vertically through the whole screen. On the screenshot it is located under "paused". The sources of the line are AFAICS the gears just above the spiky area. Specifying now just to make sure that we're talking about the same thing.
https://bugs.freedesktop.org/show_bug.cgi?id=91808
--- Comment #4 from Alex Deucher alexdeucher@gmail.com --- (In reply to Martin Bednar from comment #3)
From what I gather, 66067 is about colors & luminosity. I reported this because of the line that goes vertically through the whole screen. On the screenshot it is located under "paused". The sources of the line are AFAICS the gears just above the spiky area. Specifying now just to make sure that we're talking about the same thing.
I'm not sure what line you are talking about. Can you post a shot of what the rendering should look like?
https://bugs.freedesktop.org/show_bug.cgi?id=91808
--- Comment #5 from Martin Bednar serafean@gmail.com --- Created attachment 118029 --> https://bugs.freedesktop.org/attachment.cgi?id=118029&action=edit corrrect rendering.
Correct rendering. Sorry for the different resolution. (and slightly different game version) The difference to look at is the rotating platform on the left of the character.
https://bugs.freedesktop.org/show_bug.cgi?id=91808
Martin Bednar serafean@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Attachment #118029|text/plain |image/jpeg mime type| |
https://bugs.freedesktop.org/show_bug.cgi?id=91808
--- Comment #6 from Martin Bednar serafean@gmail.com --- Created attachment 118033 --> https://bugs.freedesktop.org/attachment.cgi?id=118033&action=edit apitrace replay on nouveau (11.0 rc-1)
same scene as in report, without the reported rendering issue, and no obvious other rendering issue.
https://bugs.freedesktop.org/show_bug.cgi?id=91808
--- Comment #7 from James Harvey lothmordor@gmail.com --- I'm seeing this same issue on my HD5850. This is the Trine Enhanced Edition via Steam (using the Trine2 engine). In the correctly rendered screenshot, there is a rotating platform with two gears to the left of the character. In the misrendered scene, it looks like the gear behind the first one is being stretched vertically to the full viewport height.
Software versions: Linux 4.8.0-rc1 x86_64 OpenGL core profile version string: 4.1 (Core Profile) Mesa 12.1.0-devel (git-d816a51)
GPU hardware: OpenGL renderer string: Gallium 0.4 on AMD CYPRESS (DRM 2.46.0 / 4.8.0-rc1) 01:00.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] Cypress PRO [Radeon HD 5850] [1002:6899]
CPU hardware: AMD Phenom(tm) II X4 955 Processor
https://bugs.freedesktop.org/show_bug.cgi?id=91808
--- Comment #8 from iive@yahoo.com --- This bug is still present with current Mesa-18.0.0.rc5.
Since the old trace is not available anymore I've made a new one(70MB):
https://drive.google.com/open?id=16N0m--IKupnWvnuvu27uebBjbDHUP3C4
I used "llvmpipe" during capture and the result also plays perfectly with "llvmpipe" (aka Mesa3D software render).
The bug is visible in the rotating gears/cogs. I tried "R600_DEBUG=nosb", but this does not seem to fix it.
I tried to find the draw operations. Frame #175 seems to show the artifact quite clearly. The draw operations at call #8053345 seems to draw a small cog that looks normal. I believe that the smeared gear is drawn by call #8053560.
My hardware is Radeon HD5670 Redwood Evergreen (R600 driver).
https://bugs.freedesktop.org/show_bug.cgi?id=91808
--- Comment #9 from iive@yahoo.com --- Created attachment 138468 --> https://bugs.freedesktop.org/attachment.cgi?id=138468&action=edit Trine1 glitchy gear draw command uses this Vertex Shader. The file contains glsl, glsl ir, tgsi, vliw5 and SB optimized vliw5 variants of the same shader.
https://bugs.freedesktop.org/show_bug.cgi?id=91808
--- Comment #10 from Hamish Wilson hamish@icculus.org --- Created attachment 138966 --> https://bugs.freedesktop.org/attachment.cgi?id=138966&action=edit April 2018 Graphical Artifact Screenshots
I am seeing graphical artifacts across several levels of Trine Enchanted Edition. These are most apparent with the gears in the Academy Hallways level, but I also encountered a curious lighting artifact in the Dragon Graveyard level as well as a problem with the rain later on in the same level. I am using a Sapphire Radeon HD 6870 graphics card on Arch Linux using the 4.16.3-1-ARCH Kernel package, the 1:18.0.1-1 xf86-video-ati pacakge, and the 18.0.1-1 Mesa package.
https://bugs.freedesktop.org/show_bug.cgi?id=91808
--- Comment #11 from Dave Airlie airlied@freedesktop.org --- Created attachment 139029 --> https://bugs.freedesktop.org/attachment.cgi?id=139029&action=edit attempted fix
https://bugs.freedesktop.org/show_bug.cgi?id=91808
--- Comment #12 from Hamish Wilson hamish@icculus.org --- (In reply to Dave Airlie from comment #11)
Created attachment 139029 [details] [review] attempted fix
I have tried applying the patch to my Mesa package using the Arch Build System, but unfortunately it does not appear to have corrected the artifacts.
https://bugs.freedesktop.org/show_bug.cgi?id=91808
--- Comment #13 from Dave Airlie airlied@freedesktop.org --- Just adding some things I've tried to fix this to no avail.
use RECIP_FF/CLAMPED instead of RECIP_IEEE use RECIPSQRT_FF/CLAMPED instead of RECIPSQRT_IEEE use MUL/MULADD/DOT4 instead of IEEE
Split constants into DOT4, rewrote DOT4 output to go via another register.
Disable scaled 16-bit float vertices, this change the misrendering to something worse for some reason.
I've noticed the broken drawing operations are the same vbo/ib with a different set of constant values for VS constants 124-126, the first draw works and draws the inside gear, the second draw to draw the outside gear fails.
I considered then it might be constant caching or vertex caching since we use vfetch to fetch the consts, tried add more flushing between draws, tried using uncached descriptor for constant buffer.
Nothing above has fixed it, merely logging it for my own sanity at this point.
https://bugs.freedesktop.org/show_bug.cgi?id=91808
Dave Airlie airlied@freedesktop.org changed:
What |Removed |Added ---------------------------------------------------------------------------- Attachment #139029|0 |1 is obsolete| |
--- Comment #14 from Dave Airlie airlied@freedesktop.org --- Created attachment 139438 --> https://bugs.freedesktop.org/attachment.cgi?id=139438&action=edit clamp constant buffer data
This looks a lot better to me!
https://bugs.freedesktop.org/show_bug.cgi?id=91808
--- Comment #15 from iive@yahoo.com --- Looks perfect to me. The shadow flickering is also gone. Tested with the real game on "lowest" and "very high" settings.
In addition, it also seems to fix the witcher1 trace too.
Can you give a long explanation what was the root of the problem. I do see it is about the size of the constant buffer.
https://bugs.freedesktop.org/show_bug.cgi?id=91808
Dave Airlie airlied@freedesktop.org changed:
What |Removed |Added ---------------------------------------------------------------------------- Resolution|--- |FIXED Status|NEW |RESOLVED
--- Comment #16 from Dave Airlie airlied@freedesktop.org --- The fix is pushed in master.
The code wasn't limiting the constant buffer sizing correctly so it was accessing random values from other operations rather than limiting things to the constants for this draw. So out of bounds accesses weren't returning default values but random ones.
https://bugs.freedesktop.org/show_bug.cgi?id=91808
Roman Elshin roman.elshin@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |roman.elshin@gmail.com
--- Comment #17 from Roman Elshin roman.elshin@gmail.com --- *** Bug 99403 has been marked as a duplicate of this bug. ***
dri-devel@lists.freedesktop.org