Fixing validation errors (needs a change in parallel-rdp WARNING)
This commit is contained in:
6
external/parallel-rdp/ParallelRDPWrapper.cpp
vendored
6
external/parallel-rdp/ParallelRDPWrapper.cpp
vendored
@@ -42,6 +42,12 @@ VkFormat GetVkFormat() {
|
|||||||
|
|
||||||
CommandBufferHandle requested_command_buffer;
|
CommandBufferHandle requested_command_buffer;
|
||||||
|
|
||||||
|
VkRenderPass GetVkRenderPass() {
|
||||||
|
return wsi->get_device().request_render_pass(
|
||||||
|
wsi->get_device().get_swapchain_render_pass(SwapchainRenderPass::ColorOnly), true
|
||||||
|
).get_render_pass();
|
||||||
|
}
|
||||||
|
|
||||||
VkCommandBuffer GetVkCommandBuffer() {
|
VkCommandBuffer GetVkCommandBuffer() {
|
||||||
requested_command_buffer = wsi->get_device().request_command_buffer();
|
requested_command_buffer = wsi->get_device().request_command_buffer();
|
||||||
return requested_command_buffer->get_command_buffer();
|
return requested_command_buffer->get_command_buffer();
|
||||||
|
|||||||
1
external/parallel-rdp/ParallelRDPWrapper.hpp
vendored
1
external/parallel-rdp/ParallelRDPWrapper.hpp
vendored
@@ -25,6 +25,7 @@ class SDLParallelRdpWindowInfo : public ParallelRdpWindowInfo {
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
VkRenderPass GetVkRenderPass();
|
||||||
VkQueue GetGraphicsQueue();
|
VkQueue GetGraphicsQueue();
|
||||||
VkInstance GetVkInstance();
|
VkInstance GetVkInstance();
|
||||||
VkPhysicalDevice GetVkPhysicalDevice();
|
VkPhysicalDevice GetVkPhysicalDevice();
|
||||||
|
|||||||
Submodule external/parallel-rdp/parallel-rdp-standalone updated: 428884deab...17919ebd7a
@@ -3,7 +3,7 @@ project(natsukashii)
|
|||||||
set(CMAKE_CXX_STANDARD 17)
|
set(CMAKE_CXX_STANDARD 17)
|
||||||
set(CMAKE_CXX_STANDARD_REQUIRED true)
|
set(CMAKE_CXX_STANDARD_REQUIRED true)
|
||||||
|
|
||||||
#add_compile_definitions(VULKAN_DEBUG)
|
add_compile_definitions(VULKAN_DEBUG)
|
||||||
file(COPY ${CMAKE_SOURCE_DIR}/../resources DESTINATION ${CMAKE_CURRENT_BINARY_DIR})
|
file(COPY ${CMAKE_SOURCE_DIR}/../resources DESTINATION ${CMAKE_CURRENT_BINARY_DIR})
|
||||||
|
|
||||||
add_subdirectory(n64)
|
add_subdirectory(n64)
|
||||||
|
|||||||
@@ -93,43 +93,6 @@ void Window::InitImgui() {
|
|||||||
check_vk_result(err);
|
check_vk_result(err);
|
||||||
}
|
}
|
||||||
|
|
||||||
VkRenderPass renderPass;
|
|
||||||
{
|
|
||||||
VkAttachmentDescription attachment = {};
|
|
||||||
attachment.format = GetVkFormat();
|
|
||||||
attachment.samples = VK_SAMPLE_COUNT_1_BIT;
|
|
||||||
attachment.loadOp = VK_ATTACHMENT_LOAD_OP_DONT_CARE;
|
|
||||||
attachment.storeOp = VK_ATTACHMENT_STORE_OP_STORE;
|
|
||||||
attachment.stencilLoadOp = VK_ATTACHMENT_LOAD_OP_DONT_CARE;
|
|
||||||
attachment.stencilStoreOp = VK_ATTACHMENT_STORE_OP_DONT_CARE;
|
|
||||||
attachment.initialLayout = VK_IMAGE_LAYOUT_UNDEFINED;
|
|
||||||
attachment.finalLayout = VK_IMAGE_LAYOUT_PRESENT_SRC_KHR;
|
|
||||||
VkAttachmentReference colorAttachment = {};
|
|
||||||
colorAttachment.attachment = 0;
|
|
||||||
colorAttachment.layout = VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL;
|
|
||||||
VkSubpassDescription subpass = {};
|
|
||||||
subpass.pipelineBindPoint = VK_PIPELINE_BIND_POINT_GRAPHICS;
|
|
||||||
subpass.colorAttachmentCount = 1;
|
|
||||||
subpass.pColorAttachments = &colorAttachment;
|
|
||||||
VkSubpassDependency dependency = {};
|
|
||||||
dependency.srcSubpass = VK_SUBPASS_EXTERNAL;
|
|
||||||
dependency.dstSubpass = 0;
|
|
||||||
dependency.srcStageMask = VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT;
|
|
||||||
dependency.dstStageMask = VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT;
|
|
||||||
dependency.srcAccessMask = 0;
|
|
||||||
dependency.dstAccessMask = VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT;
|
|
||||||
VkRenderPassCreateInfo info = {};
|
|
||||||
info.sType = VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO;
|
|
||||||
info.attachmentCount = 1;
|
|
||||||
info.pAttachments = &attachment;
|
|
||||||
info.subpassCount = 1;
|
|
||||||
info.pSubpasses = &subpass;
|
|
||||||
info.dependencyCount = 1;
|
|
||||||
info.pDependencies = &dependency;
|
|
||||||
err = vkCreateRenderPass(device, &info, allocator, &renderPass);
|
|
||||||
check_vk_result(err);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Setup Platform/Renderer backends
|
// Setup Platform/Renderer backends
|
||||||
ImGui_ImplSDL2_InitForVulkan(window);
|
ImGui_ImplSDL2_InitForVulkan(window);
|
||||||
ImGui_ImplVulkan_InitInfo initInfo = {};
|
ImGui_ImplVulkan_InitInfo initInfo = {};
|
||||||
@@ -145,7 +108,7 @@ void Window::InitImgui() {
|
|||||||
initInfo.ImageCount = 2;
|
initInfo.ImageCount = 2;
|
||||||
initInfo.MSAASamples = VK_SAMPLE_COUNT_1_BIT;
|
initInfo.MSAASamples = VK_SAMPLE_COUNT_1_BIT;
|
||||||
initInfo.CheckVkResultFn = check_vk_result;
|
initInfo.CheckVkResultFn = check_vk_result;
|
||||||
ImGui_ImplVulkan_Init(&initInfo, renderPass);
|
ImGui_ImplVulkan_Init(&initInfo, GetVkRenderPass());
|
||||||
|
|
||||||
// Load Fonts
|
// Load Fonts
|
||||||
// - If no fonts are loaded, dear imgui will use the default font. You can also load multiple fonts and use ImGui::PushFont()/PopFont() to select them.
|
// - If no fonts are loaded, dear imgui will use the default font. You can also load multiple fonts and use ImGui::PushFont()/PopFont() to select them.
|
||||||
@@ -177,9 +140,6 @@ Window::~Window() {
|
|||||||
ImGui_ImplVulkan_Shutdown();
|
ImGui_ImplVulkan_Shutdown();
|
||||||
ImGui_ImplSDL2_Shutdown();
|
ImGui_ImplSDL2_Shutdown();
|
||||||
ImGui::DestroyContext();
|
ImGui::DestroyContext();
|
||||||
vkDestroyDescriptorPool(device, descriptorPool, nullptr);
|
|
||||||
vkDestroyDevice(device, nullptr);
|
|
||||||
vkDestroyInstance(instance, nullptr);
|
|
||||||
SDL_DestroyWindow(window);
|
SDL_DestroyWindow(window);
|
||||||
SDL_DestroyWindow(g_Window);
|
SDL_DestroyWindow(g_Window);
|
||||||
SDL_Quit();
|
SDL_Quit();
|
||||||
|
|||||||
21
src/util.hpp
21
src/util.hpp
@@ -51,25 +51,6 @@ constexpr void logdebug(const std::string& fmt, Args... args) {
|
|||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
#define TIMER(name) \
|
|
||||||
struct Timer##name { \
|
|
||||||
util::TimePoint start, end; \
|
|
||||||
Timer##name() {} \
|
|
||||||
~Timer##name() {} \
|
|
||||||
void Start() { \
|
|
||||||
start = util::SteadyClock::now(); \
|
|
||||||
} \
|
|
||||||
\
|
|
||||||
void End() { \
|
|
||||||
end = util::SteadyClock::now(); \
|
|
||||||
} \
|
|
||||||
\
|
|
||||||
void PrintDuration() { \
|
|
||||||
auto diff = end - start; \
|
|
||||||
util::info(#name + std::string(" took {:.3f}ms to run\n"), diff.count()); \
|
|
||||||
} \
|
|
||||||
}
|
|
||||||
|
|
||||||
template <typename T, bool HToBE = false>
|
template <typename T, bool HToBE = false>
|
||||||
[[maybe_unused]] auto GetSwapFunc(T num) -> T {
|
[[maybe_unused]] auto GetSwapFunc(T num) -> T {
|
||||||
static_assert(sizeof(T) == 2 || sizeof(T) == 4 || sizeof(T) == 8, "GetSwapFunc used with invalid size!");
|
static_assert(sizeof(T) == 2 || sizeof(T) == 4 || sizeof(T) == 8, "GetSwapFunc used with invalid size!");
|
||||||
@@ -212,7 +193,7 @@ inline auto ReadFileBinary(const std::string& path, u32** buf) {
|
|||||||
std::ifstream file(path, std::ios::binary);
|
std::ifstream file(path, std::ios::binary);
|
||||||
file.unsetf(std::ios::skipws);
|
file.unsetf(std::ios::skipws);
|
||||||
if(!file.is_open()) {
|
if(!file.is_open()) {
|
||||||
util::panic("Could not load file!\n");
|
panic("Could not load file!\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
file.seekg(0, std::ios::end);
|
file.seekg(0, std::ios::end);
|
||||||
|
|||||||
Reference in New Issue
Block a user