summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRoland Scheidegger <sroland@vmware.com>2010-05-17 21:02:24 +0200
committerRoland Scheidegger <sroland@vmware.com>2010-05-17 21:02:24 +0200
commit379db6a36b32912be8fd8808ceb95ca5cffa7850 (patch)
tree8003d4f99ba73813c33607abec997d1a0a8c8577
parent6272d7632a8d2948e45698d1c75eae8c441c3916 (diff)
gallium: clean up resource_copy_region function
Previously, surface_copy was said to allow overlapping blits, and it was "optional". However, some state trackers actually assumed it is always present, and quite some code (like in u_blit) assumed overlapping isn't allowed. Hence, resource_copy_region (and in the same spirit, resource_fill_region) is now mandatory, but overlapping blits are no longer allowed. A driver can plug in the cpu fallback util_resource_copy_region if it does not want to provide its own implementation, though this is not optimal.
-rw-r--r--src/gallium/docs/source/context.rst7
-rw-r--r--src/gallium/include/pipe/p_context.h2
2 files changed, 3 insertions, 6 deletions
diff --git a/src/gallium/docs/source/context.rst b/src/gallium/docs/source/context.rst
index 374711b3c5..ac3c3c7bdb 100644
--- a/src/gallium/docs/source/context.rst
+++ b/src/gallium/docs/source/context.rst
@@ -253,8 +253,7 @@ Resource Busy Queries
Blitting
^^^^^^^^
-These methods emulate classic blitter controls. They are not guaranteed to be
-available; if they are set to NULL, then they are not present.
+These methods emulate classic blitter controls.
These methods operate directly on ``pipe_resource`` objects, and stand
apart from any 3D state in the context. Blitting functionality may be
@@ -264,8 +263,8 @@ moved to a separate abstraction at some point in the future.
``resource_copy_region`` blits a region of a subresource of a resource to a
region of another subresource of a resource, provided that both resources have the
-same format. The source and destination may be the same resource, and overlapping
-blits are permitted.
+same format. The source and destination may be the same resource, but overlapping
+blits are not permitted.
``resource_resolve`` resolves a multisampled resource into a non-multisampled
one. Formats and dimensions must match. This function must be present if a driver
diff --git a/src/gallium/include/pipe/p_context.h b/src/gallium/include/pipe/p_context.h
index 6ce8ba953a..6b72983176 100644
--- a/src/gallium/include/pipe/p_context.h
+++ b/src/gallium/include/pipe/p_context.h
@@ -238,8 +238,6 @@ struct pipe_context {
/**
* Resource functions for blit-like functionality
*
- * The pipe driver is allowed to set these functions to NULL, and in that
- * case, they will not be available.
* If a driver supports multisampling, resource_resolve must be available.
*/
/*@{*/