early-access version 1358

This commit is contained in:
pineappleEA
2021-01-23 07:41:16 +01:00
parent 2e0deb5e50
commit 8231512517
13 changed files with 199 additions and 293 deletions

View File

@@ -1243,9 +1243,15 @@ typename BufferCache<P>::Binding BufferCache<P>::StorageBufferBinding(GPUVAddr s
if (!cpu_addr || size == 0) {
return NULL_BINDING;
}
// HACK(Rodrigo): This is the number of bytes bound in host beyond the guest API's range.
// It exists due to some games like Astral Chain operate out of bounds.
// Binding the whole map range would be technically correct, but games have large maps that make
// this approach unaffordable for now.
static constexpr u32 arbitrary_extra_bytes = 0xc000;
const u32 bytes_to_map_end = static_cast<u32>(gpu_memory.BytesToMapEnd(gpu_addr));
const Binding binding{
.cpu_addr = *cpu_addr,
.size = size,
.size = std::min(size + arbitrary_extra_bytes, bytes_to_map_end),
.buffer_id = BufferId{},
};
return binding;