AnyPS5/core/libs/prx/libSceAgcDriver/tests/GraphicsTests.hpp

40 lines
1.2 KiB
C++

#ifndef CORE_LIBS_PRX_LIBSCEAGCDRIVER_TESTS_GRAPHICSTESTS_HPP
#define CORE_LIBS_PRX_LIBSCEAGCDRIVER_TESTS_GRAPHICSTESTS_HPP
#include "prx/libSceAgcDriver/Graphics/include/Context.hpp"
#include <array>
#include <cstddef>
#include <cstdint>
#include <functional>
#include <vector>
struct DetilerCapture {
std::uint32_t groupsX;
std::uint32_t groupsY;
std::uint32_t groupsZ;
std::vector<std::byte> pushConstants;
VkBuffer sourceBuffer;
VkDeviceSize sourceOffset;
VkDeviceSize sourceRange;
VkBuffer destinationBuffer;
VkDeviceSize destinationOffset;
VkDeviceSize destinationRange;
};
struct TextureDetilerTestAccess {
std::function<VkBuffer(std::uint64_t)> makeBuffer;
std::function<std::vector<std::byte>&(VkBuffer)> bytes;
std::function<DetilerCapture()> lastDispatch;
std::function<std::uint32_t()> pipelineCount;
std::function<std::array<std::uint32_t, 3>()> lastSpecialization;
};
void RunTextureFormatTests();
void RunTextureTilingTests();
void RunGuestTextureResourceTests();
void RunDepthSurfaceReuseTests();
void RunGuestSamplerResourceTests();
void RunTextureDetilerTests(const AgcDriver::Graphics::Context& context, const TextureDetilerTestAccess& access);
#endif