platform/upstream/mesa.git
10 years agoilo: simplify ilo_render_get_query_len()
Chia-I Wu [Thu, 25 Sep 2014 04:32:21 +0000 (12:32 +0800)]
ilo: simplify ilo_render_get_query_len()

For all supported query types, we always emit a PIPE_CONTROL.  Call
ilo_render_get_flush_len() for simplicity and clarity.

Signed-off-by: Chia-I Wu <olvaffe@gmail.com>
10 years agoilo: make ilo_render_emit_query() direct
Chia-I Wu [Thu, 25 Sep 2014 04:10:00 +0000 (12:10 +0800)]
ilo: make ilo_render_emit_query() direct

Remove emit_query() and ILO_RENDER_QUERY indirections.

Signed-off-by: Chia-I Wu <olvaffe@gmail.com>
10 years agoilo: make ilo_render_emit_flush() direct
Chia-I Wu [Thu, 25 Sep 2014 04:02:33 +0000 (12:02 +0800)]
ilo: make ilo_render_emit_flush() direct

Remove emit_flush() and ILO_RENDER_FLUSH indirections.

Signed-off-by: Chia-I Wu <olvaffe@gmail.com>
10 years agoilo: simplify ilo_render invalidation
Chia-I Wu [Wed, 24 Sep 2014 07:24:25 +0000 (15:24 +0800)]
ilo: simplify ilo_render invalidation

ilo_render is based on ilo_builder.  We should only care if the builder
buffers are invalidated, or if the hardware context is invalidated.  Replace
ilo_render_invalidate() with flags by ilo_render_invalidate_builder() and
ilo_render_invalidate_hw().

Signed-off-by: Chia-I Wu <olvaffe@gmail.com>
10 years agoilo: add ilo_builder_{dynamic,surface}_used()
Chia-I Wu [Thu, 25 Sep 2014 06:53:34 +0000 (14:53 +0800)]
ilo: add ilo_builder_{dynamic,surface}_used()

Return how many DWords are used in dynamic and surface buffers respectively.

Signed-off-by: Chia-I Wu <olvaffe@gmail.com>
10 years agoilo: rename state buffer to dynamic buffer
Chia-I Wu [Thu, 25 Sep 2014 06:46:33 +0000 (14:46 +0800)]
ilo: rename state buffer to dynamic buffer

Both dynamic buffer and surface buffer are state buffers.  We should not use
state buffer to refer to the former.

Signed-off-by: Chia-I Wu <olvaffe@gmail.com>
10 years agoilo: constify ilo_render in ilo_render_get_sample_position()
Chia-I Wu [Wed, 24 Sep 2014 07:18:02 +0000 (15:18 +0800)]
ilo: constify ilo_render in ilo_render_get_sample_position()

It is a getter and is not supposed to modify ilo_render.

Signed-off-by: Chia-I Wu <olvaffe@gmail.com>
10 years agoilo: rename 3d_pipeline to render
Chia-I Wu [Wed, 24 Sep 2014 06:31:07 +0000 (14:31 +0800)]
ilo: rename 3d_pipeline to render

Follow the file renaming.

Signed-off-by: Chia-I Wu <olvaffe@gmail.com>
10 years agoilo: remove struct ilo_3d
Chia-I Wu [Wed, 24 Sep 2014 05:11:25 +0000 (13:11 +0800)]
ilo: remove struct ilo_3d

Move members of ilo_3d that still make sense to ilo_context.  With ilo_3d
gone, rename functions whose names begin with ilo_3d to something more
appropriate.

Signed-off-by: Chia-I Wu <olvaffe@gmail.com>
10 years agoilo: rename ilo_3d_pipeline*.[ch] to ilo_render*.[ch]
Chia-I Wu [Wed, 24 Sep 2014 04:27:23 +0000 (12:27 +0800)]
ilo: rename ilo_3d_pipeline*.[ch] to ilo_render*.[ch]

They are used to build render engine commands, which can be more than 3D.

Signed-off-by: Chia-I Wu <olvaffe@gmail.com>
10 years agoilo: rename ilo_3d.[ch] to ilo_draw.[ch]
Chia-I Wu [Wed, 24 Sep 2014 05:06:45 +0000 (13:06 +0800)]
ilo: rename ilo_3d.[ch] to ilo_draw.[ch]

There is not much left in struct ilo_3d.  We want to kill it and ilo_3d.[ch]
will be bad names.

Signed-off-by: Chia-I Wu <olvaffe@gmail.com>
10 years agost/mesa: Use PIPE_USAGE_STAGING for GL_STATIC/DYNAMIC/STREAM_READ buffers
Michel Dänzer [Thu, 25 Sep 2014 06:29:56 +0000 (15:29 +0900)]
st/mesa: Use PIPE_USAGE_STAGING for GL_STATIC/DYNAMIC/STREAM_READ buffers

