mesa.git
12 years agonouveau: hook up video decoding with nouveau_context
Christoph Bumiller [Thu, 21 Jul 2011 08:39:41 +0000 (10:39 +0200)]
nouveau: hook up video decoding with nouveau_context

This doesn't include nvfx since its context struct is not derived
from common nouveau_context (yet).

12 years agoglsl: Add ir_function_detect_recursion.cpp to SConscript.
Vinson Lee [Thu, 21 Jul 2011 03:16:27 +0000 (20:16 -0700)]
glsl: Add ir_function_detect_recursion.cpp to SConscript.

12 years agoglsl: Reject shaders that contain static recursion
Ian Romanick [Mon, 11 Jul 2011 17:46:01 +0000 (10:46 -0700)]
glsl: Reject shaders that contain static recursion

The GLSL 1.20 and later specs say:

    "Recursion is not allowed, not even statically. Static recursion is
    present if the static function call graph of the program contains
    cycles."

Recursion is detected and rejected both a compile-time and at
link-time.  The complie-time check happens to detect some cases that
may be removed by various optimization passes.  The spec doesn't seem
to allow this, but other vendors (e.g., NVIDIA) appear to only check
at link-time after all optimizations.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=33885
Reviewed-by: Paul Berry <stereotype441@gmail.com>
Reviewed-by: Eric Anholt <eric@anholt.net>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
12 years agoglsl: Make prototype_string publicly available
Ian Romanick [Fri, 8 Jul 2011 17:34:38 +0000 (10:34 -0700)]
glsl: Make prototype_string publicly available

Also clarify the documentation for one of the parameters.

Reviewed-by: Paul Berry <stereotype441@gmail.com>
Reviewed-by: Eric Anholt <eric@anholt.net>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
12 years agog3dvl: remove unused vertex shader inputs
Marek Olšák [Fri, 15 Jul 2011 18:16:20 +0000 (20:16 +0200)]
g3dvl: remove unused vertex shader inputs

See also comments in the code.

12 years agoi965: Apply a homebrew workaround for GPU hang in OGLC api-texcoord.
Eric Anholt [Tue, 19 Jul 2011 22:06:15 +0000 (15:06 -0700)]
i965: Apply a homebrew workaround for GPU hang in OGLC api-texcoord.

The behavior of flushes in the hardware is a maze of twisty passages,
and strangely the VS constants appear to be loaded during a pipeline
flush instead of at the time of the packet emit according to the
simulator.  On moving the STATE_BASE_ADDRESS packet to where it really
needed to live (in order for data loads by other packets to be
correct), we sometimes no longer got a flush between those packets
where we apparently needed it.  This replicates the flushes implied by
a STATE_BASE_ADDRESS update, fixing the GPU hangs in OGLC and the
"engine" demo.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=36821
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=39257
Tested-by: Keith Packard <keithp@keithp.com> (bzflag and etracer fixed)
Acked-by: Kenneth Graunke <kenneth@whitecape.org>
12 years agoi965: Enable the PIPE_CONTROL workaround workaround out of paranoia.
Eric Anholt [Tue, 19 Jul 2011 00:17:03 +0000 (17:17 -0700)]
i965: Enable the PIPE_CONTROL workaround workaround out of paranoia.

There's scary stuff going on in PIPE_CONTROL internals, and if the
BSpec says to do this to make PIPE_CONTROL work, I'll go ahead and do
it because we'll probably never be able to debug it after the fact.

v2: Use stall at scoreboard instead of depth stall, as noted by Ken.

12 years agoi965: Avoid kernel BUG_ON if we happen to wait on the pipe_control w/a BO.
Eric Anholt [Mon, 18 Jul 2011 22:25:10 +0000 (15:25 -0700)]
i965: Avoid kernel BUG_ON if we happen to wait on the pipe_control w/a BO.

For this and occlusion queries, we're trying to avoid setting
I915_GEM_DOMAIN_RENDER for the write domain, because the data written
is definitely not going through the render cache, but we do need to
tell the kernel that the object has been written.  However, with using
I915_GEM_DOMAIN_GTT, the kernel on retiring the batchbuffer sees that
the w/a BO has a write domain of GTT, and puts it on the flushing
list.  If something tries to wait for that BO to finish rendering
(such as the AUB dumper reading the contents of BOs), we get into
wait_request (since obj->active) but with a 0 seqno (since the object
is on the flushing list, not actually on a ringbuffer), and BUG_ONs.

