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/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 ++ 10 files changed, 306 insertions(+) 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/gallium/docs/source') 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 8283e200af40140b61080f7b9f005b291fb752df Mon Sep 17 00:00:00 2001 From: Corbin Simpson Date: Sun, 20 Dec 2009 15:28:00 -0800 Subject: Add screen and context to docs. --- src/gallium/docs/build/html/_sources/context.txt | 10 ++ src/gallium/docs/build/html/_sources/index.txt | 2 + src/gallium/docs/build/html/_sources/screen.txt | 9 ++ src/gallium/docs/build/html/context.html | 120 +++++++++++++++++++++++ src/gallium/docs/build/html/cso.html | 10 +- src/gallium/docs/build/html/index.html | 8 ++ src/gallium/docs/build/html/screen.html | 119 ++++++++++++++++++++++ src/gallium/docs/build/html/searchindex.js | 2 +- src/gallium/docs/source/context.rst | 10 ++ src/gallium/docs/source/index.rst | 2 + src/gallium/docs/source/screen.rst | 9 ++ 11 files changed, 295 insertions(+), 6 deletions(-) create mode 100644 src/gallium/docs/build/html/_sources/context.txt create mode 100644 src/gallium/docs/build/html/_sources/screen.txt create mode 100644 src/gallium/docs/build/html/context.html create mode 100644 src/gallium/docs/build/html/screen.html create mode 100644 src/gallium/docs/source/context.rst create mode 100644 src/gallium/docs/source/screen.rst (limited to 'src/gallium/docs/source') diff --git a/src/gallium/docs/build/html/_sources/context.txt b/src/gallium/docs/build/html/_sources/context.txt new file mode 100644 index 0000000000..c2e23a1310 --- /dev/null +++ b/src/gallium/docs/build/html/_sources/context.txt @@ -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/build/html/_sources/index.txt b/src/gallium/docs/build/html/_sources/index.txt index f93d1cafa9..e1b04e6453 100644 --- a/src/gallium/docs/build/html/_sources/index.txt +++ b/src/gallium/docs/build/html/_sources/index.txt @@ -13,6 +13,8 @@ Contents: intro tgsi + screen + context cso Indices and tables diff --git a/src/gallium/docs/build/html/_sources/screen.txt b/src/gallium/docs/build/html/_sources/screen.txt new file mode 100644 index 0000000000..1877718e3d --- /dev/null +++ b/src/gallium/docs/build/html/_sources/screen.txt @@ -0,0 +1,9 @@ +Screen +====== + +A screen is an object representing the context-independent part of a device. + +Methods +------- + +XXX diff --git a/src/gallium/docs/build/html/context.html b/src/gallium/docs/build/html/context.html new file mode 100644 index 0000000000..5d75438d6b --- /dev/null +++ b/src/gallium/docs/build/html/context.html @@ -0,0 +1,120 @@ + + + + + + + Context — Gallium v0.3 documentation + + + + + + + + + + + + +
+
+
+
+ +
+

Context

+

The context object represents the purest, most directly accessible, abilities +of the device’s 3D rendering pipeline.

+
+

Methods

+

XXX

+
+
+ + +
+
+
+
+
+

Table Of Contents

+ + +

Previous topic

+

Screen

+

Next topic

+

CSO

+

This Page

