platform/upstream/mesa.git
9 years agoi965: Make NIR non-optional for scalar shaders
Jason Ekstrand [Wed, 20 May 2015 17:03:50 +0000 (10:03 -0700)]
i965: Make NIR non-optional for scalar shaders

Reviewed-by: Matt Turner <mattst88@gmail.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
9 years agoi965: Make fs/vec4_visitor inherit from ir_visitor directly
Jason Ekstrand [Wed, 20 May 2015 16:45:47 +0000 (09:45 -0700)]
i965: Make fs/vec4_visitor inherit from ir_visitor directly

This is using multiple inheritance in C++.  However, ir_visitor is really
just an interface with no data so it shouldn't be so bad.

Reviewed-by: Matt Turner <mattst88@gmail.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
9 years agoi965: Rename backend_visitor to backend_shader
Jason Ekstrand [Wed, 20 May 2015 16:44:01 +0000 (09:44 -0700)]
i965: Rename backend_visitor to backend_shader

The backend_shader class really is a representation of a shader.  The fact
that it inherits from ir_visitor is somewhat immaterial.

Reviewed-by: Matt Turner <mattst88@gmail.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
9 years agomesa: Enable ARB_direct_state_access by default for core profile
Ian Romanick [Mon, 18 May 2015 20:56:45 +0000 (13:56 -0700)]
mesa: Enable ARB_direct_state_access by default for core profile

And core profile only.

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Fredrik Höglund <fredrik@kde.org>
Cc: "10.6" <mesa-stable@lists.freedesktop.org>
9 years agodispatch_sanity: Validate the compatibility profile dispatch table too
Ian Romanick [Thu, 21 May 2015 03:19:07 +0000 (20:19 -0700)]
dispatch_sanity: Validate the compatibility profile dispatch table too

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Suggested-by: Ilia Mirkin <imirkin@alum.mit.edu>
Cc: Ilia Mirkin <imirkin@alum.mit.edu>
Cc: "10.6" <mesa-stable@lists.freedesktop.org>
9 years agodispatch_sanity: Split list of GL 3.1 functions in to core and common
Ian Romanick [Thu, 21 May 2015 03:17:19 +0000 (20:17 -0700)]
dispatch_sanity: Split list of GL 3.1 functions in to core and common

The next patch will add a test for compatibility profile dispatch, and
it seems to make more sense to share the lists.

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Cc: Ilia Mirkin <imirkin@alum.mit.edu>
Cc: "10.6" <mesa-stable@lists.freedesktop.org>
9 years agomesa: Don't install glVertexAttribL* functions in compatibility profile
Ian Romanick [Thu, 21 May 2015 03:13:12 +0000 (20:13 -0700)]
mesa: Don't install glVertexAttribL* functions in compatibility profile

GL_ARB_vertex_attrib_64bit is exclusive to core profile, and none of the
other functions added by the extension are advertised in other profiles.

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Cc: Dave Airlie <airlied@redhat.com>
Cc: Ilia Mirkin <imirkin@alum.mit.edu>
Cc: "10.6" <mesa-stable@lists.freedesktop.org>
9 years agoglapi: Make GL_ARB_direct_state_access functions exclusive to core profile
Ian Romanick [Tue, 19 May 2015 18:48:11 +0000 (11:48 -0700)]
glapi: Make GL_ARB_direct_state_access functions exclusive to core profile

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Cc: Dave Airlie <airlied@redhat.com>
Cc: Ilia Mirkin <imirkin@alum.mit.edu>
Cc: Dylan Baker <baker.dylan.c@gmail.com>
Cc: "10.6" <mesa-stable@lists.freedesktop.org>
9 years agoglapi: Store exec table version info outside the XML
Ian Romanick [Tue, 19 May 2015 18:24:26 +0000 (11:24 -0700)]
glapi: Store exec table version info outside the XML

Currently on the functions that are exclusive to core-profile are
implemented.  The remainder continue to live in the XML.  Additional
functions can be moved later.

