mesa.git
12 years agoradeon/llvm: use IntrNoMem property for intrinsics where possible
Vadim Girlin [Tue, 15 May 2012 14:48:16 +0000 (18:48 +0400)]
radeon/llvm: use IntrNoMem property for intrinsics where possible

Signed-off-by: Vadim Girlin <vadimgirlin@gmail.com>
Reviewed-by: Tom Stellard <thomas.stellard@amd.com>
12 years agoradeon/llvm: use correct intrinsic for CEIL
Vadim Girlin [Tue, 15 May 2012 14:48:06 +0000 (18:48 +0400)]
radeon/llvm: use correct intrinsic for CEIL

Should be round_posinf instead of round_neginf.

Signed-off-by: Vadim Girlin <vadimgirlin@gmail.com>
Reviewed-by: Tom Stellard <thomas.stellard@amd.com>
12 years agoradeon/llvm: improve ABS_i32 lowering
Vadim Girlin [Tue, 15 May 2012 14:47:53 +0000 (18:47 +0400)]
radeon/llvm: improve ABS_i32 lowering

We can save one instruction by lowering it to:
  SUB_INT tmp, 0, src
  MAX_INT dst, src, tmp

Signed-off-by: Vadim Girlin <vadimgirlin@gmail.com>
Reviewed-by: Tom Stellard <thomas.stellard@amd.com>
12 years agoradeon/llvm: fix BUILD_VECTOR lowering for replicated value
Vadim Girlin [Tue, 15 May 2012 14:47:38 +0000 (18:47 +0400)]
radeon/llvm: fix BUILD_VECTOR lowering for replicated value

We expect that all elements will be assigned even if they are equal

Signed-off-by: Vadim Girlin <vadimgirlin@gmail.com>
Reviewed-by: Tom Stellard <thomas.stellard@amd.com>
12 years agoradeon/llvm: add names for AMDGPU* passes
Vadim Girlin [Tue, 15 May 2012 14:47:22 +0000 (18:47 +0400)]
radeon/llvm: add names for AMDGPU* passes

Signed-off-by: Vadim Girlin <vadimgirlin@gmail.com>
Reviewed-by: Tom Stellard <thomas.stellard@amd.com>
12 years agoradeon/llvm: add generated files to .gitignore
Vadim Girlin [Tue, 15 May 2012 14:47:02 +0000 (18:47 +0400)]
radeon/llvm: add generated files to .gitignore

Signed-off-by: Vadim Girlin <vadimgirlin@gmail.com>
Reviewed-by: Tom Stellard <thomas.stellard@amd.com>
12 years agoAdd .gitignore files for recently-added gallium projects
Paul Berry [Mon, 14 May 2012 16:24:46 +0000 (09:24 -0700)]
Add .gitignore files for recently-added gallium projects

This patch adds .gitignore files to ignore the makefiles generated by
the gallium pipe loader and the clover OpenCL state tracker.

Reviewed-by: Francisco Jerez <currojerez@riseup.net>
12 years agoglsl: Fix lower_discard_flow prototype mismatch.
José Fonseca [Tue, 15 May 2012 11:27:15 +0000 (12:27 +0100)]
glsl: Fix lower_discard_flow prototype mismatch.

Should fix MSVC link failure.

12 years agoRevert "i965/fs: Jump from discard statements to the end of the program when done."
Eric Anholt [Fri, 4 May 2012 20:09:38 +0000 (13:09 -0700)]
Revert "i965/fs: Jump from discard statements to the end of the program when done."

This reverts commit 31866308fcf989df992ace28b5b986c3d3770e90.

Fixes piglit glsl-fs-discard-exit-3 and unigine tropics rendering.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
12 years agoglsl: Implement the GLSL 1.30+ discard control flow rule in GLSL IR.
Eric Anholt [Fri, 4 May 2012 20:08:46 +0000 (13:08 -0700)]
glsl: Implement the GLSL 1.30+ discard control flow rule in GLSL IR.

Previously, I tried implementing this in the i965 driver, but did so
in a way that violated the intent of the spec, and broke Tropics.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
12 years agoglsl: Remove the opt_discard_simplification pass.
Eric Anholt [Fri, 4 May 2012 20:37:08 +0000 (13:37 -0700)]
glsl: Remove the opt_discard_simplification pass.

This conflicts with the GLSL 1.30+ rules for derivatives after a
discard has occurred.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
12 years agoi965/fs: Remove the requirement of no dead code for interference checks.
Eric Anholt [Tue, 8 May 2012 17:36:18 +0000 (10:36 -0700)]
i965/fs: Remove the requirement of no dead code for interference checks.

