Allow Fermi blit accelerate to add src/dst to the cache if they don't exist already. Use ScratchBuffers in the software blit path.
This commit is contained in:
		| @@ -23,7 +23,10 @@ public: | ||||
|           buffer{Common::make_unique_for_overwrite<T[]>(initial_capacity)} {} | ||||
|  | ||||
|     ~ScratchBuffer() = default; | ||||
|     ScratchBuffer(const ScratchBuffer&) = delete; | ||||
|     ScratchBuffer& operator=(const ScratchBuffer&) = delete; | ||||
|     ScratchBuffer(ScratchBuffer&&) = default; | ||||
|     ScratchBuffer& operator=(ScratchBuffer&&) = default; | ||||
|  | ||||
|     /// This will only grow the buffer's capacity if size is greater than the current capacity. | ||||
|     /// The previously held data will remain intact. | ||||
| @@ -87,6 +90,12 @@ public: | ||||
|         return buffer_capacity; | ||||
|     } | ||||
|  | ||||
|     void swap(ScratchBuffer& other) noexcept { | ||||
|         std::swap(last_requested_size, other.last_requested_size); | ||||
|         std::swap(buffer_capacity, other.buffer_capacity); | ||||
|         std::swap(buffer, other.buffer); | ||||
|     } | ||||
|  | ||||
| private: | ||||
|     size_t last_requested_size{}; | ||||
|     size_t buffer_capacity{}; | ||||
|   | ||||
		Reference in New Issue
	
	Block a user