gallium: change comments to remove 'state tracker'
[mesa.git] / src / gallium / docs / source / tgsi.rst
index 59410cfd663dd518ac853c31d8f0acdd8ff621ab..79d100769185c378fbefd6bf90f5fa820fcfe558 100644 (file)
@@ -681,6 +681,27 @@ This instruction replicates its result.
   Unconditional discard.  Allowed in fragment shaders only.
 
 
+.. opcode:: DEMOTE - Demote Invocation to a Helper
+
+  This demotes the current invocation to a helper, but continues
+  execution (while KILL may or may not terminate the
+  invocation). After this runs, all the usual helper invocation rules
+  apply about discarding buffer and render target writes. This is
+  useful for having accurate derivatives in the other invocations
+  which have not been demoted.
+
+  Allowed in fragment shaders only.
+
+
+.. opcode:: READ_HELPER - Reads Invocation Helper Status
+
+  This is identical to ``TGSI_SEMANTIC_HELPER_INVOCATION``, except
+  this will read the current value, which might change as a result of
+  a ``DEMOTE`` instruction.
+
+  Allowed in fragment shaders only.
+
+
 .. opcode:: TXB - Texture Lookup With Bias
 
   for cube map array textures and shadow cube maps, the bias value
@@ -714,7 +735,8 @@ This instruction replicates its result.
   Presumably shadow 2d arrays and shadow 3d targets could use
   this encoding too, but this is not legal.
 
-  shadow cube map arrays are neither possible nor required.
+  if the target is a shadow cube map array, the reference value is in
+  src1.y.
 
 .. math::
 
@@ -805,7 +827,8 @@ This instruction replicates its result.
   Presumably shadow 3d / 2d array / cube targets could use
   this encoding too, but this is not legal.
 
-  shadow cube map arrays are neither possible nor required.
+  if the target is a shadow cube map array, the reference value is in
+  src1.y.
 
 .. math::
 
@@ -941,14 +964,22 @@ XXX doesn't look like most of the opcodes really belong here.
   require another CAP is hw can do it natively. For now we lower that before
   TGSI.
 
+  PIPE_CAP_TGSI_TG4_COMPONENT_IN_SWIZZLE changes the encoding so that component
+  is stored in the sampler source swizzle x.
+
 .. math::
 
    coord = src0
 
+   (without TGSI_TG4_COMPONENT_IN_SWIZZLE)
    component = src1
 
    dst = texture\_gather4 (unit, coord, component)
 
+   (with TGSI_TG4_COMPONENT_IN_SWIZZLE)
+   dst = texture\_gather4 (unit, coord)
+   component is encoded in sampler swizzle.
+
 (with SM5 - cube array shadow)
 
 .. math::
@@ -2475,7 +2506,7 @@ after lookup.
   If per-sample shading is not in effect or the source resource or render
   target is not multisampled, the result is (0.5, 0.5, undef, undef).
 
-  NOTE: no driver has implemented this opcode yet (and no state tracker
+  NOTE: no driver has implemented this opcode yet (and no gallium frontend
   emits it).  This information is subject to change.
 
 .. opcode:: SAMPLE_INFO
@@ -2494,7 +2525,7 @@ after lookup.
   If per-sample shading is not in effect or the source resource or render
   target is not multisampled, the result is (1, 0, 0, 0).
 
-  NOTE: no driver has implemented this opcode yet (and no state tracker
+  NOTE: no driver has implemented this opcode yet (and no gallium frontend
   emits it).  This information is subject to change.
 
 .. opcode:: LOD - level of detail
@@ -2834,6 +2865,36 @@ These atomic operations may only be used with 32-bit integer image formats.
   resource[offset] = (dst_x > src_x ? dst_x : src_x)
 
 
+.. opcode:: ATOMINC_WRAP - Atomic increment + wrap around
+
+  Syntax: ``ATOMINC_WRAP dst, resource, offset, src``
+
+  Example: ``ATOMINC_WRAP TEMP[0], BUFFER[0], TEMP[1], TEMP[2]``
+
+  The following operation is performed atomically:
+
+.. math::
+
+  dst_x = resource[offset] + 1
+
+  resource[offset] = dst_x <= src_x ? dst_x : 0
+
+
+.. opcode:: ATOMDEC_WRAP - Atomic decrement + wrap around
+
+  Syntax: ``ATOMDEC_WRAP dst, resource, offset, src``
+
+  Example: ``ATOMDEC_WRAP TEMP[0], BUFFER[0], TEMP[1], TEMP[2]``
+
+  The following operation is performed atomically:
+
+.. math::
+
+  dst_x = resource[offset]
+
+  resource[offset] = (dst_x > 0 && dst_x < src_x) ? dst_x - 1 : 0
+
+
 .. _interlaneopcodes:
 
 Inter-lane opcodes
@@ -3465,6 +3526,25 @@ A bit mask of ``bit index < TGSI_SEMANTIC_SUBGROUP_INVOCATION``, i.e.
 ``(1 << subgroup_invocation) - 1`` in arbitrary precision arithmetic.
 
 
+TGSI_SEMANTIC_VIEWPORT_MASK
+"""""""""""""""""""""""""""
+
+A bit mask of viewports to broadcast the current primitive to. See
+GL_NV_viewport_array2 for more details.
+
+
+TGSI_SEMANTIC_TESS_DEFAULT_OUTER_LEVEL
+""""""""""""""""""""""""""""""""""""""
+
+A system value equal to the default_outer_level array set via set_tess_level.
+
+
+TGSI_SEMANTIC_TESS_DEFAULT_INNER_LEVEL
+""""""""""""""""""""""""""""""""""""""
+
+A system value equal to the default_inner_level array set via set_tess_level.
+
+
 Declaration Interpolate
 ^^^^^^^^^^^^^^^^^^^^^^^
 
@@ -3724,6 +3804,13 @@ When enabled, the input for TGSI_SEMANTIC_SAMPLEMASK will exclude samples
 that have failed the depth/stencil tests. This is only valid when
 FS_EARLY_DEPTH_STENCIL is also specified.
 
+LAYER_VIEWPORT_RELATIVE
+"""""""""""""""""""""""
+
+When enabled, the TGSI_SEMATNIC_LAYER output value is relative to the
+current viewport. This is especially useful in conjunction with
+TGSI_SEMANTIC_VIEWPORT_MASK.
+
 
 Texture Sampling and Texture Formats
 ------------------------------------