[Mesa-dev] [Bug 96684] [swrast] piglit glsl-array-bounds-01 regression
bugzilla-daemon at freedesktop.org
bugzilla-daemon at freedesktop.org
Sun Jun 26 19:44:00 UTC 2016
https://bugs.freedesktop.org/show_bug.cgi?id=96684
Bug ID: 96684
Summary: [swrast] piglit glsl-array-bounds-01 regression
Product: Mesa
Version: git
Hardware: x86-64 (AMD64)
OS: Linux (All)
Status: NEW
Keywords: bisected, regression
Severity: normal
Priority: medium
Component: Mesa core
Assignee: mesa-dev at lists.freedesktop.org
Reporter: vlee at freedesktop.org
QA Contact: mesa-dev at lists.freedesktop.org
CC: kenneth at whitecape.org, t_arceri at yahoo.com.au
mesa: 367cf3a2e3e51466429a6446ef14ed398a5fb948 (12.1.0-devel)
$ ./bin/shader_runner tests/shaders/glsl-array-bounds-01.shader_test -auto
Probe color at (15,15)
Expected: 0.000000 1.000000 0.000000
Observed: 1.000000 0.000000 0.000000
PIGLIT: {"result": "fail" }
c264fdbc073a0dfc393f53a8be880f535fd4b988 is the first bad commit
commit c264fdbc073a0dfc393f53a8be880f535fd4b988
Author: Kenneth Graunke <kenneth at whitecape.org>
Date: Mon Jun 20 11:20:51 2016 -0700
glsl: Split arrays even in the presence of whole-array copies.
Previously, we failed to split constant arrays. Code such as
int[2] numbers = int[](1, 2);
would generates a whole-array assignment:
(assign () (var_ref numbers)
(constant (array int 4) (constant int 1) (constant int 2)))
opt_array_splitting generally tried to visit ir_dereference_array nodes,
and avoid recursing into the inner ir_dereference_variable. So if it
ever saw a ir_dereference_variable, it assumed this was a whole-array
read and bailed. However, in the above case, there's no array deref,
and we can totally handle it - we just have to "unroll" the assignment,
creating assignments for each element.
This was mitigated by the fact that we constant propagate whole arrays,
so a dereference of a single component would usually get the desired
single value anyway. However, I plan to stop doing that shortly;
early experiments with disabling constant propagation of arrays
revealed this shortcoming.
This patch causes some arrays in Gl32GSCloth's geometry shaders to be
split, which allows other optimizations to eliminate unused GS inputs.
The VS then doesn't have to write them, which eliminates the entire VS
(5 -> 2 instructions). It still renders correctly.
No other change in shader-db.
v2: Drop !AOA check and improve a comment (feedback from Tim Arceri).
Cc: mesa-stable at lists.freedesktop.org
Signed-off-by: Kenneth Graunke <kenneth at whitecape.org>
Reviewed-by: Timothy Arceri <timothy.arceri at collabora.com>
:040000 040000 5d96cd8ba322e2ac1857baf9e401b5d494a85ab2
2b920fe841296c89251cca630f51060de413cbb3 M src
bisect run success
--
You are receiving this mail because:
You are the assignee for the bug.
You are the QA Contact for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/mesa-dev/attachments/20160626/a95bc694/attachment-0001.html>
More information about the mesa-dev
mailing list