diff options
-rw-r--r-- | src/gallium/docs/source/screen.rst | 10 | ||||
-rw-r--r-- | src/gallium/include/pipe/p_screen.h | 8 |
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 *, |