mesa.git
9 years agor300g: fix a crash when resolving into an sRGB texture
Marek Olšák [Tue, 24 Feb 2015 22:15:59 +0000 (23:15 +0100)]
r300g: fix a crash when resolving into an sRGB texture

Cc: 10.5 10.4 <mesa-stable@lists.freedesktop.org>
9 years agor300g: use memset for clearing the shader key
Marek Olšák [Mon, 9 Mar 2015 19:01:26 +0000 (20:01 +0100)]
r300g: use memset for clearing the shader key

9 years agor300g: remove the broken SNORM->UNORM shader lowering pass
Marek Olšák [Mon, 9 Mar 2015 19:05:48 +0000 (20:05 +0100)]
r300g: remove the broken SNORM->UNORM shader lowering pass

Not used anymore.

9 years agor300g: fix RGTC1 and LATC1 SNORM formats
Marek Olšák [Mon, 9 Mar 2015 19:04:04 +0000 (20:04 +0100)]
r300g: fix RGTC1 and LATC1 SNORM formats

Cc: 10.5 10.4 <mesa-stable@lists.freedesktop.org>
9 years agor300g: Fix the ATI1N swizzle (RGTC1 and LATC1)
Stefan Dösinger [Mon, 9 Mar 2015 15:15:13 +0000 (16:15 +0100)]
r300g: Fix the ATI1N swizzle (RGTC1 and LATC1)

This fixes the GL_COMPRESSED_RED_RGTC1 part of piglit's rgtc-teximage-01
test as well as the precision part of Wine's 3dc format test (fd.o bug
89156).

The Z component seems to contain a lower precision version of the
result, probably a temporary value from the decompression computation.
The Y and W component contain different data that depends on the input
values as well, but I could not make sense of them (Not that I tried
very hard).

GL_COMPRESSED_SIGNED_RED_RGTC1 still seems to have precision problems in
piglit, and both formats are affected by a compiler bug if they're
sampled by the shader with a swizzle other than .xyzw. Wine uses .xxxx,
which returns random garbage.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=89156
Signed-off-by: Marek Olšák <marek.olsak@amd.com>
Cc: 10.5 10.4 <mesa-stable@lists.freedesktop.org>
9 years agoradeonsi: Add additional information to shader dumps
Tom Stellard [Fri, 27 Feb 2015 02:27:27 +0000 (21:27 -0500)]
radeonsi: Add additional information to shader dumps

This adds SGPR count, VGPR count, shader size, LDS size, and scratch
usage to shader dumps.

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
9 years agoradeonsi/compute: Use value from compiler for COMPUTE_PGM_RSRC1.FLOAT_MODE
Tom Stellard [Fri, 6 Mar 2015 14:53:00 +0000 (14:53 +0000)]
radeonsi/compute: Use value from compiler for COMPUTE_PGM_RSRC1.FLOAT_MODE

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
9 years agoclover: Return the minimum required value for CL_DEVICE_SINGLE_FP_CONFIG v2
Tom Stellard [Thu, 5 Mar 2015 14:30:57 +0000 (14:30 +0000)]
clover: Return the minimum required value for CL_DEVICE_SINGLE_FP_CONFIG v2

This means dropping CL_FP_DENORM from the current return value.

v2:
  - Add comments about minimum values for OpenCL 1.2.

Reviewed-by: Francisco Jerez <currojerez@riseup.net>
Reviewed-by: Jan Vesely <jan.vesely@rutgers.edu>
9 years agofreedreno/ir3: get the # of miplevels from getinfo
Ilia Mirkin [Sat, 7 Mar 2015 23:25:54 +0000 (18:25 -0500)]
freedreno/ir3: get the # of miplevels from getinfo

This fixes ARB_texture_query_levels to actually return the desired
value.

Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
Reviewed-by: Rob Clark <robclark@freedesktop.org>
Cc: "10.4 10.5" <mesa-stable@lists.freedesktop.org>
9 years agofreedreno/ir3: fix array count returned by TXQ
Ilia Mirkin [Sat, 7 Mar 2015 22:41:47 +0000 (17:41 -0500)]
freedreno/ir3: fix array count returned by TXQ

Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
Reviewed-by: Rob Clark <robclark@freedesktop.org>
Cc: "10.4 10.5" <mesa-stable@lists.freedesktop.org>
9 years agofreedreno: move fb state copy after checking for size change
Ilia Mirkin [Tue, 3 Mar 2015 02:22:27 +0000 (21:22 -0500)]
freedreno: move fb state copy after checking for size change

Fixes: 1f3ca56b ("freedreno: use util_copy_framebuffer_state()")
Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
Reviewed-by: Rob Clark <robclark@freedesktop.org>
Cc: "10.4 10.5" <mesa-stable@lists.freedesktop.org>
9 years agonir: Make the printer include nir_variable::location too.
Kenneth Graunke [Thu, 19 Feb 2015 09:19:13 +0000 (01:19 -0800)]
nir: Make the printer include nir_variable::location too.

Being able to see both location and driver_location can be useful when
debugging IO mistakes.

Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Jason Ekstrand <jason.ekstrand@intel.com>
Reviewed-by: Connor Abbott <cwabbott0@gmail.com>
9 years agoi965/fs: Implement SIMD16 dual source blending.
Iago Toral Quiroga [Thu, 5 Mar 2015 08:43:38 +0000 (09:43 +0100)]
i965/fs: Implement SIMD16 dual source blending.

From the SNB PRM, volume 4, part 1, page 193:

"The dual source render target messages only have SIMD8 forms due to
 maximum message length limitations. SIMD16 pixel shaders must send two of
 these messages to cover all of the pixels. Each message contains two colors
 (4 channels each) for each pixel in the message payload."

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=82831
Reviewed-by: Jason Ekstrand <jason.ekstrand@intel.com>
9 years agonir: Only do gl_FrontFacing workaround in glsl_to_nir for the FS.
Kenneth Graunke [Fri, 6 Mar 2015 09:24:30 +0000 (01:24 -0800)]
nir: Only do gl_FrontFacing workaround in glsl_to_nir for the FS.

Vertex shaders can have shader inputs where location happens to be
VARYING_SLOT_FACE.  Without predicating this on the shader stage,
we suddenly end up with load_front_face intrinsics in vertex shaders,
which is nonsensical.

Fixes spec/arb_vertex_buffer_object/pos-array when using NIR for VS.

Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Jason Ekstrand <jason.ekstrand@intel.com>
9 years agonir: Plumb the shader stage into glsl_to_nir().
Kenneth Graunke [Fri, 6 Mar 2015 09:22:49 +0000 (01:22 -0800)]
nir: Plumb the shader stage into glsl_to_nir().

The next commit needs to know the shader stage in glsl_to_nir().
To facilitate that, we pass the gl_shader rather than the raw exec_list
of instructions.  This has both the exec_list and the stage.

Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Jason Ekstrand <jason.ekstrand@intel.com>
9 years agonir: Add native_integers to nir_shader_compiler_options.
Kenneth Graunke [Fri, 6 Mar 2015 09:17:22 +0000 (01:17 -0800)]
nir: Add native_integers to nir_shader_compiler_options.

glsl_to_nir, tgsi_to_nir, and prog_to_nir all want to know whether the
driver supports native integers.  Presumably other passes may as well.

Adding this to nir_shader_compiler_options is an easy way to provide
that information, as it's accessible via nir_shader::options.

Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Jason Ekstrand <jason.ekstrand@intel.com>
9 years agonir: Try to make sense of the nir_shader_compiler_options code.
Kenneth Graunke [Fri, 6 Mar 2015 08:43:28 +0000 (00:43 -0800)]
nir: Try to make sense of the nir_shader_compiler_options code.

The code in glsl_to_nir is entirely dead, as we translate from GLSL to
NIR at link time, when there isn't a _mesa_glsl_parse_state to pass,
so every caller passes NULL.

glsl_to_nir seems like the wrong place to try and create the shader
compiler options structure anyway - tgsi_to_nir, prog_to_nir, and other
translators all would have to duplicate that code.  The driver should
set this up once with whatever settings it wants, and pass it in.

Eric also added a NirOptions field to ctx->Const.ShaderCompilerOptions[]
and left a comment saying: "The memory for the options is expected to be
kept in a single static copy by the driver."  This suggests the plan was
to do exactly that.  That pointer was not marked const, however, and the
dead code used a mix of static structures and ralloced ones.

This patch deletes the dead code in glsl_to_nir, instead making it take
the shader compiler options as a mandatory argument.  It creates an
(empty) options struct in the i965 driver, and makes NirOptions point
to that.  It marks the pointer const so that we can actually do so
without generating "discards const qualifier" compiler warnings.

Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Acked-by: Jason Ekstrand <jason.ekstrand@intel.com>
Reviewed-by: Eric Anholt <eric@anholt.net>
9 years agonir: Delete nir_shader::user_structures and num_user_structures.
Kenneth Graunke [Fri, 6 Mar 2015 08:26:25 +0000 (00:26 -0800)]
nir: Delete nir_shader::user_structures and num_user_structures.

Nothing actually uses these, and the only caller of glsl_to_nir()
(brw_fs_nir.cpp) always passes NULL for the _mesa_glsl_parse_state
pointer, meaning they'll always be NULL and 0, respectively.

Just delete them.

Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Jason Ekstrand <jason.ekstrand@intel.com>
9 years agoglsl: Mark array access when copying to a temporary for the ?: operator.
Kenneth Graunke [Fri, 6 Mar 2015 07:18:36 +0000 (23:18 -0800)]
glsl: Mark array access when copying to a temporary for the ?: operator.

Piglit's spec/glsl-1.20/compiler/structure-and-array-operations/
array-selection.vert test contains the following code:

   gl_Position = (pick_from_a_or_b ? a : b)[i];

where "a" and "b" are uniform vec4[2] variables.

ast_to_hir creates a temporary vec4[2] variable, conditional_tmp, and
generates an if-block to copy one or the other:

   (declare (temporary) (array vec4 2) conditional_tmp)
   (if (var_ref pick_from_a_or_b)
     ((assign () (var_ref conditional_tmp) (var_ref a)))
     ((assign () (var_ref conditional_tmp) (var_ref b))))

However, we failed to update max_array_access for "a" and "b", so it
remained 0 - here, the whole array is being accessed.  At link time,
update_array_sizes() used this bogus information to change the types
of "a" and "b" to vec4[1].  We then had assignments from a vec4[1] to
a vec4[2], which is highly illegal.

This tripped assertions in nir_split_var_copies with scalar VS.

Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Jason Ekstrand <jason.ekstrand@intel.com>
Cc: mesa-stable@lists.freedesktop.org
9 years agoi965/nir: Resolve source modifiers on Gen8+ logic operations.
Kenneth Graunke [Fri, 6 Mar 2015 04:39:49 +0000 (20:39 -0800)]
i965/nir: Resolve source modifiers on Gen8+ logic operations.

On Gen8+, AND/OR/XOR/NOT don't support the abs() source modifier, and
negate changes meaning to bitwise-not (~, not -).  This isn't what NIR
expects, so we should resolve the source modifers via a MOV.

+30 Piglits (fs-op-bit{and,or,xor}-not-abs-*).

Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Topi Pohjolainen <topi.pohjolainen@intel.com>
9 years agost/mesa: drop unused texture function
Dave Airlie [Sun, 8 Mar 2015 23:51:27 +0000 (09:51 +1000)]
st/mesa: drop unused texture function

This has no users.

Reviewed-by: Ilia Mirkin <imirkin@alum.mit.edu>
Signed-off-by: Dave Airlie <airlied@redhat.com>
9 years agomesa/st: remove unused TexData
Dave Airlie [Wed, 4 Mar 2015 22:19:23 +0000 (08:19 +1000)]
mesa/st: remove unused TexData

this isn't hooked up to anything at all from what I can see.

Seems like a left over from commit 5d67d4fbebb(st/mesa: remove
st_TexImage(), use core Mesa code instead).

Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
9 years agofreedreno: replace glsl130 debug flag with glsl120
Rob Clark [Sun, 8 Mar 2015 17:38:51 +0000 (13:38 -0400)]
freedreno: replace glsl130 debug flag with glsl120

Now that relative-dst works, we should never fall back to the old
compiler.  (Which is almost true, other than a couple edge case sched
fails in piglit).

So replace glsl130 flag to force GLSL 130 and integers on a3xx/a4xx with
a glsl120 flag to force GLSL 120 and !integers.

If this commit breaks any game/app/etc use FD_MESA_DEBUG=glsl120 as a
workaround and please let me know.

Signed-off-by: Rob Clark <robclark@freedesktop.org>
9 years agogallium/docs: add some freedreno compiler docs
Rob Clark [Thu, 29 Jan 2015 20:55:41 +0000 (15:55 -0500)]
gallium/docs: add some freedreno compiler docs

Enable the 'sphinx.ext.graphviz' extension, and add in a section for
driver specific docs, with freedreno compiler docs beneath.  The
goal is for more complete compiler docs, and hopefully some docs about
other parts of the driver (such as how tiling works, etc).

Note that there is also a Distribution -> Drivers section.  Although
that appears to be simply just a list of drivers.  Not sure if that
should move under the 'Drivers' section or left alone.  I did add a
one-line section for freedreno in the existing Distribution -> Drivers
section.

Signed-off-by: Rob Clark <robclark@freedesktop.org>
9 years agofreedreno/ir3: relative dst
Rob Clark [Fri, 23 Jan 2015 20:04:46 +0000 (15:04 -0500)]
freedreno/ir3: relative dst

To simplify RA, assign arrays that are written to first.  Since enough
dependency information is in the graph to preserve order of reads and
writes of array, so all SSA names for the array collapse into one, just
assign the entire thing by array-id.

Signed-off-by: Rob Clark <robclark@freedesktop.org>
9 years agofreedreno/ir3: split out array_fanin() helper
Rob Clark [Wed, 4 Feb 2015 18:41:42 +0000 (13:41 -0500)]
freedreno/ir3: split out array_fanin() helper

We'll need this too for relative dst..

Signed-off-by: Rob Clark <robclark@freedesktop.org>
9 years agofreedreno/ir3: drop deref nodes
Rob Clark [Wed, 4 Feb 2015 21:07:44 +0000 (16:07 -0500)]
freedreno/ir3: drop deref nodes

The meta-deref instruction doesn't really do what we need for relative
destination.  Instead, since each instruction can reference at most a
single address value, track the dependency on the address register via
instr->address.  This lets us express the dependency regardless of
whether it is used for dst and/or src.

The foreach_ssa_src{_n} iterator macros now also iterates the address
register so, at least in SSA form, the address register behaves as an
additional virtual src to the instruction.  Which is pretty much what
we want, as far as scheduling/etc.

TODO:
For now, the foreach_src{_n} iterators are unchanged.  We could wrap
the address in an ir3_register and make the foreach_src_{_n} iterators
behave the same way.  But that seems unnecessary at this point, since
we mainly care about the address dependency when in SSA form.

Signed-off-by: Rob Clark <robclark@freedesktop.org>
9 years agofreedreno/ir3: helpful iterator macros
Rob Clark [Mon, 2 Feb 2015 17:54:25 +0000 (12:54 -0500)]
freedreno/ir3: helpful iterator macros

I remembered that we are using c99.. which makes some sugary iterator
macros easier.  So introduce iterator macros to iterate all src
registers and all SSA src instructions.  The _n variants also return
the src #, since there are a handful of places that need this.

Signed-off-by: Rob Clark <robclark@freedesktop.org>
9 years agofreedreno/ir3: fix register usage calculations
Rob Clark [Sun, 1 Feb 2015 18:04:09 +0000 (13:04 -0500)]
freedreno/ir3: fix register usage calculations

For cat1 instructions, use reg() as well for relative src, to ensure
proper accounting of register usage.  Also, for relative instructions,
use reg->size rather than reg->wrmask to determine the number of
components read/written.

Signed-off-by: Rob Clark <robclark@freedesktop.org>
9 years agofreedreno/ir3: couple tweaks for cmdline compiler
Rob Clark [Tue, 3 Feb 2015 20:53:35 +0000 (15:53 -0500)]
freedreno/ir3: couple tweaks for cmdline compiler

Signed-off-by: Rob Clark <robclark@freedesktop.org>
9 years agofreedreno/ir3: split up ssa_dst
Rob Clark [Fri, 23 Jan 2015 20:03:51 +0000 (15:03 -0500)]
freedreno/ir3: split up ssa_dst

And a couple other trivial renames, to prepare for relative dst.

Signed-off-by: Rob Clark <robclark@freedesktop.org>
9 years agofreedreno/ir3: fix failed assert in grouping
Rob Clark [Tue, 10 Feb 2015 09:42:32 +0000 (04:42 -0500)]
freedreno/ir3: fix failed assert in grouping

Turns out there are scenarios where we need to insert mov's in "front"
of an input.  Triggered by shaders like:

  VERT
  DCL IN[0]
  DCL IN[1]
  DCL OUT[0], POSITION
  DCL OUT[1], GENERIC[9]
  DCL SAMP[0]
  DCL TEMP[0], LOCAL
    0: MOV TEMP[0].xy, IN[1].xyyy
    1: MOV TEMP[0].w, IN[1].wwww
    2: TXF TEMP[0], TEMP[0], SAMP[0], 1D_ARRAY
    3: MOV OUT[1], TEMP[0]
    4: MOV OUT[0], IN[0]
    5: END

Signed-off-by: Rob Clark <robclark@freedesktop.org>
9 years agoc99_alloca.h: Also use <alloca.h> for cygwin
Jon TURNEY [Thu, 5 Mar 2015 15:29:32 +0000 (15:29 +0000)]
c99_alloca.h: Also use <alloca.h> for cygwin

Signed-off-by: Jon TURNEY <jon.turney@dronecode.org.uk>
Reviewed-by: Brian Paul <brianp@vmware.com>
9 years agoi915: Fix GCC unused-variable warning in release build.
Vinson Lee [Wed, 4 Mar 2015 02:54:48 +0000 (18:54 -0800)]
i915: Fix GCC unused-variable warning in release build.

i915_debug_fp.c: In function ‘i915_disassemble_program’:
i915_debug_fp.c:302:11: warning: unused variable ‘size’ [-Wunused-variable]
    GLuint size = program[0] & 0x1ff;
           ^

Signed-off-by: Vinson Lee <vlee@freedesktop.org>
Reviewed-by: Timothy Arceri <t_arceri@yahoo.com.au>
9 years agor300g: Fix build, invalid extern "C" around header inclusion.
Mark Janes [Fri, 6 Mar 2015 21:36:55 +0000 (13:36 -0800)]
r300g: Fix build, invalid extern "C" around header inclusion.

A previous patch to fix header inclusion within extern "C" neglected
to fix the occurences of this pattern in r300 files.

When the helper to detect this issue was pushed to master, it broke
the build for the r300 driver.  This patch fixes the r300 build.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=89477
Reviewed-by: Ilia Mirkin <imirkin@alum.mit.edu>
Reviewed-by: Jose Fonseca <jfonseca@vmware.com>
9 years agonouveau: Fix build, invalid extern "C" around header inclusion.
Mark Janes [Fri, 6 Mar 2015 21:36:54 +0000 (13:36 -0800)]
nouveau: Fix build, invalid extern "C" around header inclusion.

A previous patch to fix header inclusion within extern "C" neglected
to fix the occurences of this pattern in nouveau files.

When the helper to detect this issue was pushed to master, it broke
the build for the nouveau driver.  This patch fixes the nouveau build.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=89477
Reviewed-by: Ilia Mirkin <imirkin@alum.mit.edu>
Reviewed-by: Jose Fonseca <jfonseca@vmware.com>
9 years agonv50,nvc0: remove bogus 64_FLOAT formats
Ilia Mirkin [Thu, 5 Mar 2015 17:09:21 +0000 (12:09 -0500)]
nv50,nvc0: remove bogus 64_FLOAT formats

There is no HW support for these and the VBO pusher doesn't know about
them. No need to, either, since the st will be lowering them to 2x32.

Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
9 years agodocs: add news item and link release notes for mesa 10.4.6/10.5.0
Emil Velikov [Sat, 7 Mar 2015 00:33:06 +0000 (00:33 +0000)]
docs: add news item and link release notes for mesa 10.4.6/10.5.0

Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
9 years agodocs: Add sha256 sums for the 10.5.0 release
Emil Velikov [Fri, 6 Mar 2015 23:58:47 +0000 (23:58 +0000)]
docs: Add sha256 sums for the 10.5.0 release

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

9 years agodocs: Update 10.5.0 release notes
Emil Velikov [Fri, 6 Mar 2015 22:55:59 +0000 (22:55 +0000)]
docs: Update 10.5.0 release notes

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

9 years agodocs: Add sha256 sums for the 10.4.6 release
Emil Velikov [Fri, 6 Mar 2015 19:44:55 +0000 (19:44 +0000)]
docs: Add sha256 sums for the 10.4.6 release

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

9 years agoAdd release notes for the 10.4.6 release
Emil Velikov [Fri, 6 Mar 2015 19:23:34 +0000 (19:23 +0000)]
Add release notes for the 10.4.6 release

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

9 years agoilo: clarify valid and preferred tilings
Chia-I Wu [Fri, 6 Mar 2015 19:41:55 +0000 (12:41 -0700)]
ilo: clarify valid and preferred tilings

We did it right until the switch to gen_surface_tiling, which has
GEN8_TILING_W.  Generally, GEN8_TILING_W may be valid but not preferred.

9 years agoilo: clean up Gen6 WAs
Chia-I Wu [Fri, 6 Mar 2015 17:55:15 +0000 (01:55 +0800)]
ilo: clean up Gen6 WAs

Add a help function for each WA and make PIPE_CONTROL flags match the WA
descriptions.  Call gen6_wa_pre_pipe_contro() only before PIPE_CONTROLs.
Fix missing gen6_wa_pre_3dstate_vs_toggle() in the rectlist path.

9 years agoilo: add generic ilo_render_3dprimitive()
Chia-I Wu [Fri, 6 Mar 2015 17:44:33 +0000 (01:44 +0800)]
ilo: add generic ilo_render_3dprimitive()

It replaces gen[6-8]_3dprimitive().

9 years agoilo: add generic ilo_render_pipe_control()
Chia-I Wu [Fri, 6 Mar 2015 17:16:47 +0000 (01:16 +0800)]
ilo: add generic ilo_render_pipe_control()

It replaces gen[6-8]_pipe_control() and a direct gen6_PIPE_CONTROL() call in
ilo_render_emit_flush().

9 years agoilo: fix padding of linear sampler views
Chia-I Wu [Fri, 6 Mar 2015 07:10:45 +0000 (15:10 +0800)]
ilo: fix padding of linear sampler views

Should use the temporary variable in the loop instead of layout->bo_height.

9 years agoilo: do not check for interleaved_samples
Chia-I Wu [Fri, 6 Mar 2015 07:04:47 +0000 (15:04 +0800)]
ilo: do not check for interleaved_samples

interleaved_samples is only zero-initialized when layout_want_mcs() is called.
We should not check for it.  There is also no need to.

9 years agoRevert "egl/main: use c11/threads' mutex directly"
Emil Velikov [Fri, 6 Mar 2015 17:07:40 +0000 (17:07 +0000)]
Revert "egl/main: use c11/threads' mutex directly"

This reverts commit 6cee785c69a5c8d2d32b6807f9c502117f5a74b0.

Not meant to go in yet. Lacking review.

9 years agoRevert "egl/main: convert thread management to use c11 threads"
Emil Velikov [Fri, 6 Mar 2015 17:07:34 +0000 (17:07 +0000)]
Revert "egl/main: convert thread management to use c11 threads"

This reverts commit 33eff853363d7eba5e61b00431b95f7aa0d7b0a5.

Not meant to go in yet. Lacking review.

9 years agoRevert "configure: require pthreads for POSIX builds"
Emil Velikov [Fri, 6 Mar 2015 17:07:29 +0000 (17:07 +0000)]
Revert "configure: require pthreads for POSIX builds"

This reverts commit 50714cec2b50c7836841c09f04bfe875de00ae1d.

Not meant to go in yet. Lacking review.

9 years agoRevert "glx: remove final reference to THREADS"
Emil Velikov [Fri, 6 Mar 2015 17:07:23 +0000 (17:07 +0000)]
Revert "glx: remove final reference to THREADS"

This reverts commit 8b15a883e0ba72c9156d7192a798bb272e0bc528.

Not meant to go in yet. Lacking review.

9 years agoRevert "glx: remove support for non-multithreaded platforms"
Emil Velikov [Fri, 6 Mar 2015 17:07:11 +0000 (17:07 +0000)]
Revert "glx: remove support for non-multithreaded platforms"

This reverts commit 38591295cd4b68f89f257b20f476f98de3772a47.

Not meant to go in yet. Lacking review.

9 years agoglx: remove unneeded ifdef _WIN32 guard
Emil Velikov [Thu, 5 Mar 2015 23:48:29 +0000 (23:48 +0000)]
glx: remove unneeded ifdef _WIN32 guard

The C99 header exists on other platforms as well.

Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
9 years agoutil: rework _MSC_VER >= 1200 checks
Emil Velikov [Thu, 5 Mar 2015 23:40:10 +0000 (23:40 +0000)]
util: rework _MSC_VER >= 1200 checks

Replace the _MSC_VER >= 1200 with defined (_MSC_VER) and compact if/else
statements. We require MSVC 2008 or later with commit 46110c5d564.

Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
Reviewed-by: Jose Fonseca <jfonseca@vmware.com>
9 years agoglx: remove support for non-multithreaded platforms
Emil Velikov [Thu, 5 Mar 2015 23:06:42 +0000 (23:06 +0000)]
glx: remove support for non-multithreaded platforms

Implicitly required for a while, although commit 9385c592c68 (mapi:
remove u_thread.h) was the one that put the final nail on the
coffin.

Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
9 years agoglx: remove final reference to THREADS
Emil Velikov [Thu, 5 Mar 2015 22:06:06 +0000 (22:06 +0000)]
glx: remove final reference to THREADS

Left over from commit 18db13f5865(mapi: THREADS was always defined,
remove it)

Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
9 years agoconfigure: require pthreads for POSIX builds
Emil Velikov [Thu, 5 Mar 2015 22:36:41 +0000 (22:36 +0000)]
configure: require pthreads for POSIX builds

This has been an implicit rule for building mesa for a long time. Let's
make it official and just bail out at configure time. This way we can
cleaning up some of our glx code.

Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
9 years agoegl/main: convert thread management to use c11 threads
Emil Velikov [Thu, 5 Mar 2015 15:30:12 +0000 (15:30 +0000)]
egl/main: convert thread management to use c11 threads

Convert the code to use the C11 threads implementation, and nuke the
Windows non-pthreads code-path. The c11/threads_win32.h abstraction
should be better than the current code.

Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
9 years agoegl/main: use c11/threads' mutex directly
Emil Velikov [Thu, 5 Mar 2015 15:07:51 +0000 (15:07 +0000)]
egl/main: use c11/threads' mutex directly

Remove the inline wrappers/abstraction layer.

Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
9 years agoinclude: Add helper header to help trap includes inside extern C.
José Fonseca [Thu, 11 Dec 2014 22:14:14 +0000 (22:14 +0000)]
include: Add helper header to help trap includes inside extern C.

This is just to help repro and fixing these issues with any C++ compiler --

Commiting this will of course wait until all issues are addressed.

$ scons src/glsl/
scons: Reading SConscript files ...
Checking for GCC ...  yes
Checking for Clang ...  no
Checking for X11 (x11 xext xdamage xfixes glproto >= 1.4.13)... yes
Checking for XCB (x11-xcb xcb-glx >= 1.8.1 xcb-dri2 >= 1.8)... yes
Checking for XF86VIDMODE (xxf86vm)... yes
Checking for DRM (libdrm >= 2.4.38)... yes
Checking for UDEV (libudev >= 151)... yes
warning: LLVM disabled: not building llvmpipe
scons: done reading SConscript files.
scons: Building targets ...
scons: building associated VariantDir targets: build/linux-x86_64-debug/glsl
  Compiling src/glsl/ast_array_index.cpp ...
  Compiling src/glsl/ast_expr.cpp ...
  Compiling src/glsl/ast_function.cpp ...
  Compiling src/glsl/ast_to_hir.cpp ...
  Compiling src/glsl/ast_type.cpp ...
  Compiling src/glsl/builtin_functions.cpp ...
In file included from include/c99_compat.h:28:0,
                 from src/mapi/u_compiler.h:4,
                 from src/mapi/u_thread.h:47,
                 from src/mapi/glapi/glapi.h:47,
                 from src/mesa/main/mtypes.h:42,
                 from src/mesa/main/errors.h:47,
                 from src/mesa/main/imports.h:41,
                 from src/mesa/main/core.h:44,
                 from src/glsl/builtin_functions.cpp:58:
include/no_extern_c.h:48:1: error: template with C linkage
 template<class T> class _IncludeInsideExternCNotPortable;
 ^
In file included from include/c99_compat.h:28:0,
                 from include/c11/threads.h:38,
                 from src/mapi/u_thread.h:49,
                 from src/mapi/glapi/glapi.h:47,
                 from src/mesa/main/mtypes.h:42,
                 from src/mesa/main/errors.h:47,
                 from src/mesa/main/imports.h:41,
                 from src/mesa/main/core.h:44,
                 from src/glsl/builtin_functions.cpp:58:
include/no_extern_c.h:48:1: error: template with C linkage
 template<class T> class _IncludeInsideExternCNotPortable;
 ^
  Compiling src/glsl/builtin_types.cpp ...
  Compiling src/glsl/builtin_variables.cpp ...
scons: *** [build/linux-x86_64-debug/glsl/builtin_functions.os] Error 1
scons: building terminated because of errors.

Reviewed-by: Mark Janes <mark.a.janes@intel.com>
9 years agoi965: free scratch buffers when destroying the context
Iago Toral Quiroga [Wed, 1 Oct 2014 11:55:32 +0000 (13:55 +0200)]
i965: free scratch buffers when destroying the context

If scratch space is needed for a shader stage we try to reuse the last scratch
buffer bound to that stage. If we can't, we free the old scratch buffer and
allocate a new one. This means we always keep the last scratch buffer for a
particular shader stage around for the entire life span of the context.

These buffers are being reported by Valgrind as definitely lost after
destroying the OpenGL context. For example, for the geometry shader stage:

