From mboxrd@z Thu Jan 1 00:00:00 1970
From: bugzilla-daemon@freedesktop.org
Subject: [Bug 97988] [radeonsi] playing back videos with VDPAU exhibits
deinterlacing/anti-aliasing issues not visible with VA-API
Date: Sat, 01 Oct 2016 18:41:03 +0000
Message-ID:
References:
Mime-Version: 1.0
Content-Type: multipart/mixed; boundary="===============0962322608=="
Return-path:
Received: from culpepper.freedesktop.org (culpepper.freedesktop.org
[131.252.210.165])
by gabe.freedesktop.org (Postfix) with ESMTP id C36D76E130
for ; Sat, 1 Oct 2016 18:41:02 +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
--===============0962322608==
Content-Type: multipart/alternative; boundary="14753472620.FbC9C.22853";
charset="UTF-8"
--14753472620.FbC9C.22853
Date: Sat, 1 Oct 2016 18:41:02 +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=3D97988
--- Comment #11 from Marek Ol=C5=A1=C3=A1k ---
Thanks Grigori.
GLSL:
color =3D fract(gl_FragCoord.y / 2) < 0.5 ?
texture(texture0, texcoord0) :
texture(texture1, texcoord0);
texture0 and texture1 are SMEM loads.
LLVM (SimplifyCFG) transforms it to:
color =3D texture(fract(gl_FragCoord.y / 2) < 0.5 ? texture0 : texture1,
texcoord0);
That's a nice transformation. You don't have to use 2 SMEM loads, you can j=
ust
use one SMEM load depending on the result of the condition.
The problem is gl_FragCoord.y is a VGPR and texture0/1 are SGPRs, therefore
flat VMEM loads are used to load the descriptors. However, image_sample
requires descriptors in SGPRs, so v_readfirstlane is used. That effectively
uses the result of the condition from the first active lane, discarding the
results from all other lanes. The result would be exactly the same if the
compiler did: v_readfirstlane s0, gl_FragCoord.y;
The test case seems pretty trivial I wonder how many other apps are affecte=
d.
--=20
You are receiving this mail because:
You are the assignee for the bug.=
--14753472620.FbC9C.22853
Date: Sat, 1 Oct 2016 18:41:02 +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 # 11
on bug 97988<=
/a>
from Marek Ol=C5=A1=C3=A1k
Thanks Grigori.
GLSL:
color =3D fract(gl_FragCoord.y / 2) < 0.5 ?
texture(texture0, texcoord0) :
texture(texture1, texcoord0);
texture0 and texture1 are SMEM loads.
LLVM (SimplifyCFG) transforms it to:
color =3D texture(fract(gl_FragCoord.y / 2) < 0.5 ? texture0 : texture=
1,
texcoord0);
That's a nice transformation. You don't have to use 2 SMEM loads, you can j=
ust
use one SMEM load depending on the result of the condition.
The problem is gl_FragCoord.y is a VGPR and texture0/1 are SGPRs, therefore
flat VMEM loads are used to load the descriptors. However, image_sample
requires descriptors in SGPRs, so v_readfirstlane is used. That effectively
uses the result of the condition from the first active lane, discarding the
results from all other lanes. The result would be exactly the same if the
compiler did: v_readfirstlane s0, gl_FragCoord.y;
The test case seems pretty trivial I wonder how many other apps are affecte=
d.
You are receiving this mail because:
- You are the assignee for the bug.
=
--14753472620.FbC9C.22853--
--===============0962322608==
Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: base64
Content-Disposition: inline
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVs
IG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlz
dHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCg==
--===============0962322608==--