summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/gallium/docs/source/screen.rst10
-rw-r--r--src/gallium/include/pipe/p_screen.h8
2 files changed, 18 insertions, 0 deletions
diff --git a/src/gallium/docs/source/screen.rst b/src/gallium/docs/source/screen.rst
index 4eb5b32edcf..540d30861b2 100644
--- a/src/gallium/docs/source/screen.rst
+++ b/src/gallium/docs/source/screen.rst
@@ -358,6 +358,16 @@ the maximum allowed legal value is 32.
Returns TRUE if all usages can be satisfied.
+
+can_create_resource
+^^^^^^^^^^^^^^^^^^^
+
+Check if a resource can actually be created (but don't actually allocate any
+memory). This is used to implement OpenGL's proxy textures. Typically, a
+driver will simply check if the total size of the given resource is less than
+some limit.
+
+
.. _resource_create:
resource_create
diff --git a/src/gallium/include/pipe/p_screen.h b/src/gallium/include/pipe/p_screen.h
index fdf6fa2d3f9..dff503676f8 100644
--- a/src/gallium/include/pipe/p_screen.h
+++ b/src/gallium/include/pipe/p_screen.h
@@ -138,6 +138,14 @@ struct pipe_screen {
enum pipe_video_profile profile );
/**
+ * Check if we can actually create the given resource (test the dimension,
+ * overall size, etc). Used to implement proxy textures.
+ * \return TRUE if size is OK, FALSE if too large.
+ */
+ boolean (*can_create_resource)(struct pipe_screen *screen,
+ const struct pipe_resource *templat);
+
+ /**
* Create a new texture object, using the given template info.
*/
struct pipe_resource * (*resource_create)(struct pipe_screen *,