summaryrefslogtreecommitdiff
path: root/src/gallium/include/pipe/p_defines.h
AgeCommit message (Collapse)Author
2010-01-29tgsi: add caps for fragment coord conventions (v3)Luca Barbieri
Changes in v3: - Renumber caps to accomodate caps to add to master in the meantime - Document caps - Add unsupported caps to *_screen.c too Changes in v2: - Split for properties patch - Use positive caps instead of negative caps This adds 4 caps to indicate support of each of the fragment coord conventions. All drivers are also modifed to add the appropriate caps. Some drivers were incorrectly using non-Gallium-default conventions, and caps for them have them set so that they will behave correctly after the later state tracker patches. This drivers are softpipe/llvmpipe (uses integer rather than half integer) and pre-nv50 Nouveau (uses lower left rather than upper left). Other drivers might be broken. With this patchset, fixing them is only a matter of exposing the appropriate caps that match the behavior of the existing code. Drivers are encouraged to support all conventions themselves for better performance, and this feature is added to softpipe in a later patch.
2010-01-28Merge commit 'origin/perrtblend'Roland Scheidegger
Conflicts: src/gallium/drivers/softpipe/sp_screen.c src/gallium/include/pipe/p_defines.h
2010-01-28gallium: remove PIPE_CAP_S3TC, and add PIPE_CAP_DUAL_SOURCE_BLENDRoland Scheidegger
there's no point in keeping deprecated PIPE_CAPS around since there's no stable interface (yet). Reuse the enum for PIPE_CAP_DUAL_SOURCE_BLEND. Drivers advertizing this will accept the pipe blendfactors with SRC1 in them and be able to do dual source blending (src color from pixel shader output 0, and blendfactor with SRC1 will come from output 1, only one render target may be bound when using any of these blend factors).
2010-01-28gallium: Add CAPs for constant buffers.Michal Krol
2010-01-21gallium: new PIPE_CAP bits for the independent blend functionalityRoland Scheidegger
2010-01-06gallium: remove PIPE_TEX_FILTER_ANISOLuca Barbieri
This patch removes PIPE_TEX_FILTER_ANISO. Anisotropic filtering is enabled if and only if max_anisotropy > 1.0. Values between 0.0 and 1.0, inclusive, of max_anisotropy are to be considered equivalent, and meaning to turn off anisotropic filtering. This approach has the small drawback of eliminating the possibility of enabling anisotropic filter on either minification or magnification separately, which Radeon hardware seems to support, is currently support by Gallium but not exposed to OpenGL. If this is actually useful it could be handled by splitting max_anisotropy in two values and adding an appropriate OpenGL extension. NOTE: some fiddling & reformatting by keithw to get this patch to apply. Hopefully nothing broken in the process.
2009-12-31gallium: pipe_context::render_condition() and mode flagsBrian Paul
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-25gallium: geometry shader can be always enabled and we don't need a cap for thatZack Rusin
using the draw module allows us to enable geometry shading even on hardware that doesn't support it.
2009-12-25gallium: add geometry shader support to galliumZack Rusin
2009-12-15pipe: add PIPE_MAX_TEXTURE_TYPESMarek Olšák
2009-12-01gallium: Introduce separate vertex texture/sampler state.Michal Krol
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-11-06gallium: Add UNSYNCHRONIZED cpu access flag. Document others.José Fonseca
2009-11-02gallium: Cleanup predicate and condition code TGSI tokens.Michal Krol
There is little point in having a special TGSI token just to handle predicate register updates. Remove tgsi_dst_register_ext_predicate token and instead use a new PREDICATE register file to update predicates. Actually, the contents of the obsolete token are being moved to tgsi_instruction_ext_predicate, where they should be from the very beginning. Remove the NVIDIA-specific condition code tokens -- nobody uses them and they can be emulated with predicates if needed. Introduce PIPE_CAP_SM3 that indicates whether a driver supports SM3-level instructions, and in particular predicates. Add PIPE_CAP_MAX_PREDICATE_REGISTERS that can be used to query the driver how many predicate registers it supports (currently it would be 1).
2009-10-25gallium: Move enum pipe_error into p_defines.h.José Fonseca
It's really just another define. No need for its own header.
2009-10-02gallium: Add PIPE_TRANSFER_MAP_DIRECTLY usage flag.Michel Dänzer
Asks the driver to map the texture storage directly or return NULL if that's not possible.
2009-09-29g3dvl: Define PIPE_VIDEO_CODEC_UNKNOWN for failures.José Fonseca
gcc 4.4 seems particularly picky with int -> enum conversions.
2009-09-27g3dvl: pipe_video_context interface, softpipe impl, auxiliary libsYounes Manton
2009-09-16gallium: Deprecate PIPE_CAP_S3TC.José Fonseca
No longer used. S3TC support is queried via pipe_screen::is_format_supported.
2009-08-17gallium: Make PIPE_TRANSFER_{READ,WRITE,READ_WRITE} bitmask friendly.Maarten Maathuis
2009-07-14gallium: Define PIPE_CAP_BLEND_EQUATION_SEPARATE, remove extension from ↵Patrice Mandin
default extension list
2009-06-30Merge branch 'mesa_7_5_branch'Brian Paul
Conflicts: src/mesa/vbo/vbo_exec_draw.c
2009-06-30gallium: New PIPE_BUFFER_USAGE_FLUSH_EXPLICIT flag for ↵José Fonseca
buffer_flush_mapped_range. When a buffer was mapped for write and no explicit flush range was provided the existing semantics were that the whole buffer would be flushed, mostly for backwards compatability with non map-buffer-range aware code. However if the buffer was mapped/unmapped with nothing really written -- something that often happens with the vbo -- we were unnecessarily assuming that the whole buffer was written. The new PIPE_BUFFER_USAGE_FLUSH_EXPLICIT flag (based from ARB_map_buffer_range 's GL_MAP_FLUSH_EXPLICIT_BIT flag) allows to clearly distinguish the legacy usage from the nothing written usage.
2009-06-26gallium: added PIPE_CAP_TGSI_CONT_SUPPORTEDBrian Paul
2009-06-26Merge branch 'mesa_7_5_branch'Brian Paul
Conflicts: Makefile src/gallium/drivers/softpipe/sp_screen.c src/mesa/main/version.h
2009-06-10gallium: updated PIPE_CAP_x commentsBrian Paul
2009-05-05gallium: remove redundant cube face #definesBrian Paul
2009-04-15gallium: Make sure we flush before some texture / buffer operations.Thomas Hellstrom
Also implement context member functions to optimize away those flushes whenever possible. Signed-off-by: Thomas Hellstrom <thellstrom-at-vmware-dot-com>
2009-04-09gallium: change // comment to /* */ styleBrian Paul
2009-04-04gallium: Clean up driver clear() interface.Michel Dänzer
Only allows clearing currently bound buffers, but colour and depth/stencil in a single call.
2009-03-26gallium: Remove some little-used fields from struct pipe_surface.Michel Dänzer
2009-03-03Merge commit 'origin/gallium-0.1'Keith Whitwell
Conflicts: scons/gallium.py src/gallium/auxiliary/pipebuffer/pb_buffer_fenced.c src/gallium/include/pipe/p_defines.h src/mesa/vbo/vbo_exec_api.c src/mesa/vbo/vbo_exec_draw.c
2009-03-02gallium: New PIPE_BUFFER_USAGE_DONTBLOCK flag.José Fonseca
To prevent blocking when mapping a buffer.
2009-02-23gallium: Define PIPE_PRIM_MAX.José Fonseca
2009-02-05gallium: No longer allow CPU mapping surfaces directly.Michel Dänzer
Instead, a new pipe_transfer object has to be created and mapped for transferring data between the CPU and a texture. This gives the driver more flexibility for textures in address spaces that aren't CPU accessible. This is a first pass; softpipe/xlib builds and runs glxgears, but it only shows a black window. Looks like something's off related to the Z buffer, so the depth test always fails.
2009-01-18gallium: Add PIPE_BUFFER_USAGE_DISCARD.Younes Manton
When passed to map() signals that the buffer's previous contents are not required, allowing the driver to allocate a new buffer if the current buffer can not be mapped immediately.
2009-01-10gallium: Define PIPE_TEXTURE_USAGE_DYNAMIC.Younes Manton
Knowing how the client intends to use the texture will give the driver the opportunity to optimize for such cases.
2008-12-04gallium: added PIPE_CAP_MAX_VERTEX_TEXTURE_UNITS queryBrian
2008-12-02gallium: Make room for custom PIPE_TEXTURE_USAGE_* flags.Younes Manton
2008-11-24gallium: Define convenience shortcuts for CPU/GPU READ/WRITE flag combinations.José Fonseca
2008-08-15gallium: New PIPE_FLUSH_FRAME flag to signal the end of a frame.José Fonseca
2008-08-06gallium: added PIPE_CAP_TEXTURE_MIRROR_CLAMP, PIPE_CAP_TEXTURE_MIRROR_REPEATBrian Paul
Check for these caps in state tracker and enable corresponding GL extensions if supported.
2008-07-19gallium: Finer grained is_format_supported.José Fonseca
2008-07-19gallium: Move PIPE_TEXTURE_USAGE* to p_defines.hJosé Fonseca
2008-06-04gallium: Define PIPE_CAP_GUARD_BAND_* capabilities.Michal Krol
2008-05-06Merge commit 'origin/gallium-0.1' into gallium-tex-surfacesKeith Whitwell
Conflicts: src/mesa/state_tracker/st_atom_sampler.c src/mesa/state_tracker/st_cb_texture.c
2008-05-03gallium: add pipe surface layout value (Roland Scheidegger)Keith Whitwell
2008-05-02gallium: remove obsolete PIPE_CAP_BITMAP_TEXCOORD_BIASBrian Paul
2008-04-30gallium: fix typo: s/custam/custom/Brian Paul
2008-03-26gallium: Change pipe->flush() interface to optionally return a fence.Michel Dänzer
The cell driver still uses an internal CELL_FLUSH_WAIT flag, in the long run proper fencing should be implemented for it.
2008-03-12gallium: Add TEX_FILTER_ANISO img filterKeith Whitwell
Hardware almost universally expects us to set a special filtering mode when anisotropic filtering is enabled, as opposed to varying a max-aniso values. Do this once in the state tracker & simplify the driver code.