summaryrefslogtreecommitdiffstats
path: root/src/gallium
diff options
context:
space:
mode:
authorRoland Scheidegger <[email protected]>2010-05-17 20:52:08 +0200
committerRoland Scheidegger <[email protected]>2010-05-17 20:52:08 +0200
commit6272d7632a8d2948e45698d1c75eae8c441c3916 (patch)
tree4d8c67d332e576b31923a5928f6408a180268b2c /src/gallium
parent0ae2f59c0287f4baec6c7de5f2f0fdf736fba26d (diff)
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.
Diffstat (limited to 'src/gallium')
-rw-r--r--src/gallium/docs/source/screen.rst14
-rw-r--r--src/gallium/include/pipe/p_screen.h12
2 files changed, 5 insertions, 21 deletions
diff --git a/src/gallium/docs/source/screen.rst b/src/gallium/docs/source/screen.rst
index 2a8f6967ea9..5a60ee00a69 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 1bad045b162..9cb949a4465 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,19 +99,11 @@ 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.
*/
struct pipe_resource * (*resource_create)(struct pipe_screen *,