Such buffers can only be useful by reading from them with the CPU, so we
need to make sure CPU reads are fast.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=84178
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Cc: mesa-stable@lists.freedesktop.org
10 years agoglsl: remove unused link_assign_uniform_block_offsets
Tapani Pälli [Wed, 24 Sep 2014 11:09:23 +0000 (14:09 +0300)]
glsl: remove unused link_assign_uniform_block_offsets

ubo offsets are assigned by link_uniform_blocks since 514f8c7e

Signed-off-by: Tapani Pälli <tapani.palli@intel.com>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
10 years agoglsl: Structures must have same name to be considered same type.
Kalyan Kondapally [Mon, 22 Sep 2014 12:11:29 +0000 (15:11 +0300)]
glsl: Structures must have same name to be considered same type.

According to GLSL(4.2) and GLSL-ES (1.0, 3.0) spec, Structures must
have the same name to be considered same type. We currently ignore
the name check while checking if two records are same. This patch
fixes this.

Patch fixes failing tests in WebGL conformance test
'shaders-with-uniform-structs' when running Chrome on OpenGL ES.

v2: Do not force name comparison with unnamed types (Tapani)
v3: Cleanups (Matt)

Signed-off-by: Kalyan Kondapally <kalyan.kondapally@intel.com>
Signed-off-by: Tapani Pälli <tapani.palli@intel.com>
Reviewed-by: Anuj Phogat <anuj.phogat@gmail.com>
Reviewed-by: Matt Turner <mattst88@gmail.com>
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=83934

10 years agoglsl: fix uniform location count used for glsl types
Tapani Pälli [Wed, 27 Aug 2014 11:12:27 +0000 (14:12 +0300)]
glsl: fix uniform location count used for glsl types

Patch fixes the slot count used by vector types and adds 1 slot
to be used by image and sampler types.

Signed-off-by: Tapani Pälli <tapani.palli@intel.com>
Reviewed-by: Francisco Jerez <currojerez@riseup.net>
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=82921

10 years agogm107/ir: take relative pfetch offset into account
Ilia Mirkin [Fri, 26 Sep 2014 04:18:38 +0000 (00:18 -0400)]
gm107/ir: take relative pfetch offset into account

There is no dedicated instruction for this, so just combine it with the
constant offset.

Acked-by: Ben Skeggs <bskeggs@redhat.com>
Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
Cc: "10.3" <mesa-stable@lists.freedesktop.org>
10 years agogallivm: More fallout from disabling with LLVM 3.6
Michel Dänzer [Thu, 25 Sep 2014 03:23:02 +0000 (12:23 +0900)]
gallivm: More fallout from disabling with LLVM 3.6

The draw module would still try to use gallivm, causing many piglit tests
to fail with an assertion failure. llvmpipe might have been similarly
affected.

Reviewed-by: Tom Stellard <thomas.stellard@amd.com>
10 years agogm107/ir: add support for indirect const buffer selection
Ilia Mirkin [Thu, 25 Sep 2014 21:14:30 +0000 (17:14 -0400)]
gm107/ir: add support for indirect const buffer selection

This was missed in the commit that enabled it for fermi/kepler as part
of ARB_gpu_shader5

Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
Cc: "10.3" <mesa-stable@lists.freedesktop.org>
10 years agogm107/ir: fix texture argument order
Ilia Mirkin [Thu, 25 Sep 2014 07:51:37 +0000 (03:51 -0400)]
gm107/ir: fix texture argument order

Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
Cc: "10.3" <mesa-stable@lists.freedesktop.org>
10 years agogm107/ir: fix manual TXD for array targets
Ilia Mirkin [Thu, 25 Sep 2014 04:27:31 +0000 (00:27 -0400)]
gm107/ir: fix manual TXD for array targets

This parallels the fixes in commit afea9bae.

Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
Cc: "10.3" <mesa-stable@lists.freedesktop.org>
10 years agonouveau: fix glCompressedTexImage
Ilia Mirkin [Sat, 13 Sep 2014 22:14:46 +0000 (18:14 -0400)]
nouveau: fix glCompressedTexImage

mesa_texstore expects pixel data, not compressed data. For compressed
textures, we want to just copy the bits in without any conversion.

Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
Acked-by: Francisco Jerez <currojerez@riseup.net>
10 years agonv50/ir: avoid deleting pseudo instructions too early
Ilia Mirkin [Thu, 25 Sep 2014 01:45:07 +0000 (21:45 -0400)]
nv50/ir: avoid deleting pseudo instructions too early

What happens is that a SPLIT operation is part of the spill node, and as
a pseudo op, the instruction gets erased after processing its first def.
However the later defs still need to refer to it, so instead delay
deleting until after that whole RA node is done processing.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=79462
Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
Cc: "10.2 10.3" <mesa-stable@lists.freedesktop.org>
10 years agomesa/st: NumLayers is only valid for array textures
Ilia Mirkin [Wed, 24 Sep 2014 04:58:07 +0000 (00:58 -0400)]
mesa/st: NumLayers is only valid for array textures

