Refactor render commands to execute asynchronously.

This commit is contained in:
Skyth 2024-10-27 00:02:47 +03:00
parent 31f34a8669
commit 5676591618
6 changed files with 921 additions and 393 deletions

View file

@ -93,6 +93,7 @@ pkg_check_modules(tomlplusplus REQUIRED IMPORTED_TARGET tomlplusplus)
find_package(directx-dxc REQUIRED)
find_package(zstd CONFIG REQUIRED)
find_package(Stb REQUIRED)
find_package(unofficial-concurrentqueue REQUIRED)
file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/D3D12)
add_custom_command(TARGET UnleashedRecomp POST_BUILD
@ -122,6 +123,7 @@ target_link_libraries(UnleashedRecomp PRIVATE
xxHash::xxhash
PkgConfig::tomlplusplus
zstd::libzstd_static
unofficial::concurrentqueue::concurrentqueue
)
target_include_directories(UnleashedRecomp PRIVATE

View file

@ -60,6 +60,7 @@ namespace RT64 {
VK_EXT_SCALAR_BLOCK_LAYOUT_EXTENSION_NAME,
VK_EXT_ROBUSTNESS_2_EXTENSION_NAME,
VK_KHR_BUFFER_DEVICE_ADDRESS_EXTENSION_NAME,
VK_KHR_SAMPLER_MIRROR_CLAMP_TO_EDGE_EXTENSION_NAME,
# ifdef VULKAN_OBJECT_NAMES_ENABLED
VK_EXT_DEBUG_UTILS_EXTENSION_NAME
# endif

File diff suppressed because it is too large Load diff

View file

@ -31,9 +31,21 @@ struct GuestDevice
uint8_t padding27A0[0x68C];
be<uint32_t> vertexDeclaration;
uint8_t padding2E30[0x2FD0];
uint8_t padding2E30[0x338];
struct
{
be<float> x;
be<float> y;
be<float> width;
be<float> height;
be<float> minZ;
be<float> maxZ;
} viewport;
uint8_t padding3180[0x2C80];
};
static_assert(sizeof(GuestDevice) == 0x5E00);
enum class ResourceType
{
Texture,

View file

@ -20,6 +20,7 @@
#include <toml++/toml.hpp>
#include <zstd.h>
#include <stb_image.h>
#include <concurrentqueue/blockingconcurrentqueue.h>
#include "framework.h"
#include "mutex.h"

View file

@ -14,6 +14,7 @@
"pkgconf",
"tomlplusplus",
"zstd",
"stb"
"stb",
"concurrentqueue"
]
}