Commit graph

13336 commits

Author SHA1 Message Date
Ian Romanick
dcfe7e1dca Elts are always ints, pass vOut pointers in-line in command 2008-02-15 13:50:26 +11:00
Ian Romanick
bbbd5c166a Implement micro_pow and micro_sqrt
Unimplemented micro ops get assertions for now.
2008-02-15 13:50:26 +11:00
Ian Romanick
805aacfe60 Fix size calculation in attribute fetch. 2008-02-15 13:50:26 +11:00
Ian Romanick
ea1d5c43b2 Fetch uniforms from main memory. 2008-02-15 13:50:26 +11:00
Ian Romanick
c1ffb57cdf Missing amperstand in previous commit. Oops. 2008-02-15 13:50:26 +11:00
Ian Romanick
7abddcf123 Pass ptr to local memory copy instead of main memory to exec_instruction
This was essentially a cut-and-paste bug when the instruction fetcher
was added.  Also, the test for TGSI_PROCESSOR_FRAGMENT was moved
outside the loop for exec_declaration.
2008-02-15 13:50:26 +11:00
Ian Romanick
d798e7e268 Provide mechanism to hook in custom vertex shader cache flush function 2008-02-15 13:50:26 +11:00
Ian Romanick
fc4620554a Implement vertex fetch / vertex shader output write-back 2008-02-15 13:50:26 +11:00
Ian Romanick
5028f0fcac Initial pass at instruction / declaration fetch 2008-02-15 13:50:26 +11:00
Ian Romanick
98eecdb486 Initial pass at vertex shader on SPU using TGSI VM
All of the code is wired in on the SPU side, but it is not called from
the PPU yet.  Instruction / declaration fetch still needs to be
implemented in spu_exec.c.
2008-02-15 13:50:26 +11:00
Brian
3e4306c594 Cell: prototype SIMD code for z testing 2008-02-15 13:50:26 +11:00
Brian
1af8e381af Cell: start to SIMD-ize triangle attribute interpolation
Using the spu_add(), etc intrinsics.
About a 15% speed-up with some tests.
2008-02-15 13:50:26 +11:00
Brian
0b762d6543 Cell: fold setup_tri() into tri_draw() 2008-02-15 13:50:26 +11:00
Brian
ecb0013e2f Cell: make 'setup' a regular var instead of passing around a pointer everywhere
We'll never have more than one of these objects.
Avoiding pointer deref improves performance a bit.
2008-02-15 13:50:26 +11:00
Brian
ab5e8b33cb Cell: minor code refactoring, movement 2008-02-15 13:50:25 +11:00
Brian
69099004e6 Cell: check tile status before wait_on_mask() 2008-02-15 13:50:25 +11:00
Brian
ae69496596 Cell: make wait_on_mask() static/inlined 2008-02-15 13:50:25 +11:00
Brian
92d71f0730 Cell: move CELL_MAX_SPUS 2008-02-15 13:50:25 +11:00
José Fonseca
ee41d7afc9 gallium: Teach draw_vf about draw vertices.
This reduces the emit overhead, which is significant since we're
emiting one vertex at a time.
2008-02-15 13:50:25 +11:00
José Fonseca
cdb48e20d6 gallium: Remove draw_vertex_fetch::lookup.
It is not being used, and would be dangerous to use given the possibility of constants.
2008-02-15 13:50:25 +11:00
Michal Krol
fc36399f23 gallium: Fix build on WinXP. 2008-02-15 13:50:25 +11:00
Ben Skeggs
a5273f0fac nouveau: 0xdeadc0de 2008-02-15 13:50:25 +11:00
Brian
2b47b5b413 Cell: use _pack_rgba8() from pack_rgba8.h to do float[4]->uint color conversion
texcyl.c is twice as fast now in non-texture mode
2008-02-15 13:50:25 +11:00
Keith Whitwell
b63f994ec7 gallium: weaken assert slightly 2008-02-15 13:50:25 +11:00
Keith Whitwell
d7d3c75236 gallium: streamline various unfilled & stippled paths 2008-02-15 13:50:25 +11:00
Keith Whitwell
88469bf544 gallium: don't rely on assert(0) for error handling - may be disabled 2008-02-15 13:50:25 +11:00
José Fonseca
2da0724e99 gallium: Emit point size as a constant. 2008-02-15 13:50:24 +11:00
José Fonseca
c74f4a10f9 gallium: Emit constants. 2008-02-15 13:50:24 +11:00
José Fonseca
8a88f5e40f gallium: Allow draw_vf usage to be controlled at runtime. 2008-02-15 13:50:24 +11:00
José Fonseca
7710b36d28 gallium: Add extern keyword to global. 2008-02-15 13:50:24 +11:00
Brian
1c65928d84 Cell: add OPT_FLAGS var 2008-02-15 13:50:24 +11:00
Brian
e308dc4465 Cell: move cmd_render() into new spu_render.c file 2008-02-15 13:50:24 +11:00
Brian
c474e0d6ed Cell: add a few null texture tests 2008-02-15 13:50:24 +11:00
Brian
7012dd9b76 Cell: compute min index referenced in draw command, use it to reduce size of vertex data payload 2008-02-15 13:50:24 +11:00
Brian
5f54cfaba1 Cell: minor optimization for flat shading 2008-02-15 13:50:24 +11:00
Brian
948dc8ad24 Cell: basic texture mapping
Texture images are tiled in PPU code.  SPUs use a texture cache for getting
texels from textures.
This is very rough code, but demos/texcyl.c works.
2008-02-15 13:50:24 +11:00
Brian
2f868411a2 Cell: initial texture cache/sampling code 2008-02-15 13:50:24 +11:00
Brian
7c596b8011 Cell: emit state in cell_clear_surface() if dirty.
Without this a program that does nothing but glClear() doesn't work.  We need
the framebuffer state.
2008-02-15 13:50:24 +11:00
Brian
deaa895fe2 Cell: re-enable bounding boxes
The geometry bounding box is used to restrict rasterization to just those
tiles that are relevant.
Note another dummy field had to be added to the cell_command_render struct.
Apparently, every 4th word in a struct is susceptible to corruption in some
circumstances.  Might be a compiler bug.
2008-02-15 13:50:24 +11:00
José Fonseca
d6667171dc gallium: Use GALLIUM_ prefix for env vars. 2008-02-15 13:50:24 +11:00
José Fonseca
d5dd52aea8 gallium: Use CALLOC for pb_buffer to ensure that all fields of pipe_buffer are initiallized. 2008-02-15 13:50:23 +11:00
José Fonseca
5ec70aa03b gallium: Remove direct dependencies to mesa internals.
_mesa_exec_free is still being called. More invasive refactoring is necessary to clean it out.
2008-02-15 13:50:23 +11:00
Keith Whitwell
eb08501403 gallium: remove dead vars, code 2008-02-15 13:50:23 +11:00
Keith Whitwell
3c9e26e0fa gallium: fix typos in hardwired fetch path 2008-02-15 13:50:23 +11:00
Brian
0abef84995 push out far clip plane to 200 2008-02-15 13:50:23 +11:00
Brian
ab36a9346c Added d/D keys to change viewing distance, 'a' to toggle animation 2008-02-15 13:50:23 +11:00
Brian
5b4d14bf1c Cell: additional assertions 2008-02-15 13:50:23 +11:00
Brian
ca85eed771 Cell: make sure state commands aren't split across batches 2008-02-15 13:50:23 +11:00
Brian
1cbe803922 Cell: remove unneeded flush(), dead code 2008-02-15 13:50:23 +11:00
Brian
c4ef36dec0 Cell: clean-up of render path
Finally removed a number of unneeded flush commands.  Vertex buffers are
allocated from the general buffer pool, freed by SPUs when done.
Still an occasional failed assertion (invalid batch buffer command)...
2008-02-15 13:50:23 +11:00