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