Commit graph

24548 commits

Author SHA1 Message Date
Keith Whitwell
a2f7ab1d15 softpipe: move all color-combine code into sp_quad_blend.c
Consolidate the read-modify-write color combining code from
the blend, colormask and output stages.
2009-07-24 20:19:18 +01:00
Keith Whitwell
42f1757189 softpipe: fix typo 2009-07-24 20:18:52 +01:00
Keith Whitwell
333ec94380 softpipe: example fastpaths in blending 2009-07-24 18:46:17 +01:00
Keith Whitwell
a1dbd7aa15 softpipe: actually pass >1 quad from triangle routine
First attempt
2009-07-24 18:17:05 +01:00
Keith Whitwell
ab9fb51670 softpipe: expand quad pipeline to process >1 quad at a time
This is part one -- we still only pass a single quad down, but
the code can now cope with more.  The quads must all be from the same
tile.
2009-07-24 16:49:35 +01:00
Keith Whitwell
6153a1c28f softpipe: rip out old mulithread support 2009-07-24 16:12:48 +01:00
Keith Whitwell
93a026d4ba softpipe: avoid flushing depth buffer cache on swapbuffers
There's no need to push out depth buffer contents on swapbuffers.

Note that this change doesn't throw away depth buffer changes, it simply
holds them in the cache over calls to swapbuffers.  The hope is
that swapbuffers will be followed by a clear() which means in that case
we won't have to write the changes out.
2009-07-23 11:14:39 +01:00
Keith Whitwell
19097907ef softpipe: also shortcircuit non-texture tile lookups 2009-07-23 09:35:33 +01:00
Keith Whitwell
f911c3b989 softpipe: shortcircuit repeated lookups of the same tile
The sp_tile_cache is often called repeatedly to look up the same
tile.  Add a cache (to the cache) of the single tile most recently
retreived and make a quick inline check to see if this matches the
subsequent request.

Add a tile_address bitfield struct to make this check easier.
2009-07-22 15:08:42 +01:00
Keith Whitwell
13e2d35764 softpipe: remove unused vars in sp_setup.c 2009-07-22 12:48:01 +01:00
Keith Whitwell
0ed99f4552 softpipe: use bitwise logic to setup quad masks in sp_setup 2009-07-22 12:48:00 +01:00
Keith Whitwell
73e7356385 softpipe: simplify flush_spans
No loss of performance, but simpler code.
2009-07-22 12:48:00 +01:00
Keith Whitwell
b5d583efef softpipe: make some small steps to flush texture cache less frequently
No performance gain yet, but the code is a bit cleaner.
2009-07-22 12:48:00 +01:00
Keith Whitwell
07bb026900 gallium/xlib: use XSHM for swapbuffers
Makes some difference, but suprisingly little.  Barely worth the effort.
2009-07-22 12:47:59 +01:00
Keith Whitwell
0ac879dca7 util: _debug_printf should print even when DEBUG is not defined
The leading underscore is meaningful...  This function is used by
_warning and _error functions as well as the more common
debug_printf().

debug_printf (without underscore) gets turned off when DEBUG is
disabled, but warning/error messages still use this function to get
their message out.
2009-07-22 12:47:59 +01:00
Keith Whitwell
aa5db68438 softpipe: remove backwards dependency from tilecache to softpipe
The tile cache is a utility, it shouldn't know anything about the
entity which is making use of it (ie softpipe).

Remove softpipe parameter to all the tilecache function calls, and
also remove the need to keep a softpipe pointer in the sampler structs.
2009-07-22 12:47:59 +01:00
Keith Whitwell
ede9f3b52e gallium: remove multiple aliases for TGSI opcodes
This is a source of ongoing confusion.  TGSI has multiple names for
opcodes where the same semantics originate in multiple shader APIs.

For instance, TGSI includes both Mesa/GLSL and DX/SM30 names for
opcodes with the same semantics, but aliases those names to the same
underlying opcode number.

This makes it very difficult to visually inspect two sets of opcodes
(eg in state tracker & driver) and check if they implement the same
functionality.

This patch arbitarily rips out the versions of the opcodes not currently
favoured by the mesa state tracker and leaves us with a single name
for each distinct operation.
2009-07-22 12:42:09 +01:00
Keith Whitwell
fd31f92cea gallium: simplify tgsi_full_immediate struct
Remove the need to have a pointer in this struct by just including
the immediate data inline.  Having a pointer in the struct introduces
complications like needing to alloc/free the data pointed to, uncertainty
about who owns the data, etc.  There doesn't seem to be a need for it,
and it is unlikely to make much difference plus or minus to performance.

Added some asserts as we now will trip up on immediates with more
than four elements.  There were actually already quite a few such asserts,
but the >4 case could be used in the future to specify indexable immediate
ranges, such as lookup tables.
2009-07-22 12:42:09 +01:00
Richard Li
5e3c62b550 r600: fix dst reg indexing for real
This fixes segfaults in apps like teapot and tunnel
2009-07-21 17:56:06 -04:00
Alex Deucher
7edb2a9eef Revert "r600: fix dst reg indexing"
This reverts commit cc893d9a98.

