diff options
author | Roland Scheidegger <sroland@vmware.com> | 2010-05-17 21:02:24 +0200 |
---|---|---|
committer | Roland Scheidegger <sroland@vmware.com> | 2010-05-17 21:02:24 +0200 |
commit | 379db6a36b32912be8fd8808ceb95ca5cffa7850 (patch) | |
tree | 8003d4f99ba73813c33607abec997d1a0a8c8577 | |
parent | 6272d7632a8d2948e45698d1c75eae8c441c3916 (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.rst | 7 | ||||
-rw-r--r-- | src/gallium/include/pipe/p_context.h | 2 |
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. */ /*@{*/ |