From mboxrd@z Thu Jan 1 00:00:00 1970 From: bugzilla-daemon@freedesktop.org Subject: [Bug 93594] Flickering Shadows in The Talos Principle Date: Fri, 19 Feb 2016 10:17:18 +0000 Message-ID: References: Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="===============2054789160==" Return-path: Received: from culpepper.freedesktop.org (culpepper.freedesktop.org [131.252.210.165]) by gabe.freedesktop.org (Postfix) with ESMTP id 34B176E41D for ; Fri, 19 Feb 2016 10:17:20 +0000 (UTC) In-Reply-To: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org --===============2054789160== Content-Type: multipart/alternative; boundary="14558770390.fb3DaBD.11732"; charset="UTF-8" --14558770390.fb3DaBD.11732 Date: Fri, 19 Feb 2016 10:17:19 +0000 MIME-Version: 1.0 Content-Type: text/plain https://bugs.freedesktop.org/show_bug.cgi?id=93594 --- Comment #18 from Kai --- (In reply to Marek Olšák from comment #10) > (In reply to Michel Dänzer from comment #9) > > Note that AFAIK using things like derivatives in non-uniform control flow > > isn't supported by GLSL. What's the original GLSL shader? > > True. > > The GLSL shader is using discard followed by fwidth. This is undefined > behavior. > > Therefore, it's an application bug. > > The easy workaround would be to disable register allocation in st/mesa to > get a quasi-SSA form and trivially move KILL_IF to the end of the shader if > the app is detected to be Talos Principle. I forwarded this information to Croteam and Dean Sekulic answered: > Oh, just found out that discard instruction is treated as dynamic flow control > for some reason... :/ > > Will fix this! > > > On 19-02-16 8:21, Dean Sekulic wrote: >> I can't find any reference anywhere that doing fwidth() (or ddx/ddy for >> that matter) after discard should be undefined behavior... :/ >> >> GPUs should handle that case completely fine. >> >> Can you elaborate, please? Looks like there might be an update for The Talos Principle which will address this. -- You are receiving this mail because: You are the assignee for the bug. --14558770390.fb3DaBD.11732 Date: Fri, 19 Feb 2016 10:17:19 +0000 MIME-Version: 1.0 Content-Type: text/html

Comment # 18 on bug 93594 from
(In reply to Marek Olšák from comment #10)
> (In reply to Michel Dänzer from comment #9)
> > Note that AFAIK using things like derivatives in non-uniform control flow
> > isn't supported by GLSL. What's the original GLSL shader?
> 
> True.
> 
> The GLSL shader is using discard followed by fwidth. This is undefined
> behavior.
> 
> Therefore, it's an application bug.
> 
> The easy workaround would be to disable register allocation in st/mesa to
> get a quasi-SSA form and trivially move KILL_IF to the end of the shader if
> the app is detected to be Talos Principle.

I forwarded this information to Croteam and Dean Sekulic answered:
> Oh, just found out that discard instruction is treated as dynamic flow control
> for some reason... :/
>
> Will fix this!
>
>
> On 19-02-16 8:21, Dean Sekulic wrote:
>> I can't find any reference anywhere that doing fwidth() (or ddx/ddy for
>> that matter) after discard should be undefined behavior... :/
>>
>> GPUs should handle that case completely fine.
>>
>> Can you elaborate, please?

Looks like there might be an update for The Talos Principle which will address
this.


You are receiving this mail because:
  • You are the assignee for the bug.
--14558770390.fb3DaBD.11732-- --===============2054789160== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: inline X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVs IG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlz dHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCg== --===============2054789160==--