From 6272d7632a8d2948e45698d1c75eae8c441c3916 Mon Sep 17 00:00:00 2001 From: Roland Scheidegger Date: Mon, 17 May 2010 20:52:08 +0200 Subject: gallium: another interface change for multisampling due to popular request, use nr_samples parameter in is_format_supported() instead of new is_msaa_supported() query. This makes it easily possible to query if a format with a given sample count is also supported not only as render target, but for sampler views (note that texture sampling from multisampled resources isn't supported yet). It is not quite how dx10 format msaa queries work, but we might need to revisit format queries completely in the future anyway. --- src/gallium/docs/source/screen.rst | 14 +++----------- src/gallium/include/pipe/p_screen.h | 12 ++---------- 2 files changed, 5 insertions(+), 21 deletions(-) diff --git a/src/gallium/docs/source/screen.rst b/src/gallium/docs/source/screen.rst index 2a8f6967ea..5a60ee00a6 100644 --- a/src/gallium/docs/source/screen.rst +++ b/src/gallium/docs/source/screen.rst @@ -214,23 +214,15 @@ Determine if a resource in the given format can be used in a specific manner. **target** one of the PIPE_TEXTURE_x flags +**sample_count** the number of samples. 0 and 1 mean no multisampling, +the maximum allowed legal value is 32. + **bindings** is a bitmask of :ref:`PIPE_BIND` flags. **geom_flags** is a bitmask of PIPE_TEXTURE_GEOM_x flags. Returns TRUE if all usages can be satisfied. -is_msaa_supported -^^^^^^^^^^^^^^^^^ - -Determine if a format supports multisampling with a given number of samples. - -**format** the resource format - -**sample_count** the number of samples. Valid query range is 2-32. - -Returns TRUE if sample_count number of samples is supported with this format. - .. _resource_create: resource_create diff --git a/src/gallium/include/pipe/p_screen.h b/src/gallium/include/pipe/p_screen.h index 1bad045b16..9cb949a446 100644 --- a/src/gallium/include/pipe/p_screen.h +++ b/src/gallium/include/pipe/p_screen.h @@ -89,7 +89,7 @@ struct pipe_screen { struct pipe_context * (*context_create)( struct pipe_screen *, void *priv ); - + /** * Check if the given pipe_format is supported as a texture or * drawing surface. @@ -99,18 +99,10 @@ struct pipe_screen { boolean (*is_format_supported)( struct pipe_screen *, enum pipe_format format, enum pipe_texture_target target, + unsigned sample_count, unsigned bindings, unsigned geom_flags ); - /** - * Check if the given pipe_format is supported with a requested - * number of samples for msaa. - * \param sample_count number of samples for multisampling - */ - boolean (*is_msaa_supported)( struct pipe_screen *, - enum pipe_format format, - unsigned sample_count ); - /** * Create a new texture object, using the given template info. */ -- cgit v1.2.3