To avoid the kernel bug (which I'm hoping to delete soon anyway), just
use I915_GEM_DOMAIN_INSTRUCTION like occlusion queries do.  This
doesn't result in more flushing, because we invalidate INSTRUCTION on
every batchbuffer now that we're state streaming, anyway.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Tested-by: Kenneth Graunke <kenneth@whitecape.org>
12 years agointel: Use the GLSL-based meta clear when available.
Eric Anholt [Sun, 17 Jul 2011 21:55:10 +0000 (14:55 -0700)]
intel: Use the GLSL-based meta clear when available.

Improves firefox-talos-gfx performance under GL when 3D clears are
enabled:
[  0]       gl-before     firefox-talos-gfx   20.193   20.251   0.27%    3/3
[  0]       gl-after      firefox-talos-gfx   18.013   18.040   0.19%    3/3

12 years agometa: Add a GLSL-based _mesa_meta_Clear() variant.
Eric Anholt [Sun, 17 Jul 2011 21:53:16 +0000 (14:53 -0700)]
meta: Add a GLSL-based _mesa_meta_Clear() variant.

This cuts out a large portion of the overhead of glClear() from
resetting the texenv state and recomputing the fixed function
programs.  It also means less use of fixed function internally in our
GLES2 drivers, which is rather bogus.

Reviewed-by: Brian Paul <brianp@vmware.com>
12 years agog3dvl: Preserve previously rendered components for MC output.
Younes Manton [Wed, 20 Jul 2011 17:49:56 +0000 (13:49 -0400)]
g3dvl: Preserve previously rendered components for MC output.

Fixes xvmc-softpipe MC entrypoint, amongst others.

12 years agog3dvl: Init/clean pipe fully when a shader-based decoder isn't used.
Younes Manton [Wed, 20 Jul 2011 17:43:24 +0000 (13:43 -0400)]
g3dvl: Init/clean pipe fully when a shader-based decoder isn't used.

Fixes VDPAU CSC-only mode.

12 years agoglsl: Avoid massive ralloc_strndup overhead in S-Expression parsing.
Kenneth Graunke [Fri, 15 Jul 2011 09:27:49 +0000 (02:27 -0700)]
glsl: Avoid massive ralloc_strndup overhead in S-Expression parsing.

When parsing S-Expressions, we need to store nul-terminated strings for
Symbol nodes.  Prior to this patch, we called ralloc_strndup each time
we constructed a new s_symbol.  It turns out that this is obscenely
expensive.

Instead, copy the whole buffer before parsing and overwrite it to
contain \0 bytes at the appropriate locations.  Since atoms are
separated by whitespace, (), or ;, we can safely overwrite the character
after a Symbol.  While much of the buffer may be unused, copying the
whole buffer is simple and guaranteed to provide enough space.

Prior to this, running piglit-run.py -t glsl tests/quick.tests with GLSL
1.30 enabled took just over 10 minutes on my machine.  Now it takes 5.

NOTE: This is a candidate for stable release branches (because it will
      make running comparison tests so much less irritating.)

Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
12 years agomesa: remove depend files from tarballs
Brian Paul [Wed, 20 Jul 2011 03:11:53 +0000 (21:11 -0600)]
mesa: remove depend files from tarballs

12 years agoglsl: silence warning in linker.cpp
Brian Paul [Wed, 20 Jul 2011 03:10:25 +0000 (21:10 -0600)]
glsl: silence warning in linker.cpp

12 years agoMake it possible to use gbm with c++
Jørgen Lind [Tue, 19 Jul 2011 20:52:20 +0000 (22:52 +0200)]
Make it possible to use gbm with c++

NOTE: This is a candiate for 7.11

12 years agost/mesa: fix the texture format in st_context_teximage
Fredrik Höglund [Tue, 19 Jul 2011 21:25:32 +0000 (15:25 -0600)]
st/mesa: fix the texture format in st_context_teximage

Commit 1a339b6c71ebab6e1a64f05b2e133022d3bbcd15 made
st_ChooseTextureFormat map GL_RGBA with type GL_UNSIGNED_BYTE
to PIPE_FORMAT_A8B8G8R8_UNORM.

The image format for ARGB pixmaps is PIPE_FORMAT_B8G8R8A8_UNORM
however. This mismatch caused the texture to be recreated in
st_finalize_texture.

NOTE: This is a candidate for the 7.11 branch.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=39209
Signed-off-by: Fredrik Höglund <fredrik@kde.org>
Reviewed-by: Stéphane Marchesin <marcheu@chromium.org>
Signed-off-by: Brian Paul <brianp@vmware.com>
12 years agomesa: update, shorten some comments in dd.h
Brian Paul [Tue, 19 Jul 2011 21:24:47 +0000 (15:24 -0600)]
mesa: update, shorten some comments in dd.h

12 years agoglx: Avoid calling __glXInitialize() in driReleaseDrawables().
Henri Verbeet [Sun, 17 Jul 2011 22:42:27 +0000 (00:42 +0200)]
glx: Avoid calling __glXInitialize() in driReleaseDrawables().

This fixes a regression introduced by commit
a26121f37530619610a78a5fbe5ef87e44047fda (fd.o bug #39219).

Since the __glXInitialize() call should be unnecessary anyway, this is
probably a nicer fix for the original problem too.

NOTE: This is a candidate for the 7.10 and 7.11 branches.

Signed-off-by: Henri Verbeet <hverbeet@gmail.com>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Tested-by: padfoot@exemail.com.au
12 years agointel: Fix stencil buffer to be W tiled
Chad Versace [Mon, 18 Jul 2011 07:37:45 +0000 (00:37 -0700)]
intel: Fix stencil buffer to be W tiled

Until now, the stencil buffer was allocated as a Y tiled buffer, because
in several locations the PRM states that it is. However, it is actually
W tiled. From the PRM, 2011 Sandy Bridge, Volume 1, Part 2, Section
4.5.2.1 W-Major Format:
    W-Major Tile Format is used for separate stencil.

The GTT is incapable of W fencing, so we allocate the stencil buffer with
I915_TILING_NONE and decode the tile's layout in software.

This fix touches the following portions of code:
    - In intel_allocate_renderbuffer_storage(), allocate the stencil
      buffer with I915_TILING_NONE.
    - In intel_verify_dri2_has_hiz(), verify that the stencil buffer is
      not tiled.
    - In the stencil buffer's span functions, the tile's layout must be
      decoded in software.

This commit mutually depends on the xf86-video-intel commit
    dri: Do not tile stencil buffer
    Author: Chad Versace <chad@chad-versace.us>
    Date:   Mon Jul 18 00:38:00 2011 -0700

On Gen6 with separate stencil enabled, fixes the following Piglit tests:
    bugs/fdo23670-drawpix_stencil
    general/stencil-drawpixels
    spec/EXT_framebuffer_object/fbo-stencil-GL_STENCIL_INDEX16-copypixels
    spec/EXT_framebuffer_object/fbo-stencil-GL_STENCIL_INDEX16-drawpixels
    spec/EXT_framebuffer_object/fbo-stencil-GL_STENCIL_INDEX16-readpixels
    spec/EXT_framebuffer_object/fbo-stencil-GL_STENCIL_INDEX1-copypixels
    spec/EXT_framebuffer_object/fbo-stencil-GL_STENCIL_INDEX1-drawpixels
    spec/EXT_framebuffer_object/fbo-stencil-GL_STENCIL_INDEX1-readpixels
    spec/EXT_framebuffer_object/fbo-stencil-GL_STENCIL_INDEX4-copypixels
    spec/EXT_framebuffer_object/fbo-stencil-GL_STENCIL_INDEX4-drawpixels
    spec/EXT_framebuffer_object/fbo-stencil-GL_STENCIL_INDEX4-readpixels
    spec/EXT_framebuffer_object/fbo-stencil-GL_STENCIL_INDEX8-copypixels
    spec/EXT_framebuffer_object/fbo-stencil-GL_STENCIL_INDEX8-drawpixels
    spec/EXT_framebuffer_object/fbo-stencil-GL_STENCIL_INDEX8-readpixels
    spec/EXT_packed_depth_stencil/fbo-stencil-GL_DEPTH24_STENCIL8-copypixels
    spec/EXT_packed_depth_stencil/fbo-stencil-GL_DEPTH24_STENCIL8-readpixels
    spec/EXT_packed_depth_stencil/readpixels-24_8

Note: This is a candidate for the 7.11 branch.

Signed-off-by: Chad Versace <chad@chad-versace.us>
Reviewed-by: Eric Anholt <eric@anholt.net>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Acked-by: Kenneth Graunke <kenneth@whitecape.org>
12 years agoi965: Fix regression in 29a911c50e4443dfebef0a2e32c39b64992fa3cc.
Eric Anholt [Tue, 19 Jul 2011 19:20:14 +0000 (12:20 -0700)]
i965: Fix regression in 29a911c50e4443dfebef0a2e32c39b64992fa3cc.

The previous define was the full 32-bit header, while the new define
was just the top 16 bits.

12 years agollvmpipe: include LLVM version number in name string
Brian Paul [Tue, 19 Jul 2011 14:42:46 +0000 (08:42 -0600)]
llvmpipe: include LLVM version number in name string

12 years agollvmpipe: fix build with LLVM 3.0svn
Tobias Droste [Sat, 16 Jul 2011 17:40:47 +0000 (19:40 +0200)]
llvmpipe: fix build with LLVM 3.0svn

LLVM 3.0svn introduced a new type system. It defines a new way to create
named structs and removes the (now not needed) LLVMInvalidateStructLayout
function.  See revision 134829 of LLVM.

Signed-off-by: Tobias Droste <tdroste@gmx.de>
Signed-off-by: Brian Paul <brianp@vmware.com>
12 years agoconfigure.ac: Check for the respective libdrm_* when building gallium drivers
Emil Velikov [Thu, 14 Jul 2011 22:07:19 +0000 (23:07 +0100)]
configure.ac: Check for the respective libdrm_* when building gallium drivers

In a rare case of building gallium only, we need to
check if the required packages are available

libdrm_[intel|nouveau] - gallium[i915 i965|nouveau]

v2: r300g and r600g do not need libdrm_radeon

Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
Signed-off-by: Marek Olšák <maraeo@gmail.com>
12 years agoxvmc-softpipe: remove LLVM_LIBS
Marek Olšák [Mon, 18 Jul 2011 21:20:53 +0000 (23:20 +0200)]
xvmc-softpipe: remove LLVM_LIBS

this is added conditionally in Makefile.xmvc

Spotted by Chris Rankin.

12 years agoi965: Rename CMD_VF_STATISTICS_(965|GM45) to include "3DSTATE".
Kenneth Graunke [Wed, 13 Jul 2011 09:32:43 +0000 (02:32 -0700)]
i965: Rename CMD_VF_STATISTICS_(965|GM45) to include "3DSTATE".

Including the full "3DSTATE_VF_STATISTICS" should make it easier to
cross-reference the code and documentation.

Also, move the 965/GM45 suffix to the beginning for consistency with
newer #defines.

Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
12 years agoi965: Rename CMD_VERTEX_(BUFFER|ELEMENT) to 3DSTATE_VERTEX_...S.
Kenneth Graunke [Wed, 13 Jul 2011 06:08:01 +0000 (23:08 -0700)]
i965: Rename CMD_VERTEX_(BUFFER|ELEMENT) to 3DSTATE_VERTEX_...S.

This makes our code use the same names as the documentation.

Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
12 years agoi965: Rename 3DSTATE_DRAWRECT_INFO_I965 to 3DSTATE_DRAWING_RECTANGLE.
Kenneth Graunke [Wed, 13 Jul 2011 09:23:30 +0000 (02:23 -0700)]
i965: Rename 3DSTATE_DRAWRECT_INFO_I965 to 3DSTATE_DRAWING_RECTANGLE.

The documentation uses 3DSTATE_DRAWING_RECTANGLE, and we already had it
defined in brw_defines.h; we were simply using an old #define from
intel_reg.h.

Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
12 years agoi915: Simplify intel_wpos_* with a helper function.
Eric Anholt [Wed, 13 Jul 2011 17:57:58 +0000 (10:57 -0700)]
i915: Simplify intel_wpos_* with a helper function.

12 years agoi915: Include gl_FragCoord.w data, not just xyz.
Eric Anholt [Wed, 13 Jul 2011 17:56:37 +0000 (10:56 -0700)]
i915: Include gl_FragCoord.w data, not just xyz.

Fixes piglit fragcoord_w test.
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=34323

12 years agoi915: Add support for HW rendering with no color draw buffer.
Eric Anholt [Tue, 12 Jul 2011 17:20:53 +0000 (10:20 -0700)]
i915: Add support for HW rendering with no color draw buffer.

This is useful for shadow map generation.  Tested with glsl-bug-22603,
which rendered the depth textures with fallbacks before.

Acked-by: Chad Versace <chad@chad-versace.us>
12 years agoi915: Fix incorrect depth scaling when enabling/disabling depth buffers.
Eric Anholt [Tue, 12 Jul 2011 20:47:21 +0000 (13:47 -0700)]
i915: Fix incorrect depth scaling when enabling/disabling depth buffers.

We were updating our new viewport using the old buffers' _WindowMap.m.
We can do less math and avoid using that deprecated matrix by just
folding the viewport calculation right in to the driver.

Fixes piglit fbo-depthtex.

12 years agoi915: Make stencil test for no-stencil handling match depth test.
Eric Anholt [Tue, 12 Jul 2011 17:57:51 +0000 (10:57 -0700)]
i915: Make stencil test for no-stencil handling match depth test.

i915_update_draw_buffers() already handles the fallback bit for
missing stencil region, so here we just need to handle whether the GL
thinks we have stencil data or not (and disable the test if so).

12 years agoi915: Disable the depth test whenever we don't have a depth buffer.
Eric Anholt [Tue, 12 Jul 2011 17:48:40 +0000 (10:48 -0700)]
i915: Disable the depth test whenever we don't have a depth buffer.

We were disabling it once at the moment we changed draw buffers, but
later enabling of depth test could turn it back on.  Fixes
fbo-nodepth-test.

Note that ctx->DrawBuffer has to be checked because during context
create we get called while it's still unset.  However, we know we'll
get an intel_draw_buffer() after that, so it's safe to make a silly
choice at this point.

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

12 years agoi915: Remove i965 paths from i915_update_drawbuffer() and i830's too.
Eric Anholt [Tue, 12 Jul 2011 17:03:41 +0000 (10:03 -0700)]
i915: Remove i965 paths from i915_update_drawbuffer() and i830's too.

Reviewed-by: Chad Versace <chad@chad-versace.us>
12 years agoi965: Remove i915 paths from brw_update_draw_buffers().
Eric Anholt [Tue, 12 Jul 2011 16:52:04 +0000 (09:52 -0700)]
i965: Remove i915 paths from brw_update_draw_buffers().

Reviewed-by: Chad Versace <chad@chad-versace.us>
12 years agoi965: Remove unused region calculations in brw_update_draw_buffer().
Eric Anholt [Tue, 12 Jul 2011 16:49:23 +0000 (09:49 -0700)]
i965: Remove unused region calculations in brw_update_draw_buffer().

Reviewed-by: Chad Versace <chad@chad-versace.us>
12 years agoi965: Remove empty brw_set_draw_region.
Eric Anholt [Tue, 12 Jul 2011 16:48:08 +0000 (09:48 -0700)]
i965: Remove empty brw_set_draw_region.

Reviewed-by: Chad Versace <chad@chad-versace.us>
12 years agoi965: Remove FALLBACK() from brw_update_draw_region().
Eric Anholt [Tue, 12 Jul 2011 16:47:38 +0000 (09:47 -0700)]
i965: Remove FALLBACK() from brw_update_draw_region().

The 965 driver doesn't use these for deciding on fallbacks.

Reviewed-by: Chad Versace <chad@chad-versace.us>
12 years agointel: Move intel_draw_buffers() code into each driver.
Eric Anholt [Tue, 12 Jul 2011 16:43:22 +0000 (09:43 -0700)]
intel: Move intel_draw_buffers() code into each driver.

The illusion of shared code here wasn't fooling anybody.  It was
tempting to keep i830 and i915 still shared, but I think I actually
want to make them diverge shortly.

Reviewed-by: Chad Versace <chad@chad-versace.us>
12 years agointel: Clarify the depthRb == stencilRb logic.
Eric Anholt [Tue, 12 Jul 2011 17:01:32 +0000 (10:01 -0700)]
intel: Clarify the depthRb == stencilRb logic.

Reviewed-by: Chad Versace <chad@chad-versace.us>
12 years agointel: Use the post-execution batchbuffer contents for dumping.
Eric Anholt [Tue, 12 Jul 2011 19:19:21 +0000 (12:19 -0700)]
intel: Use the post-execution batchbuffer contents for dumping.

We were missing out on all the relocation changes by dumping what we
subdata()ed in instead of what's there after the kernel finished with
it.

12 years agoglsl: Ensure that sampler declarations are always uniform or "in" parameters.
Paul Berry [Tue, 12 Jul 2011 19:03:02 +0000 (12:03 -0700)]
glsl: Ensure that sampler declarations are always uniform or "in" parameters.

This brings us into compliance with page 17 (page 22 of the PDF) of
the GLSL 1.20 spec:

    "[Sampler types] can only be declared as function parameters or
    uniform variables (see Section 4.3.5 "Uniform"). ... [Samplers]
    cannot be used as out or inout function parameters."

The spec isn't explicit about whether this rule applies to
structs/arrays containing shaders, but the intent seems to be to
ensure that it can always be determined at compile time which sampler
is being used in each texture lookup.  So to avoid creating a
loophole, the rule needs to apply to structs/arrays containing shaders
as well.

Fixes piglit tests spec/glsl-1.10/compiler/samplers/*.frag, and fixes
bug 38987.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=38987
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
12 years agoglsl: Move type_contains_sampler() into glsl_type for later reuse.
Paul Berry [Mon, 11 Jul 2011 23:44:13 +0000 (16:44 -0700)]
glsl: Move type_contains_sampler() into glsl_type for later reuse.

The new location, as a member function of glsl_type, is more
consistent with queries like is_sampler(), is_boolean(), is_float(),
etc.  Placing the function inside glsl_type also makes it available to
any code that uses glsl_types.

12 years agor600g: fix corner case checks for the queries
Vadim Girlin [Sat, 16 Jul 2011 00:58:58 +0000 (04:58 +0400)]
r600g: fix corner case checks for the queries

12 years agor600g: Get rid of leftover PB_USAGE_* flags.
Henri Verbeet [Sun, 17 Jul 2011 22:42:27 +0000 (00:42 +0200)]
r600g: Get rid of leftover PB_USAGE_* flags.

These happen to work because their values are the same as the equivalent
PIPE_TRANSFER_* flags, but it's still misleading.

Signed-off-by: Henri Verbeet <hverbeet@gmail.com>
12 years agolinker: Only over-ride built-ins when a prototype has been seen
Ian Romanick [Wed, 29 Jun 2011 21:52:10 +0000 (14:52 -0700)]
linker: Only over-ride built-ins when a prototype has been seen

The GLSL spec says:

    "If a built-in function is redeclared in a shader (i.e., a
    prototype is visible) before a call to it, then the linker will
    only attempt to resolve that call within the set of shaders that
    are linked with it."

This patch enforces this behavior.  When a function call is processed
a flag is set in the ir_call to indicate whether the previously seen
prototype is the built-in or not.  At link time a call will only bind
to an instance of a function that matches the "want built-in" setting
in the ir_call.

This has the odd side effect that first call to abs() in the shader
below will call the built-in and the second will not:

float foo(float x) { return abs(x); }
float abs(float x) { return -x; }
float bar(float x) { return abs(x); }

This seems insane, but it matches what the spec says.

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

12 years agodarwin: Include glxhash.c in libGL on darwin
Jeremy Huddleston [Sun, 17 Jul 2011 05:02:55 +0000 (22:02 -0700)]
darwin: Include glxhash.c in libGL on darwin

Fixes a build regression introduced by 4df137691ee29bb812347fa2c5f19095243ede22

Signed-off-by: Jeremy Huddleston <jeremyhu@apple.com>
12 years agoxvmc-nouveau: Resolve build
Emil Velikov [Sat, 16 Jul 2011 00:28:15 +0000 (01:28 +0100)]
xvmc-nouveau: Resolve build

The following resolves the build issues and missing symbols
Add "xvmc-nouveau/target.c" - missing symbol "driver_description"
Add "drivers/nvc0/libnvc0.a" - missing symbol "nvc0_screen_create"
Remove "drivers/softpipe/libsoftpipe.a" - unnessecary dependency
resolves build (when building without swrast)
Add "drivers/trace/libtrace.a" in Makefile

Note: With/without those patches xvmc-nouveau still segfaults
Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
12 years agonv50: fix bogus error message about 3d surfaces
Christoph Bumiller [Sat, 16 Jul 2011 11:00:52 +0000 (13:00 +0200)]
nv50: fix bogus error message about 3d surfaces

12 years agogallivm: Rename createAsmInfo to createMCAsmInfo with llvm-3.0.
Vinson Lee [Sat, 16 Jul 2011 07:16:25 +0000 (00:16 -0700)]
gallivm: Rename createAsmInfo to createMCAsmInfo with llvm-3.0.

llvm-3.0svn r135219 renamed createAsmInfo to createMCAsmInfo in
include/llvm/Target/TargetRegistry.h.

12 years agoxmlconfig: remove an unused-but-set variable
Marek Olšák [Fri, 15 Jul 2011 19:09:02 +0000 (21:09 +0200)]
xmlconfig: remove an unused-but-set variable

I hate gcc 4.6 already.

12 years agor600g: print to stderr that a CS has been rejected by the kernel
Marek Olšák [Fri, 15 Jul 2011 19:02:22 +0000 (21:02 +0200)]
r600g: print to stderr that a CS has been rejected by the kernel

Just fixing the warning that r is unused.

12 years agoprog_optimize: fix a warning that a variable may be uninitialized
Marek Olšák [Fri, 15 Jul 2011 18:57:39 +0000 (20:57 +0200)]
prog_optimize: fix a warning that a variable may be uninitialized

12 years agor300/compiler: remove an unused-but-set variable and simplify the code
Marek Olšák [Fri, 15 Jul 2011 18:52:16 +0000 (20:52 +0200)]
r300/compiler: remove an unused-but-set variable and simplify the code

12 years agor300/compiler: fix a warning that a variable may be uninitialized
Marek Olšák [Fri, 15 Jul 2011 18:25:38 +0000 (20:25 +0200)]
r300/compiler: fix a warning that a variable may be uninitialized

12 years agost/mesa: remove unused-but-set variables in st_program.c
Marek Olšák [Fri, 15 Jul 2011 18:12:10 +0000 (20:12 +0200)]
st/mesa: remove unused-but-set variables in st_program.c

12 years agoswrast: remove an unused-but-set variable
Marek Olšák [Fri, 15 Jul 2011 18:06:01 +0000 (20:06 +0200)]
swrast: remove an unused-but-set variable

12 years agomesa: fix unused-but-set-variable warnings in dlist.c
Marek Olšák [Fri, 15 Jul 2011 18:04:46 +0000 (20:04 +0200)]
mesa: fix unused-but-set-variable warnings in dlist.c

12 years agor600g: fix queries and predication
Vadim Girlin [Fri, 15 Jul 2011 03:22:20 +0000 (07:22 +0400)]
r600g: fix queries and predication

Use all zpass data for predication instead of the last block only.
Use query buffer as a ring instead of reusing the same area
for each new BeginQuery. All query buffer offsets are in bytes
to simplify offsets math.

12 years agodrisw: Fix 24bpp software rendering, take 2
Marc Pignat [Tue, 28 Jun 2011 13:21:58 +0000 (15:21 +0200)]
drisw: Fix 24bpp software rendering, take 2

This patch add the support for 24bpp in the dri/swrast implementation.
See http://bugs.freedesktop.org/show_bug.cgi?id=23525

Signed-off-by: Marc Pignat <marc at pignat.org>
Signed-off-by: Brian Paul <brianp@vmware.com>
12 years agog3dvl: no need for flushing inside the compositor any more
Christian König [Fri, 15 Jul 2011 15:54:06 +0000 (17:54 +0200)]
g3dvl: no need for flushing inside the compositor any more

Move that also inside the state tracker where needed.

12 years agog3dvl: correctly distinct dst area and clip area in the compositor
Christian König [Fri, 15 Jul 2011 15:20:55 +0000 (17:20 +0200)]
g3dvl: correctly distinct dst area and clip area in the compositor

Otherwise xine won't scale correctly.

12 years agor600c/g: add new NI pci ids
Alex Deucher [Fri, 15 Jul 2011 14:55:02 +0000 (10:55 -0400)]
r600c/g: add new NI pci ids

Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
12 years agog3dvl: link r300 and r600 targets width libdrm instead of libdrm_radeon
Christian König [Fri, 15 Jul 2011 08:45:31 +0000 (10:45 +0200)]
g3dvl: link r300 and r600 targets width libdrm instead of libdrm_radeon

12 years agogallium/targets: link vdpau, va, and xvmc with LLVM libs when requested
Marek Olšák [Fri, 15 Jul 2011 01:24:40 +0000 (03:24 +0200)]
gallium/targets: link vdpau, va, and xvmc with LLVM libs when requested

Signed-off-by: Christian König <deathsimple@vodafone.de>
12 years agog3dvl: change picture parameter of decode_bitstream to general version
Christian König [Thu, 14 Jul 2011 17:37:02 +0000 (19:37 +0200)]
g3dvl: change picture parameter of decode_bitstream to general version

Using pipe_mpeg12_picture_desc was unintentional here.

12 years agog3dvl: Build softpipe when needed.
Younes Manton [Fri, 15 Jul 2011 05:30:21 +0000 (01:30 -0400)]
g3dvl: Build softpipe when needed.

12 years agog3dvl: Build the right winsys dependencies when needed.
Younes Manton [Thu, 14 Jul 2011 16:22:20 +0000 (12:22 -0400)]
g3dvl: Build the right winsys dependencies when needed.

12 years agomake: Fix program/lex.yy.c & friends generation.
José Fonseca [Thu, 14 Jul 2011 16:33:30 +0000 (17:33 +0100)]
make: Fix program/lex.yy.c & friends generation.

Not sure how this ever worked before, given that the Makefile is in
src/mesa, not src/mesa/program.

12 years agoSquashed commit of the following:
José Fonseca [Thu, 14 Jul 2011 16:28:52 +0000 (17:28 +0100)]
Squashed commit of the following:

commit 1856230d9fa61710cce3e152b8d88b1269611a73
Author: José Fonseca <jose.r.fonseca@gmail.com>
Date:   Tue Jul 12 23:41:27 2011 +0100

    make: Use better var names on packaging.

commit d1ae72d0bd14e820ecfe9f8f27b316f9566ceb0c
Author: José Fonseca <jose.r.fonseca@gmail.com>
Date:   Tue Jul 12 23:38:21 2011 +0100

    make: Apply several of Dan Nicholson's suggestions.

commit f27cf8743ac9cbf4c0ad66aff0cd3f97efde97e4
Author: José Fonseca <jose.r.fonseca@gmail.com>
Date:   Sat Jul 9 14:18:20 2011 +0100

    make: Put back the tar.bz2 creation rule.

    Removed by accident.

commit 34983337f9d7db984e9f0117808274106d262110
Author: José Fonseca <jose.r.fonseca@gmail.com>
Date:   Sat Jul 9 11:59:29 2011 +0100

    make: Determine tarballs contents via git ls-files.

    The wildcards were a mess:
    - lots of files for non Linux platforms missing
    - several files listed and archived twice

    Using git-ls-files ensures things are not loss when making the tarballs.

commit 34a28ccbf459ed5710aafba5e7149e8291cb808c
Author: José Fonseca <jose.r.fonseca@gmail.com>
Date:   Sat Jul 9 11:07:14 2011 +0100

    glut: Remove GLUT source.

    Most distros ship freeglut, and most people don't care one vs the other,
    and it hasn't been really maintained.

    So it is better to have Mesa GLUT be revisioned and built separately
    from Mesa.

commit 5c26a2c3c0c7e95ef853e19d12d75c4f80137e7d
Author: José Fonseca <jose.r.fonseca@gmail.com>
Date:   Sat Jul 9 10:31:02 2011 +0100

    Ignore the tarballs.

commit 26edecac589819f0d0efe2165ab748dbc4e53394
Author: José Fonseca <jose.r.fonseca@gmail.com>
Date:   Sat Jul 9 10:30:24 2011 +0100

    make: Create the Mesa-xxx-devel symlink automatically.

    Also actually remote the intermediate uncompressed tarballs.

12 years agoconfigure: allow C{,XX}FLAGS override
Marcin Baczyński [Wed, 13 Jul 2011 19:26:49 +0000 (21:26 +0200)]
configure: allow C{,XX}FLAGS override

NOTE: This is a candidate for the 7.11 branch.

Signed-off-by: Brian Paul <brianp@vmware.com>
12 years agoconfigure: fix gcc version check
Marcin Baczyński [Wed, 13 Jul 2011 19:26:50 +0000 (21:26 +0200)]
configure: fix gcc version check

NOTE: This is a candidate for the 7.11 branch.

Signed-off-by: Brian Paul <brianp@vmware.com>
12 years agovbo: minor optimisation in vbo_exec_DrawRangeElements
Dave Airlie [Wed, 22 Jun 2011 03:09:12 +0000 (13:09 +1000)]
vbo: minor optimisation in vbo_exec_DrawRangeElements

this moves getting the context into the debug in this function,

just spotted it trawling callgrind traces for other things.

Signed-off-by: Dave Airlie <airlied@redhat.com>
12 years agogallium: don't use enum bitfields in p_video_state.h
Brian Paul [Thu, 14 Jul 2011 14:09:21 +0000 (08:09 -0600)]
gallium: don't use enum bitfields in p_video_state.h

Silences many warnings about "type of bit-field ‘field_select’ is a
GCC extension".

Since the field sizes were 8 and 16 bits, just use basic types.

12 years agogallium: put video-related enums in separate header
Brian Paul [Thu, 14 Jul 2011 14:09:21 +0000 (08:09 -0600)]
gallium: put video-related enums in separate header

The forward references to video enum types in p_context.h causes
a massive number of compiler warnings (ISO C forbids forward references
to ‘enum’ types).

By putting the new video enums in a separate header that can be included
by p_context.h and p_screen.h we can avoid this.

Acked-by Christian König <deathsimple@vodafone.de>

12 years agoi915g: move declaration before code
Brian Paul [Thu, 14 Jul 2011 14:09:21 +0000 (08:09 -0600)]
i915g: move declaration before code

12 years agomesa: use inline function wrapper for _mesa_reference_texobj()
Brian Paul [Thu, 14 Jul 2011 14:09:21 +0000 (08:09 -0600)]
mesa: use inline function wrapper for _mesa_reference_texobj()

12 years agomesa: use inline function wrapper for _mesa_reference_renderbuffer()
Brian Paul [Thu, 14 Jul 2011 14:09:21 +0000 (08:09 -0600)]
mesa: use inline function wrapper for _mesa_reference_renderbuffer()

12 years agomesa: use inline function wrapper for _mesa_reference_framebuffer()
Brian Paul [Thu, 14 Jul 2011 14:09:21 +0000 (08:09 -0600)]
mesa: use inline function wrapper for _mesa_reference_framebuffer()

12 years agomain: use inline function wrapper for _mesa_reference_buffer_object()
Brian Paul [Thu, 14 Jul 2011 14:09:21 +0000 (08:09 -0600)]
main: use inline function wrapper for _mesa_reference_buffer_object()

12 years agomesa: split _mesa_reference_program() into hot/cold paths.
Dave Airlie [Thu, 14 Jul 2011 14:09:21 +0000 (08:09 -0600)]
mesa: split _mesa_reference_program() into hot/cold paths.

inline the hotpath of the reference remaining the same. This shouldn't
penalise the slow path at all but improve the hot path so we don't have
to jump to the function.

It also moves some assert checks under an #ifndef NDEBUG.

Minor clean-ups added by Brian.

Signed-off-by: Dave Airlie <airlied@redhat.com>
Signed-off-by: Brian Paul <brianp@vmware.com>
12 years agog3dvl: check for existense of VA API header/libs
Christian König [Thu, 14 Jul 2011 12:09:25 +0000 (14:09 +0200)]
g3dvl: check for existense of VA API header/libs

Building the VA state tracker only works when the header/libs are available.
Also add a warning that the state tracker is currently undmaintained.

12 years agog3dvl: check for existense of VDPAU header/libs
Christian König [Thu, 14 Jul 2011 11:57:23 +0000 (13:57 +0200)]
g3dvl: check for existense of VDPAU header/libs

Building the VDPAU state tracker only works when the header/libs are available.

12 years agog3dvl: check for existense of XvMC header/libs
Christian König [Thu, 14 Jul 2011 10:42:17 +0000 (12:42 +0200)]
g3dvl: check for existense of XvMC header/libs

Building the XvMC state tracker only works when the header/libs are available.

12 years agonv50,nvc0: extensive surface format renaming to get consistency
Christoph Bumiller [Mon, 11 Jul 2011 09:33:11 +0000 (11:33 +0200)]
nv50,nvc0: extensive surface format renaming to get consistency

Now the component ordering is consistent and matches gallium again.

12 years agonv50,nvc0: add support for multi-sample resources
Christoph Bumiller [Mon, 11 Jul 2011 16:02:27 +0000 (18:02 +0200)]
nv50,nvc0: add support for multi-sample resources

12 years agonv50,nvc0: add correct storage type for Z32_FLOAT
Christoph Bumiller [Mon, 11 Jul 2011 20:49:57 +0000 (22:49 +0200)]
nv50,nvc0: add correct storage type for Z32_FLOAT

12 years agonv50,nvc0: unify nvc0_miptree and nv50_miptree structs
Christoph Bumiller [Thu, 14 Jul 2011 10:40:04 +0000 (12:40 +0200)]
nv50,nvc0: unify nvc0_miptree and nv50_miptree structs

Share some functions and restructure miptree creation a little.
Prepare for multi-sample resources.

12 years agonv50,nvc0: don't advertise unaligned texture format support
Christoph Bumiller [Mon, 11 Jul 2011 09:31:18 +0000 (11:31 +0200)]
nv50,nvc0: don't advertise unaligned texture format support

Because we don't support them.
For instance, R32G32B32 is not R32G32B32X32 as was assumed.

Add support for R8G8B8X8_UNORM instead of R8G8B8_UNORM surfaces.

12 years agog3dvl: Remove non-constant expression array initializers.
Vinson Lee [Thu, 14 Jul 2011 04:57:50 +0000 (21:57 -0700)]
g3dvl: Remove non-constant expression array initializers.

The array initializer must be a constant expression in MSVC.

12 years agoconfigure.ac: don't build gallium driver libs just to see if there are no errors
Marek Olšák [Mon, 27 Jun 2011 06:02:31 +0000 (08:02 +0200)]
configure.ac: don't build gallium driver libs just to see if there are no errors

I think the past are those times when the gallium interface was changed all
the time. Now it is not, so there is no reason to always compile the libs
if they are not needed.

12 years agogallium/targets: do not link every driver with libllvmpipe.a
Marek Olšák [Mon, 27 Jun 2011 06:25:09 +0000 (08:25 +0200)]
gallium/targets: do not link every driver with libllvmpipe.a

Only some targets need that, the others don't.

12 years agoRename swrastg_dri to swrast_dri
Marek Olšák [Mon, 27 Jun 2011 01:25:30 +0000 (03:25 +0200)]
Rename swrastg_dri to swrast_dri

I prefer it this way and it has been suggested earlier by others too.
Opinions?

12 years agosoftpipe: fix various warnings about int/float/double conversions, etc
Brian Paul [Thu, 14 Jul 2011 00:54:15 +0000 (18:54 -0600)]
softpipe: fix various warnings about int/float/double conversions, etc

12 years agog3dvl: Remove designated initializers.
Vinson Lee [Thu, 14 Jul 2011 00:00:26 +0000 (17:00 -0700)]
g3dvl: Remove designated initializers.

MSVC does not support designated initializers.

12 years agog3dvl: s/inline/INLINE/
Vinson Lee [Wed, 13 Jul 2011 22:59:08 +0000 (15:59 -0700)]
g3dvl: s/inline/INLINE/

The inline keyword is not available in MSVC C.

12 years agoutils: Add missing parentheses
Emil Velikov [Wed, 13 Jul 2011 22:19:37 +0000 (23:19 +0100)]
utils: Add missing parentheses

Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
Signed-off-by: Brian Paul <brianp@vmware.com>
12 years agosoftpipe: Remove sp_video_context.c from SConscript.
Vinson Lee [Wed, 13 Jul 2011 21:50:12 +0000 (14:50 -0700)]
softpipe: Remove sp_video_context.c from SConscript.

sp_video_context.c was added to SConscript in commit
ed24e19070b7dff12670151b2d184f31c845ccae (pipe-video merge) but no file
of that name was added.

12 years ago[g3dvl] don't upload all quant buffer layers at once
Christian König [Wed, 13 Jul 2011 21:33:20 +0000 (23:33 +0200)]
[g3dvl] don't upload all quant buffer layers at once

There seems to be a bug in r600g when uploading more than one layer of a
3D resource at once with a hardware blit.

So just do them one at a time to workaround this.