José Fonseca
c285e06e93
gallium: Add SCons as alternative build system for Gallium.
2008-02-15 13:50:27 +11:00
Ian Romanick
2029ee48b1
I don't know why using uint64_t for "base" doesn't work. Ugh.
2008-02-15 13:50:27 +11:00
Ian Romanick
bcaf0dd8d2
Use SPUs for vertex shader processing
2008-02-15 13:50:27 +11:00
Ian Romanick
87cc80297c
Add driver_private field for drivers that hook shader_queue_flush.
2008-02-15 13:50:27 +11:00
Ian Romanick
524f99a4ab
Numerous small fixed to PPU-SPU vertex shader protocol
2008-02-15 13:50:27 +11:00
Ian Romanick
42db571598
cell_array_info should not be 16-byte aligned
...
Forcing cell_array_info to be 16-byte aligned makes it more difficult
to stuff that state in batch commands.
2008-02-15 13:50:27 +11:00
Ian Romanick
738a4292b1
Correctly read / write vertex header from / to main memory
2008-02-15 13:50:27 +11:00
Ian Romanick
6996b6c055
Handle CELL_CMD_VS_EXECUTE *only* outside batch commands.
2008-02-15 13:50:27 +11:00
Ian Romanick
fea350d911
Set machine->Processor
...
The default value is 0, which is TGSI_PROCESSOR_FRAGMENT...not correct
for a vertex shader!
2008-02-15 13:50:27 +11:00
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