The functions for GL_ARB_draw_indirect and GL_ARB_multi_draw_indirect
are put in the dispatch table inside the VBO module, so they do not need
to be moved over.

The diff of src/mesa/main/api_exec.c before and after this patch is as
expected.  All of the functions listed in apiexec.py moved out of a 'if
(_mesa_is_desktop(ctx))' block into a new 'if (ctx->API ==
API_OPENGL_CORE)' block.

v2: Remove stray shebang line in apiexec.py.  Suggested by Ilia.

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Ilia Mirkin <imirkin@alum.mit.edu>
Cc: Dave Airlie <airlied@redhat.com>
Cc: Dylan Baker <baker.dylan.c@gmail.com>
Cc: "10.6" <mesa-stable@lists.freedesktop.org>
9 years agoRevert "mesa: Add an extension flag for ARB_direct_state_access"
Ian Romanick [Mon, 18 May 2015 20:55:04 +0000 (13:55 -0700)]
Revert "mesa: Add an extension flag for ARB_direct_state_access"

This reverts commit 30dcaaec356cc117d7227c6680620cd50ff534e7.

Acked-by: Fredrik Höglund <fredrik@kde.org>
Cc: "10.6" <mesa-stable@lists.freedesktop.org>
9 years agomesa: Use the profile instead of an extension bit to validate GL_TEXTURE_CUBE_MAP
Ian Romanick [Thu, 21 May 2015 00:19:29 +0000 (17:19 -0700)]
mesa: Use the profile instead of an extension bit to validate GL_TEXTURE_CUBE_MAP

The extension on which this depends will always be enabled in core
profile, and the extension bit is about to be removed.

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Fredrik Höglund <fredrik@kde.org>
Cc: "10.6" <mesa-stable@lists.freedesktop.org>
9 years agoRevert "mesa: Add ARB_direct_state_access checks in XFB functions"
Ian Romanick [Mon, 18 May 2015 20:54:55 +0000 (13:54 -0700)]
Revert "mesa: Add ARB_direct_state_access checks in XFB functions"

This reverts commit 7d212765a470972f4712e42caf6406b257220369.

Acked-by: Fredrik Höglund <fredrik@kde.org>
Cc: "10.6" <mesa-stable@lists.freedesktop.org>
9 years agoRevert "mesa: Add ARB_direct_state_access checks in buffer object functions"
Ian Romanick [Mon, 18 May 2015 20:54:39 +0000 (13:54 -0700)]
Revert "mesa: Add ARB_direct_state_access checks in buffer object functions"

This reverts commit 339ed0984d4f54fca91235a1df2ce3a850f6123f.

Acked-by: Fredrik Höglund <fredrik@kde.org>
Cc: "10.6" <mesa-stable@lists.freedesktop.org>
9 years agoRevert "mesa: Add ARB_direct_state_access checks in FBO functions"
Ian Romanick [Mon, 18 May 2015 20:54:35 +0000 (13:54 -0700)]
Revert "mesa: Add ARB_direct_state_access checks in FBO functions"

This reverts commit 6ad0b7e07a0445e9e0f368e079c4f7b8a6757bb3.

Acked-by: Fredrik Höglund <fredrik@kde.org>
Cc: "10.6" <mesa-stable@lists.freedesktop.org>
9 years agoRevert "mesa: Add ARB_direct_state_access checks in renderbuffer functions"
Ian Romanick [Mon, 18 May 2015 20:54:29 +0000 (13:54 -0700)]
Revert "mesa: Add ARB_direct_state_access checks in renderbuffer functions"

This reverts commit cb49940766b581c6656473d89c221653c69fa0f9.

Acked-by: Fredrik Höglund <fredrik@kde.org>
Cc: "10.6" <mesa-stable@lists.freedesktop.org>
9 years agoRevert "mesa: Add ARB_direct_state_access checks in texture functions"
Ian Romanick [Mon, 18 May 2015 20:54:25 +0000 (13:54 -0700)]
Revert "mesa: Add ARB_direct_state_access checks in texture functions"

This reverts commit 8940957238e8584ce27295791cee4cc3d6f7cf1e.

