Commit Graph

13174 Commits

Author SHA1 Message Date
José Fonseca c42e6254cf gallium: Add SCons as alternative build system for Gallium. 2008-01-31 14:22:21 +09:00
Ian Romanick 62d11b98c4 I don't know why using uint64_t for "base" doesn't work. Ugh. 2008-01-30 20:14:52 -08:00
Ian Romanick 5a6fd93930 Use SPUs for vertex shader processing 2008-01-30 20:14:52 -08:00
Ian Romanick a89ee8a96d Add driver_private field for drivers that hook shader_queue_flush. 2008-01-30 20:14:52 -08:00
Ian Romanick 9ad986b887 Numerous small fixed to PPU-SPU vertex shader protocol 2008-01-30 20:14:52 -08:00
Ian Romanick de949a471e 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-01-30 20:14:52 -08:00
Ian Romanick 10270fbe2d Correctly read / write vertex header from / to main memory 2008-01-30 20:14:52 -08:00
Ian Romanick 193491cbd3 Handle CELL_CMD_VS_EXECUTE *only* outside batch commands. 2008-01-30 20:14:52 -08:00
Ian Romanick fb348c2cb1 Set machine->Processor
The default value is 0, which is TGSI_PROCESSOR_FRAGMENT...not correct
for a vertex shader!
2008-01-30 20:14:52 -08:00
Ian Romanick 137cb72284 Elts are always ints, pass vOut pointers in-line in command 2008-01-30 20:14:51 -08:00
Ian Romanick 3349861146 Implement micro_pow and micro_sqrt
Unimplemented micro ops get assertions for now.
2008-01-30 20:14:51 -08:00
Ian Romanick 7b27d9fd66 Fix size calculation in attribute fetch. 2008-01-30 20:14:51 -08:00
Ian Romanick 708d699e0c Fetch uniforms from main memory. 2008-01-30 20:14:51 -08:00
Ian Romanick a0a707342a Missing amperstand in previous commit. Oops. 2008-01-30 20:14:51 -08:00
Ian Romanick fcf9441773 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-01-30 20:14:51 -08:00
Ian Romanick 3d13605ee5 Provide mechanism to hook in custom vertex shader cache flush function 2008-01-30 20:14:51 -08:00
Ian Romanick 13eec10688 Implement vertex fetch / vertex shader output write-back 2008-01-30 20:14:51 -08:00
Ian Romanick 33cac48241 Initial pass at instruction / declaration fetch 2008-01-30 20:14:51 -08:00
Ian Romanick 524bba17a7 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-01-30 20:14:51 -08:00
Brian 8fb73a5993 Cell: prototype SIMD code for z testing 2008-01-30 20:40:26 -07:00
Brian 24f0e54c1b Cell: start to SIMD-ize triangle attribute interpolation
Using the spu_add(), etc intrinsics.
About a 15% speed-up with some tests.
2008-01-30 15:26:51 -07:00
Brian 7b149449df Cell: fold setup_tri() into tri_draw() 2008-01-30 12:13:04 -07:00
Brian 022bf6dfa1 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-01-30 12:08:23 -07:00
Brian dcf41a0eed Cell: minor code refactoring, movement 2008-01-30 11:56:41 -07:00
Brian 0d3f60ec64 Cell: check tile status before wait_on_mask() 2008-01-30 11:56:14 -07:00
Brian 41bdf4cf4c Cell: make wait_on_mask() static/inlined 2008-01-30 11:49:51 -07:00
Brian da6eac242d Cell: move CELL_MAX_SPUS 2008-01-30 11:49:26 -07:00
José Fonseca eb0e0d38ea 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-01-30 16:47:33 +09:00
José Fonseca ed0327980a gallium: Remove draw_vertex_fetch::lookup.
It is not being used, and would be dangerous to use given the possibility of constants.
2008-01-30 16:00:07 +09:00
Michal Krol 17ef840af4 gallium: Fix build on WinXP. 2008-01-30 16:00:00 +09:00
Brian 7f2713a29f 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-01-29 11:23:44 -07:00
Keith Whitwell 1aaed38568 gallium: weaken assert slightly 2008-01-29 15:17:56 +00:00
Keith Whitwell c81848210e gallium: streamline various unfilled & stippled paths 2008-01-29 12:38:34 +00:00
Keith Whitwell c185c55aec gallium: don't rely on assert(0) for error handling - may be disabled 2008-01-29 12:38:34 +00:00
José Fonseca f94425b316 gallium: Emit point size as a constant. 2008-01-29 20:47:30 +09:00
José Fonseca 5022344c65 gallium: Emit constants. 2008-01-29 20:46:48 +09:00
José Fonseca 6f75de06ff gallium: Allow draw_vf usage to be controlled at runtime. 2008-01-29 18:01:40 +09:00
José Fonseca 3d3f7cf06e gallium: Add extern keyword to global. 2008-01-29 18:01:40 +09:00
Brian 59e7bfd5ac Cell: add OPT_FLAGS var 2008-01-28 18:18:46 -07:00
Brian 64935c8751 Cell: move cmd_render() into new spu_render.c file 2008-01-28 18:18:46 -07:00
Brian 4bede9219b Cell: add a few null texture tests 2008-01-28 18:18:46 -07:00
Brian e2406b4788 Cell: compute min index referenced in draw command, use it to reduce size of vertex data payload 2008-01-28 18:18:46 -07:00
Brian 25105276b3 Cell: minor optimization for flat shading 2008-01-28 18:18:46 -07:00
Brian 425f270fcb 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-01-28 18:18:46 -07:00
Brian c2372cc748 Cell: initial texture cache/sampling code 2008-01-28 18:18:46 -07:00
Brian 41899c70a7 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-01-28 18:18:46 -07:00
Brian 043fc00a60 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-01-28 18:18:46 -07:00
José Fonseca 1cc0b0dda7 gallium: Use GALLIUM_ prefix for env vars. 2008-01-29 09:42:03 +09:00
José Fonseca 93d727eea7 gallium: Use CALLOC for pb_buffer to ensure that all fields of pipe_buffer are initiallized. 2008-01-29 09:41:21 +09:00
José Fonseca f3d0882c02 gallium: Remove direct dependencies to mesa internals.
_mesa_exec_free is still being called. More invasive refactoring is necessary to clean it out.
2008-01-29 09:34:09 +09:00