mirror of
https://git.eden-emu.dev/eden-emu/eden.git
synced 2026-11-01 11:58:19 +00:00
Quick adjustments on overlapped buffers
This commit is contained in:
@@ -1680,6 +1680,11 @@ BufferId BufferCache<P>::CreateBuffer(DAddr device_addr, u32 wanted_size,
|
|||||||
wanted_size = static_cast<u32>(device_addr_end - device_addr);
|
wanted_size = static_cast<u32>(device_addr_end - device_addr);
|
||||||
const OverlapResult overlap = ResolveOverlaps(device_addr, wanted_size);
|
const OverlapResult overlap = ResolveOverlaps(device_addr, wanted_size);
|
||||||
const u32 size = static_cast<u32>(overlap.end - overlap.begin);
|
const u32 size = static_cast<u32>(overlap.end - overlap.begin);
|
||||||
|
if constexpr (requires(Buffer& buffer) { buffer.IsSparseCompatible(); }) {
|
||||||
|
for (const BufferId overlap_id : overlap.ids) {
|
||||||
|
sparse_compatible |= slot_buffers[overlap_id].IsSparseCompatible();
|
||||||
|
}
|
||||||
|
}
|
||||||
const BufferId new_buffer_id =
|
const BufferId new_buffer_id =
|
||||||
slot_buffers.insert(runtime, overlap.begin, size, sparse_compatible);
|
slot_buffers.insert(runtime, overlap.begin, size, sparse_compatible);
|
||||||
auto& new_buffer = slot_buffers[new_buffer_id];
|
auto& new_buffer = slot_buffers[new_buffer_id];
|
||||||
|
|||||||
Reference in New Issue
Block a user