Commit Graph

38615 Commits

Author SHA1 Message Date
Marek Olšák 6e64096190 r300g: remove unnecessary assignments 2010-09-04 19:06:47 +02:00
Marek Olšák 58471c801a r300/compiler: indent printed instructions according to the branch depth 2010-09-04 18:56:22 +02:00
Marek Olšák d3ca8a4edd r300g: skip draw calls with no vertex elements, fixing hardlocks 2010-09-04 18:56:22 +02:00
Marek Olšák d774b0c710 r300/compiler: use limits from the compiler input instead of inline constants 2010-09-04 18:56:22 +02:00
Marek Olšák 63943c8fcd r300/compiler: improve register allocation with indexable temporaries for VS
Register allocation can now reallocate temporaries right after the last indexed
source operand, instead of being disabled for the whole shader.
2010-09-04 18:56:22 +02:00
Marek Olšák 33360a707e r300/compiler: fix handling of indexed temporaries in peephole 2010-09-04 18:56:22 +02:00
Marek Olšák aa554d508b r300/compiler: disable deadcode elimination for indexed dst operands 2010-09-04 18:56:22 +02:00
Marek Olšák f90c870304 r300/compiler: allocate at least FS inputs if register allocation is disabled 2010-09-04 18:56:22 +02:00
Marek Olšák cfc461fca6 r300g: add a new debug option which disables compiler optimizations
Those are:
- dead-code elimination
- constant folding
- peephole (mainly copy propagation)
- register allocation

There are some bugs which I need to track down.

Also fix up the descriptions of all the debug options.
2010-09-04 18:56:22 +02:00
Marek Olšák d2f4ceaa47 r300/compiler: compute the final number of temporaries during translation
And not during the register allocation, which may be skipped for debugging
purposes. Also the predicate register is now added to the number of temps.
2010-09-04 18:56:21 +02:00
Marek Olšák f46fd04136 r300/compiler: make optimizations not use 0.5 swizzles in vertex shaders 2010-09-04 18:56:21 +02:00
Marek Olšák 63eafaa8ec r300/compiler: use peephole and constant folding for vertex shaders too 2010-09-04 18:56:21 +02:00
Marek Olšák f5609ff0d7 r300/compiler: remove unused enum OPCODE_REPL_ALPHA
We use RC_OPCODE_REPL_ALPHA instead.
2010-09-04 18:56:21 +02:00
Marek Olšák fba5f6bda7 r300/compiler: refactor fragment shader compilation
This cleans up the mess in r3xx_compile_fragment_program.
2010-09-04 18:56:21 +02:00
Marek Olšák 3ba562e62a r300/compiler: add new compiler parameter max_constants 2010-09-04 18:56:21 +02:00
Marek Olšák 0b9f836147 r300/compiler: refactor vertex shader compilation
First list compiler passes in an array, then run the new function rc_run_compiler.
Every backend may need a different set of passes.
This cleans up the mess in r3xx_compile_vertex_program.
2010-09-04 18:56:21 +02:00
Marek Olšák 9a9aa7daa8 r300/compiler: remove a redundant parameter in rc_pair_regalloc 2010-09-04 18:56:21 +02:00
Marek Olšák f0ae99252a r300/compiler: remove a redundant parameter in rc_dataflow_deadcode
&c->Base == c.
2010-09-04 18:56:21 +02:00
Marek Olšák cc8f2d5599 r300/compiler: use null-terminated array of transformation functions
I need to reduce the number of parameters of each compiler pass function.
This is part of a larger cleanup.
2010-09-04 18:56:21 +02:00
Marek Olšák 56de72c78a r300g: only check for an empty shader if there are no compile errors 2010-09-04 18:56:20 +02:00
Marek Olšák 313e95f0c7 r300/compiler: add new compiler parameter max_alu_insts 2010-09-04 18:56:20 +02:00
Marek Olšák a0fb406d9f r300/compiler: put emulate_loop_state in radeon_compiler 2010-09-04 18:56:20 +02:00
Kenneth Graunke 79088746a2 ir_reader: Run ir_validate on the generated IR.
It's just too easy to get something wrong in hand-written IR.
2010-09-04 02:19:38 -07:00
Kenneth Graunke 2809d70723 ir_reader: Emit global variables at the top of the instruction list.
Since functions are emitted when scanning for prototypes, functions
always come first, even if the original IR listed the variable
declarations first.