This will be convenient when I want to comment out optimization code
to see the raw program being optimized, but more importantly will let
the interference check be used during optimization.

Acked-by: Kenneth Graunke <kenneth@whitecape.org>
12 years agoi965/fs: Add support for copy propagation.
Eric Anholt [Tue, 8 May 2012 20:01:52 +0000 (13:01 -0700)]
i965/fs: Add support for copy propagation.

We could do more by handling abs/negate and non-GRF sources, but this is
a good start.  Improves tropics performance 0.30% +/- .17% (n=43).

shader-db results:
Total instructions: 208032 -> 207184
60/1246 programs affected (4.8%)
23286 -> 22438 instructions in affected programs (3.6% reduction)

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
12 years agoi965/fs: When doing no work for live interval calculation, do no allocation.
Eric Anholt [Tue, 8 May 2012 20:40:44 +0000 (13:40 -0700)]
i965/fs: When doing no work for live interval calculation, do no allocation.

When I had a bug causing the backend to never finish optimizing, it
also sent me deep into swap.  This avoids extra memory allocation per
trip through optimization, and thus may reduce the peak memory
allocation of the driver even in the success case.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
12 years agoi965/gen7: Set tile_x/y to 0 in the no-stencil case.
Eric Anholt [Thu, 10 May 2012 15:49:17 +0000 (08:49 -0700)]
i965/gen7: Set tile_x/y to 0 in the no-stencil case.

Fixes compiler warnings.

12 years agointel: Fix signed/unsigned comparison warnings.
Eric Anholt [Thu, 10 May 2012 15:50:14 +0000 (08:50 -0700)]
intel: Fix signed/unsigned comparison warnings.

12 years agointel: Fix compile warning from 7b6424143d8bf572cadd46adcbaa91d2a5598635
Eric Anholt [Thu, 10 May 2012 15:46:35 +0000 (08:46 -0700)]
intel: Fix compile warning from 7b6424143d8bf572cadd46adcbaa91d2a5598635

12 years agointel: Fix compiler warning from 3cd7bee48f7caf7850ea64d40f43875d4c975507
Eric Anholt [Thu, 10 May 2012 15:45:25 +0000 (08:45 -0700)]
intel: Fix compiler warning from 3cd7bee48f7caf7850ea64d40f43875d4c975507

12 years agoi965/fs: Add a local common subexpression elimination pass.
Kenneth Graunke [Thu, 10 May 2012 23:10:15 +0000 (16:10 -0700)]
i965/fs: Add a local common subexpression elimination pass.

Total instructions: 18210 -> 17836
49/163 programs affected (30.1%)
12888 -> 12514 instructions in affected programs (2.9% reduction)

This reduces Lightsmark's "Scale down filter" shader from 395
instructions to 283, a whopping 28%.  It also reduces register pressure
significantly: the SIMD8 program now uses 29 registers instead of 101,
giving us more than enough room for a SIMD16 program.

v2: Add && !inst->conditional_mod to the "skip some instructions" check.

Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Eric Anholt <eric@anholt.net>
12 years agoi965/fs: Use a const reference in fs_reg::equals instead of a pointer.
Kenneth Graunke [Thu, 10 May 2012 23:10:14 +0000 (16:10 -0700)]
i965/fs: Use a const reference in fs_reg::equals instead of a pointer.

This lets you omit some ampersands and is more idiomatic C++.  Using
const also marks the function as not altering either register (which
was obvious, but nice to enforce).

Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Eric Anholt <eric@anholt.net>
12 years agomesa: print the Git SHA1 in GL_VERSION for ES1 and ES2.
Oliver McFadden [Mon, 7 May 2012 13:01:16 +0000 (16:01 +0300)]
mesa: print the Git SHA1 in GL_VERSION for ES1 and ES2.

Signed-off-by: Oliver McFadden <oliver.mcfadden@linux.intel.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
12 years agomesa: GLES specifies restrictions on uniform matrix transpose.
Oliver McFadden [Mon, 7 May 2012 11:15:53 +0000 (14:15 +0300)]
mesa: GLES specifies restrictions on uniform matrix transpose.

GL_INVALID_VALUE is generated if transpose is not GL_FALSE.

http://www.khronos.org/opengles/sdk/docs/man/xhtml/glUniform.xml

