From e48f56135a63ebc983cbdd53c75d0980506a895d Mon Sep 17 00:00:00 2001 From: ouczbs Date: Fri, 24 May 2024 22:57:42 +0800 Subject: [PATCH] =?UTF-8?q?=E8=BF=98=E5=8E=9F=20idk=20=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../asset_compiler/asset_compiler.vcxproj | 2 +- src/engine/default_lut.tga | Bin 0 -> 12306 bytes src/engine/game/game.vcxproj | 2 +- src/engine/idk.ruleset | 8 ++++ src/engine/idk/IDK.vcxproj | 2 +- src/engine/launcher/launcher.vcxproj | 2 +- src/engine/launcher/launcher.vcxproj.user | 4 ++ src/engine/opengl/idk_opengl.vcxproj | 2 +- src/engine/opengl/idk_opengl.vcxproj.user | 4 ++ src/engine/vkn/BufferHelpers.h | 20 ++++---- src/engine/vkn/ColorPickRenderer.cpp | 8 ++-- src/engine/vkn/CubemapRenderer.cpp | 12 ++--- src/engine/vkn/DeferredPass.cpp | 10 ++-- src/engine/vkn/DescriptorPoolsManager.cpp | 8 ++-- src/engine/vkn/DescriptorUpdateData.cpp | 2 +- src/engine/vkn/FrameRenderer.cpp | 44 +++++++++--------- src/engine/vkn/MemoryAllocator.cpp | 4 +- src/engine/vkn/PipelineThingy.cpp | 2 +- src/engine/vkn/RenderTask.cpp | 2 +- src/engine/vkn/VknCubeMapLoader.cpp | 26 +++++------ src/engine/vkn/VknFontAtlasLoader.cpp | 26 +++++------ src/engine/vkn/VknTextureLoader.cpp | 16 +++---- src/engine/vkn/VulkanResourceManager.h | 8 ++-- src/engine/vkn/VulkanState.cpp | 12 ++--- src/engine/vkn/VulkanState.h | 2 +- src/engine/vkn/VulkanView.cpp | 2 +- src/engine/vkn/VulkanView.h | 2 +- src/engine/vkn/VulkanWin32GraphicsSystem.cpp | 14 +++--- src/engine/vkn/vector_buffer.cpp | 6 +-- 29 files changed, 134 insertions(+), 118 deletions(-) create mode 100644 src/engine/default_lut.tga create mode 100644 src/engine/idk.ruleset create mode 100644 src/engine/launcher/launcher.vcxproj.user create mode 100644 src/engine/opengl/idk_opengl.vcxproj.user diff --git a/src/engine/asset_compiler/asset_compiler.vcxproj b/src/engine/asset_compiler/asset_compiler.vcxproj index f47657c..d5cb6e9 100644 --- a/src/engine/asset_compiler/asset_compiler.vcxproj +++ b/src/engine/asset_compiler/asset_compiler.vcxproj @@ -190,7 +190,7 @@ if %errorlevel% NEQ 0 exit /b %errorlevel% Console true - assimp-vc142-mt.lib;coreD.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;freetype.lib;%(AdditionalDependencies) + assimp-vc142-mt.lib;coreD.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) /ignore:4099 %(AdditionalOptions) diff --git a/src/engine/default_lut.tga b/src/engine/default_lut.tga new file mode 100644 index 0000000000000000000000000000000000000000..6a88c76785eea51189b06a40d5e6a329821e4ed8 GIT binary patch literal 12306 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 vwtq15i!cAq_fN Windows true - kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies);coreD.lib;win32D.lib;vulkanD.lib;idk_openglD.lib;editorD.lib;glslangd.lib + kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies);coreD.lib;win32D.lib;vulkanD.lib;idk_openglD.lib;editorD.lib /ignore:4006 /ignore:4075 /ignore:4099 %(AdditionalOptions) diff --git a/src/engine/idk.ruleset b/src/engine/idk.ruleset new file mode 100644 index 0000000..b02ae7f --- /dev/null +++ b/src/engine/idk.ruleset @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/src/engine/idk/IDK.vcxproj b/src/engine/idk/IDK.vcxproj index 3670575..be558c4 100644 --- a/src/engine/idk/IDK.vcxproj +++ b/src/engine/idk/IDK.vcxproj @@ -819,7 +819,7 @@ true _ENABLE_EXTENDED_ALIGNED_STORAGE;_DEBUG;_WINDOWS;%(PreprocessorDefinitions) true - stdcpp20 + stdcpplatest true 4201; 4505 $(ProjectDir);$(SolutionDir)dep\include\;%VULKAN_SDK%\Include\ diff --git a/src/engine/launcher/launcher.vcxproj b/src/engine/launcher/launcher.vcxproj index f1f537f..1b1dd23 100644 --- a/src/engine/launcher/launcher.vcxproj +++ b/src/engine/launcher/launcher.vcxproj @@ -205,7 +205,7 @@ if %errorlevel% NEQ 0 exit /b %errorlevel% Console - kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;SPIRV-Toolsd.lib;OGLCompilerd.lib;SPIRVd.lib;OSDependentd.lib;glslangd.lib;shaderc_utild.lib;shadercd.lib;vulkan-1.lib;win32D.lib;dspirv-cross-reflect.lib;dspirv-cross-glsl.lib;dspirv-cross-cpp.lib;dspirv-cross-core.lib;%(AdditionalDependencies) + kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) /ignore:4099 %(AdditionalOptions) diff --git a/src/engine/launcher/launcher.vcxproj.user b/src/engine/launcher/launcher.vcxproj.user new file mode 100644 index 0000000..88a5509 --- /dev/null +++ b/src/engine/launcher/launcher.vcxproj.user @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/engine/opengl/idk_opengl.vcxproj b/src/engine/opengl/idk_opengl.vcxproj index 77ae052..3fb0163 100644 --- a/src/engine/opengl/idk_opengl.vcxproj +++ b/src/engine/opengl/idk_opengl.vcxproj @@ -220,7 +220,7 @@ _ENABLE_EXTENDED_ALIGNED_STORAGE;_DEBUG;_LIB;%(PreprocessorDefinitions) true pch.h - $(SolutionDir)projects\idk\;$(SolutionDir)projects\;$(SolutionDir)dep\include\;$(SolutionDir)projects\win32\;$(SolutionDir)projects\editorstatic\ + $(SolutionDir)projects\idk\;$(SolutionDir)projects\;$(SolutionDir)dep\include\;$(SolutionDir)projects\win32\ stdcpplatest false /bigobj %(AdditionalOptions) diff --git a/src/engine/opengl/idk_opengl.vcxproj.user b/src/engine/opengl/idk_opengl.vcxproj.user new file mode 100644 index 0000000..88a5509 --- /dev/null +++ b/src/engine/opengl/idk_opengl.vcxproj.user @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/engine/vkn/BufferHelpers.h b/src/engine/vkn/BufferHelpers.h index 057cdab..6c497fe 100644 --- a/src/engine/vkn/BufferHelpers.h +++ b/src/engine/vkn/BufferHelpers.h @@ -23,23 +23,23 @@ namespace idk::vkn::hlp std::optional signal = {} ); - template + template vk::UniqueBuffer CreateBuffer(vk::Device device, vk::DeviceSize size, vk::BufferUsageFlags usage, Dispatcher const& dispatcher = {}); - template + template vk::UniqueBuffer CreateVertexBuffer(vk::Device device, T* const begin, T* const end, const Dispatcher& dispatcher = {}); - template + template vk::UniqueBuffer CreateVertexBuffer(vk::Device device, std::vector const& vertices, const Dispatcher& dispatcher = {}); - template + template vk::UniqueDeviceMemory AllocateBuffer( vk::PhysicalDevice pdevice, vk::Device device, vk::Buffer const& buffer, vk::MemoryPropertyFlags memory_flags, Dispatcher const& dispatcher = {}); - template + template void BindBufferMemory(vk::Device device, vk::Buffer buffer, vk::DeviceMemory memory, uint32_t offset, Dispatcher const& dispatcher = {}); - template + template std::pair CreateAllocBindBuffer( vk::PhysicalDevice pdevice, vk::Device device, vk::DeviceSize buffer_size, @@ -49,7 +49,7 @@ namespace idk::vkn::hlp const Dispatcher& dispatcher = {} ); - template + template std::pair CreateAllocBindBuffer( vk::PhysicalDevice pdevice, vk::Device device, vk::DeviceSize buffer_size, @@ -58,17 +58,17 @@ namespace idk::vkn::hlp const Dispatcher& dispatcher = {} ); - template + template std::pair CreateAllocBindVertexBuffer( vk::PhysicalDevice pdevice, vk::Device device, T const* vertices, T const* vertices_end, const Dispatcher& dispatcher = {} ); - template + template std::pair CreateAllocBindVertexBuffer( vk::PhysicalDevice pdevice, vk::Device device, std::vector const& vertices, const Dispatcher& dispatcher = {} ); - template + template void MapMemory(vk::Device device, vk::DeviceMemory memory, vk::DeviceSize dest_offset, T* src_start, vk::DeviceSize trf_size, Dispatcher const& dispatcher = {}); void CopyBuffer(vk::CommandBuffer cmd_buffer, vk::Queue queue, vk::Buffer srcBuffer, vk::Buffer dstBuffer, vk::DeviceSize size, std::optional fence = {}, bool wait_for_idle=true); diff --git a/src/engine/vkn/ColorPickRenderer.cpp b/src/engine/vkn/ColorPickRenderer.cpp index 38a18ab..42d0241 100644 --- a/src/engine/vkn/ColorPickRenderer.cpp +++ b/src/engine/vkn/ColorPickRenderer.cpp @@ -469,17 +469,17 @@ namespace idk::vkn { auto opt = pipeline.GetBinding(location); if (opt) - cmd_buffer.bindVertexBuffers(*opt, attrib.buffer, vk::DeviceSize{ attrib.offset }, vk::DispatchLoaderStatic{}); + cmd_buffer.bindVertexBuffers(*opt, attrib.buffer, vk::DeviceSize{ attrib.offset }, vk::DispatchLoaderDefault{}); } auto& oidx = p_ro.index_buffer; if (oidx) { - cmd_buffer.bindIndexBuffer(oidx->buffer, oidx->offset, oidx->index_type, vk::DispatchLoaderStatic{}); - cmd_buffer.drawIndexed(s_cast(p_ro.num_vertices), s_cast(p_ro.num_instances), 0, 0, s_cast(p_ro.inst_offset), vk::DispatchLoaderStatic{}); + cmd_buffer.bindIndexBuffer(oidx->buffer, oidx->offset, oidx->index_type, vk::DispatchLoaderDefault{}); + cmd_buffer.drawIndexed(s_cast(p_ro.num_vertices), s_cast(p_ro.num_instances), 0, 0, s_cast(p_ro.inst_offset), vk::DispatchLoaderDefault{}); } else { - cmd_buffer.draw(s_cast(p_ro.num_vertices), s_cast(p_ro.num_instances), 0, s_cast(p_ro.inst_offset), vk::DispatchLoaderStatic{}); + cmd_buffer.draw(s_cast(p_ro.num_vertices), s_cast(p_ro.num_instances), 0, s_cast(p_ro.inst_offset), vk::DispatchLoaderDefault{}); } } diff --git a/src/engine/vkn/CubemapRenderer.cpp b/src/engine/vkn/CubemapRenderer.cpp index da299f7..2d80ab7 100644 --- a/src/engine/vkn/CubemapRenderer.cpp +++ b/src/engine/vkn/CubemapRenderer.cpp @@ -328,14 +328,14 @@ namespace idk::vkn auto& attrib_buffer = mesh.Get(attrib); auto binding = Pipeline().GetBinding(location); if (binding) - cmd_buffer.bindVertexBuffers(*binding, *attrib_buffer.buffer(), vk::DeviceSize{ attrib_buffer.offset }, vk::DispatchLoaderStatic{}); + cmd_buffer.bindVertexBuffers(*binding, *attrib_buffer.buffer(), vk::DeviceSize{ attrib_buffer.offset }, vk::DispatchLoaderDefault{}); } auto& oidx = mesh.GetIndexBuffer(); if (oidx) { - cmd_buffer.bindIndexBuffer(*(*oidx).buffer(), 0, mesh.IndexType(), vk::DispatchLoaderStatic{}); - cmd_buffer.drawIndexed(mesh.IndexCount(), 1, 0, 0, 0, vk::DispatchLoaderStatic{}); + cmd_buffer.bindIndexBuffer(*(*oidx).buffer(), 0, mesh.IndexType(), vk::DispatchLoaderDefault{}); + cmd_buffer.drawIndexed(mesh.IndexCount(), 1, 0, 0, 0, vk::DispatchLoaderDefault{}); } @@ -392,14 +392,14 @@ namespace idk::vkn auto& attrib_buffer = mesh.Get(attrib); auto binding = Pipeline().GetBinding(location); if (binding) - cmd_buffer.bindVertexBuffers(*binding, *attrib_buffer.buffer(), vk::DeviceSize{ attrib_buffer.offset }, vk::DispatchLoaderStatic{}); + cmd_buffer.bindVertexBuffers(*binding, *attrib_buffer.buffer(), vk::DeviceSize{ attrib_buffer.offset }, vk::DispatchLoaderDefault{}); } auto& oidx = mesh.GetIndexBuffer(); if (oidx) { - cmd_buffer.bindIndexBuffer(*(*oidx).buffer(), 0, mesh.IndexType(), vk::DispatchLoaderStatic{}); - cmd_buffer.drawIndexed(mesh.IndexCount(), 1, 0, 0, 0, vk::DispatchLoaderStatic{}); + cmd_buffer.bindIndexBuffer(*(*oidx).buffer(), 0, mesh.IndexType(), vk::DispatchLoaderDefault{}); + cmd_buffer.drawIndexed(mesh.IndexCount(), 1, 0, 0, 0, vk::DispatchLoaderDefault{}); } diff --git a/src/engine/vkn/DeferredPass.cpp b/src/engine/vkn/DeferredPass.cpp index 72d15ed..219eb92 100644 --- a/src/engine/vkn/DeferredPass.cpp +++ b/src/engine/vkn/DeferredPass.cpp @@ -129,7 +129,7 @@ namespace idk::vkn 0,1, } }; - cmd_buffer.pipelineBarrier(vk::PipelineStageFlagBits::eColorAttachmentOutput, vk::PipelineStageFlagBits::eTransfer, vk::DependencyFlagBits::eByRegion, nullptr, nullptr, barriers, vk::DispatchLoaderStatic{}); + cmd_buffer.pipelineBarrier(vk::PipelineStageFlagBits::eColorAttachmentOutput, vk::PipelineStageFlagBits::eTransfer, vk::DependencyFlagBits::eByRegion, nullptr, nullptr, barriers, vk::DispatchLoaderDefault{}); } @@ -683,19 +683,19 @@ namespace idk::vkn for (auto&& [attrib, location] : renderer_req.mesh_requirements) { auto& attrib_buffer = mesh.Get(attrib); - cmd_buffer.bindVertexBuffers(*pipeline.GetBinding(location), *attrib_buffer.buffer(), vk::DeviceSize{ attrib_buffer.offset }, vk::DispatchLoaderStatic{}); + cmd_buffer.bindVertexBuffers(*pipeline.GetBinding(location), *attrib_buffer.buffer(), vk::DeviceSize{ attrib_buffer.offset }, vk::DispatchLoaderDefault{}); } if (state&&is_mesh_renderer) { uint32_t obj_trf_loc = 4; - cmd_buffer.bindVertexBuffers(*pipeline.GetBinding(obj_trf_loc), state->shared_gfx_state->inst_mesh_render_buffer.buffer(), { 0 }, vk::DispatchLoaderStatic{}); + cmd_buffer.bindVertexBuffers(*pipeline.GetBinding(obj_trf_loc), state->shared_gfx_state->inst_mesh_render_buffer.buffer(), { 0 }, vk::DispatchLoaderDefault{}); } auto& oidx = mesh.GetIndexBuffer(); if (oidx) { - cmd_buffer.bindIndexBuffer(*(*oidx).buffer(), 0, mesh.IndexType(), vk::DispatchLoaderStatic{}); - cmd_buffer.drawIndexed(mesh.IndexCount(), static_cast(p_ro.num_instances), 0, 0, static_cast(p_ro.inst_offset), vk::DispatchLoaderStatic{}); + cmd_buffer.bindIndexBuffer(*(*oidx).buffer(), 0, mesh.IndexType(), vk::DispatchLoaderDefault{}); + cmd_buffer.drawIndexed(mesh.IndexCount(), static_cast(p_ro.num_instances), 0, 0, static_cast(p_ro.inst_offset), vk::DispatchLoaderDefault{}); } } return rendered; diff --git a/src/engine/vkn/DescriptorPoolsManager.cpp b/src/engine/vkn/DescriptorPoolsManager.cpp index 3ec25f5..8b5c708 100644 --- a/src/engine/vkn/DescriptorPoolsManager.cpp +++ b/src/engine/vkn/DescriptorPoolsManager.cpp @@ -20,7 +20,7 @@ namespace idk::vkn ,hlp::arr_count(pool_size) ,std::data(pool_size) }; - pool = device.createDescriptorPoolUnique(create_info, nullptr, vk::DispatchLoaderStatic{}); + pool = device.createDescriptorPoolUnique(create_info, nullptr, vk::DispatchLoaderDefault{}); } vk::DescriptorPool DescriptorPoolsManager::Add(uint32_t num_ds,vk::DescriptorType type) { @@ -47,13 +47,13 @@ namespace idk::vkn void DescriptorPoolsManager::ResetManager(Manager& manager) { vk::Device d = *view.Device(); - d.resetDescriptorPool(*manager.pool, vk::DescriptorPoolResetFlags{}, vk::DispatchLoaderStatic{}); + d.resetDescriptorPool(*manager.pool, vk::DescriptorPoolResetFlags{}, vk::DispatchLoaderDefault{}); manager.size = 0; } void DescriptorPoolsManager::ResetManager(Manager2& manager) { vk::Device d = *view.Device(); - d.resetDescriptorPool(*manager.pool, vk::DescriptorPoolResetFlags{}, vk::DispatchLoaderStatic{}); + d.resetDescriptorPool(*manager.pool, vk::DescriptorPoolResetFlags{}, vk::DispatchLoaderDefault{}); for (auto& cap : manager.cap) { cap.size = 0; @@ -113,7 +113,7 @@ namespace idk::vkn ,total_types//hlp::arr_count(pool_size) ,std::data(pool_size) }; - pool = device.createDescriptorPoolUnique(create_info, nullptr, vk::DispatchLoaderStatic{}); + pool = device.createDescriptorPoolUnique(create_info, nullptr, vk::DispatchLoaderDefault{}); } } \ No newline at end of file diff --git a/src/engine/vkn/DescriptorUpdateData.cpp b/src/engine/vkn/DescriptorUpdateData.cpp index 16ec284..b0eeabc 100644 --- a/src/engine/vkn/DescriptorUpdateData.cpp +++ b/src/engine/vkn/DescriptorUpdateData.cpp @@ -29,7 +29,7 @@ void DescriptorUpdateData::SendUpdates() { auto& device = *View().Device(); ConvertBufferIdxToPointer(); - device.updateDescriptorSets(descriptorWrite, nullptr, vk::DispatchLoaderStatic{}); + device.updateDescriptorSets(descriptorWrite, nullptr, vk::DispatchLoaderDefault{}); } void DescriptorUpdateData::Reset() diff --git a/src/engine/vkn/FrameRenderer.cpp b/src/engine/vkn/FrameRenderer.cpp index 736b165..c1f4313 100644 --- a/src/engine/vkn/FrameRenderer.cpp +++ b/src/engine/vkn/FrameRenderer.cpp @@ -445,9 +445,9 @@ namespace idk::vkn _cmd_pool = cmd_pool; auto device = *View().Device(); - auto pri_buffers = device.allocateCommandBuffersUnique(vk::CommandBufferAllocateInfo{ cmd_pool,vk::CommandBufferLevel::ePrimary, num_fo }, vk::DispatchLoaderStatic{}); + auto pri_buffers = device.allocateCommandBuffersUnique(vk::CommandBufferAllocateInfo{ cmd_pool,vk::CommandBufferLevel::ePrimary, num_fo }, vk::DispatchLoaderDefault{}); _pri_buffer = std::move(pri_buffers[0]); - auto t_buffers = device.allocateCommandBuffersUnique(vk::CommandBufferAllocateInfo{ cmd_pool,vk::CommandBufferLevel::eSecondary, num_fo }, vk::DispatchLoaderStatic{}); + auto t_buffers = device.allocateCommandBuffersUnique(vk::CommandBufferAllocateInfo{ cmd_pool,vk::CommandBufferLevel::eSecondary, num_fo }, vk::DispatchLoaderDefault{}); { _transition_buffer = std::move(t_buffers[0]); } @@ -559,7 +559,7 @@ namespace idk::vkn }; auto queue = View().GraphicsQueue(); - queue.submit(submit_info, vk::Fence{}, vk::DispatchLoaderStatic{}); + queue.submit(submit_info, vk::Fence{}, vk::DispatchLoaderDefault{}); } { @@ -584,7 +584,7 @@ namespace idk::vkn auto& rs = _pre_states[curr_state]; { - auto dispatcher = vk::DispatchLoaderStatic{}; + auto dispatcher = vk::DispatchLoaderDefault{}; vk::CommandBuffer cmd_buffer = rs.CommandBuffer(); vk::CommandBufferBeginInfo begin_info{ vk::CommandBufferUsageFlagBits::eOneTimeSubmit,nullptr }; cmd_buffer.begin(begin_info, dispatcher); @@ -659,7 +659,7 @@ namespace idk::vkn }; auto queue = View().GraphicsQueue(); - queue.submit(submit_info, vk::Fence{}, vk::DispatchLoaderStatic{}); + queue.submit(submit_info, vk::Fence{}, vk::DispatchLoaderDefault{}); dbg::EndLabel(queue); } VulkanView& View(); @@ -758,17 +758,17 @@ namespace idk::vkn for (auto&& [location, attrib] : p_ro.attrib_buffers) { - cmd_buffer.bindVertexBuffers(*pipeline.GetBinding(location), attrib.buffer, vk::DeviceSize{ attrib.offset }, vk::DispatchLoaderStatic{}); + cmd_buffer.bindVertexBuffers(*pipeline.GetBinding(location), attrib.buffer, vk::DeviceSize{ attrib.offset }, vk::DispatchLoaderDefault{}); } auto& oidx = p_ro.index_buffer; if (oidx) { - cmd_buffer.bindIndexBuffer(oidx->buffer, 0, oidx->index_type, vk::DispatchLoaderStatic{}); - cmd_buffer.drawIndexed(s_cast(p_ro.num_vertices), static_cast(p_ro.num_instances), 0, 0, static_cast(p_ro.inst_offset), vk::DispatchLoaderStatic{}); + cmd_buffer.bindIndexBuffer(oidx->buffer, 0, oidx->index_type, vk::DispatchLoaderDefault{}); + cmd_buffer.drawIndexed(s_cast(p_ro.num_vertices), static_cast(p_ro.num_instances), 0, 0, static_cast(p_ro.inst_offset), vk::DispatchLoaderDefault{}); } else { - cmd_buffer.draw(s_cast(p_ro.num_vertices), s_cast(p_ro.num_instances), 0, s_cast(p_ro.inst_offset), vk::DispatchLoaderStatic{}); + cmd_buffer.draw(s_cast(p_ro.num_vertices), s_cast(p_ro.num_instances), 0, s_cast(p_ro.inst_offset), vk::DispatchLoaderDefault{}); } } } @@ -783,7 +783,7 @@ namespace idk::vkn { auto& rt = rr.as(); //auto& swapchain = view.Swapchain(); - auto dispatcher = vk::DispatchLoaderStatic{}; + auto dispatcher = vk::DispatchLoaderDefault{}; vk::CommandBuffer cmd_buffer = rs.CommandBuffer(); vk::CommandBufferBeginInfo begin_info{ vk::CommandBufferUsageFlagBits::eOneTimeSubmit,nullptr }; GraphicsStateInterface gsi = { state }; @@ -920,7 +920,7 @@ namespace idk::vkn GetGfxTimeLog().end();//Misc GetGfxTimeLog().end();//Render Graph } - pri_buffer->reset({}, vk::DispatchLoaderStatic{}); + pri_buffer->reset({}, vk::DispatchLoaderDefault{}); vector buffers{}; for (auto& state : curr_frame._states) { @@ -928,9 +928,9 @@ namespace idk::vkn buffers.emplace_back(state.CommandBuffer()); } vk::CommandBufferBeginInfo begin_info{ vk::CommandBufferUsageFlagBits::eOneTimeSubmit }; - pri_buffer->begin(begin_info, vk::DispatchLoaderStatic{}); + pri_buffer->begin(begin_info, vk::DispatchLoaderDefault{}); //if(buffers.size()) - // pri_buffer->executeCommands(buffers, vk::DispatchLoaderStatic{}); + // pri_buffer->executeCommands(buffers, vk::DispatchLoaderDefault{}); vk::CommandBufferInheritanceInfo iinfo { }; @@ -954,11 +954,11 @@ namespace idk::vkn presentToClearBarrier.image = swapchain.m_graphics.Images()[swapchain.curr_index]; presentToClearBarrier.subresourceRange = subResourceRange; begin_info.pInheritanceInfo = &iinfo; - transition_buffer->begin(begin_info, vk::DispatchLoaderStatic{}); - transition_buffer->pipelineBarrier(vk::PipelineStageFlagBits::eTransfer, vk::PipelineStageFlagBits::eTransfer, vk::DependencyFlags{}, nullptr, nullptr, presentToClearBarrier, vk::DispatchLoaderStatic{}); + transition_buffer->begin(begin_info, vk::DispatchLoaderDefault{}); + transition_buffer->pipelineBarrier(vk::PipelineStageFlagBits::eTransfer, vk::PipelineStageFlagBits::eTransfer, vk::DependencyFlags{}, nullptr, nullptr, presentToClearBarrier, vk::DispatchLoaderDefault{}); transition_buffer->end(); //hlp::TransitionImageLayout(*transition_buffer, queue, swapchain.images[swapchain.curr_index], vk::Format::eUndefined, vk::ImageLayout::eUndefined, vk::ImageLayout::ePresentSrcKHR,&iinfo); - pri_buffer->executeCommands(*transition_buffer, vk::DispatchLoaderStatic{}); + pri_buffer->executeCommands(*transition_buffer, vk::DispatchLoaderDefault{}); } pri_buffer->end(); @@ -993,9 +993,9 @@ namespace idk::vkn }; - View().Device()->resetFences(1, &inflight_fence, vk::DispatchLoaderStatic{}); + View().Device()->resetFences(1, &inflight_fence, vk::DispatchLoaderDefault{}); dbg::BeginLabel(queue, "Render GraphicsStates", color{ 0.3f,0.0f,0.3f }); - queue.submit(submit_info, inflight_fence, vk::DispatchLoaderStatic{}); + queue.submit(submit_info, inflight_fence, vk::DispatchLoaderDefault{}); dbg::EndLabel(queue); auto copy = View().Swapchain().m_graphics.Images(); copy[View().vulkan().rv ]= RscHandle()->GetColorBuffer().as().Image(); @@ -1077,7 +1077,7 @@ namespace idk::vkn }; auto queue = View().GraphicsQueue(); - queue.submit(submit_info, vk::Fence{}, vk::DispatchLoaderStatic{}); + queue.submit(submit_info, vk::Fence{}, vk::DispatchLoaderDefault{}); } @@ -1127,7 +1127,7 @@ namespace idk::vkn }; auto queue = View().GraphicsQueue(); - queue.submit(submit_info, vk::Fence{}, vk::DispatchLoaderStatic{}); + queue.submit(submit_info, vk::Fence{}, vk::DispatchLoaderDefault{}); } PresentationSignals& FrameRenderer::GetMainSignal() { @@ -1142,7 +1142,7 @@ namespace idk::vkn for (auto i = diff; i-- > 0;) { auto cmd_pool = View().vulkan().CreateGfxCommandPool(); - auto&& buffers = device.allocateCommandBuffersUnique(vk::CommandBufferAllocateInfo{ *cmd_pool,vk::CommandBufferLevel::ePrimary, 1}, vk::DispatchLoaderStatic{}); + auto&& buffers = device.allocateCommandBuffersUnique(vk::CommandBufferAllocateInfo{ *cmd_pool,vk::CommandBufferLevel::ePrimary, 1}, vk::DispatchLoaderDefault{}); auto& buffer = buffers[0]; states.emplace_back(RenderStateV2{std::move(cmd_pool), std::move(buffer),UboManager{View()},PresentationSignals{},DescriptorsManager{View()} }).signal.Init(View()); //_state_cmd_buffers.emplace_back(std::move(buffer)); @@ -1154,7 +1154,7 @@ namespace idk::vkn void FrameRenderer::RenderDebugStuff(const GraphicsState& , RenderStateV2& , rect ) { #if 0 - auto dispatcher = vk::DispatchLoaderStatic{}; + auto dispatcher = vk::DispatchLoaderDefault{}; vk::CommandBuffer cmd_buffer = rs.CommandBuffer(); //TODO: figure out inheritance pipeline inheritance and inherit from dbg_pipeline for various viewport sizes //auto& pipelines = state.dbg_pipeline; diff --git a/src/engine/vkn/MemoryAllocator.cpp b/src/engine/vkn/MemoryAllocator.cpp index a40797a..ecf0f01 100644 --- a/src/engine/vkn/MemoryAllocator.cpp +++ b/src/engine/vkn/MemoryAllocator.cpp @@ -111,7 +111,7 @@ namespace idk::vkn::hlp } MemoryAllocator::UniqueAlloc MemoryAllocator::Allocate(vk::PhysicalDevice pd, vk::Device d, vk::Buffer& buffer, vk::MemoryPropertyFlags prop) { - auto mem_req = d.getBufferMemoryRequirements(buffer, vk::DispatchLoaderStatic{}); + auto mem_req = d.getBufferMemoryRequirements(buffer, vk::DispatchLoaderDefault{}); auto mem_type = hlp::findMemoryType(pd, mem_req.memoryTypeBits, prop); return Allocate(d, mem_type, mem_req); } @@ -188,7 +188,7 @@ namespace idk::vkn::hlp memories.emplace_back(device.allocateMemoryUnique( vk::MemoryAllocateInfo{ Track(sz),type - }, nullptr, vk::DispatchLoaderStatic{} + }, nullptr, vk::DispatchLoaderDefault{} ), sz); return memories.back(); diff --git a/src/engine/vkn/PipelineThingy.cpp b/src/engine/vkn/PipelineThingy.cpp index f90b16c..6575dcd 100644 --- a/src/engine/vkn/PipelineThingy.cpp +++ b/src/engine/vkn/PipelineThingy.cpp @@ -59,7 +59,7 @@ namespace idk::vkn std::visit(updater, binding.ubuffer); } CondenseDSW(descriptorWrite); - device.updateDescriptorSets(descriptorWrite, nullptr, vk::DispatchLoaderStatic{}); + device.updateDescriptorSets(descriptorWrite, nullptr, vk::DispatchLoaderDefault{}); } */ diff --git a/src/engine/vkn/RenderTask.cpp b/src/engine/vkn/RenderTask.cpp index 72d42c2..9a58309 100644 --- a/src/engine/vkn/RenderTask.cpp +++ b/src/engine/vkn/RenderTask.cpp @@ -488,7 +488,7 @@ namespace idk::vkn auto& [prev_buffer, prev_offset] = vb_n_offset[vb.binding]; if (prev_buffer != vb.buffer || prev_offset != vb.offset) { - cmd_buffer.bindVertexBuffers(vb.binding, vb.buffer, vk::DeviceSize{ vb.offset }, vk::DispatchLoaderStatic{}); + cmd_buffer.bindVertexBuffers(vb.binding, vb.buffer, vk::DeviceSize{ vb.offset }, vk::DispatchLoaderDefault{}); prev_buffer = vb.buffer; prev_offset = vb.offset; } diff --git a/src/engine/vkn/VknCubeMapLoader.cpp b/src/engine/vkn/VknCubeMapLoader.cpp index fe608b1..e11fb09 100644 --- a/src/engine/vkn/VknCubeMapLoader.cpp +++ b/src/engine/vkn/VknCubeMapLoader.cpp @@ -137,7 +137,7 @@ namespace idk::vkn { { src_flags,dst_flags,original_layout,target,VK_QUEUE_FAMILY_IGNORED,VK_QUEUE_FAMILY_IGNORED,image,*range }; - cmd_buffer.pipelineBarrier(src_stage, dst_stage, {}, nullptr, nullptr, barrier, vk::DispatchLoaderStatic{}); + cmd_buffer.pipelineBarrier(src_stage, dst_stage, {}, nullptr, nullptr, barrier, vk::DispatchLoaderDefault{}); } std::pair CreateBlitImage(hlp::MemoryAllocator& allocator, uint32_t mipmap_level, uint32_t width, uint32_t height, vk::Format format) @@ -162,9 +162,9 @@ namespace idk::vkn { imageInfo.samples = vk::SampleCountFlagBits::e1; //Multisampling imageInfo.flags = vk::ImageCreateFlagBits::eCubeCompatible; - vk::UniqueImage image = device.createImageUnique(imageInfo, nullptr, vk::DispatchLoaderStatic{}); + vk::UniqueImage image = device.createImageUnique(imageInfo, nullptr, vk::DispatchLoaderDefault{}); auto alloc = allocator.Allocate(*image, vk::MemoryPropertyFlagBits::eDeviceLocal); //Allocate on device only - device.bindImageMemory(*image, alloc->Memory(), alloc->Offset(), vk::DispatchLoaderStatic{}); + device.bindImageMemory(*image, alloc->Memory(), alloc->Offset(), vk::DispatchLoaderDefault{}); return std::make_pair(std::move(image), std::move(alloc)); } } @@ -401,9 +401,9 @@ namespace idk::vkn { imageInfo.sharingMode = vk::SharingMode::eExclusive; //Only graphics queue needs this. imageInfo.samples = vk::SampleCountFlagBits::e1; //Multisampling - vk::UniqueImage image = device.createImageUnique(imageInfo, nullptr, vk::DispatchLoaderStatic{}); + vk::UniqueImage image = device.createImageUnique(imageInfo, nullptr, vk::DispatchLoaderDefault{}); auto alloc = allocator.Allocate(*image, vk::MemoryPropertyFlagBits::eDeviceLocal); //Allocate on device only - device.bindImageMemory(*image, alloc->Memory(), alloc->Offset(), vk::DispatchLoaderStatic{}); + device.bindImageMemory(*image, alloc->Memory(), alloc->Offset(), vk::DispatchLoaderDefault{}); const vk::ImageAspectFlagBits img_aspect = load_info.aspect; result.aspect = img_aspect; @@ -444,7 +444,7 @@ namespace idk::vkn { copy_dest = *blit_src_img; layout = vk::ImageLayout::eTransferSrcOptimal; } - auto&& [stagingBuffer, stagingMemory] = hlp::CreateAllocBindBuffer(pd, device, in_info->mem_size, vk::BufferUsageFlagBits::eTransferSrc, vk::MemoryPropertyFlagBits::eHostCoherent | vk::MemoryPropertyFlagBits::eHostVisible, vk::DispatchLoaderStatic{}); + auto&& [stagingBuffer, stagingMemory] = hlp::CreateAllocBindBuffer(pd, device, in_info->mem_size, vk::BufferUsageFlagBits::eTransferSrc, vk::MemoryPropertyFlagBits::eHostCoherent | vk::MemoryPropertyFlagBits::eHostVisible, vk::DispatchLoaderDefault{}); if (in_info) { @@ -455,7 +455,7 @@ namespace idk::vkn { ,num_bytes }; uint8_t* data = nullptr; - device.mapMemory(*stagingMemory, mmr.offset, in_info->mem_size, vk::MemoryMapFlags{}, (void**)&data, vk::DispatchLoaderStatic()); + device.mapMemory(*stagingMemory, mmr.offset, in_info->mem_size, vk::MemoryMapFlags{}, (void**)&data, vk::DispatchLoaderDefault()); memcpy_s(data, mmr.size, in_info->data, mmr.size); std::vector memory_ranges { @@ -505,7 +505,7 @@ namespace idk::vkn { } } - cmd_buffer.copyBufferToImage(*stagingBuffer, copy_dest, vk::ImageLayout::eTransferDstOptimal, copy_regions, vk::DispatchLoaderStatic{}); + cmd_buffer.copyBufferToImage(*stagingBuffer, copy_dest, vk::ImageLayout::eTransferDstOptimal, copy_regions, vk::DispatchLoaderDefault{}); staging_buffer = std::move(stagingBuffer); staging_memory = std::move(stagingMemory); @@ -573,17 +573,17 @@ namespace idk::vkn { imageInfo.samples = vk::SampleCountFlagBits::e1; //Multisampling imageInfo.flags = vk::ImageCreateFlagBits::eCubeCompatible; - vk::UniqueImage image = device.createImageUnique(imageInfo, nullptr, vk::DispatchLoaderStatic{}); + vk::UniqueImage image = device.createImageUnique(imageInfo, nullptr, vk::DispatchLoaderDefault{}); auto alloc = allocator.Allocate(*image, vk::MemoryPropertyFlagBits::eDeviceLocal); - device.bindImageMemory(*image, alloc->Memory(), alloc->Offset(), vk::DispatchLoaderStatic{}); + device.bindImageMemory(*image, alloc->Memory(), alloc->Offset(), vk::DispatchLoaderDefault{}); - auto&& [stagingBuffer, stagingMemory] = hlp::CreateAllocBindBuffer(pd, device, num_bytes, vk::BufferUsageFlagBits::eTransferSrc, vk::MemoryPropertyFlagBits::eHostCoherent | vk::MemoryPropertyFlagBits::eHostVisible, vk::DispatchLoaderStatic{}); + auto&& [stagingBuffer, stagingMemory] = hlp::CreateAllocBindBuffer(pd, device, num_bytes, vk::BufferUsageFlagBits::eTransferSrc, vk::MemoryPropertyFlagBits::eHostCoherent | vk::MemoryPropertyFlagBits::eHostVisible, vk::DispatchLoaderDefault{}); if (image) dbg::TextureTracker::Inst(dbg::TextureAllocTypes::eCubemap).reg_allocate(image->operator VkImage(), num_bytes); if (data) - hlp::MapMemory(device, *stagingMemory, 0, data, num_bytes, vk::DispatchLoaderStatic{}); + hlp::MapMemory(device, *stagingMemory, 0, data, num_bytes, vk::DispatchLoaderDefault{}); vk::AccessFlags src_flags = vk::AccessFlagBits::eMemoryRead | vk::AccessFlagBits::eShaderRead; vk::AccessFlags dst_flags = vk::AccessFlagBits::eTransferWrite; vk::PipelineStageFlags shader_flags = vk::PipelineStageFlagBits::eVertexShader | vk::PipelineStageFlagBits::eFragmentShader;// | vk::PipelineStageFlagBits::eTessellationControlShader | vk::PipelineStageFlagBits::eTessellationEvaluationShader; @@ -642,7 +642,7 @@ namespace idk::vkn { bCopyRegions.emplace_back(region); //offset += i; } - cmd_buffer.copyBufferToImage(*stagingBuffer, *image, vk::ImageLayout::eTransferDstOptimal, bCopyRegions, vk::DispatchLoaderStatic{}); + cmd_buffer.copyBufferToImage(*stagingBuffer, *image, vk::ImageLayout::eTransferDstOptimal, bCopyRegions, vk::DispatchLoaderDefault{}); vcm::TransitionImageLayout(cmd_buffer, src_flags, shader_flags, dst_flags, dst_stages, vk::ImageLayout::eTransferDstOptimal, layout, *image, img_aspect,vk::ImageSubresourceRange { diff --git a/src/engine/vkn/VknFontAtlasLoader.cpp b/src/engine/vkn/VknFontAtlasLoader.cpp index 0fd4b15..afcb3b0 100644 --- a/src/engine/vkn/VknFontAtlasLoader.cpp +++ b/src/engine/vkn/VknFontAtlasLoader.cpp @@ -147,7 +147,7 @@ namespace idk::vkn { src_flags,dst_flags,original_layout,target,VK_QUEUE_FAMILY_IGNORED,VK_QUEUE_FAMILY_IGNORED,image,*range }; - cmd_buffer.pipelineBarrier(src_stage, dst_stage, {}, nullptr, nullptr, barrier, vk::DispatchLoaderStatic{}); + cmd_buffer.pipelineBarrier(src_stage, dst_stage, {}, nullptr, nullptr, barrier, vk::DispatchLoaderDefault{}); } vk::UniqueImageView CreateImageView2D(vk::Device device, vk::Image image, vk::Format format, vk::ImageAspectFlags aspect) @@ -215,9 +215,9 @@ namespace idk::vkn imageInfo.sharingMode = vk::SharingMode::eExclusive; //Only graphics queue needs this. imageInfo.samples = vk::SampleCountFlagBits::e1; //Multisampling - vk::UniqueImage image = device.createImageUnique(imageInfo, nullptr, vk::DispatchLoaderStatic{}); + vk::UniqueImage image = device.createImageUnique(imageInfo, nullptr, vk::DispatchLoaderDefault{}); auto alloc = allocator.Allocate(*image, vk::MemoryPropertyFlagBits::eDeviceLocal); //Allocate on device only - device.bindImageMemory(*image, alloc->Memory(), alloc->Offset(), vk::DispatchLoaderStatic{}); + device.bindImageMemory(*image, alloc->Memory(), alloc->Offset(), vk::DispatchLoaderDefault{}); return std::make_pair(std::move(image), std::move(alloc)); } @@ -390,9 +390,9 @@ namespace idk::vkn imageInfo.sharingMode = vk::SharingMode::eExclusive; //Only graphics queue needs this. imageInfo.samples = vk::SampleCountFlagBits::e1; //Multisampling - vk::UniqueImage image = device.createImageUnique(imageInfo, nullptr, vk::DispatchLoaderStatic{}); + vk::UniqueImage image = device.createImageUnique(imageInfo, nullptr, vk::DispatchLoaderDefault{}); auto alloc = allocator.Allocate(*image, vk::MemoryPropertyFlagBits::eDeviceLocal); //Allocate on device only - device.bindImageMemory(*image, alloc->Memory(), alloc->Offset(), vk::DispatchLoaderStatic{}); + device.bindImageMemory(*image, alloc->Memory(), alloc->Offset(), vk::DispatchLoaderDefault{}); if (image) dbg::TextureTracker::Inst(dbg::TextureAllocTypes::eCubemap).reg_allocate(image->operator VkImage(), num_bytes); @@ -431,10 +431,10 @@ namespace idk::vkn copy_dest = *blit_src_img; layout = vk::ImageLayout::eTransferSrcOptimal; } - auto&& [stagingBuffer, stagingMemory] = hlp::CreateAllocBindBuffer(pd, device, num_bytes, vk::BufferUsageFlagBits::eTransferSrc, vk::MemoryPropertyFlagBits::eHostCoherent | vk::MemoryPropertyFlagBits::eHostVisible, vk::DispatchLoaderStatic{}); + auto&& [stagingBuffer, stagingMemory] = hlp::CreateAllocBindBuffer(pd, device, num_bytes, vk::BufferUsageFlagBits::eTransferSrc, vk::MemoryPropertyFlagBits::eHostCoherent | vk::MemoryPropertyFlagBits::eHostVisible, vk::DispatchLoaderDefault{}); if (in_info) - hlp::MapMemory(device, *stagingMemory, 0, in_info->data, num_bytes, vk::DispatchLoaderStatic{}); + hlp::MapMemory(device, *stagingMemory, 0, in_info->data, num_bytes, vk::DispatchLoaderDefault{}); //if (is_render_target) //{ // src_flags |= vk::AccessFlagBits::eColorAttachmentRead; @@ -493,7 +493,7 @@ namespace idk::vkn } //vector - cmd_buffer.copyBufferToImage(*stagingBuffer, copy_dest, vk::ImageLayout::eTransferDstOptimal, copy_regions, vk::DispatchLoaderStatic{}); + cmd_buffer.copyBufferToImage(*stagingBuffer, copy_dest, vk::ImageLayout::eTransferDstOptimal, copy_regions, vk::DispatchLoaderDefault{}); staging_buffer = std::move(stagingBuffer); staging_memory = std::move(stagingMemory); @@ -561,16 +561,16 @@ namespace idk::vkn imageInfo.sharingMode = vk::SharingMode::eExclusive; //Only graphics queue needs this. imageInfo.samples = vk::SampleCountFlagBits::e1; //Multisampling - vk::UniqueImage image = device.createImageUnique(imageInfo, nullptr, vk::DispatchLoaderStatic{}); + vk::UniqueImage image = device.createImageUnique(imageInfo, nullptr, vk::DispatchLoaderDefault{}); auto alloc = allocator.Allocate(*image, vk::MemoryPropertyFlagBits::eDeviceLocal); - device.bindImageMemory(*image, alloc->Memory(), alloc->Offset(), vk::DispatchLoaderStatic{}); + device.bindImageMemory(*image, alloc->Memory(), alloc->Offset(), vk::DispatchLoaderDefault{}); - auto&& [stagingBuffer, stagingMemory] = hlp::CreateAllocBindBuffer(pd, device, num_bytes, vk::BufferUsageFlagBits::eTransferSrc, vk::MemoryPropertyFlagBits::eHostCoherent | vk::MemoryPropertyFlagBits::eHostVisible, vk::DispatchLoaderStatic{}); + auto&& [stagingBuffer, stagingMemory] = hlp::CreateAllocBindBuffer(pd, device, num_bytes, vk::BufferUsageFlagBits::eTransferSrc, vk::MemoryPropertyFlagBits::eHostCoherent | vk::MemoryPropertyFlagBits::eHostVisible, vk::DispatchLoaderDefault{}); if (image) dbg::TextureTracker::Inst(dbg::TextureAllocTypes::eFontAtlas).reg_allocate(image->operator VkImage(), num_bytes); if (data) - hlp::MapMemory(device, *stagingMemory, 0, data, num_bytes, vk::DispatchLoaderStatic{}); + hlp::MapMemory(device, *stagingMemory, 0, data, num_bytes, vk::DispatchLoaderDefault{}); vk::AccessFlags src_flags = vk::AccessFlagBits::eMemoryRead | vk::AccessFlagBits::eShaderRead; vk::AccessFlags dst_flags = vk::AccessFlagBits::eTransferWrite; vk::PipelineStageFlags shader_flags = vk::PipelineStageFlagBits::eVertexShader | vk::PipelineStageFlagBits::eFragmentShader;// | vk::PipelineStageFlagBits::eTessellationControlShader | vk::PipelineStageFlagBits::eTessellationEvaluationShader; @@ -611,7 +611,7 @@ namespace idk::vkn height, 1 }; - cmd_buffer.copyBufferToImage(*stagingBuffer, *image, vk::ImageLayout::eTransferDstOptimal, region, vk::DispatchLoaderStatic{}); + cmd_buffer.copyBufferToImage(*stagingBuffer, *image, vk::ImageLayout::eTransferDstOptimal, region, vk::DispatchLoaderDefault{}); vfa::TransitionImageLayout(cmd_buffer, src_flags, shader_flags, dst_flags, dst_stages, vk::ImageLayout::eTransferDstOptimal, layout, *image); ; diff --git a/src/engine/vkn/VknTextureLoader.cpp b/src/engine/vkn/VknTextureLoader.cpp index 1ce35bb..672327e 100644 --- a/src/engine/vkn/VknTextureLoader.cpp +++ b/src/engine/vkn/VknTextureLoader.cpp @@ -329,7 +329,7 @@ namespace idk::vkn { src_flags,dst_flags,original_layout,target,VK_QUEUE_FAMILY_IGNORED,VK_QUEUE_FAMILY_IGNORED,image,*range }; - cmd_buffer.pipelineBarrier(src_stage, dst_stage, {}, nullptr, nullptr, barrier, vk::DispatchLoaderStatic{}); + cmd_buffer.pipelineBarrier(src_stage, dst_stage, {}, nullptr, nullptr, barrier, vk::DispatchLoaderDefault{}); } @@ -488,9 +488,9 @@ namespace idk::vkn imageInfo.sharingMode = vk::SharingMode::eExclusive; //Only graphics queue needs this. imageInfo.samples = vk::SampleCountFlagBits::e1; //Multisampling - vk::UniqueImage image = device.createImageUnique(imageInfo, nullptr, vk::DispatchLoaderStatic{}); + vk::UniqueImage image = device.createImageUnique(imageInfo, nullptr, vk::DispatchLoaderDefault{}); auto alloc = allocator.Allocate(*image, vk::MemoryPropertyFlagBits::eDeviceLocal); //Allocate on device only - device.bindImageMemory(*image, alloc->Memory(), alloc->Offset(), vk::DispatchLoaderStatic{}); + device.bindImageMemory(*image, alloc->Memory(), alloc->Offset(), vk::DispatchLoaderDefault{}); return std::make_pair(std::move(image), std::move(alloc)); } @@ -590,10 +590,10 @@ namespace idk::vkn //} - vk::UniqueImage image = device.createImageUnique(imageInfo, nullptr, vk::DispatchLoaderStatic{}); + vk::UniqueImage image = device.createImageUnique(imageInfo, nullptr, vk::DispatchLoaderDefault{}); auto alloc = allocator.Allocate(*image, mem_property); //Allocate on device only result.size_on_device = alloc->Size(); - device.bindImageMemory(*image, alloc->Memory(), alloc->Offset(), vk::DispatchLoaderStatic{}); + device.bindImageMemory(*image, alloc->Memory(), alloc->Offset(), vk::DispatchLoaderDefault{}); const vk::ImageAspectFlagBits img_aspect = load_info.aspect; result.aspect = img_aspect; @@ -635,10 +635,10 @@ namespace idk::vkn copy_dest = *blit_src_img; layout = vk::ImageLayout::eTransferSrcOptimal; } - auto&& [stagingBuffer, stagingMemory] = hlp::CreateAllocBindBuffer(pd, device, num_bytes, vk::BufferUsageFlagBits::eTransferSrc, vk::MemoryPropertyFlagBits::eHostCoherent | vk::MemoryPropertyFlagBits::eHostVisible, vk::DispatchLoaderStatic{}); + auto&& [stagingBuffer, stagingMemory] = hlp::CreateAllocBindBuffer(pd, device, num_bytes, vk::BufferUsageFlagBits::eTransferSrc, vk::MemoryPropertyFlagBits::eHostCoherent | vk::MemoryPropertyFlagBits::eHostVisible, vk::DispatchLoaderDefault{}); if (in_info) - hlp::MapMemory(device, *stagingMemory, 0, in_info->data, num_bytes, vk::DispatchLoaderStatic{}); + hlp::MapMemory(device, *stagingMemory, 0, in_info->data, num_bytes, vk::DispatchLoaderDefault{}); //if (is_render_target) //{ // src_flags |= vk::AccessFlagBits::eColorAttachmentRead; @@ -719,7 +719,7 @@ namespace idk::vkn // name += " Staging Dest"; // dbg::NameObject(copy_dest, name); //} - cmd_buffer.copyBufferToImage(*stagingBuffer, copy_dest, vk::ImageLayout::eTransferDstOptimal, copy_regions, vk::DispatchLoaderStatic{}); + cmd_buffer.copyBufferToImage(*stagingBuffer, copy_dest, vk::ImageLayout::eTransferDstOptimal, copy_regions, vk::DispatchLoaderDefault{}); staging_buffer = std::move(stagingBuffer); staging_memory = std::move(stagingMemory); diff --git a/src/engine/vkn/VulkanResourceManager.h b/src/engine/vkn/VulkanResourceManager.h index 6458450..00a500d 100644 --- a/src/engine/vkn/VulkanResourceManager.h +++ b/src/engine/vkn/VulkanResourceManager.h @@ -18,9 +18,9 @@ namespace idk::vkn virtual ~VulkanRscBase()=default; }; template - struct VulkanRscDel : VulkanRscBase,vk::UniqueHandle + struct VulkanRscDel : VulkanRscBase,vk::UniqueHandle { - using Base = vk::UniqueHandle; + using Base = vk::UniqueHandle; using Base::Base; VulkanRscDel(Base&& base)noexcept :Base{ std::move(base) } {} VulkanRscDel& operator=(VulkanRscDel&& rhs) @@ -103,9 +103,9 @@ namespace idk::vkn }; template - struct VulkanRsc : vk::UniqueHandle + struct VulkanRsc : vk::UniqueHandle { - using Base = vk::UniqueHandle; + using Base = vk::UniqueHandle; using Base::Base; VulkanRsc() = default; VulkanRsc(Base&& base)noexcept :Base{ std::move(base) } {} diff --git a/src/engine/vkn/VulkanState.cpp b/src/engine/vkn/VulkanState.cpp index a805a20..094a459 100644 --- a/src/engine/vkn/VulkanState.cpp +++ b/src/engine/vkn/VulkanState.cpp @@ -310,7 +310,7 @@ namespace idk::vkn { result.present_family = static_cast(i); } - if (family.queueFlags & vk::QueueFlagBits::eGraphics) + if (family.queueFlags & vk::QueueFlagBits::eGraphics && family.queueCount>2) { result.graphics_family = static_cast(i); } @@ -406,7 +406,7 @@ namespace idk::vkn { QueueFamilyIndices indices = findQueueFamilies(pdevice); m_queue_family = indices; - constexpr uint32_t num_queues = 1;//this be hack + constexpr uint32_t num_queues = 2;//this be hack float queuePriority[num_queues] = {}; int num = 1; for (auto& queuePri : queuePriority) @@ -455,7 +455,7 @@ namespace idk::vkn //m_device.~UniqueHandle(); m_device = vk::UniqueDevice{ pdevice.createDevice(createInfo, nullptr, dispatcher) }; m_graphics_queue = m_device->getQueue(*m_queue_family.graphics_family, 0, dispatcher); - m_graphics_tex_queue = m_graphics_queue; + m_graphics_tex_queue = m_device->getQueue(*m_queue_family.graphics_family, 1, dispatcher); m_present_queue = m_device->getQueue(*m_queue_family.present_family, 0, dispatcher); //m_transfer_queue = m_device->getQueue(*m_queue_family.transfer_family, 0, dispatcher); } @@ -805,12 +805,12 @@ namespace idk::vkn alloc = allocator.Allocate(image, vk::MemoryPropertyFlagBits::eDeviceLocal); vk::DeviceSize num_bytes = (4 * sizeof(uint32_t)); - device->bindImageMemory(image, alloc->Memory(), alloc->Offset(), vk::DispatchLoaderStatic{}); + device->bindImageMemory(image, alloc->Memory(), alloc->Offset(), vk::DispatchLoaderDefault{}); - auto&& [stagingBuffer, stagingMemory] = hlp::CreateAllocBindBuffer(pdevice, *device, num_bytes, vk::BufferUsageFlagBits::eTransferSrc, vk::MemoryPropertyFlagBits::eHostCoherent | vk::MemoryPropertyFlagBits::eHostVisible, vk::DispatchLoaderStatic{}); + auto&& [stagingBuffer, stagingMemory] = hlp::CreateAllocBindBuffer(pdevice, *device, num_bytes, vk::BufferUsageFlagBits::eTransferSrc, vk::MemoryPropertyFlagBits::eHostCoherent | vk::MemoryPropertyFlagBits::eHostVisible, vk::DispatchLoaderDefault{}); const void* data = nullptr; if (data) - hlp::MapMemory(*device, *stagingMemory, 0, data, num_bytes, vk::DispatchLoaderStatic{}); + hlp::MapMemory(*device, *stagingMemory, 0, data, num_bytes, vk::DispatchLoaderDefault{}); vk::AccessFlags src_flags = vk::AccessFlagBits::eMemoryRead | vk::AccessFlagBits::eShaderRead; vk::AccessFlags dst_flags = vk::AccessFlagBits::eTransferWrite; vk::PipelineStageFlags shader_flags = vk::PipelineStageFlagBits::eVertexShader | vk::PipelineStageFlagBits::eFragmentShader;// | vk::PipelineStageFlagBits::eTessellationControlShader | vk::PipelineStageFlagBits::eTessellationEvaluationShader; diff --git a/src/engine/vkn/VulkanState.h b/src/engine/vkn/VulkanState.h index f58d97a..9a82172 100644 --- a/src/engine/vkn/VulkanState.h +++ b/src/engine/vkn/VulkanState.h @@ -162,7 +162,7 @@ namespace idk::vkn std::mutex m_graphics_tex_mutex; vk::UniqueDescriptorPool m_descriptorpool; - vk::DispatchLoaderStatic dispatcher = {}; + vk::DispatchLoaderDefault dispatcher = {}; vk::DispatchLoaderDynamic dyn_dispatcher = {}; DynamicHandle m_debug_messenger; diff --git a/src/engine/vkn/VulkanView.cpp b/src/engine/vkn/VulkanView.cpp index 77bf810..97d0076 100644 --- a/src/engine/vkn/VulkanView.cpp +++ b/src/engine/vkn/VulkanView.cpp @@ -23,7 +23,7 @@ namespace idk::vkn { return this->vulkan_->ResourceManager(); } - vk::DispatchLoaderStatic& VulkanView::Dispatcher() const { return vulkan().dispatcher; } + vk::DispatchLoaderDefault& VulkanView::Dispatcher() const { return vulkan().dispatcher; } vk::DispatchLoaderDynamic& VulkanView::DynDispatcher()const { return vulkan().dyn_dispatcher; } vk::UniqueInstance& VulkanView::Instance()const { return vulkan().instance; } diff --git a/src/engine/vkn/VulkanView.h b/src/engine/vkn/VulkanView.h index 7e3af84..10830f8 100644 --- a/src/engine/vkn/VulkanView.h +++ b/src/engine/vkn/VulkanView.h @@ -19,7 +19,7 @@ namespace idk::vkn { public: VulkanResourceManager& ResourceManager()const; - vk::DispatchLoaderStatic& Dispatcher()const; + vk::DispatchLoaderDefault& Dispatcher()const; vk::DispatchLoaderDynamic& DynDispatcher()const; vk::UniqueInstance& Instance()const; vk::UniqueSurfaceKHR& Surface()const; diff --git a/src/engine/vkn/VulkanWin32GraphicsSystem.cpp b/src/engine/vkn/VulkanWin32GraphicsSystem.cpp index d6e5b9c..461925f 100644 --- a/src/engine/vkn/VulkanWin32GraphicsSystem.cpp +++ b/src/engine/vkn/VulkanWin32GraphicsSystem.cpp @@ -220,14 +220,14 @@ namespace idk::vkn for (auto&& [attrib, location] : req.mesh_requirements) { auto& attrib_buffer = mesh.Get(attrib); - cmd_buffer.bindVertexBuffers(*brdf_pipeline.GetBinding(location), *attrib_buffer.buffer(), vk::DeviceSize{ attrib_buffer.offset }, vk::DispatchLoaderStatic{}); + cmd_buffer.bindVertexBuffers(*brdf_pipeline.GetBinding(location), *attrib_buffer.buffer(), vk::DeviceSize{ attrib_buffer.offset }, vk::DispatchLoaderDefault{}); } auto& oidx = mesh.GetIndexBuffer(); if (oidx) { - cmd_buffer.bindIndexBuffer(*(*oidx).buffer(), 0, mesh.IndexType(), vk::DispatchLoaderStatic{}); - cmd_buffer.drawIndexed(mesh.IndexCount(), 1, 0, 0, 0, vk::DispatchLoaderStatic{}); + cmd_buffer.bindIndexBuffer(*(*oidx).buffer(), 0, mesh.IndexType(), vk::DispatchLoaderDefault{}); + cmd_buffer.drawIndexed(mesh.IndexCount(), 1, 0, 0, 0, vk::DispatchLoaderDefault{}); } cmd_buffer.endRenderPass(); cmd_buffer.end(); @@ -728,7 +728,7 @@ namespace idk::vkn void VulkanWin32GraphicsSystem::RenderGraphicsState(const GraphicsState& state, RenderStateV2& rs) { auto& swapchain = instance_->View().Swapchain(); - auto dispatcher = vk::DispatchLoaderStatic{}; + auto dispatcher = vk::DispatchLoaderDefault{}; vk::CommandBuffer& cmd_buffer = rs.cmd_buffer; vk::CommandBufferInheritanceInfo aaa{}; vk::CommandBufferBeginInfo begin_info{vk::CommandBufferUsageFlagBits::eOneTimeSubmit,&aaa}; @@ -761,13 +761,13 @@ namespace idk::vkn for (auto&& [bindingz,attrib] : bindings) { auto& attrib_buffer = mesh.Get(attrib); - cmd_buffer.bindVertexBuffers(bindingz, *attrib_buffer.buffer, vk::DeviceSize{ 0 }, vk::DispatchLoaderStatic{}); + cmd_buffer.bindVertexBuffers(bindingz, *attrib_buffer.buffer, vk::DeviceSize{ 0 }, vk::DispatchLoaderDefault{}); } auto& oidx = mesh.GetIndexBuffer(); if (oidx) { - cmd_buffer.bindIndexBuffer(*(*oidx).buffer, 0, vk::IndexType::eUint16, vk::DispatchLoaderStatic{}); - cmd_buffer.drawIndexed(mesh.IndexCount(), 1, 0, 0, 0, vk::DispatchLoaderStatic{}); + cmd_buffer.bindIndexBuffer(*(*oidx).buffer, 0, vk::IndexType::eUint16, vk::DispatchLoaderDefault{}); + cmd_buffer.drawIndexed(mesh.IndexCount(), 1, 0, 0, 0, vk::DispatchLoaderDefault{}); } } cmd_buffer.endRenderPass(); diff --git a/src/engine/vkn/vector_buffer.cpp b/src/engine/vkn/vector_buffer.cpp index 1b596a1..9b3580a 100644 --- a/src/engine/vkn/vector_buffer.cpp +++ b/src/engine/vkn/vector_buffer.cpp @@ -38,7 +38,7 @@ namespace idk::vkn pdevice, device, _capacity, vk::BufferUsageFlagBits::eIndexBuffer | vk::BufferUsageFlagBits::eVertexBuffer | vk::BufferUsageFlagBits::eTransferDst | vk::BufferUsageFlagBits::eTransferSrc, vk::MemoryPropertyFlagBits::eHostCoherent | vk::MemoryPropertyFlagBits::eHostVisible, - vk::DispatchLoaderStatic{} + vk::DispatchLoaderDefault{} ); _memory = std::move(mem); @@ -64,7 +64,7 @@ namespace idk::vkn size_t limit_offset = 0; do { auto limit_len = std::min(len-limit_offset, limit); - cmd_buffer.updateBuffer(*_buffer, limit_offset+offset, hlp::make_array_proxy(static_cast(limit_len), data+limit_offset), vk::DispatchLoaderStatic{}); + cmd_buffer.updateBuffer(*_buffer, limit_offset+offset, hlp::make_array_proxy(static_cast(limit_len), data+limit_offset), vk::DispatchLoaderDefault{}); limit_offset += limit_len; } while (limit_offset