==18350== 248 bytes in 1 blocks are definitely lost in loss record 85 of 150
==18350==    at 0x4C2CC70: calloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==18350==    by 0xA1B35D6: drm_intel_gem_bo_alloc_internal (intel_bufmgr_gem.c:724)
==18350==    by 0xA1B383F: drm_intel_gem_bo_alloc (intel_bufmgr_gem.c:794)
==18350==    by 0xA1AEFA3: drm_intel_bo_alloc (intel_bufmgr.c:52)
==18350==    by 0x9D08E31: brw_get_scratch_bo (brw_program.c:226)
==18350==    by 0x9D2A0F2: do_gs_prog (brw_vec4_gs.c:280)
==18350==    by 0x9D2A635: brw_gs_precompile (brw_vec4_gs.c:401)
==18350==    by 0x9D14F68: brw_shader_precompile(gl_context*, gl_shader_program*) (brw_shader.cpp:76)
==18350==    by 0x9D157B8: brw_link_shader (brw_shader.cpp:269)
==18350==    by 0x9B0941E: _mesa_glsl_link_shader (ir_to_mesa.cpp:3038)
==18350==    by 0x99AE4ED: link_program (shaderapi.c:917)
==18350==    by 0x99AF365: _mesa_LinkProgram (shaderapi.c:1385)

So make sure that by the time we destroy the context we check if we have live
scratch buffers for the various stages and release them if that is the case.

Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
9 years agoi965: Fix URB size for CHV
Ville Syrjälä [Mon, 19 Jan 2015 14:08:31 +0000 (16:08 +0200)]
i965: Fix URB size for CHV

Increase the device info .urb.size for CHV to match the default URB
size (192kB).

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
9 years agoconfigure: Introduce new output variable to ax_check_python_mako_module.m4
Samuel Iglesias Gonsalvez [Mon, 2 Mar 2015 09:49:31 +0000 (10:49 +0100)]
configure: Introduce new output variable to ax_check_python_mako_module.m4

This output variables gives more flexibility for future changes
in autoconf to detect if it is needed to auto-generate files and
check for the auto-generation dependencies.

It is still returning error when Python is not installed.

Signed-off-by: Samuel Iglesias Gonsalvez <siglesias@igalia.com>
Reviewed-by: Kai Wasserbäch <kai@dev.carbon-project.org>
9 years agoi965/vec4: Don't lose the saturate modifier in copy propagation.
Andrey Sudnik [Thu, 5 Mar 2015 19:16:49 +0000 (11:16 -0800)]
i965/vec4: Don't lose the saturate modifier in copy propagation.

Cc: 10.4, 10.5 <mesa-stable@lists.freedesktop.org>
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=89224
Reviewed-by: Matt Turner <mattst88@gmail.com>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
9 years agoi965/vec4: Handle saturate in dump_instruction().
Matt Turner [Thu, 5 Mar 2015 19:16:07 +0000 (11:16 -0800)]
i965/vec4: Handle saturate in dump_instruction().

Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
9 years agoilo: enable L3 cache in MOCS
Chia-I Wu [Thu, 5 Mar 2015 20:30:07 +0000 (04:30 +0800)]
ilo: enable L3 cache in MOCS

This enables L3 cache in MOCS almost everywhere.

9 years agoilo: track if a ilo_view_surface is a scanout
Chia-I Wu [Thu, 5 Mar 2015 20:24:34 +0000 (04:24 +0800)]
ilo: track if a ilo_view_surface is a scanout

Scanouts require a different cache type.

9 years agoilo: clean up SURFACE_STATE and BINDING_TABLE_STATE
Chia-I Wu [Thu, 5 Mar 2015 20:27:16 +0000 (04:27 +0800)]
ilo: clean up SURFACE_STATE and BINDING_TABLE_STATE

Add ilo_builder_surface_pointer() to replace ilo_builder_surface_write().
Make Gen8+ take a different path in gen6_SURFACE_STATE().

9 years agomapi: actually remove unused u_thread.h
Brian Paul [Thu, 5 Mar 2015 14:22:40 +0000 (07:22 -0700)]
mapi: actually remove unused u_thread.h

I thought this was in the previous commit in the series.

Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com>
9 years agofreedreno/ir3: fix silly typo for binning pass shaders
Rob Clark [Thu, 5 Mar 2015 20:27:27 +0000 (15:27 -0500)]
freedreno/ir3: fix silly typo for binning pass shaders

Was resulting in gl_PointSize write being optimized out, causing
particle system type shaders to hang if hw binning enabled.

Fixes neverball, OGLES2ParticleSystem, etc.

Signed-off-by: Rob Clark <robclark@freedesktop.org>
9 years agoglsl: let interface linking code validate its arrays
Timothy Arceri [Tue, 24 Feb 2015 06:28:51 +0000 (17:28 +1100)]
glsl: let interface linking code validate its arrays

Currently intrastage arrays are validated twice for interface blocks.

Reviewed-by: Mark Janes <mark.a.janes@intel.com>
9 years agoglsl: use common intrastage array validation
Timothy Arceri [Sun, 22 Feb 2015 11:52:48 +0000 (22:52 +1100)]
glsl: use common intrastage array validation

Use common intrastage array validation for interface blocks.

This change also allows us to support interface blocks
that are arrays of arrays.

V2: Reinsert unsized array asserts in interstage_match()

Reviewed-by: Mark Janes <mark.a.janes@intel.com>
9 years agoglsl: move array validation into its own function
Timothy Arceri [Sat, 21 Feb 2015 10:47:14 +0000 (21:47 +1100)]
glsl: move array validation into its own function

V2: return true when var->type is unsized but max access is within valid range

Reviewed-by: Mark Janes <mark.a.janes@intel.com>
9 years agoi965: Split Gen4-5 BlitFramebuffer code; prefer BLT over Meta.
Kenneth Graunke [Thu, 5 Mar 2015 02:14:31 +0000 (18:14 -0800)]
i965: Split Gen4-5 BlitFramebuffer code; prefer BLT over Meta.

A while back I switched intel_blit_framebuffer to prefer Meta over the
BLT.  This meant that Gen8 platforms would start using the 3D engine
for blits, just like we do on Gen6-7.5.

However, I hadn't considered Gen4-5 when making that change.  The BLT
engine appears to be substantially faster on 965GM than using Meta to
drive the 3D engine.  This isn't too surprising: original Gen4 doesn't
support tile offsets (that came on G45), and the level/layer fields
don't work for cubemap rendering, so for inconvenient miplevel
alignments, we end up blitting or copying data to/from temporaries
in order to render to it.  We may as well just use the blitter.

