Commit graph

13455 commits

Author SHA1 Message Date
José Fonseca
09059259be First stab at hooking draw_vbuf & vf.
Emit disabled for now. Tested with softpipe. Only one vertex at a time for now (slow).
2008-01-28 18:46:21 +09:00
José Fonseca
19caf4e4f0 Clone vf module. 2008-01-28 15:48:51 +09:00
José Fonseca
c3f10aef38 Simplify prototypes of draw_vbuf's internal functions. 2008-01-28 15:00:08 +09:00
José Fonseca
3b93c74a8d Cache the vinfo in vbuf_stage. 2008-01-28 14:51:14 +09:00
José Fonseca
dac124081d Do refcounting trhoughout all buffer objects, since it is now a base requirement. 2008-01-27 19:22:25 +09:00
José Fonseca
e6c8278c04 Fullfill pipe_winsys->user_buffer_create. Aggregate winsys functions. 2008-01-27 19:20:48 +09:00
Brian
87a8a339d7 Cell: added support for inlined vertex buffers.
Small prims are now self-contained in batch buffers when space allows.
2008-01-26 19:38:16 -07:00
Brian
419a5cca34 Cell: added ROUNUP4 2008-01-26 19:31:20 -07:00
Brian
1bab5bd24e Cell: added support for inlined indexes
If there's room in the batch buffer after the rendering command to accomodate
the indexes, put them there rather than in a separate buffer.
2008-01-26 18:30:44 -07:00
Brian
8dc5972908 Cell: added cell_batch_free_space() 2008-01-26 18:27:37 -07:00
Brian
651e8e9a73 gallium: disable unnecessary point/line/tri re-validation in vbuf_flush_indices() 2008-01-26 16:46:52 -07:00
Brian
b717de3238 Cell: remove some old tile code 2008-01-26 16:06:26 -07:00
Brian
ffeae75031 gallium: s/GLuint/unsigned/ to work with gallium when THREADS not defined 2008-01-26 16:05:35 -07:00
Brian
9ef61b9808 gallium: fix a few segfaults/assertions that can happen during context init 2008-01-26 16:04:47 -07:00
Brian
856db7dee6 Cell: fix a recursive flushing bug 2008-01-26 14:15:53 -07:00
Brian
d4bd6ca816 Cell: add check to catch recursive batch flushing 2008-01-26 14:15:53 -07:00
Brian
7f4bec264e Cell: move ASSERT macro into common.h 2008-01-26 14:15:53 -07:00
José Fonseca
65df024146 gallium: Aggregate all buffer allocation info into a single struct. Obey requested alignment. 2008-01-26 11:46:49 +09:00
José Fonseca
ca01ed45e8 gallium: Make mm buffer manager more portable. 2008-01-26 11:11:08 +09:00
José Fonseca
0afe449bfc gallium: Remove unneeded headers. 2008-01-26 11:06:23 +09:00
Keith Whitwell
8ee1452e18 gallium: fix linux build 2008-01-26 11:06:01 +09:00
Michal Krol
9387784fbf gallium: Fix build on Windows. 2008-01-26 11:05:42 +09:00
Michal Krol
0fe428f1df d3d: Fix build on Windows. 2008-01-26 11:05:24 +09:00
Michal Krol
b8dc2956df gallium: Fix build on WinXP. 2008-01-26 11:00:49 +09:00
José Fonseca
1d6c98651f gallium: Use directory name in include. 2008-01-26 10:52:21 +09:00
Michal Krol
6c3d12e374 gallium: Fix build for WinXP. 2008-01-26 10:52:01 +09:00
José Fonseca
7411a84c2b gallium: Define MALLOC_STRUCT. 2008-01-26 10:35:09 +09:00
Michal Krol
9cbff50cb8 gallium: Fix build on Windows. 2008-01-26 10:33:32 +09:00
Michal Krol
337ebdd8f9 gallium: Fix build on Windows. 2008-01-26 10:33:26 +09:00
Keith Whitwell
027983f585 gallium: restructure vertex fetch code slightly 2008-01-26 10:33:18 +09:00
José Fonseca
c3e4e9260d gallium: Fix MSVC float/double conversion warning. 2008-01-26 10:33:02 +09:00
José Fonseca
2bca9f6457 gallium: Complete integer types. 2008-01-26 10:32:59 +09:00
Keith Whitwell
f3aa4de034 gallium: minor cleanups to pipe interface
- Remove put/get tile, just have users call put_tile_raw, etc directly.
- Remove surface_data call, just map it locally.
2008-01-26 10:32:13 +09:00
Keith Whitwell
1e9e4341e0 gallium: add PIPE_FLUSH_SWAPBUFFERS flag 2008-01-26 10:30:40 +09:00
Keith Whitwell
6d2d41294c gallium: add notify_swapbuffers_complete, use it to set surfaces to undefined state 2008-01-26 10:30:35 +09:00
Keith Whitwell
596a92ee75 gallium: specialize glFlush vs other flush semantics 2008-01-26 10:30:31 +09:00
Keith Whitwell
a97b3f64b3 gallium: remove makefile whitespace 2008-01-26 10:29:47 +09:00
Brian
0b958e3b7c Cell: updates to match pipe_buffer changes 2008-01-25 17:34:22 -07:00
Brian
b5618330c6 Cell: typedefs need semicolons, Ian :) 2008-01-25 17:34:04 -07:00
Brian
4d534124e7 Cell: emit framebuffer state like other state
Plus misc clean-up.  Window resize sometimes works now.
2008-01-25 17:25:56 -07:00
Brian
42d38ac02f gallium: replace loop w/ memset in draw_vertex_cache_invalidate() 2008-01-25 17:22:56 -07:00
Brian
1603a33fb2 gallium: better flush logic in draw module
This is the other half of Keith's draw/flush patch.

