From mboxrd@z Thu Jan 1 00:00:00 1970
From: bugzilla-daemon@freedesktop.org
Subject: [Bug 85579] [bisected] piglit test crashes in
spec/glsl-1.50/execution/geometry/max-input-components
Date: Sun, 02 Nov 2014 11:19:08 +0000
Message-ID:
References:
Mime-Version: 1.0
Content-Type: multipart/mixed; boundary="===============0763026709=="
Return-path:
Received: from culpepper.freedesktop.org (unknown [131.252.210.165])
by gabe.freedesktop.org (Postfix) with ESMTP id 1CDF46E291
for ; Sun, 2 Nov 2014 03:19:08 -0800 (PST)
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
--===============0763026709==
Content-Type: multipart/alternative; boundary="1414927147.15671.21555"; charset="UTF-8"
--1414927147.15671.21555
Date: Sun, 2 Nov 2014 11:19:07 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
https://bugs.freedesktop.org/show_bug.cgi?id=3D85579
--- Comment #9 from Marek Ol=C5=A1=C3=A1k ---
I think there are 2 ways to fix this and we should do both:
1) Fix VGPR register spilling caused by indirect addressing into lots of
registers. LLVM crashes when it attempts to do that. Those registers are ju=
st
copies of shader inputs and outputs.
2)
Step A) Implement indirect addressing for VS outputs before GS and GS input=
s.
This means that we cannot store outputs at the end of shaders (using
emit_epilogue), but we must store them when they occur as a destination
register (using emit_store).
(BTW my tessellation branch contains modifications to emit_store that make =
it
easier to re-implement it for shaders that use store instructions for outpu=
ts)
Step B) glsl_to_tgsi and/or some passes of the GLSL compiler may need to be
modified not to move ins/outs into temporaries. I think the only pass that =
does
that is the varying packing. The pass should be disabled or rewritten, beca=
use
its current implementation isn't gonna fly with our hardware and is often t=
he
cause of unnecessary register spilling.
--=20
You are receiving this mail because:
You are the assignee for the bug.
--1414927147.15671.21555
Date: Sun, 2 Nov 2014 11:19:07 +0000
MIME-Version: 1.0
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
Comment=
# 9
on bug 85579<=
/a>
from Marek Ol=C5=A1=C3=A1k
I think there are 2 ways to fix this and we should do both:
1) Fix VGPR register spilling caused by indirect addressing into lots of
registers. LLVM crashes when it attempts to do that. Those registers are ju=
st
copies of shader inputs and outputs.
2)
Step A) Implement indirect addressing for VS outputs before GS and GS input=
s.
This means that we cannot store outputs at the end of shaders (using
emit_epilogue), but we must store them when they occur as a destination
register (using emit_store).
(BTW my tessellation branch contains modifications to emit_store that make =
it
easier to re-implement it for shaders that use store instructions for outpu=
ts)
Step B) glsl_to_tgsi and/or some passes of the GLSL compiler may need to be
modified not to move ins/outs into temporaries. I think the only pass that =
does
that is the varying packing. The pass should be disabled or rewritten, beca=
use
its current implementation isn't gonna fly with our hardware and is often t=
he
cause of unnecessary register spilling.
You are receiving this mail because:
=20=20=20=20=20=20
- You are the assignee for the bug.
--1414927147.15671.21555--
--===============0763026709==
Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: base64
Content-Disposition: inline
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVs
IG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHA6Ly9saXN0
cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwK
--===============0763026709==--