diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 50ccaed..5bb7a51 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -2,6 +2,7 @@ name: 🛠️ CI on: [pull_request] + jobs: clang-format: uses: engine3d-dev/ci/.github/workflows/clang-format.yml@main @@ -11,19 +12,19 @@ jobs: uses: engine3d-dev/ci/.github/workflows/windows.yml@main with: package_name: "vulkan-cpp" - version: "6.0" + version: "6.1" secrets: inherit linux: uses: engine3d-dev/ci/.github/workflows/linux.yml@main with: package_name: "vulkan-cpp" - version: "6.0" + version: "6.1" secrets: inherit mac: uses: engine3d-dev/ci/.github/workflows/mac.yml@main with: package_name: "vulkan-cpp" - version: "6.0" + version: "6.1" secrets: inherit \ No newline at end of file diff --git a/conanfile.py b/conanfile.py index 62eaff1..033dec3 100644 --- a/conanfile.py +++ b/conanfile.py @@ -9,7 +9,7 @@ class VulkanCppRecipe(ConanFile): name = "vulkan-cpp" - version = "6.0" + version = "6.1" license = "Apache-2.0" url = "https://github.com/engine3d-dev/vulkan-cpp" homepage = "https://github.com/engine3d-dev/vulkan-cpp" diff --git a/demos/1-instance/conanfile.py b/demos/1-instance/conanfile.py index eb977f5..b87d0ed 100644 --- a/demos/1-instance/conanfile.py +++ b/demos/1-instance/conanfile.py @@ -22,7 +22,7 @@ def requirements(self): self.requires("glm/1.0.1") self.requires("stb/cci.20230920") self.requires("tinyobjloader/2.0.0-rc10") - self.requires("vulkan-cpp/6.0") + self.requires("vulkan-cpp/6.1") def build(self): cmake = CMake(self) diff --git a/demos/10-textures/application.cpp b/demos/10-textures/application.cpp index 6e99072..2330aa3 100644 --- a/demos/10-textures/application.cpp +++ b/demos/10-textures/application.cpp @@ -473,13 +473,11 @@ main() { } }; //! @brief Creating vertex/index buffers with host visibility flags - const auto property_flags = - static_cast(vk::memory_property::host_visible_bit | - vk::memory_property::host_cached_bit); vk::buffer_parameters vertex_params = { - .memory_mask = physical_device.memory_properties(property_flags), - .property_flags = vk::memory_property::device_local_bit, + .memory_mask = physical_device.memory_properties( + vk::memory_property::device_local_bit | + vk::memory_property::host_visible_bit), .usage = vk::buffer_usage::transfer_dst_bit | vk::buffer_usage::vertex_buffer_bit, }; @@ -488,8 +486,7 @@ main() { std::array indices = { 0, 1, 2, 2, 3, 0 }; vk::buffer_parameters index_params = { - .memory_mask = physical_device.memory_properties(property_flags), - .property_flags = static_cast( + .memory_mask = physical_device.memory_properties( vk::memory_property::host_visible_bit | vk::memory_property::host_cached_bit), .usage = vk::buffer_usage::index_buffer_bit, @@ -498,10 +495,9 @@ main() { // Setting up descriptor sets for handling uniforms vk::buffer_parameters uniform_params = { - .memory_mask = - physical_device.memory_properties(static_cast( - vk::memory_property::host_visible_bit | - vk::memory_property::host_cached_bit)), + .memory_mask = physical_device.memory_properties( + vk::memory_property::host_visible_bit | + vk::memory_property::host_cached_bit), .usage = vk::buffer_usage::uniform_buffer_bit, }; vk::uniform_buffer test_ubo = vk::uniform_buffer( diff --git a/demos/10-textures/conanfile.py b/demos/10-textures/conanfile.py index eb977f5..b87d0ed 100644 --- a/demos/10-textures/conanfile.py +++ b/demos/10-textures/conanfile.py @@ -22,7 +22,7 @@ def requirements(self): self.requires("glm/1.0.1") self.requires("stb/cci.20230920") self.requires("tinyobjloader/2.0.0-rc10") - self.requires("vulkan-cpp/6.0") + self.requires("vulkan-cpp/6.1") def build(self): cmake = CMake(self) diff --git a/demos/11-depth-buffering/application.cpp b/demos/11-depth-buffering/application.cpp index 4e04dfb..16ac073 100644 --- a/demos/11-depth-buffering/application.cpp +++ b/demos/11-depth-buffering/application.cpp @@ -525,15 +525,11 @@ main() { } }; - //! @brief Setting host visibility property flags - const auto property_flags = - static_cast(vk::memory_property::host_visible_bit | - vk::memory_property::host_cached_bit); - // Creating vertex buffers vk::buffer_parameters vertex_params = { - .memory_mask = physical_device.memory_properties(property_flags), - .property_flags = vk::memory_property::device_local_bit, + .memory_mask = physical_device.memory_properties( + vk::memory_property::device_local_bit | + vk::memory_property::host_visible_bit), .usage = vk::buffer_usage::transfer_dst_bit | vk::buffer_usage::vertex_buffer_bit, }; @@ -542,9 +538,9 @@ main() { // Creating index buffers std::array indices = { 0, 1, 2, 2, 3, 0, 4, 5, 6, 6, 7, 4 }; vk::buffer_parameters index_params = { - .memory_mask = physical_device.memory_properties(property_flags), - .property_flags = vk::memory_property::host_visible_bit | - vk::memory_property::host_cached_bit, + .memory_mask = physical_device.memory_properties( + vk::memory_property::host_visible_bit | + vk::memory_property::host_cached_bit), .usage = vk::buffer_usage::index_buffer_bit, }; vk::index_buffer test_ibo(logical_device, indices, index_params); diff --git a/demos/11-depth-buffering/conanfile.py b/demos/11-depth-buffering/conanfile.py index eb977f5..b87d0ed 100644 --- a/demos/11-depth-buffering/conanfile.py +++ b/demos/11-depth-buffering/conanfile.py @@ -22,7 +22,7 @@ def requirements(self): self.requires("glm/1.0.1") self.requires("stb/cci.20230920") self.requires("tinyobjloader/2.0.0-rc10") - self.requires("vulkan-cpp/6.0") + self.requires("vulkan-cpp/6.1") def build(self): cmake = CMake(self) diff --git a/demos/12-loading-models/application.cpp b/demos/12-loading-models/application.cpp index c65f07c..715797b 100644 --- a/demos/12-loading-models/application.cpp +++ b/demos/12-loading-models/application.cpp @@ -161,20 +161,16 @@ class obj_model { m_indices_size = indices.size(); //! @brief Creating vertex/index buffers with host visibility flags - const auto property_flags = static_cast( - vk::memory_property::host_visible_bit | - vk::memory_property::host_cached_bit); - vk::buffer_parameters vertex_params = { - .memory_mask = p_physical.memory_properties(property_flags), - .property_flags = vk::memory_property::device_local_bit, + .memory_mask = p_physical.memory_properties( + vk::memory_property::device_local_bit | + vk::memory_property::host_visible_bit), .usage = vk::buffer_usage::transfer_dst_bit | vk::buffer_usage::vertex_buffer_bit, }; vk::buffer_parameters index_params = { - .memory_mask = p_physical.memory_properties(property_flags), - .property_flags = static_cast( + .memory_mask = p_physical.memory_properties( vk::memory_property::host_visible_bit | vk::memory_property::host_cached_bit), .usage = vk::buffer_usage::index_buffer_bit, diff --git a/demos/12-loading-models/conanfile.py b/demos/12-loading-models/conanfile.py index eb977f5..b87d0ed 100644 --- a/demos/12-loading-models/conanfile.py +++ b/demos/12-loading-models/conanfile.py @@ -22,7 +22,7 @@ def requirements(self): self.requires("glm/1.0.1") self.requires("stb/cci.20230920") self.requires("tinyobjloader/2.0.0-rc10") - self.requires("vulkan-cpp/6.0") + self.requires("vulkan-cpp/6.1") def build(self): cmake = CMake(self) diff --git a/demos/13-skybox/conanfile.py b/demos/13-skybox/conanfile.py index eb977f5..b87d0ed 100644 --- a/demos/13-skybox/conanfile.py +++ b/demos/13-skybox/conanfile.py @@ -22,7 +22,7 @@ def requirements(self): self.requires("glm/1.0.1") self.requires("stb/cci.20230920") self.requires("tinyobjloader/2.0.0-rc10") - self.requires("vulkan-cpp/6.0") + self.requires("vulkan-cpp/6.1") def build(self): cmake = CMake(self) diff --git a/demos/13-skybox/environment_map.cppm b/demos/13-skybox/environment_map.cppm index ada7444..4ce050d 100644 --- a/demos/13-skybox/environment_map.cppm +++ b/demos/13-skybox/environment_map.cppm @@ -81,9 +81,6 @@ public: .memory_mask = m_physical_device->memory_properties( vk::memory_property::host_visible_bit | vk::memory_property::host_cached_bit), - .property_flags = static_cast( - vk::memory_property::host_visible_bit | - vk::memory_property::host_cached_bit), .usage = vk::buffer_usage::transfer_src_bit, }; @@ -104,11 +101,6 @@ public: m_skybox_image = vk::sample_image(m_device, skybox_image_params); // Transferring data from the CPU - // void* data = nullptr; - // vkMapMemory(m_device, staging_memory, 0, total_size_bytes, 0, - // &data); std::memcpy(data, pixels, - // static_cast(total_size_bytes)); vkUnmapMemory(m_device, - // staging_memory); std::span pixels_data( reinterpret_cast(pixels), image_size); staging_buffer.transfer(pixels_data); @@ -331,8 +323,6 @@ public: .memory_mask = m_physical_device->memory_properties( vk::memory_property::host_visible_bit | vk::memory_property::host_cached_bit), - .property_flags = vk::memory_property::host_visible_bit | - vk::memory_property::host_cached_bit, .usage = vk::buffer_usage::transfer_dst_bit | vk::buffer_usage::vertex_buffer_bit, }; diff --git a/demos/14-imgui/application.cpp b/demos/14-imgui/application.cpp index e447748..76eb9c6 100644 --- a/demos/14-imgui/application.cpp +++ b/demos/14-imgui/application.cpp @@ -165,15 +165,15 @@ class obj_model { vk::memory_property::host_cached_bit); vk::buffer_parameters vertex_params = { - .memory_mask = p_physical.memory_properties(property_flags), - .property_flags = vk::memory_property::device_local_bit, + .memory_mask = p_physical.memory_properties( + vk::memory_property::device_local_bit | + vk::memory_property::host_visible_bit), .usage = vk::buffer_usage::transfer_dst_bit | vk::buffer_usage::vertex_buffer_bit, }; vk::buffer_parameters index_params = { - .memory_mask = p_physical.memory_properties(property_flags), - .property_flags = static_cast( + .memory_mask = p_physical.memory_properties( vk::memory_property::host_visible_bit | vk::memory_property::host_cached_bit), .usage = vk::buffer_usage::index_buffer_bit, diff --git a/demos/14-imgui/conanfile.py b/demos/14-imgui/conanfile.py index eb977f5..b87d0ed 100644 --- a/demos/14-imgui/conanfile.py +++ b/demos/14-imgui/conanfile.py @@ -22,7 +22,7 @@ def requirements(self): self.requires("glm/1.0.1") self.requires("stb/cci.20230920") self.requires("tinyobjloader/2.0.0-rc10") - self.requires("vulkan-cpp/6.0") + self.requires("vulkan-cpp/6.1") def build(self): cmake = CMake(self) diff --git a/demos/15-dynamic-rendering/application.cpp b/demos/15-dynamic-rendering/application.cpp index b05ec4a..daa0f86 100644 --- a/demos/15-dynamic-rendering/application.cpp +++ b/demos/15-dynamic-rendering/application.cpp @@ -155,21 +155,15 @@ class obj_model { m_indices_size = vertices.size(); m_indices_size = indices.size(); - //! @brief Creating vertex/index buffers with host visibility flags - const auto property_flags = static_cast( - vk::memory_property::host_visible_bit | - vk::memory_property::host_cached_bit); - vk::buffer_parameters vertex_params = { - .memory_mask = p_physical.memory_properties(property_flags), - .property_flags = vk::memory_property::device_local_bit, + .memory_mask = p_physical.memory_properties( + vk::memory_property::device_local_bit), .usage = vk::buffer_usage::transfer_dst_bit | vk::buffer_usage::vertex_buffer_bit, }; vk::buffer_parameters index_params = { - .memory_mask = p_physical.memory_properties(property_flags), - .property_flags = static_cast( + .memory_mask = p_physical.memory_properties( vk::memory_property::host_visible_bit | vk::memory_property::host_cached_bit), .usage = vk::buffer_usage::index_buffer_bit, diff --git a/demos/15-dynamic-rendering/conanfile.py b/demos/15-dynamic-rendering/conanfile.py index eb977f5..b87d0ed 100644 --- a/demos/15-dynamic-rendering/conanfile.py +++ b/demos/15-dynamic-rendering/conanfile.py @@ -22,7 +22,7 @@ def requirements(self): self.requires("glm/1.0.1") self.requires("stb/cci.20230920") self.requires("tinyobjloader/2.0.0-rc10") - self.requires("vulkan-cpp/6.0") + self.requires("vulkan-cpp/6.1") def build(self): cmake = CMake(self) diff --git a/demos/16-descriptor-indexing/application.cpp b/demos/16-descriptor-indexing/application.cpp index 078d220..31f54bb 100644 --- a/demos/16-descriptor-indexing/application.cpp +++ b/demos/16-descriptor-indexing/application.cpp @@ -165,15 +165,15 @@ class obj_model { vk::memory_property::host_cached_bit); vk::buffer_parameters vertex_params = { - .memory_mask = p_physical.memory_properties(property_flags), - .property_flags = vk::memory_property::device_local_bit, + .memory_mask = p_physical.memory_properties( + vk::memory_property::device_local_bit | + vk::memory_property::host_visible_bit), .usage = vk::buffer_usage::transfer_dst_bit | vk::buffer_usage::vertex_buffer_bit, }; vk::buffer_parameters index_params = { - .memory_mask = p_physical.memory_properties(property_flags), - .property_flags = static_cast( + .memory_mask = p_physical.memory_properties( vk::memory_property::host_visible_bit | vk::memory_property::host_cached_bit), .usage = vk::buffer_usage::index_buffer_bit, diff --git a/demos/16-descriptor-indexing/conanfile.py b/demos/16-descriptor-indexing/conanfile.py index eb977f5..b87d0ed 100644 --- a/demos/16-descriptor-indexing/conanfile.py +++ b/demos/16-descriptor-indexing/conanfile.py @@ -22,7 +22,7 @@ def requirements(self): self.requires("glm/1.0.1") self.requires("stb/cci.20230920") self.requires("tinyobjloader/2.0.0-rc10") - self.requires("vulkan-cpp/6.0") + self.requires("vulkan-cpp/6.1") def build(self): cmake = CMake(self) diff --git a/demos/17-buffer-device-address/application.cpp b/demos/17-buffer-device-address/application.cpp index 8d78a8c..0e57d07 100644 --- a/demos/17-buffer-device-address/application.cpp +++ b/demos/17-buffer-device-address/application.cpp @@ -161,21 +161,16 @@ class obj_model { m_indices_size = vertices.size(); m_indices_size = indices.size(); - //! @brief Creating vertex/index buffers with host visibility flags - const auto property_flags = static_cast( - vk::memory_property::host_visible_bit | - vk::memory_property::host_cached_bit); - vk::buffer_parameters vertex_params = { - .memory_mask = p_physical.memory_properties(property_flags), - .property_flags = vk::memory_property::device_local_bit, + .memory_mask = p_physical.memory_properties( + vk::memory_property::device_local_bit | + vk::memory_property::host_visible_bit), .usage = vk::buffer_usage::transfer_dst_bit | vk::buffer_usage::vertex_buffer_bit, }; vk::buffer_parameters index_params = { - .memory_mask = p_physical.memory_properties(property_flags), - .property_flags = static_cast( + .memory_mask = p_physical.memory_properties( vk::memory_property::host_visible_bit | vk::memory_property::host_cached_bit), .usage = vk::buffer_usage::index_buffer_bit, diff --git a/demos/17-buffer-device-address/conanfile.py b/demos/17-buffer-device-address/conanfile.py index 5d2a70c..da977e8 100644 --- a/demos/17-buffer-device-address/conanfile.py +++ b/demos/17-buffer-device-address/conanfile.py @@ -20,7 +20,7 @@ def requirements(self): self.requires("glm/1.0.1") self.requires("stb/cci.20230920") self.requires("tinyobjloader/2.0.0-rc10") - self.requires("vulkan-cpp/6.0") + self.requires("vulkan-cpp/6.1") def build(self): cmake = CMake(self) diff --git a/demos/2-physical-device/conanfile.py b/demos/2-physical-device/conanfile.py index eb977f5..b87d0ed 100644 --- a/demos/2-physical-device/conanfile.py +++ b/demos/2-physical-device/conanfile.py @@ -22,7 +22,7 @@ def requirements(self): self.requires("glm/1.0.1") self.requires("stb/cci.20230920") self.requires("tinyobjloader/2.0.0-rc10") - self.requires("vulkan-cpp/6.0") + self.requires("vulkan-cpp/6.1") def build(self): cmake = CMake(self) diff --git a/demos/3-logical-device/conanfile.py b/demos/3-logical-device/conanfile.py index eb977f5..b87d0ed 100644 --- a/demos/3-logical-device/conanfile.py +++ b/demos/3-logical-device/conanfile.py @@ -22,7 +22,7 @@ def requirements(self): self.requires("glm/1.0.1") self.requires("stb/cci.20230920") self.requires("tinyobjloader/2.0.0-rc10") - self.requires("vulkan-cpp/6.0") + self.requires("vulkan-cpp/6.1") def build(self): cmake = CMake(self) diff --git a/demos/4-surface/conanfile.py b/demos/4-surface/conanfile.py index eb977f5..b87d0ed 100644 --- a/demos/4-surface/conanfile.py +++ b/demos/4-surface/conanfile.py @@ -22,7 +22,7 @@ def requirements(self): self.requires("glm/1.0.1") self.requires("stb/cci.20230920") self.requires("tinyobjloader/2.0.0-rc10") - self.requires("vulkan-cpp/6.0") + self.requires("vulkan-cpp/6.1") def build(self): cmake = CMake(self) diff --git a/demos/5-swapchain/conanfile.py b/demos/5-swapchain/conanfile.py index eb977f5..b87d0ed 100644 --- a/demos/5-swapchain/conanfile.py +++ b/demos/5-swapchain/conanfile.py @@ -22,7 +22,7 @@ def requirements(self): self.requires("glm/1.0.1") self.requires("stb/cci.20230920") self.requires("tinyobjloader/2.0.0-rc10") - self.requires("vulkan-cpp/6.0") + self.requires("vulkan-cpp/6.1") def build(self): cmake = CMake(self) diff --git a/demos/6-graphics-pipeline/conanfile.py b/demos/6-graphics-pipeline/conanfile.py index eb977f5..b87d0ed 100644 --- a/demos/6-graphics-pipeline/conanfile.py +++ b/demos/6-graphics-pipeline/conanfile.py @@ -22,7 +22,7 @@ def requirements(self): self.requires("glm/1.0.1") self.requires("stb/cci.20230920") self.requires("tinyobjloader/2.0.0-rc10") - self.requires("vulkan-cpp/6.0") + self.requires("vulkan-cpp/6.1") def build(self): cmake = CMake(self) diff --git a/demos/7-vertex-buffer/application.cpp b/demos/7-vertex-buffer/application.cpp index 61b4d4e..35b652e 100644 --- a/demos/7-vertex-buffer/application.cpp +++ b/demos/7-vertex-buffer/application.cpp @@ -310,12 +310,10 @@ main() { } }; - const auto property_flags = - static_cast(vk::memory_property::host_visible_bit | - vk::memory_property::host_cached_bit); vk::buffer_parameters vertex_params = { - .memory_mask = physical_device.memory_properties(property_flags), - .property_flags = vk::memory_property::device_local_bit, + .memory_mask = physical_device.memory_properties( + vk::memory_property::device_local_bit | + vk::memory_property::host_visible_bit), .usage = vk::buffer_usage::transfer_dst_bit | vk::buffer_usage::vertex_buffer_bit, }; diff --git a/demos/7-vertex-buffer/conanfile.py b/demos/7-vertex-buffer/conanfile.py index eb977f5..b87d0ed 100644 --- a/demos/7-vertex-buffer/conanfile.py +++ b/demos/7-vertex-buffer/conanfile.py @@ -22,7 +22,7 @@ def requirements(self): self.requires("glm/1.0.1") self.requires("stb/cci.20230920") self.requires("tinyobjloader/2.0.0-rc10") - self.requires("vulkan-cpp/6.0") + self.requires("vulkan-cpp/6.1") def build(self): cmake = CMake(self) diff --git a/demos/8-index-uniform-buffers/application.cpp b/demos/8-index-uniform-buffers/application.cpp index ebc3060..fcf13de 100644 --- a/demos/8-index-uniform-buffers/application.cpp +++ b/demos/8-index-uniform-buffers/application.cpp @@ -333,14 +333,11 @@ main() { }, }; - const auto property_flags = - static_cast(vk::memory_property::host_visible_bit | - vk::memory_property::host_cached_bit); - // Creating vertex buffers vk::buffer_parameters vertex_params = { - .memory_mask = physical_device.memory_properties(property_flags), - .property_flags = vk::memory_property::device_local_bit, + .memory_mask = physical_device.memory_properties( + vk::memory_property::device_local_bit | + vk::memory_property::host_visible_bit), .usage = vk::buffer_usage::transfer_dst_bit | vk::buffer_usage::vertex_buffer_bit, }; @@ -349,8 +346,7 @@ main() { // Creating index buffer std::array indices = { 0, 1, 2, 2, 3, 0 }; vk::buffer_parameters index_params = { - .memory_mask = physical_device.memory_properties(property_flags), - .property_flags = static_cast( + .memory_mask = physical_device.memory_properties( vk::memory_property::host_visible_bit | vk::memory_property::host_cached_bit), .usage = vk::buffer_usage::index_buffer_bit, diff --git a/demos/8-index-uniform-buffers/conanfile.py b/demos/8-index-uniform-buffers/conanfile.py index eb977f5..b87d0ed 100644 --- a/demos/8-index-uniform-buffers/conanfile.py +++ b/demos/8-index-uniform-buffers/conanfile.py @@ -22,7 +22,7 @@ def requirements(self): self.requires("glm/1.0.1") self.requires("stb/cci.20230920") self.requires("tinyobjloader/2.0.0-rc10") - self.requires("vulkan-cpp/6.0") + self.requires("vulkan-cpp/6.1") def build(self): cmake = CMake(self) diff --git a/demos/9-uniforms/application.cpp b/demos/9-uniforms/application.cpp index 0598bfe..53e46b9 100644 --- a/demos/9-uniforms/application.cpp +++ b/demos/9-uniforms/application.cpp @@ -368,14 +368,12 @@ main() { .color = { 1.0f, 1.0f, 1.0f }, } }; - const auto property_flags = - static_cast(vk::memory_property::host_visible_bit | - vk::memory_property::host_cached_bit); // Creating vertex buffer vk::buffer_parameters vertex_params = { - .memory_mask = physical_device.memory_properties(property_flags), - .property_flags = vk::memory_property::device_local_bit, + .memory_mask = physical_device.memory_properties( + vk::memory_property::device_local_bit | + vk::memory_property::host_visible_bit), .usage = vk::buffer_usage::transfer_dst_bit | vk::buffer_usage::vertex_buffer_bit, }; @@ -384,8 +382,7 @@ main() { // Creating index buffer std::array indices = { 0, 1, 2, 2, 3, 0 }; vk::buffer_parameters index_params = { - .memory_mask = physical_device.memory_properties(property_flags), - .property_flags = static_cast( + .memory_mask = physical_device.memory_properties( vk::memory_property::host_visible_bit | vk::memory_property::host_cached_bit), .usage = vk::buffer_usage::index_buffer_bit, diff --git a/demos/9-uniforms/conanfile.py b/demos/9-uniforms/conanfile.py index eb977f5..b87d0ed 100644 --- a/demos/9-uniforms/conanfile.py +++ b/demos/9-uniforms/conanfile.py @@ -22,7 +22,7 @@ def requirements(self): self.requires("glm/1.0.1") self.requires("stb/cci.20230920") self.requires("tinyobjloader/2.0.0-rc10") - self.requires("vulkan-cpp/6.0") + self.requires("vulkan-cpp/6.1") def build(self): cmake = CMake(self) diff --git a/vulkan-cpp/descriptor_resource.cppm b/vulkan-cpp/descriptor_resource.cppm index 535d1fb..f14fb4c 100644 --- a/vulkan-cpp/descriptor_resource.cppm +++ b/vulkan-cpp/descriptor_resource.cppm @@ -273,11 +273,9 @@ export namespace vk { * * vk::descriptor_resource set0(logical_device, layout); * - * // Uniform Buffers Handle - * std::array uniforms0 = { - * vk::write_buffer{ - * .buffer = test_ubo, - * .offset = 0, + * // Specify the uniform handles to perform update operations with + * the descriptor set specified std::array + * uniforms0 = { vk::write_buffer{ .buffer = test_ubo, .offset = 0, * .range = static_cast(test_ubo.size_bytes()), * }, * }; @@ -320,7 +318,9 @@ export namespace vk { std::unordered_map> image_infos; - // handle uniforms + // Reconfigure the VkWriteDescriptorBufferInfo with the + // parameters accroding vk::write_buffer_descriptor + // specifications for (const auto& ubo : p_uniforms) { for (const auto& uniform : ubo.uniforms) { buffer_infos[ubo.dst_binding].emplace_back( @@ -332,7 +332,7 @@ export namespace vk { .pNext = nullptr, .dstSet = m_descriptor_set, .dstBinding = ubo.dst_binding, - .dstArrayElement = 0, + .dstArrayElement = ubo.dst_array_element, .descriptorCount = static_cast( buffer_infos[ubo.dst_binding].size()), .descriptorType = VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER, @@ -356,7 +356,7 @@ export namespace vk { .pNext = nullptr, .dstSet = m_descriptor_set, .dstBinding = ubo.dst_binding, - .dstArrayElement = 0, + .dstArrayElement = ubo.dst_array_element, .descriptorCount = static_cast( image_infos[ubo.dst_binding].size()), .descriptorType = @@ -375,8 +375,8 @@ export namespace vk { nullptr); // Ensures to clear up so we dont have any existing handles - // because they only need to exist until we've updated the - // descriptors + // because they only need to exist until we've updated this + // descriptor set in particular buffer_infos.clear(); image_infos.clear(); } diff --git a/vulkan-cpp/texture.cppm b/vulkan-cpp/texture.cppm index adaa79a..cb09cf9 100644 --- a/vulkan-cpp/texture.cppm +++ b/vulkan-cpp/texture.cppm @@ -70,8 +70,6 @@ export namespace vk { // Performing staging transfers buffer_parameters staging_options = { .memory_mask = img_options.memory_mask, - .property_flags = memory_property::host_visible_bit | - memory_property::host_cached_bit, .usage = buffer_usage::transfer_src_bit, }; buffer staging(m_device, p_data.size(), staging_options); @@ -156,14 +154,10 @@ export namespace vk { m_image = sample_image(m_device, img_options); - // Setup staging buffer - uint32_t property_flag = memory_property::host_visible_bit | - memory_property::host_cached_bit; - + // Staging buffer to transfer CPU-visible data to GPU-visible + // handles buffer_parameters staging_options = { .memory_mask = img_options.memory_mask, - .property_flags = - static_cast(property_flag), .usage = buffer_usage::transfer_src_bit, }; buffer staging( diff --git a/vulkan-cpp/types.cppm b/vulkan-cpp/types.cppm index 676047a..b475765 100644 --- a/vulkan-cpp/types.cppm +++ b/vulkan-cpp/types.cppm @@ -1557,8 +1557,6 @@ export namespace vk { struct write_image { VkSampler sampler = nullptr; VkImageView view = nullptr; - // VkImageLayout - // image_layout=VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL; image_layout layout; }; struct write_buffer { @@ -1569,11 +1567,13 @@ export namespace vk { struct write_buffer_descriptor { uint32_t dst_binding; + uint32_t dst_array_element = 0; std::span uniforms; }; struct write_image_descriptor { uint32_t dst_binding; + uint32_t dst_array_element = 0; std::span sample_images; }; @@ -1625,7 +1625,6 @@ export namespace vk { struct buffer_parameters { uint32_t memory_mask = 0; - memory_property property_flags; buffer_usage usage; memory_allocate_flags allocate_flags; VkSharingMode share_mode = VK_SHARING_MODE_EXCLUSIVE; diff --git a/vulkan-cpp/vertex_buffer.cppm b/vulkan-cpp/vertex_buffer.cppm index 7e713af..92298ea 100644 --- a/vulkan-cpp/vertex_buffer.cppm +++ b/vulkan-cpp/vertex_buffer.cppm @@ -35,9 +35,6 @@ export namespace vk { // Staging buffer operations buffer_parameters staging_buffer_params = { .memory_mask = p_params.memory_mask, - .property_flags = static_cast( - memory_property::host_visible_bit | - memory_property::host_cached_bit), .usage = buffer_usage::transfer_src_bit | buffer_usage::storage_buffer_bit, .debug_name = p_params.debug_name, @@ -106,9 +103,6 @@ export namespace vk { uint32_t usage = transfer | storage; buffer_parameters staging_buffer_params = { .memory_mask = p_params.memory_mask, - .property_flags = static_cast( - memory_property::host_visible_bit | - memory_property::host_cached_bit), .usage = buffer_usage::transfer_src_bit | buffer_usage::storage_buffer_bit, .debug_name = p_params.debug_name,