[vk] Fast UBO: fix tracking, resize heuristics, add debug guard
Some checks failed
eden-license / license-header (pull_request) Failing after 23s
Some checks failed
eden-license / license-header (pull_request) Failing after 23s
This commit is contained in:
parent
9acb6006b8
commit
b878b72481
4 changed files with 47 additions and 17 deletions
|
@ -467,6 +467,29 @@ void DeviceMemoryManager<Traits>::ReadBlockUnsafe(DAddr address, void* dest_poin
|
|||
});
|
||||
}
|
||||
|
||||
#ifdef YUZU_DEBUG
|
||||
template <typename Traits>
|
||||
bool DeviceMemoryManager<Traits>::ReadBlockFastChecked(DAddr address, void* dest_pointer,
|
||||
size_t size) {
|
||||
bool success = true;
|
||||
WalkBlock(
|
||||
address, size,
|
||||
[&](size_t copy_amount, DAddr current_vaddr) {
|
||||
LOG_CRITICAL(Render, "DeviceMemory OOB/unmapped: addr=0x{:x} size={}", current_vaddr,
|
||||
size);
|
||||
std::memset(dest_pointer, 0, copy_amount);
|
||||
success = false;
|
||||
},
|
||||
[&](size_t copy_amount, const u8* const src_ptr) {
|
||||
std::memcpy(dest_pointer, src_ptr, copy_amount);
|
||||
},
|
||||
[&](const std::size_t copy_amount) {
|
||||
dest_pointer = static_cast<u8*>(dest_pointer) + copy_amount;
|
||||
});
|
||||
return success;
|
||||
}
|
||||
#endif
|
||||
|
||||
template <typename Traits>
|
||||
void DeviceMemoryManager<Traits>::WriteBlockUnsafe(DAddr address, const void* src_pointer,
|
||||
size_t size) {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue