[Mesa-dev] [PATCH v3 2/5] gallium: Add new PIPE_CAP_SURFACE_SAMPLE_COUNT
Eric Anholt
eric at anholt.net
Fri Nov 30 21:21:32 UTC 2018
"Kristian H. Kristensen" <hoegsberg at gmail.com> writes:
> This new pipe cap and the new nr_samples field in pipe_surface lets a
> state tracker bind a render target with a different sample count than
> the resource. This allows for implementing
> EXT_multisampled_render_to_texture and
> EXT_multisampled_render_to_texture2.
>
> Signed-off-by: Kristian H. Kristensen <hoegsberg at chromium.org>
> diff --git a/src/gallium/docs/source/screen.rst b/src/gallium/docs/source/screen.rst
> index 0abd164494c..cf2ce33b87f 100644
> --- a/src/gallium/docs/source/screen.rst
> +++ b/src/gallium/docs/source/screen.rst
> @@ -477,6 +477,9 @@ subpixel precision bias in bits during conservative rasterization.
> 0 means no limit.
> * ``PIPE_CAP_MAX_VERTEX_ELEMENT_SRC_OFFSET``: The maximum supported value for
> of pipe_vertex_element::src_offset.
> +* ``PIPE_CAP_SURFACEA_SAMPLE_COUNT_TEXTURE``: Whether the driver
> + supports pipe_surface overrides of resource nr_samples. If set, will
> + enable EXT_multisampled_render_to_texture.
s/SURFACEA/SURFACE/
>
> .. _pipe_capf:
>
> diff --git a/src/gallium/include/pipe/p_defines.h b/src/gallium/include/pipe/p_defines.h
> index e99895d30d8..6d96f1ccb5b 100644
> --- a/src/gallium/include/pipe/p_defines.h
> +++ b/src/gallium/include/pipe/p_defines.h
> @@ -832,6 +832,7 @@ enum pipe_cap
> PIPE_CAP_MAX_COMBINED_HW_ATOMIC_COUNTER_BUFFERS,
> PIPE_CAP_MAX_TEXTURE_UPLOAD_MEMORY_BUDGET,
> PIPE_CAP_MAX_VERTEX_ELEMENT_SRC_OFFSET,
> + PIPE_CAP_SURFACE_SAMPLE_COUNT,
> };
>
> /**
> diff --git a/src/gallium/include/pipe/p_state.h b/src/gallium/include/pipe/p_state.h
> index fd670345aad..89cffb15bd8 100644
> --- a/src/gallium/include/pipe/p_state.h
> +++ b/src/gallium/include/pipe/p_state.h
> @@ -443,6 +443,12 @@ struct pipe_surface
> uint16_t width; /**< logical width in pixels */
> uint16_t height; /**< logical height in pixels */
>
> + /** Number of samples for the surface. This can be different from the
> + * resource nr_samples when the resource is bound using
> + * FramebufferTexture2DMultisampleEXT.
> + */
> + unsigned nr_samples:8;
Don't you mean:
/**
* Number of samples for the surface. This will be 0 if rendering
* should use the resource's nr_samples, or another value if the resource
* is bound using FramebufferTexture2DMultisampleEXT
*/
Other than that, 1-3 are:
Reviewed-by: Eric Anholt <eric at anholt.net>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 832 bytes
Desc: not available
URL: <https://lists.freedesktop.org/archives/mesa-dev/attachments/20181130/5511298e/attachment.sig>
More information about the mesa-dev
mailing list