mesa.git
9 years agodocs: update the coding style information
Brian Paul [Mon, 25 May 2015 16:18:35 +0000 (10:18 -0600)]
docs: update the coding style information

This hasn't been updated in a long time and from recent discussion on
the mailing list, it's not always clear what's expected.  Hopefully,
this will help a bit.

v2: document function brace placement, per Thomas Helland.

Reviewed-by: Thomas Helland <thomashelland90@gmail.com>
9 years agodocs: update documentation about patch formatting, testing, etc
Brian Paul [Mon, 25 May 2015 15:42:04 +0000 (09:42 -0600)]
docs: update documentation about patch formatting, testing, etc

v2: correctly escape < and > chars.

Reviewed-by: Thomas Helland <thomashelland90@gmail.com>
9 years agodocs: reorganize devnotes.html file
Brian Paul [Mon, 25 May 2015 15:13:09 +0000 (09:13 -0600)]
docs: reorganize devnotes.html file

Move "Adding Extensions" to the end.  Add a simple table of contents
at the top.

Reviewed-by: Thomas Helland <thomashelland90@gmail.com>
9 years agoxlib: fix X_GLXCreateContextAtrribs/Attribs typo
Brian Paul [Fri, 22 May 2015 20:39:03 +0000 (13:39 -0700)]
xlib: fix X_GLXCreateContextAtrribs/Attribs typo

In case the glproto.h file isn't up to date, we provide the #define
for X_GLXCreateContextAttribsARB.

v2: fix other occurances, improve #ifndef test, per Jose.

Reviewed-by: Jose Fonseca <jfonseca@vmware.com>
9 years agomesa: add some comments in copyimage.c
Brian Paul [Sat, 23 May 2015 00:26:12 +0000 (17:26 -0700)]
mesa: add some comments in copyimage.c

Reviewed-by: Topi Pohjolainen <topi.pohjolainen@intel.com>
9 years agomesa: move decls, add const qualifiers in copyimage.c
Brian Paul [Sat, 23 May 2015 00:22:47 +0000 (17:22 -0700)]
mesa: move decls, add const qualifiers in copyimage.c

Reviewed-by: Topi Pohjolainen <topi.pohjolainen@intel.com>
9 years agomesa: code clean-ups in textureview.[ch]
Brian Paul [Sat, 23 May 2015 00:20:57 +0000 (17:20 -0700)]
mesa: code clean-ups in textureview.[ch]

Reviewed-by: Topi Pohjolainen <topi.pohjolainen@intel.com>
9 years agomesa: const qualify, return bool for _mesa_texture_view_compatible_format()
Brian Paul [Fri, 22 May 2015 23:42:21 +0000 (16:42 -0700)]
mesa: const qualify, return bool for _mesa_texture_view_compatible_format()

Reviewed-by: Topi Pohjolainen <topi.pohjolainen@intel.com>
9 years agomesa: add const qualifer on _mesa_is_compressed_format()
Brian Paul [Fri, 22 May 2015 23:39:32 +0000 (16:39 -0700)]
mesa: add const qualifer on _mesa_is_compressed_format()

Reviewed-by: Topi Pohjolainen <topi.pohjolainen@intel.com>
9 years agoglapi: Avoid argparse type argument for API XML input files.
Jose Fonseca [Tue, 26 May 2015 10:01:57 +0000 (11:01 +0100)]
glapi: Avoid argparse type argument for API XML input files.

argparse type is a nice type saver for simple data types, but it doesn't
look a good fit for the input XML file:

- Certain implementations of argparse (particularly python 2.7.3's)
  invoke the type constructor for the default argument even when an
  option is passed in the command line.  Causing `No such file or
  directory: 'gl_API.xml'` when the current dir is not
  src/mapi/glapi/gen.

- The parser takes multiple arguments.  This is currently worked around
  using lambdas, but that unnecessarily complex and hard to read.
  Furthermore it's odd to have a side-effect as heavy as parsing XML
  happening deep inside the argument parsing.

https://bugs.freedesktop.org/show_bug.cgi?id=90600

Reviewed-by: Brian Paul <brianp@vmware.com>
9 years agoradeonsi: use a switch statement in si_delete_shader_selector
Marek Olšák [Sun, 22 Feb 2015 14:38:21 +0000 (15:38 +0100)]
radeonsi: use a switch statement in si_delete_shader_selector

Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
9 years agoradeonsi: use a switch statement in si_shader_selector_key
Marek Olšák [Sun, 22 Feb 2015 14:21:59 +0000 (15:21 +0100)]
radeonsi: use a switch statement in si_shader_selector_key

Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
9 years agoradeonsi: fix scratch buffer setup for geometry shaders
Marek Olšák [Mon, 18 May 2015 12:56:34 +0000 (14:56 +0200)]
radeonsi: fix scratch buffer setup for geometry shaders

Cc: 10.6 <mesa-stable@lists.freedesktop.org>
Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
9 years agoradeonsi: remove unused cases from si_shader_io_get_unique_index
Marek Olšák [Sun, 10 May 2015 16:03:47 +0000 (18:03 +0200)]
radeonsi: remove unused cases from si_shader_io_get_unique_index

These can't occur between VS and GS, because GS is only supported
in the core profile.

Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
9 years agoradeonsi: don't count special outputs for the VS export count
Marek Olšák [Mon, 18 May 2015 12:50:19 +0000 (14:50 +0200)]
radeonsi: don't count special outputs for the VS export count

Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
9 years agoradeonsi: add support for PIPE_CAP_TGSI_TEXCOORD
Marek Olšák [Sat, 9 May 2015 17:36:17 +0000 (19:36 +0200)]
radeonsi: add support for PIPE_CAP_TGSI_TEXCOORD

Without it, texcoords are mapped to GENERIC[0..7], PointCoord is mapped to
GENERIC[8], and user-defined varyings start from GENERIC[9]. Since texcoords
can only be used between VS and PS, and PointCoord is PS-only, it's silly to
always start from GENERIC[9] in all other shaders (such as LS, HS, ES, GS).

This adds support for TEXCOORD and PCOORD semantics. As a result, st/mesa
will use GENERIC[0] as a base for user-defined varyings, which should make
linking ES and GS as well as tessellation shaders at runtime easier.

Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
9 years agotgsi/ureg: enable creating tessellation shaders with ureg_create_shader
Marek Olšák [Mon, 18 May 2015 00:23:04 +0000 (02:23 +0200)]
tgsi/ureg: enable creating tessellation shaders with ureg_create_shader

Reviewed-by: Ilia Mirkin <imirkin@alum.mit.edu>
9 years agotgsi/text: enable parsing tessellation shaders
Marek Olšák [Mon, 18 May 2015 00:21:47 +0000 (02:21 +0200)]
tgsi/text: enable parsing tessellation shaders

Reviewed-by: Ilia Mirkin <imirkin@alum.mit.edu>
9 years agogallium: rename TGSI tessellation processor types to match pipe shader names
Marek Olšák [Mon, 18 May 2015 11:52:30 +0000 (13:52 +0200)]
gallium: rename TGSI tessellation processor types to match pipe shader names

I forgot to do this when pushing the interface changes.

Reviewed-by: Ilia Mirkin <imirkin@alum.mit.edu>
9 years agogallium: use const in set_tess_state
Marek Olšák [Mon, 18 May 2015 10:34:44 +0000 (12:34 +0200)]
gallium: use const in set_tess_state

Reviewed-by: Ilia Mirkin <imirkin@alum.mit.edu>
9 years agoclover: Build fix for FreeBSD.
Koop Mast [Tue, 26 May 2015 08:24:40 +0000 (10:24 +0200)]
clover: Build fix for FreeBSD.

Cc: 10.6 10.5 <mesa-stable@lists.freedesktop.org>
9 years agoi965/skl: Add a message header for the TXF_MCS instruction in vec4vs
Neil Roberts [Wed, 20 May 2015 18:26:02 +0000 (19:26 +0100)]
i965/skl: Add a message header for the TXF_MCS instruction in vec4vs

When using SIMD4x2 on Skylake, the sampler instructions need a message
header to select the correct mode. This was added for most sample
instructions in 0ac4c2727 but the TXF_MCS instruction is emitted
separately and it was missed.

This fixes a bunch of Piglit tests which test texelFetch in a geometry
shader, for example:

 spec/arb_texture_multisample/texelfetch/2-gs-sampler2dms

Cc: mesa-stable@lists.freedesktop.org
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
9 years agonv30: falling back to draw path for edgeflag does no good
Ilia Mirkin [Mon, 25 May 2015 21:46:45 +0000 (17:46 -0400)]
nv30: falling back to draw path for edgeflag does no good

The problem is that the EDGEFLAG has to be toggled at vertex submission
time. This can be done from either the draw or the regular paths. Avoid
falling back to draw just because there's an edgeflag.

Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
Cc: "10.5 10.6" <mesa-stable@lists.freedesktop.org>
9 years agonv30/draw: switch varying hookup logic to know about texcoords
Ilia Mirkin [Sun, 24 May 2015 02:11:38 +0000 (22:11 -0400)]
nv30/draw: switch varying hookup logic to know about texcoords

Commit 8acaf862dfe switched things over to use TEXCOORD instead of
GENERIC, but did not update the nv30 swtnl draw paths. This teaches the
draw logic about TEXCOORD.

Among other things, this fixes a crash in demos/arbocclude when using
swtnl. Curiously enough, the point-sprite piglit works without this.

Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
Cc: "10.5 10.6" <mesa-stable@lists.freedesktop.org>
9 years agonv30/draw: allocate vertex buffers in gart
Ilia Mirkin [Tue, 26 May 2015 01:14:13 +0000 (21:14 -0400)]
nv30/draw: allocate vertex buffers in gart

These are only used once per draw, so it makes sense to keep them in
GART. Also take this opportunity to modernize the buffer mapping API
usage.

Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
Reviewed-by: Ben Skeggs <bskeggs@redhat.com>
Cc: "10.5 10.6" <mesa-stable@lists.freedesktop.org>
9 years agonv30/draw: only use the DMA1 object (GART) if the bo is not in VRAM
Ilia Mirkin [Tue, 26 May 2015 01:12:46 +0000 (21:12 -0400)]
nv30/draw: only use the DMA1 object (GART) if the bo is not in VRAM

Instead of always having it in the data, let the bo placement decide it.
This fixes glxgears with swtnl forced on.

Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
Reviewed-by: Ben Skeggs <bskeggs@redhat.com>
Cc: "10.5 10.6" <mesa-stable@lists.freedesktop.org>
9 years agonv30/draw: fix indexed draws with swtnl path and a resource index buffer
Ilia Mirkin [Tue, 26 May 2015 00:15:09 +0000 (20:15 -0400)]
nv30/draw: fix indexed draws with swtnl path and a resource index buffer

The map = assignment was missing.

Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
Cc: "10.5 10.6" <mesa-stable@lists.freedesktop.org>
9 years agoglsl: avoid leaking linked gl_shader when there's a late linker error
Ilia Mirkin [Sun, 17 May 2015 21:56:44 +0000 (17:56 -0400)]
glsl: avoid leaking linked gl_shader when there's a late linker error

This makes piglit mixing-clip-distance-and-clip-vertex-disallowed have 0
definitely lost blocks with valgrind. (Same non-0 number of possibly
lost blocks though.)

Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
Reviewed-by: Tobias Klausmann <tobias.johannes.klausmann@mni.thm.de>
Cc: "10.5 10.6" <mesa-stable@lists.freedesktop.org>
9 years agollvmpipe: (trivial) add parantheses in (!x == y) expression
Roland Scheidegger [Mon, 25 May 2015 20:24:05 +0000 (22:24 +0200)]
llvmpipe: (trivial) add parantheses in (!x == y) expression

Apparently some compilers think we probably wanted to do !(x == y) instead
and issue a warning, so just shut it up... No functional change, obviously.

Cc: <mesa-stable@lists.freedesktop.org>
9 years agost/mesa: don't leak glsl_to_tgsi object on link failure
Ilia Mirkin [Sun, 17 May 2015 21:32:24 +0000 (17:32 -0400)]
st/mesa: don't leak glsl_to_tgsi object on link failure

Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Cc: "10.5 10.6" <mesa-stable@lists.freedesktop.org>
9 years agonv30/draw: draw expects constbuf size in bytes, not vec4 units
Ilia Mirkin [Mon, 25 May 2015 18:06:01 +0000 (14:06 -0400)]
nv30/draw: draw expects constbuf size in bytes, not vec4 units

This fixes glxgears with NV30_SWTNL=1 forced on. Probably fixes a bunch
of other situations where we fall back to the swtnl path.

Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
Cc: "10.5 10.6" <mesa-stable@lists.freedesktop.org>
9 years agonv30/draw: avoid leaving stale pointers in draw state
Ilia Mirkin [Sun, 24 May 2015 15:56:21 +0000 (11:56 -0400)]
nv30/draw: avoid leaving stale pointers in draw state

Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
Cc: "10.5 10.6" <mesa-stable@lists.freedesktop.org>
9 years agoFix an unused variable warning
Jason Ekstrand [Mon, 25 May 2015 16:27:08 +0000 (09:27 -0700)]
Fix an unused variable warning

Trivial.  Deleted the 2 unneeded lines.

9 years agodocs: Mark ARB_cull_distance as in progress
Tobias Klausmann [Mon, 25 May 2015 13:57:09 +0000 (15:57 +0200)]
docs: Mark ARB_cull_distance as in progress

Signed-off-by: Tobias Klausmann <tobias.johannes.klausmann@mni.thm.de>
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
9 years agodocs: Mark ARB_shader_storage_buffer_object as in progress
Iago Toral Quiroga [Mon, 25 May 2015 07:40:01 +0000 (09:40 +0200)]
docs: Mark ARB_shader_storage_buffer_object as in progress

Reviewed-by: Chris Forbes <chrisf@ijw.co.nz>
9 years agonv30: fix clip plane uploads and enable changes
Ilia Mirkin [Sun, 24 May 2015 00:58:53 +0000 (20:58 -0400)]
nv30: fix clip plane uploads and enable changes

nv30_validate_clip depends on the rasterizer state. Also we should
upload all the new clip planes on change since next time the plane data
won't have changed, but the enables might.

This fixes fixed-clip-enables and vs-clip-vertex-enables shader tests.

Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
Reviewed-by: Tobias Klausmann <tobias.johannes.klausmann@mni.thm.de>
Cc: "10.5 10.6" <mesa-stable@lists.freedesktop.org>
9 years agonv30: avoid doing extra work on clear and hitting unexpected states
Ilia Mirkin [Thu, 5 Mar 2015 17:10:15 +0000 (12:10 -0500)]
nv30: avoid doing extra work on clear and hitting unexpected states

Clearing can happen at a time when various state objects are incoherent
and not ready for a draw. Some of the validation functions don't handle
this well, so only flush the framebuffer state. This has the advantage
of also not doing extra work.

This works around some crashes that can happen when clearing.

Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
Reviewed-by: Tobias Klausmann <tobias.johannes.klausmann@mni.thm.de>
9 years agodocs: add news item and link release notes for mesa 10.5.6
Emil Velikov [Sun, 24 May 2015 09:47:48 +0000 (10:47 +0100)]
docs: add news item and link release notes for mesa 10.5.6

Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
9 years agodocs: Add sha256sums for the 10.5.6 release
Emil Velikov [Sun, 24 May 2015 09:43:31 +0000 (10:43 +0100)]
docs: Add sha256sums for the 10.5.6 release

Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
(cherry picked from commit 8cb28bc49d7799d5accb1feb7e355ec48518e20b)

9 years agoAdd release notes for the 10.5.6 release
Emil Velikov [Sat, 23 May 2015 08:02:41 +0000 (09:02 +0100)]
Add release notes for the 10.5.6 release

Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
(cherry picked from commit b1cf9cfb1618f0b73e673745d3c8612aea61723d)

9 years agonv30: avoid leaking render state and draw shaders
Ilia Mirkin [Sun, 24 May 2015 06:23:16 +0000 (02:23 -0400)]
nv30: avoid leaking render state and draw shaders

Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
Cc: "10.5 10.6" <mesa-stable@lists.freedesktop.org>
9 years agonv30: don't leak fragprog consts
Ilia Mirkin [Sun, 24 May 2015 05:31:11 +0000 (01:31 -0400)]
nv30: don't leak fragprog consts

Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
Cc: "10.5 10.6" <mesa-stable@lists.freedesktop.org>
9 years agonv50/ir: avoid messing up arg1 of PFETCH
Ilia Mirkin [Sat, 23 May 2015 05:57:41 +0000 (01:57 -0400)]
nv50/ir: avoid messing up arg1 of PFETCH

There can be scenarios where the "indirect" arg of a PFETCH becomes
known, and so the code will attempt to propagate it. Use this
opportunity to just fold it into the first argument, and prevent the
load propagation pass from touching PFETCH further.

This fixes gs-input-array-vec4-index-rd.shader_test and
vs-output-array-vec4-index-wr-before-gs.shader_test on nvc0 at least.

Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
Reviewed-by: Tobias Klausmann <tobias.johannes.klausmann@mni.thm.de>
Cc: "10.5 10.6" <mesa-stable@lists.freedesktop.org>
9 years agoclover: try userptr for CL_MEM_USE_HOST_PTR
Grigori Goronzy [Tue, 19 May 2015 07:28:30 +0000 (09:28 +0200)]
clover: try userptr for CL_MEM_USE_HOST_PTR

According to spec, CL_MEM_USE_HOST_PTR should directly use host memory,
if possible. This is just what userptr is for, so use it.

In case the memory cannot be mapped, a fallback similar to
CL_MEM_COPY_HOST_PTR is used.

v2: constify, drop unneeded cast

Reviewed-by: Francisco Jerez <currojerez@riseup.net>
9 years agoclover: implement CL_MEM_ALLOC_HOST_PTR
Grigori Goronzy [Tue, 12 May 2015 00:22:12 +0000 (02:22 +0200)]
clover: implement CL_MEM_ALLOC_HOST_PTR

This flag is typically used to request pinned host memory, to avoid
any copies between GPU and CPU.

This improves throughput with an older OpenCL app which I unfortunately
can't publish due to its licensing.

Reviewed-by: Francisco Jerez <currojerez@riseup.net>
9 years agonv30: check nouveau_bo_map output of notify bo
Ilia Mirkin [Sat, 23 May 2015 23:07:48 +0000 (19:07 -0400)]
nv30: check nouveau_bo_map output of notify bo

Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
9 years agonvc0: a geometry shader can have up to 1024 vertices output
Ilia Mirkin [Sat, 23 May 2015 21:35:42 +0000 (17:35 -0400)]
nvc0: a geometry shader can have up to 1024 vertices output

The 1024 is already reported everywhere, not sure where this 0x1ff came
from.

Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
Cc: "10.5 10.6" <mesa-stable@lists.freedesktop.org>
9 years agoi965/fs: Fix implied_mrf_writes for scratch writes
Jason Ekstrand [Wed, 20 May 2015 00:35:29 +0000 (17:35 -0700)]
i965/fs: Fix implied_mrf_writes for scratch writes

We build the entire message in the generator so all the MRF writes are
implied.

Cc: "10.5 10.6" <mesa-stable@lists.freedesktop.org>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
9 years agoprog_to_nir: Use a variable for uniform data
Jason Ekstrand [Tue, 19 May 2015 23:25:02 +0000 (16:25 -0700)]
prog_to_nir: Use a variable for uniform data

Previously, the prog_to_nir pass was directly generating uniform load/store
intrinsics.  This converts it to use a single giant "parameters" variable
and we now depend on lowering to get the uniform load/store intrinsics.
One advantage of this is that we now have one code-path after we do the
initial conversion into NIR.

No shader-db changes.

Signed-off-by: Jason Ekstrand <jason.ekstrand@intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
9 years agonv50: fix PIPE_QUERY_TIMESTAMP_DISJOINT, based on nvc0
Samuel Pitoiset [Sat, 23 May 2015 16:50:25 +0000 (18:50 +0200)]
nv50: fix PIPE_QUERY_TIMESTAMP_DISJOINT, based on nvc0

PIPE_QUERY_TIMESTAMP_DISJOINT could not work because q->ready was always
set to FALSE. To fix this issue, add more different states for queries
according to nvc0.

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Ilia Mirkin <imirkin@alum.mit.edu>
9 years agonvc0/ir: LOAD's can't be used for shader inputs
Ilia Mirkin [Fri, 22 May 2015 23:03:58 +0000 (19:03 -0400)]
nvc0/ir: LOAD's can't be used for shader inputs

We forgot to convert to VFETCH in case of indirect access. Fix that.

This avoids crashes on the new gs-input-array-vec4-index-rd and
vs-output-array-vec4-index-wr-before-gs but they still fail.

Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
Cc: "10.5 10.6" <mesa-stable@lists.freedesktop.org>
9 years agonv50/ir: guess that the constant offset is the starting slot of array
Ilia Mirkin [Fri, 22 May 2015 23:02:41 +0000 (19:02 -0400)]
nv50/ir: guess that the constant offset is the starting slot of array

When we get something like IN[ADDR[0].x+5], we will now guess that we
should look at IN[5] for the "base" information.

Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
Cc: "10.5 10.6" <mesa-stable@lists.freedesktop.org>
9 years agonvc0/ir: set ftz when sources are floats, not just destinations
Ilia Mirkin [Fri, 22 May 2015 20:40:08 +0000 (16:40 -0400)]
nvc0/ir: set ftz when sources are floats, not just destinations

In the case of a compare, the destination might be a predicate, but we
still want to flush denorms.

Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
Cc: "10.5 10.6" <mesa-stable@lists.freedesktop.org>
9 years agonv50/ir: allow OP_SET to merge with OP_SET_AND/etc as well as a neg
Ilia Mirkin [Sat, 9 May 2015 03:46:53 +0000 (23:46 -0400)]
nv50/ir: allow OP_SET to merge with OP_SET_AND/etc as well as a neg

This covers the pattern where a KILL_IF is used, which triggers a
comparison of -x to 0. This can usually be folded into the comparison whose
result is being compared to 0, however it may, itself, have already been
combined with another comparison. That shouldn't impact the logic of
this pass however. With this and the & 1.0 change, code like

00000020001c0001 80081df4     set b32 $r0 lt f32 $r0 0x3e800000
00000028001c0000 201fc000     and b32 $r0 $r0 0x3f800000
000000307f9c001e dd885c00     set $p0 0x1 lt f32 neg $r0 0x0
000000380000003c 19800000     $p0 discard

becomes

00000020001c001d b5881df4     set $p0 0x1 lt f32 $r0 0x3e800000
000000280000003c 19800000     $p0 discard

Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
9 years agonvc0/ir: optimize set & 1.0 to produce boolean-float sets
Ilia Mirkin [Mon, 4 May 2015 02:15:16 +0000 (22:15 -0400)]
nvc0/ir: optimize set & 1.0 to produce boolean-float sets

This has started to happen more now that the backend is producing
KILL_IF more often.

Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
Reviewed-by: Tobias Klausmann <tobias.johannes.klausmann@mni.thm.de>
9 years agonvc0/ir: allow iset to produce a boolean float
Ilia Mirkin [Sat, 9 May 2015 03:00:05 +0000 (23:00 -0400)]
nvc0/ir: allow iset to produce a boolean float

Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
9 years agonvc0/ir: avoid jumping to a sched instruction
Ilia Mirkin [Sun, 3 May 2015 22:38:52 +0000 (18:38 -0400)]
nvc0/ir: avoid jumping to a sched instruction

Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
9 years agoglx: fix Scons build
Brian Paul [Fri, 22 May 2015 20:18:54 +0000 (13:18 -0700)]
glx: fix Scons build

Replace -h with --header-tag as was done for the Makefile build.

Reviewed-by: Dylan Baker <baker.dylan.c@gmail.com>
9 years agoglapi: glX_proto_size.py: use a main function
Dylan Baker [Wed, 20 May 2015 22:51:40 +0000 (15:51 -0700)]
glapi: glX_proto_size.py: use a main function

Signed-off-by: Dylan Baker <dylanx.c.baker@intel.com>
Acked-by: Matt Turner <mattst88@gmail.com>
9 years agoglapi: glX_proto_size.py: use argparse instead of getopt
Dylan Baker [Wed, 20 May 2015 22:49:11 +0000 (15:49 -0700)]
glapi: glX_proto_size.py: use argparse instead of getopt

This is roughly equivalent to the original getopt, except that it
removes the '-h' short option, which argparse reserves for
auto-generated help messages. It does retain the long option specified
by the getopt version, and changes the makefile to use that.

Signed-off-by: Dylan Baker <dylanx.c.baker@intel.com>
Acked-by: Matt Turner <mattst88@gmail.com>
9 years agoglapi: glX_proto_recv.py: Use a main function
Dylan Baker [Wed, 20 May 2015 22:20:09 +0000 (15:20 -0700)]
glapi: glX_proto_recv.py: Use a main function

Signed-off-by: Dylan Baker <dylanx.c.baker@intel.com>
Acked-by: Matt Turner <mattst88@gmail.com>
9 years agoglapi: glX_proto_recv.py: use argparse instead of getopt
Dylan Baker [Wed, 20 May 2015 22:19:28 +0000 (15:19 -0700)]
glapi: glX_proto_recv.py: use argparse instead of getopt

Signed-off-by: Dylan Baker <dylanx.c.baker@intel.com>
Acked-by: Matt Turner <mattst88@gmail.com>
9 years agoglapy: gl_genexec.py: use a main function
Dylan Baker [Wed, 20 May 2015 18:49:40 +0000 (11:49 -0700)]
glapy: gl_genexec.py: use a main function

Signed-off-by: Dylan Baker <dylanx.c.baker@intel.com>
Acked-by: Matt Turner <mattst88@gmail.com>
9 years agoglapi: gl_genexec.py: use argparse instead of getopt
Dylan Baker [Wed, 20 May 2015 18:49:10 +0000 (11:49 -0700)]
glapi: gl_genexec.py: use argparse instead of getopt

Signed-off-by: Dylan Baker <dylanx.c.baker@intel.com>
Acked-by: Matt Turner <mattst88@gmail.com>
9 years agoglapi: glX_proto_send.py: use a main function.
Dylan Baker [Tue, 10 Feb 2015 23:20:57 +0000 (15:20 -0800)]
glapi: glX_proto_send.py: use a main function.

Signed-off-by: Dylan Baker <dylanx.c.baker@intel.com>
Acked-by: Matt Turner <mattst88@gmail.com>
9 years agoglapi: glX_proto_send.py: use argparse instead of getopt
Dylan Baker [Tue, 10 Feb 2015 23:20:18 +0000 (15:20 -0800)]
glapi: glX_proto_send.py: use argparse instead of getopt

Signed-off-by: Dylan Baker <dylanx.c.baker@intel.com>
Acked-by: Matt Turner <mattst88@gmail.com>
9 years agoglapi: glX_server_table.py: use argparse instead of getopt
Dylan Baker [Sat, 14 Feb 2015 00:41:03 +0000 (16:41 -0800)]
glapi: glX_server_table.py: use argparse instead of getopt

Signed-off-by: Dylan Baker <dylanx.c.baker@intel.com>
Acked-by: Matt Turner <mattst88@gmail.com>
9 years agoglapi: gl_SPARC_asm.py: use main function
Dylan Baker [Fri, 13 Feb 2015 23:54:17 +0000 (15:54 -0800)]
glapi: gl_SPARC_asm.py: use main function

Signed-off-by: Dylan Baker <dylanx.c.baker@intel.com>
Acked-by: Matt Turner <mattst88@gmail.com>
9 years agoglapi: gl_SPARC_asm.py use argparse instead of getopt
Dylan Baker [Fri, 13 Feb 2015 23:49:16 +0000 (15:49 -0800)]
glapi: gl_SPARC_asm.py use argparse instead of getopt

Also drop -m switch, which only accepted a single value or raised an
error, and was unused in the makefile.

Signed-off-by: Dylan Baker <dylanx.c.baker@intel.com>
Acked-by: Matt Turner <mattst88@gmail.com>
9 years agoglapi: gl_x86-64_asm.py: Use a main function
Dylan Baker [Thu, 12 Feb 2015 22:05:46 +0000 (14:05 -0800)]
glapi: gl_x86-64_asm.py: Use a main function

Signed-off-by: Dylan Baker <dylanx.c.baker@intel.com>
Acked-by: Matt Turner <mattst88@gmail.com>
9 years agoglapi: gl_x86_64_asm.py: Use argparse instead of getopt
Dylan Baker [Thu, 12 Feb 2015 22:04:03 +0000 (14:04 -0800)]
glapi: gl_x86_64_asm.py: Use argparse instead of getopt

Also removes the redundant -m argument, which could only be set to
'generic', or it would raise an exception. This option wasn't used in
the makefile.

Signed-off-by: Dylan Baker <dylanx.c.baker@intel.com>
Acked-by: Matt Turner <mattst88@gmail.com>
9 years agoglapi: gl_x86_asm.py: use a main function
Dylan Baker [Thu, 12 Feb 2015 02:05:35 +0000 (18:05 -0800)]
glapi: gl_x86_asm.py: use a main function

Signed-off-by: Dylan Baker <dylanx.c.baker@intel.com>
Acked-by: Matt Turner <mattst88@gmail.com>
9 years agoglapi: gl_x86_asm.py: use argparse instead of getopt
Dylan Baker [Thu, 12 Feb 2015 02:04:22 +0000 (18:04 -0800)]
glapi: gl_x86_asm.py: use argparse instead of getopt

Signed-off-by: Dylan Baker <dylanx.c.baker@intel.com>
Acked-by: Matt Turner <mattst88@gmail.com>
9 years agoglapi: gl_gentable.py: use a main function
Dylan Baker [Tue, 10 Feb 2015 22:33:12 +0000 (14:33 -0800)]
glapi: gl_gentable.py: use a main function

Signed-off-by: Dylan Baker <dylanx.c.baker@intel.com>
Acked-by: Matt Turner <mattst88@gmail.com>
9 years agoglapi: gl_gentable.py: Replace getopt with argparse
Dylan Baker [Tue, 10 Feb 2015 22:32:40 +0000 (14:32 -0800)]
glapi: gl_gentable.py: Replace getopt with argparse

Signed-off-by: Dylan Baker <dylanx.c.baker@intel.com>
Acked-by: Matt Turner <mattst88@gmail.com>
9 years agoglapi: gl_apitemp.py: Use a main function
Dylan Baker [Tue, 10 Feb 2015 18:57:08 +0000 (10:57 -0800)]
glapi: gl_apitemp.py: Use a main function

Signed-off-by: Dylan Baker <dylanx.c.baker@intel.com>
Acked-by: Matt Turner <mattst88@gmail.com>
9 years agoglapi: gl_apitemp.py: Convert to argparse instead of getopt
Dylan Baker [Tue, 10 Feb 2015 18:55:45 +0000 (10:55 -0800)]
glapi: gl_apitemp.py: Convert to argparse instead of getopt

Signed-off-by: Dylan Baker <dylanx.c.baker@intel.com>
Acked-by: Matt Turner <mattst88@gmail.com>
9 years agoglapi: gl_enums.py: use main() function for if __name__ == "__main__"
Dylan Baker [Mon, 9 Feb 2015 22:19:23 +0000 (14:19 -0800)]
glapi: gl_enums.py: use main() function for if __name__ == "__main__"

Signed-off-by: Dylan Baker <dylanx.c.baker@intel.com>
Acked-by: Matt Turner <mattst88@gmail.com>
9 years agoglapi: gl_enums.py: use argparse instead of getopt.
Dylan Baker [Mon, 9 Feb 2015 22:18:30 +0000 (14:18 -0800)]
glapi: gl_enums.py: use argparse instead of getopt.

Signed-off-by: Dylan Baker <dylanx.c.baker@intel.com>
Acked-by: Matt Turner <mattst88@gmail.com>
9 years agoglapi: gl_procs.py: Use argparse rather than getopt
Dylan Baker [Mon, 24 Nov 2014 22:14:12 +0000 (14:14 -0800)]
glapi: gl_procs.py: Use argparse rather than getopt

Signed-off-by: Dylan Baker <dylanx.c.baker@intel.com>
Acked-by: Matt Turner <mattst88@gmail.com>
9 years agoglapi: gl_procs.py: Fix a few low hanging style things
Dylan Baker [Fri, 21 Nov 2014 01:07:48 +0000 (17:07 -0800)]
glapi: gl_procs.py: Fix a few low hanging style things

Shuts up analysis tools to make them return actual problems.

Signed-off-by: Dylan Baker <dylanx.c.baker@intel.com>
Acked-by: Matt Turner <mattst88@gmail.com>
9 years agoglapi: remap_helper.py: use argparse instead of optparse
Dylan Baker [Thu, 20 Nov 2014 22:07:15 +0000 (14:07 -0800)]
glapi: remap_helper.py: use argparse instead of optparse

Make the code simpler, cleaner, and easier to work with.

Signed-off-by: Dylan Baker <dylanx.c.baker@intel.com>
Acked-by: Matt Turner <mattst88@gmail.com>
9 years agoglapi: remap_helper.py: Fix some low hanging style issues
Dylan Baker [Thu, 20 Nov 2014 22:01:40 +0000 (14:01 -0800)]
glapi: remap_helper.py: Fix some low hanging style issues

This makes the tools shut up about a bunch of problems, making them more
useful for catching actual problems.

Signed-off-by: Dylan Baker <dylanx.c.baker@intel.com>
Acked-by: Matt Turner <mattst88@gmail.com>
9 years agoglapi: gl_table.py: replace getopt with argparse.
Dylan Baker [Wed, 19 Nov 2014 21:36:35 +0000 (13:36 -0800)]
glapi: gl_table.py: replace getopt with argparse.

This results in slightly less code, but code that is much more readable.
It has the advantage of putting everything together in one place, all of
the code is self documenting, help messages are auto-generated, choices
are automatically enforced, and the syntax is much less C like, taking
advantage of python features and idioms.

Signed-off-by: Dylan Baker <dylanx.c.baker@intel.com>
Acked-by: Matt Turner <mattst88@gmail.com>
9 years agoglapi: gl_table.py: Fix some low hanging style issues
Dylan Baker [Wed, 19 Nov 2014 21:17:48 +0000 (13:17 -0800)]
glapi: gl_table.py: Fix some low hanging style issues

Making the tools shut up about worthless errors so you can see real ones
is very useful

Signed-off-by: Dylan Baker <dylanx.c.baker@intel.com>
Acked-by: Matt Turner <mattst88@gmail.com>
9 years agoi965/disasm: Skip swizzle disassembly when using 3-src repctrl.
Matt Turner [Mon, 18 May 2015 22:23:28 +0000 (15:23 -0700)]
i965/disasm: Skip swizzle disassembly when using 3-src repctrl.

... since it's always .x, and also always print the subreg offset when
using repctrl.

9 years agonir: Remove sRGB colorspace conversion round-trip.
Matt Turner [Mon, 18 May 2015 21:59:13 +0000 (14:59 -0700)]
nir: Remove sRGB colorspace conversion round-trip.

Some shaders in Civilization V and Beyond Earth do

   pow(pow(x, 2.2), 0.454545)

which is converting to and from sRGB colorspace.

A more general rule that replaces pow(pow(a, b), c) with pow(a, b * c)
actually regresses two shaders in Sun Temple in which the result of the
inner pow is used twice, once by another pow and once by another
instruction. Also, since 2.2 * 0.454545 isn't exactly one, the more
general pattern would have still left us with a pow, and I'm 2.2 *
0.454545 percent sure that's not what they want.

instructions in affected programs:     934 -> 886 (-5.14%)
helped:                                16

9 years agonv50: fix PIPELINE_STATISTICS with HUD, based on nvc0
Samuel Pitoiset [Thu, 21 May 2015 18:14:44 +0000 (20:14 +0200)]
nv50: fix PIPELINE_STATISTICS with HUD, based on nvc0

Tested on NVA8. No regression for ARB_pipeline_statistics piglit tests.

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Ilia Mirkin <imirkin@alum.mit.edu>
9 years agonv50: fix 64-bit queries with HUD, based on nvc0
Samuel Pitoiset [Thu, 21 May 2015 18:06:19 +0000 (20:06 +0200)]
nv50: fix 64-bit queries with HUD, based on nvc0

A sequence number is written for 32-bits queries to make sure they are
ready, but not for 64-bits queries. Instead, we have to use a fence in
order to fix the HUD because it doesn't wait until the result is ready.

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Ilia Mirkin <imirkin@alum.mit.edu>
9 years agoradeon/vce: adapt new firmware interface changes
Christian König [Thu, 26 Mar 2015 09:00:09 +0000 (10:00 +0100)]
radeon/vce: adapt new firmware interface changes

v2: make this also compatible with original released firmware
v3 (chk): switch to original idea of separate files for fw versions

Signed-off-by: Leo Liu <leo.liu@amd.com>
Signed-off-by: Christian König <christian.koenig@amd.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com> (v2)
9 years agoradeon/vce: move CPB handling function into common code
Christian König [Thu, 26 Mar 2015 08:52:37 +0000 (09:52 +0100)]
radeon/vce: move CPB handling function into common code

They are not firmware version dependent.

Signed-off-by: Christian König <christian.koenig@amd.com>
9 years agou_math: uses assert, include assert.h
Dave Airlie [Thu, 21 May 2015 01:23:06 +0000 (11:23 +1000)]
u_math: uses assert, include assert.h

this fixes a build problem found on RHEL s390.

not sure what configure options caused it, I couldn't get it on
x86 here.

Reviewed-by: Brian Paul <brianp@vmware.com>
Cc: "10.6" mesa-stable@lists.freedesktop.org
Signed-off-by: Dave Airlie <airlied@redhat.com>
9 years agoglsl: remove element_type() helper
Timothy Arceri [Thu, 30 Apr 2015 10:45:54 +0000 (20:45 +1000)]
glsl: remove element_type() helper

We now have is_array() and without_array() that make the
code much clearer and remove the need for this.

For all remaining calls to this we already knew that
the type was an array so returning a null wasn't adding any value.

v2: use without_array() in _mesa_ast_array_index_to_hir() and don't use
 without_array() in lower_clip_distance_visitor() as we want to make sure the
 array is 2D.

Reviewed-by: Matt Turner <mattst88@gmail.com>
9 years agoglsl: Use AM_V_GEN/AM_V_at in NIR rules.
Matt Turner [Tue, 19 May 2015 14:38:40 +0000 (07:38 -0700)]
glsl: Use AM_V_GEN/AM_V_at in NIR rules.

9 years agofreedreno/a3xx: set .zw of sprite coords to .01
Ilia Mirkin [Wed, 20 May 2015 08:00:16 +0000 (04:00 -0400)]
freedreno/a3xx: set .zw of sprite coords to .01

Fixes non-determinism in bin/point-sprite rendering, and the stars on
the intro screen to neverball.

Cc: "10.6" <mesa-stable@lists.freedesktop.org>
Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
9 years agofreedreno/ir3: fix immediate usage in tgsi tex fe
Ilia Mirkin [Tue, 28 Apr 2015 03:47:40 +0000 (23:47 -0400)]
freedreno/ir3: fix immediate usage in tgsi tex fe

get_immediate will return a const reference, the requested immediate
isn't necessarily in the x slot. Make sure to use the swizzle.

Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
Cc: mesa-stable@lists.freedesktop.org
9 years agotargets/osmesa: drop the -module tag from LDFLAGS
Emil Velikov [Wed, 20 May 2015 20:51:52 +0000 (21:51 +0100)]
targets/osmesa: drop the -module tag from LDFLAGS

Gallium equivalent of commit 06ff751f97f(darwin: Fix install name of
libOSMesa)

Cc: "10.5 10.6" <mesa-stable@lists.freedesktop.org>
Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
9 years agodarwin: Fix install name of libOSMesa
Jeremy Huddleston Sequoia [Wed, 11 Feb 2015 10:32:33 +0000 (02:32 -0800)]
darwin: Fix install name of libOSMesa

Passing -module to glibtool causes the resulting library to be called
libSomething.so rather than libSomething.dylib on darwin.

Regardless if libOSMesa is a library or a module, it has been used as
the former for quite some time. Update the build to reflect that and
resolve the naming issue.

Cc: "10.5 10.6" <mesa-stable@lists.freedesktop.org>
Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
[Emil Velikov: Tweak the commit message.]
Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com>
9 years agoswrast: Build fix for Solaris
Alan Coopersmith [Sat, 16 May 2015 02:05:45 +0000 (19:05 -0700)]
swrast: Build fix for Solaris

Fixes regression from commit 5b2d3480f57168d50ad24cf0b8c9244414bd3701

Cc: "10.5 10.6" <mesa-stable@lists.freedesktop.org>
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
Reviewed-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
9 years agonir: Get rid of the array elements parameter on load/store intrinsics
Jason Ekstrand [Tue, 19 May 2015 23:57:43 +0000 (16:57 -0700)]
nir: Get rid of the array elements parameter on load/store intrinsics

Previously, we used intrinsic->const_index[1] to represent "the number of
array elements to load" for load/store intrinsics.  However, this set to 1
by every pass that ever creates a load/store intrinsic.  Also, while it
might make some sense for registers, it makes no sense whatsoever in SSA.
On top of that, the i965 backend was the only backend to ever support it;
freedreno and vc4 just assert that it's always 1.  Let's just delete it.

Signed-off-by: Jason Ekstrand <jason.ekstrand@intel.com>
Reviewed-by: Connor Abbott <cwabbott0@gmail.com>
Reviewed-by: Rob Clark <robclark@freedesktop.org>