For 3d textures, NumLayers is set to 1, which is not what we want. This
fixes the newly added gl-layer-render-storage test (which constructs
immutable 3d textures). Fixes regression introduced in d82bd7eb060.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=84145
Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
Tested-by: Michel Dänzer <michel.daenzer@amd.com>
Acked-by: Chris Forbes <chrisf@ijw.co.nz>
10 years agonv50/ir: add some comments on edge classification
Ilia Mirkin [Fri, 19 Sep 2014 05:21:52 +0000 (01:21 -0400)]
nv50/ir: add some comments on edge classification

Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
10 years agonv50,nvc0: fix 3d blit logic for odd depth/stencil formats
Ilia Mirkin [Fri, 12 Sep 2014 23:02:14 +0000 (19:02 -0400)]
nv50,nvc0: fix 3d blit logic for odd depth/stencil formats

Reported-by: David Heidelberger <david.heidelberger@ixit.cz>
Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
10 years agonv50,nvc0: add missing depth/stencil formats to tile flag selection
Ilia Mirkin [Fri, 12 Sep 2014 05:26:15 +0000 (01:26 -0400)]
nv50,nvc0: add missing depth/stencil formats to tile flag selection

Reported-by: David Heidelberger <david.heidelberger@ixit.cz>
Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
10 years agovc4: Switch from errx() to fprintf() and abort().
Eric Anholt [Thu, 25 Sep 2014 23:38:38 +0000 (16:38 -0700)]
vc4: Switch from errx() to fprintf() and abort().

These are pretty catastrophic, "should never happen" failure paths (though
4 tests in piglit hit them currently, due to a single bug).  An abort()
that you can gdb on easily is probably more useful than a clean exit,
particularly since a bug in piglit framework right now is causing early
exit(1)s to simply not be recorded in the results at all.

10 years agovc4: Fix miplevel validation for raster textures.
Eric Anholt [Thu, 25 Sep 2014 04:14:44 +0000 (21:14 -0700)]
vc4: Fix miplevel validation for raster textures.

We were using the un-minified value, meaning we'd reject correctly laid
out textures.

10 years agomesa: Replace IS_NEGATIVE(x) with x < 0.0f.
Matt Turner [Mon, 22 Sep 2014 04:03:14 +0000 (21:03 -0700)]
mesa: Replace IS_NEGATIVE(x) with x < 0.0f.

I only made IS_NEGATIVE(x) use signbit in commit 0f3ba405 in an attempt
to fix 54805, but it didn't help. We didn't use signbit on some
platforms and instead defined it to x < 0.0f.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
10 years agoradeon: Use PRINTLIKE macro.
Matt Turner [Mon, 22 Sep 2014 01:43:09 +0000 (18:43 -0700)]
radeon: Use PRINTLIKE macro.

10 years agoconfigure.ac: Replace gallium_check_st with gallium_require_drm.
Matt Turner [Sun, 21 Sep 2014 21:58:07 +0000 (14:58 -0700)]
configure.ac: Replace gallium_check_st with gallium_require_drm.

10 years agoconfigure.ac: Drop gallium directory tracking.
Matt Turner [Sun, 21 Sep 2014 21:52:27 +0000 (14:52 -0700)]
configure.ac: Drop gallium directory tracking.

Was only tracked to be printed at the end of configure, but configure
quits if it can't build something we requested, rather than silently
dropping it, so printing these directories has little use.

10 years agoconfigure.ac: Use autoconf macro for GNU make.
Matt Turner [Sun, 21 Sep 2014 20:32:35 +0000 (13:32 -0700)]
configure.ac: Use autoconf macro for GNU make.

10 years agoralloc: Mark ralloc functions with gcc's malloc attribute.
Matt Turner [Sun, 21 Sep 2014 21:31:05 +0000 (14:31 -0700)]
ralloc: Mark ralloc functions with gcc's malloc attribute.

Cuts a few hundred bytes from the DRI drivers, so it must give gcc some
extra information.

Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
10 years agomesa: Replace a priori knowledge of gcc attributes with configure tests.
Matt Turner [Mon, 22 Sep 2014 01:14:01 +0000 (18:14 -0700)]
mesa: Replace a priori knowledge of gcc attributes with configure tests.

Note that I had to add support for testing the packed attribute to
m4/ax_gcc_func_attribute.m4.

Reviewed-by: Jason Ekstrand <jason.ekstrand@intel.com> [C bits]
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
10 years agomesa: Replace a priori knowledge of gcc builtins with configure tests.
Matt Turner [Mon, 22 Sep 2014 00:25:49 +0000 (17:25 -0700)]
mesa: Replace a priori knowledge of gcc builtins with configure tests.

Presumbly this will let clang and other compilers use the built-ins as
well.

Notice two changes specifically:
   - in _mesa_next_pow_two_64(), always use __builtin_clzll and add a
     static assertion that this is safe.
   - in macros.h, remove the clang-specific definition since it should
     be able to detect __builtin_unreachable in configure.