Acked-by: Fredrik Höglund <fredrik@kde.org>
Cc: "10.6" <mesa-stable@lists.freedesktop.org>
9 years agoRevert "mesa: Add ARB_direct_state_access checks in VAO functions"
Ian Romanick [Mon, 18 May 2015 20:54:21 +0000 (13:54 -0700)]
Revert "mesa: Add ARB_direct_state_access checks in VAO functions"

This reverts commit 36b05793372b86b914d9b95d0188f5f387e01d68.

Acked-by: Fredrik Höglund <fredrik@kde.org>
Cc: "10.6" <mesa-stable@lists.freedesktop.org>
9 years agoRevert "mesa: Add ARB_direct_state_access checks in sampler object functions"
Ian Romanick [Mon, 18 May 2015 20:54:18 +0000 (13:54 -0700)]
Revert "mesa: Add ARB_direct_state_access checks in sampler object functions"

This reverts commit 9e7149c8986348bf9567f049444783ef52775f4e.

Acked-by: Fredrik Höglund <fredrik@kde.org>
Cc: "10.6" <mesa-stable@lists.freedesktop.org>
9 years agoRevert "mesa: Add ARB_direct_state_access checks in program pipeline functions"
Ian Romanick [Mon, 18 May 2015 20:54:15 +0000 (13:54 -0700)]
Revert "mesa: Add ARB_direct_state_access checks in program pipeline functions"

This reverts commit bebf3c6ab314bde05ac5a3b4d3e63fd36243c58e.

Acked-by: Fredrik Höglund <fredrik@kde.org>
Cc: "10.6" <mesa-stable@lists.freedesktop.org>
9 years agoRevert "mesa: Add ARB_direct_state_access checks in query object functions"
Ian Romanick [Mon, 18 May 2015 20:54:11 +0000 (13:54 -0700)]
Revert "mesa: Add ARB_direct_state_access checks in query object functions"

This reverts commit d3368e0c9e27ced6059eb2ecdf2aa999a00e90b0.

Acked-by: Fredrik Höglund <fredrik@kde.org>
Cc: "10.6" <mesa-stable@lists.freedesktop.org>
9 years agoRevert "i915: Enable ARB_direct_state_access"
Ian Romanick [Mon, 18 May 2015 20:54:08 +0000 (13:54 -0700)]
Revert "i915: Enable ARB_direct_state_access"

This reverts commit 121030eed8fc41789d2f4f7517bbc0dd6199667b.

Acked-by: Fredrik Höglund <fredrik@kde.org>
Cc: "10.6" <mesa-stable@lists.freedesktop.org>
9 years agoRevert "i965: Enable ARB_direct_state_access"
Ian Romanick [Mon, 18 May 2015 20:53:58 +0000 (13:53 -0700)]
Revert "i965: Enable ARB_direct_state_access"

This reverts commit a57feba0a35de35728269aeb26b039e4f2393d69.

Acked-by: Fredrik Höglund <fredrik@kde.org>
Cc: "10.6" <mesa-stable@lists.freedesktop.org>
9 years agoRevert "st/mesa: Enable ARB_direct_state_access"
Ian Romanick [Mon, 18 May 2015 20:53:49 +0000 (13:53 -0700)]
Revert "st/mesa: Enable ARB_direct_state_access"

This reverts commit 357bf80caade9e0be20dcc88ec38884e34abc986.

Acked-by: Fredrik Höglund <fredrik@kde.org>
Cc: "10.6" <mesa-stable@lists.freedesktop.org>
9 years agomesa: Allow overriding the version of ES2+ contexts
Ian Romanick [Wed, 29 Apr 2015 23:12:40 +0000 (16:12 -0700)]
mesa: Allow overriding the version of ES2+ contexts

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Tapani Pälli <tapani.palli@intel.com>
9 years agomesa: Add support for a new override string MESA_GLES_VERSION_OVERRIDE
Ian Romanick [Tue, 26 May 2015 19:07:13 +0000 (12:07 -0700)]
mesa: Add support for a new override string MESA_GLES_VERSION_OVERRIDE