Signed-off-by: Oliver McFadden <oliver.mcfadden@linux.intel.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
12 years agoradeonsi: Keep around copies of original sampler states.
Michel Dänzer [Mon, 14 May 2012 14:34:11 +0000 (16:34 +0200)]
radeonsi: Keep around copies of original sampler states.

Fixes crashes when restoring sampler states after blits.

12 years agoradeonsi: Flesh out shader interpolation related code.
Michel Dänzer [Mon, 14 May 2012 14:26:19 +0000 (16:26 +0200)]
radeonsi: Flesh out shader interpolation related code.

Handle perspective interpolation and ceontroid vs. center.

12 years agoradeonsi: Add proper SI family names.
Michel Dänzer [Mon, 14 May 2012 13:39:17 +0000 (15:39 +0200)]
radeonsi: Add proper SI family names.

12 years agoradeonsi: Separate states for samplers and sampler views.
Michel Dänzer [Mon, 14 May 2012 13:32:02 +0000 (15:32 +0200)]
radeonsi: Separate states for samplers and sampler views.

And reset nregs on updates. Prevents eventual assertion failure.

12 years agoradeonsi: Fixups for drawing with an index buffer.
Michel Dänzer [Fri, 11 May 2012 13:26:15 +0000 (15:26 +0200)]
radeonsi: Fixups for drawing with an index buffer.

Mostly using the DRAW_INDEX_2 type 3 packet instead of DRAW_INDEX, which is
no longer supported on SI.

12 years agovl: Initialize pipe_vertex_buffer.user_buffer fields.
Vinson Lee [Mon, 14 May 2012 06:40:57 +0000 (23:40 -0700)]
vl: Initialize pipe_vertex_buffer.user_buffer fields.

Fix uninitialized scalar variable defects reported by Coverity.

Signed-off-by: Vinson Lee <vlee@freedesktop.org>
Reviewed-by: José Fonseca <jfonseca@vmware.com>
12 years agollvmpipe: Calculate fixed point coordinates for triangle setup earlier.
James Benton [Mon, 14 May 2012 15:00:06 +0000 (16:00 +0100)]
llvmpipe: Calculate fixed point coordinates for triangle setup earlier.

This allows us to calculate the triangle's area using fixed point,
previously it was cacluated in floating point space. It was possible
that a triangle which had negative area in floating point space had
a positive area in fixed point space.

Fixes fdo 40920.

Reviewed-by: Jose Fonseca <jfonseca@vmware.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
12 years agoradeon/llvm: Coding style fixes for R600CodeEmitter.cpp
Tom Stellard [Mon, 14 May 2012 13:32:45 +0000 (09:32 -0400)]
radeon/llvm: Coding style fixes for R600CodeEmitter.cpp

12 years agoradeon/llvm: Lower bitcast instructions to copies
Tom Stellard [Mon, 14 May 2012 14:40:12 +0000 (10:40 -0400)]
radeon/llvm: Lower bitcast instructions to copies

12 years agoradeonsi: remove slab allocator for pipe_resource (used mainly for user buffers)
Marek Olšák [Fri, 11 May 2012 20:56:08 +0000 (22:56 +0200)]
radeonsi: remove slab allocator for pipe_resource (used mainly for user buffers)

12 years agor600g: remove slab allocator for pipe_resource (used mainly for user buffers)
Marek Olšák [Fri, 11 May 2012 20:56:08 +0000 (22:56 +0200)]
r600g: remove slab allocator for pipe_resource (used mainly for user buffers)

12 years agor600g: handle R16G16B16_FLOAT and R32G32B32_FLOAT in translate_colorswap (EG)
Marek Olšák [Sat, 12 May 2012 15:35:42 +0000 (17:35 +0200)]
r600g: handle R16G16B16_FLOAT and R32G32B32_FLOAT in translate_colorswap (EG)

12 years agogallium: remove user_buffer_create from the interface
Marek Olšák [Sat, 12 May 2012 11:08:02 +0000 (13:08 +0200)]
gallium: remove user_buffer_create from the interface

Nothing uses it now.

12 years agogallium/graw: stop using user_buffer_create
Marek Olšák [Sat, 12 May 2012 10:56:19 +0000 (12:56 +0200)]
gallium/graw: stop using user_buffer_create

This is compile-tested.

12 years agogallium/util: remove unused parameter nr_vertex_buffers in util_draw_max_index
Marek Olšák [Thu, 29 Mar 2012 22:20:16 +0000 (00:20 +0200)]
gallium/util: remove unused parameter nr_vertex_buffers in util_draw_max_index

