diff options
Diffstat (limited to 'src/gallium/docs/source')
| -rw-r--r-- | src/gallium/docs/source/context.rst | 40 | ||||
| -rw-r--r-- | src/gallium/docs/source/cso/velems.rst | 24 | 
2 files changed, 61 insertions, 3 deletions
| diff --git a/src/gallium/docs/source/context.rst b/src/gallium/docs/source/context.rst index 9080addba4..1f022570db 100644 --- a/src/gallium/docs/source/context.rst +++ b/src/gallium/docs/source/context.rst @@ -24,6 +24,7 @@ CSO objects handled by the context object:  * :ref:`Depth, Stencil, & Alpha`: ``*_depth_stencil_alpha_state``  * :ref:`Shader`: These have two sets of methods. ``*_fs_state`` is for    fragment shaders, and ``*_vs_state`` is for vertex shaders. +* :ref:`Vertex Elements`: ``*_vertex_elements_state``  Resource Binding State @@ -39,8 +40,7 @@ buffers, surfaces) are bound to the driver.    are mostly restricted to the first one right now).  * ``set_framebuffer_state`` -* ``set_fragment_sampler_textures`` -* ``set_vertex_sampler_textures`` +  * ``set_vertex_buffers`` @@ -60,7 +60,41 @@ objects. They all follow simple, one-method binding calls, e.g.    not have the scissor test enabled, then the scissor bounds never need to    be set since they will not be used.  * ``set_viewport_state`` -* ``set_vertex_elements`` + + +Sampler Views +^^^^^^^^^^^^^ + +These are the means to bind textures to shader stages. To create one, specify +its format, swizzle and LOD range in sampler view template. + +If texture format is different than template format, it is said the texture +is being cast to another format. Casting can be done only between compatible +formats, that is formats that have matching component order and sizes. + +Swizzle fields specify they way in which fetched texel components are placed +in the result register. For example, swizzle_r specifies what is going to be +placed in destination register x (AKA r). + +first_level and last_level fields of sampler view template specify the LOD +range the texture is going to be constrained to. + +* ``set_fragment_sampler_views`` binds an array of sampler views to +  fragment shader stage. Every binding point acquires a reference +  to a respective sampler view and releases a reference to the previous +  sampler view. + +* ``set_vertex_sampler_views`` binds an array of sampler views to vertex +  shader stage. Every binding point acquires a reference to a respective +  sampler view and releases a reference to the previous sampler view. + +* ``create_sampler_view`` creates a new sampler view. texture is associated +  with the sampler view which results in sampler view holding a reference +  to the texture. Format specified in template must be compatible +  with texture format. + +* ``sampler_view_destroy`` destroys a sampler view and releases its reference +  to associated texture.  Clearing diff --git a/src/gallium/docs/source/cso/velems.rst b/src/gallium/docs/source/cso/velems.rst new file mode 100644 index 0000000000..8e758fae10 --- /dev/null +++ b/src/gallium/docs/source/cso/velems.rst @@ -0,0 +1,24 @@ +.. _vertex,elements + +Vertex Elements +=============== + +This state controls format etc. of the input attributes contained +in the pipe_vertex_buffer(s). There's one pipe_vertex_element array member +for each input attribute. + +Members +------- + +src_offset +    The byte offset of the attribute in the buffer given by +    vertex_buffer_index for the first vertex. +instance_divisor +    The instance data rate divisor, used for instancing. +    0 means this is per-vertex data, n means per-instance data used for +    n consecutive instances (n > 0). +vertex_buffer_index +    The vertex buffer this attribute lives in. Several attributes may +    live in the same vertex buffer. +src_format +    The format of the attribute data. One of the PIPE_FORMAT tokens. | 
