mesa.git
9 years agovc4: Don't bother with safe list traversal in CSE.
Eric Anholt [Sat, 30 May 2015 04:27:53 +0000 (21:27 -0700)]
vc4: Don't bother with safe list traversal in CSE.

We don't remove or move instructions.

9 years agovc4: Convert from simple_list.h to list.h
Eric Anholt [Sat, 30 May 2015 01:19:42 +0000 (18:19 -0700)]
vc4: Convert from simple_list.h to list.h

list.h is a nicer and more familiar set of list functions/macros.

9 years agovc4: Make sure we allocate idle BOs from the cache.
Eric Anholt [Sat, 30 May 2015 01:06:32 +0000 (18:06 -0700)]
vc4: Make sure we allocate idle BOs from the cache.

We were returning the most recently freed BO, without checking if it
was idle yet.  This meant that we generally stalled immediately on the
previous frame when generating a new one.  Instead, allocate new BOs
when the *oldest* BO is still busy, so that the cache scales with how
much is needed to keep some frames outstanding, as originally
intended.

Note that if you don't have some throttling happening, this means that
you can accidentally run the system out of memory.  The kernel is now
applying some throttling on all execs, to hopefully avoid this.

9 years agovc4: Fix return value handling for BO waits.
Eric Anholt [Sat, 30 May 2015 00:21:15 +0000 (17:21 -0700)]
vc4: Fix return value handling for BO waits.

If the wait ever returned -ETIME, we'd abort because the errno was
stored in errno and not drmIoctl()'s return value.

9 years agomesa: remove unused function declaration
Timothy Arceri [Fri, 29 May 2015 11:47:53 +0000 (21:47 +1000)]
mesa: remove unused function declaration

Reviewed-by: Matt Turner <mattst88@gmail.com>
9 years agodri_util: make version var unsigned to silence warnings
Brian Paul [Fri, 29 May 2015 17:28:58 +0000 (11:28 -0600)]
dri_util: make version var unsigned to silence warnings

_mesa_override_gl_version_contextless() takes an unsigned version
parameter.

Reviewed-by: Matt Turner <mattst88@gmail.com>
9 years agoi965: Disable compaction for EOT send messages
Ben Widawsky [Thu, 28 May 2015 00:55:02 +0000 (17:55 -0700)]
i965: Disable compaction for EOT send messages

AFAICT, there is no real way to make sure a send message with EOT is properly
ignored from compact, nor can I see a way to actually encode EOT while
compacting. Before the single send optimization we'd always bail because we hit
the is_immediate && !is_compactable_immediate case. However, with single send,
is_immediate is not true, and so we end up trying to compact the un-compactible.

Without this, any compacting single send instruction will hang because the EOT
isn't there. I am not sure how I didn't hit this when I originally enabled the
optimization.  I didn't check if some surrounding code changed.

I know Neil and Matt were both looking into this. I did a quick search and
didn't see any patches out there to handle this. Please ignore if this has
already been sent by someone. (Direct me to it and I will review it).

Reported-by: Neil Roberts <neil@linux.intel.com>
Reported-by: Mark Janes <mark.a.janes@intel.com>
Tested-by: Mark Janes <mark.a.janes@intel.com>
Signed-off-by: Ben Widawsky <ben@bwidawsk.net>
Reviewed-by: Matt Turner <mattst88@gmail.com>
9 years agogallivm: make sampling more robust when the sampler setup is bogus
Roland Scheidegger [Fri, 29 May 2015 16:17:24 +0000 (18:17 +0200)]
gallivm: make sampling more robust when the sampler setup is bogus

Pure integer formats cannot be sampled with linear tex / mip filters. In GL
such a setup would make the texture incomplete.
We shouldn't rely on the state tracker though to filter that out, just return
all zeros instead of dying in the lerp.

Reviewed-by: Jose Fonseca <jfonseca@vmware.com>
9 years agoconfigure.ac: Link mcdisassembler component.
Jose Fonseca [Fri, 29 May 2015 11:13:36 +0000 (12:13 +0100)]
configure.ac: Link mcdisassembler component.