12 years agoclover: Fix build on i386.
Francisco Jerez [Sat, 12 May 2012 17:33:33 +0000 (19:33 +0200)]
clover: Fix build on i386.

12 years agoclover: Check the total work-group size provided to clEnqueueNDRangeKernel.
Francisco Jerez [Sat, 12 May 2012 17:24:09 +0000 (19:24 +0200)]
clover: Check the total work-group size provided to clEnqueueNDRangeKernel.

12 years agoclover, gallium: add PIPE_COMPUTE_CAP_MAX_THREADS_PER_BLOCK
Christoph Bumiller [Sat, 12 May 2012 17:32:46 +0000 (19:32 +0200)]
clover, gallium: add PIPE_COMPUTE_CAP_MAX_THREADS_PER_BLOCK

This is not necessarily the product of MAX_BLOCK_SIZE[i].

Reviewed-by: Tom Stellard <thomas.stellard@amd.com>
Reviewed-by: Francisco Jerez <currojerez@riseup.net>
12 years agor600g: Handle compute caps.
Francisco Jerez [Sat, 12 May 2012 17:08:43 +0000 (19:08 +0200)]
r600g: Handle compute caps.

12 years agor300g: Handle compute caps.
Francisco Jerez [Sat, 12 May 2012 17:17:13 +0000 (19:17 +0200)]
r300g: Handle compute caps.

12 years agoauxiliary/util: Ensure pipe_constant_buffer::user_buffer is initialized.
José Fonseca [Sat, 12 May 2012 16:23:52 +0000 (17:23 +0100)]
auxiliary/util: Ensure pipe_constant_buffer::user_buffer is initialized.

12 years agoscons: Fix missing gbm symbols in st/egl.
José Fonseca [Sat, 12 May 2012 16:08:30 +0000 (17:08 +0100)]
scons: Fix missing gbm symbols in st/egl.

12 years agotargets/egl-static: Fix some missing symbols.
José Fonseca [Sat, 12 May 2012 16:00:11 +0000 (17:00 +0100)]
targets/egl-static: Fix some missing symbols.

12 years agotrace: Fix pipe_context::clear dumping.
José Fonseca [Sat, 12 May 2012 15:59:41 +0000 (16:59 +0100)]
trace: Fix pipe_context::clear dumping.

12 years agotrace: Fix pipe_shader_state dumping.
José Fonseca [Sat, 12 May 2012 15:59:22 +0000 (16:59 +0100)]
trace: Fix pipe_shader_state dumping.

12 years agoscons: Link r600_drm.so against libdrm-radeon
José Fonseca [Fri, 23 Mar 2012 10:52:47 +0000 (10:52 +0000)]
scons: Link r600_drm.so against libdrm-radeon

12 years agotrace: Match NULL context members.
José Fonseca [Sat, 12 May 2012 15:31:25 +0000 (16:31 +0100)]
trace: Match NULL context members.

12 years agogallium/docs: remove documentation of redefine_user_buffer
Marek Olšák [Sat, 12 May 2012 10:25:33 +0000 (12:25 +0200)]
gallium/docs: remove documentation of redefine_user_buffer

12 years agoradeonsi: Fixed point vertex formats aren't supported.
Michel Dänzer [Fri, 11 May 2012 14:19:19 +0000 (16:19 +0200)]
radeonsi: Fixed point vertex formats aren't supported.

12 years agoradeonsi: Fixups for recent build infrastructure changes.
Michel Dänzer [Sat, 12 May 2012 10:12:21 +0000 (12:12 +0200)]
radeonsi: Fixups for recent build infrastructure changes.

In particular for the pipe loader changes.

12 years agor600g: setup COLOR1 for possible dual-src in the framebuffer bind
Dave Airlie [Fri, 27 Apr 2012 08:38:46 +0000 (09:38 +0100)]
r600g: setup COLOR1 for possible dual-src in the framebuffer bind

As pointed out by Marek, if we have only one cb, we may as well add this
single register write here rather than adding it in the draw loop.

Reviewed-by: Marek Olšák <maraeo@gmail.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
12 years agonv30: Silence pipe_cap warnings
Roy Spliet [Sat, 12 May 2012 01:42:31 +0000 (03:42 +0200)]
nv30: Silence pipe_cap warnings