The string is only applied when the context is API_OPENGLES2.

The bulk of the change is to prevent overriding the context to
API_OPENGL_CORE based on the requested version.  If the context is
API_OPENGL_ES2, don't change it.

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Tapani Pälli <tapani.palli@intel.com>
9 years agodri_util: Use _mesa_override_gl_version_contextless
Ian Romanick [Tue, 26 May 2015 19:14:39 +0000 (12:14 -0700)]
dri_util: Use _mesa_override_gl_version_contextless

Remove _mesa_get_gl_version_override.  We don't need two functions that
do basically the same thing.  This change seemed easier (esp. with the
next patch) than going the other way.

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Tapani Pälli <tapani.palli@intel.com>
9 years agomesa/es3.1: Enable ES 3.1 API and shading language version
Ian Romanick [Tue, 28 Apr 2015 20:13:47 +0000 (13:13 -0700)]
mesa/es3.1: Enable ES 3.1 API and shading language version

This is a bit of a hack for now.  Several of the extensions required for
OpenGL ES 3.1 have no support, at all, in Mesa.  However, with this
patch and a patch to allow MESA_GL_VERSION_OVERRIDE to work with ES
contexts, people can begin testing the ES "version" of the functionality
that is supported.

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Tapani Pälli <tapani.palli@intel.com>
9 years agogles/es3.1: Enable dispatch of almost all new GLES 3.1 functions
Ian Romanick [Wed, 29 Apr 2015 01:00:43 +0000 (18:00 -0700)]
gles/es3.1: Enable dispatch of almost all new GLES 3.1 functions

A couple functions are missing because there are no implementations of
them yet.  These are:

      glFramebufferParameteri (from GL_ARB_framebuffer_no_attachments)
      glGetFramebufferParameteriv (from GL_ARB_framebuffer_no_attachments)
      glMemoryBarrierByRegion

v2: Rebase on updated dispatch_sanity.cpp test.

v3: Add support for glDraw{Arrays,Elements}Indirect in vbo_exec_array.c.
The updated dispatch_sanity.cpp test discovered this omission.

v4: Rebase on glapi changes.

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Tapani Pälli <tapani.palli@intel.com>
9 years agoi965/fs: Properly handle explicit depth in SIMD16 with dual-source blend
Jason Ekstrand [Mon, 25 May 2015 16:31:55 +0000 (09:31 -0700)]
i965/fs: Properly handle explicit depth in SIMD16 with dual-source blend

Cc: "10.6" <mesa-stable@lists.freedesktop.org>
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=90629
Tested-by: Markus Wick <markus@selfnet.de>
Reviewed-by: Matt Turner <mattst88@gmail.com>
9 years agoi965: Silence warning in 3-src type-setting.
Matt Turner [Wed, 27 May 2015 19:19:07 +0000 (12:19 -0700)]
i965: Silence warning in 3-src type-setting.

Reviewed-by: Topi Pohjolainen <topi.pohjolainen@intel.com>
9 years agoi965/fs: Fix lowering of integer multiplication with cmod.
Matt Turner [Wed, 27 May 2015 17:44:45 +0000 (10:44 -0700)]
i965/fs: Fix lowering of integer multiplication with cmod.

If the multiplication's result is unused, except by a conditional_mod,
the destination will be null. Since the final instruction in the lowered
sequence is a partial-write, we can't put the conditional mod on it and
we have to store the full result to a register and do a MOV with a
conditional mod.

Cc: "10.6" <mesa-stable@lists.freedesktop.org>
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=90580
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
9 years agonir: Fix output swizzle in get_mul_for_src
Iago Toral Quiroga [Thu, 28 May 2015 07:06:33 +0000 (09:06 +0200)]
nir: Fix output swizzle in get_mul_for_src

When we compute the output swizzle we want to consider the number of
components in the add operation. So far we were using the writemask
of the multiplication for this instead, which is not correct.

Reviewed-by: Jason Ekstrand <jason.ekstrand@intel.com>
9 years agogallivm: Workaround LLVM PR23628.
Jose Fonseca [Thu, 28 May 2015 09:11:36 +0000 (10:11 +0100)]
gallivm: Workaround LLVM PR23628.

Temporarily undefine DEBUG macro while including LLVM C++ headers,
leveraging the push/pop_macro pragmas, which are supported both by GCC
and MSVC.

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

Trivial.

9 years agovc4: Just stream out fallback IB contents.
Eric Anholt [Wed, 15 Apr 2015 05:42:02 +0000 (22:42 -0700)]
vc4: Just stream out fallback IB contents.

The idea I had when I wrote the original shadow code was that you'd see a
set_index_buffer to the IB, then a bunch of draws out of it.  What's
actually happening in openarena is that set_index_buffer occurs at every
draw, so we end up making a new shadow BO every time, and converting more
of the BO than is actually used in the draw.

While I could maybe come up with a better caching scheme, for now just
do the simple thing that doesn't result in a new shadow IB allocation
per draw.

Improves performance of isosurf in drawelements mode by 58.7967% +/-
3.86152% (n=8).

9 years agovc4: Don't try to put our dmabuf-exported BOs into the BO cache.
Eric Anholt [Wed, 27 May 2015 23:20:28 +0000 (16:20 -0700)]
vc4: Don't try to put our dmabuf-exported BOs into the BO cache.

We'd sometimes try to reallocate something that X was using as a new
pipe_resource, and potentially conflict in our rendering.  But even
worse, if we reallocated the BO as a shader, the kernel would reject
rendering using the shader.

9 years agovc4: Don't forget to make our raster shadow textures non-raster.
Eric Anholt [Wed, 27 May 2015 23:01:00 +0000 (16:01 -0700)]
vc4: Don't forget to make our raster shadow textures non-raster.

Not sure what happened in my testing that made the previous shadow
code fix glxgears swapbuffering, but this also fixes lots of CopyArea
in X (like dragging xlogo around in metacity).

9 years agovc4: make vc4_begin_query() return a boolean
Samuel Pitoiset [Fri, 22 May 2015 10:45:43 +0000 (12:45 +0200)]
vc4: make vc4_begin_query() return a boolean

I forgot to make the change in 96f164f6f047833091eb98a73aa80c31dc94f962.
This fixes a warning with GCC and probably an error with Clang.

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Eric Anholt <eric@anholt.net>
9 years agoi965: Emit 3DSTATE_MULTISAMPLE before WM_HZ_OP (gen8+)
Ben Widawsky [Thu, 21 May 2015 02:20:14 +0000 (19:20 -0700)]
i965: Emit 3DSTATE_MULTISAMPLE before WM_HZ_OP (gen8+)

Starting with GEN8, there is documentation that the multisample state command
must be emitted before the 3DSTATE_WM_HZ_OP command any time the multisample
count changes. The 3DSTATE_WM_HZ_OP packet gets emitted as a result of a
intel_hix_exec(), which is called upon a fast clear and/or a resolve. This can
happen before the state atoms are checked, and so the multisample state must be
put directly in the function.

v1:
- In v0, I was always emitting the command, but Ken came up with the condition to
determine whether or not the sample count actually changed.
- Ken's recommendation was to set brw->num_multisamples after emitting
3DSTATE_MULTISAMPLE. This doesn't work. I put my best guess as to why in the XXX
(it was causing 7 regressions on BDW).

v2:
Flag NEW_MULTISAMPLE state. As Ken found, in state upload we check for the
multisample change to determine whether or not to emit certain packets. Since
the hiz code doesn't actually care about the number of multisamples, set the
flag and let the later code take care of it.

Jenkins results:
http://otc-mesa-ci.jf.intel.com/view/dev/job/bwidawsk/136/

Fixes around 200 piglit tests on SKL. I'm somewhat surprised that it seems to
have no impact on BDW as the restriction is needed there as well.

