mirror of
https://github.com/boykopovar/AnyPS5.git
synced 2026-10-23 09:03:22 -05:00
An address-based build whose heap mirror the device refused, or one past APS5_HEAP_MIRROR_MIB, stopped the process inside acquireMirror. PPSA26344 hit it at 478 s with 6.8 GiB of heap mirrors beside the host imports. - a mirror that would go past the budget first sweeps the mirrors whose registered range is gone, before its allocation; if it still does not fit, the build throws "past the budget" - the mirror is allocated once: a refusal throws with the range, the Vulkan result and the mirror totals, so the draw or dispatch fails like any other allocation; nothing is registered for the refused range - the BDA resource tests run with a 4 MiB mirror budget and a mock memory limit: a mirror past the budget is made in the swept mirror's memory, and a refused one fails after a single allocation attempt
25 lines
844 B
C++
25 lines
844 B
C++
#ifndef CORE_LIBS_PRX_LIBSCEAGCDRIVER_TESTS_BDATESTS_HPP
|
|
#define CORE_LIBS_PRX_LIBSCEAGCDRIVER_TESTS_BDATESTS_HPP
|
|
|
|
#include "prx/libSceAgcDriver/Graphics/include/Context.hpp"
|
|
#include <functional>
|
|
#include <optional>
|
|
#include <span>
|
|
|
|
struct BdaTestAccess {
|
|
std::function<std::span<std::byte>(VkBuffer)> bytes;
|
|
std::function<VkDescriptorBufferInfo(std::uint32_t)> descriptor;
|
|
std::function<std::span<std::byte>(VkDeviceAddress)> addressBytes;
|
|
std::function<void(std::optional<VkDeviceSize>)> limitMemory;
|
|
std::function<std::uint64_t()> allocationAttempts;
|
|
};
|
|
|
|
void RunBdaResourceTests(const AgcDriver::Graphics::Context& context, const BdaTestAccess& access);
|
|
void RunGuestAllocationTests();
|
|
void RunGuestLeaseWaitTests();
|
|
void RunUnmappedGapTests();
|
|
void RunColorTargetLayoutTests();
|
|
void RunLiveStackAccessTests();
|
|
|
|
#endif
|