Reviewed-by: Jason Ekstrand <jason.ekstrand@intel.com> [C bits]
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
10 years agoi965/compaction: Document instruction compaction capabilities.
Matt Turner [Thu, 28 Aug 2014 06:17:27 +0000 (23:17 -0700)]
i965/compaction: Document instruction compaction capabilities.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Jason Ekstrand <jason.ekstrand@intel.com>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
10 years agoi965: Emit ELSE/ENDIF JIP with type D on Gen 7.
Matt Turner [Thu, 28 Aug 2014 01:40:46 +0000 (18:40 -0700)]
i965: Emit ELSE/ENDIF JIP with type D on Gen 7.

The spec says the type must be W (JIP is 16-bits after all), but we've
been emitting it with a UD type all along and have experienced no
adverse effects. Changing the type to D allows ELSE and ENDIF
instructions to be compacted.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Jason Ekstrand <jason.ekstrand@intel.com>
10 years agoi965/compaction: Support compaction of control flow instructions.
Matt Turner [Thu, 28 Aug 2014 01:57:55 +0000 (18:57 -0700)]
i965/compaction: Support compaction of control flow instructions.

We're currently emitting compactable control flow instruction the wrong
types, preventing their compaction. The next patch will fix this and
actually enable compaction.

On chips that cannot compact control flow instructions, attempts to find
a match in the datatype table will fail.

Acked-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Jason Ekstrand <jason.ekstrand@intel.com>
10 years agoi965/compaction: Add support for G45.
Matt Turner [Wed, 20 Aug 2014 18:43:29 +0000 (11:43 -0700)]
i965/compaction: Add support for G45.

Acked-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Jason Ekstrand <jason.ekstrand@intel.com>
10 years agoi965: Add BRW_OPCODE_NENOP for G45.
Matt Turner [Sat, 14 Jun 2014 03:42:54 +0000 (20:42 -0700)]
i965: Add BRW_OPCODE_NENOP for G45.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Jason Ekstrand <jason.ekstrand@intel.com>
10 years agoi965/compaction: Add support for Gen5.
Matt Turner [Thu, 24 Apr 2014 08:02:35 +0000 (10:02 +0200)]
i965/compaction: Add support for Gen5.

Acked-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Jason Ekstrand <jason.ekstrand@intel.com>
Acked-by: Ian Romanick <ian.d.romanick@intel.com>
10 years agoi965/compaction: Reduce size of compacted_counts[] array.
Matt Turner [Sun, 24 Aug 2014 00:00:07 +0000 (17:00 -0700)]
i965/compaction: Reduce size of compacted_counts[] array.

The array was previously indexed in units of brw_compact_inst (8-bytes),
but before compaction all instructions are uncompacted, so every odd
element was unused.

Acked-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Jason Ekstrand <jason.ekstrand@intel.com>
10 years agoi965/compaction: Use sizeof brw_inst/brw_compact_inst.
Matt Turner [Sat, 23 Aug 2014 16:55:39 +0000 (09:55 -0700)]
i965/compaction: Use sizeof brw_inst/brw_compact_inst.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Jason Ekstrand <jason.ekstrand@intel.com>
10 years agoi965/compaction: Increment offset in for loop.
Matt Turner [Sat, 23 Aug 2014 05:13:41 +0000 (22:13 -0700)]
i965/compaction: Increment offset in for loop.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Jason Ekstrand <jason.ekstrand@intel.com>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
10 years agoi965/compaction: Make src_offset local to the for loop.
Matt Turner [Sat, 23 Aug 2014 05:08:54 +0000 (22:08 -0700)]
i965/compaction: Make src_offset local to the for loop.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Jason Ekstrand <jason.ekstrand@intel.com>
10 years agoi965/compaction: Remove unnecessary is-compacted? check.
Matt Turner [Wed, 24 Sep 2014 17:01:23 +0000 (10:01 -0700)]
i965/compaction: Remove unnecessary is-compacted? check.

Used to pass over previously compacted instructions in this loop, but no
longer. No point in checking.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Jason Ekstrand <jason.ekstrand@intel.com>
10 years agoi965/compaction: Don't set UIP on ELSE on Gen < 8.
Matt Turner [Thu, 21 Aug 2014 23:46:49 +0000 (16:46 -0700)]
i965/compaction: Don't set UIP on ELSE on Gen < 8.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
10 years agoi965/compaction: Rework 3-src compaction logic.
Matt Turner [Thu, 28 Aug 2014 02:44:02 +0000 (19:44 -0700)]
i965/compaction: Rework 3-src compaction logic.

It may be possible to create a contrived example in which a 3-src
instruction would have been compacted on Gen < 8. I'd rather not
discover it in the wild.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
10 years agoi965/sf: Disable instruction compaction.
Matt Turner [Sun, 24 Aug 2014 07:03:37 +0000 (00:03 -0700)]
i965/sf: Disable instruction compaction.

