From mboxrd@z Thu Jan 1 00:00:00 1970
From: bugzilla-daemon@freedesktop.org
Subject: [Bug 98664] Fragment shader while loop causes geometry corruption
Date: Fri, 18 Nov 2016 21:51:01 +0000
Message-ID:
References:
Mime-Version: 1.0
Content-Type: multipart/mixed; boundary="===============0445830594=="
Return-path:
Received: from culpepper.freedesktop.org (culpepper.freedesktop.org
[IPv6:2610:10:20:722:a800:ff:fe98:4b55])
by gabe.freedesktop.org (Postfix) with ESMTP id 2F45D6EA8F
for ; Fri, 18 Nov 2016 21:51:01 +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
--===============0445830594==
Content-Type: multipart/alternative; boundary="14795058611.eFc3d8.16021";
charset="UTF-8"
--14795058611.eFc3d8.16021
Date: Fri, 18 Nov 2016 21:51:01 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-Bugzilla-URL: http://bugs.freedesktop.org/
Auto-Submitted: auto-generated
https://bugs.freedesktop.org/show_bug.cgi?id=3D98664
--- Comment #16 from Roland Scheidegger ---
(In reply to Nicolai H=C3=A4hnle from comment #14)
> I suspect the reason that the blob drivers do it this way is that if you
> don't, you're likely to hit a subtle bug with emit inside control flow. A=
nd
> making the effort to exploit the undefined-ness probably pays off very
> rarely, so...
Also, you can do this with dx10, so app developers porting things are somew=
hat
likely to get it wrong (I suppose that's similar to other such subtle issues
like discard killing your derivatives if you have per-pixel control flow wi=
th
gl, but not with dx10).
At least I think so from the description of emit:
https://msdn.microsoft.com/en-us/library/windows/desktop/hh447053(v=3Dvs.85=
).aspx
"emit causes all declared o# registers to be read out of the Geometry Shade=
r to
generate a vertex." Doesn't say explicitly the registers are still valid
afterwards, but since reading a register usually doesn't nuke the value, the
reg getting undefined would be a side-effect which should have been
mentioned...
--=20
You are receiving this mail because:
You are the assignee for the bug.=
--14795058611.eFc3d8.16021
Date: Fri, 18 Nov 2016 21:51:01 +0000
MIME-Version: 1.0
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-Bugzilla-URL: http://bugs.freedesktop.org/
Auto-Submitted: auto-generated
Commen=
t # 16
on bug 98664<=
/a>
from Roland Scheidegger
(In reply to Nicolai H=C3=A4hnle from comment #14)
> I suspect the reason that the blob drivers do it=
this way is that if you
> don't, you're likely to hit a subtle bug with emit inside control flow=
. And
> making the effort to exploit the undefined-ness probably pays off very
> rarely, so...
Also, you can do this with dx10, so app developers porting things are somew=
hat
likely to get it wrong (I suppose that's similar to other such subtle issues
like discard killing your derivatives if you have per-pixel control flow wi=
th
gl, but not with dx10).
At least I think so from the description of emit:
https://msdn.microsoft.com/en-us/library/windows/desktop=
/hh447053(v=3Dvs.85).aspx
"emit causes all declared o# registers to be read out of the Geometry =
Shader to
generate a vertex." Doesn't say explicitly the registers are still val=
id
afterwards, but since reading a register usually doesn't nuke the value, the
reg getting undefined would be a side-effect which should have been
mentioned...
You are receiving this mail because:
- You are the assignee for the bug.
=
--14795058611.eFc3d8.16021--
--===============0445830594==
Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: base64
Content-Disposition: inline
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVs
IG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlz
dHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCg==
--===============0445830594==--