Commit graph

24587 commits

Author SHA1 Message Date
Nicolai Hähnle
8bcb6ef786 r300/compiler: Lay groundwork for better error handling
Signed-off-by: Nicolai Hähnle <nhaehnle@gmail.com>
2009-07-27 20:32:06 +02:00
Nicolai Hähnle
c5cb9a3378 r300: Remove dependency on GLcontext from compiler
Unfortunately, this does cause some code duplication (which we can hopefully
eliminate eventually).

Signed-off-by: Nicolai Hähnle <nhaehnle@gmail.com>
2009-07-27 20:32:06 +02:00
Nicolai Hähnle
d65404225d r300/vertprog: Cleanup source conflict handling
Signed-off-by: Nicolai Hähnle <nhaehnle@gmail.com>
2009-07-27 20:32:06 +02:00
Nicolai Hähnle
86e3334333 r300/vertprog: Massively reduce code duplication
Signed-off-by: Nicolai Hähnle <nhaehnle@gmail.com>
2009-07-27 20:32:06 +02:00
Nicolai Hähnle
127ca61fa3 r300/vertprog: Use generic transforms and throw away unneeded code
Signed-off-by: Nicolai Hähnle <nhaehnle@gmail.com>
2009-07-27 20:32:06 +02:00
Nicolai Hähnle
84445273ed r300: Move vertex program compilation to compiler
This is just the first step of refactoring. The separation is not yet
clean enough with this commit.

Signed-off-by: Nicolai Hähnle <nhaehnle@gmail.com>
2009-07-27 20:32:05 +02:00
Nicolai Hähnle
11cd795940 r300: Cleanup vertex_program structure
Signed-off-by: Nicolai Hähnle <nhaehnle@gmail.com>
2009-07-27 20:32:05 +02:00
Nicolai Hähnle
927f5f1682 r300: Remove faux lazy translation of vertex programs
De facto, vertex programs were translated immediately in all situations,
so let's just stop pretending that we do lazy translation.

Signed-off-by: Nicolai Hähnle <nhaehnle@gmail.com>
2009-07-27 20:32:05 +02:00
Nicolai Hähnle
a808b10ce8 r300: Reduce include dependencies
Signed-off-by: Nicolai Hähnle <nhaehnle@gmail.com>
2009-07-27 20:32:05 +02:00
Nicolai Hähnle
9198ab8bfc r300: Introduce rc_program and use it in radeon_pair
The goal is to convert both Mesa and TGSI programs into an intermediate format
that happens to be convenient for us.

Signed-off-by: Nicolai Hähnle <nhaehnle@gmail.com>
2009-07-27 20:32:05 +02:00
Nicolai Hähnle
9cd5e3e13a r300: Add radeon_compiler as a base for compilation-related tasks
Signed-off-by: Nicolai Hähnle <nhaehnle@gmail.com>
2009-07-27 20:32:04 +02:00
Nicolai Hähnle
647766494f r300: Remove some unnecessary includes
Signed-off-by: Nicolai Hähnle <nhaehnle@gmail.com>
2009-07-27 20:32:04 +02:00
Nicolai Hähnle
77a6ae64b6 r300/compiler: Compile the compiler seperately into an archive
This is all part of untangling the compiler from the classic driver, so that
it may be used in Gallium without depending on Mesa stuff if possible

Signed-off-by: Nicolai Hähnle <nhaehnle@gmail.com>
2009-07-27 20:32:04 +02:00
Nicolai Hähnle
d6275ccf79 r300: Further reduce dependency between compiler and classic driver
Signed-off-by: Nicolai Hähnle <nhaehnle@gmail.com>
2009-07-27 20:32:04 +02:00
Nicolai Hähnle
f70d3ee371 r300: Remove some dependencies on additional fragment program copies
The copy is still needed because some program transforms add state variables
or constants.

Signed-off-by: Nicolai Hähnle <nhaehnle@gmail.com>
2009-07-27 20:32:04 +02:00
Nicolai Hähnle
b54e083201 r300: Remove GLcontext from r300_fragment_program_compiler
Signed-off-by: Nicolai Hähnle <nhaehnle@gmail.com>
2009-07-27 20:32:03 +02:00
Nicolai Hähnle
e93d70e3e9 r300: Remove GLcontext requirement from radeonLocalTransform
Signed-off-by: Nicolai Hähnle <nhaehnle@gmail.com>
2009-07-27 20:32:03 +02:00
Nicolai Hähnle
9ceee4d3e4 r300: Remove unused enums
Signed-off-by: Nicolai Hähnle <nhaehnle@gmail.com>
2009-07-27 20:32:03 +02:00
Nicolai Hähnle
b4b286b980 r300: Remove GLcontext requirement from radeon_nqssadce
Signed-off-by: Nicolai Hähnle <nhaehnle@gmail.com>
2009-07-27 20:32:03 +02:00
Nicolai Hähnle
d29cdde569 r300: Remove GLcontext requirement from radeon_program_pair
Signed-off-by: Nicolai Hähnle <nhaehnle@gmail.com>
2009-07-27 20:32:03 +02:00
Nicolai Hähnle
cb8c694adb r300/program_pair: Introduce driver-specific texture instruction structure
This is to prepare more experimentation and possible internal changes in the
compiler.

Signed-off-by: Nicolai Hähnle <nhaehnle@gmail.com>
2009-07-27 20:32:02 +02:00
Nicolai Hähnle
78f88d8b87 r300/program_pair: Dynamically allocate instructions temporarily
In preparation of using TGSI, where we cannot easily predict the number
of instructions.

