Commit graph

13455 commits

Author SHA1 Message Date
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
Keith Whitwell
1e2d6b1b82 gallium: remove dead vars, code 2008-01-28 20:58:26 +00:00
Keith Whitwell
c50ba44095 gallium: fix typos in hardwired fetch path 2008-01-28 20:58:26 +00:00
Brian
bd299093ec push out far clip plane to 200 2008-01-28 12:42:37 -07:00
Brian
ba083bae69 Added d/D keys to change viewing distance, 'a' to toggle animation 2008-01-28 12:37:35 -07:00
Brian
3d1b0f4c57 Cell: additional assertions 2008-01-28 11:31:58 -07:00
Brian
a8590e097e Cell: make sure state commands aren't split across batches 2008-01-28 11:31:58 -07:00
Brian
3f8a8eada6 Cell: remove unneeded flush(), dead code 2008-01-28 11:31:58 -07:00
Brian
5b5ec94663 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-01-28 11:31:57 -07:00
Brian
7024019d4e Cell: checkpoint commit: always inline prim indexes into batch buffer
Also, explicit release-vertex-buffer command.
Lots of debug/stale code still in place...
2008-01-28 11:31:57 -07:00
Brian
200dcb4760 Cell: If flushing for swapbuffers, wait for frame completion 2008-01-28 11:31:57 -07:00
Brian
aaea9a121b Cell: additional debug code, misc clean-up 2008-01-28 11:31:57 -07:00
Brian
2194675196 Cell: generalize the batch buffer code for vertex buffers... 2008-01-28 11:31:57 -07:00
Brian
16ed55c641 gallium: check if surface has defined status in check_clear_depth_with_quad()
This was part of Keith's patch from Friday.
2008-01-28 09:23:50 -07:00
Keith Whitwell
82d9063708 gallium: handle flatshading explicitly in clipper stage
We can do a better job in the clip stage than just relying on the
brute-force approach of copying colors to all incoming vertices applied
in the flatshade stage.

At very least, it is only necessary to do this in the clipper when a
primitive is actually being clipped.
2008-01-28 15:50:02 +00:00
Keith Whitwell
88858e0468 gallium: add a couple of hardwired vertex fetch functions 2008-01-28 12:40:29 +00:00
Keith Whitwell
99f2976511 gallium: only call vertex/prim queue flush when there is something to flush 2008-01-28 11:12:11 +00:00
Keith Whitwell
a46181044f gallium: explictly cast double to float in vertex fetch 2008-01-28 10:48:22 +00:00
Keith Whitwell
4141ebdf59 gallium: fill in missing formats for vertex_fetch 2008-01-28 10:46:52 +00:00
Keith Whitwell
5abc8d9e23 gallium: remove dead code from draw_vf* 2008-01-28 10:14:13 +00:00