There are now 5 flush flags to control what's flushed (post-xform vertex
cache, prim cache, vbuf, etc).

The gears slow-down in this part of the patch was due to the cull stage not
getting invoked.  It was unconditional before, but is now gated by 'need_det'.
But it also needs to be gated by draw->rasterizer->cull_mode.  Gears uses
back-face culling.
2008-01-25 17:22:56 -07:00
Brian
0bfd085e28 gallium: replace prim pipeline begin/end() functions with flush()
This is basically half of Keith's draw/flush patch.

The stage->point/line/tri() functions are now self-validating, the validator
functions are installed by the flush() function.

There were excessive calls to validate_pipeline(), however.  This was caused
by draw_prim_queue_flush() keeping a local 'first' variable that always pointed
to the validate functions.  Replaced 'first' with 'draw->pipeline.first'.

Performance in gears is up just slightly with this patch.
2008-01-25 17:22:56 -07:00
Ian Romanick
bd8bf60b6f Work around parameter differences for main in different SDK versions 2008-01-25 14:47:20 -08:00
Keith Whitwell
1e0d30a515 gallium: rename pipe_buffer_handle to pipe_buffer, rework pipebuffer/ code
Provide an actual definition of the pipe_buffer struct,  containing
the parameters used to create the buffer, and its refcount.

Shift refcounting buffers out of the winsys interface, similar to
surfaces & textures.

Rework pipebuffer/ to reflect the fact these changes, and also Michel's
reworking of the buffer interface.
2008-01-25 20:53:31 +00:00
Michel Dänzer
756d52ec12 gallium: Simplify winsys buffer interface.
The properties of a buffer represented by struct pipe_buffer_handle are now
basically constant over its lifetime. The state tracker gets to deal with any
more complex buffer semantics it may need to provide.
2008-01-25 17:01:01 +01:00
Keith Whitwell
7a207682aa 965: add asserts to catch batch overrun 2008-01-25 15:50:05 +00:00
Keith Whitwell
59d66bf9df 965: cope better with range decls for temps, immediates, etc 2008-01-25 15:50:05 +00:00
Brian
c344bda34d gallium: include p_state.h, replace PIPE_MAX_SHADER_OUTPUTS with PIPE_MAX_SHADER_INPUTS 2008-01-25 08:20:10 -07:00
Brian
235da629dc Cell: propogate vertex info to SPUs, use it for attrib interpolation 2008-01-25 08:20:10 -07:00