~mmach/netext73/mesa-ryzen

« back to all changes in this revision

Viewing changes to docs/gallium/screen.rst

  • Committer: mmach
  • Date: 2023-11-02 21:31:35 UTC
  • Revision ID: netbit73@gmail.com-20231102213135-18d4tzh7tj0uz752
2023-11-02 22:11:57

Show diffs side-by-side

added added

removed removed

Lines of Context:
153
153
  the pipe_screen::get_timestamp hook are implemented.
154
154
* ``PIPE_CAP_QUERY_TIMESTAMP_BITS``: How many bits the driver uses for the
155
155
  results of GL_TIMESTAMP queries.
 
156
* ``PIPE_CAP_TIMER_RESOLUTION``: The resolution of the timer in nanos.
156
157
* ``PIPE_CAP_TEXTURE_MULTISAMPLE``: Whether all MSAA resources supported
157
158
  for rendering are also supported for texturing.
158
159
* ``PIPE_CAP_MIN_MAP_BUFFER_ALIGNMENT``: The minimum alignment that should be
323
324
* ``PIPE_CAP_COPY_BETWEEN_COMPRESSED_AND_PLAIN_FORMATS``:
324
325
  Whether copying between compressed and plain formats is supported where
325
326
  a compressed block is copied to/from a plain pixel of the same size.
326
 
* ``PIPE_CAP_CLEAR_TEXTURE``: Whether ``clear_texture`` will be
327
 
  available in contexts.
328
327
* ``PIPE_CAP_CLEAR_SCISSORED``: Whether ``clear`` can accept a scissored
329
328
  bounding box.
330
329
* ``PIPE_CAP_DRAW_PARAMETERS``: Whether ``TGSI_SEMANTIC_BASEVERTEX``,
543
542
  enable :ext:`GL_EXT_multisampled_render_to_texture`.
544
543
* ``PIPE_CAP_IMAGE_ATOMIC_FLOAT_ADD``: Atomic floating point adds are
545
544
  supported on images, buffers, and shared memory.
546
 
* ``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.
547
545
* ``PIPE_CAP_GLSL_TESS_LEVELS_AS_INPUTS``: True if the driver wants TESSINNER and TESSOUTER to be inputs (rather than system values) for tessellation evaluation shaders.
548
546
* ``PIPE_CAP_DEST_SURFACE_SRGB_CONTROL``: Indicates whether the drivers
549
547
  supports switching the format between sRGB and linear for a surface that is
603
601
  as opposed to writing gl_PointSize for every point.
604
602
* ``PIPE_CAP_TWO_SIDED_COLOR``: Driver supports two-sided coloring.  Must be 1
605
603
    for non-NIR drivers.  If set, pipe_rasterizer_state may be set to indicate
606
 
    that backfacing primitives should use the back-side color as the FS input
 
604
    that back-facing primitives should use the back-side color as the FS input
607
605
    color.  If unset, mesa/st will lower it to gl_FrontFacing reads in the
608
606
    fragment shader.
609
 
* ``PIPE_CAP_CLIP_PLANES``: Driver supports user-defined clip-planes. 0 denotes none, 1 denotes MAX_CLIP_PLANES. > 1 overrides MAX.
 
607
* ``PIPE_CAP_CLIP_PLANES``: Driver supports user-defined clip-planes. 0 denotes none, 1 denotes MAX_CLIP_PLANES. > 1 overrides MAX. When is 0, pipe_rasterizer_state::clip_plane_enable is unused.
610
608
* ``PIPE_CAP_MAX_VERTEX_BUFFERS``: Number of supported vertex buffers.
611
609
* ``PIPE_CAP_OPENCL_INTEGER_FUNCTIONS``: Driver supports extended OpenCL-style integer functions.  This includes average, saturating addition, saturating subtraction, absolute difference, count leading zeros, and count trailing zeros.
612
610
* ``PIPE_CAP_INTEGER_MULTIPLY_32X16``: Driver supports integer multiplication between a 32-bit integer and a 16-bit integer.  If the second operand is 32-bits, the upper 16-bits are ignored, and the low 16-bits are possibly sign extended as necessary.
625
623
* ``PIPE_CAP_NO_CLIP_ON_COPY_TEX``: Driver doesn't want x/y/width/height clipped based on src size when doing a copy texture operation (e.g.: may want out-of-bounds reads that produce 0 instead of leaving the texture content undefined)
626
624
* ``PIPE_CAP_MAX_TEXTURE_MB``: Maximum texture size in MB (default is 1024)
627
625
* ``PIPE_CAP_DEVICE_PROTECTED_SURFACE``: Whether the device support protected / encrypted content.
628
 
* ``PIPE_CAP_PREFER_REAL_BUFFER_IN_CONSTBUF0``: The state tracker is encouraged to upload constants into a real buffer and bind it into constant buffer 0 instead of binding a user pointer. This may enable a faster codepath in a gallium frontend for drivers that really prefer a real buffer.
 
626
* ``PIPE_CAP_PREFER_REAL_BUFFER_IN_CONSTBUF0``: The state tracker is encouraged to upload constants into a real buffer and bind it into constant buffer 0 instead of binding a user pointer. This may enable a faster code-path in a gallium frontend for drivers that really prefer a real buffer.
629
627
* ``PIPE_CAP_GL_CLAMP``: Driver natively supports GL_CLAMP.  Required for non-NIR drivers with the GL frontend.  NIR drivers with the cap unavailable will have GL_CLAMP lowered to txd/txl with a saturate on the coordinates.
630
628
* ``PIPE_CAP_TEXRECT``: Driver supports rectangle textures.  Required for OpenGL on ``!prefers_nir`` drivers.  If this cap is not present, st/mesa will lower the NIR to use normal 2D texture sampling by using either ``txs`` or ``nir_intrinsic_load_texture_scaling`` to normalize the texture coordinates.
631
629
* ``PIPE_CAP_SAMPLER_REDUCTION_MINMAX``: Driver supports EXT min/max sampler reduction.
632
630
* ``PIPE_CAP_SAMPLER_REDUCTION_MINMAX_ARB``: Driver supports ARB min/max sampler reduction with format queries.
633
631
* ``PIPE_CAP_EMULATE_NONFIXED_PRIMITIVE_RESTART``: Driver requests all draws using a non-fixed restart index to be rewritten to use a fixed restart index.
634
 
* ``PIPE_CAP_SUPPORTED_PRIM_MODES``: A bitmask of the ``pipe_prim_type`` enum values that the driver can natively support.
635
 
* ``PIPE_CAP_SUPPORTED_PRIM_MODES_WITH_RESTART``: A bitmask of the ``pipe_prim_type`` enum values that the driver can natively support for primitive restart. Only useful if ``PIPE_CAP_PRIMITIVE_RESTART`` is also exported.
 
632
* ``PIPE_CAP_SUPPORTED_PRIM_MODES``: A bitmask of the ``mesa_prim`` enum values that the driver can natively support.
 
633
* ``PIPE_CAP_SUPPORTED_PRIM_MODES_WITH_RESTART``: A bitmask of the ``mesa_prim`` enum values that the driver can natively support for primitive restart. Only useful if ``PIPE_CAP_PRIMITIVE_RESTART`` is also exported.
636
634
* ``PIPE_CAP_PREFER_BACK_BUFFER_REUSE``: Only applies to DRI_PRIME. If 1, the driver prefers that DRI3 tries to use the same back buffer each frame. If 0, this means DRI3 will at least use 2 back buffers and ping-pong between them to allow the tiled->linear copy to run in parallel.
637
635
* ``PIPE_CAP_DRAW_VERTEX_STATE``: Driver supports ``pipe_screen::create_vertex_state/vertex_state_destroy`` and ``pipe_context::draw_vertex_state``. Only used by display lists and designed to serve vbo_save.
638
636
* ``PIPE_CAP_PREFER_POT_ALIGNED_VARYINGS``: Driver prefers varyings to be aligned to power of two in a slot. If this cap is enabled, vec4 varying will be placed in .xyzw components of the varying slot, vec3 in .xyz and vec2 in .xy or .zw
741
739
  Note that 16-bit constants are not lowered to uniforms in GLSL.
742
740
* ``PIPE_SHADER_CAP_MAX_TEXTURE_SAMPLERS``: The maximum number of texture
743
741
  samplers.
744
 
* ``PIPE_SHADER_CAP_PREFERRED_IR``: Preferred representation of the
745
 
  program.  It should be one of the ``pipe_shader_ir`` enum values.
746
742
* ``PIPE_SHADER_CAP_MAX_SAMPLER_VIEWS``: The maximum number of texture
747
743
  sampler views. Must not be lower than PIPE_SHADER_CAP_MAX_TEXTURE_SAMPLERS.
748
744
* ``PIPE_SHADER_CAP_DROUND_SUPPORTED``: Whether double precision rounding
799
795
  clock in MHz. Value type: ``uint32_t``
800
796
* ``PIPE_COMPUTE_CAP_MAX_COMPUTE_UNITS``: Maximum number of compute units
801
797
  Value type: ``uint32_t``
 
798
* ``PIPE_COMPUTE_CAP_MAX_SUBGROUPS``: The max amount of subgroups there can be
 
799
  inside a block. Non 0 indicates support for OpenCL subgroups including
 
800
  implementing ``get_compute_state_subgroup_size`` if multiple subgroup sizes
 
801
  are supported.
802
802
* ``PIPE_COMPUTE_CAP_IMAGES_SUPPORTED``: Whether images are supported
803
803
  non-zero means yes, zero means no. Value type: ``uint32_t``
804
 
* ``PIPE_COMPUTE_CAP_SUBGROUP_SIZE``: The size of a basic execution unit in
805
 
  threads. Also known as wavefront size, warp size or SIMD width.
 
804
* ``PIPE_COMPUTE_CAP_SUBGROUP_SIZES``: Ored power of two sizes of a basic execution
 
805
  unit in threads. Also known as wavefront size, warp size or SIMD width.
 
806
  E.g. `64 | 32`.
806
807
* ``PIPE_COMPUTE_CAP_ADDRESS_BITS``: The default compute device address space
807
808
  size specified as an unsigned integer value in bits.
808
809
* ``PIPE_COMPUTE_CAP_MAX_VARIABLE_THREADS_PER_BLOCK``: Maximum variable number