Richard has the proper fix.
2009-07-21 17:44:36 -04:00
Alex Deucher
72a3d8845f r600: add stencil support 2009-07-21 17:10:54 -04:00
Alex Deucher
db0160bb9d r600: use state functions to set default state 2009-07-21 17:10:54 -04:00
Alex Deucher
bd62cd735f r600: fill in point functions 2009-07-21 17:10:54 -04:00
Alex Deucher
5a615e7e65 r600: set provoking vertex to last vertex for OGL 2009-07-21 17:10:54 -04:00
Alex Deucher
60787df1e5 r600: fill in r700UpdateViewportOffset 2009-07-21 17:10:53 -04:00
Alex Deucher
549b8e6f1a r600: first pass at polyoffset support
not working yet
2009-07-21 17:10:53 -04:00
Jerome Glisse
7247446ba8 radeon: fix colorbuffer pitch emission regarding tiling in KMS/CS case
We need to emit a relocation for pitch register so that kernel can
check and properly setup tiling on the color buffer.
2009-07-21 21:14:19 +02:00
Alex Deucher
ecead30111 R600: fix up some build problems 2009-07-21 11:09:05 -04:00
Alex Deucher
9e6d38f8a2 r600: add alpha test support 2009-07-21 10:53:20 -04:00
Michel Dänzer
cf24119d38 Track Radeon driver symlinks in Git. 2009-07-21 10:47:42 +02:00
Peter Hutterer
5358e54d1a Add missing X11_INCLUDES to egl/drivers/demo and egl/main.
Compiling mesa on a system with no X headers installed in the default
include paths fails due to missing X11 includes. The header includes are
picked up by configure but not applied.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Signed-off-by: Dave Airlie <airlied@redhat.com>
2009-07-21 11:45:49 +10:00
Eric Anholt
81d5550684 i965: Don't clip everything if FRONT_AND_BACK culling while culling disabled.
Fixes everything-black with meta_clear_tris on quake4-mpdemo and doom3-demo.

Bug #18844, 22077.
2009-07-20 18:31:13 -07:00
Alex Deucher
6617fa6fab r600: fix typo in blend code 2009-07-20 19:33:05 -04:00
Kevin DeKorte
cc893d9a98 r600: fix dst reg indexing
This fixes segfaults in apps like teapot and tunnel
2009-07-20 19:00:57 -04:00
Alex Deucher
265d5eba65 r600: add blending support 2009-07-20 19:00:57 -04:00
Alex Deucher
a369963b18 r600: add user clip plane support 2009-07-20 19:00:57 -04:00
Alex Deucher
ce9c5a1a27 r600: add logicop support 2009-07-20 19:00:57 -04:00
Keith Whitwell
cad82cd063 tgsi: get texturing working in vertex shader sse2 path
Missing file from previous commit.
2009-07-20 19:47:38 +01:00
Michel Dänzer
cd63e35603 Merge branch 'mesa_7_5_branch' 2009-07-20 20:41:11 +02:00
Michel Dänzer
5ed4404005 radeon: With DRI1, if we have HW stencil, only expose fbconfigs with stencil.
Otherwise simple apps like glxgears pick up a DirectColor visual since the X
server mixes the depth 32 visual in with the other GLX visuals, and this seems
to result in a (mostly) black screen due to a bad ColorMap for a lot of people.

The bad ColorMap may be a bug in the apps, the X server or X driver, and
regardless of that I think the X server should ideally make the depth 32 GLX
visual separate from the rest again, but in the meantime this makes us cope.

(depth_bits is either 16 or 24, never 0)
2009-07-20 20:34:04 +02:00
Keith Whitwell
442101dad7 tgsi: get texturing working in vertex shader sse2 path 2009-07-20 19:32:28 +01:00
Keith Whitwell
27a19be8d1 tgsi: fix regression in indexed const lookups
This function was calling get_input_base() and get_output_base() to
get the names of a couple of register to use as temps.  Those
functions no longer return registers, so adjust it to get the
registers elsewhere.

This change doesn't address the issue that it's a fairly poor way to
grab a register name by calling a function with an apparently
unrelated meaning.
2009-07-20 19:32:28 +01:00
Kevin DeKorte
91512fa019 r600: Fix compilation 2009-07-20 09:27:17 -04:00
Cooper Yuan
19249a1ae7 R6xx/r7xx: Fix line stipple and width issue 2009-07-20 17:42:47 +08:00
Michel Dänzer
cf721c8137 Add common_ppc.c to MESA_GALLIUM_SOURCES. 2009-07-20 02:11:17 +02:00
Michel Dänzer
3d0009ce45 r300g: Fix SCons build. 2009-07-20 02:06:37 +02:00
Michel Dänzer
0b7a907f39 gallium/trace: Fix SCons build. 2009-07-20 02:05:38 +02:00
Michel Dänzer
3326be6c0a r300g: Guard R500 register writes by is_r500 check.
Flagged by the DRM command stream checker. This allows the driver to work on
non-R500 cards.
2009-07-20 01:53:15 +02:00
Dave Airlie
a8921d0b52 gallium: make g3dvl build again 2009-07-18 17:44:44 +10:00
Brian Paul
b96ae1b2c4 Merge branch 'mesa_7_5_branch'
Conflicts:

	Makefile
	progs/glsl/multitex.c
	src/mesa/main/enums.c
	src/mesa/main/state.c
	src/mesa/main/texenvprogram.c
	src/mesa/main/version.h
2009-07-17 22:00:47 -06:00