Commit Graph

35055 Commits

Author SHA1 Message Date
José Fonseca 91bbe466c7 util: Add a func_to_pointer util function too. 2010-06-14 16:50:39 +01:00
Zack Rusin 5d5fa34757 graw: small fixups for the gs examples 2010-06-14 10:49:16 -04:00
Marek Olšák 8ad410dc13 r300g: fix uploading RC state shader constants on r3xx
I've messed this up in one of my previous commits.

Reported-by: Igor Murzov
2010-06-14 13:03:13 +02:00
Marek Olšák 1c0e5ba9f1 r300g: drop begin_cs/end_cs
I have had a look at the libdrm sources and they just contain more or less
the same checking we do in macros, and begin_cs may realloc the CS buffer
if we overflow it, which never happens with r300g. So these are pretty
much useless.

There is a small but measurable performance increase by dropping the two
functions.
2010-06-14 12:46:38 +02:00
Marek Olšák cf3778bae0 r300g: rewrite occlusion queries
The previous implementation had issues with queries spanning over several
command streams as well as using a very large number of queries.

This fixes flickering in Enemy Territory: Quake Wars. The driver now renders
everything correctly in this game and the graphics is awesome.
2010-06-14 12:46:38 +02:00
Marek Olšák 824c1f6a4a r300g: emit viewport state as a dword table 2010-06-14 12:46:37 +02:00
Marek Olšák 8874c9d7a3 r300g: subclass pipe_surface 2010-06-14 12:46:37 +02:00
Marek Olšák 39826a2036 r300g: simplify reloc macros 2010-06-14 12:46:37 +02:00
Marek Olšák c1f18bff3e r300g: count CS dwords on debug builds only 2010-06-14 00:52:11 +02:00
Marek Olšák f558bcb397 r300g: optimize emission of fragment shader constants 2010-06-13 17:43:39 +02:00
Marek Olšák 3da6487115 r300g: turn fragment shader into a CB 2010-06-13 17:43:39 +02:00
Marek Olšák 0a44efaeb9 r300g: turn depth stencil state into a CB 2010-06-13 17:43:39 +02:00
Marek Olšák f803211629 r300g: turn clip state into a CB 2010-06-13 17:43:39 +02:00
Marek Olšák 9dd50993c6 r300g: turn blend color into a CB 2010-06-13 17:43:38 +02:00
Marek Olšák cd891648d4 r300g: turn blend state into a CB 2010-06-13 17:43:38 +02:00
Marek Olšák a062156bb2 r300g: add API for building command buffers
The idea is to build a hardware command buffer for every CSO and memcpy
the buffer to a command stream at bind time (or dirty-state-emission time,
to be precise).
2010-06-13 17:43:38 +02:00
Marek Olšák 7ca24dfa6d r300g: inline FLUSH_CS
The fewer macros, the better.
2010-06-13 17:43:38 +02:00
Marek Olšák 98f67a6bbd r300g: reorder CS macros and document them a little 2010-06-13 17:43:38 +02:00
Marek Olšák 8f13e2bda1 r300g: drop DBG_CS
I'd like the CS macros to be as lightweight as possible for performance
reasons.
2010-06-13 17:43:38 +02:00
Marek Olšák 7005feabcd r300g: inline CHECK_CS 2010-06-13 17:43:38 +02:00
Marek Olšák ae182296ce r300g: replace r300_cs_info with simplier get_cs_free_dwords 2010-06-13 17:43:38 +02:00
Marek Olšák 7d5230ce90 r300g: fix multiple render targets
This fixes tests/drawbuffers.
2010-06-13 17:43:38 +02:00
Marek Olšák ea0ec0b48e r300g: remove r300_state.h 2010-06-13 17:43:38 +02:00
Marek Olšák cb17f5ee75 r300g: move two-sided stencilref fallback to its own file 2010-06-13 17:43:37 +02:00
Marek Olšák aa5422327d r300g: move index buffer translate functions to their new home 2010-06-13 17:43:37 +02:00
Marek Olšák 028459b0bf r300g: add fallback for unaligned/unsupported vertex stride/offset/format
There is a problem though, the translate module cannot emit half float
vertices.
2010-06-13 17:43:37 +02:00
Marek Olšák 1384a7bcca r300g: upload only vertex buffers referenced by vertex elements 2010-06-13 17:43:37 +02:00
Eric Anholt 1dc573a881 i965: Fix gen6 front cull mode. 2010-06-12 21:47:32 -07:00
Zhenyu Wang 5dbbb48f46 i965: Use the new message header format for FF_SYNC on gen6. 2010-06-12 21:47:32 -07:00
Zhenyu Wang 881ec3a814 i965: Add support for math instructions in the gen6 WM. 2010-06-12 21:47:32 -07:00
Zhenyu Wang 7ba2ecb32b i965: Set the correct WM GRF start reg on gen6. 2010-06-12 21:47:31 -07:00
Eric Anholt 0f59b9a95d i965: Update gen6 paths for the streaming rework. 2010-06-12 21:47:31 -07:00
Eric Anholt 7ad26b0030 i965: Stream out CC unit state.
before:
[ # ]  backend                         test   min(s) median(s) stddev. count
[  0]       gl            firefox-talos-gfx   31.791   32.287   1.11%    6/6
after:
[  0]       gl            firefox-talos-gfx   31.198   31.675   0.96%    6/6
2010-06-12 21:47:31 -07:00
Zack Rusin db05972807 draw/gs: copy the outputs only if we emitted something 2010-06-12 10:45:42 -04:00
Zack Rusin 1551b4da8c softpipe: small cleanup 2010-06-12 10:45:42 -04:00
Joakim Sindholt 60cfed6c70 r300/compiler: fix scons build 2010-06-12 15:40:14 +02:00
Vinson Lee b6cfca42e3 i965: Remove unnecessary header. 2010-06-12 01:44:43 -07:00
Vinson Lee e0b211d07c scons: Disable i965g build if using MSVC.
i965g uses C99 constructs that are not supported by MSVC.
2010-06-11 18:43:58 -07:00
Vinson Lee de51485000 scons: Disable i915g build if using MSVC.
i915g uses C99 constructs that are not supported by MSVC.
2010-06-11 18:42:57 -07:00
Tom Stellard 3eca311b72 r300/compiler: Handle more complex conditionals in loops. 2010-06-11 22:06:59 +02:00
Tom Stellard bde34a76b5 r300/compiler: Fix warning. 2010-06-11 22:06:59 +02:00
Tom Stellard f7269cf26a r300/compiler: Handle SGT and SLE at the beginning of loops. 2010-06-11 22:06:59 +02:00
Tom Stellard 0125f5270b r300/compiler: Verify assumptions about opcode types. 2010-06-11 22:06:59 +02:00
Tom Stellard 6f1b6814bc r300/compiler: Unroll loops that decrement the counter.
e.g. for(i=10; i>0; i--)
2010-06-11 22:06:58 +02:00
Tom Stellard 0f1109ce36 r300/compiler: Unroll loops that have a constant number of iterations.
This only works with for loops that increment the counter.
e.g. for(i=0; i<10; i++)
2010-06-11 22:06:58 +02:00
Tom Stellard 622fd4d061 r300/compiler: Implement simple loop emulation
The loop emulation unrolls loops as may times as possbile while still
keeping the shader program below the maximum instruction limit.  At this
point, there are no checks for constant conditionals.  This is only enabled
for fragment shaders.
2010-06-11 22:06:58 +02:00
Eric Anholt 108264e859 i965: Remove the surface key used to generate constant surfaces.
We had to fill out all that junk when using the cache, but no more.
2010-06-11 12:21:23 -07:00
Eric Anholt 34c82804ed i965: Warning fixes from the i965-streaming merge. 2010-06-11 12:09:26 -07:00
Zack Rusin 53bd9796a1 gallium/softpipe/draw: support samplers in geometry shaders 2010-06-11 13:31:52 -04:00
Zack Rusin 2396967038 tgsi: support 2d indirect addressing 2010-06-11 10:35:24 -04:00