gallivm now depends on it. And depending on particular LLVM version /
configure options, the build can fail without this change due to
undefined reference to `LLVM*Disasm*' symbols.

Trivial.

9 years agoconfigure.ac: Don't bother checking whether LLVM's MCJIT component is available.
Jose Fonseca [Fri, 29 May 2015 10:58:58 +0000 (11:58 +0100)]
configure.ac: Don't bother checking whether LLVM's MCJIT component is available.

Now that we require LLVM 3.3, MCJIT is guaranteed to be available.

Trvial.

9 years agogallivm: Use the LLVM's C disassembly interface.
Jose Fonseca [Thu, 28 May 2015 15:55:10 +0000 (16:55 +0100)]
gallivm: Use the LLVM's C disassembly interface.

It doesn't do everything we want.  In particular it doesn't allow to
detect jumps or return opcodes.  Currently we detect the x86's RET
opcode.

Even though it's worse for LLVM 3.3, it's an improvement for LLVM 3.7,
which was totally busted.

Reviewed-by: Roland Scheidegger <sroland@vmware.com>
9 years agogallivm: Disable frame pointer omission on LLVM 3.7.
Jose Fonseca [Thu, 28 May 2015 14:35:14 +0000 (15:35 +0100)]
gallivm: Disable frame pointer omission on LLVM 3.7.

Reviewed-by: Roland Scheidegger <sroland@vmware.com>
9 years agoconfigure.ac: enable building GLES1 and GLES2 by default
Marek Olšák [Tue, 26 May 2015 10:47:03 +0000 (12:47 +0200)]
configure.ac: enable building GLES1 and GLES2 by default

Reviewed-by: Matt Turner <mattst88@gmail.com>
Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com>
9 years agost/dri: fix postprocessing crash when there's no depth buffer
Marek Olšák [Tue, 26 May 2015 17:32:36 +0000 (19:32 +0200)]
st/dri: fix postprocessing crash when there's no depth buffer

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

Cc: 10.6 10.5 <mesa-stable@lists.freedesktop.org>
Reviewed-by: Brian Paul <brianp@vmware.com>
9 years agoradeon/llvm: reset temps_count on deallocation
Marek Olšák [Tue, 26 May 2015 22:15:16 +0000 (00:15 +0200)]
radeon/llvm: reset temps_count on deallocation

Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
9 years agoradeon/llvm: don't use a static array size for radeon_llvm_context::arrays (v2)
Marek Olšák [Tue, 26 May 2015 13:35:10 +0000 (15:35 +0200)]
radeon/llvm: don't use a static array size for radeon_llvm_context::arrays (v2)

v2: - don't use realloc (tgsi_shader_info provides the size)

Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
9 years agosoftpipe: fix offset wrapping calculations (v2)
Dave Airlie [Wed, 27 May 2015 01:11:06 +0000 (11:11 +1000)]
softpipe: fix offset wrapping calculations (v2)

Roland pointed out my previous attempt was lacking, so I enhanced the
texwrap piglit test, and tested them. This fixes the offset calculations
in a number of areas by adding the offset first, it also fixes the fastpaths,
which I forgot to address in the previous commit.

v2: try and avoid divides in most paths, the repeat mirror path
really was ugly no matter which way I went, so I left it having
the divide.
Also fix the gather lod calculation bug.

Reviewed-by: Roland Scheidegger <sroland@vmware.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
9 years agoi965/vs: Rework the logic for generating NIR from ARB vertex programs
Jason Ekstrand [Wed, 20 May 2015 19:03:33 +0000 (12:03 -0700)]
i965/vs: Rework the logic for generating NIR from ARB vertex programs

Whether or not to use NIR is now equivalent to brw->scalar_vs.  We can
simplify the logic and make it far less confusing.

Reviewed-by: Matt Turner <mattst88@gmail.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
9 years agoi965/fs: Remove the ir_visitor code
Jason Ekstrand [Wed, 20 May 2015 17:35:34 +0000 (10:35 -0700)]
i965/fs: Remove the ir_visitor code

Now that everything is running through NIR, this is all dead.

Reviewed-by: Matt Turner <mattst88@gmail.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
9 years agoi965: Remove the old fragment program code
Jason Ekstrand [Wed, 20 May 2015 17:39:03 +0000 (10:39 -0700)]
i965: Remove the old fragment program code

Now that everything is running through NIR, this is all dead.

Reviewed-by: Matt Turner <mattst88@gmail.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
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>