docs: use ext-role for GL / VK extensions
This makes sure that we generate proper links to all of these extensions. Reviewed-by: Eric Engestrom <eric@igalia.com> Reviewed-by: Adam Jackson <ajax@redhat.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19594>
This commit is contained in:

committed by
Marge Bot

parent
f69560bdcb
commit
ba78af66c6
@@ -182,7 +182,7 @@ Euro Truck Simulator
|
||||
893943 glDrawArrays(mode = GL_TRIANGLES, first = 0, count = 6)
|
||||
|
||||
At the start of this frame, buffer 14 and 15 haven't been used in the previous 2
|
||||
frames, and the ``GL_ARB_sync`` fence has ensured that the GPU has at least started
|
||||
frames, and the :ext:`GL_ARB_sync` fence has ensured that the GPU has at least started
|
||||
frame n-1 as the CPU starts the current frame. The first map is ``offset = 0,
|
||||
INVALIDATE_BUFFER | UNSYNCHRONIZED``, which suggests that the driver should
|
||||
reallocate storage for the mapping even in the ``UNSYNCHRONIZED`` case, except
|
||||
@@ -237,7 +237,7 @@ Plague Inc
|
||||
1640863 glDrawElementsBaseVertex(mode = GL_TRIANGLES, count = 6, type = GL_UNSIGNED_SHORT, indices = 0x58, basevertex = 4)
|
||||
|
||||
At the start of this frame, the VBOs haven't been used in about 6 frames, and
|
||||
the ``GL_ARB_sync`` fence has ensured that the GPU has started frame n-1.
|
||||
the :ext:`GL_ARB_sync` fence has ensured that the GPU has started frame n-1.
|
||||
|
||||
Note the use of ``glFlushMappedBufferRange()`` on a small fraction of the size
|
||||
of the VBO -- it is important that a blitting driver make use of the flush
|
||||
@@ -299,7 +299,7 @@ Tabletop Simulator
|
||||
1289068 glDrawArrays(mode = GL_TRIANGLE_STRIP, first = 8, count = 4)
|
||||
1289553 glXSwapBuffers(dpy = 0x3e10810, drawable = 23068692)
|
||||
|
||||
In this app, buffer 480 gets used like this every other frame. The ``GL_ARB_sync``
|
||||
In this app, buffer 480 gets used like this every other frame. The :ext:`GL_ARB_sync`
|
||||
fence ensures that frame n-1 has started on the GPU before CPU work starts on
|
||||
the current frame, so the unsynchronized access to the buffers is safe.
|
||||
|
||||
@@ -337,7 +337,7 @@ Hollow Knight
|
||||
1873097 glDrawElementsBaseVertex(mode = GL_TRIANGLES, count = 36, type = GL_UNSIGNED_SHORT, indices = 0x2d0, basevertex = 240)
|
||||
|
||||
In this app, buffer 29/30 get used like this starting from offset 0 every other
|
||||
frame. The ``GL_ARB_sync`` fence is used to make sure that the GPU has reached the
|
||||
frame. The :ext:`GL_ARB_sync` fence is used to make sure that the GPU has reached the
|
||||
start of the previous frame before we go unsynchronized writing over the n-2
|
||||
frame's buffer.
|
||||
|
||||
@@ -363,7 +363,7 @@ Borderlands 2
|
||||
3563064 glBindBufferARB(target = GL_ELEMENT_ARRAY_BUFFER, buffer = 875)
|
||||
3563065 glDrawElementsInstancedARB(mode = GL_TRIANGLES, count = 72, type = GL_UNSIGNED_SHORT, indices = NULL, instancecount = 28)
|
||||
|
||||
The ``GL_ARB_sync`` fence ensures that the GPU has started frame n-1 before the CPU
|
||||
The :ext:`GL_ARB_sync` fence ensures that the GPU has started frame n-1 before the CPU
|
||||
starts on the current frame.
|
||||
|
||||
This sequence of buffer uploads appears in each frame with the same buffer
|
||||
|
@@ -102,7 +102,7 @@ objects. They all follow simple, one-method binding calls, e.g.
|
||||
PIPE_MAX_VIEWPORTS.
|
||||
* ``set_viewport_states``
|
||||
* ``set_window_rectangles`` sets the window rectangles to be used for
|
||||
rendering, as defined by GL_EXT_window_rectangles. There are two
|
||||
rendering, as defined by :ext:`GL_EXT_window_rectangles`. There are two
|
||||
modes - include and exclude, which define whether the supplied
|
||||
rectangles are to be used for including fragments or excluding
|
||||
them. All of the rectangles are ORed together, so in exclude mode,
|
||||
@@ -122,7 +122,7 @@ objects. They all follow simple, one-method binding calls, e.g.
|
||||
for tessellation.
|
||||
|
||||
* ``set_debug_callback`` sets the callback to be used for reporting
|
||||
various debug messages, eventually reported via KHR_debug and
|
||||
various debug messages, eventually reported via :ext:`GL_KHR_debug` and
|
||||
similar mechanisms.
|
||||
|
||||
Samplers
|
||||
|
@@ -15,7 +15,8 @@ clamp_vertex_color
|
||||
the execution of the vertex shader, before being passed to the geometry
|
||||
shader or fragment shader.
|
||||
|
||||
OpenGL: glClampColor(GL_CLAMP_VERTEX_COLOR) in GL 3.0 or GL_ARB_color_buffer_float
|
||||
OpenGL: glClampColor(GL_CLAMP_VERTEX_COLOR) in GL 3.0 or
|
||||
:ext:`GL_ARB_color_buffer_float`
|
||||
|
||||
D3D11: seems always disabled
|
||||
|
||||
@@ -28,7 +29,8 @@ clamp_fragment_color
|
||||
Controls whether TGSI_SEMANTIC_COLOR outputs of the fragment shader
|
||||
are clamped to [0, 1].
|
||||
|
||||
OpenGL: glClampColor(GL_CLAMP_FRAGMENT_COLOR) in GL 3.0 or ARB_color_buffer_float
|
||||
OpenGL: glClampColor(GL_CLAMP_FRAGMENT_COLOR) in GL 3.0 or
|
||||
:ext:`GL_ARB_color_buffer_float`
|
||||
|
||||
D3D11: seems always disabled
|
||||
|
||||
|
@@ -69,11 +69,11 @@ TODO there's no CAP bit currently for this, there's also unspecified size etc. l
|
||||
TODO: is there any chance of supporting GL pixel buffer object acceleration with this?
|
||||
|
||||
|
||||
OpenGL: vertex buffers in GL 1.5 or GL_ARB_vertex_buffer_object
|
||||
OpenGL: vertex buffers in GL 1.5 or :ext:`GL_ARB_vertex_buffer_object`
|
||||
|
||||
- Binding to stream out requires GL 3.0 or GL_NV_transform_feedback
|
||||
- Binding as constant buffers requires GL 3.1 or GL_ARB_uniform_buffer_object
|
||||
- Binding to a sampling stage requires GL 3.1 or GL_ARB_texture_buffer_object
|
||||
- Binding to stream out requires GL 3.0 or :ext:`GL_NV_transform_feedback`
|
||||
- Binding as constant buffers requires GL 3.1 or :ext:`GL_ARB_uniform_buffer_object`
|
||||
- Binding to a sampling stage requires GL 3.1 or :ext:`GL_ARB_texture_buffer_object`
|
||||
|
||||
D3D11: buffer resources
|
||||
- Binding to a render target requires D3D_FEATURE_LEVEL_10_0
|
||||
@@ -93,7 +93,7 @@ PIPE_TEXTURE_1D / PIPE_TEXTURE_1D_ARRAY
|
||||
|
||||
OpenGL: GL_TEXTURE_1D in GL 1.0
|
||||
|
||||
- PIPE_CAP_NPOT_TEXTURES is equivalent to GL 2.0 or GL_ARB_texture_non_power_of_two
|
||||
- PIPE_CAP_NPOT_TEXTURES is equivalent to GL 2.0 or :ext:`GL_ARB_texture_non_power_of_two`
|
||||
|
||||
D3D11: 1D textures in D3D_FEATURE_LEVEL_10_0
|
||||
|
||||
@@ -107,7 +107,8 @@ PIPE_TEXTURE_RECT
|
||||
- Must use unnormalized coordinates
|
||||
- Must use a clamp wrap mode
|
||||
|
||||
OpenGL: GL_TEXTURE_RECTANGLE in GL 3.1 or GL_ARB_texture_rectangle or GL_NV_texture_rectangle
|
||||
OpenGL: GL_TEXTURE_RECTANGLE in GL 3.1 or :ext:`GL_ARB_texture_rectangle` or
|
||||
:ext:`GL_NV_texture_rectangle`
|
||||
|
||||
OpenCL: can create OpenCL images based on this, that can then be sampled arbitrarily
|
||||
|
||||
@@ -128,7 +129,7 @@ PIPE_TEXTURE_2D / PIPE_TEXTURE_2D_ARRAY
|
||||
|
||||
OpenGL: GL_TEXTURE_2D in GL 1.0
|
||||
|
||||
- PIPE_CAP_NPOT_TEXTURES is equivalent to GL 2.0 or GL_ARB_texture_non_power_of_two
|
||||
- PIPE_CAP_NPOT_TEXTURES is equivalent to GL 2.0 or :ext:`GL_ARB_texture_non_power_of_two`
|
||||
|
||||
OpenCL: can create OpenCL images based on this, that can then be sampled arbitrarily
|
||||
|
||||
@@ -147,9 +148,9 @@ Mipmap dimensions are reduced in all 3 coordinates.
|
||||
- array_size must be 1
|
||||
- Must use normalized coordinates
|
||||
|
||||
OpenGL: GL_TEXTURE_3D in GL 1.2 or GL_EXT_texture3D
|
||||
OpenGL: GL_TEXTURE_3D in GL 1.2 or :ext:`GL_EXT_texture3D`
|
||||
|
||||
- PIPE_CAP_NPOT_TEXTURES is equivalent to GL 2.0 or GL_ARB_texture_non_power_of_two
|
||||
- PIPE_CAP_NPOT_TEXTURES is equivalent to GL 2.0 or :ext:`GL_ARB_texture_non_power_of_two`
|
||||
|
||||
D3D11: 3D textures
|
||||
|
||||
@@ -173,11 +174,11 @@ resulting in filtering taking samples from multiple surfaces near to the edge.
|
||||
width and height must be powers of two
|
||||
- Must use normalized coordinates
|
||||
|
||||
OpenGL: GL_TEXTURE_CUBE_MAP in GL 1.3 or EXT_texture_cube_map
|
||||
OpenGL: GL_TEXTURE_CUBE_MAP in GL 1.3 or :ext:`GL_EXT_texture_cube_map`
|
||||
|
||||
- PIPE_CAP_NPOT_TEXTURES is equivalent to GL 2.0 or GL_ARB_texture_non_power_of_two
|
||||
- Seamless cube maps require GL 3.2 or GL_ARB_seamless_cube_map or GL_AMD_seamless_cubemap_per_texture
|
||||
- Cube map arrays require GL 4.0 or GL_ARB_texture_cube_map_array
|
||||
- PIPE_CAP_NPOT_TEXTURES is equivalent to GL 2.0 or :ext:`GL_ARB_texture_non_power_of_two`
|
||||
- Seamless cube maps require GL 3.2 or :ext:`GL_ARB_seamless_cube_map` or :ext:`GL_AMD_seamless_cubemap_per_texture`
|
||||
- Cube map arrays require GL 4.0 or :ext:`GL_ARB_texture_cube_map_array`
|
||||
|
||||
D3D11: 2D array textures with the D3D11_RESOURCE_MISC_TEXTURECUBE flag
|
||||
|
||||
@@ -191,7 +192,7 @@ Surfaces are views of a resource that can be bound as a framebuffer to serve as
|
||||
|
||||
TODO: write much more on surfaces
|
||||
|
||||
OpenGL: FBOs are collections of surfaces in GL 3.0 or GL_ARB_framebuffer_object
|
||||
OpenGL: FBOs are collections of surfaces in GL 3.0 or :ext:`GL_ARB_framebuffer_object`
|
||||
|
||||
D3D11: render target views and depth/stencil views
|
||||
|
||||
|
@@ -119,8 +119,9 @@ The integer capabilities:
|
||||
is allowed to return ``0`` in which case ``PIPE_CAP_GLSL_FEATURE_LEVEL`` is
|
||||
used.
|
||||
Note that simply returning the same value as the GLSL feature level cap is
|
||||
incorrect. For example, GLSL version 3.30 does not require ``ARB_gpu_shader5``,
|
||||
but ESSL version 3.20 es does require ``EXT_gpu_shader5``
|
||||
incorrect. For example, GLSL version 3.30 does not require
|
||||
:ext:`GL_EXT_gpu_shader5`, but ESSL version 3.20 es does require
|
||||
:ext:`GL_EXT_gpu_shader5`
|
||||
* ``PIPE_CAP_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION``: Whether quads adhere to
|
||||
the flatshade_first setting in ``pipe_rasterizer_state``.
|
||||
* ``PIPE_CAP_USER_VERTEX_BUFFERS``: Whether the driver supports user vertex
|
||||
@@ -207,7 +208,7 @@ The integer capabilities:
|
||||
PIPE_ENDIAN_BIG or PIPE_ENDIAN_LITTLE.
|
||||
* ``PIPE_CAP_MIXED_FRAMEBUFFER_SIZES``: Whether it is allowed to have
|
||||
different sizes for fb color/zs attachments. This controls whether
|
||||
ARB_framebuffer_object is provided.
|
||||
:ext:`GL_ARB_framebuffer_object` is provided.
|
||||
* ``PIPE_CAP_VS_LAYER_VIEWPORT``: Whether ``VARYING_SLOT_LAYER`` and
|
||||
``VARYING_SLOT_VIEWPORT`` are supported as vertex shader outputs. Note that
|
||||
the viewport will only be used if multiple viewports are exposed.
|
||||
@@ -270,11 +271,11 @@ The integer capabilities:
|
||||
* ``PIPE_CAP_MAX_VERTEX_ATTRIB_STRIDE``: The maximum supported vertex stride.
|
||||
* ``PIPE_CAP_SAMPLER_VIEW_TARGET``: Whether the sampler view's target can be
|
||||
different than the underlying resource's, as permitted by
|
||||
ARB_texture_view. For example a 2d array texture may be reinterpreted as a
|
||||
:ext:`GL_ARB_texture_view`. For example a 2d array texture may be reinterpreted as a
|
||||
cube (array) texture and vice-versa.
|
||||
* ``PIPE_CAP_CLIP_HALFZ``: Whether the driver supports the
|
||||
pipe_rasterizer_state::clip_halfz being set to true. This is required
|
||||
for enabling ARB_clip_control.
|
||||
for enabling :ext:`GL_ARB_clip_control`.
|
||||
* ``PIPE_CAP_POLYGON_OFFSET_CLAMP``: If true, the driver implements support
|
||||
for ``pipe_rasterizer_state::offset_clamp``.
|
||||
* ``PIPE_CAP_MULTISAMPLE_Z_RESOLVE``: Whether the driver supports blitting
|
||||
@@ -303,16 +304,16 @@ The integer capabilities:
|
||||
textures.
|
||||
* ``PIPE_CAP_DEPTH_BOUNDS_TEST``: Whether bounds_test, bounds_min, and
|
||||
bounds_max states of pipe_depth_stencil_alpha_state behave according
|
||||
to the GL_EXT_depth_bounds_test specification.
|
||||
to the :ext:`GL_EXT_depth_bounds_test` specification.
|
||||
* ``PIPE_CAP_TEXTURE_QUERY_SAMPLES``: Whether the ``TXQS`` opcode is supported
|
||||
* ``PIPE_CAP_FORCE_PERSAMPLE_INTERP``: If the driver can force per-sample
|
||||
interpolation for all fragment shader inputs if
|
||||
pipe_rasterizer_state::force_persample_interp is set. This is only used
|
||||
by GL3-level sample shading (ARB_sample_shading). GL4-level sample shading
|
||||
(ARB_gpu_shader5) doesn't use this. While GL3 hardware has a state for it,
|
||||
GL4 hardware will likely need to emulate it with a shader variant, or by
|
||||
selecting the interpolation weights with a conditional assignment
|
||||
in the shader.
|
||||
by GL3-level sample shading (:ext:`GL_ARB_sample_shading`). GL4-level sample
|
||||
shading (:ext:`GL_ARB_gpu_shader5`) doesn't use this. While GL3 hardware has a
|
||||
state for it, GL4 hardware will likely need to emulate it with a shader
|
||||
variant, or by selecting the interpolation weights with a conditional
|
||||
assignment in the shader.
|
||||
* ``PIPE_CAP_SHAREABLE_SHADERS``: Whether shader CSOs can be used by any
|
||||
pipe_context. Important for reducing jank at draw time by letting GL shaders
|
||||
linked in one thread be used in another thread without recompiling.
|
||||
@@ -367,11 +368,13 @@ The integer capabilities:
|
||||
rendering or textures.
|
||||
* ``PIPE_CAP_ROBUST_BUFFER_ACCESS_BEHAVIOR``: Implementation uses bounds
|
||||
checking on resource accesses by shader if the context is created with
|
||||
PIPE_CONTEXT_ROBUST_BUFFER_ACCESS. See the ARB_robust_buffer_access_behavior
|
||||
extension for information on the required behavior for out of bounds accesses
|
||||
and accesses to unbound resources.
|
||||
* ``PIPE_CAP_CULL_DISTANCE``: Whether the driver supports the arb_cull_distance
|
||||
extension and thus implements proper support for culling planes.
|
||||
PIPE_CONTEXT_ROBUST_BUFFER_ACCESS. See the
|
||||
:ext:`GL_ARB_robust_buffer_access_behavior` extension for information on the
|
||||
required behavior for out of bounds accesses and accesses to unbound
|
||||
resources.
|
||||
* ``PIPE_CAP_CULL_DISTANCE``: Whether the driver supports the
|
||||
:ext:`GL_ARB_cull_distance` extension and thus implements proper support for
|
||||
culling planes.
|
||||
* ``PIPE_CAP_CULL_DISTANCE_NOCOMBINE``: Whether the driver wants to skip
|
||||
running the ``nir_lower_clip_cull_distance_arrays`` pass in order to get
|
||||
VARYING_SLOT_CULL_DIST0 slot variables.
|
||||
@@ -401,13 +404,13 @@ The integer capabilities:
|
||||
equal interpolation qualifiers.
|
||||
Components may overlap, notably when the gaps in an array of dvec3 are
|
||||
filled in.
|
||||
* ``PIPE_CAP_STREAM_OUTPUT_PAUSE_RESUME``: Whether GL_ARB_transform_feedback2
|
||||
is supported, including pausing/resuming queries and having
|
||||
``count_from_stream_output`` set on indirect draws to implement
|
||||
glDrawTransformFeedback. Required for OpenGL 4.0.
|
||||
* ``PIPE_CAP_STREAM_OUTPUT_PAUSE_RESUME``: Whether
|
||||
:ext:`GL_ARB_transform_feedback2` is supported, including pausing/resuming
|
||||
queries and having ``count_from_stream_output`` set on indirect draws to
|
||||
implement glDrawTransformFeedback. Required for OpenGL 4.0.
|
||||
* ``PIPE_CAP_STREAM_OUTPUT_INTERLEAVE_BUFFERS``: Whether interleaved stream
|
||||
output mode is able to interleave across buffers. This is required for
|
||||
ARB_transform_feedback3.
|
||||
:ext:`GL_ARB_transform_feedback3`.
|
||||
* ``PIPE_CAP_SHADER_CAN_READ_OUTPUTS``: Whether every TGSI shader stage can read
|
||||
from the output file.
|
||||
* ``PIPE_CAP_FBFETCH``: The number of render targets whose value in the
|
||||
@@ -459,7 +462,7 @@ The integer capabilities:
|
||||
* ``PIPE_CAP_LOAD_CONSTBUF``: True if the driver supports ``TGSI_OPCODE_LOAD`` use
|
||||
with constant buffers.
|
||||
* ``PIPE_CAP_TILE_RASTER_ORDER``: Whether the driver supports
|
||||
GL_MESA_tile_raster_order, using the tile_raster_order_* fields in
|
||||
:ext:`GL_MESA_tile_raster_order`, using the tile_raster_order_* fields in
|
||||
pipe_rasterizer_state.
|
||||
* ``PIPE_CAP_MAX_COMBINED_SHADER_OUTPUT_RESOURCES``: Limit on combined shader
|
||||
output resources (images + buffers + fragment outputs). If 0 the state
|
||||
@@ -509,7 +512,7 @@ The integer capabilities:
|
||||
* ``PIPE_CAP_CONSERVATIVE_RASTER_POST_DEPTH_COVERAGE``: Whether
|
||||
``PIPE_CAP_POST_DEPTH_COVERAGE`` works with conservative rasterization.
|
||||
* ``PIPE_CAP_CONSERVATIVE_RASTER_INNER_COVERAGE``: Whether
|
||||
inner_coverage from GL_INTEL_conservative_rasterization is supported.
|
||||
inner_coverage from :ext:`GL_INTEL_conservative_rasterization` is supported.
|
||||
* ``PIPE_CAP_MAX_CONSERVATIVE_RASTER_SUBPIXEL_PRECISION_BIAS``: The maximum
|
||||
subpixel precision bias in bits during conservative rasterization.
|
||||
* ``PIPE_CAP_PROGRAMMABLE_SAMPLE_LOCATIONS``: True is the driver supports
|
||||
@@ -534,7 +537,7 @@ The integer capabilities:
|
||||
of pipe_vertex_element::src_offset.
|
||||
* ``PIPE_CAP_SURFACE_SAMPLE_COUNT``: Whether the driver
|
||||
supports pipe_surface overrides of resource nr_samples. If set, will
|
||||
enable EXT_multisampled_render_to_texture.
|
||||
enable :ext:`GL_EXT_multisampled_render_to_texture`.
|
||||
* ``PIPE_CAP_IMAGE_ATOMIC_FLOAT_ADD``: Atomic floating point adds are
|
||||
supported on images, buffers, and shared memory.
|
||||
* ``PIPE_CAP_RGB_OVERRIDE_DST_ALPHA_BLEND``: True if the driver needs blend state to use zero/one instead of destination alpha for RGB/XRGB formats.
|
||||
@@ -577,7 +580,7 @@ The integer capabilities:
|
||||
turn arrays whose contents can be deduced at compile time into constant
|
||||
buffer loads, or false if the driver can handle such arrays itself in a more
|
||||
efficient manner (such as through nir_opt_large_constants() and nir->constant_data).
|
||||
* ``PIPE_CAP_GL_SPIRV``: True if the driver supports ARB_gl_spirv extension.
|
||||
* ``PIPE_CAP_GL_SPIRV``: True if the driver supports :ext:`GL_ARB_gl_spirv` extension.
|
||||
* ``PIPE_CAP_GL_SPIRV_VARIABLE_POINTERS``: True if the driver supports Variable Pointers in SPIR-V shaders.
|
||||
* ``PIPE_CAP_DEMOTE_TO_HELPER_INVOCATION``: True if driver supports demote keyword in GLSL programs.
|
||||
* ``PIPE_CAP_TGSI_TG4_COMPONENT_IN_SWIZZLE``: True if driver wants the TG4 component encoded in sampler swizzle rather than as a separate source.
|
||||
@@ -604,9 +607,9 @@ The integer capabilities:
|
||||
* ``PIPE_CAP_VIEWPORT_TRANSFORM_LOWERED``: Driver needs the nir_lower_viewport_transform pass to be enabled. This also means that the gl_Position value is modified and should be lowered for transform feedback, if needed. Defaults to false.
|
||||
* ``PIPE_CAP_PSIZ_CLAMPED``: Driver needs for the point size to be clamped. Additionally, the gl_PointSize has been modified and its value should be lowered for transform feedback, if needed. Defaults to false.
|
||||
* ``PIPE_CAP_GL_BEGIN_END_BUFFER_SIZE``: Buffer size used to upload vertices for glBegin/glEnd.
|
||||
* ``PIPE_CAP_VIEWPORT_SWIZZLE``: Whether pipe_viewport_state::swizzle can be used to specify pre-clipping swizzling of coordinates (see GL_NV_viewport_swizzle).
|
||||
* ``PIPE_CAP_VIEWPORT_SWIZZLE``: Whether pipe_viewport_state::swizzle can be used to specify pre-clipping swizzling of coordinates (see :ext:`GL_NV_viewport_swizzle`).
|
||||
* ``PIPE_CAP_SYSTEM_SVM``: True if all application memory can be shared with the GPU without explicit mapping.
|
||||
* ``PIPE_CAP_VIEWPORT_MASK``: Whether ``TGSI_SEMANTIC_VIEWPORT_MASK`` and ``TGSI_PROPERTY_LAYER_VIEWPORT_RELATIVE`` are supported (see GL_NV_viewport_array2).
|
||||
* ``PIPE_CAP_VIEWPORT_MASK``: Whether ``TGSI_SEMANTIC_VIEWPORT_MASK`` and ``TGSI_PROPERTY_LAYER_VIEWPORT_RELATIVE`` are supported (see :ext:`GL_NV_viewport_array2`).
|
||||
* ``PIPE_CAP_MAP_UNSYNCHRONIZED_THREAD_SAFE``: Whether mapping a buffer as unsynchronized from any thread is safe.
|
||||
* ``PIPE_CAP_GLSL_ZERO_INIT``: Choose a default zero initialization some GLSL variables. If ``1``, then all GLSL shader variables and gl_FragColor are initialized to zero. If ``2``, then shader out variables are not initialized but function out variables are.
|
||||
* ``PIPE_CAP_BLEND_EQUATION_ADVANCED``: Driver supports blend equation advanced without necessarily supporting FBFETCH.
|
||||
@@ -628,7 +631,7 @@ The integer capabilities:
|
||||
* ``PIPE_CAP_MAX_SPARSE_TEXTURE_SIZE``: Maximum 1D/2D/rectangle texture image dimension for a sparse texture.
|
||||
* ``PIPE_CAP_MAX_SPARSE_3D_TEXTURE_SIZE``: Maximum 3D texture image dimension for a sparse texture.
|
||||
* ``PIPE_CAP_MAX_SPARSE_ARRAY_TEXTURE_LAYERS``: Maximum number of layers in a sparse array texture.
|
||||
* ``PIPE_CAP_SPARSE_TEXTURE_FULL_ARRAY_CUBE_MIPMAPS``: TRUE if there are no restrictions on the allocation of mipmaps in sparse textures and FALSE otherwise. See SPARSE_TEXTURE_FULL_ARRAY_CUBE_MIPMAPS_ARB description in ARB_sparse_texture extension spec.
|
||||
* ``PIPE_CAP_SPARSE_TEXTURE_FULL_ARRAY_CUBE_MIPMAPS``: TRUE if there are no restrictions on the allocation of mipmaps in sparse textures and FALSE otherwise. See SPARSE_TEXTURE_FULL_ARRAY_CUBE_MIPMAPS_ARB description in :ext:`GL_ARB_sparse_texture` extension spec.
|
||||
* ``PIPE_CAP_QUERY_SPARSE_TEXTURE_RESIDENCY``: TRUE if shader sparse texture sample instruction could also return the residency information.
|
||||
* ``PIPE_CAP_CLAMP_SPARSE_TEXTURE_LOD``: TRUE if shader sparse texture sample instruction support clamp the minimal lod to prevent read from un-committed pages.
|
||||
* ``PIPE_CAP_ALLOW_DRAW_OUT_OF_ORDER``: TRUE if the driver allows the "draw out of order" optimization to be enabled. See _mesa_update_allow_draw_out_of_order for more details.
|
||||
|
@@ -899,9 +899,9 @@ XXX doesn't look like most of the opcodes really belong here.
|
||||
|
||||
.. opcode:: TXF - Texel Fetch
|
||||
|
||||
As per NV_gpu_program4, extract a single texel from a specified texture
|
||||
image or PIPE_BUFFER resource. The source sampler may not be a CUBE or
|
||||
SHADOW. *src0* is a
|
||||
As per :ext:`GL_NV_gpu_program4`, extract a single texel from a specified
|
||||
texture image or PIPE_BUFFER resource. The source sampler may not be a
|
||||
CUBE or SHADOW. *src0* is a
|
||||
four-component signed integer vector used to identify the single texel
|
||||
accessed. 3 components + level. If the texture is multisampled, then
|
||||
the fourth component indicates the sample, not the mipmap level.
|
||||
@@ -915,11 +915,11 @@ XXX doesn't look like most of the opcodes really belong here.
|
||||
|
||||
.. opcode:: TXQ - Texture Size Query
|
||||
|
||||
As per NV_gpu_program4, retrieve the dimensions of the texture depending on
|
||||
the target. For 1D (width), 2D/RECT/CUBE (width, height), 3D (width, height,
|
||||
depth), 1D array (width, layers), 2D array (width, height, layers).
|
||||
Also return the number of accessible levels (last_level - first_level + 1)
|
||||
in W.
|
||||
As per :ext:`GL_NV_gpu_program4`, retrieve the dimensions of the texture
|
||||
depending on the target. For 1D (width), 2D/RECT/CUBE (width, height),
|
||||
3D (width, height, depth), 1D array (width, layers), 2D array (width,
|
||||
height, layers). Also return the number of accessible levels
|
||||
(last_level - first_level + 1) in W.
|
||||
|
||||
For components which don't return a resource dimension, their value
|
||||
is undefined.
|
||||
@@ -951,15 +951,15 @@ XXX doesn't look like most of the opcodes really belong here.
|
||||
|
||||
.. opcode:: TG4 - Texture Gather
|
||||
|
||||
As per ARB_texture_gather, gathers the four texels to be used in a bi-linear
|
||||
filtering operation and packs them into a single register. Only works with
|
||||
2D, 2D array, cubemaps, and cubemaps arrays. For 2D textures, only the
|
||||
addressing modes of the sampler and the top level of any mip pyramid are
|
||||
used. Set W to zero. It behaves like the TEX instruction, but a filtered
|
||||
sample is not generated. The four samples that contribute to filtering are
|
||||
placed into XYZW in clockwise order, starting with the (u,v) texture
|
||||
coordinate delta at the following locations (-, +), (+, +), (+, -), (-, -),
|
||||
where the magnitude of the deltas are half a texel.
|
||||
As per :ext:`GL_ARB_texture_gather`, gathers the four texels to be used in a
|
||||
bi-linear filtering operation and packs them into a single register.
|
||||
Only works with 2D, 2D array, cubemaps, and cubemaps arrays. For 2D
|
||||
textures, only the addressing modes of the sampler and the top level of any
|
||||
mip pyramid are used. Set W to zero. It behaves like the TEX instruction,
|
||||
but a filtered sample is not generated. The four samples that contribute to
|
||||
filtering are placed into XYZW in clockwise order, starting with the (u,v)
|
||||
texture coordinate delta at the following locations (-, +), (+, +), (+, -),
|
||||
(-, -), where the magnitude of the deltas are half a texel.
|
||||
|
||||
PIPE_CAP_TEXTURE_SM5 enhances this instruction to support shadow per-sample
|
||||
depth compares, single component selection, and a non-constant offset. It
|
||||
@@ -3537,7 +3537,7 @@ TGSI_SEMANTIC_VIEWPORT_MASK
|
||||
"""""""""""""""""""""""""""
|
||||
|
||||
A bit mask of viewports to broadcast the current primitive to. See
|
||||
GL_NV_viewport_array2 for more details.
|
||||
:ext:`GL_NV_viewport_array2` for more details.
|
||||
|
||||
|
||||
TGSI_SEMANTIC_TESS_DEFAULT_OUTER_LEVEL
|
||||
@@ -3666,7 +3666,7 @@ If LOWER_LEFT, the position will be (0,0) at the lower left corner and
|
||||
increase upward and rightward.
|
||||
|
||||
OpenGL defaults to LOWER_LEFT, and is configurable with the
|
||||
GL_ARB_fragment_coord_conventions extension.
|
||||
:ext:`GL_ARB_fragment_coord_conventions` extension.
|
||||
|
||||
DirectX 9/10 use UPPER_LEFT.
|
||||
|
||||
@@ -3684,7 +3684,7 @@ rasterization, which is instead controlled by half_pixel_center in the
|
||||
rasterizer.
|
||||
|
||||
OpenGL defaults to HALF_INTEGER, and is configurable with the
|
||||
GL_ARB_fragment_coord_conventions extension.
|
||||
:ext:`GL_ARB_fragment_coord_conventions` extension.
|
||||
|
||||
DirectX 9 uses INTEGER.
|
||||
DirectX 10 uses HALF_INTEGER.
|
||||
|
Reference in New Issue
Block a user