From c80f2b04e0d235cfe623c968a670e6d34b8c2add Mon Sep 17 00:00:00 2001 From: Corbin Simpson Date: Sun, 20 Dec 2009 16:40:39 -0800 Subject: Fill out some of the CSO info. ...And looks like there's already things I don't know. Go figure. --- src/gallium/docs/source/cso.rst | 7 ++++++ src/gallium/docs/source/cso/blend.rst | 2 +- src/gallium/docs/source/cso/dsa.rst | 39 ++++++++++++++++++++++++++++++--- src/gallium/docs/source/cso/sampler.rst | 36 +++++++++++++++++++++++++++++- 4 files changed, 79 insertions(+), 5 deletions(-) diff --git a/src/gallium/docs/source/cso.rst b/src/gallium/docs/source/cso.rst index f00cc51d4b..dab1ee50f3 100644 --- a/src/gallium/docs/source/cso.rst +++ b/src/gallium/docs/source/cso.rst @@ -1,6 +1,13 @@ CSO === +CSO, Constant State Objects, are a core part of Gallium's API. + +CSO work on the principle of reusable state; they are created by filling +out a state object with the desired properties, then passing that object +to a context. The context returns an opaque context-specific handle which +can be bound at any time for the desired effect. + .. toctree:: :glob: diff --git a/src/gallium/docs/source/cso/blend.rst b/src/gallium/docs/source/cso/blend.rst index e32d324854..608f36999b 100644 --- a/src/gallium/docs/source/cso/blend.rst +++ b/src/gallium/docs/source/cso/blend.rst @@ -9,4 +9,4 @@ XXX it is unresolved what behavior should result if blend_enable is off. Members ------- -XXX +XXX undocumented members diff --git a/src/gallium/docs/source/cso/dsa.rst b/src/gallium/docs/source/cso/dsa.rst index 5f23896f6e..0be7af5029 100644 --- a/src/gallium/docs/source/cso/dsa.rst +++ b/src/gallium/docs/source/cso/dsa.rst @@ -7,17 +7,50 @@ discard fragments that have passed through the fragment shader. Traditionally, these three tests have been clumped together in hardware, so they are all stored in one structure. +During actual execution, the order of operations done on fragments is always: + +* Stencil +* Depth +* Alpha + Depth Members ------------- -XXX +enabled + Whether the depth test is enabled. +writemask + Whether the depth buffer receives depth writes. +func + The depth test function. One of PIPE_FUNC. Stencil Members --------------- -XXX +XXX document valuemask, writemask + +enabled + Whether the stencil test is enabled. For the second stencil, whether the + two-sided stencil is enabled. +func + The stencil test function. One of PIPE_FUNC. +ref_value + Stencil test reference value; used for certain functions. +fail_op + The operation to carry out if the stencil test fails. One of + PIPE_STENCIL_OP. +zfail_op + The operation to carry out if the stencil test passes but the depth test + fails. One of PIPE_STENCIL_OP. +zpass_op + The operation to carry out if the stencil test and depth test both pass. + One of PIPE_STENCIL_OP. Alpha Members ------------- -XXX +enabled + Whether the alpha test is enabled. +func + The alpha test function. One of PIPE_FUNC. +ref_value + Alpha test reference value; used for certain functions. diff --git a/src/gallium/docs/source/cso/sampler.rst b/src/gallium/docs/source/cso/sampler.rst index 09b959ffff..3a63ac637b 100644 --- a/src/gallium/docs/source/cso/sampler.rst +++ b/src/gallium/docs/source/cso/sampler.rst @@ -4,7 +4,41 @@ Sampler Texture units have many options for selecting texels from loaded textures; this state controls an individual texture unit's texel-sampling settings. +Texture coordinates are always treated as four-dimensional, and referred to +with the traditional (S, T, R, Q) notation. + Members ------- -XXX +XXX undocumented compare_mode, compare_func + +wrap_s + How to wrap the S coordinate. One of PIPE_TEX_WRAP. +wrap_t + How to wrap the T coordinate. One of PIPE_TEX_WRAP. +wrap_r + How to wrap the R coordinate. One of PIPE_TEX_WRAP. +min_img_filter + The filter to use when minifying texels. One of PIPE_TEX_FILTER. +min_mip_filter + The filter to use when minifying mipmapped textures. One of + PIPE_TEX_FILTER. +mag_img_filter + The filter to use when magnifying texels. One of PIPE_TEX_FILTER. +normalized_coords + Whether the texture coordinates are normalized. If normalized, they will + always be in [0, 1]. If not, they will be in the range of each dimension + of the loaded texture. +prefilter + XXX From the Doxy, "weird sampling state exposed by some APIs." Refine. +lod_bias + The bias to apply to the level of detail. +min_lod + Minimum level of detail, used to clamp LoD after bias. +max_lod + Maximum level of detail, used to clamp LoD after bias. +border_color + RGBA color used for out-of-bounds coordinates. +max_anisotropy + Maximum filtering to apply anisotropically to textures. Setting this to + 1.0 effectively disables anisotropic filtering. -- cgit v1.2.3