Mesa (9.2): 22 new commits
Carl Worth
cworth at kemper.freedesktop.org
Wed Nov 27 02:39:34 UTC 2013
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=6a022c8b03caea0d356b6e5cc186f1efc42ecca1
Author: Paul Berry <stereotype441 at gmail.com>
Date: Fri Nov 22 12:37:22 2013 -0800
glsl: Fix lowering of direct assignment in lower_clip_distance.
In commit 065da16 (glsl: Convert lower_clip_distance_visitor to be an
ir_rvalue_visitor), we failed to notice that since
lower_clip_distance_visitor overrides visit_leave(ir_assignment *),
ir_rvalue_visitor::visit_leave(ir_assignment *) wasn't getting called.
As a result, clip distance dereferences appearing directly on the
right hand side of an assignment (not in a subexpression) weren't
getting properly lowered. This caused an ir_dereference_variable node
to be left in the IR that referred to the old gl_ClipDistance
variable. However, since the lowering pass replaces gl_ClipDistance
with gl_ClipDistanceMESA, this turned into a dangling pointer when the
IR got reparented.
Prior to the introduction of geometry shaders, this bug was unlikely
to arise, because (a) reading from gl_ClipDistance[i] in the fragment
shader was rare, and (b) when it happened, it was likely that it would
either appear in a subexpression, or be hoisted into a subexpression
by tree grafting.
However, in a geometry shader, we're likely to see a statement like
this, which would trigger the bug:
gl_ClipDistance[i] = gl_in[j].gl_ClipDistance[i];
This patch causes
lower_clip_distance_visitor::visit_leave(ir_assignment *) to call the
base class visitor, so that the right hand side of the assignment is
properly lowered.
Fixes piglit test:
- spec/glsl-1.50/execution/geometry/clip-distance-itemized-copy
Cc: Ian Romanick <idr at freedesktop.org>
Cc: "9.2" <mesa-stable at lists.freedesktop.org>
Cc: "10.0" <mesa-stable at lists.freedesktop.org>
Reviewed-by: Eric Anholt <eric at anholt.net>
Reviewed-by: Ian Romanick <ian.d.romanick at intel.com>
(cherry picked from commit 9dfcb05fa649ee7a573eab3d16851ebd4cb96010)
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=dfaf5de46052ea5f8408d3c7fcac5f8393d6fc8e
Author: Tapani Pälli <tapani.palli at intel.com>
Date: Wed Nov 20 13:27:10 2013 +0200
mesa: enable GL_TEXTURE_LOD_BIAS set/get
Earlier comments suggest this was removed from GL core spec but it is
still there. Enabling makes 'texture_lod_bias_getter' Khronos
conformance tests pass, also removes some errors from Metro Last Light
game which is using this API.
v2: leave NOTE comment (Ian)
Cc: "9.0 9.1 9.2 10.0" <mesa-stable at lists.freedesktop.org>
Reviewed-by: Kenneth Graunke <kenneth at whitecape.org>
Reviewed-by: Ian Romanick <ian.d.romanick at intel.com>
Signed-off-by: Tapani Pälli <tapani.palli at intel.com>
(cherry picked from commit 7e61b44dcd6175579f60d8ff2f703a6c83e33d27)
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=b9990d758bef30c3e77b6f9cc117008f6cf84090
Author: Brian Paul <brianp at vmware.com>
Date: Tue Nov 19 13:09:57 2013 -0700
st/mesa: fix GL_FEEDBACK mode inverted Y coordinate bug
We need to check the drawbuffer's orientation before inverting Y
coordinates. Fixes piglit feedback tests when running with the
-fbo option.
Cc: "9.2" "10.0" <mesa-stable at lists.freedesktop.org>
Reviewed-by: Marek Olšák <marek.olsak at amd.com>
(cherry picked from commit 15d8e05e1e98a9bfd5a365d0fda222668f24261f)
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=ee5e7148e536c84955781ddc388c2cda29781bd3
Author: Paul Berry <stereotype441 at gmail.com>
Date: Tue Nov 12 10:55:18 2013 -0800
i965: Fix vertical alignment for multisampled buffers.
From the Sandy Bridge PRM, Vol 1 Part 1 7.18.3.4 (Alignment Unit
Size):
j [vertical alignment] = 4 for any render target surface is
multisampled (4x)
From the Ivy Bridge PRM, Vol 4 Part 1 2.12.2.1 (SURFACE_STATE for most
messages), under the "Surface Vertical Alignment" heading:
This field is intended to be set to VALIGN_4 if the surface was
rendered as a depth buffer, for a multisampled (4x) render target,
or for a multisampled (8x) render target, since these surfaces
support only alignment of 4.
Back in 2012 when we added multisampling support to the i965 driver,
we forgot to update the logic for computing the vertical alignment, so
we were often using a vertical alignment of 2 for multisampled
buffers, leading to subtle rendering errors.
Note that the specs also require a vertical alignment of 4 for all
Y-tiled render target surfaces; I plan to address that in a separate
patch.
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=53077
Cc: mesa-stable at lists.freedesktop.org
Reviewed-by: Kenneth Graunke <kenneth at whitecape.org>
Reviewed-by: Eric Anholt <eric at anholt.net>
(cherry picked from commit b4c3b833ec8ec6787658ea90365ff565cd8846c7)
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=44831bff0feec310ca786e5d101d3b5e42a69f74
Merge: 08d7c08 4fd03f2
Author: Carl Worth <cworth at cworth.org>
Date: Tue Nov 26 16:25:06 2013 -0800
Merge branch '9.2-freedreno' of git://github.com/freedreno/mesa into 9.2
This allows the freedreno driver to build with current mesa.
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=4fd03f26aa1c2ddef24b2c4f8d1a10c96fbf7f40
Author: Rob Clark <robclark at freedesktop.org>
Date: Thu Aug 29 17:24:33 2013 -0400
freedreno: updates for msm drm/kms driver
There where some small API tweaks in libdrm_freedreno to enable support
for msm drm/kms driver.
Signed-off-by: Rob Clark <robclark at freedesktop.org>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=4f0be333e7ee93fbb006c5570a594e49b4441731
Author: Rob Clark <robclark at freedesktop.org>
Date: Tue Aug 27 19:24:53 2013 -0400
freedreno/a3xx/compiler: handle sync flags better
We need to set the flag on all the .xyzw components that are written by
the instruction, not just on .x. Otherwise a later use of rN.y (for
example) will not trigger the appropriate sync bit to be set.
Signed-off-by: Rob Clark <robclark at freedesktop.org>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=f1998c8aa7d82006f9ef7e6710a0f68f30bfc109
Author: Rob Clark <robclark at freedesktop.org>
Date: Sat Aug 24 17:30:50 2013 -0400
freedreno/a3xx/compiler: better const handling
Seems like most/all instructions have some restrictions about const src
registers. In seems like the 2 src (cat2) instructions can take at most
one const, and the 3 src (cat3) instructions can take at most one const
in the first 2 arguments. And so on. Handle this properly now.
Signed-off-by: Rob Clark <robclark at freedesktop.org>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=0b2c5119cb772751edb3c42c9c0545443e26fd7f
Author: Rob Clark <robclark at freedesktop.org>
Date: Mon Jun 17 20:11:54 2013 -0400
freedreno/a3xx: don't leak so much
Signed-off-by: Rob Clark <robclark at freedesktop.org>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=c20aa295ec0e1f7b70986a32ef2d74e5097cf640
Author: Rob Clark <robclark at freedesktop.org>
Date: Sat Aug 24 13:02:53 2013 -0400
freedreno/a3xx/compiler: fix SGT/SLT/etc
The cmps.f.* instruction doesn't actually seem to give a float 1.0 or
0.0 output. It either needs a cov.u16f16 or add.s + sel.f16. This
makes SGT/SLT/etc more similar to CMP, so handle them in trans_cmp().
This fixes a bunch of piglit tests.
Signed-off-by: Rob Clark <robclark at freedesktop.org>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=ca5514b85161d480fb711ac26d74fc447e1e9bda
Author: Rob Clark <robclark at freedesktop.org>
Date: Sat Aug 24 13:00:07 2013 -0400
freedreno/a3xx/compiler: bit of re-arrange/cleanup
It seems there are a number of cases where instructions have limitations
about taking reading src's from const register file, so make
get_unconst() a bit easier to use.
Signed-off-by: Rob Clark <robclark at freedesktop.org>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=c726a6a907f119dfc4fb1c26fef7babf51dc1dea
Author: Rob Clark <robclark at freedesktop.org>
Date: Sat Aug 24 12:56:22 2013 -0400
freedreno/a3xx/compiler: make compiler errors more useful
We probably should get rid of assert() entirely, but at this stage it is
more useful for things to crash where we can catch it in a debugger.
With compile_error() we have a single place to set an error flag (to
bail out and return an error on the next instruction) so that will be a
small change later when enough of the compiler bugs are sorted.
But re-arrange/cleanup the error/assert stuff so we at least get a dump
of the TGSI that triggered it. So we see some useful output in piglit
logs.
Signed-off-by: Rob Clark <robclark at freedesktop.org>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=12da4c1a6aa4b2a9cc337f669986a63c59fc3095
Author: Rob Clark <robclark at freedesktop.org>
Date: Wed Aug 21 13:20:05 2013 -0400
freedreno: fix segfault when no color buffer bound
Don't crash when no color buffer bound. Something caught when starting
to run piglit, fixes a hanful of piglit tests.
Signed-off-by: Rob Clark <robclark at freedesktop.org>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=f3a7e28fe47ec547c1c9b561b04af208ae2f0f04
Author: Rob Clark <robclark at freedesktop.org>
Date: Tue Aug 20 13:57:22 2013 -0400
freedreno/a3xx/compiler: cat4 cannot use const reg as src
Category 4 instructions (rsq, rcp, sqrt, etc) seem to be unable to take
a const register as src. In these cases we need to move the src to a
temporary gpr first.
This is the second case of such a restriction, where the instruction
encoding appears to support a const src, but in fact the hw appears to
ignore that bit. So split things out into a helper that can be re-used
for any instructions which have this limitation.
Signed-off-by: Rob Clark <robclark at freedesktop.org>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=5394a872f30022f64e6b2b58ef983b1fe5f6c08d
Author: Rob Clark <robclark at freedesktop.org>
Date: Tue Aug 20 13:54:01 2013 -0400
freedreno/a3xx/compiler: use max_reg rather than file_count
Our current (rather naive) register assignment is based on mapping
different register files (INPUT, OUTPUT, TEMP, CONST, etc) based on the
max register index of the preceding file. But in some cases, the lowest
used register in a file might not be zero. In which case
file_count[file] != file_max[file] + 1.
Signed-off-by: Rob Clark <robclark at freedesktop.org>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=c83387438633233ae6bcc55e1f4eaa2793ce7449
Author: Rob Clark <robclark at freedesktop.org>
Date: Tue Aug 20 13:51:35 2013 -0400
freedreno/a3xx/compiler: handle saturate on dst
Sometimes things other than color dst need saturating, like if there is
a 'clamp(foo, 0.0, 1.0)'. So for saturated dst add the extra
instructions to fix up dst.
Signed-off-by: Rob Clark <robclark at freedesktop.org>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=83e65320012f327d2e8f1573443b2e20f059e76f
Author: Rob Clark <robclark at freedesktop.org>
Date: Tue Aug 20 13:46:30 2013 -0400
freedreno/a3xx/compiler: fix CMP
The 1st src to add.s needs (r) flag (repeat), otherwise it will end up:
add.s dst.xyzw, tmp.xxxx -1
instead of:
add.s dst.xyzw, tmp.xyzw, -1
Also, if we are using a temporary dst to avoid clobbering one of the src
registers, we actually need to use that as the dst for the sel
instruction.
Signed-off-by: Rob Clark <robclark at freedesktop.org>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=3da8868b5df98d8544091feeea7b6bb0f736324f
Author: Rob Clark <robclark at freedesktop.org>
Date: Mon Aug 5 18:03:33 2013 -0400
freedreno/a3xx: some texture fixes
Stop hard coding bits that indicate texture type (2d/3d/cube/etc).
Signed-off-by: Rob Clark <robclark at freedesktop.org>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=e1e9f69d3c90803d3c0e2d9b9396c1a06b5f0bb2
Author: Rob Clark <robclark at freedesktop.org>
Date: Mon Aug 5 17:57:24 2013 -0400
freedreno: update register headers
resync w/ rnndb database
Signed-off-by: Rob Clark <robclark at freedesktop.org>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=8b167d34bebcc9aaf67838be71cc3272728d4fe1
Author: Rob Clark <robclark at freedesktop.org>
Date: Wed May 29 10:16:33 2013 -0400
freedreno: add debug option to disable scissor optimization
Useful for testing and debugging.
Signed-off-by: Rob Clark <robclark at freedesktop.org>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=b2a32254d65c356604bbffda6e771dca0509e9ed
Author: Rob Clark <robclark at freedesktop.org>
Date: Sat Jul 13 13:08:22 2013 -0400
freedreno/a3xx: fix viewport on gmem->mem resolve
Signed-off-by: Rob Clark <robclark at freedesktop.org>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=2d844be97fd5b6b0f02a94d4bb194c0bd19de6f9
Author: Rob Clark <robclark at freedesktop.org>
Date: Sat Jul 13 13:07:46 2013 -0400
freedreno/a3xx: fix color inversion on mem->gmem restore
Signed-off-by: Rob Clark <robclark at freedesktop.org>
More information about the mesa-commit
mailing list