Marek Olšák [Mon, 19 Jul 2010 18:47:30 +0000 (20:47 +0200)]
r300g: fix possible crash in destroy_context
The problem is destroy_context is almost NEVER called.
The only test for destroy_context I know is compiz.
Reported by Vinson Lee.
FDO bug #29150.
Marek Olšák [Mon, 19 Jul 2010 16:08:53 +0000 (18:08 +0200)]
util: remove the dummy field in mempool
It should allocate less memory now.
Vinson Lee [Mon, 19 Jul 2010 18:31:44 +0000 (11:31 -0700)]
scons: Fix Mac OS X SCons build on 32-bit CPUs.
The Mac OS X SCons build failed on 32-bit CPUs starting with commit
2f6d47a7c8d6e69e5154de44115aab9ba35a41d2 during linking of graw-null.
The build succeeds though on a 64-bit CPU. See FDO bug 29117.
This was the compiler error.
scons: building associated VariantDir targets: build/darwin-x86-debug
Linking build/darwin-x86-debug/gallium/targets/graw-null/libgraw.dylib ...
Undefined symbols:
"_lp_swizzled_cbuf", referenced from:
_lp_swizzled_cbuf$non_lazy_ptr in libllvmpipe.a(lp_rast.os)
_lp_swizzled_cbuf$non_lazy_ptr in libllvmpipe.a(lp_rast_tri.os)
(maybe you meant: _lp_swizzled_cbuf$non_lazy_ptr)
"_lp_dummy_tile", referenced from:
_lp_dummy_tile$non_lazy_ptr in libllvmpipe.a(lp_rast.os)
_lp_dummy_tile$non_lazy_ptr in libllvmpipe.a(lp_rast_tri.os)
_lp_dummy_tile$non_lazy_ptr in libllvmpipe.a(lp_setup.os)
(maybe you meant: _lp_dummy_tile$non_lazy_ptr)
The patch adds -fno-common to all Mac OS X builds to work around this issue.
Brian Paul [Mon, 19 Jul 2010 16:50:08 +0000 (10:50 -0600)]
util: add dummy field to empty structure types
Empty structure types aren't allowed with MSVC.
I haven't tested this change. Hope I haven't broken it...
Marek Olšák [Mon, 19 Jul 2010 15:33:40 +0000 (17:33 +0200)]
r300g: fix typo
Marek Olšák [Mon, 19 Jul 2010 12:31:25 +0000 (14:31 +0200)]
r300g: use memory pools for buffer_create and get_transfer
The improvement in Tremulous: 68.9 fps -> 71.1 fps.
Marek Olšák [Mon, 19 Jul 2010 09:04:30 +0000 (11:04 +0200)]
util: add a memory pool for equally sized memory allocations
malloc/free are in O(1).
Marek Olšák [Sat, 17 Jul 2010 13:55:24 +0000 (15:55 +0200)]
st/mesa: fix FRAMEBUFFER_UNSUPPORTED with the D24S8 format
Fixes FDO bug #29116.
NOTE: this is a candidate for the 7.8 branch
Kristian Høgsberg [Mon, 19 Jul 2010 13:37:07 +0000 (09:37 -0400)]
glx: Fix drawable lookup in DRI2 event handler
DRI2 events are sent to the X drawable ID used to create the DRI2 drawable,
not the GLX drawable ID. So when an event comes in, we need to look up
the __GLXDRIdrawable by its X drawable ID, which needs a new hash table.
Dave Airlie [Sun, 18 Jul 2010 08:47:08 +0000 (18:47 +1000)]
r300g: u_upload optimisation
fix vb/ib uploads
Sven Arvidsson [Sun, 18 Jul 2010 09:17:14 +0000 (19:17 +1000)]
gallium/st/dri2: add dri2 vblank query extension support
from bugzilla:
https://bugs.freedesktop.org/show_bug.cgi?id=28771
Signed-off-by: Dave Airlie <airlied@redhat.com>
Vinson Lee [Sun, 18 Jul 2010 08:14:36 +0000 (01:14 -0700)]
llvmpipe: Remove dead initialization.
Marek Olšák [Sat, 17 Jul 2010 13:35:03 +0000 (15:35 +0200)]
r300g: final fix for r3xx constant buffer emission
Marek Olšák [Sat, 17 Jul 2010 12:40:41 +0000 (14:40 +0200)]
r300g: fix typo in r3xx constant buffer emission
Ooops.
Marek Olšák [Sat, 17 Jul 2010 11:37:14 +0000 (13:37 +0200)]
r300g: fix constant buffer emission on r3xx
FDO bug #29128.
Vinson Lee [Sat, 17 Jul 2010 07:35:10 +0000 (00:35 -0700)]
llvmpipe: Remove unused variable in lp_test_sincos.
Vinson Lee [Sat, 17 Jul 2010 01:41:32 +0000 (18:41 -0700)]
nv50: s/__func__/__FUNCTION__/
Vinson Lee [Sat, 17 Jul 2010 01:14:11 +0000 (18:14 -0700)]
nouveau: s/__func__/__FUNCTION__/
Vinson Lee [Sat, 17 Jul 2010 01:03:03 +0000 (18:03 -0700)]
nouveau: s/snprintf/util_snprintf/
Vinson Lee [Sat, 17 Jul 2010 00:55:57 +0000 (17:55 -0700)]
r300g: Remove unnecessary header.
Vinson Lee [Sat, 17 Jul 2010 00:49:18 +0000 (17:49 -0700)]
nouveau: s/inline/INLINE/
José Fonseca [Fri, 16 Jul 2010 20:48:36 +0000 (21:48 +0100)]
glut: Remove duplicate symbol definition.
José Fonseca [Fri, 16 Jul 2010 20:26:43 +0000 (21:26 +0100)]
scons: Make PIPE_ALIGN_VAR() of static/global vars work on MinGW.
Workaround http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37216
Vinson Lee [Fri, 16 Jul 2010 19:34:22 +0000 (12:34 -0700)]
scons: Fix Cygwin build.
The Cygwin SCons build needed several file names to be fully qualified.
Marek Olšák [Fri, 16 Jul 2010 10:54:11 +0000 (12:54 +0200)]
r300g: inline winsys_buffer_destroy
Marek Olšák [Fri, 16 Jul 2010 10:53:40 +0000 (12:53 +0200)]
r300g: do not make copies of constant buffers, emit them directly
Brian Paul [Fri, 16 Jul 2010 17:10:25 +0000 (11:10 -0600)]
draw: updated debug/dump code
Brian Paul [Fri, 16 Jul 2010 17:09:17 +0000 (11:09 -0600)]
draw: added array element debug / bounds checking code (disabled)
Keith Whitwell [Fri, 16 Jul 2010 13:40:30 +0000 (14:40 +0100)]
llvmpipe: use single swizzled tile
Use a single swizzled tile per colorbuf (and per thread) to avoid
accumulating large amounts of cached swizzled data.
Now that the SSE3 code has been merged to master, the performance delta
of this change is minimal, the main benefit is reduced memory usage
due to no longer keeping swizzled copies of render targets.
It's clear from the performance of the in-place version of this code
that there is still quite a bit of time being spent swizzling &
unswizzling, but it's not clear exactly how to reduce that.
José Fonseca [Fri, 16 Jul 2010 12:16:57 +0000 (13:16 +0100)]
llvmpipe: Describe _mm_shuffle_epi8() with gcc extended inline assembly when -mssse3 is not supported/enabled.
José Fonseca [Thu, 15 Jul 2010 17:22:39 +0000 (18:22 +0100)]
llvmpipe: Only use -mssse3 on gcc 4.3+
Zack Rusin [Fri, 16 Jul 2010 16:19:26 +0000 (12:19 -0400)]
draw/llvm: adjust the instance id at run time
fixes instancing in draw llvm
Zack Rusin [Fri, 16 Jul 2010 15:58:20 +0000 (11:58 -0400)]
draw: use the instance id when fetching vertex data
Brian Paul [Fri, 16 Jul 2010 13:36:19 +0000 (07:36 -0600)]
mesa: return retval in _mesa_RenderObjectUnpurgeable()
Found by Vinson with static analysis.
NOTE: This is a candidate for the 7.8 branch.
Chia-I Wu [Fri, 16 Jul 2010 12:09:29 +0000 (20:09 +0800)]
st/egl: Fix build on FreeBSD.
There is no libdl on FreeBSD. Based on patch from Thinker
<thinker@branda.to>, which is against 7.8.
This fixes fdo bug #29093.
Chia-I Wu [Fri, 16 Jul 2010 11:48:52 +0000 (19:48 +0800)]
egl: Build egl_dri2 only when DRI drivers are built.
That is, build egl_dri2 only when --with-driver=dri is given (the
default).
Chia-I Wu [Fri, 16 Jul 2010 11:39:58 +0000 (19:39 +0800)]
egl: Build egl_dri2 only when xcb-dri2 is available.
The driver does not build when xcb-dri2 is not available.
Vinson Lee [Fri, 16 Jul 2010 08:11:03 +0000 (01:11 -0700)]
glu/sgi: Remove dead initialization in extract565rev.
Vinson Lee [Fri, 16 Jul 2010 08:07:13 +0000 (01:07 -0700)]
i965g: Remove dead initialization in precalc_tex.
Marek Olšák [Tue, 13 Jul 2010 23:59:57 +0000 (01:59 +0200)]
r300g: rebuild winsys and command submission to support multiple contexts
Vinson Lee [Fri, 16 Jul 2010 06:45:25 +0000 (23:45 -0700)]
mesa: Add error path in compressed_texture_error_check.
Add error path for unhandled dimensions in
compressed_texture_error_check.
Vinson Lee [Fri, 16 Jul 2010 01:45:20 +0000 (18:45 -0700)]
glsl/apps: Handle ftell errors in non-debug builds.
Brian Paul [Thu, 15 Jul 2010 21:47:03 +0000 (15:47 -0600)]
llvmpipe: implement instanced drawing functions
And express all the other drawing functions in terms of
llvmpipe_draw_range_elements_instanced().
Brian Paul [Thu, 15 Jul 2010 21:41:48 +0000 (15:41 -0600)]
draw: update comments for drawing functions
Brian Paul [Thu, 15 Jul 2010 21:41:15 +0000 (15:41 -0600)]
draw: move prototype, update comment
Brian Paul [Thu, 15 Jul 2010 21:40:52 +0000 (15:40 -0600)]
softpipe: re-order drawing functions to get rid of prototype
Brian Paul [Thu, 15 Jul 2010 21:39:56 +0000 (15:39 -0600)]
graw: new tri-instanced.c program to test instanced drawing
Alex Deucher [Thu, 15 Jul 2010 21:03:58 +0000 (17:03 -0400)]
r600: fix typo in r700 assembler
Noticed by Henri Verbeet on IRC.
NOTE: This is a candidate for the 7.8 branch.
Henri Verbeet [Thu, 15 Jul 2010 18:53:16 +0000 (14:53 -0400)]
radeon: Also flush if it's not the current context that's being destroyed.
This avoids calling radeonFlush() during context destruction, when
ctx->DrawBuffer would be NULL.
NOTE: This is a candidate for the 7.8 branch.
Alex Deucher [Thu, 15 Jul 2010 18:47:06 +0000 (14:47 -0400)]
radeon: allow driconf vblank settings with dri2
fixes:
https://bugs.freedesktop.org/show_bug.cgi?id=28771
NOTE: This is a candidate for the 7.8 branch.
Brian Paul [Thu, 15 Jul 2010 16:46:33 +0000 (10:46 -0600)]
st/mesa: fix quad strip trimming bug
The translate_prim() function tries to convert quad strips into
tri strips. This is normally OK but we have to check for an odd
number of vertices so that we don't accidentally draw an extra
triangle. The mesa-demos/src/samples/prim.c demo exercises that.
With this fix the stray yellow triangle is no longer drawn.
Use the u_trim_pipe_prim() function to make sure that prims have
the right number of vertices and avoid calling gallium drawing
functions when the prim has a degenerate number of vertices.
Plus add comments, clean-up formatting, etc.
NOTE: This is a candidate for the 7.8 branch.
José Fonseca [Thu, 15 Jul 2010 09:59:03 +0000 (10:59 +0100)]
llvmpipe: Remove redundant statement.
Thanks to Vinson for spotting this.
Vinson Lee [Thu, 15 Jul 2010 08:42:02 +0000 (01:42 -0700)]
glu/sgi: Remove dead initialization in extract565.
Vinson Lee [Thu, 15 Jul 2010 08:26:09 +0000 (01:26 -0700)]
tgsi: Remove dead assignment in uprcase function.
Vinson Lee [Thu, 15 Jul 2010 07:53:07 +0000 (00:53 -0700)]
mesa: Fix potential out-of-bounds access by _vbo_Materialf.
_vbo_Materialf calls _vbo_Materialfv, which uses the params argument as
an array.
Vinson Lee [Thu, 15 Jul 2010 07:20:41 +0000 (00:20 -0700)]
glx: Move dereference and initialization to after NULL check.
Chia-I Wu [Wed, 14 Jul 2010 16:31:39 +0000 (00:31 +0800)]
egl: Return the correct array size in _eglFlattenArray.
The function is used by _eglGetConfigs and _eglGetScreens. The array
size should not be limited by the buffer size when the buffer is NULL.
This fixes fdo bug #29052.
Brian Paul [Wed, 14 Jul 2010 21:11:32 +0000 (15:11 -0600)]
mesa: fix _mesa_Texture/Render/BufferObjectUnpurgeable() return values
Fixes piglit object_purgeable-api-pbo, object_purgeable-api-vbo
and object_purgeable-api-texture failures with swrast.
NOTE: This is a candidate for the 7.8 branch.
Brian Paul [Wed, 14 Jul 2010 20:50:29 +0000 (14:50 -0600)]
mesa: update assertions and fix refcounting in depth/stencil renderbuffer code
Brian Paul [Wed, 14 Jul 2010 20:36:25 +0000 (14:36 -0600)]
mesa: silence a printf warning
Brian Paul [Wed, 14 Jul 2010 20:35:21 +0000 (14:35 -0600)]
llvmpipe: delete lp_test_*.o files with make clean
Brian Paul [Wed, 14 Jul 2010 20:34:45 +0000 (14:34 -0600)]
gallium: added CLEAN_EXTRA var for make clean target
Nick Bowler [Wed, 14 Jul 2010 16:01:49 +0000 (12:01 -0400)]
dri2: Track event mask in client code.
When direct rendering is being used, DRI2 BufferSwapComplete events are
sent unconditionally to clients, even if they haven't been requested.
This causes error messages to be printed by every freeglut application
of the form
freeglut (./gears): Unknown X event type: 104
and might confuse other clients.
This is a fixed up version of the patch by Jesse Barnes, which drops
BufferSwapComplete events if they are not requested by clients.
Fixes fdo bug 27962.
Signed-off-by: Nick Bowler <nbowler@draconx.ca>
Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
José Fonseca [Wed, 14 Jul 2010 15:15:56 +0000 (16:15 +0100)]
gallium: Ensure prototypes are wrapped in extern "C".
Fixes MSVC build failure due to inconsistent _ReadWriteBarrier
prototype.
José Fonseca [Wed, 14 Jul 2010 13:53:35 +0000 (14:53 +0100)]
llvmpipe: Remove redundant alignments.
The lp_rast_shader_inputs' alignment is irrelevant now that it contains
pointers instead of actual data.
Likewise, lp_rast_triangle's size alignment is meaningless.
Chris Li [Wed, 14 Jul 2010 13:19:11 +0000 (14:19 +0100)]
llvmpipe: Addi ssse3 swizzling for B8G8R8A8_UNORM.
José Fonseca [Wed, 14 Jul 2010 13:00:20 +0000 (14:00 +0100)]
gallium: Add a macro for memory barriers.
José Fonseca [Wed, 14 Jul 2010 11:23:16 +0000 (12:23 +0100)]
gallium: Add a new PIPE_ARCH_SSSE3 define for SSSE3 compiler support.
Zack Rusin [Wed, 14 Jul 2010 01:54:14 +0000 (21:54 -0400)]
Merge branch 'mesa-2d-registers'
Zack Rusin [Wed, 14 Jul 2010 01:49:53 +0000 (21:49 -0400)]
mesa: add comments and change Index2D to just Index2
Marek Olšák [Tue, 13 Jul 2010 23:59:28 +0000 (01:59 +0200)]
r300/compiler: fix swizzling in the transformation of Abs modifiers
Jakob Bornecrantz [Tue, 13 Jul 2010 18:32:16 +0000 (19:32 +0100)]
i965g: Fix scons build of dri driver
Roland Scheidegger [Tue, 13 Jul 2010 17:59:38 +0000 (19:59 +0200)]
llvmpipe: fix comment typo
Roland Scheidegger [Tue, 13 Jul 2010 17:58:58 +0000 (19:58 +0200)]
llvmpipe: move rasterizer to screen instead of setup context
there's no point of having this per context, so move to screen
(and protect with a mutex).
José Fonseca [Tue, 15 Jun 2010 11:20:01 +0000 (12:20 +0100)]
llvmpipe: Align texture data to the cache line.
Keith Whitwell [Sat, 10 Jul 2010 15:40:34 +0000 (16:40 +0100)]
llvmpipe: eliminate the set_state rasterizer command
Just put a pointer to the state in the tri->inputs struct. Remove
some complex logic for eliminating unused statechanges in bins at the
expense of a slightly larger triangle struct.
Keith Whitwell [Thu, 17 Jun 2010 20:19:09 +0000 (21:19 +0100)]
llvmpipe: pass mask into fragment shader
Move this code back out to C for now, will generate separately.
Shader now takes a mask parameter instead of C0/C1/C2/etc.
Shader does not currently use that parameter and rasterizes whole
pixel stamps always.
Keith Whitwell [Thu, 8 Jul 2010 14:13:35 +0000 (15:13 +0100)]
llvmpipe: move fences from per-bin to per-thread
Rather than inserting an lp_rast_fence command at the end of each
bin, have each rasterizer thread call this function directly once
it has run out of work to do on a particular scene.
This results in fewer calls to the mutex & related functions, but more
importantly makes it easier to recognize empty bins.
José Fonseca [Mon, 12 Jul 2010 15:28:33 +0000 (16:28 +0100)]
llvmpipe: Always swizzle/unswizzle whole tiles.
This was already the case, but the generated (un)swizzling code was not
benefiting of that knowledge.
Jakob Bornecrantz [Tue, 13 Jul 2010 14:46:29 +0000 (07:46 -0700)]
llvmpipe: Ignores!
Jakob Bornecrantz [Tue, 13 Jul 2010 14:44:37 +0000 (07:44 -0700)]
targets: Link xorg drivers with LLVM if built
Jakob Bornecrantz [Tue, 13 Jul 2010 14:44:13 +0000 (07:44 -0700)]
targets: Clean up xorg make files a bit
Jakob Bornecrantz [Tue, 13 Jul 2010 14:40:47 +0000 (07:40 -0700)]
st/xorg: When selecting st via configure make sure to test for xorg-server
Brian Paul [Tue, 13 Jul 2010 13:46:22 +0000 (07:46 -0600)]
libgl-xlib: add depend to make clean list
Brian Paul [Tue, 13 Jul 2010 13:44:35 +0000 (07:44 -0600)]
glapi: use _mesa_snprintf()
Note that the enums.c file is generated with this script.
This will preserve the change from commit
c4066b78c0aad41c199eb27157538c2ec9ab5bfd.
Marek Olšák [Tue, 13 Jul 2010 12:45:38 +0000 (14:45 +0200)]
r300/compiler: implement the Abs source operand modifier for vertex shaders
Marek Olšák [Tue, 13 Jul 2010 04:38:30 +0000 (06:38 +0200)]
r300/compiler: emulate SIN/COS/SCS in r3xx-r4xx vertex shaders
Despite the docs, the corresponding hardware instructions are r5xx-only.
Vinson Lee [Tue, 13 Jul 2010 07:31:37 +0000 (00:31 -0700)]
mesa: s/snprintf/_mesa_snprintf/
Marek Olšák [Tue, 13 Jul 2010 02:29:53 +0000 (04:29 +0200)]
r300g: do not advertise half_float_vertex on rv3x0
rv3x0 can't do it.
Marek Olšák [Mon, 12 Jul 2010 22:47:39 +0000 (00:47 +0200)]
r300g: extend and clean up debug logging
Marek Olšák [Mon, 12 Jul 2010 21:03:34 +0000 (23:03 +0200)]
r300g/swtcl: do not emit texcoords if they are also stuffed in GA
Marek Olšák [Mon, 12 Jul 2010 20:29:28 +0000 (22:29 +0200)]
r300g: rework the draw_rectangle hook
It is a lot simplier, cleaner, and more stable now.
Maciej Cencora [Mon, 12 Jul 2010 21:42:06 +0000 (23:42 +0200)]
Merge branch 'master' of git://anongit.freedesktop.org/mesa/mesa
Vinson Lee [Mon, 12 Jul 2010 21:21:57 +0000 (14:21 -0700)]
r600: Fix include recursion.
Fix r600_context.h -> r700_oglprog.h -> r600_context.h include
recursion.
Vinson Lee [Mon, 12 Jul 2010 21:12:02 +0000 (14:12 -0700)]
r300g: Remove unnecessary header.
Maciej Cencora [Mon, 12 Jul 2010 19:45:20 +0000 (21:45 +0200)]
radeon: fix some wine d3d9 tests
Need to flush command stream before mapping texture image
that is referenced by current cs.
Candidate for 7.8 branch.
Signed-off-by: Maciej Cencora <m.cencora@gmail.com>
José Fonseca [Mon, 12 Jul 2010 14:00:56 +0000 (15:00 +0100)]
llvmpipe: Re-enable threading on windows.
nobled [Sat, 3 Jul 2010 20:49:48 +0000 (13:49 -0700)]
os: remove gratuitous pipe_barrier placeholder code
There's already an implementation of pipe_barrier using
the other pipe_* primitives; just use that on Windows, too.
Now Windows passes pipe_barrier_test.
nobled [Sat, 3 Jul 2010 20:49:31 +0000 (13:49 -0700)]
os, rbug: remove PIPE_THREAD_HAVE_CONDVAR
The new default implementation of pipe_condvar makes it
unnecessary.
nobled [Sat, 3 Jul 2010 20:48:58 +0000 (13:48 -0700)]
os: Implement pipe_condvar on Windows Vista and later
Unfortunately compiling with these defines enabled would mean
Gallium can't run on Windows XP/2003 or older.
Todo: Need a macro to declare if we don't care about WinXP
compatibililty.