Currently a no-op, since instruction compaction isn't implemented for the
generations that have a programmable strips-and-fans unit.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
10 years agoi965: Set JumpCount, not JIP, on ENDIF on Gen 6.
Matt Turner [Thu, 28 Aug 2014 20:34:22 +0000 (13:34 -0700)]
i965: Set JumpCount, not JIP, on ENDIF on Gen 6.

Despite what the Sandybridge PRM says, ENDIF has Jump Count in <dst>,
not JIP in <src1>. (The same mistake appears about WHILE as well).

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
10 years agomesa: Use VertexArray, not _VertexArray, in array size expressions.
Kenneth Graunke [Sat, 23 Aug 2014 06:01:15 +0000 (23:01 -0700)]
mesa: Use VertexArray, not _VertexArray, in array size expressions.

Both sizes are VERT_ATTRIB_MAX, so this has no effect.  But it drops a
few trivial uses of the derived state.

Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Fredrik Höglund <fredrik@kde.org>
Reviewed-by: Brian Paul <brianp@vmware.com>
10 years agomesa: Set correct array element in vbo_exec_vtx_init.
Kenneth Graunke [Mon, 15 Sep 2014 06:45:38 +0000 (23:45 -0700)]
mesa: Set correct array element in vbo_exec_vtx_init.

I'm not familiar with this code, but this sure appears to be a typo.
It looks like the intent is to set each array element, not arrays[0]
each time.  Notably, the loop just below uses "array", not "arrays".

Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Fredrik Höglund <fredrik@kde.org>
Reviewed-by: Brian Paul <brianp@vmware.com>
Cc: mesa-stable@lists.freedesktop.org
10 years agomesa: Use proper structure for glGet*(GL_TEXTURE_COORD_ARRAY*).
Kenneth Graunke [Mon, 15 Sep 2014 04:24:45 +0000 (21:24 -0700)]
mesa: Use proper structure for glGet*(GL_TEXTURE_COORD_ARRAY*).

The code in get.c that handles this uses ctx->Array.VAO->VertexAttrib,
which is a gl_vertex_attrib_array structure, not a gl_client_array.

The offsets of all fields happened to be the same in both structures, at
least on x86_64.  "Size," "Type," and "Stride" are obviously the same:
both structures start with the same fields, in the same order.

"Enabled" is dicier: there are different fields before it in both
structures, including pointer sized values which might need special
alignment.

Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Fredrik Höglund <fredrik@kde.org>
Reviewed-by: Brian Paul <brianp@vmware.com>
Cc: mesa-stable@lists.freedesktop.org
10 years agomesa: Remove some dead helper functions.
Kenneth Graunke [Mon, 15 Sep 2014 06:21:48 +0000 (23:21 -0700)]
mesa: Remove some dead helper functions.

Dead since the _MaxElement removal, but these functions seemed generally
applicable, so I decided to remove them in a separate patch.

Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Fredrik Höglund <fredrik@kde.org>
Reviewed-by: Brian Paul <brianp@vmware.com>
10 years agovc4: Compute max_index instead of trusting the rest of userspace.
Eric Anholt [Tue, 12 Aug 2014 22:01:30 +0000 (15:01 -0700)]
vc4: Compute max_index instead of trusting the rest of userspace.

max_index was coming from either the user telling us as part of
glDrawRangeElements, or from an incidental calculation as part of some
sort of primitive conversion fallback.  Sometimes, it was just set to the
default "I don't know" ~0 value.

If it wasn't set to the actual max index, then the kernel would reject the
draw call for allowing out-of-bounds VBO reads.  So, compute the max index
from the sizes of the VBOs, which isn't too expensive (unlike mapping and
reading the index buffer) and is reliable.

Fixes piglit vao-element-array-buffer.

10 years agovc4: Move shader record setup before the draw call.
Eric Anholt [Tue, 12 Aug 2014 21:57:39 +0000 (14:57 -0700)]
vc4: Move shader record setup before the draw call.

The flush only happens after both are written, so we can do them in either
order.  This will let me compute max_index during the shader record setup.

10 years agoi965/vec4: Call calculate_cfg() in test programs to avoid crashing.
Matt Turner [Wed, 24 Sep 2014 23:05:50 +0000 (16:05 -0700)]
i965/vec4: Call calculate_cfg() in test programs to avoid crashing.

Reported-by: Mark Janes <mark.a.janes@intel.com>
10 years agovc4: Add support for gl_PointCoord.
Eric Anholt [Wed, 24 Sep 2014 21:47:06 +0000 (14:47 -0700)]
vc4: Add support for gl_PointCoord.

Fixes piglit glsl-fs-pointcoord, point-sprite, and fbo-gl_pointcoord.

10 years agovc4: Add support for point size setting.
Eric Anholt [Wed, 24 Sep 2014 21:23:25 +0000 (14:23 -0700)]
vc4: Add support for point size setting.

