Commit graph

31 commits

Author SHA1 Message Date
Keith Whitwell
c727fa6dbf Merge commit 'origin/gallium-draw-retval'
Conflicts:
	src/gallium/drivers/identity/id_context.c
2010-01-05 14:13:40 +00:00
Brian Paul
c0b4fb06b8 gallium: pipe_context::render_condition() and mode flags
For conditional rendering predicated on results of an occlusion query.

If this driver function is NULL, conditional rendering is not supported by
the driver.
2009-12-31 14:45:15 -07:00
Zack Rusin
89d8577fb3 gallium: add geometry shader support to gallium 2009-12-25 05:52:16 -05:00
Keith Whitwell
09e785ee04 gallium: remove return value from draw calls 2009-12-21 22:14:35 +00:00
Keith Whitwell
a08e348a84 gallium: first steps to treat edgeflags as regular vertex element
The idea here is to eliminate the set_edgeflags() call in pipe_context
by treating edgeflags as a regular vertex element.

Edgeflags provoke special treatment in hardware, which means we need to
label them in some way, in this case we'll be passing them through the
vertex shader and labelling the vertex shader output with a new TGSI
semantic (TGSI_SEMANTIC_EDGEFLAG).
2009-12-09 19:03:10 +01:00
Michal Krol
15d1b406af gallium: Introduce separate vertex texture/sampler state.
Previously, gallium shared sampler and texture state between vertex
and fragment shader stages. This change generalises this concept by
providing separate entrypoints for vertex and fragment sampler state
setting.

A new capability bit is added to query the driver for the number
of samplers that can be utilised by a vertex and fragment shader
at the same time.
2009-12-01 09:51:56 +01:00
Corbin Simpson
bb567357bc gallium: Permit surface_copy and surface_fill to be NULL.
Uf. Lots of files touched. Would people with working vega, xorg, dri1, etc.
please make sure you are not broken, and fix yourself up if you are.

There were only two or three places where the code did not have painful
fallbacks, so I would advise st maintainers to find less painful workarounds,
or consider overhauling util_surface_copy and util_surface_fill.

Per ymanton, darktama, and Dr_Jakob's suggestions, clear has been left as-is.

I will not add PIPE_CAP_BLITTER unless it is deemed necessary.
2009-10-17 21:32:56 -07:00
Brian Paul
1c1ee1176d gallium: improved comments, minor whitespace changes 2009-08-18 09:31:22 -06:00
Thomas Hellstrom
9b75627fab gallium: Make sure we flush before some texture / buffer operations.
Also implement context member functions to optimize away those
flushes whenever possible.

Signed-off-by: Thomas Hellstrom <thellstrom-at-vmware-dot-com>
2009-04-15 17:16:58 +02:00
Brian Paul
92d3b2a4da gallium: comments for surface_copy(), surface_fill() in p_context.h 2009-04-09 18:40:24 -06:00
Michel Dänzer
eb168e26aa gallium: Clean up driver clear() interface.
Only allows clearing currently bound buffers, but colour and depth/stencil in
a single call.
2009-04-04 19:01:51 +02:00
Jakob Bornecrantz
f500f3a72c gallium: Remove do_flip argument from surface_copy
I should have gotten most uses and implementation
	correctly fixed, but things might break.

	Feel free to blame me.
2009-03-13 01:38:20 +01:00
Brian Paul
0703b2e9ad gallium: move 'struct pipe_winsys'
Not used in p_state.h but used in p_context.h and p_screen.h
2009-02-05 08:16:56 -07:00
José Fonseca
ab3a9f1eed gallium: Replace uint64 by standard uint64_t.
uint64 is not (so?) standard, and often redefined by third parties,
causing name clashes.
2009-01-08 12:41:45 +00:00
Brian Paul
e14126ec81 gallium: change surface_copy()'s do_flip to boolean 2008-06-23 08:54:16 -06:00
Keith Whitwell
82605d7bcd draw: draw_range_elements trial 2008-05-29 11:48:04 +01:00
Keith Whitwell
c9ed86a964 gallium: tex surface checkpoint 2008-05-01 12:00:45 +01:00
Keith Whitwell
84501e68f6 gallium: Handle client-supplied edgeflags.
Also, implement support in the draw module.  We were hardwiring these
to one for quite a long time...

Currently using a draw_set_edgeflags() function, may be better to push
the argument into the draw_arrays() function.  TBD.
2008-04-04 17:05:27 +01:00
Brian Paul
a52c0416d1 gallium: Set vertex state/buffers en-mass. 2008-03-29 14:41:03 +01:00
Brian Paul
37da2d6851 gallium: updated/improved comments, minor re-formatting 2008-03-27 17:18:25 -06:00
Michel Dänzer
4abe1eb980 gallium: Change pipe->flush() interface to optionally return a fence.
The cell driver still uses an internal CELL_FLUSH_WAIT flag, in the long run
proper fencing should be implemented for it.
2008-03-26 09:36:40 +00:00
Brian Paul
4984487bc3 gallium: add face, dirtyLevels params to pipe->texture_update()
This provides better information about which images in texture object have changed.
Also, call texture_update() from more places previously missed.
2008-03-19 17:15:14 -06:00
Keith Whitwell
4528287e04 gallium: michel's patch to rework texture/sampler binding interface
Bind all the samplers/textures at once rather than piecemeal.
This is easier for drivers to understand.
2008-03-05 10:56:49 +01:00
Brian
78220aea86 gallium: remove the ugly pipe->draw stage lookup code in aaline/point/pstipple stages
Added a void *draw ptr to pipe_context.  Probably look for a better solution someday.
2008-02-29 10:08:16 -07:00
Brian
6f715dcc21 gallium: remove pipe_context->texture_create/release/get_tex_surface()
These functions are now per-screen, not per-context.
2008-02-27 14:21:12 -07:00
Brian
364f8cad0f gallium: move is_format_supported() to pipe_screen struct 2008-02-27 13:58:06 -07:00
Brian
8383f798b4 gallium: start removing pipe_context->get_name/vendor/param/paramf
These are now per-screen functions, not per-context.
State tracker updated, code in drivers and p_context.h disabled.
2008-02-27 11:24:35 -07:00
Brian
aa59a937cc gallium: introduce 'pipe_screen' for context-independent functions
This will allow creating textures before a rendering context exists, for example.
Only implemented in i915 driver for now.  i915pipe->texture_create() just
dispatches through to the i915screen->texture_create() to avoid state tracker
changes for now.
2008-02-26 20:15:14 -07:00
José Fonseca
e4e3008923 Make the pipe headers C++ friendly. 2008-02-25 20:05:41 +09:00
Brian
d5640a2dbd gallium: new pipe->texture_update() function
Called whenever texture data is changed (glTexImage, glTexSubImage,
glCopyTexSubImage, etc).
2008-02-20 13:24:52 -07:00
José Fonseca
b642730be9 Code reorganization: move files into their places.
This is in a separate commit to ensure renames are properly preserved.
2008-02-15 17:45:40 +09:00
Renamed from src/mesa/pipe/p_context.h (Browse further)