Signed-off-by: Nicolai Hähnle <nhaehnle@gmail.com>
2009-07-27 20:32:02 +02:00
Nicolai Hähnle
e5bed439be r300: Detangle fragment program compiler from driver-specific structure
This is in preparation of sharing the fragment program compiler with Gallium:
Compiler code is moved into its own directory and modified so that it no
longer depends on driver structures.

Signed-off-by: Nicolai Hähnle <nhaehnle@gmail.com>
2009-07-27 20:32:02 +02:00
Pauli Nieminen
6b142866ab radeon: Add r6xx/r7xx chip family to get_chip_family_name
This fixes problem that glxinfo was reporting r600+ cards as unknown.

Signed-off-by: Pauli Nieminen <suokkos@gmail.com>
2009-07-27 11:06:18 -04:00
Patrice Mandin
1ee3bcfff0 nouveau: swizzle a single row or column, doing it one pixel at a time 2009-07-27 10:58:11 +02:00
Alex Deucher
7d3190a85b r600: fix textures
We weren't allocating enough gprs for the fragment shader
in some cases.  There are likely other issues that still need
to be sorted out for textures, but at least they now work.
2009-07-27 03:52:37 -04:00
Alex Deucher
7e6819f843 r600: don't draw when num indices is 0
fixes engine demo
2009-07-27 02:26:41 -04:00
Alex Deucher
48b2fea142 r600: set VGT NUM_INSTANCES as part of the draw command
set VGT NUM_INSTANCES as part of the draw command rather
than as state as recommended by the pm4 guide.  Also,
use the NUM_INSTANCES packet.
2009-07-27 02:26:41 -04:00
Alex Deucher
600a53a32e r600: Use R600_SCRATCH_REG_OFFSET rather than RADEON_SCRATCH_REG_OFFSET
noticed by vehemens on IRC.
2009-07-27 02:26:41 -04:00
Alex Deucher
0b3d51ee31 r600: switch vtx resource setup to use SETfield macros
For consistency
2009-07-27 02:26:41 -04:00
Alex Deucher
2c5e55d919 r600: switch tex code to use SETfield macros
for consistency with the rest of the code.
2009-07-27 02:26:41 -04:00
Corbin Simpson
7a10472f09 r300g: Fix two trivial texture size issues.
Next thing to fix: progs/tests/mipgen.
2009-07-26 22:48:20 -07:00
Corbin Simpson
725c1f004c radeon-gallium: If BO allocation fails, return NULL. 2009-07-26 22:35:26 -07:00
Corbin Simpson
2cbd5ecfb6 r300g: Add some debugging, correct little bits of math in texture setup.
Simple stuff still works, but not sure about some of the more complex things.
2009-07-26 21:38:24 -07:00
Patrice Mandin
8df35b7b57 nouveau: only swizzle square textures for copy 2009-07-26 22:30:35 +02:00
Patrice Mandin
2b8a8f75f3 nouveau: Take into account destination position for copy_swizzle, need to split copy a bit more 2009-07-26 16:18:06 +02:00
Patrice Mandin
77a8a650e6 nouveau: Recursively swizzle an NPOT sized copy 2009-07-26 12:30:12 +02:00
Patrice Mandin
8c30292a6e nouveau: use nv04_surface_copy_swizzle only for POT sizes 2009-07-24 23:37:46 +02:00
Joakim Sindholt
12b183d250 radeon-gallium: remove old getparam ioctl 2009-07-24 14:54:00 +02:00
Alex Deucher
3b4235d4eb r600: fix segfault in morph3d
These attributes still need work, but it shouldn't hurt to
enable them.
2009-07-23 18:26:02 -04:00
Keith Whitwell
aa99a765c1 draw: correct address for machine struct in llvm path
This changed after a recent commit.
2009-07-23 18:48:04 +01:00
Keith Whitwell
adc6f8cdfc gallivm: updates for TGSI changes
make linux-llvm succeeds, but doesn't seem to be working, at least with
llvm 2.5
2009-07-23 17:59:08 +01:00
Corbin Simpson
ca83d5a8db r300g, radeon-gallium: Fix API, cleanup.
Something called "validate" should return FALSE on failure, not TRUE.
2009-07-23 07:18:29 -07:00
Nicolai Hähnle
27b3c435ba radeon-gallium: Build fixes wrt changed libdrm_radeon space check API
Had to be hacked up a bit to apply to master. Sorry 'bout that. :3
2009-07-23 07:18:29 -07:00
Corbin Simpson
256eacbde4 r300g: PIPE_CAP_BLEND_EQUATION_SEPARATE. 2009-07-23 07:18:29 -07:00
Keith Whitwell
d0d98f3ecf gallium: clean up opcode definitions
Remove commented-out opcodes.  Remove information about API mappings
to opcodes, but add a reference to tgsi-instruction-set.txt where
that information is better presented.
2009-07-23 14:39:07 +01:00
Keith Whitwell
78379abcbf gallium: remove deprecated TGSI opcodes
Various opcodes which can be implemented trivially with other TGSI opcodes,
such as matrix multiplication and negation.  These were not used by any
state tracker or implemented by any of the drivers.
2009-07-23 14:38:26 +01:00
José Fonseca
8b78294d21 r600: Remove CRLF line endings. 2009-07-23 14:11:10 +01:00
Vinson Lee
af1163cc41 util: Add support for Mac OS. 2009-07-23 14:08:07 +01:00
Corbin Simpson
07961bb05e r300g: Actually mark shaders as translated/untranslated.
Also trust that Gallium will not give us TGSI that miscounts shader consts.

This creates a 20x speedup on glxgears, from 8 FPS to 160 FPS.
2009-07-23 00:00:28 -07:00