This is the support for both the global and per-vertex modes.

10 years agovc4: Add support for line width setting.
Eric Anholt [Wed, 24 Sep 2014 21:12:35 +0000 (14:12 -0700)]
vc4: Add support for line width setting.

I don't see piglit tests for it, but this should be better than not
emitting it at all.

10 years agovc4: Actually add support for polygon offset.
Eric Anholt [Wed, 24 Sep 2014 20:59:53 +0000 (13:59 -0700)]
vc4: Actually add support for polygon offset.

Setting the bit without setting the offset values is kind of useless.
Fixes piglit polygon-offset (but not polygon-mode-offset).

10 years agovc4: Fix swapped 565 dithering versus no-dithering render configs.
Eric Anholt [Wed, 24 Sep 2014 20:41:24 +0000 (13:41 -0700)]
vc4: Fix swapped 565 dithering versus no-dithering render configs.

Fixes many 565 piglit tests (like fbo-generatemipmap-formats) that weren't
expecting dithering.

10 years agovc4: Add support for alpha test.
Eric Anholt [Wed, 24 Sep 2014 20:17:11 +0000 (13:17 -0700)]
vc4: Add support for alpha test.

Fixes most of piglit fbo-alphatest-formats (but not RGB565/332).

10 years agofreedreno/a3xx: initial texture border-color
Rob Clark [Tue, 23 Sep 2014 21:24:27 +0000 (17:24 -0400)]
freedreno/a3xx: initial texture border-color

