iris: Handle PIPE_TRANSFER_DISCARD_WHOLE_RESOURCE somewhat
authorKenneth Graunke <kenneth@whitecape.org>
Tue, 1 Jan 2019 06:03:35 +0000 (22:03 -0800)
committerKenneth Graunke <kenneth@whitecape.org>
Thu, 21 Feb 2019 18:26:11 +0000 (10:26 -0800)
commit8eda6f22885e7af66affec83a94ba5a087180842
tree65ff3520c095a0cf228d79a7bbd8680fc25d0b5d
parentbacc722d1376e95003da9904be9afc979b2be332
iris: Handle PIPE_TRANSFER_DISCARD_WHOLE_RESOURCE somewhat

Various places in the transfer code need to know whether they must
read the existing resource's values.  Rather than checking both flags
everywhere, just make PIPE_TRANSFER_DISCARD_WHOLE_RESOURCE also flag
PIPE_TRANSFER_DISCARD_RANGE - if we can discard everything, we can
discard a subrange, too.

Obviously, we can do better for PIPE_TRANSFER_DISCARD_WHOLE_RESOURCE,
but eventually u_threaded_context should handle swapping out buffers
for new idle buffers, anyway.  In the meantime, this is at least better.
src/gallium/drivers/iris/iris_resource.c