+ + + +
+
+
+
+ + + + \ No newline at end of file diff --git a/src/gallium/docs/build/html/cso.html b/src/gallium/docs/build/html/cso.html index bf4d402ed3..7679a081f2 100644 --- a/src/gallium/docs/build/html/cso.html +++ b/src/gallium/docs/build/html/cso.html @@ -21,7 +21,7 @@ - + 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/gallium/docs/source') 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/gallium/docs/source') 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/gallium/docs/source') 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/gallium/docs/source') 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/gallium/docs/source') 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/gallium/docs/source') 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 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/gallium/docs/source') 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/gallium/docs/source') 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/gallium/docs/source') 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/gallium/docs/source') 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/gallium/docs/source') 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/gallium/docs/source') 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/gallium/docs/source') 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/gallium/docs/source') 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/gallium/docs/source') 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/gallium/docs/source') 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 439b34c9dde080ba9b69791b47f93bdcdaf3ab67 Mon Sep 17 00:00:00 2001 From: Brian Paul Date: Wed, 6 Jan 2010 09:42:53 -0700 Subject: gallium/docs: finish up description of pipe_rasterizer_state fields --- src/gallium/docs/source/cso/rasterizer.rst | 123 ++++++++++++++++++++++------- 1 file changed, 94 insertions(+), 29 deletions(-) (limited to 'src/gallium/docs/source') diff --git a/src/gallium/docs/source/cso/rasterizer.rst b/src/gallium/docs/source/cso/rasterizer.rst index afb58ea375..4d8e1708e7 100644 --- a/src/gallium/docs/source/cso/rasterizer.rst +++ b/src/gallium/docs/source/cso/rasterizer.rst @@ -3,58 +3,123 @@ Rasterizer ========== -The rasterizer is the main chunk of state controlling how vertices are -interpolated into fragments. +The rasterizer state controls the rendering of points, lines and triangles. +Attributes include polygon culling state, line width, line stipple, +multisample state, scissoring and flat/smooth shading. + 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. + color of the entire polygon. If not set, fragment colors will be + interpolated between the vertex colors. + Note that this is separate from the fragment shader input attributes + CONSTANT, LINEAR and PERSPECTIVE. We need the flatshade state at + clipping time to determine how to set the color of new vertices. + Also note that the draw module can implement flat shading by copying + the provoking vertex color to all the other vertices in the primitive. + +flatshade_first + Whether the first vertex should be the provoking vertex, for most + primitives. If not set, the last vertex is the provoking vertex. + +light_twoside + If set, there are per-vertex back-facing colors. The draw module + uses this state along with the front/back information to set the + final vertex colors prior to rasterization. + +front_winding + Indicates the window order of front-facing polygons, either + PIPE_WINDING_CW or PIPE_WINDING_CCW +cull_mode + Indicates which polygons to cull, either PIPE_WINDING_NONE (cull no + polygons), PIPE_WINDING_CW (cull clockwise-winding polygons), + PIPE_WINDING_CCW (cull counter clockwise-winding polygons), or + PIPE_WINDING_BOTH (cull all polygons). + +fill_cw + Indicates how to fill clockwise polygons, either PIPE_POLYGON_MODE_FILL, + PIPE_POLYGON_MODE_LINE or PIPE_POLYGON_MODE_POINT. +fill_ccw + Indicates how to fill counter clockwise polygons, either + PIPE_POLYGON_MODE_FILL, PIPE_POLYGON_MODE_LINE or PIPE_POLYGON_MODE_POINT. + poly_stipple_enable Whether polygon stippling is enabled. +poly_smooth + Controls OpenGL-style polygon smoothing/antialiasing +offset_cw + If set, clockwise polygons will have polygon offset factors applied +offset_ccw + If set, counter clockwise polygons will have polygon offset factors applied +offset_units + Specifies the polygon offset bias +offset_scale + Specifies the polygon offset scale + +line_width + The width of lines. +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. +line_stipple_factor + When drawinga stippled line, each bit in the stipple pattern is + repeated N times, where N = line_stipple_factor + 1. +line_last_pixel + Controls whether the last pixel in a line is drawn or not. OpenGL + omits the last pixel to avoid double-drawing pixels at the ends of lines + when drawing connected lines. + 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. +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. +point_sprite + Whether points are drawn as sprites (textured quads) +sprite_coord_mode + Specifies how the value for each shader output should be computed when + drawing sprites. If PIPE_SPRITE_COORD_NONE, don't change the vertex + shader output. Otherwise, the four vertices of the resulting quad will + be assigned texture coordinates. For PIPE_SPRITE_COORD_LOWER_LEFT, the + lower left vertex will have coordinate (0,0,0,1). + For PIPE_SPRITE_COORD_UPPER_LEFT, the upper-left vertex will have + coordinate (0,0,0,1). + This state is needed by the 'draw' module because that's where each + point vertex is converted into four quad vertices. There's no other + place to emit the new vertex texture coordinates which are required for + sprite rendering. + Note that when geometry shaders are available, this state could be + removed. A special geometry shader defined by the state tracker could + converts the incoming points into quads with the proper texture coords. + +scissor + Whether the scissor test is enabled. + 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 ----- -- cgit v1.2.3