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.
This commit is contained in:
@@ -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
|
||||
|
Reference in New Issue
Block a user