mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-03-05 08:00:30 +01:00
Merge branch 'gallium-docs'
This commit is contained in:
commit
3e18bad36d
16 changed files with 2255 additions and 0 deletions
89
src/gallium/docs/Makefile
Normal file
89
src/gallium/docs/Makefile
Normal file
|
|
@ -0,0 +1,89 @@
|
|||
# Makefile for Sphinx documentation
|
||||
#
|
||||
|
||||
# You can set these variables from the command line.
|
||||
SPHINXOPTS =
|
||||
SPHINXBUILD = sphinx-build
|
||||
PAPER =
|
||||
BUILDDIR = build
|
||||
|
||||
# Internal variables.
|
||||
PAPEROPT_a4 = -D latex_paper_size=a4
|
||||
PAPEROPT_letter = -D latex_paper_size=letter
|
||||
ALLSPHINXOPTS = -d $(BUILDDIR)/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) source
|
||||
|
||||
.PHONY: help clean html dirhtml pickle json htmlhelp qthelp latex changes linkcheck doctest
|
||||
|
||||
help:
|
||||
@echo "Please use \`make <target>' where <target> is one of"
|
||||
@echo " html to make standalone HTML files"
|
||||
@echo " dirhtml to make HTML files named index.html in directories"
|
||||
@echo " pickle to make pickle files"
|
||||
@echo " json to make JSON files"
|
||||
@echo " htmlhelp to make HTML files and a HTML help project"
|
||||
@echo " qthelp to make HTML files and a qthelp project"
|
||||
@echo " latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter"
|
||||
@echo " changes to make an overview of all changed/added/deprecated items"
|
||||
@echo " linkcheck to check all external links for integrity"
|
||||
@echo " doctest to run all doctests embedded in the documentation (if enabled)"
|
||||
|
||||
clean:
|
||||
-rm -rf $(BUILDDIR)/*
|
||||
|
||||
html:
|
||||
$(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html
|
||||
@echo
|
||||
@echo "Build finished. The HTML pages are in $(BUILDDIR)/html."
|
||||
|
||||
dirhtml:
|
||||
$(SPHINXBUILD) -b dirhtml $(ALLSPHINXOPTS) $(BUILDDIR)/dirhtml
|
||||
@echo
|
||||
@echo "Build finished. The HTML pages are in $(BUILDDIR)/dirhtml."
|
||||
|
||||
pickle:
|
||||
$(SPHINXBUILD) -b pickle $(ALLSPHINXOPTS) $(BUILDDIR)/pickle
|
||||
@echo
|
||||
@echo "Build finished; now you can process the pickle files."
|
||||
|
||||
json:
|
||||
$(SPHINXBUILD) -b json $(ALLSPHINXOPTS) $(BUILDDIR)/json
|
||||
@echo
|
||||
@echo "Build finished; now you can process the JSON files."
|
||||
|
||||
htmlhelp:
|
||||
$(SPHINXBUILD) -b htmlhelp $(ALLSPHINXOPTS) $(BUILDDIR)/htmlhelp
|
||||
@echo
|
||||
@echo "Build finished; now you can run HTML Help Workshop with the" \
|
||||
".hhp project file in $(BUILDDIR)/htmlhelp."
|
||||
|
||||
qthelp:
|
||||
$(SPHINXBUILD) -b qthelp $(ALLSPHINXOPTS) $(BUILDDIR)/qthelp
|
||||
@echo
|
||||
@echo "Build finished; now you can run "qcollectiongenerator" with the" \
|
||||
".qhcp project file in $(BUILDDIR)/qthelp, like this:"
|
||||
@echo "# qcollectiongenerator $(BUILDDIR)/qthelp/Gallium.qhcp"
|
||||
@echo "To view the help file:"
|
||||
@echo "# assistant -collectionFile $(BUILDDIR)/qthelp/Gallium.qhc"
|
||||
|
||||
latex:
|
||||
$(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
|
||||
@echo
|
||||
@echo "Build finished; the LaTeX files are in $(BUILDDIR)/latex."
|
||||
@echo "Run \`make all-pdf' or \`make all-ps' in that directory to" \
|
||||
"run these through (pdf)latex."
|
||||
|
||||
changes:
|
||||
$(SPHINXBUILD) -b changes $(ALLSPHINXOPTS) $(BUILDDIR)/changes
|
||||
@echo
|
||||
@echo "The overview file is in $(BUILDDIR)/changes."
|
||||
|
||||
linkcheck:
|
||||
$(SPHINXBUILD) -b linkcheck $(ALLSPHINXOPTS) $(BUILDDIR)/linkcheck
|
||||
@echo
|
||||
@echo "Link check complete; look for any errors in the above output " \
|
||||
"or in $(BUILDDIR)/linkcheck/output.txt."
|
||||
|
||||
doctest:
|
||||
$(SPHINXBUILD) -b doctest $(ALLSPHINXOPTS) $(BUILDDIR)/doctest
|
||||
@echo "Testing of doctests in the sources finished, look at the " \
|
||||
"results in $(BUILDDIR)/doctest/output.txt."
|
||||
113
src/gallium/docs/make.bat
Normal file
113
src/gallium/docs/make.bat
Normal file
|
|
@ -0,0 +1,113 @@
|
|||
@ECHO OFF
|
||||
|
||||
REM Command file for Sphinx documentation
|
||||
|
||||
set SPHINXBUILD=sphinx-build
|
||||
set BUILDDIR=build
|
||||
set ALLSPHINXOPTS=-d %BUILDDIR%/doctrees %SPHINXOPTS% source
|
||||
if NOT "%PAPER%" == "" (
|
||||
set ALLSPHINXOPTS=-D latex_paper_size=%PAPER% %ALLSPHINXOPTS%
|
||||
)
|
||||
|
||||
if "%1" == "" goto help
|
||||
|
||||
if "%1" == "help" (
|
||||
:help
|
||||
echo.Please use `make ^<target^>` where ^<target^> is one of
|
||||
echo. html to make standalone HTML files
|
||||
echo. dirhtml to make HTML files named index.html in directories
|
||||
echo. pickle to make pickle files
|
||||
echo. json to make JSON files
|
||||
echo. htmlhelp to make HTML files and a HTML help project
|
||||
echo. qthelp to make HTML files and a qthelp project
|
||||
echo. latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter
|
||||
echo. changes to make an overview over all changed/added/deprecated items
|
||||
echo. linkcheck to check all external links for integrity
|
||||
echo. doctest to run all doctests embedded in the documentation if enabled
|
||||
goto end
|
||||
)
|
||||
|
||||
if "%1" == "clean" (
|
||||
for /d %%i in (%BUILDDIR%\*) do rmdir /q /s %%i
|
||||
del /q /s %BUILDDIR%\*
|
||||
goto end
|
||||
)
|
||||
|
||||
if "%1" == "html" (
|
||||
%SPHINXBUILD% -b html %ALLSPHINXOPTS% %BUILDDIR%/html
|
||||
echo.
|
||||
echo.Build finished. The HTML pages are in %BUILDDIR%/html.
|
||||
goto end
|
||||
)
|
||||
|
||||
if "%1" == "dirhtml" (
|
||||
%SPHINXBUILD% -b dirhtml %ALLSPHINXOPTS% %BUILDDIR%/dirhtml
|
||||
echo.
|
||||
echo.Build finished. The HTML pages are in %BUILDDIR%/dirhtml.
|
||||
goto end
|
||||
)
|
||||
|
||||
if "%1" == "pickle" (
|
||||
%SPHINXBUILD% -b pickle %ALLSPHINXOPTS% %BUILDDIR%/pickle
|
||||
echo.
|
||||
echo.Build finished; now you can process the pickle files.
|
||||
goto end
|
||||
)
|
||||
|
||||
if "%1" == "json" (
|
||||
%SPHINXBUILD% -b json %ALLSPHINXOPTS% %BUILDDIR%/json
|
||||
echo.
|
||||
echo.Build finished; now you can process the JSON files.
|
||||
goto end
|
||||
)
|
||||
|
||||
if "%1" == "htmlhelp" (
|
||||
%SPHINXBUILD% -b htmlhelp %ALLSPHINXOPTS% %BUILDDIR%/htmlhelp
|
||||
echo.
|
||||
echo.Build finished; now you can run HTML Help Workshop with the ^
|
||||
.hhp project file in %BUILDDIR%/htmlhelp.
|
||||
goto end
|
||||
)
|
||||
|
||||
if "%1" == "qthelp" (
|
||||
%SPHINXBUILD% -b qthelp %ALLSPHINXOPTS% %BUILDDIR%/qthelp
|
||||
echo.
|
||||
echo.Build finished; now you can run "qcollectiongenerator" with the ^
|
||||
.qhcp project file in %BUILDDIR%/qthelp, like this:
|
||||
echo.^> qcollectiongenerator %BUILDDIR%\qthelp\Gallium.qhcp
|
||||
echo.To view the help file:
|
||||
echo.^> assistant -collectionFile %BUILDDIR%\qthelp\Gallium.ghc
|
||||
goto end
|
||||
)
|
||||
|
||||
if "%1" == "latex" (
|
||||
%SPHINXBUILD% -b latex %ALLSPHINXOPTS% %BUILDDIR%/latex
|
||||
echo.
|
||||
echo.Build finished; the LaTeX files are in %BUILDDIR%/latex.
|
||||
goto end
|
||||
)
|
||||
|
||||
if "%1" == "changes" (
|
||||
%SPHINXBUILD% -b changes %ALLSPHINXOPTS% %BUILDDIR%/changes
|
||||
echo.
|
||||
echo.The overview file is in %BUILDDIR%/changes.
|
||||
goto end
|
||||
)
|
||||
|
||||
if "%1" == "linkcheck" (
|
||||
%SPHINXBUILD% -b linkcheck %ALLSPHINXOPTS% %BUILDDIR%/linkcheck
|
||||
echo.
|
||||
echo.Link check complete; look for any errors in the above output ^
|
||||
or in %BUILDDIR%/linkcheck/output.txt.
|
||||
goto end
|
||||
)
|
||||
|
||||
if "%1" == "doctest" (
|
||||
%SPHINXBUILD% -b doctest %ALLSPHINXOPTS% %BUILDDIR%/doctest
|
||||
echo.
|
||||
echo.Testing of doctests in the sources finished, look at the ^
|
||||
results in %BUILDDIR%/doctest/output.txt.
|
||||
goto end
|
||||
)
|
||||
|
||||
:end
|
||||
197
src/gallium/docs/source/conf.py
Normal file
197
src/gallium/docs/source/conf.py
Normal file
|
|
@ -0,0 +1,197 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
#
|
||||
# Gallium documentation build configuration file, created by
|
||||
# sphinx-quickstart on Sun Dec 20 14:09:05 2009.
|
||||
#
|
||||
# This file is execfile()d with the current directory set to its containing dir.
|
||||
#
|
||||
# Note that not all possible configuration values are present in this
|
||||
# autogenerated file.
|
||||
#
|
||||
# All configuration values have a default; values that are commented out
|
||||
# serve to show the default.
|
||||
|
||||
import sys, os
|
||||
|
||||
# If extensions (or modules to document with autodoc) are in another directory,
|
||||
# add these directories to sys.path here. If the directory is relative to the
|
||||
# documentation root, use os.path.abspath to make it absolute, like shown here.
|
||||
#sys.path.append(os.path.abspath('.'))
|
||||
|
||||
# -- General configuration -----------------------------------------------------
|
||||
|
||||
# Add any Sphinx extension module names here, as strings. They can be extensions
|
||||
# coming with Sphinx (named 'sphinx.ext.*') or your custom ones.
|
||||
extensions = ['sphinx.ext.pngmath']
|
||||
|
||||
# Add any paths that contain templates here, relative to this directory.
|
||||
templates_path = ['_templates']
|
||||
|
||||
# The suffix of source filenames.
|
||||
source_suffix = '.rst'
|
||||
|
||||
# The encoding of source files.
|
||||
#source_encoding = 'utf-8'
|
||||
|
||||
# The master toctree document.
|
||||
master_doc = 'index'
|
||||
|
||||
# General information about the project.
|
||||
project = u'Gallium'
|
||||
copyright = u'2009, VMWare, X.org, Nouveau'
|
||||
|
||||
# The version info for the project you're documenting, acts as replacement for
|
||||
# |version| and |release|, also used in various other places throughout the
|
||||
# built documents.
|
||||
#
|
||||
# The short X.Y version.
|
||||
version = '0.3'
|
||||
# The full version, including alpha/beta/rc tags.
|
||||
release = '0.3'
|
||||
|
||||
# The language for content autogenerated by Sphinx. Refer to documentation
|
||||
# for a list of supported languages.
|
||||
#language = None
|
||||
|
||||
# There are two options for replacing |today|: either, you set today to some
|
||||
# non-false value, then it is used:
|
||||
#today = ''
|
||||
# Else, today_fmt is used as the format for a strftime call.
|
||||
#today_fmt = '%B %d, %Y'
|
||||
|
||||
# List of documents that shouldn't be included in the build.
|
||||
#unused_docs = []
|
||||
|
||||
# List of directories, relative to source directory, that shouldn't be searched
|
||||
# for source files.
|
||||
exclude_trees = []
|
||||
|
||||
# The reST default role (used for this markup: `text`) to use for all documents.
|
||||
#default_role = None
|
||||
|
||||
# If true, '()' will be appended to :func: etc. cross-reference text.
|
||||
#add_function_parentheses = True
|
||||
|
||||
# If true, the current module name will be prepended to all description
|
||||
# unit titles (such as .. function::).
|
||||
#add_module_names = True
|
||||
|
||||
# If true, sectionauthor and moduleauthor directives will be shown in the
|
||||
# output. They are ignored by default.
|
||||
#show_authors = False
|
||||
|
||||
# The name of the Pygments (syntax highlighting) style to use.
|
||||
pygments_style = 'sphinx'
|
||||
|
||||
# The language for highlighting source code.
|
||||
highlight_language = 'c'
|
||||
|
||||
# A list of ignored prefixes for module index sorting.
|
||||
#modindex_common_prefix = []
|
||||
|
||||
|
||||
# -- Options for HTML output ---------------------------------------------------
|
||||
|
||||
# The theme to use for HTML and HTML Help pages. Major themes that come with
|
||||
# Sphinx are currently 'default' and 'sphinxdoc'.
|
||||
html_theme = 'default'
|
||||
|
||||
# Theme options are theme-specific and customize the look and feel of a theme
|
||||
# further. For a list of options available for each theme, see the
|
||||
# documentation.
|
||||
#html_theme_options = {}
|
||||
|
||||
# Add any paths that contain custom themes here, relative to this directory.
|
||||
#html_theme_path = []
|
||||
|
||||
# The name for this set of Sphinx documents. If None, it defaults to
|
||||
# "<project> v<release> documentation".
|
||||
#html_title = None
|
||||
|
||||
# A shorter title for the navigation bar. Default is the same as html_title.
|
||||
#html_short_title = None
|
||||
|
||||
# The name of an image file (relative to this directory) to place at the top
|
||||
# of the sidebar.
|
||||
#html_logo = None
|
||||
|
||||
# The name of an image file (within the static path) to use as favicon of the
|
||||
# docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32
|
||||
# pixels large.
|
||||
#html_favicon = None
|
||||
|
||||
# Add any paths that contain custom static files (such as style sheets) here,
|
||||
# relative to this directory. They are copied after the builtin static files,
|
||||
# so a file named "default.css" will overwrite the builtin "default.css".
|
||||
html_static_path = ['_static']
|
||||
|
||||
# If not '', a 'Last updated on:' timestamp is inserted at every page bottom,
|
||||
# using the given strftime format.
|
||||
#html_last_updated_fmt = '%b %d, %Y'
|
||||
|
||||
# If true, SmartyPants will be used to convert quotes and dashes to
|
||||
# typographically correct entities.
|
||||
#html_use_smartypants = True
|
||||
|
||||
# Custom sidebar templates, maps document names to template names.
|
||||
#html_sidebars = {}
|
||||
|
||||
# Additional templates that should be rendered to pages, maps page names to
|
||||
# template names.
|
||||
#html_additional_pages = {}
|
||||
|
||||
# If false, no module index is generated.
|
||||
#html_use_modindex = True
|
||||
|
||||
# If false, no index is generated.
|
||||
#html_use_index = True
|
||||
|
||||
# If true, the index is split into individual pages for each letter.
|
||||
#html_split_index = False
|
||||
|
||||
# If true, links to the reST sources are added to the pages.
|
||||
#html_show_sourcelink = True
|
||||
|
||||
# If true, an OpenSearch description file will be output, and all pages will
|
||||
# contain a <link> tag referring to it. The value of this option must be the
|
||||
# base URL from which the finished HTML is served.
|
||||
#html_use_opensearch = ''
|
||||
|
||||
# If nonempty, this is the file name suffix for HTML files (e.g. ".xhtml").
|
||||
#html_file_suffix = ''
|
||||
|
||||
# Output file base name for HTML help builder.
|
||||
htmlhelp_basename = 'Galliumdoc'
|
||||
|
||||
|
||||
# -- Options for LaTeX output --------------------------------------------------
|
||||
|
||||
# The paper size ('letter' or 'a4').
|
||||
#latex_paper_size = 'letter'
|
||||
|
||||
# The font size ('10pt', '11pt' or '12pt').
|
||||
#latex_font_size = '10pt'
|
||||
|
||||
# Grouping the document tree into LaTeX files. List of tuples
|
||||
# (source start file, target name, title, author, documentclass [howto/manual]).
|
||||
latex_documents = [
|
||||
('index', 'Gallium.tex', u'Gallium Documentation',
|
||||
u'VMWare, X.org, Nouveau', 'manual'),
|
||||
]
|
||||
|
||||
# The name of an image file (relative to this directory) to place at the top of
|
||||
# the title page.
|
||||
#latex_logo = None
|
||||
|
||||
# For "manual" documents, if this is true, then toplevel headings are parts,
|
||||
# not chapters.
|
||||
#latex_use_parts = False
|
||||
|
||||
# Additional stuff for the LaTeX preamble.
|
||||
#latex_preamble = ''
|
||||
|
||||
# Documents to append as an appendix to all manuals.
|
||||
#latex_appendices = []
|
||||
|
||||
# If false, no module index is generated.
|
||||
#latex_use_modindex = True
|
||||
128
src/gallium/docs/source/context.rst
Normal file
128
src/gallium/docs/source/context.rst
Normal file
|
|
@ -0,0 +1,128 @@
|
|||
Context
|
||||
=======
|
||||
|
||||
The context object represents the purest, most directly accessible, abilities
|
||||
of the device's 3D rendering pipeline.
|
||||
|
||||
Methods
|
||||
-------
|
||||
|
||||
CSO State
|
||||
^^^^^^^^^
|
||||
|
||||
All CSO state is created, bound, and destroyed, with triplets of methods that
|
||||
all follow a specific naming scheme. For example, ``create_blend_state``,
|
||||
``bind_blend_state``, and ``destroy_blend_state``.
|
||||
|
||||
CSO objects handled by the context object:
|
||||
|
||||
* :ref:`Blend`: ``*_blend_state``
|
||||
* :ref:`Sampler`: These are special; they can be bound to either vertex or
|
||||
fragment samplers, and they are bound in groups.
|
||||
``bind_fragment_sampler_states``, ``bind_vertex_sampler_states``
|
||||
* :ref:`Rasterizer`: ``*_rasterizer_state``
|
||||
* :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.
|
||||
|
||||
|
||||
Resource Binding State
|
||||
^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
This state describes how resources in various flavours (textures,
|
||||
buffers, surfaces) are bound to the driver.
|
||||
|
||||
|
||||
* ``set_constant_buffer``
|
||||
* ``set_framebuffer_state``
|
||||
* ``set_fragment_sampler_textures``
|
||||
* ``set_vertex_sampler_textures``
|
||||
* ``set_vertex_buffers``
|
||||
|
||||
|
||||
Non-CSO State
|
||||
^^^^^^^^^^^^^
|
||||
|
||||
These pieces of state are too small, variable, and/or trivial to have CSO
|
||||
objects. They all follow simple, one-method binding calls, e.g.
|
||||
``set_edgeflags``.
|
||||
|
||||
* ``set_edgeflags``
|
||||
* ``set_blend_color``
|
||||
* ``set_clip_state``
|
||||
* ``set_polygon_stipple``
|
||||
* ``set_scissor_state``
|
||||
* ``set_viewport_state``
|
||||
* ``set_vertex_elements``
|
||||
|
||||
|
||||
Clearing
|
||||
^^^^^^^^
|
||||
|
||||
``clear`` initializes some or all of the surfaces currently bound to
|
||||
the framebuffer to particular RGBA, depth, or stencil values.
|
||||
|
||||
Clear is one of the most difficult concepts to nail down to a single
|
||||
interface and it seems likely that we will want to add additional
|
||||
clear paths, for instance clearing surfaces not bound to the
|
||||
framebuffer, or read-modify-write clears such as depth-only or
|
||||
stencil-only clears of packed depth-stencil buffers.
|
||||
|
||||
|
||||
Drawing
|
||||
^^^^^^^
|
||||
|
||||
``draw_arrays``
|
||||
|
||||
``draw_elements``
|
||||
|
||||
``draw_range_elements``
|
||||
|
||||
|
||||
Queries
|
||||
^^^^^^^
|
||||
|
||||
Queries gather some statistic from the 3D pipeline over one or more
|
||||
draws. Queries may be nested, though no state tracker currently
|
||||
exercises this.
|
||||
|
||||
Queries can be created with ``create_query`` and deleted with
|
||||
``destroy_query``. To enable a query, use ``begin_query``, and when finished,
|
||||
use ``end_query`` to stop the query. Finally, ``get_query_result`` is used
|
||||
to retrieve the results.
|
||||
|
||||
Flushing
|
||||
^^^^^^^^
|
||||
|
||||
``flush``
|
||||
|
||||
|
||||
Resource Busy Queries
|
||||
^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
``is_texture_referenced``
|
||||
|
||||
``is_buffer_referenced``
|
||||
|
||||
|
||||
|
||||
Blitting
|
||||
^^^^^^^^
|
||||
|
||||
These methods emulate classic blitter controls. They are not guaranteed to be
|
||||
available; if they are set to NULL, then they are not present.
|
||||
|
||||
These methods operate directly on ``pipe_surface`` objects, and stand
|
||||
apart from any 3D state in the context. Blitting functionality may be
|
||||
moved to a separate abstraction at some point in the future.
|
||||
|
||||
``surface_fill`` performs a fill operation on a section of a surface.
|
||||
|
||||
``surface_copy`` blits a region of a surface to a region of another surface,
|
||||
provided that both surfaces are the same format. The source and destination
|
||||
may be the same surface, and overlapping blits are permitted.
|
||||
|
||||
The interfaces to these calls are likely to change to make it easier
|
||||
for a driver to batch multiple blits with the same source and
|
||||
destination.
|
||||
|
||||
14
src/gallium/docs/source/cso.rst
Normal file
14
src/gallium/docs/source/cso.rst
Normal file
|
|
@ -0,0 +1,14 @@
|
|||
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:
|
||||
|
||||
cso/*
|
||||
14
src/gallium/docs/source/cso/blend.rst
Normal file
14
src/gallium/docs/source/cso/blend.rst
Normal file
|
|
@ -0,0 +1,14 @@
|
|||
.. _blend:
|
||||
|
||||
Blend
|
||||
=====
|
||||
|
||||
This state controls blending of the final fragments into the target rendering
|
||||
buffers.
|
||||
|
||||
XXX it is unresolved what behavior should result if blend_enable is off.
|
||||
|
||||
Members
|
||||
-------
|
||||
|
||||
XXX undocumented members
|
||||
58
src/gallium/docs/source/cso/dsa.rst
Normal file
58
src/gallium/docs/source/cso/dsa.rst
Normal file
|
|
@ -0,0 +1,58 @@
|
|||
.. _depth,stencil,&alpha:
|
||||
|
||||
Depth, Stencil, & Alpha
|
||||
=======================
|
||||
|
||||
These three states control the depth, stencil, and alpha tests, used to
|
||||
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
|
||||
-------------
|
||||
|
||||
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 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
|
||||
-------------
|
||||
|
||||
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.
|
||||
87
src/gallium/docs/source/cso/rasterizer.rst
Normal file
87
src/gallium/docs/source/cso/rasterizer.rst
Normal file
|
|
@ -0,0 +1,87 @@
|
|||
.. _rasterizer:
|
||||
|
||||
Rasterizer
|
||||
==========
|
||||
|
||||
The rasterizer is the main chunk of state controlling how vertices are
|
||||
interpolated into fragments.
|
||||
|
||||
Members
|
||||
-------
|
||||
|
||||
XXX undocumented light_twoside, front_winding, cull_mode, fill_cw, fill_ccw, offset_cw, offset_ccw
|
||||
XXX moar undocumented poly_smooth, line_stipple_factor, line_last_pixel, offset_units, offset_scale
|
||||
XXX sprite_coord_mode
|
||||
|
||||
flatshade
|
||||
If set, the provoking vertex of each polygon is used to determine the
|
||||
color of the entire polygon. If not set, the color fragments will be
|
||||
interpolated from each vertex's color.
|
||||
scissor
|
||||
Whether the scissor test is enabled.
|
||||
poly_stipple_enable
|
||||
Whether polygon stippling is enabled.
|
||||
point_smooth
|
||||
Whether points should be smoothed. Point smoothing turns rectangular
|
||||
points into circles or ovals.
|
||||
point_sprite
|
||||
Whether point sprites are enabled.
|
||||
point_size_per_vertex
|
||||
Whether vertices have a point size element.
|
||||
multisample
|
||||
Whether :ref:`MSAA` is enabled.
|
||||
line_smooth
|
||||
Whether lines should be smoothed. Line smoothing is simply anti-aliasing.
|
||||
line_stipple_enable
|
||||
Whether line stippling is enabled.
|
||||
line_stipple_pattern
|
||||
16-bit bitfield of on/off flags, used to pattern the line stipple.
|
||||
bypass_vs_clip_and_viewport
|
||||
Whether the entire TCL pipeline should be bypassed. This implies that
|
||||
vertices are pre-transformed for the viewport, and will not be run
|
||||
through the vertex shader. Note that implementations may still clip away
|
||||
vertices that are not in the viewport.
|
||||
flatshade_first
|
||||
Whether the first vertex should be the provoking vertex, for most
|
||||
primitives. If not set, the last vertex is the provoking vertex.
|
||||
gl_rasterization_rules
|
||||
Whether the rasterizer should use (0.5, 0.5) pixel centers. When not set,
|
||||
the rasterizer will use (0, 0) for pixel centers.
|
||||
line_width
|
||||
The width of lines.
|
||||
point_size
|
||||
The size of points, if not specified per-vertex.
|
||||
point_size_min
|
||||
The minimum size of points.
|
||||
point_size_max
|
||||
The maximum size of points.
|
||||
|
||||
Notes
|
||||
-----
|
||||
|
||||
flatshade
|
||||
^^^^^^^^^
|
||||
|
||||
The actual interpolated shading algorithm is obviously
|
||||
implementation-dependent, but will usually be Gourard for most hardware.
|
||||
|
||||
bypass_vs_clip_and_viewport
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
When set, this implies that vertices are pre-transformed for the viewport, and
|
||||
will not be run through the vertex shader. Note that implementations may still
|
||||
clip away vertices that are not visible.
|
||||
|
||||
flatshade_first
|
||||
^^^^^^^^^^^^^^^
|
||||
|
||||
There are several important exceptions to the specification of this rule.
|
||||
|
||||
* ``PIPE_PRIMITIVE_POLYGON``: The provoking vertex is always the first
|
||||
vertex. If the caller wishes to change the provoking vertex, they merely
|
||||
need to rotate the vertices themselves.
|
||||
* ``PIPE_PRIMITIVE_QUAD``, ``PIPE_PRIMITIVE_QUAD_STRIP``: This option has no
|
||||
effect; the provoking vertex is always the last vertex.
|
||||
* ``PIPE_PRIMITIVE_TRIANGLE_FAN``: When set, the provoking vertex is the
|
||||
second vertex, not the first. This permits each segment of the fan to have
|
||||
a different color.
|
||||
46
src/gallium/docs/source/cso/sampler.rst
Normal file
46
src/gallium/docs/source/cso/sampler.rst
Normal file
|
|
@ -0,0 +1,46 @@
|
|||
.. _sampler:
|
||||
|
||||
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 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.
|
||||
12
src/gallium/docs/source/cso/shader.rst
Normal file
12
src/gallium/docs/source/cso/shader.rst
Normal file
|
|
@ -0,0 +1,12 @@
|
|||
.. _shader:
|
||||
|
||||
Shader
|
||||
======
|
||||
|
||||
One of the two types of shaders supported by Gallium.
|
||||
|
||||
Members
|
||||
-------
|
||||
|
||||
tokens
|
||||
A list of tgsi_tokens.
|
||||
141
src/gallium/docs/source/distro.rst
Normal file
141
src/gallium/docs/source/distro.rst
Normal file
|
|
@ -0,0 +1,141 @@
|
|||
Distribution
|
||||
============
|
||||
|
||||
Along with the interface definitions, the following drivers, state trackers,
|
||||
and auxiliary modules are shipped in the standard Gallium distribution.
|
||||
|
||||
Drivers
|
||||
-------
|
||||
|
||||
Cell
|
||||
^^^^
|
||||
|
||||
Failover
|
||||
^^^^^^^^
|
||||
|
||||
Deprecated.
|
||||
|
||||
Intel i915
|
||||
^^^^^^^^^^
|
||||
|
||||
Intel i965
|
||||
^^^^^^^^^^
|
||||
|
||||
Highly experimental.
|
||||
|
||||
Identity
|
||||
^^^^^^^^
|
||||
|
||||
Wrapper driver.
|
||||
|
||||
LLVM Softpipe
|
||||
^^^^^^^^^^^^^
|
||||
|
||||
nVidia nv04
|
||||
^^^^^^^^^^^
|
||||
|
||||
Deprecated.
|
||||
|
||||
nVidia nv10
|
||||
^^^^^^^^^^^
|
||||
|
||||
Deprecated.
|
||||
|
||||
nVidia nv20
|
||||
^^^^^^^^^^^
|
||||
|
||||
Deprecated.
|
||||
|
||||
nVidia nv30
|
||||
^^^^^^^^^^^
|
||||
|
||||
nVidia nv40
|
||||
^^^^^^^^^^^
|
||||
|
||||
nVidia nv50
|
||||
^^^^^^^^^^^
|
||||
|
||||
VMWare SVGA
|
||||
^^^^^^^^^^^
|
||||
|
||||
ATI r300
|
||||
^^^^^^^^
|
||||
|
||||
AMD/ATI r600
|
||||
^^^^^^^^^^^^
|
||||
|
||||
Highly experimental.
|
||||
|
||||
Softpipe
|
||||
^^^^^^^^
|
||||
|
||||
Reference software rasterizer.
|
||||
|
||||
Trace
|
||||
^^^^^
|
||||
|
||||
Wrapper driver.
|
||||
|
||||
State Trackers
|
||||
--------------
|
||||
|
||||
Direct Rendering Infrastructure
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
EGL
|
||||
^^^
|
||||
|
||||
GLX
|
||||
^^^
|
||||
|
||||
MesaGL
|
||||
^^^^^^
|
||||
|
||||
Python
|
||||
^^^^^^
|
||||
|
||||
OpenVG
|
||||
^^^^^^
|
||||
|
||||
WGL
|
||||
^^^
|
||||
|
||||
Xorg XFree86 DDX
|
||||
^^^^^^^^^^^^^^^^
|
||||
|
||||
Auxiliary
|
||||
---------
|
||||
|
||||
CSO Cache
|
||||
^^^^^^^^^
|
||||
|
||||
Draw
|
||||
^^^^
|
||||
|
||||
Gallivm
|
||||
^^^^^^^
|
||||
|
||||
Indices
|
||||
^^^^^^^
|
||||
|
||||
Pipe Buffer Manager
|
||||
^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
Remote Debugger
|
||||
^^^^^^^^^^^^^^^
|
||||
|
||||
Runtime Assembly Emission
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
Surface Context Tracker
|
||||
^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
TGSI
|
||||
^^^^
|
||||
|
||||
Translate
|
||||
^^^^^^^^^
|
||||
|
||||
Util
|
||||
^^^^
|
||||
|
||||
10
src/gallium/docs/source/glossary.rst
Normal file
10
src/gallium/docs/source/glossary.rst
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
Glossary
|
||||
========
|
||||
|
||||
.. glossary::
|
||||
:sorted:
|
||||
|
||||
MSAA
|
||||
Multi-Sampled Anti-Aliasing. A basic anti-aliasing technique that takes
|
||||
multiple samples of the depth buffer, and uses this information to
|
||||
smooth the edges of polygons.
|
||||
28
src/gallium/docs/source/index.rst
Normal file
28
src/gallium/docs/source/index.rst
Normal file
|
|
@ -0,0 +1,28 @@
|
|||
.. Gallium documentation master file, created by
|
||||
sphinx-quickstart on Sun Dec 20 14:09:05 2009.
|
||||
You can adapt this file completely to your liking, but it should at least
|
||||
contain the root `toctree` directive.
|
||||
|
||||
Welcome to Gallium's documentation!
|
||||
===================================
|
||||
|
||||
Contents:
|
||||
|
||||
.. toctree::
|
||||
:maxdepth: 2
|
||||
|
||||
intro
|
||||
tgsi
|
||||
screen
|
||||
context
|
||||
cso
|
||||
distro
|
||||
glossary
|
||||
|
||||
Indices and tables
|
||||
==================
|
||||
|
||||
* :ref:`genindex`
|
||||
* :ref:`modindex`
|
||||
* :ref:`search`
|
||||
|
||||
9
src/gallium/docs/source/intro.rst
Normal file
9
src/gallium/docs/source/intro.rst
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
Introduction
|
||||
============
|
||||
|
||||
What is Gallium?
|
||||
----------------
|
||||
|
||||
Gallium is essentially an API for writing graphics drivers in a largely
|
||||
device-agnostic fashion. It provides several objects which encapsulate the
|
||||
core services of graphics hardware in a straightforward manner.
|
||||
39
src/gallium/docs/source/screen.rst
Normal file
39
src/gallium/docs/source/screen.rst
Normal file
|
|
@ -0,0 +1,39 @@
|
|||
Screen
|
||||
======
|
||||
|
||||
A screen is an object representing the context-independent part of a device.
|
||||
|
||||
Methods
|
||||
-------
|
||||
|
||||
XXX moar; got bored
|
||||
|
||||
get_name
|
||||
^^^^^^^^
|
||||
|
||||
Returns an identifying name for the screen.
|
||||
|
||||
get_vendor
|
||||
^^^^^^^^^^
|
||||
|
||||
Returns the screen vendor.
|
||||
|
||||
get_param
|
||||
^^^^^^^^^
|
||||
|
||||
Get an integer/boolean screen parameter.
|
||||
|
||||
get_paramf
|
||||
^^^^^^^^^^
|
||||
|
||||
Get a floating-point screen parameter.
|
||||
|
||||
is_format_supported
|
||||
^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
See if a format can be used in a specific manner.
|
||||
|
||||
texture_create
|
||||
^^^^^^^^^^^^^^
|
||||
|
||||
Given a template of texture setup, create a BO-backed texture.
|
||||
1270
src/gallium/docs/source/tgsi.rst
Normal file
1270
src/gallium/docs/source/tgsi.rst
Normal file
File diff suppressed because it is too large
Load diff
Loading…
Add table
Reference in a new issue