Working ... uh sort of .. on Windows now to try on Linux.
This commit is contained in:
parent
a5c13d8654
commit
8f679dbe65
6 changed files with 66 additions and 37 deletions
5
README.md
Normal file
5
README.md
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
# Notes
|
||||
|
||||
Currently running list of notes I need to remember for the README later:
|
||||
|
||||
* Running vulkaninfoSDK.exe gives you information about the GPU but no libraries.
|
||||
13
main.cpp
13
main.cpp
|
|
@ -1,15 +1,16 @@
|
|||
#include <vk_engine.h>
|
||||
#include <memory>
|
||||
#include <format>
|
||||
|
||||
int main()
|
||||
int main(int argc, char *argv[])
|
||||
{
|
||||
auto engine = std::make_unique<VulkanEngine>();
|
||||
auto engine = std::make_unique<VulkanEngine>();
|
||||
|
||||
engine->init();
|
||||
engine->init();
|
||||
|
||||
engine->run();
|
||||
engine->run();
|
||||
|
||||
engine->cleanup();
|
||||
engine->cleanup();
|
||||
|
||||
return 0;
|
||||
return 0;
|
||||
}
|
||||
|
|
|
|||
32
meson.build
32
meson.build
|
|
@ -30,16 +30,22 @@ if build_machine.system() == 'windows'
|
|||
'-static-libgcc',
|
||||
'-static-libstdc++',
|
||||
'-static',
|
||||
'-lstdc++exp',
|
||||
language: 'cpp',
|
||||
)
|
||||
|
||||
sdl2_main = subproject('sld2').get_variable('sdl2_main')
|
||||
opengl32 = cc.find_library('opengl32', required: true)
|
||||
winmm = cc.find_library('winmm', required: true)
|
||||
gdi32 = cc.find_library('gdi32', required: true)
|
||||
|
||||
vulkan_inc = include_directories('C:/VulkanSDK/1.4.328.1/Include')
|
||||
vulkan = cc.find_library('vulkan-1',
|
||||
dirs: ['C:/VulkanSDK/1.4.328.1/Lib'],
|
||||
has_headers: ['vulkan/vulkan.h'],
|
||||
header_include_directories: [vulkan_inc],
|
||||
required: true)
|
||||
|
||||
dependencies += [
|
||||
opengl32, winmm, gdi32, sdl2_main
|
||||
winmm, gdi32, vulkan
|
||||
]
|
||||
exe_defaults += ['werror=true']
|
||||
|
||||
|
|
@ -63,6 +69,7 @@ elif build_machine.system() == 'darwin'
|
|||
endif
|
||||
|
||||
vma = subproject('vulkan-memory-allocator').get_variable('vma_allocator_dep')
|
||||
# vulkan_headers = subproject('vulkan-headers').get_variable('vulkan_headers_dep')
|
||||
imgui = subproject('imgui').get_variable('imgui_dep')
|
||||
sdl2 = subproject('sdl2').get_variable('sdl2_dep')
|
||||
|
||||
|
|
@ -76,10 +83,20 @@ glm = glm_proj.get_variable('glm_dep')
|
|||
|
||||
|
||||
vk_opts = cmake.subproject_options()
|
||||
vk_opts.add_cmake_defines({
|
||||
'VK_BOOTSTRAP_TEST': false,
|
||||
'VK_BOOTSTRAP_INSTALL': false,
|
||||
})
|
||||
|
||||
if build_machine.system() == 'windows'
|
||||
vk_opts.add_cmake_defines({
|
||||
'VK_BOOTSTRAP_TEST': false,
|
||||
'VK_BOOTSTRAP_INSTALL': false,
|
||||
'VK_BOOTSTRAP_VULKAN_HEADER_DIR': 'C:/VulkanSDK/1.4.328.1/Include'
|
||||
})
|
||||
else
|
||||
vk_opts.add_cmake_defines({
|
||||
'VK_BOOTSTRAP_TEST': false,
|
||||
'VK_BOOTSTRAP_INSTALL': false,
|
||||
})
|
||||
endif
|
||||
|
||||
vkbootstrap_proj = cmake.subproject('vk-bootstrap', options: vk_opts)
|
||||
vkbootstrap = vkbootstrap_proj.get_variable('vk_bootstrap_dep')
|
||||
|
||||
|
|
@ -106,5 +123,6 @@ tests = [
|
|||
executable('hellovulk', sources,
|
||||
cpp_args: cpp_args,
|
||||
link_args: link_args,
|
||||
win_subsystem: 'windows',
|
||||
override_options: exe_defaults,
|
||||
dependencies: dependencies)
|
||||
|
|
|
|||
7
scripts/reset_build.ps1
Normal file
7
scripts/reset_build.ps1
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
mv .\subprojects\packagecache .
|
||||
rm -recurse -force .\subprojects\,.\builddir\
|
||||
mkdir subprojects
|
||||
mv .\packagecache .\subprojects\
|
||||
mkdir builddir
|
||||
cp wraps\*.wrap subprojects\
|
||||
meson setup --default-library=static --prefer-static builddir
|
||||
|
|
@ -216,11 +216,11 @@ void VulkanEngine::init_vulkan() {
|
|||
SDL_Vulkan_CreateSurface(_window, _instance, &_surface);
|
||||
|
||||
//vulkan 1.3 features
|
||||
VkPhysicalDeviceVulkan13Features features{};
|
||||
VkPhysicalDeviceVulkan13Features features13{};
|
||||
|
||||
features.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_FEATURES;
|
||||
features.dynamicRendering = true;
|
||||
features.synchronization2 = true;
|
||||
features13.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_FEATURES;
|
||||
features13.dynamicRendering = true;
|
||||
features13.synchronization2 = true;
|
||||
|
||||
//vulkan 1.2 features
|
||||
VkPhysicalDeviceVulkan12Features features12{};
|
||||
|
|
@ -231,9 +231,9 @@ void VulkanEngine::init_vulkan() {
|
|||
// use vkbootstrap to select a gpu
|
||||
// We want a gpu that can write to the SDL surface
|
||||
vkb::PhysicalDeviceSelector selector{ vkb_inst };
|
||||
vkb::PhysicalDevice physicalDevice = selector
|
||||
.set_minimum_version(1, 4)
|
||||
.set_required_features_13(features)
|
||||
auto physicalDevice = selector
|
||||
.set_minimum_version(1, 3)
|
||||
.set_required_features_13(features13)
|
||||
.set_required_features_12(features12)
|
||||
.set_surface(_surface)
|
||||
.select()
|
||||
|
|
|
|||
|
|
@ -13,7 +13,6 @@
|
|||
#include <functional>
|
||||
#include <deque>
|
||||
|
||||
#include <vulkan/vulkan.h>
|
||||
// #include <vulkan/vk_enum_string_helper.h>
|
||||
#include <vk_mem_alloc.h>
|
||||
|
||||
|
|
@ -38,4 +37,3 @@ struct AllocatedImage {
|
|||
VkExtent3D imageExtent;
|
||||
VkFormat imageFormat;
|
||||
};
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue