From 65ecbdd49c130fbc790cd37d7c035349c70259a4 Mon Sep 17 00:00:00 2001 From: Corbin Simpson Date: Sun, 20 Dec 2009 14:00:34 -0800 Subject: r300g: Add a few more params. --- src/gallium/drivers/r300/r300_screen.c | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'src') diff --git a/src/gallium/drivers/r300/r300_screen.c b/src/gallium/drivers/r300/r300_screen.c index a7ef3dbcc2..2a8667d483 100644 --- a/src/gallium/drivers/r300/r300_screen.c +++ b/src/gallium/drivers/r300/r300_screen.c @@ -142,6 +142,10 @@ static int r300_get_param(struct pipe_screen* pscreen, int param) return 0; case PIPE_CAP_BLEND_EQUATION_SEPARATE: return 1; + case PIPE_CAP_SM3: + return 1; + case PIPE_CAP_MAX_COMBINED_SAMPLERS: + return 8; default: debug_printf("r300: Implementation error: Bad param %d\n", param); -- cgit v1.2.3 From c686e17e52eb9964137fd1a46fbbc96e368b6286 Mon Sep 17 00:00:00 2001 From: Corbin Simpson Date: Sun, 20 Dec 2009 15:00:40 -0800 Subject: Add Gallium docs. In Sphinx/ReST format. --- src/gallium/docs/Makefile | 89 +++++++++++++ src/gallium/docs/make.bat | 113 +++++++++++++++++ src/gallium/docs/source/conf.py | 194 +++++++++++++++++++++++++++++ src/gallium/docs/source/cso.rst | 7 ++ src/gallium/docs/source/cso/blend.rst | 12 ++ src/gallium/docs/source/cso/dsa.rst | 23 ++++ src/gallium/docs/source/cso/rasterizer.rst | 10 ++ src/gallium/docs/source/cso/sampler.rst | 10 ++ src/gallium/docs/source/cso/shader.rst | 10 ++ src/gallium/docs/source/index.rst | 24 ++++ src/gallium/docs/source/intro.rst | 9 ++ src/gallium/docs/source/tgsi.rst | 7 ++ 12 files changed, 508 insertions(+) create mode 100644 src/gallium/docs/Makefile create mode 100644 src/gallium/docs/make.bat create mode 100644 src/gallium/docs/source/conf.py create mode 100644 src/gallium/docs/source/cso.rst create mode 100644 src/gallium/docs/source/cso/blend.rst create mode 100644 src/gallium/docs/source/cso/dsa.rst create mode 100644 src/gallium/docs/source/cso/rasterizer.rst create mode 100644 src/gallium/docs/source/cso/sampler.rst create mode 100644 src/gallium/docs/source/cso/shader.rst create mode 100644 src/gallium/docs/source/index.rst create mode 100644 src/gallium/docs/source/intro.rst create mode 100644 src/gallium/docs/source/tgsi.rst (limited to 'src') diff --git a/src/gallium/docs/Makefile b/src/gallium/docs/Makefile new file mode 100644 index 0000000000..d4a5be4192 --- /dev/null +++ b/src/gallium/docs/Makefile @@ -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 ' where 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." diff --git a/src/gallium/docs/make.bat b/src/gallium/docs/make.bat new file mode 100644 index 0000000000..6f97e0730a --- /dev/null +++ b/src/gallium/docs/make.bat @@ -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 ^` where ^ 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 diff --git a/src/gallium/docs/source/conf.py b/src/gallium/docs/source/conf.py new file mode 100644 index 0000000000..7ff4896a91 --- /dev/null +++ b/src/gallium/docs/source/conf.py @@ -0,0 +1,194 @@ +# -*- 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 = [] + +# 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' + +# 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 +# " v 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 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 diff --git a/src/gallium/docs/source/cso.rst b/src/gallium/docs/source/cso.rst new file mode 100644 index 0000000000..f00cc51d4b --- /dev/null +++ b/src/gallium/docs/source/cso.rst @@ -0,0 +1,7 @@ +CSO +=== + +.. toctree:: + :glob: + + cso/* diff --git a/src/gallium/docs/source/cso/blend.rst b/src/gallium/docs/source/cso/blend.rst new file mode 100644 index 0000000000..e32d324854 --- /dev/null +++ b/src/gallium/docs/source/cso/blend.rst @@ -0,0 +1,12 @@ +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 diff --git a/src/gallium/docs/source/cso/dsa.rst b/src/gallium/docs/source/cso/dsa.rst new file mode 100644 index 0000000000..5f23896f6e --- /dev/null +++ b/src/gallium/docs/source/cso/dsa.rst @@ -0,0 +1,23 @@ +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. + +Depth Members +------------- + +XXX + +Stencil Members +--------------- + +XXX + +Alpha Members +------------- + +XXX diff --git a/src/gallium/docs/source/cso/rasterizer.rst b/src/gallium/docs/source/cso/rasterizer.rst new file mode 100644 index 0000000000..145ce259bb --- /dev/null +++ b/src/gallium/docs/source/cso/rasterizer.rst @@ -0,0 +1,10 @@ +Rasterizer +========== + +The rasterizer is the main chunk of state controlling how vertices are +interpolated into fragments. + +Members +------- + +XXX diff --git a/src/gallium/docs/source/cso/sampler.rst b/src/gallium/docs/source/cso/sampler.rst new file mode 100644 index 0000000000..09b959ffff --- /dev/null +++ b/src/gallium/docs/source/cso/sampler.rst @@ -0,0 +1,10 @@ +Sampler +======= + +Texture units have many options for selecting texels from loaded textures; +this state controls an individual texture unit's texel-sampling settings. + +Members +------- + +XXX diff --git a/src/gallium/docs/source/cso/shader.rst b/src/gallium/docs/source/cso/shader.rst new file mode 100644 index 0000000000..9e1cb35be0 --- /dev/null +++ b/src/gallium/docs/source/cso/shader.rst @@ -0,0 +1,10 @@ +Shader +====== + +One of the two types of shaders supported by Gallium. + +Members +------- + +tokens + A list of tgsi_tokens. diff --git a/src/gallium/docs/source/index.rst b/src/gallium/docs/source/index.rst new file mode 100644 index 0000000000..f93d1cafa9 --- /dev/null +++ b/src/gallium/docs/source/index.rst @@ -0,0 +1,24 @@ +.. 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 + cso + +Indices and tables +================== + +* :ref:`genindex` +* :ref:`modindex` +* :ref:`search` + diff --git a/src/gallium/docs/source/intro.rst b/src/gallium/docs/source/intro.rst new file mode 100644 index 0000000000..1ea103840a --- /dev/null +++ b/src/gallium/docs/source/intro.rst @@ -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. diff --git a/src/gallium/docs/source/tgsi.rst b/src/gallium/docs/source/tgsi.rst new file mode 100644 index 0000000000..2474925b46 --- /dev/null +++ b/src/gallium/docs/source/tgsi.rst @@ -0,0 +1,7 @@ +TGSI +==== + +TGSI, Tungsten Graphics Shader Instructions, is an intermediate language +for describing shaders. Since Gallium is inherently shaderful, shaders are +an important part of the API. TGSI is the only intermediate representation +used by all drivers. -- cgit v1.2.3 From a8df5cad9de6570ae1b73a2e51be09a09f67ab51 Mon Sep 17 00:00:00 2001 From: Corbin Simpson Date: Sun, 20 Dec 2009 15:02:33 -0800 Subject: Add a compiled HTML doctree. --- src/gallium/docs/build/html/.buildinfo | 4 + src/gallium/docs/build/html/_sources/cso.txt | 7 + src/gallium/docs/build/html/_sources/cso/blend.txt | 12 + src/gallium/docs/build/html/_sources/cso/dsa.txt | 23 + .../docs/build/html/_sources/cso/rasterizer.txt | 10 + .../docs/build/html/_sources/cso/sampler.txt | 10 + .../docs/build/html/_sources/cso/shader.txt | 10 + src/gallium/docs/build/html/_sources/index.txt | 24 ++ src/gallium/docs/build/html/_sources/intro.txt | 9 + src/gallium/docs/build/html/_sources/tgsi.txt | 7 + src/gallium/docs/build/html/_static/basic.css | 405 ++++++++++++++++++ src/gallium/docs/build/html/_static/default.css | 210 +++++++++ src/gallium/docs/build/html/_static/doctools.js | 232 ++++++++++ src/gallium/docs/build/html/_static/file.png | Bin 0 -> 392 bytes src/gallium/docs/build/html/_static/jquery.js | 32 ++ src/gallium/docs/build/html/_static/minus.png | Bin 0 -> 199 bytes src/gallium/docs/build/html/_static/plus.png | Bin 0 -> 199 bytes src/gallium/docs/build/html/_static/pygments.css | 61 +++ src/gallium/docs/build/html/_static/searchtools.js | 467 +++++++++++++++++++++ src/gallium/docs/build/html/cso.html | 130 ++++++ src/gallium/docs/build/html/cso/blend.html | 124 ++++++ src/gallium/docs/build/html/cso/dsa.html | 135 ++++++ src/gallium/docs/build/html/cso/rasterizer.html | 123 ++++++ src/gallium/docs/build/html/cso/sampler.html | 123 ++++++ src/gallium/docs/build/html/cso/shader.html | 115 +++++ src/gallium/docs/build/html/genindex.html | 89 ++++ src/gallium/docs/build/html/index.html | 128 ++++++ src/gallium/docs/build/html/intro.html | 120 ++++++ src/gallium/docs/build/html/objects.inv | 3 + src/gallium/docs/build/html/search.html | 91 ++++ src/gallium/docs/build/html/searchindex.js | 1 + src/gallium/docs/build/html/tgsi.html | 110 +++++ 32 files changed, 2815 insertions(+) create mode 100644 src/gallium/docs/build/html/.buildinfo create mode 100644 src/gallium/docs/build/html/_sources/cso.txt create mode 100644 src/gallium/docs/build/html/_sources/cso/blend.txt create mode 100644 src/gallium/docs/build/html/_sources/cso/dsa.txt create mode 100644 src/gallium/docs/build/html/_sources/cso/rasterizer.txt create mode 100644 src/gallium/docs/build/html/_sources/cso/sampler.txt create mode 100644 src/gallium/docs/build/html/_sources/cso/shader.txt create mode 100644 src/gallium/docs/build/html/_sources/index.txt create mode 100644 src/gallium/docs/build/html/_sources/intro.txt create mode 100644 src/gallium/docs/build/html/_sources/tgsi.txt create mode 100644 src/gallium/docs/build/html/_static/basic.css create mode 100644 src/gallium/docs/build/html/_static/default.css create mode 100644 src/gallium/docs/build/html/_static/doctools.js create mode 100644 src/gallium/docs/build/html/_static/file.png create mode 100644 src/gallium/docs/build/html/_static/jquery.js create mode 100644 src/gallium/docs/build/html/_static/minus.png create mode 100644 src/gallium/docs/build/html/_static/plus.png create mode 100644 src/gallium/docs/build/html/_static/pygments.css create mode 100644 src/gallium/docs/build/html/_static/searchtools.js create mode 100644 src/gallium/docs/build/html/cso.html create mode 100644 src/gallium/docs/build/html/cso/blend.html create mode 100644 src/gallium/docs/build/html/cso/dsa.html create mode 100644 src/gallium/docs/build/html/cso/rasterizer.html create mode 100644 src/gallium/docs/build/html/cso/sampler.html create mode 100644 src/gallium/docs/build/html/cso/shader.html create mode 100644 src/gallium/docs/build/html/genindex.html create mode 100644 src/gallium/docs/build/html/index.html create mode 100644 src/gallium/docs/build/html/intro.html create mode 100644 src/gallium/docs/build/html/objects.inv create mode 100644 src/gallium/docs/build/html/search.html create mode 100644 src/gallium/docs/build/html/searchindex.js create mode 100644 src/gallium/docs/build/html/tgsi.html (limited to 'src') diff --git a/src/gallium/docs/build/html/.buildinfo b/src/gallium/docs/build/html/.buildinfo new file mode 100644 index 0000000000..3b3a154206 --- /dev/null +++ b/src/gallium/docs/build/html/.buildinfo @@ -0,0 +1,4 @@ +# Sphinx build info version 1 +# This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done. +config: 337274cf474a8d2d6871c416a4911d5e +tags: fbb0d17656682115ca4d033fb2f83ba1 diff --git a/src/gallium/docs/build/html/_sources/cso.txt b/src/gallium/docs/build/html/_sources/cso.txt new file mode 100644 index 0000000000..f00cc51d4b --- /dev/null +++ b/src/gallium/docs/build/html/_sources/cso.txt @@ -0,0 +1,7 @@ +CSO +=== + +.. toctree:: + :glob: + + cso/* diff --git a/src/gallium/docs/build/html/_sources/cso/blend.txt b/src/gallium/docs/build/html/_sources/cso/blend.txt new file mode 100644 index 0000000000..e32d324854 --- /dev/null +++ b/src/gallium/docs/build/html/_sources/cso/blend.txt @@ -0,0 +1,12 @@ +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 diff --git a/src/gallium/docs/build/html/_sources/cso/dsa.txt b/src/gallium/docs/build/html/_sources/cso/dsa.txt new file mode 100644 index 0000000000..5f23896f6e --- /dev/null +++ b/src/gallium/docs/build/html/_sources/cso/dsa.txt @@ -0,0 +1,23 @@ +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. + +Depth Members +------------- + +XXX + +Stencil Members +--------------- + +XXX + +Alpha Members +------------- + +XXX diff --git a/src/gallium/docs/build/html/_sources/cso/rasterizer.txt b/src/gallium/docs/build/html/_sources/cso/rasterizer.txt new file mode 100644 index 0000000000..145ce259bb --- /dev/null +++ b/src/gallium/docs/build/html/_sources/cso/rasterizer.txt @@ -0,0 +1,10 @@ +Rasterizer +========== + +The rasterizer is the main chunk of state controlling how vertices are +interpolated into fragments. + +Members +------- + +XXX diff --git a/src/gallium/docs/build/html/_sources/cso/sampler.txt b/src/gallium/docs/build/html/_sources/cso/sampler.txt new file mode 100644 index 0000000000..09b959ffff --- /dev/null +++ b/src/gallium/docs/build/html/_sources/cso/sampler.txt @@ -0,0 +1,10 @@ +Sampler +======= + +Texture units have many options for selecting texels from loaded textures; +this state controls an individual texture unit's texel-sampling settings. + +Members +------- + +XXX diff --git a/src/gallium/docs/build/html/_sources/cso/shader.txt b/src/gallium/docs/build/html/_sources/cso/shader.txt new file mode 100644 index 0000000000..9e1cb35be0 --- /dev/null +++ b/src/gallium/docs/build/html/_sources/cso/shader.txt @@ -0,0 +1,10 @@ +Shader +====== + +One of the two types of shaders supported by Gallium. + +Members +------- + +tokens + A list of tgsi_tokens. diff --git a/src/gallium/docs/build/html/_sources/index.txt b/src/gallium/docs/build/html/_sources/index.txt new file mode 100644 index 0000000000..f93d1cafa9 --- /dev/null +++ b/src/gallium/docs/build/html/_sources/index.txt @@ -0,0 +1,24 @@ +.. 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 + cso + +Indices and tables +================== + +* :ref:`genindex` +* :ref:`modindex` +* :ref:`search` + diff --git a/src/gallium/docs/build/html/_sources/intro.txt b/src/gallium/docs/build/html/_sources/intro.txt new file mode 100644 index 0000000000..1ea103840a --- /dev/null +++ b/src/gallium/docs/build/html/_sources/intro.txt @@ -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. diff --git a/src/gallium/docs/build/html/_sources/tgsi.txt b/src/gallium/docs/build/html/_sources/tgsi.txt new file mode 100644 index 0000000000..2474925b46 --- /dev/null +++ b/src/gallium/docs/build/html/_sources/tgsi.txt @@ -0,0 +1,7 @@ +TGSI +==== + +TGSI, Tungsten Graphics Shader Instructions, is an intermediate language +for describing shaders. Since Gallium is inherently shaderful, shaders are +an important part of the API. TGSI is the only intermediate representation +used by all drivers. diff --git a/src/gallium/docs/build/html/_static/basic.css b/src/gallium/docs/build/html/_static/basic.css new file mode 100644 index 0000000000..128114b761 --- /dev/null +++ b/src/gallium/docs/build/html/_static/basic.css @@ -0,0 +1,405 @@ +/** + * Sphinx stylesheet -- basic theme + * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + */ + +/* -- main layout ----------------------------------------------------------- */ + +div.clearer { + clear: both; +} + +/* -- relbar ---------------------------------------------------------------- */ + +div.related { + width: 100%; + font-size: 90%; +} + +div.related h3 { + display: none; +} + +div.related ul { + margin: 0; + padding: 0 0 0 10px; + list-style: none; +} + +div.related li { + display: inline; +} + +div.related li.right { + float: right; + margin-right: 5px; +} + +/* -- sidebar --------------------------------------------------------------- */ + +div.sphinxsidebarwrapper { + padding: 10px 5px 0 10px; +} + +div.sphinxsidebar { + float: left; + width: 230px; + margin-left: -100%; + font-size: 90%; +} + +div.sphinxsidebar ul { + list-style: none; +} + +div.sphinxsidebar ul ul, +div.sphinxsidebar ul.want-points { + margin-left: 20px; + list-style: square; +} + +div.sphinxsidebar ul ul { + margin-top: 0; + margin-bottom: 0; +} + +div.sphinxsidebar form { + margin-top: 10px; +} + +div.sphinxsidebar input { + border: 1px solid #98dbcc; + font-family: sans-serif; + font-size: 1em; +} + +img { + border: 0; +} + +/* -- search page ----------------------------------------------------------- */ + +ul.search { + margin: 10px 0 0 20px; + padding: 0; +} + +ul.search li { + padding: 5px 0 5px 20px; + background-image: url(file.png); + background-repeat: no-repeat; + background-position: 0 7px; +} + +ul.search li a { + font-weight: bold; +} + +ul.search li div.context { + color: #888; + margin: 2px 0 0 30px; + text-align: left; +} + +ul.keywordmatches li.goodmatch a { + font-weight: bold; +} + +/* -- index page ------------------------------------------------------------ */ + +table.contentstable { + width: 90%; +} + +table.contentstable p.biglink { + line-height: 150%; +} + +a.biglink { + font-size: 1.3em; +} + +span.linkdescr { + font-style: italic; + padding-top: 5px; + font-size: 90%; +} + +/* -- general index --------------------------------------------------------- */ + +table.indextable td { + text-align: left; + vertical-align: top; +} + +table.indextable dl, table.indextable dd { + margin-top: 0; + margin-bottom: 0; +} + +table.indextable tr.pcap { + height: 10px; +} + +table.indextable tr.cap { + margin-top: 10px; + background-color: #f2f2f2; +} + +img.toggler { + margin-right: 3px; + margin-top: 3px; + cursor: pointer; +} + +/* -- general body styles --------------------------------------------------- */ + +a.headerlink { + visibility: hidden; +} + +h1:hover > a.headerlink, +h2:hover > a.headerlink, +h3:hover > a.headerlink, +h4:hover > a.headerlink, +h5:hover > a.headerlink, +h6:hover > a.headerlink, +dt:hover > a.headerlink { + visibility: visible; +} + +div.body p.caption { + text-align: inherit; +} + +div.body td { + text-align: left; +} + +.field-list ul { + padding-left: 1em; +} + +.first { + margin-top: 0 !important; +} + +p.rubric { + margin-top: 30px; + font-weight: bold; +} + +/* -- sidebars -------------------------------------------------------------- */ + +div.sidebar { + margin: 0 0 0.5em 1em; + border: 1px solid #ddb; + padding: 7px 7px 0 7px; + background-color: #ffe; + width: 40%; + float: right; +} + +p.sidebar-title { + font-weight: bold; +} + +/* -- topics ---------------------------------------------------------------- */ + +div.topic { + border: 1px solid #ccc; + padding: 7px 7px 0 7px; + margin: 10px 0 10px 0; +} + +p.topic-title { + font-size: 1.1em; + font-weight: bold; + margin-top: 10px; +} + +/* -- admonitions ----------------------------------------------------------- */ + +div.admonition { + margin-top: 10px; + margin-bottom: 10px; + padding: 7px; +} + +div.admonition dt { + font-weight: bold; +} + +div.admonition dl { + margin-bottom: 0; +} + +p.admonition-title { + margin: 0px 10px 5px 0px; + font-weight: bold; +} + +div.body p.centered { + text-align: center; + margin-top: 25px; +} + +/* -- tables ---------------------------------------------------------------- */ + +table.docutils { + border: 0; + border-collapse: collapse; +} + +table.docutils td, table.docutils th { + padding: 1px 8px 1px 0; + border-top: 0; + border-left: 0; + border-right: 0; + border-bottom: 1px solid #aaa; +} + +table.field-list td, table.field-list th { + border: 0 !important; +} + +table.footnote td, table.footnote th { + border: 0 !important; +} + +th { + text-align: left; + padding-right: 5px; +} + +/* -- other body styles ----------------------------------------------------- */ + +dl { + margin-bottom: 15px; +} + +dd p { + margin-top: 0px; +} + +dd ul, dd table { + margin-bottom: 10px; +} + +dd { + margin-top: 3px; + margin-bottom: 10px; + margin-left: 30px; +} + +dt:target, .highlight { + background-color: #fbe54e; +} + +dl.glossary dt { + font-weight: bold; + font-size: 1.1em; +} + +.field-list ul { + margin: 0; + padding-left: 1em; +} + +.field-list p { + margin: 0; +} + +.refcount { + color: #060; +} + +.optional { + font-size: 1.3em; +} + +.versionmodified { + font-style: italic; +} + +.system-message { + background-color: #fda; + padding: 5px; + border: 3px solid red; +} + +.footnote:target { + background-color: #ffa +} + +/* -- code displays --------------------------------------------------------- */ + +pre { + overflow: auto; +} + +td.linenos pre { + padding: 5px 0px; + border: 0; + background-color: transparent; + color: #aaa; +} + +table.highlighttable { + margin-left: 0.5em; +} + +table.highlighttable td { + padding: 0 0.5em 0 0.5em; +} + +tt.descname { + background-color: transparent; + font-weight: bold; + font-size: 1.2em; +} + +tt.descclassname { + background-color: transparent; +} + +tt.xref, a tt { + background-color: transparent; + font-weight: bold; +} + +h1 tt, h2 tt, h3 tt, h4 tt, h5 tt, h6 tt { + background-color: transparent; +} + +/* -- math display ---------------------------------------------------------- */ + +img.math { + vertical-align: middle; +} + +div.body div.math p { + text-align: center; +} + +span.eqno { + float: right; +} + +/* -- printout stylesheet --------------------------------------------------- */ + +@media print { + div.document, + div.documentwrapper, + div.bodywrapper { + margin: 0; + width: 100%; + } + + div.sphinxsidebar, + div.related, + div.footer, + #top-link { + display: none; + } +} diff --git a/src/gallium/docs/build/html/_static/default.css b/src/gallium/docs/build/html/_static/default.css new file mode 100644 index 0000000000..c999f67ba0 --- /dev/null +++ b/src/gallium/docs/build/html/_static/default.css @@ -0,0 +1,210 @@ +/** + * Sphinx stylesheet -- default theme + * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + */ + +@import url("basic.css"); + +/* -- page layout ----------------------------------------------------------- */ + +body { + font-family: sans-serif; + font-size: 100%; + background-color: #11303d; + color: #000; + margin: 0; + padding: 0; +} + +div.document { + background-color: #1c4e63; +} + +div.documentwrapper { + float: left; + width: 100%; +} + +div.bodywrapper { + margin: 0 0 0 230px; +} + +div.body { + background-color: #ffffff; + color: #000000; + padding: 0 20px 30px 20px; +} + +div.footer { + color: #ffffff; + width: 100%; + padding: 9px 0 9px 0; + text-align: center; + font-size: 75%; +} + +div.footer a { + color: #ffffff; + text-decoration: underline; +} + +div.related { + background-color: #133f52; + line-height: 30px; + color: #ffffff; +} + +div.related a { + color: #ffffff; +} + +div.sphinxsidebar { +} + +div.sphinxsidebar h3 { + font-family: 'Trebuchet MS', sans-serif; + color: #ffffff; + font-size: 1.4em; + font-weight: normal; + margin: 0; + padding: 0; +} + +div.sphinxsidebar h3 a { + color: #ffffff; +} + +div.sphinxsidebar h4 { + font-family: 'Trebuchet MS', sans-serif; + color: #ffffff; + font-size: 1.3em; + font-weight: normal; + margin: 5px 0 0 0; + padding: 0; +} + +div.sphinxsidebar p { + color: #ffffff; +} + +div.sphinxsidebar p.topless { + margin: 5px 10px 10px 10px; +} + +div.sphinxsidebar ul { + margin: 10px; + padding: 0; + color: #ffffff; +} + +div.sphinxsidebar a { + color: #98dbcc; +} + +div.sphinxsidebar input { + border: 1px solid #98dbcc; + font-family: sans-serif; + font-size: 1em; +} + +/* -- body styles ----------------------------------------------------------- */ + +a { + color: #355f7c; + text-decoration: none; +} + +a:hover { + text-decoration: underline; +} + +div.body p, div.body dd, div.body li { + text-align: justify; + line-height: 130%; +} + +div.body h1, +div.body h2, +div.body h3, +div.body h4, +div.body h5, +div.body h6 { + font-family: 'Trebuchet MS', sans-serif; + background-color: #f2f2f2; + font-weight: normal; + color: #20435c; + border-bottom: 1px solid #ccc; + margin: 20px -20px 10px -20px; + padding: 3px 0 3px 10px; +} + +div.body h1 { margin-top: 0; font-size: 200%; } +div.body h2 { font-size: 160%; } +div.body h3 { font-size: 140%; } +div.body h4 { font-size: 120%; } +div.body h5 { font-size: 110%; } +div.body h6 { font-size: 100%; } + +a.headerlink { + color: #c60f0f; + font-size: 0.8em; + padding: 0 4px 0 4px; + text-decoration: none; +} + +a.headerlink:hover { + background-color: #c60f0f; + color: white; +} + +div.body p, div.body dd, div.body li { + text-align: justify; + line-height: 130%; +} + +div.admonition p.admonition-title + p { + display: inline; +} + +div.note { + background-color: #eee; + border: 1px solid #ccc; +} + +div.seealso { + background-color: #ffc; + border: 1px solid #ff6; +} + +div.topic { + background-color: #eee; +} + +div.warning { + background-color: #ffe4e4; + border: 1px solid #f66; +} + +p.admonition-title { + display: inline; +} + +p.admonition-title:after { + content: ":"; +} + +pre { + padding: 5px; + background-color: #eeffcc; + color: #333333; + line-height: 120%; + border: 1px solid #ac9; + border-left: none; + border-right: none; +} + +tt { + background-color: #ecf0f3; + padding: 0 1px 0 1px; + font-size: 0.95em; +} \ No newline at end of file diff --git a/src/gallium/docs/build/html/_static/doctools.js b/src/gallium/docs/build/html/_static/doctools.js new file mode 100644 index 0000000000..9447678cdd --- /dev/null +++ b/src/gallium/docs/build/html/_static/doctools.js @@ -0,0 +1,232 @@ +/// XXX: make it cross browser + +/** + * make the code below compatible with browsers without + * an installed firebug like debugger + */ +if (!window.console || !console.firebug) { + var names = ["log", "debug", "info", "warn", "error", "assert", "dir", "dirxml", + "group", "groupEnd", "time", "timeEnd", "count", "trace", "profile", "profileEnd"]; + window.console = {}; + for (var i = 0; i < names.length; ++i) + window.console[names[i]] = function() {} +} + +/** + * small helper function to urldecode strings + */ +jQuery.urldecode = function(x) { + return decodeURIComponent(x).replace(/\+/g, ' '); +} + +/** + * small helper function to urlencode strings + */ +jQuery.urlencode = encodeURIComponent; + +/** + * This function returns the parsed url parameters of the + * current request. Multiple values per key are supported, + * it will always return arrays of strings for the value parts. + */ +jQuery.getQueryParameters = function(s) { + if (typeof s == 'undefined') + s = document.location.search; + var parts = s.substr(s.indexOf('?') + 1).split('&'); + var result = {}; + for (var i = 0; i < parts.length; i++) { + var tmp = parts[i].split('=', 2); + var key = jQuery.urldecode(tmp[0]); + var value = jQuery.urldecode(tmp[1]); + if (key in result) + result[key].push(value); + else + result[key] = [value]; + } + return result; +} + +/** + * small function to check if an array contains + * a given item. + */ +jQuery.contains = function(arr, item) { + for (var i = 0; i < arr.length; i++) { + if (arr[i] == item) + return true; + } + return false; +} + +/** + * highlight a given string on a jquery object by wrapping it in + * span elements with the given class name. + */ +jQuery.fn.highlightText = function(text, className) { + function highlight(node) { + if (node.nodeType == 3) { + var val = node.nodeValue; + var pos = val.toLowerCase().indexOf(text); + if (pos >= 0 && !jQuery.className.has(node.parentNode, className)) { + var span = document.createElement("span"); + span.className = className; + span.appendChild(document.createTextNode(val.substr(pos, text.length))); + node.parentNode.insertBefore(span, node.parentNode.insertBefore( + document.createTextNode(val.substr(pos + text.length)), + node.nextSibling)); + node.nodeValue = val.substr(0, pos); + } + } + else if (!jQuery(node).is("button, select, textarea")) { + jQuery.each(node.childNodes, function() { + highlight(this) + }); + } + } + return this.each(function() { + highlight(this); + }); +} + +/** + * Small JavaScript module for the documentation. + */ +var Documentation = { + + init : function() { + this.fixFirefoxAnchorBug(); + this.highlightSearchWords(); + this.initModIndex(); + }, + + /** + * i18n support + */ + TRANSLATIONS : {}, + PLURAL_EXPR : function(n) { return n == 1 ? 0 : 1; }, + LOCALE : 'unknown', + + // gettext and ngettext don't access this so that the functions + // can savely bound to a different name (_ = Documentation.gettext) + gettext : function(string) { + var translated = Documentation.TRANSLATIONS[string]; + if (typeof translated == 'undefined') + return string; + return (typeof translated == 'string') ? translated : translated[0]; + }, + + ngettext : function(singular, plural, n) { + var translated = Documentation.TRANSLATIONS[singular]; + if (typeof translated == 'undefined') + return (n == 1) ? singular : plural; + return translated[Documentation.PLURALEXPR(n)]; + }, + + addTranslations : function(catalog) { + for (var key in catalog.messages) + this.TRANSLATIONS[key] = catalog.messages[key]; + this.PLURAL_EXPR = new Function('n', 'return +(' + catalog.plural_expr + ')'); + this.LOCALE = catalog.locale; + }, + + /** + * add context elements like header anchor links + */ + addContextElements : function() { + $('div[id] > :header:first').each(function() { + $('\u00B6'). + attr('href', '#' + this.id). + attr('title', _('Permalink to this headline')). + appendTo(this); + }); + $('dt[id]').each(function() { + $('\u00B6'). + attr('href', '#' + this.id). + attr('title', _('Permalink to this definition')). + appendTo(this); + }); + }, + + /** + * workaround a firefox stupidity + */ + fixFirefoxAnchorBug : function() { + if (document.location.hash && $.browser.mozilla) + window.setTimeout(function() { + document.location.href += ''; + }, 10); + }, + + /** + * highlight the search words provided in the url in the text + */ + highlightSearchWords : function() { + var params = $.getQueryParameters(); + var terms = (params.highlight) ? params.highlight[0].split(/\s+/) : []; + if (terms.length) { + var body = $('div.body'); + window.setTimeout(function() { + $.each(terms, function() { + body.highlightText(this.toLowerCase(), 'highlight'); + }); + }, 10); + $('') + .appendTo($('.sidebar .this-page-menu')); + } + }, + + /** + * init the modindex toggle buttons + */ + initModIndex : function() { + var togglers = $('img.toggler').click(function() { + var src = $(this).attr('src'); + var idnum = $(this).attr('id').substr(7); + console.log($('tr.cg-' + idnum).toggle()); + if (src.substr(-9) == 'minus.png') + $(this).attr('src', src.substr(0, src.length-9) + 'plus.png'); + else + $(this).attr('src', src.substr(0, src.length-8) + 'minus.png'); + }).css('display', ''); + if (DOCUMENTATION_OPTIONS.COLLAPSE_MODINDEX) { + togglers.click(); + } + }, + + /** + * helper function to hide the search marks again + */ + hideSearchWords : function() { + $('.sidebar .this-page-menu li.highlight-link').fadeOut(300); + $('span.highlight').removeClass('highlight'); + }, + + /** + * make the url absolute + */ + makeURL : function(relativeURL) { + return DOCUMENTATION_OPTIONS.URL_ROOT + '/' + relativeURL; + }, + + /** + * get the current relative url + */ + getCurrentURL : function() { + var path = document.location.pathname; + var parts = path.split(/\//); + $.each(DOCUMENTATION_OPTIONS.URL_ROOT.split(/\//), function() { + if (this == '..') + parts.pop(); + }); + var url = parts.join('/'); + return path.substring(url.lastIndexOf('/') + 1, path.length - 1); + } +}; + +// quick alias for translations +_ = Documentation.gettext; + +$(document).ready(function() { + Documentation.init(); +}); diff --git a/src/gallium/docs/build/html/_static/file.png b/src/gallium/docs/build/html/_static/file.png new file mode 100644 index 0000000000..d18082e397 Binary files /dev/null and b/src/gallium/docs/build/html/_static/file.png differ diff --git a/src/gallium/docs/build/html/_static/jquery.js b/src/gallium/docs/build/html/_static/jquery.js new file mode 100644 index 0000000000..82b98e1d76 --- /dev/null +++ b/src/gallium/docs/build/html/_static/jquery.js @@ -0,0 +1,32 @@ +/* + * jQuery 1.2.6 - New Wave Javascript + * + * Copyright (c) 2008 John Resig (jquery.com) + * Dual licensed under the MIT (MIT-LICENSE.txt) + * and GPL (GPL-LICENSE.txt) licenses. + * + * $Date: 2008-05-24 14:22:17 -0400 (Sat, 24 May 2008) $ + * $Rev: 5685 $ + */ +(function(){var _jQuery=window.jQuery,_$=window.$;var jQuery=window.jQuery=window.$=function(selector,context){return new jQuery.fn.init(selector,context);};var quickExpr=/^[^<]*(<(.|\s)+>)[^>]*$|^#(\w+)$/,isSimple=/^.[^:#\[\.]*$/,undefined;jQuery.fn=jQuery.prototype={init:function(selector,context){selector=selector||document;if(selector.nodeType){this[0]=selector;this.length=1;return this;}if(typeof selector=="string"){var match=quickExpr.exec(selector);if(match&&(match[1]||!context)){if(match[1])selector=jQuery.clean([match[1]],context);else{var elem=document.getElementById(match[3]);if(elem){if(elem.id!=match[3])return jQuery().find(selector);return jQuery(elem);}selector=[];}}else +return jQuery(context).find(selector);}else if(jQuery.isFunction(selector))return jQuery(document)[jQuery.fn.ready?"ready":"load"](selector);return this.setArray(jQuery.makeArray(selector));},jquery:"1.2.6",size:function(){return this.length;},length:0,get:function(num){return num==undefined?jQuery.makeArray(this):this[num];},pushStack:function(elems){var ret=jQuery(elems);ret.prevObject=this;return ret;},setArray:function(elems){this.length=0;Array.prototype.push.apply(this,elems);return this;},each:function(callback,args){return jQuery.each(this,callback,args);},index:function(elem){var ret=-1;return jQuery.inArray(elem&&elem.jquery?elem[0]:elem,this);},attr:function(name,value,type){var options=name;if(name.constructor==String)if(value===undefined)return this[0]&&jQuery[type||"attr"](this[0],name);else{options={};options[name]=value;}return this.each(function(i){for(name in options)jQuery.attr(type?this.style:this,name,jQuery.prop(this,options[name],type,i,name));});},css:function(key,value){if((key=='width'||key=='height')&&parseFloat(value)<0)value=undefined;return this.attr(key,value,"curCSS");},text:function(text){if(typeof text!="object"&&text!=null)return this.empty().append((this[0]&&this[0].ownerDocument||document).createTextNode(text));var ret="";jQuery.each(text||this,function(){jQuery.each(this.childNodes,function(){if(this.nodeType!=8)ret+=this.nodeType!=1?this.nodeValue:jQuery.fn.text([this]);});});return ret;},wrapAll:function(html){if(this[0])jQuery(html,this[0].ownerDocument).clone().insertBefore(this[0]).map(function(){var elem=this;while(elem.firstChild)elem=elem.firstChild;return elem;}).append(this);return this;},wrapInner:function(html){return this.each(function(){jQuery(this).contents().wrapAll(html);});},wrap:function(html){return this.each(function(){jQuery(this).wrapAll(html);});},append:function(){return this.domManip(arguments,true,false,function(elem){if(this.nodeType==1)this.appendChild(elem);});},prepend:function(){return this.domManip(arguments,true,true,function(elem){if(this.nodeType==1)this.insertBefore(elem,this.firstChild);});},before:function(){return this.domManip(arguments,false,false,function(elem){this.parentNode.insertBefore(elem,this);});},after:function(){return this.domManip(arguments,false,true,function(elem){this.parentNode.insertBefore(elem,this.nextSibling);});},end:function(){return this.prevObject||jQuery([]);},find:function(selector){var elems=jQuery.map(this,function(elem){return jQuery.find(selector,elem);});return this.pushStack(/[^+>] [^+>]/.test(selector)||selector.indexOf("..")>-1?jQuery.unique(elems):elems);},clone:function(events){var ret=this.map(function(){if(jQuery.browser.msie&&!jQuery.isXMLDoc(this)){var clone=this.cloneNode(true),container=document.createElement("div");container.appendChild(clone);return jQuery.clean([container.innerHTML])[0];}else +return this.cloneNode(true);});var clone=ret.find("*").andSelf().each(function(){if(this[expando]!=undefined)this[expando]=null;});if(events===true)this.find("*").andSelf().each(function(i){if(this.nodeType==3)return;var events=jQuery.data(this,"events");for(var type in events)for(var handler in events[type])jQuery.event.add(clone[i],type,events[type][handler],events[type][handler].data);});return ret;},filter:function(selector){return this.pushStack(jQuery.isFunction(selector)&&jQuery.grep(this,function(elem,i){return selector.call(elem,i);})||jQuery.multiFilter(selector,this));},not:function(selector){if(selector.constructor==String)if(isSimple.test(selector))return this.pushStack(jQuery.multiFilter(selector,this,true));else +selector=jQuery.multiFilter(selector,this);var isArrayLike=selector.length&&selector[selector.length-1]!==undefined&&!selector.nodeType;return this.filter(function(){return isArrayLike?jQuery.inArray(this,selector)<0:this!=selector;});},add:function(selector){return this.pushStack(jQuery.unique(jQuery.merge(this.get(),typeof selector=='string'?jQuery(selector):jQuery.makeArray(selector))));},is:function(selector){return!!selector&&jQuery.multiFilter(selector,this).length>0;},hasClass:function(selector){return this.is("."+selector);},val:function(value){if(value==undefined){if(this.length){var elem=this[0];if(jQuery.nodeName(elem,"select")){var index=elem.selectedIndex,values=[],options=elem.options,one=elem.type=="select-one";if(index<0)return null;for(var i=one?index:0,max=one?index+1:options.length;i=0||jQuery.inArray(this.name,value)>=0);else if(jQuery.nodeName(this,"select")){var values=jQuery.makeArray(value);jQuery("option",this).each(function(){this.selected=(jQuery.inArray(this.value,values)>=0||jQuery.inArray(this.text,values)>=0);});if(!values.length)this.selectedIndex=-1;}else +this.value=value;});},html:function(value){return value==undefined?(this[0]?this[0].innerHTML:null):this.empty().append(value);},replaceWith:function(value){return this.after(value).remove();},eq:function(i){return this.slice(i,i+1);},slice:function(){return this.pushStack(Array.prototype.slice.apply(this,arguments));},map:function(callback){return this.pushStack(jQuery.map(this,function(elem,i){return callback.call(elem,i,elem);}));},andSelf:function(){return this.add(this.prevObject);},data:function(key,value){var parts=key.split(".");parts[1]=parts[1]?"."+parts[1]:"";if(value===undefined){var data=this.triggerHandler("getData"+parts[1]+"!",[parts[0]]);if(data===undefined&&this.length)data=jQuery.data(this[0],key);return data===undefined&&parts[1]?this.data(parts[0]):data;}else +return this.trigger("setData"+parts[1]+"!",[parts[0],value]).each(function(){jQuery.data(this,key,value);});},removeData:function(key){return this.each(function(){jQuery.removeData(this,key);});},domManip:function(args,table,reverse,callback){var clone=this.length>1,elems;return this.each(function(){if(!elems){elems=jQuery.clean(args,this.ownerDocument);if(reverse)elems.reverse();}var obj=this;if(table&&jQuery.nodeName(this,"table")&&jQuery.nodeName(elems[0],"tr"))obj=this.getElementsByTagName("tbody")[0]||this.appendChild(this.ownerDocument.createElement("tbody"));var scripts=jQuery([]);jQuery.each(elems,function(){var elem=clone?jQuery(this).clone(true)[0]:this;if(jQuery.nodeName(elem,"script"))scripts=scripts.add(elem);else{if(elem.nodeType==1)scripts=scripts.add(jQuery("script",elem).remove());callback.call(obj,elem);}});scripts.each(evalScript);});}};jQuery.fn.init.prototype=jQuery.fn;function evalScript(i,elem){if(elem.src)jQuery.ajax({url:elem.src,async:false,dataType:"script"});else +jQuery.globalEval(elem.text||elem.textContent||elem.innerHTML||"");if(elem.parentNode)elem.parentNode.removeChild(elem);}function now(){return+new Date;}jQuery.extend=jQuery.fn.extend=function(){var target=arguments[0]||{},i=1,length=arguments.length,deep=false,options;if(target.constructor==Boolean){deep=target;target=arguments[1]||{};i=2;}if(typeof target!="object"&&typeof target!="function")target={};if(length==i){target=this;--i;}for(;i-1;}},swap:function(elem,options,callback){var old={};for(var name in options){old[name]=elem.style[name];elem.style[name]=options[name];}callback.call(elem);for(var name in options)elem.style[name]=old[name];},css:function(elem,name,force){if(name=="width"||name=="height"){var val,props={position:"absolute",visibility:"hidden",display:"block"},which=name=="width"?["Left","Right"]:["Top","Bottom"];function getWH(){val=name=="width"?elem.offsetWidth:elem.offsetHeight;var padding=0,border=0;jQuery.each(which,function(){padding+=parseFloat(jQuery.curCSS(elem,"padding"+this,true))||0;border+=parseFloat(jQuery.curCSS(elem,"border"+this+"Width",true))||0;});val-=Math.round(padding+border);}if(jQuery(elem).is(":visible"))getWH();else +jQuery.swap(elem,props,getWH);return Math.max(0,val);}return jQuery.curCSS(elem,name,force);},curCSS:function(elem,name,force){var ret,style=elem.style;function color(elem){if(!jQuery.browser.safari)return false;var ret=defaultView.getComputedStyle(elem,null);return!ret||ret.getPropertyValue("color")=="";}if(name=="opacity"&&jQuery.browser.msie){ret=jQuery.attr(style,"opacity");return ret==""?"1":ret;}if(jQuery.browser.opera&&name=="display"){var save=style.outline;style.outline="0 solid black";style.outline=save;}if(name.match(/float/i))name=styleFloat;if(!force&&style&&style[name])ret=style[name];else if(defaultView.getComputedStyle){if(name.match(/float/i))name="float";name=name.replace(/([A-Z])/g,"-$1").toLowerCase();var computedStyle=defaultView.getComputedStyle(elem,null);if(computedStyle&&!color(elem))ret=computedStyle.getPropertyValue(name);else{var swap=[],stack=[],a=elem,i=0;for(;a&&color(a);a=a.parentNode)stack.unshift(a);for(;i]*?)\/>/g,function(all,front,tag){return tag.match(/^(abbr|br|col|img|input|link|meta|param|hr|area|embed)$/i)?all:front+">";});var tags=jQuery.trim(elem).toLowerCase(),div=context.createElement("div");var wrap=!tags.indexOf("",""]||!tags.indexOf("",""]||tags.match(/^<(thead|tbody|tfoot|colg|cap)/)&&[1,"","
"]||!tags.indexOf("",""]||(!tags.indexOf("",""]||!tags.indexOf("",""]||jQuery.browser.msie&&[1,"div
","
"]||[0,"",""];div.innerHTML=wrap[1]+elem+wrap[2];while(wrap[0]--)div=div.lastChild;if(jQuery.browser.msie){var tbody=!tags.indexOf(""&&tags.indexOf("=0;--j)if(jQuery.nodeName(tbody[j],"tbody")&&!tbody[j].childNodes.length)tbody[j].parentNode.removeChild(tbody[j]);if(/^\s/.test(elem))div.insertBefore(context.createTextNode(elem.match(/^\s*/)[0]),div.firstChild);}elem=jQuery.makeArray(div.childNodes);}if(elem.length===0&&(!jQuery.nodeName(elem,"form")&&!jQuery.nodeName(elem,"select")))return;if(elem[0]==undefined||jQuery.nodeName(elem,"form")||elem.options)ret.push(elem);else +ret=jQuery.merge(ret,elem);});return ret;},attr:function(elem,name,value){if(!elem||elem.nodeType==3||elem.nodeType==8)return undefined;var notxml=!jQuery.isXMLDoc(elem),set=value!==undefined,msie=jQuery.browser.msie;name=notxml&&jQuery.props[name]||name;if(elem.tagName){var special=/href|src|style/.test(name);if(name=="selected"&&jQuery.browser.safari)elem.parentNode.selectedIndex;if(name in elem&¬xml&&!special){if(set){if(name=="type"&&jQuery.nodeName(elem,"input")&&elem.parentNode)throw"type property can't be changed";elem[name]=value;}if(jQuery.nodeName(elem,"form")&&elem.getAttributeNode(name))return elem.getAttributeNode(name).nodeValue;return elem[name];}if(msie&¬xml&&name=="style")return jQuery.attr(elem.style,"cssText",value);if(set)elem.setAttribute(name,""+value);var attr=msie&¬xml&&special?elem.getAttribute(name,2):elem.getAttribute(name);return attr===null?undefined:attr;}if(msie&&name=="opacity"){if(set){elem.zoom=1;elem.filter=(elem.filter||"").replace(/alpha\([^)]*\)/,"")+(parseInt(value)+''=="NaN"?"":"alpha(opacity="+value*100+")");}return elem.filter&&elem.filter.indexOf("opacity=")>=0?(parseFloat(elem.filter.match(/opacity=([^)]*)/)[1])/100)+'':"";}name=name.replace(/-([a-z])/ig,function(all,letter){return letter.toUpperCase();});if(set)elem[name]=value;return elem[name];},trim:function(text){return(text||"").replace(/^\s+|\s+$/g,"");},makeArray:function(array){var ret=[];if(array!=null){var i=array.length;if(i==null||array.split||array.setInterval||array.call)ret[0]=array;else +while(i)ret[--i]=array[i];}return ret;},inArray:function(elem,array){for(var i=0,length=array.length;i*",this).remove();while(this.firstChild)this.removeChild(this.firstChild);}},function(name,fn){jQuery.fn[name]=function(){return this.each(fn,arguments);};});jQuery.each(["Height","Width"],function(i,name){var type=name.toLowerCase();jQuery.fn[type]=function(size){return this[0]==window?jQuery.browser.opera&&document.body["client"+name]||jQuery.browser.safari&&window["inner"+name]||document.compatMode=="CSS1Compat"&&document.documentElement["client"+name]||document.body["client"+name]:this[0]==document?Math.max(Math.max(document.body["scroll"+name],document.documentElement["scroll"+name]),Math.max(document.body["offset"+name],document.documentElement["offset"+name])):size==undefined?(this.length?jQuery.css(this[0],type):null):this.css(type,size.constructor==String?size:size+"px");};});function num(elem,prop){return elem[0]&&parseInt(jQuery.curCSS(elem[0],prop,true),10)||0;}var chars=jQuery.browser.safari&&parseInt(jQuery.browser.version)<417?"(?:[\\w*_-]|\\\\.)":"(?:[\\w\u0128-\uFFFF*_-]|\\\\.)",quickChild=new RegExp("^>\\s*("+chars+"+)"),quickID=new RegExp("^("+chars+"+)(#)("+chars+"+)"),quickClass=new RegExp("^([#.]?)("+chars+"*)");jQuery.extend({expr:{"":function(a,i,m){return m[2]=="*"||jQuery.nodeName(a,m[2]);},"#":function(a,i,m){return a.getAttribute("id")==m[2];},":":{lt:function(a,i,m){return im[3]-0;},nth:function(a,i,m){return m[3]-0==i;},eq:function(a,i,m){return m[3]-0==i;},first:function(a,i){return i==0;},last:function(a,i,m,r){return i==r.length-1;},even:function(a,i){return i%2==0;},odd:function(a,i){return i%2;},"first-child":function(a){return a.parentNode.getElementsByTagName("*")[0]==a;},"last-child":function(a){return jQuery.nth(a.parentNode.lastChild,1,"previousSibling")==a;},"only-child":function(a){return!jQuery.nth(a.parentNode.lastChild,2,"previousSibling");},parent:function(a){return a.firstChild;},empty:function(a){return!a.firstChild;},contains:function(a,i,m){return(a.textContent||a.innerText||jQuery(a).text()||"").indexOf(m[3])>=0;},visible:function(a){return"hidden"!=a.type&&jQuery.css(a,"display")!="none"&&jQuery.css(a,"visibility")!="hidden";},hidden:function(a){return"hidden"==a.type||jQuery.css(a,"display")=="none"||jQuery.css(a,"visibility")=="hidden";},enabled:function(a){return!a.disabled;},disabled:function(a){return a.disabled;},checked:function(a){return a.checked;},selected:function(a){return a.selected||jQuery.attr(a,"selected");},text:function(a){return"text"==a.type;},radio:function(a){return"radio"==a.type;},checkbox:function(a){return"checkbox"==a.type;},file:function(a){return"file"==a.type;},password:function(a){return"password"==a.type;},submit:function(a){return"submit"==a.type;},image:function(a){return"image"==a.type;},reset:function(a){return"reset"==a.type;},button:function(a){return"button"==a.type||jQuery.nodeName(a,"button");},input:function(a){return/input|select|textarea|button/i.test(a.nodeName);},has:function(a,i,m){return jQuery.find(m[3],a).length;},header:function(a){return/h\d/i.test(a.nodeName);},animated:function(a){return jQuery.grep(jQuery.timers,function(fn){return a==fn.elem;}).length;}}},parse:[/^(\[) *@?([\w-]+) *([!*$^~=]*) *('?"?)(.*?)\4 *\]/,/^(:)([\w-]+)\("?'?(.*?(\(.*?\))?[^(]*?)"?'?\)/,new RegExp("^([:.#]*)("+chars+"+)")],multiFilter:function(expr,elems,not){var old,cur=[];while(expr&&expr!=old){old=expr;var f=jQuery.filter(expr,elems,not);expr=f.t.replace(/^\s*,\s*/,"");cur=not?elems=f.r:jQuery.merge(cur,f.r);}return cur;},find:function(t,context){if(typeof t!="string")return[t];if(context&&context.nodeType!=1&&context.nodeType!=9)return[];context=context||document;var ret=[context],done=[],last,nodeName;while(t&&last!=t){var r=[];last=t;t=jQuery.trim(t);var foundToken=false,re=quickChild,m=re.exec(t);if(m){nodeName=m[1].toUpperCase();for(var i=0;ret[i];i++)for(var c=ret[i].firstChild;c;c=c.nextSibling)if(c.nodeType==1&&(nodeName=="*"||c.nodeName.toUpperCase()==nodeName))r.push(c);ret=r;t=t.replace(re,"");if(t.indexOf(" ")==0)continue;foundToken=true;}else{re=/^([>+~])\s*(\w*)/i;if((m=re.exec(t))!=null){r=[];var merge={};nodeName=m[2].toUpperCase();m=m[1];for(var j=0,rl=ret.length;j=0;if(!not&&pass||not&&!pass)tmp.push(r[i]);}return tmp;},filter:function(t,r,not){var last;while(t&&t!=last){last=t;var p=jQuery.parse,m;for(var i=0;p[i];i++){m=p[i].exec(t);if(m){t=t.substring(m[0].length);m[2]=m[2].replace(/\\/g,"");break;}}if(!m)break;if(m[1]==":"&&m[2]=="not")r=isSimple.test(m[3])?jQuery.filter(m[3],r,true).r:jQuery(r).not(m[3]);else if(m[1]==".")r=jQuery.classFilter(r,m[2],not);else if(m[1]=="["){var tmp=[],type=m[3];for(var i=0,rl=r.length;i=0)^not)tmp.push(a);}r=tmp;}else if(m[1]==":"&&m[2]=="nth-child"){var merge={},tmp=[],test=/(-?)(\d*)n((?:\+|-)?\d*)/.exec(m[3]=="even"&&"2n"||m[3]=="odd"&&"2n+1"||!/\D/.test(m[3])&&"0n+"+m[3]||m[3]),first=(test[1]+(test[2]||1))-0,last=test[3]-0;for(var i=0,rl=r.length;i=0)add=true;if(add^not)tmp.push(node);}r=tmp;}else{var fn=jQuery.expr[m[1]];if(typeof fn=="object")fn=fn[m[2]];if(typeof fn=="string")fn=eval("false||function(a,i){return "+fn+";}");r=jQuery.grep(r,function(elem,i){return fn(elem,i,m,r);},not);}}return{r:r,t:t};},dir:function(elem,dir){var matched=[],cur=elem[dir];while(cur&&cur!=document){if(cur.nodeType==1)matched.push(cur);cur=cur[dir];}return matched;},nth:function(cur,result,dir,elem){result=result||1;var num=0;for(;cur;cur=cur[dir])if(cur.nodeType==1&&++num==result)break;return cur;},sibling:function(n,elem){var r=[];for(;n;n=n.nextSibling){if(n.nodeType==1&&n!=elem)r.push(n);}return r;}});jQuery.event={add:function(elem,types,handler,data){if(elem.nodeType==3||elem.nodeType==8)return;if(jQuery.browser.msie&&elem.setInterval)elem=window;if(!handler.guid)handler.guid=this.guid++;if(data!=undefined){var fn=handler;handler=this.proxy(fn,function(){return fn.apply(this,arguments);});handler.data=data;}var events=jQuery.data(elem,"events")||jQuery.data(elem,"events",{}),handle=jQuery.data(elem,"handle")||jQuery.data(elem,"handle",function(){if(typeof jQuery!="undefined"&&!jQuery.event.triggered)return jQuery.event.handle.apply(arguments.callee.elem,arguments);});handle.elem=elem;jQuery.each(types.split(/\s+/),function(index,type){var parts=type.split(".");type=parts[0];handler.type=parts[1];var handlers=events[type];if(!handlers){handlers=events[type]={};if(!jQuery.event.special[type]||jQuery.event.special[type].setup.call(elem)===false){if(elem.addEventListener)elem.addEventListener(type,handle,false);else if(elem.attachEvent)elem.attachEvent("on"+type,handle);}}handlers[handler.guid]=handler;jQuery.event.global[type]=true;});elem=null;},guid:1,global:{},remove:function(elem,types,handler){if(elem.nodeType==3||elem.nodeType==8)return;var events=jQuery.data(elem,"events"),ret,index;if(events){if(types==undefined||(typeof types=="string"&&types.charAt(0)=="."))for(var type in events)this.remove(elem,type+(types||""));else{if(types.type){handler=types.handler;types=types.type;}jQuery.each(types.split(/\s+/),function(index,type){var parts=type.split(".");type=parts[0];if(events[type]){if(handler)delete events[type][handler.guid];else +for(handler in events[type])if(!parts[1]||events[type][handler].type==parts[1])delete events[type][handler];for(ret in events[type])break;if(!ret){if(!jQuery.event.special[type]||jQuery.event.special[type].teardown.call(elem)===false){if(elem.removeEventListener)elem.removeEventListener(type,jQuery.data(elem,"handle"),false);else if(elem.detachEvent)elem.detachEvent("on"+type,jQuery.data(elem,"handle"));}ret=null;delete events[type];}}});}for(ret in events)break;if(!ret){var handle=jQuery.data(elem,"handle");if(handle)handle.elem=null;jQuery.removeData(elem,"events");jQuery.removeData(elem,"handle");}}},trigger:function(type,data,elem,donative,extra){data=jQuery.makeArray(data);if(type.indexOf("!")>=0){type=type.slice(0,-1);var exclusive=true;}if(!elem){if(this.global[type])jQuery("*").add([window,document]).trigger(type,data);}else{if(elem.nodeType==3||elem.nodeType==8)return undefined;var val,ret,fn=jQuery.isFunction(elem[type]||null),event=!data[0]||!data[0].preventDefault;if(event){data.unshift({type:type,target:elem,preventDefault:function(){},stopPropagation:function(){},timeStamp:now()});data[0][expando]=true;}data[0].type=type;if(exclusive)data[0].exclusive=true;var handle=jQuery.data(elem,"handle");if(handle)val=handle.apply(elem,data);if((!fn||(jQuery.nodeName(elem,'a')&&type=="click"))&&elem["on"+type]&&elem["on"+type].apply(elem,data)===false)val=false;if(event)data.shift();if(extra&&jQuery.isFunction(extra)){ret=extra.apply(elem,val==null?data:data.concat(val));if(ret!==undefined)val=ret;}if(fn&&donative!==false&&val!==false&&!(jQuery.nodeName(elem,'a')&&type=="click")){this.triggered=true;try{elem[type]();}catch(e){}}this.triggered=false;}return val;},handle:function(event){var val,ret,namespace,all,handlers;event=arguments[0]=jQuery.event.fix(event||window.event);namespace=event.type.split(".");event.type=namespace[0];namespace=namespace[1];all=!namespace&&!event.exclusive;handlers=(jQuery.data(this,"events")||{})[event.type];for(var j in handlers){var handler=handlers[j];if(all||handler.type==namespace){event.handler=handler;event.data=handler.data;ret=handler.apply(this,arguments);if(val!==false)val=ret;if(ret===false){event.preventDefault();event.stopPropagation();}}}return val;},fix:function(event){if(event[expando]==true)return event;var originalEvent=event;event={originalEvent:originalEvent};var props="altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode metaKey newValue originalTarget pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target timeStamp toElement type view wheelDelta which".split(" ");for(var i=props.length;i;i--)event[props[i]]=originalEvent[props[i]];event[expando]=true;event.preventDefault=function(){if(originalEvent.preventDefault)originalEvent.preventDefault();originalEvent.returnValue=false;};event.stopPropagation=function(){if(originalEvent.stopPropagation)originalEvent.stopPropagation();originalEvent.cancelBubble=true;};event.timeStamp=event.timeStamp||now();if(!event.target)event.target=event.srcElement||document;if(event.target.nodeType==3)event.target=event.target.parentNode;if(!event.relatedTarget&&event.fromElement)event.relatedTarget=event.fromElement==event.target?event.toElement:event.fromElement;if(event.pageX==null&&event.clientX!=null){var doc=document.documentElement,body=document.body;event.pageX=event.clientX+(doc&&doc.scrollLeft||body&&body.scrollLeft||0)-(doc.clientLeft||0);event.pageY=event.clientY+(doc&&doc.scrollTop||body&&body.scrollTop||0)-(doc.clientTop||0);}if(!event.which&&((event.charCode||event.charCode===0)?event.charCode:event.keyCode))event.which=event.charCode||event.keyCode;if(!event.metaKey&&event.ctrlKey)event.metaKey=event.ctrlKey;if(!event.which&&event.button)event.which=(event.button&1?1:(event.button&2?3:(event.button&4?2:0)));return event;},proxy:function(fn,proxy){proxy.guid=fn.guid=fn.guid||proxy.guid||this.guid++;return proxy;},special:{ready:{setup:function(){bindReady();return;},teardown:function(){return;}},mouseenter:{setup:function(){if(jQuery.browser.msie)return false;jQuery(this).bind("mouseover",jQuery.event.special.mouseenter.handler);return true;},teardown:function(){if(jQuery.browser.msie)return false;jQuery(this).unbind("mouseover",jQuery.event.special.mouseenter.handler);return true;},handler:function(event){if(withinElement(event,this))return true;event.type="mouseenter";return jQuery.event.handle.apply(this,arguments);}},mouseleave:{setup:function(){if(jQuery.browser.msie)return false;jQuery(this).bind("mouseout",jQuery.event.special.mouseleave.handler);return true;},teardown:function(){if(jQuery.browser.msie)return false;jQuery(this).unbind("mouseout",jQuery.event.special.mouseleave.handler);return true;},handler:function(event){if(withinElement(event,this))return true;event.type="mouseleave";return jQuery.event.handle.apply(this,arguments);}}}};jQuery.fn.extend({bind:function(type,data,fn){return type=="unload"?this.one(type,data,fn):this.each(function(){jQuery.event.add(this,type,fn||data,fn&&data);});},one:function(type,data,fn){var one=jQuery.event.proxy(fn||data,function(event){jQuery(this).unbind(event,one);return(fn||data).apply(this,arguments);});return this.each(function(){jQuery.event.add(this,type,one,fn&&data);});},unbind:function(type,fn){return this.each(function(){jQuery.event.remove(this,type,fn);});},trigger:function(type,data,fn){return this.each(function(){jQuery.event.trigger(type,data,this,true,fn);});},triggerHandler:function(type,data,fn){return this[0]&&jQuery.event.trigger(type,data,this[0],false,fn);},toggle:function(fn){var args=arguments,i=1;while(i=0){var selector=url.slice(off,url.length);url=url.slice(0,off);}callback=callback||function(){};var type="GET";if(params)if(jQuery.isFunction(params)){callback=params;params=null;}else{params=jQuery.param(params);type="POST";}var self=this;jQuery.ajax({url:url,type:type,dataType:"html",data:params,complete:function(res,status){if(status=="success"||status=="notmodified")self.html(selector?jQuery("
").append(res.responseText.replace(//g,"")).find(selector):res.responseText);self.each(callback,[res.responseText,status,res]);}});return this;},serialize:function(){return jQuery.param(this.serializeArray());},serializeArray:function(){return this.map(function(){return jQuery.nodeName(this,"form")?jQuery.makeArray(this.elements):this;}).filter(function(){return this.name&&!this.disabled&&(this.checked||/select|textarea/i.test(this.nodeName)||/text|hidden|password/i.test(this.type));}).map(function(i,elem){var val=jQuery(this).val();return val==null?null:val.constructor==Array?jQuery.map(val,function(val,i){return{name:elem.name,value:val};}):{name:elem.name,value:val};}).get();}});jQuery.each("ajaxStart,ajaxStop,ajaxComplete,ajaxError,ajaxSuccess,ajaxSend".split(","),function(i,o){jQuery.fn[o]=function(f){return this.bind(o,f);};});var jsc=now();jQuery.extend({get:function(url,data,callback,type){if(jQuery.isFunction(data)){callback=data;data=null;}return jQuery.ajax({type:"GET",url:url,data:data,success:callback,dataType:type});},getScript:function(url,callback){return jQuery.get(url,null,callback,"script");},getJSON:function(url,data,callback){return jQuery.get(url,data,callback,"json");},post:function(url,data,callback,type){if(jQuery.isFunction(data)){callback=data;data={};}return jQuery.ajax({type:"POST",url:url,data:data,success:callback,dataType:type});},ajaxSetup:function(settings){jQuery.extend(jQuery.ajaxSettings,settings);},ajaxSettings:{url:location.href,global:true,type:"GET",timeout:0,contentType:"application/x-www-form-urlencoded",processData:true,async:true,data:null,username:null,password:null,accepts:{xml:"application/xml, text/xml",html:"text/html",script:"text/javascript, application/javascript",json:"application/json, text/javascript",text:"text/plain",_default:"*/*"}},lastModified:{},ajax:function(s){s=jQuery.extend(true,s,jQuery.extend(true,{},jQuery.ajaxSettings,s));var jsonp,jsre=/=\?(&|$)/g,status,data,type=s.type.toUpperCase();if(s.data&&s.processData&&typeof s.data!="string")s.data=jQuery.param(s.data);if(s.dataType=="jsonp"){if(type=="GET"){if(!s.url.match(jsre))s.url+=(s.url.match(/\?/)?"&":"?")+(s.jsonp||"callback")+"=?";}else if(!s.data||!s.data.match(jsre))s.data=(s.data?s.data+"&":"")+(s.jsonp||"callback")+"=?";s.dataType="json";}if(s.dataType=="json"&&(s.data&&s.data.match(jsre)||s.url.match(jsre))){jsonp="jsonp"+jsc++;if(s.data)s.data=(s.data+"").replace(jsre,"="+jsonp+"$1");s.url=s.url.replace(jsre,"="+jsonp+"$1");s.dataType="script";window[jsonp]=function(tmp){data=tmp;success();complete();window[jsonp]=undefined;try{delete window[jsonp];}catch(e){}if(head)head.removeChild(script);};}if(s.dataType=="script"&&s.cache==null)s.cache=false;if(s.cache===false&&type=="GET"){var ts=now();var ret=s.url.replace(/(\?|&)_=.*?(&|$)/,"$1_="+ts+"$2");s.url=ret+((ret==s.url)?(s.url.match(/\?/)?"&":"?")+"_="+ts:"");}if(s.data&&type=="GET"){s.url+=(s.url.match(/\?/)?"&":"?")+s.data;s.data=null;}if(s.global&&!jQuery.active++)jQuery.event.trigger("ajaxStart");var remote=/^(?:\w+:)?\/\/([^\/?#]+)/;if(s.dataType=="script"&&type=="GET"&&remote.test(s.url)&&remote.exec(s.url)[1]!=location.host){var head=document.getElementsByTagName("head")[0];var script=document.createElement("script");script.src=s.url;if(s.scriptCharset)script.charset=s.scriptCharset;if(!jsonp){var done=false;script.onload=script.onreadystatechange=function(){if(!done&&(!this.readyState||this.readyState=="loaded"||this.readyState=="complete")){done=true;success();complete();head.removeChild(script);}};}head.appendChild(script);return undefined;}var requestDone=false;var xhr=window.ActiveXObject?new ActiveXObject("Microsoft.XMLHTTP"):new XMLHttpRequest();if(s.username)xhr.open(type,s.url,s.async,s.username,s.password);else +xhr.open(type,s.url,s.async);try{if(s.data)xhr.setRequestHeader("Content-Type",s.contentType);if(s.ifModified)xhr.setRequestHeader("If-Modified-Since",jQuery.lastModified[s.url]||"Thu, 01 Jan 1970 00:00:00 GMT");xhr.setRequestHeader("X-Requested-With","XMLHttpRequest");xhr.setRequestHeader("Accept",s.dataType&&s.accepts[s.dataType]?s.accepts[s.dataType]+", */*":s.accepts._default);}catch(e){}if(s.beforeSend&&s.beforeSend(xhr,s)===false){s.global&&jQuery.active--;xhr.abort();return false;}if(s.global)jQuery.event.trigger("ajaxSend",[xhr,s]);var onreadystatechange=function(isTimeout){if(!requestDone&&xhr&&(xhr.readyState==4||isTimeout=="timeout")){requestDone=true;if(ival){clearInterval(ival);ival=null;}status=isTimeout=="timeout"&&"timeout"||!jQuery.httpSuccess(xhr)&&"error"||s.ifModified&&jQuery.httpNotModified(xhr,s.url)&&"notmodified"||"success";if(status=="success"){try{data=jQuery.httpData(xhr,s.dataType,s.dataFilter);}catch(e){status="parsererror";}}if(status=="success"){var modRes;try{modRes=xhr.getResponseHeader("Last-Modified");}catch(e){}if(s.ifModified&&modRes)jQuery.lastModified[s.url]=modRes;if(!jsonp)success();}else +jQuery.handleError(s,xhr,status);complete();if(s.async)xhr=null;}};if(s.async){var ival=setInterval(onreadystatechange,13);if(s.timeout>0)setTimeout(function(){if(xhr){xhr.abort();if(!requestDone)onreadystatechange("timeout");}},s.timeout);}try{xhr.send(s.data);}catch(e){jQuery.handleError(s,xhr,null,e);}if(!s.async)onreadystatechange();function success(){if(s.success)s.success(data,status);if(s.global)jQuery.event.trigger("ajaxSuccess",[xhr,s]);}function complete(){if(s.complete)s.complete(xhr,status);if(s.global)jQuery.event.trigger("ajaxComplete",[xhr,s]);if(s.global&&!--jQuery.active)jQuery.event.trigger("ajaxStop");}return xhr;},handleError:function(s,xhr,status,e){if(s.error)s.error(xhr,status,e);if(s.global)jQuery.event.trigger("ajaxError",[xhr,s,e]);},active:0,httpSuccess:function(xhr){try{return!xhr.status&&location.protocol=="file:"||(xhr.status>=200&&xhr.status<300)||xhr.status==304||xhr.status==1223||jQuery.browser.safari&&xhr.status==undefined;}catch(e){}return false;},httpNotModified:function(xhr,url){try{var xhrRes=xhr.getResponseHeader("Last-Modified");return xhr.status==304||xhrRes==jQuery.lastModified[url]||jQuery.browser.safari&&xhr.status==undefined;}catch(e){}return false;},httpData:function(xhr,type,filter){var ct=xhr.getResponseHeader("content-type"),xml=type=="xml"||!type&&ct&&ct.indexOf("xml")>=0,data=xml?xhr.responseXML:xhr.responseText;if(xml&&data.documentElement.tagName=="parsererror")throw"parsererror";if(filter)data=filter(data,type);if(type=="script")jQuery.globalEval(data);if(type=="json")data=eval("("+data+")");return data;},param:function(a){var s=[];if(a.constructor==Array||a.jquery)jQuery.each(a,function(){s.push(encodeURIComponent(this.name)+"="+encodeURIComponent(this.value));});else +for(var j in a)if(a[j]&&a[j].constructor==Array)jQuery.each(a[j],function(){s.push(encodeURIComponent(j)+"="+encodeURIComponent(this));});else +s.push(encodeURIComponent(j)+"="+encodeURIComponent(jQuery.isFunction(a[j])?a[j]():a[j]));return s.join("&").replace(/%20/g,"+");}});jQuery.fn.extend({show:function(speed,callback){return speed?this.animate({height:"show",width:"show",opacity:"show"},speed,callback):this.filter(":hidden").each(function(){this.style.display=this.oldblock||"";if(jQuery.css(this,"display")=="none"){var elem=jQuery("<"+this.tagName+" />").appendTo("body");this.style.display=elem.css("display");if(this.style.display=="none")this.style.display="block";elem.remove();}}).end();},hide:function(speed,callback){return speed?this.animate({height:"hide",width:"hide",opacity:"hide"},speed,callback):this.filter(":visible").each(function(){this.oldblock=this.oldblock||jQuery.css(this,"display");this.style.display="none";}).end();},_toggle:jQuery.fn.toggle,toggle:function(fn,fn2){return jQuery.isFunction(fn)&&jQuery.isFunction(fn2)?this._toggle.apply(this,arguments):fn?this.animate({height:"toggle",width:"toggle",opacity:"toggle"},fn,fn2):this.each(function(){jQuery(this)[jQuery(this).is(":hidden")?"show":"hide"]();});},slideDown:function(speed,callback){return this.animate({height:"show"},speed,callback);},slideUp:function(speed,callback){return this.animate({height:"hide"},speed,callback);},slideToggle:function(speed,callback){return this.animate({height:"toggle"},speed,callback);},fadeIn:function(speed,callback){return this.animate({opacity:"show"},speed,callback);},fadeOut:function(speed,callback){return this.animate({opacity:"hide"},speed,callback);},fadeTo:function(speed,to,callback){return this.animate({opacity:to},speed,callback);},animate:function(prop,speed,easing,callback){var optall=jQuery.speed(speed,easing,callback);return this[optall.queue===false?"each":"queue"](function(){if(this.nodeType!=1)return false;var opt=jQuery.extend({},optall),p,hidden=jQuery(this).is(":hidden"),self=this;for(p in prop){if(prop[p]=="hide"&&hidden||prop[p]=="show"&&!hidden)return opt.complete.call(this);if(p=="height"||p=="width"){opt.display=jQuery.css(this,"display");opt.overflow=this.style.overflow;}}if(opt.overflow!=null)this.style.overflow="hidden";opt.curAnim=jQuery.extend({},prop);jQuery.each(prop,function(name,val){var e=new jQuery.fx(self,opt,name);if(/toggle|show|hide/.test(val))e[val=="toggle"?hidden?"show":"hide":val](prop);else{var parts=val.toString().match(/^([+-]=)?([\d+-.]+)(.*)$/),start=e.cur(true)||0;if(parts){var end=parseFloat(parts[2]),unit=parts[3]||"px";if(unit!="px"){self.style[name]=(end||1)+unit;start=((end||1)/e.cur(true))*start;self.style[name]=start+unit;}if(parts[1])end=((parts[1]=="-="?-1:1)*end)+start;e.custom(start,end,unit);}else +e.custom(start,val,"");}});return true;});},queue:function(type,fn){if(jQuery.isFunction(type)||(type&&type.constructor==Array)){fn=type;type="fx";}if(!type||(typeof type=="string"&&!fn))return queue(this[0],type);return this.each(function(){if(fn.constructor==Array)queue(this,type,fn);else{queue(this,type).push(fn);if(queue(this,type).length==1)fn.call(this);}});},stop:function(clearQueue,gotoEnd){var timers=jQuery.timers;if(clearQueue)this.queue([]);this.each(function(){for(var i=timers.length-1;i>=0;i--)if(timers[i].elem==this){if(gotoEnd)timers[i](true);timers.splice(i,1);}});if(!gotoEnd)this.dequeue();return this;}});var queue=function(elem,type,array){if(elem){type=type||"fx";var q=jQuery.data(elem,type+"queue");if(!q||array)q=jQuery.data(elem,type+"queue",jQuery.makeArray(array));}return q;};jQuery.fn.dequeue=function(type){type=type||"fx";return this.each(function(){var q=queue(this,type);q.shift();if(q.length)q[0].call(this);});};jQuery.extend({speed:function(speed,easing,fn){var opt=speed&&speed.constructor==Object?speed:{complete:fn||!fn&&easing||jQuery.isFunction(speed)&&speed,duration:speed,easing:fn&&easing||easing&&easing.constructor!=Function&&easing};opt.duration=(opt.duration&&opt.duration.constructor==Number?opt.duration:jQuery.fx.speeds[opt.duration])||jQuery.fx.speeds.def;opt.old=opt.complete;opt.complete=function(){if(opt.queue!==false)jQuery(this).dequeue();if(jQuery.isFunction(opt.old))opt.old.call(this);};return opt;},easing:{linear:function(p,n,firstNum,diff){return firstNum+diff*p;},swing:function(p,n,firstNum,diff){return((-Math.cos(p*Math.PI)/2)+0.5)*diff+firstNum;}},timers:[],timerId:null,fx:function(elem,options,prop){this.options=options;this.elem=elem;this.prop=prop;if(!options.orig)options.orig={};}});jQuery.fx.prototype={update:function(){if(this.options.step)this.options.step.call(this.elem,this.now,this);(jQuery.fx.step[this.prop]||jQuery.fx.step._default)(this);if(this.prop=="height"||this.prop=="width")this.elem.style.display="block";},cur:function(force){if(this.elem[this.prop]!=null&&this.elem.style[this.prop]==null)return this.elem[this.prop];var r=parseFloat(jQuery.css(this.elem,this.prop,force));return r&&r>-10000?r:parseFloat(jQuery.curCSS(this.elem,this.prop))||0;},custom:function(from,to,unit){this.startTime=now();this.start=from;this.end=to;this.unit=unit||this.unit||"px";this.now=this.start;this.pos=this.state=0;this.update();var self=this;function t(gotoEnd){return self.step(gotoEnd);}t.elem=this.elem;jQuery.timers.push(t);if(jQuery.timerId==null){jQuery.timerId=setInterval(function(){var timers=jQuery.timers;for(var i=0;ithis.options.duration+this.startTime){this.now=this.end;this.pos=this.state=1;this.update();this.options.curAnim[this.prop]=true;var done=true;for(var i in this.options.curAnim)if(this.options.curAnim[i]!==true)done=false;if(done){if(this.options.display!=null){this.elem.style.overflow=this.options.overflow;this.elem.style.display=this.options.display;if(jQuery.css(this.elem,"display")=="none")this.elem.style.display="block";}if(this.options.hide)this.elem.style.display="none";if(this.options.hide||this.options.show)for(var p in this.options.curAnim)jQuery.attr(this.elem.style,p,this.options.orig[p]);}if(done)this.options.complete.call(this.elem);return false;}else{var n=t-this.startTime;this.state=n/this.options.duration;this.pos=jQuery.easing[this.options.easing||(jQuery.easing.swing?"swing":"linear")](this.state,n,0,1,this.options.duration);this.now=this.start+((this.end-this.start)*this.pos);this.update();}return true;}};jQuery.extend(jQuery.fx,{speeds:{slow:600,fast:200,def:400},step:{scrollLeft:function(fx){fx.elem.scrollLeft=fx.now;},scrollTop:function(fx){fx.elem.scrollTop=fx.now;},opacity:function(fx){jQuery.attr(fx.elem.style,"opacity",fx.now);},_default:function(fx){fx.elem.style[fx.prop]=fx.now+fx.unit;}}});jQuery.fn.offset=function(){var left=0,top=0,elem=this[0],results;if(elem)with(jQuery.browser){var parent=elem.parentNode,offsetChild=elem,offsetParent=elem.offsetParent,doc=elem.ownerDocument,safari2=safari&&parseInt(version)<522&&!/adobeair/i.test(userAgent),css=jQuery.curCSS,fixed=css(elem,"position")=="fixed";if(elem.getBoundingClientRect){var box=elem.getBoundingClientRect();add(box.left+Math.max(doc.documentElement.scrollLeft,doc.body.scrollLeft),box.top+Math.max(doc.documentElement.scrollTop,doc.body.scrollTop));add(-doc.documentElement.clientLeft,-doc.documentElement.clientTop);}else{add(elem.offsetLeft,elem.offsetTop);while(offsetParent){add(offsetParent.offsetLeft,offsetParent.offsetTop);if(mozilla&&!/^t(able|d|h)$/i.test(offsetParent.tagName)||safari&&!safari2)border(offsetParent);if(!fixed&&css(offsetParent,"position")=="fixed")fixed=true;offsetChild=/^body$/i.test(offsetParent.tagName)?offsetChild:offsetParent;offsetParent=offsetParent.offsetParent;}while(parent&&parent.tagName&&!/^body|html$/i.test(parent.tagName)){if(!/^inline|table.*$/i.test(css(parent,"display")))add(-parent.scrollLeft,-parent.scrollTop);if(mozilla&&css(parent,"overflow")!="visible")border(parent);parent=parent.parentNode;}if((safari2&&(fixed||css(offsetChild,"position")=="absolute"))||(mozilla&&css(offsetChild,"position")!="absolute"))add(-doc.body.offsetLeft,-doc.body.offsetTop);if(fixed)add(Math.max(doc.documentElement.scrollLeft,doc.body.scrollLeft),Math.max(doc.documentElement.scrollTop,doc.body.scrollTop));}results={top:top,left:left};}function border(elem){add(jQuery.curCSS(elem,"borderLeftWidth",true),jQuery.curCSS(elem,"borderTopWidth",true));}function add(l,t){left+=parseInt(l,10)||0;top+=parseInt(t,10)||0;}return results;};jQuery.fn.extend({position:function(){var left=0,top=0,results;if(this[0]){var offsetParent=this.offsetParent(),offset=this.offset(),parentOffset=/^body|html$/i.test(offsetParent[0].tagName)?{top:0,left:0}:offsetParent.offset();offset.top-=num(this,'marginTop');offset.left-=num(this,'marginLeft');parentOffset.top+=num(offsetParent,'borderTopWidth');parentOffset.left+=num(offsetParent,'borderLeftWidth');results={top:offset.top-parentOffset.top,left:offset.left-parentOffset.left};}return results;},offsetParent:function(){var offsetParent=this[0].offsetParent;while(offsetParent&&(!/^body|html$/i.test(offsetParent.tagName)&&jQuery.css(offsetParent,'position')=='static'))offsetParent=offsetParent.offsetParent;return jQuery(offsetParent);}});jQuery.each(['Left','Top'],function(i,name){var method='scroll'+name;jQuery.fn[method]=function(val){if(!this[0])return;return val!=undefined?this.each(function(){this==window||this==document?window.scrollTo(!i?val:jQuery(window).scrollLeft(),i?val:jQuery(window).scrollTop()):this[method]=val;}):this[0]==window||this[0]==document?self[i?'pageYOffset':'pageXOffset']||jQuery.boxModel&&document.documentElement[method]||document.body[method]:this[0][method];};});jQuery.each(["Height","Width"],function(i,name){var tl=i?"Left":"Top",br=i?"Right":"Bottom";jQuery.fn["inner"+name]=function(){return this[name.toLowerCase()]()+num(this,"padding"+tl)+num(this,"padding"+br);};jQuery.fn["outer"+name]=function(margin){return this["inner"+name]()+num(this,"border"+tl+"Width")+num(this,"border"+br+"Width")+(margin?num(this,"margin"+tl)+num(this,"margin"+br):0);};});})(); \ No newline at end of file diff --git a/src/gallium/docs/build/html/_static/minus.png b/src/gallium/docs/build/html/_static/minus.png new file mode 100644 index 0000000000..da1c5620d1 Binary files /dev/null and b/src/gallium/docs/build/html/_static/minus.png differ diff --git a/src/gallium/docs/build/html/_static/plus.png b/src/gallium/docs/build/html/_static/plus.png new file mode 100644 index 0000000000..b3cb37425e Binary files /dev/null and b/src/gallium/docs/build/html/_static/plus.png differ diff --git a/src/gallium/docs/build/html/_static/pygments.css b/src/gallium/docs/build/html/_static/pygments.css new file mode 100644 index 0000000000..1f2d2b6187 --- /dev/null +++ b/src/gallium/docs/build/html/_static/pygments.css @@ -0,0 +1,61 @@ +.hll { background-color: #ffffcc } +.c { color: #408090; font-style: italic } /* Comment */ +.err { border: 1px solid #FF0000 } /* Error */ +.k { color: #007020; font-weight: bold } /* Keyword */ +.o { color: #666666 } /* Operator */ +.cm { color: #408090; font-style: italic } /* Comment.Multiline */ +.cp { color: #007020 } /* Comment.Preproc */ +.c1 { color: #408090; font-style: italic } /* Comment.Single */ +.cs { color: #408090; background-color: #fff0f0 } /* Comment.Special */ +.gd { color: #A00000 } /* Generic.Deleted */ +.ge { font-style: italic } /* Generic.Emph */ +.gr { color: #FF0000 } /* Generic.Error */ +.gh { color: #000080; font-weight: bold } /* Generic.Heading */ +.gi { color: #00A000 } /* Generic.Inserted */ +.go { color: #303030 } /* Generic.Output */ +.gp { color: #c65d09; font-weight: bold } /* Generic.Prompt */ +.gs { font-weight: bold } /* Generic.Strong */ +.gu { color: #800080; font-weight: bold } /* Generic.Subheading */ +.gt { color: #0040D0 } /* Generic.Traceback */ +.kc { color: #007020; font-weight: bold } /* Keyword.Constant */ +.kd { color: #007020; font-weight: bold } /* Keyword.Declaration */ +.kn { color: #007020; font-weight: bold } /* Keyword.Namespace */ +.kp { color: #007020 } /* Keyword.Pseudo */ +.kr { color: #007020; font-weight: bold } /* Keyword.Reserved */ +.kt { color: #902000 } /* Keyword.Type */ +.m { color: #208050 } /* Literal.Number */ +.s { color: #4070a0 } /* Literal.String */ +.na { color: #4070a0 } /* Name.Attribute */ +.nb { color: #007020 } /* Name.Builtin */ +.nc { color: #0e84b5; font-weight: bold } /* Name.Class */ +.no { color: #60add5 } /* Name.Constant */ +.nd { color: #555555; font-weight: bold } /* Name.Decorator */ +.ni { color: #d55537; font-weight: bold } /* Name.Entity */ +.ne { color: #007020 } /* Name.Exception */ +.nf { color: #06287e } /* Name.Function */ +.nl { color: #002070; font-weight: bold } /* Name.Label */ +.nn { color: #0e84b5; font-weight: bold } /* Name.Namespace */ +.nt { color: #062873; font-weight: bold } /* Name.Tag */ +.nv { color: #bb60d5 } /* Name.Variable */ +.ow { color: #007020; font-weight: bold } /* Operator.Word */ +.w { color: #bbbbbb } /* Text.Whitespace */ +.mf { color: #208050 } /* Literal.Number.Float */ +.mh { color: #208050 } /* Literal.Number.Hex */ +.mi { color: #208050 } /* Literal.Number.Integer */ +.mo { color: #208050 } /* Literal.Number.Oct */ +.sb { color: #4070a0 } /* Literal.String.Backtick */ +.sc { color: #4070a0 } /* Literal.String.Char */ +.sd { color: #4070a0; font-style: italic } /* Literal.String.Doc */ +.s2 { color: #4070a0 } /* Literal.String.Double */ +.se { color: #4070a0; font-weight: bold } /* Literal.String.Escape */ +.sh { color: #4070a0 } /* Literal.String.Heredoc */ +.si { color: #70a0d0; font-style: italic } /* Literal.String.Interpol */ +.sx { color: #c65d09 } /* Literal.String.Other */ +.sr { color: #235388 } /* Literal.String.Regex */ +.s1 { color: #4070a0 } /* Literal.String.Single */ +.ss { color: #517918 } /* Literal.String.Symbol */ +.bp { color: #007020 } /* Name.Builtin.Pseudo */ +.vc { color: #bb60d5 } /* Name.Variable.Class */ +.vg { color: #bb60d5 } /* Name.Variable.Global */ +.vi { color: #bb60d5 } /* Name.Variable.Instance */ +.il { color: #208050 } /* Literal.Number.Integer.Long */ \ No newline at end of file diff --git a/src/gallium/docs/build/html/_static/searchtools.js b/src/gallium/docs/build/html/_static/searchtools.js new file mode 100644 index 0000000000..e0226258a5 --- /dev/null +++ b/src/gallium/docs/build/html/_static/searchtools.js @@ -0,0 +1,467 @@ +/** + * helper function to return a node containing the + * search summary for a given text. keywords is a list + * of stemmed words, hlwords is the list of normal, unstemmed + * words. the first one is used to find the occurance, the + * latter for highlighting it. + */ + +jQuery.makeSearchSummary = function(text, keywords, hlwords) { + var textLower = text.toLowerCase(); + var start = 0; + $.each(keywords, function() { + var i = textLower.indexOf(this.toLowerCase()); + if (i > -1) + start = i; + }); + start = Math.max(start - 120, 0); + var excerpt = ((start > 0) ? '...' : '') + + $.trim(text.substr(start, 240)) + + ((start + 240 - text.length) ? '...' : ''); + var rv = $('
').text(excerpt); + $.each(hlwords, function() { + rv = rv.highlightText(this, 'highlight'); + }); + return rv; +} + +/** + * Porter Stemmer + */ +var PorterStemmer = function() { + + var step2list = { + ational: 'ate', + tional: 'tion', + enci: 'ence', + anci: 'ance', + izer: 'ize', + bli: 'ble', + alli: 'al', + entli: 'ent', + eli: 'e', + ousli: 'ous', + ization: 'ize', + ation: 'ate', + ator: 'ate', + alism: 'al', + iveness: 'ive', + fulness: 'ful', + ousness: 'ous', + aliti: 'al', + iviti: 'ive', + biliti: 'ble', + logi: 'log' + }; + + var step3list = { + icate: 'ic', + ative: '', + alize: 'al', + iciti: 'ic', + ical: 'ic', + ful: '', + ness: '' + }; + + var c = "[^aeiou]"; // consonant + var v = "[aeiouy]"; // vowel + var C = c + "[^aeiouy]*"; // consonant sequence + var V = v + "[aeiou]*"; // vowel sequence + + var mgr0 = "^(" + C + ")?" + V + C; // [C]VC... is m>0 + var meq1 = "^(" + C + ")?" + V + C + "(" + V + ")?$"; // [C]VC[V] is m=1 + var mgr1 = "^(" + C + ")?" + V + C + V + C; // [C]VCVC... is m>1 + var s_v = "^(" + C + ")?" + v; // vowel in stem + + this.stemWord = function (w) { + var stem; + var suffix; + var firstch; + var origword = w; + + if (w.length < 3) + return w; + + var re; + var re2; + var re3; + var re4; + + firstch = w.substr(0,1); + if (firstch == "y") + w = firstch.toUpperCase() + w.substr(1); + + // Step 1a + re = /^(.+?)(ss|i)es$/; + re2 = /^(.+?)([^s])s$/; + + if (re.test(w)) + w = w.replace(re,"$1$2"); + else if (re2.test(w)) + w = w.replace(re2,"$1$2"); + + // Step 1b + re = /^(.+?)eed$/; + re2 = /^(.+?)(ed|ing)$/; + if (re.test(w)) { + var fp = re.exec(w); + re = new RegExp(mgr0); + if (re.test(fp[1])) { + re = /.$/; + w = w.replace(re,""); + } + } + else if (re2.test(w)) { + var fp = re2.exec(w); + stem = fp[1]; + re2 = new RegExp(s_v); + if (re2.test(stem)) { + w = stem; + re2 = /(at|bl|iz)$/; + re3 = new RegExp("([^aeiouylsz])\\1$"); + re4 = new RegExp("^" + C + v + "[^aeiouwxy]$"); + if (re2.test(w)) + w = w + "e"; + else if (re3.test(w)) { + re = /.$/; + w = w.replace(re,""); + } + else if (re4.test(w)) + w = w + "e"; + } + } + + // Step 1c + re = /^(.+?)y$/; + if (re.test(w)) { + var fp = re.exec(w); + stem = fp[1]; + re = new RegExp(s_v); + if (re.test(stem)) + w = stem + "i"; + } + + // Step 2 + re = /^(.+?)(ational|tional|enci|anci|izer|bli|alli|entli|eli|ousli|ization|ation|ator|alism|iveness|fulness|ousness|aliti|iviti|biliti|logi)$/; + if (re.test(w)) { + var fp = re.exec(w); + stem = fp[1]; + suffix = fp[2]; + re = new RegExp(mgr0); + if (re.test(stem)) + w = stem + step2list[suffix]; + } + + // Step 3 + re = /^(.+?)(icate|ative|alize|iciti|ical|ful|ness)$/; + if (re.test(w)) { + var fp = re.exec(w); + stem = fp[1]; + suffix = fp[2]; + re = new RegExp(mgr0); + if (re.test(stem)) + w = stem + step3list[suffix]; + } + + // Step 4 + re = /^(.+?)(al|ance|ence|er|ic|able|ible|ant|ement|ment|ent|ou|ism|ate|iti|ous|ive|ize)$/; + re2 = /^(.+?)(s|t)(ion)$/; + if (re.test(w)) { + var fp = re.exec(w); + stem = fp[1]; + re = new RegExp(mgr1); + if (re.test(stem)) + w = stem; + } + else if (re2.test(w)) { + var fp = re2.exec(w); + stem = fp[1] + fp[2]; + re2 = new RegExp(mgr1); + if (re2.test(stem)) + w = stem; + } + + // Step 5 + re = /^(.+?)e$/; + if (re.test(w)) { + var fp = re.exec(w); + stem = fp[1]; + re = new RegExp(mgr1); + re2 = new RegExp(meq1); + re3 = new RegExp("^" + C + v + "[^aeiouwxy]$"); + if (re.test(stem) || (re2.test(stem) && !(re3.test(stem)))) + w = stem; + } + re = /ll$/; + re2 = new RegExp(mgr1); + if (re.test(w) && re2.test(w)) { + re = /.$/; + w = w.replace(re,""); + } + + // and turn initial Y back to y + if (firstch == "y") + w = firstch.toLowerCase() + w.substr(1); + return w; + } +} + + +/** + * Search Module + */ +var Search = { + + _index : null, + _queued_query : null, + _pulse_status : -1, + + init : function() { + var params = $.getQueryParameters(); + if (params.q) { + var query = params.q[0]; + $('input[name="q"]')[0].value = query; + this.performSearch(query); + } + }, + + /** + * Sets the index + */ + setIndex : function(index) { + var q; + this._index = index; + if ((q = this._queued_query) !== null) { + this._queued_query = null; + Search.query(q); + } + }, + + hasIndex : function() { + return this._index !== null; + }, + + deferQuery : function(query) { + this._queued_query = query; + }, + + stopPulse : function() { + this._pulse_status = 0; + }, + + startPulse : function() { + if (this._pulse_status >= 0) + return; + function pulse() { + Search._pulse_status = (Search._pulse_status + 1) % 4; + var dotString = ''; + for (var i = 0; i < Search._pulse_status; i++) + dotString += '.'; + Search.dots.text(dotString); + if (Search._pulse_status > -1) + window.setTimeout(pulse, 500); + }; + pulse(); + }, + + /** + * perform a search for something + */ + performSearch : function(query) { + // create the required interface elements + this.out = $('#search-results'); + this.title = $('

' + _('Searching') + '

').appendTo(this.out); + this.dots = $('').appendTo(this.title); + this.status = $('

').appendTo(this.out); + this.output = $(' @@ -80,8 +80,8 @@

Previous topic

-

TGSI

+

Context

Next topic

Blend

@@ -117,7 +117,7 @@ next |
  • - previous |
  • Gallium v0.3 documentation »
  • diff --git a/src/gallium/docs/build/html/index.html b/src/gallium/docs/build/html/index.html index 63cf2858b5..27db8d6f3c 100644 --- a/src/gallium/docs/build/html/index.html +++ b/src/gallium/docs/build/html/index.html @@ -50,6 +50,14 @@
  • TGSI
  • +
  • Screen +
  • +
  • Context +
  • CSO
    • Blend
    • Depth, Stencil, & Alpha
    • diff --git a/src/gallium/docs/build/html/screen.html b/src/gallium/docs/build/html/screen.html new file mode 100644 index 0000000000..ab9ef0cd93 --- /dev/null +++ b/src/gallium/docs/build/html/screen.html @@ -0,0 +1,119 @@ + + + + + + + Screen — Gallium v0.3 documentation + + + + + + + + + + + + +
      +
      +
      +
      + +
      +

      Screen

      +

      A screen is an object representing the context-independent part of a device.

      +
      +

      Methods

      +

      XXX

      +
      +
      + + +
      +
      +
      +
      +
      +

      Table Of Contents

      + + +

      Previous topic

      +

      TGSI

      +

      Next topic

      +

      Context

      +

      This Page

      + + + +
      +
      +
      +
      + + + + \ No newline at end of file diff --git a/src/gallium/docs/build/html/searchindex.js b/src/gallium/docs/build/html/searchindex.js index 8e6d5b1574..d79db361a0 100644 --- a/src/gallium/docs/build/html/searchindex.js +++ b/src/gallium/docs/build/html/searchindex.js @@ -1 +1 @@ -Search.setIndex({desctypes:{},terms:{represent:2,all:[2,8],through:8,languag:2,write:5,onli:2,intermedi:2,should:6,sampler:[0,1,7],main:3,straightforward:5,fragment:[6,3,8],agnost:5,tungsten:2,amp:8,tgsi_token:4,introduct:[0,5],list:4,token:4,page:0,set:7,chunk:3,blend_en:6,sampl:7,result:6,pass:8,index:0,what:[0,5,6],content:0,state:[8,6,3,7],larg:5,unit:7,hardwar:[5,8],"import":2,core:5,inher:2,vertic:3,sinc:2,raster:[0,1,3],search:0,gallium:[0,2,5,4],shader:[0,1,2,4,8],mani:7,clump:8,load:7,render:6,modul:0,three:8,instruct:2,api:[2,5],select:7,stencil:[0,1,8],from:7,describ:2,support:4,devic:5,two:4,been:8,type:4,individu:7,store:8,option:7,xxx:[8,6,3,7],part:2,togeth:8,essenti:5,graphic:[2,5],target:6,provid:5,servic:5,structur:8,"final":6,behavior:6,control:[8,6,3,7],fashion:5,encapsul:5,indic:0,manner:5,have:[8,7],tabl:0,sever:5,cso:[0,1],thei:8,unresolv:6,member:[1,3,4,6,7,8],how:3,which:5,test:8,document:0,textur:7,texel:7,buffer:6,object:5,driver:[2,5],discard:8,alpha:[0,1,8],tradition:8,welcom:0,off:6,tgsi:[0,2],depth:[0,1,8],thi:[6,7],interpol:3,blend:[0,1,6]},titles:["Welcome to Gallium’s documentation!","CSO","TGSI","Rasterizer","Shader","Introduction","Blend","Sampler","Depth, Stencil, & Alpha"],modules:{},descrefs:{},filenames:["index","cso","tgsi","cso/rasterizer","cso/shader","intro","cso/blend","cso/sampler","cso/dsa"]}) \ No newline at end of file +Search.setIndex({desctypes:{},terms:{represent:3,all:[3,10],through:10,abil:8,languag:3,access:8,onli:3,render:[7,8],intermedi:3,should:7,sampler:[0,1,9],main:5,straightforward:6,fragment:[7,5,10],agnost:6,tungsten:3,amp:10,tgsi_token:4,introduct:[0,6],list:4,token:4,page:0,set:9,chunk:5,blend_en:7,member:[1,5,4,7,9,10],sampl:9,result:7,pass:10,purest:8,textur:9,index:0,what:[0,6,7],content:0,state:[10,7,5,9],larg:6,select:9,hardwar:[6,10],"import":3,method:[0,2,8],core:6,screen:[0,2],inher:3,vertic:5,sinc:3,raster:[0,1,5],search:0,gallium:[0,3,6,4],shader:[0,1,3,4,10],context:[0,2,8],mani:9,clump:10,load:9,directli:8,modul:0,independ:2,three:10,instruct:3,api:[3,6],unit:9,stencil:[0,1,10],from:9,describ:3,support:4,devic:[2,6,8],two:4,been:10,type:4,individu:9,store:10,option:9,xxx:[2,5,7,8,9,10],part:[2,3],togeth:10,off:7,graphic:[3,6],target:7,provid:6,servic:6,structur:10,"final":7,behavior:7,control:[10,7,5,9],fashion:6,encapsul:6,indic:0,repres:[2,8],manner:6,have:[10,9],tabl:0,sever:6,cso:[0,1],thei:10,unresolv:7,write:6,how:5,which:6,test:10,document:0,pipelin:8,texel:9,buffer:7,object:[2,6,8],driver:[3,6],most:8,discard:10,alpha:[0,1,10],tradition:10,welcom:0,essenti:6,tgsi:[0,3],depth:[0,1,10],thi:[7,9],interpol:5,blend:[0,1,7]},titles:["Welcome to Gallium’s documentation!","CSO","Screen","TGSI","Shader","Rasterizer","Introduction","Blend","Context","Sampler","Depth, Stencil, & Alpha"],modules:{},descrefs:{},filenames:["index","cso","screen","tgsi","cso/shader","cso/rasterizer","intro","cso/blend","context","cso/sampler","cso/dsa"]}) \ No newline at end of file diff --git a/src/gallium/docs/source/context.rst b/src/gallium/docs/source/context.rst new file mode 100644 index 0000000000..c2e23a1310 --- /dev/null +++ b/src/gallium/docs/source/context.rst @@ -0,0 +1,10 @@ +Context +======= + +The context object represents the purest, most directly accessible, abilities +of the device's 3D rendering pipeline. + +Methods +------- + +XXX diff --git a/src/gallium/docs/source/index.rst b/src/gallium/docs/source/index.rst index f93d1cafa9..e1b04e6453 100644 --- a/src/gallium/docs/source/index.rst +++ b/src/gallium/docs/source/index.rst @@ -13,6 +13,8 @@ Contents: intro tgsi + screen + context cso Indices and tables diff --git a/src/gallium/docs/source/screen.rst b/src/gallium/docs/source/screen.rst new file mode 100644 index 0000000000..1877718e3d --- /dev/null +++ b/src/gallium/docs/source/screen.rst @@ -0,0 +1,9 @@ +Screen +====== + +A screen is an object representing the context-independent part of a device. + +Methods +------- + +XXX -- cgit v1.2.3 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(-) (limited to 'src') 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 From fa33812d47bde327ca69dc3f849404fb22b6f34f Mon Sep 17 00:00:00 2001 From: Corbin Simpson Date: Sun, 20 Dec 2009 17:25:36 -0800 Subject: Document rasterizer. --- src/gallium/docs/source/cso/rasterizer.rst | 76 +++++++++++++++++++++++++++++- 1 file changed, 75 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/gallium/docs/source/cso/rasterizer.rst b/src/gallium/docs/source/cso/rasterizer.rst index 145ce259bb..b87d121db3 100644 --- a/src/gallium/docs/source/cso/rasterizer.rst +++ b/src/gallium/docs/source/cso/rasterizer.rst @@ -7,4 +7,78 @@ interpolated into fragments. Members ------- -XXX +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 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. +* 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. -- cgit v1.2.3 From 9f936f2001116d75b1bc5b086b9ff6d5d415bb60 Mon Sep 17 00:00:00 2001 From: Corbin Simpson Date: Sun, 20 Dec 2009 17:25:44 -0800 Subject: Regenerate docs. --- src/gallium/docs/build/html/_sources/cso.txt | 7 ++ src/gallium/docs/build/html/_sources/cso/blend.txt | 2 +- src/gallium/docs/build/html/_sources/cso/dsa.txt | 39 ++++++++++- .../docs/build/html/_sources/cso/rasterizer.txt | 76 +++++++++++++++++++- .../docs/build/html/_sources/cso/sampler.txt | 36 +++++++++- src/gallium/docs/build/html/cso.html | 11 +++ src/gallium/docs/build/html/cso/blend.html | 2 +- src/gallium/docs/build/html/cso/dsa.html | 44 +++++++++++- src/gallium/docs/build/html/cso/rasterizer.html | 81 +++++++++++++++++++++- src/gallium/docs/build/html/cso/sampler.html | 36 +++++++++- src/gallium/docs/build/html/searchindex.js | 2 +- src/gallium/docs/build/html/tgsi.html | 10 +-- 12 files changed, 328 insertions(+), 18 deletions(-) (limited to 'src') diff --git a/src/gallium/docs/build/html/_sources/cso.txt b/src/gallium/docs/build/html/_sources/cso.txt index f00cc51d4b..dab1ee50f3 100644 --- a/src/gallium/docs/build/html/_sources/cso.txt +++ b/src/gallium/docs/build/html/_sources/cso.txt @@ -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/build/html/_sources/cso/blend.txt b/src/gallium/docs/build/html/_sources/cso/blend.txt index e32d324854..608f36999b 100644 --- a/src/gallium/docs/build/html/_sources/cso/blend.txt +++ b/src/gallium/docs/build/html/_sources/cso/blend.txt @@ -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/build/html/_sources/cso/dsa.txt b/src/gallium/docs/build/html/_sources/cso/dsa.txt index 5f23896f6e..0be7af5029 100644 --- a/src/gallium/docs/build/html/_sources/cso/dsa.txt +++ b/src/gallium/docs/build/html/_sources/cso/dsa.txt @@ -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/build/html/_sources/cso/rasterizer.txt b/src/gallium/docs/build/html/_sources/cso/rasterizer.txt index 145ce259bb..b87d121db3 100644 --- a/src/gallium/docs/build/html/_sources/cso/rasterizer.txt +++ b/src/gallium/docs/build/html/_sources/cso/rasterizer.txt @@ -7,4 +7,78 @@ interpolated into fragments. Members ------- -XXX +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 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. +* 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. diff --git a/src/gallium/docs/build/html/_sources/cso/sampler.txt b/src/gallium/docs/build/html/_sources/cso/sampler.txt index 09b959ffff..3a63ac637b 100644 --- a/src/gallium/docs/build/html/_sources/cso/sampler.txt +++ b/src/gallium/docs/build/html/_sources/cso/sampler.txt @@ -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. diff --git a/src/gallium/docs/build/html/cso.html b/src/gallium/docs/build/html/cso.html index 7679a081f2..24aa6d7354 100644 --- a/src/gallium/docs/build/html/cso.html +++ b/src/gallium/docs/build/html/cso.html @@ -47,6 +47,11 @@

      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.

      • Blend
        • Members
        • @@ -60,6 +65,12 @@
        • Rasterizer
        • Sampler
            diff --git a/src/gallium/docs/build/html/cso/blend.html b/src/gallium/docs/build/html/cso/blend.html index 360a0f2c03..5863cd4fba 100644 --- a/src/gallium/docs/build/html/cso/blend.html +++ b/src/gallium/docs/build/html/cso/blend.html @@ -54,7 +54,7 @@ buffers.

            XXX it is unresolved what behavior should result if blend_enable is off.

            Members

            -

            XXX

            +

            XXX undocumented members

      diff --git a/src/gallium/docs/build/html/cso/dsa.html b/src/gallium/docs/build/html/cso/dsa.html index c35b946369..ec73a03e38 100644 --- a/src/gallium/docs/build/html/cso/dsa.html +++ b/src/gallium/docs/build/html/cso/dsa.html @@ -53,17 +53,55 @@ 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/build/html/cso/rasterizer.html b/src/gallium/docs/build/html/cso/rasterizer.html index 12d9060e62..b8309247cc 100644 --- a/src/gallium/docs/build/html/cso/rasterizer.html +++ b/src/gallium/docs/build/html/cso/rasterizer.html @@ -53,7 +53,80 @@ interpolated into fragments.

    Members

    -

    XXX

    +

    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 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.
    • +
    • 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.
    • +
    +
    @@ -67,6 +140,12 @@ interpolated into fragments.

    diff --git a/src/gallium/docs/build/html/cso/sampler.html b/src/gallium/docs/build/html/cso/sampler.html index 57300a9ff1..79c1998e48 100644 --- a/src/gallium/docs/build/html/cso/sampler.html +++ b/src/gallium/docs/build/html/cso/sampler.html @@ -51,9 +51,43 @@

    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.
    +
    diff --git a/src/gallium/docs/build/html/searchindex.js b/src/gallium/docs/build/html/searchindex.js index d79db361a0..0070652780 100644 --- a/src/gallium/docs/build/html/searchindex.js +++ b/src/gallium/docs/build/html/searchindex.js @@ -1 +1 @@ -Search.setIndex({desctypes:{},terms:{represent:3,all:[3,10],through:10,abil:8,languag:3,access:8,onli:3,render:[7,8],intermedi:3,should:7,sampler:[0,1,9],main:5,straightforward:6,fragment:[7,5,10],agnost:6,tungsten:3,amp:10,tgsi_token:4,introduct:[0,6],list:4,token:4,page:0,set:9,chunk:5,blend_en:7,member:[1,5,4,7,9,10],sampl:9,result:7,pass:10,purest:8,textur:9,index:0,what:[0,6,7],content:0,state:[10,7,5,9],larg:6,select:9,hardwar:[6,10],"import":3,method:[0,2,8],core:6,screen:[0,2],inher:3,vertic:5,sinc:3,raster:[0,1,5],search:0,gallium:[0,3,6,4],shader:[0,1,3,4,10],context:[0,2,8],mani:9,clump:10,load:9,directli:8,modul:0,independ:2,three:10,instruct:3,api:[3,6],unit:9,stencil:[0,1,10],from:9,describ:3,support:4,devic:[2,6,8],two:4,been:10,type:4,individu:9,store:10,option:9,xxx:[2,5,7,8,9,10],part:[2,3],togeth:10,off:7,graphic:[3,6],target:7,provid:6,servic:6,structur:10,"final":7,behavior:7,control:[10,7,5,9],fashion:6,encapsul:6,indic:0,repres:[2,8],manner:6,have:[10,9],tabl:0,sever:6,cso:[0,1],thei:10,unresolv:7,write:6,how:5,which:6,test:10,document:0,pipelin:8,texel:9,buffer:7,object:[2,6,8],driver:[3,6],most:8,discard:10,alpha:[0,1,10],tradition:10,welcom:0,essenti:6,tgsi:[0,3],depth:[0,1,10],thi:[7,9],interpol:5,blend:[0,1,7]},titles:["Welcome to Gallium’s documentation!","CSO","Screen","TGSI","Shader","Rasterizer","Introduction","Blend","Context","Sampler","Depth, Stencil, & Alpha"],modules:{},descrefs:{},filenames:["index","cso","screen","tgsi","cso/shader","cso/rasterizer","intro","cso/blend","context","cso/sampler","cso/dsa"]}) \ No newline at end of file +Search.setIndex({desctypes:{},terms:{represent:3,all:[3,10],rotat:5,execut:10,textur:9,thi:[7,5,9],both:10,wrap_:9,four:9,tcl:5,through:[5,10],compare_mod:9,abil:8,undocu:[7,5,9],still:5,languag:3,member:[1,5,4,7,9,10],content:0,onli:3,depend:5,render:[7,8],expos:9,front_wind:5,point_sprit:5,intermedi:3,except:5,should:[7,5],color:[5,9],pipe_tex_filt:9,scissor:5,bypass:5,sampler:[0,1,9],main:5,bypass_vs_clip_and_viewport:[1,5],pipe_tex_wrap:9,usual:5,"return":1,straightforward:6,notat:9,handl:1,agnost:6,load:9,bia:9,test:[5,10],line_smooth:5,cull_mod:5,magnifi:9,"import":[3,5],tungsten:3,amp:10,bit:5,tgsi_token:4,introduct:[0,6],document:[0,10],enabl:[5,10],specif:[1,5],level:9,off:[7,5],list:4,point_siz:5,pipe_primitive_triangle_fan:5,token:4,prefilt:9,each:[5,9],done:10,anisotrop:9,side:10,doxi:9,mag_img_filt:9,dimens:9,impli:5,set:[5,9],specifi:5,chunk:5,some:9,blend_en:7,properti:1,maximum:[5,9],wrap:9,second:[5,10],wrap_t:9,sampl:9,result:7,pass:[1,10],fail:10,light_twosid:5,zfail_op:10,purest:8,out:[1,10,9],ref_valu:10,index:0,what:[0,6,7],sprite_coord_mod:5,pattern:5,per:5,point_smooth:5,access:8,state:[1,10,7,5,9],larg:6,select:9,rgba:9,hardwar:[6,5,10],determin:5,awai:5,method:[0,2,8],refer:[10,9],core:[1,6],after:9,themselv:5,driver:[3,6],screen:[0,2],offset_cw:5,min_mip_filt:9,compare_func:9,effect:[1,5,9],control:[10,7,5,9],entir:5,lod_bia:9,inher:3,vertic:5,sinc:3,valu:10,describ:3,writemask:10,line_stipple_factor:5,search:0,actual:[5,10],most:[5,8],border_color:9,rule:5,gallium:[0,1,3,6,4],shader:[0,1,3,5,4,10],pixel:5,page:0,filter:9,turn:5,min_lod:9,context:[0,1,2,8],permit:5,discard:10,chang:5,offset_ccw:5,clump:10,gourard:5,first:5,oper:10,clamp:9,rang:9,simpli:5,max_lod:9,directli:8,point:5,carri:10,appli:9,modul:0,independ:2,pipe_primitive_quad_strip:5,three:10,instruct:3,api:[1,3,6,9],anti:5,provok:5,visibl:5,oval:5,mere:5,unit:9,size:5,flatshade_first:[1,5],differ:5,stencil:[0,1,10],from:[5,9],offset_unit:5,lod:9,support:4,devic:[2,6,8],transform:5,been:10,fail_op:10,width:5,treat:9,circl:5,time:1,individu:9,type:4,moar:5,store:10,dimension:9,"function":10,desir:1,option:[5,9],reusabl:1,normalized_coord:9,xxx:[2,5,7,8,9,10],thei:[1,10,5,9],pipe_stencil_op:10,mipmap:9,coordin:9,flag:5,point_size_max:5,minifi:9,togeth:10,func:10,fill_ccw:5,last:5,line:5,repres:[2,8],point_size_min:5,viewport:5,poly_smooth:5,line_stipple_en:5,graphic:[3,6],target:7,refin:9,whether:[10,5,9],wish:5,servic:6,caller:5,smooth:5,msaa:5,structur:10,rectangular:5,stippl:5,max_anisotropi:9,obvious:5,can:1,behavior:7,line_stipple_pattern:5,welcom:0,offset_scal:5,wrap_r:9,pre:5,fashion:6,constant:1,encapsul:6,clip:5,"final":7,certain:10,dure:10,ani:1,indic:0,bitfield:5,minimum:[5,9],implement:5,manner:6,have:[10,5,9],tabl:0,need:5,min_img_filt:9,creat:1,work:1,primit:5,sever:[6,5],sprite:5,alwai:[10,5,9],point_size_per_vertex:5,polygon:5,unresolv:7,alpha:[0,1,10],receiv:10,write:[6,10],fill_cw:5,when:[5,9],detail:9,note:[1,5],how:[5,9],run:5,flatshad:[1,5],zpass_op:10,which:[1,6],pipe_func:10,raster:[0,1,5],texel:9,pipelin:[5,8],pipe_primitive_quad:5,shade:5,normal:9,buffer:[7,10],object:[1,6,2,8],vertex:5,cso:[0,1],fragment:[7,5,10],two:[4,10],mani:9,mai:5,fill:1,pipe_primitive_polygon:5,segment:5,weird:9,line_last_pixel:5,tradit:9,bound:[1,9],multisampl:5,principl:1,essenti:6,center:5,algorithm:5,gl_rasterization_rul:5,tgsi:[0,3],tradition:10,disabl:9,alias:5,depth:[0,1,10],part:[1,3,2],poly_stipple_en:5,valuemask:10,interpol:5,fan:5,element:5,line_width:5,blend:[0,1,7],order:10,provid:6,opaqu:1},titles:["Welcome to Gallium’s documentation!","CSO","Screen","TGSI","Shader","Rasterizer","Introduction","Blend","Context","Sampler","Depth, Stencil, & Alpha"],modules:{},descrefs:{},filenames:["index","cso","screen","tgsi","cso/shader","cso/rasterizer","intro","cso/blend","context","cso/sampler","cso/dsa"]}) \ No newline at end of file diff --git a/src/gallium/docs/build/html/tgsi.html b/src/gallium/docs/build/html/tgsi.html index 6bc23b3012..ede551e79e 100644 --- a/src/gallium/docs/build/html/tgsi.html +++ b/src/gallium/docs/build/html/tgsi.html @@ -20,7 +20,7 @@ - + @@ -31,7 +31,7 @@ index
  • - next |
  • Introduction

    Next topic

    -

    CSO

    +

    Screen

    This Page

    • index
    • - next |
    • Date: Sun, 20 Dec 2009 19:41:50 -0800 Subject: Moar docs, mostly context. --- src/gallium/docs/source/context.rst | 73 +++++++++++++++++++++++++++++- src/gallium/docs/source/cso/blend.rst | 2 + src/gallium/docs/source/cso/dsa.rst | 2 + src/gallium/docs/source/cso/rasterizer.rst | 2 + src/gallium/docs/source/cso/sampler.rst | 2 + src/gallium/docs/source/cso/shader.rst | 2 + src/gallium/docs/source/screen.rst | 32 ++++++++++++- 7 files changed, 113 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/gallium/docs/source/context.rst b/src/gallium/docs/source/context.rst index c2e23a1310..6470e8fd49 100644 --- a/src/gallium/docs/source/context.rst +++ b/src/gallium/docs/source/context.rst @@ -7,4 +7,75 @@ of the device's 3D rendering pipeline. Methods ------- -XXX +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. + +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_constant_buffer`` +* ``set_framebuffer_state`` +* ``set_polygon_stipple`` +* ``set_scissor_state`` +* ``set_viewport_state`` +* ``set_fragment_sampler_textures`` +* ``set_vertex_sampler_textures`` +* ``set_vertex_buffers`` +* ``set_vertex_elements`` + +Queries +^^^^^^^ + +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. + +VBO Drawing +^^^^^^^^^^^ + +``draw_arrays`` + +``draw_elements`` + +``draw_range_elements`` + +``flush`` + +Surface Drawing +^^^^^^^^^^^^^^^ + +These methods emulate classic blitter controls. They are not guaranteed to be +available; if they are set to NULL, then they are not present. + +``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. + +``clear`` initializes entire buffers to an RGBA, depth, or stencil value, +depending on the formats of the buffers. Use ``set_framebuffer_state`` to +specify the buffers to clear. diff --git a/src/gallium/docs/source/cso/blend.rst b/src/gallium/docs/source/cso/blend.rst index 608f36999b..fd9e4a1e2d 100644 --- a/src/gallium/docs/source/cso/blend.rst +++ b/src/gallium/docs/source/cso/blend.rst @@ -1,3 +1,5 @@ +.. _blend: + Blend ===== diff --git a/src/gallium/docs/source/cso/dsa.rst b/src/gallium/docs/source/cso/dsa.rst index 0be7af5029..12abaa9d6f 100644 --- a/src/gallium/docs/source/cso/dsa.rst +++ b/src/gallium/docs/source/cso/dsa.rst @@ -1,3 +1,5 @@ +.. _depth,stencil,&alpha: + Depth, Stencil, & Alpha ======================= diff --git a/src/gallium/docs/source/cso/rasterizer.rst b/src/gallium/docs/source/cso/rasterizer.rst index b87d121db3..0686bffa1e 100644 --- a/src/gallium/docs/source/cso/rasterizer.rst +++ b/src/gallium/docs/source/cso/rasterizer.rst @@ -1,3 +1,5 @@ +.. _rasterizer: + Rasterizer ========== diff --git a/src/gallium/docs/source/cso/sampler.rst b/src/gallium/docs/source/cso/sampler.rst index 3a63ac637b..e3f1757f57 100644 --- a/src/gallium/docs/source/cso/sampler.rst +++ b/src/gallium/docs/source/cso/sampler.rst @@ -1,3 +1,5 @@ +.. _sampler: + Sampler ======= diff --git a/src/gallium/docs/source/cso/shader.rst b/src/gallium/docs/source/cso/shader.rst index 9e1cb35be0..0ee42c8787 100644 --- a/src/gallium/docs/source/cso/shader.rst +++ b/src/gallium/docs/source/cso/shader.rst @@ -1,3 +1,5 @@ +.. _shader: + Shader ====== diff --git a/src/gallium/docs/source/screen.rst b/src/gallium/docs/source/screen.rst index 1877718e3d..9631e6967e 100644 --- a/src/gallium/docs/source/screen.rst +++ b/src/gallium/docs/source/screen.rst @@ -6,4 +6,34 @@ A screen is an object representing the context-independent part of a device. Methods ------- -XXX +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. -- cgit v1.2.3 From c083fa9bba81cd7ec44f34ac613269781dd4c3bb Mon Sep 17 00:00:00 2001 From: Corbin Simpson Date: Sun, 20 Dec 2009 19:42:03 -0800 Subject: Regen docs. --- src/gallium/docs/build/html/_sources/context.txt | 73 +++++++++++++++++++++- src/gallium/docs/build/html/_sources/cso/blend.txt | 2 + src/gallium/docs/build/html/_sources/cso/dsa.txt | 2 + .../docs/build/html/_sources/cso/rasterizer.txt | 2 + .../docs/build/html/_sources/cso/sampler.txt | 2 + .../docs/build/html/_sources/cso/shader.txt | 2 + src/gallium/docs/build/html/_sources/screen.txt | 32 +++++++++- src/gallium/docs/build/html/context.html | 73 +++++++++++++++++++++- src/gallium/docs/build/html/cso/blend.html | 2 +- src/gallium/docs/build/html/cso/dsa.html | 2 +- src/gallium/docs/build/html/cso/rasterizer.html | 2 +- src/gallium/docs/build/html/cso/sampler.html | 2 +- src/gallium/docs/build/html/cso/shader.html | 2 +- src/gallium/docs/build/html/screen.html | 36 ++++++++++- src/gallium/docs/build/html/searchindex.js | 2 +- 15 files changed, 224 insertions(+), 12 deletions(-) (limited to 'src') diff --git a/src/gallium/docs/build/html/_sources/context.txt b/src/gallium/docs/build/html/_sources/context.txt index c2e23a1310..6470e8fd49 100644 --- a/src/gallium/docs/build/html/_sources/context.txt +++ b/src/gallium/docs/build/html/_sources/context.txt @@ -7,4 +7,75 @@ of the device's 3D rendering pipeline. Methods ------- -XXX +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. + +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_constant_buffer`` +* ``set_framebuffer_state`` +* ``set_polygon_stipple`` +* ``set_scissor_state`` +* ``set_viewport_state`` +* ``set_fragment_sampler_textures`` +* ``set_vertex_sampler_textures`` +* ``set_vertex_buffers`` +* ``set_vertex_elements`` + +Queries +^^^^^^^ + +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. + +VBO Drawing +^^^^^^^^^^^ + +``draw_arrays`` + +``draw_elements`` + +``draw_range_elements`` + +``flush`` + +Surface Drawing +^^^^^^^^^^^^^^^ + +These methods emulate classic blitter controls. They are not guaranteed to be +available; if they are set to NULL, then they are not present. + +``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. + +``clear`` initializes entire buffers to an RGBA, depth, or stencil value, +depending on the formats of the buffers. Use ``set_framebuffer_state`` to +specify the buffers to clear. diff --git a/src/gallium/docs/build/html/_sources/cso/blend.txt b/src/gallium/docs/build/html/_sources/cso/blend.txt index 608f36999b..fd9e4a1e2d 100644 --- a/src/gallium/docs/build/html/_sources/cso/blend.txt +++ b/src/gallium/docs/build/html/_sources/cso/blend.txt @@ -1,3 +1,5 @@ +.. _blend: + Blend ===== diff --git a/src/gallium/docs/build/html/_sources/cso/dsa.txt b/src/gallium/docs/build/html/_sources/cso/dsa.txt index 0be7af5029..12abaa9d6f 100644 --- a/src/gallium/docs/build/html/_sources/cso/dsa.txt +++ b/src/gallium/docs/build/html/_sources/cso/dsa.txt @@ -1,3 +1,5 @@ +.. _depth,stencil,&alpha: + Depth, Stencil, & Alpha ======================= diff --git a/src/gallium/docs/build/html/_sources/cso/rasterizer.txt b/src/gallium/docs/build/html/_sources/cso/rasterizer.txt index b87d121db3..0686bffa1e 100644 --- a/src/gallium/docs/build/html/_sources/cso/rasterizer.txt +++ b/src/gallium/docs/build/html/_sources/cso/rasterizer.txt @@ -1,3 +1,5 @@ +.. _rasterizer: + Rasterizer ========== diff --git a/src/gallium/docs/build/html/_sources/cso/sampler.txt b/src/gallium/docs/build/html/_sources/cso/sampler.txt index 3a63ac637b..e3f1757f57 100644 --- a/src/gallium/docs/build/html/_sources/cso/sampler.txt +++ b/src/gallium/docs/build/html/_sources/cso/sampler.txt @@ -1,3 +1,5 @@ +.. _sampler: + Sampler ======= diff --git a/src/gallium/docs/build/html/_sources/cso/shader.txt b/src/gallium/docs/build/html/_sources/cso/shader.txt index 9e1cb35be0..0ee42c8787 100644 --- a/src/gallium/docs/build/html/_sources/cso/shader.txt +++ b/src/gallium/docs/build/html/_sources/cso/shader.txt @@ -1,3 +1,5 @@ +.. _shader: + Shader ====== diff --git a/src/gallium/docs/build/html/_sources/screen.txt b/src/gallium/docs/build/html/_sources/screen.txt index 1877718e3d..9631e6967e 100644 --- a/src/gallium/docs/build/html/_sources/screen.txt +++ b/src/gallium/docs/build/html/_sources/screen.txt @@ -6,4 +6,34 @@ A screen is an object representing the context-independent part of a device. Methods ------- -XXX +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. diff --git a/src/gallium/docs/build/html/context.html b/src/gallium/docs/build/html/context.html index 5d75438d6b..bd8166ac89 100644 --- a/src/gallium/docs/build/html/context.html +++ b/src/gallium/docs/build/html/context.html @@ -51,7 +51,69 @@ of the device’s 3D rendering pipeline.

      Methods

      -

      XXX

      +
      +

      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:

      +
        +
      • Blend: *_blend_state
      • +
      • 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
      • +
      • Rasterizer: *_rasterizer_state
      • +
      • Depth, Stencil, & Alpha: *_depth_stencil_alpha_state
      • +
      • Shader: These have two sets of methods. *_fs_state is for +fragment shaders, and *_vs_state is for vertex shaders.
      • +
      +
      +
      +

      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_constant_buffer
      • +
      • set_framebuffer_state
      • +
      • set_polygon_stipple
      • +
      • set_scissor_state
      • +
      • set_viewport_state
      • +
      • set_fragment_sampler_textures
      • +
      • set_vertex_sampler_textures
      • +
      • set_vertex_buffers
      • +
      • set_vertex_elements
      • +
      +
      +
      +

      Queries

      +

      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.

      +
      +
      +

      VBO Drawing

      +

      draw_arrays

      +

      draw_elements

      +

      draw_range_elements

      +

      flush

      +
      +
      +

      Surface Drawing

      +

      These methods emulate classic blitter controls. They are not guaranteed to be +available; if they are set to NULL, then they are not present.

      +

      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.

      +

      clear initializes entire buffers to an RGBA, depth, or stencil value, +depending on the formats of the buffers. Use set_framebuffer_state to +specify the buffers to clear.

      +
      @@ -64,7 +126,14 @@ of the device’s 3D rendering pipeline.

      Table Of Contents

      diff --git a/src/gallium/docs/build/html/cso/blend.html b/src/gallium/docs/build/html/cso/blend.html index 5863cd4fba..35c8a9d12d 100644 --- a/src/gallium/docs/build/html/cso/blend.html +++ b/src/gallium/docs/build/html/cso/blend.html @@ -48,7 +48,7 @@
      -

      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.

      diff --git a/src/gallium/docs/build/html/cso/dsa.html b/src/gallium/docs/build/html/cso/dsa.html index ec73a03e38..d2a59dbdd4 100644 --- a/src/gallium/docs/build/html/cso/dsa.html +++ b/src/gallium/docs/build/html/cso/dsa.html @@ -48,7 +48,7 @@
      -

      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 diff --git a/src/gallium/docs/build/html/cso/rasterizer.html b/src/gallium/docs/build/html/cso/rasterizer.html index b8309247cc..7a97214d40 100644 --- a/src/gallium/docs/build/html/cso/rasterizer.html +++ b/src/gallium/docs/build/html/cso/rasterizer.html @@ -48,7 +48,7 @@

      -

      Rasterizer

      +

      Rasterizer

      The rasterizer is the main chunk of state controlling how vertices are interpolated into fragments.

      diff --git a/src/gallium/docs/build/html/cso/sampler.html b/src/gallium/docs/build/html/cso/sampler.html index 79c1998e48..bf4a1000d1 100644 --- a/src/gallium/docs/build/html/cso/sampler.html +++ b/src/gallium/docs/build/html/cso/sampler.html @@ -48,7 +48,7 @@
      -

      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 diff --git a/src/gallium/docs/build/html/cso/shader.html b/src/gallium/docs/build/html/cso/shader.html index 51c8b724af..fead11d377 100644 --- a/src/gallium/docs/build/html/cso/shader.html +++ b/src/gallium/docs/build/html/cso/shader.html @@ -44,7 +44,7 @@

      -

      Shader

      +

      Shader

      One of the two types of shaders supported by Gallium.

      Members

      diff --git a/src/gallium/docs/build/html/screen.html b/src/gallium/docs/build/html/screen.html index ab9ef0cd93..8bc1cdc9cd 100644 --- a/src/gallium/docs/build/html/screen.html +++ b/src/gallium/docs/build/html/screen.html @@ -50,7 +50,31 @@

      A screen is an object representing the context-independent part of a device.

      Methods

      -

      XXX

      +

      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.

      +
      @@ -63,7 +87,15 @@

      Table Of Contents

      diff --git a/src/gallium/docs/build/html/searchindex.js b/src/gallium/docs/build/html/searchindex.js index 0070652780..2222a1ddee 100644 --- a/src/gallium/docs/build/html/searchindex.js +++ b/src/gallium/docs/build/html/searchindex.js @@ -1 +1 @@ -Search.setIndex({desctypes:{},terms:{represent:3,all:[3,10],rotat:5,execut:10,textur:9,thi:[7,5,9],both:10,wrap_:9,four:9,tcl:5,through:[5,10],compare_mod:9,abil:8,undocu:[7,5,9],still:5,languag:3,member:[1,5,4,7,9,10],content:0,onli:3,depend:5,render:[7,8],expos:9,front_wind:5,point_sprit:5,intermedi:3,except:5,should:[7,5],color:[5,9],pipe_tex_filt:9,scissor:5,bypass:5,sampler:[0,1,9],main:5,bypass_vs_clip_and_viewport:[1,5],pipe_tex_wrap:9,usual:5,"return":1,straightforward:6,notat:9,handl:1,agnost:6,load:9,bia:9,test:[5,10],line_smooth:5,cull_mod:5,magnifi:9,"import":[3,5],tungsten:3,amp:10,bit:5,tgsi_token:4,introduct:[0,6],document:[0,10],enabl:[5,10],specif:[1,5],level:9,off:[7,5],list:4,point_siz:5,pipe_primitive_triangle_fan:5,token:4,prefilt:9,each:[5,9],done:10,anisotrop:9,side:10,doxi:9,mag_img_filt:9,dimens:9,impli:5,set:[5,9],specifi:5,chunk:5,some:9,blend_en:7,properti:1,maximum:[5,9],wrap:9,second:[5,10],wrap_t:9,sampl:9,result:7,pass:[1,10],fail:10,light_twosid:5,zfail_op:10,purest:8,out:[1,10,9],ref_valu:10,index:0,what:[0,6,7],sprite_coord_mod:5,pattern:5,per:5,point_smooth:5,access:8,state:[1,10,7,5,9],larg:6,select:9,rgba:9,hardwar:[6,5,10],determin:5,awai:5,method:[0,2,8],refer:[10,9],core:[1,6],after:9,themselv:5,driver:[3,6],screen:[0,2],offset_cw:5,min_mip_filt:9,compare_func:9,effect:[1,5,9],control:[10,7,5,9],entir:5,lod_bia:9,inher:3,vertic:5,sinc:3,valu:10,describ:3,writemask:10,line_stipple_factor:5,search:0,actual:[5,10],most:[5,8],border_color:9,rule:5,gallium:[0,1,3,6,4],shader:[0,1,3,5,4,10],pixel:5,page:0,filter:9,turn:5,min_lod:9,context:[0,1,2,8],permit:5,discard:10,chang:5,offset_ccw:5,clump:10,gourard:5,first:5,oper:10,clamp:9,rang:9,simpli:5,max_lod:9,directli:8,point:5,carri:10,appli:9,modul:0,independ:2,pipe_primitive_quad_strip:5,three:10,instruct:3,api:[1,3,6,9],anti:5,provok:5,visibl:5,oval:5,mere:5,unit:9,size:5,flatshade_first:[1,5],differ:5,stencil:[0,1,10],from:[5,9],offset_unit:5,lod:9,support:4,devic:[2,6,8],transform:5,been:10,fail_op:10,width:5,treat:9,circl:5,time:1,individu:9,type:4,moar:5,store:10,dimension:9,"function":10,desir:1,option:[5,9],reusabl:1,normalized_coord:9,xxx:[2,5,7,8,9,10],thei:[1,10,5,9],pipe_stencil_op:10,mipmap:9,coordin:9,flag:5,point_size_max:5,minifi:9,togeth:10,func:10,fill_ccw:5,last:5,line:5,repres:[2,8],point_size_min:5,viewport:5,poly_smooth:5,line_stipple_en:5,graphic:[3,6],target:7,refin:9,whether:[10,5,9],wish:5,servic:6,caller:5,smooth:5,msaa:5,structur:10,rectangular:5,stippl:5,max_anisotropi:9,obvious:5,can:1,behavior:7,line_stipple_pattern:5,welcom:0,offset_scal:5,wrap_r:9,pre:5,fashion:6,constant:1,encapsul:6,clip:5,"final":7,certain:10,dure:10,ani:1,indic:0,bitfield:5,minimum:[5,9],implement:5,manner:6,have:[10,5,9],tabl:0,need:5,min_img_filt:9,creat:1,work:1,primit:5,sever:[6,5],sprite:5,alwai:[10,5,9],point_size_per_vertex:5,polygon:5,unresolv:7,alpha:[0,1,10],receiv:10,write:[6,10],fill_cw:5,when:[5,9],detail:9,note:[1,5],how:[5,9],run:5,flatshad:[1,5],zpass_op:10,which:[1,6],pipe_func:10,raster:[0,1,5],texel:9,pipelin:[5,8],pipe_primitive_quad:5,shade:5,normal:9,buffer:[7,10],object:[1,6,2,8],vertex:5,cso:[0,1],fragment:[7,5,10],two:[4,10],mani:9,mai:5,fill:1,pipe_primitive_polygon:5,segment:5,weird:9,line_last_pixel:5,tradit:9,bound:[1,9],multisampl:5,principl:1,essenti:6,center:5,algorithm:5,gl_rasterization_rul:5,tgsi:[0,3],tradition:10,disabl:9,alias:5,depth:[0,1,10],part:[1,3,2],poly_stipple_en:5,valuemask:10,interpol:5,fan:5,element:5,line_width:5,blend:[0,1,7],order:10,provid:6,opaqu:1},titles:["Welcome to Gallium’s documentation!","CSO","Screen","TGSI","Shader","Rasterizer","Introduction","Blend","Context","Sampler","Depth, Stencil, & Alpha"],modules:{},descrefs:{},filenames:["index","cso","screen","tgsi","cso/shader","cso/rasterizer","intro","cso/blend","context","cso/sampler","cso/dsa"]}) \ No newline at end of file +Search.setIndex({desctypes:{},terms:{represent:3,all:[3,8,10],queri:8,four:9,per:4,abil:8,follow:8,depend:[4,8],intermedi:3,sourc:8,straightforward:6,set_vertex_el:8,fan:4,level:9,list:5,emul:8,prefilt:9,small:8,dimens:9,impli:4,second:[4,10],pass:[1,10],light_twosid:4,zfail_op:10,index:0,what:[0,6,7],sprite_coord_mod:4,section:8,access:8,delet:8,rgba:[8,9],method:[0,2,8],themselv:4,inher:3,vertic:4,sinc:3,valu:[8,10],line_stipple_factor:4,search:0,vbo:8,shader:[0,1,3,5,4,8,10],permit:[4,8],weird:9,gourard:4,primit:4,modul:0,textur:[2,9],"boolean":2,visibl:4,oval:4,select:9,encapsul:6,gl_rasterization_rul:4,from:[4,9],describ:3,two:[5,8,10],call:8,get_paramf:2,type:5,desir:1,get_nam:2,raster:[0,1,4,8],pipe_primitive_quad:4,flag:4,templat:2,fill_ccw:4,point_size_min:4,poly_smooth:4,graphic:[3,6],retriev:8,setup:2,work:1,obvious:4,can:[1,2,8],control:[10,7,4,8,9],create_blend_st:8,indic:0,minimum:[4,9],alwai:[10,4,9],cso:[0,1,8],anoth:8,write:[6,10],how:[4,9],flatshad:[1,4],simpl:8,after:9,point_size_per_vertex:4,set_constant_buff:8,mai:[4,8],fail_op:10,pipe_stencil_op:10,principl:1,essenti:6,opaqu:1,element:4,perform:8,valuemask:10,order:10,rotat:4,through:[4,10],still:4,paramet:2,group:8,directli:8,bypass:4,main:4,pixel:4,non:8,"return":[1,2],thei:[1,10,4,8,9],handl:[1,8],initi:8,get_vendor:2,line_smooth:4,cull_mod:4,introduct:[0,6],name:[2,8],token:5,each:[4,9],side:10,doxi:9,offset_ccw:4,clamp:9,chunk:4,special:8,out:[1,10,9],variabl:8,content:0,hardwar:[6,4,10],got:2,offset_cw:4,given:2,compare_func:9,begin_queri:8,"_rasterizer_st":8,reusabl:1,filter:9,turn:4,get_param:2,clump:10,first:4,oper:[8,10],rang:9,max_lod:9,render:[7,8],carri:10,independ:2,instruct:3,done:10,size:4,differ:4,stencil:[0,1,8,10],too:8,circl:4,scheme:8,moar:[2,4],store:10,min_img_filt:9,option:[4,9],pipe_tex_filt:9,mipmap:9,create_queri:8,part:[1,3,2],line_stipple_en:4,target:7,provid:[6,8],see:2,structur:10,"final":[7,8],stippl:4,bind:8,result:[7,8],pre:4,fashion:6,clip:4,ani:1,"_blend_stat":8,bitfield:4,max_anisotropi:9,blit:8,have:[10,4,8,9],tabl:0,need:4,"null":8,unresolv:7,alias:4,destroi:8,fill_cw:4,note:[1,4],set_viewport_st:8,pipe_func:10,pipelin:[4,8],shade:4,normal:9,buffer:[7,8,10],object:[1,6,2,8],most:[4,8],specifi:[4,8],alpha:[0,1,8,10],pipe_primitive_polygon:4,segment:4,tradit:9,clear:8,tgsi:[0,3],determin:4,blend:[0,1,7,8],end_queri:8,destroy_blend_st:8,wrap_:9,trivial:8,onli:3,front_wind:4,point_sprit:4,should:[7,4],get:2,set_scissor_st:8,stop:8,tungsten:3,tgsi_token:5,set_fragment_sampler_textur:8,enabl:[4,8,10],draw_el:8,pipe_primitive_triangle_fan:4,anisotrop:9,set:[4,8,9],set_framebuffer_st:8,bind_blend_st:8,msaa:4,wrap_t:9,wrap_r:9,fail:10,purest:8,pattern:4,state:[1,4,7,8,9,10],"import":[3,4],awai:4,triplet:8,screen:[0,2],min_mip_filt:9,entir:[4,8],lod_bia:9,both:[8,10],last:4,region:8,"_fs_state":8,min_lod:9,context:[0,1,2,8],line_last_pixel:4,mani:9,destroy_queri:8,load:9,undocu:[7,4,9],point:[2,4],color:[4,9],anti:4,provok:4,devic:[2,6,8],three:10,been:10,get_query_result:8,treat:9,sprite:4,normalized_coord:9,sampler:[0,1,8,9],coordin:9,minifi:9,togeth:10,func:10,present:8,servic:6,properti:1,rectangular:4,behavior:7,manner:[2,6],set_edgeflag:8,destin:8,"_vs_state":8,sever:[6,4],set_blend_color:8,surface_fil:8,welcom:0,bind_fragment_sampler_st:8,receiv:10,same:8,member:[1,5,4,7,9,10],fragment:[7,4,8,10],compare_mod:9,zpass_op:10,document:[0,10],finish:8,driver:[3,6],effect:[1,4,9],refin:9,tradition:10,multisampl:4,off:[7,4],center:4,surface_copi:8,scissor:4,exampl:8,poly_stipple_en:4,thi:[7,4,9],interpol:4,set_clip_st:8,dimension:9,usual:4,identifi:2,execut:10,tcl:4,simpli:4,languag:3,expos:9,except:4,appli:9,bypass_vs_clip_and_viewport:[1,4],pipe_tex_wrap:9,vendor:2,which:[1,6],format:[2,8],agnost:6,piec:8,bia:9,magnifi:9,amp:10,bit:4,specif:[1,2,8,4],integ:2,point_siz:4,api:[1,3,6,9],either:8,page:0,mag_img_filt:9,pipe_primitive_quad_strip:4,draw_range_el:8,some:9,blend_en:7,sampl:9,flush:8,guarante:8,bore:2,ref_valu:10,overlap:8,point_smooth:4,larg:6,unit:9,refer:[10,9],core:[1,6],run:4,border_color:9,"_depth_stencil_alpha_st":8,offset_unit:4,writemask:10,actual:[4,10],gallium:[0,1,3,6,5],bind_vertex_sampler_st:8,set_vertex_buff:8,discard:10,disabl:9,"float":2,bound:[1,8,9],wrap:9,chang:4,mere:4,flatshade_first:[1,4],lod:9,support:5,transform:4,avail:8,width:4,set_polygon_stippl:8,individu:9,"function":10,back:2,set_vertex_sampler_textur:8,point_size_max:4,line:4,viewport:4,notat:9,draw_arrai:8,whether:[10,4,9],wish:4,caller:4,smooth:4,maximum:[4,9],line_stipple_pattern:4,offset_scal:4,constant:1,creat:[1,2,8],classic:8,certain:10,dure:10,repres:[2,8],implement:4,fill:[1,8],polygon:4,when:[4,8,9],detail:9,test:[4,10],draw:8,xxx:[2,10,7,4,9],texel:9,is_format_support:2,vertex:[4,8],surfac:8,blitter:8,algorithm:4,rule:4,depth:[0,1,8,10],time:1,line_width:4,texture_cr:2},titles:["Welcome to Gallium’s documentation!","CSO","Screen","TGSI","Rasterizer","Shader","Introduction","Blend","Context","Sampler","Depth, Stencil, & Alpha"],modules:{},descrefs:{},filenames:["index","cso","screen","tgsi","cso/rasterizer","cso/shader","intro","cso/blend","context","cso/sampler","cso/dsa"]}) \ No newline at end of file -- cgit v1.2.3 From a62aaa739924208f9469a75c43a407c0d72a427e Mon Sep 17 00:00:00 2001 From: Keith Whitwell Date: Mon, 21 Dec 2009 23:25:15 +0000 Subject: docs: pull in tgsi-instruction-set.txt verbatim --- src/gallium/docs/source/tgsi.rst | 1164 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 1164 insertions(+) (limited to 'src') diff --git a/src/gallium/docs/source/tgsi.rst b/src/gallium/docs/source/tgsi.rst index 2474925b46..30717bdf7b 100644 --- a/src/gallium/docs/source/tgsi.rst +++ b/src/gallium/docs/source/tgsi.rst @@ -5,3 +5,1167 @@ TGSI, Tungsten Graphics Shader Instructions, is an intermediate language for describing shaders. Since Gallium is inherently shaderful, shaders are an important part of the API. TGSI is the only intermediate representation used by all drivers. + + +TGSI Instruction Specification +============================== + + +1 Instruction Set Operations +============================= + + +1.1 GL_NV_vertex_program +------------------------- + + +1.1.1 ARL - Address Register Load + + dst.x = floor(src.x) + dst.y = floor(src.y) + dst.z = floor(src.z) + dst.w = floor(src.w) + + +1.1.2 MOV - Move + + dst.x = src.x + dst.y = src.y + dst.z = src.z + dst.w = src.w + + +1.1.3 LIT - Light Coefficients + + dst.x = 1.0 + dst.y = max(src.x, 0.0) + dst.z = (src.x > 0.0) ? pow(max(src.y, 0.0), clamp(src.w, -128.0, 128.0)) : 0.0 + dst.w = 1.0 + + +1.1.4 RCP - Reciprocal + + dst.x = 1.0 / src.x + dst.y = 1.0 / src.x + dst.z = 1.0 / src.x + dst.w = 1.0 / src.x + + +1.1.5 RSQ - Reciprocal Square Root + + dst.x = 1.0 / sqrt(abs(src.x)) + dst.y = 1.0 / sqrt(abs(src.x)) + dst.z = 1.0 / sqrt(abs(src.x)) + dst.w = 1.0 / sqrt(abs(src.x)) + + +1.1.6 EXP - Approximate Exponential Base 2 + + dst.x = pow(2.0, floor(src.x)) + dst.y = src.x - floor(src.x) + dst.z = pow(2.0, src.x) + dst.w = 1.0 + + +1.1.7 LOG - Approximate Logarithm Base 2 + + dst.x = floor(lg2(abs(src.x))) + dst.y = abs(src.x) / pow(2.0, floor(lg2(abs(src.x)))) + dst.z = lg2(abs(src.x)) + dst.w = 1.0 + + +1.1.8 MUL - Multiply + + dst.x = src0.x * src1.x + dst.y = src0.y * src1.y + dst.z = src0.z * src1.z + dst.w = src0.w * src1.w + + +1.1.9 ADD - Add + + dst.x = src0.x + src1.x + dst.y = src0.y + src1.y + dst.z = src0.z + src1.z + dst.w = src0.w + src1.w + + +1.1.10 DP3 - 3-component Dot Product + + dst.x = src0.x * src1.x + src0.y * src1.y + src0.z * src1.z + dst.y = src0.x * src1.x + src0.y * src1.y + src0.z * src1.z + dst.z = src0.x * src1.x + src0.y * src1.y + src0.z * src1.z + dst.w = src0.x * src1.x + src0.y * src1.y + src0.z * src1.z + + +1.1.11 DP4 - 4-component Dot Product + + dst.x = src0.x * src1.x + src0.y * src1.y + src0.z * src1.z + src0.w * src1.w + dst.y = src0.x * src1.x + src0.y * src1.y + src0.z * src1.z + src0.w * src1.w + dst.z = src0.x * src1.x + src0.y * src1.y + src0.z * src1.z + src0.w * src1.w + dst.w = src0.x * src1.x + src0.y * src1.y + src0.z * src1.z + src0.w * src1.w + + +1.1.12 DST - Distance Vector + + dst.x = 1.0 + dst.y = src0.y * src1.y + dst.z = src0.z + dst.w = src1.w + + +1.1.13 MIN - Minimum + + dst.x = min(src0.x, src1.x) + dst.y = min(src0.y, src1.y) + dst.z = min(src0.z, src1.z) + dst.w = min(src0.w, src1.w) + + +1.1.14 MAX - Maximum + + dst.x = max(src0.x, src1.x) + dst.y = max(src0.y, src1.y) + dst.z = max(src0.z, src1.z) + dst.w = max(src0.w, src1.w) + + +1.1.15 SLT - Set On Less Than + + dst.x = (src0.x < src1.x) ? 1.0 : 0.0 + dst.y = (src0.y < src1.y) ? 1.0 : 0.0 + dst.z = (src0.z < src1.z) ? 1.0 : 0.0 + dst.w = (src0.w < src1.w) ? 1.0 : 0.0 + + +1.1.16 SGE - Set On Greater Equal Than + + dst.x = (src0.x >= src1.x) ? 1.0 : 0.0 + dst.y = (src0.y >= src1.y) ? 1.0 : 0.0 + dst.z = (src0.z >= src1.z) ? 1.0 : 0.0 + dst.w = (src0.w >= src1.w) ? 1.0 : 0.0 + + +1.1.17 MAD - Multiply And Add + + dst.x = src0.x * src1.x + src2.x + dst.y = src0.y * src1.y + src2.y + dst.z = src0.z * src1.z + src2.z + dst.w = src0.w * src1.w + src2.w + + +1.2 GL_ATI_fragment_shader +--------------------------- + + +1.2.1 SUB - Subtract + + dst.x = src0.x - src1.x + dst.y = src0.y - src1.y + dst.z = src0.z - src1.z + dst.w = src0.w - src1.w + + +1.2.2 DOT3 - 3-component Dot Product + + Alias for DP3. + + +1.2.3 DOT4 - 4-component Dot Product + + Alias for DP4. + + +1.2.4 LERP - Linear Interpolate + + dst.x = src0.x * (src1.x - src2.x) + src2.x + dst.y = src0.y * (src1.y - src2.y) + src2.y + dst.z = src0.z * (src1.z - src2.z) + src2.z + dst.w = src0.w * (src1.w - src2.w) + src2.w + + +1.2.5 CND - Condition + + dst.x = (src2.x > 0.5) ? src0.x : src1.x + dst.y = (src2.y > 0.5) ? src0.y : src1.y + dst.z = (src2.z > 0.5) ? src0.z : src1.z + dst.w = (src2.w > 0.5) ? src0.w : src1.w + + +1.2.6 CND0 - Condition Zero + + Removed. Use (CMP src2, src1, src0) instead. + +1.2.7 DOT2ADD - 2-component Dot Product And Add + + dst.x = src0.x * src1.x + src0.y * src1.y + src2.x + dst.y = src0.x * src1.x + src0.y * src1.y + src2.x + dst.z = src0.x * src1.x + src0.y * src1.y + src2.x + dst.w = src0.x * src1.x + src0.y * src1.y + src2.x + + +1.3 GL_EXT_vertex_shader +------------------------- + + +1.3.1 INDEX - Array Lookup + + Considered for removal from language. + + +1.3.2 NEGATE - Negate + + Considered for removal from language. + + +1.3.3 MADD - Multiply And Add + + Alias for MAD. + + +1.3.4 FRAC - Fraction + + dst.x = src.x - floor(src.x) + dst.y = src.y - floor(src.y) + dst.z = src.z - floor(src.z) + dst.w = src.w - floor(src.w) + + +1.3.5 SETGE - Set On Greater Equal + + Alias for SGE. + + +1.3.6 SETLT - Set On Less Than + + Alias for SLT. + + +1.3.7 CLAMP - Clamp + + dst.x = clamp(src0.x, src1.x, src2.x) + dst.y = clamp(src0.y, src1.y, src2.y) + dst.z = clamp(src0.z, src1.z, src2.z) + dst.w = clamp(src0.w, src1.w, src2.w) + + +1.3.8 FLOOR - Floor + + dst.x = floor(src.x) + dst.y = floor(src.y) + dst.z = floor(src.z) + dst.w = floor(src.w) + + +1.3.9 ROUND - Round + + dst.x = round(src.x) + dst.y = round(src.y) + dst.z = round(src.z) + dst.w = round(src.w) + + +1.3.10 EXPBASE2 - Exponential Base 2 + + dst.x = pow(2.0, src.x) + dst.y = pow(2.0, src.x) + dst.z = pow(2.0, src.x) + dst.w = pow(2.0, src.x) + + +1.3.11 LOGBASE2 - Logarithm Base 2 + + dst.x = lg2(src.x) + dst.y = lg2(src.x) + dst.z = lg2(src.x) + dst.w = lg2(src.x) + + +1.3.12 POWER - Power + + dst.x = pow(src0.x, src1.x) + dst.y = pow(src0.x, src1.x) + dst.z = pow(src0.x, src1.x) + dst.w = pow(src0.x, src1.x) + + +1.3.13 RECIP - Reciprocal + + Alias for RCP. + + +1.3.14 RECIPSQRT - Reciprocal Square Root + + Alias for RSQ. + + +1.3.15 CROSSPRODUCT - Cross Product + + dst.x = src0.y * src1.z - src1.y * src0.z + dst.y = src0.z * src1.x - src1.z * src0.x + dst.z = src0.x * src1.y - src1.x * src0.y + dst.w = 1.0 + + +1.3.16 MULTIPLYMATRIX - Multiply Matrix + + Considered for removal from language. + + +1.4 GL_NV_vertex_program1_1 +---------------------------- + + +1.4.1 ABS - Absolute + + dst.x = abs(src.x) + dst.y = abs(src.y) + dst.z = abs(src.z) + dst.w = abs(src.w) + + +1.4.2 RCC - Reciprocal Clamped + + dst.x = (1.0 / src.x) > 0.0 ? clamp(1.0 / src.x, 5.42101e-020, 1.884467e+019) : clamp(1.0 / src.x, -1.884467e+019, -5.42101e-020) + dst.y = (1.0 / src.x) > 0.0 ? clamp(1.0 / src.x, 5.42101e-020, 1.884467e+019) : clamp(1.0 / src.x, -1.884467e+019, -5.42101e-020) + dst.z = (1.0 / src.x) > 0.0 ? clamp(1.0 / src.x, 5.42101e-020, 1.884467e+019) : clamp(1.0 / src.x, -1.884467e+019, -5.42101e-020) + dst.w = (1.0 / src.x) > 0.0 ? clamp(1.0 / src.x, 5.42101e-020, 1.884467e+019) : clamp(1.0 / src.x, -1.884467e+019, -5.42101e-020) + + +1.4.3 DPH - Homogeneous Dot Product + + dst.x = src0.x * src1.x + src0.y * src1.y + src0.z * src1.z + src1.w + dst.y = src0.x * src1.x + src0.y * src1.y + src0.z * src1.z + src1.w + dst.z = src0.x * src1.x + src0.y * src1.y + src0.z * src1.z + src1.w + dst.w = src0.x * src1.x + src0.y * src1.y + src0.z * src1.z + src1.w + + +1.5 GL_NV_fragment_program +--------------------------- + + +1.5.1 COS - Cosine + + dst.x = cos(src.x) + dst.y = cos(src.x) + dst.z = cos(src.x) + dst.w = cos(src.w) + + +1.5.2 DDX - Derivative Relative To X + + dst.x = partialx(src.x) + dst.y = partialx(src.y) + dst.z = partialx(src.z) + dst.w = partialx(src.w) + + +1.5.3 DDY - Derivative Relative To Y + + dst.x = partialy(src.x) + dst.y = partialy(src.y) + dst.z = partialy(src.z) + dst.w = partialy(src.w) + + +1.5.4 EX2 - Exponential Base 2 + + Alias for EXPBASE2. + + +1.5.5 FLR - Floor + + Alias for FLOOR. + + +1.5.6 FRC - Fraction + + Alias for FRAC. + + +1.5.7 KILP - Predicated Discard + + discard + + +1.5.8 LG2 - Logarithm Base 2 + + Alias for LOGBASE2. + + +1.5.9 LRP - Linear Interpolate + + Alias for LERP. + + +1.5.10 PK2H - Pack Two 16-bit Floats + + TBD + + +1.5.11 PK2US - Pack Two Unsigned 16-bit Scalars + + TBD + + +1.5.12 PK4B - Pack Four Signed 8-bit Scalars + + TBD + + +1.5.13 PK4UB - Pack Four Unsigned 8-bit Scalars + + TBD + + +1.5.14 POW - Power + + Alias for POWER. + + +1.5.15 RFL - Reflection Vector + + dst.x = 2.0 * (src0.x * src1.x + src0.y * src1.y + src0.z * src1.z) / (src0.x * src0.x + src0.y * src0.y + src0.z * src0.z) * src0.x - src1.x + dst.y = 2.0 * (src0.x * src1.x + src0.y * src1.y + src0.z * src1.z) / (src0.x * src0.x + src0.y * src0.y + src0.z * src0.z) * src0.y - src1.y + dst.z = 2.0 * (src0.x * src1.x + src0.y * src1.y + src0.z * src1.z) / (src0.x * src0.x + src0.y * src0.y + src0.z * src0.z) * src0.z - src1.z + dst.w = 1.0 + + +1.5.16 SEQ - Set On Equal + + dst.x = (src0.x == src1.x) ? 1.0 : 0.0 + dst.y = (src0.y == src1.y) ? 1.0 : 0.0 + dst.z = (src0.z == src1.z) ? 1.0 : 0.0 + dst.w = (src0.w == src1.w) ? 1.0 : 0.0 + + +1.5.17 SFL - Set On False + + dst.x = 0.0 + dst.y = 0.0 + dst.z = 0.0 + dst.w = 0.0 + + +1.5.18 SGT - Set On Greater Than + + dst.x = (src0.x > src1.x) ? 1.0 : 0.0 + dst.y = (src0.y > src1.y) ? 1.0 : 0.0 + dst.z = (src0.z > src1.z) ? 1.0 : 0.0 + dst.w = (src0.w > src1.w) ? 1.0 : 0.0 + + +1.5.19 SIN - Sine + + dst.x = sin(src.x) + dst.y = sin(src.x) + dst.z = sin(src.x) + dst.w = sin(src.w) + + +1.5.20 SLE - Set On Less Equal Than + + dst.x = (src0.x <= src1.x) ? 1.0 : 0.0 + dst.y = (src0.y <= src1.y) ? 1.0 : 0.0 + dst.z = (src0.z <= src1.z) ? 1.0 : 0.0 + dst.w = (src0.w <= src1.w) ? 1.0 : 0.0 + + +1.5.21 SNE - Set On Not Equal + + dst.x = (src0.x != src1.x) ? 1.0 : 0.0 + dst.y = (src0.y != src1.y) ? 1.0 : 0.0 + dst.z = (src0.z != src1.z) ? 1.0 : 0.0 + dst.w = (src0.w != src1.w) ? 1.0 : 0.0 + + +1.5.22 STR - Set On True + + dst.x = 1.0 + dst.y = 1.0 + dst.z = 1.0 + dst.w = 1.0 + + +1.5.23 TEX - Texture Lookup + + TBD + + +1.5.24 TXD - Texture Lookup with Derivatives + + TBD + + +1.5.25 TXP - Projective Texture Lookup + + TBD + + +1.5.26 UP2H - Unpack Two 16-Bit Floats + + TBD + + +1.5.27 UP2US - Unpack Two Unsigned 16-Bit Scalars + + TBD + + +1.5.28 UP4B - Unpack Four Signed 8-Bit Values + + TBD + + +1.5.29 UP4UB - Unpack Four Unsigned 8-Bit Scalars + + TBD + + +1.5.30 X2D - 2D Coordinate Transformation + + dst.x = src0.x + src1.x * src2.x + src1.y * src2.y + dst.y = src0.y + src1.x * src2.z + src1.y * src2.w + dst.z = src0.x + src1.x * src2.x + src1.y * src2.y + dst.w = src0.y + src1.x * src2.z + src1.y * src2.w + + +1.6 GL_NV_vertex_program2 +-------------------------- + + +1.6.1 ARA - Address Register Add + + TBD + + +1.6.2 ARR - Address Register Load With Round + + dst.x = round(src.x) + dst.y = round(src.y) + dst.z = round(src.z) + dst.w = round(src.w) + + +1.6.3 BRA - Branch + + pc = target + + +1.6.4 CAL - Subroutine Call + + push(pc) + pc = target + + +1.6.5 RET - Subroutine Call Return + + pc = pop() + + +1.6.6 SSG - Set Sign + + dst.x = (src.x > 0.0) ? 1.0 : (src.x < 0.0) ? -1.0 : 0.0 + dst.y = (src.y > 0.0) ? 1.0 : (src.y < 0.0) ? -1.0 : 0.0 + dst.z = (src.z > 0.0) ? 1.0 : (src.z < 0.0) ? -1.0 : 0.0 + dst.w = (src.w > 0.0) ? 1.0 : (src.w < 0.0) ? -1.0 : 0.0 + + +1.7 GL_ARB_vertex_program +-------------------------- + + +1.7.1 SWZ - Extended Swizzle + + dst.x = src.x + dst.y = src.y + dst.z = src.z + dst.w = src.w + + +1.7.2 XPD - Cross Product + + Alias for CROSSPRODUCT. + + +1.8 GL_ARB_fragment_program +---------------------------- + + +1.8.1 CMP - Compare + + dst.x = (src0.x < 0.0) ? src1.x : src2.x + dst.y = (src0.y < 0.0) ? src1.y : src2.y + dst.z = (src0.z < 0.0) ? src1.z : src2.z + dst.w = (src0.w < 0.0) ? src1.w : src2.w + + +1.8.2 KIL - Conditional Discard + + if (src.x < 0.0 || src.y < 0.0 || src.z < 0.0 || src.w < 0.0) + discard + endif + + +1.8.3 SCS - Sine Cosine + + dst.x = cos(src.x) + dst.y = sin(src.x) + dst.z = 0.0 + dst.y = 1.0 + + +1.8.4 TXB - Texture Lookup With Bias + + TBD + + +1.9 GL_NV_fragment_program2 +---------------------------- + + +1.9.1 NRM - 3-component Vector Normalise + + dst.x = src.x / (src.x * src.x + src.y * src.y + src.z * src.z) + dst.y = src.y / (src.x * src.x + src.y * src.y + src.z * src.z) + dst.z = src.z / (src.x * src.x + src.y * src.y + src.z * src.z) + dst.w = 1.0 + + +1.9.2 DIV - Divide + + dst.x = src0.x / src1.x + dst.y = src0.y / src1.y + dst.z = src0.z / src1.z + dst.w = src0.w / src1.w + + +1.9.3 DP2 - 2-component Dot Product + + dst.x = src0.x * src1.x + src0.y * src1.y + dst.y = src0.x * src1.x + src0.y * src1.y + dst.z = src0.x * src1.x + src0.y * src1.y + dst.w = src0.x * src1.x + src0.y * src1.y + + +1.9.4 DP2A - 2-component Dot Product And Add + + Alias for DOT2ADD. + + +1.9.5 TXL - Texture Lookup With LOD + + TBD + + +1.9.6 BRK - Break + + TBD + + +1.9.7 IF - If + + TBD + + +1.9.8 BGNFOR - Begin a For-Loop + + dst.x = floor(src.x) + dst.y = floor(src.y) + dst.z = floor(src.z) + + if (dst.y <= 0) + pc = [matching ENDFOR] + 1 + endif + + Note: The destination must be a loop register. + The source must be a constant register. + + +1.9.9 REP - Repeat + + TBD + + +1.9.10 ELSE - Else + + TBD + + +1.9.11 ENDIF - End If + + TBD + + +1.9.12 ENDFOR - End a For-Loop + + dst.x = dst.x + dst.z + dst.y = dst.y - 1.0 + + if (dst.y > 0) + pc = [matching BGNFOR instruction] + 1 + endif + + Note: The destination must be a loop register. + + +1.9.13 ENDREP - End Repeat + + TBD + + +1.10 GL_NV_vertex_program3 +--------------------------- + + +1.10.1 PUSHA - Push Address Register On Stack + + push(src.x) + push(src.y) + push(src.z) + push(src.w) + + +1.10.2 POPA - Pop Address Register From Stack + + dst.w = pop() + dst.z = pop() + dst.y = pop() + dst.x = pop() + + +1.11 GL_NV_gpu_program4 +------------------------ + + +1.11.1 CEIL - Ceiling + + dst.x = ceil(src.x) + dst.y = ceil(src.y) + dst.z = ceil(src.z) + dst.w = ceil(src.w) + + +1.11.2 I2F - Integer To Float + + dst.x = (float) src.x + dst.y = (float) src.y + dst.z = (float) src.z + dst.w = (float) src.w + + +1.11.3 NOT - Bitwise Not + + dst.x = ~src.x + dst.y = ~src.y + dst.z = ~src.z + dst.w = ~src.w + + +1.11.4 TRUNC - Truncate + + dst.x = trunc(src.x) + dst.y = trunc(src.y) + dst.z = trunc(src.z) + dst.w = trunc(src.w) + + +1.11.5 SHL - Shift Left + + dst.x = src0.x << src1.x + dst.y = src0.y << src1.x + dst.z = src0.z << src1.x + dst.w = src0.w << src1.x + + +1.11.6 SHR - Shift Right + + dst.x = src0.x >> src1.x + dst.y = src0.y >> src1.x + dst.z = src0.z >> src1.x + dst.w = src0.w >> src1.x + + +1.11.7 AND - Bitwise And + + dst.x = src0.x & src1.x + dst.y = src0.y & src1.y + dst.z = src0.z & src1.z + dst.w = src0.w & src1.w + + +1.11.8 OR - Bitwise Or + + dst.x = src0.x | src1.x + dst.y = src0.y | src1.y + dst.z = src0.z | src1.z + dst.w = src0.w | src1.w + + +1.11.9 MOD - Modulus + + dst.x = src0.x % src1.x + dst.y = src0.y % src1.y + dst.z = src0.z % src1.z + dst.w = src0.w % src1.w + + +1.11.10 XOR - Bitwise Xor + + dst.x = src0.x ^ src1.x + dst.y = src0.y ^ src1.y + dst.z = src0.z ^ src1.z + dst.w = src0.w ^ src1.w + + +1.11.11 SAD - Sum Of Absolute Differences + + dst.x = abs(src0.x - src1.x) + src2.x + dst.y = abs(src0.y - src1.y) + src2.y + dst.z = abs(src0.z - src1.z) + src2.z + dst.w = abs(src0.w - src1.w) + src2.w + + +1.11.12 TXF - Texel Fetch + + TBD + + +1.11.13 TXQ - Texture Size Query + + TBD + + +1.11.14 CONT - Continue + + TBD + + +1.12 GL_NV_geometry_program4 +----------------------------- + + +1.12.1 EMIT - Emit + + TBD + + +1.12.2 ENDPRIM - End Primitive + + TBD + + +1.13 GLSL +---------- + + +1.13.1 BGNLOOP - Begin a Loop + + TBD + + +1.13.2 BGNSUB - Begin Subroutine + + TBD + + +1.13.3 ENDLOOP - End a Loop + + TBD + + +1.13.4 ENDSUB - End Subroutine + + TBD + + +1.13.5 INT - Truncate + + Alias for TRUNC. + + +1.13.6 NOISE1 - 1D Noise + + TBD + + +1.13.7 NOISE2 - 2D Noise + + TBD + + +1.13.8 NOISE3 - 3D Noise + + TBD + + +1.13.9 NOISE4 - 4D Noise + + TBD + + +1.13.10 NOP - No Operation + + Do nothing. + + +1.14 ps_1_1 +------------ + + +1.14.1 TEXKILL - Conditional Discard + + Alias for KIL. + + +1.15 ps_1_4 +------------ + + +1.15.1 TEXLD - Texture Lookup + + Alias for TEX. + + +1.16 ps_2_0 +------------ + + +1.16.1 M4X4 - Multiply Matrix + + Alias for MULTIPLYMATRIX. + + +1.16.2 M4X3 - Multiply Matrix + + Considered for removal from language. + + +1.16.3 M3X4 - Multiply Matrix + + Considered for removal from language. + + +1.16.4 M3X3 - Multiply Matrix + + Considered for removal from language. + + +1.16.5 M3X2 - Multiply Matrix + + Considered for removal from language. + + +1.16.6 CRS - Cross Product + + Alias for XPD. + + +1.16.7 NRM4 - 4-component Vector Normalise + + dst.x = src.x / (src.x * src.x + src.y * src.y + src.z * src.z + src.w * src.w) + dst.y = src.y / (src.x * src.x + src.y * src.y + src.z * src.z + src.w * src.w) + dst.z = src.z / (src.x * src.x + src.y * src.y + src.z * src.z + src.w * src.w) + dst.w = src.w / (src.x * src.x + src.y * src.y + src.z * src.z + src.w * src.w) + + +1.16.8 SINCOS - Sine Cosine + + Alias for SCS. + + +1.16.9 TEXLDB - Texture Lookup With Bias + + Alias for TXB. + + +1.16.10 DP2ADD - 2-component Dot Product And Add + + Alias for DP2A. + + +1.17 ps_2_x +------------ + + +1.17.1 CALL - Subroutine Call + + Alias for CAL. + + +1.17.2 CALLNZ - Subroutine Call If Not Zero + + TBD + + +1.17.3 IFC - If + + TBD + + +1.17.4 BREAK - Break + + Alias for BRK. + + +1.17.5 BREAKC - Break Conditional + + TBD + + +1.17.6 DSX - Derivative Relative To X + + Alias for DDX. + + +1.17.7 DSY - Derivative Relative To Y + + Alias for DDY. + + +1.17.8 TEXLDD - Texture Lookup with Derivatives + + Alias for TXD. + + +1.18 vs_1_1 +------------ + + +1.18.1 EXPP - Approximate Exponential Base 2 + + Use EXP. See also 1.19.3. + + +1.18.2 LOGP - Logarithm Base 2 + + Use LOG. See also 1.19.4. + + +1.19 vs_2_0 +------------ + + +1.19.1 SGN - Set Sign + + Alias for SSG. + + +1.19.2 MOVA - Move Address Register + + Alias for ARR. + + +1.19.3 EXPP - Approximate Exponential Base 2 + + Use EX2. + + +1.19.4 LOGP - Logarithm Base 2 + + Use LG2. + + +2 Explanation of symbols used +============================== + + +2.1 Functions +-------------- + + + abs(x) Absolute value of x. + '|x|' + (x < 0.0) ? -x : x + + ceil(x) Ceiling of x. + + clamp(x,y,z) Clamp x between y and z. + (x < y) ? y : (x > z) ? z : x + + cos(x) Cosine of x. + + floor(x) Floor of x. + + lg2(x) Logarithm base 2 of x. + + max(x,y) Maximum of x and y. + (x > y) ? x : y + + min(x,y) Minimum of x and y. + (x < y) ? x : y + + partialx(x) Derivative of x relative to fragment's X. + + partialy(x) Derivative of x relative to fragment's Y. + + pop() Pop from stack. + + pow(x,y) Raise x to power of y. + + push(x) Push x on stack. + + round(x) Round x. + + sin(x) Sine of x. + + sqrt(x) Square root of x. + + trunc(x) Truncate x. + + +2.2 Keywords +------------- + + + discard Discard fragment. + + dst First destination register. + + dst0 First destination register. + + pc Program counter. + + src First source register. + + src0 First source register. + + src1 Second source register. + + src2 Third source register. + + target Label of target instruction. + + +3 Other tokens +=============== + + +3.1 Declaration Semantic +------------------------- + + + Follows Declaration token if Semantic bit is set. + + Since its purpose is to link a shader with other stages of the pipeline, + it is valid to follow only those Declaration tokens that declare a register + either in INPUT or OUTPUT file. + + SemanticName field contains the semantic name of the register being declared. + There is no default value. + + SemanticIndex is an optional subscript that can be used to distinguish + different register declarations with the same semantic name. The default value + is 0. + + The meanings of the individual semantic names are explained in the following + sections. + + +3.1.1 FACE + + Valid only in a fragment shader INPUT declaration. + + FACE.x is negative when the primitive is back facing. FACE.x is positive + when the primitive is front facing. -- cgit v1.2.3 From 14eacb041b174fee75de7c14a81bd333a3fd2797 Mon Sep 17 00:00:00 2001 From: Keith Whitwell Date: Mon, 21 Dec 2009 23:38:29 +0000 Subject: docs: remove some old opcodes and other cruft from tgsi doc --- src/gallium/docs/source/tgsi.rst | 322 ++++----------------------------------- 1 file changed, 27 insertions(+), 295 deletions(-) (limited to 'src') diff --git a/src/gallium/docs/source/tgsi.rst b/src/gallium/docs/source/tgsi.rst index 30717bdf7b..a30729073b 100644 --- a/src/gallium/docs/source/tgsi.rst +++ b/src/gallium/docs/source/tgsi.rst @@ -155,10 +155,6 @@ TGSI Instruction Specification dst.w = src0.w * src1.w + src2.w -1.2 GL_ATI_fragment_shader ---------------------------- - - 1.2.1 SUB - Subtract dst.x = src0.x - src1.x @@ -167,17 +163,7 @@ TGSI Instruction Specification dst.w = src0.w - src1.w -1.2.2 DOT3 - 3-component Dot Product - - Alias for DP3. - - -1.2.3 DOT4 - 4-component Dot Product - - Alias for DP4. - - -1.2.4 LERP - Linear Interpolate +1.2.4 LRP - Linear Interpolate dst.x = src0.x * (src1.x - src2.x) + src2.x dst.y = src0.y * (src1.y - src2.y) + src2.y @@ -193,11 +179,7 @@ TGSI Instruction Specification dst.w = (src2.w > 0.5) ? src0.w : src1.w -1.2.6 CND0 - Condition Zero - - Removed. Use (CMP src2, src1, src0) instead. - -1.2.7 DOT2ADD - 2-component Dot Product And Add +1.2.7 DP2A - 2-component Dot Product And Add dst.x = src0.x * src1.x + src0.y * src1.y + src2.x dst.y = src0.x * src1.x + src0.y * src1.y + src2.x @@ -205,25 +187,6 @@ TGSI Instruction Specification dst.w = src0.x * src1.x + src0.y * src1.y + src2.x -1.3 GL_EXT_vertex_shader -------------------------- - - -1.3.1 INDEX - Array Lookup - - Considered for removal from language. - - -1.3.2 NEGATE - Negate - - Considered for removal from language. - - -1.3.3 MADD - Multiply And Add - - Alias for MAD. - - 1.3.4 FRAC - Fraction dst.x = src.x - floor(src.x) @@ -232,16 +195,6 @@ TGSI Instruction Specification dst.w = src.w - floor(src.w) -1.3.5 SETGE - Set On Greater Equal - - Alias for SGE. - - -1.3.6 SETLT - Set On Less Than - - Alias for SLT. - - 1.3.7 CLAMP - Clamp dst.x = clamp(src0.x, src1.x, src2.x) @@ -250,7 +203,7 @@ TGSI Instruction Specification dst.w = clamp(src0.w, src1.w, src2.w) -1.3.8 FLOOR - Floor +1.3.8 FLR - Floor dst.x = floor(src.x) dst.y = floor(src.y) @@ -266,7 +219,7 @@ TGSI Instruction Specification dst.w = round(src.w) -1.3.10 EXPBASE2 - Exponential Base 2 +1.3.10 EX2 - Exponential Base 2 dst.x = pow(2.0, src.x) dst.y = pow(2.0, src.x) @@ -274,7 +227,7 @@ TGSI Instruction Specification dst.w = pow(2.0, src.x) -1.3.11 LOGBASE2 - Logarithm Base 2 +1.3.11 LG2 - Logarithm Base 2 dst.x = lg2(src.x) dst.y = lg2(src.x) @@ -282,25 +235,14 @@ TGSI Instruction Specification dst.w = lg2(src.x) -1.3.12 POWER - Power +1.3.12 POW - Power dst.x = pow(src0.x, src1.x) dst.y = pow(src0.x, src1.x) dst.z = pow(src0.x, src1.x) dst.w = pow(src0.x, src1.x) - -1.3.13 RECIP - Reciprocal - - Alias for RCP. - - -1.3.14 RECIPSQRT - Reciprocal Square Root - - Alias for RSQ. - - -1.3.15 CROSSPRODUCT - Cross Product +1.3.15 XPD - Cross Product dst.x = src0.y * src1.z - src1.y * src0.z dst.y = src0.z * src1.x - src1.z * src0.x @@ -308,15 +250,6 @@ TGSI Instruction Specification dst.w = 1.0 -1.3.16 MULTIPLYMATRIX - Multiply Matrix - - Considered for removal from language. - - -1.4 GL_NV_vertex_program1_1 ----------------------------- - - 1.4.1 ABS - Absolute dst.x = abs(src.x) @@ -341,10 +274,6 @@ TGSI Instruction Specification dst.w = src0.x * src1.x + src0.y * src1.y + src0.z * src1.z + src1.w -1.5 GL_NV_fragment_program ---------------------------- - - 1.5.1 COS - Cosine dst.x = cos(src.x) @@ -369,36 +298,11 @@ TGSI Instruction Specification dst.w = partialy(src.w) -1.5.4 EX2 - Exponential Base 2 - - Alias for EXPBASE2. - - -1.5.5 FLR - Floor - - Alias for FLOOR. - - -1.5.6 FRC - Fraction - - Alias for FRAC. - - 1.5.7 KILP - Predicated Discard discard -1.5.8 LG2 - Logarithm Base 2 - - Alias for LOGBASE2. - - -1.5.9 LRP - Linear Interpolate - - Alias for LERP. - - 1.5.10 PK2H - Pack Two 16-bit Floats TBD @@ -419,11 +323,6 @@ TGSI Instruction Specification TBD -1.5.14 POW - Power - - Alias for POWER. - - 1.5.15 RFL - Reflection Vector dst.x = 2.0 * (src0.x * src1.x + src0.y * src1.y + src0.z * src1.z) / (src0.x * src0.x + src0.y * src0.y + src0.z * src0.z) * src0.x - src1.x @@ -431,6 +330,8 @@ TGSI Instruction Specification dst.z = 2.0 * (src0.x * src1.x + src0.y * src1.y + src0.z * src1.z) / (src0.x * src0.x + src0.y * src0.y + src0.z * src0.z) * src0.z - src1.z dst.w = 1.0 + Considered for removal. + 1.5.16 SEQ - Set On Equal @@ -447,6 +348,7 @@ TGSI Instruction Specification dst.z = 0.0 dst.w = 0.0 + Considered for removal. 1.5.18 SGT - Set On Greater Than @@ -507,21 +409,25 @@ TGSI Instruction Specification TBD + Considered for removal. 1.5.27 UP2US - Unpack Two Unsigned 16-Bit Scalars TBD + Considered for removal. 1.5.28 UP4B - Unpack Four Signed 8-Bit Values TBD + Considered for removal. 1.5.29 UP4UB - Unpack Four Unsigned 8-Bit Scalars TBD + Considered for removal. 1.5.30 X2D - 2D Coordinate Transformation @@ -530,6 +436,8 @@ TGSI Instruction Specification dst.z = src0.x + src1.x * src2.x + src1.y * src2.y dst.w = src0.y + src1.x * src2.z + src1.y * src2.w + Considered for removal. + 1.6 GL_NV_vertex_program2 -------------------------- @@ -539,6 +447,7 @@ TGSI Instruction Specification TBD + Considered for removal. 1.6.2 ARR - Address Register Load With Round @@ -552,6 +461,7 @@ TGSI Instruction Specification pc = target + Considered for removal. 1.6.4 CAL - Subroutine Call @@ -563,6 +473,8 @@ TGSI Instruction Specification pc = pop() + Potential restrictions: + * Only occurs at end of function. 1.6.6 SSG - Set Sign @@ -572,27 +484,6 @@ TGSI Instruction Specification dst.w = (src.w > 0.0) ? 1.0 : (src.w < 0.0) ? -1.0 : 0.0 -1.7 GL_ARB_vertex_program --------------------------- - - -1.7.1 SWZ - Extended Swizzle - - dst.x = src.x - dst.y = src.y - dst.z = src.z - dst.w = src.w - - -1.7.2 XPD - Cross Product - - Alias for CROSSPRODUCT. - - -1.8 GL_ARB_fragment_program ----------------------------- - - 1.8.1 CMP - Compare dst.x = (src0.x < 0.0) ? src1.x : src2.x @@ -621,10 +512,6 @@ TGSI Instruction Specification TBD -1.9 GL_NV_fragment_program2 ----------------------------- - - 1.9.1 NRM - 3-component Vector Normalise dst.x = src.x / (src.x * src.x + src.y * src.y + src.z * src.z) @@ -649,11 +536,6 @@ TGSI Instruction Specification dst.w = src0.x * src1.x + src0.y * src1.y -1.9.4 DP2A - 2-component Dot Product And Add - - Alias for DOT2ADD. - - 1.9.5 TXL - Texture Lookup With LOD TBD @@ -682,6 +564,8 @@ TGSI Instruction Specification Note: The destination must be a loop register. The source must be a constant register. + Considered for cleanup / removal. + 1.9.9 REP - Repeat @@ -709,16 +593,13 @@ TGSI Instruction Specification Note: The destination must be a loop register. + Considered for cleanup / removal. 1.9.13 ENDREP - End Repeat TBD -1.10 GL_NV_vertex_program3 ---------------------------- - - 1.10.1 PUSHA - Push Address Register On Stack push(src.x) @@ -726,6 +607,7 @@ TGSI Instruction Specification push(src.z) push(src.w) + Considered for cleanup / removal. 1.10.2 POPA - Pop Address Register From Stack @@ -734,10 +616,13 @@ TGSI Instruction Specification dst.y = pop() dst.x = pop() + Considered for cleanup / removal. + 1.11 GL_NV_gpu_program4 ------------------------ +Support for these opcodes indicated by a special pipe capability bit (TBD). 1.11.1 CEIL - Ceiling @@ -880,87 +765,12 @@ TGSI Instruction Specification TBD -1.13.5 INT - Truncate - - Alias for TRUNC. - - -1.13.6 NOISE1 - 1D Noise - - TBD - - -1.13.7 NOISE2 - 2D Noise - - TBD - - -1.13.8 NOISE3 - 3D Noise - - TBD - - -1.13.9 NOISE4 - 4D Noise - - TBD - 1.13.10 NOP - No Operation Do nothing. -1.14 ps_1_1 ------------- - - -1.14.1 TEXKILL - Conditional Discard - - Alias for KIL. - - -1.15 ps_1_4 ------------- - - -1.15.1 TEXLD - Texture Lookup - - Alias for TEX. - - -1.16 ps_2_0 ------------- - - -1.16.1 M4X4 - Multiply Matrix - - Alias for MULTIPLYMATRIX. - - -1.16.2 M4X3 - Multiply Matrix - - Considered for removal from language. - - -1.16.3 M3X4 - Multiply Matrix - - Considered for removal from language. - - -1.16.4 M3X3 - Multiply Matrix - - Considered for removal from language. - - -1.16.5 M3X2 - Multiply Matrix - - Considered for removal from language. - - -1.16.6 CRS - Cross Product - - Alias for XPD. - 1.16.7 NRM4 - 4-component Vector Normalise @@ -970,30 +780,10 @@ TGSI Instruction Specification dst.w = src.w / (src.x * src.x + src.y * src.y + src.z * src.z + src.w * src.w) -1.16.8 SINCOS - Sine Cosine - - Alias for SCS. - - -1.16.9 TEXLDB - Texture Lookup With Bias - - Alias for TXB. - - -1.16.10 DP2ADD - 2-component Dot Product And Add - - Alias for DP2A. - - 1.17 ps_2_x ------------ -1.17.1 CALL - Subroutine Call - - Alias for CAL. - - 1.17.2 CALLNZ - Subroutine Call If Not Zero TBD @@ -1004,69 +794,11 @@ TGSI Instruction Specification TBD -1.17.4 BREAK - Break - - Alias for BRK. - - 1.17.5 BREAKC - Break Conditional TBD -1.17.6 DSX - Derivative Relative To X - - Alias for DDX. - - -1.17.7 DSY - Derivative Relative To Y - - Alias for DDY. - - -1.17.8 TEXLDD - Texture Lookup with Derivatives - - Alias for TXD. - - -1.18 vs_1_1 ------------- - - -1.18.1 EXPP - Approximate Exponential Base 2 - - Use EXP. See also 1.19.3. - - -1.18.2 LOGP - Logarithm Base 2 - - Use LOG. See also 1.19.4. - - -1.19 vs_2_0 ------------- - - -1.19.1 SGN - Set Sign - - Alias for SSG. - - -1.19.2 MOVA - Move Address Register - - Alias for ARR. - - -1.19.3 EXPP - Approximate Exponential Base 2 - - Use EX2. - - -1.19.4 LOGP - Logarithm Base 2 - - Use LG2. - - 2 Explanation of symbols used ============================== -- cgit v1.2.3 From f3347fe397cb917dbfc18f87795a5187f2763019 Mon Sep 17 00:00:00 2001 From: Keith Whitwell Date: Mon, 21 Dec 2009 23:44:32 +0000 Subject: gallium/docs: extend the context docs a little --- src/gallium/docs/source/context.rst | 79 +++++++++++++++++++++++++++++-------- 1 file changed, 63 insertions(+), 16 deletions(-) (limited to 'src') diff --git a/src/gallium/docs/source/context.rst b/src/gallium/docs/source/context.rst index 6470e8fd49..21f5f9111a 100644 --- a/src/gallium/docs/source/context.rst +++ b/src/gallium/docs/source/context.rst @@ -25,6 +25,21 @@ CSO objects handled by the context object: * :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 ^^^^^^^^^^^^^ @@ -35,47 +50,79 @@ objects. They all follow simple, one-method binding calls, e.g. * ``set_edgeflags`` * ``set_blend_color`` * ``set_clip_state`` -* ``set_constant_buffer`` -* ``set_framebuffer_state`` * ``set_polygon_stipple`` * ``set_scissor_state`` * ``set_viewport_state`` -* ``set_fragment_sampler_textures`` -* ``set_vertex_sampler_textures`` -* ``set_vertex_buffers`` * ``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. -VBO Drawing -^^^^^^^^^^^ +Flushing +^^^^^^^^ -``draw_arrays`` +``flush`` -``draw_elements`` -``draw_range_elements`` +Resource Busy Queries +^^^^^^^^^^^^^^^^^^^^^ -``flush`` +``is_texture_referenced`` -Surface Drawing -^^^^^^^^^^^^^^^ +``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. -``clear`` initializes entire buffers to an RGBA, depth, or stencil value, -depending on the formats of the buffers. Use ``set_framebuffer_state`` to -specify the buffers to clear. +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. + -- cgit v1.2.3 From 9ddeab48c85d45b7b7cc781dcf566e0767c84ba5 Mon Sep 17 00:00:00 2001 From: Corbin Simpson Date: Sun, 20 Dec 2009 20:37:40 -0800 Subject: More docs. Glossary. --- .../docs/build/html/_sources/cso/rasterizer.txt | 17 ++-- src/gallium/docs/build/html/_sources/glossary.txt | 10 ++ src/gallium/docs/build/html/_sources/index.txt | 1 + src/gallium/docs/build/html/cso/rasterizer.html | 17 ++-- src/gallium/docs/build/html/cso/shader.html | 10 ++ src/gallium/docs/build/html/genindex.html | 9 +- src/gallium/docs/build/html/glossary.html | 102 +++++++++++++++++++++ src/gallium/docs/build/html/index.html | 1 + src/gallium/docs/build/html/searchindex.js | 2 +- src/gallium/docs/source/conf.py | 3 + src/gallium/docs/source/cso/rasterizer.rst | 17 ++-- src/gallium/docs/source/glossary.rst | 10 ++ src/gallium/docs/source/index.rst | 1 + 13 files changed, 174 insertions(+), 26 deletions(-) create mode 100644 src/gallium/docs/build/html/_sources/glossary.txt create mode 100644 src/gallium/docs/build/html/glossary.html create mode 100644 src/gallium/docs/source/glossary.rst (limited to 'src') diff --git a/src/gallium/docs/build/html/_sources/cso/rasterizer.txt b/src/gallium/docs/build/html/_sources/cso/rasterizer.txt index 0686bffa1e..afb58ea375 100644 --- a/src/gallium/docs/build/html/_sources/cso/rasterizer.txt +++ b/src/gallium/docs/build/html/_sources/cso/rasterizer.txt @@ -29,7 +29,7 @@ point_sprite point_size_per_vertex Whether vertices have a point size element. multisample - Whether MSAA is enabled. + Whether :ref:`MSAA` is enabled. line_smooth Whether lines should be smoothed. Line smoothing is simply anti-aliasing. line_stipple_enable @@ -77,10 +77,11 @@ 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. -* 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. +* ``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. diff --git a/src/gallium/docs/build/html/_sources/glossary.txt b/src/gallium/docs/build/html/_sources/glossary.txt new file mode 100644 index 0000000000..6a9110ce78 --- /dev/null +++ b/src/gallium/docs/build/html/_sources/glossary.txt @@ -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. diff --git a/src/gallium/docs/build/html/_sources/index.txt b/src/gallium/docs/build/html/_sources/index.txt index e1b04e6453..1800bbed47 100644 --- a/src/gallium/docs/build/html/_sources/index.txt +++ b/src/gallium/docs/build/html/_sources/index.txt @@ -16,6 +16,7 @@ Contents: screen context cso + glossary Indices and tables ================== diff --git a/src/gallium/docs/build/html/cso/rasterizer.html b/src/gallium/docs/build/html/cso/rasterizer.html index 7a97214d40..51980953dd 100644 --- a/src/gallium/docs/build/html/cso/rasterizer.html +++ b/src/gallium/docs/build/html/cso/rasterizer.html @@ -73,7 +73,7 @@ points into circles or ovals.
      point_size_per_vertex
      Whether vertices have a point size element.
      multisample
      -
      Whether MSAA is enabled.
      +
      Whether MSAA is enabled.
      line_smooth
      Whether lines should be smoothed. Line smoothing is simply anti-aliasing.
      line_stipple_enable
      @@ -118,13 +118,14 @@ 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.
      • -
      • 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.
      • +
      • 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.
      diff --git a/src/gallium/docs/build/html/cso/shader.html b/src/gallium/docs/build/html/cso/shader.html index fead11d377..9eebf1326c 100644 --- a/src/gallium/docs/build/html/cso/shader.html +++ b/src/gallium/docs/build/html/cso/shader.html @@ -21,6 +21,7 @@ + @@ -30,6 +31,9 @@
    • index
    • +
    • + next |
    • previous |
    • @@ -72,6 +76,9 @@

      Previous topic

      Sampler

      +

      Next topic

      +

      Glossary

      This Page

      • index
      • +
      • + next |
      • previous |
      • diff --git a/src/gallium/docs/build/html/genindex.html b/src/gallium/docs/build/html/genindex.html index 72a619dc81..635601eb74 100644 --- a/src/gallium/docs/build/html/genindex.html +++ b/src/gallium/docs/build/html/genindex.html @@ -40,11 +40,18 @@

        Index

        - + M
        +

        M

        +
        +
        + +
        MSAA
        +
        + diff --git a/src/gallium/docs/build/html/glossary.html b/src/gallium/docs/build/html/glossary.html new file mode 100644 index 0000000000..573c12eb78 --- /dev/null +++ b/src/gallium/docs/build/html/glossary.html @@ -0,0 +1,102 @@ + + + + + + + Glossary — Gallium v0.3 documentation + + + + + + + + + + + +
        +
        +
        +
        + +
        +

        Glossary

        +
        +
        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.
        +
        +
        + + +
        +
        +
        +
        +
        +

        Previous topic

        +

        Shader

        +

        This Page

        + + + +
        +
        +
        +
        + + + + \ No newline at end of file diff --git a/src/gallium/docs/build/html/index.html b/src/gallium/docs/build/html/index.html index 27db8d6f3c..2001ba542b 100644 --- a/src/gallium/docs/build/html/index.html +++ b/src/gallium/docs/build/html/index.html @@ -66,6 +66,7 @@
      • Shader
      +
    • Glossary
    diff --git a/src/gallium/docs/build/html/searchindex.js b/src/gallium/docs/build/html/searchindex.js index 2222a1ddee..08f2b406f8 100644 --- a/src/gallium/docs/build/html/searchindex.js +++ b/src/gallium/docs/build/html/searchindex.js @@ -1 +1 @@ -Search.setIndex({desctypes:{},terms:{represent:3,all:[3,8,10],queri:8,four:9,per:4,abil:8,follow:8,depend:[4,8],intermedi:3,sourc:8,straightforward:6,set_vertex_el:8,fan:4,level:9,list:5,emul:8,prefilt:9,small:8,dimens:9,impli:4,second:[4,10],pass:[1,10],light_twosid:4,zfail_op:10,index:0,what:[0,6,7],sprite_coord_mod:4,section:8,access:8,delet:8,rgba:[8,9],method:[0,2,8],themselv:4,inher:3,vertic:4,sinc:3,valu:[8,10],line_stipple_factor:4,search:0,vbo:8,shader:[0,1,3,5,4,8,10],permit:[4,8],weird:9,gourard:4,primit:4,modul:0,textur:[2,9],"boolean":2,visibl:4,oval:4,select:9,encapsul:6,gl_rasterization_rul:4,from:[4,9],describ:3,two:[5,8,10],call:8,get_paramf:2,type:5,desir:1,get_nam:2,raster:[0,1,4,8],pipe_primitive_quad:4,flag:4,templat:2,fill_ccw:4,point_size_min:4,poly_smooth:4,graphic:[3,6],retriev:8,setup:2,work:1,obvious:4,can:[1,2,8],control:[10,7,4,8,9],create_blend_st:8,indic:0,minimum:[4,9],alwai:[10,4,9],cso:[0,1,8],anoth:8,write:[6,10],how:[4,9],flatshad:[1,4],simpl:8,after:9,point_size_per_vertex:4,set_constant_buff:8,mai:[4,8],fail_op:10,pipe_stencil_op:10,principl:1,essenti:6,opaqu:1,element:4,perform:8,valuemask:10,order:10,rotat:4,through:[4,10],still:4,paramet:2,group:8,directli:8,bypass:4,main:4,pixel:4,non:8,"return":[1,2],thei:[1,10,4,8,9],handl:[1,8],initi:8,get_vendor:2,line_smooth:4,cull_mod:4,introduct:[0,6],name:[2,8],token:5,each:[4,9],side:10,doxi:9,offset_ccw:4,clamp:9,chunk:4,special:8,out:[1,10,9],variabl:8,content:0,hardwar:[6,4,10],got:2,offset_cw:4,given:2,compare_func:9,begin_queri:8,"_rasterizer_st":8,reusabl:1,filter:9,turn:4,get_param:2,clump:10,first:4,oper:[8,10],rang:9,max_lod:9,render:[7,8],carri:10,independ:2,instruct:3,done:10,size:4,differ:4,stencil:[0,1,8,10],too:8,circl:4,scheme:8,moar:[2,4],store:10,min_img_filt:9,option:[4,9],pipe_tex_filt:9,mipmap:9,create_queri:8,part:[1,3,2],line_stipple_en:4,target:7,provid:[6,8],see:2,structur:10,"final":[7,8],stippl:4,bind:8,result:[7,8],pre:4,fashion:6,clip:4,ani:1,"_blend_stat":8,bitfield:4,max_anisotropi:9,blit:8,have:[10,4,8,9],tabl:0,need:4,"null":8,unresolv:7,alias:4,destroi:8,fill_cw:4,note:[1,4],set_viewport_st:8,pipe_func:10,pipelin:[4,8],shade:4,normal:9,buffer:[7,8,10],object:[1,6,2,8],most:[4,8],specifi:[4,8],alpha:[0,1,8,10],pipe_primitive_polygon:4,segment:4,tradit:9,clear:8,tgsi:[0,3],determin:4,blend:[0,1,7,8],end_queri:8,destroy_blend_st:8,wrap_:9,trivial:8,onli:3,front_wind:4,point_sprit:4,should:[7,4],get:2,set_scissor_st:8,stop:8,tungsten:3,tgsi_token:5,set_fragment_sampler_textur:8,enabl:[4,8,10],draw_el:8,pipe_primitive_triangle_fan:4,anisotrop:9,set:[4,8,9],set_framebuffer_st:8,bind_blend_st:8,msaa:4,wrap_t:9,wrap_r:9,fail:10,purest:8,pattern:4,state:[1,4,7,8,9,10],"import":[3,4],awai:4,triplet:8,screen:[0,2],min_mip_filt:9,entir:[4,8],lod_bia:9,both:[8,10],last:4,region:8,"_fs_state":8,min_lod:9,context:[0,1,2,8],line_last_pixel:4,mani:9,destroy_queri:8,load:9,undocu:[7,4,9],point:[2,4],color:[4,9],anti:4,provok:4,devic:[2,6,8],three:10,been:10,get_query_result:8,treat:9,sprite:4,normalized_coord:9,sampler:[0,1,8,9],coordin:9,minifi:9,togeth:10,func:10,present:8,servic:6,properti:1,rectangular:4,behavior:7,manner:[2,6],set_edgeflag:8,destin:8,"_vs_state":8,sever:[6,4],set_blend_color:8,surface_fil:8,welcom:0,bind_fragment_sampler_st:8,receiv:10,same:8,member:[1,5,4,7,9,10],fragment:[7,4,8,10],compare_mod:9,zpass_op:10,document:[0,10],finish:8,driver:[3,6],effect:[1,4,9],refin:9,tradition:10,multisampl:4,off:[7,4],center:4,surface_copi:8,scissor:4,exampl:8,poly_stipple_en:4,thi:[7,4,9],interpol:4,set_clip_st:8,dimension:9,usual:4,identifi:2,execut:10,tcl:4,simpli:4,languag:3,expos:9,except:4,appli:9,bypass_vs_clip_and_viewport:[1,4],pipe_tex_wrap:9,vendor:2,which:[1,6],format:[2,8],agnost:6,piec:8,bia:9,magnifi:9,amp:10,bit:4,specif:[1,2,8,4],integ:2,point_siz:4,api:[1,3,6,9],either:8,page:0,mag_img_filt:9,pipe_primitive_quad_strip:4,draw_range_el:8,some:9,blend_en:7,sampl:9,flush:8,guarante:8,bore:2,ref_valu:10,overlap:8,point_smooth:4,larg:6,unit:9,refer:[10,9],core:[1,6],run:4,border_color:9,"_depth_stencil_alpha_st":8,offset_unit:4,writemask:10,actual:[4,10],gallium:[0,1,3,6,5],bind_vertex_sampler_st:8,set_vertex_buff:8,discard:10,disabl:9,"float":2,bound:[1,8,9],wrap:9,chang:4,mere:4,flatshade_first:[1,4],lod:9,support:5,transform:4,avail:8,width:4,set_polygon_stippl:8,individu:9,"function":10,back:2,set_vertex_sampler_textur:8,point_size_max:4,line:4,viewport:4,notat:9,draw_arrai:8,whether:[10,4,9],wish:4,caller:4,smooth:4,maximum:[4,9],line_stipple_pattern:4,offset_scal:4,constant:1,creat:[1,2,8],classic:8,certain:10,dure:10,repres:[2,8],implement:4,fill:[1,8],polygon:4,when:[4,8,9],detail:9,test:[4,10],draw:8,xxx:[2,10,7,4,9],texel:9,is_format_support:2,vertex:[4,8],surfac:8,blitter:8,algorithm:4,rule:4,depth:[0,1,8,10],time:1,line_width:4,texture_cr:2},titles:["Welcome to Gallium’s documentation!","CSO","Screen","TGSI","Rasterizer","Shader","Introduction","Blend","Context","Sampler","Depth, Stencil, & Alpha"],modules:{},descrefs:{},filenames:["index","cso","screen","tgsi","cso/rasterizer","cso/shader","intro","cso/blend","context","cso/sampler","cso/dsa"]}) \ No newline at end of file +Search.setIndex({desctypes:{},terms:{represent:4,all:[4,9,11],edg:2,queri:9,four:10,per:5,abil:9,follow:9,depend:[5,9],intermedi:4,sourc:9,straightforward:7,set_vertex_el:9,fan:5,level:10,list:6,emul:9,prefilt:10,small:9,dimens:10,impli:5,second:[5,11],pass:[1,11],light_twosid:5,zfail_op:11,index:0,what:[0,7,8],sprite_coord_mod:5,section:9,access:9,delet:9,rgba:[9,10],method:[0,3,9],themselv:5,inher:4,vertic:5,sinc:4,valu:[9,11],line_stipple_factor:5,search:0,vbo:9,shader:[0,1,4,5,6,9,11],permit:[5,9],chang:5,gourard:5,primit:5,modul:0,"boolean":3,visibl:5,oval:5,unit:10,encapsul:7,gl_rasterization_rul:5,from:[5,10],offset_unit:5,two:[6,9,11],call:9,get_paramf:3,type:6,desir:1,get_nam:3,raster:[0,1,5,9],pipe_primitive_quad:5,flag:5,templat:3,fill_ccw:5,point_size_min:5,poly_smooth:5,graphic:[4,7],retriev:9,setup:3,work:1,obvious:5,can:[1,3,9],control:[11,8,5,9,10],create_blend_st:9,indic:0,minimum:[5,10],alwai:[11,5,10],point_size_per_vertex:5,multipl:2,anoth:9,write:[7,11],how:[5,10],flatshad:[1,5],simpl:9,after:10,cso:[0,1,9],set_constant_buff:9,mai:[5,9],fail_op:11,pipe_stencil_op:11,principl:1,essenti:7,bind:9,element:5,inform:2,valuemask:11,order:11,rotat:5,through:[5,11],still:5,paramet:3,group:9,directli:9,bypass:5,main:5,pixel:5,non:9,"return":[1,3],thei:[1,11,5,9,10],fragment:[8,5,9,11],initi:9,get_vendor:3,line_smooth:5,cull_mod:5,introduct:[0,7],name:[3,9],token:6,each:[5,10],side:11,doxi:10,offset_ccw:5,clamp:10,chunk:5,special:9,out:[1,11,10],variabl:9,content:0,hardwar:[7,5,11],got:3,offset_cw:5,given:3,compare_func:10,begin_queri:9,"_rasterizer_st":9,reusabl:1,filter:10,turn:5,get_param:3,clump:11,first:5,oper:[9,11],rang:10,max_lod:10,render:[8,9],carri:11,independ:3,instruct:4,done:11,size:5,differ:5,stencil:[0,1,9,11],tradition:11,too:9,circl:5,scheme:9,moar:[3,5],store:11,min_img_filt:10,option:[5,10],pipe_tex_filt:10,specifi:[5,9],create_queri:9,part:[1,4,3],line_stipple_en:5,target:8,provid:[7,9],see:3,structur:11,texel:10,stippl:5,opaqu:1,result:[8,9],pre:5,fashion:7,clip:5,ani:1,"_blend_stat":9,bitfield:5,max_anisotropi:10,manner:[3,7],have:[11,5,9,10],tabl:0,need:5,"null":9,techniqu:2,unresolv:8,alias:[2,5],destroi:9,fill_cw:5,note:[1,5],take:2,set_viewport_st:9,pipe_func:11,pipelin:[5,9],shade:5,normal:10,buffer:[2,8,9,11],object:[1,7,3,9],most:[5,9],mipmap:10,alpha:[0,1,9,11],pipe_primitive_polygon:5,segment:5,tradit:10,clear:9,tgsi:[0,4],determin:5,blend:[0,1,8,9],end_queri:9,destroy_blend_st:9,wrap_:10,trivial:9,onli:4,front_wind:5,point_sprit:5,should:[8,5],get:3,set_scissor_st:9,stop:9,tungsten:4,tgsi_token:6,set_fragment_sampler_textur:9,enabl:[5,9,11],draw_el:9,pipe_primitive_triangle_fan:5,anisotrop:10,set:[5,9,10],set_framebuffer_st:9,smooth:[2,5],msaa:[2,5],wrap_t:10,wrap_r:10,fail:11,purest:9,pattern:5,state:[1,5,8,9,10,11],"import":[4,5],awai:5,triplet:9,screen:[0,3],min_mip_filt:10,entir:[5,9],lod_bia:10,both:[9,11],last:5,region:9,"_fs_state":9,min_lod:10,context:[0,1,3,9],line_last_pixel:5,mani:10,destroy_queri:9,load:10,undocu:[8,5,10],point:[3,5],color:[5,10],anti:[2,5],provok:5,devic:[3,7,9],three:11,been:11,get_query_result:9,treat:10,basic:2,sprite:5,normalized_coord:10,xxx:[3,11,8,5,10],coordin:10,minifi:10,togeth:11,func:11,present:9,multi:2,servic:7,properti:1,rectangular:5,behavior:8,glossari:[2,0],blit:9,set_edgeflag:9,destin:9,"_vs_state":9,sever:[7,5],set_blend_color:9,surface_fil:9,welcom:0,bind_fragment_sampler_st:9,perform:9,same:9,member:[1,5,6,8,10,11],handl:[1,9],compare_mod:10,zpass_op:11,document:[0,11],finish:9,driver:[4,7],effect:[1,5,10],refin:10,weird:10,multisampl:5,off:[8,5],center:5,surface_copi:9,scissor:5,exampl:9,poly_stipple_en:5,thi:[2,8,5,10],interpol:5,set_clip_st:9,dimension:10,usual:5,identifi:3,execut:11,tcl:5,simpli:5,languag:4,expos:10,except:5,sampler:[0,1,9,10],bypass_vs_clip_and_viewport:[1,5],pipe_tex_wrap:10,vendor:3,which:[1,7],format:[3,9],agnost:7,piec:9,bia:10,magnifi:10,amp:11,bit:5,specif:[1,3,9,5],integ:3,point_siz:5,api:[1,4,7,10],either:9,page:0,mag_img_filt:10,pipe_primitive_quad_strip:5,draw_range_el:9,some:10,back:3,sampl:[2,10],flush:9,guarante:9,bore:3,textur:[3,10],overlap:9,point_smooth:5,larg:7,select:10,refer:[11,10],core:[1,7],run:5,border_color:10,"_depth_stencil_alpha_st":9,appli:10,describ:4,writemask:11,actual:[5,11],gallium:[0,1,4,7,6],bind_vertex_sampler_st:9,set_vertex_buff:9,discard:11,disabl:10,"final":[8,9],"float":3,bound:[1,9,10],wrap:10,mere:5,flatshade_first:[1,5],lod:10,support:6,transform:5,avail:9,width:5,set_polygon_stippl:9,individu:10,"function":11,blend_en:8,set_vertex_sampler_textur:9,point_size_max:5,line:5,viewport:5,notat:10,draw_arrai:9,whether:[11,5,10],wish:5,caller:5,bind_blend_st:9,maximum:[5,10],line_stipple_pattern:5,offset_scal:5,constant:1,creat:[1,3,9],classic:9,certain:11,dure:11,repres:[3,9],implement:5,fill:[1,9],polygon:[2,5],when:[5,9,10],detail:10,test:[5,11],ref_valu:11,draw:9,is_format_support:3,vertex:[5,9],surfac:9,receiv:11,blitter:9,algorithm:5,rule:5,depth:[2,0,1,9,11],time:1,line_width:5,texture_cr:3},titles:["Welcome to Gallium’s documentation!","CSO","Glossary","Screen","TGSI","Rasterizer","Shader","Introduction","Blend","Context","Sampler","Depth, Stencil, & Alpha"],modules:{},descrefs:{},filenames:["index","cso","glossary","screen","tgsi","cso/rasterizer","cso/shader","intro","cso/blend","context","cso/sampler","cso/dsa"]}) \ No newline at end of file diff --git a/src/gallium/docs/source/conf.py b/src/gallium/docs/source/conf.py index 7ff4896a91..2b974b727c 100644 --- a/src/gallium/docs/source/conf.py +++ b/src/gallium/docs/source/conf.py @@ -83,6 +83,9 @@ exclude_trees = [] # 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 = [] diff --git a/src/gallium/docs/source/cso/rasterizer.rst b/src/gallium/docs/source/cso/rasterizer.rst index 0686bffa1e..afb58ea375 100644 --- a/src/gallium/docs/source/cso/rasterizer.rst +++ b/src/gallium/docs/source/cso/rasterizer.rst @@ -29,7 +29,7 @@ point_sprite point_size_per_vertex Whether vertices have a point size element. multisample - Whether MSAA is enabled. + Whether :ref:`MSAA` is enabled. line_smooth Whether lines should be smoothed. Line smoothing is simply anti-aliasing. line_stipple_enable @@ -77,10 +77,11 @@ 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. -* 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. +* ``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. diff --git a/src/gallium/docs/source/glossary.rst b/src/gallium/docs/source/glossary.rst new file mode 100644 index 0000000000..6a9110ce78 --- /dev/null +++ b/src/gallium/docs/source/glossary.rst @@ -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. diff --git a/src/gallium/docs/source/index.rst b/src/gallium/docs/source/index.rst index e1b04e6453..1800bbed47 100644 --- a/src/gallium/docs/source/index.rst +++ b/src/gallium/docs/source/index.rst @@ -16,6 +16,7 @@ Contents: screen context cso + glossary Indices and tables ================== -- cgit v1.2.3 From e8ed3b9607952bb3a8e2756f6f78ae6ccc6e7e05 Mon Sep 17 00:00:00 2001 From: Corbin Simpson Date: Mon, 21 Dec 2009 19:12:55 -0800 Subject: docs: Start mathifying TGSI insts. --- src/gallium/docs/source/conf.py | 2 +- src/gallium/docs/source/tgsi.rst | 260 +++++++++++++++++++++++++++++++++------ 2 files changed, 224 insertions(+), 38 deletions(-) (limited to 'src') diff --git a/src/gallium/docs/source/conf.py b/src/gallium/docs/source/conf.py index 2b974b727c..9b0c86babd 100644 --- a/src/gallium/docs/source/conf.py +++ b/src/gallium/docs/source/conf.py @@ -22,7 +22,7 @@ import sys, os # Add any Sphinx extension module names here, as strings. They can be extensions # coming with Sphinx (named 'sphinx.ext.*') or your custom ones. -extensions = [] +extensions = ['sphinx.ext.pngmath'] # Add any paths that contain templates here, relative to this directory. templates_path = ['_templates'] diff --git a/src/gallium/docs/source/tgsi.rst b/src/gallium/docs/source/tgsi.rst index a30729073b..1df0e98a41 100644 --- a/src/gallium/docs/source/tgsi.rst +++ b/src/gallium/docs/source/tgsi.rst @@ -6,196 +6,299 @@ for describing shaders. Since Gallium is inherently shaderful, shaders are an important part of the API. TGSI is the only intermediate representation used by all drivers. - -TGSI Instruction Specification -============================== - - -1 Instruction Set Operations -============================= - - -1.1 GL_NV_vertex_program +From GL_NV_vertex_program ------------------------- -1.1.1 ARL - Address Register Load +ARL - Address Register Load + +.. math:: dst.x = floor(src.x) + dst.y = floor(src.y) + dst.z = floor(src.z) + dst.w = floor(src.w) -1.1.2 MOV - Move +MOV - Move + +.. math:: dst.x = src.x + dst.y = src.y + dst.z = src.z + dst.w = src.w -1.1.3 LIT - Light Coefficients +LIT - Light Coefficients + +.. math:: dst.x = 1.0 + dst.y = max(src.x, 0.0) + dst.z = (src.x > 0.0) ? pow(max(src.y, 0.0), clamp(src.w, -128.0, 128.0)) : 0.0 + dst.w = 1.0 -1.1.4 RCP - Reciprocal +RCP - Reciprocal + +.. math:: dst.x = 1.0 / src.x + dst.y = 1.0 / src.x + dst.z = 1.0 / src.x + dst.w = 1.0 / src.x -1.1.5 RSQ - Reciprocal Square Root +RSQ - Reciprocal Square Root + +.. math:: dst.x = 1.0 / sqrt(abs(src.x)) + dst.y = 1.0 / sqrt(abs(src.x)) + dst.z = 1.0 / sqrt(abs(src.x)) + dst.w = 1.0 / sqrt(abs(src.x)) -1.1.6 EXP - Approximate Exponential Base 2 +EXP - Approximate Exponential Base 2 + +.. math:: dst.x = pow(2.0, floor(src.x)) + dst.y = src.x - floor(src.x) + dst.z = pow(2.0, src.x) + dst.w = 1.0 -1.1.7 LOG - Approximate Logarithm Base 2 +LOG - Approximate Logarithm Base 2 + +.. math:: dst.x = floor(lg2(abs(src.x))) + dst.y = abs(src.x) / pow(2.0, floor(lg2(abs(src.x)))) + dst.z = lg2(abs(src.x)) + dst.w = 1.0 -1.1.8 MUL - Multiply +MUL - Multiply + +.. math:: dst.x = src0.x * src1.x + dst.y = src0.y * src1.y + dst.z = src0.z * src1.z + dst.w = src0.w * src1.w -1.1.9 ADD - Add +ADD - Add + +.. math:: dst.x = src0.x + src1.x + dst.y = src0.y + src1.y + dst.z = src0.z + src1.z + dst.w = src0.w + src1.w -1.1.10 DP3 - 3-component Dot Product +DP3 - 3-component Dot Product + +.. math:: dst.x = src0.x * src1.x + src0.y * src1.y + src0.z * src1.z + dst.y = src0.x * src1.x + src0.y * src1.y + src0.z * src1.z + dst.z = src0.x * src1.x + src0.y * src1.y + src0.z * src1.z + dst.w = src0.x * src1.x + src0.y * src1.y + src0.z * src1.z -1.1.11 DP4 - 4-component Dot Product +DP4 - 4-component Dot Product + +.. math:: dst.x = src0.x * src1.x + src0.y * src1.y + src0.z * src1.z + src0.w * src1.w + dst.y = src0.x * src1.x + src0.y * src1.y + src0.z * src1.z + src0.w * src1.w + dst.z = src0.x * src1.x + src0.y * src1.y + src0.z * src1.z + src0.w * src1.w + dst.w = src0.x * src1.x + src0.y * src1.y + src0.z * src1.z + src0.w * src1.w -1.1.12 DST - Distance Vector +DST - Distance Vector + +.. math:: dst.x = 1.0 + dst.y = src0.y * src1.y + dst.z = src0.z + dst.w = src1.w -1.1.13 MIN - Minimum +MIN - Minimum + +.. math:: dst.x = min(src0.x, src1.x) + dst.y = min(src0.y, src1.y) + dst.z = min(src0.z, src1.z) + dst.w = min(src0.w, src1.w) -1.1.14 MAX - Maximum +MAX - Maximum + +.. math:: dst.x = max(src0.x, src1.x) + dst.y = max(src0.y, src1.y) + dst.z = max(src0.z, src1.z) + dst.w = max(src0.w, src1.w) -1.1.15 SLT - Set On Less Than +SLT - Set On Less Than + +.. math:: dst.x = (src0.x < src1.x) ? 1.0 : 0.0 + dst.y = (src0.y < src1.y) ? 1.0 : 0.0 + dst.z = (src0.z < src1.z) ? 1.0 : 0.0 + dst.w = (src0.w < src1.w) ? 1.0 : 0.0 -1.1.16 SGE - Set On Greater Equal Than +SGE - Set On Greater Equal Than + +.. math:: dst.x = (src0.x >= src1.x) ? 1.0 : 0.0 + dst.y = (src0.y >= src1.y) ? 1.0 : 0.0 + dst.z = (src0.z >= src1.z) ? 1.0 : 0.0 + dst.w = (src0.w >= src1.w) ? 1.0 : 0.0 -1.1.17 MAD - Multiply And Add +MAD - Multiply And Add + +.. math:: dst.x = src0.x * src1.x + src2.x + dst.y = src0.y * src1.y + src2.y + dst.z = src0.z * src1.z + src2.z + dst.w = src0.w * src1.w + src2.w -1.2.1 SUB - Subtract +SUB - Subtract + +.. math:: dst.x = src0.x - src1.x + dst.y = src0.y - src1.y + dst.z = src0.z - src1.z + dst.w = src0.w - src1.w -1.2.4 LRP - Linear Interpolate +LRP - Linear Interpolate + +.. math:: dst.x = src0.x * (src1.x - src2.x) + src2.x + dst.y = src0.y * (src1.y - src2.y) + src2.y + dst.z = src0.z * (src1.z - src2.z) + src2.z + dst.w = src0.w * (src1.w - src2.w) + src2.w -1.2.5 CND - Condition +CND - Condition + +.. math:: dst.x = (src2.x > 0.5) ? src0.x : src1.x + dst.y = (src2.y > 0.5) ? src0.y : src1.y + dst.z = (src2.z > 0.5) ? src0.z : src1.z + dst.w = (src2.w > 0.5) ? src0.w : src1.w -1.2.7 DP2A - 2-component Dot Product And Add +DP2A - 2-component Dot Product And Add + +.. math:: dst.x = src0.x * src1.x + src0.y * src1.y + src2.x + dst.y = src0.x * src1.x + src0.y * src1.y + src2.x + dst.z = src0.x * src1.x + src0.y * src1.y + src2.x + dst.w = src0.x * src1.x + src0.y * src1.y + src2.x -1.3.4 FRAC - Fraction +FRAC - Fraction + +.. math:: dst.x = src.x - floor(src.x) + dst.y = src.y - floor(src.y) + dst.z = src.z - floor(src.z) + dst.w = src.w - floor(src.w) -1.3.7 CLAMP - Clamp +CLAMP - Clamp + +.. math:: dst.x = clamp(src0.x, src1.x, src2.x) dst.y = clamp(src0.y, src1.y, src2.y) @@ -205,6 +308,8 @@ TGSI Instruction Specification 1.3.8 FLR - Floor +.. math:: + dst.x = floor(src.x) dst.y = floor(src.y) dst.z = floor(src.z) @@ -213,6 +318,8 @@ TGSI Instruction Specification 1.3.9 ROUND - Round +.. math:: + dst.x = round(src.x) dst.y = round(src.y) dst.z = round(src.z) @@ -221,6 +328,8 @@ TGSI Instruction Specification 1.3.10 EX2 - Exponential Base 2 +.. math:: + dst.x = pow(2.0, src.x) dst.y = pow(2.0, src.x) dst.z = pow(2.0, src.x) @@ -229,6 +338,8 @@ TGSI Instruction Specification 1.3.11 LG2 - Logarithm Base 2 +.. math:: + dst.x = lg2(src.x) dst.y = lg2(src.x) dst.z = lg2(src.x) @@ -237,6 +348,8 @@ TGSI Instruction Specification 1.3.12 POW - Power +.. math:: + dst.x = pow(src0.x, src1.x) dst.y = pow(src0.x, src1.x) dst.z = pow(src0.x, src1.x) @@ -244,6 +357,8 @@ TGSI Instruction Specification 1.3.15 XPD - Cross Product +.. math:: + dst.x = src0.y * src1.z - src1.y * src0.z dst.y = src0.z * src1.x - src1.z * src0.x dst.z = src0.x * src1.y - src1.x * src0.y @@ -252,6 +367,8 @@ TGSI Instruction Specification 1.4.1 ABS - Absolute +.. math:: + dst.x = abs(src.x) dst.y = abs(src.y) dst.z = abs(src.z) @@ -260,6 +377,8 @@ TGSI Instruction Specification 1.4.2 RCC - Reciprocal Clamped +.. math:: + dst.x = (1.0 / src.x) > 0.0 ? clamp(1.0 / src.x, 5.42101e-020, 1.884467e+019) : clamp(1.0 / src.x, -1.884467e+019, -5.42101e-020) dst.y = (1.0 / src.x) > 0.0 ? clamp(1.0 / src.x, 5.42101e-020, 1.884467e+019) : clamp(1.0 / src.x, -1.884467e+019, -5.42101e-020) dst.z = (1.0 / src.x) > 0.0 ? clamp(1.0 / src.x, 5.42101e-020, 1.884467e+019) : clamp(1.0 / src.x, -1.884467e+019, -5.42101e-020) @@ -268,6 +387,8 @@ TGSI Instruction Specification 1.4.3 DPH - Homogeneous Dot Product +.. math:: + dst.x = src0.x * src1.x + src0.y * src1.y + src0.z * src1.z + src1.w dst.y = src0.x * src1.x + src0.y * src1.y + src0.z * src1.z + src1.w dst.z = src0.x * src1.x + src0.y * src1.y + src0.z * src1.z + src1.w @@ -276,6 +397,8 @@ TGSI Instruction Specification 1.5.1 COS - Cosine +.. math:: + dst.x = cos(src.x) dst.y = cos(src.x) dst.z = cos(src.x) @@ -284,6 +407,8 @@ TGSI Instruction Specification 1.5.2 DDX - Derivative Relative To X +.. math:: + dst.x = partialx(src.x) dst.y = partialx(src.y) dst.z = partialx(src.z) @@ -292,6 +417,8 @@ TGSI Instruction Specification 1.5.3 DDY - Derivative Relative To Y +.. math:: + dst.x = partialy(src.x) dst.y = partialy(src.y) dst.z = partialy(src.z) @@ -300,6 +427,8 @@ TGSI Instruction Specification 1.5.7 KILP - Predicated Discard +.. math:: + discard @@ -325,16 +454,20 @@ TGSI Instruction Specification 1.5.15 RFL - Reflection Vector +.. math:: + dst.x = 2.0 * (src0.x * src1.x + src0.y * src1.y + src0.z * src1.z) / (src0.x * src0.x + src0.y * src0.y + src0.z * src0.z) * src0.x - src1.x dst.y = 2.0 * (src0.x * src1.x + src0.y * src1.y + src0.z * src1.z) / (src0.x * src0.x + src0.y * src0.y + src0.z * src0.z) * src0.y - src1.y dst.z = 2.0 * (src0.x * src1.x + src0.y * src1.y + src0.z * src1.z) / (src0.x * src0.x + src0.y * src0.y + src0.z * src0.z) * src0.z - src1.z dst.w = 1.0 - Considered for removal. +Considered for removal. 1.5.16 SEQ - Set On Equal +.. math:: + dst.x = (src0.x == src1.x) ? 1.0 : 0.0 dst.y = (src0.y == src1.y) ? 1.0 : 0.0 dst.z = (src0.z == src1.z) ? 1.0 : 0.0 @@ -343,15 +476,19 @@ TGSI Instruction Specification 1.5.17 SFL - Set On False +.. math:: + dst.x = 0.0 dst.y = 0.0 dst.z = 0.0 dst.w = 0.0 - Considered for removal. +Considered for removal. 1.5.18 SGT - Set On Greater Than +.. math:: + dst.x = (src0.x > src1.x) ? 1.0 : 0.0 dst.y = (src0.y > src1.y) ? 1.0 : 0.0 dst.z = (src0.z > src1.z) ? 1.0 : 0.0 @@ -360,6 +497,8 @@ TGSI Instruction Specification 1.5.19 SIN - Sine +.. math:: + dst.x = sin(src.x) dst.y = sin(src.x) dst.z = sin(src.x) @@ -368,6 +507,8 @@ TGSI Instruction Specification 1.5.20 SLE - Set On Less Equal Than +.. math:: + dst.x = (src0.x <= src1.x) ? 1.0 : 0.0 dst.y = (src0.y <= src1.y) ? 1.0 : 0.0 dst.z = (src0.z <= src1.z) ? 1.0 : 0.0 @@ -376,6 +517,8 @@ TGSI Instruction Specification 1.5.21 SNE - Set On Not Equal +.. math:: + dst.x = (src0.x != src1.x) ? 1.0 : 0.0 dst.y = (src0.y != src1.y) ? 1.0 : 0.0 dst.z = (src0.z != src1.z) ? 1.0 : 0.0 @@ -384,6 +527,8 @@ TGSI Instruction Specification 1.5.22 STR - Set On True +.. math:: + dst.x = 1.0 dst.y = 1.0 dst.z = 1.0 @@ -431,12 +576,14 @@ TGSI Instruction Specification 1.5.30 X2D - 2D Coordinate Transformation +.. math:: + dst.x = src0.x + src1.x * src2.x + src1.y * src2.y dst.y = src0.y + src1.x * src2.z + src1.y * src2.w dst.z = src0.x + src1.x * src2.x + src1.y * src2.y dst.w = src0.y + src1.x * src2.z + src1.y * src2.w - Considered for removal. +Considered for removal. 1.6 GL_NV_vertex_program2 @@ -451,6 +598,8 @@ TGSI Instruction Specification 1.6.2 ARR - Address Register Load With Round +.. math:: + dst.x = round(src.x) dst.y = round(src.y) dst.z = round(src.z) @@ -478,6 +627,8 @@ TGSI Instruction Specification 1.6.6 SSG - Set Sign +.. math:: + dst.x = (src.x > 0.0) ? 1.0 : (src.x < 0.0) ? -1.0 : 0.0 dst.y = (src.y > 0.0) ? 1.0 : (src.y < 0.0) ? -1.0 : 0.0 dst.z = (src.z > 0.0) ? 1.0 : (src.z < 0.0) ? -1.0 : 0.0 @@ -486,6 +637,8 @@ TGSI Instruction Specification 1.8.1 CMP - Compare +.. math:: + dst.x = (src0.x < 0.0) ? src1.x : src2.x dst.y = (src0.y < 0.0) ? src1.y : src2.y dst.z = (src0.z < 0.0) ? src1.z : src2.z @@ -494,6 +647,8 @@ TGSI Instruction Specification 1.8.2 KIL - Conditional Discard +.. math:: + if (src.x < 0.0 || src.y < 0.0 || src.z < 0.0 || src.w < 0.0) discard endif @@ -501,6 +656,8 @@ TGSI Instruction Specification 1.8.3 SCS - Sine Cosine +.. math:: + dst.x = cos(src.x) dst.y = sin(src.x) dst.z = 0.0 @@ -514,6 +671,8 @@ TGSI Instruction Specification 1.9.1 NRM - 3-component Vector Normalise +.. math:: + dst.x = src.x / (src.x * src.x + src.y * src.y + src.z * src.z) dst.y = src.y / (src.x * src.x + src.y * src.y + src.z * src.z) dst.z = src.z / (src.x * src.x + src.y * src.y + src.z * src.z) @@ -522,6 +681,8 @@ TGSI Instruction Specification 1.9.2 DIV - Divide +.. math:: + dst.x = src0.x / src1.x dst.y = src0.y / src1.y dst.z = src0.z / src1.z @@ -530,6 +691,8 @@ TGSI Instruction Specification 1.9.3 DP2 - 2-component Dot Product +.. math:: + dst.x = src0.x * src1.x + src0.y * src1.y dst.y = src0.x * src1.x + src0.y * src1.y dst.z = src0.x * src1.x + src0.y * src1.y @@ -626,6 +789,8 @@ Support for these opcodes indicated by a special pipe capability bit (TBD). 1.11.1 CEIL - Ceiling +.. math:: + dst.x = ceil(src.x) dst.y = ceil(src.y) dst.z = ceil(src.z) @@ -634,6 +799,8 @@ Support for these opcodes indicated by a special pipe capability bit (TBD). 1.11.2 I2F - Integer To Float +.. math:: + dst.x = (float) src.x dst.y = (float) src.y dst.z = (float) src.z @@ -642,6 +809,8 @@ Support for these opcodes indicated by a special pipe capability bit (TBD). 1.11.3 NOT - Bitwise Not +.. math:: + dst.x = ~src.x dst.y = ~src.y dst.z = ~src.z @@ -650,6 +819,8 @@ Support for these opcodes indicated by a special pipe capability bit (TBD). 1.11.4 TRUNC - Truncate +.. math:: + dst.x = trunc(src.x) dst.y = trunc(src.y) dst.z = trunc(src.z) @@ -658,6 +829,8 @@ Support for these opcodes indicated by a special pipe capability bit (TBD). 1.11.5 SHL - Shift Left +.. math:: + dst.x = src0.x << src1.x dst.y = src0.y << src1.x dst.z = src0.z << src1.x @@ -666,6 +839,8 @@ Support for these opcodes indicated by a special pipe capability bit (TBD). 1.11.6 SHR - Shift Right +.. math:: + dst.x = src0.x >> src1.x dst.y = src0.y >> src1.x dst.z = src0.z >> src1.x @@ -674,6 +849,8 @@ Support for these opcodes indicated by a special pipe capability bit (TBD). 1.11.7 AND - Bitwise And +.. math:: + dst.x = src0.x & src1.x dst.y = src0.y & src1.y dst.z = src0.z & src1.z @@ -682,6 +859,8 @@ Support for these opcodes indicated by a special pipe capability bit (TBD). 1.11.8 OR - Bitwise Or +.. math:: + dst.x = src0.x | src1.x dst.y = src0.y | src1.y dst.z = src0.z | src1.z @@ -690,6 +869,8 @@ Support for these opcodes indicated by a special pipe capability bit (TBD). 1.11.9 MOD - Modulus +.. math:: + dst.x = src0.x % src1.x dst.y = src0.y % src1.y dst.z = src0.z % src1.z @@ -698,6 +879,8 @@ Support for these opcodes indicated by a special pipe capability bit (TBD). 1.11.10 XOR - Bitwise Xor +.. math:: + dst.x = src0.x ^ src1.x dst.y = src0.y ^ src1.y dst.z = src0.z ^ src1.z @@ -706,6 +889,8 @@ Support for these opcodes indicated by a special pipe capability bit (TBD). 1.11.11 SAD - Sum Of Absolute Differences +.. math:: + dst.x = abs(src0.x - src1.x) + src2.x dst.y = abs(src0.y - src1.y) + src2.y dst.z = abs(src0.z - src1.z) + src2.z @@ -774,6 +959,8 @@ Support for these opcodes indicated by a special pipe capability bit (TBD). 1.16.7 NRM4 - 4-component Vector Normalise +.. math:: + dst.x = src.x / (src.x * src.x + src.y * src.y + src.z * src.z + src.w * src.w) dst.y = src.y / (src.x * src.x + src.y * src.y + src.z * src.z + src.w * src.w) dst.z = src.z / (src.x * src.x + src.y * src.y + src.z * src.z + src.w * src.w) @@ -808,7 +995,6 @@ Support for these opcodes indicated by a special pipe capability bit (TBD). abs(x) Absolute value of x. - '|x|' (x < 0.0) ? -x : x ceil(x) Ceiling of x. -- cgit v1.2.3 From d92a685bc34b22c3514867c39b64e0c724dbeced Mon Sep 17 00:00:00 2001 From: Corbin Simpson Date: Mon, 21 Dec 2009 19:30:29 -0800 Subject: docs: Clean floor, sine, cosine. --- src/gallium/docs/source/tgsi.rst | 80 ++++++++++++++++++++++------------------ 1 file changed, 45 insertions(+), 35 deletions(-) (limited to 'src') diff --git a/src/gallium/docs/source/tgsi.rst b/src/gallium/docs/source/tgsi.rst index 1df0e98a41..4fd9247c49 100644 --- a/src/gallium/docs/source/tgsi.rst +++ b/src/gallium/docs/source/tgsi.rst @@ -14,13 +14,13 @@ ARL - Address Register Load .. math:: - dst.x = floor(src.x) + dst.x = \lfloor src.x\rfloor - dst.y = floor(src.y) + dst.y = \lfloor src.y\rfloor - dst.z = floor(src.z) + dst.z = \lfloor src.z\rfloor - dst.w = floor(src.w) + dst.w = \lfloor src.w\rfloor MOV - Move @@ -79,9 +79,9 @@ EXP - Approximate Exponential Base 2 .. math:: - dst.x = pow(2.0, floor(src.x)) + dst.x = pow(2.0, \lfloor src.x\rfloor) - dst.y = src.x - floor(src.x) + dst.y = src.x - \lfloor src.x\rfloor dst.z = pow(2.0, src.x) @@ -92,9 +92,9 @@ LOG - Approximate Logarithm Base 2 .. math:: - dst.x = floor(lg2(abs(src.x))) + dst.x = \lfloor lg2(abs(src.x)))\rfloor - dst.y = abs(src.x) / pow(2.0, floor(lg2(abs(src.x)))) + dst.y = abs(src.x) / pow(2.0, \lfloor lg2(abs(src.x))\rfloor ) dst.z = lg2(abs(src.x)) @@ -287,13 +287,13 @@ FRAC - Fraction .. math:: - dst.x = src.x - floor(src.x) + dst.x = src.x - \lfloor src.x\rfloor - dst.y = src.y - floor(src.y) + dst.y = src.y - \lfloor src.y\rfloor - dst.z = src.z - floor(src.z) + dst.z = src.z - \lfloor src.z\rfloor - dst.w = src.w - floor(src.w) + dst.w = src.w - \lfloor src.w\rfloor CLAMP - Clamp @@ -306,14 +306,19 @@ CLAMP - Clamp dst.w = clamp(src0.w, src1.w, src2.w) -1.3.8 FLR - Floor +FLR - Floor + +This is identical to ARL. .. math:: - dst.x = floor(src.x) - dst.y = floor(src.y) - dst.z = floor(src.z) - dst.w = floor(src.w) + dst.x = \lfloor src.x\rfloor + + dst.y = \lfloor src.y\rfloor + + dst.z = \lfloor src.z\rfloor + + dst.w = \lfloor src.w\rfloor 1.3.9 ROUND - Round @@ -395,14 +400,17 @@ CLAMP - Clamp dst.w = src0.x * src1.x + src0.y * src1.y + src0.z * src1.z + src1.w -1.5.1 COS - Cosine +COS - Cosine .. math:: - dst.x = cos(src.x) - dst.y = cos(src.x) - dst.z = cos(src.x) - dst.w = cos(src.w) + dst.x = \cos{src.x} + + dst.y = \cos{src.x} + + dst.z = \cos{src.x} + + dst.w = \cos{src.w} 1.5.2 DDX - Derivative Relative To X @@ -495,14 +503,17 @@ Considered for removal. dst.w = (src0.w > src1.w) ? 1.0 : 0.0 -1.5.19 SIN - Sine +SIN - Sine .. math:: - dst.x = sin(src.x) - dst.y = sin(src.x) - dst.z = sin(src.x) - dst.w = sin(src.w) + dst.x = \sin{src.x} + + dst.y = \sin{src.x} + + dst.z = \sin{src.x} + + dst.w = \sin{src.w} 1.5.20 SLE - Set On Less Equal Than @@ -654,13 +665,16 @@ Considered for removal. endif -1.8.3 SCS - Sine Cosine +SCS - Sine Cosine .. math:: - dst.x = cos(src.x) - dst.y = sin(src.x) + dst.x = \cos{src.x} + + dst.y = \sin{src.x} + dst.z = 0.0 + dst.y = 1.0 @@ -1002,9 +1016,7 @@ Support for these opcodes indicated by a special pipe capability bit (TBD). clamp(x,y,z) Clamp x between y and z. (x < y) ? y : (x > z) ? z : x - cos(x) Cosine of x. - - floor(x) Floor of x. + :math:`\lfloor x\rfloor` Floor of x. lg2(x) Logarithm base 2 of x. @@ -1026,8 +1038,6 @@ Support for these opcodes indicated by a special pipe capability bit (TBD). round(x) Round x. - sin(x) Sine of x. - sqrt(x) Square root of x. trunc(x) Truncate x. -- cgit v1.2.3 From dd801e5c027a832d275e4da665381ce53016ed03 Mon Sep 17 00:00:00 2001 From: Corbin Simpson Date: Mon, 21 Dec 2009 19:41:09 -0800 Subject: docs: Pow, sqrt. --- src/gallium/docs/source/tgsi.rst | 48 ++++++++++++++++++++++------------------ 1 file changed, 26 insertions(+), 22 deletions(-) (limited to 'src') diff --git a/src/gallium/docs/source/tgsi.rst b/src/gallium/docs/source/tgsi.rst index 4fd9247c49..c62ad6541b 100644 --- a/src/gallium/docs/source/tgsi.rst +++ b/src/gallium/docs/source/tgsi.rst @@ -44,7 +44,7 @@ LIT - Light Coefficients dst.y = max(src.x, 0.0) - dst.z = (src.x > 0.0) ? pow(max(src.y, 0.0), clamp(src.w, -128.0, 128.0)) : 0.0 + dst.z = (src.x > 0.0) ? max(src.y, 0.0)^{clamp(src.w, -128.0, 128.0))} : 0.0 dst.w = 1.0 @@ -66,24 +66,24 @@ RSQ - Reciprocal Square Root .. math:: - dst.x = 1.0 / sqrt(abs(src.x)) + dst.x = 1.0 / \sqrt{abs(src.x)} - dst.y = 1.0 / sqrt(abs(src.x)) + dst.y = 1.0 / \sqrt{abs(src.x)} - dst.z = 1.0 / sqrt(abs(src.x)) + dst.z = 1.0 / \sqrt{abs(src.x)} - dst.w = 1.0 / sqrt(abs(src.x)) + dst.w = 1.0 / \sqrt{abs(src.x)} EXP - Approximate Exponential Base 2 .. math:: - dst.x = pow(2.0, \lfloor src.x\rfloor) + dst.x = 2^{\lfloor src.x\rfloor} dst.y = src.x - \lfloor src.x\rfloor - dst.z = pow(2.0, src.x) + dst.z = 2^{src.x} dst.w = 1.0 @@ -94,7 +94,7 @@ LOG - Approximate Logarithm Base 2 dst.x = \lfloor lg2(abs(src.x)))\rfloor - dst.y = abs(src.x) / pow(2.0, \lfloor lg2(abs(src.x))\rfloor ) + dst.y = abs(src.x) / 2^{\lfloor lg2(abs(src.x))\rfloor} dst.z = lg2(abs(src.x)) @@ -331,14 +331,17 @@ This is identical to ARL. dst.w = round(src.w) -1.3.10 EX2 - Exponential Base 2 +EX2 - Exponential Base 2 .. math:: - dst.x = pow(2.0, src.x) - dst.y = pow(2.0, src.x) - dst.z = pow(2.0, src.x) - dst.w = pow(2.0, src.x) + dst.x = 2^{src.x} + + dst.y = 2^{src.x} + + dst.z = 2^{src.x} + + dst.w = 2^{src.x} 1.3.11 LG2 - Logarithm Base 2 @@ -351,14 +354,17 @@ This is identical to ARL. dst.w = lg2(src.x) -1.3.12 POW - Power +POW - Power .. math:: - dst.x = pow(src0.x, src1.x) - dst.y = pow(src0.x, src1.x) - dst.z = pow(src0.x, src1.x) - dst.w = pow(src0.x, src1.x) + dst.x = src0.x^{src1.x} + + dst.y = src0.x^{src1.x} + + dst.z = src0.x^{src1.x} + + dst.w = src0.x^{src1.x} 1.3.15 XPD - Cross Product @@ -1016,7 +1022,7 @@ Support for these opcodes indicated by a special pipe capability bit (TBD). clamp(x,y,z) Clamp x between y and z. (x < y) ? y : (x > z) ? z : x - :math:`\lfloor x\rfloor` Floor of x. + :math:`\lfloor x\rfloor` Floor of `x`. lg2(x) Logarithm base 2 of x. @@ -1032,14 +1038,12 @@ Support for these opcodes indicated by a special pipe capability bit (TBD). pop() Pop from stack. - pow(x,y) Raise x to power of y. + :math:`x^y` `x` to the power `y`. push(x) Push x on stack. round(x) Round x. - sqrt(x) Square root of x. - trunc(x) Truncate x. -- cgit v1.2.3 From 14743ac0e32e928f0027f8b8bee2878e1ee59a3d Mon Sep 17 00:00:00 2001 From: Corbin Simpson Date: Mon, 21 Dec 2009 19:57:56 -0800 Subject: docs: abs, lg2, ceil. --- src/gallium/docs/source/tgsi.rst | 83 +++++++++++++++++++++++----------------- 1 file changed, 47 insertions(+), 36 deletions(-) (limited to 'src') diff --git a/src/gallium/docs/source/tgsi.rst b/src/gallium/docs/source/tgsi.rst index c62ad6541b..f49725295c 100644 --- a/src/gallium/docs/source/tgsi.rst +++ b/src/gallium/docs/source/tgsi.rst @@ -53,26 +53,26 @@ RCP - Reciprocal .. math:: - dst.x = 1.0 / src.x + dst.x = \frac{1}{src.x} - dst.y = 1.0 / src.x + dst.y = \frac{1}{src.x} - dst.z = 1.0 / src.x + dst.z = \frac{1}{src.x} - dst.w = 1.0 / src.x + dst.w = \frac{1}{src.x} RSQ - Reciprocal Square Root .. math:: - dst.x = 1.0 / \sqrt{abs(src.x)} + dst.x = \frac{1}{\sqrt{|src.x|}} - dst.y = 1.0 / \sqrt{abs(src.x)} + dst.y = \frac{1}{\sqrt{|src.x|}} - dst.z = 1.0 / \sqrt{abs(src.x)} + dst.z = \frac{1}{\sqrt{|src.x|}} - dst.w = 1.0 / \sqrt{abs(src.x)} + dst.w = \frac{1}{\sqrt{|src.x|}} EXP - Approximate Exponential Base 2 @@ -92,13 +92,13 @@ LOG - Approximate Logarithm Base 2 .. math:: - dst.x = \lfloor lg2(abs(src.x)))\rfloor + dst.x = \lfloor\log_2{|src.x|}\rfloor - dst.y = abs(src.x) / 2^{\lfloor lg2(abs(src.x))\rfloor} + dst.y = \frac{|src.x|}{2^{\lfloor\log_2{|src.x|}\rfloor}} - dst.z = lg2(abs(src.x)) + dst.z = \log_2{|src.x|} - dst.w = 1.0 + dst.w = 1 MUL - Multiply @@ -344,14 +344,17 @@ EX2 - Exponential Base 2 dst.w = 2^{src.x} -1.3.11 LG2 - Logarithm Base 2 +LG2 - Logarithm Base 2 .. math:: - dst.x = lg2(src.x) - dst.y = lg2(src.x) - dst.z = lg2(src.x) - dst.w = lg2(src.x) + dst.x = \log_2{src.x} + + dst.y = \log_2{src.x} + + dst.z = \log_2{src.x} + + dst.w = \log_2{src.x} POW - Power @@ -376,14 +379,17 @@ POW - Power dst.w = 1.0 -1.4.1 ABS - Absolute +ABS - Absolute .. math:: - dst.x = abs(src.x) - dst.y = abs(src.y) - dst.z = abs(src.z) - dst.w = abs(src.w) + dst.x = |src.x| + + dst.y = |src.y| + + dst.z = |src.z| + + dst.w = |src.w| 1.4.2 RCC - Reciprocal Clamped @@ -807,14 +813,17 @@ SCS - Sine Cosine Support for these opcodes indicated by a special pipe capability bit (TBD). -1.11.1 CEIL - Ceiling +CEIL - Ceiling .. math:: - dst.x = ceil(src.x) - dst.y = ceil(src.y) - dst.z = ceil(src.z) - dst.w = ceil(src.w) + dst.x = \lceil src.x\rceil + + dst.y = \lceil src.y\rceil + + dst.z = \lceil src.z\rceil + + dst.w = \lceil src.w\rceil 1.11.2 I2F - Integer To Float @@ -907,14 +916,17 @@ Support for these opcodes indicated by a special pipe capability bit (TBD). dst.w = src0.w ^ src1.w -1.11.11 SAD - Sum Of Absolute Differences +SAD - Sum Of Absolute Differences .. math:: - dst.x = abs(src0.x - src1.x) + src2.x - dst.y = abs(src0.y - src1.y) + src2.y - dst.z = abs(src0.z - src1.z) + src2.z - dst.w = abs(src0.w - src1.w) + src2.w + dst.x = |src0.x - src1.x| + src2.x + + dst.y = |src0.y - src1.y| + src2.y + + dst.z = |src0.z - src1.z| + src2.z + + dst.w = |src0.w - src1.w| + src2.w 1.11.12 TXF - Texel Fetch @@ -1014,17 +1026,16 @@ Support for these opcodes indicated by a special pipe capability bit (TBD). -------------- - abs(x) Absolute value of x. - (x < 0.0) ? -x : x + :math:`|x|` Absolute value of `x`. - ceil(x) Ceiling of x. + :math:`\lceil x \rceil` Ceiling of `x`. clamp(x,y,z) Clamp x between y and z. (x < y) ? y : (x > z) ? z : x :math:`\lfloor x\rfloor` Floor of `x`. - lg2(x) Logarithm base 2 of x. + :math:`\log_2{x}` Logarithm of `x`, base 2. max(x,y) Maximum of x and y. (x > y) ? x : y -- cgit v1.2.3 From ecb2f2a230e3c0f16b4bf2197928152d05f805c0 Mon Sep 17 00:00:00 2001 From: Corbin Simpson Date: Mon, 21 Dec 2009 20:07:10 -0800 Subject: docs: \times. Yay for sed. --- src/gallium/docs/source/tgsi.rst | 102 +++++++++++++++++++-------------------- 1 file changed, 51 insertions(+), 51 deletions(-) (limited to 'src') diff --git a/src/gallium/docs/source/tgsi.rst b/src/gallium/docs/source/tgsi.rst index f49725295c..69c29e77d1 100644 --- a/src/gallium/docs/source/tgsi.rst +++ b/src/gallium/docs/source/tgsi.rst @@ -105,13 +105,13 @@ MUL - Multiply .. math:: - dst.x = src0.x * src1.x + dst.x = src0.x \times src1.x - dst.y = src0.y * src1.y + dst.y = src0.y \times src1.y - dst.z = src0.z * src1.z + dst.z = src0.z \times src1.z - dst.w = src0.w * src1.w + dst.w = src0.w \times src1.w ADD - Add @@ -131,26 +131,26 @@ DP3 - 3-component Dot Product .. math:: - dst.x = src0.x * src1.x + src0.y * src1.y + src0.z * src1.z + dst.x = src0.x \times src1.x + src0.y \times src1.y + src0.z \times src1.z - dst.y = src0.x * src1.x + src0.y * src1.y + src0.z * src1.z + dst.y = src0.x \times src1.x + src0.y \times src1.y + src0.z \times src1.z - dst.z = src0.x * src1.x + src0.y * src1.y + src0.z * src1.z + dst.z = src0.x \times src1.x + src0.y \times src1.y + src0.z \times src1.z - dst.w = src0.x * src1.x + src0.y * src1.y + src0.z * src1.z + dst.w = src0.x \times src1.x + src0.y \times src1.y + src0.z \times src1.z DP4 - 4-component Dot Product .. math:: - dst.x = src0.x * src1.x + src0.y * src1.y + src0.z * src1.z + src0.w * src1.w + dst.x = src0.x \times src1.x + src0.y \times src1.y + src0.z \times src1.z + src0.w \times src1.w - dst.y = src0.x * src1.x + src0.y * src1.y + src0.z * src1.z + src0.w * src1.w + dst.y = src0.x \times src1.x + src0.y \times src1.y + src0.z \times src1.z + src0.w \times src1.w - dst.z = src0.x * src1.x + src0.y * src1.y + src0.z * src1.z + src0.w * src1.w + dst.z = src0.x \times src1.x + src0.y \times src1.y + src0.z \times src1.z + src0.w \times src1.w - dst.w = src0.x * src1.x + src0.y * src1.y + src0.z * src1.z + src0.w * src1.w + dst.w = src0.x \times src1.x + src0.y \times src1.y + src0.z \times src1.z + src0.w \times src1.w DST - Distance Vector @@ -159,7 +159,7 @@ DST - Distance Vector dst.x = 1.0 - dst.y = src0.y * src1.y + dst.y = src0.y \times src1.y dst.z = src0.z @@ -222,13 +222,13 @@ MAD - Multiply And Add .. math:: - dst.x = src0.x * src1.x + src2.x + dst.x = src0.x \times src1.x + src2.x - dst.y = src0.y * src1.y + src2.y + dst.y = src0.y \times src1.y + src2.y - dst.z = src0.z * src1.z + src2.z + dst.z = src0.z \times src1.z + src2.z - dst.w = src0.w * src1.w + src2.w + dst.w = src0.w \times src1.w + src2.w SUB - Subtract @@ -248,13 +248,13 @@ LRP - Linear Interpolate .. math:: - dst.x = src0.x * (src1.x - src2.x) + src2.x + dst.x = src0.x \times (src1.x - src2.x) + src2.x - dst.y = src0.y * (src1.y - src2.y) + src2.y + dst.y = src0.y \times (src1.y - src2.y) + src2.y - dst.z = src0.z * (src1.z - src2.z) + src2.z + dst.z = src0.z \times (src1.z - src2.z) + src2.z - dst.w = src0.w * (src1.w - src2.w) + src2.w + dst.w = src0.w \times (src1.w - src2.w) + src2.w CND - Condition @@ -274,13 +274,13 @@ DP2A - 2-component Dot Product And Add .. math:: - dst.x = src0.x * src1.x + src0.y * src1.y + src2.x + dst.x = src0.x \times src1.x + src0.y \times src1.y + src2.x - dst.y = src0.x * src1.x + src0.y * src1.y + src2.x + dst.y = src0.x \times src1.x + src0.y \times src1.y + src2.x - dst.z = src0.x * src1.x + src0.y * src1.y + src2.x + dst.z = src0.x \times src1.x + src0.y \times src1.y + src2.x - dst.w = src0.x * src1.x + src0.y * src1.y + src2.x + dst.w = src0.x \times src1.x + src0.y \times src1.y + src2.x FRAC - Fraction @@ -373,9 +373,9 @@ POW - Power .. math:: - dst.x = src0.y * src1.z - src1.y * src0.z - dst.y = src0.z * src1.x - src1.z * src0.x - dst.z = src0.x * src1.y - src1.x * src0.y + dst.x = src0.y \times src1.z - src1.y \times src0.z + dst.y = src0.z \times src1.x - src1.z \times src0.x + dst.z = src0.x \times src1.y - src1.x \times src0.y dst.w = 1.0 @@ -406,10 +406,10 @@ ABS - Absolute .. math:: - dst.x = src0.x * src1.x + src0.y * src1.y + src0.z * src1.z + src1.w - dst.y = src0.x * src1.x + src0.y * src1.y + src0.z * src1.z + src1.w - dst.z = src0.x * src1.x + src0.y * src1.y + src0.z * src1.z + src1.w - dst.w = src0.x * src1.x + src0.y * src1.y + src0.z * src1.z + src1.w + dst.x = src0.x \times src1.x + src0.y \times src1.y + src0.z \times src1.z + src1.w + dst.y = src0.x \times src1.x + src0.y \times src1.y + src0.z \times src1.z + src1.w + dst.z = src0.x \times src1.x + src0.y \times src1.y + src0.z \times src1.z + src1.w + dst.w = src0.x \times src1.x + src0.y \times src1.y + src0.z \times src1.z + src1.w COS - Cosine @@ -476,9 +476,9 @@ COS - Cosine .. math:: - dst.x = 2.0 * (src0.x * src1.x + src0.y * src1.y + src0.z * src1.z) / (src0.x * src0.x + src0.y * src0.y + src0.z * src0.z) * src0.x - src1.x - dst.y = 2.0 * (src0.x * src1.x + src0.y * src1.y + src0.z * src1.z) / (src0.x * src0.x + src0.y * src0.y + src0.z * src0.z) * src0.y - src1.y - dst.z = 2.0 * (src0.x * src1.x + src0.y * src1.y + src0.z * src1.z) / (src0.x * src0.x + src0.y * src0.y + src0.z * src0.z) * src0.z - src1.z + dst.x = 2.0 \times (src0.x \times src1.x + src0.y \times src1.y + src0.z \times src1.z) / (src0.x \times src0.x + src0.y \times src0.y + src0.z \times src0.z) \times src0.x - src1.x + dst.y = 2.0 \times (src0.x \times src1.x + src0.y \times src1.y + src0.z \times src1.z) / (src0.x \times src0.x + src0.y \times src0.y + src0.z \times src0.z) \times src0.y - src1.y + dst.z = 2.0 \times (src0.x \times src1.x + src0.y \times src1.y + src0.z \times src1.z) / (src0.x \times src0.x + src0.y \times src0.y + src0.z \times src0.z) \times src0.z - src1.z dst.w = 1.0 Considered for removal. @@ -601,10 +601,10 @@ SIN - Sine .. math:: - dst.x = src0.x + src1.x * src2.x + src1.y * src2.y - dst.y = src0.y + src1.x * src2.z + src1.y * src2.w - dst.z = src0.x + src1.x * src2.x + src1.y * src2.y - dst.w = src0.y + src1.x * src2.z + src1.y * src2.w + dst.x = src0.x + src1.x \times src2.x + src1.y \times src2.y + dst.y = src0.y + src1.x \times src2.z + src1.y \times src2.w + dst.z = src0.x + src1.x \times src2.x + src1.y \times src2.y + dst.w = src0.y + src1.x \times src2.z + src1.y \times src2.w Considered for removal. @@ -646,7 +646,7 @@ Considered for removal. pc = pop() Potential restrictions: - * Only occurs at end of function. + \times Only occurs at end of function. 1.6.6 SSG - Set Sign @@ -699,9 +699,9 @@ SCS - Sine Cosine .. math:: - dst.x = src.x / (src.x * src.x + src.y * src.y + src.z * src.z) - dst.y = src.y / (src.x * src.x + src.y * src.y + src.z * src.z) - dst.z = src.z / (src.x * src.x + src.y * src.y + src.z * src.z) + dst.x = src.x / (src.x \times src.x + src.y \times src.y + src.z \times src.z) + dst.y = src.y / (src.x \times src.x + src.y \times src.y + src.z \times src.z) + dst.z = src.z / (src.x \times src.x + src.y \times src.y + src.z \times src.z) dst.w = 1.0 @@ -719,10 +719,10 @@ SCS - Sine Cosine .. math:: - dst.x = src0.x * src1.x + src0.y * src1.y - dst.y = src0.x * src1.x + src0.y * src1.y - dst.z = src0.x * src1.x + src0.y * src1.y - dst.w = src0.x * src1.x + src0.y * src1.y + dst.x = src0.x \times src1.x + src0.y \times src1.y + dst.y = src0.x \times src1.x + src0.y \times src1.y + dst.z = src0.x \times src1.x + src0.y \times src1.y + dst.w = src0.x \times src1.x + src0.y \times src1.y 1.9.5 TXL - Texture Lookup With LOD @@ -993,10 +993,10 @@ SAD - Sum Of Absolute Differences .. math:: - dst.x = src.x / (src.x * src.x + src.y * src.y + src.z * src.z + src.w * src.w) - dst.y = src.y / (src.x * src.x + src.y * src.y + src.z * src.z + src.w * src.w) - dst.z = src.z / (src.x * src.x + src.y * src.y + src.z * src.z + src.w * src.w) - dst.w = src.w / (src.x * src.x + src.y * src.y + src.z * src.z + src.w * src.w) + dst.x = src.x / (src.x \times src.x + src.y \times src.y + src.z \times src.z + src.w \times src.w) + dst.y = src.y / (src.x \times src.x + src.y \times src.y + src.z \times src.z + src.w \times src.w) + dst.z = src.z / (src.x \times src.x + src.y \times src.y + src.z \times src.z + src.w \times src.w) + dst.w = src.w / (src.x \times src.x + src.y \times src.y + src.z \times src.z + src.w \times src.w) 1.17 ps_2_x -- cgit v1.2.3 From da65ac6bba9353aebf9bbd8eeb8bc4c23fc8534a Mon Sep 17 00:00:00 2001 From: Corbin Simpson Date: Mon, 21 Dec 2009 20:32:46 -0800 Subject: docs: Moar cleanup. Good enough for now! --- src/gallium/docs/source/tgsi.rst | 389 +++++++++++++++++++++++---------------- 1 file changed, 231 insertions(+), 158 deletions(-) (limited to 'src') diff --git a/src/gallium/docs/source/tgsi.rst b/src/gallium/docs/source/tgsi.rst index 69c29e77d1..de27d8a005 100644 --- a/src/gallium/docs/source/tgsi.rst +++ b/src/gallium/docs/source/tgsi.rst @@ -40,13 +40,13 @@ LIT - Light Coefficients .. math:: - dst.x = 1.0 + dst.x = 1 - dst.y = max(src.x, 0.0) + dst.y = max(src.x, 0) - dst.z = (src.x > 0.0) ? max(src.y, 0.0)^{clamp(src.w, -128.0, 128.0))} : 0.0 + dst.z = (src.x > 0) ? max(src.y, 0)^{clamp(src.w, -128, 128))} : 0 - dst.w = 1.0 + dst.w = 1 RCP - Reciprocal @@ -85,7 +85,7 @@ EXP - Approximate Exponential Base 2 dst.z = 2^{src.x} - dst.w = 1.0 + dst.w = 1 LOG - Approximate Logarithm Base 2 @@ -157,7 +157,7 @@ DST - Distance Vector .. math:: - dst.x = 1.0 + dst.x = 1 dst.y = src0.y \times src1.y @@ -196,26 +196,26 @@ SLT - Set On Less Than .. math:: - dst.x = (src0.x < src1.x) ? 1.0 : 0.0 + dst.x = (src0.x < src1.x) ? 1 : 0 - dst.y = (src0.y < src1.y) ? 1.0 : 0.0 + dst.y = (src0.y < src1.y) ? 1 : 0 - dst.z = (src0.z < src1.z) ? 1.0 : 0.0 + dst.z = (src0.z < src1.z) ? 1 : 0 - dst.w = (src0.w < src1.w) ? 1.0 : 0.0 + dst.w = (src0.w < src1.w) ? 1 : 0 SGE - Set On Greater Equal Than .. math:: - dst.x = (src0.x >= src1.x) ? 1.0 : 0.0 + dst.x = (src0.x >= src1.x) ? 1 : 0 - dst.y = (src0.y >= src1.y) ? 1.0 : 0.0 + dst.y = (src0.y >= src1.y) ? 1 : 0 - dst.z = (src0.z >= src1.z) ? 1.0 : 0.0 + dst.z = (src0.z >= src1.z) ? 1 : 0 - dst.w = (src0.w >= src1.w) ? 1.0 : 0.0 + dst.w = (src0.w >= src1.w) ? 1 : 0 MAD - Multiply And Add @@ -301,8 +301,11 @@ CLAMP - Clamp .. math:: dst.x = clamp(src0.x, src1.x, src2.x) + dst.y = clamp(src0.y, src1.y, src2.y) + dst.z = clamp(src0.z, src1.z, src2.z) + dst.w = clamp(src0.w, src1.w, src2.w) @@ -321,13 +324,16 @@ This is identical to ARL. dst.w = \lfloor src.w\rfloor -1.3.9 ROUND - Round +ROUND - Round .. math:: dst.x = round(src.x) + dst.y = round(src.y) + dst.z = round(src.z) + dst.w = round(src.w) @@ -369,14 +375,17 @@ POW - Power dst.w = src0.x^{src1.x} -1.3.15 XPD - Cross Product +XPD - Cross Product .. math:: dst.x = src0.y \times src1.z - src1.y \times src0.z + dst.y = src0.z \times src1.x - src1.z \times src0.x + dst.z = src0.x \times src1.y - src1.x \times src0.y - dst.w = 1.0 + + dst.w = 1 ABS - Absolute @@ -392,23 +401,31 @@ ABS - Absolute dst.w = |src.w| -1.4.2 RCC - Reciprocal Clamped +RCC - Reciprocal Clamped + +XXX cleanup on aisle three .. math:: - dst.x = (1.0 / src.x) > 0.0 ? clamp(1.0 / src.x, 5.42101e-020, 1.884467e+019) : clamp(1.0 / src.x, -1.884467e+019, -5.42101e-020) - dst.y = (1.0 / src.x) > 0.0 ? clamp(1.0 / src.x, 5.42101e-020, 1.884467e+019) : clamp(1.0 / src.x, -1.884467e+019, -5.42101e-020) - dst.z = (1.0 / src.x) > 0.0 ? clamp(1.0 / src.x, 5.42101e-020, 1.884467e+019) : clamp(1.0 / src.x, -1.884467e+019, -5.42101e-020) - dst.w = (1.0 / src.x) > 0.0 ? clamp(1.0 / src.x, 5.42101e-020, 1.884467e+019) : clamp(1.0 / src.x, -1.884467e+019, -5.42101e-020) + dst.x = (1 / src.x) > 0 ? clamp(1 / src.x, 5.42101e-020, 1.884467e+019) : clamp(1 / src.x, -1.884467e+019, -5.42101e-020) + + dst.y = (1 / src.x) > 0 ? clamp(1 / src.x, 5.42101e-020, 1.884467e+019) : clamp(1 / src.x, -1.884467e+019, -5.42101e-020) + + dst.z = (1 / src.x) > 0 ? clamp(1 / src.x, 5.42101e-020, 1.884467e+019) : clamp(1 / src.x, -1.884467e+019, -5.42101e-020) + + dst.w = (1 / src.x) > 0 ? clamp(1 / src.x, 5.42101e-020, 1.884467e+019) : clamp(1 / src.x, -1.884467e+019, -5.42101e-020) -1.4.3 DPH - Homogeneous Dot Product +DPH - Homogeneous Dot Product .. math:: dst.x = src0.x \times src1.x + src0.y \times src1.y + src0.z \times src1.z + src1.w + dst.y = src0.x \times src1.x + src0.y \times src1.y + src0.z \times src1.z + src1.w + dst.z = src0.x \times src1.x + src0.y \times src1.y + src0.z \times src1.z + src1.w + dst.w = src0.x \times src1.x + src0.y \times src1.y + src0.z \times src1.z + src1.w @@ -425,94 +442,101 @@ COS - Cosine dst.w = \cos{src.w} -1.5.2 DDX - Derivative Relative To X +DDX - Derivative Relative To X .. math:: dst.x = partialx(src.x) + dst.y = partialx(src.y) + dst.z = partialx(src.z) + dst.w = partialx(src.w) -1.5.3 DDY - Derivative Relative To Y +DDY - Derivative Relative To Y .. math:: dst.x = partialy(src.x) + dst.y = partialy(src.y) + dst.z = partialy(src.z) - dst.w = partialy(src.w) + dst.w = partialy(src.w) -1.5.7 KILP - Predicated Discard -.. math:: +KILP - Predicated Discard discard -1.5.10 PK2H - Pack Two 16-bit Floats +PK2H - Pack Two 16-bit Floats TBD -1.5.11 PK2US - Pack Two Unsigned 16-bit Scalars +PK2US - Pack Two Unsigned 16-bit Scalars TBD -1.5.12 PK4B - Pack Four Signed 8-bit Scalars +PK4B - Pack Four Signed 8-bit Scalars TBD -1.5.13 PK4UB - Pack Four Unsigned 8-bit Scalars +PK4UB - Pack Four Unsigned 8-bit Scalars TBD -1.5.15 RFL - Reflection Vector +RFL - Reflection Vector .. math:: - dst.x = 2.0 \times (src0.x \times src1.x + src0.y \times src1.y + src0.z \times src1.z) / (src0.x \times src0.x + src0.y \times src0.y + src0.z \times src0.z) \times src0.x - src1.x - dst.y = 2.0 \times (src0.x \times src1.x + src0.y \times src1.y + src0.z \times src1.z) / (src0.x \times src0.x + src0.y \times src0.y + src0.z \times src0.z) \times src0.y - src1.y - dst.z = 2.0 \times (src0.x \times src1.x + src0.y \times src1.y + src0.z \times src1.z) / (src0.x \times src0.x + src0.y \times src0.y + src0.z \times src0.z) \times src0.z - src1.z - dst.w = 1.0 + dst.x = 2 \times (src0.x \times src1.x + src0.y \times src1.y + src0.z \times src1.z) / (src0.x \times src0.x + src0.y \times src0.y + src0.z \times src0.z) \times src0.x - src1.x + + dst.y = 2 \times (src0.x \times src1.x + src0.y \times src1.y + src0.z \times src1.z) / (src0.x \times src0.x + src0.y \times src0.y + src0.z \times src0.z) \times src0.y - src1.y + + dst.z = 2 \times (src0.x \times src1.x + src0.y \times src1.y + src0.z \times src1.z) / (src0.x \times src0.x + src0.y \times src0.y + src0.z \times src0.z) \times src0.z - src1.z + + dst.w = 1 Considered for removal. -1.5.16 SEQ - Set On Equal +SEQ - Set On Equal .. math:: - dst.x = (src0.x == src1.x) ? 1.0 : 0.0 - dst.y = (src0.y == src1.y) ? 1.0 : 0.0 - dst.z = (src0.z == src1.z) ? 1.0 : 0.0 - dst.w = (src0.w == src1.w) ? 1.0 : 0.0 + dst.x = (src0.x == src1.x) ? 1 : 0 + dst.y = (src0.y == src1.y) ? 1 : 0 + dst.z = (src0.z == src1.z) ? 1 : 0 + dst.w = (src0.w == src1.w) ? 1 : 0 -1.5.17 SFL - Set On False +SFL - Set On False .. math:: - dst.x = 0.0 - dst.y = 0.0 - dst.z = 0.0 - dst.w = 0.0 + dst.x = 0 + dst.y = 0 + dst.z = 0 + dst.w = 0 Considered for removal. -1.5.18 SGT - Set On Greater Than +SGT - Set On Greater Than .. math:: - dst.x = (src0.x > src1.x) ? 1.0 : 0.0 - dst.y = (src0.y > src1.y) ? 1.0 : 0.0 - dst.z = (src0.z > src1.z) ? 1.0 : 0.0 - dst.w = (src0.w > src1.w) ? 1.0 : 0.0 + dst.x = (src0.x > src1.x) ? 1 : 0 + dst.y = (src0.y > src1.y) ? 1 : 0 + dst.z = (src0.z > src1.z) ? 1 : 0 + dst.w = (src0.w > src1.w) ? 1 : 0 SIN - Sine @@ -528,76 +552,76 @@ SIN - Sine dst.w = \sin{src.w} -1.5.20 SLE - Set On Less Equal Than +SLE - Set On Less Equal Than .. math:: - dst.x = (src0.x <= src1.x) ? 1.0 : 0.0 - dst.y = (src0.y <= src1.y) ? 1.0 : 0.0 - dst.z = (src0.z <= src1.z) ? 1.0 : 0.0 - dst.w = (src0.w <= src1.w) ? 1.0 : 0.0 + dst.x = (src0.x <= src1.x) ? 1 : 0 + dst.y = (src0.y <= src1.y) ? 1 : 0 + dst.z = (src0.z <= src1.z) ? 1 : 0 + dst.w = (src0.w <= src1.w) ? 1 : 0 -1.5.21 SNE - Set On Not Equal +SNE - Set On Not Equal .. math:: - dst.x = (src0.x != src1.x) ? 1.0 : 0.0 - dst.y = (src0.y != src1.y) ? 1.0 : 0.0 - dst.z = (src0.z != src1.z) ? 1.0 : 0.0 - dst.w = (src0.w != src1.w) ? 1.0 : 0.0 + dst.x = (src0.x != src1.x) ? 1 : 0 + dst.y = (src0.y != src1.y) ? 1 : 0 + dst.z = (src0.z != src1.z) ? 1 : 0 + dst.w = (src0.w != src1.w) ? 1 : 0 -1.5.22 STR - Set On True +STR - Set On True .. math:: - dst.x = 1.0 - dst.y = 1.0 - dst.z = 1.0 - dst.w = 1.0 + dst.x = 1 + dst.y = 1 + dst.z = 1 + dst.w = 1 -1.5.23 TEX - Texture Lookup +TEX - Texture Lookup TBD -1.5.24 TXD - Texture Lookup with Derivatives +TXD - Texture Lookup with Derivatives TBD -1.5.25 TXP - Projective Texture Lookup +TXP - Projective Texture Lookup TBD -1.5.26 UP2H - Unpack Two 16-Bit Floats +UP2H - Unpack Two 16-Bit Floats TBD Considered for removal. -1.5.27 UP2US - Unpack Two Unsigned 16-Bit Scalars +UP2US - Unpack Two Unsigned 16-Bit Scalars TBD Considered for removal. -1.5.28 UP4B - Unpack Four Signed 8-Bit Values +UP4B - Unpack Four Signed 8-Bit Values TBD Considered for removal. -1.5.29 UP4UB - Unpack Four Unsigned 8-Bit Scalars +UP4UB - Unpack Four Unsigned 8-Bit Scalars TBD Considered for removal. -1.5.30 X2D - 2D Coordinate Transformation +X2D - 2D Coordinate Transformation .. math:: @@ -609,70 +633,79 @@ SIN - Sine Considered for removal. -1.6 GL_NV_vertex_program2 +GL_NV_vertex_program2 -------------------------- -1.6.1 ARA - Address Register Add +ARA - Address Register Add TBD Considered for removal. -1.6.2 ARR - Address Register Load With Round +ARR - Address Register Load With Round .. math:: dst.x = round(src.x) + dst.y = round(src.y) + dst.z = round(src.z) + dst.w = round(src.w) -1.6.3 BRA - Branch +BRA - Branch pc = target Considered for removal. -1.6.4 CAL - Subroutine Call +CAL - Subroutine Call push(pc) pc = target -1.6.5 RET - Subroutine Call Return +RET - Subroutine Call Return pc = pop() Potential restrictions: \times Only occurs at end of function. -1.6.6 SSG - Set Sign +SSG - Set Sign .. math:: - dst.x = (src.x > 0.0) ? 1.0 : (src.x < 0.0) ? -1.0 : 0.0 - dst.y = (src.y > 0.0) ? 1.0 : (src.y < 0.0) ? -1.0 : 0.0 - dst.z = (src.z > 0.0) ? 1.0 : (src.z < 0.0) ? -1.0 : 0.0 - dst.w = (src.w > 0.0) ? 1.0 : (src.w < 0.0) ? -1.0 : 0.0 + dst.x = (src.x > 0) ? 1 : (src.x < 0) ? -1 : 0 + + dst.y = (src.y > 0) ? 1 : (src.y < 0) ? -1 : 0 + dst.z = (src.z > 0) ? 1 : (src.z < 0) ? -1 : 0 -1.8.1 CMP - Compare + dst.w = (src.w > 0) ? 1 : (src.w < 0) ? -1 : 0 + + +CMP - Compare .. math:: - dst.x = (src0.x < 0.0) ? src1.x : src2.x - dst.y = (src0.y < 0.0) ? src1.y : src2.y - dst.z = (src0.z < 0.0) ? src1.z : src2.z - dst.w = (src0.w < 0.0) ? src1.w : src2.w + dst.x = (src0.x < 0) ? src1.x : src2.x + + dst.y = (src0.y < 0) ? src1.y : src2.y + + dst.z = (src0.z < 0) ? src1.z : src2.z + + dst.w = (src0.w < 0) ? src1.w : src2.w -1.8.2 KIL - Conditional Discard +KIL - Conditional Discard .. math:: - if (src.x < 0.0 || src.y < 0.0 || src.z < 0.0 || src.w < 0.0) + if (src.x < 0 || src.y < 0 || src.z < 0 || src.w < 0) discard endif @@ -685,62 +718,71 @@ SCS - Sine Cosine dst.y = \sin{src.x} - dst.z = 0.0 + dst.z = 0 - dst.y = 1.0 + dst.y = 1 -1.8.4 TXB - Texture Lookup With Bias +TXB - Texture Lookup With Bias TBD -1.9.1 NRM - 3-component Vector Normalise +NRM - 3-component Vector Normalise .. math:: dst.x = src.x / (src.x \times src.x + src.y \times src.y + src.z \times src.z) + dst.y = src.y / (src.x \times src.x + src.y \times src.y + src.z \times src.z) + dst.z = src.z / (src.x \times src.x + src.y \times src.y + src.z \times src.z) - dst.w = 1.0 + + dst.w = 1 -1.9.2 DIV - Divide +DIV - Divide .. math:: - dst.x = src0.x / src1.x - dst.y = src0.y / src1.y - dst.z = src0.z / src1.z - dst.w = src0.w / src1.w + dst.x = \frac{src0.x}{src1.x} + + dst.y = \frac{src0.y}{src1.y} + + dst.z = \frac{src0.z}{src1.z} + dst.w = \frac{src0.w}{src1.w} -1.9.3 DP2 - 2-component Dot Product + +DP2 - 2-component Dot Product .. math:: dst.x = src0.x \times src1.x + src0.y \times src1.y + dst.y = src0.x \times src1.x + src0.y \times src1.y + dst.z = src0.x \times src1.x + src0.y \times src1.y + dst.w = src0.x \times src1.x + src0.y \times src1.y -1.9.5 TXL - Texture Lookup With LOD +TXL - Texture Lookup With LOD TBD -1.9.6 BRK - Break +BRK - Break TBD -1.9.7 IF - If +IF - If TBD -1.9.8 BGNFOR - Begin a For-Loop +BGNFOR - Begin a For-Loop dst.x = floor(src.x) dst.y = floor(src.y) @@ -756,22 +798,22 @@ SCS - Sine Cosine Considered for cleanup / removal. -1.9.9 REP - Repeat +REP - Repeat TBD -1.9.10 ELSE - Else +ELSE - Else TBD -1.9.11 ENDIF - End If +ENDIF - End If TBD -1.9.12 ENDFOR - End a For-Loop +ENDFOR - End a For-Loop dst.x = dst.x + dst.z dst.y = dst.y - 1.0 @@ -784,12 +826,12 @@ SCS - Sine Cosine Considered for cleanup / removal. -1.9.13 ENDREP - End Repeat +ENDREP - End Repeat TBD -1.10.1 PUSHA - Push Address Register On Stack +PUSHA - Push Address Register On Stack push(src.x) push(src.y) @@ -798,7 +840,7 @@ SCS - Sine Cosine Considered for cleanup / removal. -1.10.2 POPA - Pop Address Register From Stack +POPA - Pop Address Register From Stack dst.w = pop() dst.z = pop() @@ -808,7 +850,7 @@ SCS - Sine Cosine Considered for cleanup / removal. -1.11 GL_NV_gpu_program4 +GL_NV_gpu_program4 ------------------------ Support for these opcodes indicated by a special pipe capability bit (TBD). @@ -826,93 +868,122 @@ CEIL - Ceiling dst.w = \lceil src.w\rceil -1.11.2 I2F - Integer To Float +I2F - Integer To Float .. math:: dst.x = (float) src.x + dst.y = (float) src.y + dst.z = (float) src.z + dst.w = (float) src.w -1.11.3 NOT - Bitwise Not +NOT - Bitwise Not .. math:: dst.x = ~src.x + dst.y = ~src.y + dst.z = ~src.z + dst.w = ~src.w -1.11.4 TRUNC - Truncate +TRUNC - Truncate + +XXX how is this different from floor? .. math:: dst.x = trunc(src.x) + dst.y = trunc(src.y) + dst.z = trunc(src.z) + dst.w = trunc(src.w) -1.11.5 SHL - Shift Left +SHL - Shift Left .. math:: dst.x = src0.x << src1.x + dst.y = src0.y << src1.x + dst.z = src0.z << src1.x + dst.w = src0.w << src1.x -1.11.6 SHR - Shift Right +SHR - Shift Right .. math:: dst.x = src0.x >> src1.x + dst.y = src0.y >> src1.x + dst.z = src0.z >> src1.x + dst.w = src0.w >> src1.x -1.11.7 AND - Bitwise And +AND - Bitwise And .. math:: dst.x = src0.x & src1.x + dst.y = src0.y & src1.y + dst.z = src0.z & src1.z + dst.w = src0.w & src1.w -1.11.8 OR - Bitwise Or +OR - Bitwise Or .. math:: dst.x = src0.x | src1.x + dst.y = src0.y | src1.y + dst.z = src0.z | src1.z + dst.w = src0.w | src1.w -1.11.9 MOD - Modulus +MOD - Modulus .. math:: - dst.x = src0.x % src1.x - dst.y = src0.y % src1.y - dst.z = src0.z % src1.z - dst.w = src0.w % src1.w + dst.x = src0.x \bmod src1.x + + dst.y = src0.y \bmod src1.y + + dst.z = src0.z \bmod src1.z + dst.w = src0.w \bmod src1.w -1.11.10 XOR - Bitwise Xor + +XOR - Bitwise Xor .. math:: dst.x = src0.x ^ src1.x + dst.y = src0.y ^ src1.y + dst.z = src0.z ^ src1.z + dst.w = src0.w ^ src1.w @@ -929,100 +1000,101 @@ SAD - Sum Of Absolute Differences dst.w = |src0.w - src1.w| + src2.w -1.11.12 TXF - Texel Fetch +TXF - Texel Fetch TBD -1.11.13 TXQ - Texture Size Query +TXQ - Texture Size Query TBD -1.11.14 CONT - Continue +CONT - Continue TBD -1.12 GL_NV_geometry_program4 +GL_NV_geometry_program4 ----------------------------- -1.12.1 EMIT - Emit +EMIT - Emit TBD -1.12.2 ENDPRIM - End Primitive +ENDPRIM - End Primitive TBD -1.13 GLSL +GLSL ---------- -1.13.1 BGNLOOP - Begin a Loop +BGNLOOP - Begin a Loop TBD -1.13.2 BGNSUB - Begin Subroutine +BGNSUB - Begin Subroutine TBD -1.13.3 ENDLOOP - End a Loop +ENDLOOP - End a Loop TBD -1.13.4 ENDSUB - End Subroutine +ENDSUB - End Subroutine TBD -1.13.10 NOP - No Operation +NOP - No Operation - Do nothing. + Do nothing. +NRM4 - 4-component Vector Normalise +.. math:: -1.16.7 NRM4 - 4-component Vector Normalise + dst.x = \frac{src.x}{src.x \times src.x + src.y \times src.y + src.z \times src.z + src.w \times src.w} -.. math:: + dst.y = \frac{src.y}{src.x \times src.x + src.y \times src.y + src.z \times src.z + src.w \times src.w} + + dst.z = \frac{src.z}{src.x \times src.x + src.y \times src.y + src.z \times src.z + src.w \times src.w} - dst.x = src.x / (src.x \times src.x + src.y \times src.y + src.z \times src.z + src.w \times src.w) - dst.y = src.y / (src.x \times src.x + src.y \times src.y + src.z \times src.z + src.w \times src.w) - dst.z = src.z / (src.x \times src.x + src.y \times src.y + src.z \times src.z + src.w \times src.w) - dst.w = src.w / (src.x \times src.x + src.y \times src.y + src.z \times src.z + src.w \times src.w) + dst.w = \frac{src.w}{src.x \times src.x + src.y \times src.y + src.z \times src.z + src.w \times src.w} -1.17 ps_2_x +ps_2_x ------------ -1.17.2 CALLNZ - Subroutine Call If Not Zero +CALLNZ - Subroutine Call If Not Zero TBD -1.17.3 IFC - If +IFC - If TBD -1.17.5 BREAKC - Break Conditional +BREAKC - Break Conditional TBD -2 Explanation of symbols used +Explanation of symbols used ============================== -2.1 Functions +Functions -------------- @@ -1058,7 +1130,7 @@ SAD - Sum Of Absolute Differences trunc(x) Truncate x. -2.2 Keywords +Keywords ------------- @@ -1081,11 +1153,11 @@ SAD - Sum Of Absolute Differences target Label of target instruction. -3 Other tokens +Other tokens =============== -3.1 Declaration Semantic +Declaration Semantic ------------------------- @@ -1106,7 +1178,8 @@ SAD - Sum Of Absolute Differences sections. -3.1.1 FACE +FACE +^^^^ Valid only in a fragment shader INPUT declaration. -- cgit v1.2.3 From 1a7b2f7e9577a822b53fca20f0797940aaafaab1 Mon Sep 17 00:00:00 2001 From: Corbin Simpson Date: Mon, 21 Dec 2009 20:33:18 -0800 Subject: docs: Regenerate. --- src/gallium/docs/build/html/.buildinfo | 2 +- src/gallium/docs/build/html/_sources/context.txt | 79 +- src/gallium/docs/build/html/_sources/tgsi.txt | 1180 ++++++++++++++++++++++ src/gallium/docs/build/html/context.html | 69 +- src/gallium/docs/build/html/index.html | 19 +- src/gallium/docs/build/html/searchindex.js | 2 +- src/gallium/docs/build/html/tgsi.html | 842 +++++++++++++++ 7 files changed, 2157 insertions(+), 36 deletions(-) (limited to 'src') diff --git a/src/gallium/docs/build/html/.buildinfo b/src/gallium/docs/build/html/.buildinfo index 3b3a154206..91dc31f0ac 100644 --- a/src/gallium/docs/build/html/.buildinfo +++ b/src/gallium/docs/build/html/.buildinfo @@ -1,4 +1,4 @@ # Sphinx build info version 1 # This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done. -config: 337274cf474a8d2d6871c416a4911d5e +config: e48279c15771d329f916579cf997b5a9 tags: fbb0d17656682115ca4d033fb2f83ba1 diff --git a/src/gallium/docs/build/html/_sources/context.txt b/src/gallium/docs/build/html/_sources/context.txt index 6470e8fd49..21f5f9111a 100644 --- a/src/gallium/docs/build/html/_sources/context.txt +++ b/src/gallium/docs/build/html/_sources/context.txt @@ -25,6 +25,21 @@ CSO objects handled by the context object: * :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 ^^^^^^^^^^^^^ @@ -35,47 +50,79 @@ objects. They all follow simple, one-method binding calls, e.g. * ``set_edgeflags`` * ``set_blend_color`` * ``set_clip_state`` -* ``set_constant_buffer`` -* ``set_framebuffer_state`` * ``set_polygon_stipple`` * ``set_scissor_state`` * ``set_viewport_state`` -* ``set_fragment_sampler_textures`` -* ``set_vertex_sampler_textures`` -* ``set_vertex_buffers`` * ``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. -VBO Drawing -^^^^^^^^^^^ +Flushing +^^^^^^^^ -``draw_arrays`` +``flush`` -``draw_elements`` -``draw_range_elements`` +Resource Busy Queries +^^^^^^^^^^^^^^^^^^^^^ -``flush`` +``is_texture_referenced`` -Surface Drawing -^^^^^^^^^^^^^^^ +``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. -``clear`` initializes entire buffers to an RGBA, depth, or stencil value, -depending on the formats of the buffers. Use ``set_framebuffer_state`` to -specify the buffers to clear. +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. + diff --git a/src/gallium/docs/build/html/_sources/tgsi.txt b/src/gallium/docs/build/html/_sources/tgsi.txt index 2474925b46..de27d8a005 100644 --- a/src/gallium/docs/build/html/_sources/tgsi.txt +++ b/src/gallium/docs/build/html/_sources/tgsi.txt @@ -5,3 +5,1183 @@ TGSI, Tungsten Graphics Shader Instructions, is an intermediate language for describing shaders. Since Gallium is inherently shaderful, shaders are an important part of the API. TGSI is the only intermediate representation used by all drivers. + +From GL_NV_vertex_program +------------------------- + + +ARL - Address Register Load + +.. math:: + + dst.x = \lfloor src.x\rfloor + + dst.y = \lfloor src.y\rfloor + + dst.z = \lfloor src.z\rfloor + + dst.w = \lfloor src.w\rfloor + + +MOV - Move + +.. math:: + + dst.x = src.x + + dst.y = src.y + + dst.z = src.z + + dst.w = src.w + + +LIT - Light Coefficients + +.. math:: + + dst.x = 1 + + dst.y = max(src.x, 0) + + dst.z = (src.x > 0) ? max(src.y, 0)^{clamp(src.w, -128, 128))} : 0 + + dst.w = 1 + + +RCP - Reciprocal + +.. math:: + + dst.x = \frac{1}{src.x} + + dst.y = \frac{1}{src.x} + + dst.z = \frac{1}{src.x} + + dst.w = \frac{1}{src.x} + + +RSQ - Reciprocal Square Root + +.. math:: + + dst.x = \frac{1}{\sqrt{|src.x|}} + + dst.y = \frac{1}{\sqrt{|src.x|}} + + dst.z = \frac{1}{\sqrt{|src.x|}} + + dst.w = \frac{1}{\sqrt{|src.x|}} + + +EXP - Approximate Exponential Base 2 + +.. math:: + + dst.x = 2^{\lfloor src.x\rfloor} + + dst.y = src.x - \lfloor src.x\rfloor + + dst.z = 2^{src.x} + + dst.w = 1 + + +LOG - Approximate Logarithm Base 2 + +.. math:: + + dst.x = \lfloor\log_2{|src.x|}\rfloor + + dst.y = \frac{|src.x|}{2^{\lfloor\log_2{|src.x|}\rfloor}} + + dst.z = \log_2{|src.x|} + + dst.w = 1 + + +MUL - Multiply + +.. math:: + + dst.x = src0.x \times src1.x + + dst.y = src0.y \times src1.y + + dst.z = src0.z \times src1.z + + dst.w = src0.w \times src1.w + + +ADD - Add + +.. math:: + + dst.x = src0.x + src1.x + + dst.y = src0.y + src1.y + + dst.z = src0.z + src1.z + + dst.w = src0.w + src1.w + + +DP3 - 3-component Dot Product + +.. math:: + + dst.x = src0.x \times src1.x + src0.y \times src1.y + src0.z \times src1.z + + dst.y = src0.x \times src1.x + src0.y \times src1.y + src0.z \times src1.z + + dst.z = src0.x \times src1.x + src0.y \times src1.y + src0.z \times src1.z + + dst.w = src0.x \times src1.x + src0.y \times src1.y + src0.z \times src1.z + + +DP4 - 4-component Dot Product + +.. math:: + + dst.x = src0.x \times src1.x + src0.y \times src1.y + src0.z \times src1.z + src0.w \times src1.w + + dst.y = src0.x \times src1.x + src0.y \times src1.y + src0.z \times src1.z + src0.w \times src1.w + + dst.z = src0.x \times src1.x + src0.y \times src1.y + src0.z \times src1.z + src0.w \times src1.w + + dst.w = src0.x \times src1.x + src0.y \times src1.y + src0.z \times src1.z + src0.w \times src1.w + + +DST - Distance Vector + +.. math:: + + dst.x = 1 + + dst.y = src0.y \times src1.y + + dst.z = src0.z + + dst.w = src1.w + + +MIN - Minimum + +.. math:: + + dst.x = min(src0.x, src1.x) + + dst.y = min(src0.y, src1.y) + + dst.z = min(src0.z, src1.z) + + dst.w = min(src0.w, src1.w) + + +MAX - Maximum + +.. math:: + + dst.x = max(src0.x, src1.x) + + dst.y = max(src0.y, src1.y) + + dst.z = max(src0.z, src1.z) + + dst.w = max(src0.w, src1.w) + + +SLT - Set On Less Than + +.. math:: + + dst.x = (src0.x < src1.x) ? 1 : 0 + + dst.y = (src0.y < src1.y) ? 1 : 0 + + dst.z = (src0.z < src1.z) ? 1 : 0 + + dst.w = (src0.w < src1.w) ? 1 : 0 + + +SGE - Set On Greater Equal Than + +.. math:: + + dst.x = (src0.x >= src1.x) ? 1 : 0 + + dst.y = (src0.y >= src1.y) ? 1 : 0 + + dst.z = (src0.z >= src1.z) ? 1 : 0 + + dst.w = (src0.w >= src1.w) ? 1 : 0 + + +MAD - Multiply And Add + +.. math:: + + dst.x = src0.x \times src1.x + src2.x + + dst.y = src0.y \times src1.y + src2.y + + dst.z = src0.z \times src1.z + src2.z + + dst.w = src0.w \times src1.w + src2.w + + +SUB - Subtract + +.. math:: + + dst.x = src0.x - src1.x + + dst.y = src0.y - src1.y + + dst.z = src0.z - src1.z + + dst.w = src0.w - src1.w + + +LRP - Linear Interpolate + +.. math:: + + dst.x = src0.x \times (src1.x - src2.x) + src2.x + + dst.y = src0.y \times (src1.y - src2.y) + src2.y + + dst.z = src0.z \times (src1.z - src2.z) + src2.z + + dst.w = src0.w \times (src1.w - src2.w) + src2.w + + +CND - Condition + +.. math:: + + dst.x = (src2.x > 0.5) ? src0.x : src1.x + + dst.y = (src2.y > 0.5) ? src0.y : src1.y + + dst.z = (src2.z > 0.5) ? src0.z : src1.z + + dst.w = (src2.w > 0.5) ? src0.w : src1.w + + +DP2A - 2-component Dot Product And Add + +.. math:: + + dst.x = src0.x \times src1.x + src0.y \times src1.y + src2.x + + dst.y = src0.x \times src1.x + src0.y \times src1.y + src2.x + + dst.z = src0.x \times src1.x + src0.y \times src1.y + src2.x + + dst.w = src0.x \times src1.x + src0.y \times src1.y + src2.x + + +FRAC - Fraction + +.. math:: + + dst.x = src.x - \lfloor src.x\rfloor + + dst.y = src.y - \lfloor src.y\rfloor + + dst.z = src.z - \lfloor src.z\rfloor + + dst.w = src.w - \lfloor src.w\rfloor + + +CLAMP - Clamp + +.. math:: + + dst.x = clamp(src0.x, src1.x, src2.x) + + dst.y = clamp(src0.y, src1.y, src2.y) + + dst.z = clamp(src0.z, src1.z, src2.z) + + dst.w = clamp(src0.w, src1.w, src2.w) + + +FLR - Floor + +This is identical to ARL. + +.. math:: + + dst.x = \lfloor src.x\rfloor + + dst.y = \lfloor src.y\rfloor + + dst.z = \lfloor src.z\rfloor + + dst.w = \lfloor src.w\rfloor + + +ROUND - Round + +.. math:: + + dst.x = round(src.x) + + dst.y = round(src.y) + + dst.z = round(src.z) + + dst.w = round(src.w) + + +EX2 - Exponential Base 2 + +.. math:: + + dst.x = 2^{src.x} + + dst.y = 2^{src.x} + + dst.z = 2^{src.x} + + dst.w = 2^{src.x} + + +LG2 - Logarithm Base 2 + +.. math:: + + dst.x = \log_2{src.x} + + dst.y = \log_2{src.x} + + dst.z = \log_2{src.x} + + dst.w = \log_2{src.x} + + +POW - Power + +.. math:: + + dst.x = src0.x^{src1.x} + + dst.y = src0.x^{src1.x} + + dst.z = src0.x^{src1.x} + + dst.w = src0.x^{src1.x} + +XPD - Cross Product + +.. math:: + + dst.x = src0.y \times src1.z - src1.y \times src0.z + + dst.y = src0.z \times src1.x - src1.z \times src0.x + + dst.z = src0.x \times src1.y - src1.x \times src0.y + + dst.w = 1 + + +ABS - Absolute + +.. math:: + + dst.x = |src.x| + + dst.y = |src.y| + + dst.z = |src.z| + + dst.w = |src.w| + + +RCC - Reciprocal Clamped + +XXX cleanup on aisle three + +.. math:: + + dst.x = (1 / src.x) > 0 ? clamp(1 / src.x, 5.42101e-020, 1.884467e+019) : clamp(1 / src.x, -1.884467e+019, -5.42101e-020) + + dst.y = (1 / src.x) > 0 ? clamp(1 / src.x, 5.42101e-020, 1.884467e+019) : clamp(1 / src.x, -1.884467e+019, -5.42101e-020) + + dst.z = (1 / src.x) > 0 ? clamp(1 / src.x, 5.42101e-020, 1.884467e+019) : clamp(1 / src.x, -1.884467e+019, -5.42101e-020) + + dst.w = (1 / src.x) > 0 ? clamp(1 / src.x, 5.42101e-020, 1.884467e+019) : clamp(1 / src.x, -1.884467e+019, -5.42101e-020) + + +DPH - Homogeneous Dot Product + +.. math:: + + dst.x = src0.x \times src1.x + src0.y \times src1.y + src0.z \times src1.z + src1.w + + dst.y = src0.x \times src1.x + src0.y \times src1.y + src0.z \times src1.z + src1.w + + dst.z = src0.x \times src1.x + src0.y \times src1.y + src0.z \times src1.z + src1.w + + dst.w = src0.x \times src1.x + src0.y \times src1.y + src0.z \times src1.z + src1.w + + +COS - Cosine + +.. math:: + + dst.x = \cos{src.x} + + dst.y = \cos{src.x} + + dst.z = \cos{src.x} + + dst.w = \cos{src.w} + + +DDX - Derivative Relative To X + +.. math:: + + dst.x = partialx(src.x) + + dst.y = partialx(src.y) + + dst.z = partialx(src.z) + + dst.w = partialx(src.w) + + +DDY - Derivative Relative To Y + +.. math:: + + dst.x = partialy(src.x) + + dst.y = partialy(src.y) + + dst.z = partialy(src.z) + + dst.w = partialy(src.w) + + +KILP - Predicated Discard + + discard + + +PK2H - Pack Two 16-bit Floats + + TBD + + +PK2US - Pack Two Unsigned 16-bit Scalars + + TBD + + +PK4B - Pack Four Signed 8-bit Scalars + + TBD + + +PK4UB - Pack Four Unsigned 8-bit Scalars + + TBD + + +RFL - Reflection Vector + +.. math:: + + dst.x = 2 \times (src0.x \times src1.x + src0.y \times src1.y + src0.z \times src1.z) / (src0.x \times src0.x + src0.y \times src0.y + src0.z \times src0.z) \times src0.x - src1.x + + dst.y = 2 \times (src0.x \times src1.x + src0.y \times src1.y + src0.z \times src1.z) / (src0.x \times src0.x + src0.y \times src0.y + src0.z \times src0.z) \times src0.y - src1.y + + dst.z = 2 \times (src0.x \times src1.x + src0.y \times src1.y + src0.z \times src1.z) / (src0.x \times src0.x + src0.y \times src0.y + src0.z \times src0.z) \times src0.z - src1.z + + dst.w = 1 + +Considered for removal. + + +SEQ - Set On Equal + +.. math:: + + dst.x = (src0.x == src1.x) ? 1 : 0 + dst.y = (src0.y == src1.y) ? 1 : 0 + dst.z = (src0.z == src1.z) ? 1 : 0 + dst.w = (src0.w == src1.w) ? 1 : 0 + + +SFL - Set On False + +.. math:: + + dst.x = 0 + dst.y = 0 + dst.z = 0 + dst.w = 0 + +Considered for removal. + +SGT - Set On Greater Than + +.. math:: + + dst.x = (src0.x > src1.x) ? 1 : 0 + dst.y = (src0.y > src1.y) ? 1 : 0 + dst.z = (src0.z > src1.z) ? 1 : 0 + dst.w = (src0.w > src1.w) ? 1 : 0 + + +SIN - Sine + +.. math:: + + dst.x = \sin{src.x} + + dst.y = \sin{src.x} + + dst.z = \sin{src.x} + + dst.w = \sin{src.w} + + +SLE - Set On Less Equal Than + +.. math:: + + dst.x = (src0.x <= src1.x) ? 1 : 0 + dst.y = (src0.y <= src1.y) ? 1 : 0 + dst.z = (src0.z <= src1.z) ? 1 : 0 + dst.w = (src0.w <= src1.w) ? 1 : 0 + + +SNE - Set On Not Equal + +.. math:: + + dst.x = (src0.x != src1.x) ? 1 : 0 + dst.y = (src0.y != src1.y) ? 1 : 0 + dst.z = (src0.z != src1.z) ? 1 : 0 + dst.w = (src0.w != src1.w) ? 1 : 0 + + +STR - Set On True + +.. math:: + + dst.x = 1 + dst.y = 1 + dst.z = 1 + dst.w = 1 + + +TEX - Texture Lookup + + TBD + + +TXD - Texture Lookup with Derivatives + + TBD + + +TXP - Projective Texture Lookup + + TBD + + +UP2H - Unpack Two 16-Bit Floats + + TBD + + Considered for removal. + +UP2US - Unpack Two Unsigned 16-Bit Scalars + + TBD + + Considered for removal. + +UP4B - Unpack Four Signed 8-Bit Values + + TBD + + Considered for removal. + +UP4UB - Unpack Four Unsigned 8-Bit Scalars + + TBD + + Considered for removal. + +X2D - 2D Coordinate Transformation + +.. math:: + + dst.x = src0.x + src1.x \times src2.x + src1.y \times src2.y + dst.y = src0.y + src1.x \times src2.z + src1.y \times src2.w + dst.z = src0.x + src1.x \times src2.x + src1.y \times src2.y + dst.w = src0.y + src1.x \times src2.z + src1.y \times src2.w + +Considered for removal. + + +GL_NV_vertex_program2 +-------------------------- + + +ARA - Address Register Add + + TBD + + Considered for removal. + +ARR - Address Register Load With Round + +.. math:: + + dst.x = round(src.x) + + dst.y = round(src.y) + + dst.z = round(src.z) + + dst.w = round(src.w) + + +BRA - Branch + + pc = target + + Considered for removal. + +CAL - Subroutine Call + + push(pc) + pc = target + + +RET - Subroutine Call Return + + pc = pop() + + Potential restrictions: + \times Only occurs at end of function. + +SSG - Set Sign + +.. math:: + + dst.x = (src.x > 0) ? 1 : (src.x < 0) ? -1 : 0 + + dst.y = (src.y > 0) ? 1 : (src.y < 0) ? -1 : 0 + + dst.z = (src.z > 0) ? 1 : (src.z < 0) ? -1 : 0 + + dst.w = (src.w > 0) ? 1 : (src.w < 0) ? -1 : 0 + + +CMP - Compare + +.. math:: + + dst.x = (src0.x < 0) ? src1.x : src2.x + + dst.y = (src0.y < 0) ? src1.y : src2.y + + dst.z = (src0.z < 0) ? src1.z : src2.z + + dst.w = (src0.w < 0) ? src1.w : src2.w + + +KIL - Conditional Discard + +.. math:: + + if (src.x < 0 || src.y < 0 || src.z < 0 || src.w < 0) + discard + endif + + +SCS - Sine Cosine + +.. math:: + + dst.x = \cos{src.x} + + dst.y = \sin{src.x} + + dst.z = 0 + + dst.y = 1 + + +TXB - Texture Lookup With Bias + + TBD + + +NRM - 3-component Vector Normalise + +.. math:: + + dst.x = src.x / (src.x \times src.x + src.y \times src.y + src.z \times src.z) + + dst.y = src.y / (src.x \times src.x + src.y \times src.y + src.z \times src.z) + + dst.z = src.z / (src.x \times src.x + src.y \times src.y + src.z \times src.z) + + dst.w = 1 + + +DIV - Divide + +.. math:: + + dst.x = \frac{src0.x}{src1.x} + + dst.y = \frac{src0.y}{src1.y} + + dst.z = \frac{src0.z}{src1.z} + + dst.w = \frac{src0.w}{src1.w} + + +DP2 - 2-component Dot Product + +.. math:: + + dst.x = src0.x \times src1.x + src0.y \times src1.y + + dst.y = src0.x \times src1.x + src0.y \times src1.y + + dst.z = src0.x \times src1.x + src0.y \times src1.y + + dst.w = src0.x \times src1.x + src0.y \times src1.y + + +TXL - Texture Lookup With LOD + + TBD + + +BRK - Break + + TBD + + +IF - If + + TBD + + +BGNFOR - Begin a For-Loop + + dst.x = floor(src.x) + dst.y = floor(src.y) + dst.z = floor(src.z) + + if (dst.y <= 0) + pc = [matching ENDFOR] + 1 + endif + + Note: The destination must be a loop register. + The source must be a constant register. + + Considered for cleanup / removal. + + +REP - Repeat + + TBD + + +ELSE - Else + + TBD + + +ENDIF - End If + + TBD + + +ENDFOR - End a For-Loop + + dst.x = dst.x + dst.z + dst.y = dst.y - 1.0 + + if (dst.y > 0) + pc = [matching BGNFOR instruction] + 1 + endif + + Note: The destination must be a loop register. + + Considered for cleanup / removal. + +ENDREP - End Repeat + + TBD + + +PUSHA - Push Address Register On Stack + + push(src.x) + push(src.y) + push(src.z) + push(src.w) + + Considered for cleanup / removal. + +POPA - Pop Address Register From Stack + + dst.w = pop() + dst.z = pop() + dst.y = pop() + dst.x = pop() + + Considered for cleanup / removal. + + +GL_NV_gpu_program4 +------------------------ + +Support for these opcodes indicated by a special pipe capability bit (TBD). + +CEIL - Ceiling + +.. math:: + + dst.x = \lceil src.x\rceil + + dst.y = \lceil src.y\rceil + + dst.z = \lceil src.z\rceil + + dst.w = \lceil src.w\rceil + + +I2F - Integer To Float + +.. math:: + + dst.x = (float) src.x + + dst.y = (float) src.y + + dst.z = (float) src.z + + dst.w = (float) src.w + + +NOT - Bitwise Not + +.. math:: + + dst.x = ~src.x + + dst.y = ~src.y + + dst.z = ~src.z + + dst.w = ~src.w + + +TRUNC - Truncate + +XXX how is this different from floor? + +.. math:: + + dst.x = trunc(src.x) + + dst.y = trunc(src.y) + + dst.z = trunc(src.z) + + dst.w = trunc(src.w) + + +SHL - Shift Left + +.. math:: + + dst.x = src0.x << src1.x + + dst.y = src0.y << src1.x + + dst.z = src0.z << src1.x + + dst.w = src0.w << src1.x + + +SHR - Shift Right + +.. math:: + + dst.x = src0.x >> src1.x + + dst.y = src0.y >> src1.x + + dst.z = src0.z >> src1.x + + dst.w = src0.w >> src1.x + + +AND - Bitwise And + +.. math:: + + dst.x = src0.x & src1.x + + dst.y = src0.y & src1.y + + dst.z = src0.z & src1.z + + dst.w = src0.w & src1.w + + +OR - Bitwise Or + +.. math:: + + dst.x = src0.x | src1.x + + dst.y = src0.y | src1.y + + dst.z = src0.z | src1.z + + dst.w = src0.w | src1.w + + +MOD - Modulus + +.. math:: + + dst.x = src0.x \bmod src1.x + + dst.y = src0.y \bmod src1.y + + dst.z = src0.z \bmod src1.z + + dst.w = src0.w \bmod src1.w + + +XOR - Bitwise Xor + +.. math:: + + dst.x = src0.x ^ src1.x + + dst.y = src0.y ^ src1.y + + dst.z = src0.z ^ src1.z + + dst.w = src0.w ^ src1.w + + +SAD - Sum Of Absolute Differences + +.. math:: + + dst.x = |src0.x - src1.x| + src2.x + + dst.y = |src0.y - src1.y| + src2.y + + dst.z = |src0.z - src1.z| + src2.z + + dst.w = |src0.w - src1.w| + src2.w + + +TXF - Texel Fetch + + TBD + + +TXQ - Texture Size Query + + TBD + + +CONT - Continue + + TBD + + +GL_NV_geometry_program4 +----------------------------- + + +EMIT - Emit + + TBD + + +ENDPRIM - End Primitive + + TBD + + +GLSL +---------- + + +BGNLOOP - Begin a Loop + + TBD + + +BGNSUB - Begin Subroutine + + TBD + + +ENDLOOP - End a Loop + + TBD + + +ENDSUB - End Subroutine + + TBD + + + +NOP - No Operation + + Do nothing. + +NRM4 - 4-component Vector Normalise + +.. math:: + + dst.x = \frac{src.x}{src.x \times src.x + src.y \times src.y + src.z \times src.z + src.w \times src.w} + + dst.y = \frac{src.y}{src.x \times src.x + src.y \times src.y + src.z \times src.z + src.w \times src.w} + + dst.z = \frac{src.z}{src.x \times src.x + src.y \times src.y + src.z \times src.z + src.w \times src.w} + + dst.w = \frac{src.w}{src.x \times src.x + src.y \times src.y + src.z \times src.z + src.w \times src.w} + + +ps_2_x +------------ + + +CALLNZ - Subroutine Call If Not Zero + + TBD + + +IFC - If + + TBD + + +BREAKC - Break Conditional + + TBD + + +Explanation of symbols used +============================== + + +Functions +-------------- + + + :math:`|x|` Absolute value of `x`. + + :math:`\lceil x \rceil` Ceiling of `x`. + + clamp(x,y,z) Clamp x between y and z. + (x < y) ? y : (x > z) ? z : x + + :math:`\lfloor x\rfloor` Floor of `x`. + + :math:`\log_2{x}` Logarithm of `x`, base 2. + + max(x,y) Maximum of x and y. + (x > y) ? x : y + + min(x,y) Minimum of x and y. + (x < y) ? x : y + + partialx(x) Derivative of x relative to fragment's X. + + partialy(x) Derivative of x relative to fragment's Y. + + pop() Pop from stack. + + :math:`x^y` `x` to the power `y`. + + push(x) Push x on stack. + + round(x) Round x. + + trunc(x) Truncate x. + + +Keywords +------------- + + + discard Discard fragment. + + dst First destination register. + + dst0 First destination register. + + pc Program counter. + + src First source register. + + src0 First source register. + + src1 Second source register. + + src2 Third source register. + + target Label of target instruction. + + +Other tokens +=============== + + +Declaration Semantic +------------------------- + + + Follows Declaration token if Semantic bit is set. + + Since its purpose is to link a shader with other stages of the pipeline, + it is valid to follow only those Declaration tokens that declare a register + either in INPUT or OUTPUT file. + + SemanticName field contains the semantic name of the register being declared. + There is no default value. + + SemanticIndex is an optional subscript that can be used to distinguish + different register declarations with the same semantic name. The default value + is 0. + + The meanings of the individual semantic names are explained in the following + sections. + + +FACE +^^^^ + + Valid only in a fragment shader INPUT declaration. + + FACE.x is negative when the primitive is back facing. FACE.x is positive + when the primitive is front facing. diff --git a/src/gallium/docs/build/html/context.html b/src/gallium/docs/build/html/context.html index bd8166ac89..21bab45480 100644 --- a/src/gallium/docs/build/html/context.html +++ b/src/gallium/docs/build/html/context.html @@ -68,6 +68,18 @@ fragment samplers, and they are bound in groups. 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 @@ -77,42 +89,61 @@ objects. They all follow simple, one-method binding calls, e.g.

  • set_edgeflags
  • set_blend_color
  • set_clip_state
  • -
  • set_constant_buffer
  • -
  • set_framebuffer_state
  • set_polygon_stipple
  • set_scissor_state
  • set_viewport_state
  • -
  • set_fragment_sampler_textures
  • -
  • set_vertex_sampler_textures
  • -
  • set_vertex_buffers
  • 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.

    -
    -

    VBO Drawing

    -

    draw_arrays

    -

    draw_elements

    -

    draw_range_elements

    +
    +

    Flushing

    flush

    -
    -

    Surface Drawing

    +
    +

    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.

    -

    clear initializes entire buffers to an RGBA, depth, or stencil value, -depending on the formats of the buffers. Use set_framebuffer_state to -specify the buffers to clear.

    +

    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.

    @@ -128,10 +159,14 @@ specify the buffers to clear.

  • Context diff --git a/src/gallium/docs/build/html/index.html b/src/gallium/docs/build/html/index.html index 2001ba542b..a01603fe2d 100644 --- a/src/gallium/docs/build/html/index.html +++ b/src/gallium/docs/build/html/index.html @@ -49,7 +49,24 @@
  • What is Gallium?
  • -
  • TGSI
  • +
  • TGSI +
  • +
  • Explanation of symbols used +
  • +
  • Other tokens +
  • Screen diff --git a/src/gallium/docs/build/html/searchindex.js b/src/gallium/docs/build/html/searchindex.js index 08f2b406f8..a2836ca1a4 100644 --- a/src/gallium/docs/build/html/searchindex.js +++ b/src/gallium/docs/build/html/searchindex.js @@ -1 +1 @@ -Search.setIndex({desctypes:{},terms:{represent:4,all:[4,9,11],edg:2,queri:9,four:10,per:5,abil:9,follow:9,depend:[5,9],intermedi:4,sourc:9,straightforward:7,set_vertex_el:9,fan:5,level:10,list:6,emul:9,prefilt:10,small:9,dimens:10,impli:5,second:[5,11],pass:[1,11],light_twosid:5,zfail_op:11,index:0,what:[0,7,8],sprite_coord_mod:5,section:9,access:9,delet:9,rgba:[9,10],method:[0,3,9],themselv:5,inher:4,vertic:5,sinc:4,valu:[9,11],line_stipple_factor:5,search:0,vbo:9,shader:[0,1,4,5,6,9,11],permit:[5,9],chang:5,gourard:5,primit:5,modul:0,"boolean":3,visibl:5,oval:5,unit:10,encapsul:7,gl_rasterization_rul:5,from:[5,10],offset_unit:5,two:[6,9,11],call:9,get_paramf:3,type:6,desir:1,get_nam:3,raster:[0,1,5,9],pipe_primitive_quad:5,flag:5,templat:3,fill_ccw:5,point_size_min:5,poly_smooth:5,graphic:[4,7],retriev:9,setup:3,work:1,obvious:5,can:[1,3,9],control:[11,8,5,9,10],create_blend_st:9,indic:0,minimum:[5,10],alwai:[11,5,10],point_size_per_vertex:5,multipl:2,anoth:9,write:[7,11],how:[5,10],flatshad:[1,5],simpl:9,after:10,cso:[0,1,9],set_constant_buff:9,mai:[5,9],fail_op:11,pipe_stencil_op:11,principl:1,essenti:7,bind:9,element:5,inform:2,valuemask:11,order:11,rotat:5,through:[5,11],still:5,paramet:3,group:9,directli:9,bypass:5,main:5,pixel:5,non:9,"return":[1,3],thei:[1,11,5,9,10],fragment:[8,5,9,11],initi:9,get_vendor:3,line_smooth:5,cull_mod:5,introduct:[0,7],name:[3,9],token:6,each:[5,10],side:11,doxi:10,offset_ccw:5,clamp:10,chunk:5,special:9,out:[1,11,10],variabl:9,content:0,hardwar:[7,5,11],got:3,offset_cw:5,given:3,compare_func:10,begin_queri:9,"_rasterizer_st":9,reusabl:1,filter:10,turn:5,get_param:3,clump:11,first:5,oper:[9,11],rang:10,max_lod:10,render:[8,9],carri:11,independ:3,instruct:4,done:11,size:5,differ:5,stencil:[0,1,9,11],tradition:11,too:9,circl:5,scheme:9,moar:[3,5],store:11,min_img_filt:10,option:[5,10],pipe_tex_filt:10,specifi:[5,9],create_queri:9,part:[1,4,3],line_stipple_en:5,target:8,provid:[7,9],see:3,structur:11,texel:10,stippl:5,opaqu:1,result:[8,9],pre:5,fashion:7,clip:5,ani:1,"_blend_stat":9,bitfield:5,max_anisotropi:10,manner:[3,7],have:[11,5,9,10],tabl:0,need:5,"null":9,techniqu:2,unresolv:8,alias:[2,5],destroi:9,fill_cw:5,note:[1,5],take:2,set_viewport_st:9,pipe_func:11,pipelin:[5,9],shade:5,normal:10,buffer:[2,8,9,11],object:[1,7,3,9],most:[5,9],mipmap:10,alpha:[0,1,9,11],pipe_primitive_polygon:5,segment:5,tradit:10,clear:9,tgsi:[0,4],determin:5,blend:[0,1,8,9],end_queri:9,destroy_blend_st:9,wrap_:10,trivial:9,onli:4,front_wind:5,point_sprit:5,should:[8,5],get:3,set_scissor_st:9,stop:9,tungsten:4,tgsi_token:6,set_fragment_sampler_textur:9,enabl:[5,9,11],draw_el:9,pipe_primitive_triangle_fan:5,anisotrop:10,set:[5,9,10],set_framebuffer_st:9,smooth:[2,5],msaa:[2,5],wrap_t:10,wrap_r:10,fail:11,purest:9,pattern:5,state:[1,5,8,9,10,11],"import":[4,5],awai:5,triplet:9,screen:[0,3],min_mip_filt:10,entir:[5,9],lod_bia:10,both:[9,11],last:5,region:9,"_fs_state":9,min_lod:10,context:[0,1,3,9],line_last_pixel:5,mani:10,destroy_queri:9,load:10,undocu:[8,5,10],point:[3,5],color:[5,10],anti:[2,5],provok:5,devic:[3,7,9],three:11,been:11,get_query_result:9,treat:10,basic:2,sprite:5,normalized_coord:10,xxx:[3,11,8,5,10],coordin:10,minifi:10,togeth:11,func:11,present:9,multi:2,servic:7,properti:1,rectangular:5,behavior:8,glossari:[2,0],blit:9,set_edgeflag:9,destin:9,"_vs_state":9,sever:[7,5],set_blend_color:9,surface_fil:9,welcom:0,bind_fragment_sampler_st:9,perform:9,same:9,member:[1,5,6,8,10,11],handl:[1,9],compare_mod:10,zpass_op:11,document:[0,11],finish:9,driver:[4,7],effect:[1,5,10],refin:10,weird:10,multisampl:5,off:[8,5],center:5,surface_copi:9,scissor:5,exampl:9,poly_stipple_en:5,thi:[2,8,5,10],interpol:5,set_clip_st:9,dimension:10,usual:5,identifi:3,execut:11,tcl:5,simpli:5,languag:4,expos:10,except:5,sampler:[0,1,9,10],bypass_vs_clip_and_viewport:[1,5],pipe_tex_wrap:10,vendor:3,which:[1,7],format:[3,9],agnost:7,piec:9,bia:10,magnifi:10,amp:11,bit:5,specif:[1,3,9,5],integ:3,point_siz:5,api:[1,4,7,10],either:9,page:0,mag_img_filt:10,pipe_primitive_quad_strip:5,draw_range_el:9,some:10,back:3,sampl:[2,10],flush:9,guarante:9,bore:3,textur:[3,10],overlap:9,point_smooth:5,larg:7,select:10,refer:[11,10],core:[1,7],run:5,border_color:10,"_depth_stencil_alpha_st":9,appli:10,describ:4,writemask:11,actual:[5,11],gallium:[0,1,4,7,6],bind_vertex_sampler_st:9,set_vertex_buff:9,discard:11,disabl:10,"final":[8,9],"float":3,bound:[1,9,10],wrap:10,mere:5,flatshade_first:[1,5],lod:10,support:6,transform:5,avail:9,width:5,set_polygon_stippl:9,individu:10,"function":11,blend_en:8,set_vertex_sampler_textur:9,point_size_max:5,line:5,viewport:5,notat:10,draw_arrai:9,whether:[11,5,10],wish:5,caller:5,bind_blend_st:9,maximum:[5,10],line_stipple_pattern:5,offset_scal:5,constant:1,creat:[1,3,9],classic:9,certain:11,dure:11,repres:[3,9],implement:5,fill:[1,9],polygon:[2,5],when:[5,9,10],detail:10,test:[5,11],ref_valu:11,draw:9,is_format_support:3,vertex:[5,9],surfac:9,receiv:11,blitter:9,algorithm:5,rule:5,depth:[2,0,1,9,11],time:1,line_width:5,texture_cr:3},titles:["Welcome to Gallium’s documentation!","CSO","Glossary","Screen","TGSI","Rasterizer","Shader","Introduction","Blend","Context","Sampler","Depth, Stencil, & Alpha"],modules:{},descrefs:{},filenames:["index","cso","glossary","screen","tgsi","cso/rasterizer","cso/shader","intro","cso/blend","context","cso/sampler","cso/dsa"]}) \ No newline at end of file +Search.setIndex({desctypes:{},terms:{represent:4,all:[4,9,11],concept:9,edg:2,queri:[4,9],particular:9,four:[4,10],scalar:4,per:5,abil:9,follow:[4,9],depend:5,name:[3,4,9],intermedi:4,ps_2_x:[0,4],those:4,logarithm:4,sourc:[4,9],normalis:4,straightforward:7,fals:4,set_vertex_el:9,lrp:4,fan:5,partialx:4,level:10,pk4b:4,list:6,emul:9,prefilt:10,cosin:4,sine:4,small:9,div:4,round:4,cmp:4,dimens:10,impli:5,flr:4,up4b:4,sign:4,tex:4,second:[4,5,11],pass:[1,11],light_twosid:5,zfail_op:11,index:0,what:[0,7,8],sprite_coord_mod:5,sub:4,compar:4,neg:4,section:[4,9],current:9,delet:9,rgba:[9,10],method:[0,3,9],themselv:5,deriv:4,absolut:4,coeffici:4,inher:4,path:9,vertic:5,modifi:9,sinc:4,valu:[4,9,11],trunc:4,line_stipple_factor:5,search:0,shift:4,vbo:[],shader:[0,1,4,5,6,9,11],permit:[5,9],weird:10,gourard:5,semant:[0,4],txl:4,"boolean":3,txf:4,modul:0,txd:4,sgt:4,textur:[3,4,9,10],src2:4,src0:4,api:[1,4,7,10],brk:4,is_texture_referenc:9,visibl:5,oval:5,sge:4,txq:4,encapsul:7,gl_rasterization_rul:5,from:[0,4,5,9,10],offset_unit:5,subtract:4,regist:4,two:[4,6,9,11],program:4,call:[4,9],get_paramf:3,stage:4,type:6,more:9,desir:1,get_nam:3,raster:[0,1,5,9],pipe_primitive_quad:5,flag:5,indic:[0,4],fill_ccw:5,unpack:4,point_size_min:5,must:4,poly_smooth:5,graphic:[4,7],retriev:9,setup:3,work:1,obvious:5,can:[1,4,3,9],cal:4,purpos:4,root:4,fetch:4,control:[11,8,5,9,10],create_blend_st:9,pipe_surfac:9,templat:3,minimum:[4,5,10],want:9,dp2a:4,unsign:4,occur:4,gl_nv_vertex_program:[0,4],alwai:[11,5,10],point_size_per_vertex:5,multipl:[2,9],divid:4,anoth:9,write:[7,9,11],how:[4,5,9,10],flatshad:[1,5],simpl:9,sin:4,"42101e":[],product:4,sne:4,resourc:9,max:4,after:10,cso:[0,1,9],set_constant_buff:9,mad:4,mai:[5,9],end:4,fail_op:11,pipe_stencil_op:11,principl:1,essenti:7,third:4,bind:9,counter:4,element:5,endprim:4,inform:2,valuemask:11,order:11,rotat:5,over:9,move:[4,9],through:[5,11],sqrt:[],still:5,paramet:3,group:9,directli:9,bypass:5,main:5,easier:9,non:9,"return":[1,4,3],greater:4,thei:[1,11,5,9,10],fragment:[4,8,5,9,11],initi:9,get_vendor:3,"break":4,line_smooth:5,cull_mod:5,front:4,nop:4,introduct:[0,7],"884467e":[],separ:9,token:[0,4,6],each:[5,10],side:11,doxi:10,offset_ccw:5,clamp:[4,10],chunk:5,continu:4,bra:4,frac:4,special:[4,9],out:[1,11,10],variabl:9,dst:4,ret:4,content:0,vector:4,rel:4,hardwar:[7,5,11],got:3,linear:4,offset_cw:5,given:3,compare_func:10,endsub:4,base:4,begin_queri:9,"_rasterizer_st":9,reusabl:1,endrep:4,filter:10,turn:5,get_param:3,clump:11,first:[4,5],oper:[4,9,11],glsl:[0,4],rang:10,max_lod:10,render:[8,9],carri:11,independ:3,restrict:4,clear:9,instruct:4,done:11,size:[4,5],differ:[4,5],stencil:[0,1,9,11],exponenti:4,tradition:11,too:9,circl:5,scheme:9,moar:[3,5],store:11,nrm4:4,min_img_filt:10,option:[4,5,10],pipe_tex_filt:10,specifi:5,create_queri:9,part:[1,4,3],than:4,line_stipple_en:5,target:[4,8],keyword:[0,4],provid:[7,9],remov:4,see:3,structur:11,texel:[4,10],stippl:5,str:4,opaqu:1,posit:4,result:[8,9],pre:5,fashion:7,clip:5,pk4ub:4,ani:[1,9],"_blend_stat":9,bitfield:5,subroutin:4,max_anisotropi:10,txb:4,manner:[3,7],have:[11,5,9,10],tabl:0,need:5,seem:9,"null":9,bitwis:4,techniqu:2,unresolv:8,alias:[2,5],destroi:9,fill_cw:5,note:[1,4,5],ex2:4,take:2,set_viewport_st:9,pipe_func:11,noth:4,singl:9,pipelin:[4,5,9],xor:4,shade:5,normal:10,buffer:[2,8,9,11],object:[1,7,3,9],most:[5,9],sfl:4,mipmap:10,alpha:[0,1,9,11],pipe_primitive_polygon:5,segment:5,tradit:10,pk2h:4,nail:9,tgsi:[0,4],face:4,pipe:4,declar:[0,4],determin:5,pk2u:4,left:4,blend:[0,1,8,9],sum:4,dot:4,end_queri:9,popa:4,destroy_blend_st:9,wrap_:10,dst0:4,trivial:9,access:9,onli:[4,9],dp4:4,dp3:4,dp2:4,front_wind:5,point_sprit:5,should:[8,5],busi:9,endloop:4,lit:4,variou:9,get:3,set_scissor_st:9,stop:9,ceil:4,mul:4,tungsten:4,ssg:4,tgsi_token:6,tbd:4,set_fragment_sampler_textur:9,shr:4,enabl:[5,9,11],draw_el:9,"default":4,statist:9,contain:4,anisotrop:10,shl:4,valid:4,dph:4,arr:4,set:[4,5,9,10],set_framebuffer_st:9,seq:4,smooth:[2,5],ara:4,msaa:[2,5],wrap_t:10,wrap_r:10,fail:11,arl:4,purest:9,modulu:4,project:4,pattern:5,label:4,state:[1,5,8,9,10,11],between:4,"import":[4,5],subscript:4,triplet:9,screen:[0,3],min_mip_filt:10,entir:5,is_buffer_referenc:9,lod_bia:10,addit:9,both:[9,11],last:5,framebuff:9,x2d:4,region:9,equal:4,min_lod:10,context:[0,1,3,9],line_last_pixel:5,mani:10,destroy_queri:9,load:[4,10],undocu:[8,5,10],point:[3,5,9],color:[5,10],pow:4,address:4,pop:4,distinguish:4,callnz:4,reciproc:4,anti:[2,5],provok:5,lg2:4,asdf:[],light:4,endif:4,devic:[3,7,9],three:[4,11],been:11,compon:4,get_query_result:9,treat:10,basic:2,bgnsub:4,up4ub:4,sprite:5,nrm:4,normalized_coord:10,xxx:[3,4,5,8,10,11],coordin:[4,10],zero:4,minifi:10,texture_cr:3,func:11,predic:4,bgnloop:4,sad:4,present:9,multi:2,ident:4,slt:4,servic:7,properti:1,batch:9,rectangular:5,behavior:8,glossari:[2,0],sle:4,loop:4,pack:[4,9],gl_nv_vertex_program2:[0,4],cont:4,set_edgeflag:9,endfor:4,destin:[4,9],unit:10,primit:[4,5],"_vs_state":9,sever:[7,5],set_blend_color:9,surface_fil:9,welcom:0,bind_fragment_sampler_st:9,perform:9,make:9,cross:4,same:[4,9],member:[1,5,6,8,10,11],handl:[1,9],compare_mod:10,instanc:9,zpass_op:11,document:[0,11],difficult:9,finish:9,nest:9,driver:[4,7,9],effect:[1,5,10],mov:4,capabl:4,rais:[],kil:4,stack:4,squar:4,multisampl:5,off:[8,5],center:5,surface_copi:9,min:4,aisl:4,scissor:5,exampl:9,reflect:4,poly_stipple_en:5,thi:[2,4,5,8,9,10],interpol:[4,5],set_clip_st:9,dimension:10,i2f:4,usual:5,explan:[0,4],distanc:4,identifi:3,execut:11,less:4,kilp:4,up2u:4,up2h:4,tcl:5,simpli:5,semanticnam:4,breakc:4,languag:4,begin:4,gl_nv_geometry_program4:[0,4],expos:10,except:5,add:[4,9],cleanup:4,exercis:9,sampler:[0,1,9,10],els:4,mod:4,bypass_vs_clip_and_viewport:[1,5],match:4,pipe_tex_wrap:10,vendor:3,which:[1,7],format:[3,9],read:9,agnost:7,piec:9,bia:[4,10],bgnfor:4,magnifi:10,amp:11,bit:[4,5],truncat:4,apart:9,like:9,specif:[1,3,9,5],integ:[3,4],point_siz:5,src1:4,either:[4,9],output:4,page:0,mag_img_filt:10,refin:10,pipe_primitive_quad_strip:5,right:4,draw_range_el:9,some:[9,10],blend_en:8,pusha:4,opcod:4,sampl:[2,10],flush:9,guarante:9,bore:3,pixel:5,ddy:4,ddx:4,partiali:4,though:9,overlap:9,point_smooth:5,multipli:4,cnd:4,tracker:9,larg:7,select:10,condit:4,txp:4,refer:[11,10],core:[1,7],run:5,rsq:4,border_color:10,ifc:4,"_depth_stencil_alpha_st":9,appli:10,describ:[4,9],writemask:11,src:4,actual:[5,11],gallium:[0,1,4,7,6],semanticindex:4,bind_vertex_sampler_st:9,set_vertex_buff:9,stand:9,awai:5,discard:[4,11],approxim:4,mean:4,disabl:10,"final":[8,9],"float":[3,4],bound:[1,9,10],down:9,explain:4,wrap:10,chang:[5,9],mere:5,flatshade_first:[1,5],log:4,lod:[4,10],support:[4,6],rcp:4,transform:[4,5],xpd:4,avail:9,width:5,set_polygon_stippl:9,interfac:9,fraction:4,individu:[4,10],rcc:4,"function":[0,4,9,11],homogen:4,back:[3,4],set_vertex_sampler_textur:9,point_size_max:5,link:4,blit:9,line:5,"true":4,viewport:5,gl_nv_gpu_program4:[0,4],notat:10,flavour:9,input:4,draw_arrai:9,whether:[11,5,10],wish:5,caller:5,bind_blend_st:9,maximum:[4,5,10],"abstract":9,line_stipple_pattern:5,emit:4,offset_scal:5,gather:9,constant:[1,4],creat:[1,3,9],classic:9,certain:11,dure:11,rfl:4,repres:[3,9],implement:5,file:4,fill:[1,9],polygon:[2,5],floor:4,when:[4,5,9,10],detail:10,power:4,field:4,other:[0,4],lookup:4,futur:9,branch:4,test:[5,11],ref_valu:11,draw:9,repeat:4,exp:4,is_format_support:3,symbol:[0,4],vertex:[5,9],surfac:9,consid:4,receiv:11,blitter:9,algorithm:5,rule:5,pipe_primitive_triangle_fan:5,depth:[2,0,1,9,11],"_fs_state":9,potenti:4,time:[1,4],push:4,line_width:5,rep:4,togeth:11},titles:["Welcome to Gallium’s documentation!","CSO","Glossary","Screen","TGSI","Rasterizer","Shader","Introduction","Blend","Context","Sampler","Depth, Stencil, & Alpha"],modules:{},descrefs:{},filenames:["index","cso","glossary","screen","tgsi","cso/rasterizer","cso/shader","intro","cso/blend","context","cso/sampler","cso/dsa"]}) \ No newline at end of file diff --git a/src/gallium/docs/build/html/tgsi.html b/src/gallium/docs/build/html/tgsi.html index ede551e79e..207607b90a 100644 --- a/src/gallium/docs/build/html/tgsi.html +++ b/src/gallium/docs/build/html/tgsi.html @@ -51,6 +51,823 @@ for describing shaders. Since Gallium is inherently shaderful, shaders are an important part of the API. TGSI is the only intermediate representation used by all drivers.

    +
    +

    From GL_NV_vertex_program

    +

    ARL - Address Register Load

    +
    +

    dst.x = \lfloor src.x\rfloor
+
+dst.y = \lfloor src.y\rfloor
+
+dst.z = \lfloor src.z\rfloor
+
+dst.w = \lfloor src.w\rfloor

    +

    MOV - Move

    +
    +

    dst.x = src.x
+
+dst.y = src.y
+
+dst.z = src.z
+
+dst.w = src.w

    +

    LIT - Light Coefficients

    +
    +

    dst.x = 1
+
+dst.y = max(src.x, 0)
+
+dst.z = (src.x > 0) ? max(src.y, 0)^{clamp(src.w, -128, 128))} : 0
+
+dst.w = 1

    +

    RCP - Reciprocal

    +
    +

    dst.x = \frac{1}{src.x}
+
+dst.y = \frac{1}{src.x}
+
+dst.z = \frac{1}{src.x}
+
+dst.w = \frac{1}{src.x}

    +

    RSQ - Reciprocal Square Root

    +
    +

    dst.x = \frac{1}{\sqrt{|src.x|}}
+
+dst.y = \frac{1}{\sqrt{|src.x|}}
+
+dst.z = \frac{1}{\sqrt{|src.x|}}
+
+dst.w = \frac{1}{\sqrt{|src.x|}}

    +

    EXP - Approximate Exponential Base 2

    +
    +

    dst.x = 2^{\lfloor src.x\rfloor}
+
+dst.y = src.x - \lfloor src.x\rfloor
+
+dst.z = 2^{src.x}
+
+dst.w = 1

    +

    LOG - Approximate Logarithm Base 2

    +
    +

    dst.x = \lfloor\log_2{|src.x|}\rfloor
+
+dst.y = \frac{|src.x|}{2^{\lfloor\log_2{|src.x|}\rfloor}}
+
+dst.z = \log_2{|src.x|}
+
+dst.w = 1

    +

    MUL - Multiply

    +
    +

    dst.x = src0.x \times src1.x
+
+dst.y = src0.y \times src1.y
+
+dst.z = src0.z \times src1.z
+
+dst.w = src0.w \times src1.w

    +

    ADD - Add

    +
    +

    dst.x = src0.x + src1.x
+
+dst.y = src0.y + src1.y
+
+dst.z = src0.z + src1.z
+
+dst.w = src0.w + src1.w

    +

    DP3 - 3-component Dot Product

    +
    +

    dst.x = src0.x \times src1.x + src0.y \times src1.y + src0.z \times src1.z
+
+dst.y = src0.x \times src1.x + src0.y \times src1.y + src0.z \times src1.z
+
+dst.z = src0.x \times src1.x + src0.y \times src1.y + src0.z \times src1.z
+
+dst.w = src0.x \times src1.x + src0.y \times src1.y + src0.z \times src1.z

    +

    DP4 - 4-component Dot Product

    +
    +

    dst.x = src0.x \times src1.x + src0.y \times src1.y + src0.z \times src1.z + src0.w \times src1.w
+
+dst.y = src0.x \times src1.x + src0.y \times src1.y + src0.z \times src1.z + src0.w \times src1.w
+
+dst.z = src0.x \times src1.x + src0.y \times src1.y + src0.z \times src1.z + src0.w \times src1.w
+
+dst.w = src0.x \times src1.x + src0.y \times src1.y + src0.z \times src1.z + src0.w \times src1.w

    +

    DST - Distance Vector

    +
    +

    dst.x = 1
+
+dst.y = src0.y \times src1.y
+
+dst.z = src0.z
+
+dst.w = src1.w

    +

    MIN - Minimum

    +
    +

    dst.x = min(src0.x, src1.x)
+
+dst.y = min(src0.y, src1.y)
+
+dst.z = min(src0.z, src1.z)
+
+dst.w = min(src0.w, src1.w)

    +

    MAX - Maximum

    +
    +

    dst.x = max(src0.x, src1.x)
+
+dst.y = max(src0.y, src1.y)
+
+dst.z = max(src0.z, src1.z)
+
+dst.w = max(src0.w, src1.w)

    +

    SLT - Set On Less Than

    +
    +

    dst.x = (src0.x < src1.x) ? 1 : 0
+
+dst.y = (src0.y < src1.y) ? 1 : 0
+
+dst.z = (src0.z < src1.z) ? 1 : 0
+
+dst.w = (src0.w < src1.w) ? 1 : 0

    +

    SGE - Set On Greater Equal Than

    +
    +

    dst.x = (src0.x >= src1.x) ? 1 : 0
+
+dst.y = (src0.y >= src1.y) ? 1 : 0
+
+dst.z = (src0.z >= src1.z) ? 1 : 0
+
+dst.w = (src0.w >= src1.w) ? 1 : 0

    +

    MAD - Multiply And Add

    +
    +

    dst.x = src0.x \times src1.x + src2.x
+
+dst.y = src0.y \times src1.y + src2.y
+
+dst.z = src0.z \times src1.z + src2.z
+
+dst.w = src0.w \times src1.w + src2.w

    +

    SUB - Subtract

    +
    +

    dst.x = src0.x - src1.x
+
+dst.y = src0.y - src1.y
+
+dst.z = src0.z - src1.z
+
+dst.w = src0.w - src1.w

    +

    LRP - Linear Interpolate

    +
    +

    dst.x = src0.x \times (src1.x - src2.x) + src2.x
+
+dst.y = src0.y \times (src1.y - src2.y) + src2.y
+
+dst.z = src0.z \times (src1.z - src2.z) + src2.z
+
+dst.w = src0.w \times (src1.w - src2.w) + src2.w

    +

    CND - Condition

    +
    +

    dst.x = (src2.x > 0.5) ? src0.x : src1.x
+
+dst.y = (src2.y > 0.5) ? src0.y : src1.y
+
+dst.z = (src2.z > 0.5) ? src0.z : src1.z
+
+dst.w = (src2.w > 0.5) ? src0.w : src1.w

    +

    DP2A - 2-component Dot Product And Add

    +
    +

    dst.x = src0.x \times src1.x + src0.y \times src1.y + src2.x
+
+dst.y = src0.x \times src1.x + src0.y \times src1.y + src2.x
+
+dst.z = src0.x \times src1.x + src0.y \times src1.y + src2.x
+
+dst.w = src0.x \times src1.x + src0.y \times src1.y + src2.x

    +

    FRAC - Fraction

    +
    +

    dst.x = src.x - \lfloor src.x\rfloor
+
+dst.y = src.y - \lfloor src.y\rfloor
+
+dst.z = src.z - \lfloor src.z\rfloor
+
+dst.w = src.w - \lfloor src.w\rfloor

    +

    CLAMP - Clamp

    +
    +

    dst.x = clamp(src0.x, src1.x, src2.x)
+
+dst.y = clamp(src0.y, src1.y, src2.y)
+
+dst.z = clamp(src0.z, src1.z, src2.z)
+
+dst.w = clamp(src0.w, src1.w, src2.w)

    +

    FLR - Floor

    +

    This is identical to ARL.

    +
    +

    dst.x = \lfloor src.x\rfloor
+
+dst.y = \lfloor src.y\rfloor
+
+dst.z = \lfloor src.z\rfloor
+
+dst.w = \lfloor src.w\rfloor

    +

    ROUND - Round

    +
    +

    dst.x = round(src.x)
+
+dst.y = round(src.y)
+
+dst.z = round(src.z)
+
+dst.w = round(src.w)

    +

    EX2 - Exponential Base 2

    +
    +

    dst.x = 2^{src.x}
+
+dst.y = 2^{src.x}
+
+dst.z = 2^{src.x}
+
+dst.w = 2^{src.x}

    +

    LG2 - Logarithm Base 2

    +
    +

    dst.x = \log_2{src.x}
+
+dst.y = \log_2{src.x}
+
+dst.z = \log_2{src.x}
+
+dst.w = \log_2{src.x}

    +

    POW - Power

    +
    +

    dst.x = src0.x^{src1.x}
+
+dst.y = src0.x^{src1.x}
+
+dst.z = src0.x^{src1.x}
+
+dst.w = src0.x^{src1.x}

    +

    XPD - Cross Product

    +
    +

    dst.x = src0.y \times src1.z - src1.y \times src0.z
+
+dst.y = src0.z \times src1.x - src1.z \times src0.x
+
+dst.z = src0.x \times src1.y - src1.x \times src0.y
+
+dst.w = 1

    +

    ABS - Absolute

    +
    +

    dst.x = |src.x|
+
+dst.y = |src.y|
+
+dst.z = |src.z|
+
+dst.w = |src.w|

    +

    RCC - Reciprocal Clamped

    +

    XXX cleanup on aisle three

    +
    +

    dst.x = (1 / src.x) > 0 ? clamp(1 / src.x, 5.42101e-020, 1.884467e+019) : clamp(1 / src.x, -1.884467e+019, -5.42101e-020)
+
+dst.y = (1 / src.x) > 0 ? clamp(1 / src.x, 5.42101e-020, 1.884467e+019) : clamp(1 / src.x, -1.884467e+019, -5.42101e-020)
+
+dst.z = (1 / src.x) > 0 ? clamp(1 / src.x, 5.42101e-020, 1.884467e+019) : clamp(1 / src.x, -1.884467e+019, -5.42101e-020)
+
+dst.w = (1 / src.x) > 0 ? clamp(1 / src.x, 5.42101e-020, 1.884467e+019) : clamp(1 / src.x, -1.884467e+019, -5.42101e-020)

    +

    DPH - Homogeneous Dot Product

    +
    +

    dst.x = src0.x \times src1.x + src0.y \times src1.y + src0.z \times src1.z + src1.w
+
+dst.y = src0.x \times src1.x + src0.y \times src1.y + src0.z \times src1.z + src1.w
+
+dst.z = src0.x \times src1.x + src0.y \times src1.y + src0.z \times src1.z + src1.w
+
+dst.w = src0.x \times src1.x + src0.y \times src1.y + src0.z \times src1.z + src1.w

    +

    COS - Cosine

    +
    +

    dst.x = \cos{src.x}
+
+dst.y = \cos{src.x}
+
+dst.z = \cos{src.x}
+
+dst.w = \cos{src.w}

    +

    DDX - Derivative Relative To X

    +
    +

    dst.x = partialx(src.x)
+
+dst.y = partialx(src.y)
+
+dst.z = partialx(src.z)
+
+dst.w = partialx(src.w)

    +

    DDY - Derivative Relative To Y

    +
    +

    dst.x = partialy(src.x)
+
+dst.y = partialy(src.y)
+
+dst.z = partialy(src.z)
+
+dst.w = partialy(src.w)

    +

    KILP - Predicated Discard

    +
    +discard
    +

    PK2H - Pack Two 16-bit Floats

    +
    +TBD
    +

    PK2US - Pack Two Unsigned 16-bit Scalars

    +
    +TBD
    +

    PK4B - Pack Four Signed 8-bit Scalars

    +
    +TBD
    +

    PK4UB - Pack Four Unsigned 8-bit Scalars

    +
    +TBD
    +

    RFL - Reflection Vector

    +
    +

    dst.x = 2 \times (src0.x \times src1.x + src0.y \times src1.y + src0.z \times src1.z) / (src0.x \times src0.x + src0.y \times src0.y + src0.z \times src0.z) \times src0.x - src1.x
+
+dst.y = 2 \times (src0.x \times src1.x + src0.y \times src1.y + src0.z \times src1.z) / (src0.x \times src0.x + src0.y \times src0.y + src0.z \times src0.z) \times src0.y - src1.y
+
+dst.z = 2 \times (src0.x \times src1.x + src0.y \times src1.y + src0.z \times src1.z) / (src0.x \times src0.x + src0.y \times src0.y + src0.z \times src0.z) \times src0.z - src1.z
+
+dst.w = 1

    +

    Considered for removal.

    +

    SEQ - Set On Equal

    +
    +

    dst.x = (src0.x == src1.x) ? 1 : 0
+dst.y = (src0.y == src1.y) ? 1 : 0
+dst.z = (src0.z == src1.z) ? 1 : 0
+dst.w = (src0.w == src1.w) ? 1 : 0

    +

    SFL - Set On False

    +
    +

    dst.x = 0
+dst.y = 0
+dst.z = 0
+dst.w = 0

    +

    Considered for removal.

    +

    SGT - Set On Greater Than

    +
    +

    dst.x = (src0.x > src1.x) ? 1 : 0
+dst.y = (src0.y > src1.y) ? 1 : 0
+dst.z = (src0.z > src1.z) ? 1 : 0
+dst.w = (src0.w > src1.w) ? 1 : 0

    +

    SIN - Sine

    +
    +

    dst.x = \sin{src.x}
+
+dst.y = \sin{src.x}
+
+dst.z = \sin{src.x}
+
+dst.w = \sin{src.w}

    +

    SLE - Set On Less Equal Than

    +
    +

    dst.x = (src0.x <= src1.x) ? 1 : 0
+dst.y = (src0.y <= src1.y) ? 1 : 0
+dst.z = (src0.z <= src1.z) ? 1 : 0
+dst.w = (src0.w <= src1.w) ? 1 : 0

    +

    SNE - Set On Not Equal

    +
    +

    dst.x = (src0.x != src1.x) ? 1 : 0
+dst.y = (src0.y != src1.y) ? 1 : 0
+dst.z = (src0.z != src1.z) ? 1 : 0
+dst.w = (src0.w != src1.w) ? 1 : 0

    +

    STR - Set On True

    +
    +

    dst.x = 1
+dst.y = 1
+dst.z = 1
+dst.w = 1

    +

    TEX - Texture Lookup

    +
    +TBD
    +

    TXD - Texture Lookup with Derivatives

    +
    +TBD
    +

    TXP - Projective Texture Lookup

    +
    +TBD
    +

    UP2H - Unpack Two 16-Bit Floats

    +
    +

    TBD

    +

    Considered for removal.

    +
    +

    UP2US - Unpack Two Unsigned 16-Bit Scalars

    +
    +

    TBD

    +

    Considered for removal.

    +
    +

    UP4B - Unpack Four Signed 8-Bit Values

    +
    +

    TBD

    +

    Considered for removal.

    +
    +

    UP4UB - Unpack Four Unsigned 8-Bit Scalars

    +
    +

    TBD

    +

    Considered for removal.

    +
    +

    X2D - 2D Coordinate Transformation

    +
    +

    dst.x = src0.x + src1.x \times src2.x + src1.y \times src2.y
+dst.y = src0.y + src1.x \times src2.z + src1.y \times src2.w
+dst.z = src0.x + src1.x \times src2.x + src1.y \times src2.y
+dst.w = src0.y + src1.x \times src2.z + src1.y \times src2.w

    +

    Considered for removal.

    +
    +
    +

    GL_NV_vertex_program2

    +

    ARA - Address Register Add

    +
    +

    TBD

    +

    Considered for removal.

    +
    +

    ARR - Address Register Load With Round

    +
    +

    dst.x = round(src.x)
+
+dst.y = round(src.y)
+
+dst.z = round(src.z)
+
+dst.w = round(src.w)

    +

    BRA - Branch

    +
    +

    pc = target

    +

    Considered for removal.

    +
    +

    CAL - Subroutine Call

    +
    +push(pc) +pc = target
    +

    RET - Subroutine Call Return

    +
    +

    pc = pop()

    +

    Potential restrictions: +times Only occurs at end of function.

    +
    +

    SSG - Set Sign

    +
    +

    dst.x = (src.x > 0) ? 1 : (src.x < 0) ? -1 : 0
+
+dst.y = (src.y > 0) ? 1 : (src.y < 0) ? -1 : 0
+
+dst.z = (src.z > 0) ? 1 : (src.z < 0) ? -1 : 0
+
+dst.w = (src.w > 0) ? 1 : (src.w < 0) ? -1 : 0

    +

    CMP - Compare

    +
    +

    dst.x = (src0.x < 0) ? src1.x : src2.x
+
+dst.y = (src0.y < 0) ? src1.y : src2.y
+
+dst.z = (src0.z < 0) ? src1.z : src2.z
+
+dst.w = (src0.w < 0) ? src1.w : src2.w

    +

    KIL - Conditional Discard

    +
    +

    if (src.x < 0 || src.y < 0 || src.z < 0 || src.w < 0)
+  discard
+endif

    +

    SCS - Sine Cosine

    +
    +

    dst.x = \cos{src.x}
+
+dst.y = \sin{src.x}
+
+dst.z = 0
+
+dst.y = 1

    +

    TXB - Texture Lookup With Bias

    +
    +TBD
    +

    NRM - 3-component Vector Normalise

    +
    +

    dst.x = src.x / (src.x \times src.x + src.y \times src.y + src.z \times src.z)
+
+dst.y = src.y / (src.x \times src.x + src.y \times src.y + src.z \times src.z)
+
+dst.z = src.z / (src.x \times src.x + src.y \times src.y + src.z \times src.z)
+
+dst.w = 1

    +

    DIV - Divide

    +
    +

    dst.x = \frac{src0.x}{src1.x}
+
+dst.y = \frac{src0.y}{src1.y}
+
+dst.z = \frac{src0.z}{src1.z}
+
+dst.w = \frac{src0.w}{src1.w}

    +

    DP2 - 2-component Dot Product

    +
    +

    dst.x = src0.x \times src1.x + src0.y \times src1.y
+
+dst.y = src0.x \times src1.x + src0.y \times src1.y
+
+dst.z = src0.x \times src1.x + src0.y \times src1.y
+
+dst.w = src0.x \times src1.x + src0.y \times src1.y

    +

    TXL - Texture Lookup With LOD

    +
    +TBD
    +

    BRK - Break

    +
    +TBD
    +

    IF - If

    +
    +TBD
    +

    BGNFOR - Begin a For-Loop

    +
    +

    dst.x = floor(src.x) +dst.y = floor(src.y) +dst.z = floor(src.z)

    +
    +
    if (dst.y <= 0)
    +
    pc = [matching ENDFOR] + 1
    +
    +

    endif

    +
    +
    Note: The destination must be a loop register.
    +
    The source must be a constant register.
    +
    +

    Considered for cleanup / removal.

    +
    +

    REP - Repeat

    +
    +TBD
    +

    ELSE - Else

    +
    +TBD
    +

    ENDIF - End If

    +
    +TBD
    +

    ENDFOR - End a For-Loop

    +
    +

    dst.x = dst.x + dst.z +dst.y = dst.y - 1.0

    +
    +
    if (dst.y > 0)
    +
    pc = [matching BGNFOR instruction] + 1
    +
    +

    endif

    +

    Note: The destination must be a loop register.

    +

    Considered for cleanup / removal.

    +
    +

    ENDREP - End Repeat

    +
    +TBD
    +

    PUSHA - Push Address Register On Stack

    +
    +

    push(src.x) +push(src.y) +push(src.z) +push(src.w)

    +

    Considered for cleanup / removal.

    +
    +

    POPA - Pop Address Register From Stack

    +
    +

    dst.w = pop() +dst.z = pop() +dst.y = pop() +dst.x = pop()

    +

    Considered for cleanup / removal.

    +
    +
    +
    +

    GL_NV_gpu_program4

    +

    Support for these opcodes indicated by a special pipe capability bit (TBD).

    +

    CEIL - Ceiling

    +
    +

    dst.x = \lceil src.x\rceil
+
+dst.y = \lceil src.y\rceil
+
+dst.z = \lceil src.z\rceil
+
+dst.w = \lceil src.w\rceil

    +

    I2F - Integer To Float

    +
    +

    dst.x = (float) src.x
+
+dst.y = (float) src.y
+
+dst.z = (float) src.z
+
+dst.w = (float) src.w

    +

    NOT - Bitwise Not

    +
    +

    dst.x = ~src.x
+
+dst.y = ~src.y
+
+dst.z = ~src.z
+
+dst.w = ~src.w

    +

    TRUNC - Truncate

    +

    XXX how is this different from floor?

    +
    +

    dst.x = trunc(src.x)
+
+dst.y = trunc(src.y)
+
+dst.z = trunc(src.z)
+
+dst.w = trunc(src.w)

    +

    SHL - Shift Left

    +
    +

    dst.x = src0.x << src1.x
+
+dst.y = src0.y << src1.x
+
+dst.z = src0.z << src1.x
+
+dst.w = src0.w << src1.x

    +

    SHR - Shift Right

    +
    +

    dst.x = src0.x >> src1.x
+
+dst.y = src0.y >> src1.x
+
+dst.z = src0.z >> src1.x
+
+dst.w = src0.w >> src1.x

    +

    AND - Bitwise And

    +
    +

    dst.x = src0.x & src1.x
+
+dst.y = src0.y & src1.y
+
+dst.z = src0.z & src1.z
+
+dst.w = src0.w & src1.w

    +

    OR - Bitwise Or

    +
    +

    dst.x = src0.x | src1.x
+
+dst.y = src0.y | src1.y
+
+dst.z = src0.z | src1.z
+
+dst.w = src0.w | src1.w

    +

    MOD - Modulus

    +
    +

    dst.x = src0.x \bmod src1.x
+
+dst.y = src0.y \bmod src1.y
+
+dst.z = src0.z \bmod src1.z
+
+dst.w = src0.w \bmod src1.w

    +

    XOR - Bitwise Xor

    +
    +

    dst.x = src0.x ^ src1.x
+
+dst.y = src0.y ^ src1.y
+
+dst.z = src0.z ^ src1.z
+
+dst.w = src0.w ^ src1.w

    +

    SAD - Sum Of Absolute Differences

    +
    +

    dst.x = |src0.x - src1.x| + src2.x
+
+dst.y = |src0.y - src1.y| + src2.y
+
+dst.z = |src0.z - src1.z| + src2.z
+
+dst.w = |src0.w - src1.w| + src2.w

    +

    TXF - Texel Fetch

    +
    +TBD
    +

    TXQ - Texture Size Query

    +
    +TBD
    +

    CONT - Continue

    +
    +TBD
    +
    +
    +

    GL_NV_geometry_program4

    +

    EMIT - Emit

    +
    +TBD
    +

    ENDPRIM - End Primitive

    +
    +TBD
    +
    +
    +

    GLSL

    +

    BGNLOOP - Begin a Loop

    +
    +TBD
    +

    BGNSUB - Begin Subroutine

    +
    +TBD
    +

    ENDLOOP - End a Loop

    +
    +TBD
    +

    ENDSUB - End Subroutine

    +
    +TBD
    +

    NOP - No Operation

    +
    +Do nothing.
    +

    NRM4 - 4-component Vector Normalise

    +
    +

    dst.x = \frac{src.x}{src.x \times src.x + src.y \times src.y + src.z \times src.z + src.w \times src.w}
+
+dst.y = \frac{src.y}{src.x \times src.x + src.y \times src.y + src.z \times src.z + src.w \times src.w}
+
+dst.z = \frac{src.z}{src.x \times src.x + src.y \times src.y + src.z \times src.z + src.w \times src.w}
+
+dst.w = \frac{src.w}{src.x \times src.x + src.y \times src.y + src.z \times src.z + src.w \times src.w}

    +
    +
    +

    ps_2_x

    +

    CALLNZ - Subroutine Call If Not Zero

    +
    +TBD
    +

    IFC - If

    +
    +TBD
    +

    BREAKC - Break Conditional

    +
    +TBD
    +
    + +
    +

    Explanation of symbols used

    +
    +

    Functions

    +
    +

    |x| Absolute value of x.

    +

    \lceil x \rceil Ceiling of x.

    +
    +
    clamp(x,y,z) Clamp x between y and z.
    +
    (x < y) ? y : (x > z) ? z : x
    +
    +

    \lfloor x\rfloor Floor of x.

    +

    \log_2{x} Logarithm of x, base 2.

    +
    +
    max(x,y) Maximum of x and y.
    +
    (x > y) ? x : y
    +
    min(x,y) Minimum of x and y.
    +
    (x < y) ? x : y
    +
    +

    partialx(x) Derivative of x relative to fragment’s X.

    +

    partialy(x) Derivative of x relative to fragment’s Y.

    +

    pop() Pop from stack.

    +

    x^y x to the power y.

    +

    push(x) Push x on stack.

    +

    round(x) Round x.

    +

    trunc(x) Truncate x.

    +
    +
    +
    +

    Keywords

    +
    +

    discard Discard fragment.

    +

    dst First destination register.

    +

    dst0 First destination register.

    +

    pc Program counter.

    +

    src First source register.

    +

    src0 First source register.

    +

    src1 Second source register.

    +

    src2 Third source register.

    +

    target Label of target instruction.

    +
    +
    +
    +
    +

    Other tokens

    +
    +

    Declaration Semantic

    +
    +

    Follows Declaration token if Semantic bit is set.

    +

    Since its purpose is to link a shader with other stages of the pipeline, +it is valid to follow only those Declaration tokens that declare a register +either in INPUT or OUTPUT file.

    +

    SemanticName field contains the semantic name of the register being declared. +There is no default value.

    +

    SemanticIndex is an optional subscript that can be used to distinguish +different register declarations with the same semantic name. The default value +is 0.

    +

    The meanings of the individual semantic names are explained in the following +sections.

    +
    +
    +

    FACE

    +
    +

    Valid only in a fragment shader INPUT declaration.

    +

    FACE.x is negative when the primitive is back facing. FACE.x is positive +when the primitive is front facing.

    +
    +
    +
    @@ -59,6 +876,31 @@ used by all drivers.

    +

    Table Of Contents

    + +

    Previous topic

    Introduction

    -- cgit v1.2.3 From 5bcd26c1725c5782875d329eb5f5637d4a95dd1f Mon Sep 17 00:00:00 2001 From: Corbin Simpson Date: Mon, 21 Dec 2009 21:04:10 -0800 Subject: docs: Re-adjust headers for TGSI, regenerate. --- src/gallium/docs/build/html/_sources/tgsi.txt | 35 ++++++++++---------- src/gallium/docs/build/html/index.html | 18 ++--------- src/gallium/docs/build/html/searchindex.js | 2 +- src/gallium/docs/build/html/tgsi.html | 46 +++++++++++++++------------ src/gallium/docs/source/tgsi.rst | 35 ++++++++++---------- 5 files changed, 68 insertions(+), 68 deletions(-) (limited to 'src') diff --git a/src/gallium/docs/build/html/_sources/tgsi.txt b/src/gallium/docs/build/html/_sources/tgsi.txt index de27d8a005..86c09046f7 100644 --- a/src/gallium/docs/build/html/_sources/tgsi.txt +++ b/src/gallium/docs/build/html/_sources/tgsi.txt @@ -6,8 +6,11 @@ for describing shaders. Since Gallium is inherently shaderful, shaders are an important part of the API. TGSI is the only intermediate representation used by all drivers. +Instruction Set +--------------- + From GL_NV_vertex_program -------------------------- +^^^^^^^^^^^^^^^^^^^^^^^^^ ARL - Address Register Load @@ -633,8 +636,8 @@ X2D - 2D Coordinate Transformation Considered for removal. -GL_NV_vertex_program2 --------------------------- +From GL_NV_vertex_program2 +^^^^^^^^^^^^^^^^^^^^^^^^^^ ARA - Address Register Add @@ -850,8 +853,8 @@ POPA - Pop Address Register From Stack Considered for cleanup / removal. -GL_NV_gpu_program4 ------------------------- +From GL_NV_gpu_program4 +^^^^^^^^^^^^^^^^^^^^^^^^ Support for these opcodes indicated by a special pipe capability bit (TBD). @@ -1015,8 +1018,8 @@ CONT - Continue TBD -GL_NV_geometry_program4 ------------------------------ +From GL_NV_geometry_program4 +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ EMIT - Emit @@ -1029,8 +1032,8 @@ ENDPRIM - End Primitive TBD -GLSL ----------- +From GLSL +^^^^^^^^^^ BGNLOOP - Begin a Loop @@ -1072,7 +1075,7 @@ NRM4 - 4-component Vector Normalise ps_2_x ------------- +^^^^^^^^^^^^ CALLNZ - Subroutine Call If Not Zero @@ -1091,11 +1094,11 @@ BREAKC - Break Conditional Explanation of symbols used -============================== +------------------------------ Functions --------------- +^^^^^^^^^^^^^^ :math:`|x|` Absolute value of `x`. @@ -1131,7 +1134,7 @@ Functions Keywords -------------- +^^^^^^^^^^^^^ discard Discard fragment. @@ -1154,11 +1157,11 @@ Keywords Other tokens -=============== +--------------- Declaration Semantic -------------------------- +^^^^^^^^^^^^^^^^^^^^^^^^ Follows Declaration token if Semantic bit is set. @@ -1179,7 +1182,7 @@ Declaration Semantic FACE -^^^^ +"""" Valid only in a fragment shader INPUT declaration. diff --git a/src/gallium/docs/build/html/index.html b/src/gallium/docs/build/html/index.html index a01603fe2d..8c059aff45 100644 --- a/src/gallium/docs/build/html/index.html +++ b/src/gallium/docs/build/html/index.html @@ -50,21 +50,9 @@
  • TGSI -
  • -
  • Explanation of symbols used -
  • -
  • Other tokens
  • Screen
      diff --git a/src/gallium/docs/build/html/searchindex.js b/src/gallium/docs/build/html/searchindex.js index a2836ca1a4..c3c0b876ea 100644 --- a/src/gallium/docs/build/html/searchindex.js +++ b/src/gallium/docs/build/html/searchindex.js @@ -1 +1 @@ -Search.setIndex({desctypes:{},terms:{represent:4,all:[4,9,11],concept:9,edg:2,queri:[4,9],particular:9,four:[4,10],scalar:4,per:5,abil:9,follow:[4,9],depend:5,name:[3,4,9],intermedi:4,ps_2_x:[0,4],those:4,logarithm:4,sourc:[4,9],normalis:4,straightforward:7,fals:4,set_vertex_el:9,lrp:4,fan:5,partialx:4,level:10,pk4b:4,list:6,emul:9,prefilt:10,cosin:4,sine:4,small:9,div:4,round:4,cmp:4,dimens:10,impli:5,flr:4,up4b:4,sign:4,tex:4,second:[4,5,11],pass:[1,11],light_twosid:5,zfail_op:11,index:0,what:[0,7,8],sprite_coord_mod:5,sub:4,compar:4,neg:4,section:[4,9],current:9,delet:9,rgba:[9,10],method:[0,3,9],themselv:5,deriv:4,absolut:4,coeffici:4,inher:4,path:9,vertic:5,modifi:9,sinc:4,valu:[4,9,11],trunc:4,line_stipple_factor:5,search:0,shift:4,vbo:[],shader:[0,1,4,5,6,9,11],permit:[5,9],weird:10,gourard:5,semant:[0,4],txl:4,"boolean":3,txf:4,modul:0,txd:4,sgt:4,textur:[3,4,9,10],src2:4,src0:4,api:[1,4,7,10],brk:4,is_texture_referenc:9,visibl:5,oval:5,sge:4,txq:4,encapsul:7,gl_rasterization_rul:5,from:[0,4,5,9,10],offset_unit:5,subtract:4,regist:4,two:[4,6,9,11],program:4,call:[4,9],get_paramf:3,stage:4,type:6,more:9,desir:1,get_nam:3,raster:[0,1,5,9],pipe_primitive_quad:5,flag:5,indic:[0,4],fill_ccw:5,unpack:4,point_size_min:5,must:4,poly_smooth:5,graphic:[4,7],retriev:9,setup:3,work:1,obvious:5,can:[1,4,3,9],cal:4,purpos:4,root:4,fetch:4,control:[11,8,5,9,10],create_blend_st:9,pipe_surfac:9,templat:3,minimum:[4,5,10],want:9,dp2a:4,unsign:4,occur:4,gl_nv_vertex_program:[0,4],alwai:[11,5,10],point_size_per_vertex:5,multipl:[2,9],divid:4,anoth:9,write:[7,9,11],how:[4,5,9,10],flatshad:[1,5],simpl:9,sin:4,"42101e":[],product:4,sne:4,resourc:9,max:4,after:10,cso:[0,1,9],set_constant_buff:9,mad:4,mai:[5,9],end:4,fail_op:11,pipe_stencil_op:11,principl:1,essenti:7,third:4,bind:9,counter:4,element:5,endprim:4,inform:2,valuemask:11,order:11,rotat:5,over:9,move:[4,9],through:[5,11],sqrt:[],still:5,paramet:3,group:9,directli:9,bypass:5,main:5,easier:9,non:9,"return":[1,4,3],greater:4,thei:[1,11,5,9,10],fragment:[4,8,5,9,11],initi:9,get_vendor:3,"break":4,line_smooth:5,cull_mod:5,front:4,nop:4,introduct:[0,7],"884467e":[],separ:9,token:[0,4,6],each:[5,10],side:11,doxi:10,offset_ccw:5,clamp:[4,10],chunk:5,continu:4,bra:4,frac:4,special:[4,9],out:[1,11,10],variabl:9,dst:4,ret:4,content:0,vector:4,rel:4,hardwar:[7,5,11],got:3,linear:4,offset_cw:5,given:3,compare_func:10,endsub:4,base:4,begin_queri:9,"_rasterizer_st":9,reusabl:1,endrep:4,filter:10,turn:5,get_param:3,clump:11,first:[4,5],oper:[4,9,11],glsl:[0,4],rang:10,max_lod:10,render:[8,9],carri:11,independ:3,restrict:4,clear:9,instruct:4,done:11,size:[4,5],differ:[4,5],stencil:[0,1,9,11],exponenti:4,tradition:11,too:9,circl:5,scheme:9,moar:[3,5],store:11,nrm4:4,min_img_filt:10,option:[4,5,10],pipe_tex_filt:10,specifi:5,create_queri:9,part:[1,4,3],than:4,line_stipple_en:5,target:[4,8],keyword:[0,4],provid:[7,9],remov:4,see:3,structur:11,texel:[4,10],stippl:5,str:4,opaqu:1,posit:4,result:[8,9],pre:5,fashion:7,clip:5,pk4ub:4,ani:[1,9],"_blend_stat":9,bitfield:5,subroutin:4,max_anisotropi:10,txb:4,manner:[3,7],have:[11,5,9,10],tabl:0,need:5,seem:9,"null":9,bitwis:4,techniqu:2,unresolv:8,alias:[2,5],destroi:9,fill_cw:5,note:[1,4,5],ex2:4,take:2,set_viewport_st:9,pipe_func:11,noth:4,singl:9,pipelin:[4,5,9],xor:4,shade:5,normal:10,buffer:[2,8,9,11],object:[1,7,3,9],most:[5,9],sfl:4,mipmap:10,alpha:[0,1,9,11],pipe_primitive_polygon:5,segment:5,tradit:10,pk2h:4,nail:9,tgsi:[0,4],face:4,pipe:4,declar:[0,4],determin:5,pk2u:4,left:4,blend:[0,1,8,9],sum:4,dot:4,end_queri:9,popa:4,destroy_blend_st:9,wrap_:10,dst0:4,trivial:9,access:9,onli:[4,9],dp4:4,dp3:4,dp2:4,front_wind:5,point_sprit:5,should:[8,5],busi:9,endloop:4,lit:4,variou:9,get:3,set_scissor_st:9,stop:9,ceil:4,mul:4,tungsten:4,ssg:4,tgsi_token:6,tbd:4,set_fragment_sampler_textur:9,shr:4,enabl:[5,9,11],draw_el:9,"default":4,statist:9,contain:4,anisotrop:10,shl:4,valid:4,dph:4,arr:4,set:[4,5,9,10],set_framebuffer_st:9,seq:4,smooth:[2,5],ara:4,msaa:[2,5],wrap_t:10,wrap_r:10,fail:11,arl:4,purest:9,modulu:4,project:4,pattern:5,label:4,state:[1,5,8,9,10,11],between:4,"import":[4,5],subscript:4,triplet:9,screen:[0,3],min_mip_filt:10,entir:5,is_buffer_referenc:9,lod_bia:10,addit:9,both:[9,11],last:5,framebuff:9,x2d:4,region:9,equal:4,min_lod:10,context:[0,1,3,9],line_last_pixel:5,mani:10,destroy_queri:9,load:[4,10],undocu:[8,5,10],point:[3,5,9],color:[5,10],pow:4,address:4,pop:4,distinguish:4,callnz:4,reciproc:4,anti:[2,5],provok:5,lg2:4,asdf:[],light:4,endif:4,devic:[3,7,9],three:[4,11],been:11,compon:4,get_query_result:9,treat:10,basic:2,bgnsub:4,up4ub:4,sprite:5,nrm:4,normalized_coord:10,xxx:[3,4,5,8,10,11],coordin:[4,10],zero:4,minifi:10,texture_cr:3,func:11,predic:4,bgnloop:4,sad:4,present:9,multi:2,ident:4,slt:4,servic:7,properti:1,batch:9,rectangular:5,behavior:8,glossari:[2,0],sle:4,loop:4,pack:[4,9],gl_nv_vertex_program2:[0,4],cont:4,set_edgeflag:9,endfor:4,destin:[4,9],unit:10,primit:[4,5],"_vs_state":9,sever:[7,5],set_blend_color:9,surface_fil:9,welcom:0,bind_fragment_sampler_st:9,perform:9,make:9,cross:4,same:[4,9],member:[1,5,6,8,10,11],handl:[1,9],compare_mod:10,instanc:9,zpass_op:11,document:[0,11],difficult:9,finish:9,nest:9,driver:[4,7,9],effect:[1,5,10],mov:4,capabl:4,rais:[],kil:4,stack:4,squar:4,multisampl:5,off:[8,5],center:5,surface_copi:9,min:4,aisl:4,scissor:5,exampl:9,reflect:4,poly_stipple_en:5,thi:[2,4,5,8,9,10],interpol:[4,5],set_clip_st:9,dimension:10,i2f:4,usual:5,explan:[0,4],distanc:4,identifi:3,execut:11,less:4,kilp:4,up2u:4,up2h:4,tcl:5,simpli:5,semanticnam:4,breakc:4,languag:4,begin:4,gl_nv_geometry_program4:[0,4],expos:10,except:5,add:[4,9],cleanup:4,exercis:9,sampler:[0,1,9,10],els:4,mod:4,bypass_vs_clip_and_viewport:[1,5],match:4,pipe_tex_wrap:10,vendor:3,which:[1,7],format:[3,9],read:9,agnost:7,piec:9,bia:[4,10],bgnfor:4,magnifi:10,amp:11,bit:[4,5],truncat:4,apart:9,like:9,specif:[1,3,9,5],integ:[3,4],point_siz:5,src1:4,either:[4,9],output:4,page:0,mag_img_filt:10,refin:10,pipe_primitive_quad_strip:5,right:4,draw_range_el:9,some:[9,10],blend_en:8,pusha:4,opcod:4,sampl:[2,10],flush:9,guarante:9,bore:3,pixel:5,ddy:4,ddx:4,partiali:4,though:9,overlap:9,point_smooth:5,multipli:4,cnd:4,tracker:9,larg:7,select:10,condit:4,txp:4,refer:[11,10],core:[1,7],run:5,rsq:4,border_color:10,ifc:4,"_depth_stencil_alpha_st":9,appli:10,describ:[4,9],writemask:11,src:4,actual:[5,11],gallium:[0,1,4,7,6],semanticindex:4,bind_vertex_sampler_st:9,set_vertex_buff:9,stand:9,awai:5,discard:[4,11],approxim:4,mean:4,disabl:10,"final":[8,9],"float":[3,4],bound:[1,9,10],down:9,explain:4,wrap:10,chang:[5,9],mere:5,flatshade_first:[1,5],log:4,lod:[4,10],support:[4,6],rcp:4,transform:[4,5],xpd:4,avail:9,width:5,set_polygon_stippl:9,interfac:9,fraction:4,individu:[4,10],rcc:4,"function":[0,4,9,11],homogen:4,back:[3,4],set_vertex_sampler_textur:9,point_size_max:5,link:4,blit:9,line:5,"true":4,viewport:5,gl_nv_gpu_program4:[0,4],notat:10,flavour:9,input:4,draw_arrai:9,whether:[11,5,10],wish:5,caller:5,bind_blend_st:9,maximum:[4,5,10],"abstract":9,line_stipple_pattern:5,emit:4,offset_scal:5,gather:9,constant:[1,4],creat:[1,3,9],classic:9,certain:11,dure:11,rfl:4,repres:[3,9],implement:5,file:4,fill:[1,9],polygon:[2,5],floor:4,when:[4,5,9,10],detail:10,power:4,field:4,other:[0,4],lookup:4,futur:9,branch:4,test:[5,11],ref_valu:11,draw:9,repeat:4,exp:4,is_format_support:3,symbol:[0,4],vertex:[5,9],surfac:9,consid:4,receiv:11,blitter:9,algorithm:5,rule:5,pipe_primitive_triangle_fan:5,depth:[2,0,1,9,11],"_fs_state":9,potenti:4,time:[1,4],push:4,line_width:5,rep:4,togeth:11},titles:["Welcome to Gallium’s documentation!","CSO","Glossary","Screen","TGSI","Rasterizer","Shader","Introduction","Blend","Context","Sampler","Depth, Stencil, & Alpha"],modules:{},descrefs:{},filenames:["index","cso","glossary","screen","tgsi","cso/rasterizer","cso/shader","intro","cso/blend","context","cso/sampler","cso/dsa"]}) \ No newline at end of file +Search.setIndex({desctypes:{},terms:{represent:4,all:[4,9,11],concept:9,edg:2,queri:[4,9],particular:9,four:[4,10],scalar:4,per:5,abil:9,follow:[4,9],depend:5,intermedi:4,ps_2_x:4,those:4,logarithm:4,sourc:[4,9],normalis:4,straightforward:7,fals:4,set_vertex_el:9,lrp:4,fan:5,partialx:4,level:10,pk4b:4,list:6,"884467e":[],emul:9,prefilt:10,cosin:4,sine:4,small:9,div:4,round:4,cmp:4,dimens:10,impli:5,flr:4,up4b:4,sign:4,tex:4,second:[4,5,11],pass:[1,11],light_twosid:5,zfail_op:11,index:0,what:[0,7,8],sprite_coord_mod:5,sub:4,compar:4,neg:4,section:[4,9],current:9,delet:9,rgba:[9,10],method:[0,3,9],themselv:5,deriv:4,absolut:4,coeffici:4,inher:4,path:9,vertic:5,modifi:9,sinc:4,valu:[4,9,11],trunc:4,line_stipple_factor:5,search:0,shift:4,vbo:[],shader:[0,1,4,5,6,9,11],permit:[5,9],weird:10,gourard:5,semant:4,txl:4,"boolean":3,txf:4,modul:0,txd:4,sgt:4,src2:4,src0:4,api:[1,4,7,10],brk:4,is_texture_referenc:9,visibl:5,oval:5,sge:4,bra:4,encapsul:7,gl_rasterization_rul:5,from:[4,5,9,10],offset_unit:5,subtract:4,regist:4,two:[4,6,9,11],program:4,call:[4,9],get_paramf:3,stage:4,type:6,more:9,desir:1,get_nam:3,raster:[0,1,5,9],pipe_primitive_quad:5,flag:5,indic:[0,4],fill_ccw:5,unpack:4,point_size_min:5,must:4,poly_smooth:5,graphic:[4,7],retriev:9,setup:3,work:1,obvious:5,can:[1,4,3,9],cal:4,purpos:4,root:4,fetch:4,control:[11,8,5,9,10],create_blend_st:9,pipe_surfac:9,templat:3,minimum:[4,5,10],want:9,dp2a:4,unsign:4,occur:4,gl_nv_vertex_program:4,alwai:[11,5,10],point_size_per_vertex:5,multipl:[2,9],divid:4,anoth:9,write:[7,9,11],how:[4,5,9,10],flatshad:[1,5],simpl:9,sin:4,"42101e":[],product:4,sne:4,resourc:9,max:4,after:10,cso:[0,1,9],set_constant_buff:9,mad:4,mai:[5,9],end:4,fail_op:11,pipe_stencil_op:11,principl:1,essenti:7,third:4,bind:9,counter:4,element:5,endprim:4,inform:2,valuemask:11,order:11,rotat:5,over:9,move:[4,9],through:[5,11],sqrt:[],still:5,paramet:3,group:9,directli:9,bypass:5,main:5,easier:9,non:9,"return":[1,4,3],greater:4,thei:[1,11,5,9,10],fragment:[4,8,5,9,11],initi:9,get_vendor:3,"break":4,line_smooth:5,cull_mod:5,front:4,nop:4,introduct:[0,7],name:[3,4,9],separ:9,token:[0,4,6],each:[5,10],side:11,doxi:10,offset_ccw:5,clamp:[4,10],chunk:5,continu:4,frac:4,special:[4,9],out:[1,11,10],variabl:9,dst:4,ret:4,content:0,vector:4,rel:4,hardwar:[7,5,11],got:3,linear:4,offset_cw:5,given:3,compare_func:10,endsub:4,base:4,begin_queri:9,"_rasterizer_st":9,reusabl:1,endrep:4,filter:10,turn:5,get_param:3,clump:11,first:[4,5],oper:[4,9,11],glsl:4,rang:10,max_lod:10,render:[8,9],carri:11,independ:3,restrict:4,clear:9,instruct:[0,4],done:11,size:[4,5],differ:[4,5],stencil:[0,1,9,11],exponenti:4,tradition:11,too:9,circl:5,scheme:9,moar:[3,5],store:11,nrm4:4,min_img_filt:10,option:[4,5,10],pipe_tex_filt:10,specifi:5,create_queri:9,part:[1,4,3],than:4,line_stipple_en:5,target:[4,8],keyword:4,provid:[7,9],remov:4,see:3,structur:11,texel:[4,10],stippl:5,str:4,opaqu:1,posit:4,rcc:4,result:[8,9],pre:5,fashion:7,clip:5,pk4ub:4,ani:[1,9],"_blend_stat":9,bitfield:5,subroutin:4,max_anisotropi:10,txb:4,manner:[3,7],have:[11,5,9,10],tabl:0,need:5,seem:9,"null":9,bitwis:4,techniqu:2,unresolv:8,alias:[2,5],destroi:9,fill_cw:5,note:[1,4,5],ex2:4,take:2,set_viewport_st:9,pipe_func:11,noth:4,singl:9,pipelin:[4,5,9],xor:4,shade:5,normal:10,buffer:[2,8,9,11],object:[1,7,3,9],most:[5,9],sfl:4,mipmap:10,alpha:[0,1,9,11],pipe_primitive_polygon:5,segment:5,tradit:10,pk2h:4,nail:9,tgsi:[0,4],face:4,pipe:4,declar:4,determin:5,pk2u:4,left:4,blend:[0,1,8,9],sum:4,dot:4,end_queri:9,popa:4,destroy_blend_st:9,wrap_:10,dst0:4,trivial:9,access:9,onli:[4,9],dp4:4,dp3:4,dp2:4,front_wind:5,point_sprit:5,should:[8,5],busi:9,endloop:4,lit:4,variou:9,get:3,set_scissor_st:9,stop:9,ceil:4,mul:4,tungsten:4,ssg:4,tgsi_token:6,tbd:4,set_fragment_sampler_textur:9,shr:4,enabl:[5,9,11],draw_el:9,"default":4,statist:9,contain:4,anisotrop:10,shl:4,valid:4,dph:4,arr:4,set:[0,4,5,9,10],set_framebuffer_st:9,seq:4,smooth:[2,5],ara:4,msaa:[2,5],wrap_t:10,wrap_r:10,fail:11,arl:4,purest:9,modulu:4,project:4,pattern:5,label:4,state:[1,5,8,9,10,11],between:4,"import":[4,5],subscript:4,triplet:9,screen:[0,3],min_mip_filt:10,entir:5,is_buffer_referenc:9,lod_bia:10,addit:9,both:[9,11],last:5,framebuff:9,x2d:4,region:9,equal:4,pixel:5,min_lod:10,context:[0,1,3,9],line_last_pixel:5,mani:10,destroy_queri:9,load:[4,10],undocu:[8,5,10],point:[3,5,9],color:[5,10],pow:4,address:4,pop:4,distinguish:4,callnz:4,reciproc:4,anti:[2,5],provok:5,lg2:4,asdf:[],light:4,endif:4,devic:[3,7,9],three:[4,11],been:11,compon:4,get_query_result:9,treat:10,basic:2,bgnsub:4,up4ub:4,sprite:5,nrm:4,normalized_coord:10,xxx:[3,4,5,8,10,11],coordin:[4,10],zero:4,minifi:10,togeth:11,func:11,predic:4,bgnloop:4,sad:4,present:9,multi:2,ident:4,slt:4,servic:7,properti:1,batch:9,rectangular:5,behavior:8,glossari:[2,0],sle:4,loop:4,pack:[4,9],gl_nv_vertex_program2:4,cont:4,set_edgeflag:9,endfor:4,destin:[4,9],txq:4,primit:[4,5],"_vs_state":9,sever:[7,5],set_blend_color:9,surface_fil:9,welcom:0,bind_fragment_sampler_st:9,perform:9,make:9,cross:4,same:[4,9],member:[1,5,6,8,10,11],handl:[1,9],compare_mod:10,instanc:9,zpass_op:11,document:[0,11],difficult:9,finish:9,nest:9,driver:[4,7,9],effect:[1,5,10],mov:4,capabl:4,rais:[],kil:4,stack:4,squar:4,multisampl:5,off:[8,5],center:5,surface_copi:9,min:4,aisl:4,scissor:5,exampl:9,reflect:4,poly_stipple_en:5,thi:[2,4,5,8,9,10],interpol:[4,5],set_clip_st:9,dimension:10,i2f:4,usual:5,explan:[0,4],distanc:4,identifi:3,execut:11,less:4,kilp:4,up2u:4,up2h:4,tcl:5,simpli:5,semanticnam:4,breakc:4,languag:4,begin:4,gl_nv_geometry_program4:4,expos:10,except:5,add:[4,9],cleanup:4,exercis:9,sampler:[0,1,9,10],els:4,mod:4,bypass_vs_clip_and_viewport:[1,5],match:4,pipe_tex_wrap:10,vendor:3,which:[1,7],format:[3,9],read:9,agnost:7,piec:9,bia:[4,10],bgnfor:4,magnifi:10,amp:11,bit:[4,5],truncat:4,apart:9,like:9,specif:[1,3,9,5],integ:[3,4],point_siz:5,src1:4,either:[4,9],output:4,page:0,mag_img_filt:10,refin:10,pipe_primitive_quad_strip:5,right:4,draw_range_el:9,some:[9,10],back:[3,4],pusha:4,opcod:4,sampl:[2,10],flush:9,guarante:9,bore:3,textur:[3,4,9,10],ddy:4,ddx:4,partiali:4,though:9,overlap:9,point_smooth:5,multipli:4,cnd:4,tracker:9,larg:7,unit:10,condit:4,txp:4,refer:[11,10],core:[1,7],run:5,rsq:4,border_color:10,ifc:4,"_depth_stencil_alpha_st":9,appli:10,describ:[4,9],writemask:11,src:4,actual:[5,11],gallium:[0,1,4,7,6],semanticindex:4,bind_vertex_sampler_st:9,set_vertex_buff:9,stand:9,awai:5,discard:[4,11],approxim:4,mean:4,disabl:10,"final":[8,9],"float":[3,4],bound:[1,9,10],down:9,explain:4,wrap:10,chang:[5,9],mere:5,flatshade_first:[1,5],log:4,lod:[4,10],support:[4,6],rcp:4,transform:[4,5],xpd:4,avail:9,width:5,set_polygon_stippl:9,interfac:9,fraction:4,individu:[4,10],select:10,"function":[4,9,11],homogen:4,blend_en:8,set_vertex_sampler_textur:9,point_size_max:5,link:4,blit:9,line:5,"true":4,viewport:5,gl_nv_gpu_program4:4,notat:10,flavour:9,input:4,draw_arrai:9,whether:[11,5,10],wish:5,caller:5,bind_blend_st:9,maximum:[4,5,10],"abstract":9,line_stipple_pattern:5,emit:4,offset_scal:5,gather:9,constant:[1,4],creat:[1,3,9],classic:9,certain:11,dure:11,rfl:4,repres:[3,9],implement:5,file:4,fill:[1,9],polygon:[2,5],floor:4,when:[4,5,9,10],detail:10,power:4,field:4,other:[0,4],lookup:4,futur:9,branch:4,test:[5,11],ref_valu:11,draw:9,repeat:4,exp:4,is_format_support:3,symbol:[0,4],vertex:[5,9],surfac:9,consid:4,receiv:11,blitter:9,algorithm:5,rule:5,pipe_primitive_triangle_fan:5,depth:[2,0,1,9,11],"_fs_state":9,potenti:4,time:[1,4],push:4,line_width:5,rep:4,texture_cr:3},titles:["Welcome to Gallium’s documentation!","CSO","Glossary","Screen","TGSI","Rasterizer","Shader","Introduction","Blend","Context","Sampler","Depth, Stencil, & Alpha"],modules:{},descrefs:{},filenames:["index","cso","glossary","screen","tgsi","cso/rasterizer","cso/shader","intro","cso/blend","context","cso/sampler","cso/dsa"]}) \ No newline at end of file diff --git a/src/gallium/docs/build/html/tgsi.html b/src/gallium/docs/build/html/tgsi.html index 207607b90a..0dac00f25e 100644 --- a/src/gallium/docs/build/html/tgsi.html +++ b/src/gallium/docs/build/html/tgsi.html @@ -51,8 +51,10 @@ for describing shaders. Since Gallium is inherently shaderful, shaders are an important part of the API. TGSI is the only intermediate representation used by all drivers.

      +
      +

      Instruction Set

      -

      From GL_NV_vertex_program

      +

      From GL_NV_vertex_program

      ARL - Address Register Load

      dst.x = \lfloor src.x\rfloor
@@ -478,8 +480,8 @@ dst.z = src0.x + src1.x \times src2.x + src1.y \times src2.y
 dst.w = src0.y + src1.x \times src2.z + src1.y \times src2.w

      Considered for removal.

      -
      -

      GL_NV_vertex_program2

      +
      +

      From GL_NV_vertex_program2

      ARA - Address Register Add

      TBD

      @@ -637,8 +639,8 @@ dst.x = pop()

      Considered for cleanup / removal.

      -
      -

      GL_NV_gpu_program4

      +
      +

      From GL_NV_gpu_program4

      Support for these opcodes indicated by a special pipe capability bit (TBD).

      CEIL - Ceiling

      @@ -750,8 +752,8 @@ TBD
      TBD
      -
      -

      GL_NV_geometry_program4

      +
      +

      From GL_NV_geometry_program4

      EMIT - Emit

      TBD
      @@ -759,8 +761,8 @@ TBD
      TBD
      -
      -

      GLSL

      +
      +

      From GLSL

      BGNLOOP - Begin a Loop

      TBD
      @@ -787,7 +789,7 @@ dst.z = \frac{src.z}{src.x \times src.x + src.y \times src.y + src.z \times src. dst.w = \frac{src.w}{src.x \times src.x + src.y \times src.y + src.z \times src.z + src.w \times src.w}" />

      -

      ps_2_x

      +

      ps_2_x

      CALLNZ - Subroutine Call If Not Zero

      TBD
      @@ -800,9 +802,9 @@ TBD
      -

      Explanation of symbols used

      +

      Explanation of symbols used

      -

      Functions

      +

      Functions

      |x| Absolute value of x.

      \lceil x \rceil Ceiling of x.

      @@ -828,7 +830,7 @@ TBD
      -

      Keywords

      +

      Keywords

      discard Discard fragment.

      dst First destination register.

      @@ -843,9 +845,9 @@ TBD
      -

      Other tokens

      +

      Other tokens

      -

      Declaration Semantic

      +

      Declaration Semantic

      Follows Declaration token if Semantic bit is set.

      Since its purpose is to link a shader with other stages of the pipeline, @@ -860,7 +862,7 @@ is 0.

      sections.

      -

      FACE

      +

      FACE

      Valid only in a fragment shader INPUT declaration.

      FACE.x is negative when the primitive is back facing. FACE.x is positive @@ -868,6 +870,7 @@ when the primitive is front facing.

      +
      @@ -879,11 +882,12 @@ when the primitive is front facing.

      Table Of Contents

      +

    Previous topic

    diff --git a/src/gallium/docs/source/tgsi.rst b/src/gallium/docs/source/tgsi.rst index de27d8a005..86c09046f7 100644 --- a/src/gallium/docs/source/tgsi.rst +++ b/src/gallium/docs/source/tgsi.rst @@ -6,8 +6,11 @@ for describing shaders. Since Gallium is inherently shaderful, shaders are an important part of the API. TGSI is the only intermediate representation used by all drivers. +Instruction Set +--------------- + From GL_NV_vertex_program -------------------------- +^^^^^^^^^^^^^^^^^^^^^^^^^ ARL - Address Register Load @@ -633,8 +636,8 @@ X2D - 2D Coordinate Transformation Considered for removal. -GL_NV_vertex_program2 --------------------------- +From GL_NV_vertex_program2 +^^^^^^^^^^^^^^^^^^^^^^^^^^ ARA - Address Register Add @@ -850,8 +853,8 @@ POPA - Pop Address Register From Stack Considered for cleanup / removal. -GL_NV_gpu_program4 ------------------------- +From GL_NV_gpu_program4 +^^^^^^^^^^^^^^^^^^^^^^^^ Support for these opcodes indicated by a special pipe capability bit (TBD). @@ -1015,8 +1018,8 @@ CONT - Continue TBD -GL_NV_geometry_program4 ------------------------------ +From GL_NV_geometry_program4 +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ EMIT - Emit @@ -1029,8 +1032,8 @@ ENDPRIM - End Primitive TBD -GLSL ----------- +From GLSL +^^^^^^^^^^ BGNLOOP - Begin a Loop @@ -1072,7 +1075,7 @@ NRM4 - 4-component Vector Normalise ps_2_x ------------- +^^^^^^^^^^^^ CALLNZ - Subroutine Call If Not Zero @@ -1091,11 +1094,11 @@ BREAKC - Break Conditional Explanation of symbols used -============================== +------------------------------ Functions --------------- +^^^^^^^^^^^^^^ :math:`|x|` Absolute value of `x`. @@ -1131,7 +1134,7 @@ Functions Keywords -------------- +^^^^^^^^^^^^^ discard Discard fragment. @@ -1154,11 +1157,11 @@ Keywords Other tokens -=============== +--------------- Declaration Semantic -------------------------- +^^^^^^^^^^^^^^^^^^^^^^^^ Follows Declaration token if Semantic bit is set. @@ -1179,7 +1182,7 @@ Declaration Semantic FACE -^^^^ +"""" Valid only in a fragment shader INPUT declaration. -- cgit v1.2.3 From 54ddf642dfaea3532b60c8239cb6a83950762e43 Mon Sep 17 00:00:00 2001 From: Corbin Simpson Date: Wed, 23 Dec 2009 23:36:06 -0800 Subject: docs: Add all semantics to TGSI doc, regen. --- src/gallium/docs/build/html/_sources/tgsi.txt | 91 +++++++++++++++++++++++++-- src/gallium/docs/build/html/searchindex.js | 2 +- src/gallium/docs/build/html/tgsi.html | 87 ++++++++++++++++++++++--- src/gallium/docs/source/tgsi.rst | 91 +++++++++++++++++++++++++-- 4 files changed, 252 insertions(+), 19 deletions(-) (limited to 'src') diff --git a/src/gallium/docs/build/html/_sources/tgsi.txt b/src/gallium/docs/build/html/_sources/tgsi.txt index 86c09046f7..12687f29dc 100644 --- a/src/gallium/docs/build/html/_sources/tgsi.txt +++ b/src/gallium/docs/build/html/_sources/tgsi.txt @@ -1180,11 +1180,92 @@ Declaration Semantic The meanings of the individual semantic names are explained in the following sections. +TGSI_SEMANTIC_POSITION +"""""""""""""""""""""" -FACE -"""" +Position, sometimes known as HPOS or WPOS for historical reasons, is the +location of the vertex in space, in ``(x, y, z, w)`` format. ``x``, ``y``, and ``z`` +are the Cartesian coordinates, and ``w`` is the homogenous coordinate and used +for the perspective divide, if enabled. - Valid only in a fragment shader INPUT declaration. +As a vertex shader output, position should be scaled to the viewport. When +used in fragment shaders, position will --- - FACE.x is negative when the primitive is back facing. FACE.x is positive - when the primitive is front facing. +XXX --- wait a minute. Should position be in [0,1] for x and y? + +XXX additionally, is there a way to configure the perspective divide? it's +accelerated on most chipsets AFAIK... + +Position, if not specified, usually defaults to ``(0, 0, 0, 1)``, and can +be partially specified as ``(x, y, 0, 1)`` or ``(x, y, z, 1)``. + +XXX usually? can we solidify that? + +TGSI_SEMANTIC_COLOR +""""""""""""""""""" + +Colors are used to, well, color the primitives. Colors are always in +``(r, g, b, a)`` format. + +If alpha is not specified, it defaults to 1. + +TGSI_SEMANTIC_BCOLOR +"""""""""""""""""""" + +Back-facing colors are only used for back-facing polygons, and are only valid +in vertex shader outputs. After rasterization, all polygons are front-facing +and COLOR and BCOLOR end up occupying the same slots in the fragment, so +all BCOLORs effectively become regular COLORs in the fragment shader. + +TGSI_SEMANTIC_FOG +""""""""""""""""" + +The fog coordinate historically has been used to replace the depth coordinate +for generation of fog in dedicated fog blocks. Gallium, however, does not use +dedicated fog acceleration, placing it entirely in the fragment shader +instead. + +The fog coordinate should be written in ``(f, 0, 0, 1)`` format. Only the first +component matters when writing from the vertex shader; the driver will ensure +that the coordinate is in this format when used as a fragment shader input. + +TGSI_SEMANTIC_PSIZE +""""""""""""""""""" + +PSIZE, or point size, is used to specify point sizes per-vertex. It should +be in ``(p, n, x, f)`` format, where ``p`` is the point size, ``n`` is the minimum +size, ``x`` is the maximum size, and ``f`` is the fade threshold. + +XXX this is arb_vp. is this what we actually do? should double-check... + +When using this semantic, be sure to set the appropriate state in the +:ref:`rasterizer` first. + +TGSI_SEMANTIC_GENERIC +""""""""""""""""""""" + +Generic semantics are nearly always used for texture coordinate attributes, +in ``(s, t, r, q)`` format. ``t`` and ``r`` may be unused for certain kinds +of lookups, and ``q`` is the level-of-detail bias for biased sampling. + +These attributes are called "generic" because they may be used for anything +else, including parameters, texture generation information, or anything that +can be stored inside a four-component vector. + +TGSI_SEMANTIC_NORMAL +"""""""""""""""""""" + +XXX no clue. + +TGSI_SEMANTIC_FACE +"""""""""""""""""" + +FACE is the facing bit, to store the facing information for the fragment +shader. ``(f, 0, 0, 1)`` is the format. The first component will be positive +when the fragment is front-facing, and negative when the component is +back-facing. + +TGSI_SEMANTIC_EDGEFLAG +"""""""""""""""""""""" + +XXX no clue diff --git a/src/gallium/docs/build/html/searchindex.js b/src/gallium/docs/build/html/searchindex.js index c3c0b876ea..0e3f2bb4a2 100644 --- a/src/gallium/docs/build/html/searchindex.js +++ b/src/gallium/docs/build/html/searchindex.js @@ -1 +1 @@ -Search.setIndex({desctypes:{},terms:{represent:4,all:[4,9,11],concept:9,edg:2,queri:[4,9],particular:9,four:[4,10],scalar:4,per:5,abil:9,follow:[4,9],depend:5,intermedi:4,ps_2_x:4,those:4,logarithm:4,sourc:[4,9],normalis:4,straightforward:7,fals:4,set_vertex_el:9,lrp:4,fan:5,partialx:4,level:10,pk4b:4,list:6,"884467e":[],emul:9,prefilt:10,cosin:4,sine:4,small:9,div:4,round:4,cmp:4,dimens:10,impli:5,flr:4,up4b:4,sign:4,tex:4,second:[4,5,11],pass:[1,11],light_twosid:5,zfail_op:11,index:0,what:[0,7,8],sprite_coord_mod:5,sub:4,compar:4,neg:4,section:[4,9],current:9,delet:9,rgba:[9,10],method:[0,3,9],themselv:5,deriv:4,absolut:4,coeffici:4,inher:4,path:9,vertic:5,modifi:9,sinc:4,valu:[4,9,11],trunc:4,line_stipple_factor:5,search:0,shift:4,vbo:[],shader:[0,1,4,5,6,9,11],permit:[5,9],weird:10,gourard:5,semant:4,txl:4,"boolean":3,txf:4,modul:0,txd:4,sgt:4,src2:4,src0:4,api:[1,4,7,10],brk:4,is_texture_referenc:9,visibl:5,oval:5,sge:4,bra:4,encapsul:7,gl_rasterization_rul:5,from:[4,5,9,10],offset_unit:5,subtract:4,regist:4,two:[4,6,9,11],program:4,call:[4,9],get_paramf:3,stage:4,type:6,more:9,desir:1,get_nam:3,raster:[0,1,5,9],pipe_primitive_quad:5,flag:5,indic:[0,4],fill_ccw:5,unpack:4,point_size_min:5,must:4,poly_smooth:5,graphic:[4,7],retriev:9,setup:3,work:1,obvious:5,can:[1,4,3,9],cal:4,purpos:4,root:4,fetch:4,control:[11,8,5,9,10],create_blend_st:9,pipe_surfac:9,templat:3,minimum:[4,5,10],want:9,dp2a:4,unsign:4,occur:4,gl_nv_vertex_program:4,alwai:[11,5,10],point_size_per_vertex:5,multipl:[2,9],divid:4,anoth:9,write:[7,9,11],how:[4,5,9,10],flatshad:[1,5],simpl:9,sin:4,"42101e":[],product:4,sne:4,resourc:9,max:4,after:10,cso:[0,1,9],set_constant_buff:9,mad:4,mai:[5,9],end:4,fail_op:11,pipe_stencil_op:11,principl:1,essenti:7,third:4,bind:9,counter:4,element:5,endprim:4,inform:2,valuemask:11,order:11,rotat:5,over:9,move:[4,9],through:[5,11],sqrt:[],still:5,paramet:3,group:9,directli:9,bypass:5,main:5,easier:9,non:9,"return":[1,4,3],greater:4,thei:[1,11,5,9,10],fragment:[4,8,5,9,11],initi:9,get_vendor:3,"break":4,line_smooth:5,cull_mod:5,front:4,nop:4,introduct:[0,7],name:[3,4,9],separ:9,token:[0,4,6],each:[5,10],side:11,doxi:10,offset_ccw:5,clamp:[4,10],chunk:5,continu:4,frac:4,special:[4,9],out:[1,11,10],variabl:9,dst:4,ret:4,content:0,vector:4,rel:4,hardwar:[7,5,11],got:3,linear:4,offset_cw:5,given:3,compare_func:10,endsub:4,base:4,begin_queri:9,"_rasterizer_st":9,reusabl:1,endrep:4,filter:10,turn:5,get_param:3,clump:11,first:[4,5],oper:[4,9,11],glsl:4,rang:10,max_lod:10,render:[8,9],carri:11,independ:3,restrict:4,clear:9,instruct:[0,4],done:11,size:[4,5],differ:[4,5],stencil:[0,1,9,11],exponenti:4,tradition:11,too:9,circl:5,scheme:9,moar:[3,5],store:11,nrm4:4,min_img_filt:10,option:[4,5,10],pipe_tex_filt:10,specifi:5,create_queri:9,part:[1,4,3],than:4,line_stipple_en:5,target:[4,8],keyword:4,provid:[7,9],remov:4,see:3,structur:11,texel:[4,10],stippl:5,str:4,opaqu:1,posit:4,rcc:4,result:[8,9],pre:5,fashion:7,clip:5,pk4ub:4,ani:[1,9],"_blend_stat":9,bitfield:5,subroutin:4,max_anisotropi:10,txb:4,manner:[3,7],have:[11,5,9,10],tabl:0,need:5,seem:9,"null":9,bitwis:4,techniqu:2,unresolv:8,alias:[2,5],destroi:9,fill_cw:5,note:[1,4,5],ex2:4,take:2,set_viewport_st:9,pipe_func:11,noth:4,singl:9,pipelin:[4,5,9],xor:4,shade:5,normal:10,buffer:[2,8,9,11],object:[1,7,3,9],most:[5,9],sfl:4,mipmap:10,alpha:[0,1,9,11],pipe_primitive_polygon:5,segment:5,tradit:10,pk2h:4,nail:9,tgsi:[0,4],face:4,pipe:4,declar:4,determin:5,pk2u:4,left:4,blend:[0,1,8,9],sum:4,dot:4,end_queri:9,popa:4,destroy_blend_st:9,wrap_:10,dst0:4,trivial:9,access:9,onli:[4,9],dp4:4,dp3:4,dp2:4,front_wind:5,point_sprit:5,should:[8,5],busi:9,endloop:4,lit:4,variou:9,get:3,set_scissor_st:9,stop:9,ceil:4,mul:4,tungsten:4,ssg:4,tgsi_token:6,tbd:4,set_fragment_sampler_textur:9,shr:4,enabl:[5,9,11],draw_el:9,"default":4,statist:9,contain:4,anisotrop:10,shl:4,valid:4,dph:4,arr:4,set:[0,4,5,9,10],set_framebuffer_st:9,seq:4,smooth:[2,5],ara:4,msaa:[2,5],wrap_t:10,wrap_r:10,fail:11,arl:4,purest:9,modulu:4,project:4,pattern:5,label:4,state:[1,5,8,9,10,11],between:4,"import":[4,5],subscript:4,triplet:9,screen:[0,3],min_mip_filt:10,entir:5,is_buffer_referenc:9,lod_bia:10,addit:9,both:[9,11],last:5,framebuff:9,x2d:4,region:9,equal:4,pixel:5,min_lod:10,context:[0,1,3,9],line_last_pixel:5,mani:10,destroy_queri:9,load:[4,10],undocu:[8,5,10],point:[3,5,9],color:[5,10],pow:4,address:4,pop:4,distinguish:4,callnz:4,reciproc:4,anti:[2,5],provok:5,lg2:4,asdf:[],light:4,endif:4,devic:[3,7,9],three:[4,11],been:11,compon:4,get_query_result:9,treat:10,basic:2,bgnsub:4,up4ub:4,sprite:5,nrm:4,normalized_coord:10,xxx:[3,4,5,8,10,11],coordin:[4,10],zero:4,minifi:10,togeth:11,func:11,predic:4,bgnloop:4,sad:4,present:9,multi:2,ident:4,slt:4,servic:7,properti:1,batch:9,rectangular:5,behavior:8,glossari:[2,0],sle:4,loop:4,pack:[4,9],gl_nv_vertex_program2:4,cont:4,set_edgeflag:9,endfor:4,destin:[4,9],txq:4,primit:[4,5],"_vs_state":9,sever:[7,5],set_blend_color:9,surface_fil:9,welcom:0,bind_fragment_sampler_st:9,perform:9,make:9,cross:4,same:[4,9],member:[1,5,6,8,10,11],handl:[1,9],compare_mod:10,instanc:9,zpass_op:11,document:[0,11],difficult:9,finish:9,nest:9,driver:[4,7,9],effect:[1,5,10],mov:4,capabl:4,rais:[],kil:4,stack:4,squar:4,multisampl:5,off:[8,5],center:5,surface_copi:9,min:4,aisl:4,scissor:5,exampl:9,reflect:4,poly_stipple_en:5,thi:[2,4,5,8,9,10],interpol:[4,5],set_clip_st:9,dimension:10,i2f:4,usual:5,explan:[0,4],distanc:4,identifi:3,execut:11,less:4,kilp:4,up2u:4,up2h:4,tcl:5,simpli:5,semanticnam:4,breakc:4,languag:4,begin:4,gl_nv_geometry_program4:4,expos:10,except:5,add:[4,9],cleanup:4,exercis:9,sampler:[0,1,9,10],els:4,mod:4,bypass_vs_clip_and_viewport:[1,5],match:4,pipe_tex_wrap:10,vendor:3,which:[1,7],format:[3,9],read:9,agnost:7,piec:9,bia:[4,10],bgnfor:4,magnifi:10,amp:11,bit:[4,5],truncat:4,apart:9,like:9,specif:[1,3,9,5],integ:[3,4],point_siz:5,src1:4,either:[4,9],output:4,page:0,mag_img_filt:10,refin:10,pipe_primitive_quad_strip:5,right:4,draw_range_el:9,some:[9,10],back:[3,4],pusha:4,opcod:4,sampl:[2,10],flush:9,guarante:9,bore:3,textur:[3,4,9,10],ddy:4,ddx:4,partiali:4,though:9,overlap:9,point_smooth:5,multipli:4,cnd:4,tracker:9,larg:7,unit:10,condit:4,txp:4,refer:[11,10],core:[1,7],run:5,rsq:4,border_color:10,ifc:4,"_depth_stencil_alpha_st":9,appli:10,describ:[4,9],writemask:11,src:4,actual:[5,11],gallium:[0,1,4,7,6],semanticindex:4,bind_vertex_sampler_st:9,set_vertex_buff:9,stand:9,awai:5,discard:[4,11],approxim:4,mean:4,disabl:10,"final":[8,9],"float":[3,4],bound:[1,9,10],down:9,explain:4,wrap:10,chang:[5,9],mere:5,flatshade_first:[1,5],log:4,lod:[4,10],support:[4,6],rcp:4,transform:[4,5],xpd:4,avail:9,width:5,set_polygon_stippl:9,interfac:9,fraction:4,individu:[4,10],select:10,"function":[4,9,11],homogen:4,blend_en:8,set_vertex_sampler_textur:9,point_size_max:5,link:4,blit:9,line:5,"true":4,viewport:5,gl_nv_gpu_program4:4,notat:10,flavour:9,input:4,draw_arrai:9,whether:[11,5,10],wish:5,caller:5,bind_blend_st:9,maximum:[4,5,10],"abstract":9,line_stipple_pattern:5,emit:4,offset_scal:5,gather:9,constant:[1,4],creat:[1,3,9],classic:9,certain:11,dure:11,rfl:4,repres:[3,9],implement:5,file:4,fill:[1,9],polygon:[2,5],floor:4,when:[4,5,9,10],detail:10,power:4,field:4,other:[0,4],lookup:4,futur:9,branch:4,test:[5,11],ref_valu:11,draw:9,repeat:4,exp:4,is_format_support:3,symbol:[0,4],vertex:[5,9],surfac:9,consid:4,receiv:11,blitter:9,algorithm:5,rule:5,pipe_primitive_triangle_fan:5,depth:[2,0,1,9,11],"_fs_state":9,potenti:4,time:[1,4],push:4,line_width:5,rep:4,texture_cr:3},titles:["Welcome to Gallium’s documentation!","CSO","Glossary","Screen","TGSI","Rasterizer","Shader","Introduction","Blend","Context","Sampler","Depth, Stencil, & Alpha"],modules:{},descrefs:{},filenames:["index","cso","glossary","screen","tgsi","cso/rasterizer","cso/shader","intro","cso/blend","context","cso/sampler","cso/dsa"]}) \ No newline at end of file +Search.setIndex({desctypes:{},terms:{represent:4,all:[4,9,11],concept:9,partial:4,edg:2,queri:[4,9],particular:9,four:[4,10],scalar:4,per:[4,5],abil:9,follow:[4,9],locat:4,depend:5,name:[3,4,9],intermedi:4,ps_2_x:4,those:4,unit:10,logarithm:4,sourc:[4,9],normalis:4,straightforward:7,fals:4,set_vertex_el:9,lrp:4,fan:5,partialx:4,level:[4,10],pk4b:4,list:6,emul:9,prefilt:10,cosin:4,small:9,div:4,round:4,cmp:4,dimens:10,impli:5,flr:4,tgsi_semantic_posit:4,up4b:4,sign:4,tex:4,second:[4,5,11],pass:[1,11],light_twosid:5,zfail_op:11,index:0,what:[8,0,4,7],xor:4,sub:4,compar:4,neg:4,section:[4,9],access:9,delet:9,rgba:[9,10],method:[0,3,9],themselv:5,deriv:4,gener:4,coeffici:4,psize:4,becom:4,inher:4,path:9,vertic:5,modifi:9,sinc:4,valu:[4,9,11],trunc:4,line_stipple_factor:5,search:0,shift:4,current:9,vbo:[],shader:[0,1,4,5,6,9,11],permit:[5,9],weird:10,gourard:5,endrep:4,semant:4,txl:4,"boolean":3,txf:4,modul:0,txd:4,sgt:4,textur:[3,4,9,10],src2:4,src0:4,api:[1,4,7,10],brk:4,is_texture_referenc:9,visibl:5,oval:5,sge:4,select:10,encapsul:7,gl_rasterization_rul:5,from:[4,5,9,10],offset_unit:5,subtract:4,doubl:4,regist:4,two:[4,6,9,11],program:4,call:[4,9],get_paramf:3,stage:4,type:6,more:9,desir:1,get_nam:3,raster:[0,1,4,5,9],pipe_primitive_quad:5,clue:4,flag:5,indic:[0,4],fill_ccw:5,known:4,unpack:4,point_size_min:5,must:4,poly_smooth:5,graphic:[4,7],retriev:9,setup:3,work:1,obvious:5,can:[1,4,3,9],cal:4,purpos:4,root:4,fetch:4,control:[11,8,5,9,10],create_blend_st:9,pipe_surfac:9,templat:3,minimum:[4,5,10],want:9,dp2a:4,unsign:4,occur:4,nearli:4,gl_nv_vertex_program:4,alwai:[11,4,5,10],point_size_per_vertex:5,multipl:[2,9],divid:4,anoth:9,write:[4,7,9,11],how:[4,5,9,10],flatshad:[1,5],instead:4,simpl:9,sin:4,"42101e":[],product:4,sne:4,resourc:9,max:4,after:[4,10],cso:[0,1,9],set_constant_buff:9,mad:4,mai:[4,5,9],end:4,fail_op:11,pipe_stencil_op:11,principl:1,essenti:7,third:4,bind:9,counter:4,element:5,endprim:4,inform:[2,4],valuemask:11,order:11,rotat:5,over:9,move:[4,9],becaus:4,through:[5,11],sqrt:[],still:5,tgsi_semantic_bcolor:4,paramet:[3,4],group:9,directli:9,bypass:5,main:5,easier:9,non:9,"return":[1,4,3],greater:4,thei:[1,4,5,9,10,11],fragment:[4,8,5,9,11],initi:9,get_vendor:3,"break":4,line_smooth:5,cull_mod:5,front:4,nop:4,introduct:[0,7],"884467e":[],anyth:4,perspect:4,separ:9,token:[0,4,6],each:[5,10],side:11,doxi:10,offset_ccw:5,clamp:[4,10],replac:4,chunk:5,continu:4,ensur:4,frac:4,special:[4,9],out:[1,11,10],variabl:9,space:4,dst:4,ret:4,content:0,vector:4,rel:4,hardwar:[7,5,11],got:3,linear:4,insid:4,offset_cw:5,given:3,compare_func:10,endsub:4,reason:4,base:4,begin_queri:9,"_rasterizer_st":9,reusabl:1,wai:4,where:4,filter:10,turn:5,wpo:4,place:4,get_param:3,clump:11,first:[4,5],oper:[4,9,11],glsl:4,rang:10,max_lod:10,render:[8,9],carri:11,independ:3,restrict:4,instruct:[0,4],done:11,tgsi_semantic_gener:4,light:4,size:[4,5],differ:[4,5],stencil:[0,1,9,11],exponenti:4,sometim:4,tradition:11,too:9,circl:5,scheme:9,moar:[3,5],store:[4,11],nrm4:4,min_img_filt:10,option:[4,5,10],pipe_tex_filt:10,specifi:[4,5],create_queri:9,part:[1,4,3],than:4,line_stipple_en:5,kind:4,target:[4,8],keyword:4,provid:[7,9],remov:4,see:3,structur:11,texel:[4,10],stippl:5,matter:4,str:4,opaqu:1,posit:4,minut:4,result:[8,9],pre:5,fashion:7,clip:5,pk4ub:4,ani:[1,9],"_blend_stat":9,bitfield:5,subroutin:4,max_anisotropi:10,txb:4,manner:[3,7],have:[11,5,9,10],tabl:0,need:5,dedic:4,"null":9,arb_vp:4,bitwis:4,techniqu:2,unresolv:8,alias:[2,5],destroi:9,fill_cw:5,note:[1,4,5],ex2:4,take:2,set_viewport_st:9,pipe_func:11,noth:4,singl:9,pipelin:[4,5,9],sure:4,shade:5,normal:10,buffer:[2,8,9,11],object:[1,7,3,9],most:[4,5,9],sfl:4,regular:4,mipmap:10,sprite_coord_mod:5,pipe_primitive_polygon:5,segment:5,tgsi_semantic_fog:4,tradit:10,pk2h:4,clear:9,tgsi:[0,4],face:4,pipe:4,declar:4,tracker:9,determin:5,pk2u:4,left:4,blend:[0,1,8,9],sum:4,dot:4,end_queri:9,popa:4,destroy_blend_st:9,wrap_:10,dst0:4,threshold:4,hpo:4,trivial:9,slot:4,absolut:4,onli:[4,9],dp4:4,dp3:4,dp2:4,front_wind:5,point_sprit:5,configur:4,written:4,should:[4,8,5],busi:9,endloop:4,lit:4,unus:4,variou:9,get:3,set_scissor_st:9,stop:9,tgsi_semantic_color:4,ceil:4,mul:4,tungsten:4,ssg:4,tgsi_token:6,tbd:4,set_fragment_sampler_textur:9,shr:4,enabl:[4,5,9,11],draw_el:9,"default":4,statist:9,contain:4,anisotrop:10,shl:4,valid:4,dph:4,arr:4,set:[0,4,5,9,10],set_framebuffer_st:9,seq:4,smooth:[2,5],tgsi_semantic_edgeflag:4,ara:4,msaa:[2,5],wrap_t:10,wrap_r:10,fail:11,arl:4,purest:9,modulu:4,project:4,pattern:5,label:4,state:[1,4,5,8,9,10,11],between:4,"import":[4,5],subscript:4,attribut:4,triplet:9,screen:[0,3],min_mip_filt:10,entir:[4,5],chipset:4,is_buffer_referenc:9,lod_bia:10,addit:9,both:[9,11],last:5,framebuff:9,x2d:4,region:9,equal:4,min_lod:10,context:[0,1,3,9],line_last_pixel:5,mani:10,destroy_queri:9,load:[4,10],acceler:4,undocu:[8,5,10],point:[3,4,5,9],color:[4,5,10],pow:4,address:4,pop:4,distinguish:4,callnz:4,reciproc:4,anti:[2,5],provok:5,lg2:4,asdf:[],sine:4,endif:4,addition:4,devic:[3,7,9],three:[4,11],been:[4,11],compon:4,get_query_result:9,treat:10,basic:2,wait:4,up4ub:4,sprite:5,nrm:4,normalized_coord:10,xxx:[3,4,5,8,10,11],fade:4,coordin:[4,10],zero:4,minifi:10,texture_cr:3,func:11,predic:4,bgnloop:4,sad:4,present:9,multi:2,ident:4,slt:4,servic:7,properti:1,histor:4,rectangular:5,behavior:8,glossari:[2,0],sle:4,howev:4,loop:4,pack:[4,9],gl_nv_vertex_program2:4,cont:4,set_edgeflag:9,endfor:4,destin:[4,9],txq:4,bias:4,primit:[4,5],"_vs_state":9,sever:[7,5],set_blend_color:9,surface_fil:9,welcom:0,bind_fragment_sampler_st:9,perform:9,make:9,nail:9,cross:4,same:[4,9],member:[1,5,6,8,10,11],handl:[1,9],compare_mod:10,instanc:9,zpass_op:11,document:[0,11],difficult:9,finish:9,nest:9,driver:[4,7,9],effect:[1,4,5,10],mov:4,capabl:4,rais:[],kil:4,stack:4,squar:4,multisampl:5,appropri:4,off:[8,5],center:5,surface_copi:9,min:4,well:4,bgnsub:4,aisl:4,scissor:5,exampl:9,reflect:4,poly_stipple_en:5,thi:[2,4,5,8,9,10],interpol:[4,5],set_clip_st:9,dimension:10,i2f:4,usual:[4,5],explan:[0,4],distanc:4,identifi:3,execut:11,less:4,kilp:4,up2u:4,up2h:4,tcl:5,simpli:5,semanticnam:4,breakc:4,languag:4,begin:4,gl_nv_geometry_program4:4,expos:10,afaik:4,except:5,seem:9,add:[4,9],cleanup:4,exercis:9,sampler:[0,1,9,10],els:4,mod:4,bypass_vs_clip_and_viewport:[1,5],match:4,pipe_tex_wrap:10,vendor:3,which:[1,7],format:[3,4,9],read:9,agnost:7,piec:9,bia:[4,10],bgnfor:4,magnifi:10,amp:11,bit:[4,5],truncat:4,apart:9,like:9,specif:[1,3,9,5],integ:[3,4],point_siz:5,src1:4,either:[4,9],output:4,page:0,mag_img_filt:10,refin:10,pipe_primitive_quad_strip:5,right:4,draw_range_el:9,some:[9,10],blend_en:8,pusha:4,opcod:4,sampl:[2,4,10],bcolor:4,flush:9,guarante:9,bore:3,pixel:5,ddy:4,ddx:4,partiali:4,though:9,overlap:9,point_smooth:5,multipli:4,cnd:4,fog:4,larg:7,bra:4,condit:4,txp:4,refer:[11,10],core:[1,7],tgsi_semantic_ps:4,run:5,rsq:4,border_color:10,ifc:4,"_depth_stencil_alpha_st":9,appli:10,describ:[4,9],writemask:11,src:4,actual:[4,5,11],solidifi:4,gallium:[0,1,4,7,6],semanticindex:4,bind_vertex_sampler_st:9,set_vertex_buff:9,stand:9,awai:5,discard:[4,11],approxim:4,mean:4,disabl:10,block:4,"final":[8,9],"float":[3,4],bound:[1,9,10],down:9,explain:4,alpha:[0,1,4,9,11],wrap:10,chang:[5,9],batch:9,mere:5,flatshade_first:[1,5],occupi:4,log:4,lod:[4,10],support:[4,6],rcp:4,transform:[4,5],xpd:4,avail:9,width:5,set_polygon_stippl:9,interfac:9,includ:4,fraction:4,cartesian:4,individu:[4,10],rcc:4,"function":[4,9,11],homogen:4,back:[3,4],tgsi_semantic_fac:4,set_vertex_sampler_textur:9,point_size_max:5,link:4,blit:9,line:5,"true":4,viewport:[4,5],gl_nv_gpu_program4:4,notat:10,flavour:9,input:4,draw_arrai:9,whether:[11,5,10],wish:5,caller:5,bind_blend_st:9,maximum:[4,5,10],"abstract":9,line_stipple_pattern:5,tgsi_semantic_norm:4,emit:4,offset_scal:5,gather:9,constant:[1,4],creat:[1,3,9],classic:9,certain:[4,11],dure:11,rfl:4,repres:[3,9],implement:5,file:4,doe:4,check:4,fill:[1,9],polygon:[2,4,5],floor:4,when:[4,5,9,10],detail:[4,10],power:4,field:4,other:[0,4],lookup:4,futur:9,branch:4,test:[5,11],ref_valu:11,draw:9,repeat:4,exp:4,is_format_support:3,symbol:[0,4],vertex:[4,5,9],surfac:9,scale:4,consid:4,receiv:11,blitter:9,algorithm:5,rule:5,pipe_primitive_triangle_fan:5,depth:[0,1,2,4,9,11],"_fs_state":9,potenti:4,time:[1,4],push:4,line_width:5,rep:4,togeth:11},titles:["Welcome to Gallium’s documentation!","CSO","Glossary","Screen","TGSI","Rasterizer","Shader","Introduction","Blend","Context","Sampler","Depth, Stencil, & Alpha"],modules:{},descrefs:{},filenames:["index","cso","glossary","screen","tgsi","cso/rasterizer","cso/shader","intro","cso/blend","context","cso/sampler","cso/dsa"]}) \ No newline at end of file diff --git a/src/gallium/docs/build/html/tgsi.html b/src/gallium/docs/build/html/tgsi.html index 0dac00f25e..7954e1de40 100644 --- a/src/gallium/docs/build/html/tgsi.html +++ b/src/gallium/docs/build/html/tgsi.html @@ -861,13 +861,76 @@ is 0.

    The meanings of the individual semantic names are explained in the following sections.

    -
    -

    FACE

    -
    -

    Valid only in a fragment shader INPUT declaration.

    -

    FACE.x is negative when the primitive is back facing. FACE.x is positive -when the primitive is front facing.

    -
    +
    +

    TGSI_SEMANTIC_POSITION

    +

    Position, sometimes known as HPOS or WPOS for historical reasons, is the +location of the vertex in space, in (x, y, z, w) format. x, y, and z +are the Cartesian coordinates, and w is the homogenous coordinate and used +for the perspective divide, if enabled.

    +

    As a vertex shader output, position should be scaled to the viewport. When +used in fragment shaders, position will —

    +

    XXX — wait a minute. Should position be in [0,1] for x and y?

    +

    XXX additionally, is there a way to configure the perspective divide? it’s +accelerated on most chipsets AFAIK...

    +

    Position, if not specified, usually defaults to (0, 0, 0, 1), and can +be partially specified as (x, y, 0, 1) or (x, y, z, 1).

    +

    XXX usually? can we solidify that?

    +
    +
    +

    TGSI_SEMANTIC_COLOR

    +

    Colors are used to, well, color the primitives. Colors are always in +(r, g, b, a) format.

    +

    If alpha is not specified, it defaults to 1.

    +
    +
    +

    TGSI_SEMANTIC_BCOLOR

    +

    Back-facing colors are only used for back-facing polygons, and are only valid +in vertex shader outputs. After rasterization, all polygons are front-facing +and COLOR and BCOLOR end up occupying the same slots in the fragment, so +all BCOLORs effectively become regular COLORs in the fragment shader.

    +
    +
    +

    TGSI_SEMANTIC_FOG

    +

    The fog coordinate historically has been used to replace the depth coordinate +for generation of fog in dedicated fog blocks. Gallium, however, does not use +dedicated fog acceleration, placing it entirely in the fragment shader +instead.

    +

    The fog coordinate should be written in (f, 0, 0, 1) format. Only the first +component matters when writing from the vertex shader; the driver will ensure +that the coordinate is in this format when used as a fragment shader input.

    +
    +
    +

    TGSI_SEMANTIC_PSIZE

    +

    PSIZE, or point size, is used to specify point sizes per-vertex. It should +be in (p, n, x, f) format, where p is the point size, n is the minimum +size, x is the maximum size, and f is the fade threshold.

    +

    XXX this is arb_vp. is this what we actually do? should double-check...

    +

    When using this semantic, be sure to set the appropriate state in the +Rasterizer first.

    +
    +
    +

    TGSI_SEMANTIC_GENERIC

    +

    Generic semantics are nearly always used for texture coordinate attributes, +in (s, t, r, q) format. t and r may be unused for certain kinds +of lookups, and q is the level-of-detail bias for biased sampling.

    +

    These attributes are called “generic” because they may be used for anything +else, including parameters, texture generation information, or anything that +can be stored inside a four-component vector.

    +
    +
    +

    TGSI_SEMANTIC_NORMAL

    +

    XXX no clue.

    +
    +
    +

    TGSI_SEMANTIC_FACE

    +

    FACE is the facing bit, to store the facing information for the fragment +shader. (f, 0, 0, 1) is the format. The first component will be positive +when the fragment is front-facing, and negative when the component is +back-facing.

    +
    +
    +

    TGSI_SEMANTIC_EDGEFLAG

    +

    XXX no clue

    @@ -898,7 +961,15 @@ when the primitive is front facing.

  • Other tokens diff --git a/src/gallium/docs/source/tgsi.rst b/src/gallium/docs/source/tgsi.rst index 86c09046f7..12687f29dc 100644 --- a/src/gallium/docs/source/tgsi.rst +++ b/src/gallium/docs/source/tgsi.rst @@ -1180,11 +1180,92 @@ Declaration Semantic The meanings of the individual semantic names are explained in the following sections. +TGSI_SEMANTIC_POSITION +"""""""""""""""""""""" -FACE -"""" +Position, sometimes known as HPOS or WPOS for historical reasons, is the +location of the vertex in space, in ``(x, y, z, w)`` format. ``x``, ``y``, and ``z`` +are the Cartesian coordinates, and ``w`` is the homogenous coordinate and used +for the perspective divide, if enabled. - Valid only in a fragment shader INPUT declaration. +As a vertex shader output, position should be scaled to the viewport. When +used in fragment shaders, position will --- - FACE.x is negative when the primitive is back facing. FACE.x is positive - when the primitive is front facing. +XXX --- wait a minute. Should position be in [0,1] for x and y? + +XXX additionally, is there a way to configure the perspective divide? it's +accelerated on most chipsets AFAIK... + +Position, if not specified, usually defaults to ``(0, 0, 0, 1)``, and can +be partially specified as ``(x, y, 0, 1)`` or ``(x, y, z, 1)``. + +XXX usually? can we solidify that? + +TGSI_SEMANTIC_COLOR +""""""""""""""""""" + +Colors are used to, well, color the primitives. Colors are always in +``(r, g, b, a)`` format. + +If alpha is not specified, it defaults to 1. + +TGSI_SEMANTIC_BCOLOR +"""""""""""""""""""" + +Back-facing colors are only used for back-facing polygons, and are only valid +in vertex shader outputs. After rasterization, all polygons are front-facing +and COLOR and BCOLOR end up occupying the same slots in the fragment, so +all BCOLORs effectively become regular COLORs in the fragment shader. + +TGSI_SEMANTIC_FOG +""""""""""""""""" + +The fog coordinate historically has been used to replace the depth coordinate +for generation of fog in dedicated fog blocks. Gallium, however, does not use +dedicated fog acceleration, placing it entirely in the fragment shader +instead. + +The fog coordinate should be written in ``(f, 0, 0, 1)`` format. Only the first +component matters when writing from the vertex shader; the driver will ensure +that the coordinate is in this format when used as a fragment shader input. + +TGSI_SEMANTIC_PSIZE +""""""""""""""""""" + +PSIZE, or point size, is used to specify point sizes per-vertex. It should +be in ``(p, n, x, f)`` format, where ``p`` is the point size, ``n`` is the minimum +size, ``x`` is the maximum size, and ``f`` is the fade threshold. + +XXX this is arb_vp. is this what we actually do? should double-check... + +When using this semantic, be sure to set the appropriate state in the +:ref:`rasterizer` first. + +TGSI_SEMANTIC_GENERIC +""""""""""""""""""""" + +Generic semantics are nearly always used for texture coordinate attributes, +in ``(s, t, r, q)`` format. ``t`` and ``r`` may be unused for certain kinds +of lookups, and ``q`` is the level-of-detail bias for biased sampling. + +These attributes are called "generic" because they may be used for anything +else, including parameters, texture generation information, or anything that +can be stored inside a four-component vector. + +TGSI_SEMANTIC_NORMAL +"""""""""""""""""""" + +XXX no clue. + +TGSI_SEMANTIC_FACE +"""""""""""""""""" + +FACE is the facing bit, to store the facing information for the fragment +shader. ``(f, 0, 0, 1)`` is the format. The first component will be positive +when the fragment is front-facing, and negative when the component is +back-facing. + +TGSI_SEMANTIC_EDGEFLAG +"""""""""""""""""""""" + +XXX no clue -- cgit v1.2.3 From b6659681f2ec73026eecafd54bfad72c2712b4dd Mon Sep 17 00:00:00 2001 From: Michal Krol Date: Mon, 4 Jan 2010 12:52:43 +0100 Subject: docs: Correct TGSI acronym expansion. --- src/gallium/docs/source/tgsi.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src') diff --git a/src/gallium/docs/source/tgsi.rst b/src/gallium/docs/source/tgsi.rst index 12687f29dc..12c3680973 100644 --- a/src/gallium/docs/source/tgsi.rst +++ b/src/gallium/docs/source/tgsi.rst @@ -1,7 +1,7 @@ TGSI ==== -TGSI, Tungsten Graphics Shader Instructions, is an intermediate language +TGSI, Tungsten Graphics Shader Infrastructure, is an intermediate language for describing shaders. Since Gallium is inherently shaderful, shaders are an important part of the API. TGSI is the only intermediate representation used by all drivers. -- cgit v1.2.3 From b3567fc9837cf12c03fe901b01cc4878e007fe52 Mon Sep 17 00:00:00 2001 From: Michal Krol Date: Mon, 4 Jan 2010 12:59:17 +0100 Subject: docs: Clarify math description of TGSI LRP instruction operation. --- src/gallium/docs/source/tgsi.rst | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'src') diff --git a/src/gallium/docs/source/tgsi.rst b/src/gallium/docs/source/tgsi.rst index 12c3680973..30d74aefd4 100644 --- a/src/gallium/docs/source/tgsi.rst +++ b/src/gallium/docs/source/tgsi.rst @@ -251,13 +251,13 @@ LRP - Linear Interpolate .. math:: - dst.x = src0.x \times (src1.x - src2.x) + src2.x + dst.x = src0.x \times src1.x + (1 - src0.x) \times src2.x - dst.y = src0.y \times (src1.y - src2.y) + src2.y + dst.y = src0.y \times src1.y + (1 - src0.y) \times src2.y - dst.z = src0.z \times (src1.z - src2.z) + src2.z + dst.z = src0.z \times src1.z + (1 - src0.z) \times src2.z - dst.w = src0.w \times (src1.w - src2.w) + src2.w + dst.w = src0.w \times src1.w + (1 - src0.w) \times src2.w CND - Condition -- cgit v1.2.3 From c929664fdf257ce5e41a70545df72eb2f6b51d92 Mon Sep 17 00:00:00 2001 From: Michal Krol Date: Mon, 4 Jan 2010 13:12:27 +0100 Subject: docs: TGSI SIN and COS are scalar instructions. --- src/gallium/docs/source/tgsi.rst | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/gallium/docs/source/tgsi.rst b/src/gallium/docs/source/tgsi.rst index 30d74aefd4..cd84b0289a 100644 --- a/src/gallium/docs/source/tgsi.rst +++ b/src/gallium/docs/source/tgsi.rst @@ -442,7 +442,7 @@ COS - Cosine dst.z = \cos{src.x} - dst.w = \cos{src.w} + dst.w = \cos{src.x} DDX - Derivative Relative To X @@ -552,7 +552,7 @@ SIN - Sine dst.z = \sin{src.x} - dst.w = \sin{src.w} + dst.w = \sin{src.x} SLE - Set On Less Equal Than -- cgit v1.2.3 From cef218062aeb86bc7564483b3c39d61532d35e48 Mon Sep 17 00:00:00 2001 From: Michal Krol Date: Mon, 4 Jan 2010 13:15:28 +0100 Subject: docs: Replace bogus `\times' back with `*'. --- src/gallium/docs/source/tgsi.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src') diff --git a/src/gallium/docs/source/tgsi.rst b/src/gallium/docs/source/tgsi.rst index cd84b0289a..028ddce839 100644 --- a/src/gallium/docs/source/tgsi.rst +++ b/src/gallium/docs/source/tgsi.rst @@ -676,7 +676,7 @@ RET - Subroutine Call Return pc = pop() Potential restrictions: - \times Only occurs at end of function. + * Only occurs at end of function. SSG - Set Sign -- cgit v1.2.3 From 07f416cdc9cfdbad6bbeee0cbd826252e93ed26e Mon Sep 17 00:00:00 2001 From: Michal Krol Date: Mon, 4 Jan 2010 13:21:32 +0100 Subject: docs: Clarify what truncate means. --- src/gallium/docs/source/tgsi.rst | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) (limited to 'src') diff --git a/src/gallium/docs/source/tgsi.rst b/src/gallium/docs/source/tgsi.rst index 028ddce839..0a3aa4f8c4 100644 --- a/src/gallium/docs/source/tgsi.rst +++ b/src/gallium/docs/source/tgsi.rst @@ -899,8 +899,6 @@ NOT - Bitwise Not TRUNC - Truncate -XXX how is this different from floor? - .. math:: dst.x = trunc(src.x) @@ -1130,7 +1128,7 @@ Functions round(x) Round x. - trunc(x) Truncate x. + trunc(x) Truncate x, i.e. drop the fraction bits. Keywords -- cgit v1.2.3 From 8ab89d7681b90ba4cf556237fe5d08b706fd11ae Mon Sep 17 00:00:00 2001 From: Michal Krol Date: Mon, 4 Jan 2010 13:23:41 +0100 Subject: docs: Fix indent. --- src/gallium/docs/source/tgsi.rst | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/gallium/docs/source/tgsi.rst b/src/gallium/docs/source/tgsi.rst index 0a3aa4f8c4..492a1b7ea3 100644 --- a/src/gallium/docs/source/tgsi.rst +++ b/src/gallium/docs/source/tgsi.rst @@ -1054,10 +1054,10 @@ ENDSUB - End Subroutine TBD - NOP - No Operation - Do nothing. + Do nothing. + NRM4 - 4-component Vector Normalise -- cgit v1.2.3 From 86b336f71b21c813a1fa890440553aedcfb08fa7 Mon Sep 17 00:00:00 2001 From: Michal Krol Date: Mon, 4 Jan 2010 13:38:58 +0100 Subject: docs: Explain TGSI_SEMANTIC_NORMAL. --- src/gallium/docs/source/tgsi.rst | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/gallium/docs/source/tgsi.rst b/src/gallium/docs/source/tgsi.rst index 492a1b7ea3..ebee4902b0 100644 --- a/src/gallium/docs/source/tgsi.rst +++ b/src/gallium/docs/source/tgsi.rst @@ -1253,7 +1253,8 @@ can be stored inside a four-component vector. TGSI_SEMANTIC_NORMAL """""""""""""""""""" -XXX no clue. +Vertex normal; could be used to implement per-pixel lighting for legacy APIs +that allow mixing fixed-function and programmable stages. TGSI_SEMANTIC_FACE """""""""""""""""" -- cgit v1.2.3 From acb8073d074de23c5e3753b9096e02b8101adeca Mon Sep 17 00:00:00 2001 From: Corbin Simpson Date: Thu, 24 Dec 2009 01:53:48 -0800 Subject: docs: Stub out list of modules in core distribution of G3D. --- src/gallium/docs/source/distro.rst | 141 +++++++++++++++++++++++++++++++++++++ src/gallium/docs/source/index.rst | 1 + 2 files changed, 142 insertions(+) create mode 100644 src/gallium/docs/source/distro.rst (limited to 'src') diff --git a/src/gallium/docs/source/distro.rst b/src/gallium/docs/source/distro.rst new file mode 100644 index 0000000000..33e846e33d --- /dev/null +++ b/src/gallium/docs/source/distro.rst @@ -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 +^^^^ + diff --git a/src/gallium/docs/source/index.rst b/src/gallium/docs/source/index.rst index 1800bbed47..54bc883fce 100644 --- a/src/gallium/docs/source/index.rst +++ b/src/gallium/docs/source/index.rst @@ -16,6 +16,7 @@ Contents: screen context cso + distro glossary Indices and tables -- cgit v1.2.3 From 467cccf0a77e225b886711db2b0b929ecf71e411 Mon Sep 17 00:00:00 2001 From: Corbin Simpson Date: Tue, 5 Jan 2010 08:22:52 -0800 Subject: docs: Don't check in generated docs. Per ML discussion. --- src/gallium/docs/build/html/.buildinfo | 4 - src/gallium/docs/build/html/_sources/context.txt | 128 -- src/gallium/docs/build/html/_sources/cso.txt | 14 - src/gallium/docs/build/html/_sources/cso/blend.txt | 14 - src/gallium/docs/build/html/_sources/cso/dsa.txt | 58 - .../docs/build/html/_sources/cso/rasterizer.txt | 87 -- .../docs/build/html/_sources/cso/sampler.txt | 46 - .../docs/build/html/_sources/cso/shader.txt | 12 - src/gallium/docs/build/html/_sources/glossary.txt | 10 - src/gallium/docs/build/html/_sources/index.txt | 27 - src/gallium/docs/build/html/_sources/intro.txt | 9 - src/gallium/docs/build/html/_sources/screen.txt | 39 - src/gallium/docs/build/html/_sources/tgsi.txt | 1271 -------------------- src/gallium/docs/build/html/_static/basic.css | 405 ------- src/gallium/docs/build/html/_static/default.css | 210 ---- src/gallium/docs/build/html/_static/doctools.js | 232 ---- src/gallium/docs/build/html/_static/file.png | Bin 392 -> 0 bytes src/gallium/docs/build/html/_static/jquery.js | 32 - src/gallium/docs/build/html/_static/minus.png | Bin 199 -> 0 bytes src/gallium/docs/build/html/_static/plus.png | Bin 199 -> 0 bytes src/gallium/docs/build/html/_static/pygments.css | 61 - src/gallium/docs/build/html/_static/searchtools.js | 467 ------- src/gallium/docs/build/html/context.html | 224 ---- src/gallium/docs/build/html/cso.html | 141 --- src/gallium/docs/build/html/cso/blend.html | 124 -- src/gallium/docs/build/html/cso/dsa.html | 173 --- src/gallium/docs/build/html/cso/rasterizer.html | 203 ---- src/gallium/docs/build/html/cso/sampler.html | 157 --- src/gallium/docs/build/html/cso/shader.html | 125 -- src/gallium/docs/build/html/genindex.html | 96 -- src/gallium/docs/build/html/glossary.html | 102 -- src/gallium/docs/build/html/index.html | 142 --- src/gallium/docs/build/html/intro.html | 120 -- src/gallium/docs/build/html/objects.inv | 3 - src/gallium/docs/build/html/screen.html | 151 --- src/gallium/docs/build/html/search.html | 91 -- src/gallium/docs/build/html/searchindex.js | 1 - src/gallium/docs/build/html/tgsi.html | 1029 ---------------- 38 files changed, 6008 deletions(-) delete mode 100644 src/gallium/docs/build/html/.buildinfo delete mode 100644 src/gallium/docs/build/html/_sources/context.txt delete mode 100644 src/gallium/docs/build/html/_sources/cso.txt delete mode 100644 src/gallium/docs/build/html/_sources/cso/blend.txt delete mode 100644 src/gallium/docs/build/html/_sources/cso/dsa.txt delete mode 100644 src/gallium/docs/build/html/_sources/cso/rasterizer.txt delete mode 100644 src/gallium/docs/build/html/_sources/cso/sampler.txt delete mode 100644 src/gallium/docs/build/html/_sources/cso/shader.txt delete mode 100644 src/gallium/docs/build/html/_sources/glossary.txt delete mode 100644 src/gallium/docs/build/html/_sources/index.txt delete mode 100644 src/gallium/docs/build/html/_sources/intro.txt delete mode 100644 src/gallium/docs/build/html/_sources/screen.txt delete mode 100644 src/gallium/docs/build/html/_sources/tgsi.txt delete mode 100644 src/gallium/docs/build/html/_static/basic.css delete mode 100644 src/gallium/docs/build/html/_static/default.css delete mode 100644 src/gallium/docs/build/html/_static/doctools.js delete mode 100644 src/gallium/docs/build/html/_static/file.png delete mode 100644 src/gallium/docs/build/html/_static/jquery.js delete mode 100644 src/gallium/docs/build/html/_static/minus.png delete mode 100644 src/gallium/docs/build/html/_static/plus.png delete mode 100644 src/gallium/docs/build/html/_static/pygments.css delete mode 100644 src/gallium/docs/build/html/_static/searchtools.js delete mode 100644 src/gallium/docs/build/html/context.html delete mode 100644 src/gallium/docs/build/html/cso.html delete mode 100644 src/gallium/docs/build/html/cso/blend.html delete mode 100644 src/gallium/docs/build/html/cso/dsa.html delete mode 100644 src/gallium/docs/build/html/cso/rasterizer.html delete mode 100644 src/gallium/docs/build/html/cso/sampler.html delete mode 100644 src/gallium/docs/build/html/cso/shader.html delete mode 100644 src/gallium/docs/build/html/genindex.html delete mode 100644 src/gallium/docs/build/html/glossary.html delete mode 100644 src/gallium/docs/build/html/index.html delete mode 100644 src/gallium/docs/build/html/intro.html delete mode 100644 src/gallium/docs/build/html/objects.inv delete mode 100644 src/gallium/docs/build/html/screen.html delete mode 100644 src/gallium/docs/build/html/search.html delete mode 100644 src/gallium/docs/build/html/searchindex.js delete mode 100644 src/gallium/docs/build/html/tgsi.html (limited to 'src') diff --git a/src/gallium/docs/build/html/.buildinfo b/src/gallium/docs/build/html/.buildinfo deleted file mode 100644 index 91dc31f0ac..0000000000 --- a/src/gallium/docs/build/html/.buildinfo +++ /dev/null @@ -1,4 +0,0 @@ -# Sphinx build info version 1 -# This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done. -config: e48279c15771d329f916579cf997b5a9 -tags: fbb0d17656682115ca4d033fb2f83ba1 diff --git a/src/gallium/docs/build/html/_sources/context.txt b/src/gallium/docs/build/html/_sources/context.txt deleted file mode 100644 index 21f5f9111a..0000000000 --- a/src/gallium/docs/build/html/_sources/context.txt +++ /dev/null @@ -1,128 +0,0 @@ -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. - diff --git a/src/gallium/docs/build/html/_sources/cso.txt b/src/gallium/docs/build/html/_sources/cso.txt deleted file mode 100644 index dab1ee50f3..0000000000 --- a/src/gallium/docs/build/html/_sources/cso.txt +++ /dev/null @@ -1,14 +0,0 @@ -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/* diff --git a/src/gallium/docs/build/html/_sources/cso/blend.txt b/src/gallium/docs/build/html/_sources/cso/blend.txt deleted file mode 100644 index fd9e4a1e2d..0000000000 --- a/src/gallium/docs/build/html/_sources/cso/blend.txt +++ /dev/null @@ -1,14 +0,0 @@ -.. _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 diff --git a/src/gallium/docs/build/html/_sources/cso/dsa.txt b/src/gallium/docs/build/html/_sources/cso/dsa.txt deleted file mode 100644 index 12abaa9d6f..0000000000 --- a/src/gallium/docs/build/html/_sources/cso/dsa.txt +++ /dev/null @@ -1,58 +0,0 @@ -.. _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. diff --git a/src/gallium/docs/build/html/_sources/cso/rasterizer.txt b/src/gallium/docs/build/html/_sources/cso/rasterizer.txt deleted file mode 100644 index afb58ea375..0000000000 --- a/src/gallium/docs/build/html/_sources/cso/rasterizer.txt +++ /dev/null @@ -1,87 +0,0 @@ -.. _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. diff --git a/src/gallium/docs/build/html/_sources/cso/sampler.txt b/src/gallium/docs/build/html/_sources/cso/sampler.txt deleted file mode 100644 index e3f1757f57..0000000000 --- a/src/gallium/docs/build/html/_sources/cso/sampler.txt +++ /dev/null @@ -1,46 +0,0 @@ -.. _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. diff --git a/src/gallium/docs/build/html/_sources/cso/shader.txt b/src/gallium/docs/build/html/_sources/cso/shader.txt deleted file mode 100644 index 0ee42c8787..0000000000 --- a/src/gallium/docs/build/html/_sources/cso/shader.txt +++ /dev/null @@ -1,12 +0,0 @@ -.. _shader: - -Shader -====== - -One of the two types of shaders supported by Gallium. - -Members -------- - -tokens - A list of tgsi_tokens. diff --git a/src/gallium/docs/build/html/_sources/glossary.txt b/src/gallium/docs/build/html/_sources/glossary.txt deleted file mode 100644 index 6a9110ce78..0000000000 --- a/src/gallium/docs/build/html/_sources/glossary.txt +++ /dev/null @@ -1,10 +0,0 @@ -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. diff --git a/src/gallium/docs/build/html/_sources/index.txt b/src/gallium/docs/build/html/_sources/index.txt deleted file mode 100644 index 1800bbed47..0000000000 --- a/src/gallium/docs/build/html/_sources/index.txt +++ /dev/null @@ -1,27 +0,0 @@ -.. 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 - glossary - -Indices and tables -================== - -* :ref:`genindex` -* :ref:`modindex` -* :ref:`search` - diff --git a/src/gallium/docs/build/html/_sources/intro.txt b/src/gallium/docs/build/html/_sources/intro.txt deleted file mode 100644 index 1ea103840a..0000000000 --- a/src/gallium/docs/build/html/_sources/intro.txt +++ /dev/null @@ -1,9 +0,0 @@ -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. diff --git a/src/gallium/docs/build/html/_sources/screen.txt b/src/gallium/docs/build/html/_sources/screen.txt deleted file mode 100644 index 9631e6967e..0000000000 --- a/src/gallium/docs/build/html/_sources/screen.txt +++ /dev/null @@ -1,39 +0,0 @@ -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. diff --git a/src/gallium/docs/build/html/_sources/tgsi.txt b/src/gallium/docs/build/html/_sources/tgsi.txt deleted file mode 100644 index 12687f29dc..0000000000 --- a/src/gallium/docs/build/html/_sources/tgsi.txt +++ /dev/null @@ -1,1271 +0,0 @@ -TGSI -==== - -TGSI, Tungsten Graphics Shader Instructions, is an intermediate language -for describing shaders. Since Gallium is inherently shaderful, shaders are -an important part of the API. TGSI is the only intermediate representation -used by all drivers. - -Instruction Set ---------------- - -From GL_NV_vertex_program -^^^^^^^^^^^^^^^^^^^^^^^^^ - - -ARL - Address Register Load - -.. math:: - - dst.x = \lfloor src.x\rfloor - - dst.y = \lfloor src.y\rfloor - - dst.z = \lfloor src.z\rfloor - - dst.w = \lfloor src.w\rfloor - - -MOV - Move - -.. math:: - - dst.x = src.x - - dst.y = src.y - - dst.z = src.z - - dst.w = src.w - - -LIT - Light Coefficients - -.. math:: - - dst.x = 1 - - dst.y = max(src.x, 0) - - dst.z = (src.x > 0) ? max(src.y, 0)^{clamp(src.w, -128, 128))} : 0 - - dst.w = 1 - - -RCP - Reciprocal - -.. math:: - - dst.x = \frac{1}{src.x} - - dst.y = \frac{1}{src.x} - - dst.z = \frac{1}{src.x} - - dst.w = \frac{1}{src.x} - - -RSQ - Reciprocal Square Root - -.. math:: - - dst.x = \frac{1}{\sqrt{|src.x|}} - - dst.y = \frac{1}{\sqrt{|src.x|}} - - dst.z = \frac{1}{\sqrt{|src.x|}} - - dst.w = \frac{1}{\sqrt{|src.x|}} - - -EXP - Approximate Exponential Base 2 - -.. math:: - - dst.x = 2^{\lfloor src.x\rfloor} - - dst.y = src.x - \lfloor src.x\rfloor - - dst.z = 2^{src.x} - - dst.w = 1 - - -LOG - Approximate Logarithm Base 2 - -.. math:: - - dst.x = \lfloor\log_2{|src.x|}\rfloor - - dst.y = \frac{|src.x|}{2^{\lfloor\log_2{|src.x|}\rfloor}} - - dst.z = \log_2{|src.x|} - - dst.w = 1 - - -MUL - Multiply - -.. math:: - - dst.x = src0.x \times src1.x - - dst.y = src0.y \times src1.y - - dst.z = src0.z \times src1.z - - dst.w = src0.w \times src1.w - - -ADD - Add - -.. math:: - - dst.x = src0.x + src1.x - - dst.y = src0.y + src1.y - - dst.z = src0.z + src1.z - - dst.w = src0.w + src1.w - - -DP3 - 3-component Dot Product - -.. math:: - - dst.x = src0.x \times src1.x + src0.y \times src1.y + src0.z \times src1.z - - dst.y = src0.x \times src1.x + src0.y \times src1.y + src0.z \times src1.z - - dst.z = src0.x \times src1.x + src0.y \times src1.y + src0.z \times src1.z - - dst.w = src0.x \times src1.x + src0.y \times src1.y + src0.z \times src1.z - - -DP4 - 4-component Dot Product - -.. math:: - - dst.x = src0.x \times src1.x + src0.y \times src1.y + src0.z \times src1.z + src0.w \times src1.w - - dst.y = src0.x \times src1.x + src0.y \times src1.y + src0.z \times src1.z + src0.w \times src1.w - - dst.z = src0.x \times src1.x + src0.y \times src1.y + src0.z \times src1.z + src0.w \times src1.w - - dst.w = src0.x \times src1.x + src0.y \times src1.y + src0.z \times src1.z + src0.w \times src1.w - - -DST - Distance Vector - -.. math:: - - dst.x = 1 - - dst.y = src0.y \times src1.y - - dst.z = src0.z - - dst.w = src1.w - - -MIN - Minimum - -.. math:: - - dst.x = min(src0.x, src1.x) - - dst.y = min(src0.y, src1.y) - - dst.z = min(src0.z, src1.z) - - dst.w = min(src0.w, src1.w) - - -MAX - Maximum - -.. math:: - - dst.x = max(src0.x, src1.x) - - dst.y = max(src0.y, src1.y) - - dst.z = max(src0.z, src1.z) - - dst.w = max(src0.w, src1.w) - - -SLT - Set On Less Than - -.. math:: - - dst.x = (src0.x < src1.x) ? 1 : 0 - - dst.y = (src0.y < src1.y) ? 1 : 0 - - dst.z = (src0.z < src1.z) ? 1 : 0 - - dst.w = (src0.w < src1.w) ? 1 : 0 - - -SGE - Set On Greater Equal Than - -.. math:: - - dst.x = (src0.x >= src1.x) ? 1 : 0 - - dst.y = (src0.y >= src1.y) ? 1 : 0 - - dst.z = (src0.z >= src1.z) ? 1 : 0 - - dst.w = (src0.w >= src1.w) ? 1 : 0 - - -MAD - Multiply And Add - -.. math:: - - dst.x = src0.x \times src1.x + src2.x - - dst.y = src0.y \times src1.y + src2.y - - dst.z = src0.z \times src1.z + src2.z - - dst.w = src0.w \times src1.w + src2.w - - -SUB - Subtract - -.. math:: - - dst.x = src0.x - src1.x - - dst.y = src0.y - src1.y - - dst.z = src0.z - src1.z - - dst.w = src0.w - src1.w - - -LRP - Linear Interpolate - -.. math:: - - dst.x = src0.x \times (src1.x - src2.x) + src2.x - - dst.y = src0.y \times (src1.y - src2.y) + src2.y - - dst.z = src0.z \times (src1.z - src2.z) + src2.z - - dst.w = src0.w \times (src1.w - src2.w) + src2.w - - -CND - Condition - -.. math:: - - dst.x = (src2.x > 0.5) ? src0.x : src1.x - - dst.y = (src2.y > 0.5) ? src0.y : src1.y - - dst.z = (src2.z > 0.5) ? src0.z : src1.z - - dst.w = (src2.w > 0.5) ? src0.w : src1.w - - -DP2A - 2-component Dot Product And Add - -.. math:: - - dst.x = src0.x \times src1.x + src0.y \times src1.y + src2.x - - dst.y = src0.x \times src1.x + src0.y \times src1.y + src2.x - - dst.z = src0.x \times src1.x + src0.y \times src1.y + src2.x - - dst.w = src0.x \times src1.x + src0.y \times src1.y + src2.x - - -FRAC - Fraction - -.. math:: - - dst.x = src.x - \lfloor src.x\rfloor - - dst.y = src.y - \lfloor src.y\rfloor - - dst.z = src.z - \lfloor src.z\rfloor - - dst.w = src.w - \lfloor src.w\rfloor - - -CLAMP - Clamp - -.. math:: - - dst.x = clamp(src0.x, src1.x, src2.x) - - dst.y = clamp(src0.y, src1.y, src2.y) - - dst.z = clamp(src0.z, src1.z, src2.z) - - dst.w = clamp(src0.w, src1.w, src2.w) - - -FLR - Floor - -This is identical to ARL. - -.. math:: - - dst.x = \lfloor src.x\rfloor - - dst.y = \lfloor src.y\rfloor - - dst.z = \lfloor src.z\rfloor - - dst.w = \lfloor src.w\rfloor - - -ROUND - Round - -.. math:: - - dst.x = round(src.x) - - dst.y = round(src.y) - - dst.z = round(src.z) - - dst.w = round(src.w) - - -EX2 - Exponential Base 2 - -.. math:: - - dst.x = 2^{src.x} - - dst.y = 2^{src.x} - - dst.z = 2^{src.x} - - dst.w = 2^{src.x} - - -LG2 - Logarithm Base 2 - -.. math:: - - dst.x = \log_2{src.x} - - dst.y = \log_2{src.x} - - dst.z = \log_2{src.x} - - dst.w = \log_2{src.x} - - -POW - Power - -.. math:: - - dst.x = src0.x^{src1.x} - - dst.y = src0.x^{src1.x} - - dst.z = src0.x^{src1.x} - - dst.w = src0.x^{src1.x} - -XPD - Cross Product - -.. math:: - - dst.x = src0.y \times src1.z - src1.y \times src0.z - - dst.y = src0.z \times src1.x - src1.z \times src0.x - - dst.z = src0.x \times src1.y - src1.x \times src0.y - - dst.w = 1 - - -ABS - Absolute - -.. math:: - - dst.x = |src.x| - - dst.y = |src.y| - - dst.z = |src.z| - - dst.w = |src.w| - - -RCC - Reciprocal Clamped - -XXX cleanup on aisle three - -.. math:: - - dst.x = (1 / src.x) > 0 ? clamp(1 / src.x, 5.42101e-020, 1.884467e+019) : clamp(1 / src.x, -1.884467e+019, -5.42101e-020) - - dst.y = (1 / src.x) > 0 ? clamp(1 / src.x, 5.42101e-020, 1.884467e+019) : clamp(1 / src.x, -1.884467e+019, -5.42101e-020) - - dst.z = (1 / src.x) > 0 ? clamp(1 / src.x, 5.42101e-020, 1.884467e+019) : clamp(1 / src.x, -1.884467e+019, -5.42101e-020) - - dst.w = (1 / src.x) > 0 ? clamp(1 / src.x, 5.42101e-020, 1.884467e+019) : clamp(1 / src.x, -1.884467e+019, -5.42101e-020) - - -DPH - Homogeneous Dot Product - -.. math:: - - dst.x = src0.x \times src1.x + src0.y \times src1.y + src0.z \times src1.z + src1.w - - dst.y = src0.x \times src1.x + src0.y \times src1.y + src0.z \times src1.z + src1.w - - dst.z = src0.x \times src1.x + src0.y \times src1.y + src0.z \times src1.z + src1.w - - dst.w = src0.x \times src1.x + src0.y \times src1.y + src0.z \times src1.z + src1.w - - -COS - Cosine - -.. math:: - - dst.x = \cos{src.x} - - dst.y = \cos{src.x} - - dst.z = \cos{src.x} - - dst.w = \cos{src.w} - - -DDX - Derivative Relative To X - -.. math:: - - dst.x = partialx(src.x) - - dst.y = partialx(src.y) - - dst.z = partialx(src.z) - - dst.w = partialx(src.w) - - -DDY - Derivative Relative To Y - -.. math:: - - dst.x = partialy(src.x) - - dst.y = partialy(src.y) - - dst.z = partialy(src.z) - - dst.w = partialy(src.w) - - -KILP - Predicated Discard - - discard - - -PK2H - Pack Two 16-bit Floats - - TBD - - -PK2US - Pack Two Unsigned 16-bit Scalars - - TBD - - -PK4B - Pack Four Signed 8-bit Scalars - - TBD - - -PK4UB - Pack Four Unsigned 8-bit Scalars - - TBD - - -RFL - Reflection Vector - -.. math:: - - dst.x = 2 \times (src0.x \times src1.x + src0.y \times src1.y + src0.z \times src1.z) / (src0.x \times src0.x + src0.y \times src0.y + src0.z \times src0.z) \times src0.x - src1.x - - dst.y = 2 \times (src0.x \times src1.x + src0.y \times src1.y + src0.z \times src1.z) / (src0.x \times src0.x + src0.y \times src0.y + src0.z \times src0.z) \times src0.y - src1.y - - dst.z = 2 \times (src0.x \times src1.x + src0.y \times src1.y + src0.z \times src1.z) / (src0.x \times src0.x + src0.y \times src0.y + src0.z \times src0.z) \times src0.z - src1.z - - dst.w = 1 - -Considered for removal. - - -SEQ - Set On Equal - -.. math:: - - dst.x = (src0.x == src1.x) ? 1 : 0 - dst.y = (src0.y == src1.y) ? 1 : 0 - dst.z = (src0.z == src1.z) ? 1 : 0 - dst.w = (src0.w == src1.w) ? 1 : 0 - - -SFL - Set On False - -.. math:: - - dst.x = 0 - dst.y = 0 - dst.z = 0 - dst.w = 0 - -Considered for removal. - -SGT - Set On Greater Than - -.. math:: - - dst.x = (src0.x > src1.x) ? 1 : 0 - dst.y = (src0.y > src1.y) ? 1 : 0 - dst.z = (src0.z > src1.z) ? 1 : 0 - dst.w = (src0.w > src1.w) ? 1 : 0 - - -SIN - Sine - -.. math:: - - dst.x = \sin{src.x} - - dst.y = \sin{src.x} - - dst.z = \sin{src.x} - - dst.w = \sin{src.w} - - -SLE - Set On Less Equal Than - -.. math:: - - dst.x = (src0.x <= src1.x) ? 1 : 0 - dst.y = (src0.y <= src1.y) ? 1 : 0 - dst.z = (src0.z <= src1.z) ? 1 : 0 - dst.w = (src0.w <= src1.w) ? 1 : 0 - - -SNE - Set On Not Equal - -.. math:: - - dst.x = (src0.x != src1.x) ? 1 : 0 - dst.y = (src0.y != src1.y) ? 1 : 0 - dst.z = (src0.z != src1.z) ? 1 : 0 - dst.w = (src0.w != src1.w) ? 1 : 0 - - -STR - Set On True - -.. math:: - - dst.x = 1 - dst.y = 1 - dst.z = 1 - dst.w = 1 - - -TEX - Texture Lookup - - TBD - - -TXD - Texture Lookup with Derivatives - - TBD - - -TXP - Projective Texture Lookup - - TBD - - -UP2H - Unpack Two 16-Bit Floats - - TBD - - Considered for removal. - -UP2US - Unpack Two Unsigned 16-Bit Scalars - - TBD - - Considered for removal. - -UP4B - Unpack Four Signed 8-Bit Values - - TBD - - Considered for removal. - -UP4UB - Unpack Four Unsigned 8-Bit Scalars - - TBD - - Considered for removal. - -X2D - 2D Coordinate Transformation - -.. math:: - - dst.x = src0.x + src1.x \times src2.x + src1.y \times src2.y - dst.y = src0.y + src1.x \times src2.z + src1.y \times src2.w - dst.z = src0.x + src1.x \times src2.x + src1.y \times src2.y - dst.w = src0.y + src1.x \times src2.z + src1.y \times src2.w - -Considered for removal. - - -From GL_NV_vertex_program2 -^^^^^^^^^^^^^^^^^^^^^^^^^^ - - -ARA - Address Register Add - - TBD - - Considered for removal. - -ARR - Address Register Load With Round - -.. math:: - - dst.x = round(src.x) - - dst.y = round(src.y) - - dst.z = round(src.z) - - dst.w = round(src.w) - - -BRA - Branch - - pc = target - - Considered for removal. - -CAL - Subroutine Call - - push(pc) - pc = target - - -RET - Subroutine Call Return - - pc = pop() - - Potential restrictions: - \times Only occurs at end of function. - -SSG - Set Sign - -.. math:: - - dst.x = (src.x > 0) ? 1 : (src.x < 0) ? -1 : 0 - - dst.y = (src.y > 0) ? 1 : (src.y < 0) ? -1 : 0 - - dst.z = (src.z > 0) ? 1 : (src.z < 0) ? -1 : 0 - - dst.w = (src.w > 0) ? 1 : (src.w < 0) ? -1 : 0 - - -CMP - Compare - -.. math:: - - dst.x = (src0.x < 0) ? src1.x : src2.x - - dst.y = (src0.y < 0) ? src1.y : src2.y - - dst.z = (src0.z < 0) ? src1.z : src2.z - - dst.w = (src0.w < 0) ? src1.w : src2.w - - -KIL - Conditional Discard - -.. math:: - - if (src.x < 0 || src.y < 0 || src.z < 0 || src.w < 0) - discard - endif - - -SCS - Sine Cosine - -.. math:: - - dst.x = \cos{src.x} - - dst.y = \sin{src.x} - - dst.z = 0 - - dst.y = 1 - - -TXB - Texture Lookup With Bias - - TBD - - -NRM - 3-component Vector Normalise - -.. math:: - - dst.x = src.x / (src.x \times src.x + src.y \times src.y + src.z \times src.z) - - dst.y = src.y / (src.x \times src.x + src.y \times src.y + src.z \times src.z) - - dst.z = src.z / (src.x \times src.x + src.y \times src.y + src.z \times src.z) - - dst.w = 1 - - -DIV - Divide - -.. math:: - - dst.x = \frac{src0.x}{src1.x} - - dst.y = \frac{src0.y}{src1.y} - - dst.z = \frac{src0.z}{src1.z} - - dst.w = \frac{src0.w}{src1.w} - - -DP2 - 2-component Dot Product - -.. math:: - - dst.x = src0.x \times src1.x + src0.y \times src1.y - - dst.y = src0.x \times src1.x + src0.y \times src1.y - - dst.z = src0.x \times src1.x + src0.y \times src1.y - - dst.w = src0.x \times src1.x + src0.y \times src1.y - - -TXL - Texture Lookup With LOD - - TBD - - -BRK - Break - - TBD - - -IF - If - - TBD - - -BGNFOR - Begin a For-Loop - - dst.x = floor(src.x) - dst.y = floor(src.y) - dst.z = floor(src.z) - - if (dst.y <= 0) - pc = [matching ENDFOR] + 1 - endif - - Note: The destination must be a loop register. - The source must be a constant register. - - Considered for cleanup / removal. - - -REP - Repeat - - TBD - - -ELSE - Else - - TBD - - -ENDIF - End If - - TBD - - -ENDFOR - End a For-Loop - - dst.x = dst.x + dst.z - dst.y = dst.y - 1.0 - - if (dst.y > 0) - pc = [matching BGNFOR instruction] + 1 - endif - - Note: The destination must be a loop register. - - Considered for cleanup / removal. - -ENDREP - End Repeat - - TBD - - -PUSHA - Push Address Register On Stack - - push(src.x) - push(src.y) - push(src.z) - push(src.w) - - Considered for cleanup / removal. - -POPA - Pop Address Register From Stack - - dst.w = pop() - dst.z = pop() - dst.y = pop() - dst.x = pop() - - Considered for cleanup / removal. - - -From GL_NV_gpu_program4 -^^^^^^^^^^^^^^^^^^^^^^^^ - -Support for these opcodes indicated by a special pipe capability bit (TBD). - -CEIL - Ceiling - -.. math:: - - dst.x = \lceil src.x\rceil - - dst.y = \lceil src.y\rceil - - dst.z = \lceil src.z\rceil - - dst.w = \lceil src.w\rceil - - -I2F - Integer To Float - -.. math:: - - dst.x = (float) src.x - - dst.y = (float) src.y - - dst.z = (float) src.z - - dst.w = (float) src.w - - -NOT - Bitwise Not - -.. math:: - - dst.x = ~src.x - - dst.y = ~src.y - - dst.z = ~src.z - - dst.w = ~src.w - - -TRUNC - Truncate - -XXX how is this different from floor? - -.. math:: - - dst.x = trunc(src.x) - - dst.y = trunc(src.y) - - dst.z = trunc(src.z) - - dst.w = trunc(src.w) - - -SHL - Shift Left - -.. math:: - - dst.x = src0.x << src1.x - - dst.y = src0.y << src1.x - - dst.z = src0.z << src1.x - - dst.w = src0.w << src1.x - - -SHR - Shift Right - -.. math:: - - dst.x = src0.x >> src1.x - - dst.y = src0.y >> src1.x - - dst.z = src0.z >> src1.x - - dst.w = src0.w >> src1.x - - -AND - Bitwise And - -.. math:: - - dst.x = src0.x & src1.x - - dst.y = src0.y & src1.y - - dst.z = src0.z & src1.z - - dst.w = src0.w & src1.w - - -OR - Bitwise Or - -.. math:: - - dst.x = src0.x | src1.x - - dst.y = src0.y | src1.y - - dst.z = src0.z | src1.z - - dst.w = src0.w | src1.w - - -MOD - Modulus - -.. math:: - - dst.x = src0.x \bmod src1.x - - dst.y = src0.y \bmod src1.y - - dst.z = src0.z \bmod src1.z - - dst.w = src0.w \bmod src1.w - - -XOR - Bitwise Xor - -.. math:: - - dst.x = src0.x ^ src1.x - - dst.y = src0.y ^ src1.y - - dst.z = src0.z ^ src1.z - - dst.w = src0.w ^ src1.w - - -SAD - Sum Of Absolute Differences - -.. math:: - - dst.x = |src0.x - src1.x| + src2.x - - dst.y = |src0.y - src1.y| + src2.y - - dst.z = |src0.z - src1.z| + src2.z - - dst.w = |src0.w - src1.w| + src2.w - - -TXF - Texel Fetch - - TBD - - -TXQ - Texture Size Query - - TBD - - -CONT - Continue - - TBD - - -From GL_NV_geometry_program4 -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - - -EMIT - Emit - - TBD - - -ENDPRIM - End Primitive - - TBD - - -From GLSL -^^^^^^^^^^ - - -BGNLOOP - Begin a Loop - - TBD - - -BGNSUB - Begin Subroutine - - TBD - - -ENDLOOP - End a Loop - - TBD - - -ENDSUB - End Subroutine - - TBD - - - -NOP - No Operation - - Do nothing. - -NRM4 - 4-component Vector Normalise - -.. math:: - - dst.x = \frac{src.x}{src.x \times src.x + src.y \times src.y + src.z \times src.z + src.w \times src.w} - - dst.y = \frac{src.y}{src.x \times src.x + src.y \times src.y + src.z \times src.z + src.w \times src.w} - - dst.z = \frac{src.z}{src.x \times src.x + src.y \times src.y + src.z \times src.z + src.w \times src.w} - - dst.w = \frac{src.w}{src.x \times src.x + src.y \times src.y + src.z \times src.z + src.w \times src.w} - - -ps_2_x -^^^^^^^^^^^^ - - -CALLNZ - Subroutine Call If Not Zero - - TBD - - -IFC - If - - TBD - - -BREAKC - Break Conditional - - TBD - - -Explanation of symbols used ------------------------------- - - -Functions -^^^^^^^^^^^^^^ - - - :math:`|x|` Absolute value of `x`. - - :math:`\lceil x \rceil` Ceiling of `x`. - - clamp(x,y,z) Clamp x between y and z. - (x < y) ? y : (x > z) ? z : x - - :math:`\lfloor x\rfloor` Floor of `x`. - - :math:`\log_2{x}` Logarithm of `x`, base 2. - - max(x,y) Maximum of x and y. - (x > y) ? x : y - - min(x,y) Minimum of x and y. - (x < y) ? x : y - - partialx(x) Derivative of x relative to fragment's X. - - partialy(x) Derivative of x relative to fragment's Y. - - pop() Pop from stack. - - :math:`x^y` `x` to the power `y`. - - push(x) Push x on stack. - - round(x) Round x. - - trunc(x) Truncate x. - - -Keywords -^^^^^^^^^^^^^ - - - discard Discard fragment. - - dst First destination register. - - dst0 First destination register. - - pc Program counter. - - src First source register. - - src0 First source register. - - src1 Second source register. - - src2 Third source register. - - target Label of target instruction. - - -Other tokens ---------------- - - -Declaration Semantic -^^^^^^^^^^^^^^^^^^^^^^^^ - - - Follows Declaration token if Semantic bit is set. - - Since its purpose is to link a shader with other stages of the pipeline, - it is valid to follow only those Declaration tokens that declare a register - either in INPUT or OUTPUT file. - - SemanticName field contains the semantic name of the register being declared. - There is no default value. - - SemanticIndex is an optional subscript that can be used to distinguish - different register declarations with the same semantic name. The default value - is 0. - - The meanings of the individual semantic names are explained in the following - sections. - -TGSI_SEMANTIC_POSITION -"""""""""""""""""""""" - -Position, sometimes known as HPOS or WPOS for historical reasons, is the -location of the vertex in space, in ``(x, y, z, w)`` format. ``x``, ``y``, and ``z`` -are the Cartesian coordinates, and ``w`` is the homogenous coordinate and used -for the perspective divide, if enabled. - -As a vertex shader output, position should be scaled to the viewport. When -used in fragment shaders, position will --- - -XXX --- wait a minute. Should position be in [0,1] for x and y? - -XXX additionally, is there a way to configure the perspective divide? it's -accelerated on most chipsets AFAIK... - -Position, if not specified, usually defaults to ``(0, 0, 0, 1)``, and can -be partially specified as ``(x, y, 0, 1)`` or ``(x, y, z, 1)``. - -XXX usually? can we solidify that? - -TGSI_SEMANTIC_COLOR -""""""""""""""""""" - -Colors are used to, well, color the primitives. Colors are always in -``(r, g, b, a)`` format. - -If alpha is not specified, it defaults to 1. - -TGSI_SEMANTIC_BCOLOR -"""""""""""""""""""" - -Back-facing colors are only used for back-facing polygons, and are only valid -in vertex shader outputs. After rasterization, all polygons are front-facing -and COLOR and BCOLOR end up occupying the same slots in the fragment, so -all BCOLORs effectively become regular COLORs in the fragment shader. - -TGSI_SEMANTIC_FOG -""""""""""""""""" - -The fog coordinate historically has been used to replace the depth coordinate -for generation of fog in dedicated fog blocks. Gallium, however, does not use -dedicated fog acceleration, placing it entirely in the fragment shader -instead. - -The fog coordinate should be written in ``(f, 0, 0, 1)`` format. Only the first -component matters when writing from the vertex shader; the driver will ensure -that the coordinate is in this format when used as a fragment shader input. - -TGSI_SEMANTIC_PSIZE -""""""""""""""""""" - -PSIZE, or point size, is used to specify point sizes per-vertex. It should -be in ``(p, n, x, f)`` format, where ``p`` is the point size, ``n`` is the minimum -size, ``x`` is the maximum size, and ``f`` is the fade threshold. - -XXX this is arb_vp. is this what we actually do? should double-check... - -When using this semantic, be sure to set the appropriate state in the -:ref:`rasterizer` first. - -TGSI_SEMANTIC_GENERIC -""""""""""""""""""""" - -Generic semantics are nearly always used for texture coordinate attributes, -in ``(s, t, r, q)`` format. ``t`` and ``r`` may be unused for certain kinds -of lookups, and ``q`` is the level-of-detail bias for biased sampling. - -These attributes are called "generic" because they may be used for anything -else, including parameters, texture generation information, or anything that -can be stored inside a four-component vector. - -TGSI_SEMANTIC_NORMAL -"""""""""""""""""""" - -XXX no clue. - -TGSI_SEMANTIC_FACE -"""""""""""""""""" - -FACE is the facing bit, to store the facing information for the fragment -shader. ``(f, 0, 0, 1)`` is the format. The first component will be positive -when the fragment is front-facing, and negative when the component is -back-facing. - -TGSI_SEMANTIC_EDGEFLAG -"""""""""""""""""""""" - -XXX no clue diff --git a/src/gallium/docs/build/html/_static/basic.css b/src/gallium/docs/build/html/_static/basic.css deleted file mode 100644 index 128114b761..0000000000 --- a/src/gallium/docs/build/html/_static/basic.css +++ /dev/null @@ -1,405 +0,0 @@ -/** - * Sphinx stylesheet -- basic theme - * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - */ - -/* -- main layout ----------------------------------------------------------- */ - -div.clearer { - clear: both; -} - -/* -- relbar ---------------------------------------------------------------- */ - -div.related { - width: 100%; - font-size: 90%; -} - -div.related h3 { - display: none; -} - -div.related ul { - margin: 0; - padding: 0 0 0 10px; - list-style: none; -} - -div.related li { - display: inline; -} - -div.related li.right { - float: right; - margin-right: 5px; -} - -/* -- sidebar --------------------------------------------------------------- */ - -div.sphinxsidebarwrapper { - padding: 10px 5px 0 10px; -} - -div.sphinxsidebar { - float: left; - width: 230px; - margin-left: -100%; - font-size: 90%; -} - -div.sphinxsidebar ul { - list-style: none; -} - -div.sphinxsidebar ul ul, -div.sphinxsidebar ul.want-points { - margin-left: 20px; - list-style: square; -} - -div.sphinxsidebar ul ul { - margin-top: 0; - margin-bottom: 0; -} - -div.sphinxsidebar form { - margin-top: 10px; -} - -div.sphinxsidebar input { - border: 1px solid #98dbcc; - font-family: sans-serif; - font-size: 1em; -} - -img { - border: 0; -} - -/* -- search page ----------------------------------------------------------- */ - -ul.search { - margin: 10px 0 0 20px; - padding: 0; -} - -ul.search li { - padding: 5px 0 5px 20px; - background-image: url(file.png); - background-repeat: no-repeat; - background-position: 0 7px; -} - -ul.search li a { - font-weight: bold; -} - -ul.search li div.context { - color: #888; - margin: 2px 0 0 30px; - text-align: left; -} - -ul.keywordmatches li.goodmatch a { - font-weight: bold; -} - -/* -- index page ------------------------------------------------------------ */ - -table.contentstable { - width: 90%; -} - -table.contentstable p.biglink { - line-height: 150%; -} - -a.biglink { - font-size: 1.3em; -} - -span.linkdescr { - font-style: italic; - padding-top: 5px; - font-size: 90%; -} - -/* -- general index --------------------------------------------------------- */ - -table.indextable td { - text-align: left; - vertical-align: top; -} - -table.indextable dl, table.indextable dd { - margin-top: 0; - margin-bottom: 0; -} - -table.indextable tr.pcap { - height: 10px; -} - -table.indextable tr.cap { - margin-top: 10px; - background-color: #f2f2f2; -} - -img.toggler { - margin-right: 3px; - margin-top: 3px; - cursor: pointer; -} - -/* -- general body styles --------------------------------------------------- */ - -a.headerlink { - visibility: hidden; -} - -h1:hover > a.headerlink, -h2:hover > a.headerlink, -h3:hover > a.headerlink, -h4:hover > a.headerlink, -h5:hover > a.headerlink, -h6:hover > a.headerlink, -dt:hover > a.headerlink { - visibility: visible; -} - -div.body p.caption { - text-align: inherit; -} - -div.body td { - text-align: left; -} - -.field-list ul { - padding-left: 1em; -} - -.first { - margin-top: 0 !important; -} - -p.rubric { - margin-top: 30px; - font-weight: bold; -} - -/* -- sidebars -------------------------------------------------------------- */ - -div.sidebar { - margin: 0 0 0.5em 1em; - border: 1px solid #ddb; - padding: 7px 7px 0 7px; - background-color: #ffe; - width: 40%; - float: right; -} - -p.sidebar-title { - font-weight: bold; -} - -/* -- topics ---------------------------------------------------------------- */ - -div.topic { - border: 1px solid #ccc; - padding: 7px 7px 0 7px; - margin: 10px 0 10px 0; -} - -p.topic-title { - font-size: 1.1em; - font-weight: bold; - margin-top: 10px; -} - -/* -- admonitions ----------------------------------------------------------- */ - -div.admonition { - margin-top: 10px; - margin-bottom: 10px; - padding: 7px; -} - -div.admonition dt { - font-weight: bold; -} - -div.admonition dl { - margin-bottom: 0; -} - -p.admonition-title { - margin: 0px 10px 5px 0px; - font-weight: bold; -} - -div.body p.centered { - text-align: center; - margin-top: 25px; -} - -/* -- tables ---------------------------------------------------------------- */ - -table.docutils { - border: 0; - border-collapse: collapse; -} - -table.docutils td, table.docutils th { - padding: 1px 8px 1px 0; - border-top: 0; - border-left: 0; - border-right: 0; - border-bottom: 1px solid #aaa; -} - -table.field-list td, table.field-list th { - border: 0 !important; -} - -table.footnote td, table.footnote th { - border: 0 !important; -} - -th { - text-align: left; - padding-right: 5px; -} - -/* -- other body styles ----------------------------------------------------- */ - -dl { - margin-bottom: 15px; -} - -dd p { - margin-top: 0px; -} - -dd ul, dd table { - margin-bottom: 10px; -} - -dd { - margin-top: 3px; - margin-bottom: 10px; - margin-left: 30px; -} - -dt:target, .highlight { - background-color: #fbe54e; -} - -dl.glossary dt { - font-weight: bold; - font-size: 1.1em; -} - -.field-list ul { - margin: 0; - padding-left: 1em; -} - -.field-list p { - margin: 0; -} - -.refcount { - color: #060; -} - -.optional { - font-size: 1.3em; -} - -.versionmodified { - font-style: italic; -} - -.system-message { - background-color: #fda; - padding: 5px; - border: 3px solid red; -} - -.footnote:target { - background-color: #ffa -} - -/* -- code displays --------------------------------------------------------- */ - -pre { - overflow: auto; -} - -td.linenos pre { - padding: 5px 0px; - border: 0; - background-color: transparent; - color: #aaa; -} - -table.highlighttable { - margin-left: 0.5em; -} - -table.highlighttable td { - padding: 0 0.5em 0 0.5em; -} - -tt.descname { - background-color: transparent; - font-weight: bold; - font-size: 1.2em; -} - -tt.descclassname { - background-color: transparent; -} - -tt.xref, a tt { - background-color: transparent; - font-weight: bold; -} - -h1 tt, h2 tt, h3 tt, h4 tt, h5 tt, h6 tt { - background-color: transparent; -} - -/* -- math display ---------------------------------------------------------- */ - -img.math { - vertical-align: middle; -} - -div.body div.math p { - text-align: center; -} - -span.eqno { - float: right; -} - -/* -- printout stylesheet --------------------------------------------------- */ - -@media print { - div.document, - div.documentwrapper, - div.bodywrapper { - margin: 0; - width: 100%; - } - - div.sphinxsidebar, - div.related, - div.footer, - #top-link { - display: none; - } -} diff --git a/src/gallium/docs/build/html/_static/default.css b/src/gallium/docs/build/html/_static/default.css deleted file mode 100644 index c999f67ba0..0000000000 --- a/src/gallium/docs/build/html/_static/default.css +++ /dev/null @@ -1,210 +0,0 @@ -/** - * Sphinx stylesheet -- default theme - * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - */ - -@import url("basic.css"); - -/* -- page layout ----------------------------------------------------------- */ - -body { - font-family: sans-serif; - font-size: 100%; - background-color: #11303d; - color: #000; - margin: 0; - padding: 0; -} - -div.document { - background-color: #1c4e63; -} - -div.documentwrapper { - float: left; - width: 100%; -} - -div.bodywrapper { - margin: 0 0 0 230px; -} - -div.body { - background-color: #ffffff; - color: #000000; - padding: 0 20px 30px 20px; -} - -div.footer { - color: #ffffff; - width: 100%; - padding: 9px 0 9px 0; - text-align: center; - font-size: 75%; -} - -div.footer a { - color: #ffffff; - text-decoration: underline; -} - -div.related { - background-color: #133f52; - line-height: 30px; - color: #ffffff; -} - -div.related a { - color: #ffffff; -} - -div.sphinxsidebar { -} - -div.sphinxsidebar h3 { - font-family: 'Trebuchet MS', sans-serif; - color: #ffffff; - font-size: 1.4em; - font-weight: normal; - margin: 0; - padding: 0; -} - -div.sphinxsidebar h3 a { - color: #ffffff; -} - -div.sphinxsidebar h4 { - font-family: 'Trebuchet MS', sans-serif; - color: #ffffff; - font-size: 1.3em; - font-weight: normal; - margin: 5px 0 0 0; - padding: 0; -} - -div.sphinxsidebar p { - color: #ffffff; -} - -div.sphinxsidebar p.topless { - margin: 5px 10px 10px 10px; -} - -div.sphinxsidebar ul { - margin: 10px; - padding: 0; - color: #ffffff; -} - -div.sphinxsidebar a { - color: #98dbcc; -} - -div.sphinxsidebar input { - border: 1px solid #98dbcc; - font-family: sans-serif; - font-size: 1em; -} - -/* -- body styles ----------------------------------------------------------- */ - -a { - color: #355f7c; - text-decoration: none; -} - -a:hover { - text-decoration: underline; -} - -div.body p, div.body dd, div.body li { - text-align: justify; - line-height: 130%; -} - -div.body h1, -div.body h2, -div.body h3, -div.body h4, -div.body h5, -div.body h6 { - font-family: 'Trebuchet MS', sans-serif; - background-color: #f2f2f2; - font-weight: normal; - color: #20435c; - border-bottom: 1px solid #ccc; - margin: 20px -20px 10px -20px; - padding: 3px 0 3px 10px; -} - -div.body h1 { margin-top: 0; font-size: 200%; } -div.body h2 { font-size: 160%; } -div.body h3 { font-size: 140%; } -div.body h4 { font-size: 120%; } -div.body h5 { font-size: 110%; } -div.body h6 { font-size: 100%; } - -a.headerlink { - color: #c60f0f; - font-size: 0.8em; - padding: 0 4px 0 4px; - text-decoration: none; -} - -a.headerlink:hover { - background-color: #c60f0f; - color: white; -} - -div.body p, div.body dd, div.body li { - text-align: justify; - line-height: 130%; -} - -div.admonition p.admonition-title + p { - display: inline; -} - -div.note { - background-color: #eee; - border: 1px solid #ccc; -} - -div.seealso { - background-color: #ffc; - border: 1px solid #ff6; -} - -div.topic { - background-color: #eee; -} - -div.warning { - background-color: #ffe4e4; - border: 1px solid #f66; -} - -p.admonition-title { - display: inline; -} - -p.admonition-title:after { - content: ":"; -} - -pre { - padding: 5px; - background-color: #eeffcc; - color: #333333; - line-height: 120%; - border: 1px solid #ac9; - border-left: none; - border-right: none; -} - -tt { - background-color: #ecf0f3; - padding: 0 1px 0 1px; - font-size: 0.95em; -} \ No newline at end of file diff --git a/src/gallium/docs/build/html/_static/doctools.js b/src/gallium/docs/build/html/_static/doctools.js deleted file mode 100644 index 9447678cdd..0000000000 --- a/src/gallium/docs/build/html/_static/doctools.js +++ /dev/null @@ -1,232 +0,0 @@ -/// XXX: make it cross browser - -/** - * make the code below compatible with browsers without - * an installed firebug like debugger - */ -if (!window.console || !console.firebug) { - var names = ["log", "debug", "info", "warn", "error", "assert", "dir", "dirxml", - "group", "groupEnd", "time", "timeEnd", "count", "trace", "profile", "profileEnd"]; - window.console = {}; - for (var i = 0; i < names.length; ++i) - window.console[names[i]] = function() {} -} - -/** - * small helper function to urldecode strings - */ -jQuery.urldecode = function(x) { - return decodeURIComponent(x).replace(/\+/g, ' '); -} - -/** - * small helper function to urlencode strings - */ -jQuery.urlencode = encodeURIComponent; - -/** - * This function returns the parsed url parameters of the - * current request. Multiple values per key are supported, - * it will always return arrays of strings for the value parts. - */ -jQuery.getQueryParameters = function(s) { - if (typeof s == 'undefined') - s = document.location.search; - var parts = s.substr(s.indexOf('?') + 1).split('&'); - var result = {}; - for (var i = 0; i < parts.length; i++) { - var tmp = parts[i].split('=', 2); - var key = jQuery.urldecode(tmp[0]); - var value = jQuery.urldecode(tmp[1]); - if (key in result) - result[key].push(value); - else - result[key] = [value]; - } - return result; -} - -/** - * small function to check if an array contains - * a given item. - */ -jQuery.contains = function(arr, item) { - for (var i = 0; i < arr.length; i++) { - if (arr[i] == item) - return true; - } - return false; -} - -/** - * highlight a given string on a jquery object by wrapping it in - * span elements with the given class name. - */ -jQuery.fn.highlightText = function(text, className) { - function highlight(node) { - if (node.nodeType == 3) { - var val = node.nodeValue; - var pos = val.toLowerCase().indexOf(text); - if (pos >= 0 && !jQuery.className.has(node.parentNode, className)) { - var span = document.createElement("span"); - span.className = className; - span.appendChild(document.createTextNode(val.substr(pos, text.length))); - node.parentNode.insertBefore(span, node.parentNode.insertBefore( - document.createTextNode(val.substr(pos + text.length)), - node.nextSibling)); - node.nodeValue = val.substr(0, pos); - } - } - else if (!jQuery(node).is("button, select, textarea")) { - jQuery.each(node.childNodes, function() { - highlight(this) - }); - } - } - return this.each(function() { - highlight(this); - }); -} - -/** - * Small JavaScript module for the documentation. - */ -var Documentation = { - - init : function() { - this.fixFirefoxAnchorBug(); - this.highlightSearchWords(); - this.initModIndex(); - }, - - /** - * i18n support - */ - TRANSLATIONS : {}, - PLURAL_EXPR : function(n) { return n == 1 ? 0 : 1; }, - LOCALE : 'unknown', - - // gettext and ngettext don't access this so that the functions - // can savely bound to a different name (_ = Documentation.gettext) - gettext : function(string) { - var translated = Documentation.TRANSLATIONS[string]; - if (typeof translated == 'undefined') - return string; - return (typeof translated == 'string') ? translated : translated[0]; - }, - - ngettext : function(singular, plural, n) { - var translated = Documentation.TRANSLATIONS[singular]; - if (typeof translated == 'undefined') - return (n == 1) ? singular : plural; - return translated[Documentation.PLURALEXPR(n)]; - }, - - addTranslations : function(catalog) { - for (var key in catalog.messages) - this.TRANSLATIONS[key] = catalog.messages[key]; - this.PLURAL_EXPR = new Function('n', 'return +(' + catalog.plural_expr + ')'); - this.LOCALE = catalog.locale; - }, - - /** - * add context elements like header anchor links - */ - addContextElements : function() { - $('div[id] > :header:first').each(function() { - $('\u00B6'). - attr('href', '#' + this.id). - attr('title', _('Permalink to this headline')). - appendTo(this); - }); - $('dt[id]').each(function() { - $('\u00B6'). - attr('href', '#' + this.id). - attr('title', _('Permalink to this definition')). - appendTo(this); - }); - }, - - /** - * workaround a firefox stupidity - */ - fixFirefoxAnchorBug : function() { - if (document.location.hash && $.browser.mozilla) - window.setTimeout(function() { - document.location.href += ''; - }, 10); - }, - - /** - * highlight the search words provided in the url in the text - */ - highlightSearchWords : function() { - var params = $.getQueryParameters(); - var terms = (params.highlight) ? params.highlight[0].split(/\s+/) : []; - if (terms.length) { - var body = $('div.body'); - window.setTimeout(function() { - $.each(terms, function() { - body.highlightText(this.toLowerCase(), 'highlight'); - }); - }, 10); - $('
  • ') - .appendTo($('.sidebar .this-page-menu')); - } - }, - - /** - * init the modindex toggle buttons - */ - initModIndex : function() { - var togglers = $('img.toggler').click(function() { - var src = $(this).attr('src'); - var idnum = $(this).attr('id').substr(7); - console.log($('tr.cg-' + idnum).toggle()); - if (src.substr(-9) == 'minus.png') - $(this).attr('src', src.substr(0, src.length-9) + 'plus.png'); - else - $(this).attr('src', src.substr(0, src.length-8) + 'minus.png'); - }).css('display', ''); - if (DOCUMENTATION_OPTIONS.COLLAPSE_MODINDEX) { - togglers.click(); - } - }, - - /** - * helper function to hide the search marks again - */ - hideSearchWords : function() { - $('.sidebar .this-page-menu li.highlight-link').fadeOut(300); - $('span.highlight').removeClass('highlight'); - }, - - /** - * make the url absolute - */ - makeURL : function(relativeURL) { - return DOCUMENTATION_OPTIONS.URL_ROOT + '/' + relativeURL; - }, - - /** - * get the current relative url - */ - getCurrentURL : function() { - var path = document.location.pathname; - var parts = path.split(/\//); - $.each(DOCUMENTATION_OPTIONS.URL_ROOT.split(/\//), function() { - if (this == '..') - parts.pop(); - }); - var url = parts.join('/'); - return path.substring(url.lastIndexOf('/') + 1, path.length - 1); - } -}; - -// quick alias for translations -_ = Documentation.gettext; - -$(document).ready(function() { - Documentation.init(); -}); diff --git a/src/gallium/docs/build/html/_static/file.png b/src/gallium/docs/build/html/_static/file.png deleted file mode 100644 index d18082e397..0000000000 Binary files a/src/gallium/docs/build/html/_static/file.png and /dev/null differ diff --git a/src/gallium/docs/build/html/_static/jquery.js b/src/gallium/docs/build/html/_static/jquery.js deleted file mode 100644 index 82b98e1d76..0000000000 --- a/src/gallium/docs/build/html/_static/jquery.js +++ /dev/null @@ -1,32 +0,0 @@ -/* - * jQuery 1.2.6 - New Wave Javascript - * - * Copyright (c) 2008 John Resig (jquery.com) - * Dual licensed under the MIT (MIT-LICENSE.txt) - * and GPL (GPL-LICENSE.txt) licenses. - * - * $Date: 2008-05-24 14:22:17 -0400 (Sat, 24 May 2008) $ - * $Rev: 5685 $ - */ -(function(){var _jQuery=window.jQuery,_$=window.$;var jQuery=window.jQuery=window.$=function(selector,context){return new jQuery.fn.init(selector,context);};var quickExpr=/^[^<]*(<(.|\s)+>)[^>]*$|^#(\w+)$/,isSimple=/^.[^:#\[\.]*$/,undefined;jQuery.fn=jQuery.prototype={init:function(selector,context){selector=selector||document;if(selector.nodeType){this[0]=selector;this.length=1;return this;}if(typeof selector=="string"){var match=quickExpr.exec(selector);if(match&&(match[1]||!context)){if(match[1])selector=jQuery.clean([match[1]],context);else{var elem=document.getElementById(match[3]);if(elem){if(elem.id!=match[3])return jQuery().find(selector);return jQuery(elem);}selector=[];}}else -return jQuery(context).find(selector);}else if(jQuery.isFunction(selector))return jQuery(document)[jQuery.fn.ready?"ready":"load"](selector);return this.setArray(jQuery.makeArray(selector));},jquery:"1.2.6",size:function(){return this.length;},length:0,get:function(num){return num==undefined?jQuery.makeArray(this):this[num];},pushStack:function(elems){var ret=jQuery(elems);ret.prevObject=this;return ret;},setArray:function(elems){this.length=0;Array.prototype.push.apply(this,elems);return this;},each:function(callback,args){return jQuery.each(this,callback,args);},index:function(elem){var ret=-1;return jQuery.inArray(elem&&elem.jquery?elem[0]:elem,this);},attr:function(name,value,type){var options=name;if(name.constructor==String)if(value===undefined)return this[0]&&jQuery[type||"attr"](this[0],name);else{options={};options[name]=value;}return this.each(function(i){for(name in options)jQuery.attr(type?this.style:this,name,jQuery.prop(this,options[name],type,i,name));});},css:function(key,value){if((key=='width'||key=='height')&&parseFloat(value)<0)value=undefined;return this.attr(key,value,"curCSS");},text:function(text){if(typeof text!="object"&&text!=null)return this.empty().append((this[0]&&this[0].ownerDocument||document).createTextNode(text));var ret="";jQuery.each(text||this,function(){jQuery.each(this.childNodes,function(){if(this.nodeType!=8)ret+=this.nodeType!=1?this.nodeValue:jQuery.fn.text([this]);});});return ret;},wrapAll:function(html){if(this[0])jQuery(html,this[0].ownerDocument).clone().insertBefore(this[0]).map(function(){var elem=this;while(elem.firstChild)elem=elem.firstChild;return elem;}).append(this);return this;},wrapInner:function(html){return this.each(function(){jQuery(this).contents().wrapAll(html);});},wrap:function(html){return this.each(function(){jQuery(this).wrapAll(html);});},append:function(){return this.domManip(arguments,true,false,function(elem){if(this.nodeType==1)this.appendChild(elem);});},prepend:function(){return this.domManip(arguments,true,true,function(elem){if(this.nodeType==1)this.insertBefore(elem,this.firstChild);});},before:function(){return this.domManip(arguments,false,false,function(elem){this.parentNode.insertBefore(elem,this);});},after:function(){return this.domManip(arguments,false,true,function(elem){this.parentNode.insertBefore(elem,this.nextSibling);});},end:function(){return this.prevObject||jQuery([]);},find:function(selector){var elems=jQuery.map(this,function(elem){return jQuery.find(selector,elem);});return this.pushStack(/[^+>] [^+>]/.test(selector)||selector.indexOf("..")>-1?jQuery.unique(elems):elems);},clone:function(events){var ret=this.map(function(){if(jQuery.browser.msie&&!jQuery.isXMLDoc(this)){var clone=this.cloneNode(true),container=document.createElement("div");container.appendChild(clone);return jQuery.clean([container.innerHTML])[0];}else -return this.cloneNode(true);});var clone=ret.find("*").andSelf().each(function(){if(this[expando]!=undefined)this[expando]=null;});if(events===true)this.find("*").andSelf().each(function(i){if(this.nodeType==3)return;var events=jQuery.data(this,"events");for(var type in events)for(var handler in events[type])jQuery.event.add(clone[i],type,events[type][handler],events[type][handler].data);});return ret;},filter:function(selector){return this.pushStack(jQuery.isFunction(selector)&&jQuery.grep(this,function(elem,i){return selector.call(elem,i);})||jQuery.multiFilter(selector,this));},not:function(selector){if(selector.constructor==String)if(isSimple.test(selector))return this.pushStack(jQuery.multiFilter(selector,this,true));else -selector=jQuery.multiFilter(selector,this);var isArrayLike=selector.length&&selector[selector.length-1]!==undefined&&!selector.nodeType;return this.filter(function(){return isArrayLike?jQuery.inArray(this,selector)<0:this!=selector;});},add:function(selector){return this.pushStack(jQuery.unique(jQuery.merge(this.get(),typeof selector=='string'?jQuery(selector):jQuery.makeArray(selector))));},is:function(selector){return!!selector&&jQuery.multiFilter(selector,this).length>0;},hasClass:function(selector){return this.is("."+selector);},val:function(value){if(value==undefined){if(this.length){var elem=this[0];if(jQuery.nodeName(elem,"select")){var index=elem.selectedIndex,values=[],options=elem.options,one=elem.type=="select-one";if(index<0)return null;for(var i=one?index:0,max=one?index+1:options.length;i=0||jQuery.inArray(this.name,value)>=0);else if(jQuery.nodeName(this,"select")){var values=jQuery.makeArray(value);jQuery("option",this).each(function(){this.selected=(jQuery.inArray(this.value,values)>=0||jQuery.inArray(this.text,values)>=0);});if(!values.length)this.selectedIndex=-1;}else -this.value=value;});},html:function(value){return value==undefined?(this[0]?this[0].innerHTML:null):this.empty().append(value);},replaceWith:function(value){return this.after(value).remove();},eq:function(i){return this.slice(i,i+1);},slice:function(){return this.pushStack(Array.prototype.slice.apply(this,arguments));},map:function(callback){return this.pushStack(jQuery.map(this,function(elem,i){return callback.call(elem,i,elem);}));},andSelf:function(){return this.add(this.prevObject);},data:function(key,value){var parts=key.split(".");parts[1]=parts[1]?"."+parts[1]:"";if(value===undefined){var data=this.triggerHandler("getData"+parts[1]+"!",[parts[0]]);if(data===undefined&&this.length)data=jQuery.data(this[0],key);return data===undefined&&parts[1]?this.data(parts[0]):data;}else -return this.trigger("setData"+parts[1]+"!",[parts[0],value]).each(function(){jQuery.data(this,key,value);});},removeData:function(key){return this.each(function(){jQuery.removeData(this,key);});},domManip:function(args,table,reverse,callback){var clone=this.length>1,elems;return this.each(function(){if(!elems){elems=jQuery.clean(args,this.ownerDocument);if(reverse)elems.reverse();}var obj=this;if(table&&jQuery.nodeName(this,"table")&&jQuery.nodeName(elems[0],"tr"))obj=this.getElementsByTagName("tbody")[0]||this.appendChild(this.ownerDocument.createElement("tbody"));var scripts=jQuery([]);jQuery.each(elems,function(){var elem=clone?jQuery(this).clone(true)[0]:this;if(jQuery.nodeName(elem,"script"))scripts=scripts.add(elem);else{if(elem.nodeType==1)scripts=scripts.add(jQuery("script",elem).remove());callback.call(obj,elem);}});scripts.each(evalScript);});}};jQuery.fn.init.prototype=jQuery.fn;function evalScript(i,elem){if(elem.src)jQuery.ajax({url:elem.src,async:false,dataType:"script"});else -jQuery.globalEval(elem.text||elem.textContent||elem.innerHTML||"");if(elem.parentNode)elem.parentNode.removeChild(elem);}function now(){return+new Date;}jQuery.extend=jQuery.fn.extend=function(){var target=arguments[0]||{},i=1,length=arguments.length,deep=false,options;if(target.constructor==Boolean){deep=target;target=arguments[1]||{};i=2;}if(typeof target!="object"&&typeof target!="function")target={};if(length==i){target=this;--i;}for(;i-1;}},swap:function(elem,options,callback){var old={};for(var name in options){old[name]=elem.style[name];elem.style[name]=options[name];}callback.call(elem);for(var name in options)elem.style[name]=old[name];},css:function(elem,name,force){if(name=="width"||name=="height"){var val,props={position:"absolute",visibility:"hidden",display:"block"},which=name=="width"?["Left","Right"]:["Top","Bottom"];function getWH(){val=name=="width"?elem.offsetWidth:elem.offsetHeight;var padding=0,border=0;jQuery.each(which,function(){padding+=parseFloat(jQuery.curCSS(elem,"padding"+this,true))||0;border+=parseFloat(jQuery.curCSS(elem,"border"+this+"Width",true))||0;});val-=Math.round(padding+border);}if(jQuery(elem).is(":visible"))getWH();else -jQuery.swap(elem,props,getWH);return Math.max(0,val);}return jQuery.curCSS(elem,name,force);},curCSS:function(elem,name,force){var ret,style=elem.style;function color(elem){if(!jQuery.browser.safari)return false;var ret=defaultView.getComputedStyle(elem,null);return!ret||ret.getPropertyValue("color")=="";}if(name=="opacity"&&jQuery.browser.msie){ret=jQuery.attr(style,"opacity");return ret==""?"1":ret;}if(jQuery.browser.opera&&name=="display"){var save=style.outline;style.outline="0 solid black";style.outline=save;}if(name.match(/float/i))name=styleFloat;if(!force&&style&&style[name])ret=style[name];else if(defaultView.getComputedStyle){if(name.match(/float/i))name="float";name=name.replace(/([A-Z])/g,"-$1").toLowerCase();var computedStyle=defaultView.getComputedStyle(elem,null);if(computedStyle&&!color(elem))ret=computedStyle.getPropertyValue(name);else{var swap=[],stack=[],a=elem,i=0;for(;a&&color(a);a=a.parentNode)stack.unshift(a);for(;i]*?)\/>/g,function(all,front,tag){return tag.match(/^(abbr|br|col|img|input|link|meta|param|hr|area|embed)$/i)?all:front+">";});var tags=jQuery.trim(elem).toLowerCase(),div=context.createElement("div");var wrap=!tags.indexOf("",""]||!tags.indexOf("",""]||tags.match(/^<(thead|tbody|tfoot|colg|cap)/)&&[1,"","
    "]||!tags.indexOf("",""]||(!tags.indexOf("",""]||!tags.indexOf("",""]||jQuery.browser.msie&&[1,"div
    ","
    "]||[0,"",""];div.innerHTML=wrap[1]+elem+wrap[2];while(wrap[0]--)div=div.lastChild;if(jQuery.browser.msie){var tbody=!tags.indexOf(""&&tags.indexOf("=0;--j)if(jQuery.nodeName(tbody[j],"tbody")&&!tbody[j].childNodes.length)tbody[j].parentNode.removeChild(tbody[j]);if(/^\s/.test(elem))div.insertBefore(context.createTextNode(elem.match(/^\s*/)[0]),div.firstChild);}elem=jQuery.makeArray(div.childNodes);}if(elem.length===0&&(!jQuery.nodeName(elem,"form")&&!jQuery.nodeName(elem,"select")))return;if(elem[0]==undefined||jQuery.nodeName(elem,"form")||elem.options)ret.push(elem);else -ret=jQuery.merge(ret,elem);});return ret;},attr:function(elem,name,value){if(!elem||elem.nodeType==3||elem.nodeType==8)return undefined;var notxml=!jQuery.isXMLDoc(elem),set=value!==undefined,msie=jQuery.browser.msie;name=notxml&&jQuery.props[name]||name;if(elem.tagName){var special=/href|src|style/.test(name);if(name=="selected"&&jQuery.browser.safari)elem.parentNode.selectedIndex;if(name in elem&¬xml&&!special){if(set){if(name=="type"&&jQuery.nodeName(elem,"input")&&elem.parentNode)throw"type property can't be changed";elem[name]=value;}if(jQuery.nodeName(elem,"form")&&elem.getAttributeNode(name))return elem.getAttributeNode(name).nodeValue;return elem[name];}if(msie&¬xml&&name=="style")return jQuery.attr(elem.style,"cssText",value);if(set)elem.setAttribute(name,""+value);var attr=msie&¬xml&&special?elem.getAttribute(name,2):elem.getAttribute(name);return attr===null?undefined:attr;}if(msie&&name=="opacity"){if(set){elem.zoom=1;elem.filter=(elem.filter||"").replace(/alpha\([^)]*\)/,"")+(parseInt(value)+''=="NaN"?"":"alpha(opacity="+value*100+")");}return elem.filter&&elem.filter.indexOf("opacity=")>=0?(parseFloat(elem.filter.match(/opacity=([^)]*)/)[1])/100)+'':"";}name=name.replace(/-([a-z])/ig,function(all,letter){return letter.toUpperCase();});if(set)elem[name]=value;return elem[name];},trim:function(text){return(text||"").replace(/^\s+|\s+$/g,"");},makeArray:function(array){var ret=[];if(array!=null){var i=array.length;if(i==null||array.split||array.setInterval||array.call)ret[0]=array;else -while(i)ret[--i]=array[i];}return ret;},inArray:function(elem,array){for(var i=0,length=array.length;i*",this).remove();while(this.firstChild)this.removeChild(this.firstChild);}},function(name,fn){jQuery.fn[name]=function(){return this.each(fn,arguments);};});jQuery.each(["Height","Width"],function(i,name){var type=name.toLowerCase();jQuery.fn[type]=function(size){return this[0]==window?jQuery.browser.opera&&document.body["client"+name]||jQuery.browser.safari&&window["inner"+name]||document.compatMode=="CSS1Compat"&&document.documentElement["client"+name]||document.body["client"+name]:this[0]==document?Math.max(Math.max(document.body["scroll"+name],document.documentElement["scroll"+name]),Math.max(document.body["offset"+name],document.documentElement["offset"+name])):size==undefined?(this.length?jQuery.css(this[0],type):null):this.css(type,size.constructor==String?size:size+"px");};});function num(elem,prop){return elem[0]&&parseInt(jQuery.curCSS(elem[0],prop,true),10)||0;}var chars=jQuery.browser.safari&&parseInt(jQuery.browser.version)<417?"(?:[\\w*_-]|\\\\.)":"(?:[\\w\u0128-\uFFFF*_-]|\\\\.)",quickChild=new RegExp("^>\\s*("+chars+"+)"),quickID=new RegExp("^("+chars+"+)(#)("+chars+"+)"),quickClass=new RegExp("^([#.]?)("+chars+"*)");jQuery.extend({expr:{"":function(a,i,m){return m[2]=="*"||jQuery.nodeName(a,m[2]);},"#":function(a,i,m){return a.getAttribute("id")==m[2];},":":{lt:function(a,i,m){return im[3]-0;},nth:function(a,i,m){return m[3]-0==i;},eq:function(a,i,m){return m[3]-0==i;},first:function(a,i){return i==0;},last:function(a,i,m,r){return i==r.length-1;},even:function(a,i){return i%2==0;},odd:function(a,i){return i%2;},"first-child":function(a){return a.parentNode.getElementsByTagName("*")[0]==a;},"last-child":function(a){return jQuery.nth(a.parentNode.lastChild,1,"previousSibling")==a;},"only-child":function(a){return!jQuery.nth(a.parentNode.lastChild,2,"previousSibling");},parent:function(a){return a.firstChild;},empty:function(a){return!a.firstChild;},contains:function(a,i,m){return(a.textContent||a.innerText||jQuery(a).text()||"").indexOf(m[3])>=0;},visible:function(a){return"hidden"!=a.type&&jQuery.css(a,"display")!="none"&&jQuery.css(a,"visibility")!="hidden";},hidden:function(a){return"hidden"==a.type||jQuery.css(a,"display")=="none"||jQuery.css(a,"visibility")=="hidden";},enabled:function(a){return!a.disabled;},disabled:function(a){return a.disabled;},checked:function(a){return a.checked;},selected:function(a){return a.selected||jQuery.attr(a,"selected");},text:function(a){return"text"==a.type;},radio:function(a){return"radio"==a.type;},checkbox:function(a){return"checkbox"==a.type;},file:function(a){return"file"==a.type;},password:function(a){return"password"==a.type;},submit:function(a){return"submit"==a.type;},image:function(a){return"image"==a.type;},reset:function(a){return"reset"==a.type;},button:function(a){return"button"==a.type||jQuery.nodeName(a,"button");},input:function(a){return/input|select|textarea|button/i.test(a.nodeName);},has:function(a,i,m){return jQuery.find(m[3],a).length;},header:function(a){return/h\d/i.test(a.nodeName);},animated:function(a){return jQuery.grep(jQuery.timers,function(fn){return a==fn.elem;}).length;}}},parse:[/^(\[) *@?([\w-]+) *([!*$^~=]*) *('?"?)(.*?)\4 *\]/,/^(:)([\w-]+)\("?'?(.*?(\(.*?\))?[^(]*?)"?'?\)/,new RegExp("^([:.#]*)("+chars+"+)")],multiFilter:function(expr,elems,not){var old,cur=[];while(expr&&expr!=old){old=expr;var f=jQuery.filter(expr,elems,not);expr=f.t.replace(/^\s*,\s*/,"");cur=not?elems=f.r:jQuery.merge(cur,f.r);}return cur;},find:function(t,context){if(typeof t!="string")return[t];if(context&&context.nodeType!=1&&context.nodeType!=9)return[];context=context||document;var ret=[context],done=[],last,nodeName;while(t&&last!=t){var r=[];last=t;t=jQuery.trim(t);var foundToken=false,re=quickChild,m=re.exec(t);if(m){nodeName=m[1].toUpperCase();for(var i=0;ret[i];i++)for(var c=ret[i].firstChild;c;c=c.nextSibling)if(c.nodeType==1&&(nodeName=="*"||c.nodeName.toUpperCase()==nodeName))r.push(c);ret=r;t=t.replace(re,"");if(t.indexOf(" ")==0)continue;foundToken=true;}else{re=/^([>+~])\s*(\w*)/i;if((m=re.exec(t))!=null){r=[];var merge={};nodeName=m[2].toUpperCase();m=m[1];for(var j=0,rl=ret.length;j=0;if(!not&&pass||not&&!pass)tmp.push(r[i]);}return tmp;},filter:function(t,r,not){var last;while(t&&t!=last){last=t;var p=jQuery.parse,m;for(var i=0;p[i];i++){m=p[i].exec(t);if(m){t=t.substring(m[0].length);m[2]=m[2].replace(/\\/g,"");break;}}if(!m)break;if(m[1]==":"&&m[2]=="not")r=isSimple.test(m[3])?jQuery.filter(m[3],r,true).r:jQuery(r).not(m[3]);else if(m[1]==".")r=jQuery.classFilter(r,m[2],not);else if(m[1]=="["){var tmp=[],type=m[3];for(var i=0,rl=r.length;i=0)^not)tmp.push(a);}r=tmp;}else if(m[1]==":"&&m[2]=="nth-child"){var merge={},tmp=[],test=/(-?)(\d*)n((?:\+|-)?\d*)/.exec(m[3]=="even"&&"2n"||m[3]=="odd"&&"2n+1"||!/\D/.test(m[3])&&"0n+"+m[3]||m[3]),first=(test[1]+(test[2]||1))-0,last=test[3]-0;for(var i=0,rl=r.length;i=0)add=true;if(add^not)tmp.push(node);}r=tmp;}else{var fn=jQuery.expr[m[1]];if(typeof fn=="object")fn=fn[m[2]];if(typeof fn=="string")fn=eval("false||function(a,i){return "+fn+";}");r=jQuery.grep(r,function(elem,i){return fn(elem,i,m,r);},not);}}return{r:r,t:t};},dir:function(elem,dir){var matched=[],cur=elem[dir];while(cur&&cur!=document){if(cur.nodeType==1)matched.push(cur);cur=cur[dir];}return matched;},nth:function(cur,result,dir,elem){result=result||1;var num=0;for(;cur;cur=cur[dir])if(cur.nodeType==1&&++num==result)break;return cur;},sibling:function(n,elem){var r=[];for(;n;n=n.nextSibling){if(n.nodeType==1&&n!=elem)r.push(n);}return r;}});jQuery.event={add:function(elem,types,handler,data){if(elem.nodeType==3||elem.nodeType==8)return;if(jQuery.browser.msie&&elem.setInterval)elem=window;if(!handler.guid)handler.guid=this.guid++;if(data!=undefined){var fn=handler;handler=this.proxy(fn,function(){return fn.apply(this,arguments);});handler.data=data;}var events=jQuery.data(elem,"events")||jQuery.data(elem,"events",{}),handle=jQuery.data(elem,"handle")||jQuery.data(elem,"handle",function(){if(typeof jQuery!="undefined"&&!jQuery.event.triggered)return jQuery.event.handle.apply(arguments.callee.elem,arguments);});handle.elem=elem;jQuery.each(types.split(/\s+/),function(index,type){var parts=type.split(".");type=parts[0];handler.type=parts[1];var handlers=events[type];if(!handlers){handlers=events[type]={};if(!jQuery.event.special[type]||jQuery.event.special[type].setup.call(elem)===false){if(elem.addEventListener)elem.addEventListener(type,handle,false);else if(elem.attachEvent)elem.attachEvent("on"+type,handle);}}handlers[handler.guid]=handler;jQuery.event.global[type]=true;});elem=null;},guid:1,global:{},remove:function(elem,types,handler){if(elem.nodeType==3||elem.nodeType==8)return;var events=jQuery.data(elem,"events"),ret,index;if(events){if(types==undefined||(typeof types=="string"&&types.charAt(0)=="."))for(var type in events)this.remove(elem,type+(types||""));else{if(types.type){handler=types.handler;types=types.type;}jQuery.each(types.split(/\s+/),function(index,type){var parts=type.split(".");type=parts[0];if(events[type]){if(handler)delete events[type][handler.guid];else -for(handler in events[type])if(!parts[1]||events[type][handler].type==parts[1])delete events[type][handler];for(ret in events[type])break;if(!ret){if(!jQuery.event.special[type]||jQuery.event.special[type].teardown.call(elem)===false){if(elem.removeEventListener)elem.removeEventListener(type,jQuery.data(elem,"handle"),false);else if(elem.detachEvent)elem.detachEvent("on"+type,jQuery.data(elem,"handle"));}ret=null;delete events[type];}}});}for(ret in events)break;if(!ret){var handle=jQuery.data(elem,"handle");if(handle)handle.elem=null;jQuery.removeData(elem,"events");jQuery.removeData(elem,"handle");}}},trigger:function(type,data,elem,donative,extra){data=jQuery.makeArray(data);if(type.indexOf("!")>=0){type=type.slice(0,-1);var exclusive=true;}if(!elem){if(this.global[type])jQuery("*").add([window,document]).trigger(type,data);}else{if(elem.nodeType==3||elem.nodeType==8)return undefined;var val,ret,fn=jQuery.isFunction(elem[type]||null),event=!data[0]||!data[0].preventDefault;if(event){data.unshift({type:type,target:elem,preventDefault:function(){},stopPropagation:function(){},timeStamp:now()});data[0][expando]=true;}data[0].type=type;if(exclusive)data[0].exclusive=true;var handle=jQuery.data(elem,"handle");if(handle)val=handle.apply(elem,data);if((!fn||(jQuery.nodeName(elem,'a')&&type=="click"))&&elem["on"+type]&&elem["on"+type].apply(elem,data)===false)val=false;if(event)data.shift();if(extra&&jQuery.isFunction(extra)){ret=extra.apply(elem,val==null?data:data.concat(val));if(ret!==undefined)val=ret;}if(fn&&donative!==false&&val!==false&&!(jQuery.nodeName(elem,'a')&&type=="click")){this.triggered=true;try{elem[type]();}catch(e){}}this.triggered=false;}return val;},handle:function(event){var val,ret,namespace,all,handlers;event=arguments[0]=jQuery.event.fix(event||window.event);namespace=event.type.split(".");event.type=namespace[0];namespace=namespace[1];all=!namespace&&!event.exclusive;handlers=(jQuery.data(this,"events")||{})[event.type];for(var j in handlers){var handler=handlers[j];if(all||handler.type==namespace){event.handler=handler;event.data=handler.data;ret=handler.apply(this,arguments);if(val!==false)val=ret;if(ret===false){event.preventDefault();event.stopPropagation();}}}return val;},fix:function(event){if(event[expando]==true)return event;var originalEvent=event;event={originalEvent:originalEvent};var props="altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode metaKey newValue originalTarget pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target timeStamp toElement type view wheelDelta which".split(" ");for(var i=props.length;i;i--)event[props[i]]=originalEvent[props[i]];event[expando]=true;event.preventDefault=function(){if(originalEvent.preventDefault)originalEvent.preventDefault();originalEvent.returnValue=false;};event.stopPropagation=function(){if(originalEvent.stopPropagation)originalEvent.stopPropagation();originalEvent.cancelBubble=true;};event.timeStamp=event.timeStamp||now();if(!event.target)event.target=event.srcElement||document;if(event.target.nodeType==3)event.target=event.target.parentNode;if(!event.relatedTarget&&event.fromElement)event.relatedTarget=event.fromElement==event.target?event.toElement:event.fromElement;if(event.pageX==null&&event.clientX!=null){var doc=document.documentElement,body=document.body;event.pageX=event.clientX+(doc&&doc.scrollLeft||body&&body.scrollLeft||0)-(doc.clientLeft||0);event.pageY=event.clientY+(doc&&doc.scrollTop||body&&body.scrollTop||0)-(doc.clientTop||0);}if(!event.which&&((event.charCode||event.charCode===0)?event.charCode:event.keyCode))event.which=event.charCode||event.keyCode;if(!event.metaKey&&event.ctrlKey)event.metaKey=event.ctrlKey;if(!event.which&&event.button)event.which=(event.button&1?1:(event.button&2?3:(event.button&4?2:0)));return event;},proxy:function(fn,proxy){proxy.guid=fn.guid=fn.guid||proxy.guid||this.guid++;return proxy;},special:{ready:{setup:function(){bindReady();return;},teardown:function(){return;}},mouseenter:{setup:function(){if(jQuery.browser.msie)return false;jQuery(this).bind("mouseover",jQuery.event.special.mouseenter.handler);return true;},teardown:function(){if(jQuery.browser.msie)return false;jQuery(this).unbind("mouseover",jQuery.event.special.mouseenter.handler);return true;},handler:function(event){if(withinElement(event,this))return true;event.type="mouseenter";return jQuery.event.handle.apply(this,arguments);}},mouseleave:{setup:function(){if(jQuery.browser.msie)return false;jQuery(this).bind("mouseout",jQuery.event.special.mouseleave.handler);return true;},teardown:function(){if(jQuery.browser.msie)return false;jQuery(this).unbind("mouseout",jQuery.event.special.mouseleave.handler);return true;},handler:function(event){if(withinElement(event,this))return true;event.type="mouseleave";return jQuery.event.handle.apply(this,arguments);}}}};jQuery.fn.extend({bind:function(type,data,fn){return type=="unload"?this.one(type,data,fn):this.each(function(){jQuery.event.add(this,type,fn||data,fn&&data);});},one:function(type,data,fn){var one=jQuery.event.proxy(fn||data,function(event){jQuery(this).unbind(event,one);return(fn||data).apply(this,arguments);});return this.each(function(){jQuery.event.add(this,type,one,fn&&data);});},unbind:function(type,fn){return this.each(function(){jQuery.event.remove(this,type,fn);});},trigger:function(type,data,fn){return this.each(function(){jQuery.event.trigger(type,data,this,true,fn);});},triggerHandler:function(type,data,fn){return this[0]&&jQuery.event.trigger(type,data,this[0],false,fn);},toggle:function(fn){var args=arguments,i=1;while(i=0){var selector=url.slice(off,url.length);url=url.slice(0,off);}callback=callback||function(){};var type="GET";if(params)if(jQuery.isFunction(params)){callback=params;params=null;}else{params=jQuery.param(params);type="POST";}var self=this;jQuery.ajax({url:url,type:type,dataType:"html",data:params,complete:function(res,status){if(status=="success"||status=="notmodified")self.html(selector?jQuery("
    ").append(res.responseText.replace(//g,"")).find(selector):res.responseText);self.each(callback,[res.responseText,status,res]);}});return this;},serialize:function(){return jQuery.param(this.serializeArray());},serializeArray:function(){return this.map(function(){return jQuery.nodeName(this,"form")?jQuery.makeArray(this.elements):this;}).filter(function(){return this.name&&!this.disabled&&(this.checked||/select|textarea/i.test(this.nodeName)||/text|hidden|password/i.test(this.type));}).map(function(i,elem){var val=jQuery(this).val();return val==null?null:val.constructor==Array?jQuery.map(val,function(val,i){return{name:elem.name,value:val};}):{name:elem.name,value:val};}).get();}});jQuery.each("ajaxStart,ajaxStop,ajaxComplete,ajaxError,ajaxSuccess,ajaxSend".split(","),function(i,o){jQuery.fn[o]=function(f){return this.bind(o,f);};});var jsc=now();jQuery.extend({get:function(url,data,callback,type){if(jQuery.isFunction(data)){callback=data;data=null;}return jQuery.ajax({type:"GET",url:url,data:data,success:callback,dataType:type});},getScript:function(url,callback){return jQuery.get(url,null,callback,"script");},getJSON:function(url,data,callback){return jQuery.get(url,data,callback,"json");},post:function(url,data,callback,type){if(jQuery.isFunction(data)){callback=data;data={};}return jQuery.ajax({type:"POST",url:url,data:data,success:callback,dataType:type});},ajaxSetup:function(settings){jQuery.extend(jQuery.ajaxSettings,settings);},ajaxSettings:{url:location.href,global:true,type:"GET",timeout:0,contentType:"application/x-www-form-urlencoded",processData:true,async:true,data:null,username:null,password:null,accepts:{xml:"application/xml, text/xml",html:"text/html",script:"text/javascript, application/javascript",json:"application/json, text/javascript",text:"text/plain",_default:"*/*"}},lastModified:{},ajax:function(s){s=jQuery.extend(true,s,jQuery.extend(true,{},jQuery.ajaxSettings,s));var jsonp,jsre=/=\?(&|$)/g,status,data,type=s.type.toUpperCase();if(s.data&&s.processData&&typeof s.data!="string")s.data=jQuery.param(s.data);if(s.dataType=="jsonp"){if(type=="GET"){if(!s.url.match(jsre))s.url+=(s.url.match(/\?/)?"&":"?")+(s.jsonp||"callback")+"=?";}else if(!s.data||!s.data.match(jsre))s.data=(s.data?s.data+"&":"")+(s.jsonp||"callback")+"=?";s.dataType="json";}if(s.dataType=="json"&&(s.data&&s.data.match(jsre)||s.url.match(jsre))){jsonp="jsonp"+jsc++;if(s.data)s.data=(s.data+"").replace(jsre,"="+jsonp+"$1");s.url=s.url.replace(jsre,"="+jsonp+"$1");s.dataType="script";window[jsonp]=function(tmp){data=tmp;success();complete();window[jsonp]=undefined;try{delete window[jsonp];}catch(e){}if(head)head.removeChild(script);};}if(s.dataType=="script"&&s.cache==null)s.cache=false;if(s.cache===false&&type=="GET"){var ts=now();var ret=s.url.replace(/(\?|&)_=.*?(&|$)/,"$1_="+ts+"$2");s.url=ret+((ret==s.url)?(s.url.match(/\?/)?"&":"?")+"_="+ts:"");}if(s.data&&type=="GET"){s.url+=(s.url.match(/\?/)?"&":"?")+s.data;s.data=null;}if(s.global&&!jQuery.active++)jQuery.event.trigger("ajaxStart");var remote=/^(?:\w+:)?\/\/([^\/?#]+)/;if(s.dataType=="script"&&type=="GET"&&remote.test(s.url)&&remote.exec(s.url)[1]!=location.host){var head=document.getElementsByTagName("head")[0];var script=document.createElement("script");script.src=s.url;if(s.scriptCharset)script.charset=s.scriptCharset;if(!jsonp){var done=false;script.onload=script.onreadystatechange=function(){if(!done&&(!this.readyState||this.readyState=="loaded"||this.readyState=="complete")){done=true;success();complete();head.removeChild(script);}};}head.appendChild(script);return undefined;}var requestDone=false;var xhr=window.ActiveXObject?new ActiveXObject("Microsoft.XMLHTTP"):new XMLHttpRequest();if(s.username)xhr.open(type,s.url,s.async,s.username,s.password);else -xhr.open(type,s.url,s.async);try{if(s.data)xhr.setRequestHeader("Content-Type",s.contentType);if(s.ifModified)xhr.setRequestHeader("If-Modified-Since",jQuery.lastModified[s.url]||"Thu, 01 Jan 1970 00:00:00 GMT");xhr.setRequestHeader("X-Requested-With","XMLHttpRequest");xhr.setRequestHeader("Accept",s.dataType&&s.accepts[s.dataType]?s.accepts[s.dataType]+", */*":s.accepts._default);}catch(e){}if(s.beforeSend&&s.beforeSend(xhr,s)===false){s.global&&jQuery.active--;xhr.abort();return false;}if(s.global)jQuery.event.trigger("ajaxSend",[xhr,s]);var onreadystatechange=function(isTimeout){if(!requestDone&&xhr&&(xhr.readyState==4||isTimeout=="timeout")){requestDone=true;if(ival){clearInterval(ival);ival=null;}status=isTimeout=="timeout"&&"timeout"||!jQuery.httpSuccess(xhr)&&"error"||s.ifModified&&jQuery.httpNotModified(xhr,s.url)&&"notmodified"||"success";if(status=="success"){try{data=jQuery.httpData(xhr,s.dataType,s.dataFilter);}catch(e){status="parsererror";}}if(status=="success"){var modRes;try{modRes=xhr.getResponseHeader("Last-Modified");}catch(e){}if(s.ifModified&&modRes)jQuery.lastModified[s.url]=modRes;if(!jsonp)success();}else -jQuery.handleError(s,xhr,status);complete();if(s.async)xhr=null;}};if(s.async){var ival=setInterval(onreadystatechange,13);if(s.timeout>0)setTimeout(function(){if(xhr){xhr.abort();if(!requestDone)onreadystatechange("timeout");}},s.timeout);}try{xhr.send(s.data);}catch(e){jQuery.handleError(s,xhr,null,e);}if(!s.async)onreadystatechange();function success(){if(s.success)s.success(data,status);if(s.global)jQuery.event.trigger("ajaxSuccess",[xhr,s]);}function complete(){if(s.complete)s.complete(xhr,status);if(s.global)jQuery.event.trigger("ajaxComplete",[xhr,s]);if(s.global&&!--jQuery.active)jQuery.event.trigger("ajaxStop");}return xhr;},handleError:function(s,xhr,status,e){if(s.error)s.error(xhr,status,e);if(s.global)jQuery.event.trigger("ajaxError",[xhr,s,e]);},active:0,httpSuccess:function(xhr){try{return!xhr.status&&location.protocol=="file:"||(xhr.status>=200&&xhr.status<300)||xhr.status==304||xhr.status==1223||jQuery.browser.safari&&xhr.status==undefined;}catch(e){}return false;},httpNotModified:function(xhr,url){try{var xhrRes=xhr.getResponseHeader("Last-Modified");return xhr.status==304||xhrRes==jQuery.lastModified[url]||jQuery.browser.safari&&xhr.status==undefined;}catch(e){}return false;},httpData:function(xhr,type,filter){var ct=xhr.getResponseHeader("content-type"),xml=type=="xml"||!type&&ct&&ct.indexOf("xml")>=0,data=xml?xhr.responseXML:xhr.responseText;if(xml&&data.documentElement.tagName=="parsererror")throw"parsererror";if(filter)data=filter(data,type);if(type=="script")jQuery.globalEval(data);if(type=="json")data=eval("("+data+")");return data;},param:function(a){var s=[];if(a.constructor==Array||a.jquery)jQuery.each(a,function(){s.push(encodeURIComponent(this.name)+"="+encodeURIComponent(this.value));});else -for(var j in a)if(a[j]&&a[j].constructor==Array)jQuery.each(a[j],function(){s.push(encodeURIComponent(j)+"="+encodeURIComponent(this));});else -s.push(encodeURIComponent(j)+"="+encodeURIComponent(jQuery.isFunction(a[j])?a[j]():a[j]));return s.join("&").replace(/%20/g,"+");}});jQuery.fn.extend({show:function(speed,callback){return speed?this.animate({height:"show",width:"show",opacity:"show"},speed,callback):this.filter(":hidden").each(function(){this.style.display=this.oldblock||"";if(jQuery.css(this,"display")=="none"){var elem=jQuery("<"+this.tagName+" />").appendTo("body");this.style.display=elem.css("display");if(this.style.display=="none")this.style.display="block";elem.remove();}}).end();},hide:function(speed,callback){return speed?this.animate({height:"hide",width:"hide",opacity:"hide"},speed,callback):this.filter(":visible").each(function(){this.oldblock=this.oldblock||jQuery.css(this,"display");this.style.display="none";}).end();},_toggle:jQuery.fn.toggle,toggle:function(fn,fn2){return jQuery.isFunction(fn)&&jQuery.isFunction(fn2)?this._toggle.apply(this,arguments):fn?this.animate({height:"toggle",width:"toggle",opacity:"toggle"},fn,fn2):this.each(function(){jQuery(this)[jQuery(this).is(":hidden")?"show":"hide"]();});},slideDown:function(speed,callback){return this.animate({height:"show"},speed,callback);},slideUp:function(speed,callback){return this.animate({height:"hide"},speed,callback);},slideToggle:function(speed,callback){return this.animate({height:"toggle"},speed,callback);},fadeIn:function(speed,callback){return this.animate({opacity:"show"},speed,callback);},fadeOut:function(speed,callback){return this.animate({opacity:"hide"},speed,callback);},fadeTo:function(speed,to,callback){return this.animate({opacity:to},speed,callback);},animate:function(prop,speed,easing,callback){var optall=jQuery.speed(speed,easing,callback);return this[optall.queue===false?"each":"queue"](function(){if(this.nodeType!=1)return false;var opt=jQuery.extend({},optall),p,hidden=jQuery(this).is(":hidden"),self=this;for(p in prop){if(prop[p]=="hide"&&hidden||prop[p]=="show"&&!hidden)return opt.complete.call(this);if(p=="height"||p=="width"){opt.display=jQuery.css(this,"display");opt.overflow=this.style.overflow;}}if(opt.overflow!=null)this.style.overflow="hidden";opt.curAnim=jQuery.extend({},prop);jQuery.each(prop,function(name,val){var e=new jQuery.fx(self,opt,name);if(/toggle|show|hide/.test(val))e[val=="toggle"?hidden?"show":"hide":val](prop);else{var parts=val.toString().match(/^([+-]=)?([\d+-.]+)(.*)$/),start=e.cur(true)||0;if(parts){var end=parseFloat(parts[2]),unit=parts[3]||"px";if(unit!="px"){self.style[name]=(end||1)+unit;start=((end||1)/e.cur(true))*start;self.style[name]=start+unit;}if(parts[1])end=((parts[1]=="-="?-1:1)*end)+start;e.custom(start,end,unit);}else -e.custom(start,val,"");}});return true;});},queue:function(type,fn){if(jQuery.isFunction(type)||(type&&type.constructor==Array)){fn=type;type="fx";}if(!type||(typeof type=="string"&&!fn))return queue(this[0],type);return this.each(function(){if(fn.constructor==Array)queue(this,type,fn);else{queue(this,type).push(fn);if(queue(this,type).length==1)fn.call(this);}});},stop:function(clearQueue,gotoEnd){var timers=jQuery.timers;if(clearQueue)this.queue([]);this.each(function(){for(var i=timers.length-1;i>=0;i--)if(timers[i].elem==this){if(gotoEnd)timers[i](true);timers.splice(i,1);}});if(!gotoEnd)this.dequeue();return this;}});var queue=function(elem,type,array){if(elem){type=type||"fx";var q=jQuery.data(elem,type+"queue");if(!q||array)q=jQuery.data(elem,type+"queue",jQuery.makeArray(array));}return q;};jQuery.fn.dequeue=function(type){type=type||"fx";return this.each(function(){var q=queue(this,type);q.shift();if(q.length)q[0].call(this);});};jQuery.extend({speed:function(speed,easing,fn){var opt=speed&&speed.constructor==Object?speed:{complete:fn||!fn&&easing||jQuery.isFunction(speed)&&speed,duration:speed,easing:fn&&easing||easing&&easing.constructor!=Function&&easing};opt.duration=(opt.duration&&opt.duration.constructor==Number?opt.duration:jQuery.fx.speeds[opt.duration])||jQuery.fx.speeds.def;opt.old=opt.complete;opt.complete=function(){if(opt.queue!==false)jQuery(this).dequeue();if(jQuery.isFunction(opt.old))opt.old.call(this);};return opt;},easing:{linear:function(p,n,firstNum,diff){return firstNum+diff*p;},swing:function(p,n,firstNum,diff){return((-Math.cos(p*Math.PI)/2)+0.5)*diff+firstNum;}},timers:[],timerId:null,fx:function(elem,options,prop){this.options=options;this.elem=elem;this.prop=prop;if(!options.orig)options.orig={};}});jQuery.fx.prototype={update:function(){if(this.options.step)this.options.step.call(this.elem,this.now,this);(jQuery.fx.step[this.prop]||jQuery.fx.step._default)(this);if(this.prop=="height"||this.prop=="width")this.elem.style.display="block";},cur:function(force){if(this.elem[this.prop]!=null&&this.elem.style[this.prop]==null)return this.elem[this.prop];var r=parseFloat(jQuery.css(this.elem,this.prop,force));return r&&r>-10000?r:parseFloat(jQuery.curCSS(this.elem,this.prop))||0;},custom:function(from,to,unit){this.startTime=now();this.start=from;this.end=to;this.unit=unit||this.unit||"px";this.now=this.start;this.pos=this.state=0;this.update();var self=this;function t(gotoEnd){return self.step(gotoEnd);}t.elem=this.elem;jQuery.timers.push(t);if(jQuery.timerId==null){jQuery.timerId=setInterval(function(){var timers=jQuery.timers;for(var i=0;ithis.options.duration+this.startTime){this.now=this.end;this.pos=this.state=1;this.update();this.options.curAnim[this.prop]=true;var done=true;for(var i in this.options.curAnim)if(this.options.curAnim[i]!==true)done=false;if(done){if(this.options.display!=null){this.elem.style.overflow=this.options.overflow;this.elem.style.display=this.options.display;if(jQuery.css(this.elem,"display")=="none")this.elem.style.display="block";}if(this.options.hide)this.elem.style.display="none";if(this.options.hide||this.options.show)for(var p in this.options.curAnim)jQuery.attr(this.elem.style,p,this.options.orig[p]);}if(done)this.options.complete.call(this.elem);return false;}else{var n=t-this.startTime;this.state=n/this.options.duration;this.pos=jQuery.easing[this.options.easing||(jQuery.easing.swing?"swing":"linear")](this.state,n,0,1,this.options.duration);this.now=this.start+((this.end-this.start)*this.pos);this.update();}return true;}};jQuery.extend(jQuery.fx,{speeds:{slow:600,fast:200,def:400},step:{scrollLeft:function(fx){fx.elem.scrollLeft=fx.now;},scrollTop:function(fx){fx.elem.scrollTop=fx.now;},opacity:function(fx){jQuery.attr(fx.elem.style,"opacity",fx.now);},_default:function(fx){fx.elem.style[fx.prop]=fx.now+fx.unit;}}});jQuery.fn.offset=function(){var left=0,top=0,elem=this[0],results;if(elem)with(jQuery.browser){var parent=elem.parentNode,offsetChild=elem,offsetParent=elem.offsetParent,doc=elem.ownerDocument,safari2=safari&&parseInt(version)<522&&!/adobeair/i.test(userAgent),css=jQuery.curCSS,fixed=css(elem,"position")=="fixed";if(elem.getBoundingClientRect){var box=elem.getBoundingClientRect();add(box.left+Math.max(doc.documentElement.scrollLeft,doc.body.scrollLeft),box.top+Math.max(doc.documentElement.scrollTop,doc.body.scrollTop));add(-doc.documentElement.clientLeft,-doc.documentElement.clientTop);}else{add(elem.offsetLeft,elem.offsetTop);while(offsetParent){add(offsetParent.offsetLeft,offsetParent.offsetTop);if(mozilla&&!/^t(able|d|h)$/i.test(offsetParent.tagName)||safari&&!safari2)border(offsetParent);if(!fixed&&css(offsetParent,"position")=="fixed")fixed=true;offsetChild=/^body$/i.test(offsetParent.tagName)?offsetChild:offsetParent;offsetParent=offsetParent.offsetParent;}while(parent&&parent.tagName&&!/^body|html$/i.test(parent.tagName)){if(!/^inline|table.*$/i.test(css(parent,"display")))add(-parent.scrollLeft,-parent.scrollTop);if(mozilla&&css(parent,"overflow")!="visible")border(parent);parent=parent.parentNode;}if((safari2&&(fixed||css(offsetChild,"position")=="absolute"))||(mozilla&&css(offsetChild,"position")!="absolute"))add(-doc.body.offsetLeft,-doc.body.offsetTop);if(fixed)add(Math.max(doc.documentElement.scrollLeft,doc.body.scrollLeft),Math.max(doc.documentElement.scrollTop,doc.body.scrollTop));}results={top:top,left:left};}function border(elem){add(jQuery.curCSS(elem,"borderLeftWidth",true),jQuery.curCSS(elem,"borderTopWidth",true));}function add(l,t){left+=parseInt(l,10)||0;top+=parseInt(t,10)||0;}return results;};jQuery.fn.extend({position:function(){var left=0,top=0,results;if(this[0]){var offsetParent=this.offsetParent(),offset=this.offset(),parentOffset=/^body|html$/i.test(offsetParent[0].tagName)?{top:0,left:0}:offsetParent.offset();offset.top-=num(this,'marginTop');offset.left-=num(this,'marginLeft');parentOffset.top+=num(offsetParent,'borderTopWidth');parentOffset.left+=num(offsetParent,'borderLeftWidth');results={top:offset.top-parentOffset.top,left:offset.left-parentOffset.left};}return results;},offsetParent:function(){var offsetParent=this[0].offsetParent;while(offsetParent&&(!/^body|html$/i.test(offsetParent.tagName)&&jQuery.css(offsetParent,'position')=='static'))offsetParent=offsetParent.offsetParent;return jQuery(offsetParent);}});jQuery.each(['Left','Top'],function(i,name){var method='scroll'+name;jQuery.fn[method]=function(val){if(!this[0])return;return val!=undefined?this.each(function(){this==window||this==document?window.scrollTo(!i?val:jQuery(window).scrollLeft(),i?val:jQuery(window).scrollTop()):this[method]=val;}):this[0]==window||this[0]==document?self[i?'pageYOffset':'pageXOffset']||jQuery.boxModel&&document.documentElement[method]||document.body[method]:this[0][method];};});jQuery.each(["Height","Width"],function(i,name){var tl=i?"Left":"Top",br=i?"Right":"Bottom";jQuery.fn["inner"+name]=function(){return this[name.toLowerCase()]()+num(this,"padding"+tl)+num(this,"padding"+br);};jQuery.fn["outer"+name]=function(margin){return this["inner"+name]()+num(this,"border"+tl+"Width")+num(this,"border"+br+"Width")+(margin?num(this,"margin"+tl)+num(this,"margin"+br):0);};});})(); \ No newline at end of file diff --git a/src/gallium/docs/build/html/_static/minus.png b/src/gallium/docs/build/html/_static/minus.png deleted file mode 100644 index da1c5620d1..0000000000 Binary files a/src/gallium/docs/build/html/_static/minus.png and /dev/null differ diff --git a/src/gallium/docs/build/html/_static/plus.png b/src/gallium/docs/build/html/_static/plus.png deleted file mode 100644 index b3cb37425e..0000000000 Binary files a/src/gallium/docs/build/html/_static/plus.png and /dev/null differ diff --git a/src/gallium/docs/build/html/_static/pygments.css b/src/gallium/docs/build/html/_static/pygments.css deleted file mode 100644 index 1f2d2b6187..0000000000 --- a/src/gallium/docs/build/html/_static/pygments.css +++ /dev/null @@ -1,61 +0,0 @@ -.hll { background-color: #ffffcc } -.c { color: #408090; font-style: italic } /* Comment */ -.err { border: 1px solid #FF0000 } /* Error */ -.k { color: #007020; font-weight: bold } /* Keyword */ -.o { color: #666666 } /* Operator */ -.cm { color: #408090; font-style: italic } /* Comment.Multiline */ -.cp { color: #007020 } /* Comment.Preproc */ -.c1 { color: #408090; font-style: italic } /* Comment.Single */ -.cs { color: #408090; background-color: #fff0f0 } /* Comment.Special */ -.gd { color: #A00000 } /* Generic.Deleted */ -.ge { font-style: italic } /* Generic.Emph */ -.gr { color: #FF0000 } /* Generic.Error */ -.gh { color: #000080; font-weight: bold } /* Generic.Heading */ -.gi { color: #00A000 } /* Generic.Inserted */ -.go { color: #303030 } /* Generic.Output */ -.gp { color: #c65d09; font-weight: bold } /* Generic.Prompt */ -.gs { font-weight: bold } /* Generic.Strong */ -.gu { color: #800080; font-weight: bold } /* Generic.Subheading */ -.gt { color: #0040D0 } /* Generic.Traceback */ -.kc { color: #007020; font-weight: bold } /* Keyword.Constant */ -.kd { color: #007020; font-weight: bold } /* Keyword.Declaration */ -.kn { color: #007020; font-weight: bold } /* Keyword.Namespace */ -.kp { color: #007020 } /* Keyword.Pseudo */ -.kr { color: #007020; font-weight: bold } /* Keyword.Reserved */ -.kt { color: #902000 } /* Keyword.Type */ -.m { color: #208050 } /* Literal.Number */ -.s { color: #4070a0 } /* Literal.String */ -.na { color: #4070a0 } /* Name.Attribute */ -.nb { color: #007020 } /* Name.Builtin */ -.nc { color: #0e84b5; font-weight: bold } /* Name.Class */ -.no { color: #60add5 } /* Name.Constant */ -.nd { color: #555555; font-weight: bold } /* Name.Decorator */ -.ni { color: #d55537; font-weight: bold } /* Name.Entity */ -.ne { color: #007020 } /* Name.Exception */ -.nf { color: #06287e } /* Name.Function */ -.nl { color: #002070; font-weight: bold } /* Name.Label */ -.nn { color: #0e84b5; font-weight: bold } /* Name.Namespace */ -.nt { color: #062873; font-weight: bold } /* Name.Tag */ -.nv { color: #bb60d5 } /* Name.Variable */ -.ow { color: #007020; font-weight: bold } /* Operator.Word */ -.w { color: #bbbbbb } /* Text.Whitespace */ -.mf { color: #208050 } /* Literal.Number.Float */ -.mh { color: #208050 } /* Literal.Number.Hex */ -.mi { color: #208050 } /* Literal.Number.Integer */ -.mo { color: #208050 } /* Literal.Number.Oct */ -.sb { color: #4070a0 } /* Literal.String.Backtick */ -.sc { color: #4070a0 } /* Literal.String.Char */ -.sd { color: #4070a0; font-style: italic } /* Literal.String.Doc */ -.s2 { color: #4070a0 } /* Literal.String.Double */ -.se { color: #4070a0; font-weight: bold } /* Literal.String.Escape */ -.sh { color: #4070a0 } /* Literal.String.Heredoc */ -.si { color: #70a0d0; font-style: italic } /* Literal.String.Interpol */ -.sx { color: #c65d09 } /* Literal.String.Other */ -.sr { color: #235388 } /* Literal.String.Regex */ -.s1 { color: #4070a0 } /* Literal.String.Single */ -.ss { color: #517918 } /* Literal.String.Symbol */ -.bp { color: #007020 } /* Name.Builtin.Pseudo */ -.vc { color: #bb60d5 } /* Name.Variable.Class */ -.vg { color: #bb60d5 } /* Name.Variable.Global */ -.vi { color: #bb60d5 } /* Name.Variable.Instance */ -.il { color: #208050 } /* Literal.Number.Integer.Long */ \ No newline at end of file diff --git a/src/gallium/docs/build/html/_static/searchtools.js b/src/gallium/docs/build/html/_static/searchtools.js deleted file mode 100644 index e0226258a5..0000000000 --- a/src/gallium/docs/build/html/_static/searchtools.js +++ /dev/null @@ -1,467 +0,0 @@ -/** - * helper function to return a node containing the - * search summary for a given text. keywords is a list - * of stemmed words, hlwords is the list of normal, unstemmed - * words. the first one is used to find the occurance, the - * latter for highlighting it. - */ - -jQuery.makeSearchSummary = function(text, keywords, hlwords) { - var textLower = text.toLowerCase(); - var start = 0; - $.each(keywords, function() { - var i = textLower.indexOf(this.toLowerCase()); - if (i > -1) - start = i; - }); - start = Math.max(start - 120, 0); - var excerpt = ((start > 0) ? '...' : '') + - $.trim(text.substr(start, 240)) + - ((start + 240 - text.length) ? '...' : ''); - var rv = $('
    ').text(excerpt); - $.each(hlwords, function() { - rv = rv.highlightText(this, 'highlight'); - }); - return rv; -} - -/** - * Porter Stemmer - */ -var PorterStemmer = function() { - - var step2list = { - ational: 'ate', - tional: 'tion', - enci: 'ence', - anci: 'ance', - izer: 'ize', - bli: 'ble', - alli: 'al', - entli: 'ent', - eli: 'e', - ousli: 'ous', - ization: 'ize', - ation: 'ate', - ator: 'ate', - alism: 'al', - iveness: 'ive', - fulness: 'ful', - ousness: 'ous', - aliti: 'al', - iviti: 'ive', - biliti: 'ble', - logi: 'log' - }; - - var step3list = { - icate: 'ic', - ative: '', - alize: 'al', - iciti: 'ic', - ical: 'ic', - ful: '', - ness: '' - }; - - var c = "[^aeiou]"; // consonant - var v = "[aeiouy]"; // vowel - var C = c + "[^aeiouy]*"; // consonant sequence - var V = v + "[aeiou]*"; // vowel sequence - - var mgr0 = "^(" + C + ")?" + V + C; // [C]VC... is m>0 - var meq1 = "^(" + C + ")?" + V + C + "(" + V + ")?$"; // [C]VC[V] is m=1 - var mgr1 = "^(" + C + ")?" + V + C + V + C; // [C]VCVC... is m>1 - var s_v = "^(" + C + ")?" + v; // vowel in stem - - this.stemWord = function (w) { - var stem; - var suffix; - var firstch; - var origword = w; - - if (w.length < 3) - return w; - - var re; - var re2; - var re3; - var re4; - - firstch = w.substr(0,1); - if (firstch == "y") - w = firstch.toUpperCase() + w.substr(1); - - // Step 1a - re = /^(.+?)(ss|i)es$/; - re2 = /^(.+?)([^s])s$/; - - if (re.test(w)) - w = w.replace(re,"$1$2"); - else if (re2.test(w)) - w = w.replace(re2,"$1$2"); - - // Step 1b - re = /^(.+?)eed$/; - re2 = /^(.+?)(ed|ing)$/; - if (re.test(w)) { - var fp = re.exec(w); - re = new RegExp(mgr0); - if (re.test(fp[1])) { - re = /.$/; - w = w.replace(re,""); - } - } - else if (re2.test(w)) { - var fp = re2.exec(w); - stem = fp[1]; - re2 = new RegExp(s_v); - if (re2.test(stem)) { - w = stem; - re2 = /(at|bl|iz)$/; - re3 = new RegExp("([^aeiouylsz])\\1$"); - re4 = new RegExp("^" + C + v + "[^aeiouwxy]$"); - if (re2.test(w)) - w = w + "e"; - else if (re3.test(w)) { - re = /.$/; - w = w.replace(re,""); - } - else if (re4.test(w)) - w = w + "e"; - } - } - - // Step 1c - re = /^(.+?)y$/; - if (re.test(w)) { - var fp = re.exec(w); - stem = fp[1]; - re = new RegExp(s_v); - if (re.test(stem)) - w = stem + "i"; - } - - // Step 2 - re = /^(.+?)(ational|tional|enci|anci|izer|bli|alli|entli|eli|ousli|ization|ation|ator|alism|iveness|fulness|ousness|aliti|iviti|biliti|logi)$/; - if (re.test(w)) { - var fp = re.exec(w); - stem = fp[1]; - suffix = fp[2]; - re = new RegExp(mgr0); - if (re.test(stem)) - w = stem + step2list[suffix]; - } - - // Step 3 - re = /^(.+?)(icate|ative|alize|iciti|ical|ful|ness)$/; - if (re.test(w)) { - var fp = re.exec(w); - stem = fp[1]; - suffix = fp[2]; - re = new RegExp(mgr0); - if (re.test(stem)) - w = stem + step3list[suffix]; - } - - // Step 4 - re = /^(.+?)(al|ance|ence|er|ic|able|ible|ant|ement|ment|ent|ou|ism|ate|iti|ous|ive|ize)$/; - re2 = /^(.+?)(s|t)(ion)$/; - if (re.test(w)) { - var fp = re.exec(w); - stem = fp[1]; - re = new RegExp(mgr1); - if (re.test(stem)) - w = stem; - } - else if (re2.test(w)) { - var fp = re2.exec(w); - stem = fp[1] + fp[2]; - re2 = new RegExp(mgr1); - if (re2.test(stem)) - w = stem; - } - - // Step 5 - re = /^(.+?)e$/; - if (re.test(w)) { - var fp = re.exec(w); - stem = fp[1]; - re = new RegExp(mgr1); - re2 = new RegExp(meq1); - re3 = new RegExp("^" + C + v + "[^aeiouwxy]$"); - if (re.test(stem) || (re2.test(stem) && !(re3.test(stem)))) - w = stem; - } - re = /ll$/; - re2 = new RegExp(mgr1); - if (re.test(w) && re2.test(w)) { - re = /.$/; - w = w.replace(re,""); - } - - // and turn initial Y back to y - if (firstch == "y") - w = firstch.toLowerCase() + w.substr(1); - return w; - } -} - - -/** - * Search Module - */ -var Search = { - - _index : null, - _queued_query : null, - _pulse_status : -1, - - init : function() { - var params = $.getQueryParameters(); - if (params.q) { - var query = params.q[0]; - $('input[name="q"]')[0].value = query; - this.performSearch(query); - } - }, - - /** - * Sets the index - */ - setIndex : function(index) { - var q; - this._index = index; - if ((q = this._queued_query) !== null) { - this._queued_query = null; - Search.query(q); - } - }, - - hasIndex : function() { - return this._index !== null; - }, - - deferQuery : function(query) { - this._queued_query = query; - }, - - stopPulse : function() { - this._pulse_status = 0; - }, - - startPulse : function() { - if (this._pulse_status >= 0) - return; - function pulse() { - Search._pulse_status = (Search._pulse_status + 1) % 4; - var dotString = ''; - for (var i = 0; i < Search._pulse_status; i++) - dotString += '.'; - Search.dots.text(dotString); - if (Search._pulse_status > -1) - window.setTimeout(pulse, 500); - }; - pulse(); - }, - - /** - * perform a search for something - */ - performSearch : function(query) { - // create the required interface elements - this.out = $('#search-results'); - this.title = $('

    ' + _('Searching') + '

    ').appendTo(this.out); - this.dots = $('').appendTo(this.title); - this.status = $('

    ').appendTo(this.out); - this.output = $('