Signed-off-by: Roy Spliet <r.spliet@student.tudelft.nl>
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
12 years agonv30/shader: SSG, LIT only requires one source register
Roy Spliet [Sat, 12 May 2012 01:42:30 +0000 (03:42 +0200)]
nv30/shader: SSG, LIT only requires one source register

Fixes crashing due to assertion error

Signed-off-by: Roy Spliet <r.spliet@student.tudelft.nl>
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
12 years agonouveau/vieux: finish != flush, how about we do that..
Ben Skeggs [Thu, 10 May 2012 17:02:13 +0000 (03:02 +1000)]
nouveau/vieux: finish != flush, how about we do that..

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
12 years agor300g/swtcl: move vertex buffer updates into set_vertex_buffers
Marek Olšák [Fri, 11 May 2012 21:33:50 +0000 (23:33 +0200)]
r300g/swtcl: move vertex buffer updates into set_vertex_buffers

12 years agor300g/swtcl: move index buffer updates from swtcl_draw_vbo into set_index_buffer
Marek Olšák [Fri, 11 May 2012 21:33:50 +0000 (23:33 +0200)]
r300g/swtcl: move index buffer updates from swtcl_draw_vbo into set_index_buffer

12 years agor300g/swtcl: malloc vertex and index buffers (don't use radeon DRM to get them)
Marek Olšák [Fri, 11 May 2012 21:22:21 +0000 (23:22 +0200)]
r300g/swtcl: malloc vertex and index buffers (don't use radeon DRM to get them)

Vertex and index buffers are never used by hardware, only by Draw.
SWTCL chipsets usually have very little memory, so this might help
with stability and reliability.

12 years agor300g/swtcl: don't do stuff which is only for HWTCL
Marek Olšák [Fri, 11 May 2012 21:09:05 +0000 (23:09 +0200)]
r300g/swtcl: don't do stuff which is only for HWTCL

12 years agor300g: remove slab allocator for pipe_resource (used mainly for user buffers)
Marek Olšák [Fri, 11 May 2012 20:56:08 +0000 (22:56 +0200)]
r300g: remove slab allocator for pipe_resource (used mainly for user buffers)

12 years agor300g: remove user_buffer_create
Marek Olšák [Fri, 11 May 2012 20:34:34 +0000 (22:34 +0200)]
r300g: remove user_buffer_create

12 years agor300g: fix breakage after gallium-userbuf merge
Marek Olšák [Fri, 11 May 2012 20:25:03 +0000 (22:25 +0200)]
r300g: fix breakage after gallium-userbuf merge

12 years agollvmpipe: add cast to silence warning
Brian Paul [Fri, 11 May 2012 22:16:11 +0000 (16:16 -0600)]
llvmpipe: add cast to silence warning

12 years agovega: fix 565 color unpacking bug
Andreas Betz [Fri, 11 May 2012 13:29:06 +0000 (07:29 -0600)]
vega: fix 565 color unpacking bug

NOTE: This is a candidate for the 8.0 branch.

Signed-off-by: Brian Paul <brianp@vmware.com>
12 years agomesa: add DEBUG_INCOMPLETE_TEXTURE, DEBUG_INCOMPLETE_FBO flags
Brian Paul [Wed, 9 May 2012 18:09:21 +0000 (12:09 -0600)]
mesa: add DEBUG_INCOMPLETE_TEXTURE, DEBUG_INCOMPLETE_FBO flags

Instead of having to hack the code to enable these debugging options,
set them through the MESA_DEBUG env var.

Reviewed-by: Eric Anholt <eric@anholt.net>
12 years agomesa: implement DEBUG_ALWAYS_FLUSH debug option
Brian Paul [Wed, 9 May 2012 18:08:47 +0000 (12:08 -0600)]
mesa: implement DEBUG_ALWAYS_FLUSH debug option

This flag has been around for a while but it wasn't actually used anywhere.

Now, setting this flag causes a glFlush() to be issued after each
drawing call (including glBegin/End, glDrawElements, glDrawArrays,
glDrawPixels, glCopyPixels and glBitmap).

12 years agomesa: define DEBUG_SILENT flag, use in output_if_debug()
Brian Paul [Wed, 9 May 2012 19:25:00 +0000 (13:25 -0600)]
mesa: define DEBUG_SILENT flag, use in output_if_debug()

12 years agomesa: clean-up the debug/verbose flag setup code
Brian Paul [Wed, 9 May 2012 18:07:28 +0000 (12:07 -0600)]
mesa: clean-up the debug/verbose flag setup code

Split the verbose and debug flag setup code into separate functions.

12 years agomesa: do FLUSH_VERTICES() in _mesa_flush/finish()
Brian Paul [Wed, 9 May 2012 17:56:10 +0000 (11:56 -0600)]
mesa: do FLUSH_VERTICES() in _mesa_flush/finish()

This was being done in the _mesa_Flush/Finish() calls but if there
was an internal call to _mesa_flush/finish() the FLUSH_VERTICES()
wouldn't happen.  Looks like only the intel and radeon drivers made
such calls in MakeCurrent().

12 years agomesa: fix glMaterial / dlist bug
Brian Paul [Tue, 8 May 2012 17:41:03 +0000 (11:41 -0600)]
mesa: fix glMaterial / dlist bug

When glColorMaterial() is used to latch glColor commands to a material
attribute, glMaterial calls to change that material should become no-ops.
This failed to work properly when the glMaterial call was inside a
display list.

This removes the Material function from the vbo_attrib_tmp.h template
file.  We have separate/different implementations for the "save" and
"exec" cases now.

NOTE: This is a candidate for the 8.0 branch.

12 years agomesa: fix/add error check in _mesa_ColorMaterial()
Brian Paul [Tue, 8 May 2012 16:22:20 +0000 (10:22 -0600)]
mesa: fix/add error check in _mesa_ColorMaterial()

_mesa_material_bitmask() will record a GL error and return 0 if
face or mode are illegal.  Return early in that case.

NOTE: This is a candidate for the 8.0 branch.

12 years agoradeon/llvm: More comments and cleanups
Tom Stellard [Fri, 11 May 2012 17:44:24 +0000 (13:44 -0400)]
radeon/llvm: More comments and cleanups

12 years agogallivm: Fix copy'n'paste typo bug translating CEIL opcode.
José Fonseca [Fri, 11 May 2012 15:43:28 +0000 (16:43 +0100)]
gallivm: Fix copy'n'paste typo bug translating CEIL opcode.

Trivial.

12 years agor600g: assume DISCARD_WHOLE_RESOURCE is always used with WRITE
Marek Olšák [Fri, 11 May 2012 15:34:26 +0000 (17:34 +0200)]
r600g: assume DISCARD_WHOLE_RESOURCE is always used with WRITE

12 years agoMerge branch 'master' of ssh://git.freedesktop.org/git/mesa/mesa
Marek Olšák [Fri, 11 May 2012 14:42:20 +0000 (16:42 +0200)]
Merge branch 'master' of ssh://git.freedesktop.org/git/mesa/mesa

12 years agoMerge branch 'gallium-userbuf'
Marek Olšák [Fri, 11 May 2012 14:38:13 +0000 (16:38 +0200)]
Merge branch 'gallium-userbuf'

Conflicts:
src/gallium/docs/source/screen.rst
src/gallium/drivers/nv50/nv50_state.c
src/gallium/include/pipe/p_defines.h
src/mesa/state_tracker/st_draw.c

12 years agoradeon/llvm: Fix Evergreen/Cayman tablegen predicates
Tom Stellard [Fri, 11 May 2012 13:31:00 +0000 (09:31 -0400)]
radeon/llvm: Fix Evergreen/Cayman tablegen predicates

Some Evergreen/Cayman instructions were being enabled for SI.

12 years agogallium/tgsi: s/TGSI_BUFFER/TGSI_TEXTURE_BUFFER/
José Fonseca [Fri, 11 May 2012 12:41:56 +0000 (13:41 +0100)]
gallium/tgsi: s/TGSI_BUFFER/TGSI_TEXTURE_BUFFER/

For consistency.

Reviewed-by: Brian Paul <brianp@vmware.com>
12 years agogallium/tgsi: Redefine the TGSI_TEXTURE_UNKNOWN texture target.
José Fonseca [Fri, 11 May 2012 12:36:46 +0000 (13:36 +0100)]
gallium/tgsi: Redefine the TGSI_TEXTURE_UNKNOWN texture target.

Some code relies on the existing of an invalid texture target. It seems
safer to bring it back than to deal with unintended consequences.

This partially reverts commit a4ebb04214bab1cd9bd41967232ec89441e31744.

Reviewed-by: Brian Paul <brianp@vmware.com>
12 years agollvmpipe: Fix triangle bounding box calculation to be correctly inclusive or exclusive
James Benton [Thu, 10 May 2012 16:15:28 +0000 (17:15 +0100)]
llvmpipe: Fix triangle bounding box calculation to be correctly inclusive or exclusive

Tested with custom rasterisation test tool added to piglit suite, reduced errors

Signed-off-by: José Fonseca <jfonseca@vmware.com>
12 years agollvmpipe: Change triangle rasterization comparison from < 0 to <= 0
James Benton [Thu, 10 May 2012 16:15:27 +0000 (17:15 +0100)]
llvmpipe: Change triangle rasterization comparison from < 0 to <= 0

Tested with custom rasterisation test tool added to piglit suite, reduced errors

Signed-off-by: José Fonseca <jfonseca@vmware.com>
12 years agoclover: Implement CL_MEM_COPY_HOST_PTR.
Francisco Jerez [Fri, 4 May 2012 13:02:21 +0000 (15:02 +0200)]
clover: Implement CL_MEM_COPY_HOST_PTR.

12 years agogallium/targets/pipe-loader: Prepend DESTDIR to the installation directory.
Alexey Shvetsov [Tue, 10 Apr 2012 22:11:56 +0000 (01:11 +0300)]
gallium/targets/pipe-loader: Prepend DESTDIR to the installation directory.

Signed-off-by: Alexey Shvetsov <alexxy@gentoo.org>
12 years agoclover: Assorted build fixes.
Tom Stellard [Fri, 20 Apr 2012 14:56:46 +0000 (16:56 +0200)]
clover: Assorted build fixes.

Contains the following patches squashed in:

commit 9fff1dc0875f7c9591550fa3ebbe1ba7a18483fa
Author: Tom Stellard <thomas.stellard@amd.com>
Date:   Tue Mar 20 23:20:03 2012 +0100

    configure.ac: Build gallium loader when OpenCL is enabled

commit 542111cb02957418c6a285cb6ef2924e49adc66e
Author: Tom Stellard <thomas.stellard@amd.com>
Date:   Tue Mar 20 23:30:29 2012 +0100

    configure.ac: Add sw/null to GALLIUM_WINSYS_DIRS for gallium loader

commit 876f8de46062dde76b6075be3b6628f969b16648
Author: Tom Stellard <thomas.stellard@amd.com>
Date:   Thu Feb 9 11:26:05 2012 -0500

    configure.ac: Require gcc > 4.6.0 for clover

commit 99049d50fa3d9a23297ae658189c19c89dca1766
Author: Tom Stellard <thomas.stellard@amd.com>
Date:   Tue Mar 20 23:32:06 2012 +0100

    configure.ac: Require Gallium drm loader when gallium loader is enabled

    No longer silently exclude this when building OpenCL drivers
    for nouveau and r600.

12 years agoclover: Import OpenCL state tracker.
Francisco Jerez [Fri, 20 Apr 2012 14:56:19 +0000 (16:56 +0200)]
clover: Import OpenCL state tracker.

12 years agogallium/tests/trivial: Import compute unit tests.
Francisco Jerez [Tue, 20 Mar 2012 22:41:09 +0000 (23:41 +0100)]
gallium/tests/trivial: Import compute unit tests.

Add a test program that tries to exercise some of the language
features commonly used by compute programs at the Gallium API level:

   - Correctness of the values returned by the grid parameters.
   - Proper functioning of resource LOADs and STOREs.
   - Subroutine calls.
   - Argument passing to the compute parameter through the INPUT
     memory space.
   - Mapping of buffer objects to the GLOBAL memory space.
   - Proper functioning of the PRIVATE and LOCAL memory spaces.
   - Texture sampling and constant buffers.
   - Support for multiple kernels in the same program.
   - Indirect resource indexing.
   - Formatted resource loads and stores (i.e. with channel conversion
     and scaling) using several different formats.
   - Proper functioning of work-group barriers.
   - Atomicity and semantics of the atomic opcodes.

As of now all of them seem to pass on my nvA8.

12 years agogallium/gbm: Switch to auxiliary/pipe-loader.
Francisco Jerez [Fri, 20 Apr 2012 14:31:23 +0000 (16:31 +0200)]
gallium/gbm: Switch to auxiliary/pipe-loader.

Reviewed-by: Jakob Bornecrantz <jakob@vmware.com>
12 years agogallium/tests/trivial: Switch to the pipe loader.
Francisco Jerez [Wed, 25 Apr 2012 20:16:26 +0000 (22:16 +0200)]
gallium/tests/trivial: Switch to the pipe loader.

It simplifies things slightly, and besides, it makes possible to
execute the trivial tests on a hardware device instead of being
limited to software rendering.

Reviewed-by: Jakob Bornecrantz <jakob@vmware.com>
12 years agogallium: Add "pipe-loader" target.
Francisco Jerez [Fri, 25 Nov 2011 13:26:00 +0000 (14:26 +0100)]
gallium: Add "pipe-loader" target.

This target generates pipe driver modules intended to be consumed by
auxiliary/pipe-loader.  Most of it was taken from the "gbm" target --
the duplicated code will be replaced with references to this target in
a future commit.

Reviewed-by: Jakob Bornecrantz <jakob@vmware.com>
12 years agogallium: Add pipe loader for device enumeration and driver multiplexing.
Francisco Jerez [Wed, 25 Apr 2012 20:16:00 +0000 (22:16 +0200)]
gallium: Add pipe loader for device enumeration and driver multiplexing.

The goal is to have a uniform interface to create winsys and
pipe_screen instances for any driver, exposing the device enumeration
capabilities that might be supported by the operating system (for now
there's a "drm" back-end using udev and a "sw" back-end that always
returns the same built-in devices).

The typical use case of this library will be:
>
> struct pipe_loader_device devs[n];
> struct pipe_screen *screen;
>
> pipe_loader_probe(&devs, n);
>[pick some device from the array...]
>
> screen = pipe_loader_create_screen(dev, library_search_path);
>[do something with screen...]
>
> screen->destroy(screen);
> pipe_loader_release(&devs, N);
>

A part of the code was taken from targets/gbm/pipe_loader.c, which
will be removed and replaced with calls into this library by a future
commit.

12 years agogallium/tgsi/text: Replace open-coded integer parsing with parse_int().
Francisco Jerez [Tue, 20 Mar 2012 21:46:11 +0000 (22:46 +0100)]
gallium/tgsi/text: Replace open-coded integer parsing with parse_int().

12 years agogallium/tgsi/text: Parse immediates of non-float data types.
Francisco Jerez [Tue, 20 Mar 2012 21:39:29 +0000 (22:39 +0100)]
gallium/tgsi/text: Parse immediates of non-float data types.

12 years agogallium/tgsi: Fix tgsi_build_full_immediate() for non-float data types.
Francisco Jerez [Tue, 20 Mar 2012 20:29:36 +0000 (21:29 +0100)]
gallium/tgsi: Fix tgsi_build_full_immediate() for non-float data types.

12 years agogallium/tgsi/text: Make label parsing optional for branch instructions.
Francisco Jerez [Mon, 26 Mar 2012 15:56:29 +0000 (17:56 +0200)]
gallium/tgsi/text: Make label parsing optional for branch instructions.

Structured branch instructions like IF, ELSE, BGNLOOP, ENDLOOP no
longer require a label argument, make it optional for them.

12 years agost/mesa: Use local temporary registers.
Francisco Jerez [Thu, 8 Dec 2011 17:05:25 +0000 (18:05 +0100)]
st/mesa: Use local temporary registers.

Local makes more sense in most places because non-inline function
calls are unimplemented anyway.

12 years agogallium/tgsi/ureg: Support local temporary emission.
Francisco Jerez [Mon, 26 Mar 2012 15:55:30 +0000 (17:55 +0200)]
gallium/tgsi/ureg: Support local temporary emission.

12 years agogallium/tgsi/ureg: Lift the restriction on releasing temporaries over UREG_MAX_TEMP.
Francisco Jerez [Thu, 8 Dec 2011 17:00:17 +0000 (18:00 +0100)]
gallium/tgsi/ureg: Lift the restriction on releasing temporaries over UREG_MAX_TEMP.

12 years agogallium/util: Define util_strchrnul.
Francisco Jerez [Fri, 25 Nov 2011 13:37:07 +0000 (14:37 +0100)]
gallium/util: Define util_strchrnul.

Reviewed-by: Jakob Bornecrantz <jakob@vmware.com>
12 years agogallium/compute: Drop TGSI dependency.
Francisco Jerez [Sun, 18 Mar 2012 22:59:33 +0000 (23:59 +0100)]
gallium/compute: Drop TGSI dependency.

Add a shader cap for specifying the preferred shader representation.
Right now the only supported value is TGSI, other enum values will be
added as they are needed.

This is mainly to accommodate AMD's LLVM compiler back-end by letting
it bypass the TGSI representation for compute programs.  Other drivers
will keep using the common TGSI instruction set.

Reviewed-by: Tom Stellard <thomas.stellard@amd.com>