Still some open questions.. and at any rate, no additional piglit passes
due to various wrap modes that we need to emulate in at least some
cases :-(

But it does fix some mystery page-faults.. So add some comments in the
code where there are things that we need to emulate or do more r/e, and
push as-is.

Signed-off-by: Rob Clark <robclark@freedesktop.org>
10 years agoutil: use linear formats in util_blit_pixels()
Brian Paul [Wed, 24 Sep 2014 13:34:12 +0000 (07:34 -0600)]
util: use linear formats in util_blit_pixels()

Reviewed-by: Roland Scheidegger <sroland@vmware.com>
10 years agoutil: simplify writemask parameters for util_blit_pixels()
Brian Paul [Wed, 24 Sep 2014 13:27:02 +0000 (07:27 -0600)]
util: simplify writemask parameters for util_blit_pixels()

Instead of separate color and Z/S writemasks, just have one writemask
parameter that takes a mask of the PIPE_MASK_[RGBAZS] flags.

Reviewed-by: Charmaine Lee <charmainel@vmware.com>
10 years agoutil: s/PIPE_TEX_MIPFILTER/PIPE_TEX_FILTER/ in u_blit code
Brian Paul [Mon, 15 Sep 2014 21:33:26 +0000 (15:33 -0600)]
util: s/PIPE_TEX_MIPFILTER/PIPE_TEX_FILTER/ in u_blit code

PIPE_TEX_MIPFILTER_x is not legal for the pipe_sampler_state::
min/mag_img_filter fields.  But PIPE_TEX_MIPFILTER_x == PIPE_TEX_FILTER_x
so we were getting lucky.

This also makes the code consistent with u_blitter.c.

Reviewed-by: Charmaine Lee <charmainel@vmware.com>
10 years agomesa: remove EXT suffix from FBO error messages
Brian Paul [Tue, 23 Sep 2014 22:36:36 +0000 (16:36 -0600)]
mesa: remove EXT suffix from FBO error messages

And use pass caller="" for _mesa_FramebufferTexture().

Reviewed-by: Matt Turner <mattst88@gmail.com>
10 years agomesa: Drop _mesa_getenv() wrapper.
Matt Turner [Mon, 22 Sep 2014 05:53:04 +0000 (22:53 -0700)]
mesa: Drop _mesa_getenv() wrapper.

Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Jose Fonseca <jfonseca@vmware.com>
Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com>
10 years agomesa: Drop _mesa_bsearch() wrapper.
Matt Turner [Mon, 22 Sep 2014 05:50:36 +0000 (22:50 -0700)]
mesa: Drop _mesa_bsearch() wrapper.

Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Jose Fonseca <jfonseca@vmware.com>
Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com>
10 years agomesa: Unifdef _WIN32_WCE.
Matt Turner [Mon, 22 Sep 2014 05:57:10 +0000 (22:57 -0700)]
mesa: Unifdef _WIN32_WCE.

Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Jose Fonseca <jfonseca@vmware.com>
Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com>
10 years agomesa: Unifdef _XBOX.
Matt Turner [Mon, 22 Sep 2014 05:59:33 +0000 (22:59 -0700)]
mesa: Unifdef _XBOX.

Inexplicably added in commit 36940429.

Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Jose Fonseca <jfonseca@vmware.com>
Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com>
10 years agoconfigure.ac: Remove duplicate -DHAVE_PTHREAD.
Matt Turner [Mon, 22 Sep 2014 00:33:21 +0000 (17:33 -0700)]
configure.ac: Remove duplicate -DHAVE_PTHREAD.

It's also defined by the AX_PTHREAD macro.

Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com>
10 years agoconfigure.ac: Stop checking for perl.
Matt Turner [Sun, 21 Sep 2014 20:25:24 +0000 (13:25 -0700)]
configure.ac: Stop checking for perl.

Added by commit a75c6163, but no longer used.

Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com>
10 years agoconfigure.ac: Use test -a, rather than another test.
Matt Turner [Sun, 21 Sep 2014 20:22:28 +0000 (13:22 -0700)]
configure.ac: Use test -a, rather than another test.

Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com>
10 years agomesa: Use realloc() instead of _mesa_realloc() and remove the latter.
Matt Turner [Sun, 21 Sep 2014 23:32:57 +0000 (16:32 -0700)]
mesa: Use realloc() instead of _mesa_realloc() and remove the latter.

Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
10 years agomesa: Remove duplicate _mesa_{init,free}_shader_state prototypes.
Matt Turner [Sun, 21 Sep 2014 02:47:05 +0000 (19:47 -0700)]
mesa: Remove duplicate _mesa_{init,free}_shader_state prototypes.

Reviewed-by: Tapani Pälli <tapani.palli@intel.com>
10 years agogallivm: Wrap deleted inlcude in if HAVE_LLVM < 0x0306
Tom Stellard [Wed, 24 Sep 2014 15:46:09 +0000 (11:46 -0400)]
gallivm: Wrap deleted inlcude in if HAVE_LLVM < 0x0306

This was missed in 8f4ee56.

10 years agoi965: Add and use functions to get next/prev blocks.
Matt Turner [Wed, 3 Sep 2014 04:07:51 +0000 (21:07 -0700)]
i965: Add and use functions to get next/prev blocks.

Reviewed-by: Topi Pohjolainen <topi.pohjolainen@intel.com>
10 years agoi965: Call insert and remove functions from exec_node directly.
Matt Turner [Wed, 3 Sep 2014 00:53:04 +0000 (17:53 -0700)]
i965: Call insert and remove functions from exec_node directly.

Reviewed-by: Topi Pohjolainen <topi.pohjolainen@intel.com>
10 years agoi965: Make instruction lists local to the bblocks.
Matt Turner [Mon, 1 Sep 2014 22:01:23 +0000 (15:01 -0700)]
i965: Make instruction lists local to the bblocks.

Reviewed-by: Topi Pohjolainen <topi.pohjolainen@intel.com>
10 years agoi965/cfg: Add note about double-loop macros and break behavior.
Matt Turner [Wed, 3 Sep 2014 00:30:29 +0000 (17:30 -0700)]
i965/cfg: Add note about double-loop macros and break behavior.

Reviewed-by: Topi Pohjolainen <topi.pohjolainen@intel.com>
10 years agoi965: Replace initialization loops with memset().
Matt Turner [Mon, 25 Aug 2014 04:51:28 +0000 (21:51 -0700)]
i965: Replace initialization loops with memset().

Reviewed-by: Topi Pohjolainen <topi.pohjolainen@intel.com>
10 years agoi965/vec4: Don't iterate between blocks with inst->next/prev.
Matt Turner [Tue, 2 Sep 2014 21:43:43 +0000 (14:43 -0700)]
i965/vec4: Don't iterate between blocks with inst->next/prev.

The register coalescing portion of this patch hurts three shaders in
Guacamelee by one instruction each, but examining the diff makes me
believe that what we were generating was (perhaps harmlessly) incorrect.

10 years agoi965/fs: Don't iterate between blocks with inst->next/prev.
Matt Turner [Tue, 2 Sep 2014 17:08:24 +0000 (10:08 -0700)]
i965/fs: Don't iterate between blocks with inst->next/prev.

When instruction lists are per-basic block, this won't work.

Reviewed-by: Topi Pohjolainen <topi.pohjolainen@intel.com>
10 years agoi965/cfg: Add macros to iterate through a block given a starting point.
Matt Turner [Tue, 2 Sep 2014 03:01:50 +0000 (20:01 -0700)]
i965/cfg: Add macros to iterate through a block given a starting point.

Reviewed-by: Topi Pohjolainen <topi.pohjolainen@intel.com>
10 years agoi965/fs: Make count_to_loop_end() use basic blocks.
Matt Turner [Mon, 1 Sep 2014 22:38:58 +0000 (15:38 -0700)]
i965/fs: Make count_to_loop_end() use basic blocks.

When the instructions aren't in a flat list, this wouldn't have worked.
Also, this should be faster.

Reviewed-by: Topi Pohjolainen <topi.pohjolainen@intel.com>
10 years agoi965/vec4: Don't use instruction list after calculating the cfg.
Matt Turner [Mon, 1 Sep 2014 20:42:51 +0000 (13:42 -0700)]
i965/vec4: Don't use instruction list after calculating the cfg.

Reviewed-by: Topi Pohjolainen <topi.pohjolainen@intel.com>
10 years agoi965/fs: Don't use instruction list after calculating the cfg.
Matt Turner [Mon, 1 Sep 2014 20:35:04 +0000 (13:35 -0700)]
i965/fs: Don't use instruction list after calculating the cfg.

The only trick is changing a break into a return true in register
coalescing, since the macro is actually a double loop, and break will do
something different than you expect. (Wish I'd realized that earlier!)

Reviewed-by: Topi Pohjolainen <topi.pohjolainen@intel.com>
10 years agoi965: Remove now unneeded calls to calculate_cfg().
Matt Turner [Mon, 1 Sep 2014 17:58:11 +0000 (10:58 -0700)]
i965: Remove now unneeded calls to calculate_cfg().

Now that nothing invalidates the CFG, we can calculate_cfg() immediately
after emit_fb_writes()/emit_thread_end() and never again.

Reviewed-by: Topi Pohjolainen <topi.pohjolainen@intel.com>
10 years agoi965: Remove cfg-invalidating parameter from invalidate_live_intervals.
Matt Turner [Mon, 1 Sep 2014 17:54:00 +0000 (10:54 -0700)]
i965: Remove cfg-invalidating parameter from invalidate_live_intervals.

Everything has been converted to preserve the CFG.

Reviewed-by: Topi Pohjolainen <topi.pohjolainen@intel.com>
10 years agoi965: Preserve the CFG in instruction scheduling.
Matt Turner [Mon, 1 Sep 2014 04:19:47 +0000 (21:19 -0700)]
i965: Preserve the CFG in instruction scheduling.

Reviewed-by: Topi Pohjolainen <topi.pohjolainen@intel.com>
10 years agoi965/vec4: Preserve CFG in spill_reg().
Matt Turner [Mon, 25 Aug 2014 02:38:21 +0000 (19:38 -0700)]
i965/vec4: Preserve CFG in spill_reg().

Reviewed-by: Topi Pohjolainen <topi.pohjolainen@intel.com>
10 years agoi965/vec4: Preserve the CFG in a few more places.
Matt Turner [Mon, 25 Aug 2014 02:27:09 +0000 (19:27 -0700)]
i965/vec4: Preserve the CFG in a few more places.

Reviewed-by: Topi Pohjolainen <topi.pohjolainen@intel.com>
10 years agoi965/fs: Preserve the CFG in a few more places.
Matt Turner [Mon, 25 Aug 2014 02:07:01 +0000 (19:07 -0700)]
i965/fs: Preserve the CFG in a few more places.

Reviewed-by: Topi Pohjolainen <topi.pohjolainen@intel.com>
10 years agoi965: Restructure debug flags
Kristian Høgsberg [Tue, 23 Sep 2014 23:15:22 +0000 (16:15 -0700)]
i965: Restructure debug flags

This cleans up the debug flags to be consistently indented, use bit
shifting instead of hex-values and fixes a bug where the new DEBUG_NO8 flag
used the same value as the DEBUG_VUE flag.  This was hidden by the numbers not
being aligned.  Also removes gaps in the range where DEBUG_IOCTL (0x4) and
DEBUG_REGION (0x400) used to be.

Signed-off-by: Kristian Høgsberg <krh@bitplanet.net>
Reviewed-by: Chris Forbes <chrisf@ijw.co.nz>
10 years agogallivm: Disable gallivm to fix build with LLVM 3.6
Tom Stellard [Tue, 23 Sep 2014 20:15:52 +0000 (16:15 -0400)]
gallivm: Disable gallivm to fix build with LLVM 3.6

LLVM commit r218316 removes the JITMemoryManager class, which is
the parent for a seemingly important class in gallivm.  In order to
fix the build, I've wrapped most of lp_bld_misc.cpp in
if HAVE_LLVM < 0x0306 and modifyed the
lp_build_create_jit_compiler_for_module() function to return false
for 3.6 and newer which effectively disables the gallivm functionality.

I realize this is overkill, but I could not come up with a simple
solution to fix the build.  Also, since 3.6 will be the first release
without the old JIT, it would be really great if we could
move gallivm to use the C API only for accessing MCJIT.  There
is still time before the 3.6 release to extend the C API in
case it is missing some functionality that is required by gallivm.

10 years agogallium/rbug: correctly unreference a sampler view
Marek Olšák [Mon, 22 Sep 2014 20:12:43 +0000 (22:12 +0200)]
gallium/rbug: correctly unreference a sampler view

This fixes heap corruption. The sampler view can be bound in the context,
so we cannot call destroy directly.

Reviewed-by: Brian Paul <brianp@vmware.com>
10 years agogallium/rbug: unlock a mutex in rbug_create_query
Marek Olšák [Mon, 22 Sep 2014 20:12:10 +0000 (22:12 +0200)]
gallium/rbug: unlock a mutex in rbug_create_query

Reviewed-by: Brian Paul <brianp@vmware.com>