gallium: another interface change for multisampling
authorRoland Scheidegger <sroland@vmware.com>
Mon, 17 May 2010 18:52:08 +0000 (20:52 +0200)
committerRoland Scheidegger <sroland@vmware.com>
Mon, 17 May 2010 18:52:08 +0000 (20:52 +0200)
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
src/gallium/include/pipe/p_screen.h

index 2a8f696..5a60ee0 100644 (file)
@@ -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
index 1bad045..9cb949a 100644 (file)
@@ -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 *,