I chose to use the BLT on Gen4-5 because they use the same ring for
both 3D and BLT; Gen6+ splits it out.

Fixes regressions on 965GM due to botched tile offset code (we should
fix those properly as well, but they're longstanding bugs - for now,
put things back to the status quo).

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=89430
Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Topi Pohjolainen <topi.pohjolainen@intel.com>
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
Cc: "10.5" <mesa-stable@lists.freedesktop.org>
9 years agoilo: add more convenient intel_bo_{ref,unref}()
Chia-I Wu [Thu, 5 Mar 2015 18:03:10 +0000 (02:03 +0800)]
ilo: add more convenient intel_bo_{ref,unref}()

They both check for NULL and intel_bo_ref() returns the referenced bo.  They
replace intel_bo_{reference,unreference}().

9 years agoilo: add intel_bo_set_tiling()
Chia-I Wu [Thu, 5 Mar 2015 17:36:01 +0000 (01:36 +0800)]
ilo: add intel_bo_set_tiling()

Make intel_winsys_alloc_bo() always allocate a linear bo, and add
intel_bo_set_tiling() to set the tiling.  Document the purpose of tiling.

9 years agoilo: replace intel_tiling_mode by gen_surface_tiling
Chia-I Wu [Thu, 5 Mar 2015 15:53:16 +0000 (23:53 +0800)]
ilo: replace intel_tiling_mode by gen_surface_tiling

The former is used by the kernel driver to set up fence registers and to pass
tiling info across processes.  It lacks INTEL_TILING_W, which made our code
less expressive.

9 years agoilo: update genhw headers
Chia-I Wu [Thu, 5 Mar 2015 07:25:43 +0000 (15:25 +0800)]
ilo: update genhw headers

The main change is non-inline <enum>s are now generated as C enums.

9 years agoFix invalid extern "C" around header inclusion.
Mark Janes [Thu, 5 Mar 2015 00:37:29 +0000 (16:37 -0800)]
Fix invalid extern "C" around header inclusion.

System headers may contain C++ declarations, which cannot be given C
linkage.  For this reason, include statements should never occur
inside extern "C".

This patch moves the C linkage statements to enclose only the
declarations within a single header.

Reviewed-by: Jose Fonseca <jfonseca@vmware.com>
9 years agoi965: Tell intel_get_memcpy() which direction the memcpy() is going.
Matt Turner [Wed, 4 Mar 2015 23:21:53 +0000 (15:21 -0800)]
i965: Tell intel_get_memcpy() which direction the memcpy() is going.

The SSSE3 swizzling code was written for fast uploads to the GPU and
assumed the destination was always 16-byte aligned. When we began using
this code for fast downloads as well we didn't do anything to account
for the fact that the destination pointer given by glReadPixels() or
glGetTexImage() is not guaranteed to be suitably aligned.

With SSSE3 enabled (at compile-time), some applications would crash when
an SSE aligned-store instruction tried to store to an unaligned
destination (or an assertion that the destination is aligned would
trigger).

To remedy this, tell intel_get_memcpy() whether we're uploading or
downloading so that it can select whether to assume the destination or
source is aligned, respectively.

Cc: 10.5 <mesa-stable@lists.freedesktop.org>
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=89416
Tested-by: Uriy Zhuravlev <stalkerg@gmail.com>
Reviewed-by: Jason Ekstrand <jason.ekstrand@intel.com>
9 years agomesa/x86: missing stdio inclusions
Mark Janes [Thu, 5 Mar 2015 18:14:16 +0000 (10:14 -0800)]
mesa/x86: missing stdio inclusions

Several patches added include statements where required by the m64
build.  Some files are only compiled for m32, and require similar
changes.

Reviewed-by: Matt Turner <mattst88@gmail.com>
9 years agoclover: Enable cl_khr_fp64 for devices that support doubles v4
Tom Stellard [Wed, 2 Jul 2014 19:42:43 +0000 (15:42 -0400)]
clover: Enable cl_khr_fp64 for devices that support doubles v4

v2:
  - Report correct values for CL_DEVICE_NATIVE_VECTOR_WIDTH_DOUBLE
    and CL_DEVICE_PREFERRED_VECTOR_WIDTH_DOUBLE.
  - Only define cl_khr_fp64 if the extension is supported.
  - Remove trailing space from extension string.
  - Rename device query function from cl_khr_fp64() to
    has_doubles().

v3:
  - Return 0 for device::doubled_fp_confg() when doubles aren't
    supported.

v4:
  - Remove device query for double fp_config.

Reviewed-by: Francisco Jerez <currojerez@riseup.net>
9 years agoxmlpool: make sure we ship options.h
Emil Velikov [Mon, 2 Mar 2015 15:58:21 +0000 (15:58 +0000)]
xmlpool: make sure we ship options.h

The header is included in ../xmlpool.h. With the latter of which used
directly in a number of places in mesa.
Note that we can also add it (alongside t_option.h) to noinst_HEADERS,
but neither solution fixes the issue that brough us here - namely:
Do not regenerate the headers, if it already exists.

Cc: "10.5" <mesa-stable@lists.freedesktop.org>
Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
Reviewed-by: Matt Turner <mattst88@gmail.com>
9 years agomapi: fix *glapi dependency tracking
Emil Velikov [Mon, 2 Mar 2015 15:58:20 +0000 (15:58 +0000)]
mapi: fix *glapi dependency tracking

I.e. add {shared-,}glapi/glapi_mapi_tmp.h to the SOURCES list. Otherwise
there will be no knowledge that the file is required by others for the
build. Thus autotools won't pick it up for the distribution tarball.

v2: Don't forget about the static glapi. Spotted by Matt.

Cc: "10.5" <mesa-stable@lists.freedesktop.org>
Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
Reviewed-by: Matt Turner <mattst88@gmail.com>
9 years agomesa: drop Makefile from get_hash.h dependency list
Emil Velikov [Mon, 2 Mar 2015 15:58:19 +0000 (15:58 +0000)]
mesa: drop Makefile from get_hash.h dependency list

Not required. Additionally this had the side effect of generating the
file, despite it's existence.

