Created attachment 126603 [details]
Unreal Engine 4.13.1 editor shows corrupted preview viewports when at least one of the following post-processing effects is active in a viewport:
* Motion Blur
A screenshot of a viewport segment is attached.
When both effects are turned off, viewports appear to render correctly.
Graphics card: AMD TONGA chipset (Radeo R9 380)
Mesa version: 12.1~git1600917222200.073129c~x~padoka0 on Ubuntu 16.04 with Padoka PPA
OpenGL core profile version string: 4.3 (Core Profile) Mesa 12.1.0-devel - padoka PPA
OpenGL version string: 3.0 Mesa 12.1.0-devel - padoka PPA
OpenGL ES profile version string: OpenGL ES 3.1 Mesa 12.1.0-devel - padoka PPA
Hi Markus, can you provide an apitrace that can reproduce the corruption?
(In reply to Nicolai Hähnle from comment #1)
> Hi Markus, can you provide an apitrace that can reproduce the corruption?
Hi Nicolai, I'm not familiar with debugging Mesa. Could you please provide a link to documentation on how I can obtain the information you need?
Use this tool: https://github.com/apitrace/apitrace to record a session that shows the problem. Once installed, you basically just run `apitrace trace <program under trace>`. The documentation linked to in the readme is generally pretty good.
Created attachment 127627 [details]
(In reply to Nicolai Hähnle from comment #3)
> Use this tool: https://github.com/apitrace/apitrace to record a session that
> shows the problem. Once installed, you basically just run `apitrace trace
> <program under trace>`. The documentation linked to in the readme is
> generally pretty good.
Hi Nicolai, an API trace is now attached. The trace was created with Mesa version 13.1~git161022230600.7b7eb71~x~padoka0 where the issue is still present.
The major part of the trace probably consists of the editor starting up, so the issue itself should only be captured in the seconds prior to the editor starting to shut down.
A shader program fails to link, see below. This may be an Unreal Engine (editor) bug, reassigning to the GLSL compiler for now.
839119 @4 glLinkProgram(program = 3018)
839119: warning: link failed
839119: warning: error: vertex shader output `out_TEXCOORD0' specifies noperspective interpolation qualifier, but fragment shader input specifies no interpolation qualifier
Mesa: User error: GL_INVALID_OPERATION in glUseProgram(program 3018 not linked)
AFAIK this error is valid for GLSL version < 440, which GLSL version is this shader written against?
strings UE4Editor.1.trace|grep '#version'|sort -u
only yields "#version 430".
A game "Refunct" also suffers from this when "post process" setting is set to "ultra".
Since this limitation is rather artificial, and multiple released programs are affected, could it be demoted to a warning?
Any news on this?
Possibly related: https://github.com/EpicGames/UnrealEngine/pull/4080/files (engine side fix)
While an engine fix is always desireable .. "for the future", I agree that if this could be turned into a warning on the driver side it would be nice.
Created attachment 135622 [details] [review]
since we now have another case (Observer_) here's a workaround suggestion.
Created attachment 135659 [details] [review]
sorry .. there was some issues, fixed workaround
workaround pushed to Mesa master
--- 8< ---
Author: Tapani Pälli <email@example.com>
Date: Fri Nov 24 07:46:07 2017 +0200
mesa: add AllowGLSLCrossStageInterpolationMismatch workaround
This fixes issues seen with certain versions of Unreal Engine 4 editor
and games built with that using GLSL 4.30.
v2: add driinfo_gallium change (Emil Velikov)
Signed-off-by: Tapani Pälli <firstname.lastname@example.org>
Acked-by: Andres Gomez <email@example.com>
Reviewed-by: Kenneth Graunke <firstname.lastname@example.org>