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==--