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: Wed, 17 Feb 2016 21:12:29 +0000 Message-ID: References: Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="===============0404455619==" Return-path: Received: from culpepper.freedesktop.org (culpepper.freedesktop.org [131.252.210.165]) by gabe.freedesktop.org (Postfix) with ESMTP id 071A589F53 for ; Wed, 17 Feb 2016 21:12:32 +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 --===============0404455619== Content-Type: multipart/alternative; boundary="14557435500.E96Fc35d8.12017"; charset="UTF-8" --14557435500.E96Fc35d8.12017 Date: Wed, 17 Feb 2016 21:12:30 +0000 MIME-Version: 1.0 Content-Type: text/plain https://bugs.freedesktop.org/show_bug.cgi?id=93594 --- Comment #12 from Roland Scheidegger --- (In reply to Marek Olšák from comment #10) > The GLSL shader is using discard followed by fwidth. This is undefined > behavior. > > Therefore, it's an application bug. I wasn't aware of this difference, but seeing this bug made me suspicious, and indeed d3d10 is saying for discard: https://msdn.microsoft.com/en-us/library/windows/desktop/hh446968%28v=vs.85%29.aspx "This instruction flags the current pixel as terminated, while continuing execution, so that other pixels executing in parallel may obtain derivatives if necessary. Even though execution continues, all Pixel Shader output writes before or after the discard instruction are discarded." That's very interesting... gallium docs don't actually say anything about this neither naturally. (I think it should work in llvmpipe, because indeed we only update the pixel alive mask.) Due to d3d10 being different there, I wouldn't be surprised if other apps make the same mistake. -- You are receiving this mail because: You are the assignee for the bug. --14557435500.E96Fc35d8.12017 Date: Wed, 17 Feb 2016 21:12:30 +0000 MIME-Version: 1.0 Content-Type: text/html

Comment # 12 on bug 93594 from
(In reply to Marek Olšák from comment #10)
> The GLSL shader is using discard followed by fwidth. This is undefined
> behavior.
> 
> Therefore, it's an application bug.

I wasn't aware of this difference, but seeing this bug made me suspicious, and
indeed d3d10 is saying for discard:
https://msdn.microsoft.com/en-us/library/windows/desktop/hh446968%28v=vs.85%29.aspx
"This instruction flags the current pixel as terminated, while continuing
execution, so that other pixels executing in parallel may obtain derivatives if
necessary. Even though execution continues, all Pixel Shader output writes
before or after the discard instruction are discarded."

That's very interesting...

gallium docs don't actually say anything about this neither naturally. (I think
it should work in llvmpipe, because indeed we only update the pixel alive
mask.)

Due to d3d10 being different there, I wouldn't be surprised if other apps make
the same mistake.


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