Paul Berry [Tue, 5 Jul 2011 18:52:06 +0000 (11:52 -0700)]
glsl: Add unit tests for lower_jumps.cpp
These tests invoke do_lower_jumps() in isolation (using the glsl_test
executable) and verify that it transforms the IR in the expected way.
The unit tests may be run from the top level directory using "make
check".
For reference, I've also checked in the Python script
create_test_cases.py, which was used to generate these tests. It is
not necessary to run this script in order to run the tests.
Acked-by: Chad Versace <chad@chad-versace.us>
Paul Berry [Wed, 29 Jun 2011 19:30:04 +0000 (12:30 -0700)]
glsl: Create a standalone executable for testing optimization passes.
This patch adds a new build artifact, glsl_test, which can be used for
testing optimization passes in isolation.
I'm hoping that we will be able to add other useful standalone tests
to this executable in the future. Accordingly, it is built in a
modular fashion: the main() function uses its first argument to
determine which test function to invoke, removes that argument from
argv[], and then calls that function to interpret the rest of the
command line arguments and perform the test. Currently the only test
function is "optpass", which tests optimization passes.
Paul Berry [Thu, 7 Jul 2011 21:01:40 +0000 (14:01 -0700)]
glsl: Move functions into standalone_scaffolding.cpp for later reuse.
This patch moves the following functions from main.cpp (the main cpp
file for the standalone executable that is used to create the built-in
functions) to standalone_scaffolding.cpp, so that they can be re-used
in other standalone executables:
- initialize_context()*
- _mesa_new_shader()
- _mesa_reference_shader()
*initialize_context contained some code that was specific to main.cpp,
so it was split into two functions: initialize_context() (which
remains in main.cpp), and initialize_context_from_defaults() (which is
in standalone_scaffolding.cpp).
Paul Berry [Thu, 7 Jul 2011 20:03:45 +0000 (13:03 -0700)]
mesa: Add an ifndef guard around the definition of the INLINE macro
Several Mesa headers redundantly define the INLINE macro. Adding this
guard prevents the compiler from complaining about macro redefinition.
Reviewed-by: Brian Paul <brianp@vmware.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Chad Versace <chad@chad-versace.us>
Younes Manton [Thu, 21 Jul 2011 17:53:34 +0000 (13:53 -0400)]
Revert "g3dvl: Preserve previously rendered components for MC output."
This reverts commit
b56daf71d2f63d044d4c53ab49c6f87e02991a28.
The bug is actually in softpipe's blend and writemask interaction.
Marek Olšák [Thu, 21 Jul 2011 20:31:24 +0000 (22:31 +0200)]
configure.ac: check for libdrm_radeon only when building classic
Brian Paul [Thu, 21 Jul 2011 16:38:21 +0000 (10:38 -0600)]
Merge branch 'gallium-polygon-stipple'
Brian Paul [Thu, 21 Jul 2011 15:55:22 +0000 (09:55 -0600)]
softpipe: use the polygon stipple utility module
This is an alternative to the draw module's polygon stipple stage.
The softpipe implementation here is just a test. The advantange of
using the new polygon stipple utility module (with other drivers)
is we can avoid software vertex processing in the draw module and
get much better performance.
Polygon stipple doesn't require special vertex processing like
the other draw module stage.
Brian Paul [Thu, 21 Jul 2011 15:55:22 +0000 (09:55 -0600)]
softpipe: implement fragment shader variants
We'll need shader variants to accomodate the new polygon stipple utility.
Brian Paul [Thu, 21 Jul 2011 15:55:22 +0000 (09:55 -0600)]
util: assorted updates to polygon stipple helper
Brian Paul [Thu, 21 Jul 2011 15:55:22 +0000 (09:55 -0600)]
softpipe: use tgsi_shader_info fields for fragcoord origin, center, etc.
Brian Paul [Thu, 21 Jul 2011 15:55:22 +0000 (09:55 -0600)]
tgsi: add info fields for fragcoord origin, center, etc
Brian Paul [Thu, 21 Jul 2011 15:55:22 +0000 (09:55 -0600)]
softpipe: remove obsolete comment
Brian Paul [Thu, 21 Jul 2011 15:55:22 +0000 (09:55 -0600)]
softpipe: rename a function
Brian Paul [Thu, 21 Jul 2011 14:46:02 +0000 (08:46 -0600)]
Merge branch 'remove-copyteximage-hook'
Chia-I Wu [Wed, 20 Jul 2011 10:52:33 +0000 (18:52 +0800)]
u_vbuf_mgr: restore buffer offsets
u_vbuf_upload_buffers modifies the buffer offsets. If they are not
restored, and any of the vertex formats is not supported natively, the
next u_vbuf_mgr_draw_begin call will translate the vertex buffers with
incorrect buffer offsets.
Marek Olšák [Tue, 19 Jul 2011 01:05:07 +0000 (03:05 +0200)]
mesa: GLES2 should return different error enums for invalid fbo queries
ES 2.0.25 page 127 says:
If the value of FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE is NONE, then
querying any other pname will generate INVALID_ENUM.
See also:
b9e9df78a03edb35472c2e231aef4747e09db792
NOTE: This is a candidate for the 7.10 and 7.11 branches.
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
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).
Vinson Lee [Thu, 21 Jul 2011 03:16:27 +0000 (20:16 -0700)]
glsl: Add ir_function_detect_recursion.cpp to SConscript.
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>
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>
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.
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>
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.
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>
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
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>
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.
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.
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>
Brian Paul [Wed, 20 Jul 2011 03:11:53 +0000 (21:11 -0600)]
mesa: remove depend files from tarballs
Brian Paul [Wed, 20 Jul 2011 03:10:25 +0000 (21:10 -0600)]
glsl: silence warning in linker.cpp
Brian Paul [Wed, 20 Jul 2011 02:03:05 +0000 (20:03 -0600)]
st/mesa: get rid of redundant clipping code in st_copy_texsubimage()
Brian Paul [Wed, 20 Jul 2011 02:03:05 +0000 (20:03 -0600)]
mesa: remove unused dd_function_table::CopyTexImage1D/2D() hooks
Brian Paul [Wed, 20 Jul 2011 02:03:05 +0000 (20:03 -0600)]
meta: remove _mesa_meta_CopyTexImage1D/2D()
Brian Paul [Wed, 20 Jul 2011 02:03:05 +0000 (20:03 -0600)]
st/mesa: remove st_CopyTexImage1D/2D()
Brian Paul [Wed, 20 Jul 2011 02:03:05 +0000 (20:03 -0600)]
radeon: remove radeonCopyTexImage2D()
Brian Paul [Wed, 20 Jul 2011 02:03:05 +0000 (20:03 -0600)]
intel: remove intelCopyTexImage1D/2D()
Brian Paul [Wed, 20 Jul 2011 02:03:05 +0000 (20:03 -0600)]
mesa: remove comments referring to Driver.TexImage1D/2D
Brian Paul [Wed, 20 Jul 2011 02:03:05 +0000 (20:03 -0600)]
mesa: stop using ctx->Driver.CopyTexImage1D/2D() hooks
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
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>
Brian Paul [Tue, 19 Jul 2011 21:24:47 +0000 (15:24 -0600)]
mesa: update, shorten some comments in dd.h
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
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>
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.
Brian Paul [Tue, 19 Jul 2011 14:42:46 +0000 (08:42 -0600)]
llvmpipe: include LLVM version number in name string
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>
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>
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.
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>
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>
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>
Eric Anholt [Wed, 13 Jul 2011 17:57:58 +0000 (10:57 -0700)]
i915: Simplify intel_wpos_* with a helper function.
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
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>
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.
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).
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
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>
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>
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>
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>
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>
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>
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>
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.
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>
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.
Vadim Girlin [Sat, 16 Jul 2011 00:58:58 +0000 (04:58 +0400)]
r600g: fix corner case checks for the queries
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>
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
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>
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>
Christoph Bumiller [Sat, 16 Jul 2011 11:00:52 +0000 (13:00 +0200)]
nv50: fix bogus error message about 3d surfaces
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.
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.
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.
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
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
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
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
Marek Olšák [Fri, 15 Jul 2011 18:06:01 +0000 (20:06 +0200)]
swrast: remove an unused-but-set variable
Marek Olšák [Fri, 15 Jul 2011 18:04:46 +0000 (20:04 +0200)]
mesa: fix unused-but-set-variable warnings in dlist.c
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.
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>
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.
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.
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>
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
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>
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.
Younes Manton [Fri, 15 Jul 2011 05:30:21 +0000 (01:30 -0400)]
g3dvl: Build softpipe when needed.
Younes Manton [Thu, 14 Jul 2011 16:22:20 +0000 (12:22 -0400)]
g3dvl: Build the right winsys dependencies when needed.
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.
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.
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>
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>
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>
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.