Fixes an ir_validate error (to be turned on in the next commit).
2010-09-04 02:19:38 -07:00
Kenneth Graunke b758de16e3 ir_reader: Drop support for reading the old assignment format. 2010-09-04 02:19:38 -07:00
Kenneth Graunke a878107d6c glsl: Regenerate autogenerated file builtin_function.cpp. 2010-09-04 02:19:37 -07:00
Kenneth Graunke bacbf941d2 glsl/builtins: Convert assignments to new format (with write mask). 2010-09-04 02:19:37 -07:00
Kenneth Graunke 03a6276477 ir_reader: Read the new assignment format (with write mask).
This preserves the ability to read the old format, for momentary
compatibility with all the existing IR implementations of built-ins.
2010-09-04 02:19:37 -07:00
Kenneth Graunke a71b46a8ad ir_reader: Track the current function and report it in error messages. 2010-09-04 02:19:37 -07:00
Kenneth Graunke a7dc8081b6 glsl/builtins: Actually print the info log if reading a builtin failed. 2010-09-04 02:19:37 -07:00
Luca Barbieri 7a830ac49f nvfx: consolidate tiny files
We probably want to reorganize the remaining files too, but that's
for later, maybe.
2010-09-04 05:31:52 +02:00
Luca Barbieri 603bef5572 mesa/st: add missing _mesa_set_fetch_functions in st_get_tex_image
Fixes piglit fdo25614-genmipmap.
2010-09-04 05:13:06 +02:00
Luca Barbieri f1d50606ba nvfx: fix vp DP2 2010-09-04 04:43:02 +02:00
Luca Barbieri 72648ca51f nvfx: implement fp SSG properly 2010-09-04 04:38:43 +02:00
Luca Barbieri 527a4f11a7 nvfx: don't claim we support preds since the driver doesn't 2010-09-04 04:05:37 +02:00
Luca Barbieri f1507806ca nv40: support all 10 texcoords 2010-09-04 04:05:37 +02:00
Luca Barbieri c98b29ec92 nvfx: add missing context init 2010-09-04 03:05:28 +02:00
Luca Barbieri e887a9fcad nvfx: tidy up state_emit 2010-09-04 03:05:22 +02:00
Luca Barbieri 71a8544f89 nvfx: support all coord conventions in hardware 2010-09-04 02:57:14 +02:00
Luca Barbieri 5dd296bcb1 nvfx: add missing pushbuffer space check 2010-09-04 02:37:41 +02:00
Luca Barbieri 351a669465 nvfx: support all possible vs consts
We were incorrectly setting a register that limited the range of
constants accessible via indirect addressing.

Setting it correctly, we can address all the constants the GPU
supports.
2010-09-04 02:27:59 +02:00
Luca Barbieri fa82ad84fb nvfx: set magic bit to round NPOT mipmap sizes down and not up
Does any API even use rounding-up?
2010-09-04 02:08:02 +02:00
Luca Barbieri 60fe5757ae nvfx: allow nested blitter usage, fixing bug in clear 2010-09-04 02:08:02 +02:00
Brian Paul 3b8182793b galahad: do map/unmap counting for resources 2010-09-03 16:35:07 -06:00
Brian Paul f1de38b851 libgl-xlib: enable galahad support
If the GALLIUM_GALAHAD env var is 1 we'll wrap the regular driver with
the galahad validation driver.
2010-09-03 16:33:20 -06:00
Brian Paul 14056e052b scons: added galahad to driver list 2010-09-03 16:25:44 -06:00
Brian Paul 2a5491792e mesa: also build galahad driver 2010-09-03 15:57:48 -06:00
Brian Paul a5fd039672 exec_list: replace class with struct
To match the definition below.
2010-09-03 15:25:55 -06:00
Brian Paul 8680c13240 mesa: fix up a comment 2010-09-03 15:22:26 -06:00
Brian Paul d500ad4405 st/glx: added some comments 2010-09-03 15:22:26 -06:00