Cc: "10.5 10.6" <mesa-stable@lists.freedesktop.org>
Signed-off-by: Ben Widawsky <ben@bwidawsk.net>
Reviewed-by: Neil Roberts <neil@linux.intel.com> (v0)
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org> (v2)
9 years agogallivm: Do not use NoFramePointerElim with LLVM 3.7.
Vinson Lee [Wed, 27 May 2015 05:18:28 +0000 (22:18 -0700)]
gallivm: Do not use NoFramePointerElim with LLVM 3.7.

TargetOptions::NoFramePointerElim was removed in llvm-3.7.0svn r238244
"Remove NoFramePointerElim and NoFramePointerElimOverride from
TargetOptions and remove ExecutionEngine's dependence on CodeGen. NFC."

Signed-off-by: Vinson Lee <vlee@freedesktop.org>
Reviewed-by: Tom Stellard <thomas.stellard@amd.com>
9 years agoi965: Remove _NEW_MULTISAMPLE dirty bit from 3DSTATE_PS_EXTRA.
Kenneth Graunke [Thu, 21 May 2015 14:53:09 +0000 (07:53 -0700)]
i965: Remove _NEW_MULTISAMPLE dirty bit from 3DSTATE_PS_EXTRA.

BRW_NEW_NUM_SAMPLES is sufficient.

Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Chris Forbes <chrisf@ijw.co.nz>
9 years agoi965: Delete GS scratch space workaround warning.
Kenneth Graunke [Sat, 23 May 2015 21:27:40 +0000 (14:27 -0700)]
i965: Delete GS scratch space workaround warning.

This workaround is documented in the 3DSTATE_GS documentation.  It
appears to only apply to early steppings of Broadwell and Skylake.

I don't think it ever affected production hardware, so at this point it
probably makes sense to delete it.

Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Matt Turner <mattst88@gmail.com>
9 years agoclover: Log build options when dumping clc source.
EdB [Mon, 11 May 2015 15:45:08 +0000 (17:45 +0200)]
clover: Log build options when dumping clc source.

Reviewed-by: Francisco Jerez <currojerez@riseup.net>
9 years agoglapi: Encapsulate nop table knowledge in new _mesa_new_nop_table function
Ian Romanick [Tue, 26 May 2015 18:41:44 +0000 (11:41 -0700)]
glapi: Encapsulate nop table knowledge in new _mesa_new_nop_table function

Encapsulate the knowledge about how to build the nop table in a new
_mesa_new_nop_table function.  This makes it easier for dispatch_sanity
to keep working now and in the future.

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com>
Tested-by: Mark Janes <mark.a.janes@intel.com>
Cc: 10.6 <mesa-stable@lists.freedesktop.org>
9 years agodocs: Fix some typos in the developer notes
Thomas Helland [Tue, 26 May 2015 18:14:00 +0000 (12:14 -0600)]
docs: Fix some typos in the developer notes

Found when double-checking my review on Brian's series.

Signed-off-by: Thomas Helland <thomashelland90@gmail.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
9 years agomesa: do not use _glapi_new_nop_table() for DRI builds
Brian Paul [Fri, 15 May 2015 15:08:14 +0000 (09:08 -0600)]
mesa: do not use _glapi_new_nop_table() for DRI builds

Commit 4bdbb588a9d38 introduced new _glapi_new_nop_table() and
_glapi_set_nop_handler() functions in the glapi dispatcher (which
live in libGL.so).  The calls to those functions from context.c
would be undefined (i.e. an ABI break) if the libGL used at runtime
was older.

For the time being, use the old single generic_nop() function for
non-Windows builds to avoid this problem.  At some point in the future
it should be safe to remove this work-around.  See comments for more
details.

v2: Incorporate feedback from Emil.  Use _WIN32 instead of
GLX_DIRECT_RENDERING to control behavior, move comments.

Cc: 10.6 <mesa-stable@lists.freedesktop.org>
Reviewed-and-tested-by: Ian Romanick <ian.d.romanick@intel.com>
9 years agodocs: add information about reviewing patches
Brian Paul [Tue, 26 May 2015 17:30:22 +0000 (11:30 -0600)]
docs: add information about reviewing patches

Reviewed-by: Matt Turner <mattst88@gmail.com>
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>