Commit Graph

59 Commits

Author SHA1 Message Date
Zack Rusin
ccd63b54cf Convert shader to an immutable state object. 2007-09-18 13:24:44 -04:00
Zack Rusin
de69fc1703 Finishing up rename of the setup state to the rasterizer state. 2007-09-18 10:02:16 -04:00
Zack Rusin
294401814d converting the setup state to immutable object and renaming it to rasterizer state 2007-09-18 07:18:12 -04:00
Zack Rusin
d6ac959833 Combing depth and stencil objects and making them immutable.
Converting depth and stencil objects into a single state object
(d3d10 like) and making it immutable.
2007-09-18 06:31:22 -04:00
Zack Rusin
f117327a3f Make sampler an immutable state object.
Switch the sample to be an immutable state object.
2007-09-18 06:31:22 -04:00
Zack Rusin
9780327c5d First stab at immutable state objects (create/bind/delete)
We want our state objects to be immutable, handled via the
create/bind/delete calls instead of struct propagation.
Only implementing the blend state to see how it would look like
and work.
2007-09-18 06:31:22 -04:00
Brian
09fbb3837b Implement query object interface.
This replaces the temporary occlusion counter functions we had before.
Added new ctx->Driver.WaitQuery() function which should block until the result is ready.
Sketch out some code for vertex transformation feedback counters.
2007-09-11 16:01:17 -06:00
Brian
d56a3adc30 More work on vertex feedback / glRasterPos. Basic rasterpos works now. 2007-09-10 16:29:23 -06:00
Brian
c0bb4ba9e6 Rework of shader constant buffers.
They're now totally independent of the actual shaders.
Also, implemented in terms of pipe_buffer_handles/objects.
2007-08-22 12:26:46 -06:00
Brian
8175eaa3b4 Checkpoint: remove more of the old draw_vb() code. 2007-08-20 16:31:12 -06:00
Brian
51da8ee85e Start to remove the temporary draw_vb() and draw_vertices() code.
new st_draw_vertices() utility used by glClear and glDrawPixels
2007-08-20 16:21:08 -06:00
Brian
1dd55a77c8 implement draw_elements() 2007-08-20 12:52:00 -06:00
Brian
14327705fd Fix some draw_arrays issues.
We weren't mapping all the needed vertex array buffers.
Move array state that was temporarily in draw_context to softpipe_context.
Remove a bunch of dead code.
2007-08-19 17:31:21 +01:00
Brian
3fc926f374 Remove many dependencies on mesa headers.
To build with mesa, need -DMESA in makefile/config file.
2007-08-16 18:11:55 -06:00
Brian
e3bdd66bf6 misc changes to support vertex shaders (disabled by default) 2007-08-16 17:33:49 -06:00
Brian
d9a230f30a Hook in new draw_arrays() code, disabled for now. 2007-08-15 19:04:45 -06:00
Keith Whitwell
70af238b49 Continue reducing dependencies on core mesa include files.
Mainly down to the support for legacy TNL processing now.
2007-08-14 15:57:30 +01:00
Brian
cd308dfa79 map stencil buffer too 2007-08-13 18:20:04 -06:00
Keith Whitwell
39407fd854 Move string functions to state_tracker, add queries to pipe, winsys. 2007-08-10 16:44:07 +01:00
keithw
fb4ff8a2a8 use winsys supported_formats() query 2007-08-10 16:12:09 +01:00
Brian
8fbd81b4ed added pipe->max_texture_size() query, use it in st_drawpixels() 2007-08-10 15:48:54 -06:00
Keith Whitwell
47fc2c4349 Lift common winsys functions into pipe's new p_winsys. 2007-08-10 15:35:48 +01:00
Keith Whitwell
5c2c056000 Handle glFlush/glFinish through the state tracker. 2007-08-10 12:58:26 +01:00
Brian
ac36cdbcc1 added null ptr checks 2007-08-09 22:55:15 +01:00
Keith Whitwell
93d5cfd8b7 Add flush/finish functionality to pipe.
Not sure if finish() is the right interface yet.
2007-08-09 11:23:18 +01:00
Brian
11c557d3ca map/unmap textures 2007-08-07 18:24:29 -06:00
Brian
b23f358cbc sketch out new pipe surface/sampler types 2007-08-07 13:13:41 -06:00
Brian
4a60b94701 added softpipe_mipmap_tree_layout 2007-08-06 20:54:18 +01:00
Keith Whitwell
95794abec4 Add pipe buffer managment functions.
The state_tracker driver needs these to implement, eg. pixel buffer objects,
vertex buffer objects.
2007-08-06 10:15:30 +01:00
Keith Whitwell
1d1b9e6be4 Add a new interface between softpipe and the window system / buffer manager.
This interface is defined by softpipe and any window system (eg i915pipe)
wishing to use softpipe is required to implement the interface.
Currently the interface is all about buffer management.