Cc: "10.5" <mesa-stable@lists.freedesktop.org>
Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
Reviewed-by: Matt Turner <mattst88@gmail.com>
9 years agomesa: fix dependency tracking of generated sources
Emil Velikov [Mon, 2 Mar 2015 15:58:18 +0000 (15:58 +0000)]
mesa: fix dependency tracking of generated sources

Some of the files generated were not in the SOURCES variable, thus
although generated prior to compilation the dependency tracking was
incomplete. The latter of which resulted in the files missing from the
distribution tarball.

Cc: "10.5" <mesa-stable@lists.freedesktop.org>
Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
Reviewed-by: Matt Turner <mattst88@gmail.com>
9 years agomesa: rename format_info.c to format_info.h
Emil Velikov [Mon, 2 Mar 2015 15:58:17 +0000 (15:58 +0000)]
mesa: rename format_info.c to format_info.h

The file is auto-generated, and #included by formats.c. Let's rename it
to reflect the latter. This will also help up fix the dependency
tracking by adding it to the _SOURCES variable, without the side effect
of it being compiled (twice).

v2: Update .gitignore to reflect the rename.

Cc: "10.4, 10.5" <mesa-stable@lists.freedesktop.org>
Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
Reviewed-by: Matt Turner <mattst88@gmail.com>
9 years agomesa/main: update .gitignore
Emil Velikov [Mon, 2 Mar 2015 15:58:16 +0000 (15:58 +0000)]
mesa/main: update .gitignore

Drop the no longer present get_es{1,2}.c from the list.

v2: Keep the format_info.c rename hunk out of this patch.

Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
Reviewed-by: Matt Turner <mattst88@gmail.com>
9 years agoegl/main: remove no-longer needed definition of stdint types
Emil Velikov [Sat, 28 Feb 2015 17:14:31 +0000 (17:14 +0000)]
egl/main: remove no-longer needed definition of stdint types

All the users directly include the header, plus we have a in-tree
replacements for non C99 compilers which we already use.

Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
Reviewed-by: Matt Turner <mattst88@gmail.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
9 years agoegl/drivers: include stdint.h where needed
Emil Velikov [Sat, 28 Feb 2015 17:12:40 +0000 (17:12 +0000)]
egl/drivers: include stdint.h where needed

Currently these files are including it indirectly via eglcompiler.h
The latter of which will be removed with follow up commits.

Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
Reviewed-by: Matt Turner <mattst88@gmail.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
9 years agoegl/main: drop the declaration of PUBLIC keyword.
Emil Velikov [Sat, 28 Feb 2015 16:51:21 +0000 (16:51 +0000)]
egl/main: drop the declaration of PUBLIC keyword.

Should no longer be used. As many places indirectly include
eglcompiler.h keep this change separate, so that it can be easily
reverted, if needed.

Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
Reviewed-by: Matt Turner <mattst88@gmail.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
9 years agoegl/main: no longer export internal function
Emil Velikov [Sat, 28 Feb 2015 17:20:01 +0000 (17:20 +0000)]
egl/main: no longer export internal function

With the split of the gallium egl module we had previously it required
access to some of the internal functions. As the only build (automake)
that did this no longer builds it we can now appropriately hide those
functions.

Cc: 10.5 <mesa-stable@lists.freedesktop.org>
Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
Reviewed-by: Matt Turner <mattst88@gmail.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
9 years agoegl/main: replace __FUNCTION__ with __func__
Emil Velikov [Sat, 28 Feb 2015 16:39:10 +0000 (16:39 +0000)]
egl/main: replace __FUNCTION__ with __func__

The latter is a C99 standard, and our current wrapper c99_compat.h
should handle non-compliant compilers.
Drop the c99_compat.h inclusion from eglcompiler.h altogether, as it's
no longer required.

Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
Reviewed-by: Matt Turner <mattst88@gmail.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
9 years agoegl/main: replace INLINE with inline
Emil Velikov [Sat, 28 Feb 2015 16:35:22 +0000 (16:35 +0000)]
egl/main: replace INLINE with inline

Drop the custom keyword in favour of the C99 one. All the places using
it now directly include c99_compat.h which should handle things on
platforms which lack it.

Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
Reviewed-by: Matt Turner <mattst88@gmail.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
9 years agomapi: remove u_thread.h
Brian Paul [Thu, 5 Mar 2015 02:17:57 +0000 (19:17 -0700)]
mapi: remove u_thread.h

Just use c11 threads directly.

Reviewed-by: Matt Turner <mattst88@gmail.com>
Reviewed-by: José Fonseca <jfonseca@vmware.com>
9 years agomapi: use c11 call_once() instead of pthread_once()
Brian Paul [Thu, 5 Mar 2015 02:17:57 +0000 (19:17 -0700)]
mapi: use c11 call_once() instead of pthread_once()

Reviewed-by: Matt Turner <mattst88@gmail.com>
Reviewed-by: José Fonseca <jfonseca@vmware.com>
9 years agomapi: THREADS was always defined, remove it
Brian Paul [Thu, 5 Mar 2015 02:17:57 +0000 (19:17 -0700)]
mapi: THREADS was always defined, remove it

THREADS was defined if HAVE_PTHREADS or _WIN32 was defined.  That's
always the case.  The build would die in c11/threads.h otherwise.

Reviewed-by: Matt Turner <mattst88@gmail.com>
Reviewed-by: José Fonseca <jfonseca@vmware.com>
9 years agomesa: remove THREADS check, printf calls in debug.c
Brian Paul [Thu, 5 Mar 2015 02:17:57 +0000 (19:17 -0700)]
mesa: remove THREADS check, printf calls in debug.c

THREADS is going away in the next commit.

Reviewed-by: Matt Turner <mattst88@gmail.com>
Reviewed-by: José Fonseca <jfonseca@vmware.com>
9 years agomapi: rewrite u_current_init() function without u_thread_self()
Brian Paul [Thu, 5 Mar 2015 02:17:57 +0000 (19:17 -0700)]
mapi: rewrite u_current_init() function without u_thread_self()

Remove u_thread_self() since u_thread.h is going away soon.
Create a simple thread ID abstraction which wraps WIN32 or c11 threads.
This also gets rid of the questionable casting of thrd_t to an unsigned
long.

Reviewed-by: Matt Turner <mattst88@gmail.com>
Reviewed-by: José Fonseca <jfonseca@vmware.com>