Generalizing, each pipe driver will advertise an interface in a similar
spirit to this, and again any window system driver wishing to use that
rendering pipeline will have to implement the interface it defines.  It
clearly isn't a one-way street however, as softpipe could just do its own
buffer management with malloc.  The interaction with a buffer manager is
desired to allow us to exercise the hardware swapbuffers functionality of
the i915pipe driver, and also to get a feel for the way hardware drivers
which really need a buffer manager will work.
2007-08-05 17:25:36 +01:00
Brian
c358a39af5 added pipe->supported_formats() 2007-08-02 20:40:33 -06:00
Brian
55314f8f31 Implement new draw_vertices() path for simple vertex array drawing, use it for glClear. 2007-08-02 12:12:48 -06:00
Keith Whitwell
e99b673cb0 Build libsoftpipe.a
Each pipe driver will build to a .a library, as these will optionally
be included in the various DRI drivers (this will make more sense once
there is at least one hardware driver...).  Not strictly necessary for
softpipe, but want to minimize the differences between it and
actual hw implementations.
2007-08-01 15:56:23 +01:00
Brian
20adf45c23 Redesign pipe_surface in terms of pipe_region.
struct pipe_buffer goes away.
Added basic region functions to softpipe to allocate/release malloc'd regions.
Surface-related code is fairly coherent now.
2007-07-31 17:42:03 -06:00
Brian
4576d754c9 Lots of improvements to the surface-related code.
Z testing now works with i915 driver.
Add gl_renderbuffer::surface pointer (and reverse pointer).
Remove intel_surface and xmesa_surface types - no longer used.
2007-07-30 17:17:44 -06:00
Brian
f1569bf0d5 map/unmap surfaces before/after rendering 2007-07-30 13:11:27 -06:00
Brian
46bba80a54 Implement AA points and AA coverage application in quad pipeline. 2007-07-13 10:33:48 -06:00
Brian
563479552e Added basic occlusion counting 2007-07-13 09:25:57 -06:00
Brian
a48d767cf2 Add a quad 'bufloop' stage to handle glDrawBuffer(GL_FRONT_AND_BACK).
This removes the notion of multiple color buffers from all other stages.
Will need a bit more work when shaders with multiple render targets arrive.
2007-07-12 14:13:48 -06:00
Brian
c78f372b17 s/prim_setup/sp_draw_render_stage/, new comments 2007-07-12 13:43:33 -06:00
Brian
ea470eec86 Rename prim_stage -> draw_stage 2007-07-12 13:32:31 -06:00
Brian
86352ff70d Added colormask, dither, multisample state. Implement colormasking stage. 2007-07-12 12:20:14 -06:00
Brian
e89bd0fbc5 Implement polygon stipple state tracking, application. 2007-07-11 11:34:19 -06:00
Brian
73daa68854 Checkpoint: stencil roughly working, some bugs to fix... 2007-07-10 18:59:17 -06:00
Brian
e6eca5c37e Begin hooking up stenciling. 2007-07-10 16:37:18 -06:00
Brian
279ffe3f16 New 'draw' module for primitive drawing (clipping, culling, etc). 2007-07-09 16:14:26 -06:00
Brian
284efcfc27 hook in state tracking for blend color 2007-07-03 17:19:30 -06:00
Brian
ea92566ed9 rename a few structs (use _state suffix consistantly), reorder/sort fields in some structs 2007-07-02 15:32:12 -06:00
Brian
1be17dc446 consolidate point/line state into pipe_setup_state 2007-06-26 17:35:24 -06:00
Brian
5d69aeb002 initial texture object, texture format code 2007-06-22 13:37:47 -06:00