From a930066592f164e433dbdbef6d2507cd068b3520 Mon Sep 17 00:00:00 2001 From: pawel-jastrzebski-mobica Date: Fri, 13 Oct 2023 13:56:20 +0200 Subject: [PATCH 01/52] Add initial test framework. Signed-off-by: Pawel Jastrzebski --- .../CMakeLists.txt | 30 +++ .../README.adoc | 89 +++++++++ ...namic_state3_multisample_rasterization.cpp | 174 ++++++++++++++++++ ...dynamic_state3_multisample_rasterization.h | 42 +++++ 4 files changed, 335 insertions(+) create mode 100644 samples/extensions/dynamic_state3_multisample_rasterization/CMakeLists.txt create mode 100644 samples/extensions/dynamic_state3_multisample_rasterization/README.adoc create mode 100644 samples/extensions/dynamic_state3_multisample_rasterization/dynamic_state3_multisample_rasterization.cpp create mode 100644 samples/extensions/dynamic_state3_multisample_rasterization/dynamic_state3_multisample_rasterization.h diff --git a/samples/extensions/dynamic_state3_multisample_rasterization/CMakeLists.txt b/samples/extensions/dynamic_state3_multisample_rasterization/CMakeLists.txt new file mode 100644 index 000000000..19146cf7e --- /dev/null +++ b/samples/extensions/dynamic_state3_multisample_rasterization/CMakeLists.txt @@ -0,0 +1,30 @@ +# Copyright (c) 2023, Arm Limited and Contributors +# +# SPDX-License-Identifier: Apache-2.0 +# +# Licensed under the Apache License, Version 2.0 the "License"; +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +get_filename_component(FOLDER_NAME ${CMAKE_CURRENT_LIST_DIR} NAME) +get_filename_component(PARENT_DIR ${CMAKE_CURRENT_LIST_DIR} PATH) +get_filename_component(CATEGORY_NAME ${PARENT_DIR} NAME) + +add_sample( + ID ${FOLDER_NAME} + CATEGORY ${CATEGORY_NAME} + AUTHOR "Mobica" + NAME "Extended Dynamic State3 Multisample Rasterization" + DESCRIPTION "Sample description" + SHADER_FILES_GLSL + "triangle.vert" + "triangle.frag") diff --git a/samples/extensions/dynamic_state3_multisample_rasterization/README.adoc b/samples/extensions/dynamic_state3_multisample_rasterization/README.adoc new file mode 100644 index 000000000..f1bdf2b33 --- /dev/null +++ b/samples/extensions/dynamic_state3_multisample_rasterization/README.adoc @@ -0,0 +1,89 @@ +//// +- Copyright (c) 2019-2023, The Khronos Group +- +- SPDX-License-Identifier: Apache-2.0 +- +- Licensed under the Apache License, Version 2.0 the "License"; +- you may not use this file except in compliance with the License. +- You may obtain a copy of the License at +- +- http://www.apache.org/licenses/LICENSE-2.0 +- +- Unless required by applicable law or agreed to in writing, software +- distributed under the License is distributed on an "AS IS" BASIS, +- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +- See the License for the specific language governing permissions and +- limitations under the License. +- +//// + +// NOTE: Remove the following comment block for the actual readme of your sample --> + +//// +This is a template for the sample's readme. Every new sample should come with a readme that contains at least a short tutorial that accompanies the code of the example. + +Readmes are written in Asciidoc (see https://asciidoc.org/). + +You can freely choose how to structure it, but it should always contain an overview and conclusion paragraph. + +The readme can (and most often should) show code from along with an explanation. Code in asciidoc can be rendered with syntax highlighting using the following syntax: + +[,cpp] +---- +void main() { + std::cout << "Hello World"; +} +---- + +or + +[,glsl] +---- +void main() { + gl_color = vec4(1.0f); +} +---- + +Ideally it also contains an image of how the sample is supposed to look. + +For an example you can take a look at the readme's of existing samples, e.g. https://raw.githubusercontent.com/KhronosGroup/Vulkan-Samples/main/samples/extensions/descriptor_indexing/README.adoc +//// + += Sample name + +//// +The following block adds linkage to this repo in the Vulkan docs site project. It's only visible if the file is viewed via the Antora framework. +//// + +ifdef::site-gen-antora[] +TIP: The source for this sample can be found in the https://github.com/KhronosGroup/Vulkan-Samples/tree/main/samples/PUT_SAMPLE_PATH_HERE[Khronos Vulkan samples github repository]. +endif::[] + + +== Overview + +//// +This chapter should contain an overview of what this sample is trying to achieve. If extensions are used, this chapter should also list those. + +The following chapters get into the details on how the sample is working, what features are used, etc. + +The chapter itself can be structured by using sub paragraphs, e.g.: + +# Feature description + +# Enabling extensions + +# etc. + +//// + +== Conclusion + +//// +The tutorial should end with a conclusion chapter that recaps the tutorial and (if applicable) talks about pros and cons of the features demonstrated in this sample +//// + +//// +NOTE: Please also add a link to the new samples' README.adoc to the file located in ./antora/modules/ROOT/nav.adoc +THis is necessary to have the sample show up on the build for the docs site under https://docs.vulkan.org +//// diff --git a/samples/extensions/dynamic_state3_multisample_rasterization/dynamic_state3_multisample_rasterization.cpp b/samples/extensions/dynamic_state3_multisample_rasterization/dynamic_state3_multisample_rasterization.cpp new file mode 100644 index 000000000..95fa5b825 --- /dev/null +++ b/samples/extensions/dynamic_state3_multisample_rasterization/dynamic_state3_multisample_rasterization.cpp @@ -0,0 +1,174 @@ +/* Copyright (c) 2023, Arm Limited and Contributors + * + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed under the Apache License, Version 2.0 the "License"; + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include "dynamic_state3_multisample_rasterization.h" + +DynamicState3MultisampleRasterization::DynamicState3MultisampleRasterization() +{ +} + +DynamicState3MultisampleRasterization::~DynamicState3MultisampleRasterization() +{ + if (device) + { + vkDestroyPipeline(get_device().get_handle(), sample_pipeline, nullptr); + vkDestroyPipelineLayout(get_device().get_handle(), sample_pipeline_layout, nullptr); + } +} + +bool DynamicState3MultisampleRasterization::prepare(const vkb::ApplicationOptions &options) +{ + if (!ApiVulkanSample::prepare(options)) + { + return false; + } + + prepare_pipelines(); + build_command_buffers(); + prepared = true; + return true; +} + +void DynamicState3MultisampleRasterization::prepare_pipelines() +{ + // Create a blank pipeline layout. + // We are not binding any resources to the pipeline in this sample. + VkPipelineLayoutCreateInfo layout_info = vkb::initializers::pipeline_layout_create_info(nullptr, 0); + VK_CHECK(vkCreatePipelineLayout(get_device().get_handle(), &layout_info, nullptr, &sample_pipeline_layout)); + + VkPipelineVertexInputStateCreateInfo vertex_input = vkb::initializers::pipeline_vertex_input_state_create_info(); + + // Specify we will use triangle lists to draw geometry. + VkPipelineInputAssemblyStateCreateInfo input_assembly = vkb::initializers::pipeline_input_assembly_state_create_info(VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST, 0, VK_FALSE); + + // Specify rasterization state. + VkPipelineRasterizationStateCreateInfo raster = vkb::initializers::pipeline_rasterization_state_create_info(VK_POLYGON_MODE_FILL, VK_CULL_MODE_BACK_BIT, VK_FRONT_FACE_CLOCKWISE); + + // Our attachment will write to all color channels, but no blending is enabled. + VkPipelineColorBlendAttachmentState blend_attachment = vkb::initializers::pipeline_color_blend_attachment_state(VK_COLOR_COMPONENT_R_BIT | VK_COLOR_COMPONENT_G_BIT | VK_COLOR_COMPONENT_B_BIT | VK_COLOR_COMPONENT_A_BIT, VK_FALSE); + + VkPipelineColorBlendStateCreateInfo blend = vkb::initializers::pipeline_color_blend_state_create_info(1, &blend_attachment); + + // We will have one viewport and scissor box. + VkPipelineViewportStateCreateInfo viewport = vkb::initializers::pipeline_viewport_state_create_info(1, 1); + + // Enable depth testing (using reversed depth-buffer for increased precision). + VkPipelineDepthStencilStateCreateInfo depth_stencil = vkb::initializers::pipeline_depth_stencil_state_create_info(VK_TRUE, VK_TRUE, VK_COMPARE_OP_GREATER); + + // No multisampling. + VkPipelineMultisampleStateCreateInfo multisample = vkb::initializers::pipeline_multisample_state_create_info(VK_SAMPLE_COUNT_1_BIT); + + // Specify that these states will be dynamic, i.e. not part of pipeline state object. + std::array dynamics{VK_DYNAMIC_STATE_VIEWPORT, VK_DYNAMIC_STATE_SCISSOR}; + VkPipelineDynamicStateCreateInfo dynamic = vkb::initializers::pipeline_dynamic_state_create_info(dynamics.data(), vkb::to_u32(dynamics.size())); + + // Load our SPIR-V shaders. + std::array shader_stages{}; + + // Vertex stage of the pipeline + shader_stages[0] = load_shader("triangle.vert", VK_SHADER_STAGE_VERTEX_BIT); + shader_stages[1] = load_shader("triangle.frag", VK_SHADER_STAGE_FRAGMENT_BIT); + + // We need to specify the pipeline layout and the render pass description up front as well. + VkGraphicsPipelineCreateInfo pipeline_create_info = vkb::initializers::pipeline_create_info(sample_pipeline_layout, render_pass); + pipeline_create_info.stageCount = vkb::to_u32(shader_stages.size()); + pipeline_create_info.pStages = shader_stages.data(); + pipeline_create_info.pVertexInputState = &vertex_input; + pipeline_create_info.pInputAssemblyState = &input_assembly; + pipeline_create_info.pRasterizationState = &raster; + pipeline_create_info.pColorBlendState = &blend; + pipeline_create_info.pMultisampleState = &multisample; + pipeline_create_info.pViewportState = &viewport; + pipeline_create_info.pDepthStencilState = &depth_stencil; + pipeline_create_info.pDynamicState = &dynamic; + + VK_CHECK(vkCreateGraphicsPipelines(get_device().get_handle(), pipeline_cache, 1, &pipeline_create_info, nullptr, &sample_pipeline)); +} + +void DynamicState3MultisampleRasterization::build_command_buffers() +{ + VkCommandBufferBeginInfo command_buffer_begin_info = vkb::initializers::command_buffer_begin_info(); + + // Clear color and depth values. + VkClearValue clear_values[2]; + clear_values[0].color = {{0.0f, 0.0f, 0.0f, 0.0f}}; + clear_values[1].depthStencil = {0.0f, 0}; + + // Begin the render pass. + VkRenderPassBeginInfo render_pass_begin_info = vkb::initializers::render_pass_begin_info(); + render_pass_begin_info.renderPass = render_pass; + render_pass_begin_info.renderArea.offset.x = 0; + render_pass_begin_info.renderArea.offset.y = 0; + render_pass_begin_info.renderArea.extent.width = width; + render_pass_begin_info.renderArea.extent.height = height; + render_pass_begin_info.clearValueCount = 2; + render_pass_begin_info.pClearValues = clear_values; + + for (int32_t i = 0; i < draw_cmd_buffers.size(); ++i) + { + auto cmd = draw_cmd_buffers[i]; + + // Begin command buffer. + vkBeginCommandBuffer(cmd, &command_buffer_begin_info); + + // Set framebuffer for this command buffer. + render_pass_begin_info.framebuffer = framebuffers[i]; + // We will add draw commands in the same command buffer. + vkCmdBeginRenderPass(cmd, &render_pass_begin_info, VK_SUBPASS_CONTENTS_INLINE); + + // Bind the graphics pipeline. + vkCmdBindPipeline(cmd, VK_PIPELINE_BIND_POINT_GRAPHICS, sample_pipeline); + + // Set viewport dynamically + VkViewport viewport = vkb::initializers::viewport(static_cast(width), static_cast(height), 0.0f, 1.0f); + vkCmdSetViewport(cmd, 0, 1, &viewport); + + // Set scissor dynamically + VkRect2D scissor = vkb::initializers::rect2D(width, height, 0, 0); + vkCmdSetScissor(cmd, 0, 1, &scissor); + + // Draw three vertices with one instance. + vkCmdDraw(cmd, 3, 1, 0, 0); + + // Draw user interface. + draw_ui(draw_cmd_buffers[i]); + + // Complete render pass. + vkCmdEndRenderPass(cmd); + + // Complete the command buffer. + VK_CHECK(vkEndCommandBuffer(cmd)); + } +} + +void DynamicState3MultisampleRasterization::render(float delta_time) +{ + if (!prepared) + { + return; + } + ApiVulkanSample::prepare_frame(); + submit_info.commandBufferCount = 1; + submit_info.pCommandBuffers = &draw_cmd_buffers[current_buffer]; + VK_CHECK(vkQueueSubmit(queue, 1, &submit_info, VK_NULL_HANDLE)); + ApiVulkanSample::submit_frame(); +} + +std::unique_ptr create_dynamic_state3_multisample_rasterization() +{ + return std::make_unique(); +} diff --git a/samples/extensions/dynamic_state3_multisample_rasterization/dynamic_state3_multisample_rasterization.h b/samples/extensions/dynamic_state3_multisample_rasterization/dynamic_state3_multisample_rasterization.h new file mode 100644 index 000000000..ddc655d6e --- /dev/null +++ b/samples/extensions/dynamic_state3_multisample_rasterization/dynamic_state3_multisample_rasterization.h @@ -0,0 +1,42 @@ +/* Copyright (c) 2023, Arm Limited and Contributors + * + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed under the Apache License, Version 2.0 the "License"; + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#pragma once + +#include "api_vulkan_sample.h" + +class DynamicState3MultisampleRasterization : public ApiVulkanSample +{ + public: + DynamicState3MultisampleRasterization(); + virtual ~DynamicState3MultisampleRasterization(); + + // Create pipeline + void prepare_pipelines(); + + // Override basic framework functionality + void build_command_buffers() override; + void render(float delta_time) override; + bool prepare(const vkb::ApplicationOptions &options) override; + + private: + // Sample specific data + VkPipeline sample_pipeline{}; + VkPipelineLayout sample_pipeline_layout{}; +}; + +std::unique_ptr create_dynamic_state3_multisample_rasterization(); From f36f9e6aa9d7c2ecef6a779d5ccb712e1cea8cd6 Mon Sep 17 00:00:00 2001 From: pawel-jastrzebski-mobica Date: Tue, 17 Oct 2023 14:30:10 +0200 Subject: [PATCH 02/52] Add MSAAm sample code. Signed-off-by: pawel-jastrzebski-mobica --- ...namic_state3_multisample_rasterization.cpp | 816 ++++++++++++++++++ ...dynamic_state3_multisample_rasterization.h | 198 +++++ 2 files changed, 1014 insertions(+) diff --git a/samples/extensions/dynamic_state3_multisample_rasterization/dynamic_state3_multisample_rasterization.cpp b/samples/extensions/dynamic_state3_multisample_rasterization/dynamic_state3_multisample_rasterization.cpp index 95fa5b825..750a59eac 100644 --- a/samples/extensions/dynamic_state3_multisample_rasterization/dynamic_state3_multisample_rasterization.cpp +++ b/samples/extensions/dynamic_state3_multisample_rasterization/dynamic_state3_multisample_rasterization.cpp @@ -17,8 +17,78 @@ #include "dynamic_state3_multisample_rasterization.h" +#include "common/vk_common.h" +#include "gltf_loader.h" +#include "gui.h" +#include "platform/filesystem.h" + +#include "rendering/postprocessing_renderpass.h" +#include "rendering/subpasses/forward_subpass.h" +#include "stats/stats.h" + +namespace +{ +const std::string to_string(VkSampleCountFlagBits count) +{ + switch (count) + { + case VK_SAMPLE_COUNT_1_BIT: + return "No MSAA"; + case VK_SAMPLE_COUNT_2_BIT: + return "2X MSAA"; + case VK_SAMPLE_COUNT_4_BIT: + return "4X MSAA"; + case VK_SAMPLE_COUNT_8_BIT: + return "8X MSAA"; + case VK_SAMPLE_COUNT_16_BIT: + return "16X MSAA"; + case VK_SAMPLE_COUNT_32_BIT: + return "32X MSAA"; + case VK_SAMPLE_COUNT_64_BIT: + return "64X MSAA"; + default: + return "Unknown"; + } +} + +const std::string to_string(VkResolveModeFlagBits mode) +{ + switch (mode) + { + case VK_RESOLVE_MODE_NONE: + return "None"; + case VK_RESOLVE_MODE_SAMPLE_ZERO_BIT: + return "Sample 0"; + case VK_RESOLVE_MODE_AVERAGE_BIT: + return "Average"; + case VK_RESOLVE_MODE_MIN_BIT: + return "Min"; + case VK_RESOLVE_MODE_MAX_BIT: + return "Max"; + default: + return "Unknown"; + } +} +} // namespace + DynamicState3MultisampleRasterization::DynamicState3MultisampleRasterization() { + // Extension of interest in this sample (optional) + add_device_extension(VK_KHR_DEPTH_STENCIL_RESOLVE_EXTENSION_NAME, true); + + // Extension dependency requirements (given that instance API version is 1.0.0) + add_instance_extension(VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME, true); + add_device_extension(VK_KHR_CREATE_RENDERPASS_2_EXTENSION_NAME, true); + add_device_extension(VK_KHR_MAINTENANCE2_EXTENSION_NAME, true); + add_device_extension(VK_KHR_MULTIVIEW_EXTENSION_NAME, true); + + auto &config = get_configuration(); + + // MSAA will be enabled by default if supported + // Batch mode will test the toggle between 1 or 2 renderpasses + // with writeback resolve of color and depth + config.insert(0, gui_run_postprocessing, false); + config.insert(1, gui_run_postprocessing, true); } DynamicState3MultisampleRasterization::~DynamicState3MultisampleRasterization() @@ -39,10 +109,755 @@ bool DynamicState3MultisampleRasterization::prepare(const vkb::ApplicationOption prepare_pipelines(); build_command_buffers(); + + prepare_supported_sample_count_list(); + + depth_writeback_resolve_supported = device->is_enabled(VK_KHR_DEPTH_STENCIL_RESOLVE_EXTENSION_NAME); + if (depth_writeback_resolve_supported) + { + prepare_depth_resolve_mode_list(); + } + + load_scene("scenes/space_module/SpaceModule.gltf"); + + auto &camera_node = vkb::add_free_camera(*scene, "main_camera", get_render_context().get_surface_extent()); + camera = dynamic_cast(&camera_node.get_component()); + + vkb::ShaderSource scene_vs("base.vert"); + vkb::ShaderSource scene_fs("base.frag"); + auto scene_subpass = std::make_unique(get_render_context(), std::move(scene_vs), std::move(scene_fs), *scene, *camera); + scene_pipeline = std::make_unique(); + scene_pipeline->add_subpass(std::move(scene_subpass)); + vkb::ShaderSource postprocessing_vs("postprocessing/postprocessing.vert"); + postprocessing_pipeline = std::make_unique(get_render_context(), std::move(postprocessing_vs)); + postprocessing_pipeline->add_pass().add_subpass(vkb::ShaderSource("postprocessing/outline.frag")); + + update_pipelines(); + + stats->request_stats({vkb::StatIndex::frame_times, + vkb::StatIndex::gpu_ext_read_bytes, + vkb::StatIndex::gpu_ext_write_bytes}); + + gui = std::make_unique(*this, *window, stats.get()); + prepared = true; return true; } +void DynamicState3MultisampleRasterization::prepare_render_context() +{ + get_render_context().prepare(1, std::bind(&DynamicState3MultisampleRasterization::create_render_target, this, std::placeholders::_1)); +} + +std::unique_ptr DynamicState3MultisampleRasterization::create_render_target(vkb::core::Image &&swapchain_image) +{ + auto &device = swapchain_image.get_device(); + auto &extent = swapchain_image.get_extent(); + + auto depth_format = vkb::get_suitable_depth_format(device.get_gpu().get_handle()); + bool msaa_enabled = sample_count != VK_SAMPLE_COUNT_1_BIT; + VkImageUsageFlags depth_usage = VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT; + VkImageUsageFlags depth_resolve_usage = VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT; + if (run_postprocessing) + { + // Depth needs to be read by the postprocessing subpass + if (msaa_enabled && depth_writeback_resolve_supported && resolve_depth_on_writeback) + { + // Depth is resolved + depth_usage |= VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT; + depth_resolve_usage |= VK_IMAGE_USAGE_SAMPLED_BIT; + } + else + { + // Postprocessing reads multisampled depth + depth_usage |= VK_IMAGE_USAGE_SAMPLED_BIT; + depth_resolve_usage |= VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT; + } + } + else + { + // Depth attachments are transient + depth_usage |= VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT; + depth_resolve_usage |= VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT; + } + + vkb::core::Image depth_image{device, + extent, + depth_format, + depth_usage, + VMA_MEMORY_USAGE_GPU_ONLY, + sample_count}; + + vkb::core::Image depth_resolve_image{device, + extent, + depth_format, + depth_resolve_usage, + VMA_MEMORY_USAGE_GPU_ONLY, + VK_SAMPLE_COUNT_1_BIT}; + + VkImageUsageFlags color_ms_usage = VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT; + if (ColorResolve::OnWriteback == color_resolve_method) + { + // Writeback resolve means that the multisampled attachment + // can be discarded at the end of the render pass + color_ms_usage |= VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT; + } + else if (ColorResolve::SeparatePass == color_resolve_method) + { + // Multisampled attachment will be stored and + // resolved outside the render pass + color_ms_usage |= VK_IMAGE_USAGE_TRANSFER_SRC_BIT; + } + + vkb::core::Image color_ms_image{device, + extent, + swapchain_image.get_format(), + color_ms_usage, + VMA_MEMORY_USAGE_GPU_ONLY, + sample_count}; + + VkImageUsageFlags color_resolve_usage = VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT; + if (run_postprocessing) + { + if (ColorResolve::SeparatePass == color_resolve_method) + { + // The multisampled color image will be resolved + // to this attachment with a transfer operation + color_resolve_usage |= VK_IMAGE_USAGE_TRANSFER_DST_BIT; + } + + // The resolved color image will be read by the postprocessing + // renderpass + color_resolve_usage |= VK_IMAGE_USAGE_SAMPLED_BIT; + } + + vkb::core::Image color_resolve_image{device, + extent, + swapchain_image.get_format(), + color_resolve_usage, + VMA_MEMORY_USAGE_GPU_ONLY, + VK_SAMPLE_COUNT_1_BIT}; + + scene_load_store.clear(); + std::vector images; + + // Attachment 0 - Swapchain + // Used by the scene renderpass if postprocessing is disabled + // Used by the postprocessing renderpass if postprocessing is enabled + i_swapchain = 0; + images.push_back(std::move(swapchain_image)); + scene_load_store.push_back({VK_ATTACHMENT_LOAD_OP_CLEAR, VK_ATTACHMENT_STORE_OP_STORE}); + + // Attachment 1 - Depth + // Always used by the scene renderpass, may or may not be multisampled + i_depth = 1; + images.push_back(std::move(depth_image)); + scene_load_store.push_back({VK_ATTACHMENT_LOAD_OP_CLEAR, VK_ATTACHMENT_STORE_OP_DONT_CARE}); + + // Attachment 2 - Multisampled color + // Used by the scene renderpass if MSAA is enabled + i_color_ms = 2; + images.push_back(std::move(color_ms_image)); + scene_load_store.push_back({VK_ATTACHMENT_LOAD_OP_CLEAR, VK_ATTACHMENT_STORE_OP_DONT_CARE}); + + // Attachment 3 - Resolved color + // Used as an output by the scene renderpass if MSAA and postprocessing are enabled + // Used as an input by the postprocessing renderpass + i_color_resolve = 3; + images.push_back(std::move(color_resolve_image)); + scene_load_store.push_back({VK_ATTACHMENT_LOAD_OP_CLEAR, VK_ATTACHMENT_STORE_OP_DONT_CARE}); + + // Attachment 4 - Resolved depth + // Used for writeback depth resolve if MSAA is enabled and the required extension is supported + i_depth_resolve = 4; + images.push_back(std::move(depth_resolve_image)); + scene_load_store.push_back({VK_ATTACHMENT_LOAD_OP_CLEAR, VK_ATTACHMENT_STORE_OP_DONT_CARE}); + + color_atts = {i_swapchain, i_color_ms, i_color_resolve}; + depth_atts = {i_depth, i_depth_resolve}; + + return std::make_unique(std::move(images)); +} + +void DynamicState3MultisampleRasterization::update(float delta_time) +{ + if ((gui_run_postprocessing != last_gui_run_postprocessing) || + (gui_sample_count != last_gui_sample_count) || + (gui_color_resolve_method != last_gui_color_resolve_method) || + (gui_resolve_depth_on_writeback != last_gui_resolve_depth_on_writeback) || + (gui_depth_resolve_mode != last_gui_depth_resolve_mode)) + { + run_postprocessing = gui_run_postprocessing; + sample_count = gui_sample_count; + color_resolve_method = gui_color_resolve_method; + resolve_depth_on_writeback = gui_resolve_depth_on_writeback; + depth_resolve_mode = gui_depth_resolve_mode; + + update_pipelines(); + + last_gui_run_postprocessing = gui_run_postprocessing; + last_gui_sample_count = gui_sample_count; + last_gui_color_resolve_method = gui_color_resolve_method; + last_gui_resolve_depth_on_writeback = gui_resolve_depth_on_writeback; + last_gui_depth_resolve_mode = gui_depth_resolve_mode; + } + + VulkanSample::update(delta_time); +} + +void DynamicState3MultisampleRasterization::update_pipelines() +{ + bool msaa_enabled = sample_count != VK_SAMPLE_COUNT_1_BIT; + if (run_postprocessing) + { + update_for_scene_and_postprocessing(msaa_enabled); + } + else + { + update_for_scene_only(msaa_enabled); + } + + // Default swapchain usage flags + std::set swapchain_usage = {VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT, VK_IMAGE_USAGE_TRANSFER_SRC_BIT}; + if (ColorResolve::SeparatePass == color_resolve_method && !run_postprocessing) + { + // The multisampled color image will be resolved + // to the swapchain with a transfer operation + swapchain_usage.insert(VK_IMAGE_USAGE_TRANSFER_DST_BIT); + } + + get_device().wait_idle(); + + get_render_context().update_swapchain(swapchain_usage); +} + +void DynamicState3MultisampleRasterization::update_for_scene_only(bool msaa_enabled) +{ + auto &scene_subpass = scene_pipeline->get_active_subpass(); + scene_subpass->set_sample_count(sample_count); + + if (msaa_enabled) + { + // Render multisampled color, to be resolved to the swapchain + use_multisampled_color(scene_subpass, scene_load_store, i_swapchain); + } + else + { + // Render color to the swapchain + use_singlesampled_color(scene_subpass, scene_load_store, i_swapchain); + } + + // Depth attachment is transient, it will not be needed after the renderpass + // If it is multisampled, there is no need to resolve it + scene_load_store[i_depth].store_op = VK_ATTACHMENT_STORE_OP_DONT_CARE; + disable_depth_writeback_resolve(scene_subpass, scene_load_store); + + // Auxiliary single-sampled color attachment is not used + scene_load_store[i_color_resolve].store_op = VK_ATTACHMENT_STORE_OP_DONT_CARE; + + // Update the scene renderpass + scene_pipeline->set_load_store(scene_load_store); +} + +void DynamicState3MultisampleRasterization::update_for_scene_and_postprocessing(bool msaa_enabled) +{ + auto &scene_subpass = scene_pipeline->get_active_subpass(); + scene_subpass->set_sample_count(sample_count); + + // The color and depth attachments will be the input of the postprocessing renderpass + if (msaa_enabled) + { + // Resolve multisampled color to an intermediate attachment + use_multisampled_color(scene_subpass, scene_load_store, i_color_resolve); + + // Store multisampled depth + // Resolve it first if enabled and supported, + store_multisampled_depth(scene_subpass, scene_load_store); + } + else + { + // Render color to an intermediate attachment + use_singlesampled_color(scene_subpass, scene_load_store, i_color_resolve); + + // Store single-sampled depth + scene_load_store[i_depth].store_op = VK_ATTACHMENT_STORE_OP_STORE; + disable_depth_writeback_resolve(scene_subpass, scene_load_store); + } + + // Swapchain is not used in the scene renderpass + scene_load_store[i_swapchain].store_op = VK_ATTACHMENT_STORE_OP_DONT_CARE; + + // Update the scene renderpass + scene_pipeline->set_load_store(scene_load_store); +} + +void DynamicState3MultisampleRasterization::use_multisampled_color(std::unique_ptr &subpass, std::vector &load_store, uint32_t resolve_attachment) +{ + // Render to multisampled color attachment + subpass->set_output_attachments({i_color_ms}); + + // Resolve color + if (ColorResolve::OnWriteback == color_resolve_method) + { + // Good practice + // Multisampled attachment is transient + // This allows tilers to completely avoid writing out the multisampled attachment to memory, + // a considerable performance and bandwidth improvement + load_store[i_color_ms].store_op = VK_ATTACHMENT_STORE_OP_DONT_CARE; + + // Enable writeback resolve to single-sampled attachment + subpass->set_color_resolve_attachments({resolve_attachment}); + + // Save resolved attachment + load_store[resolve_attachment].store_op = VK_ATTACHMENT_STORE_OP_STORE; + } + else if (ColorResolve::SeparatePass == color_resolve_method) + { + // Bad practice + // Save multisampled color attachment, will be resolved outside the renderpass + // Storing multisampled color should be avoided + load_store[i_color_ms].store_op = VK_ATTACHMENT_STORE_OP_STORE; + + // Disable writeback resolve + subpass->set_color_resolve_attachments({}); + load_store[resolve_attachment].store_op = VK_ATTACHMENT_STORE_OP_DONT_CARE; + } +} + +void DynamicState3MultisampleRasterization::use_singlesampled_color(std::unique_ptr &subpass, std::vector &load_store, uint32_t output_attachment) +{ + // Render to a single-sampled attachment + subpass->set_output_attachments({output_attachment}); + load_store[output_attachment].store_op = VK_ATTACHMENT_STORE_OP_STORE; + + // Multisampled color attachment is not used + load_store[i_color_ms].store_op = VK_ATTACHMENT_STORE_OP_DONT_CARE; + + // Disable writeback resolve + subpass->set_color_resolve_attachments({}); +} + +void DynamicState3MultisampleRasterization::store_multisampled_depth(std::unique_ptr &subpass, std::vector &load_store) +{ + if (depth_writeback_resolve_supported && resolve_depth_on_writeback) + { + // Good practice + // Multisampled attachment is transient + // This allows tilers to completely avoid writing out the multisampled attachment to memory, + // a considerable performance and bandwidth improvement + load_store[i_depth].store_op = VK_ATTACHMENT_STORE_OP_DONT_CARE; + + // Enable writeback resolve to single-sampled attachment + subpass->set_depth_stencil_resolve_attachment(i_depth_resolve); + subpass->set_depth_stencil_resolve_mode(depth_resolve_mode); + + // Save resolved attachment + load_store[i_depth_resolve].store_op = VK_ATTACHMENT_STORE_OP_STORE; + } + else + { + // Bad practice + // Save multisampled depth attachment, which cannot be resolved outside the renderpass + // Storing multisampled depth should be avoided + load_store[i_depth].store_op = VK_ATTACHMENT_STORE_OP_STORE; + + // Disable writeback resolve + disable_depth_writeback_resolve(subpass, load_store); + } +} + +void DynamicState3MultisampleRasterization::disable_depth_writeback_resolve(std::unique_ptr &subpass, std::vector &load_store) +{ + // Auxiliary single-sampled depth attachment is not used + load_store[i_depth_resolve].store_op = VK_ATTACHMENT_STORE_OP_DONT_CARE; + + // Disable writeback resolve + subpass->set_depth_stencil_resolve_attachment(VK_ATTACHMENT_UNUSED); + subpass->set_depth_stencil_resolve_mode(VK_RESOLVE_MODE_NONE); +} + +void DynamicState3MultisampleRasterization::draw(vkb::CommandBuffer &command_buffer, vkb::RenderTarget &render_target) +{ + auto &views = render_target.get_views(); + + auto swapchain_layout = VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL; + { + vkb::ImageMemoryBarrier memory_barrier{}; + memory_barrier.old_layout = VK_IMAGE_LAYOUT_UNDEFINED; + memory_barrier.new_layout = swapchain_layout; + memory_barrier.src_access_mask = 0; + memory_barrier.dst_access_mask = VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT; + memory_barrier.src_stage_mask = VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT; + memory_barrier.dst_stage_mask = VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT; + + for (auto &i_color : color_atts) + { + assert(i_color < views.size()); + command_buffer.image_memory_barrier(views[i_color], memory_barrier); + render_target.set_layout(i_color, VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL); + } + } + + { + vkb::ImageMemoryBarrier memory_barrier{}; + memory_barrier.old_layout = VK_IMAGE_LAYOUT_UNDEFINED; + memory_barrier.new_layout = VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL; + memory_barrier.src_access_mask = 0; + memory_barrier.dst_access_mask = VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT | VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT; + memory_barrier.src_stage_mask = VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT; + memory_barrier.dst_stage_mask = VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT | VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT; + + if (run_postprocessing) + { + // Synchronize depth with previous depth resolve operation + memory_barrier.dst_stage_mask |= VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT; + memory_barrier.dst_access_mask |= VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT; + } + + for (auto &i_depth : depth_atts) + { + assert(i_depth < views.size()); + command_buffer.image_memory_barrier(views[i_depth], memory_barrier); + render_target.set_layout(i_depth, VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL); + } + } + + auto &extent = render_target.get_extent(); + + VkViewport viewport{}; + viewport.width = static_cast(extent.width); + viewport.height = static_cast(extent.height); + viewport.minDepth = 0.0f; + viewport.maxDepth = 1.0f; + command_buffer.set_viewport(0, {viewport}); + + VkRect2D scissor{}; + scissor.extent = extent; + command_buffer.set_scissor(0, {scissor}); + + scene_pipeline->draw(command_buffer, render_target); + + if (!run_postprocessing) + { + // If postprocessing is enabled the GUI will be drawn + // at the end of the postprocessing renderpass + if (gui) + { + gui->draw(command_buffer); + } + } + + command_buffer.end_render_pass(); + + bool msaa_enabled = sample_count != VK_SAMPLE_COUNT_1_BIT; + + if (msaa_enabled && ColorResolve::SeparatePass == color_resolve_method) + { + if (run_postprocessing) + { + resolve_color_separate_pass(command_buffer, views, i_color_resolve, swapchain_layout); + } + else + { + resolve_color_separate_pass(command_buffer, views, i_swapchain, swapchain_layout); + } + } + + if (run_postprocessing) + { + // Run a second renderpass + postprocessing(command_buffer, render_target, swapchain_layout, msaa_enabled); + } + + { + // Prepare swapchain for presentation + vkb::ImageMemoryBarrier memory_barrier{}; + memory_barrier.old_layout = swapchain_layout; + memory_barrier.new_layout = VK_IMAGE_LAYOUT_PRESENT_SRC_KHR; + memory_barrier.src_access_mask = VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT; + memory_barrier.src_stage_mask = VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT; + memory_barrier.dst_stage_mask = VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT; + + assert(i_swapchain < views.size()); + command_buffer.image_memory_barrier(views[i_swapchain], memory_barrier); + } +} + +void DynamicState3MultisampleRasterization::postprocessing(vkb::CommandBuffer &command_buffer, vkb::RenderTarget &render_target, + VkImageLayout &swapchain_layout, bool msaa_enabled) +{ + auto depth_attachment = (msaa_enabled && depth_writeback_resolve_supported && resolve_depth_on_writeback) ? i_depth_resolve : i_depth; + bool multisampled_depth = msaa_enabled && !(depth_writeback_resolve_supported && resolve_depth_on_writeback); + std::string depth_sampler_name = multisampled_depth ? "ms_depth_sampler" : "depth_sampler"; + + glm::vec4 near_far = {camera->get_far_plane(), camera->get_near_plane(), -1.0f, -1.0f}; + + auto &postprocessing_pass = postprocessing_pipeline->get_pass(0); + postprocessing_pass.set_uniform_data(near_far); + + auto &postprocessing_subpass = postprocessing_pass.get_subpass(0); + // Unbind sampled images to prevent invalid image transitions on unused images + postprocessing_subpass.unbind_sampled_image("depth_sampler"); + postprocessing_subpass.unbind_sampled_image("ms_depth_sampler"); + + postprocessing_subpass.get_fs_variant().clear(); + if (multisampled_depth) + { + postprocessing_subpass.get_fs_variant().add_define("MS_DEPTH"); + } + postprocessing_subpass + .bind_sampled_image(depth_sampler_name, {depth_attachment, nullptr, nullptr, depth_writeback_resolve_supported && resolve_depth_on_writeback}) + .bind_sampled_image("color_sampler", i_color_resolve); + + // Second render pass + // NOTE: Color and depth attachments are automatically transitioned to be bound as textures + postprocessing_pipeline->draw(command_buffer, render_target); + + if (gui) + { + gui->draw(command_buffer); + } + + command_buffer.end_render_pass(); +} + +void DynamicState3MultisampleRasterization::resolve_color_separate_pass(vkb::CommandBuffer &command_buffer, const std::vector &views, + uint32_t color_destination, VkImageLayout &color_layout) +{ + { + // The multisampled color is the source of the resolve operation + vkb::ImageMemoryBarrier memory_barrier{}; + memory_barrier.old_layout = VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL; + memory_barrier.new_layout = VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL; + memory_barrier.src_stage_mask = VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT; + memory_barrier.dst_stage_mask = VK_PIPELINE_STAGE_TRANSFER_BIT; + memory_barrier.src_access_mask = VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT; + memory_barrier.dst_access_mask = VK_ACCESS_TRANSFER_READ_BIT; + + assert(i_color_ms < views.size()); + command_buffer.image_memory_barrier(views[i_color_ms], memory_barrier); + } + + VkImageSubresourceLayers subresource = {0}; + subresource.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT; + subresource.layerCount = 1; + + VkImageResolve image_resolve = {0}; + image_resolve.srcSubresource = subresource; + image_resolve.dstSubresource = subresource; + image_resolve.extent = VkExtent3D{get_render_context().get_surface_extent().width, get_render_context().get_surface_extent().height, 1}; + + { + // Prepare destination image for transfer operation + auto color_new_layout = VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL; + + vkb::ImageMemoryBarrier memory_barrier{}; + memory_barrier.old_layout = color_layout; + memory_barrier.new_layout = color_new_layout; + memory_barrier.src_stage_mask = VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT; + memory_barrier.dst_stage_mask = VK_PIPELINE_STAGE_TRANSFER_BIT; + memory_barrier.src_access_mask = VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT; + memory_barrier.dst_access_mask = VK_ACCESS_TRANSFER_WRITE_BIT; + + color_layout = color_new_layout; + + assert(color_destination < views.size()); + command_buffer.image_memory_barrier(views[color_destination], memory_barrier); + } + + // Resolve multisampled attachment to destination, extremely expensive + command_buffer.resolve_image(views[i_color_ms].get_image(), views.at(color_destination).get_image(), {image_resolve}); + + // Transition attachments out of transfer stage + { + auto color_new_layout = VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL; + + vkb::ImageMemoryBarrier memory_barrier{}; + memory_barrier.old_layout = color_layout; + memory_barrier.new_layout = color_new_layout; + memory_barrier.src_stage_mask = VK_PIPELINE_STAGE_TRANSFER_BIT; + memory_barrier.dst_stage_mask = VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT; + memory_barrier.src_access_mask = VK_ACCESS_TRANSFER_WRITE_BIT; + memory_barrier.dst_access_mask = VK_ACCESS_COLOR_ATTACHMENT_READ_BIT; + + color_layout = color_new_layout; + + command_buffer.image_memory_barrier(views[color_destination], memory_barrier); + } + + { + vkb::ImageMemoryBarrier memory_barrier{}; + memory_barrier.old_layout = VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL; + memory_barrier.new_layout = VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL; + memory_barrier.src_stage_mask = VK_PIPELINE_STAGE_TRANSFER_BIT; + memory_barrier.dst_stage_mask = VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT; + memory_barrier.src_access_mask = VK_ACCESS_TRANSFER_READ_BIT; + memory_barrier.dst_access_mask = VK_ACCESS_COLOR_ATTACHMENT_READ_BIT; + + command_buffer.image_memory_barrier(views[i_color_ms], memory_barrier); + } +} + +void DynamicState3MultisampleRasterization::prepare_supported_sample_count_list() +{ + VkPhysicalDeviceProperties gpu_properties; + vkGetPhysicalDeviceProperties(get_device().get_gpu().get_handle(), &gpu_properties); + + VkSampleCountFlags supported_by_depth_and_color = gpu_properties.limits.framebufferColorSampleCounts & gpu_properties.limits.framebufferDepthSampleCounts; + + // All possible sample counts are listed here from most to least preferred as default + // On Mali GPUs 4X MSAA is recommended as best performance/quality trade-off + std::vector counts = {VK_SAMPLE_COUNT_4_BIT, VK_SAMPLE_COUNT_2_BIT, VK_SAMPLE_COUNT_8_BIT, + VK_SAMPLE_COUNT_16_BIT, VK_SAMPLE_COUNT_32_BIT, VK_SAMPLE_COUNT_64_BIT, + VK_SAMPLE_COUNT_1_BIT}; + + for (auto &count : counts) + { + if (supported_by_depth_and_color & count) + { + supported_sample_count_list.push_back(count); + + if (sample_count == VK_SAMPLE_COUNT_1_BIT) + { + // Set default sample count based on the priority defined above + sample_count = count; + gui_sample_count = count; + last_gui_sample_count = count; + } + } + } +} + +void DynamicState3MultisampleRasterization::prepare_depth_resolve_mode_list() +{ + if (instance->is_enabled(VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME)) + { + VkPhysicalDeviceProperties2KHR gpu_properties{}; + gpu_properties.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2_KHR; + VkPhysicalDeviceDepthStencilResolvePropertiesKHR depth_resolve_properties{}; + depth_resolve_properties.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES_KHR; + gpu_properties.pNext = static_cast(&depth_resolve_properties); + vkGetPhysicalDeviceProperties2KHR(get_device().get_gpu().get_handle(), &gpu_properties); + + if (depth_resolve_properties.supportedDepthResolveModes == 0) + { + LOGW("No depth stencil resolve modes supported"); + depth_writeback_resolve_supported = false; + } + else + { + // All possible modes are listed here from most to least preferred as default + std::vector modes = {VK_RESOLVE_MODE_SAMPLE_ZERO_BIT, VK_RESOLVE_MODE_MIN_BIT, + VK_RESOLVE_MODE_MAX_BIT, VK_RESOLVE_MODE_AVERAGE_BIT}; + + for (auto &mode : modes) + { + if (depth_resolve_properties.supportedDepthResolveModes & mode) + { + supported_depth_resolve_mode_list.push_back(mode); + + if (depth_resolve_mode == VK_RESOLVE_MODE_NONE) + { + // Set default mode based on the priority defined above + depth_resolve_mode = mode; + gui_depth_resolve_mode = mode; + last_gui_depth_resolve_mode = mode; + } + } + } + } + } +} + +void DynamicState3MultisampleRasterization::draw_gui() +{ + auto msaa_enabled = sample_count != VK_SAMPLE_COUNT_1_BIT; + const bool landscape = camera->get_aspect_ratio() > 1.0f; + uint32_t lines = landscape ? 3 : 4; + + gui->show_options_window( + [this, msaa_enabled, landscape]() { + ImGui::AlignTextToFramePadding(); + ImGui::PushItemWidth(ImGui::GetWindowWidth() * 0.4f); + + if (ImGui::BeginCombo("##sample_count", to_string(gui_sample_count).c_str())) + { + for (size_t n = 0; n < supported_sample_count_list.size(); n++) + { + bool is_selected = (gui_sample_count == supported_sample_count_list[n]); + if (ImGui::Selectable(to_string(supported_sample_count_list[n]).c_str(), is_selected)) + { + gui_sample_count = supported_sample_count_list[n]; + } + if (is_selected) + { + ImGui::SetItemDefaultFocus(); + } + } + ImGui::EndCombo(); + } + + if (landscape) + { + ImGui::SameLine(); + } + ImGui::Checkbox("Post-processing (2 renderpasses)", &gui_run_postprocessing); + + ImGui::Text("Resolve color: "); + ImGui::SameLine(); + if (msaa_enabled) + { + ImGui::RadioButton("On writeback", &gui_color_resolve_method, ColorResolve::OnWriteback); + ImGui::SameLine(); + ImGui::RadioButton("Separate", &gui_color_resolve_method, ColorResolve::SeparatePass); + } + else + { + ImGui::Text("n/a"); + } + + ImGui::Text("Resolve depth: "); + ImGui::SameLine(); + if (msaa_enabled && run_postprocessing) + { + if (depth_writeback_resolve_supported) + { + ImGui::Checkbox("##resolve_depth", &gui_resolve_depth_on_writeback); + ImGui::SameLine(); + ImGui::Text("On writeback"); + ImGui::SameLine(); + ImGui::PushItemWidth(ImGui::GetWindowWidth() * 0.3f); + + if (ImGui::BeginCombo("##resolve_mode", to_string(gui_depth_resolve_mode).c_str())) + { + for (int n = 0; n < supported_depth_resolve_mode_list.size(); n++) + { + bool is_selected = (gui_depth_resolve_mode == supported_depth_resolve_mode_list[n]); + if (ImGui::Selectable(to_string(supported_depth_resolve_mode_list[n]).c_str(), is_selected)) + { + gui_depth_resolve_mode = supported_depth_resolve_mode_list[n]; + } + if (is_selected) + { + ImGui::SetItemDefaultFocus(); + } + } + ImGui::EndCombo(); + } + } + else + { + ImGui::Text("Not supported"); + } + } + else + { + ImGui::Text("n/a"); + } + }, + lines); +} + void DynamicState3MultisampleRasterization::prepare_pipelines() { // Create a blank pipeline layout. @@ -168,6 +983,7 @@ void DynamicState3MultisampleRasterization::render(float delta_time) ApiVulkanSample::submit_frame(); } + std::unique_ptr create_dynamic_state3_multisample_rasterization() { return std::make_unique(); diff --git a/samples/extensions/dynamic_state3_multisample_rasterization/dynamic_state3_multisample_rasterization.h b/samples/extensions/dynamic_state3_multisample_rasterization/dynamic_state3_multisample_rasterization.h index ddc655d6e..5f39d1406 100644 --- a/samples/extensions/dynamic_state3_multisample_rasterization/dynamic_state3_multisample_rasterization.h +++ b/samples/extensions/dynamic_state3_multisample_rasterization/dynamic_state3_multisample_rasterization.h @@ -18,6 +18,9 @@ #pragma once #include "api_vulkan_sample.h" +#include "rendering/postprocessing_pipeline.h" +#include "rendering/render_pipeline.h" +#include "scene_graph/components/perspective_camera.h" class DynamicState3MultisampleRasterization : public ApiVulkanSample { @@ -32,11 +35,206 @@ class DynamicState3MultisampleRasterization : public ApiVulkanSample void build_command_buffers() override; void render(float delta_time) override; bool prepare(const vkb::ApplicationOptions &options) override; + //virtual void update(float delta_time) override; + virtual void draw(vkb::CommandBuffer &command_buffer, vkb::RenderTarget &render_target) override; + void draw_gui() override; + + /** + * @brief Queries the Vulkan device to construct the list of supported + * depth resolve modes + */ + void prepare_depth_resolve_mode_list(); private: // Sample specific data VkPipeline sample_pipeline{}; VkPipelineLayout sample_pipeline_layout{}; + + virtual void prepare_render_context() override; + + std::unique_ptr create_render_target(vkb::core::Image &&swapchain_image); + + bool depth_writeback_resolve_supported{false}; + + vkb::sg::PerspectiveCamera *camera{nullptr}; + + enum ColorResolve : int + { + OnWriteback = 0, + SeparatePass = 1 + }; + + /** + * @brief Store the multisampled depth attachment, resolved to a single-sampled + * attachment if depth resolve on writeback is supported + * Update the load/store operations of the depth attachments + */ + void store_multisampled_depth(std::unique_ptr &subpass, std::vector &load_store); + + /** + * @brief Disables depth writeback resolve and updates the load/store operations of + * the depth resolve attachment + */ + void disable_depth_writeback_resolve(std::unique_ptr &subpass, std::vector &load_store); + + /** + * @brief Scene pipeline + * Render and light the scene (optionally using MSAA) + */ + std::unique_ptr scene_pipeline{}; + + /** + * @brief Postprocessing pipeline + * Read in the output color and depth attachments from the + * scene subpass and use them to apply a screen-based effect + */ + std::unique_ptr postprocessing_pipeline{}; + + /** + * @brief Update MSAA options and accordingly set the load/store + * attachment operations for the renderpasses + * This will trigger a swapchain recreation + */ + void update_pipelines(); + + /** + * @brief Update pipelines given that there will be a single + * renderpass for rendering the scene and GUI only + */ + void update_for_scene_only(bool msaa_enabled); + + /** + * @brief Update pipelines given that there will be two renderpasses + * The first renderpass will draw the scene and save the output + * color and depth attachments which will be read in by + * a postprocessing renderpass + */ + void update_for_scene_and_postprocessing(bool msaa_enabled); + + /** + * @brief If true the postprocessing renderpass is enabled + */ + bool run_postprocessing{false}; + + /** + * @brief Submits a postprocessing renderpass which binds full screen color + * and depth attachments and uses them to apply a screen-based effect + * It also draws the GUI + */ + void postprocessing(vkb::CommandBuffer &command_buffer, vkb::RenderTarget &render_target, + VkImageLayout &swapchain_layout, bool msaa_enabled); + + /** + * @brief Enables MSAA if set to more than 1 sample per pixel + * (e.g. sample count 4 enables 4X MSAA) + */ + VkSampleCountFlagBits sample_count{VK_SAMPLE_COUNT_1_BIT}; + + /** + * @brief List of MSAA levels supported by the platform + */ + std::vector supported_sample_count_list{}; + + /** + * @brief Queries the Vulkan device to construct the list of supported + * sample counts + */ + void prepare_supported_sample_count_list(); + + /** + * @brief Selects how to resolve the color attachment, either on writeback + * (efficient) or in a separate pass (inefficient) + */ + int color_resolve_method{ColorResolve::OnWriteback}; + + /** + * @brief Sets the multisampled color attachment as the output attachment + * and configures the resolve operation to resolve_attachment + * as well as the load/store operations of color attachments + * Note that MSAA will not have any effect in the postprocessing + * renderpass since it only renders a texture on single full-screen + * triangle and MSAA only works on primitive edges + */ + void use_multisampled_color(std::unique_ptr &subpass, std::vector &load_store, uint32_t resolve_attachment); + + /** + * @brief Sets the single-sampled output_attachment as the output attachment, + * disables color resolve and updates the load/store operations of + * color attachments + */ + void use_singlesampled_color(std::unique_ptr &subpass, std::vector &load_store, uint32_t output_attachment); + + /** + * @brief Submits a transfer operation to resolve the multisampled color attachment + * to the given single-sampled resolve attachment + * color_layout is an in-out parameter that holds the last known layout + * of the resolve attachment, and may be used for any further transitions + */ + void resolve_color_separate_pass(vkb::CommandBuffer &command_buffer, const std::vector &views, + uint32_t color_destination, VkImageLayout &color_layout); + + /** + * @brief List of depth resolve modes supported by the platform + */ + std::vector supported_depth_resolve_mode_list{}; + + /** + * @brief Selects the depth resolve mode (e.g. min or max sample values) + */ + VkResolveModeFlagBits depth_resolve_mode{VK_RESOLVE_MODE_NONE}; + + /** + * @brief If true, enable writeback depth resolve + * If false the multisampled depth attachment will be stored + * (only if postprocessing is enabled since the attachment is + * otherwise unused) + */ + bool resolve_depth_on_writeback{true}; + + /** + * @brief If true, the platform supports the VK_KHR_depth_stencil_resolve extension + * and therefore can resolve the depth attachment on writeback + */ + + /* Helpers for managing attachments */ + + uint32_t i_swapchain{0}; + + uint32_t i_depth{0}; + + uint32_t i_color_ms{0}; + + uint32_t i_color_resolve{0}; + + uint32_t i_depth_resolve{0}; + + std::vector color_atts{}; + + std::vector depth_atts{}; + + std::vector scene_load_store{}; + + /* Helpers for managing GUI input */ + + bool gui_run_postprocessing{false}; + + bool last_gui_run_postprocessing{false}; + + VkSampleCountFlagBits gui_sample_count{VK_SAMPLE_COUNT_1_BIT}; + + VkSampleCountFlagBits last_gui_sample_count{VK_SAMPLE_COUNT_1_BIT}; + + int gui_color_resolve_method{ColorResolve::OnWriteback}; + + int last_gui_color_resolve_method{ColorResolve::OnWriteback}; + + bool gui_resolve_depth_on_writeback{true}; + + bool last_gui_resolve_depth_on_writeback{true}; + + VkResolveModeFlagBits gui_depth_resolve_mode{VK_RESOLVE_MODE_NONE}; + + VkResolveModeFlagBits last_gui_depth_resolve_mode{VK_RESOLVE_MODE_NONE}; }; std::unique_ptr create_dynamic_state3_multisample_rasterization(); From 3c4b9fea1c755a14e4cc2193fd643fb2dd2e4e0b Mon Sep 17 00:00:00 2001 From: pawel-jastrzebski-mobica Date: Wed, 8 Nov 2023 16:07:51 +0100 Subject: [PATCH 03/52] Add sample with SpaceModule scene. Signed-off-by: pawel-jastrzebski-mobica --- .../CMakeLists.txt | 4 +- ...namic_state3_multisample_rasterization.cpp | 2756 +++++++++++------ ...dynamic_state3_multisample_rasterization.h | 79 +- .../model.frag | 76 + .../model.vert | 66 + 5 files changed, 1987 insertions(+), 994 deletions(-) create mode 100644 shaders/dynamic_state3_multisample_rasterization/model.frag create mode 100644 shaders/dynamic_state3_multisample_rasterization/model.vert diff --git a/samples/extensions/dynamic_state3_multisample_rasterization/CMakeLists.txt b/samples/extensions/dynamic_state3_multisample_rasterization/CMakeLists.txt index 19146cf7e..b62e6727f 100644 --- a/samples/extensions/dynamic_state3_multisample_rasterization/CMakeLists.txt +++ b/samples/extensions/dynamic_state3_multisample_rasterization/CMakeLists.txt @@ -26,5 +26,5 @@ add_sample( NAME "Extended Dynamic State3 Multisample Rasterization" DESCRIPTION "Sample description" SHADER_FILES_GLSL - "triangle.vert" - "triangle.frag") + "model.vert" + "model.frag") diff --git a/samples/extensions/dynamic_state3_multisample_rasterization/dynamic_state3_multisample_rasterization.cpp b/samples/extensions/dynamic_state3_multisample_rasterization/dynamic_state3_multisample_rasterization.cpp index 750a59eac..a15f7b8ba 100644 --- a/samples/extensions/dynamic_state3_multisample_rasterization/dynamic_state3_multisample_rasterization.cpp +++ b/samples/extensions/dynamic_state3_multisample_rasterization/dynamic_state3_multisample_rasterization.cpp @@ -1,990 +1,1766 @@ -/* Copyright (c) 2023, Arm Limited and Contributors - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 the "License"; - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "dynamic_state3_multisample_rasterization.h" - -#include "common/vk_common.h" -#include "gltf_loader.h" -#include "gui.h" -#include "platform/filesystem.h" - -#include "rendering/postprocessing_renderpass.h" -#include "rendering/subpasses/forward_subpass.h" -#include "stats/stats.h" - -namespace -{ -const std::string to_string(VkSampleCountFlagBits count) -{ - switch (count) - { - case VK_SAMPLE_COUNT_1_BIT: - return "No MSAA"; - case VK_SAMPLE_COUNT_2_BIT: - return "2X MSAA"; - case VK_SAMPLE_COUNT_4_BIT: - return "4X MSAA"; - case VK_SAMPLE_COUNT_8_BIT: - return "8X MSAA"; - case VK_SAMPLE_COUNT_16_BIT: - return "16X MSAA"; - case VK_SAMPLE_COUNT_32_BIT: - return "32X MSAA"; - case VK_SAMPLE_COUNT_64_BIT: - return "64X MSAA"; - default: - return "Unknown"; - } -} - -const std::string to_string(VkResolveModeFlagBits mode) -{ - switch (mode) - { - case VK_RESOLVE_MODE_NONE: - return "None"; - case VK_RESOLVE_MODE_SAMPLE_ZERO_BIT: - return "Sample 0"; - case VK_RESOLVE_MODE_AVERAGE_BIT: - return "Average"; - case VK_RESOLVE_MODE_MIN_BIT: - return "Min"; - case VK_RESOLVE_MODE_MAX_BIT: - return "Max"; - default: - return "Unknown"; - } -} -} // namespace - -DynamicState3MultisampleRasterization::DynamicState3MultisampleRasterization() -{ - // Extension of interest in this sample (optional) - add_device_extension(VK_KHR_DEPTH_STENCIL_RESOLVE_EXTENSION_NAME, true); - - // Extension dependency requirements (given that instance API version is 1.0.0) - add_instance_extension(VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME, true); - add_device_extension(VK_KHR_CREATE_RENDERPASS_2_EXTENSION_NAME, true); - add_device_extension(VK_KHR_MAINTENANCE2_EXTENSION_NAME, true); - add_device_extension(VK_KHR_MULTIVIEW_EXTENSION_NAME, true); - - auto &config = get_configuration(); - - // MSAA will be enabled by default if supported - // Batch mode will test the toggle between 1 or 2 renderpasses - // with writeback resolve of color and depth - config.insert(0, gui_run_postprocessing, false); - config.insert(1, gui_run_postprocessing, true); -} - -DynamicState3MultisampleRasterization::~DynamicState3MultisampleRasterization() -{ - if (device) - { - vkDestroyPipeline(get_device().get_handle(), sample_pipeline, nullptr); - vkDestroyPipelineLayout(get_device().get_handle(), sample_pipeline_layout, nullptr); - } -} - -bool DynamicState3MultisampleRasterization::prepare(const vkb::ApplicationOptions &options) -{ - if (!ApiVulkanSample::prepare(options)) - { - return false; - } - - prepare_pipelines(); - build_command_buffers(); - - prepare_supported_sample_count_list(); - - depth_writeback_resolve_supported = device->is_enabled(VK_KHR_DEPTH_STENCIL_RESOLVE_EXTENSION_NAME); - if (depth_writeback_resolve_supported) - { - prepare_depth_resolve_mode_list(); - } - - load_scene("scenes/space_module/SpaceModule.gltf"); - - auto &camera_node = vkb::add_free_camera(*scene, "main_camera", get_render_context().get_surface_extent()); - camera = dynamic_cast(&camera_node.get_component()); - - vkb::ShaderSource scene_vs("base.vert"); - vkb::ShaderSource scene_fs("base.frag"); - auto scene_subpass = std::make_unique(get_render_context(), std::move(scene_vs), std::move(scene_fs), *scene, *camera); - scene_pipeline = std::make_unique(); - scene_pipeline->add_subpass(std::move(scene_subpass)); - vkb::ShaderSource postprocessing_vs("postprocessing/postprocessing.vert"); - postprocessing_pipeline = std::make_unique(get_render_context(), std::move(postprocessing_vs)); - postprocessing_pipeline->add_pass().add_subpass(vkb::ShaderSource("postprocessing/outline.frag")); - - update_pipelines(); - - stats->request_stats({vkb::StatIndex::frame_times, - vkb::StatIndex::gpu_ext_read_bytes, - vkb::StatIndex::gpu_ext_write_bytes}); - - gui = std::make_unique(*this, *window, stats.get()); - - prepared = true; - return true; -} - -void DynamicState3MultisampleRasterization::prepare_render_context() -{ - get_render_context().prepare(1, std::bind(&DynamicState3MultisampleRasterization::create_render_target, this, std::placeholders::_1)); -} - -std::unique_ptr DynamicState3MultisampleRasterization::create_render_target(vkb::core::Image &&swapchain_image) -{ - auto &device = swapchain_image.get_device(); - auto &extent = swapchain_image.get_extent(); - - auto depth_format = vkb::get_suitable_depth_format(device.get_gpu().get_handle()); - bool msaa_enabled = sample_count != VK_SAMPLE_COUNT_1_BIT; - VkImageUsageFlags depth_usage = VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT; - VkImageUsageFlags depth_resolve_usage = VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT; - if (run_postprocessing) - { - // Depth needs to be read by the postprocessing subpass - if (msaa_enabled && depth_writeback_resolve_supported && resolve_depth_on_writeback) - { - // Depth is resolved - depth_usage |= VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT; - depth_resolve_usage |= VK_IMAGE_USAGE_SAMPLED_BIT; - } - else - { - // Postprocessing reads multisampled depth - depth_usage |= VK_IMAGE_USAGE_SAMPLED_BIT; - depth_resolve_usage |= VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT; - } - } - else - { - // Depth attachments are transient - depth_usage |= VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT; - depth_resolve_usage |= VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT; - } - - vkb::core::Image depth_image{device, - extent, - depth_format, - depth_usage, - VMA_MEMORY_USAGE_GPU_ONLY, - sample_count}; - - vkb::core::Image depth_resolve_image{device, - extent, - depth_format, - depth_resolve_usage, - VMA_MEMORY_USAGE_GPU_ONLY, - VK_SAMPLE_COUNT_1_BIT}; - - VkImageUsageFlags color_ms_usage = VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT; - if (ColorResolve::OnWriteback == color_resolve_method) - { - // Writeback resolve means that the multisampled attachment - // can be discarded at the end of the render pass - color_ms_usage |= VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT; - } - else if (ColorResolve::SeparatePass == color_resolve_method) - { - // Multisampled attachment will be stored and - // resolved outside the render pass - color_ms_usage |= VK_IMAGE_USAGE_TRANSFER_SRC_BIT; - } - - vkb::core::Image color_ms_image{device, - extent, - swapchain_image.get_format(), - color_ms_usage, - VMA_MEMORY_USAGE_GPU_ONLY, - sample_count}; - - VkImageUsageFlags color_resolve_usage = VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT; - if (run_postprocessing) - { - if (ColorResolve::SeparatePass == color_resolve_method) - { - // The multisampled color image will be resolved - // to this attachment with a transfer operation - color_resolve_usage |= VK_IMAGE_USAGE_TRANSFER_DST_BIT; - } - - // The resolved color image will be read by the postprocessing - // renderpass - color_resolve_usage |= VK_IMAGE_USAGE_SAMPLED_BIT; - } - - vkb::core::Image color_resolve_image{device, - extent, - swapchain_image.get_format(), - color_resolve_usage, - VMA_MEMORY_USAGE_GPU_ONLY, - VK_SAMPLE_COUNT_1_BIT}; - - scene_load_store.clear(); - std::vector images; - - // Attachment 0 - Swapchain - // Used by the scene renderpass if postprocessing is disabled - // Used by the postprocessing renderpass if postprocessing is enabled - i_swapchain = 0; - images.push_back(std::move(swapchain_image)); - scene_load_store.push_back({VK_ATTACHMENT_LOAD_OP_CLEAR, VK_ATTACHMENT_STORE_OP_STORE}); - - // Attachment 1 - Depth - // Always used by the scene renderpass, may or may not be multisampled - i_depth = 1; - images.push_back(std::move(depth_image)); - scene_load_store.push_back({VK_ATTACHMENT_LOAD_OP_CLEAR, VK_ATTACHMENT_STORE_OP_DONT_CARE}); - - // Attachment 2 - Multisampled color - // Used by the scene renderpass if MSAA is enabled - i_color_ms = 2; - images.push_back(std::move(color_ms_image)); - scene_load_store.push_back({VK_ATTACHMENT_LOAD_OP_CLEAR, VK_ATTACHMENT_STORE_OP_DONT_CARE}); - - // Attachment 3 - Resolved color - // Used as an output by the scene renderpass if MSAA and postprocessing are enabled - // Used as an input by the postprocessing renderpass - i_color_resolve = 3; - images.push_back(std::move(color_resolve_image)); - scene_load_store.push_back({VK_ATTACHMENT_LOAD_OP_CLEAR, VK_ATTACHMENT_STORE_OP_DONT_CARE}); - - // Attachment 4 - Resolved depth - // Used for writeback depth resolve if MSAA is enabled and the required extension is supported - i_depth_resolve = 4; - images.push_back(std::move(depth_resolve_image)); - scene_load_store.push_back({VK_ATTACHMENT_LOAD_OP_CLEAR, VK_ATTACHMENT_STORE_OP_DONT_CARE}); - - color_atts = {i_swapchain, i_color_ms, i_color_resolve}; - depth_atts = {i_depth, i_depth_resolve}; - - return std::make_unique(std::move(images)); -} - -void DynamicState3MultisampleRasterization::update(float delta_time) -{ - if ((gui_run_postprocessing != last_gui_run_postprocessing) || - (gui_sample_count != last_gui_sample_count) || - (gui_color_resolve_method != last_gui_color_resolve_method) || - (gui_resolve_depth_on_writeback != last_gui_resolve_depth_on_writeback) || - (gui_depth_resolve_mode != last_gui_depth_resolve_mode)) - { - run_postprocessing = gui_run_postprocessing; - sample_count = gui_sample_count; - color_resolve_method = gui_color_resolve_method; - resolve_depth_on_writeback = gui_resolve_depth_on_writeback; - depth_resolve_mode = gui_depth_resolve_mode; - - update_pipelines(); - - last_gui_run_postprocessing = gui_run_postprocessing; - last_gui_sample_count = gui_sample_count; - last_gui_color_resolve_method = gui_color_resolve_method; - last_gui_resolve_depth_on_writeback = gui_resolve_depth_on_writeback; - last_gui_depth_resolve_mode = gui_depth_resolve_mode; - } - - VulkanSample::update(delta_time); -} - -void DynamicState3MultisampleRasterization::update_pipelines() -{ - bool msaa_enabled = sample_count != VK_SAMPLE_COUNT_1_BIT; - if (run_postprocessing) - { - update_for_scene_and_postprocessing(msaa_enabled); - } - else - { - update_for_scene_only(msaa_enabled); - } - - // Default swapchain usage flags - std::set swapchain_usage = {VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT, VK_IMAGE_USAGE_TRANSFER_SRC_BIT}; - if (ColorResolve::SeparatePass == color_resolve_method && !run_postprocessing) - { - // The multisampled color image will be resolved - // to the swapchain with a transfer operation - swapchain_usage.insert(VK_IMAGE_USAGE_TRANSFER_DST_BIT); - } - - get_device().wait_idle(); - - get_render_context().update_swapchain(swapchain_usage); -} - -void DynamicState3MultisampleRasterization::update_for_scene_only(bool msaa_enabled) -{ - auto &scene_subpass = scene_pipeline->get_active_subpass(); - scene_subpass->set_sample_count(sample_count); - - if (msaa_enabled) - { - // Render multisampled color, to be resolved to the swapchain - use_multisampled_color(scene_subpass, scene_load_store, i_swapchain); - } - else - { - // Render color to the swapchain - use_singlesampled_color(scene_subpass, scene_load_store, i_swapchain); - } - - // Depth attachment is transient, it will not be needed after the renderpass - // If it is multisampled, there is no need to resolve it - scene_load_store[i_depth].store_op = VK_ATTACHMENT_STORE_OP_DONT_CARE; - disable_depth_writeback_resolve(scene_subpass, scene_load_store); - - // Auxiliary single-sampled color attachment is not used - scene_load_store[i_color_resolve].store_op = VK_ATTACHMENT_STORE_OP_DONT_CARE; - - // Update the scene renderpass - scene_pipeline->set_load_store(scene_load_store); -} - -void DynamicState3MultisampleRasterization::update_for_scene_and_postprocessing(bool msaa_enabled) -{ - auto &scene_subpass = scene_pipeline->get_active_subpass(); - scene_subpass->set_sample_count(sample_count); - - // The color and depth attachments will be the input of the postprocessing renderpass - if (msaa_enabled) - { - // Resolve multisampled color to an intermediate attachment - use_multisampled_color(scene_subpass, scene_load_store, i_color_resolve); - - // Store multisampled depth - // Resolve it first if enabled and supported, - store_multisampled_depth(scene_subpass, scene_load_store); - } - else - { - // Render color to an intermediate attachment - use_singlesampled_color(scene_subpass, scene_load_store, i_color_resolve); - - // Store single-sampled depth - scene_load_store[i_depth].store_op = VK_ATTACHMENT_STORE_OP_STORE; - disable_depth_writeback_resolve(scene_subpass, scene_load_store); - } - - // Swapchain is not used in the scene renderpass - scene_load_store[i_swapchain].store_op = VK_ATTACHMENT_STORE_OP_DONT_CARE; - - // Update the scene renderpass - scene_pipeline->set_load_store(scene_load_store); -} - -void DynamicState3MultisampleRasterization::use_multisampled_color(std::unique_ptr &subpass, std::vector &load_store, uint32_t resolve_attachment) -{ - // Render to multisampled color attachment - subpass->set_output_attachments({i_color_ms}); - - // Resolve color - if (ColorResolve::OnWriteback == color_resolve_method) - { - // Good practice - // Multisampled attachment is transient - // This allows tilers to completely avoid writing out the multisampled attachment to memory, - // a considerable performance and bandwidth improvement - load_store[i_color_ms].store_op = VK_ATTACHMENT_STORE_OP_DONT_CARE; - - // Enable writeback resolve to single-sampled attachment - subpass->set_color_resolve_attachments({resolve_attachment}); - - // Save resolved attachment - load_store[resolve_attachment].store_op = VK_ATTACHMENT_STORE_OP_STORE; - } - else if (ColorResolve::SeparatePass == color_resolve_method) - { - // Bad practice - // Save multisampled color attachment, will be resolved outside the renderpass - // Storing multisampled color should be avoided - load_store[i_color_ms].store_op = VK_ATTACHMENT_STORE_OP_STORE; - - // Disable writeback resolve - subpass->set_color_resolve_attachments({}); - load_store[resolve_attachment].store_op = VK_ATTACHMENT_STORE_OP_DONT_CARE; - } -} - -void DynamicState3MultisampleRasterization::use_singlesampled_color(std::unique_ptr &subpass, std::vector &load_store, uint32_t output_attachment) -{ - // Render to a single-sampled attachment - subpass->set_output_attachments({output_attachment}); - load_store[output_attachment].store_op = VK_ATTACHMENT_STORE_OP_STORE; - - // Multisampled color attachment is not used - load_store[i_color_ms].store_op = VK_ATTACHMENT_STORE_OP_DONT_CARE; - - // Disable writeback resolve - subpass->set_color_resolve_attachments({}); -} - -void DynamicState3MultisampleRasterization::store_multisampled_depth(std::unique_ptr &subpass, std::vector &load_store) -{ - if (depth_writeback_resolve_supported && resolve_depth_on_writeback) - { - // Good practice - // Multisampled attachment is transient - // This allows tilers to completely avoid writing out the multisampled attachment to memory, - // a considerable performance and bandwidth improvement - load_store[i_depth].store_op = VK_ATTACHMENT_STORE_OP_DONT_CARE; - - // Enable writeback resolve to single-sampled attachment - subpass->set_depth_stencil_resolve_attachment(i_depth_resolve); - subpass->set_depth_stencil_resolve_mode(depth_resolve_mode); - - // Save resolved attachment - load_store[i_depth_resolve].store_op = VK_ATTACHMENT_STORE_OP_STORE; - } - else - { - // Bad practice - // Save multisampled depth attachment, which cannot be resolved outside the renderpass - // Storing multisampled depth should be avoided - load_store[i_depth].store_op = VK_ATTACHMENT_STORE_OP_STORE; - - // Disable writeback resolve - disable_depth_writeback_resolve(subpass, load_store); - } -} - -void DynamicState3MultisampleRasterization::disable_depth_writeback_resolve(std::unique_ptr &subpass, std::vector &load_store) -{ - // Auxiliary single-sampled depth attachment is not used - load_store[i_depth_resolve].store_op = VK_ATTACHMENT_STORE_OP_DONT_CARE; - - // Disable writeback resolve - subpass->set_depth_stencil_resolve_attachment(VK_ATTACHMENT_UNUSED); - subpass->set_depth_stencil_resolve_mode(VK_RESOLVE_MODE_NONE); -} - -void DynamicState3MultisampleRasterization::draw(vkb::CommandBuffer &command_buffer, vkb::RenderTarget &render_target) -{ - auto &views = render_target.get_views(); - - auto swapchain_layout = VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL; - { - vkb::ImageMemoryBarrier memory_barrier{}; - memory_barrier.old_layout = VK_IMAGE_LAYOUT_UNDEFINED; - memory_barrier.new_layout = swapchain_layout; - memory_barrier.src_access_mask = 0; - memory_barrier.dst_access_mask = VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT; - memory_barrier.src_stage_mask = VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT; - memory_barrier.dst_stage_mask = VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT; - - for (auto &i_color : color_atts) - { - assert(i_color < views.size()); - command_buffer.image_memory_barrier(views[i_color], memory_barrier); - render_target.set_layout(i_color, VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL); - } - } - - { - vkb::ImageMemoryBarrier memory_barrier{}; - memory_barrier.old_layout = VK_IMAGE_LAYOUT_UNDEFINED; - memory_barrier.new_layout = VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL; - memory_barrier.src_access_mask = 0; - memory_barrier.dst_access_mask = VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT | VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT; - memory_barrier.src_stage_mask = VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT; - memory_barrier.dst_stage_mask = VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT | VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT; - - if (run_postprocessing) - { - // Synchronize depth with previous depth resolve operation - memory_barrier.dst_stage_mask |= VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT; - memory_barrier.dst_access_mask |= VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT; - } - - for (auto &i_depth : depth_atts) - { - assert(i_depth < views.size()); - command_buffer.image_memory_barrier(views[i_depth], memory_barrier); - render_target.set_layout(i_depth, VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL); - } - } - - auto &extent = render_target.get_extent(); - - VkViewport viewport{}; - viewport.width = static_cast(extent.width); - viewport.height = static_cast(extent.height); - viewport.minDepth = 0.0f; - viewport.maxDepth = 1.0f; - command_buffer.set_viewport(0, {viewport}); - - VkRect2D scissor{}; - scissor.extent = extent; - command_buffer.set_scissor(0, {scissor}); - - scene_pipeline->draw(command_buffer, render_target); - - if (!run_postprocessing) - { - // If postprocessing is enabled the GUI will be drawn - // at the end of the postprocessing renderpass - if (gui) - { - gui->draw(command_buffer); - } - } - - command_buffer.end_render_pass(); - - bool msaa_enabled = sample_count != VK_SAMPLE_COUNT_1_BIT; - - if (msaa_enabled && ColorResolve::SeparatePass == color_resolve_method) - { - if (run_postprocessing) - { - resolve_color_separate_pass(command_buffer, views, i_color_resolve, swapchain_layout); - } - else - { - resolve_color_separate_pass(command_buffer, views, i_swapchain, swapchain_layout); - } - } - - if (run_postprocessing) - { - // Run a second renderpass - postprocessing(command_buffer, render_target, swapchain_layout, msaa_enabled); - } - - { - // Prepare swapchain for presentation - vkb::ImageMemoryBarrier memory_barrier{}; - memory_barrier.old_layout = swapchain_layout; - memory_barrier.new_layout = VK_IMAGE_LAYOUT_PRESENT_SRC_KHR; - memory_barrier.src_access_mask = VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT; - memory_barrier.src_stage_mask = VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT; - memory_barrier.dst_stage_mask = VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT; - - assert(i_swapchain < views.size()); - command_buffer.image_memory_barrier(views[i_swapchain], memory_barrier); - } -} - -void DynamicState3MultisampleRasterization::postprocessing(vkb::CommandBuffer &command_buffer, vkb::RenderTarget &render_target, - VkImageLayout &swapchain_layout, bool msaa_enabled) -{ - auto depth_attachment = (msaa_enabled && depth_writeback_resolve_supported && resolve_depth_on_writeback) ? i_depth_resolve : i_depth; - bool multisampled_depth = msaa_enabled && !(depth_writeback_resolve_supported && resolve_depth_on_writeback); - std::string depth_sampler_name = multisampled_depth ? "ms_depth_sampler" : "depth_sampler"; - - glm::vec4 near_far = {camera->get_far_plane(), camera->get_near_plane(), -1.0f, -1.0f}; - - auto &postprocessing_pass = postprocessing_pipeline->get_pass(0); - postprocessing_pass.set_uniform_data(near_far); - - auto &postprocessing_subpass = postprocessing_pass.get_subpass(0); - // Unbind sampled images to prevent invalid image transitions on unused images - postprocessing_subpass.unbind_sampled_image("depth_sampler"); - postprocessing_subpass.unbind_sampled_image("ms_depth_sampler"); - - postprocessing_subpass.get_fs_variant().clear(); - if (multisampled_depth) - { - postprocessing_subpass.get_fs_variant().add_define("MS_DEPTH"); - } - postprocessing_subpass - .bind_sampled_image(depth_sampler_name, {depth_attachment, nullptr, nullptr, depth_writeback_resolve_supported && resolve_depth_on_writeback}) - .bind_sampled_image("color_sampler", i_color_resolve); - - // Second render pass - // NOTE: Color and depth attachments are automatically transitioned to be bound as textures - postprocessing_pipeline->draw(command_buffer, render_target); - - if (gui) - { - gui->draw(command_buffer); - } - - command_buffer.end_render_pass(); -} - -void DynamicState3MultisampleRasterization::resolve_color_separate_pass(vkb::CommandBuffer &command_buffer, const std::vector &views, - uint32_t color_destination, VkImageLayout &color_layout) -{ - { - // The multisampled color is the source of the resolve operation - vkb::ImageMemoryBarrier memory_barrier{}; - memory_barrier.old_layout = VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL; - memory_barrier.new_layout = VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL; - memory_barrier.src_stage_mask = VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT; - memory_barrier.dst_stage_mask = VK_PIPELINE_STAGE_TRANSFER_BIT; - memory_barrier.src_access_mask = VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT; - memory_barrier.dst_access_mask = VK_ACCESS_TRANSFER_READ_BIT; - - assert(i_color_ms < views.size()); - command_buffer.image_memory_barrier(views[i_color_ms], memory_barrier); - } - - VkImageSubresourceLayers subresource = {0}; - subresource.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT; - subresource.layerCount = 1; - - VkImageResolve image_resolve = {0}; - image_resolve.srcSubresource = subresource; - image_resolve.dstSubresource = subresource; - image_resolve.extent = VkExtent3D{get_render_context().get_surface_extent().width, get_render_context().get_surface_extent().height, 1}; - - { - // Prepare destination image for transfer operation - auto color_new_layout = VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL; - - vkb::ImageMemoryBarrier memory_barrier{}; - memory_barrier.old_layout = color_layout; - memory_barrier.new_layout = color_new_layout; - memory_barrier.src_stage_mask = VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT; - memory_barrier.dst_stage_mask = VK_PIPELINE_STAGE_TRANSFER_BIT; - memory_barrier.src_access_mask = VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT; - memory_barrier.dst_access_mask = VK_ACCESS_TRANSFER_WRITE_BIT; - - color_layout = color_new_layout; - - assert(color_destination < views.size()); - command_buffer.image_memory_barrier(views[color_destination], memory_barrier); - } - - // Resolve multisampled attachment to destination, extremely expensive - command_buffer.resolve_image(views[i_color_ms].get_image(), views.at(color_destination).get_image(), {image_resolve}); - - // Transition attachments out of transfer stage - { - auto color_new_layout = VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL; - - vkb::ImageMemoryBarrier memory_barrier{}; - memory_barrier.old_layout = color_layout; - memory_barrier.new_layout = color_new_layout; - memory_barrier.src_stage_mask = VK_PIPELINE_STAGE_TRANSFER_BIT; - memory_barrier.dst_stage_mask = VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT; - memory_barrier.src_access_mask = VK_ACCESS_TRANSFER_WRITE_BIT; - memory_barrier.dst_access_mask = VK_ACCESS_COLOR_ATTACHMENT_READ_BIT; - - color_layout = color_new_layout; - - command_buffer.image_memory_barrier(views[color_destination], memory_barrier); - } - - { - vkb::ImageMemoryBarrier memory_barrier{}; - memory_barrier.old_layout = VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL; - memory_barrier.new_layout = VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL; - memory_barrier.src_stage_mask = VK_PIPELINE_STAGE_TRANSFER_BIT; - memory_barrier.dst_stage_mask = VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT; - memory_barrier.src_access_mask = VK_ACCESS_TRANSFER_READ_BIT; - memory_barrier.dst_access_mask = VK_ACCESS_COLOR_ATTACHMENT_READ_BIT; - - command_buffer.image_memory_barrier(views[i_color_ms], memory_barrier); - } -} - -void DynamicState3MultisampleRasterization::prepare_supported_sample_count_list() -{ - VkPhysicalDeviceProperties gpu_properties; - vkGetPhysicalDeviceProperties(get_device().get_gpu().get_handle(), &gpu_properties); - - VkSampleCountFlags supported_by_depth_and_color = gpu_properties.limits.framebufferColorSampleCounts & gpu_properties.limits.framebufferDepthSampleCounts; - - // All possible sample counts are listed here from most to least preferred as default - // On Mali GPUs 4X MSAA is recommended as best performance/quality trade-off - std::vector counts = {VK_SAMPLE_COUNT_4_BIT, VK_SAMPLE_COUNT_2_BIT, VK_SAMPLE_COUNT_8_BIT, - VK_SAMPLE_COUNT_16_BIT, VK_SAMPLE_COUNT_32_BIT, VK_SAMPLE_COUNT_64_BIT, - VK_SAMPLE_COUNT_1_BIT}; - - for (auto &count : counts) - { - if (supported_by_depth_and_color & count) - { - supported_sample_count_list.push_back(count); - - if (sample_count == VK_SAMPLE_COUNT_1_BIT) - { - // Set default sample count based on the priority defined above - sample_count = count; - gui_sample_count = count; - last_gui_sample_count = count; - } - } - } -} - -void DynamicState3MultisampleRasterization::prepare_depth_resolve_mode_list() -{ - if (instance->is_enabled(VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME)) - { - VkPhysicalDeviceProperties2KHR gpu_properties{}; - gpu_properties.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2_KHR; - VkPhysicalDeviceDepthStencilResolvePropertiesKHR depth_resolve_properties{}; - depth_resolve_properties.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES_KHR; - gpu_properties.pNext = static_cast(&depth_resolve_properties); - vkGetPhysicalDeviceProperties2KHR(get_device().get_gpu().get_handle(), &gpu_properties); - - if (depth_resolve_properties.supportedDepthResolveModes == 0) - { - LOGW("No depth stencil resolve modes supported"); - depth_writeback_resolve_supported = false; - } - else - { - // All possible modes are listed here from most to least preferred as default - std::vector modes = {VK_RESOLVE_MODE_SAMPLE_ZERO_BIT, VK_RESOLVE_MODE_MIN_BIT, - VK_RESOLVE_MODE_MAX_BIT, VK_RESOLVE_MODE_AVERAGE_BIT}; - - for (auto &mode : modes) - { - if (depth_resolve_properties.supportedDepthResolveModes & mode) - { - supported_depth_resolve_mode_list.push_back(mode); - - if (depth_resolve_mode == VK_RESOLVE_MODE_NONE) - { - // Set default mode based on the priority defined above - depth_resolve_mode = mode; - gui_depth_resolve_mode = mode; - last_gui_depth_resolve_mode = mode; - } - } - } - } - } -} - -void DynamicState3MultisampleRasterization::draw_gui() -{ - auto msaa_enabled = sample_count != VK_SAMPLE_COUNT_1_BIT; - const bool landscape = camera->get_aspect_ratio() > 1.0f; - uint32_t lines = landscape ? 3 : 4; - - gui->show_options_window( - [this, msaa_enabled, landscape]() { - ImGui::AlignTextToFramePadding(); - ImGui::PushItemWidth(ImGui::GetWindowWidth() * 0.4f); - - if (ImGui::BeginCombo("##sample_count", to_string(gui_sample_count).c_str())) - { - for (size_t n = 0; n < supported_sample_count_list.size(); n++) - { - bool is_selected = (gui_sample_count == supported_sample_count_list[n]); - if (ImGui::Selectable(to_string(supported_sample_count_list[n]).c_str(), is_selected)) - { - gui_sample_count = supported_sample_count_list[n]; - } - if (is_selected) - { - ImGui::SetItemDefaultFocus(); - } - } - ImGui::EndCombo(); - } - - if (landscape) - { - ImGui::SameLine(); - } - ImGui::Checkbox("Post-processing (2 renderpasses)", &gui_run_postprocessing); - - ImGui::Text("Resolve color: "); - ImGui::SameLine(); - if (msaa_enabled) - { - ImGui::RadioButton("On writeback", &gui_color_resolve_method, ColorResolve::OnWriteback); - ImGui::SameLine(); - ImGui::RadioButton("Separate", &gui_color_resolve_method, ColorResolve::SeparatePass); - } - else - { - ImGui::Text("n/a"); - } - - ImGui::Text("Resolve depth: "); - ImGui::SameLine(); - if (msaa_enabled && run_postprocessing) - { - if (depth_writeback_resolve_supported) - { - ImGui::Checkbox("##resolve_depth", &gui_resolve_depth_on_writeback); - ImGui::SameLine(); - ImGui::Text("On writeback"); - ImGui::SameLine(); - ImGui::PushItemWidth(ImGui::GetWindowWidth() * 0.3f); - - if (ImGui::BeginCombo("##resolve_mode", to_string(gui_depth_resolve_mode).c_str())) - { - for (int n = 0; n < supported_depth_resolve_mode_list.size(); n++) - { - bool is_selected = (gui_depth_resolve_mode == supported_depth_resolve_mode_list[n]); - if (ImGui::Selectable(to_string(supported_depth_resolve_mode_list[n]).c_str(), is_selected)) - { - gui_depth_resolve_mode = supported_depth_resolve_mode_list[n]; - } - if (is_selected) - { - ImGui::SetItemDefaultFocus(); - } - } - ImGui::EndCombo(); - } - } - else - { - ImGui::Text("Not supported"); - } - } - else - { - ImGui::Text("n/a"); - } - }, - lines); -} - -void DynamicState3MultisampleRasterization::prepare_pipelines() -{ - // Create a blank pipeline layout. - // We are not binding any resources to the pipeline in this sample. - VkPipelineLayoutCreateInfo layout_info = vkb::initializers::pipeline_layout_create_info(nullptr, 0); - VK_CHECK(vkCreatePipelineLayout(get_device().get_handle(), &layout_info, nullptr, &sample_pipeline_layout)); - - VkPipelineVertexInputStateCreateInfo vertex_input = vkb::initializers::pipeline_vertex_input_state_create_info(); - - // Specify we will use triangle lists to draw geometry. - VkPipelineInputAssemblyStateCreateInfo input_assembly = vkb::initializers::pipeline_input_assembly_state_create_info(VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST, 0, VK_FALSE); - - // Specify rasterization state. - VkPipelineRasterizationStateCreateInfo raster = vkb::initializers::pipeline_rasterization_state_create_info(VK_POLYGON_MODE_FILL, VK_CULL_MODE_BACK_BIT, VK_FRONT_FACE_CLOCKWISE); - - // Our attachment will write to all color channels, but no blending is enabled. - VkPipelineColorBlendAttachmentState blend_attachment = vkb::initializers::pipeline_color_blend_attachment_state(VK_COLOR_COMPONENT_R_BIT | VK_COLOR_COMPONENT_G_BIT | VK_COLOR_COMPONENT_B_BIT | VK_COLOR_COMPONENT_A_BIT, VK_FALSE); - - VkPipelineColorBlendStateCreateInfo blend = vkb::initializers::pipeline_color_blend_state_create_info(1, &blend_attachment); - - // We will have one viewport and scissor box. - VkPipelineViewportStateCreateInfo viewport = vkb::initializers::pipeline_viewport_state_create_info(1, 1); - - // Enable depth testing (using reversed depth-buffer for increased precision). - VkPipelineDepthStencilStateCreateInfo depth_stencil = vkb::initializers::pipeline_depth_stencil_state_create_info(VK_TRUE, VK_TRUE, VK_COMPARE_OP_GREATER); - - // No multisampling. - VkPipelineMultisampleStateCreateInfo multisample = vkb::initializers::pipeline_multisample_state_create_info(VK_SAMPLE_COUNT_1_BIT); - - // Specify that these states will be dynamic, i.e. not part of pipeline state object. - std::array dynamics{VK_DYNAMIC_STATE_VIEWPORT, VK_DYNAMIC_STATE_SCISSOR}; - VkPipelineDynamicStateCreateInfo dynamic = vkb::initializers::pipeline_dynamic_state_create_info(dynamics.data(), vkb::to_u32(dynamics.size())); - - // Load our SPIR-V shaders. - std::array shader_stages{}; - - // Vertex stage of the pipeline - shader_stages[0] = load_shader("triangle.vert", VK_SHADER_STAGE_VERTEX_BIT); - shader_stages[1] = load_shader("triangle.frag", VK_SHADER_STAGE_FRAGMENT_BIT); - - // We need to specify the pipeline layout and the render pass description up front as well. - VkGraphicsPipelineCreateInfo pipeline_create_info = vkb::initializers::pipeline_create_info(sample_pipeline_layout, render_pass); - pipeline_create_info.stageCount = vkb::to_u32(shader_stages.size()); - pipeline_create_info.pStages = shader_stages.data(); - pipeline_create_info.pVertexInputState = &vertex_input; - pipeline_create_info.pInputAssemblyState = &input_assembly; - pipeline_create_info.pRasterizationState = &raster; - pipeline_create_info.pColorBlendState = &blend; - pipeline_create_info.pMultisampleState = &multisample; - pipeline_create_info.pViewportState = &viewport; - pipeline_create_info.pDepthStencilState = &depth_stencil; - pipeline_create_info.pDynamicState = &dynamic; - - VK_CHECK(vkCreateGraphicsPipelines(get_device().get_handle(), pipeline_cache, 1, &pipeline_create_info, nullptr, &sample_pipeline)); -} - -void DynamicState3MultisampleRasterization::build_command_buffers() -{ - VkCommandBufferBeginInfo command_buffer_begin_info = vkb::initializers::command_buffer_begin_info(); - - // Clear color and depth values. - VkClearValue clear_values[2]; - clear_values[0].color = {{0.0f, 0.0f, 0.0f, 0.0f}}; - clear_values[1].depthStencil = {0.0f, 0}; - - // Begin the render pass. - VkRenderPassBeginInfo render_pass_begin_info = vkb::initializers::render_pass_begin_info(); - render_pass_begin_info.renderPass = render_pass; - render_pass_begin_info.renderArea.offset.x = 0; - render_pass_begin_info.renderArea.offset.y = 0; - render_pass_begin_info.renderArea.extent.width = width; - render_pass_begin_info.renderArea.extent.height = height; - render_pass_begin_info.clearValueCount = 2; - render_pass_begin_info.pClearValues = clear_values; - - for (int32_t i = 0; i < draw_cmd_buffers.size(); ++i) - { - auto cmd = draw_cmd_buffers[i]; - - // Begin command buffer. - vkBeginCommandBuffer(cmd, &command_buffer_begin_info); - - // Set framebuffer for this command buffer. - render_pass_begin_info.framebuffer = framebuffers[i]; - // We will add draw commands in the same command buffer. - vkCmdBeginRenderPass(cmd, &render_pass_begin_info, VK_SUBPASS_CONTENTS_INLINE); - - // Bind the graphics pipeline. - vkCmdBindPipeline(cmd, VK_PIPELINE_BIND_POINT_GRAPHICS, sample_pipeline); - - // Set viewport dynamically - VkViewport viewport = vkb::initializers::viewport(static_cast(width), static_cast(height), 0.0f, 1.0f); - vkCmdSetViewport(cmd, 0, 1, &viewport); - - // Set scissor dynamically - VkRect2D scissor = vkb::initializers::rect2D(width, height, 0, 0); - vkCmdSetScissor(cmd, 0, 1, &scissor); - - // Draw three vertices with one instance. - vkCmdDraw(cmd, 3, 1, 0, 0); - - // Draw user interface. - draw_ui(draw_cmd_buffers[i]); - - // Complete render pass. - vkCmdEndRenderPass(cmd); - - // Complete the command buffer. - VK_CHECK(vkEndCommandBuffer(cmd)); - } -} - -void DynamicState3MultisampleRasterization::render(float delta_time) -{ - if (!prepared) - { - return; - } - ApiVulkanSample::prepare_frame(); - submit_info.commandBufferCount = 1; - submit_info.pCommandBuffers = &draw_cmd_buffers[current_buffer]; - VK_CHECK(vkQueueSubmit(queue, 1, &submit_info, VK_NULL_HANDLE)); - ApiVulkanSample::submit_frame(); -} - - -std::unique_ptr create_dynamic_state3_multisample_rasterization() -{ - return std::make_unique(); -} +/* Copyright (c) 2023, Arm Limited and Contributors + * + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed under the Apache License, Version 2.0 the "License"; + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include "dynamic_state3_multisample_rasterization.h" + +#include "common/vk_common.h" +#include "gltf_loader.h" +#include "gui.h" +#include "platform/filesystem.h" + +#include + +#include "scene_graph/components/mesh.h" +#include "scene_graph/components/material.h" + +#include "rendering/postprocessing_renderpass.h" +#include "rendering/subpasses/forward_subpass.h" +#include "stats/stats.h" + +namespace +{ +template +struct CopyBuffer +{ + std::vector operator()(std::unordered_map &buffers, const char *bufferName) + { + auto iter = buffers.find(bufferName); + if (iter == buffers.cend()) + { + return {}; + } + auto &buffer = iter->second; + std::vector out; + + const size_t sz = buffer.get_size(); + out.resize(sz / sizeof(T)); + const bool alreadyMapped = buffer.get_data() != nullptr; + if (!alreadyMapped) + { + buffer.map(); + } + memcpy(&out[0], buffer.get_data(), sz); + if (!alreadyMapped) + { + buffer.unmap(); + } + return out; + } +}; + +} // namespace + +namespace +{ +const std::string to_string(VkSampleCountFlagBits count) +{ + switch (count) + { + case VK_SAMPLE_COUNT_1_BIT: + return "No MSAA"; + case VK_SAMPLE_COUNT_2_BIT: + return "2X MSAA"; + case VK_SAMPLE_COUNT_4_BIT: + return "4X MSAA"; + case VK_SAMPLE_COUNT_8_BIT: + return "8X MSAA"; + case VK_SAMPLE_COUNT_16_BIT: + return "16X MSAA"; + case VK_SAMPLE_COUNT_32_BIT: + return "32X MSAA"; + case VK_SAMPLE_COUNT_64_BIT: + return "64X MSAA"; + default: + return "Unknown"; + } +} + +const std::string to_string(VkResolveModeFlagBits mode) +{ + switch (mode) + { + case VK_RESOLVE_MODE_NONE: + return "None"; + case VK_RESOLVE_MODE_SAMPLE_ZERO_BIT: + return "Sample 0"; + case VK_RESOLVE_MODE_AVERAGE_BIT: + return "Average"; + case VK_RESOLVE_MODE_MIN_BIT: + return "Min"; + case VK_RESOLVE_MODE_MAX_BIT: + return "Max"; + default: + return "Unknown"; + } +} +} // namespace + +DynamicState3MultisampleRasterization::DynamicState3MultisampleRasterization() +{ + // Extension of interest in this sample (optional) + add_device_extension(VK_KHR_DEPTH_STENCIL_RESOLVE_EXTENSION_NAME, true); + + // Extension dependency requirements (given that instance API version is 1.0.0) + add_instance_extension(VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME, true); + add_device_extension(VK_KHR_CREATE_RENDERPASS_2_EXTENSION_NAME, true); + add_device_extension(VK_KHR_MAINTENANCE2_EXTENSION_NAME, true); + add_device_extension(VK_KHR_MULTIVIEW_EXTENSION_NAME, true); + + auto &config = get_configuration(); + + // MSAA will be enabled by default if supported + // Batch mode will test the toggle between 1 or 2 renderpasses + // with writeback resolve of color and depth + config.insert(0, gui_run_postprocessing, false); + config.insert(1, gui_run_postprocessing, true); +} + +DynamicState3MultisampleRasterization::~DynamicState3MultisampleRasterization() +{ + if (device) + { + vkDestroyPipeline(get_device().get_handle(), sample_pipeline, nullptr); + vkDestroyPipelineLayout(get_device().get_handle(), sample_pipeline_layout, nullptr); + } +} + +void DynamicState3MultisampleRasterization::load_scene() +{ + assert(!!device); + vkb::GLTFLoader loader{*device}; + const std::string scene_path = "scenes/space_module/"; + //auto scene = loader.read_scene_from_file(scene_path + "vokselia.gltf"); + scene = loader.read_scene_from_file(scene_path + "SpaceModule.gltf"); + + //const std::string scene_path = "scenes/"; + //scene = loader.read_scene_from_file(scene_path + "torusknot.gltf"); + + assert(!!scene); + + //auto materials = scene->get_components(); + //auto textures = scene->get_components(); + + for (auto &&texture : scene->get_components()) + { + //const auto name = texture->get_name(); + //std::cout << name << std::endl; + const auto &short_name = texture->get_name(); + std::cout << short_name << std::endl; + //auto image_name = scene_path + short_name + ".ktx"; + //auto image_name = scene_path + short_name; + //auto image = vkb::sg::Image::load(image_name, image_name, vkb::sg::Image::Color); + + // hack: + //image-> VK_FORMAT_R8G8B8A8_SRGB + + //image->create_vk_image(*device); + //Texture texture; + //texture.n_mip_maps = static_cast(image->get_mipmaps().size()); + //texture.image = const_cast>(image->get_vk_image()); + //texture.image_view = const_cast(image->get_vk_image_view()); + //assert(texture.n_mip_maps == 1); + /* + texture.image = std::make_unique(*device, + image->get_extent(), + image->get_format(), + VK_IMAGE_USAGE_SAMPLED_BIT | VK_IMAGE_USAGE_TRANSFER_DST_BIT, + VMA_MEMORY_USAGE_GPU_ONLY, + VK_SAMPLE_COUNT_1_BIT, + 1, + 1, + VK_IMAGE_TILING_OPTIMAL, + + 0); + + const auto &data = texture->get_image()->get_data(); + auto data_buffer = std::make_unique(*device, data.size() * sizeof(data[0]), VK_BUFFER_USAGE_TRANSFER_SRC_BIT, VMA_MEMORY_USAGE_CPU_TO_GPU, VMA_ALLOCATION_CREATE_MAPPED_BIT, queue_families); + data_buffer->update(data.data(), data.size() * sizeof(data[0]), 0); + data_buffer->flush(); + + auto &texture_cmd = device->get_command_pool().request_command_buffer(); + texture_cmd.begin(VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT, VK_NULL_HANDLE); + + VkImageSubresourceRange subresource_range = {VK_IMAGE_ASPECT_COLOR_BIT, 0, 1, 0, 1}; + subresource_range.baseMipLevel = 0; + subresource_range.levelCount = texture->get_image()->get_mipmaps().size(); + + vkb::image_layout_transition( + texture_cmd.get_handle(), texture->get_image()->get_vk_image().get_handle(), VK_IMAGE_LAYOUT_UNDEFINED, VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, subresource_range); + + auto offsets = texture->get_image()->get_offsets(); + VkBufferImageCopy region = {}; + region.imageSubresource.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT; + region.imageSubresource.mipLevel = 0; + region.imageSubresource.baseArrayLayer = 0; + region.imageSubresource.layerCount = 1; + region.imageExtent = texture->get_image()->get_extent(); + region.bufferOffset = offsets[0][0]; + + texture_cmd.copy_buffer_to_image(*data_buffer, texture->get_image()->get_vk_image(), {region}); + texture_cmd.end(); + + auto &queue = device->get_queue_by_flags(VK_QUEUE_GRAPHICS_BIT, 0); + queue.submit(texture_cmd, device->request_fence()); + device->get_fence_pool().wait(); + device->get_fence_pool().reset(); + + //texture.image_view = std::make_unique(*texture.image, VK_IMAGE_VIEW_TYPE_2D); + */ + VkDescriptorImageInfo image_descriptor; + image_descriptor.imageLayout = VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL; + image_descriptor.imageView = texture->get_image()->get_vk_image_view().get_handle(); + image_descriptor.sampler = sampler; + image_descriptors.push_back(image_descriptor); + //textures.emplace_back(std::move(texture)); + } + + /* + for (auto && material : scene->get_components()) + { + const auto name = material->get_name(); + std::cout << name << std::endl; + } + */ + + for (auto &&mesh : scene->get_components()) + { + /* + const auto &short_name = mesh->get_name(); + auto image_name = scene_path + short_name + ".ktx"; + auto image = vkb::sg::Image::load(image_name, image_name, vkb::sg::Image::Color); + + image->create_vk_image(*device); + Texture texture; + texture.n_mip_maps = static_cast(image->get_mipmaps().size()); + assert(texture.n_mip_maps == 1); + texture.image = std::make_unique(*device, + image->get_extent(), + image->get_format(), + VK_IMAGE_USAGE_SAMPLED_BIT | VK_IMAGE_USAGE_TRANSFER_DST_BIT, + VMA_MEMORY_USAGE_GPU_ONLY, + VK_SAMPLE_COUNT_1_BIT, + 1, + 1, + VK_IMAGE_TILING_OPTIMAL, + + 0); + + const auto &data = image->get_data(); + auto data_buffer = std::make_unique(*device, data.size() * sizeof(data[0]), VK_BUFFER_USAGE_TRANSFER_SRC_BIT, VMA_MEMORY_USAGE_CPU_TO_GPU, VMA_ALLOCATION_CREATE_MAPPED_BIT, queue_families); + data_buffer->update(data.data(), data.size() * sizeof(data[0]), 0); + data_buffer->flush(); + + + auto &texture_cmd = device->get_command_pool().request_command_buffer(); + texture_cmd.begin(VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT, VK_NULL_HANDLE); + + VkImageSubresourceRange subresource_range = {VK_IMAGE_ASPECT_COLOR_BIT, 0, 1, 0, 1}; + subresource_range.baseMipLevel = 0; + subresource_range.levelCount = texture.n_mip_maps; + + vkb::image_layout_transition( + texture_cmd.get_handle(), texture.image->get_handle(), VK_IMAGE_LAYOUT_UNDEFINED, VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, subresource_range); + + auto offsets = image->get_offsets(); + VkBufferImageCopy region = {}; + region.imageSubresource.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT; + region.imageSubresource.mipLevel = 0; + region.imageSubresource.baseArrayLayer = 0; + region.imageSubresource.layerCount = 1; + region.imageExtent = image->get_extent(); + region.bufferOffset = offsets[0][0]; + + texture_cmd.copy_buffer_to_image(*data_buffer, *texture.image, {region}); + texture_cmd.end(); + + auto &queue = device->get_queue_by_flags(VK_QUEUE_GRAPHICS_BIT, 0); + queue.submit(texture_cmd, device->request_fence()); + device->get_fence_pool().wait(); + device->get_fence_pool().reset(); + + texture.image_view = std::make_unique(*texture.image, VK_IMAGE_VIEW_TYPE_2D); + + VkDescriptorImageInfo image_descriptor; + image_descriptor.imageLayout = VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL; + image_descriptor.imageView = texture.image_view->get_handle(); + image_descriptor.sampler = sampler; + image_descriptors.push_back(image_descriptor); + textures.emplace_back(std::move(texture)); + */ + for (auto &&sub_mesh : mesh->get_submeshes()) + { + SceneModel model; + // PJ: Fix this!!!! + //auto texs = sub_mesh->get_material()->textures; + //auto first_texture = sub_mesh->get_material()->textures.at(0); + model.texture_index = 1; + + auto pts = CopyBuffer{}(sub_mesh->vertex_buffers, "position"); + auto uvs = CopyBuffer{}(sub_mesh->vertex_buffers, "texcoord_0"); + assert(uvs.size() == pts.size()); + + model.vertices.resize(pts.size()); + for (size_t i = 0; i < pts.size(); ++i) + { + model.vertices[i].pt = {pts[i].x, -pts[i].y, pts[i].z}; + model.vertices[i].uv = uvs[i]; + } + + assert(sub_mesh->index_type == VK_INDEX_TYPE_UINT16); + auto buffer = sub_mesh->index_buffer.get(); + if (buffer) + { + const size_t sz = buffer->get_size(); + const size_t nTriangles = sz / sizeof(uint16_t) / 3; + model.triangles.resize(nTriangles); + auto ptr = buffer->get_data(); + assert(!!ptr); + std::vector temp_buffer(nTriangles * 3); + memcpy(temp_buffer.data(), ptr, nTriangles * 3 * sizeof(temp_buffer[0])); + model.triangles.resize(nTriangles); + for (size_t i = 0; i < nTriangles; ++i) + { + model.triangles[i] = { + static_cast(temp_buffer[3 * i]), + static_cast(temp_buffer[3 * i + 1]), + static_cast(temp_buffer[3 * i + 2])}; + } + } + //model.bounding_sphere = BoundingSphere(pts); + models.emplace_back(std::move(model)); + } + } + + auto textures = scene->get_components(); + + std::vector> imagesAndRanges; + // static_cast(scene->get_components().size()) + imagesAndRanges.reserve(textures.size()); + for (auto const &texture : textures) + { + imagesAndRanges.emplace_back( + std::make_pair(texture->get_image()->get_vk_image().get_handle(), VkImageSubresourceRange{VK_IMAGE_ASPECT_COLOR_BIT, 0, static_cast(texture->get_image()->get_mipmaps().size()), 0, 1})); + } + + auto &cmd = device->get_command_pool().request_command_buffer(); + cmd.begin(VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT, VK_NULL_HANDLE); + vkb::image_layout_transition(cmd.get_handle(), imagesAndRanges, VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL); + cmd.end(); + auto &queue = device->get_queue_by_flags(VK_QUEUE_GRAPHICS_BIT, 0); + queue.submit(cmd, device->request_fence()); + device->get_fence_pool().wait(); +} + +void DynamicState3MultisampleRasterization::initialize_resources() +{ + size_t vertex_buffer_size = 0, index_buffer_size = 0; + const size_t model_buffer_size = models.size() * sizeof(SceneModel); + for (auto &&model : models) + { + model.vertex_buffer_offset = vertex_buffer_size; + model.index_buffer_offset = index_buffer_size; + + vertex_buffer_size += model.vertices.size() * sizeof(Vertex); + index_buffer_size += model.triangles.size() * sizeof(model.triangles[0]); + } + + assert(vertex_buffer_size && index_buffer_size && model_buffer_size); + auto staging_vertex_buffer = std::make_unique(get_device(), vertex_buffer_size, VK_BUFFER_USAGE_TRANSFER_SRC_BIT, VMA_MEMORY_USAGE_CPU_TO_GPU); + auto staging_index_buffer = std::make_unique(get_device(), index_buffer_size, VK_BUFFER_USAGE_TRANSFER_SRC_BIT, VMA_MEMORY_USAGE_CPU_TO_GPU); + auto staging_model_buffer = std::make_unique(get_device(), model_buffer_size, VK_BUFFER_USAGE_TRANSFER_SRC_BIT, VMA_MEMORY_USAGE_CPU_TO_GPU); + + // We will store the GPU commands in the indirect call buffer + constexpr auto default_indirect_flags = VK_BUFFER_USAGE_TRANSFER_SRC_BIT | VK_BUFFER_USAGE_STORAGE_BUFFER_BIT | VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT | VK_BUFFER_USAGE_TRANSFER_DST_BIT; + auto indirect_flags = default_indirect_flags; + /* + if (m_supports_buffer_device) + { + indirect_flags |= VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT; + } + */ + indirect_call_buffer = std::make_unique(get_device(), models.size() * sizeof(VkDrawIndexedIndirectCommand), indirect_flags, VMA_MEMORY_USAGE_GPU_ONLY, VMA_ALLOCATION_CREATE_MAPPED_BIT, queue_families); + + // Create a buffer containing the addresses of the indirect calls. + // In this sample, the order of the addresses will match that of the other buffers, but in general they could be in any order + const size_t address_buffer_size = sizeof(VkDeviceAddress); + auto staging_address_buffer = std::make_unique(get_device(), address_buffer_size, VK_BUFFER_USAGE_TRANSFER_SRC_BIT, VMA_MEMORY_USAGE_CPU_TO_GPU); + /* + if (m_supports_buffer_device) + { + auto *destPtr = (uint64_t *) staging_address_buffer->get_data(); + + VkBufferDeviceAddressInfoKHR address_info{VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO_KHR}; + address_info.buffer = indirect_call_buffer->get_handle(); + VkDeviceAddress srcPtr = vkGetBufferDeviceAddressKHR(device->get_handle(), &address_info); + + *destPtr = srcPtr; + } + */ + + for (size_t i = 0; i < models.size(); ++i) + { + auto &model = models[i]; + staging_vertex_buffer->update(model.vertices.data(), model.vertices.size() * sizeof(Vertex), model.vertex_buffer_offset); + staging_index_buffer->update(model.triangles.data(), model.triangles.size() * sizeof(model.triangles[0]), model.index_buffer_offset); + + GpuModelInformation model_information; + //model_information.bounding_sphere_center = model.bounding_sphere.center; + //model_information.bounding_sphere_radius = model.bounding_sphere.radius; + model_information.texture_index = model.texture_index; + model_information.firstIndex = model.index_buffer_offset / (sizeof(model.triangles[0][0])); + model_information.indexCount = static_cast(model.triangles.size()); + staging_model_buffer->update(&model_information, sizeof(GpuModelInformation), i * sizeof(GpuModelInformation)); + } + + staging_vertex_buffer->flush(); + staging_index_buffer->flush(); + staging_model_buffer->flush(); + + auto &cmd = device->request_command_buffer(); + cmd.begin(VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT, VK_NULL_HANDLE); + auto copy = [this, &cmd](vkb::core::Buffer &staging_buffer, VkBufferUsageFlags buffer_usage_flags) { + auto output_buffer = std::make_unique(get_device(), staging_buffer.get_size(), buffer_usage_flags | VK_BUFFER_USAGE_TRANSFER_DST_BIT, VMA_MEMORY_USAGE_GPU_ONLY, VMA_ALLOCATION_CREATE_MAPPED_BIT, queue_families); + cmd.copy_buffer(staging_buffer, *output_buffer, staging_buffer.get_size()); + + vkb::BufferMemoryBarrier barrier; + barrier.src_stage_mask = VK_PIPELINE_STAGE_TRANSFER_BIT; + barrier.dst_stage_mask = VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT; + barrier.src_access_mask = VK_ACCESS_TRANSFER_WRITE_BIT; + barrier.dst_access_mask = VK_ACCESS_SHADER_READ_BIT | VK_ACCESS_SHADER_WRITE_BIT; + cmd.buffer_memory_barrier(*output_buffer, 0, VK_WHOLE_SIZE, barrier); + return output_buffer; + }; + vertex_buffer = copy(*staging_vertex_buffer, VK_BUFFER_USAGE_VERTEX_BUFFER_BIT | VK_BUFFER_USAGE_STORAGE_BUFFER_BIT); + index_buffer = copy(*staging_index_buffer, VK_BUFFER_USAGE_INDEX_BUFFER_BIT); + model_information_buffer = copy(*staging_model_buffer, VK_BUFFER_USAGE_STORAGE_BUFFER_BIT | VK_BUFFER_USAGE_VERTEX_BUFFER_BIT); + /* + if (m_supports_buffer_device) + { + // In this sample, we use a staging buffer for the device address buffer (i.e. for device exclusive memory). + // However, since the size of each element (sizeof(uint64_t)) is smaller than the objects it's pointing to, it could instead use host-visible memory + // for fast referencing of the underlying data + device_address_buffer = copy(*staging_address_buffer, VK_BUFFER_USAGE_STORAGE_BUFFER_BIT | VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT); + } + */ + + cmd.end(); + auto &queue = device->get_queue_by_flags(VK_QUEUE_GRAPHICS_BIT, 0); + queue.submit(cmd, device->request_fence()); + device->get_fence_pool().wait(); +} + +void DynamicState3MultisampleRasterization::update_scene_uniform() +{ + if (!scene_uniform_buffer) + { + scene_uniform_buffer = std::make_unique(*device, sizeof(SceneUniform), VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT, VMA_MEMORY_USAGE_CPU_TO_GPU, VMA_ALLOCATION_CREATE_MAPPED_BIT, queue_families); + } + scene_uniform.proj = camera.matrices.perspective; + scene_uniform.view = camera.matrices.view; + scene_uniform.proj_view = scene_uniform.proj * scene_uniform.view; + scene_uniform.model_count = static_cast(models.size()); + + scene_uniform_buffer->update(&scene_uniform, sizeof(scene_uniform), 0); + + scene_uniform_buffer->flush(); +} + +void DynamicState3MultisampleRasterization::draw() +{ + ApiVulkanSample::prepare_frame(); + + // Command buffer to be submitted to the queue + submit_info.commandBufferCount = 1; + submit_info.pCommandBuffers = &draw_cmd_buffers[current_buffer]; + + // Submit to queue + VK_CHECK(vkQueueSubmit(queue, 1, &submit_info, VK_NULL_HANDLE)); + + ApiVulkanSample::submit_frame(); +} + +void DynamicState3MultisampleRasterization::cpu_cull() +{ + cpu_commands.resize(models.size()); + + //VisibilityTester tester(scene_uniform.proj * scene_uniform.view); + for (size_t i = 0; i < models.size(); ++i) + { + // we control visibility by changing the instance count + auto &model = models[i]; + VkDrawIndexedIndirectCommand cmd{}; + cmd.firstIndex = model.index_buffer_offset / (sizeof(model.triangles[0][0])); + cmd.indexCount = static_cast(model.triangles.size()) * 3; + cmd.vertexOffset = static_cast(model.vertex_buffer_offset / sizeof(Vertex)); + cmd.firstInstance = i; + cmd.instanceCount = models.size(); // tester.is_visible(model.bounding_sphere.center, model.bounding_sphere.radius); + cpu_commands[i] = cmd; + } + + const auto call_buffer_size = cpu_commands.size() * sizeof(cpu_commands[0]); + assert(!!indirect_call_buffer && indirect_call_buffer->get_size() == call_buffer_size); + + if (!cpu_staging_buffer || cpu_staging_buffer->get_size() != call_buffer_size) + { + cpu_staging_buffer = std::make_unique(get_device(), models.size() * sizeof(VkDrawIndexedIndirectCommand), VK_BUFFER_USAGE_TRANSFER_DST_BIT | VK_BUFFER_USAGE_TRANSFER_SRC_BIT, VMA_MEMORY_USAGE_CPU_TO_GPU); + } + + cpu_staging_buffer->update(cpu_commands.data(), call_buffer_size, 0); + cpu_staging_buffer->flush(); + + auto &transfer_cmd = device->get_command_pool().request_command_buffer(); + transfer_cmd.begin(VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT, VK_NULL_HANDLE); + transfer_cmd.copy_buffer(*cpu_staging_buffer, *indirect_call_buffer, call_buffer_size); + transfer_cmd.end(); + + auto &queue = device->get_queue_by_flags(VK_QUEUE_GRAPHICS_BIT, 0); + queue.submit(transfer_cmd, device->request_fence()); + device->get_fence_pool().wait(); +} + + +bool DynamicState3MultisampleRasterization::prepare(const vkb::ApplicationOptions &options) +{ + if (!ApiVulkanSample::prepare(options)) + { + return false; + } + + camera.type = vkb::CameraType::FirstPerson; + camera.set_perspective(60.0f, static_cast(width) / static_cast(height), 0.001f, 512.0f); + //camera.set_rotation(glm::vec3(-23.5, -45, 0)); + //camera.set_translation(glm::vec3(0, 0.5, -0.2)); + camera.set_translation(glm::vec3(0, 5, -500)); + + create_sampler(); + load_scene(); + initialize_resources(); + + update_scene_uniform(); + + prepare_pipelines(); + + initialize_descriptors(); + + build_command_buffers(); + + /* + prepare_supported_sample_count_list(); + + depth_writeback_resolve_supported = device->is_enabled(VK_KHR_DEPTH_STENCIL_RESOLVE_EXTENSION_NAME); + if (depth_writeback_resolve_supported) + { + prepare_depth_resolve_mode_list(); + } + */ + + cpu_cull(); + + /* + load_scene("scenes/space_module/SpaceModule.gltf"); + + auto &camera_node = vkb::add_free_camera(*scene, "main_camera", get_render_context().get_surface_extent()); + camera = dynamic_cast(&camera_node.get_component()); + + vkb::ShaderSource scene_vs("base.vert"); + vkb::ShaderSource scene_fs("base.frag"); + //auto scene_subpass = std::make_unique(get_render_context(), std::move(scene_vs), std::move(scene_fs), *scene, *camera); + //scene_pipeline = std::make_unique(); + //scene_pipeline->add_subpass(std::move(scene_subpass)); + vkb::ShaderSource postprocessing_vs("postprocessing/postprocessing.vert"); + postprocessing_pipeline = std::make_unique(get_render_context(), std::move(postprocessing_vs)); + postprocessing_pipeline->add_pass().add_subpass(vkb::ShaderSource("postprocessing/outline.frag")); + + //update_pipelines(); + + stats->request_stats({vkb::StatIndex::frame_times, + vkb::StatIndex::gpu_ext_read_bytes, + vkb::StatIndex::gpu_ext_write_bytes}); + + //gui = std::make_unique(*this, *window, stats.get()); + */ + + prepared = true; + return true; +} +/* +void DynamicState3MultisampleRasterization::prepare_render_context() +{ + get_render_context().prepare(1, std::bind(&DynamicState3MultisampleRasterization::create_render_target, this, std::placeholders::_1)); +} + +std::unique_ptr DynamicState3MultisampleRasterization::create_render_target(vkb::core::Image &&swapchain_image) +{ + auto &device = swapchain_image.get_device(); + auto &extent = swapchain_image.get_extent(); + + auto depth_format = vkb::get_suitable_depth_format(device.get_gpu().get_handle()); + bool msaa_enabled = sample_count != VK_SAMPLE_COUNT_1_BIT; + VkImageUsageFlags depth_usage = VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT; + VkImageUsageFlags depth_resolve_usage = VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT; + if (run_postprocessing) + { + // Depth needs to be read by the postprocessing subpass + if (msaa_enabled && depth_writeback_resolve_supported && resolve_depth_on_writeback) + { + // Depth is resolved + depth_usage |= VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT; + depth_resolve_usage |= VK_IMAGE_USAGE_SAMPLED_BIT; + } + else + { + // Postprocessing reads multisampled depth + depth_usage |= VK_IMAGE_USAGE_SAMPLED_BIT; + depth_resolve_usage |= VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT; + } + } + else + { + // Depth attachments are transient + depth_usage |= VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT; + depth_resolve_usage |= VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT; + } + + vkb::core::Image depth_image{device, + extent, + depth_format, + depth_usage, + VMA_MEMORY_USAGE_GPU_ONLY, + sample_count}; + + vkb::core::Image depth_resolve_image{device, + extent, + depth_format, + depth_resolve_usage, + VMA_MEMORY_USAGE_GPU_ONLY, + VK_SAMPLE_COUNT_1_BIT}; + + VkImageUsageFlags color_ms_usage = VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT; + if (ColorResolve::OnWriteback == color_resolve_method) + { + // Writeback resolve means that the multisampled attachment + // can be discarded at the end of the render pass + color_ms_usage |= VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT; + } + else if (ColorResolve::SeparatePass == color_resolve_method) + { + // Multisampled attachment will be stored and + // resolved outside the render pass + color_ms_usage |= VK_IMAGE_USAGE_TRANSFER_SRC_BIT; + } + + vkb::core::Image color_ms_image{device, + extent, + swapchain_image.get_format(), + color_ms_usage, + VMA_MEMORY_USAGE_GPU_ONLY, + sample_count}; + + VkImageUsageFlags color_resolve_usage = VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT; + if (run_postprocessing) + { + if (ColorResolve::SeparatePass == color_resolve_method) + { + // The multisampled color image will be resolved + // to this attachment with a transfer operation + color_resolve_usage |= VK_IMAGE_USAGE_TRANSFER_DST_BIT; + } + + // The resolved color image will be read by the postprocessing + // renderpass + color_resolve_usage |= VK_IMAGE_USAGE_SAMPLED_BIT; + } + + vkb::core::Image color_resolve_image{device, + extent, + swapchain_image.get_format(), + color_resolve_usage, + VMA_MEMORY_USAGE_GPU_ONLY, + VK_SAMPLE_COUNT_1_BIT}; + + scene_load_store.clear(); + std::vector images; + + // Attachment 0 - Swapchain + // Used by the scene renderpass if postprocessing is disabled + // Used by the postprocessing renderpass if postprocessing is enabled + i_swapchain = 0; + images.push_back(std::move(swapchain_image)); + scene_load_store.push_back({VK_ATTACHMENT_LOAD_OP_CLEAR, VK_ATTACHMENT_STORE_OP_STORE}); + + // Attachment 1 - Depth + // Always used by the scene renderpass, may or may not be multisampled + i_depth = 1; + images.push_back(std::move(depth_image)); + scene_load_store.push_back({VK_ATTACHMENT_LOAD_OP_CLEAR, VK_ATTACHMENT_STORE_OP_DONT_CARE}); + + // Attachment 2 - Multisampled color + // Used by the scene renderpass if MSAA is enabled + i_color_ms = 2; + images.push_back(std::move(color_ms_image)); + scene_load_store.push_back({VK_ATTACHMENT_LOAD_OP_CLEAR, VK_ATTACHMENT_STORE_OP_DONT_CARE}); + + // Attachment 3 - Resolved color + // Used as an output by the scene renderpass if MSAA and postprocessing are enabled + // Used as an input by the postprocessing renderpass + i_color_resolve = 3; + images.push_back(std::move(color_resolve_image)); + scene_load_store.push_back({VK_ATTACHMENT_LOAD_OP_CLEAR, VK_ATTACHMENT_STORE_OP_DONT_CARE}); + + // Attachment 4 - Resolved depth + // Used for writeback depth resolve if MSAA is enabled and the required extension is supported + i_depth_resolve = 4; + images.push_back(std::move(depth_resolve_image)); + scene_load_store.push_back({VK_ATTACHMENT_LOAD_OP_CLEAR, VK_ATTACHMENT_STORE_OP_DONT_CARE}); + + color_atts = {i_swapchain, i_color_ms, i_color_resolve}; + depth_atts = {i_depth, i_depth_resolve}; + + return std::make_unique(std::move(images)); +} + +/* +void DynamicState3MultisampleRasterization::update(float delta_time) +{ + if ((gui_run_postprocessing != last_gui_run_postprocessing) || + (gui_sample_count != last_gui_sample_count) || + (gui_color_resolve_method != last_gui_color_resolve_method) || + (gui_resolve_depth_on_writeback != last_gui_resolve_depth_on_writeback) || + (gui_depth_resolve_mode != last_gui_depth_resolve_mode)) + { + run_postprocessing = gui_run_postprocessing; + sample_count = gui_sample_count; + color_resolve_method = gui_color_resolve_method; + resolve_depth_on_writeback = gui_resolve_depth_on_writeback; + depth_resolve_mode = gui_depth_resolve_mode; + + update_pipelines(); + + last_gui_run_postprocessing = gui_run_postprocessing; + last_gui_sample_count = gui_sample_count; + last_gui_color_resolve_method = gui_color_resolve_method; + last_gui_resolve_depth_on_writeback = gui_resolve_depth_on_writeback; + last_gui_depth_resolve_mode = gui_depth_resolve_mode; + } + + VulkanSample::update(delta_time); +} + + +void DynamicState3MultisampleRasterization::update_pipelines() +{ + bool msaa_enabled = sample_count != VK_SAMPLE_COUNT_1_BIT; + if (run_postprocessing) + { + update_for_scene_and_postprocessing(msaa_enabled); + } + else + { + update_for_scene_only(msaa_enabled); + } + + // Default swapchain usage flags + std::set swapchain_usage = {VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT, VK_IMAGE_USAGE_TRANSFER_SRC_BIT}; + if (ColorResolve::SeparatePass == color_resolve_method && !run_postprocessing) + { + // The multisampled color image will be resolved + // to the swapchain with a transfer operation + swapchain_usage.insert(VK_IMAGE_USAGE_TRANSFER_DST_BIT); + } + + get_device().wait_idle(); + + get_render_context().update_swapchain(swapchain_usage); +} + +void DynamicState3MultisampleRasterization::update_for_scene_only(bool msaa_enabled) +{ + auto &scene_subpass = scene_pipeline->get_active_subpass(); + scene_subpass->set_sample_count(sample_count); + + if (msaa_enabled) + { + // Render multisampled color, to be resolved to the swapchain + use_multisampled_color(scene_subpass, scene_load_store, i_swapchain); + } + else + { + // Render color to the swapchain + use_singlesampled_color(scene_subpass, scene_load_store, i_swapchain); + } + + // Depth attachment is transient, it will not be needed after the renderpass + // If it is multisampled, there is no need to resolve it + scene_load_store[i_depth].store_op = VK_ATTACHMENT_STORE_OP_DONT_CARE; + disable_depth_writeback_resolve(scene_subpass, scene_load_store); + + // Auxiliary single-sampled color attachment is not used + scene_load_store[i_color_resolve].store_op = VK_ATTACHMENT_STORE_OP_DONT_CARE; + + // Update the scene renderpass + scene_pipeline->set_load_store(scene_load_store); +} + +void DynamicState3MultisampleRasterization::update_for_scene_and_postprocessing(bool msaa_enabled) +{ + auto &scene_subpass = scene_pipeline->get_active_subpass(); + scene_subpass->set_sample_count(sample_count); + + // The color and depth attachments will be the input of the postprocessing renderpass + if (msaa_enabled) + { + // Resolve multisampled color to an intermediate attachment + use_multisampled_color(scene_subpass, scene_load_store, i_color_resolve); + + // Store multisampled depth + // Resolve it first if enabled and supported, + store_multisampled_depth(scene_subpass, scene_load_store); + } + else + { + // Render color to an intermediate attachment + use_singlesampled_color(scene_subpass, scene_load_store, i_color_resolve); + + // Store single-sampled depth + scene_load_store[i_depth].store_op = VK_ATTACHMENT_STORE_OP_STORE; + disable_depth_writeback_resolve(scene_subpass, scene_load_store); + } + + // Swapchain is not used in the scene renderpass + scene_load_store[i_swapchain].store_op = VK_ATTACHMENT_STORE_OP_DONT_CARE; + + // Update the scene renderpass + scene_pipeline->set_load_store(scene_load_store); +} + +void DynamicState3MultisampleRasterization::use_multisampled_color(std::unique_ptr &subpass, std::vector &load_store, uint32_t resolve_attachment) +{ + // Render to multisampled color attachment + subpass->set_output_attachments({i_color_ms}); + + // Resolve color + if (ColorResolve::OnWriteback == color_resolve_method) + { + // Good practice + // Multisampled attachment is transient + // This allows tilers to completely avoid writing out the multisampled attachment to memory, + // a considerable performance and bandwidth improvement + load_store[i_color_ms].store_op = VK_ATTACHMENT_STORE_OP_DONT_CARE; + + // Enable writeback resolve to single-sampled attachment + subpass->set_color_resolve_attachments({resolve_attachment}); + + // Save resolved attachment + load_store[resolve_attachment].store_op = VK_ATTACHMENT_STORE_OP_STORE; + } + else if (ColorResolve::SeparatePass == color_resolve_method) + { + // Bad practice + // Save multisampled color attachment, will be resolved outside the renderpass + // Storing multisampled color should be avoided + load_store[i_color_ms].store_op = VK_ATTACHMENT_STORE_OP_STORE; + + // Disable writeback resolve + subpass->set_color_resolve_attachments({}); + load_store[resolve_attachment].store_op = VK_ATTACHMENT_STORE_OP_DONT_CARE; + } +} + +void DynamicState3MultisampleRasterization::use_singlesampled_color(std::unique_ptr &subpass, std::vector &load_store, uint32_t output_attachment) +{ + // Render to a single-sampled attachment + subpass->set_output_attachments({output_attachment}); + load_store[output_attachment].store_op = VK_ATTACHMENT_STORE_OP_STORE; + + // Multisampled color attachment is not used + load_store[i_color_ms].store_op = VK_ATTACHMENT_STORE_OP_DONT_CARE; + + // Disable writeback resolve + subpass->set_color_resolve_attachments({}); +} + +void DynamicState3MultisampleRasterization::store_multisampled_depth(std::unique_ptr &subpass, std::vector &load_store) +{ + if (depth_writeback_resolve_supported && resolve_depth_on_writeback) + { + // Good practice + // Multisampled attachment is transient + // This allows tilers to completely avoid writing out the multisampled attachment to memory, + // a considerable performance and bandwidth improvement + load_store[i_depth].store_op = VK_ATTACHMENT_STORE_OP_DONT_CARE; + + // Enable writeback resolve to single-sampled attachment + subpass->set_depth_stencil_resolve_attachment(i_depth_resolve); + subpass->set_depth_stencil_resolve_mode(depth_resolve_mode); + + // Save resolved attachment + load_store[i_depth_resolve].store_op = VK_ATTACHMENT_STORE_OP_STORE; + } + else + { + // Bad practice + // Save multisampled depth attachment, which cannot be resolved outside the renderpass + // Storing multisampled depth should be avoided + load_store[i_depth].store_op = VK_ATTACHMENT_STORE_OP_STORE; + + // Disable writeback resolve + disable_depth_writeback_resolve(subpass, load_store); + } +} + +void DynamicState3MultisampleRasterization::disable_depth_writeback_resolve(std::unique_ptr &subpass, std::vector &load_store) +{ + // Auxiliary single-sampled depth attachment is not used + load_store[i_depth_resolve].store_op = VK_ATTACHMENT_STORE_OP_DONT_CARE; + + // Disable writeback resolve + subpass->set_depth_stencil_resolve_attachment(VK_ATTACHMENT_UNUSED); + subpass->set_depth_stencil_resolve_mode(VK_RESOLVE_MODE_NONE); +} + +void DynamicState3MultisampleRasterization::draw(vkb::CommandBuffer &command_buffer, vkb::RenderTarget &render_target) +{ + auto &views = render_target.get_views(); + + auto swapchain_layout = VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL; + { + vkb::ImageMemoryBarrier memory_barrier{}; + memory_barrier.old_layout = VK_IMAGE_LAYOUT_UNDEFINED; + memory_barrier.new_layout = swapchain_layout; + memory_barrier.src_access_mask = 0; + memory_barrier.dst_access_mask = VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT; + memory_barrier.src_stage_mask = VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT; + memory_barrier.dst_stage_mask = VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT; + + for (auto &i_color : color_atts) + { + assert(i_color < views.size()); + command_buffer.image_memory_barrier(views[i_color], memory_barrier); + render_target.set_layout(i_color, VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL); + } + } + + { + vkb::ImageMemoryBarrier memory_barrier{}; + memory_barrier.old_layout = VK_IMAGE_LAYOUT_UNDEFINED; + memory_barrier.new_layout = VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL; + memory_barrier.src_access_mask = 0; + memory_barrier.dst_access_mask = VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT | VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT; + memory_barrier.src_stage_mask = VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT; + memory_barrier.dst_stage_mask = VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT | VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT; + + if (run_postprocessing) + { + // Synchronize depth with previous depth resolve operation + memory_barrier.dst_stage_mask |= VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT; + memory_barrier.dst_access_mask |= VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT; + } + + for (auto &i_depth : depth_atts) + { + assert(i_depth < views.size()); + command_buffer.image_memory_barrier(views[i_depth], memory_barrier); + render_target.set_layout(i_depth, VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL); + } + } + + auto &extent = render_target.get_extent(); + + VkViewport viewport{}; + viewport.width = static_cast(extent.width); + viewport.height = static_cast(extent.height); + viewport.minDepth = 0.0f; + viewport.maxDepth = 1.0f; + command_buffer.set_viewport(0, {viewport}); + + VkRect2D scissor{}; + scissor.extent = extent; + command_buffer.set_scissor(0, {scissor}); + + scene_pipeline->draw(command_buffer, render_target); + + if (!run_postprocessing) + { + // If postprocessing is enabled the GUI will be drawn + // at the end of the postprocessing renderpass + if (gui) + { + gui->draw(command_buffer); + } + } + + command_buffer.end_render_pass(); + + bool msaa_enabled = sample_count != VK_SAMPLE_COUNT_1_BIT; + + if (msaa_enabled && ColorResolve::SeparatePass == color_resolve_method) + { + if (run_postprocessing) + { + resolve_color_separate_pass(command_buffer, views, i_color_resolve, swapchain_layout); + } + else + { + resolve_color_separate_pass(command_buffer, views, i_swapchain, swapchain_layout); + } + } + + if (run_postprocessing) + { + // Run a second renderpass + postprocessing(command_buffer, render_target, swapchain_layout, msaa_enabled); + } + + { + // Prepare swapchain for presentation + vkb::ImageMemoryBarrier memory_barrier{}; + memory_barrier.old_layout = swapchain_layout; + memory_barrier.new_layout = VK_IMAGE_LAYOUT_PRESENT_SRC_KHR; + memory_barrier.src_access_mask = VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT; + memory_barrier.src_stage_mask = VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT; + memory_barrier.dst_stage_mask = VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT; + + assert(i_swapchain < views.size()); + command_buffer.image_memory_barrier(views[i_swapchain], memory_barrier); + } +} + +void DynamicState3MultisampleRasterization::postprocessing(vkb::CommandBuffer &command_buffer, vkb::RenderTarget &render_target, + VkImageLayout &swapchain_layout, bool msaa_enabled) +{ + /* + auto depth_attachment = (msaa_enabled && depth_writeback_resolve_supported && resolve_depth_on_writeback) ? i_depth_resolve : i_depth; + bool multisampled_depth = msaa_enabled && !(depth_writeback_resolve_supported && resolve_depth_on_writeback); + std::string depth_sampler_name = multisampled_depth ? "ms_depth_sampler" : "depth_sampler"; + + glm::vec4 near_far = {camera->get_far_plane(), camera->get_near_plane(), -1.0f, -1.0f}; + + auto &postprocessing_pass = postprocessing_pipeline->get_pass(0); + postprocessing_pass.set_uniform_data(near_far); + + auto &postprocessing_subpass = postprocessing_pass.get_subpass(0); + // Unbind sampled images to prevent invalid image transitions on unused images + postprocessing_subpass.unbind_sampled_image("depth_sampler"); + postprocessing_subpass.unbind_sampled_image("ms_depth_sampler"); + + postprocessing_subpass.get_fs_variant().clear(); + if (multisampled_depth) + { + postprocessing_subpass.get_fs_variant().add_define("MS_DEPTH"); + } + postprocessing_subpass + .bind_sampled_image(depth_sampler_name, {depth_attachment, nullptr, nullptr, depth_writeback_resolve_supported && resolve_depth_on_writeback}) + .bind_sampled_image("color_sampler", i_color_resolve); + + // Second render pass + // NOTE: Color and depth attachments are automatically transitioned to be bound as textures + postprocessing_pipeline->draw(command_buffer, render_target); + + if (gui) + { + gui->draw(command_buffer); + } + + command_buffer.end_render_pass(); +} + +void DynamicState3MultisampleRasterization::resolve_color_separate_pass(vkb::CommandBuffer &command_buffer, const std::vector &views, + uint32_t color_destination, VkImageLayout &color_layout) +{ + { + // The multisampled color is the source of the resolve operation + vkb::ImageMemoryBarrier memory_barrier{}; + memory_barrier.old_layout = VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL; + memory_barrier.new_layout = VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL; + memory_barrier.src_stage_mask = VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT; + memory_barrier.dst_stage_mask = VK_PIPELINE_STAGE_TRANSFER_BIT; + memory_barrier.src_access_mask = VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT; + memory_barrier.dst_access_mask = VK_ACCESS_TRANSFER_READ_BIT; + + assert(i_color_ms < views.size()); + command_buffer.image_memory_barrier(views[i_color_ms], memory_barrier); + } + + VkImageSubresourceLayers subresource = {0}; + subresource.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT; + subresource.layerCount = 1; + + VkImageResolve image_resolve = {0}; + image_resolve.srcSubresource = subresource; + image_resolve.dstSubresource = subresource; + image_resolve.extent = VkExtent3D{get_render_context().get_surface_extent().width, get_render_context().get_surface_extent().height, 1}; + + { + // Prepare destination image for transfer operation + auto color_new_layout = VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL; + + vkb::ImageMemoryBarrier memory_barrier{}; + memory_barrier.old_layout = color_layout; + memory_barrier.new_layout = color_new_layout; + memory_barrier.src_stage_mask = VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT; + memory_barrier.dst_stage_mask = VK_PIPELINE_STAGE_TRANSFER_BIT; + memory_barrier.src_access_mask = VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT; + memory_barrier.dst_access_mask = VK_ACCESS_TRANSFER_WRITE_BIT; + + color_layout = color_new_layout; + + assert(color_destination < views.size()); + command_buffer.image_memory_barrier(views[color_destination], memory_barrier); + } + + // Resolve multisampled attachment to destination, extremely expensive + command_buffer.resolve_image(views[i_color_ms].get_image(), views.at(color_destination).get_image(), {image_resolve}); + + // Transition attachments out of transfer stage + { + auto color_new_layout = VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL; + + vkb::ImageMemoryBarrier memory_barrier{}; + memory_barrier.old_layout = color_layout; + memory_barrier.new_layout = color_new_layout; + memory_barrier.src_stage_mask = VK_PIPELINE_STAGE_TRANSFER_BIT; + memory_barrier.dst_stage_mask = VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT; + memory_barrier.src_access_mask = VK_ACCESS_TRANSFER_WRITE_BIT; + memory_barrier.dst_access_mask = VK_ACCESS_COLOR_ATTACHMENT_READ_BIT; + + color_layout = color_new_layout; + + command_buffer.image_memory_barrier(views[color_destination], memory_barrier); + } + + { + vkb::ImageMemoryBarrier memory_barrier{}; + memory_barrier.old_layout = VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL; + memory_barrier.new_layout = VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL; + memory_barrier.src_stage_mask = VK_PIPELINE_STAGE_TRANSFER_BIT; + memory_barrier.dst_stage_mask = VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT; + memory_barrier.src_access_mask = VK_ACCESS_TRANSFER_READ_BIT; + memory_barrier.dst_access_mask = VK_ACCESS_COLOR_ATTACHMENT_READ_BIT; + + command_buffer.image_memory_barrier(views[i_color_ms], memory_barrier); + } +} + +void DynamicState3MultisampleRasterization::prepare_supported_sample_count_list() +{ + VkPhysicalDeviceProperties gpu_properties; + vkGetPhysicalDeviceProperties(get_device().get_gpu().get_handle(), &gpu_properties); + + VkSampleCountFlags supported_by_depth_and_color = gpu_properties.limits.framebufferColorSampleCounts & gpu_properties.limits.framebufferDepthSampleCounts; + + // All possible sample counts are listed here from most to least preferred as default + // On Mali GPUs 4X MSAA is recommended as best performance/quality trade-off + std::vector counts = {VK_SAMPLE_COUNT_4_BIT, VK_SAMPLE_COUNT_2_BIT, VK_SAMPLE_COUNT_8_BIT, + VK_SAMPLE_COUNT_16_BIT, VK_SAMPLE_COUNT_32_BIT, VK_SAMPLE_COUNT_64_BIT, + VK_SAMPLE_COUNT_1_BIT}; + + for (auto &count : counts) + { + if (supported_by_depth_and_color & count) + { + supported_sample_count_list.push_back(count); + + if (sample_count == VK_SAMPLE_COUNT_1_BIT) + { + // Set default sample count based on the priority defined above + sample_count = count; + gui_sample_count = count; + last_gui_sample_count = count; + } + } + } +} + +void DynamicState3MultisampleRasterization::prepare_depth_resolve_mode_list() +{ + if (instance->is_enabled(VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME)) + { + VkPhysicalDeviceProperties2KHR gpu_properties{}; + gpu_properties.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2_KHR; + VkPhysicalDeviceDepthStencilResolvePropertiesKHR depth_resolve_properties{}; + depth_resolve_properties.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES_KHR; + gpu_properties.pNext = static_cast(&depth_resolve_properties); + vkGetPhysicalDeviceProperties2KHR(get_device().get_gpu().get_handle(), &gpu_properties); + + if (depth_resolve_properties.supportedDepthResolveModes == 0) + { + LOGW("No depth stencil resolve modes supported"); + depth_writeback_resolve_supported = false; + } + else + { + // All possible modes are listed here from most to least preferred as default + std::vector modes = {VK_RESOLVE_MODE_SAMPLE_ZERO_BIT, VK_RESOLVE_MODE_MIN_BIT, + VK_RESOLVE_MODE_MAX_BIT, VK_RESOLVE_MODE_AVERAGE_BIT}; + + for (auto &mode : modes) + { + if (depth_resolve_properties.supportedDepthResolveModes & mode) + { + supported_depth_resolve_mode_list.push_back(mode); + + if (depth_resolve_mode == VK_RESOLVE_MODE_NONE) + { + // Set default mode based on the priority defined above + depth_resolve_mode = mode; + gui_depth_resolve_mode = mode; + last_gui_depth_resolve_mode = mode; + } + } + } + } + } +} + +void DynamicState3MultisampleRasterization::draw_gui() +{ + auto msaa_enabled = sample_count != VK_SAMPLE_COUNT_1_BIT; + const bool landscape = camera->get_aspect_ratio() > 1.0f; + uint32_t lines = landscape ? 3 : 4; + + gui->show_options_window( + [this, msaa_enabled, landscape]() { + ImGui::AlignTextToFramePadding(); + ImGui::PushItemWidth(ImGui::GetWindowWidth() * 0.4f); + + if (ImGui::BeginCombo("##sample_count", to_string(gui_sample_count).c_str())) + { + for (size_t n = 0; n < supported_sample_count_list.size(); n++) + { + bool is_selected = (gui_sample_count == supported_sample_count_list[n]); + if (ImGui::Selectable(to_string(supported_sample_count_list[n]).c_str(), is_selected)) + { + gui_sample_count = supported_sample_count_list[n]; + } + if (is_selected) + { + ImGui::SetItemDefaultFocus(); + } + } + ImGui::EndCombo(); + } + + if (landscape) + { + ImGui::SameLine(); + } + ImGui::Checkbox("Post-processing (2 renderpasses)", &gui_run_postprocessing); + + ImGui::Text("Resolve color: "); + ImGui::SameLine(); + if (msaa_enabled) + { + ImGui::RadioButton("On writeback", &gui_color_resolve_method, ColorResolve::OnWriteback); + ImGui::SameLine(); + ImGui::RadioButton("Separate", &gui_color_resolve_method, ColorResolve::SeparatePass); + } + else + { + ImGui::Text("n/a"); + } + + ImGui::Text("Resolve depth: "); + ImGui::SameLine(); + if (msaa_enabled && run_postprocessing) + { + if (depth_writeback_resolve_supported) + { + ImGui::Checkbox("##resolve_depth", &gui_resolve_depth_on_writeback); + ImGui::SameLine(); + ImGui::Text("On writeback"); + ImGui::SameLine(); + ImGui::PushItemWidth(ImGui::GetWindowWidth() * 0.3f); + + if (ImGui::BeginCombo("##resolve_mode", to_string(gui_depth_resolve_mode).c_str())) + { + for (int n = 0; n < supported_depth_resolve_mode_list.size(); n++) + { + bool is_selected = (gui_depth_resolve_mode == supported_depth_resolve_mode_list[n]); + if (ImGui::Selectable(to_string(supported_depth_resolve_mode_list[n]).c_str(), is_selected)) + { + gui_depth_resolve_mode = supported_depth_resolve_mode_list[n]; + } + if (is_selected) + { + ImGui::SetItemDefaultFocus(); + } + } + ImGui::EndCombo(); + } + } + else + { + ImGui::Text("Not supported"); + } + } + else + { + ImGui::Text("n/a"); + } + }, + lines); +} +*/ + +void DynamicState3MultisampleRasterization::prepare_pipelines() +{ + //static_cast(texture->get_image()->get_mipmaps().size()) + //static_cast(texture->get_image()->get_mipmaps().size()) + //static_cast(scene->get_components()) + std::vector pool_sizes = { + {VK_DESCRIPTOR_TYPE_STORAGE_BUFFER, 6}, + {VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, 1 * static_cast(scene->get_components().size())}, + {VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER, 6}}; + VkDescriptorPoolCreateInfo descriptor_pool_create_info = vkb::initializers::descriptor_pool_create_info(pool_sizes, 3); + VK_CHECK(vkCreateDescriptorPool(get_device().get_handle(), &descriptor_pool_create_info, nullptr, &descriptor_pool)); + + // The model information will be used to index textures in the fragment shader, + // as well as perform frustum culling in the compute shader + VkDescriptorSetLayoutBinding model_information_binding{}; + model_information_binding.binding = 0; + model_information_binding.descriptorType = VK_DESCRIPTOR_TYPE_STORAGE_BUFFER; + model_information_binding.descriptorCount = 1; + model_information_binding.stageFlags = VK_SHADER_STAGE_COMPUTE_BIT; + + // This array of textures will be accessed via the instance ID + VkDescriptorSetLayoutBinding image_array_binding{}; + image_array_binding.binding = 1; + image_array_binding.descriptorType = VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER; + image_array_binding.descriptorCount = scene->get_components().size(); + image_array_binding.stageFlags = VK_SHADER_STAGE_FRAGMENT_BIT; + + VkDescriptorSetLayoutBinding scene_uniform_binding{}; + scene_uniform_binding.binding = 2; + scene_uniform_binding.descriptorType = VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER; + scene_uniform_binding.descriptorCount = 1; + scene_uniform_binding.stageFlags = VK_SHADER_STAGE_VERTEX_BIT | VK_SHADER_STAGE_FRAGMENT_BIT | VK_SHADER_STAGE_COMPUTE_BIT; + + VkDescriptorSetLayoutBinding command_buffer_binding{}; + command_buffer_binding.binding = 3; + command_buffer_binding.descriptorType = VK_DESCRIPTOR_TYPE_STORAGE_BUFFER; + command_buffer_binding.descriptorCount = 1; + command_buffer_binding.stageFlags = VK_SHADER_STAGE_COMPUTE_BIT; + + // Create descriptors + auto create_descriptors = [this](const std::vector &set_layout_bindings, VkDescriptorSetLayout &_descriptor_set_layout, VkPipelineLayout &_pipeline_layout) { + VkDescriptorSetLayoutCreateInfo descriptor_layout = vkb::initializers::descriptor_set_layout_create_info(set_layout_bindings.data(), static_cast(set_layout_bindings.size())); + VK_CHECK(vkCreateDescriptorSetLayout(get_device().get_handle(), &descriptor_layout, nullptr, &_descriptor_set_layout)); + + VkPipelineLayoutCreateInfo pipeline_layout_create_info = + vkb::initializers::pipeline_layout_create_info( + &_descriptor_set_layout, + 1); + + VK_CHECK(vkCreatePipelineLayout(get_device().get_handle(), &pipeline_layout_create_info, nullptr, &_pipeline_layout)); + }; + + // Render pipeline + std::vector set_layout_bindings = {model_information_binding, image_array_binding, scene_uniform_binding, command_buffer_binding}; + create_descriptors(set_layout_bindings, descriptor_set_layout, pipeline_layout); + + // Compute pipeline + // Note we don't include the texture array + /* + std::vector gpu_compute_set_layout_bindings = {model_information_binding, scene_uniform_binding, command_buffer_binding}; + create_descriptors(gpu_compute_set_layout_bindings, gpu_cull_descriptor_set_layout, gpu_cull_pipeline_layout); + */ + + // Device address pipeline + // Note that we don't bind the command buffer directly; instead, we use the references from the device addresses + // This will be used in the device address shader (cull_address.comp) + /* + if (m_supports_buffer_device) + { + VkDescriptorSetLayoutBinding device_address_binding{}; + device_address_binding.binding = 4; + device_address_binding.descriptorType = VK_DESCRIPTOR_TYPE_STORAGE_BUFFER; + device_address_binding.descriptorCount = 1; + device_address_binding.stageFlags = VK_SHADER_STAGE_COMPUTE_BIT; + std::vector device_address_layout_bindings = {model_information_binding, scene_uniform_binding, device_address_binding}; + create_descriptors(device_address_layout_bindings, device_address_descriptor_set_layout, device_address_pipeline_layout); + } + */ + + VkPipelineInputAssemblyStateCreateInfo input_assembly_state = vkb::initializers::pipeline_input_assembly_state_create_info(VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST, 0, VK_FALSE); + + VkPipelineRasterizationStateCreateInfo rasterization_state = vkb::initializers::pipeline_rasterization_state_create_info(VK_POLYGON_MODE_FILL, VK_CULL_MODE_BACK_BIT, VK_FRONT_FACE_COUNTER_CLOCKWISE, 0); + + VkPipelineColorBlendAttachmentState blend_attachment_state = vkb::initializers::pipeline_color_blend_attachment_state(0xf, VK_FALSE); + + VkPipelineColorBlendStateCreateInfo color_blend_state = vkb::initializers::pipeline_color_blend_state_create_info(1, &blend_attachment_state); + + VkPipelineDepthStencilStateCreateInfo depth_stencil_state = vkb::initializers::pipeline_depth_stencil_state_create_info(VK_TRUE, VK_TRUE, VK_COMPARE_OP_LESS); + depth_stencil_state.depthBoundsTestEnable = VK_FALSE; + depth_stencil_state.minDepthBounds = 0.f; + depth_stencil_state.maxDepthBounds = 1.f; + + VkPipelineViewportStateCreateInfo viewport_state = vkb::initializers::pipeline_viewport_state_create_info(1, 1, 0); + + std::vector dynamic_state_enables = { + VK_DYNAMIC_STATE_VIEWPORT, + VK_DYNAMIC_STATE_SCISSOR}; + VkPipelineDynamicStateCreateInfo dynamic_state = + vkb::initializers::pipeline_dynamic_state_create_info( + dynamic_state_enables.data(), + static_cast(dynamic_state_enables.size()), + 0); + + VkPipelineMultisampleStateCreateInfo multisample_state = vkb::initializers::pipeline_multisample_state_create_info(VK_SAMPLE_COUNT_1_BIT, 0); + + // Vertex bindings and attributes + const std::vector vertex_input_bindings = { + vkb::initializers::vertex_input_binding_description(0, sizeof(Vertex), VK_VERTEX_INPUT_RATE_VERTEX), + vkb::initializers::vertex_input_binding_description(1, sizeof(GpuModelInformation), VK_VERTEX_INPUT_RATE_INSTANCE), + }; + const std::vector vertex_input_attributes = { + vkb::initializers::vertex_input_attribute_description(0, 0, VK_FORMAT_R32G32B32_SFLOAT, offsetof(Vertex, pt)), + vkb::initializers::vertex_input_attribute_description(0, 1, VK_FORMAT_R32G32_SFLOAT, offsetof(Vertex, uv)), + //vkb::initializers::vertex_input_attribute_description(1, 2, VK_FORMAT_R32G32B32_SFLOAT, offsetof(GpuModelInformation, bounding_sphere_center)), + //vkb::initializers::vertex_input_attribute_description(1, 3, VK_FORMAT_R32_SFLOAT, offsetof(GpuModelInformation, bounding_sphere_radius)), + vkb::initializers::vertex_input_attribute_description(1, 4, VK_FORMAT_R32_UINT, offsetof(GpuModelInformation, texture_index)), + }; + VkPipelineVertexInputStateCreateInfo vertex_input_state = vkb::initializers::pipeline_vertex_input_state_create_info(); + vertex_input_state.vertexBindingDescriptionCount = static_cast(vertex_input_bindings.size()); + vertex_input_state.pVertexBindingDescriptions = vertex_input_bindings.data(); + vertex_input_state.vertexAttributeDescriptionCount = static_cast(vertex_input_attributes.size()); + vertex_input_state.pVertexAttributeDescriptions = vertex_input_attributes.data(); + + VkGraphicsPipelineCreateInfo pipeline_create_info = vkb::initializers::pipeline_create_info(pipeline_layout, render_pass, 0); + pipeline_create_info.pVertexInputState = &vertex_input_state; + pipeline_create_info.pInputAssemblyState = &input_assembly_state; + pipeline_create_info.pRasterizationState = &rasterization_state; + pipeline_create_info.pColorBlendState = &color_blend_state; + pipeline_create_info.pMultisampleState = &multisample_state; + pipeline_create_info.pViewportState = &viewport_state; + pipeline_create_info.pDepthStencilState = &depth_stencil_state; + pipeline_create_info.pDynamicState = &dynamic_state; + + const std::array shader_stages = { + load_shader("multi_draw_indirect/multi_draw_indirect.vert", VK_SHADER_STAGE_VERTEX_BIT), + load_shader("multi_draw_indirect/multi_draw_indirect.frag", VK_SHADER_STAGE_FRAGMENT_BIT)}; + + pipeline_create_info.stageCount = static_cast(shader_stages.size()); + pipeline_create_info.pStages = shader_stages.data(); + + VK_CHECK(vkCreateGraphicsPipelines(get_device().get_handle(), pipeline_cache, 1, &pipeline_create_info, nullptr, &pipeline)); +} + +void DynamicState3MultisampleRasterization::initialize_descriptors() +{ + enum class Target + { + RenderPipeline, + ComputePipeline, + AddressPipeline + }; + + auto bind = [this](VkDescriptorSet &_descriptor_set, VkDescriptorSetLayout &_descriptor_set_layout, Target target) { + VkDescriptorSetAllocateInfo descriptor_set_allocate_info = vkb::initializers::descriptor_set_allocate_info(descriptor_pool, &_descriptor_set_layout, 1); + VK_CHECK(vkAllocateDescriptorSets(get_device().get_handle(), &descriptor_set_allocate_info, &_descriptor_set)); + + VkDescriptorBufferInfo model_buffer_descriptor = create_descriptor(*model_information_buffer); + VkWriteDescriptorSet model_write = vkb::initializers::write_descriptor_set(_descriptor_set, VK_DESCRIPTOR_TYPE_STORAGE_BUFFER, 0, &model_buffer_descriptor, 1); + + VkWriteDescriptorSet texture_array_write = vkb::initializers::write_descriptor_set(_descriptor_set, VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, 1, image_descriptors.data(), image_descriptors.size()); + + VkDescriptorBufferInfo scene_descriptor = create_descriptor(*scene_uniform_buffer); + VkWriteDescriptorSet scene_write = vkb::initializers::write_descriptor_set(_descriptor_set, VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER, 2, &scene_descriptor, 1); + + VkDescriptorBufferInfo draw_command_descriptor = create_descriptor(*indirect_call_buffer); + VkWriteDescriptorSet draw_command_write = vkb::initializers::write_descriptor_set(_descriptor_set, VK_DESCRIPTOR_TYPE_STORAGE_BUFFER, 3, &draw_command_descriptor, 1); + + VkDescriptorBufferInfo device_address_descriptor; + VkWriteDescriptorSet device_address_write; + /* + if (m_supports_buffer_device && device_address_buffer) + { + device_address_descriptor = create_descriptor(*device_address_buffer); + device_address_write = vkb::initializers::write_descriptor_set(_descriptor_set, VK_DESCRIPTOR_TYPE_STORAGE_BUFFER, 4, &device_address_descriptor, 1); + } + */ + + std::vector write_descriptor_sets; + switch (target) + { + case Target::RenderPipeline: + write_descriptor_sets = {model_write, texture_array_write, scene_write, draw_command_write}; + break; + case Target::ComputePipeline: + write_descriptor_sets = {model_write, scene_write, draw_command_write}; + break; + case Target::AddressPipeline: + write_descriptor_sets = {model_write, scene_write, device_address_write}; + break; + } + + vkUpdateDescriptorSets(get_device().get_handle(), static_cast(write_descriptor_sets.size()), write_descriptor_sets.data(), 0, VK_NULL_HANDLE); + }; + + // render pipeline + bind(descriptor_set, descriptor_set_layout, Target::RenderPipeline); + + /* + // compute pipeline + bind(gpu_cull_descriptor_set, gpu_cull_descriptor_set_layout, Target::ComputePipeline); + + // Device address pipeline + if (m_supports_buffer_device) + { + bind(device_address_descriptor_set, device_address_descriptor_set_layout, Target::AddressPipeline); + } + */ +} + +/* +void MultiDrawIndirect::create_compute_pipeline() +{ + auto create = [this](VkPipelineLayout &layout, VkPipeline &_pipeline, const char *filename) { + VkComputePipelineCreateInfo compute_create_info = vkb::initializers::compute_pipeline_create_info(layout, 0); + compute_create_info.stage = load_shader(filename, VK_SHADER_STAGE_COMPUTE_BIT); + + VK_CHECK(vkCreateComputePipelines(get_device().get_handle(), pipeline_cache, 1, &compute_create_info, nullptr, &_pipeline)); + }; + + create(gpu_cull_pipeline_layout, gpu_cull_pipeline, "multi_draw_indirect/cull.comp"); + + if (m_supports_buffer_device) + { + create(device_address_pipeline_layout, device_address_pipeline, "multi_draw_indirect/cull_address.comp"); + } +} +*/ + +/* +void DynamicState3MultisampleRasterization::prepare_pipelines() +{ + // Create a blank pipeline layout. + // We are not binding any resources to the pipeline in this sample. + VkPipelineLayoutCreateInfo layout_info = vkb::initializers::pipeline_layout_create_info(nullptr, 0); + VK_CHECK(vkCreatePipelineLayout(get_device().get_handle(), &layout_info, nullptr, &sample_pipeline_layout)); + + VkPipelineVertexInputStateCreateInfo vertex_input = vkb::initializers::pipeline_vertex_input_state_create_info(); + + // Specify we will use triangle lists to draw geometry. + VkPipelineInputAssemblyStateCreateInfo input_assembly = vkb::initializers::pipeline_input_assembly_state_create_info(VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST, 0, VK_FALSE); + + // Specify rasterization state. + VkPipelineRasterizationStateCreateInfo raster = vkb::initializers::pipeline_rasterization_state_create_info(VK_POLYGON_MODE_FILL, VK_CULL_MODE_BACK_BIT, VK_FRONT_FACE_CLOCKWISE); + + // Our attachment will write to all color channels, but no blending is enabled. + VkPipelineColorBlendAttachmentState blend_attachment = vkb::initializers::pipeline_color_blend_attachment_state(VK_COLOR_COMPONENT_R_BIT | VK_COLOR_COMPONENT_G_BIT | VK_COLOR_COMPONENT_B_BIT | VK_COLOR_COMPONENT_A_BIT, VK_FALSE); + + VkPipelineColorBlendStateCreateInfo blend = vkb::initializers::pipeline_color_blend_state_create_info(1, &blend_attachment); + + // We will have one viewport and scissor box. + VkPipelineViewportStateCreateInfo viewport = vkb::initializers::pipeline_viewport_state_create_info(1, 1); + + // Enable depth testing (using reversed depth-buffer for increased precision). + VkPipelineDepthStencilStateCreateInfo depth_stencil = vkb::initializers::pipeline_depth_stencil_state_create_info(VK_TRUE, VK_TRUE, VK_COMPARE_OP_GREATER); + + // No multisampling. + VkPipelineMultisampleStateCreateInfo multisample = vkb::initializers::pipeline_multisample_state_create_info(VK_SAMPLE_COUNT_1_BIT); + + // Specify that these states will be dynamic, i.e. not part of pipeline state object. + std::array dynamics{VK_DYNAMIC_STATE_VIEWPORT, VK_DYNAMIC_STATE_SCISSOR}; + VkPipelineDynamicStateCreateInfo dynamic = vkb::initializers::pipeline_dynamic_state_create_info(dynamics.data(), vkb::to_u32(dynamics.size())); + + // Load our SPIR-V shaders. + std::array shader_stages{}; + + // Vertex stage of the pipeline + shader_stages[0] = load_shader("triangle.vert", VK_SHADER_STAGE_VERTEX_BIT); + shader_stages[1] = load_shader("triangle.frag", VK_SHADER_STAGE_FRAGMENT_BIT); + + // We need to specify the pipeline layout and the render pass description up front as well. + VkGraphicsPipelineCreateInfo pipeline_create_info = vkb::initializers::pipeline_create_info(sample_pipeline_layout, render_pass); + pipeline_create_info.stageCount = vkb::to_u32(shader_stages.size()); + pipeline_create_info.pStages = shader_stages.data(); + pipeline_create_info.pVertexInputState = &vertex_input; + pipeline_create_info.pInputAssemblyState = &input_assembly; + pipeline_create_info.pRasterizationState = &raster; + pipeline_create_info.pColorBlendState = &blend; + pipeline_create_info.pMultisampleState = &multisample; + pipeline_create_info.pViewportState = &viewport; + pipeline_create_info.pDepthStencilState = &depth_stencil; + pipeline_create_info.pDynamicState = &dynamic; + + VK_CHECK(vkCreateGraphicsPipelines(get_device().get_handle(), pipeline_cache, 1, &pipeline_create_info, nullptr, &sample_pipeline)); +} + + +void DynamicState3MultisampleRasterization::build_command_buffers() +{ + VkCommandBufferBeginInfo command_buffer_begin_info = vkb::initializers::command_buffer_begin_info(); + + // Clear color and depth values. + VkClearValue clear_values[2]; + clear_values[0].color = {{0.0f, 0.0f, 0.0f, 0.0f}}; + clear_values[1].depthStencil = {0.0f, 0}; + + // Begin the render pass. + VkRenderPassBeginInfo render_pass_begin_info = vkb::initializers::render_pass_begin_info(); + render_pass_begin_info.renderPass = render_pass; + render_pass_begin_info.renderArea.offset.x = 0; + render_pass_begin_info.renderArea.offset.y = 0; + render_pass_begin_info.renderArea.extent.width = width; + render_pass_begin_info.renderArea.extent.height = height; + render_pass_begin_info.clearValueCount = 2; + render_pass_begin_info.pClearValues = clear_values; + + for (int32_t i = 0; i < draw_cmd_buffers.size(); ++i) + { + auto cmd = draw_cmd_buffers[i]; + + // Begin command buffer. + vkBeginCommandBuffer(cmd, &command_buffer_begin_info); + + // Set framebuffer for this command buffer. + render_pass_begin_info.framebuffer = framebuffers[i]; + // We will add draw commands in the same command buffer. + vkCmdBeginRenderPass(cmd, &render_pass_begin_info, VK_SUBPASS_CONTENTS_INLINE); + + // Bind the graphics pipeline. + vkCmdBindPipeline(cmd, VK_PIPELINE_BIND_POINT_GRAPHICS, sample_pipeline); + + // Set viewport dynamically + VkViewport viewport = vkb::initializers::viewport(static_cast(width), static_cast(height), 0.0f, 1.0f); + vkCmdSetViewport(cmd, 0, 1, &viewport); + + // Set scissor dynamically + VkRect2D scissor = vkb::initializers::rect2D(width, height, 0, 0); + vkCmdSetScissor(cmd, 0, 1, &scissor); + + // Draw three vertices with one instance. + vkCmdDraw(cmd, 3, 1, 0, 0); + + // Draw user interface. + draw_ui(draw_cmd_buffers[i]); + + // Complete render pass. + vkCmdEndRenderPass(cmd); + + // Complete the command buffer. + VK_CHECK(vkEndCommandBuffer(cmd)); + } +} +*/ + +void DynamicState3MultisampleRasterization::build_command_buffers() +{ + VkCommandBufferBeginInfo command_buffer_begin_info = vkb::initializers::command_buffer_begin_info(); + + VkClearValue clear_values[2]; + clear_values[0].color = default_clear_color; + clear_values[1].depthStencil = {1.0f, 0}; + + VkRenderPassBeginInfo render_pass_begin_info = vkb::initializers::render_pass_begin_info(); + render_pass_begin_info.renderPass = render_pass; + render_pass_begin_info.renderArea.offset.x = 0; + render_pass_begin_info.renderArea.offset.y = 0; + render_pass_begin_info.renderArea.extent.width = width; + render_pass_begin_info.renderArea.extent.height = height; + render_pass_begin_info.clearValueCount = 2; + render_pass_begin_info.pClearValues = clear_values; + + for (size_t i = 0; i < draw_cmd_buffers.size(); ++i) + { + render_pass_begin_info.framebuffer = framebuffers[i]; + + VK_CHECK(vkBeginCommandBuffer(draw_cmd_buffers[i], &command_buffer_begin_info)); + + vkCmdBeginRenderPass(draw_cmd_buffers[i], &render_pass_begin_info, VK_SUBPASS_CONTENTS_INLINE); + + VkViewport viewport = vkb::initializers::viewport(static_cast(width), static_cast(height), 0.0f, 1.0f); + vkCmdSetViewport(draw_cmd_buffers[i], 0, 1, &viewport); + + VkRect2D scissor = vkb::initializers::rect2D(static_cast(width), static_cast(height), 0, 0); + vkCmdSetScissor(draw_cmd_buffers[i], 0, 1, &scissor); + + vkCmdBindPipeline(draw_cmd_buffers[i], VK_PIPELINE_BIND_POINT_GRAPHICS, pipeline); + vkCmdBindDescriptorSets(draw_cmd_buffers[i], VK_PIPELINE_BIND_POINT_GRAPHICS, pipeline_layout, 0, 1, &descriptor_set, 0, nullptr); + VkDeviceSize offsets[1] = {0}; + + vkCmdBindIndexBuffer(draw_cmd_buffers[i], index_buffer->get_handle(), 0, VK_INDEX_TYPE_UINT16); + vkCmdBindVertexBuffers(draw_cmd_buffers[i], 0, 1, vertex_buffer->get(), offsets); + vkCmdBindVertexBuffers(draw_cmd_buffers[i], 1, 1, model_information_buffer->get(), offsets); + /* + if (m_enable_mdi && m_supports_mdi) + { + vkCmdDrawIndexedIndirect(draw_cmd_buffers[i], indirect_call_buffer->get_handle(), 0, cpu_commands.size(), sizeof(cpu_commands[0])); + } + else + */ + { + for (size_t j = 0; j < cpu_commands.size(); ++j) + { + vkCmdDrawIndexedIndirect(draw_cmd_buffers[i], indirect_call_buffer->get_handle(), j * sizeof(cpu_commands[0]), 1, sizeof(cpu_commands[0])); + } + } + + //draw_ui(draw_cmd_buffers[i]); + + vkCmdEndRenderPass(draw_cmd_buffers[i]); + + VK_CHECK(vkEndCommandBuffer(draw_cmd_buffers[i])); + } +} + +void DynamicState3MultisampleRasterization::create_sampler() +{ + VkSamplerCreateInfo sampler_info = vkb::initializers::sampler_create_info(); + sampler_info.magFilter = VK_FILTER_LINEAR; + sampler_info.minFilter = VK_FILTER_LINEAR; + sampler_info.mipmapMode = VK_SAMPLER_MIPMAP_MODE_LINEAR; + sampler_info.addressModeU = VK_SAMPLER_ADDRESS_MODE_REPEAT; + sampler_info.addressModeV = VK_SAMPLER_ADDRESS_MODE_REPEAT; + sampler_info.addressModeW = VK_SAMPLER_ADDRESS_MODE_REPEAT; + sampler_info.mipLodBias = 0.0f; + sampler_info.maxAnisotropy = 1.0f; + sampler_info.minLod = 0.0f; + sampler_info.maxLod = 1.0f; + sampler_info.borderColor = VK_BORDER_COLOR_FLOAT_OPAQUE_WHITE; + VK_CHECK(vkCreateSampler(get_device().get_handle(), &sampler_info, nullptr, &sampler)); +} + +static float z = -500.0; + +void DynamicState3MultisampleRasterization::render(float delta_time) +{ + draw(); + + z += 0.01; + camera.set_translation(glm::vec3(0.0, 5, z)); + + update_scene_uniform(); + /* + if (!prepared) + { + return; + } + ApiVulkanSample::prepare_frame(); + submit_info.commandBufferCount = 1; + submit_info.pCommandBuffers = &draw_cmd_buffers[current_buffer]; + VK_CHECK(vkQueueSubmit(queue, 1, &submit_info, VK_NULL_HANDLE)); + ApiVulkanSample::submit_frame(); + */ +} + + +std::unique_ptr create_dynamic_state3_multisample_rasterization() +{ + return std::make_unique(); +} diff --git a/samples/extensions/dynamic_state3_multisample_rasterization/dynamic_state3_multisample_rasterization.h b/samples/extensions/dynamic_state3_multisample_rasterization/dynamic_state3_multisample_rasterization.h index 5f39d1406..1ae44fe3b 100644 --- a/samples/extensions/dynamic_state3_multisample_rasterization/dynamic_state3_multisample_rasterization.h +++ b/samples/extensions/dynamic_state3_multisample_rasterization/dynamic_state3_multisample_rasterization.h @@ -36,7 +36,7 @@ class DynamicState3MultisampleRasterization : public ApiVulkanSample void render(float delta_time) override; bool prepare(const vkb::ApplicationOptions &options) override; //virtual void update(float delta_time) override; - virtual void draw(vkb::CommandBuffer &command_buffer, vkb::RenderTarget &render_target) override; + //virtual void draw(vkb::CommandBuffer &command_buffer, vkb::RenderTarget &render_target) override; void draw_gui() override; /** @@ -50,13 +50,15 @@ class DynamicState3MultisampleRasterization : public ApiVulkanSample VkPipeline sample_pipeline{}; VkPipelineLayout sample_pipeline_layout{}; + void load_scene(); + virtual void prepare_render_context() override; std::unique_ptr create_render_target(vkb::core::Image &&swapchain_image); bool depth_writeback_resolve_supported{false}; - vkb::sg::PerspectiveCamera *camera{nullptr}; + //vkb::sg::PerspectiveCamera *camera{nullptr}; enum ColorResolve : int { @@ -235,6 +237,79 @@ class DynamicState3MultisampleRasterization : public ApiVulkanSample VkResolveModeFlagBits gui_depth_resolve_mode{VK_RESOLVE_MODE_NONE}; VkResolveModeFlagBits last_gui_depth_resolve_mode{VK_RESOLVE_MODE_NONE}; + + struct Vertex + { + glm::vec3 pt; + glm::vec2 uv; + }; + + struct SceneModel + { + std::vector vertices; + std::vector> triangles; + size_t vertex_buffer_offset = 0; + size_t index_buffer_offset = 0; + size_t texture_index = 0; + //BoundingSphere bounding_sphere; + }; + + std::vector models; + + struct Texture + { + std::unique_ptr image; + std::unique_ptr image_view; + uint32_t n_mip_maps; + }; + + struct GpuModelInformation + { + //glm::vec3 bounding_sphere_center; + //float bounding_sphere_radius; + uint32_t texture_index = 0; + uint32_t firstIndex = 0; + uint32_t indexCount = 0; + uint32_t _pad = 0; + }; + + struct SceneUniform + { + glm::mat4 view; + glm::mat4 proj; + glm::mat4 proj_view; + uint32_t model_count; + } scene_uniform; + + vkb::Camera camera; + + std::vector textures; + std::vector queue_families; + std::vector image_descriptors; + + std::unique_ptr vertex_buffer; + std::unique_ptr index_buffer; + std::unique_ptr model_information_buffer; + std::unique_ptr scene_uniform_buffer; + + std::unique_ptr cpu_staging_buffer; + std::unique_ptr indirect_call_buffer; + + VkPipeline pipeline{VK_NULL_HANDLE}; + VkPipelineLayout pipeline_layout{VK_NULL_HANDLE}; + VkDescriptorSetLayout descriptor_set_layout{VK_NULL_HANDLE}; + VkDescriptorSet descriptor_set{VK_NULL_HANDLE}; + VkDescriptorSetLayout gpu_cull_descriptor_set_layout{VK_NULL_HANDLE}; + + std::vector cpu_commands; + + VkSampler sampler{VK_NULL_HANDLE}; + void create_sampler(); + void initialize_resources(); + void initialize_descriptors(); + void update_scene_uniform(); + void cpu_cull(); + void draw(); }; std::unique_ptr create_dynamic_state3_multisample_rasterization(); diff --git a/shaders/dynamic_state3_multisample_rasterization/model.frag b/shaders/dynamic_state3_multisample_rasterization/model.frag new file mode 100644 index 000000000..76f38042e --- /dev/null +++ b/shaders/dynamic_state3_multisample_rasterization/model.frag @@ -0,0 +1,76 @@ +#version 450 +/* Copyright (c) 2022, Sascha Willems + * + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed under the Apache License, Version 2.0 the "License"; + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +layout (location = 0) in vec3 inNormal; +layout (location = 1) in vec2 inUV; +layout (location = 2) in vec3 inViewVec; +layout (location = 3) in vec3 inLightVec; +layout (location = 4) flat in vec4 inBaseColorFactor; +layout (location = 5) flat in float inMetallicFactor; +layout (location = 6) flat in float inRoughnessFactor; +layout (location = 7) flat in uint inBaseTextureIndex; +layout (location = 8) flat in uint inNormalTextureIndex; +layout (location = 9) flat in uint inMetallicRoughnessTextureIndex; + +layout(binding = 1, set = 0) uniform sampler2D textures[15]; + +layout (location = 0) out vec4 outFragColor; + +vec4 getColor() +{ + vec4 color = inBaseColorFactor; + + if (inBaseTextureIndex != -1) + color = texture(textures[uint(round(inBaseTextureIndex))], inUV); + + return color; +} + +vec3 getNormal() +{ + vec3 normal = inNormal; + + if (inNormalTextureIndex != -1) + normal = texture(textures[uint(round(inNormalTextureIndex))], inUV).xyz * 2.0 - 1.0; + + return normal; +} + +vec3 getPBR() +{ + vec3 pbr = vec3(inMetallicFactor, inRoughnessFactor, 0.0); + + if (inMetallicRoughnessTextureIndex != -1) + pbr = texture(textures[uint(round(inMetallicRoughnessTextureIndex))], inUV).xyz; + + return pbr; +} + +void main() +{ + vec3 N = normalize(getNormal()); + vec3 L = normalize(inLightVec); + vec3 V = normalize(inViewVec); + vec3 R = reflect(-L, N); + vec3 ambient = vec3(0.25); + vec3 diffuse = max(dot(N, L), 0.0) * vec3(0.75) * getPBR(); + vec3 specular = pow(max(dot(R, V), 0.0), 16.0) * vec3(0.75); //texture(textures[uint(round(inMetallicRoughnessTextureIndex))], inUV).xyz; + + vec4 base_color = getColor(); + outFragColor = vec4((ambient/* + diffuse*/) * base_color.rgb + specular, base_color.a) /*+ vec4(inUV.x, inUV.y, 0.0, 1.0); 0.5 * vec4(texture(textures[uint(round(inBaseTextureIndex))], inUV))*/; +} \ No newline at end of file diff --git a/shaders/dynamic_state3_multisample_rasterization/model.vert b/shaders/dynamic_state3_multisample_rasterization/model.vert new file mode 100644 index 000000000..03ceba04b --- /dev/null +++ b/shaders/dynamic_state3_multisample_rasterization/model.vert @@ -0,0 +1,66 @@ +#version 450 +/* Copyright (c) 2022, Sascha Willems + * + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed under the Apache License, Version 2.0 the "License"; + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +layout (location = 0) in vec3 inPos; +layout (location = 1) in vec3 inNormal; +layout (location = 2) in vec2 inUV; + +layout (set = 0, binding = 0) uniform UBO { + mat4 projection; + mat4 view; +} ubo; + +layout(push_constant) uniform Push_Constants { + mat4 model; + + vec4 base_color_factor; + float metallic_factor; + float roughness_factor; + + uint baseTextureIndex; + uint normalTextureIndex; + uint metallicRoughnessTextureIndex; +} push_constants; + +layout (location = 0) out vec3 outNormal; +layout (location = 1) out vec2 outUV; +layout (location = 2) out vec3 outViewVec; +layout (location = 3) out vec3 outLightVec; +layout (location = 4) out vec4 outBaseColorFactor; +layout (location = 5) out float outMetallicFactor; +layout (location = 6) out float outRoughnessFactor; +layout (location = 7) out uint outBaseTextureIndex; +layout (location = 8) out uint outNormalTextureIndex; +layout (location = 9) out uint outMetallicRoughnessTextureIndex; + +void main() +{ + outUV = inUV; + vec4 localPos = ubo.view * push_constants.model * vec4(inPos, 1.0); + gl_Position = ubo.projection * localPos; + outNormal = mat3(ubo.view * push_constants.model) * inNormal; + vec3 lightPos = vec3(10.0, -10.0, 10.0); + outLightVec = lightPos.xyz - localPos.xyz; + outViewVec = -localPos.xyz; + outBaseColorFactor = push_constants.base_color_factor; + outMetallicFactor = push_constants.metallic_factor; + outRoughnessFactor = push_constants.roughness_factor; + outBaseTextureIndex = push_constants.baseTextureIndex; + outNormalTextureIndex = push_constants.normalTextureIndex; + outMetallicRoughnessTextureIndex = push_constants.metallicRoughnessTextureIndex; +} From e26d3da76e7b527d7196e0d2bc7d568d5770fea4 Mon Sep 17 00:00:00 2001 From: pawel-jastrzebski-mobica Date: Tue, 14 Nov 2023 10:25:05 +0100 Subject: [PATCH 04/52] Rendering proper BaseModule scene. Signed-off-by: pawel-jastrzebski-mobica --- .../CMakeLists.txt | 4 +- ...namic_state3_multisample_rasterization.cpp | 2167 +++-------------- ...dynamic_state3_multisample_rasterization.h | 321 +-- 3 files changed, 448 insertions(+), 2044 deletions(-) diff --git a/samples/extensions/dynamic_state3_multisample_rasterization/CMakeLists.txt b/samples/extensions/dynamic_state3_multisample_rasterization/CMakeLists.txt index b62e6727f..aeb83e065 100644 --- a/samples/extensions/dynamic_state3_multisample_rasterization/CMakeLists.txt +++ b/samples/extensions/dynamic_state3_multisample_rasterization/CMakeLists.txt @@ -26,5 +26,5 @@ add_sample( NAME "Extended Dynamic State3 Multisample Rasterization" DESCRIPTION "Sample description" SHADER_FILES_GLSL - "model.vert" - "model.frag") + "dynamic_state3_multisample_rasterization/model.vert" + "dynamic_state3_multisample_rasterization/model.frag") diff --git a/samples/extensions/dynamic_state3_multisample_rasterization/dynamic_state3_multisample_rasterization.cpp b/samples/extensions/dynamic_state3_multisample_rasterization/dynamic_state3_multisample_rasterization.cpp index a15f7b8ba..11221cf00 100644 --- a/samples/extensions/dynamic_state3_multisample_rasterization/dynamic_state3_multisample_rasterization.cpp +++ b/samples/extensions/dynamic_state3_multisample_rasterization/dynamic_state3_multisample_rasterization.cpp @@ -1,1766 +1,401 @@ -/* Copyright (c) 2023, Arm Limited and Contributors - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 the "License"; - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "dynamic_state3_multisample_rasterization.h" - -#include "common/vk_common.h" -#include "gltf_loader.h" -#include "gui.h" -#include "platform/filesystem.h" - -#include - -#include "scene_graph/components/mesh.h" -#include "scene_graph/components/material.h" - -#include "rendering/postprocessing_renderpass.h" -#include "rendering/subpasses/forward_subpass.h" -#include "stats/stats.h" - -namespace -{ -template -struct CopyBuffer -{ - std::vector operator()(std::unordered_map &buffers, const char *bufferName) - { - auto iter = buffers.find(bufferName); - if (iter == buffers.cend()) - { - return {}; - } - auto &buffer = iter->second; - std::vector out; - - const size_t sz = buffer.get_size(); - out.resize(sz / sizeof(T)); - const bool alreadyMapped = buffer.get_data() != nullptr; - if (!alreadyMapped) - { - buffer.map(); - } - memcpy(&out[0], buffer.get_data(), sz); - if (!alreadyMapped) - { - buffer.unmap(); - } - return out; - } -}; - -} // namespace - -namespace -{ -const std::string to_string(VkSampleCountFlagBits count) -{ - switch (count) - { - case VK_SAMPLE_COUNT_1_BIT: - return "No MSAA"; - case VK_SAMPLE_COUNT_2_BIT: - return "2X MSAA"; - case VK_SAMPLE_COUNT_4_BIT: - return "4X MSAA"; - case VK_SAMPLE_COUNT_8_BIT: - return "8X MSAA"; - case VK_SAMPLE_COUNT_16_BIT: - return "16X MSAA"; - case VK_SAMPLE_COUNT_32_BIT: - return "32X MSAA"; - case VK_SAMPLE_COUNT_64_BIT: - return "64X MSAA"; - default: - return "Unknown"; - } -} - -const std::string to_string(VkResolveModeFlagBits mode) -{ - switch (mode) - { - case VK_RESOLVE_MODE_NONE: - return "None"; - case VK_RESOLVE_MODE_SAMPLE_ZERO_BIT: - return "Sample 0"; - case VK_RESOLVE_MODE_AVERAGE_BIT: - return "Average"; - case VK_RESOLVE_MODE_MIN_BIT: - return "Min"; - case VK_RESOLVE_MODE_MAX_BIT: - return "Max"; - default: - return "Unknown"; - } -} -} // namespace - -DynamicState3MultisampleRasterization::DynamicState3MultisampleRasterization() -{ - // Extension of interest in this sample (optional) - add_device_extension(VK_KHR_DEPTH_STENCIL_RESOLVE_EXTENSION_NAME, true); - - // Extension dependency requirements (given that instance API version is 1.0.0) - add_instance_extension(VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME, true); - add_device_extension(VK_KHR_CREATE_RENDERPASS_2_EXTENSION_NAME, true); - add_device_extension(VK_KHR_MAINTENANCE2_EXTENSION_NAME, true); - add_device_extension(VK_KHR_MULTIVIEW_EXTENSION_NAME, true); - - auto &config = get_configuration(); - - // MSAA will be enabled by default if supported - // Batch mode will test the toggle between 1 or 2 renderpasses - // with writeback resolve of color and depth - config.insert(0, gui_run_postprocessing, false); - config.insert(1, gui_run_postprocessing, true); -} - -DynamicState3MultisampleRasterization::~DynamicState3MultisampleRasterization() -{ - if (device) - { - vkDestroyPipeline(get_device().get_handle(), sample_pipeline, nullptr); - vkDestroyPipelineLayout(get_device().get_handle(), sample_pipeline_layout, nullptr); - } -} - -void DynamicState3MultisampleRasterization::load_scene() -{ - assert(!!device); - vkb::GLTFLoader loader{*device}; - const std::string scene_path = "scenes/space_module/"; - //auto scene = loader.read_scene_from_file(scene_path + "vokselia.gltf"); - scene = loader.read_scene_from_file(scene_path + "SpaceModule.gltf"); - - //const std::string scene_path = "scenes/"; - //scene = loader.read_scene_from_file(scene_path + "torusknot.gltf"); - - assert(!!scene); - - //auto materials = scene->get_components(); - //auto textures = scene->get_components(); - - for (auto &&texture : scene->get_components()) - { - //const auto name = texture->get_name(); - //std::cout << name << std::endl; - const auto &short_name = texture->get_name(); - std::cout << short_name << std::endl; - //auto image_name = scene_path + short_name + ".ktx"; - //auto image_name = scene_path + short_name; - //auto image = vkb::sg::Image::load(image_name, image_name, vkb::sg::Image::Color); - - // hack: - //image-> VK_FORMAT_R8G8B8A8_SRGB - - //image->create_vk_image(*device); - //Texture texture; - //texture.n_mip_maps = static_cast(image->get_mipmaps().size()); - //texture.image = const_cast>(image->get_vk_image()); - //texture.image_view = const_cast(image->get_vk_image_view()); - //assert(texture.n_mip_maps == 1); - /* - texture.image = std::make_unique(*device, - image->get_extent(), - image->get_format(), - VK_IMAGE_USAGE_SAMPLED_BIT | VK_IMAGE_USAGE_TRANSFER_DST_BIT, - VMA_MEMORY_USAGE_GPU_ONLY, - VK_SAMPLE_COUNT_1_BIT, - 1, - 1, - VK_IMAGE_TILING_OPTIMAL, - - 0); - - const auto &data = texture->get_image()->get_data(); - auto data_buffer = std::make_unique(*device, data.size() * sizeof(data[0]), VK_BUFFER_USAGE_TRANSFER_SRC_BIT, VMA_MEMORY_USAGE_CPU_TO_GPU, VMA_ALLOCATION_CREATE_MAPPED_BIT, queue_families); - data_buffer->update(data.data(), data.size() * sizeof(data[0]), 0); - data_buffer->flush(); - - auto &texture_cmd = device->get_command_pool().request_command_buffer(); - texture_cmd.begin(VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT, VK_NULL_HANDLE); - - VkImageSubresourceRange subresource_range = {VK_IMAGE_ASPECT_COLOR_BIT, 0, 1, 0, 1}; - subresource_range.baseMipLevel = 0; - subresource_range.levelCount = texture->get_image()->get_mipmaps().size(); - - vkb::image_layout_transition( - texture_cmd.get_handle(), texture->get_image()->get_vk_image().get_handle(), VK_IMAGE_LAYOUT_UNDEFINED, VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, subresource_range); - - auto offsets = texture->get_image()->get_offsets(); - VkBufferImageCopy region = {}; - region.imageSubresource.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT; - region.imageSubresource.mipLevel = 0; - region.imageSubresource.baseArrayLayer = 0; - region.imageSubresource.layerCount = 1; - region.imageExtent = texture->get_image()->get_extent(); - region.bufferOffset = offsets[0][0]; - - texture_cmd.copy_buffer_to_image(*data_buffer, texture->get_image()->get_vk_image(), {region}); - texture_cmd.end(); - - auto &queue = device->get_queue_by_flags(VK_QUEUE_GRAPHICS_BIT, 0); - queue.submit(texture_cmd, device->request_fence()); - device->get_fence_pool().wait(); - device->get_fence_pool().reset(); - - //texture.image_view = std::make_unique(*texture.image, VK_IMAGE_VIEW_TYPE_2D); - */ - VkDescriptorImageInfo image_descriptor; - image_descriptor.imageLayout = VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL; - image_descriptor.imageView = texture->get_image()->get_vk_image_view().get_handle(); - image_descriptor.sampler = sampler; - image_descriptors.push_back(image_descriptor); - //textures.emplace_back(std::move(texture)); - } - - /* - for (auto && material : scene->get_components()) - { - const auto name = material->get_name(); - std::cout << name << std::endl; - } - */ - - for (auto &&mesh : scene->get_components()) - { - /* - const auto &short_name = mesh->get_name(); - auto image_name = scene_path + short_name + ".ktx"; - auto image = vkb::sg::Image::load(image_name, image_name, vkb::sg::Image::Color); - - image->create_vk_image(*device); - Texture texture; - texture.n_mip_maps = static_cast(image->get_mipmaps().size()); - assert(texture.n_mip_maps == 1); - texture.image = std::make_unique(*device, - image->get_extent(), - image->get_format(), - VK_IMAGE_USAGE_SAMPLED_BIT | VK_IMAGE_USAGE_TRANSFER_DST_BIT, - VMA_MEMORY_USAGE_GPU_ONLY, - VK_SAMPLE_COUNT_1_BIT, - 1, - 1, - VK_IMAGE_TILING_OPTIMAL, - - 0); - - const auto &data = image->get_data(); - auto data_buffer = std::make_unique(*device, data.size() * sizeof(data[0]), VK_BUFFER_USAGE_TRANSFER_SRC_BIT, VMA_MEMORY_USAGE_CPU_TO_GPU, VMA_ALLOCATION_CREATE_MAPPED_BIT, queue_families); - data_buffer->update(data.data(), data.size() * sizeof(data[0]), 0); - data_buffer->flush(); - - - auto &texture_cmd = device->get_command_pool().request_command_buffer(); - texture_cmd.begin(VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT, VK_NULL_HANDLE); - - VkImageSubresourceRange subresource_range = {VK_IMAGE_ASPECT_COLOR_BIT, 0, 1, 0, 1}; - subresource_range.baseMipLevel = 0; - subresource_range.levelCount = texture.n_mip_maps; - - vkb::image_layout_transition( - texture_cmd.get_handle(), texture.image->get_handle(), VK_IMAGE_LAYOUT_UNDEFINED, VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, subresource_range); - - auto offsets = image->get_offsets(); - VkBufferImageCopy region = {}; - region.imageSubresource.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT; - region.imageSubresource.mipLevel = 0; - region.imageSubresource.baseArrayLayer = 0; - region.imageSubresource.layerCount = 1; - region.imageExtent = image->get_extent(); - region.bufferOffset = offsets[0][0]; - - texture_cmd.copy_buffer_to_image(*data_buffer, *texture.image, {region}); - texture_cmd.end(); - - auto &queue = device->get_queue_by_flags(VK_QUEUE_GRAPHICS_BIT, 0); - queue.submit(texture_cmd, device->request_fence()); - device->get_fence_pool().wait(); - device->get_fence_pool().reset(); - - texture.image_view = std::make_unique(*texture.image, VK_IMAGE_VIEW_TYPE_2D); - - VkDescriptorImageInfo image_descriptor; - image_descriptor.imageLayout = VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL; - image_descriptor.imageView = texture.image_view->get_handle(); - image_descriptor.sampler = sampler; - image_descriptors.push_back(image_descriptor); - textures.emplace_back(std::move(texture)); - */ - for (auto &&sub_mesh : mesh->get_submeshes()) - { - SceneModel model; - // PJ: Fix this!!!! - //auto texs = sub_mesh->get_material()->textures; - //auto first_texture = sub_mesh->get_material()->textures.at(0); - model.texture_index = 1; - - auto pts = CopyBuffer{}(sub_mesh->vertex_buffers, "position"); - auto uvs = CopyBuffer{}(sub_mesh->vertex_buffers, "texcoord_0"); - assert(uvs.size() == pts.size()); - - model.vertices.resize(pts.size()); - for (size_t i = 0; i < pts.size(); ++i) - { - model.vertices[i].pt = {pts[i].x, -pts[i].y, pts[i].z}; - model.vertices[i].uv = uvs[i]; - } - - assert(sub_mesh->index_type == VK_INDEX_TYPE_UINT16); - auto buffer = sub_mesh->index_buffer.get(); - if (buffer) - { - const size_t sz = buffer->get_size(); - const size_t nTriangles = sz / sizeof(uint16_t) / 3; - model.triangles.resize(nTriangles); - auto ptr = buffer->get_data(); - assert(!!ptr); - std::vector temp_buffer(nTriangles * 3); - memcpy(temp_buffer.data(), ptr, nTriangles * 3 * sizeof(temp_buffer[0])); - model.triangles.resize(nTriangles); - for (size_t i = 0; i < nTriangles; ++i) - { - model.triangles[i] = { - static_cast(temp_buffer[3 * i]), - static_cast(temp_buffer[3 * i + 1]), - static_cast(temp_buffer[3 * i + 2])}; - } - } - //model.bounding_sphere = BoundingSphere(pts); - models.emplace_back(std::move(model)); - } - } - - auto textures = scene->get_components(); - - std::vector> imagesAndRanges; - // static_cast(scene->get_components().size()) - imagesAndRanges.reserve(textures.size()); - for (auto const &texture : textures) - { - imagesAndRanges.emplace_back( - std::make_pair(texture->get_image()->get_vk_image().get_handle(), VkImageSubresourceRange{VK_IMAGE_ASPECT_COLOR_BIT, 0, static_cast(texture->get_image()->get_mipmaps().size()), 0, 1})); - } - - auto &cmd = device->get_command_pool().request_command_buffer(); - cmd.begin(VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT, VK_NULL_HANDLE); - vkb::image_layout_transition(cmd.get_handle(), imagesAndRanges, VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL); - cmd.end(); - auto &queue = device->get_queue_by_flags(VK_QUEUE_GRAPHICS_BIT, 0); - queue.submit(cmd, device->request_fence()); - device->get_fence_pool().wait(); -} - -void DynamicState3MultisampleRasterization::initialize_resources() -{ - size_t vertex_buffer_size = 0, index_buffer_size = 0; - const size_t model_buffer_size = models.size() * sizeof(SceneModel); - for (auto &&model : models) - { - model.vertex_buffer_offset = vertex_buffer_size; - model.index_buffer_offset = index_buffer_size; - - vertex_buffer_size += model.vertices.size() * sizeof(Vertex); - index_buffer_size += model.triangles.size() * sizeof(model.triangles[0]); - } - - assert(vertex_buffer_size && index_buffer_size && model_buffer_size); - auto staging_vertex_buffer = std::make_unique(get_device(), vertex_buffer_size, VK_BUFFER_USAGE_TRANSFER_SRC_BIT, VMA_MEMORY_USAGE_CPU_TO_GPU); - auto staging_index_buffer = std::make_unique(get_device(), index_buffer_size, VK_BUFFER_USAGE_TRANSFER_SRC_BIT, VMA_MEMORY_USAGE_CPU_TO_GPU); - auto staging_model_buffer = std::make_unique(get_device(), model_buffer_size, VK_BUFFER_USAGE_TRANSFER_SRC_BIT, VMA_MEMORY_USAGE_CPU_TO_GPU); - - // We will store the GPU commands in the indirect call buffer - constexpr auto default_indirect_flags = VK_BUFFER_USAGE_TRANSFER_SRC_BIT | VK_BUFFER_USAGE_STORAGE_BUFFER_BIT | VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT | VK_BUFFER_USAGE_TRANSFER_DST_BIT; - auto indirect_flags = default_indirect_flags; - /* - if (m_supports_buffer_device) - { - indirect_flags |= VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT; - } - */ - indirect_call_buffer = std::make_unique(get_device(), models.size() * sizeof(VkDrawIndexedIndirectCommand), indirect_flags, VMA_MEMORY_USAGE_GPU_ONLY, VMA_ALLOCATION_CREATE_MAPPED_BIT, queue_families); - - // Create a buffer containing the addresses of the indirect calls. - // In this sample, the order of the addresses will match that of the other buffers, but in general they could be in any order - const size_t address_buffer_size = sizeof(VkDeviceAddress); - auto staging_address_buffer = std::make_unique(get_device(), address_buffer_size, VK_BUFFER_USAGE_TRANSFER_SRC_BIT, VMA_MEMORY_USAGE_CPU_TO_GPU); - /* - if (m_supports_buffer_device) - { - auto *destPtr = (uint64_t *) staging_address_buffer->get_data(); - - VkBufferDeviceAddressInfoKHR address_info{VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO_KHR}; - address_info.buffer = indirect_call_buffer->get_handle(); - VkDeviceAddress srcPtr = vkGetBufferDeviceAddressKHR(device->get_handle(), &address_info); - - *destPtr = srcPtr; - } - */ - - for (size_t i = 0; i < models.size(); ++i) - { - auto &model = models[i]; - staging_vertex_buffer->update(model.vertices.data(), model.vertices.size() * sizeof(Vertex), model.vertex_buffer_offset); - staging_index_buffer->update(model.triangles.data(), model.triangles.size() * sizeof(model.triangles[0]), model.index_buffer_offset); - - GpuModelInformation model_information; - //model_information.bounding_sphere_center = model.bounding_sphere.center; - //model_information.bounding_sphere_radius = model.bounding_sphere.radius; - model_information.texture_index = model.texture_index; - model_information.firstIndex = model.index_buffer_offset / (sizeof(model.triangles[0][0])); - model_information.indexCount = static_cast(model.triangles.size()); - staging_model_buffer->update(&model_information, sizeof(GpuModelInformation), i * sizeof(GpuModelInformation)); - } - - staging_vertex_buffer->flush(); - staging_index_buffer->flush(); - staging_model_buffer->flush(); - - auto &cmd = device->request_command_buffer(); - cmd.begin(VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT, VK_NULL_HANDLE); - auto copy = [this, &cmd](vkb::core::Buffer &staging_buffer, VkBufferUsageFlags buffer_usage_flags) { - auto output_buffer = std::make_unique(get_device(), staging_buffer.get_size(), buffer_usage_flags | VK_BUFFER_USAGE_TRANSFER_DST_BIT, VMA_MEMORY_USAGE_GPU_ONLY, VMA_ALLOCATION_CREATE_MAPPED_BIT, queue_families); - cmd.copy_buffer(staging_buffer, *output_buffer, staging_buffer.get_size()); - - vkb::BufferMemoryBarrier barrier; - barrier.src_stage_mask = VK_PIPELINE_STAGE_TRANSFER_BIT; - barrier.dst_stage_mask = VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT; - barrier.src_access_mask = VK_ACCESS_TRANSFER_WRITE_BIT; - barrier.dst_access_mask = VK_ACCESS_SHADER_READ_BIT | VK_ACCESS_SHADER_WRITE_BIT; - cmd.buffer_memory_barrier(*output_buffer, 0, VK_WHOLE_SIZE, barrier); - return output_buffer; - }; - vertex_buffer = copy(*staging_vertex_buffer, VK_BUFFER_USAGE_VERTEX_BUFFER_BIT | VK_BUFFER_USAGE_STORAGE_BUFFER_BIT); - index_buffer = copy(*staging_index_buffer, VK_BUFFER_USAGE_INDEX_BUFFER_BIT); - model_information_buffer = copy(*staging_model_buffer, VK_BUFFER_USAGE_STORAGE_BUFFER_BIT | VK_BUFFER_USAGE_VERTEX_BUFFER_BIT); - /* - if (m_supports_buffer_device) - { - // In this sample, we use a staging buffer for the device address buffer (i.e. for device exclusive memory). - // However, since the size of each element (sizeof(uint64_t)) is smaller than the objects it's pointing to, it could instead use host-visible memory - // for fast referencing of the underlying data - device_address_buffer = copy(*staging_address_buffer, VK_BUFFER_USAGE_STORAGE_BUFFER_BIT | VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT); - } - */ - - cmd.end(); - auto &queue = device->get_queue_by_flags(VK_QUEUE_GRAPHICS_BIT, 0); - queue.submit(cmd, device->request_fence()); - device->get_fence_pool().wait(); -} - -void DynamicState3MultisampleRasterization::update_scene_uniform() -{ - if (!scene_uniform_buffer) - { - scene_uniform_buffer = std::make_unique(*device, sizeof(SceneUniform), VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT, VMA_MEMORY_USAGE_CPU_TO_GPU, VMA_ALLOCATION_CREATE_MAPPED_BIT, queue_families); - } - scene_uniform.proj = camera.matrices.perspective; - scene_uniform.view = camera.matrices.view; - scene_uniform.proj_view = scene_uniform.proj * scene_uniform.view; - scene_uniform.model_count = static_cast(models.size()); - - scene_uniform_buffer->update(&scene_uniform, sizeof(scene_uniform), 0); - - scene_uniform_buffer->flush(); -} - -void DynamicState3MultisampleRasterization::draw() -{ - ApiVulkanSample::prepare_frame(); - - // Command buffer to be submitted to the queue - submit_info.commandBufferCount = 1; - submit_info.pCommandBuffers = &draw_cmd_buffers[current_buffer]; - - // Submit to queue - VK_CHECK(vkQueueSubmit(queue, 1, &submit_info, VK_NULL_HANDLE)); - - ApiVulkanSample::submit_frame(); -} - -void DynamicState3MultisampleRasterization::cpu_cull() -{ - cpu_commands.resize(models.size()); - - //VisibilityTester tester(scene_uniform.proj * scene_uniform.view); - for (size_t i = 0; i < models.size(); ++i) - { - // we control visibility by changing the instance count - auto &model = models[i]; - VkDrawIndexedIndirectCommand cmd{}; - cmd.firstIndex = model.index_buffer_offset / (sizeof(model.triangles[0][0])); - cmd.indexCount = static_cast(model.triangles.size()) * 3; - cmd.vertexOffset = static_cast(model.vertex_buffer_offset / sizeof(Vertex)); - cmd.firstInstance = i; - cmd.instanceCount = models.size(); // tester.is_visible(model.bounding_sphere.center, model.bounding_sphere.radius); - cpu_commands[i] = cmd; - } - - const auto call_buffer_size = cpu_commands.size() * sizeof(cpu_commands[0]); - assert(!!indirect_call_buffer && indirect_call_buffer->get_size() == call_buffer_size); - - if (!cpu_staging_buffer || cpu_staging_buffer->get_size() != call_buffer_size) - { - cpu_staging_buffer = std::make_unique(get_device(), models.size() * sizeof(VkDrawIndexedIndirectCommand), VK_BUFFER_USAGE_TRANSFER_DST_BIT | VK_BUFFER_USAGE_TRANSFER_SRC_BIT, VMA_MEMORY_USAGE_CPU_TO_GPU); - } - - cpu_staging_buffer->update(cpu_commands.data(), call_buffer_size, 0); - cpu_staging_buffer->flush(); - - auto &transfer_cmd = device->get_command_pool().request_command_buffer(); - transfer_cmd.begin(VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT, VK_NULL_HANDLE); - transfer_cmd.copy_buffer(*cpu_staging_buffer, *indirect_call_buffer, call_buffer_size); - transfer_cmd.end(); - - auto &queue = device->get_queue_by_flags(VK_QUEUE_GRAPHICS_BIT, 0); - queue.submit(transfer_cmd, device->request_fence()); - device->get_fence_pool().wait(); -} - - -bool DynamicState3MultisampleRasterization::prepare(const vkb::ApplicationOptions &options) -{ - if (!ApiVulkanSample::prepare(options)) - { - return false; - } - - camera.type = vkb::CameraType::FirstPerson; - camera.set_perspective(60.0f, static_cast(width) / static_cast(height), 0.001f, 512.0f); - //camera.set_rotation(glm::vec3(-23.5, -45, 0)); - //camera.set_translation(glm::vec3(0, 0.5, -0.2)); - camera.set_translation(glm::vec3(0, 5, -500)); - - create_sampler(); - load_scene(); - initialize_resources(); - - update_scene_uniform(); - - prepare_pipelines(); - - initialize_descriptors(); - - build_command_buffers(); - - /* - prepare_supported_sample_count_list(); - - depth_writeback_resolve_supported = device->is_enabled(VK_KHR_DEPTH_STENCIL_RESOLVE_EXTENSION_NAME); - if (depth_writeback_resolve_supported) - { - prepare_depth_resolve_mode_list(); - } - */ - - cpu_cull(); - - /* - load_scene("scenes/space_module/SpaceModule.gltf"); - - auto &camera_node = vkb::add_free_camera(*scene, "main_camera", get_render_context().get_surface_extent()); - camera = dynamic_cast(&camera_node.get_component()); - - vkb::ShaderSource scene_vs("base.vert"); - vkb::ShaderSource scene_fs("base.frag"); - //auto scene_subpass = std::make_unique(get_render_context(), std::move(scene_vs), std::move(scene_fs), *scene, *camera); - //scene_pipeline = std::make_unique(); - //scene_pipeline->add_subpass(std::move(scene_subpass)); - vkb::ShaderSource postprocessing_vs("postprocessing/postprocessing.vert"); - postprocessing_pipeline = std::make_unique(get_render_context(), std::move(postprocessing_vs)); - postprocessing_pipeline->add_pass().add_subpass(vkb::ShaderSource("postprocessing/outline.frag")); - - //update_pipelines(); - - stats->request_stats({vkb::StatIndex::frame_times, - vkb::StatIndex::gpu_ext_read_bytes, - vkb::StatIndex::gpu_ext_write_bytes}); - - //gui = std::make_unique(*this, *window, stats.get()); - */ - - prepared = true; - return true; -} -/* -void DynamicState3MultisampleRasterization::prepare_render_context() -{ - get_render_context().prepare(1, std::bind(&DynamicState3MultisampleRasterization::create_render_target, this, std::placeholders::_1)); -} - -std::unique_ptr DynamicState3MultisampleRasterization::create_render_target(vkb::core::Image &&swapchain_image) -{ - auto &device = swapchain_image.get_device(); - auto &extent = swapchain_image.get_extent(); - - auto depth_format = vkb::get_suitable_depth_format(device.get_gpu().get_handle()); - bool msaa_enabled = sample_count != VK_SAMPLE_COUNT_1_BIT; - VkImageUsageFlags depth_usage = VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT; - VkImageUsageFlags depth_resolve_usage = VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT; - if (run_postprocessing) - { - // Depth needs to be read by the postprocessing subpass - if (msaa_enabled && depth_writeback_resolve_supported && resolve_depth_on_writeback) - { - // Depth is resolved - depth_usage |= VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT; - depth_resolve_usage |= VK_IMAGE_USAGE_SAMPLED_BIT; - } - else - { - // Postprocessing reads multisampled depth - depth_usage |= VK_IMAGE_USAGE_SAMPLED_BIT; - depth_resolve_usage |= VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT; - } - } - else - { - // Depth attachments are transient - depth_usage |= VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT; - depth_resolve_usage |= VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT; - } - - vkb::core::Image depth_image{device, - extent, - depth_format, - depth_usage, - VMA_MEMORY_USAGE_GPU_ONLY, - sample_count}; - - vkb::core::Image depth_resolve_image{device, - extent, - depth_format, - depth_resolve_usage, - VMA_MEMORY_USAGE_GPU_ONLY, - VK_SAMPLE_COUNT_1_BIT}; - - VkImageUsageFlags color_ms_usage = VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT; - if (ColorResolve::OnWriteback == color_resolve_method) - { - // Writeback resolve means that the multisampled attachment - // can be discarded at the end of the render pass - color_ms_usage |= VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT; - } - else if (ColorResolve::SeparatePass == color_resolve_method) - { - // Multisampled attachment will be stored and - // resolved outside the render pass - color_ms_usage |= VK_IMAGE_USAGE_TRANSFER_SRC_BIT; - } - - vkb::core::Image color_ms_image{device, - extent, - swapchain_image.get_format(), - color_ms_usage, - VMA_MEMORY_USAGE_GPU_ONLY, - sample_count}; - - VkImageUsageFlags color_resolve_usage = VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT; - if (run_postprocessing) - { - if (ColorResolve::SeparatePass == color_resolve_method) - { - // The multisampled color image will be resolved - // to this attachment with a transfer operation - color_resolve_usage |= VK_IMAGE_USAGE_TRANSFER_DST_BIT; - } - - // The resolved color image will be read by the postprocessing - // renderpass - color_resolve_usage |= VK_IMAGE_USAGE_SAMPLED_BIT; - } - - vkb::core::Image color_resolve_image{device, - extent, - swapchain_image.get_format(), - color_resolve_usage, - VMA_MEMORY_USAGE_GPU_ONLY, - VK_SAMPLE_COUNT_1_BIT}; - - scene_load_store.clear(); - std::vector images; - - // Attachment 0 - Swapchain - // Used by the scene renderpass if postprocessing is disabled - // Used by the postprocessing renderpass if postprocessing is enabled - i_swapchain = 0; - images.push_back(std::move(swapchain_image)); - scene_load_store.push_back({VK_ATTACHMENT_LOAD_OP_CLEAR, VK_ATTACHMENT_STORE_OP_STORE}); - - // Attachment 1 - Depth - // Always used by the scene renderpass, may or may not be multisampled - i_depth = 1; - images.push_back(std::move(depth_image)); - scene_load_store.push_back({VK_ATTACHMENT_LOAD_OP_CLEAR, VK_ATTACHMENT_STORE_OP_DONT_CARE}); - - // Attachment 2 - Multisampled color - // Used by the scene renderpass if MSAA is enabled - i_color_ms = 2; - images.push_back(std::move(color_ms_image)); - scene_load_store.push_back({VK_ATTACHMENT_LOAD_OP_CLEAR, VK_ATTACHMENT_STORE_OP_DONT_CARE}); - - // Attachment 3 - Resolved color - // Used as an output by the scene renderpass if MSAA and postprocessing are enabled - // Used as an input by the postprocessing renderpass - i_color_resolve = 3; - images.push_back(std::move(color_resolve_image)); - scene_load_store.push_back({VK_ATTACHMENT_LOAD_OP_CLEAR, VK_ATTACHMENT_STORE_OP_DONT_CARE}); - - // Attachment 4 - Resolved depth - // Used for writeback depth resolve if MSAA is enabled and the required extension is supported - i_depth_resolve = 4; - images.push_back(std::move(depth_resolve_image)); - scene_load_store.push_back({VK_ATTACHMENT_LOAD_OP_CLEAR, VK_ATTACHMENT_STORE_OP_DONT_CARE}); - - color_atts = {i_swapchain, i_color_ms, i_color_resolve}; - depth_atts = {i_depth, i_depth_resolve}; - - return std::make_unique(std::move(images)); -} - -/* -void DynamicState3MultisampleRasterization::update(float delta_time) -{ - if ((gui_run_postprocessing != last_gui_run_postprocessing) || - (gui_sample_count != last_gui_sample_count) || - (gui_color_resolve_method != last_gui_color_resolve_method) || - (gui_resolve_depth_on_writeback != last_gui_resolve_depth_on_writeback) || - (gui_depth_resolve_mode != last_gui_depth_resolve_mode)) - { - run_postprocessing = gui_run_postprocessing; - sample_count = gui_sample_count; - color_resolve_method = gui_color_resolve_method; - resolve_depth_on_writeback = gui_resolve_depth_on_writeback; - depth_resolve_mode = gui_depth_resolve_mode; - - update_pipelines(); - - last_gui_run_postprocessing = gui_run_postprocessing; - last_gui_sample_count = gui_sample_count; - last_gui_color_resolve_method = gui_color_resolve_method; - last_gui_resolve_depth_on_writeback = gui_resolve_depth_on_writeback; - last_gui_depth_resolve_mode = gui_depth_resolve_mode; - } - - VulkanSample::update(delta_time); -} - - -void DynamicState3MultisampleRasterization::update_pipelines() -{ - bool msaa_enabled = sample_count != VK_SAMPLE_COUNT_1_BIT; - if (run_postprocessing) - { - update_for_scene_and_postprocessing(msaa_enabled); - } - else - { - update_for_scene_only(msaa_enabled); - } - - // Default swapchain usage flags - std::set swapchain_usage = {VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT, VK_IMAGE_USAGE_TRANSFER_SRC_BIT}; - if (ColorResolve::SeparatePass == color_resolve_method && !run_postprocessing) - { - // The multisampled color image will be resolved - // to the swapchain with a transfer operation - swapchain_usage.insert(VK_IMAGE_USAGE_TRANSFER_DST_BIT); - } - - get_device().wait_idle(); - - get_render_context().update_swapchain(swapchain_usage); -} - -void DynamicState3MultisampleRasterization::update_for_scene_only(bool msaa_enabled) -{ - auto &scene_subpass = scene_pipeline->get_active_subpass(); - scene_subpass->set_sample_count(sample_count); - - if (msaa_enabled) - { - // Render multisampled color, to be resolved to the swapchain - use_multisampled_color(scene_subpass, scene_load_store, i_swapchain); - } - else - { - // Render color to the swapchain - use_singlesampled_color(scene_subpass, scene_load_store, i_swapchain); - } - - // Depth attachment is transient, it will not be needed after the renderpass - // If it is multisampled, there is no need to resolve it - scene_load_store[i_depth].store_op = VK_ATTACHMENT_STORE_OP_DONT_CARE; - disable_depth_writeback_resolve(scene_subpass, scene_load_store); - - // Auxiliary single-sampled color attachment is not used - scene_load_store[i_color_resolve].store_op = VK_ATTACHMENT_STORE_OP_DONT_CARE; - - // Update the scene renderpass - scene_pipeline->set_load_store(scene_load_store); -} - -void DynamicState3MultisampleRasterization::update_for_scene_and_postprocessing(bool msaa_enabled) -{ - auto &scene_subpass = scene_pipeline->get_active_subpass(); - scene_subpass->set_sample_count(sample_count); - - // The color and depth attachments will be the input of the postprocessing renderpass - if (msaa_enabled) - { - // Resolve multisampled color to an intermediate attachment - use_multisampled_color(scene_subpass, scene_load_store, i_color_resolve); - - // Store multisampled depth - // Resolve it first if enabled and supported, - store_multisampled_depth(scene_subpass, scene_load_store); - } - else - { - // Render color to an intermediate attachment - use_singlesampled_color(scene_subpass, scene_load_store, i_color_resolve); - - // Store single-sampled depth - scene_load_store[i_depth].store_op = VK_ATTACHMENT_STORE_OP_STORE; - disable_depth_writeback_resolve(scene_subpass, scene_load_store); - } - - // Swapchain is not used in the scene renderpass - scene_load_store[i_swapchain].store_op = VK_ATTACHMENT_STORE_OP_DONT_CARE; - - // Update the scene renderpass - scene_pipeline->set_load_store(scene_load_store); -} - -void DynamicState3MultisampleRasterization::use_multisampled_color(std::unique_ptr &subpass, std::vector &load_store, uint32_t resolve_attachment) -{ - // Render to multisampled color attachment - subpass->set_output_attachments({i_color_ms}); - - // Resolve color - if (ColorResolve::OnWriteback == color_resolve_method) - { - // Good practice - // Multisampled attachment is transient - // This allows tilers to completely avoid writing out the multisampled attachment to memory, - // a considerable performance and bandwidth improvement - load_store[i_color_ms].store_op = VK_ATTACHMENT_STORE_OP_DONT_CARE; - - // Enable writeback resolve to single-sampled attachment - subpass->set_color_resolve_attachments({resolve_attachment}); - - // Save resolved attachment - load_store[resolve_attachment].store_op = VK_ATTACHMENT_STORE_OP_STORE; - } - else if (ColorResolve::SeparatePass == color_resolve_method) - { - // Bad practice - // Save multisampled color attachment, will be resolved outside the renderpass - // Storing multisampled color should be avoided - load_store[i_color_ms].store_op = VK_ATTACHMENT_STORE_OP_STORE; - - // Disable writeback resolve - subpass->set_color_resolve_attachments({}); - load_store[resolve_attachment].store_op = VK_ATTACHMENT_STORE_OP_DONT_CARE; - } -} - -void DynamicState3MultisampleRasterization::use_singlesampled_color(std::unique_ptr &subpass, std::vector &load_store, uint32_t output_attachment) -{ - // Render to a single-sampled attachment - subpass->set_output_attachments({output_attachment}); - load_store[output_attachment].store_op = VK_ATTACHMENT_STORE_OP_STORE; - - // Multisampled color attachment is not used - load_store[i_color_ms].store_op = VK_ATTACHMENT_STORE_OP_DONT_CARE; - - // Disable writeback resolve - subpass->set_color_resolve_attachments({}); -} - -void DynamicState3MultisampleRasterization::store_multisampled_depth(std::unique_ptr &subpass, std::vector &load_store) -{ - if (depth_writeback_resolve_supported && resolve_depth_on_writeback) - { - // Good practice - // Multisampled attachment is transient - // This allows tilers to completely avoid writing out the multisampled attachment to memory, - // a considerable performance and bandwidth improvement - load_store[i_depth].store_op = VK_ATTACHMENT_STORE_OP_DONT_CARE; - - // Enable writeback resolve to single-sampled attachment - subpass->set_depth_stencil_resolve_attachment(i_depth_resolve); - subpass->set_depth_stencil_resolve_mode(depth_resolve_mode); - - // Save resolved attachment - load_store[i_depth_resolve].store_op = VK_ATTACHMENT_STORE_OP_STORE; - } - else - { - // Bad practice - // Save multisampled depth attachment, which cannot be resolved outside the renderpass - // Storing multisampled depth should be avoided - load_store[i_depth].store_op = VK_ATTACHMENT_STORE_OP_STORE; - - // Disable writeback resolve - disable_depth_writeback_resolve(subpass, load_store); - } -} - -void DynamicState3MultisampleRasterization::disable_depth_writeback_resolve(std::unique_ptr &subpass, std::vector &load_store) -{ - // Auxiliary single-sampled depth attachment is not used - load_store[i_depth_resolve].store_op = VK_ATTACHMENT_STORE_OP_DONT_CARE; - - // Disable writeback resolve - subpass->set_depth_stencil_resolve_attachment(VK_ATTACHMENT_UNUSED); - subpass->set_depth_stencil_resolve_mode(VK_RESOLVE_MODE_NONE); -} - -void DynamicState3MultisampleRasterization::draw(vkb::CommandBuffer &command_buffer, vkb::RenderTarget &render_target) -{ - auto &views = render_target.get_views(); - - auto swapchain_layout = VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL; - { - vkb::ImageMemoryBarrier memory_barrier{}; - memory_barrier.old_layout = VK_IMAGE_LAYOUT_UNDEFINED; - memory_barrier.new_layout = swapchain_layout; - memory_barrier.src_access_mask = 0; - memory_barrier.dst_access_mask = VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT; - memory_barrier.src_stage_mask = VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT; - memory_barrier.dst_stage_mask = VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT; - - for (auto &i_color : color_atts) - { - assert(i_color < views.size()); - command_buffer.image_memory_barrier(views[i_color], memory_barrier); - render_target.set_layout(i_color, VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL); - } - } - - { - vkb::ImageMemoryBarrier memory_barrier{}; - memory_barrier.old_layout = VK_IMAGE_LAYOUT_UNDEFINED; - memory_barrier.new_layout = VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL; - memory_barrier.src_access_mask = 0; - memory_barrier.dst_access_mask = VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT | VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT; - memory_barrier.src_stage_mask = VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT; - memory_barrier.dst_stage_mask = VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT | VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT; - - if (run_postprocessing) - { - // Synchronize depth with previous depth resolve operation - memory_barrier.dst_stage_mask |= VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT; - memory_barrier.dst_access_mask |= VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT; - } - - for (auto &i_depth : depth_atts) - { - assert(i_depth < views.size()); - command_buffer.image_memory_barrier(views[i_depth], memory_barrier); - render_target.set_layout(i_depth, VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL); - } - } - - auto &extent = render_target.get_extent(); - - VkViewport viewport{}; - viewport.width = static_cast(extent.width); - viewport.height = static_cast(extent.height); - viewport.minDepth = 0.0f; - viewport.maxDepth = 1.0f; - command_buffer.set_viewport(0, {viewport}); - - VkRect2D scissor{}; - scissor.extent = extent; - command_buffer.set_scissor(0, {scissor}); - - scene_pipeline->draw(command_buffer, render_target); - - if (!run_postprocessing) - { - // If postprocessing is enabled the GUI will be drawn - // at the end of the postprocessing renderpass - if (gui) - { - gui->draw(command_buffer); - } - } - - command_buffer.end_render_pass(); - - bool msaa_enabled = sample_count != VK_SAMPLE_COUNT_1_BIT; - - if (msaa_enabled && ColorResolve::SeparatePass == color_resolve_method) - { - if (run_postprocessing) - { - resolve_color_separate_pass(command_buffer, views, i_color_resolve, swapchain_layout); - } - else - { - resolve_color_separate_pass(command_buffer, views, i_swapchain, swapchain_layout); - } - } - - if (run_postprocessing) - { - // Run a second renderpass - postprocessing(command_buffer, render_target, swapchain_layout, msaa_enabled); - } - - { - // Prepare swapchain for presentation - vkb::ImageMemoryBarrier memory_barrier{}; - memory_barrier.old_layout = swapchain_layout; - memory_barrier.new_layout = VK_IMAGE_LAYOUT_PRESENT_SRC_KHR; - memory_barrier.src_access_mask = VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT; - memory_barrier.src_stage_mask = VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT; - memory_barrier.dst_stage_mask = VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT; - - assert(i_swapchain < views.size()); - command_buffer.image_memory_barrier(views[i_swapchain], memory_barrier); - } -} - -void DynamicState3MultisampleRasterization::postprocessing(vkb::CommandBuffer &command_buffer, vkb::RenderTarget &render_target, - VkImageLayout &swapchain_layout, bool msaa_enabled) -{ - /* - auto depth_attachment = (msaa_enabled && depth_writeback_resolve_supported && resolve_depth_on_writeback) ? i_depth_resolve : i_depth; - bool multisampled_depth = msaa_enabled && !(depth_writeback_resolve_supported && resolve_depth_on_writeback); - std::string depth_sampler_name = multisampled_depth ? "ms_depth_sampler" : "depth_sampler"; - - glm::vec4 near_far = {camera->get_far_plane(), camera->get_near_plane(), -1.0f, -1.0f}; - - auto &postprocessing_pass = postprocessing_pipeline->get_pass(0); - postprocessing_pass.set_uniform_data(near_far); - - auto &postprocessing_subpass = postprocessing_pass.get_subpass(0); - // Unbind sampled images to prevent invalid image transitions on unused images - postprocessing_subpass.unbind_sampled_image("depth_sampler"); - postprocessing_subpass.unbind_sampled_image("ms_depth_sampler"); - - postprocessing_subpass.get_fs_variant().clear(); - if (multisampled_depth) - { - postprocessing_subpass.get_fs_variant().add_define("MS_DEPTH"); - } - postprocessing_subpass - .bind_sampled_image(depth_sampler_name, {depth_attachment, nullptr, nullptr, depth_writeback_resolve_supported && resolve_depth_on_writeback}) - .bind_sampled_image("color_sampler", i_color_resolve); - - // Second render pass - // NOTE: Color and depth attachments are automatically transitioned to be bound as textures - postprocessing_pipeline->draw(command_buffer, render_target); - - if (gui) - { - gui->draw(command_buffer); - } - - command_buffer.end_render_pass(); -} - -void DynamicState3MultisampleRasterization::resolve_color_separate_pass(vkb::CommandBuffer &command_buffer, const std::vector &views, - uint32_t color_destination, VkImageLayout &color_layout) -{ - { - // The multisampled color is the source of the resolve operation - vkb::ImageMemoryBarrier memory_barrier{}; - memory_barrier.old_layout = VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL; - memory_barrier.new_layout = VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL; - memory_barrier.src_stage_mask = VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT; - memory_barrier.dst_stage_mask = VK_PIPELINE_STAGE_TRANSFER_BIT; - memory_barrier.src_access_mask = VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT; - memory_barrier.dst_access_mask = VK_ACCESS_TRANSFER_READ_BIT; - - assert(i_color_ms < views.size()); - command_buffer.image_memory_barrier(views[i_color_ms], memory_barrier); - } - - VkImageSubresourceLayers subresource = {0}; - subresource.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT; - subresource.layerCount = 1; - - VkImageResolve image_resolve = {0}; - image_resolve.srcSubresource = subresource; - image_resolve.dstSubresource = subresource; - image_resolve.extent = VkExtent3D{get_render_context().get_surface_extent().width, get_render_context().get_surface_extent().height, 1}; - - { - // Prepare destination image for transfer operation - auto color_new_layout = VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL; - - vkb::ImageMemoryBarrier memory_barrier{}; - memory_barrier.old_layout = color_layout; - memory_barrier.new_layout = color_new_layout; - memory_barrier.src_stage_mask = VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT; - memory_barrier.dst_stage_mask = VK_PIPELINE_STAGE_TRANSFER_BIT; - memory_barrier.src_access_mask = VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT; - memory_barrier.dst_access_mask = VK_ACCESS_TRANSFER_WRITE_BIT; - - color_layout = color_new_layout; - - assert(color_destination < views.size()); - command_buffer.image_memory_barrier(views[color_destination], memory_barrier); - } - - // Resolve multisampled attachment to destination, extremely expensive - command_buffer.resolve_image(views[i_color_ms].get_image(), views.at(color_destination).get_image(), {image_resolve}); - - // Transition attachments out of transfer stage - { - auto color_new_layout = VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL; - - vkb::ImageMemoryBarrier memory_barrier{}; - memory_barrier.old_layout = color_layout; - memory_barrier.new_layout = color_new_layout; - memory_barrier.src_stage_mask = VK_PIPELINE_STAGE_TRANSFER_BIT; - memory_barrier.dst_stage_mask = VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT; - memory_barrier.src_access_mask = VK_ACCESS_TRANSFER_WRITE_BIT; - memory_barrier.dst_access_mask = VK_ACCESS_COLOR_ATTACHMENT_READ_BIT; - - color_layout = color_new_layout; - - command_buffer.image_memory_barrier(views[color_destination], memory_barrier); - } - - { - vkb::ImageMemoryBarrier memory_barrier{}; - memory_barrier.old_layout = VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL; - memory_barrier.new_layout = VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL; - memory_barrier.src_stage_mask = VK_PIPELINE_STAGE_TRANSFER_BIT; - memory_barrier.dst_stage_mask = VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT; - memory_barrier.src_access_mask = VK_ACCESS_TRANSFER_READ_BIT; - memory_barrier.dst_access_mask = VK_ACCESS_COLOR_ATTACHMENT_READ_BIT; - - command_buffer.image_memory_barrier(views[i_color_ms], memory_barrier); - } -} - -void DynamicState3MultisampleRasterization::prepare_supported_sample_count_list() -{ - VkPhysicalDeviceProperties gpu_properties; - vkGetPhysicalDeviceProperties(get_device().get_gpu().get_handle(), &gpu_properties); - - VkSampleCountFlags supported_by_depth_and_color = gpu_properties.limits.framebufferColorSampleCounts & gpu_properties.limits.framebufferDepthSampleCounts; - - // All possible sample counts are listed here from most to least preferred as default - // On Mali GPUs 4X MSAA is recommended as best performance/quality trade-off - std::vector counts = {VK_SAMPLE_COUNT_4_BIT, VK_SAMPLE_COUNT_2_BIT, VK_SAMPLE_COUNT_8_BIT, - VK_SAMPLE_COUNT_16_BIT, VK_SAMPLE_COUNT_32_BIT, VK_SAMPLE_COUNT_64_BIT, - VK_SAMPLE_COUNT_1_BIT}; - - for (auto &count : counts) - { - if (supported_by_depth_and_color & count) - { - supported_sample_count_list.push_back(count); - - if (sample_count == VK_SAMPLE_COUNT_1_BIT) - { - // Set default sample count based on the priority defined above - sample_count = count; - gui_sample_count = count; - last_gui_sample_count = count; - } - } - } -} - -void DynamicState3MultisampleRasterization::prepare_depth_resolve_mode_list() -{ - if (instance->is_enabled(VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME)) - { - VkPhysicalDeviceProperties2KHR gpu_properties{}; - gpu_properties.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2_KHR; - VkPhysicalDeviceDepthStencilResolvePropertiesKHR depth_resolve_properties{}; - depth_resolve_properties.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES_KHR; - gpu_properties.pNext = static_cast(&depth_resolve_properties); - vkGetPhysicalDeviceProperties2KHR(get_device().get_gpu().get_handle(), &gpu_properties); - - if (depth_resolve_properties.supportedDepthResolveModes == 0) - { - LOGW("No depth stencil resolve modes supported"); - depth_writeback_resolve_supported = false; - } - else - { - // All possible modes are listed here from most to least preferred as default - std::vector modes = {VK_RESOLVE_MODE_SAMPLE_ZERO_BIT, VK_RESOLVE_MODE_MIN_BIT, - VK_RESOLVE_MODE_MAX_BIT, VK_RESOLVE_MODE_AVERAGE_BIT}; - - for (auto &mode : modes) - { - if (depth_resolve_properties.supportedDepthResolveModes & mode) - { - supported_depth_resolve_mode_list.push_back(mode); - - if (depth_resolve_mode == VK_RESOLVE_MODE_NONE) - { - // Set default mode based on the priority defined above - depth_resolve_mode = mode; - gui_depth_resolve_mode = mode; - last_gui_depth_resolve_mode = mode; - } - } - } - } - } -} - -void DynamicState3MultisampleRasterization::draw_gui() -{ - auto msaa_enabled = sample_count != VK_SAMPLE_COUNT_1_BIT; - const bool landscape = camera->get_aspect_ratio() > 1.0f; - uint32_t lines = landscape ? 3 : 4; - - gui->show_options_window( - [this, msaa_enabled, landscape]() { - ImGui::AlignTextToFramePadding(); - ImGui::PushItemWidth(ImGui::GetWindowWidth() * 0.4f); - - if (ImGui::BeginCombo("##sample_count", to_string(gui_sample_count).c_str())) - { - for (size_t n = 0; n < supported_sample_count_list.size(); n++) - { - bool is_selected = (gui_sample_count == supported_sample_count_list[n]); - if (ImGui::Selectable(to_string(supported_sample_count_list[n]).c_str(), is_selected)) - { - gui_sample_count = supported_sample_count_list[n]; - } - if (is_selected) - { - ImGui::SetItemDefaultFocus(); - } - } - ImGui::EndCombo(); - } - - if (landscape) - { - ImGui::SameLine(); - } - ImGui::Checkbox("Post-processing (2 renderpasses)", &gui_run_postprocessing); - - ImGui::Text("Resolve color: "); - ImGui::SameLine(); - if (msaa_enabled) - { - ImGui::RadioButton("On writeback", &gui_color_resolve_method, ColorResolve::OnWriteback); - ImGui::SameLine(); - ImGui::RadioButton("Separate", &gui_color_resolve_method, ColorResolve::SeparatePass); - } - else - { - ImGui::Text("n/a"); - } - - ImGui::Text("Resolve depth: "); - ImGui::SameLine(); - if (msaa_enabled && run_postprocessing) - { - if (depth_writeback_resolve_supported) - { - ImGui::Checkbox("##resolve_depth", &gui_resolve_depth_on_writeback); - ImGui::SameLine(); - ImGui::Text("On writeback"); - ImGui::SameLine(); - ImGui::PushItemWidth(ImGui::GetWindowWidth() * 0.3f); - - if (ImGui::BeginCombo("##resolve_mode", to_string(gui_depth_resolve_mode).c_str())) - { - for (int n = 0; n < supported_depth_resolve_mode_list.size(); n++) - { - bool is_selected = (gui_depth_resolve_mode == supported_depth_resolve_mode_list[n]); - if (ImGui::Selectable(to_string(supported_depth_resolve_mode_list[n]).c_str(), is_selected)) - { - gui_depth_resolve_mode = supported_depth_resolve_mode_list[n]; - } - if (is_selected) - { - ImGui::SetItemDefaultFocus(); - } - } - ImGui::EndCombo(); - } - } - else - { - ImGui::Text("Not supported"); - } - } - else - { - ImGui::Text("n/a"); - } - }, - lines); -} -*/ - -void DynamicState3MultisampleRasterization::prepare_pipelines() -{ - //static_cast(texture->get_image()->get_mipmaps().size()) - //static_cast(texture->get_image()->get_mipmaps().size()) - //static_cast(scene->get_components()) - std::vector pool_sizes = { - {VK_DESCRIPTOR_TYPE_STORAGE_BUFFER, 6}, - {VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, 1 * static_cast(scene->get_components().size())}, - {VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER, 6}}; - VkDescriptorPoolCreateInfo descriptor_pool_create_info = vkb::initializers::descriptor_pool_create_info(pool_sizes, 3); - VK_CHECK(vkCreateDescriptorPool(get_device().get_handle(), &descriptor_pool_create_info, nullptr, &descriptor_pool)); - - // The model information will be used to index textures in the fragment shader, - // as well as perform frustum culling in the compute shader - VkDescriptorSetLayoutBinding model_information_binding{}; - model_information_binding.binding = 0; - model_information_binding.descriptorType = VK_DESCRIPTOR_TYPE_STORAGE_BUFFER; - model_information_binding.descriptorCount = 1; - model_information_binding.stageFlags = VK_SHADER_STAGE_COMPUTE_BIT; - - // This array of textures will be accessed via the instance ID - VkDescriptorSetLayoutBinding image_array_binding{}; - image_array_binding.binding = 1; - image_array_binding.descriptorType = VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER; - image_array_binding.descriptorCount = scene->get_components().size(); - image_array_binding.stageFlags = VK_SHADER_STAGE_FRAGMENT_BIT; - - VkDescriptorSetLayoutBinding scene_uniform_binding{}; - scene_uniform_binding.binding = 2; - scene_uniform_binding.descriptorType = VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER; - scene_uniform_binding.descriptorCount = 1; - scene_uniform_binding.stageFlags = VK_SHADER_STAGE_VERTEX_BIT | VK_SHADER_STAGE_FRAGMENT_BIT | VK_SHADER_STAGE_COMPUTE_BIT; - - VkDescriptorSetLayoutBinding command_buffer_binding{}; - command_buffer_binding.binding = 3; - command_buffer_binding.descriptorType = VK_DESCRIPTOR_TYPE_STORAGE_BUFFER; - command_buffer_binding.descriptorCount = 1; - command_buffer_binding.stageFlags = VK_SHADER_STAGE_COMPUTE_BIT; - - // Create descriptors - auto create_descriptors = [this](const std::vector &set_layout_bindings, VkDescriptorSetLayout &_descriptor_set_layout, VkPipelineLayout &_pipeline_layout) { - VkDescriptorSetLayoutCreateInfo descriptor_layout = vkb::initializers::descriptor_set_layout_create_info(set_layout_bindings.data(), static_cast(set_layout_bindings.size())); - VK_CHECK(vkCreateDescriptorSetLayout(get_device().get_handle(), &descriptor_layout, nullptr, &_descriptor_set_layout)); - - VkPipelineLayoutCreateInfo pipeline_layout_create_info = - vkb::initializers::pipeline_layout_create_info( - &_descriptor_set_layout, - 1); - - VK_CHECK(vkCreatePipelineLayout(get_device().get_handle(), &pipeline_layout_create_info, nullptr, &_pipeline_layout)); - }; - - // Render pipeline - std::vector set_layout_bindings = {model_information_binding, image_array_binding, scene_uniform_binding, command_buffer_binding}; - create_descriptors(set_layout_bindings, descriptor_set_layout, pipeline_layout); - - // Compute pipeline - // Note we don't include the texture array - /* - std::vector gpu_compute_set_layout_bindings = {model_information_binding, scene_uniform_binding, command_buffer_binding}; - create_descriptors(gpu_compute_set_layout_bindings, gpu_cull_descriptor_set_layout, gpu_cull_pipeline_layout); - */ - - // Device address pipeline - // Note that we don't bind the command buffer directly; instead, we use the references from the device addresses - // This will be used in the device address shader (cull_address.comp) - /* - if (m_supports_buffer_device) - { - VkDescriptorSetLayoutBinding device_address_binding{}; - device_address_binding.binding = 4; - device_address_binding.descriptorType = VK_DESCRIPTOR_TYPE_STORAGE_BUFFER; - device_address_binding.descriptorCount = 1; - device_address_binding.stageFlags = VK_SHADER_STAGE_COMPUTE_BIT; - std::vector device_address_layout_bindings = {model_information_binding, scene_uniform_binding, device_address_binding}; - create_descriptors(device_address_layout_bindings, device_address_descriptor_set_layout, device_address_pipeline_layout); - } - */ - - VkPipelineInputAssemblyStateCreateInfo input_assembly_state = vkb::initializers::pipeline_input_assembly_state_create_info(VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST, 0, VK_FALSE); - - VkPipelineRasterizationStateCreateInfo rasterization_state = vkb::initializers::pipeline_rasterization_state_create_info(VK_POLYGON_MODE_FILL, VK_CULL_MODE_BACK_BIT, VK_FRONT_FACE_COUNTER_CLOCKWISE, 0); - - VkPipelineColorBlendAttachmentState blend_attachment_state = vkb::initializers::pipeline_color_blend_attachment_state(0xf, VK_FALSE); - - VkPipelineColorBlendStateCreateInfo color_blend_state = vkb::initializers::pipeline_color_blend_state_create_info(1, &blend_attachment_state); - - VkPipelineDepthStencilStateCreateInfo depth_stencil_state = vkb::initializers::pipeline_depth_stencil_state_create_info(VK_TRUE, VK_TRUE, VK_COMPARE_OP_LESS); - depth_stencil_state.depthBoundsTestEnable = VK_FALSE; - depth_stencil_state.minDepthBounds = 0.f; - depth_stencil_state.maxDepthBounds = 1.f; - - VkPipelineViewportStateCreateInfo viewport_state = vkb::initializers::pipeline_viewport_state_create_info(1, 1, 0); - - std::vector dynamic_state_enables = { - VK_DYNAMIC_STATE_VIEWPORT, - VK_DYNAMIC_STATE_SCISSOR}; - VkPipelineDynamicStateCreateInfo dynamic_state = - vkb::initializers::pipeline_dynamic_state_create_info( - dynamic_state_enables.data(), - static_cast(dynamic_state_enables.size()), - 0); - - VkPipelineMultisampleStateCreateInfo multisample_state = vkb::initializers::pipeline_multisample_state_create_info(VK_SAMPLE_COUNT_1_BIT, 0); - - // Vertex bindings and attributes - const std::vector vertex_input_bindings = { - vkb::initializers::vertex_input_binding_description(0, sizeof(Vertex), VK_VERTEX_INPUT_RATE_VERTEX), - vkb::initializers::vertex_input_binding_description(1, sizeof(GpuModelInformation), VK_VERTEX_INPUT_RATE_INSTANCE), - }; - const std::vector vertex_input_attributes = { - vkb::initializers::vertex_input_attribute_description(0, 0, VK_FORMAT_R32G32B32_SFLOAT, offsetof(Vertex, pt)), - vkb::initializers::vertex_input_attribute_description(0, 1, VK_FORMAT_R32G32_SFLOAT, offsetof(Vertex, uv)), - //vkb::initializers::vertex_input_attribute_description(1, 2, VK_FORMAT_R32G32B32_SFLOAT, offsetof(GpuModelInformation, bounding_sphere_center)), - //vkb::initializers::vertex_input_attribute_description(1, 3, VK_FORMAT_R32_SFLOAT, offsetof(GpuModelInformation, bounding_sphere_radius)), - vkb::initializers::vertex_input_attribute_description(1, 4, VK_FORMAT_R32_UINT, offsetof(GpuModelInformation, texture_index)), - }; - VkPipelineVertexInputStateCreateInfo vertex_input_state = vkb::initializers::pipeline_vertex_input_state_create_info(); - vertex_input_state.vertexBindingDescriptionCount = static_cast(vertex_input_bindings.size()); - vertex_input_state.pVertexBindingDescriptions = vertex_input_bindings.data(); - vertex_input_state.vertexAttributeDescriptionCount = static_cast(vertex_input_attributes.size()); - vertex_input_state.pVertexAttributeDescriptions = vertex_input_attributes.data(); - - VkGraphicsPipelineCreateInfo pipeline_create_info = vkb::initializers::pipeline_create_info(pipeline_layout, render_pass, 0); - pipeline_create_info.pVertexInputState = &vertex_input_state; - pipeline_create_info.pInputAssemblyState = &input_assembly_state; - pipeline_create_info.pRasterizationState = &rasterization_state; - pipeline_create_info.pColorBlendState = &color_blend_state; - pipeline_create_info.pMultisampleState = &multisample_state; - pipeline_create_info.pViewportState = &viewport_state; - pipeline_create_info.pDepthStencilState = &depth_stencil_state; - pipeline_create_info.pDynamicState = &dynamic_state; - - const std::array shader_stages = { - load_shader("multi_draw_indirect/multi_draw_indirect.vert", VK_SHADER_STAGE_VERTEX_BIT), - load_shader("multi_draw_indirect/multi_draw_indirect.frag", VK_SHADER_STAGE_FRAGMENT_BIT)}; - - pipeline_create_info.stageCount = static_cast(shader_stages.size()); - pipeline_create_info.pStages = shader_stages.data(); - - VK_CHECK(vkCreateGraphicsPipelines(get_device().get_handle(), pipeline_cache, 1, &pipeline_create_info, nullptr, &pipeline)); -} - -void DynamicState3MultisampleRasterization::initialize_descriptors() -{ - enum class Target - { - RenderPipeline, - ComputePipeline, - AddressPipeline - }; - - auto bind = [this](VkDescriptorSet &_descriptor_set, VkDescriptorSetLayout &_descriptor_set_layout, Target target) { - VkDescriptorSetAllocateInfo descriptor_set_allocate_info = vkb::initializers::descriptor_set_allocate_info(descriptor_pool, &_descriptor_set_layout, 1); - VK_CHECK(vkAllocateDescriptorSets(get_device().get_handle(), &descriptor_set_allocate_info, &_descriptor_set)); - - VkDescriptorBufferInfo model_buffer_descriptor = create_descriptor(*model_information_buffer); - VkWriteDescriptorSet model_write = vkb::initializers::write_descriptor_set(_descriptor_set, VK_DESCRIPTOR_TYPE_STORAGE_BUFFER, 0, &model_buffer_descriptor, 1); - - VkWriteDescriptorSet texture_array_write = vkb::initializers::write_descriptor_set(_descriptor_set, VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, 1, image_descriptors.data(), image_descriptors.size()); - - VkDescriptorBufferInfo scene_descriptor = create_descriptor(*scene_uniform_buffer); - VkWriteDescriptorSet scene_write = vkb::initializers::write_descriptor_set(_descriptor_set, VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER, 2, &scene_descriptor, 1); - - VkDescriptorBufferInfo draw_command_descriptor = create_descriptor(*indirect_call_buffer); - VkWriteDescriptorSet draw_command_write = vkb::initializers::write_descriptor_set(_descriptor_set, VK_DESCRIPTOR_TYPE_STORAGE_BUFFER, 3, &draw_command_descriptor, 1); - - VkDescriptorBufferInfo device_address_descriptor; - VkWriteDescriptorSet device_address_write; - /* - if (m_supports_buffer_device && device_address_buffer) - { - device_address_descriptor = create_descriptor(*device_address_buffer); - device_address_write = vkb::initializers::write_descriptor_set(_descriptor_set, VK_DESCRIPTOR_TYPE_STORAGE_BUFFER, 4, &device_address_descriptor, 1); - } - */ - - std::vector write_descriptor_sets; - switch (target) - { - case Target::RenderPipeline: - write_descriptor_sets = {model_write, texture_array_write, scene_write, draw_command_write}; - break; - case Target::ComputePipeline: - write_descriptor_sets = {model_write, scene_write, draw_command_write}; - break; - case Target::AddressPipeline: - write_descriptor_sets = {model_write, scene_write, device_address_write}; - break; - } - - vkUpdateDescriptorSets(get_device().get_handle(), static_cast(write_descriptor_sets.size()), write_descriptor_sets.data(), 0, VK_NULL_HANDLE); - }; - - // render pipeline - bind(descriptor_set, descriptor_set_layout, Target::RenderPipeline); - - /* - // compute pipeline - bind(gpu_cull_descriptor_set, gpu_cull_descriptor_set_layout, Target::ComputePipeline); - - // Device address pipeline - if (m_supports_buffer_device) - { - bind(device_address_descriptor_set, device_address_descriptor_set_layout, Target::AddressPipeline); - } - */ -} - -/* -void MultiDrawIndirect::create_compute_pipeline() -{ - auto create = [this](VkPipelineLayout &layout, VkPipeline &_pipeline, const char *filename) { - VkComputePipelineCreateInfo compute_create_info = vkb::initializers::compute_pipeline_create_info(layout, 0); - compute_create_info.stage = load_shader(filename, VK_SHADER_STAGE_COMPUTE_BIT); - - VK_CHECK(vkCreateComputePipelines(get_device().get_handle(), pipeline_cache, 1, &compute_create_info, nullptr, &_pipeline)); - }; - - create(gpu_cull_pipeline_layout, gpu_cull_pipeline, "multi_draw_indirect/cull.comp"); - - if (m_supports_buffer_device) - { - create(device_address_pipeline_layout, device_address_pipeline, "multi_draw_indirect/cull_address.comp"); - } -} -*/ - -/* -void DynamicState3MultisampleRasterization::prepare_pipelines() -{ - // Create a blank pipeline layout. - // We are not binding any resources to the pipeline in this sample. - VkPipelineLayoutCreateInfo layout_info = vkb::initializers::pipeline_layout_create_info(nullptr, 0); - VK_CHECK(vkCreatePipelineLayout(get_device().get_handle(), &layout_info, nullptr, &sample_pipeline_layout)); - - VkPipelineVertexInputStateCreateInfo vertex_input = vkb::initializers::pipeline_vertex_input_state_create_info(); - - // Specify we will use triangle lists to draw geometry. - VkPipelineInputAssemblyStateCreateInfo input_assembly = vkb::initializers::pipeline_input_assembly_state_create_info(VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST, 0, VK_FALSE); - - // Specify rasterization state. - VkPipelineRasterizationStateCreateInfo raster = vkb::initializers::pipeline_rasterization_state_create_info(VK_POLYGON_MODE_FILL, VK_CULL_MODE_BACK_BIT, VK_FRONT_FACE_CLOCKWISE); - - // Our attachment will write to all color channels, but no blending is enabled. - VkPipelineColorBlendAttachmentState blend_attachment = vkb::initializers::pipeline_color_blend_attachment_state(VK_COLOR_COMPONENT_R_BIT | VK_COLOR_COMPONENT_G_BIT | VK_COLOR_COMPONENT_B_BIT | VK_COLOR_COMPONENT_A_BIT, VK_FALSE); - - VkPipelineColorBlendStateCreateInfo blend = vkb::initializers::pipeline_color_blend_state_create_info(1, &blend_attachment); - - // We will have one viewport and scissor box. - VkPipelineViewportStateCreateInfo viewport = vkb::initializers::pipeline_viewport_state_create_info(1, 1); - - // Enable depth testing (using reversed depth-buffer for increased precision). - VkPipelineDepthStencilStateCreateInfo depth_stencil = vkb::initializers::pipeline_depth_stencil_state_create_info(VK_TRUE, VK_TRUE, VK_COMPARE_OP_GREATER); - - // No multisampling. - VkPipelineMultisampleStateCreateInfo multisample = vkb::initializers::pipeline_multisample_state_create_info(VK_SAMPLE_COUNT_1_BIT); - - // Specify that these states will be dynamic, i.e. not part of pipeline state object. - std::array dynamics{VK_DYNAMIC_STATE_VIEWPORT, VK_DYNAMIC_STATE_SCISSOR}; - VkPipelineDynamicStateCreateInfo dynamic = vkb::initializers::pipeline_dynamic_state_create_info(dynamics.data(), vkb::to_u32(dynamics.size())); - - // Load our SPIR-V shaders. - std::array shader_stages{}; - - // Vertex stage of the pipeline - shader_stages[0] = load_shader("triangle.vert", VK_SHADER_STAGE_VERTEX_BIT); - shader_stages[1] = load_shader("triangle.frag", VK_SHADER_STAGE_FRAGMENT_BIT); - - // We need to specify the pipeline layout and the render pass description up front as well. - VkGraphicsPipelineCreateInfo pipeline_create_info = vkb::initializers::pipeline_create_info(sample_pipeline_layout, render_pass); - pipeline_create_info.stageCount = vkb::to_u32(shader_stages.size()); - pipeline_create_info.pStages = shader_stages.data(); - pipeline_create_info.pVertexInputState = &vertex_input; - pipeline_create_info.pInputAssemblyState = &input_assembly; - pipeline_create_info.pRasterizationState = &raster; - pipeline_create_info.pColorBlendState = &blend; - pipeline_create_info.pMultisampleState = &multisample; - pipeline_create_info.pViewportState = &viewport; - pipeline_create_info.pDepthStencilState = &depth_stencil; - pipeline_create_info.pDynamicState = &dynamic; - - VK_CHECK(vkCreateGraphicsPipelines(get_device().get_handle(), pipeline_cache, 1, &pipeline_create_info, nullptr, &sample_pipeline)); -} - - -void DynamicState3MultisampleRasterization::build_command_buffers() -{ - VkCommandBufferBeginInfo command_buffer_begin_info = vkb::initializers::command_buffer_begin_info(); - - // Clear color and depth values. - VkClearValue clear_values[2]; - clear_values[0].color = {{0.0f, 0.0f, 0.0f, 0.0f}}; - clear_values[1].depthStencil = {0.0f, 0}; - - // Begin the render pass. - VkRenderPassBeginInfo render_pass_begin_info = vkb::initializers::render_pass_begin_info(); - render_pass_begin_info.renderPass = render_pass; - render_pass_begin_info.renderArea.offset.x = 0; - render_pass_begin_info.renderArea.offset.y = 0; - render_pass_begin_info.renderArea.extent.width = width; - render_pass_begin_info.renderArea.extent.height = height; - render_pass_begin_info.clearValueCount = 2; - render_pass_begin_info.pClearValues = clear_values; - - for (int32_t i = 0; i < draw_cmd_buffers.size(); ++i) - { - auto cmd = draw_cmd_buffers[i]; - - // Begin command buffer. - vkBeginCommandBuffer(cmd, &command_buffer_begin_info); - - // Set framebuffer for this command buffer. - render_pass_begin_info.framebuffer = framebuffers[i]; - // We will add draw commands in the same command buffer. - vkCmdBeginRenderPass(cmd, &render_pass_begin_info, VK_SUBPASS_CONTENTS_INLINE); - - // Bind the graphics pipeline. - vkCmdBindPipeline(cmd, VK_PIPELINE_BIND_POINT_GRAPHICS, sample_pipeline); - - // Set viewport dynamically - VkViewport viewport = vkb::initializers::viewport(static_cast(width), static_cast(height), 0.0f, 1.0f); - vkCmdSetViewport(cmd, 0, 1, &viewport); - - // Set scissor dynamically - VkRect2D scissor = vkb::initializers::rect2D(width, height, 0, 0); - vkCmdSetScissor(cmd, 0, 1, &scissor); - - // Draw three vertices with one instance. - vkCmdDraw(cmd, 3, 1, 0, 0); - - // Draw user interface. - draw_ui(draw_cmd_buffers[i]); - - // Complete render pass. - vkCmdEndRenderPass(cmd); - - // Complete the command buffer. - VK_CHECK(vkEndCommandBuffer(cmd)); - } -} -*/ - -void DynamicState3MultisampleRasterization::build_command_buffers() -{ - VkCommandBufferBeginInfo command_buffer_begin_info = vkb::initializers::command_buffer_begin_info(); - - VkClearValue clear_values[2]; - clear_values[0].color = default_clear_color; - clear_values[1].depthStencil = {1.0f, 0}; - - VkRenderPassBeginInfo render_pass_begin_info = vkb::initializers::render_pass_begin_info(); - render_pass_begin_info.renderPass = render_pass; - render_pass_begin_info.renderArea.offset.x = 0; - render_pass_begin_info.renderArea.offset.y = 0; - render_pass_begin_info.renderArea.extent.width = width; - render_pass_begin_info.renderArea.extent.height = height; - render_pass_begin_info.clearValueCount = 2; - render_pass_begin_info.pClearValues = clear_values; - - for (size_t i = 0; i < draw_cmd_buffers.size(); ++i) - { - render_pass_begin_info.framebuffer = framebuffers[i]; - - VK_CHECK(vkBeginCommandBuffer(draw_cmd_buffers[i], &command_buffer_begin_info)); - - vkCmdBeginRenderPass(draw_cmd_buffers[i], &render_pass_begin_info, VK_SUBPASS_CONTENTS_INLINE); - - VkViewport viewport = vkb::initializers::viewport(static_cast(width), static_cast(height), 0.0f, 1.0f); - vkCmdSetViewport(draw_cmd_buffers[i], 0, 1, &viewport); - - VkRect2D scissor = vkb::initializers::rect2D(static_cast(width), static_cast(height), 0, 0); - vkCmdSetScissor(draw_cmd_buffers[i], 0, 1, &scissor); - - vkCmdBindPipeline(draw_cmd_buffers[i], VK_PIPELINE_BIND_POINT_GRAPHICS, pipeline); - vkCmdBindDescriptorSets(draw_cmd_buffers[i], VK_PIPELINE_BIND_POINT_GRAPHICS, pipeline_layout, 0, 1, &descriptor_set, 0, nullptr); - VkDeviceSize offsets[1] = {0}; - - vkCmdBindIndexBuffer(draw_cmd_buffers[i], index_buffer->get_handle(), 0, VK_INDEX_TYPE_UINT16); - vkCmdBindVertexBuffers(draw_cmd_buffers[i], 0, 1, vertex_buffer->get(), offsets); - vkCmdBindVertexBuffers(draw_cmd_buffers[i], 1, 1, model_information_buffer->get(), offsets); - /* - if (m_enable_mdi && m_supports_mdi) - { - vkCmdDrawIndexedIndirect(draw_cmd_buffers[i], indirect_call_buffer->get_handle(), 0, cpu_commands.size(), sizeof(cpu_commands[0])); - } - else - */ - { - for (size_t j = 0; j < cpu_commands.size(); ++j) - { - vkCmdDrawIndexedIndirect(draw_cmd_buffers[i], indirect_call_buffer->get_handle(), j * sizeof(cpu_commands[0]), 1, sizeof(cpu_commands[0])); - } - } - - //draw_ui(draw_cmd_buffers[i]); - - vkCmdEndRenderPass(draw_cmd_buffers[i]); - - VK_CHECK(vkEndCommandBuffer(draw_cmd_buffers[i])); - } -} - -void DynamicState3MultisampleRasterization::create_sampler() -{ - VkSamplerCreateInfo sampler_info = vkb::initializers::sampler_create_info(); - sampler_info.magFilter = VK_FILTER_LINEAR; - sampler_info.minFilter = VK_FILTER_LINEAR; - sampler_info.mipmapMode = VK_SAMPLER_MIPMAP_MODE_LINEAR; - sampler_info.addressModeU = VK_SAMPLER_ADDRESS_MODE_REPEAT; - sampler_info.addressModeV = VK_SAMPLER_ADDRESS_MODE_REPEAT; - sampler_info.addressModeW = VK_SAMPLER_ADDRESS_MODE_REPEAT; - sampler_info.mipLodBias = 0.0f; - sampler_info.maxAnisotropy = 1.0f; - sampler_info.minLod = 0.0f; - sampler_info.maxLod = 1.0f; - sampler_info.borderColor = VK_BORDER_COLOR_FLOAT_OPAQUE_WHITE; - VK_CHECK(vkCreateSampler(get_device().get_handle(), &sampler_info, nullptr, &sampler)); -} - -static float z = -500.0; - -void DynamicState3MultisampleRasterization::render(float delta_time) -{ - draw(); - - z += 0.01; - camera.set_translation(glm::vec3(0.0, 5, z)); - - update_scene_uniform(); - /* - if (!prepared) - { - return; - } - ApiVulkanSample::prepare_frame(); - submit_info.commandBufferCount = 1; - submit_info.pCommandBuffers = &draw_cmd_buffers[current_buffer]; - VK_CHECK(vkQueueSubmit(queue, 1, &submit_info, VK_NULL_HANDLE)); - ApiVulkanSample::submit_frame(); - */ -} - - -std::unique_ptr create_dynamic_state3_multisample_rasterization() -{ - return std::make_unique(); -} +/* Copyright (c) 2023, Arm Limited and Contributors + * + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed under the Apache License, Version 2.0 the "License"; + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include "dynamic_state3_multisample_rasterization.h" + +#include "gltf_loader.h" +#include "scene_graph/components/mesh.h" +#include "scene_graph/components/pbr_material.h" +#include "scene_graph/components/sub_mesh.h" + +DynamicState3MultisampleRasterization::DynamicState3MultisampleRasterization() +{ + title = "DynamicState3 Multisample Rasterization"; +} + +DynamicState3MultisampleRasterization::~DynamicState3MultisampleRasterization() +{ + if (device) + { + vkDestroyPipeline(get_device().get_handle(), pipeline, nullptr); + vkDestroyPipelineLayout(get_device().get_handle(), pipeline_layout, nullptr); + vkDestroyDescriptorSetLayout(get_device().get_handle(), descriptor_set_layout, nullptr); + } +} + +bool DynamicState3MultisampleRasterization::prepare(const vkb::ApplicationOptions &options) +{ + if (!ApiVulkanSample::prepare(options)) + { + return false; + } + + camera.type = vkb::CameraType::LookAt; + camera.set_position(glm::vec3(1.9f, 2.05f, -18.0f)); + camera.set_rotation(glm::vec3(-11.25f, -38.0f, 0.0f)); + + // Note: Using reversed depth-buffer for increased precision, so Znear and Zfar are flipped + camera.set_perspective(60.0f, static_cast(width) / static_cast(height), 256.0f, 0.1f); + load_assets(); + prepare_uniform_buffers(); + setup_descriptor_set_layout(); + prepare_pipelines(); + setup_descriptor_pool(); + setup_descriptor_sets(); + build_command_buffers(); + + prepare_pipelines(); + prepared = true; + return true; +} + +void DynamicState3MultisampleRasterization::build_command_buffers() +{ + VkCommandBufferBeginInfo command_buffer_begin_info = vkb::initializers::command_buffer_begin_info(); + + VkClearValue clear_values[2]; + clear_values[0].color = {{0.0f, 0.0f, 0.0f, 0.0f}}; + clear_values[1].depthStencil = {0.0f, 0}; + + VkRenderPassBeginInfo render_pass_begin_info = vkb::initializers::render_pass_begin_info(); + render_pass_begin_info.renderPass = render_pass; + render_pass_begin_info.renderArea.extent.width = width; + render_pass_begin_info.renderArea.extent.height = height; + render_pass_begin_info.clearValueCount = 2; + render_pass_begin_info.pClearValues = clear_values; + + for (int32_t i = 0; i < draw_cmd_buffers.size(); ++i) + { + VK_CHECK(vkBeginCommandBuffer(draw_cmd_buffers[i], &command_buffer_begin_info)); + + render_pass_begin_info.framebuffer = framebuffers[i]; + + vkCmdBeginRenderPass(draw_cmd_buffers[i], &render_pass_begin_info, VK_SUBPASS_CONTENTS_INLINE); + + VkViewport viewport = vkb::initializers::viewport(static_cast(width), static_cast(height), 0.0f, 1.0f); + vkCmdSetViewport(draw_cmd_buffers[i], 0, 1, &viewport); + + VkRect2D scissor = vkb::initializers::rect2D(width, height, 0, 0); + vkCmdSetScissor(draw_cmd_buffers[i], 0, 1, &scissor); + + vkCmdBindPipeline(draw_cmd_buffers[i], VK_PIPELINE_BIND_POINT_GRAPHICS, pipeline); + vkCmdBindDescriptorSets(draw_cmd_buffers[i], VK_PIPELINE_BIND_POINT_GRAPHICS, pipeline_layout, 0, 1, &descriptor_set, 0, nullptr); + + for (auto &node : scene_nodes) + { + const auto &vertex_buffer_pos = node.sub_mesh->vertex_buffers.at("position"); + const auto &vertex_buffer_normal = node.sub_mesh->vertex_buffers.at("normal"); + const auto & vertex_buffer_uv = node.sub_mesh->vertex_buffers.at("texcoord_0"); + auto &index_buffer = node.sub_mesh->index_buffer; + + // Pass data for the current node via push commands + auto node_material = dynamic_cast(node.sub_mesh->get_material()); + push_const_block.model_matrix = node.node->get_transform().get_world_matrix(); + + push_const_block.base_color_factor = node_material->base_color_factor; + push_const_block.metallic_factor = node_material->metallic_factor; + push_const_block.roughness_factor = node_material->roughness_factor; + push_const_block.normal_texture_index = -1; + push_const_block.pbr_texture_index = -1; + + auto base_color_texture = node_material->textures.find("base_color_texture"); + + if (base_color_texture != node_material->textures.end()) + { + auto base_color_texture_name = base_color_texture->second->get_name(); + push_const_block.base_texture_index = name_to_texture_id.at(base_color_texture_name); + } + + auto normal_texture = node_material->textures.find("normal_texture"); + + if (normal_texture != node_material->textures.end()) + { + auto normal_texture_name = normal_texture->second->get_name(); + push_const_block.normal_texture_index = name_to_texture_id.at(normal_texture_name); + } + + auto metallic_roughness_texture = node_material->textures.find("metallic_roughness_texture"); + + if (metallic_roughness_texture != node_material->textures.end()) + { + auto metallic_roughness_texture_name = metallic_roughness_texture->second->get_name(); + push_const_block.pbr_texture_index = name_to_texture_id.at(metallic_roughness_texture_name); + } + + vkCmdPushConstants(draw_cmd_buffers[i], pipeline_layout, VK_SHADER_STAGE_VERTEX_BIT, 0, sizeof(push_const_block), &push_const_block); + + VkDeviceSize offsets[1] = {0}; + vkCmdBindVertexBuffers(draw_cmd_buffers[i], 0, 1, vertex_buffer_pos.get(), offsets); + vkCmdBindVertexBuffers(draw_cmd_buffers[i], 1, 1, vertex_buffer_normal.get(), offsets); + vkCmdBindVertexBuffers(draw_cmd_buffers[i], 2, 1, vertex_buffer_uv.get(), offsets); + vkCmdBindIndexBuffer(draw_cmd_buffers[i], index_buffer->get_handle(), 0, node.sub_mesh->index_type); + + vkCmdDraw(draw_cmd_buffers[i], node.sub_mesh->vertex_indices, 1, 0, 0); + } + + draw_ui(draw_cmd_buffers[i]); + + vkCmdEndRenderPass(draw_cmd_buffers[i]); + + VK_CHECK(vkEndCommandBuffer(draw_cmd_buffers[i])); + } +} + +void DynamicState3MultisampleRasterization::load_assets() +{ + vkb::GLTFLoader loader{get_device()}; + scene = loader.read_scene_from_file("scenes/space_module/SpaceModule.gltf"); + assert(scene); + // Store all scene nodes in a linear vector for easier access + for (auto &mesh : scene->get_components()) + { + for (auto &node : mesh->get_nodes()) + { + for (auto &sub_mesh : mesh->get_submeshes()) + { + scene_nodes.push_back({mesh->get_name(), node, sub_mesh}); + } + } + } + + auto textures = scene->get_components(); + + for (auto texture : textures) + { + const auto &name = texture->get_name(); + auto image = texture->get_image(); + VkDescriptorImageInfo imageInfo; + imageInfo.imageLayout = VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL; + imageInfo.imageView = image->get_vk_image_view().get_handle(); + imageInfo.sampler = texture->get_sampler()->vk_sampler.get_handle(); + + image_infos.push_back(imageInfo); + name_to_texture_id.emplace(name, image_infos.size() - 1); + } +} + +void DynamicState3MultisampleRasterization::setup_descriptor_pool() +{ + std::vector pool_sizes = { + vkb::initializers::descriptor_pool_size(VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER, 4), + vkb::initializers::descriptor_pool_size(VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, static_cast(image_infos.size())) + }; + + VkDescriptorPoolCreateInfo descriptor_pool_create_info = + vkb::initializers::descriptor_pool_create_info(static_cast(pool_sizes.size()), pool_sizes.data(), 2); + VK_CHECK(vkCreateDescriptorPool(get_device().get_handle(), &descriptor_pool_create_info, nullptr, &descriptor_pool)); +} + +void DynamicState3MultisampleRasterization::setup_descriptor_set_layout() +{ + std::vector set_layout_bindings = { + vkb::initializers::descriptor_set_layout_binding(VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER, VK_SHADER_STAGE_VERTEX_BIT, 0), + vkb::initializers::descriptor_set_layout_binding(VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, VK_SHADER_STAGE_FRAGMENT_BIT, 1, static_cast(image_infos.size())), + }; + + VkDescriptorSetLayoutCreateInfo descriptor_layout_create_info = + vkb::initializers::descriptor_set_layout_create_info(set_layout_bindings.data(), static_cast(set_layout_bindings.size())); + + VK_CHECK(vkCreateDescriptorSetLayout(get_device().get_handle(), &descriptor_layout_create_info, nullptr, &descriptor_set_layout)); + + VkPipelineLayoutCreateInfo pipeline_layout_create_info = + vkb::initializers::pipeline_layout_create_info( + &descriptor_set_layout, + 1); + + // Pass scene node information via push constants + VkPushConstantRange push_constant_range = vkb::initializers::push_constant_range(VK_SHADER_STAGE_VERTEX_BIT, sizeof(push_const_block), 0); + pipeline_layout_create_info.pushConstantRangeCount = 1; + pipeline_layout_create_info.pPushConstantRanges = &push_constant_range; + + VK_CHECK(vkCreatePipelineLayout(get_device().get_handle(), &pipeline_layout_create_info, nullptr, &pipeline_layout)); +} + +void DynamicState3MultisampleRasterization::setup_descriptor_sets() +{ + VkDescriptorSetAllocateInfo alloc_info = + vkb::initializers::descriptor_set_allocate_info( + descriptor_pool, + &descriptor_set_layout, + 1); + + VK_CHECK(vkAllocateDescriptorSets(get_device().get_handle(), &alloc_info, &descriptor_set)); + + VkDescriptorBufferInfo matrix_buffer_descriptor = create_descriptor(*uniform_buffer); + + std::vector write_descriptor_sets = { + vkb::initializers::write_descriptor_set(descriptor_set, VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER, 0, &matrix_buffer_descriptor), + vkb::initializers::write_descriptor_set(descriptor_set, VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, 1, image_infos.data(), image_infos.size()) + }; + vkUpdateDescriptorSets(get_device().get_handle(), static_cast(write_descriptor_sets.size()), write_descriptor_sets.data(), 0, nullptr); +} + +void DynamicState3MultisampleRasterization::prepare_pipelines() +{ + VkPipelineInputAssemblyStateCreateInfo input_assembly_state = + vkb::initializers::pipeline_input_assembly_state_create_info( + VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST, + 0, + VK_FALSE); + + VkPipelineRasterizationStateCreateInfo rasterization_state = + vkb::initializers::pipeline_rasterization_state_create_info( + VK_POLYGON_MODE_FILL, + VK_CULL_MODE_BACK_BIT, + VK_FRONT_FACE_COUNTER_CLOCKWISE, + 0); + + VkPipelineColorBlendAttachmentState blend_attachment_state = + vkb::initializers::pipeline_color_blend_attachment_state( + VK_COLOR_COMPONENT_R_BIT | + VK_COLOR_COMPONENT_G_BIT | + VK_COLOR_COMPONENT_B_BIT | + VK_COLOR_COMPONENT_A_BIT, + VK_TRUE); + + blend_attachment_state.colorBlendOp = VK_BLEND_OP_ADD; + blend_attachment_state.srcColorBlendFactor = VK_BLEND_FACTOR_SRC_ALPHA; + blend_attachment_state.dstColorBlendFactor = VK_BLEND_FACTOR_ONE_MINUS_SRC_ALPHA; + blend_attachment_state.alphaBlendOp = VK_BLEND_OP_ADD; + blend_attachment_state.srcAlphaBlendFactor = VK_BLEND_FACTOR_ONE_MINUS_SRC_ALPHA; + blend_attachment_state.dstAlphaBlendFactor = VK_BLEND_FACTOR_ZERO; + + VkPipelineColorBlendStateCreateInfo color_blend_state = + vkb::initializers::pipeline_color_blend_state_create_info( + 1, + &blend_attachment_state); + + // Note: Using reversed depth-buffer for increased precision, so Greater depth values are kept + VkPipelineDepthStencilStateCreateInfo depth_stencil_state = + vkb::initializers::pipeline_depth_stencil_state_create_info( + VK_TRUE, + VK_TRUE, + VK_COMPARE_OP_GREATER); + + VkPipelineViewportStateCreateInfo viewport_state = + vkb::initializers::pipeline_viewport_state_create_info(1, 1, 0); + + VkPipelineMultisampleStateCreateInfo multisample_state = + vkb::initializers::pipeline_multisample_state_create_info( + VK_SAMPLE_COUNT_1_BIT, + 0); + + std::vector dynamic_state_enables = { + VK_DYNAMIC_STATE_VIEWPORT, + VK_DYNAMIC_STATE_SCISSOR}; + VkPipelineDynamicStateCreateInfo dynamic_state = + vkb::initializers::pipeline_dynamic_state_create_info( + dynamic_state_enables.data(), + static_cast(dynamic_state_enables.size()), + 0); + + VkGraphicsPipelineCreateInfo pipeline_create_info = + vkb::initializers::pipeline_create_info( + pipeline_layout, + render_pass, + 0); + + std::vector blend_attachment_states = { + vkb::initializers::pipeline_color_blend_attachment_state(0xf, VK_FALSE)}; + + pipeline_create_info.pInputAssemblyState = &input_assembly_state; + pipeline_create_info.pRasterizationState = &rasterization_state; + pipeline_create_info.pColorBlendState = &color_blend_state; + pipeline_create_info.pMultisampleState = &multisample_state; + pipeline_create_info.pViewportState = &viewport_state; + pipeline_create_info.pDepthStencilState = &depth_stencil_state; + pipeline_create_info.pDynamicState = &dynamic_state; + pipeline_create_info.layout = pipeline_layout; + + std::array shader_stages; + pipeline_create_info.stageCount = static_cast(shader_stages.size()); + pipeline_create_info.pStages = shader_stages.data(); + + // Vertex bindings an attributes for model rendering + // Binding description, we use separate buffers for the vertex attributes + std::vector vertex_input_bindings = { + vkb::initializers::vertex_input_binding_description(0, sizeof(glm::vec3), VK_VERTEX_INPUT_RATE_VERTEX), + vkb::initializers::vertex_input_binding_description(1, sizeof(glm::vec3), VK_VERTEX_INPUT_RATE_VERTEX), + vkb::initializers::vertex_input_binding_description(2, sizeof(glm::vec2), VK_VERTEX_INPUT_RATE_VERTEX), + }; + + // Attribute descriptions + std::vector vertex_input_attributes = { + vkb::initializers::vertex_input_attribute_description(0, 0, VK_FORMAT_R32G32B32_SFLOAT, 0), // Position + vkb::initializers::vertex_input_attribute_description(1, 1, VK_FORMAT_R32G32B32_SFLOAT, 0), // Normal + vkb::initializers::vertex_input_attribute_description(2, 2, VK_FORMAT_R32G32B32_SFLOAT, 0), // TexCoord + }; + + VkPipelineVertexInputStateCreateInfo vertex_input_state = vkb::initializers::pipeline_vertex_input_state_create_info(); + vertex_input_state.vertexBindingDescriptionCount = static_cast(vertex_input_bindings.size()); + vertex_input_state.pVertexBindingDescriptions = vertex_input_bindings.data(); + vertex_input_state.vertexAttributeDescriptionCount = static_cast(vertex_input_attributes.size()); + vertex_input_state.pVertexAttributeDescriptions = vertex_input_attributes.data(); + + pipeline_create_info.pVertexInputState = &vertex_input_state; + + shader_stages[0] = load_shader("dynamic_state3_multisample_rasterization/model.vert", VK_SHADER_STAGE_VERTEX_BIT); + shader_stages[1] = load_shader("dynamic_state3_multisample_rasterization/model.frag", VK_SHADER_STAGE_FRAGMENT_BIT); + VK_CHECK(vkCreateGraphicsPipelines(get_device().get_handle(), pipeline_cache, 1, &pipeline_create_info, nullptr, &pipeline)); +} + +// Prepare and initialize uniform buffer containing shader uniforms +void DynamicState3MultisampleRasterization::prepare_uniform_buffers() +{ + // Matrices vertex shader uniform buffer + uniform_buffer = std::make_unique(get_device(), + sizeof(uniform_data), + VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT, + VMA_MEMORY_USAGE_CPU_TO_GPU); + + update_uniform_buffers(); +} + +void DynamicState3MultisampleRasterization::update_uniform_buffers() +{ + uniform_data.projection = camera.matrices.perspective; + // Scale the view matrix as the model is pretty large, and also flip it upside down + uniform_data.view = glm::scale(camera.matrices.view, glm::vec3(0.1f, -0.1f, 0.1f)); + uniform_buffer->convert_and_update(uniform_data); +} + +void DynamicState3MultisampleRasterization::draw() +{ + ApiVulkanSample::prepare_frame(); + submit_info.commandBufferCount = 1; + submit_info.pCommandBuffers = &draw_cmd_buffers[current_buffer]; + VK_CHECK(vkQueueSubmit(queue, 1, &submit_info, VK_NULL_HANDLE)); + ApiVulkanSample::submit_frame(); +} + +void DynamicState3MultisampleRasterization::render(float delta_time) +{ + if (!prepared) + { + return; + } + draw(); + if (camera.updated) + { + update_uniform_buffers(); + } +} + +std::unique_ptr create_dynamic_state3_multisample_rasterization() +{ + return std::make_unique(); +} diff --git a/samples/extensions/dynamic_state3_multisample_rasterization/dynamic_state3_multisample_rasterization.h b/samples/extensions/dynamic_state3_multisample_rasterization/dynamic_state3_multisample_rasterization.h index 1ae44fe3b..08a8f1258 100644 --- a/samples/extensions/dynamic_state3_multisample_rasterization/dynamic_state3_multisample_rasterization.h +++ b/samples/extensions/dynamic_state3_multisample_rasterization/dynamic_state3_multisample_rasterization.h @@ -18,9 +18,6 @@ #pragma once #include "api_vulkan_sample.h" -#include "rendering/postprocessing_pipeline.h" -#include "rendering/render_pipeline.h" -#include "scene_graph/components/perspective_camera.h" class DynamicState3MultisampleRasterization : public ApiVulkanSample { @@ -28,288 +25,60 @@ class DynamicState3MultisampleRasterization : public ApiVulkanSample DynamicState3MultisampleRasterization(); virtual ~DynamicState3MultisampleRasterization(); - // Create pipeline - void prepare_pipelines(); +private: + std::unique_ptr vertex_buffer = nullptr; + std::unique_ptr index_buffer = nullptr; - // Override basic framework functionality - void build_command_buffers() override; - void render(float delta_time) override; - bool prepare(const vkb::ApplicationOptions &options) override; - //virtual void update(float delta_time) override; - //virtual void draw(vkb::CommandBuffer &command_buffer, vkb::RenderTarget &render_target) override; - void draw_gui() override; + std::unique_ptr scene; + std::vector image_infos; + std::map name_to_texture_id; - /** - * @brief Queries the Vulkan device to construct the list of supported - * depth resolve modes - */ - void prepare_depth_resolve_mode_list(); - - private: - // Sample specific data - VkPipeline sample_pipeline{}; - VkPipelineLayout sample_pipeline_layout{}; - - void load_scene(); - - virtual void prepare_render_context() override; - - std::unique_ptr create_render_target(vkb::core::Image &&swapchain_image); - - bool depth_writeback_resolve_supported{false}; - - //vkb::sg::PerspectiveCamera *camera{nullptr}; - - enum ColorResolve : int + struct SceneNode { - OnWriteback = 0, - SeparatePass = 1 + std::string name; + vkb::sg::Node *node; + vkb::sg::SubMesh *sub_mesh; }; + std::vector scene_nodes; - /** - * @brief Store the multisampled depth attachment, resolved to a single-sampled - * attachment if depth resolve on writeback is supported - * Update the load/store operations of the depth attachments - */ - void store_multisampled_depth(std::unique_ptr &subpass, std::vector &load_store); - - /** - * @brief Disables depth writeback resolve and updates the load/store operations of - * the depth resolve attachment - */ - void disable_depth_writeback_resolve(std::unique_ptr &subpass, std::vector &load_store); - - /** - * @brief Scene pipeline - * Render and light the scene (optionally using MSAA) - */ - std::unique_ptr scene_pipeline{}; - - /** - * @brief Postprocessing pipeline - * Read in the output color and depth attachments from the - * scene subpass and use them to apply a screen-based effect - */ - std::unique_ptr postprocessing_pipeline{}; - - /** - * @brief Update MSAA options and accordingly set the load/store - * attachment operations for the renderpasses - * This will trigger a swapchain recreation - */ - void update_pipelines(); - - /** - * @brief Update pipelines given that there will be a single - * renderpass for rendering the scene and GUI only - */ - void update_for_scene_only(bool msaa_enabled); - - /** - * @brief Update pipelines given that there will be two renderpasses - * The first renderpass will draw the scene and save the output - * color and depth attachments which will be read in by - * a postprocessing renderpass - */ - void update_for_scene_and_postprocessing(bool msaa_enabled); - - /** - * @brief If true the postprocessing renderpass is enabled - */ - bool run_postprocessing{false}; - - /** - * @brief Submits a postprocessing renderpass which binds full screen color - * and depth attachments and uses them to apply a screen-based effect - * It also draws the GUI - */ - void postprocessing(vkb::CommandBuffer &command_buffer, vkb::RenderTarget &render_target, - VkImageLayout &swapchain_layout, bool msaa_enabled); - - /** - * @brief Enables MSAA if set to more than 1 sample per pixel - * (e.g. sample count 4 enables 4X MSAA) - */ - VkSampleCountFlagBits sample_count{VK_SAMPLE_COUNT_1_BIT}; - - /** - * @brief List of MSAA levels supported by the platform - */ - std::vector supported_sample_count_list{}; - - /** - * @brief Queries the Vulkan device to construct the list of supported - * sample counts - */ - void prepare_supported_sample_count_list(); - - /** - * @brief Selects how to resolve the color attachment, either on writeback - * (efficient) or in a separate pass (inefficient) - */ - int color_resolve_method{ColorResolve::OnWriteback}; - - /** - * @brief Sets the multisampled color attachment as the output attachment - * and configures the resolve operation to resolve_attachment - * as well as the load/store operations of color attachments - * Note that MSAA will not have any effect in the postprocessing - * renderpass since it only renders a texture on single full-screen - * triangle and MSAA only works on primitive edges - */ - void use_multisampled_color(std::unique_ptr &subpass, std::vector &load_store, uint32_t resolve_attachment); - - /** - * @brief Sets the single-sampled output_attachment as the output attachment, - * disables color resolve and updates the load/store operations of - * color attachments - */ - void use_singlesampled_color(std::unique_ptr &subpass, std::vector &load_store, uint32_t output_attachment); - - /** - * @brief Submits a transfer operation to resolve the multisampled color attachment - * to the given single-sampled resolve attachment - * color_layout is an in-out parameter that holds the last known layout - * of the resolve attachment, and may be used for any further transitions - */ - void resolve_color_separate_pass(vkb::CommandBuffer &command_buffer, const std::vector &views, - uint32_t color_destination, VkImageLayout &color_layout); - - /** - * @brief List of depth resolve modes supported by the platform - */ - std::vector supported_depth_resolve_mode_list{}; - - /** - * @brief Selects the depth resolve mode (e.g. min or max sample values) - */ - VkResolveModeFlagBits depth_resolve_mode{VK_RESOLVE_MODE_NONE}; - - /** - * @brief If true, enable writeback depth resolve - * If false the multisampled depth attachment will be stored - * (only if postprocessing is enabled since the attachment is - * otherwise unused) - */ - bool resolve_depth_on_writeback{true}; - - /** - * @brief If true, the platform supports the VK_KHR_depth_stencil_resolve extension - * and therefore can resolve the depth attachment on writeback - */ - - /* Helpers for managing attachments */ - - uint32_t i_swapchain{0}; - - uint32_t i_depth{0}; - - uint32_t i_color_ms{0}; - - uint32_t i_color_resolve{0}; - - uint32_t i_depth_resolve{0}; - - std::vector color_atts{}; - - std::vector depth_atts{}; - - std::vector scene_load_store{}; - - /* Helpers for managing GUI input */ - - bool gui_run_postprocessing{false}; - - bool last_gui_run_postprocessing{false}; - - VkSampleCountFlagBits gui_sample_count{VK_SAMPLE_COUNT_1_BIT}; - - VkSampleCountFlagBits last_gui_sample_count{VK_SAMPLE_COUNT_1_BIT}; - - int gui_color_resolve_method{ColorResolve::OnWriteback}; - - int last_gui_color_resolve_method{ColorResolve::OnWriteback}; - - bool gui_resolve_depth_on_writeback{true}; - - bool last_gui_resolve_depth_on_writeback{true}; - - VkResolveModeFlagBits gui_depth_resolve_mode{VK_RESOLVE_MODE_NONE}; - - VkResolveModeFlagBits last_gui_depth_resolve_mode{VK_RESOLVE_MODE_NONE}; - - struct Vertex - { - glm::vec3 pt; - glm::vec2 uv; - }; - - struct SceneModel - { - std::vector vertices; - std::vector> triangles; - size_t vertex_buffer_offset = 0; - size_t index_buffer_offset = 0; - size_t texture_index = 0; - //BoundingSphere bounding_sphere; - }; - - std::vector models; - - struct Texture - { - std::unique_ptr image; - std::unique_ptr image_view; - uint32_t n_mip_maps; - }; - - struct GpuModelInformation - { - //glm::vec3 bounding_sphere_center; - //float bounding_sphere_radius; - uint32_t texture_index = 0; - uint32_t firstIndex = 0; - uint32_t indexCount = 0; - uint32_t _pad = 0; - }; - - struct SceneUniform + struct UniformData { + glm::mat4 projection; glm::mat4 view; - glm::mat4 proj; - glm::mat4 proj_view; - uint32_t model_count; - } scene_uniform; - - vkb::Camera camera; - - std::vector textures; - std::vector queue_families; - std::vector image_descriptors; + } uniform_data; + std::unique_ptr uniform_buffer; - std::unique_ptr vertex_buffer; - std::unique_ptr index_buffer; - std::unique_ptr model_information_buffer; - std::unique_ptr scene_uniform_buffer; + VkPipeline pipeline; + VkPipelineLayout pipeline_layout; + VkDescriptorSet descriptor_set; + VkDescriptorSetLayout descriptor_set_layout; - std::unique_ptr cpu_staging_buffer; - std::unique_ptr indirect_call_buffer; - - VkPipeline pipeline{VK_NULL_HANDLE}; - VkPipelineLayout pipeline_layout{VK_NULL_HANDLE}; - VkDescriptorSetLayout descriptor_set_layout{VK_NULL_HANDLE}; - VkDescriptorSet descriptor_set{VK_NULL_HANDLE}; - VkDescriptorSetLayout gpu_cull_descriptor_set_layout{VK_NULL_HANDLE}; - - std::vector cpu_commands; - - VkSampler sampler{VK_NULL_HANDLE}; - void create_sampler(); - void initialize_resources(); - void initialize_descriptors(); - void update_scene_uniform(); - void cpu_cull(); - void draw(); + struct + { + glm::mat4 model_matrix; + + glm::vec4 base_color_factor; + float metallic_factor; + float roughness_factor; + + uint32_t base_texture_index; + uint32_t normal_texture_index; + uint32_t pbr_texture_index; + + } push_const_block; + +public: + void build_command_buffers() override; + void load_assets(); + void setup_descriptor_pool(); + void setup_descriptor_set_layout(); + void setup_descriptor_sets(); + void prepare_pipelines(); + void prepare_uniform_buffers(); + void update_uniform_buffers(); + void draw(); + bool prepare(const vkb::ApplicationOptions &options) override; + virtual void render(float delta_time) override; }; std::unique_ptr create_dynamic_state3_multisample_rasterization(); From 0175f6a8131d8802129bdcd97986c16bf9a69e92 Mon Sep 17 00:00:00 2001 From: pawel-jastrzebski-mobica Date: Tue, 14 Nov 2023 10:33:05 +0100 Subject: [PATCH 05/52] Fix copyrights. Signed-off-by: pawel-jastrzebski-mobica --- .../dynamic_state3_multisample_rasterization.cpp | 2 +- .../dynamic_state3_multisample_rasterization.h | 2 +- shaders/dynamic_state3_multisample_rasterization/model.frag | 4 ++-- shaders/dynamic_state3_multisample_rasterization/model.vert | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/samples/extensions/dynamic_state3_multisample_rasterization/dynamic_state3_multisample_rasterization.cpp b/samples/extensions/dynamic_state3_multisample_rasterization/dynamic_state3_multisample_rasterization.cpp index 11221cf00..a8745bba8 100644 --- a/samples/extensions/dynamic_state3_multisample_rasterization/dynamic_state3_multisample_rasterization.cpp +++ b/samples/extensions/dynamic_state3_multisample_rasterization/dynamic_state3_multisample_rasterization.cpp @@ -1,4 +1,4 @@ -/* Copyright (c) 2023, Arm Limited and Contributors +/* Copyright (c) 2023, Mobica Limited * * SPDX-License-Identifier: Apache-2.0 * diff --git a/samples/extensions/dynamic_state3_multisample_rasterization/dynamic_state3_multisample_rasterization.h b/samples/extensions/dynamic_state3_multisample_rasterization/dynamic_state3_multisample_rasterization.h index 08a8f1258..8f535938e 100644 --- a/samples/extensions/dynamic_state3_multisample_rasterization/dynamic_state3_multisample_rasterization.h +++ b/samples/extensions/dynamic_state3_multisample_rasterization/dynamic_state3_multisample_rasterization.h @@ -1,4 +1,4 @@ -/* Copyright (c) 2023, Arm Limited and Contributors +/* Copyright (c) 2023, Mobica Limited * * SPDX-License-Identifier: Apache-2.0 * diff --git a/shaders/dynamic_state3_multisample_rasterization/model.frag b/shaders/dynamic_state3_multisample_rasterization/model.frag index 76f38042e..0224a3737 100644 --- a/shaders/dynamic_state3_multisample_rasterization/model.frag +++ b/shaders/dynamic_state3_multisample_rasterization/model.frag @@ -1,5 +1,5 @@ #version 450 -/* Copyright (c) 2022, Sascha Willems +/* Copyright (c) 2023, Mobica Limited * * SPDX-License-Identifier: Apache-2.0 * @@ -73,4 +73,4 @@ void main() vec4 base_color = getColor(); outFragColor = vec4((ambient/* + diffuse*/) * base_color.rgb + specular, base_color.a) /*+ vec4(inUV.x, inUV.y, 0.0, 1.0); 0.5 * vec4(texture(textures[uint(round(inBaseTextureIndex))], inUV))*/; -} \ No newline at end of file +} diff --git a/shaders/dynamic_state3_multisample_rasterization/model.vert b/shaders/dynamic_state3_multisample_rasterization/model.vert index 03ceba04b..8bb9fca79 100644 --- a/shaders/dynamic_state3_multisample_rasterization/model.vert +++ b/shaders/dynamic_state3_multisample_rasterization/model.vert @@ -1,5 +1,5 @@ #version 450 -/* Copyright (c) 2022, Sascha Willems +/* Copyright (c) 2023, Mobica Limited * * SPDX-License-Identifier: Apache-2.0 * From 0d06897f62d52ca0f696151ef2afa9970af40eb7 Mon Sep 17 00:00:00 2001 From: pawel-jastrzebski-mobica Date: Fri, 17 Nov 2023 13:12:03 +0100 Subject: [PATCH 06/52] First version of MSAA works. Signed-off-by: pawel-jastrzebski-mobica --- ...namic_state3_multisample_rasterization.cpp | 332 +++++++++++++++++- ...dynamic_state3_multisample_rasterization.h | 26 ++ 2 files changed, 353 insertions(+), 5 deletions(-) diff --git a/samples/extensions/dynamic_state3_multisample_rasterization/dynamic_state3_multisample_rasterization.cpp b/samples/extensions/dynamic_state3_multisample_rasterization/dynamic_state3_multisample_rasterization.cpp index a8745bba8..57bab2bf6 100644 --- a/samples/extensions/dynamic_state3_multisample_rasterization/dynamic_state3_multisample_rasterization.cpp +++ b/samples/extensions/dynamic_state3_multisample_rasterization/dynamic_state3_multisample_rasterization.cpp @@ -37,12 +37,115 @@ DynamicState3MultisampleRasterization::~DynamicState3MultisampleRasterization() } } +const std::string to_string(VkSampleCountFlagBits count) +{ + switch (count) + { + case VK_SAMPLE_COUNT_1_BIT: + return "No MSAA"; + case VK_SAMPLE_COUNT_2_BIT: + return "2X MSAA"; + case VK_SAMPLE_COUNT_4_BIT: + return "4X MSAA"; + case VK_SAMPLE_COUNT_8_BIT: + return "8X MSAA"; + case VK_SAMPLE_COUNT_16_BIT: + return "16X MSAA"; + case VK_SAMPLE_COUNT_32_BIT: + return "32X MSAA"; + case VK_SAMPLE_COUNT_64_BIT: + return "64X MSAA"; + default: + return "Unknown"; + } +} + +void DynamicState3MultisampleRasterization::prepare_supported_sample_count_list() +{ + VkPhysicalDeviceProperties gpu_properties; + vkGetPhysicalDeviceProperties(get_device().get_gpu().get_handle(), &gpu_properties); + + VkSampleCountFlags supported_by_depth_and_color = gpu_properties.limits.framebufferColorSampleCounts & gpu_properties.limits.framebufferDepthSampleCounts; + + // All possible sample counts are listed here from most to least preferred as default + // On Mali GPUs 4X MSAA is recommended as best performance/quality trade-off + std::vector counts = {VK_SAMPLE_COUNT_4_BIT, VK_SAMPLE_COUNT_2_BIT, VK_SAMPLE_COUNT_8_BIT, + VK_SAMPLE_COUNT_16_BIT, VK_SAMPLE_COUNT_32_BIT, VK_SAMPLE_COUNT_64_BIT, + VK_SAMPLE_COUNT_1_BIT}; + + for (auto &count : counts) + { + if (supported_by_depth_and_color & count) + { + /* + supported_sample_count_list.push_back(count); + + if (sample_count == VK_SAMPLE_COUNT_1_BIT) + { + // Set default sample count based on the priority defined above + sample_count = count; + gui_sample_count = count; + last_gui_sample_count = count; + } + */ + } + } +} + bool DynamicState3MultisampleRasterization::prepare(const vkb::ApplicationOptions &options) { + /* if (!ApiVulkanSample::prepare(options)) { return false; } + */ + + if (!VulkanSample::prepare(options)) + { + return false; + } + + depth_format = vkb::get_suitable_depth_format(device->get_gpu().get_handle()); + + // Create synchronization objects + VkSemaphoreCreateInfo semaphore_create_info = vkb::initializers::semaphore_create_info(); + // Create a semaphore used to synchronize image presentation + // Ensures that the current swapchain render target has completed presentation and has been released by the presentation engine, ready for rendering + VK_CHECK(vkCreateSemaphore(device->get_handle(), &semaphore_create_info, nullptr, &semaphores.acquired_image_ready)); + // Create a semaphore used to synchronize command submission + // Ensures that the image is not presented until all commands have been sumbitted and executed + VK_CHECK(vkCreateSemaphore(device->get_handle(), &semaphore_create_info, nullptr, &semaphores.render_complete)); + + // Set up submit info structure + // Semaphores will stay the same during application lifetime + // Command buffer submission info is set by each example + submit_info = vkb::initializers::submit_info(); + submit_info.pWaitDstStageMask = &submit_pipeline_stages; + + if (window->get_window_mode() != vkb::Window::Mode::Headless) + { + submit_info.waitSemaphoreCount = 1; + submit_info.pWaitSemaphores = &semaphores.acquired_image_ready; + submit_info.signalSemaphoreCount = 1; + submit_info.pSignalSemaphores = &semaphores.render_complete; + } + + queue = device->get_suitable_graphics_queue().get_handle(); + + create_swapchain_buffers(); + create_command_pool(); + create_command_buffers(); + create_synchronization_primitives(); + //setup_depth_stencil(); + //setup_render_pass(); + create_pipeline_cache(); + + + width = get_render_context().get_surface_extent().width; + height = get_render_context().get_surface_extent().height; + + //prepare_gui(); camera.type = vkb::CameraType::LookAt; camera.set_position(glm::vec3(1.9f, 2.05f, -18.0f)); @@ -51,6 +154,8 @@ bool DynamicState3MultisampleRasterization::prepare(const vkb::ApplicationOption // Note: Using reversed depth-buffer for increased precision, so Znear and Zfar are flipped camera.set_perspective(60.0f, static_cast(width) / static_cast(height), 256.0f, 0.1f); load_assets(); + setup_render_pass(); + setup_framebuffer(); prepare_uniform_buffers(); setup_descriptor_set_layout(); prepare_pipelines(); @@ -58,7 +163,6 @@ bool DynamicState3MultisampleRasterization::prepare(const vkb::ApplicationOption setup_descriptor_sets(); build_command_buffers(); - prepare_pipelines(); prepared = true; return true; } @@ -67,15 +171,16 @@ void DynamicState3MultisampleRasterization::build_command_buffers() { VkCommandBufferBeginInfo command_buffer_begin_info = vkb::initializers::command_buffer_begin_info(); - VkClearValue clear_values[2]; + VkClearValue clear_values[3]; clear_values[0].color = {{0.0f, 0.0f, 0.0f, 0.0f}}; - clear_values[1].depthStencil = {0.0f, 0}; + clear_values[1].color = {{0.0f, 0.0f, 0.0f, 0.0f}}; + clear_values[2].depthStencil = {0.0f, 0}; VkRenderPassBeginInfo render_pass_begin_info = vkb::initializers::render_pass_begin_info(); render_pass_begin_info.renderPass = render_pass; render_pass_begin_info.renderArea.extent.width = width; render_pass_begin_info.renderArea.extent.height = height; - render_pass_begin_info.clearValueCount = 2; + render_pass_begin_info.clearValueCount = 3; render_pass_begin_info.pClearValues = clear_values; for (int32_t i = 0; i < draw_cmd_buffers.size(); ++i) @@ -244,6 +349,223 @@ void DynamicState3MultisampleRasterization::setup_descriptor_sets() vkUpdateDescriptorSets(get_device().get_handle(), static_cast(write_descriptor_sets.size()), write_descriptor_sets.data(), 0, nullptr); } +void DynamicState3MultisampleRasterization::setup_render_pass() +{ + FrameBufferAttachment color_attachment, depth_attachment; + + create_color_attachment(render_context->get_format(), &color_attachment); + framebuffer_attachments.push_back(color_attachment); + + create_depth_attachment(depth_format, &depth_attachment); + framebuffer_attachments.push_back(depth_attachment); + + std::array attachments = {}; + // Color attachment + attachments[0].format = render_context->get_format(); + attachments[0].samples = VK_SAMPLE_COUNT_4_BIT; + attachments[0].loadOp = VK_ATTACHMENT_LOAD_OP_CLEAR; + attachments[0].storeOp = VK_ATTACHMENT_STORE_OP_STORE; + attachments[0].stencilLoadOp = VK_ATTACHMENT_LOAD_OP_DONT_CARE; + attachments[0].stencilStoreOp = VK_ATTACHMENT_STORE_OP_DONT_CARE; + attachments[0].initialLayout = VK_IMAGE_LAYOUT_UNDEFINED; + attachments[0].finalLayout = VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL; + + // Resolve attachment + attachments[1].format = render_context->get_format(); + attachments[1].samples = VK_SAMPLE_COUNT_1_BIT; + attachments[1].loadOp = VK_ATTACHMENT_LOAD_OP_DONT_CARE; + attachments[1].storeOp = VK_ATTACHMENT_STORE_OP_STORE; + attachments[1].stencilLoadOp = VK_ATTACHMENT_LOAD_OP_DONT_CARE; + attachments[1].stencilStoreOp = VK_ATTACHMENT_STORE_OP_DONT_CARE; + attachments[1].initialLayout = VK_IMAGE_LAYOUT_UNDEFINED; + attachments[1].finalLayout = VK_IMAGE_LAYOUT_PRESENT_SRC_KHR; + + // Resolve attachment + attachments[2].format = depth_format; + attachments[2].samples = VK_SAMPLE_COUNT_4_BIT; + attachments[2].loadOp = VK_ATTACHMENT_LOAD_OP_CLEAR; + attachments[2].storeOp = VK_ATTACHMENT_STORE_OP_DONT_CARE; + attachments[2].stencilLoadOp = VK_ATTACHMENT_LOAD_OP_DONT_CARE; + attachments[2].stencilStoreOp = VK_ATTACHMENT_STORE_OP_DONT_CARE; + attachments[2].initialLayout = VK_IMAGE_LAYOUT_UNDEFINED; + attachments[2].finalLayout = VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL; + + VkAttachmentReference color_reference = {}; + color_reference.attachment = 0; + color_reference.layout = VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL; + + VkAttachmentReference depth_reference = {}; + depth_reference.attachment = 2; + depth_reference.layout = VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL; + + VkAttachmentReference resolve_reference = {}; + resolve_reference.attachment = 1; + resolve_reference.layout = VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL; + + VkSubpassDescription subpass_description = {}; + subpass_description.pipelineBindPoint = VK_PIPELINE_BIND_POINT_GRAPHICS; + subpass_description.colorAttachmentCount = 1; + subpass_description.pColorAttachments = &color_reference; + subpass_description.pDepthStencilAttachment = &depth_reference; + subpass_description.inputAttachmentCount = 0; + subpass_description.pInputAttachments = nullptr; + subpass_description.preserveAttachmentCount = 0; + subpass_description.pPreserveAttachments = nullptr; + subpass_description.pResolveAttachments = &resolve_reference; + + // Subpass dependencies for layout transitions + std::array dependencies; + + // Depth attachment + dependencies[0].srcSubpass = VK_SUBPASS_EXTERNAL; + dependencies[0].dstSubpass = 0; + dependencies[0].srcStageMask = VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT | VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT; + dependencies[0].dstStageMask = VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT | VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT; + dependencies[0].srcAccessMask = VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT; + dependencies[0].dstAccessMask = VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT | VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT; + dependencies[0].dependencyFlags = 0; + // Color attachment + dependencies[1].srcSubpass = VK_SUBPASS_EXTERNAL; + dependencies[1].dstSubpass = 0; + dependencies[1].srcStageMask = VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT; + dependencies[1].dstStageMask = VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT; + dependencies[1].srcAccessMask = 0; + dependencies[1].dstAccessMask = VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT | VK_ACCESS_COLOR_ATTACHMENT_READ_BIT; + dependencies[1].dependencyFlags = 0; + + VkRenderPassCreateInfo render_pass_create_info = {}; + render_pass_create_info.sType = VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO; + render_pass_create_info.attachmentCount = static_cast(attachments.size()); + render_pass_create_info.pAttachments = attachments.data(); + render_pass_create_info.subpassCount = 1; + render_pass_create_info.pSubpasses = &subpass_description; + render_pass_create_info.dependencyCount = static_cast(dependencies.size()); + render_pass_create_info.pDependencies = dependencies.data(); + + VK_CHECK(vkCreateRenderPass(device->get_handle(), &render_pass_create_info, nullptr, &render_pass)); +} + +// Create attachment that will be used in a framebuffer. +void DynamicState3MultisampleRasterization::create_color_attachment(VkFormat format, FrameBufferAttachment *attachment) +{ + attachment->format = format; + + VkImageCreateInfo image = vkb::initializers::image_create_info(); + image.imageType = VK_IMAGE_TYPE_2D; + image.format = format; + image.extent.width = get_render_context().get_surface_extent().width; + image.extent.height = get_render_context().get_surface_extent().height; + image.extent.depth = 1; + image.mipLevels = 1; + image.arrayLayers = 1; + image.samples = VK_SAMPLE_COUNT_4_BIT; + image.tiling = VK_IMAGE_TILING_OPTIMAL; + image.usage = VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT | VK_IMAGE_USAGE_SAMPLED_BIT | VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT; + + VkMemoryAllocateInfo memory_allocate_info = vkb::initializers::memory_allocate_info(); + VkMemoryRequirements memory_requirements; + + VK_CHECK(vkCreateImage(get_device().get_handle(), &image, nullptr, &attachment->image)); + vkGetImageMemoryRequirements(get_device().get_handle(), attachment->image, &memory_requirements); + memory_allocate_info.allocationSize = memory_requirements.size; + memory_allocate_info.memoryTypeIndex = get_device().get_memory_type(memory_requirements.memoryTypeBits, VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT); + VK_CHECK(vkAllocateMemory(get_device().get_handle(), &memory_allocate_info, nullptr, &attachment->mem)); + VK_CHECK(vkBindImageMemory(get_device().get_handle(), attachment->image, attachment->mem, 0)); + + VkImageViewCreateInfo image_view_create_info = vkb::initializers::image_view_create_info(); + image_view_create_info.viewType = VK_IMAGE_VIEW_TYPE_2D; + image_view_create_info.format = format; + image_view_create_info.subresourceRange = {}; + image_view_create_info.subresourceRange.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT; + image_view_create_info.subresourceRange.baseMipLevel = 0; + image_view_create_info.subresourceRange.levelCount = 1; + image_view_create_info.subresourceRange.baseArrayLayer = 0; + image_view_create_info.subresourceRange.layerCount = 1; + image_view_create_info.image = attachment->image; + VK_CHECK(vkCreateImageView(get_device().get_handle(), &image_view_create_info, nullptr, &attachment->view)); +} + +void DynamicState3MultisampleRasterization::create_depth_attachment(VkFormat format, FrameBufferAttachment *attachment) +{ + VkImageCreateInfo image_create_info{}; + image_create_info.sType = VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO; + image_create_info.imageType = VK_IMAGE_TYPE_2D; + image_create_info.format = format; + image_create_info.extent = {get_render_context().get_surface_extent().width, get_render_context().get_surface_extent().height, 1}; + image_create_info.mipLevels = 1; + image_create_info.arrayLayers = 1; + image_create_info.samples = VK_SAMPLE_COUNT_4_BIT; + image_create_info.tiling = VK_IMAGE_TILING_OPTIMAL; + image_create_info.usage = VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT | VK_IMAGE_USAGE_TRANSFER_SRC_BIT; + + VK_CHECK(vkCreateImage(device->get_handle(), &image_create_info, nullptr, &(attachment->image))); + VkMemoryRequirements memReqs{}; + vkGetImageMemoryRequirements(device->get_handle(), attachment->image, &memReqs); + + VkMemoryAllocateInfo memory_allocation{}; + memory_allocation.sType = VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO; + memory_allocation.allocationSize = memReqs.size; + memory_allocation.memoryTypeIndex = device->get_memory_type(memReqs.memoryTypeBits, VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT); + VK_CHECK(vkAllocateMemory(device->get_handle(), &memory_allocation, nullptr, &(attachment->mem))); + VK_CHECK(vkBindImageMemory(device->get_handle(), attachment->image, attachment->mem, 0)); + + VkImageViewCreateInfo image_view_create_info{}; + image_view_create_info.sType = VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO; + image_view_create_info.viewType = VK_IMAGE_VIEW_TYPE_2D; + image_view_create_info.image = attachment->image; + image_view_create_info.format = format; + image_view_create_info.subresourceRange.baseMipLevel = 0; + image_view_create_info.subresourceRange.levelCount = 1; + image_view_create_info.subresourceRange.baseArrayLayer = 0; + image_view_create_info.subresourceRange.layerCount = 1; + image_view_create_info.subresourceRange.aspectMask = VK_IMAGE_ASPECT_DEPTH_BIT; + // Stencil aspect should only be set on depth + stencil formats (VK_FORMAT_D16_UNORM_S8_UINT..VK_FORMAT_D32_SFLOAT_S8_UINT + if (depth_format >= VK_FORMAT_D16_UNORM_S8_UINT) + { + image_view_create_info.subresourceRange.aspectMask |= VK_IMAGE_ASPECT_STENCIL_BIT; + } + VK_CHECK(vkCreateImageView(device->get_handle(), &image_view_create_info, nullptr, &(attachment->view))); +} + +void DynamicState3MultisampleRasterization::setup_framebuffer() +{ + VkImageView attachments[3]; + + // Depth/Stencil attachment is the same for all frame buffers + attachments[0] = framebuffer_attachments[0].view; + attachments[2] = framebuffer_attachments[1].view; + + VkFramebufferCreateInfo framebuffer_create_info = {}; + framebuffer_create_info.sType = VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO; + framebuffer_create_info.pNext = NULL; + framebuffer_create_info.renderPass = render_pass; + framebuffer_create_info.attachmentCount = 3; + framebuffer_create_info.pAttachments = attachments; + framebuffer_create_info.width = get_render_context().get_surface_extent().width; + framebuffer_create_info.height = get_render_context().get_surface_extent().height; + framebuffer_create_info.layers = 1; + + // Delete existing frame buffers + if (framebuffers.size() > 0) + { + for (uint32_t i = 0; i < framebuffers.size(); i++) + { + if (framebuffers[i] != VK_NULL_HANDLE) + { + vkDestroyFramebuffer(device->get_handle(), framebuffers[i], nullptr); + } + } + } + + // Create frame buffers for every swap chain image + framebuffers.resize(render_context->get_render_frames().size()); + for (uint32_t i = 0; i < framebuffers.size(); i++) + { + attachments[1] = swapchain_buffers[i].view; + VK_CHECK(vkCreateFramebuffer(device->get_handle(), &framebuffer_create_info, nullptr, &framebuffers[i])); + } +} + void DynamicState3MultisampleRasterization::prepare_pipelines() { VkPipelineInputAssemblyStateCreateInfo input_assembly_state = @@ -291,7 +613,7 @@ void DynamicState3MultisampleRasterization::prepare_pipelines() VkPipelineMultisampleStateCreateInfo multisample_state = vkb::initializers::pipeline_multisample_state_create_info( - VK_SAMPLE_COUNT_1_BIT, + VK_SAMPLE_COUNT_4_BIT, 0); std::vector dynamic_state_enables = { diff --git a/samples/extensions/dynamic_state3_multisample_rasterization/dynamic_state3_multisample_rasterization.h b/samples/extensions/dynamic_state3_multisample_rasterization/dynamic_state3_multisample_rasterization.h index 8f535938e..fc5ff55e6 100644 --- a/samples/extensions/dynamic_state3_multisample_rasterization/dynamic_state3_multisample_rasterization.h +++ b/samples/extensions/dynamic_state3_multisample_rasterization/dynamic_state3_multisample_rasterization.h @@ -53,6 +53,11 @@ class DynamicState3MultisampleRasterization : public ApiVulkanSample VkDescriptorSet descriptor_set; VkDescriptorSetLayout descriptor_set_layout; + /** + * @brief List of MSAA levels supported by the platform + */ + std::vector supported_sample_count_list{}; + struct { glm::mat4 model_matrix; @@ -67,6 +72,22 @@ class DynamicState3MultisampleRasterization : public ApiVulkanSample } push_const_block; + struct FrameBufferAttachment + { + VkImage image; + VkDeviceMemory mem; + VkImageView view; + VkFormat format; + void destroy(VkDevice device) + { + vkDestroyImageView(device, view, nullptr); + vkDestroyImage(device, image, nullptr); + vkFreeMemory(device, mem, nullptr); + } + }; + + std::vector framebuffer_attachments; + public: void build_command_buffers() override; void load_assets(); @@ -77,8 +98,13 @@ class DynamicState3MultisampleRasterization : public ApiVulkanSample void prepare_uniform_buffers(); void update_uniform_buffers(); void draw(); + void prepare_supported_sample_count_list(); + void create_color_attachment(VkFormat format, FrameBufferAttachment *attachment); + void create_depth_attachment(VkFormat format, FrameBufferAttachment *attachment); bool prepare(const vkb::ApplicationOptions &options) override; + virtual void setup_render_pass() override; virtual void render(float delta_time) override; + virtual void setup_framebuffer(); }; std::unique_ptr create_dynamic_state3_multisample_rasterization(); From 1170d1b6a87523646bb4c535c526bf6e699e48ca Mon Sep 17 00:00:00 2001 From: pawel-jastrzebski-mobica Date: Fri, 24 Nov 2023 21:47:52 +0100 Subject: [PATCH 07/52] Implement dynamic sample selection. Signed-off-by: pawel-jastrzebski-mobica --- ...namic_state3_multisample_rasterization.cpp | 202 +++++++++++++++--- ...dynamic_state3_multisample_rasterization.h | 38 +++- 2 files changed, 208 insertions(+), 32 deletions(-) diff --git a/samples/extensions/dynamic_state3_multisample_rasterization/dynamic_state3_multisample_rasterization.cpp b/samples/extensions/dynamic_state3_multisample_rasterization/dynamic_state3_multisample_rasterization.cpp index 57bab2bf6..c5623a772 100644 --- a/samples/extensions/dynamic_state3_multisample_rasterization/dynamic_state3_multisample_rasterization.cpp +++ b/samples/extensions/dynamic_state3_multisample_rasterization/dynamic_state3_multisample_rasterization.cpp @@ -25,6 +25,13 @@ DynamicState3MultisampleRasterization::DynamicState3MultisampleRasterization() { title = "DynamicState3 Multisample Rasterization"; + + set_api_version(VK_API_VERSION_1_3); + + add_instance_extension(VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME); + add_device_extension(VK_EXT_EXTENDED_DYNAMIC_STATE_EXTENSION_NAME); + add_device_extension(VK_EXT_EXTENDED_DYNAMIC_STATE_2_EXTENSION_NAME); + add_device_extension(VK_EXT_EXTENDED_DYNAMIC_STATE_3_EXTENSION_NAME); } DynamicState3MultisampleRasterization::~DynamicState3MultisampleRasterization() @@ -37,6 +44,32 @@ DynamicState3MultisampleRasterization::~DynamicState3MultisampleRasterization() } } +void DynamicState3MultisampleRasterization::request_gpu_features(vkb::PhysicalDevice &gpu) +{ + auto last_requested_extension_feature = gpu.get_last_requested_extension_feature(); + + extended_dynamic_state_features.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT; + extended_dynamic_state_features.extendedDynamicState = VK_TRUE; + extended_dynamic_state_features.pNext = &extended_dynamic_state_2_features; + + extended_dynamic_state_2_features.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT; + extended_dynamic_state_2_features.pNext = &extended_dynamic_state_3_features; + + extended_dynamic_state_3_features.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_FEATURES_EXT; + extended_dynamic_state_3_features.extendedDynamicState3RasterizationSamples = VK_TRUE; + extended_dynamic_state_3_features.pNext = VK_NULL_HANDLE; + + last_requested_extension_feature = &extended_dynamic_state_features; + + props.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_PROPERTIES_EXT; + props.pNext = VK_NULL_HANDLE; + + VkPhysicalDeviceProperties2 device_properties2 = {}; + device_properties2.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2; + device_properties2.pNext = &props; + vkGetPhysicalDeviceProperties2(gpu.get_handle(), &device_properties2); +} + const std::string to_string(VkSampleCountFlagBits count) { switch (count) @@ -60,6 +93,29 @@ const std::string to_string(VkSampleCountFlagBits count) } } +const ImVec2 to_scale_ui(VkSampleCountFlagBits sample_count) +{ + switch (sample_count) + { + case VK_SAMPLE_COUNT_1_BIT: + return ImVec2(1.0, 1.0); + case VK_SAMPLE_COUNT_2_BIT: + return ImVec2(2.0, 1.0); + case VK_SAMPLE_COUNT_4_BIT: + return ImVec2(2.0, 2.0); + case VK_SAMPLE_COUNT_8_BIT: + return ImVec2(4.0, 2.0); + case VK_SAMPLE_COUNT_16_BIT: + return ImVec2(4.0, 4.0); + case VK_SAMPLE_COUNT_32_BIT: + return ImVec2(8.0, 4.0); + case VK_SAMPLE_COUNT_64_BIT: + return ImVec2(8.0, 8.0); + default: + return ImVec2(1.0, 1.0); + } +} + void DynamicState3MultisampleRasterization::prepare_supported_sample_count_list() { VkPhysicalDeviceProperties gpu_properties; @@ -77,8 +133,8 @@ void DynamicState3MultisampleRasterization::prepare_supported_sample_count_list( { if (supported_by_depth_and_color & count) { - /* supported_sample_count_list.push_back(count); + gui_settings.sample_counts.push_back(to_string(count)); if (sample_count == VK_SAMPLE_COUNT_1_BIT) { @@ -87,20 +143,12 @@ void DynamicState3MultisampleRasterization::prepare_supported_sample_count_list( gui_sample_count = count; last_gui_sample_count = count; } - */ } } } bool DynamicState3MultisampleRasterization::prepare(const vkb::ApplicationOptions &options) { - /* - if (!ApiVulkanSample::prepare(options)) - { - return false; - } - */ - if (!VulkanSample::prepare(options)) { return false; @@ -137,15 +185,12 @@ bool DynamicState3MultisampleRasterization::prepare(const vkb::ApplicationOption create_command_pool(); create_command_buffers(); create_synchronization_primitives(); - //setup_depth_stencil(); - //setup_render_pass(); create_pipeline_cache(); - width = get_render_context().get_surface_extent().width; height = get_render_context().get_surface_extent().height; - //prepare_gui(); + prepare_supported_sample_count_list(); camera.type = vkb::CameraType::LookAt; camera.set_position(glm::vec3(1.9f, 2.05f, -18.0f)); @@ -163,12 +208,20 @@ bool DynamicState3MultisampleRasterization::prepare(const vkb::ApplicationOption setup_descriptor_sets(); build_command_buffers(); + prepare_gui(); + prepared = true; return true; } void DynamicState3MultisampleRasterization::build_command_buffers() { + if (!check_command_buffers()) + { + create_command_buffers(); + destroy_command_buffers(); + } + VkCommandBufferBeginInfo command_buffer_begin_info = vkb::initializers::command_buffer_begin_info(); VkClearValue clear_values[3]; @@ -190,6 +243,7 @@ void DynamicState3MultisampleRasterization::build_command_buffers() render_pass_begin_info.framebuffer = framebuffers[i]; vkCmdBeginRenderPass(draw_cmd_buffers[i], &render_pass_begin_info, VK_SUBPASS_CONTENTS_INLINE); + vkCmdSetRasterizationSamplesEXT(draw_cmd_buffers[i], sample_count); // VK_EXT_extended_dynamic_state3 VkViewport viewport = vkb::initializers::viewport(static_cast(width), static_cast(height), 0.0f, 1.0f); vkCmdSetViewport(draw_cmd_buffers[i], 0, 1, &viewport); @@ -260,6 +314,32 @@ void DynamicState3MultisampleRasterization::build_command_buffers() } } +void DynamicState3MultisampleRasterization::draw_ui(VkCommandBuffer& cmd_buffer) +{ + if (gui) + { + auto &scale = to_scale_ui(sample_count); + auto &viewport = vkb::initializers::viewport(static_cast(width) * scale.x, static_cast(height) * scale.y, 0.0f, 1.0f); + vkCmdSetViewport(cmd_buffer, 0, 1, &viewport); + auto draw_data = ImGui::GetDrawData(); + + if (draw_data) + { + for (int32_t i = 0; i < draw_data->CmdListsCount; i++) + { + ImDrawList *cmd_list = draw_data->CmdLists[i]; + for (int32_t j = 0; j < cmd_list->CmdBuffer.Size; j++) + { + auto cmd = &cmd_list->CmdBuffer[j]; + cmd->ClipRect.z *= scale.x; + cmd->ClipRect.w *= scale.y; + } + } + } + gui->draw(cmd_buffer); + } +} + void DynamicState3MultisampleRasterization::load_assets() { vkb::GLTFLoader loader{get_device()}; @@ -351,18 +431,32 @@ void DynamicState3MultisampleRasterization::setup_descriptor_sets() void DynamicState3MultisampleRasterization::setup_render_pass() { - FrameBufferAttachment color_attachment, depth_attachment; + if (render_pass != VK_NULL_HANDLE) + { + vkDestroyRenderPass(get_device().get_handle(), render_pass, nullptr); + } + + VkPhysicalDeviceProperties gpu_properties; + vkGetPhysicalDeviceProperties(get_device().get_gpu().get_handle(), &gpu_properties); + + // Check if device supports requested sample count for color and depth frame buffer + assert((gpu_properties.limits.framebufferColorSampleCounts >= sample_count) && (gpu_properties.limits.framebufferDepthSampleCounts >= sample_count)); + + bool msaa_enabled = sample_count != VK_SAMPLE_COUNT_1_BIT; - create_color_attachment(render_context->get_format(), &color_attachment); - framebuffer_attachments.push_back(color_attachment); + std::unique_ptr color_attachment = std::make_unique(); + std::unique_ptr depth_attachment = std::make_unique(); - create_depth_attachment(depth_format, &depth_attachment); - framebuffer_attachments.push_back(depth_attachment); + create_color_attachment(render_context->get_format(), color_attachment.get()); + framebuffer_attachments.push_back(std::move(color_attachment)); + + create_depth_attachment(depth_format, depth_attachment.get()); + framebuffer_attachments.push_back(std::move(depth_attachment)); std::array attachments = {}; // Color attachment attachments[0].format = render_context->get_format(); - attachments[0].samples = VK_SAMPLE_COUNT_4_BIT; + attachments[0].samples = sample_count; attachments[0].loadOp = VK_ATTACHMENT_LOAD_OP_CLEAR; attachments[0].storeOp = VK_ATTACHMENT_STORE_OP_STORE; attachments[0].stencilLoadOp = VK_ATTACHMENT_LOAD_OP_DONT_CARE; @@ -382,7 +476,7 @@ void DynamicState3MultisampleRasterization::setup_render_pass() // Resolve attachment attachments[2].format = depth_format; - attachments[2].samples = VK_SAMPLE_COUNT_4_BIT; + attachments[2].samples = sample_count; attachments[2].loadOp = VK_ATTACHMENT_LOAD_OP_CLEAR; attachments[2].storeOp = VK_ATTACHMENT_STORE_OP_DONT_CARE; attachments[2].stencilLoadOp = VK_ATTACHMENT_LOAD_OP_DONT_CARE; @@ -458,7 +552,7 @@ void DynamicState3MultisampleRasterization::create_color_attachment(VkFormat for image.extent.depth = 1; image.mipLevels = 1; image.arrayLayers = 1; - image.samples = VK_SAMPLE_COUNT_4_BIT; + image.samples = sample_count; image.tiling = VK_IMAGE_TILING_OPTIMAL; image.usage = VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT | VK_IMAGE_USAGE_SAMPLED_BIT | VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT; @@ -494,7 +588,7 @@ void DynamicState3MultisampleRasterization::create_depth_attachment(VkFormat for image_create_info.extent = {get_render_context().get_surface_extent().width, get_render_context().get_surface_extent().height, 1}; image_create_info.mipLevels = 1; image_create_info.arrayLayers = 1; - image_create_info.samples = VK_SAMPLE_COUNT_4_BIT; + image_create_info.samples = sample_count; image_create_info.tiling = VK_IMAGE_TILING_OPTIMAL; image_create_info.usage = VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT | VK_IMAGE_USAGE_TRANSFER_SRC_BIT; @@ -532,8 +626,8 @@ void DynamicState3MultisampleRasterization::setup_framebuffer() VkImageView attachments[3]; // Depth/Stencil attachment is the same for all frame buffers - attachments[0] = framebuffer_attachments[0].view; - attachments[2] = framebuffer_attachments[1].view; + attachments[0] = framebuffer_attachments[0]->view; + attachments[2] = framebuffer_attachments[1]->view; VkFramebufferCreateInfo framebuffer_create_info = {}; framebuffer_create_info.sType = VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO; @@ -568,6 +662,11 @@ void DynamicState3MultisampleRasterization::setup_framebuffer() void DynamicState3MultisampleRasterization::prepare_pipelines() { + if (pipeline != VK_NULL_HANDLE) + { + vkDestroyPipeline(get_device().get_handle(), pipeline, nullptr); + } + VkPipelineInputAssemblyStateCreateInfo input_assembly_state = vkb::initializers::pipeline_input_assembly_state_create_info( VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST, @@ -613,12 +712,14 @@ void DynamicState3MultisampleRasterization::prepare_pipelines() VkPipelineMultisampleStateCreateInfo multisample_state = vkb::initializers::pipeline_multisample_state_create_info( - VK_SAMPLE_COUNT_4_BIT, + VK_SAMPLE_COUNT_1_BIT, // disable multisampling during configuration 0); std::vector dynamic_state_enables = { VK_DYNAMIC_STATE_VIEWPORT, - VK_DYNAMIC_STATE_SCISSOR}; + VK_DYNAMIC_STATE_SCISSOR, + VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT /* VK_EXT_extended_dynamic_state3 */ + }; VkPipelineDynamicStateCreateInfo dynamic_state = vkb::initializers::pipeline_dynamic_state_create_info( dynamic_state_enables.data(), @@ -717,6 +818,55 @@ void DynamicState3MultisampleRasterization::render(float delta_time) } } +void DynamicState3MultisampleRasterization::update_resources() +{ + if (device) + { + device->wait_idle(); + + // destroy framebuffer attachments: + for (auto &att : framebuffer_attachments) + { + att->destroy(get_device().get_handle()); + } + + framebuffer_attachments.clear(); + + std::unique_ptr color_attachment = std::make_unique(); + std::unique_ptr depth_attachment = std::make_unique(); + + create_color_attachment(render_context->get_format(), color_attachment.get()); + framebuffer_attachments.push_back(std::move(color_attachment)); + + create_depth_attachment(depth_format, depth_attachment.get()); + framebuffer_attachments.push_back(std::move(depth_attachment)); + + width = get_render_context().get_surface_extent().width; + height = get_render_context().get_surface_extent().height; + + camera.set_perspective(60.0f, static_cast(width) / static_cast(height), 256.0f, 0.1f); + + // All resources are recreated during setup + setup_render_pass(); + setup_framebuffer(); + prepare_pipelines(); + build_command_buffers(); + } +} + +void DynamicState3MultisampleRasterization::on_update_ui_overlay(vkb::Drawer &drawer) +{ + if (drawer.header("Settings")) + { + if (drawer.combo_box("antialiasing", &gui_settings.gui_sample_count, gui_settings.sample_counts)) + { + sample_count = supported_sample_count_list[gui_settings.gui_sample_count]; + + update_resources(); + } + } +} + std::unique_ptr create_dynamic_state3_multisample_rasterization() { return std::make_unique(); diff --git a/samples/extensions/dynamic_state3_multisample_rasterization/dynamic_state3_multisample_rasterization.h b/samples/extensions/dynamic_state3_multisample_rasterization/dynamic_state3_multisample_rasterization.h index fc5ff55e6..e538424a9 100644 --- a/samples/extensions/dynamic_state3_multisample_rasterization/dynamic_state3_multisample_rasterization.h +++ b/samples/extensions/dynamic_state3_multisample_rasterization/dynamic_state3_multisample_rasterization.h @@ -58,6 +58,16 @@ class DynamicState3MultisampleRasterization : public ApiVulkanSample */ std::vector supported_sample_count_list{}; + /** + * @brief Enables MSAA if set to more than 1 sample per pixel + * (e.g. sample count 4 enables 4X MSAA) + */ + VkSampleCountFlagBits sample_count{VK_SAMPLE_COUNT_1_BIT}; + + VkSampleCountFlagBits gui_sample_count{VK_SAMPLE_COUNT_1_BIT}; + + VkSampleCountFlagBits last_gui_sample_count{VK_SAMPLE_COUNT_1_BIT}; + struct { glm::mat4 model_matrix; @@ -86,10 +96,28 @@ class DynamicState3MultisampleRasterization : public ApiVulkanSample } }; - std::vector framebuffer_attachments; + struct GUI_settings + { + int gui_sample_count = 0; + std::vector sample_counts; + } gui_settings; + + std::vector> framebuffer_attachments; + + VkPhysicalDeviceExtendedDynamicStateFeaturesEXT extended_dynamic_state_features{}; + VkPhysicalDeviceExtendedDynamicState2FeaturesEXT extended_dynamic_state_2_features{}; + VkPhysicalDeviceExtendedDynamicState3FeaturesEXT extended_dynamic_state_3_features{}; + + VkPhysicalDeviceExtendedDynamicState3PropertiesEXT props; public: - void build_command_buffers() override; + virtual void build_command_buffers() override; + virtual void request_gpu_features(vkb::PhysicalDevice &gpu) override; + virtual bool prepare(const vkb::ApplicationOptions &options) override; + virtual void setup_render_pass() override; + virtual void render(float delta_time) override; + virtual void setup_framebuffer() override; + virtual void on_update_ui_overlay(vkb::Drawer &drawer) override; void load_assets(); void setup_descriptor_pool(); void setup_descriptor_set_layout(); @@ -101,10 +129,8 @@ class DynamicState3MultisampleRasterization : public ApiVulkanSample void prepare_supported_sample_count_list(); void create_color_attachment(VkFormat format, FrameBufferAttachment *attachment); void create_depth_attachment(VkFormat format, FrameBufferAttachment *attachment); - bool prepare(const vkb::ApplicationOptions &options) override; - virtual void setup_render_pass() override; - virtual void render(float delta_time) override; - virtual void setup_framebuffer(); + void draw_ui(VkCommandBuffer&); + void update_resources(); }; std::unique_ptr create_dynamic_state3_multisample_rasterization(); From 46258c22a4496622a2f4ca249e5bc032fd4ec32d Mon Sep 17 00:00:00 2001 From: pawel-jastrzebski-mobica Date: Mon, 27 Nov 2023 19:07:05 +0100 Subject: [PATCH 08/52] Add setter for last_requested_extension_feature. Signed-off-by: pawel-jastrzebski-mobica --- framework/core/physical_device.h | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/framework/core/physical_device.h b/framework/core/physical_device.h index 7c3b6b37e..da83ca431 100644 --- a/framework/core/physical_device.h +++ b/framework/core/physical_device.h @@ -128,6 +128,15 @@ class PhysicalDevice return *extension_ptr; } + /** + * @brief Gets a modifiable pointer to last_requested_extension_feature. + * @return Modifiable pointer to last_requested_extension_feature. + */ + void* get_last_requested_extension_feature() + { + return last_requested_extension_feature; + } + /** * @brief Sets whether or not the first graphics queue should have higher priority than other queues. * Very specific feature which is used by async compute samples. From 447a3ad6d3b39c2d64af873b59421b464fad42c1 Mon Sep 17 00:00:00 2001 From: pawel-jastrzebski-mobica Date: Mon, 27 Nov 2023 19:58:30 +0100 Subject: [PATCH 09/52] Fix clang-format. Signed-off-by: pawel-jastrzebski-mobica --- ...namic_state3_multisample_rasterization.cpp | 42 +++++++++---------- ...dynamic_state3_multisample_rasterization.h | 22 +++++----- 2 files changed, 31 insertions(+), 33 deletions(-) diff --git a/samples/extensions/dynamic_state3_multisample_rasterization/dynamic_state3_multisample_rasterization.cpp b/samples/extensions/dynamic_state3_multisample_rasterization/dynamic_state3_multisample_rasterization.cpp index c5623a772..c7558802f 100644 --- a/samples/extensions/dynamic_state3_multisample_rasterization/dynamic_state3_multisample_rasterization.cpp +++ b/samples/extensions/dynamic_state3_multisample_rasterization/dynamic_state3_multisample_rasterization.cpp @@ -48,16 +48,16 @@ void DynamicState3MultisampleRasterization::request_gpu_features(vkb::PhysicalDe { auto last_requested_extension_feature = gpu.get_last_requested_extension_feature(); - extended_dynamic_state_features.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT; + extended_dynamic_state_features.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT; extended_dynamic_state_features.extendedDynamicState = VK_TRUE; - extended_dynamic_state_features.pNext = &extended_dynamic_state_2_features; + extended_dynamic_state_features.pNext = &extended_dynamic_state_2_features; - extended_dynamic_state_2_features.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT; + extended_dynamic_state_2_features.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT; extended_dynamic_state_2_features.pNext = &extended_dynamic_state_3_features; - extended_dynamic_state_3_features.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_FEATURES_EXT; + extended_dynamic_state_3_features.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_FEATURES_EXT; extended_dynamic_state_3_features.extendedDynamicState3RasterizationSamples = VK_TRUE; - extended_dynamic_state_3_features.pNext = VK_NULL_HANDLE; + extended_dynamic_state_3_features.pNext = VK_NULL_HANDLE; last_requested_extension_feature = &extended_dynamic_state_features; @@ -258,16 +258,16 @@ void DynamicState3MultisampleRasterization::build_command_buffers() { const auto &vertex_buffer_pos = node.sub_mesh->vertex_buffers.at("position"); const auto &vertex_buffer_normal = node.sub_mesh->vertex_buffers.at("normal"); - const auto & vertex_buffer_uv = node.sub_mesh->vertex_buffers.at("texcoord_0"); + const auto &vertex_buffer_uv = node.sub_mesh->vertex_buffers.at("texcoord_0"); auto &index_buffer = node.sub_mesh->index_buffer; // Pass data for the current node via push commands auto node_material = dynamic_cast(node.sub_mesh->get_material()); push_const_block.model_matrix = node.node->get_transform().get_world_matrix(); - push_const_block.base_color_factor = node_material->base_color_factor; - push_const_block.metallic_factor = node_material->metallic_factor; - push_const_block.roughness_factor = node_material->roughness_factor; + push_const_block.base_color_factor = node_material->base_color_factor; + push_const_block.metallic_factor = node_material->metallic_factor; + push_const_block.roughness_factor = node_material->roughness_factor; push_const_block.normal_texture_index = -1; push_const_block.pbr_texture_index = -1; @@ -275,8 +275,8 @@ void DynamicState3MultisampleRasterization::build_command_buffers() if (base_color_texture != node_material->textures.end()) { - auto base_color_texture_name = base_color_texture->second->get_name(); - push_const_block.base_texture_index = name_to_texture_id.at(base_color_texture_name); + auto base_color_texture_name = base_color_texture->second->get_name(); + push_const_block.base_texture_index = name_to_texture_id.at(base_color_texture_name); } auto normal_texture = node_material->textures.find("normal_texture"); @@ -292,7 +292,7 @@ void DynamicState3MultisampleRasterization::build_command_buffers() if (metallic_roughness_texture != node_material->textures.end()) { auto metallic_roughness_texture_name = metallic_roughness_texture->second->get_name(); - push_const_block.pbr_texture_index = name_to_texture_id.at(metallic_roughness_texture_name); + push_const_block.pbr_texture_index = name_to_texture_id.at(metallic_roughness_texture_name); } vkCmdPushConstants(draw_cmd_buffers[i], pipeline_layout, VK_SHADER_STAGE_VERTEX_BIT, 0, sizeof(push_const_block), &push_const_block); @@ -314,7 +314,7 @@ void DynamicState3MultisampleRasterization::build_command_buffers() } } -void DynamicState3MultisampleRasterization::draw_ui(VkCommandBuffer& cmd_buffer) +void DynamicState3MultisampleRasterization::draw_ui(VkCommandBuffer &cmd_buffer) { if (gui) { @@ -361,7 +361,7 @@ void DynamicState3MultisampleRasterization::load_assets() for (auto texture : textures) { - const auto &name = texture->get_name(); + const auto &name = texture->get_name(); auto image = texture->get_image(); VkDescriptorImageInfo imageInfo; imageInfo.imageLayout = VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL; @@ -377,8 +377,7 @@ void DynamicState3MultisampleRasterization::setup_descriptor_pool() { std::vector pool_sizes = { vkb::initializers::descriptor_pool_size(VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER, 4), - vkb::initializers::descriptor_pool_size(VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, static_cast(image_infos.size())) - }; + vkb::initializers::descriptor_pool_size(VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, static_cast(image_infos.size()))}; VkDescriptorPoolCreateInfo descriptor_pool_create_info = vkb::initializers::descriptor_pool_create_info(static_cast(pool_sizes.size()), pool_sizes.data(), 2); @@ -420,12 +419,11 @@ void DynamicState3MultisampleRasterization::setup_descriptor_sets() VK_CHECK(vkAllocateDescriptorSets(get_device().get_handle(), &alloc_info, &descriptor_set)); - VkDescriptorBufferInfo matrix_buffer_descriptor = create_descriptor(*uniform_buffer); + VkDescriptorBufferInfo matrix_buffer_descriptor = create_descriptor(*uniform_buffer); - std::vector write_descriptor_sets = { - vkb::initializers::write_descriptor_set(descriptor_set, VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER, 0, &matrix_buffer_descriptor), - vkb::initializers::write_descriptor_set(descriptor_set, VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, 1, image_infos.data(), image_infos.size()) - }; + std::vector write_descriptor_sets = { + vkb::initializers::write_descriptor_set(descriptor_set, VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER, 0, &matrix_buffer_descriptor), + vkb::initializers::write_descriptor_set(descriptor_set, VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, 1, image_infos.data(), image_infos.size())}; vkUpdateDescriptorSets(get_device().get_handle(), static_cast(write_descriptor_sets.size()), write_descriptor_sets.data(), 0, nullptr); } @@ -712,7 +710,7 @@ void DynamicState3MultisampleRasterization::prepare_pipelines() VkPipelineMultisampleStateCreateInfo multisample_state = vkb::initializers::pipeline_multisample_state_create_info( - VK_SAMPLE_COUNT_1_BIT, // disable multisampling during configuration + VK_SAMPLE_COUNT_1_BIT, // disable multisampling during configuration 0); std::vector dynamic_state_enables = { diff --git a/samples/extensions/dynamic_state3_multisample_rasterization/dynamic_state3_multisample_rasterization.h b/samples/extensions/dynamic_state3_multisample_rasterization/dynamic_state3_multisample_rasterization.h index e538424a9..57a6da906 100644 --- a/samples/extensions/dynamic_state3_multisample_rasterization/dynamic_state3_multisample_rasterization.h +++ b/samples/extensions/dynamic_state3_multisample_rasterization/dynamic_state3_multisample_rasterization.h @@ -25,11 +25,11 @@ class DynamicState3MultisampleRasterization : public ApiVulkanSample DynamicState3MultisampleRasterization(); virtual ~DynamicState3MultisampleRasterization(); -private: + private: std::unique_ptr vertex_buffer = nullptr; std::unique_ptr index_buffer = nullptr; - std::unique_ptr scene; + std::unique_ptr scene; std::vector image_infos; std::map name_to_texture_id; @@ -73,12 +73,12 @@ class DynamicState3MultisampleRasterization : public ApiVulkanSample glm::mat4 model_matrix; glm::vec4 base_color_factor; - float metallic_factor; - float roughness_factor; + float metallic_factor; + float roughness_factor; - uint32_t base_texture_index; - uint32_t normal_texture_index; - uint32_t pbr_texture_index; + uint32_t base_texture_index; + uint32_t normal_texture_index; + uint32_t pbr_texture_index; } push_const_block; @@ -98,19 +98,19 @@ class DynamicState3MultisampleRasterization : public ApiVulkanSample struct GUI_settings { - int gui_sample_count = 0; + int gui_sample_count = 0; std::vector sample_counts; } gui_settings; std::vector> framebuffer_attachments; - VkPhysicalDeviceExtendedDynamicStateFeaturesEXT extended_dynamic_state_features{}; + VkPhysicalDeviceExtendedDynamicStateFeaturesEXT extended_dynamic_state_features{}; VkPhysicalDeviceExtendedDynamicState2FeaturesEXT extended_dynamic_state_2_features{}; VkPhysicalDeviceExtendedDynamicState3FeaturesEXT extended_dynamic_state_3_features{}; VkPhysicalDeviceExtendedDynamicState3PropertiesEXT props; -public: + public: virtual void build_command_buffers() override; virtual void request_gpu_features(vkb::PhysicalDevice &gpu) override; virtual bool prepare(const vkb::ApplicationOptions &options) override; @@ -129,7 +129,7 @@ class DynamicState3MultisampleRasterization : public ApiVulkanSample void prepare_supported_sample_count_list(); void create_color_attachment(VkFormat format, FrameBufferAttachment *attachment); void create_depth_attachment(VkFormat format, FrameBufferAttachment *attachment); - void draw_ui(VkCommandBuffer&); + void draw_ui(VkCommandBuffer &); void update_resources(); }; From 7e5319f8a6a04910dc1ea45f80085923891c71ac Mon Sep 17 00:00:00 2001 From: pawel-jastrzebski-mobica Date: Mon, 27 Nov 2023 20:22:56 +0100 Subject: [PATCH 10/52] Fix copyright. Signed-off-by: pawel-jastrzebski-mobica --- .../dynamic_state3_multisample_rasterization/README.adoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/extensions/dynamic_state3_multisample_rasterization/README.adoc b/samples/extensions/dynamic_state3_multisample_rasterization/README.adoc index f1bdf2b33..836ec3bf8 100644 --- a/samples/extensions/dynamic_state3_multisample_rasterization/README.adoc +++ b/samples/extensions/dynamic_state3_multisample_rasterization/README.adoc @@ -1,5 +1,5 @@ //// -- Copyright (c) 2019-2023, The Khronos Group +- Copyright (c) 2023, Mobica Limited - - SPDX-License-Identifier: Apache-2.0 - From 4072330d89e9b8970f6dc57988b1735facff58c4 Mon Sep 17 00:00:00 2001 From: pawel-jastrzebski-mobica Date: Tue, 28 Nov 2023 13:38:50 +0100 Subject: [PATCH 11/52] Fix vulkan version. Signed-off-by: pawel-jastrzebski-mobica --- .../dynamic_state3_multisample_rasterization.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/extensions/dynamic_state3_multisample_rasterization/dynamic_state3_multisample_rasterization.cpp b/samples/extensions/dynamic_state3_multisample_rasterization/dynamic_state3_multisample_rasterization.cpp index c7558802f..b1ca714ec 100644 --- a/samples/extensions/dynamic_state3_multisample_rasterization/dynamic_state3_multisample_rasterization.cpp +++ b/samples/extensions/dynamic_state3_multisample_rasterization/dynamic_state3_multisample_rasterization.cpp @@ -26,7 +26,7 @@ DynamicState3MultisampleRasterization::DynamicState3MultisampleRasterization() { title = "DynamicState3 Multisample Rasterization"; - set_api_version(VK_API_VERSION_1_3); + set_api_version(VK_API_VERSION_1_1); add_instance_extension(VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME); add_device_extension(VK_EXT_EXTENDED_DYNAMIC_STATE_EXTENSION_NAME); From 5e73402d1fa730f196b01f61da00e167a0eaff9d Mon Sep 17 00:00:00 2001 From: pawel-jastrzebski-mobica Date: Tue, 28 Nov 2023 13:45:44 +0100 Subject: [PATCH 12/52] Update readme. Signed-off-by: pawel-jastrzebski-mobica --- .../README.adoc | 77 ++++-------------- .../image/image.png | Bin 0 -> 649577 bytes 2 files changed, 17 insertions(+), 60 deletions(-) create mode 100644 samples/extensions/dynamic_state3_multisample_rasterization/image/image.png diff --git a/samples/extensions/dynamic_state3_multisample_rasterization/README.adoc b/samples/extensions/dynamic_state3_multisample_rasterization/README.adoc index 836ec3bf8..a982566af 100644 --- a/samples/extensions/dynamic_state3_multisample_rasterization/README.adoc +++ b/samples/extensions/dynamic_state3_multisample_rasterization/README.adoc @@ -17,73 +17,30 @@ - //// -// NOTE: Remove the following comment block for the actual readme of your sample --> - -//// -This is a template for the sample's readme. Every new sample should come with a readme that contains at least a short tutorial that accompanies the code of the example. - -Readmes are written in Asciidoc (see https://asciidoc.org/). - -You can freely choose how to structure it, but it should always contain an overview and conclusion paragraph. - -The readme can (and most often should) show code from along with an explanation. Code in asciidoc can be rendered with syntax highlighting using the following syntax: - -[,cpp] ----- -void main() { - std::cout << "Hello World"; -} ----- - -or - -[,glsl] ----- -void main() { - gl_color = vec4(1.0f); -} ----- - -Ideally it also contains an image of how the sample is supposed to look. - -For an example you can take a look at the readme's of existing samples, e.g. https://raw.githubusercontent.com/KhronosGroup/Vulkan-Samples/main/samples/extensions/descriptor_indexing/README.adoc -//// - -= Sample name - -//// -The following block adds linkage to this repo in the Vulkan docs site project. It's only visible if the file is viewed via the Antora framework. -//// - -ifdef::site-gen-antora[] -TIP: The source for this sample can be found in the https://github.com/KhronosGroup/Vulkan-Samples/tree/main/samples/PUT_SAMPLE_PATH_HERE[Khronos Vulkan samples github repository]. -endif::[] +// Extended dynamic_state3: Rasterization samples == Overview -//// -This chapter should contain an overview of what this sample is trying to achieve. If extensions are used, this chapter should also list those. - -The following chapters get into the details on how the sample is working, what features are used, etc. - -The chapter itself can be structured by using sub paragraphs, e.g.: +This sample demonstrates one of the functionalities of VK_EXT_extended_dynamic_state3 related to rasterization samples. +The extension can be used to dynamically change sampling without any need to restart the application. +image:image/image.png[] -# Feature description +== Enabling the extension -# Enabling extensions +To be able to use this extension in Vulkan API: +1) At least Vulkan API version 1.1 must be supported. +2) Set of `VkPhysicalDeviceExtendedDynamicStateFeaturesEXT`, `VkPhysicalDeviceExtendedDynamicState2FeaturesEXT`, `VkPhysicalDeviceExtendedDynamicState3FeaturesEXT` +must be added to the feature chain of `VkPhysicalDeviceProperties2` and `VkPhysicalDeviceExtendedDynamicState3PropertiesEXT` must be added to `VkPhysicalDeviceProperties2`. -# etc. +== Using the extension -//// - -== Conclusion +To use the extension: +1) `VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT` must be added to `VkPipelineDynamicStateCreateInfo`. +2) Method `void vkCmdSetRasterizationSamplesEXT(VkCommandBuffer commandBuffer, VkSampleCountFlagBits rasterizationSamples)` should be called between +`vkCmdBeginRenderPass` and `vkCmdEndRenderPass`. -//// -The tutorial should end with a conclusion chapter that recaps the tutorial and (if applicable) talks about pros and cons of the features demonstrated in this sample -//// +== Resources -//// -NOTE: Please also add a link to the new samples' README.adoc to the file located in ./antora/modules/ROOT/nav.adoc -THis is necessary to have the sample show up on the build for the docs site under https://docs.vulkan.org -//// +https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_EXT_extended_dynamic_state3.html +https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/vkCmdSetRasterizationSamplesEXT.html diff --git a/samples/extensions/dynamic_state3_multisample_rasterization/image/image.png b/samples/extensions/dynamic_state3_multisample_rasterization/image/image.png new file mode 100644 index 0000000000000000000000000000000000000000..6df8ac8c5295f658b94039f888e59bd5f49f43fe GIT binary patch literal 649577 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%0D|1o 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�zH)nE5!Rt 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ℑH+f`*^%pwgMyfT=5kABH}EwQcs#Fn;Z)X#=v8Az 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%0D9eZe z*XcGBR)|(?xZg|!kXx^959E1Np;`sxhwa?lct5im8|j8K+1c6ZrDmYyj#p>rz$@=(gig%WLGv>%mtpEVH!N1Kna95Qwpy1 zdJd5qnNC{*fX>s?W4nx5O?}PZTH0|Lz^_3r-+qJA&nt+$kv)?QMI_&TCCf~Jke)DR zF=Y@wI(WF4IJU7;y+;-rZo2|eRRv{O$&;m!;zQAO6@kwX{0O*C&}?J2<%_`srxu<+W7|;D>Gh2hOJ?NkB^3|qoxP)Zswb;FrOuD?z4=K0?yjQdawc87PTfk(W!W_&*x(M(6r{3AFV3nmk+U~oRk@K z_KTl|e8-yC2+W`kVB$X}wlWa`@81})%yHXvG*}y+mFXyMmq~xFMD-7X7T(6D3l7Om zUb3RJ9(R(s*7mDAmz+lp{4h9>%0q=RWHtSQ_s?MFz8KM>;o#}+bE&z;gtw6RFm;(+ zeSP9`HoGBerr4a6PchQbaZi;U|6|3={>%(=egP%wH$-e0jzHp0m5TWGB2|uO*KS%~ zviRTuL*lO1r-XC3FZ{pZJw%ZFB~eg@_HdGN_jZP{?0n(^uY#c-whpROntvvl#8GzuzEx*XaChRBpt%u`k37J1Hv5x^*j@FfK?!@#_NjuHtQwYDZ@0x$I; z89o+XXzC++Jc`lCW6Gn9u)NbQNUGJlGe(j|X%D=h(C$`aU5|0HoWzicLLH6^3vO

s$y5?MuqV$&am3~rO^DOy1PbXp@5OzR~QhV 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�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 Date: Tue, 28 Nov 2023 13:58:31 +0100 Subject: [PATCH 13/52] Remove unneeded code from shader. Signed-off-by: pawel-jastrzebski-mobica --- shaders/dynamic_state3_multisample_rasterization/model.frag | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/shaders/dynamic_state3_multisample_rasterization/model.frag b/shaders/dynamic_state3_multisample_rasterization/model.frag index 0224a3737..ab58b2a5b 100644 --- a/shaders/dynamic_state3_multisample_rasterization/model.frag +++ b/shaders/dynamic_state3_multisample_rasterization/model.frag @@ -69,8 +69,8 @@ void main() vec3 R = reflect(-L, N); vec3 ambient = vec3(0.25); vec3 diffuse = max(dot(N, L), 0.0) * vec3(0.75) * getPBR(); - vec3 specular = pow(max(dot(R, V), 0.0), 16.0) * vec3(0.75); //texture(textures[uint(round(inMetallicRoughnessTextureIndex))], inUV).xyz; + vec3 specular = pow(max(dot(R, V), 0.0), 16.0) * vec3(0.75); vec4 base_color = getColor(); - outFragColor = vec4((ambient/* + diffuse*/) * base_color.rgb + specular, base_color.a) /*+ vec4(inUV.x, inUV.y, 0.0, 1.0); 0.5 * vec4(texture(textures[uint(round(inBaseTextureIndex))], inUV))*/; + outFragColor = vec4(ambient * base_color.rgb + specular, base_color.a); } From 2eed170a8e24ebdb2ae06f722fb55bf73617c6ad Mon Sep 17 00:00:00 2001 From: pawel-jastrzebski-mobica Date: Tue, 28 Nov 2023 14:02:10 +0100 Subject: [PATCH 14/52] Fix copyright. Signed-off-by: pawel-jastrzebski-mobica --- .../dynamic_state3_multisample_rasterization/CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/extensions/dynamic_state3_multisample_rasterization/CMakeLists.txt b/samples/extensions/dynamic_state3_multisample_rasterization/CMakeLists.txt index aeb83e065..16292b0f8 100644 --- a/samples/extensions/dynamic_state3_multisample_rasterization/CMakeLists.txt +++ b/samples/extensions/dynamic_state3_multisample_rasterization/CMakeLists.txt @@ -1,4 +1,4 @@ -# Copyright (c) 2023, Arm Limited and Contributors +# Copyright (c) 2023, Mobica Limited # # SPDX-License-Identifier: Apache-2.0 # From 032ca908b140604e2428f653b419896827720d14 Mon Sep 17 00:00:00 2001 From: pawel-jastrzebski-mobica Date: Tue, 28 Nov 2023 14:32:39 +0100 Subject: [PATCH 15/52] Add README.md Signed-off-by: pawel-jastrzebski-mobica --- .../README.md | 43 +++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 samples/extensions/dynamic_state3_multisample_rasterization/README.md diff --git a/samples/extensions/dynamic_state3_multisample_rasterization/README.md b/samples/extensions/dynamic_state3_multisample_rasterization/README.md new file mode 100644 index 000000000..b5250a453 --- /dev/null +++ b/samples/extensions/dynamic_state3_multisample_rasterization/README.md @@ -0,0 +1,43 @@ + + +# Overview + +This sample demonstrates one of the functionalities of VK_EXT_extended_dynamic_state3 related to rasterization samples. +The extension can be used to dynamically change sampling without any need to restart the application. +image:image/image.png[] + +# Enabling the extension + +To be able to use this extension in Vulkan API: +1) At least Vulkan API version 1.1 must be supported. +2) Set of `VkPhysicalDeviceExtendedDynamicStateFeaturesEXT`, `VkPhysicalDeviceExtendedDynamicState2FeaturesEXT`, `VkPhysicalDeviceExtendedDynamicState3FeaturesEXT` +must be added to the feature chain of `VkPhysicalDeviceProperties2` and `VkPhysicalDeviceExtendedDynamicState3PropertiesEXT` must be added to `VkPhysicalDeviceProperties2`. + +# Using the extension + +To use the extension: +1) `VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT` must be added to `VkPipelineDynamicStateCreateInfo`. +2) Method `void vkCmdSetRasterizationSamplesEXT(VkCommandBuffer commandBuffer, VkSampleCountFlagBits rasterizationSamples)` should be called between +`vkCmdBeginRenderPass` and `vkCmdEndRenderPass`. + +# Resources + +https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_EXT_extended_dynamic_state3.html +https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/vkCmdSetRasterizationSamplesEXT.html From 6b3e8792296c55163d7f3943f19c8897774274b3 Mon Sep 17 00:00:00 2001 From: pawel-jastrzebski-mobica Date: Tue, 28 Nov 2023 14:35:31 +0100 Subject: [PATCH 16/52] Add sample to CMake. Signed-off-by: pawel-jastrzebski-mobica --- samples/CMakeLists.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/samples/CMakeLists.txt b/samples/CMakeLists.txt index da45654ea..804ebf61c 100644 --- a/samples/CMakeLists.txt +++ b/samples/CMakeLists.txt @@ -87,6 +87,7 @@ set(ORDER_LIST "fragment_shader_barycentric" "gshader_to_mshader" "color_write_enable" + "dynamic_state3_multisample_rasterization" #Performance Samples "swapchain_images" From 2e861792be0de86878b07aade38b698a1f5e8309 Mon Sep 17 00:00:00 2001 From: pawel-jastrzebski-mobica Date: Tue, 28 Nov 2023 16:00:54 +0100 Subject: [PATCH 17/52] Remove explicit reference from local viewport initializer. Signed-off-by: pawel-jastrzebski-mobica --- .../dynamic_state3_multisample_rasterization.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/extensions/dynamic_state3_multisample_rasterization/dynamic_state3_multisample_rasterization.cpp b/samples/extensions/dynamic_state3_multisample_rasterization/dynamic_state3_multisample_rasterization.cpp index b1ca714ec..9c26d3f5c 100644 --- a/samples/extensions/dynamic_state3_multisample_rasterization/dynamic_state3_multisample_rasterization.cpp +++ b/samples/extensions/dynamic_state3_multisample_rasterization/dynamic_state3_multisample_rasterization.cpp @@ -319,7 +319,7 @@ void DynamicState3MultisampleRasterization::draw_ui(VkCommandBuffer &cmd_buffer) if (gui) { auto &scale = to_scale_ui(sample_count); - auto &viewport = vkb::initializers::viewport(static_cast(width) * scale.x, static_cast(height) * scale.y, 0.0f, 1.0f); + auto viewport = vkb::initializers::viewport(static_cast(width) * scale.x, static_cast(height) * scale.y, 0.0f, 1.0f); vkCmdSetViewport(cmd_buffer, 0, 1, &viewport); auto draw_data = ImGui::GetDrawData(); From 37d42ce5d9a7d1404b33b5e7eeeaa64c1ed83949 Mon Sep 17 00:00:00 2001 From: pawel-jastrzebski-mobica Date: Wed, 29 Nov 2023 11:25:07 +0100 Subject: [PATCH 18/52] Change resources create/update logic. Signed-off-by: pawel-jastrzebski-mobica --- framework/api_vulkan_sample.h | 2 +- ...namic_state3_multisample_rasterization.cpp | 223 ++++++++---------- ...dynamic_state3_multisample_rasterization.h | 27 +-- 3 files changed, 110 insertions(+), 142 deletions(-) diff --git a/framework/api_vulkan_sample.h b/framework/api_vulkan_sample.h index 8348c21db..cc1514137 100644 --- a/framework/api_vulkan_sample.h +++ b/framework/api_vulkan_sample.h @@ -287,7 +287,7 @@ class ApiVulkanSample : public vkb::VulkanSample /** * @brief Creates a new (graphics) command pool object storing command buffers */ - void create_command_pool(); + virtual void create_command_pool(); /** * @brief Setup default depth and stencil views diff --git a/samples/extensions/dynamic_state3_multisample_rasterization/dynamic_state3_multisample_rasterization.cpp b/samples/extensions/dynamic_state3_multisample_rasterization/dynamic_state3_multisample_rasterization.cpp index 9c26d3f5c..845eb5816 100644 --- a/samples/extensions/dynamic_state3_multisample_rasterization/dynamic_state3_multisample_rasterization.cpp +++ b/samples/extensions/dynamic_state3_multisample_rasterization/dynamic_state3_multisample_rasterization.cpp @@ -147,49 +147,22 @@ void DynamicState3MultisampleRasterization::prepare_supported_sample_count_list( } } +void DynamicState3MultisampleRasterization::create_command_pool() +{ + VkCommandPoolCreateInfo command_pool_info = {}; + command_pool_info.sType = VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO; + command_pool_info.queueFamilyIndex = device->get_queue_by_flags(VK_QUEUE_GRAPHICS_BIT | VK_QUEUE_COMPUTE_BIT, 0).get_family_index(); + command_pool_info.flags = VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT; + VK_CHECK(vkCreateCommandPool(device->get_handle(), &command_pool_info, nullptr, &cmd_pool)); +} + bool DynamicState3MultisampleRasterization::prepare(const vkb::ApplicationOptions &options) { - if (!VulkanSample::prepare(options)) + if (!ApiVulkanSample::prepare(options)) { return false; } - depth_format = vkb::get_suitable_depth_format(device->get_gpu().get_handle()); - - // Create synchronization objects - VkSemaphoreCreateInfo semaphore_create_info = vkb::initializers::semaphore_create_info(); - // Create a semaphore used to synchronize image presentation - // Ensures that the current swapchain render target has completed presentation and has been released by the presentation engine, ready for rendering - VK_CHECK(vkCreateSemaphore(device->get_handle(), &semaphore_create_info, nullptr, &semaphores.acquired_image_ready)); - // Create a semaphore used to synchronize command submission - // Ensures that the image is not presented until all commands have been sumbitted and executed - VK_CHECK(vkCreateSemaphore(device->get_handle(), &semaphore_create_info, nullptr, &semaphores.render_complete)); - - // Set up submit info structure - // Semaphores will stay the same during application lifetime - // Command buffer submission info is set by each example - submit_info = vkb::initializers::submit_info(); - submit_info.pWaitDstStageMask = &submit_pipeline_stages; - - if (window->get_window_mode() != vkb::Window::Mode::Headless) - { - submit_info.waitSemaphoreCount = 1; - submit_info.pWaitSemaphores = &semaphores.acquired_image_ready; - submit_info.signalSemaphoreCount = 1; - submit_info.pSignalSemaphores = &semaphores.render_complete; - } - - queue = device->get_suitable_graphics_queue().get_handle(); - - create_swapchain_buffers(); - create_command_pool(); - create_command_buffers(); - create_synchronization_primitives(); - create_pipeline_cache(); - - width = get_render_context().get_surface_extent().width; - height = get_render_context().get_surface_extent().height; - prepare_supported_sample_count_list(); camera.type = vkb::CameraType::LookAt; @@ -199,16 +172,14 @@ bool DynamicState3MultisampleRasterization::prepare(const vkb::ApplicationOption // Note: Using reversed depth-buffer for increased precision, so Znear and Zfar are flipped camera.set_perspective(60.0f, static_cast(width) / static_cast(height), 256.0f, 0.1f); load_assets(); - setup_render_pass(); - setup_framebuffer(); + prepare_uniform_buffers(); setup_descriptor_set_layout(); prepare_pipelines(); setup_descriptor_pool(); setup_descriptor_sets(); - build_command_buffers(); - prepare_gui(); + update_resources(); prepared = true; return true; @@ -429,11 +400,6 @@ void DynamicState3MultisampleRasterization::setup_descriptor_sets() void DynamicState3MultisampleRasterization::setup_render_pass() { - if (render_pass != VK_NULL_HANDLE) - { - vkDestroyRenderPass(get_device().get_handle(), render_pass, nullptr); - } - VkPhysicalDeviceProperties gpu_properties; vkGetPhysicalDeviceProperties(get_device().get_gpu().get_handle(), &gpu_properties); @@ -442,15 +408,6 @@ void DynamicState3MultisampleRasterization::setup_render_pass() bool msaa_enabled = sample_count != VK_SAMPLE_COUNT_1_BIT; - std::unique_ptr color_attachment = std::make_unique(); - std::unique_ptr depth_attachment = std::make_unique(); - - create_color_attachment(render_context->get_format(), color_attachment.get()); - framebuffer_attachments.push_back(std::move(color_attachment)); - - create_depth_attachment(depth_format, depth_attachment.get()); - framebuffer_attachments.push_back(std::move(depth_attachment)); - std::array attachments = {}; // Color attachment attachments[0].format = render_context->get_format(); @@ -538,51 +495,54 @@ void DynamicState3MultisampleRasterization::setup_render_pass() } // Create attachment that will be used in a framebuffer. -void DynamicState3MultisampleRasterization::create_color_attachment(VkFormat format, FrameBufferAttachment *attachment) +void DynamicState3MultisampleRasterization::setup_color_attachment() { - attachment->format = format; - - VkImageCreateInfo image = vkb::initializers::image_create_info(); - image.imageType = VK_IMAGE_TYPE_2D; - image.format = format; - image.extent.width = get_render_context().get_surface_extent().width; - image.extent.height = get_render_context().get_surface_extent().height; - image.extent.depth = 1; - image.mipLevels = 1; - image.arrayLayers = 1; - image.samples = sample_count; - image.tiling = VK_IMAGE_TILING_OPTIMAL; - image.usage = VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT | VK_IMAGE_USAGE_SAMPLED_BIT | VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT; - - VkMemoryAllocateInfo memory_allocate_info = vkb::initializers::memory_allocate_info(); - VkMemoryRequirements memory_requirements; - - VK_CHECK(vkCreateImage(get_device().get_handle(), &image, nullptr, &attachment->image)); - vkGetImageMemoryRequirements(get_device().get_handle(), attachment->image, &memory_requirements); - memory_allocate_info.allocationSize = memory_requirements.size; - memory_allocate_info.memoryTypeIndex = get_device().get_memory_type(memory_requirements.memoryTypeBits, VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT); - VK_CHECK(vkAllocateMemory(get_device().get_handle(), &memory_allocate_info, nullptr, &attachment->mem)); - VK_CHECK(vkBindImageMemory(get_device().get_handle(), attachment->image, attachment->mem, 0)); - - VkImageViewCreateInfo image_view_create_info = vkb::initializers::image_view_create_info(); + VkImageCreateInfo image_create_info{}; + image_create_info.sType = VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO; + image_create_info.imageType = VK_IMAGE_TYPE_2D; + image_create_info.format = render_context->get_format(); + image_create_info.extent = {get_render_context().get_surface_extent().width, get_render_context().get_surface_extent().height, 1}; + image_create_info.mipLevels = 1; + image_create_info.arrayLayers = 1; + image_create_info.samples = sample_count; + image_create_info.tiling = VK_IMAGE_TILING_OPTIMAL; + image_create_info.usage = VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT | VK_IMAGE_USAGE_SAMPLED_BIT | VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT; + + VK_CHECK(vkCreateImage(device->get_handle(), &image_create_info, nullptr, &color_attachment.image)); + VkMemoryRequirements memReqs{}; + vkGetImageMemoryRequirements(device->get_handle(), color_attachment.image, &memReqs); + + VkMemoryAllocateInfo memory_allocation{}; + memory_allocation.sType = VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO; + memory_allocation.allocationSize = memReqs.size; + memory_allocation.memoryTypeIndex = device->get_memory_type(memReqs.memoryTypeBits, VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT); + VK_CHECK(vkAllocateMemory(device->get_handle(), &memory_allocation, nullptr, &color_attachment.mem)); + VK_CHECK(vkBindImageMemory(device->get_handle(), color_attachment.image, color_attachment.mem, 0)); + + VkImageViewCreateInfo image_view_create_info{}; + image_view_create_info.sType = VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO; image_view_create_info.viewType = VK_IMAGE_VIEW_TYPE_2D; - image_view_create_info.format = format; - image_view_create_info.subresourceRange = {}; - image_view_create_info.subresourceRange.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT; + image_view_create_info.image = color_attachment.image; + image_view_create_info.format = render_context->get_format(); image_view_create_info.subresourceRange.baseMipLevel = 0; image_view_create_info.subresourceRange.levelCount = 1; image_view_create_info.subresourceRange.baseArrayLayer = 0; image_view_create_info.subresourceRange.layerCount = 1; - image_view_create_info.image = attachment->image; - VK_CHECK(vkCreateImageView(get_device().get_handle(), &image_view_create_info, nullptr, &attachment->view)); + image_view_create_info.subresourceRange.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT; + // Stencil aspect should only be set on depth + stencil formats (VK_FORMAT_D16_UNORM_S8_UINT..VK_FORMAT_D32_SFLOAT_S8_UINT + if (depth_format >= VK_FORMAT_D16_UNORM_S8_UINT) + { + image_view_create_info.subresourceRange.aspectMask |= VK_IMAGE_ASPECT_STENCIL_BIT; + } + VK_CHECK(vkCreateImageView(device->get_handle(), &image_view_create_info, nullptr, &color_attachment.view)); } -void DynamicState3MultisampleRasterization::create_depth_attachment(VkFormat format, FrameBufferAttachment *attachment) +void DynamicState3MultisampleRasterization::setup_depth_stencil() { VkImageCreateInfo image_create_info{}; image_create_info.sType = VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO; image_create_info.imageType = VK_IMAGE_TYPE_2D; - image_create_info.format = format; + image_create_info.format = depth_format; image_create_info.extent = {get_render_context().get_surface_extent().width, get_render_context().get_surface_extent().height, 1}; image_create_info.mipLevels = 1; image_create_info.arrayLayers = 1; @@ -590,22 +550,22 @@ void DynamicState3MultisampleRasterization::create_depth_attachment(VkFormat for image_create_info.tiling = VK_IMAGE_TILING_OPTIMAL; image_create_info.usage = VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT | VK_IMAGE_USAGE_TRANSFER_SRC_BIT; - VK_CHECK(vkCreateImage(device->get_handle(), &image_create_info, nullptr, &(attachment->image))); + VK_CHECK(vkCreateImage(device->get_handle(), &image_create_info, nullptr, &depth_stencil.image)); VkMemoryRequirements memReqs{}; - vkGetImageMemoryRequirements(device->get_handle(), attachment->image, &memReqs); + vkGetImageMemoryRequirements(device->get_handle(), depth_stencil.image, &memReqs); VkMemoryAllocateInfo memory_allocation{}; memory_allocation.sType = VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO; memory_allocation.allocationSize = memReqs.size; memory_allocation.memoryTypeIndex = device->get_memory_type(memReqs.memoryTypeBits, VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT); - VK_CHECK(vkAllocateMemory(device->get_handle(), &memory_allocation, nullptr, &(attachment->mem))); - VK_CHECK(vkBindImageMemory(device->get_handle(), attachment->image, attachment->mem, 0)); + VK_CHECK(vkAllocateMemory(device->get_handle(), &memory_allocation, nullptr, &depth_stencil.mem)); + VK_CHECK(vkBindImageMemory(device->get_handle(), depth_stencil.image, depth_stencil.mem, 0)); VkImageViewCreateInfo image_view_create_info{}; image_view_create_info.sType = VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO; image_view_create_info.viewType = VK_IMAGE_VIEW_TYPE_2D; - image_view_create_info.image = attachment->image; - image_view_create_info.format = format; + image_view_create_info.image = depth_stencil.image; + image_view_create_info.format = depth_format; image_view_create_info.subresourceRange.baseMipLevel = 0; image_view_create_info.subresourceRange.levelCount = 1; image_view_create_info.subresourceRange.baseArrayLayer = 0; @@ -616,16 +576,19 @@ void DynamicState3MultisampleRasterization::create_depth_attachment(VkFormat for { image_view_create_info.subresourceRange.aspectMask |= VK_IMAGE_ASPECT_STENCIL_BIT; } - VK_CHECK(vkCreateImageView(device->get_handle(), &image_view_create_info, nullptr, &(attachment->view))); + VK_CHECK(vkCreateImageView(device->get_handle(), &image_view_create_info, nullptr, &depth_stencil.view)); } void DynamicState3MultisampleRasterization::setup_framebuffer() { + setup_color_attachment(); + setup_depth_stencil(); + VkImageView attachments[3]; // Depth/Stencil attachment is the same for all frame buffers - attachments[0] = framebuffer_attachments[0]->view; - attachments[2] = framebuffer_attachments[1]->view; + attachments[0] = color_attachment.view; + attachments[2] = depth_stencil.view; VkFramebufferCreateInfo framebuffer_create_info = {}; framebuffer_create_info.sType = VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO; @@ -660,11 +623,6 @@ void DynamicState3MultisampleRasterization::setup_framebuffer() void DynamicState3MultisampleRasterization::prepare_pipelines() { - if (pipeline != VK_NULL_HANDLE) - { - vkDestroyPipeline(get_device().get_handle(), pipeline, nullptr); - } - VkPipelineInputAssemblyStateCreateInfo input_assembly_state = vkb::initializers::pipeline_input_assembly_state_create_info( VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST, @@ -810,6 +768,7 @@ void DynamicState3MultisampleRasterization::render(float delta_time) return; } draw(); + if (camera.updated) { update_uniform_buffers(); @@ -818,38 +777,40 @@ void DynamicState3MultisampleRasterization::render(float delta_time) void DynamicState3MultisampleRasterization::update_resources() { + prepared = false; + if (device) { device->wait_idle(); - // destroy framebuffer attachments: - for (auto &att : framebuffer_attachments) + // Destroy color attachment + vkDestroyImageView(get_device().get_handle(), depth_stencil.view, nullptr); + vkDestroyImage(get_device().get_handle(), depth_stencil.image, nullptr); + vkFreeMemory(get_device().get_handle(), depth_stencil.mem, nullptr); + depth_stencil.view = VK_NULL_HANDLE; + depth_stencil.image = VK_NULL_HANDLE; + depth_stencil.mem = VK_NULL_HANDLE; + + // Destroy depth/stencil attachment + vkDestroyImageView(get_device().get_handle(), color_attachment.view, nullptr); + vkDestroyImage(get_device().get_handle(), color_attachment.image, nullptr); + vkFreeMemory(get_device().get_handle(), color_attachment.mem, nullptr); + color_attachment.view = VK_NULL_HANDLE; + color_attachment.image = VK_NULL_HANDLE; + color_attachment.mem = VK_NULL_HANDLE; + + if (render_pass != VK_NULL_HANDLE) { - att->destroy(get_device().get_handle()); + vkDestroyRenderPass(get_device().get_handle(), render_pass, nullptr); + render_pass = VK_NULL_HANDLE; } - framebuffer_attachments.clear(); - - std::unique_ptr color_attachment = std::make_unique(); - std::unique_ptr depth_attachment = std::make_unique(); - - create_color_attachment(render_context->get_format(), color_attachment.get()); - framebuffer_attachments.push_back(std::move(color_attachment)); - - create_depth_attachment(depth_format, depth_attachment.get()); - framebuffer_attachments.push_back(std::move(depth_attachment)); - - width = get_render_context().get_surface_extent().width; - height = get_render_context().get_surface_extent().height; - - camera.set_perspective(60.0f, static_cast(width) / static_cast(height), 256.0f, 0.1f); - - // All resources are recreated during setup setup_render_pass(); setup_framebuffer(); - prepare_pipelines(); - build_command_buffers(); + rebuild_command_buffers(); } + + prepared = true; } void DynamicState3MultisampleRasterization::on_update_ui_overlay(vkb::Drawer &drawer) @@ -865,6 +826,20 @@ void DynamicState3MultisampleRasterization::on_update_ui_overlay(vkb::Drawer &dr } } +bool DynamicState3MultisampleRasterization::resize(const uint32_t _width, const uint32_t _height) +{ + if (!ApiVulkanSample::resize(_width, _height)) + return false; + + prepared = false; + + update_resources(); + + prepared = true; + return true; +} + + std::unique_ptr create_dynamic_state3_multisample_rasterization() { return std::make_unique(); diff --git a/samples/extensions/dynamic_state3_multisample_rasterization/dynamic_state3_multisample_rasterization.h b/samples/extensions/dynamic_state3_multisample_rasterization/dynamic_state3_multisample_rasterization.h index 57a6da906..2ca7208eb 100644 --- a/samples/extensions/dynamic_state3_multisample_rasterization/dynamic_state3_multisample_rasterization.h +++ b/samples/extensions/dynamic_state3_multisample_rasterization/dynamic_state3_multisample_rasterization.h @@ -82,27 +82,18 @@ class DynamicState3MultisampleRasterization : public ApiVulkanSample } push_const_block; - struct FrameBufferAttachment - { - VkImage image; - VkDeviceMemory mem; - VkImageView view; - VkFormat format; - void destroy(VkDevice device) - { - vkDestroyImageView(device, view, nullptr); - vkDestroyImage(device, image, nullptr); - vkFreeMemory(device, mem, nullptr); - } - }; - struct GUI_settings { int gui_sample_count = 0; std::vector sample_counts; } gui_settings; - std::vector> framebuffer_attachments; + struct + { + VkImage image; + VkDeviceMemory mem; + VkImageView view; + } color_attachment; VkPhysicalDeviceExtendedDynamicStateFeaturesEXT extended_dynamic_state_features{}; VkPhysicalDeviceExtendedDynamicState2FeaturesEXT extended_dynamic_state_2_features{}; @@ -118,6 +109,9 @@ class DynamicState3MultisampleRasterization : public ApiVulkanSample virtual void render(float delta_time) override; virtual void setup_framebuffer() override; virtual void on_update_ui_overlay(vkb::Drawer &drawer) override; + virtual bool resize(const uint32_t _width, const uint32_t _height) override; + virtual void setup_depth_stencil() override; + virtual void create_command_pool() override; void load_assets(); void setup_descriptor_pool(); void setup_descriptor_set_layout(); @@ -127,8 +121,7 @@ class DynamicState3MultisampleRasterization : public ApiVulkanSample void update_uniform_buffers(); void draw(); void prepare_supported_sample_count_list(); - void create_color_attachment(VkFormat format, FrameBufferAttachment *attachment); - void create_depth_attachment(VkFormat format, FrameBufferAttachment *attachment); + void setup_color_attachment(); void draw_ui(VkCommandBuffer &); void update_resources(); }; From 82be0a35a3b132b24b3d4885babdadec3867a31c Mon Sep 17 00:00:00 2001 From: pawel-jastrzebski-mobica Date: Wed, 29 Nov 2023 11:29:00 +0100 Subject: [PATCH 19/52] Fix clang-format. Signed-off-by: pawel-jastrzebski-mobica --- .../dynamic_state3_multisample_rasterization.cpp | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/samples/extensions/dynamic_state3_multisample_rasterization/dynamic_state3_multisample_rasterization.cpp b/samples/extensions/dynamic_state3_multisample_rasterization/dynamic_state3_multisample_rasterization.cpp index 845eb5816..efa60f938 100644 --- a/samples/extensions/dynamic_state3_multisample_rasterization/dynamic_state3_multisample_rasterization.cpp +++ b/samples/extensions/dynamic_state3_multisample_rasterization/dynamic_state3_multisample_rasterization.cpp @@ -290,7 +290,7 @@ void DynamicState3MultisampleRasterization::draw_ui(VkCommandBuffer &cmd_buffer) if (gui) { auto &scale = to_scale_ui(sample_count); - auto viewport = vkb::initializers::viewport(static_cast(width) * scale.x, static_cast(height) * scale.y, 0.0f, 1.0f); + auto viewport = vkb::initializers::viewport(static_cast(width) * scale.x, static_cast(height) * scale.y, 0.0f, 1.0f); vkCmdSetViewport(cmd_buffer, 0, 1, &viewport); auto draw_data = ImGui::GetDrawData(); @@ -787,7 +787,7 @@ void DynamicState3MultisampleRasterization::update_resources() vkDestroyImageView(get_device().get_handle(), depth_stencil.view, nullptr); vkDestroyImage(get_device().get_handle(), depth_stencil.image, nullptr); vkFreeMemory(get_device().get_handle(), depth_stencil.mem, nullptr); - depth_stencil.view = VK_NULL_HANDLE; + depth_stencil.view = VK_NULL_HANDLE; depth_stencil.image = VK_NULL_HANDLE; depth_stencil.mem = VK_NULL_HANDLE; @@ -795,7 +795,7 @@ void DynamicState3MultisampleRasterization::update_resources() vkDestroyImageView(get_device().get_handle(), color_attachment.view, nullptr); vkDestroyImage(get_device().get_handle(), color_attachment.image, nullptr); vkFreeMemory(get_device().get_handle(), color_attachment.mem, nullptr); - color_attachment.view = VK_NULL_HANDLE; + color_attachment.view = VK_NULL_HANDLE; color_attachment.image = VK_NULL_HANDLE; color_attachment.mem = VK_NULL_HANDLE; @@ -839,7 +839,6 @@ bool DynamicState3MultisampleRasterization::resize(const uint32_t _width, const return true; } - std::unique_ptr create_dynamic_state3_multisample_rasterization() { return std::make_unique(); From ccc694c782a1976b74914af4b0d3d2667782c87e Mon Sep 17 00:00:00 2001 From: pawel-jastrzebski-mobica Date: Fri, 1 Dec 2023 12:09:02 +0100 Subject: [PATCH 20/52] Fix format for vertex input attribute descriptor. Signed-off-by: pawel-jastrzebski-mobica --- .../dynamic_state3_multisample_rasterization.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/extensions/dynamic_state3_multisample_rasterization/dynamic_state3_multisample_rasterization.cpp b/samples/extensions/dynamic_state3_multisample_rasterization/dynamic_state3_multisample_rasterization.cpp index efa60f938..617b2ba49 100644 --- a/samples/extensions/dynamic_state3_multisample_rasterization/dynamic_state3_multisample_rasterization.cpp +++ b/samples/extensions/dynamic_state3_multisample_rasterization/dynamic_state3_multisample_rasterization.cpp @@ -716,7 +716,7 @@ void DynamicState3MultisampleRasterization::prepare_pipelines() std::vector vertex_input_attributes = { vkb::initializers::vertex_input_attribute_description(0, 0, VK_FORMAT_R32G32B32_SFLOAT, 0), // Position vkb::initializers::vertex_input_attribute_description(1, 1, VK_FORMAT_R32G32B32_SFLOAT, 0), // Normal - vkb::initializers::vertex_input_attribute_description(2, 2, VK_FORMAT_R32G32B32_SFLOAT, 0), // TexCoord + vkb::initializers::vertex_input_attribute_description(2, 2, VK_FORMAT_R32G32_SFLOAT, 0), // TexCoord }; VkPipelineVertexInputStateCreateInfo vertex_input_state = vkb::initializers::pipeline_vertex_input_state_create_info(); From c7b872fcb79e7a2fdf71f50999c4b6672624bb89 Mon Sep 17 00:00:00 2001 From: pawel-jastrzebski-mobica Date: Fri, 1 Dec 2023 12:25:28 +0100 Subject: [PATCH 21/52] Separate rendering for scene meshes with different rasterizer settings. Signed-off-by: pawel-jastrzebski-mobica --- ...namic_state3_multisample_rasterization.cpp | 150 ++++++++++++------ ...dynamic_state3_multisample_rasterization.h | 8 +- 2 files changed, 108 insertions(+), 50 deletions(-) diff --git a/samples/extensions/dynamic_state3_multisample_rasterization/dynamic_state3_multisample_rasterization.cpp b/samples/extensions/dynamic_state3_multisample_rasterization/dynamic_state3_multisample_rasterization.cpp index 617b2ba49..a1e72ee16 100644 --- a/samples/extensions/dynamic_state3_multisample_rasterization/dynamic_state3_multisample_rasterization.cpp +++ b/samples/extensions/dynamic_state3_multisample_rasterization/dynamic_state3_multisample_rasterization.cpp @@ -18,6 +18,7 @@ #include "dynamic_state3_multisample_rasterization.h" #include "gltf_loader.h" +#include "scene_graph/components/material.h" #include "scene_graph/components/mesh.h" #include "scene_graph/components/pbr_material.h" #include "scene_graph/components/sub_mesh.h" @@ -39,6 +40,7 @@ DynamicState3MultisampleRasterization::~DynamicState3MultisampleRasterization() if (device) { vkDestroyPipeline(get_device().get_handle(), pipeline, nullptr); + vkDestroyPipeline(get_device().get_handle(), pipeline_inversed_rasterizer, nullptr); vkDestroyPipelineLayout(get_device().get_handle(), pipeline_layout, nullptr); vkDestroyDescriptorSetLayout(get_device().get_handle(), descriptor_set_layout, nullptr); } @@ -185,6 +187,58 @@ bool DynamicState3MultisampleRasterization::prepare(const vkb::ApplicationOption return true; } +void DynamicState3MultisampleRasterization::draw_node(VkCommandBuffer &draw_cmd_buffer, SceneNode &node) +{ + const auto &vertex_buffer_pos = node.sub_mesh->vertex_buffers.at("position"); + const auto &vertex_buffer_normal = node.sub_mesh->vertex_buffers.at("normal"); + const auto &vertex_buffer_uv = node.sub_mesh->vertex_buffers.at("texcoord_0"); + auto &index_buffer = node.sub_mesh->index_buffer; + + // Pass data for the current node via push commands + auto node_material = dynamic_cast(node.sub_mesh->get_material()); + push_const_block.model_matrix = node.node->get_transform().get_world_matrix(); + + push_const_block.base_color_factor = node_material->base_color_factor; + push_const_block.metallic_factor = node_material->metallic_factor; + push_const_block.roughness_factor = node_material->roughness_factor; + push_const_block.normal_texture_index = -1; + push_const_block.pbr_texture_index = -1; + + auto base_color_texture = node_material->textures.find("base_color_texture"); + + if (base_color_texture != node_material->textures.end()) + { + auto base_color_texture_name = base_color_texture->second->get_name(); + push_const_block.base_texture_index = name_to_texture_id.at(base_color_texture_name); + } + + auto normal_texture = node_material->textures.find("normal_texture"); + + if (normal_texture != node_material->textures.end()) + { + auto normal_texture_name = normal_texture->second->get_name(); + push_const_block.normal_texture_index = name_to_texture_id.at(normal_texture_name); + } + + auto metallic_roughness_texture = node_material->textures.find("metallic_roughness_texture"); + + if (metallic_roughness_texture != node_material->textures.end()) + { + auto metallic_roughness_texture_name = metallic_roughness_texture->second->get_name(); + push_const_block.pbr_texture_index = name_to_texture_id.at(metallic_roughness_texture_name); + } + + vkCmdPushConstants(draw_cmd_buffer, pipeline_layout, VK_SHADER_STAGE_VERTEX_BIT, 0, sizeof(push_const_block), &push_const_block); + + VkDeviceSize offsets[1] = {0}; + vkCmdBindVertexBuffers(draw_cmd_buffer, 0, 1, vertex_buffer_pos.get(), offsets); + vkCmdBindVertexBuffers(draw_cmd_buffer, 1, 1, vertex_buffer_normal.get(), offsets); + vkCmdBindVertexBuffers(draw_cmd_buffer, 2, 1, vertex_buffer_uv.get(), offsets); + vkCmdBindIndexBuffer(draw_cmd_buffer, index_buffer->get_handle(), 0, node.sub_mesh->index_type); + + vkCmdDraw(draw_cmd_buffer, node.sub_mesh->vertex_indices, 1, 0, 0); +} + void DynamicState3MultisampleRasterization::build_command_buffers() { if (!check_command_buffers()) @@ -222,59 +276,30 @@ void DynamicState3MultisampleRasterization::build_command_buffers() VkRect2D scissor = vkb::initializers::rect2D(width, height, 0, 0); vkCmdSetScissor(draw_cmd_buffers[i], 0, 1, &scissor); - vkCmdBindPipeline(draw_cmd_buffers[i], VK_PIPELINE_BIND_POINT_GRAPHICS, pipeline); vkCmdBindDescriptorSets(draw_cmd_buffers[i], VK_PIPELINE_BIND_POINT_GRAPHICS, pipeline_layout, 0, 1, &descriptor_set, 0, nullptr); - for (auto &node : scene_nodes) - { - const auto &vertex_buffer_pos = node.sub_mesh->vertex_buffers.at("position"); - const auto &vertex_buffer_normal = node.sub_mesh->vertex_buffers.at("normal"); - const auto &vertex_buffer_uv = node.sub_mesh->vertex_buffers.at("texcoord_0"); - auto &index_buffer = node.sub_mesh->index_buffer; - - // Pass data for the current node via push commands - auto node_material = dynamic_cast(node.sub_mesh->get_material()); - push_const_block.model_matrix = node.node->get_transform().get_world_matrix(); - - push_const_block.base_color_factor = node_material->base_color_factor; - push_const_block.metallic_factor = node_material->metallic_factor; - push_const_block.roughness_factor = node_material->roughness_factor; - push_const_block.normal_texture_index = -1; - push_const_block.pbr_texture_index = -1; - - auto base_color_texture = node_material->textures.find("base_color_texture"); - - if (base_color_texture != node_material->textures.end()) - { - auto base_color_texture_name = base_color_texture->second->get_name(); - push_const_block.base_texture_index = name_to_texture_id.at(base_color_texture_name); - } - - auto normal_texture = node_material->textures.find("normal_texture"); - - if (normal_texture != node_material->textures.end()) - { - auto normal_texture_name = normal_texture->second->get_name(); - push_const_block.normal_texture_index = name_to_texture_id.at(normal_texture_name); - } + vkCmdBindPipeline(draw_cmd_buffers[i], VK_PIPELINE_BIND_POINT_GRAPHICS, pipeline); - auto metallic_roughness_texture = node_material->textures.find("metallic_roughness_texture"); + for (auto &node : scene_nodes_opaque) + { + draw_node(draw_cmd_buffers[i], node); + } - if (metallic_roughness_texture != node_material->textures.end()) - { - auto metallic_roughness_texture_name = metallic_roughness_texture->second->get_name(); - push_const_block.pbr_texture_index = name_to_texture_id.at(metallic_roughness_texture_name); - } + for (auto &node : scene_nodes_transparent) + { + draw_node(draw_cmd_buffers[i], node); + } - vkCmdPushConstants(draw_cmd_buffers[i], pipeline_layout, VK_SHADER_STAGE_VERTEX_BIT, 0, sizeof(push_const_block), &push_const_block); + vkCmdBindPipeline(draw_cmd_buffers[i], VK_PIPELINE_BIND_POINT_GRAPHICS, pipeline_inversed_rasterizer); - VkDeviceSize offsets[1] = {0}; - vkCmdBindVertexBuffers(draw_cmd_buffers[i], 0, 1, vertex_buffer_pos.get(), offsets); - vkCmdBindVertexBuffers(draw_cmd_buffers[i], 1, 1, vertex_buffer_normal.get(), offsets); - vkCmdBindVertexBuffers(draw_cmd_buffers[i], 2, 1, vertex_buffer_uv.get(), offsets); - vkCmdBindIndexBuffer(draw_cmd_buffers[i], index_buffer->get_handle(), 0, node.sub_mesh->index_type); + for (auto &node : scene_nodes_opaque_flipped) + { + draw_node(draw_cmd_buffers[i], node); + } - vkCmdDraw(draw_cmd_buffers[i], node.sub_mesh->vertex_indices, 1, 0, 0); + for (auto &node : scene_nodes_transparent_flipped) + { + draw_node(draw_cmd_buffers[i], node); } draw_ui(draw_cmd_buffers[i]); @@ -316,14 +341,32 @@ void DynamicState3MultisampleRasterization::load_assets() vkb::GLTFLoader loader{get_device()}; scene = loader.read_scene_from_file("scenes/space_module/SpaceModule.gltf"); assert(scene); - // Store all scene nodes in a linear vector for easier access + // Store all scene nodes in separate vectors for easier rendering for (auto &mesh : scene->get_components()) { for (auto &node : mesh->get_nodes()) { for (auto &sub_mesh : mesh->get_submeshes()) { - scene_nodes.push_back({mesh->get_name(), node, sub_mesh}); + auto &scale = node->get_transform().get_scale(); + + bool flipped = scale.x * scale.y * scale.z < 0; + bool transparent = sub_mesh->get_material()->alpha_mode == vkb::sg::AlphaMode::Blend; + + if (sub_mesh->get_material()->alpha_mode == vkb::sg::AlphaMode::Blend) // transparent material + { + if (flipped) + scene_nodes_transparent_flipped.push_back({node, sub_mesh}); + else + scene_nodes_transparent.push_back({node, sub_mesh}); + } + else // opaque material + { + if (flipped) + scene_nodes_opaque_flipped.push_back({node, sub_mesh}); + else + scene_nodes_opaque.push_back({node, sub_mesh}); + } } } } @@ -730,6 +773,17 @@ void DynamicState3MultisampleRasterization::prepare_pipelines() shader_stages[0] = load_shader("dynamic_state3_multisample_rasterization/model.vert", VK_SHADER_STAGE_VERTEX_BIT); shader_stages[1] = load_shader("dynamic_state3_multisample_rasterization/model.frag", VK_SHADER_STAGE_FRAGMENT_BIT); VK_CHECK(vkCreateGraphicsPipelines(get_device().get_handle(), pipeline_cache, 1, &pipeline_create_info, nullptr, &pipeline)); + + // Add another pipeline since parts of the scene have to be rendered using VK_FRONT_FACE_CLOCKWISE + VkPipelineRasterizationStateCreateInfo rasterization_state_inversed_rasterizer = + vkb::initializers::pipeline_rasterization_state_create_info( + VK_POLYGON_MODE_FILL, + VK_CULL_MODE_BACK_BIT, + VK_FRONT_FACE_CLOCKWISE, + 0); + + pipeline_create_info.pRasterizationState = &rasterization_state_inversed_rasterizer; + VK_CHECK(vkCreateGraphicsPipelines(get_device().get_handle(), pipeline_cache, 1, &pipeline_create_info, nullptr, &pipeline_inversed_rasterizer)); } // Prepare and initialize uniform buffer containing shader uniforms diff --git a/samples/extensions/dynamic_state3_multisample_rasterization/dynamic_state3_multisample_rasterization.h b/samples/extensions/dynamic_state3_multisample_rasterization/dynamic_state3_multisample_rasterization.h index 2ca7208eb..1229e2e01 100644 --- a/samples/extensions/dynamic_state3_multisample_rasterization/dynamic_state3_multisample_rasterization.h +++ b/samples/extensions/dynamic_state3_multisample_rasterization/dynamic_state3_multisample_rasterization.h @@ -35,11 +35,13 @@ class DynamicState3MultisampleRasterization : public ApiVulkanSample struct SceneNode { - std::string name; vkb::sg::Node *node; vkb::sg::SubMesh *sub_mesh; }; - std::vector scene_nodes; + std::vector scene_nodes_opaque; + std::vector scene_nodes_opaque_flipped; + std::vector scene_nodes_transparent; + std::vector scene_nodes_transparent_flipped; struct UniformData { @@ -49,6 +51,7 @@ class DynamicState3MultisampleRasterization : public ApiVulkanSample std::unique_ptr uniform_buffer; VkPipeline pipeline; + VkPipeline pipeline_inversed_rasterizer; VkPipelineLayout pipeline_layout; VkDescriptorSet descriptor_set; VkDescriptorSetLayout descriptor_set_layout; @@ -124,6 +127,7 @@ class DynamicState3MultisampleRasterization : public ApiVulkanSample void setup_color_attachment(); void draw_ui(VkCommandBuffer &); void update_resources(); + void draw_node(VkCommandBuffer &, SceneNode &); }; std::unique_ptr create_dynamic_state3_multisample_rasterization(); From 5d04e703bfa94e495ac51c3522228910799b86bc Mon Sep 17 00:00:00 2001 From: pawel-jastrzebski-mobica Date: Mon, 4 Dec 2023 15:18:05 +0100 Subject: [PATCH 22/52] Change camera position. Signed-off-by: pawel-jastrzebski-mobica --- .../dynamic_state3_multisample_rasterization.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/samples/extensions/dynamic_state3_multisample_rasterization/dynamic_state3_multisample_rasterization.cpp b/samples/extensions/dynamic_state3_multisample_rasterization/dynamic_state3_multisample_rasterization.cpp index a1e72ee16..4c9533769 100644 --- a/samples/extensions/dynamic_state3_multisample_rasterization/dynamic_state3_multisample_rasterization.cpp +++ b/samples/extensions/dynamic_state3_multisample_rasterization/dynamic_state3_multisample_rasterization.cpp @@ -168,8 +168,9 @@ bool DynamicState3MultisampleRasterization::prepare(const vkb::ApplicationOption prepare_supported_sample_count_list(); camera.type = vkb::CameraType::LookAt; - camera.set_position(glm::vec3(1.9f, 2.05f, -18.0f)); - camera.set_rotation(glm::vec3(-11.25f, -38.0f, 0.0f)); + camera.set_position(glm::vec3(1.9f, 10.f, -18.f)); + camera.set_rotation(glm::vec3(0.f, -40.f, 0.f)); + camera.rotation_speed = 0.001f; // Note: Using reversed depth-buffer for increased precision, so Znear and Zfar are flipped camera.set_perspective(60.0f, static_cast(width) / static_cast(height), 256.0f, 0.1f); From 792fc0a1b41a690d9ca9a4077f2faded0842000f Mon Sep 17 00:00:00 2001 From: pawel-jastrzebski-mobica Date: Mon, 4 Dec 2023 15:21:06 +0100 Subject: [PATCH 23/52] Fix light position. Signed-off-by: pawel-jastrzebski-mobica --- shaders/dynamic_state3_multisample_rasterization/model.vert | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/shaders/dynamic_state3_multisample_rasterization/model.vert b/shaders/dynamic_state3_multisample_rasterization/model.vert index 8bb9fca79..db8ef3ccc 100644 --- a/shaders/dynamic_state3_multisample_rasterization/model.vert +++ b/shaders/dynamic_state3_multisample_rasterization/model.vert @@ -55,7 +55,7 @@ void main() gl_Position = ubo.projection * localPos; outNormal = mat3(ubo.view * push_constants.model) * inNormal; vec3 lightPos = vec3(10.0, -10.0, 10.0); - outLightVec = lightPos.xyz - localPos.xyz; + outLightVec = lightPos.xyz; outViewVec = -localPos.xyz; outBaseColorFactor = push_constants.base_color_factor; outMetallicFactor = push_constants.metallic_factor; From 94db8df8c0d1f9ecce840c437e4da599e193d1c5 Mon Sep 17 00:00:00 2001 From: pawel-jastrzebski-mobica Date: Mon, 4 Dec 2023 15:58:58 +0100 Subject: [PATCH 24/52] Update README files. Signed-off-by: pawel-jastrzebski-mobica --- .../README.adoc | 15 +++++++++++++++ .../README.md | 16 ++++++++++++++++ 2 files changed, 31 insertions(+) diff --git a/samples/extensions/dynamic_state3_multisample_rasterization/README.adoc b/samples/extensions/dynamic_state3_multisample_rasterization/README.adoc index a982566af..cc2d74c8a 100644 --- a/samples/extensions/dynamic_state3_multisample_rasterization/README.adoc +++ b/samples/extensions/dynamic_state3_multisample_rasterization/README.adoc @@ -40,6 +40,21 @@ To use the extension: 2) Method `void vkCmdSetRasterizationSamplesEXT(VkCommandBuffer commandBuffer, VkSampleCountFlagBits rasterizationSamples)` should be called between `vkCmdBeginRenderPass` and `vkCmdEndRenderPass`. +== Known issues + +The extension always reports the following validation error when enabled: +.... +[error] [framework\core\instance.cpp:50] -1100021871 - UNASSIGNED-GeneralParameterError-UnrecognizedValue: Validation Error: [ UNASSIGNED-GeneralParameterError-UnrecognizedValue ] Object 0: handle = 0x15d301ca4e0, type = VK_OBJECT_TYPE_DEVICE; | MessageID = 0xbe6eff91 | vkCreateGraphicsPipelines: value of pCreateInfos[0].pDynamicState->pDynamicStates[2] (1000455005) does not fall within the begin..end range of the core VkDynamicState enumeration tokens and is not an extension added token +.... + +This implied several other validation errors during runtime: +.... +[error] [framework\core\instance.cpp:50] -1052047544 - VUID-vkCmdDraw-rasterizationSamples-04740: Validation Error: [ VUID-vkCmdDraw-rasterizationSamples-04740 ] Object 0: handle = 0xf6d9250000000139, type = VK_OBJECT_TYPE_PIPELINE; Object 1: handle = 0xfc06e9000000013d, type = VK_OBJECT_TYPE_RENDER_PASS; | MessageID = 0xc14b0748 | vkCmdDraw: In VkPipeline 0xf6d9250000000139[] the sample count is VK_SAMPLE_COUNT_1_BIT while the current VkRenderPass 0xfc06e9000000013d[] has VK_SAMPLE_COUNT_4_BIT and they need to be the same. The Vulkan spec states: If rasterization is not disabled in the bound graphics pipeline, and neither the VK_AMD_mixed_attachment_samples nor the VK_NV_framebuffer_mixed_samples extensions are enabled, then VkPipelineMultisampleStateCreateInfo::rasterizationSamples must be the same as the current subpass color and/or depth/stencil attachments (https://vulkan.lunarg.com/doc/view/1.3.216.0/windows/1.3-extensions/vkspec.html#VUID-vkCmdDraw-rasterizationSamples-04740) +[error] [framework\core\instance.cpp:50] 1349015333 - VUID-vkCmdDraw-renderPass-02684: Validation Error: [ VUID-vkCmdDraw-renderPass-02684 ] Object 0: handle = 0xfc06e9000000013d, type = VK_OBJECT_TYPE_RENDER_PASS; Object 1: handle = 0xab64de0000000020, type = VK_OBJECT_TYPE_RENDER_PASS; | MessageID = 0x50685725 | vkCmdDraw: RenderPasses incompatible between active render pass w/ VkRenderPass 0xfc06e9000000013d[] and pipeline state object w/ VkRenderPass 0xab64de0000000020[] Attachment 0 is not compatible with 0: They have different samples.. The Vulkan spec states: The current render pass must be compatible with the renderPass member of the VkGraphicsPipelineCreateInfo structure specified when creating the VkPipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS (https://vulkan.lunarg.com/doc/view/1.3.216.0/windows/1.3-extensions/vkspec.html#VUID-vkCmdDraw-renderPass-02684) +[error] [framework\core\instance.cpp:50] -329854293 - VUID-vkCmdDrawIndexed-rasterizationSamples-04740: Validation Error: [ VUID-vkCmdDrawIndexed-rasterizationSamples-04740 ] Object 0: handle = 0x9f9b41000000003c, type = VK_OBJECT_TYPE_PIPELINE; Object 1: handle = 0xfc06e9000000013d, type = VK_OBJECT_TYPE_RENDER_PASS; | MessageID = 0xec56d2ab | vkCmdDrawIndexed: In VkPipeline 0x9f9b41000000003c[] the sample count is VK_SAMPLE_COUNT_1_BIT while the current VkRenderPass 0xfc06e9000000013d[] has VK_SAMPLE_COUNT_4_BIT and they need to be the same. The Vulkan spec states: If rasterization is not disabled in the bound graphics pipeline, and neither the VK_AMD_mixed_attachment_samples nor the VK_NV_framebuffer_mixed_samples extensions are enabled, then VkPipelineMultisampleStateCreateInfo::rasterizationSamples must be the same as the current subpass color and/or depth/stencil attachments (https://vulkan.lunarg.com/doc/view/1.3.216.0/windows/1.3-extensions/vkspec.html#VUID-vkCmdDrawIndexed-rasterizationSamples-04740) +[error] [framework\core\instance.cpp:50] -1934215230 - VUID-vkCmdDrawIndexed-renderPass-02684: Validation Error: [ VUID-vkCmdDrawIndexed-renderPass-02684 ] Object 0: handle = 0xfc06e9000000013d, type = VK_OBJECT_TYPE_RENDER_PASS; Object 1: handle = 0xab64de0000000020, type = VK_OBJECT_TYPE_RENDER_PASS; | MessageID = 0x8cb637c2 | vkCmdDrawIndexed: RenderPasses incompatible between active render pass w/ VkRenderPass 0xfc06e9000000013d[] and pipeline state object w/ VkRenderPass 0xab64de0000000020[] Attachment 0 is not compatible with 0: They have different samples.. The Vulkan spec states: The current render pass must be compatible with the renderPass member of the VkGraphicsPipelineCreateInfo structure specified when creating the VkPipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS (https://vulkan.lunarg.com/doc/view/1.3.216.0/windows/1.3-extensions/vkspec.html#VUID-vkCmdDrawIndexed-renderPass-02684) +.... + == Resources https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_EXT_extended_dynamic_state3.html diff --git a/samples/extensions/dynamic_state3_multisample_rasterization/README.md b/samples/extensions/dynamic_state3_multisample_rasterization/README.md index b5250a453..7f39043b9 100644 --- a/samples/extensions/dynamic_state3_multisample_rasterization/README.md +++ b/samples/extensions/dynamic_state3_multisample_rasterization/README.md @@ -37,6 +37,22 @@ To use the extension: 2) Method `void vkCmdSetRasterizationSamplesEXT(VkCommandBuffer commandBuffer, VkSampleCountFlagBits rasterizationSamples)` should be called between `vkCmdBeginRenderPass` and `vkCmdEndRenderPass`. +# Known issues + +The extension always reports the following validation error when enabled: +``` +[error] [framework\core\instance.cpp:50] -1100021871 - UNASSIGNED-GeneralParameterError-UnrecognizedValue: Validation Error: [ UNASSIGNED-GeneralParameterError-UnrecognizedValue ] Object 0: handle = 0x15d301ca4e0, type = VK_OBJECT_TYPE_DEVICE; | MessageID = 0xbe6eff91 | vkCreateGraphicsPipelines: value of pCreateInfos[0].pDynamicState->pDynamicStates[2] (1000455005) does not fall within the begin..end range of the core VkDynamicState enumeration tokens and is not an extension added token +``` + +This implied several other validation errors during runtime: +``` +[error] [framework\core\instance.cpp:50] -1052047544 - VUID-vkCmdDraw-rasterizationSamples-04740: Validation Error: [ VUID-vkCmdDraw-rasterizationSamples-04740 ] Object 0: handle = 0xf6d9250000000139, type = VK_OBJECT_TYPE_PIPELINE; Object 1: handle = 0xfc06e9000000013d, type = VK_OBJECT_TYPE_RENDER_PASS; | MessageID = 0xc14b0748 | vkCmdDraw: In VkPipeline 0xf6d9250000000139[] the sample count is VK_SAMPLE_COUNT_1_BIT while the current VkRenderPass 0xfc06e9000000013d[] has VK_SAMPLE_COUNT_4_BIT and they need to be the same. The Vulkan spec states: If rasterization is not disabled in the bound graphics pipeline, and neither the VK_AMD_mixed_attachment_samples nor the VK_NV_framebuffer_mixed_samples extensions are enabled, then VkPipelineMultisampleStateCreateInfo::rasterizationSamples must be the same as the current subpass color and/or depth/stencil attachments (https://vulkan.lunarg.com/doc/view/1.3.216.0/windows/1.3-extensions/vkspec.html#VUID-vkCmdDraw-rasterizationSamples-04740) +[error] [framework\core\instance.cpp:50] 1349015333 - VUID-vkCmdDraw-renderPass-02684: Validation Error: [ VUID-vkCmdDraw-renderPass-02684 ] Object 0: handle = 0xfc06e9000000013d, type = VK_OBJECT_TYPE_RENDER_PASS; Object 1: handle = 0xab64de0000000020, type = VK_OBJECT_TYPE_RENDER_PASS; | MessageID = 0x50685725 | vkCmdDraw: RenderPasses incompatible between active render pass w/ VkRenderPass 0xfc06e9000000013d[] and pipeline state object w/ VkRenderPass 0xab64de0000000020[] Attachment 0 is not compatible with 0: They have different samples.. The Vulkan spec states: The current render pass must be compatible with the renderPass member of the VkGraphicsPipelineCreateInfo structure specified when creating the VkPipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS (https://vulkan.lunarg.com/doc/view/1.3.216.0/windows/1.3-extensions/vkspec.html#VUID-vkCmdDraw-renderPass-02684) +[error] [framework\core\instance.cpp:50] -329854293 - VUID-vkCmdDrawIndexed-rasterizationSamples-04740: Validation Error: [ VUID-vkCmdDrawIndexed-rasterizationSamples-04740 ] Object 0: handle = 0x9f9b41000000003c, type = VK_OBJECT_TYPE_PIPELINE; Object 1: handle = 0xfc06e9000000013d, type = VK_OBJECT_TYPE_RENDER_PASS; | MessageID = 0xec56d2ab | vkCmdDrawIndexed: In VkPipeline 0x9f9b41000000003c[] the sample count is VK_SAMPLE_COUNT_1_BIT while the current VkRenderPass 0xfc06e9000000013d[] has VK_SAMPLE_COUNT_4_BIT and they need to be the same. The Vulkan spec states: If rasterization is not disabled in the bound graphics pipeline, and neither the VK_AMD_mixed_attachment_samples nor the VK_NV_framebuffer_mixed_samples extensions are enabled, then VkPipelineMultisampleStateCreateInfo::rasterizationSamples must be the same as the current subpass color and/or depth/stencil attachments (https://vulkan.lunarg.com/doc/view/1.3.216.0/windows/1.3-extensions/vkspec.html#VUID-vkCmdDrawIndexed-rasterizationSamples-04740) +[error] [framework\core\instance.cpp:50] -1934215230 - VUID-vkCmdDrawIndexed-renderPass-02684: Validation Error: [ VUID-vkCmdDrawIndexed-renderPass-02684 ] Object 0: handle = 0xfc06e9000000013d, type = VK_OBJECT_TYPE_RENDER_PASS; Object 1: handle = 0xab64de0000000020, type = VK_OBJECT_TYPE_RENDER_PASS; | MessageID = 0x8cb637c2 | vkCmdDrawIndexed: RenderPasses incompatible between active render pass w/ VkRenderPass 0xfc06e9000000013d[] and pipeline state object w/ VkRenderPass 0xab64de0000000020[] Attachment 0 is not compatible with 0: They have different samples.. The Vulkan spec states: The current render pass must be compatible with the renderPass member of the VkGraphicsPipelineCreateInfo structure specified when creating the VkPipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS (https://vulkan.lunarg.com/doc/view/1.3.216.0/windows/1.3-extensions/vkspec.html#VUID-vkCmdDrawIndexed-renderPass-02684) +``` + + # Resources https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_EXT_extended_dynamic_state3.html From a805676b3fae164456d13662331d68fd911bd361 Mon Sep 17 00:00:00 2001 From: pawel-jastrzebski-mobica Date: Mon, 4 Dec 2023 16:04:02 +0100 Subject: [PATCH 25/52] Update sample image. Signed-off-by: pawel-jastrzebski-mobica --- .../image/image.png | Bin 649577 -> 527543 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/samples/extensions/dynamic_state3_multisample_rasterization/image/image.png b/samples/extensions/dynamic_state3_multisample_rasterization/image/image.png index 6df8ac8c5295f658b94039f888e59bd5f49f43fe..091b447790e57483c06ab74f74b38723deb50112 100644 GIT binary patch literal 527543 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

s$y5?MuqV$&am3~rO^DOy1PbXp@5OzR~QhV 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�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 Date: Mon, 4 Dec 2023 17:48:09 +0100 Subject: [PATCH 26/52] Fix warnings. Signed-off-by: pawel-jastrzebski-mobica --- .../dynamic_state3_multisample_rasterization.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/samples/extensions/dynamic_state3_multisample_rasterization/dynamic_state3_multisample_rasterization.cpp b/samples/extensions/dynamic_state3_multisample_rasterization/dynamic_state3_multisample_rasterization.cpp index 4c9533769..f07055a6b 100644 --- a/samples/extensions/dynamic_state3_multisample_rasterization/dynamic_state3_multisample_rasterization.cpp +++ b/samples/extensions/dynamic_state3_multisample_rasterization/dynamic_state3_multisample_rasterization.cpp @@ -138,7 +138,7 @@ void DynamicState3MultisampleRasterization::prepare_supported_sample_count_list( supported_sample_count_list.push_back(count); gui_settings.sample_counts.push_back(to_string(count)); - if (sample_count == VK_SAMPLE_COUNT_1_BIT) + if (sample_count & VK_SAMPLE_COUNT_1_BIT) { // Set default sample count based on the priority defined above sample_count = count; @@ -384,7 +384,7 @@ void DynamicState3MultisampleRasterization::load_assets() imageInfo.sampler = texture->get_sampler()->vk_sampler.get_handle(); image_infos.push_back(imageInfo); - name_to_texture_id.emplace(name, image_infos.size() - 1); + name_to_texture_id.emplace(name, static_cast(image_infos.size()) - 1); } } From 143196d55ef837b3960e42577afa9e5c52750805 Mon Sep 17 00:00:00 2001 From: pawel-jastrzebski-mobica Date: Mon, 4 Dec 2023 17:51:11 +0100 Subject: [PATCH 27/52] Fix typos in README files. Signed-off-by: pawel-jastrzebski-mobica --- .../dynamic_state3_multisample_rasterization/README.adoc | 2 +- .../dynamic_state3_multisample_rasterization/README.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/samples/extensions/dynamic_state3_multisample_rasterization/README.adoc b/samples/extensions/dynamic_state3_multisample_rasterization/README.adoc index cc2d74c8a..e5a8aaa15 100644 --- a/samples/extensions/dynamic_state3_multisample_rasterization/README.adoc +++ b/samples/extensions/dynamic_state3_multisample_rasterization/README.adoc @@ -47,7 +47,7 @@ The extension always reports the following validation error when enabled: [error] [framework\core\instance.cpp:50] -1100021871 - UNASSIGNED-GeneralParameterError-UnrecognizedValue: Validation Error: [ UNASSIGNED-GeneralParameterError-UnrecognizedValue ] Object 0: handle = 0x15d301ca4e0, type = VK_OBJECT_TYPE_DEVICE; | MessageID = 0xbe6eff91 | vkCreateGraphicsPipelines: value of pCreateInfos[0].pDynamicState->pDynamicStates[2] (1000455005) does not fall within the begin..end range of the core VkDynamicState enumeration tokens and is not an extension added token .... -This implied several other validation errors during runtime: +This implies several other validation errors during runtime: .... [error] [framework\core\instance.cpp:50] -1052047544 - VUID-vkCmdDraw-rasterizationSamples-04740: Validation Error: [ VUID-vkCmdDraw-rasterizationSamples-04740 ] Object 0: handle = 0xf6d9250000000139, type = VK_OBJECT_TYPE_PIPELINE; Object 1: handle = 0xfc06e9000000013d, type = VK_OBJECT_TYPE_RENDER_PASS; | MessageID = 0xc14b0748 | vkCmdDraw: In VkPipeline 0xf6d9250000000139[] the sample count is VK_SAMPLE_COUNT_1_BIT while the current VkRenderPass 0xfc06e9000000013d[] has VK_SAMPLE_COUNT_4_BIT and they need to be the same. The Vulkan spec states: If rasterization is not disabled in the bound graphics pipeline, and neither the VK_AMD_mixed_attachment_samples nor the VK_NV_framebuffer_mixed_samples extensions are enabled, then VkPipelineMultisampleStateCreateInfo::rasterizationSamples must be the same as the current subpass color and/or depth/stencil attachments (https://vulkan.lunarg.com/doc/view/1.3.216.0/windows/1.3-extensions/vkspec.html#VUID-vkCmdDraw-rasterizationSamples-04740) [error] [framework\core\instance.cpp:50] 1349015333 - VUID-vkCmdDraw-renderPass-02684: Validation Error: [ VUID-vkCmdDraw-renderPass-02684 ] Object 0: handle = 0xfc06e9000000013d, type = VK_OBJECT_TYPE_RENDER_PASS; Object 1: handle = 0xab64de0000000020, type = VK_OBJECT_TYPE_RENDER_PASS; | MessageID = 0x50685725 | vkCmdDraw: RenderPasses incompatible between active render pass w/ VkRenderPass 0xfc06e9000000013d[] and pipeline state object w/ VkRenderPass 0xab64de0000000020[] Attachment 0 is not compatible with 0: They have different samples.. The Vulkan spec states: The current render pass must be compatible with the renderPass member of the VkGraphicsPipelineCreateInfo structure specified when creating the VkPipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS (https://vulkan.lunarg.com/doc/view/1.3.216.0/windows/1.3-extensions/vkspec.html#VUID-vkCmdDraw-renderPass-02684) diff --git a/samples/extensions/dynamic_state3_multisample_rasterization/README.md b/samples/extensions/dynamic_state3_multisample_rasterization/README.md index 7f39043b9..56e26d305 100644 --- a/samples/extensions/dynamic_state3_multisample_rasterization/README.md +++ b/samples/extensions/dynamic_state3_multisample_rasterization/README.md @@ -44,7 +44,7 @@ The extension always reports the following validation error when enabled: [error] [framework\core\instance.cpp:50] -1100021871 - UNASSIGNED-GeneralParameterError-UnrecognizedValue: Validation Error: [ UNASSIGNED-GeneralParameterError-UnrecognizedValue ] Object 0: handle = 0x15d301ca4e0, type = VK_OBJECT_TYPE_DEVICE; | MessageID = 0xbe6eff91 | vkCreateGraphicsPipelines: value of pCreateInfos[0].pDynamicState->pDynamicStates[2] (1000455005) does not fall within the begin..end range of the core VkDynamicState enumeration tokens and is not an extension added token ``` -This implied several other validation errors during runtime: +This implies several other validation errors during runtime: ``` [error] [framework\core\instance.cpp:50] -1052047544 - VUID-vkCmdDraw-rasterizationSamples-04740: Validation Error: [ VUID-vkCmdDraw-rasterizationSamples-04740 ] Object 0: handle = 0xf6d9250000000139, type = VK_OBJECT_TYPE_PIPELINE; Object 1: handle = 0xfc06e9000000013d, type = VK_OBJECT_TYPE_RENDER_PASS; | MessageID = 0xc14b0748 | vkCmdDraw: In VkPipeline 0xf6d9250000000139[] the sample count is VK_SAMPLE_COUNT_1_BIT while the current VkRenderPass 0xfc06e9000000013d[] has VK_SAMPLE_COUNT_4_BIT and they need to be the same. The Vulkan spec states: If rasterization is not disabled in the bound graphics pipeline, and neither the VK_AMD_mixed_attachment_samples nor the VK_NV_framebuffer_mixed_samples extensions are enabled, then VkPipelineMultisampleStateCreateInfo::rasterizationSamples must be the same as the current subpass color and/or depth/stencil attachments (https://vulkan.lunarg.com/doc/view/1.3.216.0/windows/1.3-extensions/vkspec.html#VUID-vkCmdDraw-rasterizationSamples-04740) [error] [framework\core\instance.cpp:50] 1349015333 - VUID-vkCmdDraw-renderPass-02684: Validation Error: [ VUID-vkCmdDraw-renderPass-02684 ] Object 0: handle = 0xfc06e9000000013d, type = VK_OBJECT_TYPE_RENDER_PASS; Object 1: handle = 0xab64de0000000020, type = VK_OBJECT_TYPE_RENDER_PASS; | MessageID = 0x50685725 | vkCmdDraw: RenderPasses incompatible between active render pass w/ VkRenderPass 0xfc06e9000000013d[] and pipeline state object w/ VkRenderPass 0xab64de0000000020[] Attachment 0 is not compatible with 0: They have different samples.. The Vulkan spec states: The current render pass must be compatible with the renderPass member of the VkGraphicsPipelineCreateInfo structure specified when creating the VkPipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS (https://vulkan.lunarg.com/doc/view/1.3.216.0/windows/1.3-extensions/vkspec.html#VUID-vkCmdDraw-renderPass-02684) From e5fb84c57b143e36e804839e4bc4479d32f30126 Mon Sep 17 00:00:00 2001 From: pawel-jastrzebski-mobica Date: Mon, 4 Dec 2023 19:09:06 +0100 Subject: [PATCH 28/52] Fix comment. Signed-off-by: pawel-jastrzebski-mobica --- .../dynamic_state3_multisample_rasterization.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/extensions/dynamic_state3_multisample_rasterization/dynamic_state3_multisample_rasterization.cpp b/samples/extensions/dynamic_state3_multisample_rasterization/dynamic_state3_multisample_rasterization.cpp index f07055a6b..a79416d92 100644 --- a/samples/extensions/dynamic_state3_multisample_rasterization/dynamic_state3_multisample_rasterization.cpp +++ b/samples/extensions/dynamic_state3_multisample_rasterization/dynamic_state3_multisample_rasterization.cpp @@ -473,7 +473,7 @@ void DynamicState3MultisampleRasterization::setup_render_pass() attachments[1].initialLayout = VK_IMAGE_LAYOUT_UNDEFINED; attachments[1].finalLayout = VK_IMAGE_LAYOUT_PRESENT_SRC_KHR; - // Resolve attachment + // Depth attachment attachments[2].format = depth_format; attachments[2].samples = sample_count; attachments[2].loadOp = VK_ATTACHMENT_LOAD_OP_CLEAR; From 4e9f8134a865146cd2feed8737012b1ea8fafcf0 Mon Sep 17 00:00:00 2001 From: pawel-jastrzebski-mobica Date: Wed, 6 Dec 2023 14:16:19 +0100 Subject: [PATCH 29/52] Fix review comments. Changes made: * Remove explicit reset of command pool and command buffer * Change extension request mechanism * Remove markdown version of README Signed-off-by: pawel-jastrzebski-mobica --- framework/api_vulkan_sample.h | 2 +- framework/core/physical_device.h | 9 --- .../README.md | 59 ------------------- ...namic_state3_multisample_rasterization.cpp | 48 ++++----------- ...dynamic_state3_multisample_rasterization.h | 5 -- 5 files changed, 13 insertions(+), 110 deletions(-) delete mode 100644 samples/extensions/dynamic_state3_multisample_rasterization/README.md diff --git a/framework/api_vulkan_sample.h b/framework/api_vulkan_sample.h index cc1514137..8348c21db 100644 --- a/framework/api_vulkan_sample.h +++ b/framework/api_vulkan_sample.h @@ -287,7 +287,7 @@ class ApiVulkanSample : public vkb::VulkanSample /** * @brief Creates a new (graphics) command pool object storing command buffers */ - virtual void create_command_pool(); + void create_command_pool(); /** * @brief Setup default depth and stencil views diff --git a/framework/core/physical_device.h b/framework/core/physical_device.h index da83ca431..7c3b6b37e 100644 --- a/framework/core/physical_device.h +++ b/framework/core/physical_device.h @@ -128,15 +128,6 @@ class PhysicalDevice return *extension_ptr; } - /** - * @brief Gets a modifiable pointer to last_requested_extension_feature. - * @return Modifiable pointer to last_requested_extension_feature. - */ - void* get_last_requested_extension_feature() - { - return last_requested_extension_feature; - } - /** * @brief Sets whether or not the first graphics queue should have higher priority than other queues. * Very specific feature which is used by async compute samples. diff --git a/samples/extensions/dynamic_state3_multisample_rasterization/README.md b/samples/extensions/dynamic_state3_multisample_rasterization/README.md deleted file mode 100644 index 56e26d305..000000000 --- a/samples/extensions/dynamic_state3_multisample_rasterization/README.md +++ /dev/null @@ -1,59 +0,0 @@ - - -# Overview - -This sample demonstrates one of the functionalities of VK_EXT_extended_dynamic_state3 related to rasterization samples. -The extension can be used to dynamically change sampling without any need to restart the application. -image:image/image.png[] - -# Enabling the extension - -To be able to use this extension in Vulkan API: -1) At least Vulkan API version 1.1 must be supported. -2) Set of `VkPhysicalDeviceExtendedDynamicStateFeaturesEXT`, `VkPhysicalDeviceExtendedDynamicState2FeaturesEXT`, `VkPhysicalDeviceExtendedDynamicState3FeaturesEXT` -must be added to the feature chain of `VkPhysicalDeviceProperties2` and `VkPhysicalDeviceExtendedDynamicState3PropertiesEXT` must be added to `VkPhysicalDeviceProperties2`. - -# Using the extension - -To use the extension: -1) `VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT` must be added to `VkPipelineDynamicStateCreateInfo`. -2) Method `void vkCmdSetRasterizationSamplesEXT(VkCommandBuffer commandBuffer, VkSampleCountFlagBits rasterizationSamples)` should be called between -`vkCmdBeginRenderPass` and `vkCmdEndRenderPass`. - -# Known issues - -The extension always reports the following validation error when enabled: -``` -[error] [framework\core\instance.cpp:50] -1100021871 - UNASSIGNED-GeneralParameterError-UnrecognizedValue: Validation Error: [ UNASSIGNED-GeneralParameterError-UnrecognizedValue ] Object 0: handle = 0x15d301ca4e0, type = VK_OBJECT_TYPE_DEVICE; | MessageID = 0xbe6eff91 | vkCreateGraphicsPipelines: value of pCreateInfos[0].pDynamicState->pDynamicStates[2] (1000455005) does not fall within the begin..end range of the core VkDynamicState enumeration tokens and is not an extension added token -``` - -This implies several other validation errors during runtime: -``` -[error] [framework\core\instance.cpp:50] -1052047544 - VUID-vkCmdDraw-rasterizationSamples-04740: Validation Error: [ VUID-vkCmdDraw-rasterizationSamples-04740 ] Object 0: handle = 0xf6d9250000000139, type = VK_OBJECT_TYPE_PIPELINE; Object 1: handle = 0xfc06e9000000013d, type = VK_OBJECT_TYPE_RENDER_PASS; | MessageID = 0xc14b0748 | vkCmdDraw: In VkPipeline 0xf6d9250000000139[] the sample count is VK_SAMPLE_COUNT_1_BIT while the current VkRenderPass 0xfc06e9000000013d[] has VK_SAMPLE_COUNT_4_BIT and they need to be the same. The Vulkan spec states: If rasterization is not disabled in the bound graphics pipeline, and neither the VK_AMD_mixed_attachment_samples nor the VK_NV_framebuffer_mixed_samples extensions are enabled, then VkPipelineMultisampleStateCreateInfo::rasterizationSamples must be the same as the current subpass color and/or depth/stencil attachments (https://vulkan.lunarg.com/doc/view/1.3.216.0/windows/1.3-extensions/vkspec.html#VUID-vkCmdDraw-rasterizationSamples-04740) -[error] [framework\core\instance.cpp:50] 1349015333 - VUID-vkCmdDraw-renderPass-02684: Validation Error: [ VUID-vkCmdDraw-renderPass-02684 ] Object 0: handle = 0xfc06e9000000013d, type = VK_OBJECT_TYPE_RENDER_PASS; Object 1: handle = 0xab64de0000000020, type = VK_OBJECT_TYPE_RENDER_PASS; | MessageID = 0x50685725 | vkCmdDraw: RenderPasses incompatible between active render pass w/ VkRenderPass 0xfc06e9000000013d[] and pipeline state object w/ VkRenderPass 0xab64de0000000020[] Attachment 0 is not compatible with 0: They have different samples.. The Vulkan spec states: The current render pass must be compatible with the renderPass member of the VkGraphicsPipelineCreateInfo structure specified when creating the VkPipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS (https://vulkan.lunarg.com/doc/view/1.3.216.0/windows/1.3-extensions/vkspec.html#VUID-vkCmdDraw-renderPass-02684) -[error] [framework\core\instance.cpp:50] -329854293 - VUID-vkCmdDrawIndexed-rasterizationSamples-04740: Validation Error: [ VUID-vkCmdDrawIndexed-rasterizationSamples-04740 ] Object 0: handle = 0x9f9b41000000003c, type = VK_OBJECT_TYPE_PIPELINE; Object 1: handle = 0xfc06e9000000013d, type = VK_OBJECT_TYPE_RENDER_PASS; | MessageID = 0xec56d2ab | vkCmdDrawIndexed: In VkPipeline 0x9f9b41000000003c[] the sample count is VK_SAMPLE_COUNT_1_BIT while the current VkRenderPass 0xfc06e9000000013d[] has VK_SAMPLE_COUNT_4_BIT and they need to be the same. The Vulkan spec states: If rasterization is not disabled in the bound graphics pipeline, and neither the VK_AMD_mixed_attachment_samples nor the VK_NV_framebuffer_mixed_samples extensions are enabled, then VkPipelineMultisampleStateCreateInfo::rasterizationSamples must be the same as the current subpass color and/or depth/stencil attachments (https://vulkan.lunarg.com/doc/view/1.3.216.0/windows/1.3-extensions/vkspec.html#VUID-vkCmdDrawIndexed-rasterizationSamples-04740) -[error] [framework\core\instance.cpp:50] -1934215230 - VUID-vkCmdDrawIndexed-renderPass-02684: Validation Error: [ VUID-vkCmdDrawIndexed-renderPass-02684 ] Object 0: handle = 0xfc06e9000000013d, type = VK_OBJECT_TYPE_RENDER_PASS; Object 1: handle = 0xab64de0000000020, type = VK_OBJECT_TYPE_RENDER_PASS; | MessageID = 0x8cb637c2 | vkCmdDrawIndexed: RenderPasses incompatible between active render pass w/ VkRenderPass 0xfc06e9000000013d[] and pipeline state object w/ VkRenderPass 0xab64de0000000020[] Attachment 0 is not compatible with 0: They have different samples.. The Vulkan spec states: The current render pass must be compatible with the renderPass member of the VkGraphicsPipelineCreateInfo structure specified when creating the VkPipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS (https://vulkan.lunarg.com/doc/view/1.3.216.0/windows/1.3-extensions/vkspec.html#VUID-vkCmdDrawIndexed-renderPass-02684) -``` - - -# Resources - -https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_EXT_extended_dynamic_state3.html -https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/vkCmdSetRasterizationSamplesEXT.html diff --git a/samples/extensions/dynamic_state3_multisample_rasterization/dynamic_state3_multisample_rasterization.cpp b/samples/extensions/dynamic_state3_multisample_rasterization/dynamic_state3_multisample_rasterization.cpp index a79416d92..e2fdf487f 100644 --- a/samples/extensions/dynamic_state3_multisample_rasterization/dynamic_state3_multisample_rasterization.cpp +++ b/samples/extensions/dynamic_state3_multisample_rasterization/dynamic_state3_multisample_rasterization.cpp @@ -30,8 +30,6 @@ DynamicState3MultisampleRasterization::DynamicState3MultisampleRasterization() set_api_version(VK_API_VERSION_1_1); add_instance_extension(VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME); - add_device_extension(VK_EXT_EXTENDED_DYNAMIC_STATE_EXTENSION_NAME); - add_device_extension(VK_EXT_EXTENDED_DYNAMIC_STATE_2_EXTENSION_NAME); add_device_extension(VK_EXT_EXTENDED_DYNAMIC_STATE_3_EXTENSION_NAME); } @@ -48,28 +46,21 @@ DynamicState3MultisampleRasterization::~DynamicState3MultisampleRasterization() void DynamicState3MultisampleRasterization::request_gpu_features(vkb::PhysicalDevice &gpu) { - auto last_requested_extension_feature = gpu.get_last_requested_extension_feature(); + // Query the extended dynamic state support + extended_dynamic_state_3_features = {}; + extended_dynamic_state_3_features.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_FEATURES_EXT; - extended_dynamic_state_features.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT; - extended_dynamic_state_features.extendedDynamicState = VK_TRUE; - extended_dynamic_state_features.pNext = &extended_dynamic_state_2_features; + VkPhysicalDeviceFeatures2 features2{}; + features2.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2; + features2.pNext = &extended_dynamic_state_3_features; + vkGetPhysicalDeviceFeatures2(gpu.get_handle(), &features2); - extended_dynamic_state_2_features.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT; - extended_dynamic_state_2_features.pNext = &extended_dynamic_state_3_features; - - extended_dynamic_state_3_features.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_FEATURES_EXT; - extended_dynamic_state_3_features.extendedDynamicState3RasterizationSamples = VK_TRUE; - extended_dynamic_state_3_features.pNext = VK_NULL_HANDLE; - - last_requested_extension_feature = &extended_dynamic_state_features; - - props.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_PROPERTIES_EXT; - props.pNext = VK_NULL_HANDLE; + { + // Only request the features that we support + auto &features = gpu.request_extension_features(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_FEATURES_EXT); - VkPhysicalDeviceProperties2 device_properties2 = {}; - device_properties2.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2; - device_properties2.pNext = &props; - vkGetPhysicalDeviceProperties2(gpu.get_handle(), &device_properties2); + features.extendedDynamicState3RasterizationSamples = VK_TRUE; + } } const std::string to_string(VkSampleCountFlagBits count) @@ -149,15 +140,6 @@ void DynamicState3MultisampleRasterization::prepare_supported_sample_count_list( } } -void DynamicState3MultisampleRasterization::create_command_pool() -{ - VkCommandPoolCreateInfo command_pool_info = {}; - command_pool_info.sType = VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO; - command_pool_info.queueFamilyIndex = device->get_queue_by_flags(VK_QUEUE_GRAPHICS_BIT | VK_QUEUE_COMPUTE_BIT, 0).get_family_index(); - command_pool_info.flags = VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT; - VK_CHECK(vkCreateCommandPool(device->get_handle(), &command_pool_info, nullptr, &cmd_pool)); -} - bool DynamicState3MultisampleRasterization::prepare(const vkb::ApplicationOptions &options) { if (!ApiVulkanSample::prepare(options)) @@ -242,12 +224,6 @@ void DynamicState3MultisampleRasterization::draw_node(VkCommandBuffer &draw_cmd_ void DynamicState3MultisampleRasterization::build_command_buffers() { - if (!check_command_buffers()) - { - create_command_buffers(); - destroy_command_buffers(); - } - VkCommandBufferBeginInfo command_buffer_begin_info = vkb::initializers::command_buffer_begin_info(); VkClearValue clear_values[3]; diff --git a/samples/extensions/dynamic_state3_multisample_rasterization/dynamic_state3_multisample_rasterization.h b/samples/extensions/dynamic_state3_multisample_rasterization/dynamic_state3_multisample_rasterization.h index 1229e2e01..c3aeaa6ef 100644 --- a/samples/extensions/dynamic_state3_multisample_rasterization/dynamic_state3_multisample_rasterization.h +++ b/samples/extensions/dynamic_state3_multisample_rasterization/dynamic_state3_multisample_rasterization.h @@ -98,12 +98,8 @@ class DynamicState3MultisampleRasterization : public ApiVulkanSample VkImageView view; } color_attachment; - VkPhysicalDeviceExtendedDynamicStateFeaturesEXT extended_dynamic_state_features{}; - VkPhysicalDeviceExtendedDynamicState2FeaturesEXT extended_dynamic_state_2_features{}; VkPhysicalDeviceExtendedDynamicState3FeaturesEXT extended_dynamic_state_3_features{}; - VkPhysicalDeviceExtendedDynamicState3PropertiesEXT props; - public: virtual void build_command_buffers() override; virtual void request_gpu_features(vkb::PhysicalDevice &gpu) override; @@ -114,7 +110,6 @@ class DynamicState3MultisampleRasterization : public ApiVulkanSample virtual void on_update_ui_overlay(vkb::Drawer &drawer) override; virtual bool resize(const uint32_t _width, const uint32_t _height) override; virtual void setup_depth_stencil() override; - virtual void create_command_pool() override; void load_assets(); void setup_descriptor_pool(); void setup_descriptor_set_layout(); From 1bc20d4ec7b3281fe8b6dc23448eb38697f378a4 Mon Sep 17 00:00:00 2001 From: pawel-jastrzebski-mobica Date: Mon, 18 Dec 2023 12:27:25 +0100 Subject: [PATCH 30/52] Fix review comments. Changes made: - Fix errors in README - Remove mandatory setting for Vulkan 1.1 - Add additional checks and asserts - Replace loop with algorithms - Remove unnecessary code and conditions - Reorganise rendering of opaque and transparent meshes - Change filename and class name of the sample Signed-off-by: pawel-jastrzebski-mobica --- samples/CMakeLists.txt | 2 +- .../CMakeLists.txt | 4 +- .../README.adoc | 4 +- ...mic_state_3_multisample_rasterization.cpp} | 128 +++++++++--------- ...namic_state_3_multisample_rasterization.h} | 8 +- .../image/image.png | Bin .../model.frag | 0 .../model.vert | 0 8 files changed, 71 insertions(+), 75 deletions(-) rename samples/extensions/{dynamic_state3_multisample_rasterization => extended_dynamic_state_3_multisample_rasterization}/CMakeLists.txt (87%) rename samples/extensions/{dynamic_state3_multisample_rasterization => extended_dynamic_state_3_multisample_rasterization}/README.adoc (95%) rename samples/extensions/{dynamic_state3_multisample_rasterization/dynamic_state3_multisample_rasterization.cpp => extended_dynamic_state_3_multisample_rasterization/extended_dynamic_state_3_multisample_rasterization.cpp} (89%) rename samples/extensions/{dynamic_state3_multisample_rasterization/dynamic_state3_multisample_rasterization.h => extended_dynamic_state_3_multisample_rasterization/extended_dynamic_state_3_multisample_rasterization.h} (92%) rename samples/extensions/{dynamic_state3_multisample_rasterization => extended_dynamic_state_3_multisample_rasterization}/image/image.png (100%) rename shaders/{dynamic_state3_multisample_rasterization => extended_dynamic_state_3_multisample_rasterization}/model.frag (100%) rename shaders/{dynamic_state3_multisample_rasterization => extended_dynamic_state_3_multisample_rasterization}/model.vert (100%) diff --git a/samples/CMakeLists.txt b/samples/CMakeLists.txt index 804ebf61c..7797009ee 100644 --- a/samples/CMakeLists.txt +++ b/samples/CMakeLists.txt @@ -87,7 +87,7 @@ set(ORDER_LIST "fragment_shader_barycentric" "gshader_to_mshader" "color_write_enable" - "dynamic_state3_multisample_rasterization" + "extended_dynamic_state_3_multisample_rasterization" #Performance Samples "swapchain_images" diff --git a/samples/extensions/dynamic_state3_multisample_rasterization/CMakeLists.txt b/samples/extensions/extended_dynamic_state_3_multisample_rasterization/CMakeLists.txt similarity index 87% rename from samples/extensions/dynamic_state3_multisample_rasterization/CMakeLists.txt rename to samples/extensions/extended_dynamic_state_3_multisample_rasterization/CMakeLists.txt index 16292b0f8..7315b1ade 100644 --- a/samples/extensions/dynamic_state3_multisample_rasterization/CMakeLists.txt +++ b/samples/extensions/extended_dynamic_state_3_multisample_rasterization/CMakeLists.txt @@ -26,5 +26,5 @@ add_sample( NAME "Extended Dynamic State3 Multisample Rasterization" DESCRIPTION "Sample description" SHADER_FILES_GLSL - "dynamic_state3_multisample_rasterization/model.vert" - "dynamic_state3_multisample_rasterization/model.frag") + "extended_dynamic_state_3_multisample_rasterization/model.vert" + "extended_dynamic_state_3_multisample_rasterization/model.frag") diff --git a/samples/extensions/dynamic_state3_multisample_rasterization/README.adoc b/samples/extensions/extended_dynamic_state_3_multisample_rasterization/README.adoc similarity index 95% rename from samples/extensions/dynamic_state3_multisample_rasterization/README.adoc rename to samples/extensions/extended_dynamic_state_3_multisample_rasterization/README.adoc index e5a8aaa15..1db9c32b8 100644 --- a/samples/extensions/dynamic_state3_multisample_rasterization/README.adoc +++ b/samples/extensions/extended_dynamic_state_3_multisample_rasterization/README.adoc @@ -29,9 +29,9 @@ image:image/image.png[] == Enabling the extension To be able to use this extension in Vulkan API: -1) At least Vulkan API version 1.1 must be supported. +1) VK_EXT_extended_dynamic_state3 depends on `VK_KHR_get_physical_device_properties2`, which is promoted to Vulkan 1.1. That is, to use this extension, `VK_EXT_extended_dynamic_state3` and either `VK_KHR_get_physical_device_properties2` or Vulkan 1.1 are required. 2) Set of `VkPhysicalDeviceExtendedDynamicStateFeaturesEXT`, `VkPhysicalDeviceExtendedDynamicState2FeaturesEXT`, `VkPhysicalDeviceExtendedDynamicState3FeaturesEXT` -must be added to the feature chain of `VkPhysicalDeviceProperties2` and `VkPhysicalDeviceExtendedDynamicState3PropertiesEXT` must be added to `VkPhysicalDeviceProperties2`. +must be added to the feature chain of `VkPhysicalDeviceProperties2`. == Using the extension diff --git a/samples/extensions/dynamic_state3_multisample_rasterization/dynamic_state3_multisample_rasterization.cpp b/samples/extensions/extended_dynamic_state_3_multisample_rasterization/extended_dynamic_state_3_multisample_rasterization.cpp similarity index 89% rename from samples/extensions/dynamic_state3_multisample_rasterization/dynamic_state3_multisample_rasterization.cpp rename to samples/extensions/extended_dynamic_state_3_multisample_rasterization/extended_dynamic_state_3_multisample_rasterization.cpp index e2fdf487f..26953b4db 100644 --- a/samples/extensions/dynamic_state3_multisample_rasterization/dynamic_state3_multisample_rasterization.cpp +++ b/samples/extensions/extended_dynamic_state_3_multisample_rasterization/extended_dynamic_state_3_multisample_rasterization.cpp @@ -15,7 +15,7 @@ * limitations under the License. */ -#include "dynamic_state3_multisample_rasterization.h" +#include "extended_dynamic_state_3_multisample_rasterization.h" #include "gltf_loader.h" #include "scene_graph/components/material.h" @@ -23,17 +23,15 @@ #include "scene_graph/components/pbr_material.h" #include "scene_graph/components/sub_mesh.h" -DynamicState3MultisampleRasterization::DynamicState3MultisampleRasterization() +ExtendedDynamicState3MultisampleRasterization::ExtendedDynamicState3MultisampleRasterization() { title = "DynamicState3 Multisample Rasterization"; - set_api_version(VK_API_VERSION_1_1); - add_instance_extension(VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME); add_device_extension(VK_EXT_EXTENDED_DYNAMIC_STATE_3_EXTENSION_NAME); } -DynamicState3MultisampleRasterization::~DynamicState3MultisampleRasterization() +ExtendedDynamicState3MultisampleRasterization::~ExtendedDynamicState3MultisampleRasterization() { if (device) { @@ -44,7 +42,7 @@ DynamicState3MultisampleRasterization::~DynamicState3MultisampleRasterization() } } -void DynamicState3MultisampleRasterization::request_gpu_features(vkb::PhysicalDevice &gpu) +void ExtendedDynamicState3MultisampleRasterization::request_gpu_features(vkb::PhysicalDevice &gpu) { // Query the extended dynamic state support extended_dynamic_state_3_features = {}; @@ -55,6 +53,7 @@ void DynamicState3MultisampleRasterization::request_gpu_features(vkb::PhysicalDe features2.pNext = &extended_dynamic_state_3_features; vkGetPhysicalDeviceFeatures2(gpu.get_handle(), &features2); + if (extended_dynamic_state_3_features.extendedDynamicState3RasterizationSamples) { // Only request the features that we support auto &features = gpu.request_extension_features(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_FEATURES_EXT); @@ -109,7 +108,7 @@ const ImVec2 to_scale_ui(VkSampleCountFlagBits sample_count) } } -void DynamicState3MultisampleRasterization::prepare_supported_sample_count_list() +void ExtendedDynamicState3MultisampleRasterization::prepare_supported_sample_count_list() { VkPhysicalDeviceProperties gpu_properties; vkGetPhysicalDeviceProperties(get_device().get_gpu().get_handle(), &gpu_properties); @@ -122,25 +121,23 @@ void DynamicState3MultisampleRasterization::prepare_supported_sample_count_list( VK_SAMPLE_COUNT_16_BIT, VK_SAMPLE_COUNT_32_BIT, VK_SAMPLE_COUNT_64_BIT, VK_SAMPLE_COUNT_1_BIT}; - for (auto &count : counts) + std::copy_if(counts.begin(), + counts.end(), + std::back_inserter(supported_sample_count_list), + [&supported_by_depth_and_color](auto count) { return supported_by_depth_and_color & count; }); + std::transform(supported_sample_count_list.begin(), + supported_sample_count_list.end(), + std::back_inserter(gui_settings.sample_counts), + [](auto count) { return to_string(count); }); + if (!supported_sample_count_list.empty()) { - if (supported_by_depth_and_color & count) - { - supported_sample_count_list.push_back(count); - gui_settings.sample_counts.push_back(to_string(count)); - - if (sample_count & VK_SAMPLE_COUNT_1_BIT) - { - // Set default sample count based on the priority defined above - sample_count = count; - gui_sample_count = count; - last_gui_sample_count = count; - } - } + sample_count = supported_sample_count_list.front(); + gui_sample_count = sample_count; + last_gui_sample_count = sample_count; } } -bool DynamicState3MultisampleRasterization::prepare(const vkb::ApplicationOptions &options) +bool ExtendedDynamicState3MultisampleRasterization::prepare(const vkb::ApplicationOptions &options) { if (!ApiVulkanSample::prepare(options)) { @@ -170,15 +167,21 @@ bool DynamicState3MultisampleRasterization::prepare(const vkb::ApplicationOption return true; } -void DynamicState3MultisampleRasterization::draw_node(VkCommandBuffer &draw_cmd_buffer, SceneNode &node) +void ExtendedDynamicState3MultisampleRasterization::draw_node(VkCommandBuffer &draw_cmd_buffer, SceneNode &node) { + assert(node.sub_mesh->vertex_buffers.count("position") == 1); + assert(node.sub_mesh->vertex_buffers.count("normal") == 1); + assert(node.sub_mesh->vertex_buffers.count("texcoord_0") == 1); + const auto &vertex_buffer_pos = node.sub_mesh->vertex_buffers.at("position"); const auto &vertex_buffer_normal = node.sub_mesh->vertex_buffers.at("normal"); const auto &vertex_buffer_uv = node.sub_mesh->vertex_buffers.at("texcoord_0"); auto &index_buffer = node.sub_mesh->index_buffer; // Pass data for the current node via push commands - auto node_material = dynamic_cast(node.sub_mesh->get_material()); + auto node_material = dynamic_cast(node.sub_mesh->get_material()); + assert(node_material); + push_const_block.model_matrix = node.node->get_transform().get_world_matrix(); push_const_block.base_color_factor = node_material->base_color_factor; @@ -191,24 +194,21 @@ void DynamicState3MultisampleRasterization::draw_node(VkCommandBuffer &draw_cmd_ if (base_color_texture != node_material->textures.end()) { - auto base_color_texture_name = base_color_texture->second->get_name(); - push_const_block.base_texture_index = name_to_texture_id.at(base_color_texture_name); + push_const_block.base_texture_index = name_to_texture_id.at(base_color_texture->second->get_name()); } auto normal_texture = node_material->textures.find("normal_texture"); if (normal_texture != node_material->textures.end()) { - auto normal_texture_name = normal_texture->second->get_name(); - push_const_block.normal_texture_index = name_to_texture_id.at(normal_texture_name); + push_const_block.normal_texture_index = name_to_texture_id.at(normal_texture->second->get_name()); } auto metallic_roughness_texture = node_material->textures.find("metallic_roughness_texture"); if (metallic_roughness_texture != node_material->textures.end()) { - auto metallic_roughness_texture_name = metallic_roughness_texture->second->get_name(); - push_const_block.pbr_texture_index = name_to_texture_id.at(metallic_roughness_texture_name); + push_const_block.pbr_texture_index = name_to_texture_id.at(metallic_roughness_texture->second->get_name()); } vkCmdPushConstants(draw_cmd_buffer, pipeline_layout, VK_SHADER_STAGE_VERTEX_BIT, 0, sizeof(push_const_block), &push_const_block); @@ -222,7 +222,7 @@ void DynamicState3MultisampleRasterization::draw_node(VkCommandBuffer &draw_cmd_ vkCmdDraw(draw_cmd_buffer, node.sub_mesh->vertex_indices, 1, 0, 0); } -void DynamicState3MultisampleRasterization::build_command_buffers() +void ExtendedDynamicState3MultisampleRasterization::build_command_buffers() { VkCommandBufferBeginInfo command_buffer_begin_info = vkb::initializers::command_buffer_begin_info(); @@ -262,18 +262,22 @@ void DynamicState3MultisampleRasterization::build_command_buffers() draw_node(draw_cmd_buffers[i], node); } - for (auto &node : scene_nodes_transparent) + vkCmdBindPipeline(draw_cmd_buffers[i], VK_PIPELINE_BIND_POINT_GRAPHICS, pipeline_inversed_rasterizer); + + for (auto &node : scene_nodes_opaque_flipped) { draw_node(draw_cmd_buffers[i], node); } - vkCmdBindPipeline(draw_cmd_buffers[i], VK_PIPELINE_BIND_POINT_GRAPHICS, pipeline_inversed_rasterizer); + vkCmdBindPipeline(draw_cmd_buffers[i], VK_PIPELINE_BIND_POINT_GRAPHICS, pipeline); - for (auto &node : scene_nodes_opaque_flipped) + for (auto &node : scene_nodes_transparent) { draw_node(draw_cmd_buffers[i], node); } + vkCmdBindPipeline(draw_cmd_buffers[i], VK_PIPELINE_BIND_POINT_GRAPHICS, pipeline_inversed_rasterizer); + for (auto &node : scene_nodes_transparent_flipped) { draw_node(draw_cmd_buffers[i], node); @@ -287,7 +291,7 @@ void DynamicState3MultisampleRasterization::build_command_buffers() } } -void DynamicState3MultisampleRasterization::draw_ui(VkCommandBuffer &cmd_buffer) +void ExtendedDynamicState3MultisampleRasterization::draw_ui(VkCommandBuffer &cmd_buffer) { if (gui) { @@ -313,7 +317,7 @@ void DynamicState3MultisampleRasterization::draw_ui(VkCommandBuffer &cmd_buffer) } } -void DynamicState3MultisampleRasterization::load_assets() +void ExtendedDynamicState3MultisampleRasterization::load_assets() { vkb::GLTFLoader loader{get_device()}; scene = loader.read_scene_from_file("scenes/space_module/SpaceModule.gltf"); @@ -330,7 +334,7 @@ void DynamicState3MultisampleRasterization::load_assets() bool flipped = scale.x * scale.y * scale.z < 0; bool transparent = sub_mesh->get_material()->alpha_mode == vkb::sg::AlphaMode::Blend; - if (sub_mesh->get_material()->alpha_mode == vkb::sg::AlphaMode::Blend) // transparent material + if (transparent) // transparent material { if (flipped) scene_nodes_transparent_flipped.push_back({node, sub_mesh}); @@ -364,7 +368,7 @@ void DynamicState3MultisampleRasterization::load_assets() } } -void DynamicState3MultisampleRasterization::setup_descriptor_pool() +void ExtendedDynamicState3MultisampleRasterization::setup_descriptor_pool() { std::vector pool_sizes = { vkb::initializers::descriptor_pool_size(VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER, 4), @@ -375,7 +379,7 @@ void DynamicState3MultisampleRasterization::setup_descriptor_pool() VK_CHECK(vkCreateDescriptorPool(get_device().get_handle(), &descriptor_pool_create_info, nullptr, &descriptor_pool)); } -void DynamicState3MultisampleRasterization::setup_descriptor_set_layout() +void ExtendedDynamicState3MultisampleRasterization::setup_descriptor_set_layout() { std::vector set_layout_bindings = { vkb::initializers::descriptor_set_layout_binding(VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER, VK_SHADER_STAGE_VERTEX_BIT, 0), @@ -400,7 +404,7 @@ void DynamicState3MultisampleRasterization::setup_descriptor_set_layout() VK_CHECK(vkCreatePipelineLayout(get_device().get_handle(), &pipeline_layout_create_info, nullptr, &pipeline_layout)); } -void DynamicState3MultisampleRasterization::setup_descriptor_sets() +void ExtendedDynamicState3MultisampleRasterization::setup_descriptor_sets() { VkDescriptorSetAllocateInfo alloc_info = vkb::initializers::descriptor_set_allocate_info( @@ -418,7 +422,7 @@ void DynamicState3MultisampleRasterization::setup_descriptor_sets() vkUpdateDescriptorSets(get_device().get_handle(), static_cast(write_descriptor_sets.size()), write_descriptor_sets.data(), 0, nullptr); } -void DynamicState3MultisampleRasterization::setup_render_pass() +void ExtendedDynamicState3MultisampleRasterization::setup_render_pass() { VkPhysicalDeviceProperties gpu_properties; vkGetPhysicalDeviceProperties(get_device().get_gpu().get_handle(), &gpu_properties); @@ -426,8 +430,6 @@ void DynamicState3MultisampleRasterization::setup_render_pass() // Check if device supports requested sample count for color and depth frame buffer assert((gpu_properties.limits.framebufferColorSampleCounts >= sample_count) && (gpu_properties.limits.framebufferDepthSampleCounts >= sample_count)); - bool msaa_enabled = sample_count != VK_SAMPLE_COUNT_1_BIT; - std::array attachments = {}; // Color attachment attachments[0].format = render_context->get_format(); @@ -515,7 +517,7 @@ void DynamicState3MultisampleRasterization::setup_render_pass() } // Create attachment that will be used in a framebuffer. -void DynamicState3MultisampleRasterization::setup_color_attachment() +void ExtendedDynamicState3MultisampleRasterization::setup_color_attachment() { VkImageCreateInfo image_create_info{}; image_create_info.sType = VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO; @@ -557,7 +559,7 @@ void DynamicState3MultisampleRasterization::setup_color_attachment() VK_CHECK(vkCreateImageView(device->get_handle(), &image_view_create_info, nullptr, &color_attachment.view)); } -void DynamicState3MultisampleRasterization::setup_depth_stencil() +void ExtendedDynamicState3MultisampleRasterization::setup_depth_stencil() { VkImageCreateInfo image_create_info{}; image_create_info.sType = VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO; @@ -599,7 +601,7 @@ void DynamicState3MultisampleRasterization::setup_depth_stencil() VK_CHECK(vkCreateImageView(device->get_handle(), &image_view_create_info, nullptr, &depth_stencil.view)); } -void DynamicState3MultisampleRasterization::setup_framebuffer() +void ExtendedDynamicState3MultisampleRasterization::setup_framebuffer() { setup_color_attachment(); setup_depth_stencil(); @@ -621,15 +623,9 @@ void DynamicState3MultisampleRasterization::setup_framebuffer() framebuffer_create_info.layers = 1; // Delete existing frame buffers - if (framebuffers.size() > 0) + for (uint32_t i = 0; i < framebuffers.size(); i++) { - for (uint32_t i = 0; i < framebuffers.size(); i++) - { - if (framebuffers[i] != VK_NULL_HANDLE) - { - vkDestroyFramebuffer(device->get_handle(), framebuffers[i], nullptr); - } - } + vkDestroyFramebuffer(device->get_handle(), framebuffers[i], nullptr); } // Create frame buffers for every swap chain image @@ -641,7 +637,7 @@ void DynamicState3MultisampleRasterization::setup_framebuffer() } } -void DynamicState3MultisampleRasterization::prepare_pipelines() +void ExtendedDynamicState3MultisampleRasterization::prepare_pipelines() { VkPipelineInputAssemblyStateCreateInfo input_assembly_state = vkb::initializers::pipeline_input_assembly_state_create_info( @@ -747,8 +743,8 @@ void DynamicState3MultisampleRasterization::prepare_pipelines() pipeline_create_info.pVertexInputState = &vertex_input_state; - shader_stages[0] = load_shader("dynamic_state3_multisample_rasterization/model.vert", VK_SHADER_STAGE_VERTEX_BIT); - shader_stages[1] = load_shader("dynamic_state3_multisample_rasterization/model.frag", VK_SHADER_STAGE_FRAGMENT_BIT); + shader_stages[0] = load_shader("extended_dynamic_state_3_multisample_rasterization/model.vert", VK_SHADER_STAGE_VERTEX_BIT); + shader_stages[1] = load_shader("extended_dynamic_state_3_multisample_rasterization/model.frag", VK_SHADER_STAGE_FRAGMENT_BIT); VK_CHECK(vkCreateGraphicsPipelines(get_device().get_handle(), pipeline_cache, 1, &pipeline_create_info, nullptr, &pipeline)); // Add another pipeline since parts of the scene have to be rendered using VK_FRONT_FACE_CLOCKWISE @@ -764,7 +760,7 @@ void DynamicState3MultisampleRasterization::prepare_pipelines() } // Prepare and initialize uniform buffer containing shader uniforms -void DynamicState3MultisampleRasterization::prepare_uniform_buffers() +void ExtendedDynamicState3MultisampleRasterization::prepare_uniform_buffers() { // Matrices vertex shader uniform buffer uniform_buffer = std::make_unique(get_device(), @@ -775,7 +771,7 @@ void DynamicState3MultisampleRasterization::prepare_uniform_buffers() update_uniform_buffers(); } -void DynamicState3MultisampleRasterization::update_uniform_buffers() +void ExtendedDynamicState3MultisampleRasterization::update_uniform_buffers() { uniform_data.projection = camera.matrices.perspective; // Scale the view matrix as the model is pretty large, and also flip it upside down @@ -783,7 +779,7 @@ void DynamicState3MultisampleRasterization::update_uniform_buffers() uniform_buffer->convert_and_update(uniform_data); } -void DynamicState3MultisampleRasterization::draw() +void ExtendedDynamicState3MultisampleRasterization::draw() { ApiVulkanSample::prepare_frame(); submit_info.commandBufferCount = 1; @@ -792,7 +788,7 @@ void DynamicState3MultisampleRasterization::draw() ApiVulkanSample::submit_frame(); } -void DynamicState3MultisampleRasterization::render(float delta_time) +void ExtendedDynamicState3MultisampleRasterization::render(float delta_time) { if (!prepared) { @@ -806,7 +802,7 @@ void DynamicState3MultisampleRasterization::render(float delta_time) } } -void DynamicState3MultisampleRasterization::update_resources() +void ExtendedDynamicState3MultisampleRasterization::update_resources() { prepared = false; @@ -844,7 +840,7 @@ void DynamicState3MultisampleRasterization::update_resources() prepared = true; } -void DynamicState3MultisampleRasterization::on_update_ui_overlay(vkb::Drawer &drawer) +void ExtendedDynamicState3MultisampleRasterization::on_update_ui_overlay(vkb::Drawer &drawer) { if (drawer.header("Settings")) { @@ -857,7 +853,7 @@ void DynamicState3MultisampleRasterization::on_update_ui_overlay(vkb::Drawer &dr } } -bool DynamicState3MultisampleRasterization::resize(const uint32_t _width, const uint32_t _height) +bool ExtendedDynamicState3MultisampleRasterization::resize(const uint32_t _width, const uint32_t _height) { if (!ApiVulkanSample::resize(_width, _height)) return false; @@ -870,7 +866,7 @@ bool DynamicState3MultisampleRasterization::resize(const uint32_t _width, const return true; } -std::unique_ptr create_dynamic_state3_multisample_rasterization() +std::unique_ptr create_extended_dynamic_state_3_multisample_rasterization() { - return std::make_unique(); + return std::make_unique(); } diff --git a/samples/extensions/dynamic_state3_multisample_rasterization/dynamic_state3_multisample_rasterization.h b/samples/extensions/extended_dynamic_state_3_multisample_rasterization/extended_dynamic_state_3_multisample_rasterization.h similarity index 92% rename from samples/extensions/dynamic_state3_multisample_rasterization/dynamic_state3_multisample_rasterization.h rename to samples/extensions/extended_dynamic_state_3_multisample_rasterization/extended_dynamic_state_3_multisample_rasterization.h index c3aeaa6ef..3229dfd5b 100644 --- a/samples/extensions/dynamic_state3_multisample_rasterization/dynamic_state3_multisample_rasterization.h +++ b/samples/extensions/extended_dynamic_state_3_multisample_rasterization/extended_dynamic_state_3_multisample_rasterization.h @@ -19,11 +19,11 @@ #include "api_vulkan_sample.h" -class DynamicState3MultisampleRasterization : public ApiVulkanSample +class ExtendedDynamicState3MultisampleRasterization : public ApiVulkanSample { public: - DynamicState3MultisampleRasterization(); - virtual ~DynamicState3MultisampleRasterization(); + ExtendedDynamicState3MultisampleRasterization(); + virtual ~ExtendedDynamicState3MultisampleRasterization(); private: std::unique_ptr vertex_buffer = nullptr; @@ -125,4 +125,4 @@ class DynamicState3MultisampleRasterization : public ApiVulkanSample void draw_node(VkCommandBuffer &, SceneNode &); }; -std::unique_ptr create_dynamic_state3_multisample_rasterization(); +std::unique_ptr create_extended_dynamic_state_3_multisample_rasterization(); diff --git a/samples/extensions/dynamic_state3_multisample_rasterization/image/image.png b/samples/extensions/extended_dynamic_state_3_multisample_rasterization/image/image.png similarity index 100% rename from samples/extensions/dynamic_state3_multisample_rasterization/image/image.png rename to samples/extensions/extended_dynamic_state_3_multisample_rasterization/image/image.png diff --git a/shaders/dynamic_state3_multisample_rasterization/model.frag b/shaders/extended_dynamic_state_3_multisample_rasterization/model.frag similarity index 100% rename from shaders/dynamic_state3_multisample_rasterization/model.frag rename to shaders/extended_dynamic_state_3_multisample_rasterization/model.frag diff --git a/shaders/dynamic_state3_multisample_rasterization/model.vert b/shaders/extended_dynamic_state_3_multisample_rasterization/model.vert similarity index 100% rename from shaders/dynamic_state3_multisample_rasterization/model.vert rename to shaders/extended_dynamic_state_3_multisample_rasterization/model.vert From 59686d39dac8033808aae2a2ceb55b361dc17284 Mon Sep 17 00:00:00 2001 From: pawel-jastrzebski-mobica Date: Mon, 18 Dec 2023 13:30:40 +0100 Subject: [PATCH 31/52] Fix review comments. Changes made: - Fix misleading description in README - Change textures handling in rendering Signed-off-by: pawel-jastrzebski-mobica --- .../README.adoc | 2 +- ...extended_dynamic_state_3_multisample_rasterization.cpp | 3 ++- .../extended_dynamic_state_3_multisample_rasterization.h | 8 ++++---- 3 files changed, 7 insertions(+), 6 deletions(-) diff --git a/samples/extensions/extended_dynamic_state_3_multisample_rasterization/README.adoc b/samples/extensions/extended_dynamic_state_3_multisample_rasterization/README.adoc index 1db9c32b8..be537add4 100644 --- a/samples/extensions/extended_dynamic_state_3_multisample_rasterization/README.adoc +++ b/samples/extensions/extended_dynamic_state_3_multisample_rasterization/README.adoc @@ -23,7 +23,7 @@ == Overview This sample demonstrates one of the functionalities of VK_EXT_extended_dynamic_state3 related to rasterization samples. -The extension can be used to dynamically change sampling without any need to restart the application. +The extension can be used to dynamically change sampling without need to swap pipelines. image:image/image.png[] == Enabling the extension diff --git a/samples/extensions/extended_dynamic_state_3_multisample_rasterization/extended_dynamic_state_3_multisample_rasterization.cpp b/samples/extensions/extended_dynamic_state_3_multisample_rasterization/extended_dynamic_state_3_multisample_rasterization.cpp index 26953b4db..2d6ecc631 100644 --- a/samples/extensions/extended_dynamic_state_3_multisample_rasterization/extended_dynamic_state_3_multisample_rasterization.cpp +++ b/samples/extensions/extended_dynamic_state_3_multisample_rasterization/extended_dynamic_state_3_multisample_rasterization.cpp @@ -187,6 +187,7 @@ void ExtendedDynamicState3MultisampleRasterization::draw_node(VkCommandBuffer &d push_const_block.base_color_factor = node_material->base_color_factor; push_const_block.metallic_factor = node_material->metallic_factor; push_const_block.roughness_factor = node_material->roughness_factor; + push_const_block.base_texture_index = -1; push_const_block.normal_texture_index = -1; push_const_block.pbr_texture_index = -1; @@ -364,7 +365,7 @@ void ExtendedDynamicState3MultisampleRasterization::load_assets() imageInfo.sampler = texture->get_sampler()->vk_sampler.get_handle(); image_infos.push_back(imageInfo); - name_to_texture_id.emplace(name, static_cast(image_infos.size()) - 1); + name_to_texture_id.emplace(name, static_cast(image_infos.size()) - 1); } } diff --git a/samples/extensions/extended_dynamic_state_3_multisample_rasterization/extended_dynamic_state_3_multisample_rasterization.h b/samples/extensions/extended_dynamic_state_3_multisample_rasterization/extended_dynamic_state_3_multisample_rasterization.h index 3229dfd5b..f1189051d 100644 --- a/samples/extensions/extended_dynamic_state_3_multisample_rasterization/extended_dynamic_state_3_multisample_rasterization.h +++ b/samples/extensions/extended_dynamic_state_3_multisample_rasterization/extended_dynamic_state_3_multisample_rasterization.h @@ -31,7 +31,7 @@ class ExtendedDynamicState3MultisampleRasterization : public ApiVulkanSample std::unique_ptr scene; std::vector image_infos; - std::map name_to_texture_id; + std::map name_to_texture_id; struct SceneNode { @@ -79,9 +79,9 @@ class ExtendedDynamicState3MultisampleRasterization : public ApiVulkanSample float metallic_factor; float roughness_factor; - uint32_t base_texture_index; - uint32_t normal_texture_index; - uint32_t pbr_texture_index; + int32_t base_texture_index; + int32_t normal_texture_index; + int32_t pbr_texture_index; } push_const_block; From e6829cd0e24789667297a38f938e3cf06af2458f Mon Sep 17 00:00:00 2001 From: pawel-jastrzebski-mobica Date: Tue, 19 Dec 2023 15:19:43 +0100 Subject: [PATCH 32/52] Rename project. Signed-off-by: pawel-jastrzebski-mobica --- samples/CMakeLists.txt | 2 +- .../CMakeLists.txt | 4 +- .../README.adoc | 0 .../dynamic_multisample_rasterization.cpp} | 58 +++++++++--------- .../dynamic_multisample_rasterization.h} | 8 +-- .../image/image.png | Bin .../model.frag | 0 .../model.vert | 0 8 files changed, 36 insertions(+), 36 deletions(-) rename samples/extensions/{extended_dynamic_state_3_multisample_rasterization => dynamic_multisample_rasterization}/CMakeLists.txt (87%) rename samples/extensions/{extended_dynamic_state_3_multisample_rasterization => dynamic_multisample_rasterization}/README.adoc (100%) rename samples/extensions/{extended_dynamic_state_3_multisample_rasterization/extended_dynamic_state_3_multisample_rasterization.cpp => dynamic_multisample_rasterization/dynamic_multisample_rasterization.cpp} (93%) rename samples/extensions/{extended_dynamic_state_3_multisample_rasterization/extended_dynamic_state_3_multisample_rasterization.h => dynamic_multisample_rasterization/dynamic_multisample_rasterization.h} (92%) rename samples/extensions/{extended_dynamic_state_3_multisample_rasterization => dynamic_multisample_rasterization}/image/image.png (100%) rename shaders/{extended_dynamic_state_3_multisample_rasterization => dynamic_multisample_rasterization}/model.frag (100%) rename shaders/{extended_dynamic_state_3_multisample_rasterization => dynamic_multisample_rasterization}/model.vert (100%) diff --git a/samples/CMakeLists.txt b/samples/CMakeLists.txt index df689cd59..d9db1e934 100644 --- a/samples/CMakeLists.txt +++ b/samples/CMakeLists.txt @@ -87,7 +87,7 @@ set(ORDER_LIST "fragment_shader_barycentric" "gshader_to_mshader" "color_write_enable" - "extended_dynamic_state_3_multisample_rasterization" + "dynamic_multisample_rasterization" "sparse_image" #Performance Samples diff --git a/samples/extensions/extended_dynamic_state_3_multisample_rasterization/CMakeLists.txt b/samples/extensions/dynamic_multisample_rasterization/CMakeLists.txt similarity index 87% rename from samples/extensions/extended_dynamic_state_3_multisample_rasterization/CMakeLists.txt rename to samples/extensions/dynamic_multisample_rasterization/CMakeLists.txt index 7315b1ade..896b0c393 100644 --- a/samples/extensions/extended_dynamic_state_3_multisample_rasterization/CMakeLists.txt +++ b/samples/extensions/dynamic_multisample_rasterization/CMakeLists.txt @@ -26,5 +26,5 @@ add_sample( NAME "Extended Dynamic State3 Multisample Rasterization" DESCRIPTION "Sample description" SHADER_FILES_GLSL - "extended_dynamic_state_3_multisample_rasterization/model.vert" - "extended_dynamic_state_3_multisample_rasterization/model.frag") + "dynamic_multisample_rasterization/model.vert" + "dynamic_multisample_rasterization/model.frag") diff --git a/samples/extensions/extended_dynamic_state_3_multisample_rasterization/README.adoc b/samples/extensions/dynamic_multisample_rasterization/README.adoc similarity index 100% rename from samples/extensions/extended_dynamic_state_3_multisample_rasterization/README.adoc rename to samples/extensions/dynamic_multisample_rasterization/README.adoc diff --git a/samples/extensions/extended_dynamic_state_3_multisample_rasterization/extended_dynamic_state_3_multisample_rasterization.cpp b/samples/extensions/dynamic_multisample_rasterization/dynamic_multisample_rasterization.cpp similarity index 93% rename from samples/extensions/extended_dynamic_state_3_multisample_rasterization/extended_dynamic_state_3_multisample_rasterization.cpp rename to samples/extensions/dynamic_multisample_rasterization/dynamic_multisample_rasterization.cpp index 2d6ecc631..718ca02e0 100644 --- a/samples/extensions/extended_dynamic_state_3_multisample_rasterization/extended_dynamic_state_3_multisample_rasterization.cpp +++ b/samples/extensions/dynamic_multisample_rasterization/dynamic_multisample_rasterization.cpp @@ -15,7 +15,7 @@ * limitations under the License. */ -#include "extended_dynamic_state_3_multisample_rasterization.h" +#include "dynamic_multisample_rasterization.h" #include "gltf_loader.h" #include "scene_graph/components/material.h" @@ -23,7 +23,7 @@ #include "scene_graph/components/pbr_material.h" #include "scene_graph/components/sub_mesh.h" -ExtendedDynamicState3MultisampleRasterization::ExtendedDynamicState3MultisampleRasterization() +DynamicMultisampleRasterization::DynamicMultisampleRasterization() { title = "DynamicState3 Multisample Rasterization"; @@ -31,7 +31,7 @@ ExtendedDynamicState3MultisampleRasterization::ExtendedDynamicState3MultisampleR add_device_extension(VK_EXT_EXTENDED_DYNAMIC_STATE_3_EXTENSION_NAME); } -ExtendedDynamicState3MultisampleRasterization::~ExtendedDynamicState3MultisampleRasterization() +DynamicMultisampleRasterization::~DynamicMultisampleRasterization() { if (device) { @@ -42,7 +42,7 @@ ExtendedDynamicState3MultisampleRasterization::~ExtendedDynamicState3Multisample } } -void ExtendedDynamicState3MultisampleRasterization::request_gpu_features(vkb::PhysicalDevice &gpu) +void DynamicMultisampleRasterization::request_gpu_features(vkb::PhysicalDevice &gpu) { // Query the extended dynamic state support extended_dynamic_state_3_features = {}; @@ -108,7 +108,7 @@ const ImVec2 to_scale_ui(VkSampleCountFlagBits sample_count) } } -void ExtendedDynamicState3MultisampleRasterization::prepare_supported_sample_count_list() +void DynamicMultisampleRasterization::prepare_supported_sample_count_list() { VkPhysicalDeviceProperties gpu_properties; vkGetPhysicalDeviceProperties(get_device().get_gpu().get_handle(), &gpu_properties); @@ -137,7 +137,7 @@ void ExtendedDynamicState3MultisampleRasterization::prepare_supported_sample_cou } } -bool ExtendedDynamicState3MultisampleRasterization::prepare(const vkb::ApplicationOptions &options) +bool DynamicMultisampleRasterization::prepare(const vkb::ApplicationOptions &options) { if (!ApiVulkanSample::prepare(options)) { @@ -167,7 +167,7 @@ bool ExtendedDynamicState3MultisampleRasterization::prepare(const vkb::Applicati return true; } -void ExtendedDynamicState3MultisampleRasterization::draw_node(VkCommandBuffer &draw_cmd_buffer, SceneNode &node) +void DynamicMultisampleRasterization::draw_node(VkCommandBuffer &draw_cmd_buffer, SceneNode &node) { assert(node.sub_mesh->vertex_buffers.count("position") == 1); assert(node.sub_mesh->vertex_buffers.count("normal") == 1); @@ -223,7 +223,7 @@ void ExtendedDynamicState3MultisampleRasterization::draw_node(VkCommandBuffer &d vkCmdDraw(draw_cmd_buffer, node.sub_mesh->vertex_indices, 1, 0, 0); } -void ExtendedDynamicState3MultisampleRasterization::build_command_buffers() +void DynamicMultisampleRasterization::build_command_buffers() { VkCommandBufferBeginInfo command_buffer_begin_info = vkb::initializers::command_buffer_begin_info(); @@ -292,7 +292,7 @@ void ExtendedDynamicState3MultisampleRasterization::build_command_buffers() } } -void ExtendedDynamicState3MultisampleRasterization::draw_ui(VkCommandBuffer &cmd_buffer) +void DynamicMultisampleRasterization::draw_ui(VkCommandBuffer &cmd_buffer) { if (gui) { @@ -318,7 +318,7 @@ void ExtendedDynamicState3MultisampleRasterization::draw_ui(VkCommandBuffer &cmd } } -void ExtendedDynamicState3MultisampleRasterization::load_assets() +void DynamicMultisampleRasterization::load_assets() { vkb::GLTFLoader loader{get_device()}; scene = loader.read_scene_from_file("scenes/space_module/SpaceModule.gltf"); @@ -369,7 +369,7 @@ void ExtendedDynamicState3MultisampleRasterization::load_assets() } } -void ExtendedDynamicState3MultisampleRasterization::setup_descriptor_pool() +void DynamicMultisampleRasterization::setup_descriptor_pool() { std::vector pool_sizes = { vkb::initializers::descriptor_pool_size(VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER, 4), @@ -380,7 +380,7 @@ void ExtendedDynamicState3MultisampleRasterization::setup_descriptor_pool() VK_CHECK(vkCreateDescriptorPool(get_device().get_handle(), &descriptor_pool_create_info, nullptr, &descriptor_pool)); } -void ExtendedDynamicState3MultisampleRasterization::setup_descriptor_set_layout() +void DynamicMultisampleRasterization::setup_descriptor_set_layout() { std::vector set_layout_bindings = { vkb::initializers::descriptor_set_layout_binding(VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER, VK_SHADER_STAGE_VERTEX_BIT, 0), @@ -405,7 +405,7 @@ void ExtendedDynamicState3MultisampleRasterization::setup_descriptor_set_layout( VK_CHECK(vkCreatePipelineLayout(get_device().get_handle(), &pipeline_layout_create_info, nullptr, &pipeline_layout)); } -void ExtendedDynamicState3MultisampleRasterization::setup_descriptor_sets() +void DynamicMultisampleRasterization::setup_descriptor_sets() { VkDescriptorSetAllocateInfo alloc_info = vkb::initializers::descriptor_set_allocate_info( @@ -423,7 +423,7 @@ void ExtendedDynamicState3MultisampleRasterization::setup_descriptor_sets() vkUpdateDescriptorSets(get_device().get_handle(), static_cast(write_descriptor_sets.size()), write_descriptor_sets.data(), 0, nullptr); } -void ExtendedDynamicState3MultisampleRasterization::setup_render_pass() +void DynamicMultisampleRasterization::setup_render_pass() { VkPhysicalDeviceProperties gpu_properties; vkGetPhysicalDeviceProperties(get_device().get_gpu().get_handle(), &gpu_properties); @@ -518,7 +518,7 @@ void ExtendedDynamicState3MultisampleRasterization::setup_render_pass() } // Create attachment that will be used in a framebuffer. -void ExtendedDynamicState3MultisampleRasterization::setup_color_attachment() +void DynamicMultisampleRasterization::setup_color_attachment() { VkImageCreateInfo image_create_info{}; image_create_info.sType = VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO; @@ -560,7 +560,7 @@ void ExtendedDynamicState3MultisampleRasterization::setup_color_attachment() VK_CHECK(vkCreateImageView(device->get_handle(), &image_view_create_info, nullptr, &color_attachment.view)); } -void ExtendedDynamicState3MultisampleRasterization::setup_depth_stencil() +void DynamicMultisampleRasterization::setup_depth_stencil() { VkImageCreateInfo image_create_info{}; image_create_info.sType = VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO; @@ -602,7 +602,7 @@ void ExtendedDynamicState3MultisampleRasterization::setup_depth_stencil() VK_CHECK(vkCreateImageView(device->get_handle(), &image_view_create_info, nullptr, &depth_stencil.view)); } -void ExtendedDynamicState3MultisampleRasterization::setup_framebuffer() +void DynamicMultisampleRasterization::setup_framebuffer() { setup_color_attachment(); setup_depth_stencil(); @@ -638,7 +638,7 @@ void ExtendedDynamicState3MultisampleRasterization::setup_framebuffer() } } -void ExtendedDynamicState3MultisampleRasterization::prepare_pipelines() +void DynamicMultisampleRasterization::prepare_pipelines() { VkPipelineInputAssemblyStateCreateInfo input_assembly_state = vkb::initializers::pipeline_input_assembly_state_create_info( @@ -744,8 +744,8 @@ void ExtendedDynamicState3MultisampleRasterization::prepare_pipelines() pipeline_create_info.pVertexInputState = &vertex_input_state; - shader_stages[0] = load_shader("extended_dynamic_state_3_multisample_rasterization/model.vert", VK_SHADER_STAGE_VERTEX_BIT); - shader_stages[1] = load_shader("extended_dynamic_state_3_multisample_rasterization/model.frag", VK_SHADER_STAGE_FRAGMENT_BIT); + shader_stages[0] = load_shader("dynamic_multisample_rasterization/model.vert", VK_SHADER_STAGE_VERTEX_BIT); + shader_stages[1] = load_shader("dynamic_multisample_rasterization/model.frag", VK_SHADER_STAGE_FRAGMENT_BIT); VK_CHECK(vkCreateGraphicsPipelines(get_device().get_handle(), pipeline_cache, 1, &pipeline_create_info, nullptr, &pipeline)); // Add another pipeline since parts of the scene have to be rendered using VK_FRONT_FACE_CLOCKWISE @@ -761,7 +761,7 @@ void ExtendedDynamicState3MultisampleRasterization::prepare_pipelines() } // Prepare and initialize uniform buffer containing shader uniforms -void ExtendedDynamicState3MultisampleRasterization::prepare_uniform_buffers() +void DynamicMultisampleRasterization::prepare_uniform_buffers() { // Matrices vertex shader uniform buffer uniform_buffer = std::make_unique(get_device(), @@ -772,7 +772,7 @@ void ExtendedDynamicState3MultisampleRasterization::prepare_uniform_buffers() update_uniform_buffers(); } -void ExtendedDynamicState3MultisampleRasterization::update_uniform_buffers() +void DynamicMultisampleRasterization::update_uniform_buffers() { uniform_data.projection = camera.matrices.perspective; // Scale the view matrix as the model is pretty large, and also flip it upside down @@ -780,7 +780,7 @@ void ExtendedDynamicState3MultisampleRasterization::update_uniform_buffers() uniform_buffer->convert_and_update(uniform_data); } -void ExtendedDynamicState3MultisampleRasterization::draw() +void DynamicMultisampleRasterization::draw() { ApiVulkanSample::prepare_frame(); submit_info.commandBufferCount = 1; @@ -789,7 +789,7 @@ void ExtendedDynamicState3MultisampleRasterization::draw() ApiVulkanSample::submit_frame(); } -void ExtendedDynamicState3MultisampleRasterization::render(float delta_time) +void DynamicMultisampleRasterization::render(float delta_time) { if (!prepared) { @@ -803,7 +803,7 @@ void ExtendedDynamicState3MultisampleRasterization::render(float delta_time) } } -void ExtendedDynamicState3MultisampleRasterization::update_resources() +void DynamicMultisampleRasterization::update_resources() { prepared = false; @@ -841,7 +841,7 @@ void ExtendedDynamicState3MultisampleRasterization::update_resources() prepared = true; } -void ExtendedDynamicState3MultisampleRasterization::on_update_ui_overlay(vkb::Drawer &drawer) +void DynamicMultisampleRasterization::on_update_ui_overlay(vkb::Drawer &drawer) { if (drawer.header("Settings")) { @@ -854,7 +854,7 @@ void ExtendedDynamicState3MultisampleRasterization::on_update_ui_overlay(vkb::Dr } } -bool ExtendedDynamicState3MultisampleRasterization::resize(const uint32_t _width, const uint32_t _height) +bool DynamicMultisampleRasterization::resize(const uint32_t _width, const uint32_t _height) { if (!ApiVulkanSample::resize(_width, _height)) return false; @@ -867,7 +867,7 @@ bool ExtendedDynamicState3MultisampleRasterization::resize(const uint32_t _width return true; } -std::unique_ptr create_extended_dynamic_state_3_multisample_rasterization() +std::unique_ptr create_dynamic_multisample_rasterization() { - return std::make_unique(); + return std::make_unique(); } diff --git a/samples/extensions/extended_dynamic_state_3_multisample_rasterization/extended_dynamic_state_3_multisample_rasterization.h b/samples/extensions/dynamic_multisample_rasterization/dynamic_multisample_rasterization.h similarity index 92% rename from samples/extensions/extended_dynamic_state_3_multisample_rasterization/extended_dynamic_state_3_multisample_rasterization.h rename to samples/extensions/dynamic_multisample_rasterization/dynamic_multisample_rasterization.h index f1189051d..0128c377f 100644 --- a/samples/extensions/extended_dynamic_state_3_multisample_rasterization/extended_dynamic_state_3_multisample_rasterization.h +++ b/samples/extensions/dynamic_multisample_rasterization/dynamic_multisample_rasterization.h @@ -19,11 +19,11 @@ #include "api_vulkan_sample.h" -class ExtendedDynamicState3MultisampleRasterization : public ApiVulkanSample +class DynamicMultisampleRasterization : public ApiVulkanSample { public: - ExtendedDynamicState3MultisampleRasterization(); - virtual ~ExtendedDynamicState3MultisampleRasterization(); + DynamicMultisampleRasterization(); + virtual ~DynamicMultisampleRasterization(); private: std::unique_ptr vertex_buffer = nullptr; @@ -125,4 +125,4 @@ class ExtendedDynamicState3MultisampleRasterization : public ApiVulkanSample void draw_node(VkCommandBuffer &, SceneNode &); }; -std::unique_ptr create_extended_dynamic_state_3_multisample_rasterization(); +std::unique_ptr create_dynamic_multisample_rasterization(); diff --git a/samples/extensions/extended_dynamic_state_3_multisample_rasterization/image/image.png b/samples/extensions/dynamic_multisample_rasterization/image/image.png similarity index 100% rename from samples/extensions/extended_dynamic_state_3_multisample_rasterization/image/image.png rename to samples/extensions/dynamic_multisample_rasterization/image/image.png diff --git a/shaders/extended_dynamic_state_3_multisample_rasterization/model.frag b/shaders/dynamic_multisample_rasterization/model.frag similarity index 100% rename from shaders/extended_dynamic_state_3_multisample_rasterization/model.frag rename to shaders/dynamic_multisample_rasterization/model.frag diff --git a/shaders/extended_dynamic_state_3_multisample_rasterization/model.vert b/shaders/dynamic_multisample_rasterization/model.vert similarity index 100% rename from shaders/extended_dynamic_state_3_multisample_rasterization/model.vert rename to shaders/dynamic_multisample_rasterization/model.vert From 92f0bbfc0aaa511af7eb590899b1605b089425d6 Mon Sep 17 00:00:00 2001 From: pawel-jastrzebski-mobica Date: Mon, 15 Jan 2024 15:09:50 +0100 Subject: [PATCH 33/52] Fix review comments. Issues solved: - remove unneeded code - fix vulkan validation errors Signed-off-by: pawel-jastrzebski-mobica --- .../dynamic_multisample_rasterization/README.adoc | 2 +- .../dynamic_multisample_rasterization.cpp | 11 ++++++++--- .../dynamic_multisample_rasterization.h | 2 ++ 3 files changed, 11 insertions(+), 4 deletions(-) diff --git a/samples/extensions/dynamic_multisample_rasterization/README.adoc b/samples/extensions/dynamic_multisample_rasterization/README.adoc index be537add4..47a013872 100644 --- a/samples/extensions/dynamic_multisample_rasterization/README.adoc +++ b/samples/extensions/dynamic_multisample_rasterization/README.adoc @@ -29,7 +29,7 @@ image:image/image.png[] == Enabling the extension To be able to use this extension in Vulkan API: -1) VK_EXT_extended_dynamic_state3 depends on `VK_KHR_get_physical_device_properties2`, which is promoted to Vulkan 1.1. That is, to use this extension, `VK_EXT_extended_dynamic_state3` and either `VK_KHR_get_physical_device_properties2` or Vulkan 1.1 are required. +1) `VK_EXT_extended_dynamic_state3` depends on `VK_KHR_get_physical_device_properties2`, which is promoted to Vulkan 1.1. That is, to use this extension, `VK_EXT_extended_dynamic_state3` and either `VK_KHR_get_physical_device_properties2` or Vulkan 1.1 are required. 2) Set of `VkPhysicalDeviceExtendedDynamicStateFeaturesEXT`, `VkPhysicalDeviceExtendedDynamicState2FeaturesEXT`, `VkPhysicalDeviceExtendedDynamicState3FeaturesEXT` must be added to the feature chain of `VkPhysicalDeviceProperties2`. diff --git a/samples/extensions/dynamic_multisample_rasterization/dynamic_multisample_rasterization.cpp b/samples/extensions/dynamic_multisample_rasterization/dynamic_multisample_rasterization.cpp index 718ca02e0..c673395b9 100644 --- a/samples/extensions/dynamic_multisample_rasterization/dynamic_multisample_rasterization.cpp +++ b/samples/extensions/dynamic_multisample_rasterization/dynamic_multisample_rasterization.cpp @@ -110,6 +110,9 @@ const ImVec2 to_scale_ui(VkSampleCountFlagBits sample_count) void DynamicMultisampleRasterization::prepare_supported_sample_count_list() { + if (sample_count_prepared) + return; + VkPhysicalDeviceProperties gpu_properties; vkGetPhysicalDeviceProperties(get_device().get_gpu().get_handle(), &gpu_properties); @@ -135,6 +138,8 @@ void DynamicMultisampleRasterization::prepare_supported_sample_count_list() gui_sample_count = sample_count; last_gui_sample_count = sample_count; } + + sample_count_prepared = true; } bool DynamicMultisampleRasterization::prepare(const vkb::ApplicationOptions &options) @@ -144,8 +149,6 @@ bool DynamicMultisampleRasterization::prepare(const vkb::ApplicationOptions &opt return false; } - prepare_supported_sample_count_list(); - camera.type = vkb::CameraType::LookAt; camera.set_position(glm::vec3(1.9f, 10.f, -18.f)); camera.set_rotation(glm::vec3(0.f, -40.f, 0.f)); @@ -425,6 +428,8 @@ void DynamicMultisampleRasterization::setup_descriptor_sets() void DynamicMultisampleRasterization::setup_render_pass() { + prepare_supported_sample_count_list(); + VkPhysicalDeviceProperties gpu_properties; vkGetPhysicalDeviceProperties(get_device().get_gpu().get_handle(), &gpu_properties); @@ -436,7 +441,7 @@ void DynamicMultisampleRasterization::setup_render_pass() attachments[0].format = render_context->get_format(); attachments[0].samples = sample_count; attachments[0].loadOp = VK_ATTACHMENT_LOAD_OP_CLEAR; - attachments[0].storeOp = VK_ATTACHMENT_STORE_OP_STORE; + attachments[0].storeOp = VK_ATTACHMENT_STORE_OP_DONT_CARE; attachments[0].stencilLoadOp = VK_ATTACHMENT_LOAD_OP_DONT_CARE; attachments[0].stencilStoreOp = VK_ATTACHMENT_STORE_OP_DONT_CARE; attachments[0].initialLayout = VK_IMAGE_LAYOUT_UNDEFINED; diff --git a/samples/extensions/dynamic_multisample_rasterization/dynamic_multisample_rasterization.h b/samples/extensions/dynamic_multisample_rasterization/dynamic_multisample_rasterization.h index 0128c377f..7c2055a5d 100644 --- a/samples/extensions/dynamic_multisample_rasterization/dynamic_multisample_rasterization.h +++ b/samples/extensions/dynamic_multisample_rasterization/dynamic_multisample_rasterization.h @@ -71,6 +71,8 @@ class DynamicMultisampleRasterization : public ApiVulkanSample VkSampleCountFlagBits last_gui_sample_count{VK_SAMPLE_COUNT_1_BIT}; + bool sample_count_prepared = false; + struct { glm::mat4 model_matrix; From f037dc3541b8a4f3c57764f3a9e0bd36af6899d2 Mon Sep 17 00:00:00 2001 From: pawel-jastrzebski-mobica Date: Thu, 1 Feb 2024 14:45:41 +0100 Subject: [PATCH 34/52] Add multisampling to GUI rendering. Signed-off-by: pawel-jastrzebski-mobica --- framework/gui.cpp | 64 +++++++ framework/gui.h | 13 ++ .../dynamic_multisample_rasterization.cpp | 169 +++++++++++++----- .../dynamic_multisample_rasterization.h | 9 + 4 files changed, 213 insertions(+), 42 deletions(-) diff --git a/framework/gui.cpp b/framework/gui.cpp index 1c9b68777..0a3658786 100644 --- a/framework/gui.cpp +++ b/framework/gui.cpp @@ -705,6 +705,60 @@ void Gui::draw(VkCommandBuffer command_buffer) } } +void Gui::draw(VkCommandBuffer command_buffer, const VkPipeline pipeline, const VkPipelineLayout pipeline_layout, const VkDescriptorSet descriptor_set) +{ + if (!visible) + { + return; + } + + auto &io = ImGui::GetIO(); + ImDrawData *draw_data = ImGui::GetDrawData(); + int32_t vertex_offset = 0; + int32_t index_offset = 0; + + if ((!draw_data) || (draw_data->CmdListsCount == 0)) + { + return; + } + + vkCmdBindPipeline(command_buffer, VK_PIPELINE_BIND_POINT_GRAPHICS, pipeline); + vkCmdBindDescriptorSets(command_buffer, VK_PIPELINE_BIND_POINT_GRAPHICS, pipeline_layout, 0, 1, &descriptor_set, 0, NULL); + + // Push constants + auto push_transform = glm::mat4(1.0f); + push_transform = glm::translate(push_transform, glm::vec3(-1.0f, -1.0f, 0.0f)); + push_transform = glm::scale(push_transform, glm::vec3(2.0f / io.DisplaySize.x, 2.0f / io.DisplaySize.y, 0.0f)); + vkCmdPushConstants(command_buffer, pipeline_layout, VK_SHADER_STAGE_VERTEX_BIT, 0, sizeof(glm::mat4), &push_transform); + + VkDeviceSize offsets[1] = {0}; + + VkBuffer vertex_buffer_handle = vertex_buffer->get_handle(); + vkCmdBindVertexBuffers(command_buffer, 0, 1, &vertex_buffer_handle, offsets); + + VkBuffer index_buffer_handle = index_buffer->get_handle(); + vkCmdBindIndexBuffer(command_buffer, index_buffer_handle, 0, VK_INDEX_TYPE_UINT16); + + for (int32_t i = 0; i < draw_data->CmdListsCount; i++) + { + const ImDrawList *cmd_list = draw_data->CmdLists[i]; + for (int32_t j = 0; j < cmd_list->CmdBuffer.Size; j++) + { + const ImDrawCmd *cmd = &cmd_list->CmdBuffer[j]; + VkRect2D scissor_rect; + scissor_rect.offset.x = std::max(static_cast(cmd->ClipRect.x), 0); + scissor_rect.offset.y = std::max(static_cast(cmd->ClipRect.y), 0); + scissor_rect.extent.width = static_cast(cmd->ClipRect.z - cmd->ClipRect.x); + scissor_rect.extent.height = static_cast(cmd->ClipRect.w - cmd->ClipRect.y); + + vkCmdSetScissor(command_buffer, 0, 1, &scissor_rect); + vkCmdDrawIndexed(command_buffer, cmd->ElemCount, 1, index_offset, vertex_offset, 0); + index_offset += cmd->ElemCount; + } + vertex_offset += cmd_list->VtxBuffer.Size; + } +} + Gui::~Gui() { vkDestroyDescriptorPool(sample.get_render_context().get_device().get_handle(), descriptor_pool, nullptr); @@ -729,6 +783,16 @@ Drawer &Gui::get_drawer() return drawer; } +VkSampler Gui::get_sampler() const +{ + return sampler->get_handle(); +} + +VkImageView Gui::get_font_image_view() const +{ + return font_image_view->get_handle(); +} + Font &Gui::get_font(const std::string &font_name) { assert(!fonts.empty() && "No fonts exist"); diff --git a/framework/gui.h b/framework/gui.h index dd902638a..bc76104b3 100644 --- a/framework/gui.h +++ b/framework/gui.h @@ -349,6 +349,15 @@ class Gui */ void draw(VkCommandBuffer command_buffer); + /** + * @brief Draws the Gui using an external pipeline + * @param command_buffer Command buffer to register draw-commands + * @param pipeline Pipeline to bind to perform draw-commands + * @param pipeline_layout PipelineLayout for given pieline + * @param descriptor_set DescriptorSet to bind to perform draw-commands + */ + void draw(VkCommandBuffer command_buffer, const VkPipeline pipeline, const VkPipelineLayout pipeline_layout, const VkDescriptorSet descriptor_set); + /** * @brief Shows an overlay top window with app info and maybe stats * @param app_name Application name @@ -407,6 +416,10 @@ class Gui void set_subpass(const uint32_t subpass); + VkSampler get_sampler() const; + + VkImageView get_font_image_view() const; + private: /** * @brief Block size of a buffer pool in kilobytes diff --git a/samples/extensions/dynamic_multisample_rasterization/dynamic_multisample_rasterization.cpp b/samples/extensions/dynamic_multisample_rasterization/dynamic_multisample_rasterization.cpp index c673395b9..d8e710dc7 100644 --- a/samples/extensions/dynamic_multisample_rasterization/dynamic_multisample_rasterization.cpp +++ b/samples/extensions/dynamic_multisample_rasterization/dynamic_multisample_rasterization.cpp @@ -85,29 +85,6 @@ const std::string to_string(VkSampleCountFlagBits count) } } -const ImVec2 to_scale_ui(VkSampleCountFlagBits sample_count) -{ - switch (sample_count) - { - case VK_SAMPLE_COUNT_1_BIT: - return ImVec2(1.0, 1.0); - case VK_SAMPLE_COUNT_2_BIT: - return ImVec2(2.0, 1.0); - case VK_SAMPLE_COUNT_4_BIT: - return ImVec2(2.0, 2.0); - case VK_SAMPLE_COUNT_8_BIT: - return ImVec2(4.0, 2.0); - case VK_SAMPLE_COUNT_16_BIT: - return ImVec2(4.0, 4.0); - case VK_SAMPLE_COUNT_32_BIT: - return ImVec2(8.0, 4.0); - case VK_SAMPLE_COUNT_64_BIT: - return ImVec2(8.0, 8.0); - default: - return ImVec2(1.0, 1.0); - } -} - void DynamicMultisampleRasterization::prepare_supported_sample_count_list() { if (sample_count_prepared) @@ -299,25 +276,7 @@ void DynamicMultisampleRasterization::draw_ui(VkCommandBuffer &cmd_buffer) { if (gui) { - auto &scale = to_scale_ui(sample_count); - auto viewport = vkb::initializers::viewport(static_cast(width) * scale.x, static_cast(height) * scale.y, 0.0f, 1.0f); - vkCmdSetViewport(cmd_buffer, 0, 1, &viewport); - auto draw_data = ImGui::GetDrawData(); - - if (draw_data) - { - for (int32_t i = 0; i < draw_data->CmdListsCount; i++) - { - ImDrawList *cmd_list = draw_data->CmdLists[i]; - for (int32_t j = 0; j < cmd_list->CmdBuffer.Size; j++) - { - auto cmd = &cmd_list->CmdBuffer[j]; - cmd->ClipRect.z *= scale.x; - cmd->ClipRect.w *= scale.y; - } - } - } - gui->draw(cmd_buffer); + gui->draw(cmd_buffer, pipeline_gui, pipeline_layout_gui, descriptor_set_gui); } } @@ -751,6 +710,7 @@ void DynamicMultisampleRasterization::prepare_pipelines() shader_stages[0] = load_shader("dynamic_multisample_rasterization/model.vert", VK_SHADER_STAGE_VERTEX_BIT); shader_stages[1] = load_shader("dynamic_multisample_rasterization/model.frag", VK_SHADER_STAGE_FRAGMENT_BIT); + VK_CHECK(vkCreateGraphicsPipelines(get_device().get_handle(), pipeline_cache, 1, &pipeline_create_info, nullptr, &pipeline)); // Add another pipeline since parts of the scene have to be rendered using VK_FRONT_FACE_CLOCKWISE @@ -765,6 +725,122 @@ void DynamicMultisampleRasterization::prepare_pipelines() VK_CHECK(vkCreateGraphicsPipelines(get_device().get_handle(), pipeline_cache, 1, &pipeline_create_info, nullptr, &pipeline_inversed_rasterizer)); } +void DynamicMultisampleRasterization::prepare_gui_pipeline() +{ + auto &device = get_render_context().get_device(); + + // Descriptor pool + std::vector pool_sizes = { + vkb::initializers::descriptor_pool_size(VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, 1)}; + VkDescriptorPoolCreateInfo descriptorPoolInfo = vkb::initializers::descriptor_pool_create_info(pool_sizes, 2); + VK_CHECK(vkCreateDescriptorPool(device.get_handle(), &descriptorPoolInfo, nullptr, &descriptor_pool_gui)); + + // Descriptor set layout + std::vector layout_bindings_gui = { + vkb::initializers::descriptor_set_layout_binding(VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, VK_SHADER_STAGE_FRAGMENT_BIT, 0), + }; + VkDescriptorSetLayoutCreateInfo descriptor_set_layout_create_info = vkb::initializers::descriptor_set_layout_create_info(layout_bindings_gui); + VK_CHECK(vkCreateDescriptorSetLayout(device.get_handle(), &descriptor_set_layout_create_info, nullptr, &descriptor_set_layout_gui)); + + // Descriptor set + VkDescriptorSetAllocateInfo descriptor_allocation = vkb::initializers::descriptor_set_allocate_info(descriptor_pool_gui, &descriptor_set_layout_gui, 1); + VK_CHECK(vkAllocateDescriptorSets(device.get_handle(), &descriptor_allocation, &descriptor_set_gui)); + VkDescriptorImageInfo font_descriptor = vkb::initializers::descriptor_image_info( + gui->get_sampler(), + gui->get_font_image_view(), + VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL); + std::vector write_descriptor_sets = { + vkb::initializers::write_descriptor_set(descriptor_set_gui, VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, 0, &font_descriptor)}; + vkUpdateDescriptorSets(device.get_handle(), static_cast(write_descriptor_sets.size()), write_descriptor_sets.data(), 0, nullptr); + + // Setup graphics pipeline for UI rendering + VkPipelineInputAssemblyStateCreateInfo input_assembly_state = + vkb::initializers::pipeline_input_assembly_state_create_info(VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST, 0, VK_FALSE); + + VkPipelineRasterizationStateCreateInfo rasterization_state = + vkb::initializers::pipeline_rasterization_state_create_info(VK_POLYGON_MODE_FILL, VK_CULL_MODE_NONE, VK_FRONT_FACE_COUNTER_CLOCKWISE); + + // Enable blending + VkPipelineColorBlendAttachmentState blend_attachment_state{}; + blend_attachment_state.blendEnable = VK_TRUE; + blend_attachment_state.colorWriteMask = VK_COLOR_COMPONENT_R_BIT | VK_COLOR_COMPONENT_G_BIT | VK_COLOR_COMPONENT_B_BIT | VK_COLOR_COMPONENT_A_BIT; + blend_attachment_state.srcColorBlendFactor = VK_BLEND_FACTOR_SRC_ALPHA; + blend_attachment_state.dstColorBlendFactor = VK_BLEND_FACTOR_ONE_MINUS_SRC_ALPHA; + blend_attachment_state.colorBlendOp = VK_BLEND_OP_ADD; + blend_attachment_state.srcAlphaBlendFactor = VK_BLEND_FACTOR_ONE_MINUS_SRC_ALPHA; + blend_attachment_state.dstAlphaBlendFactor = VK_BLEND_FACTOR_ZERO; + blend_attachment_state.alphaBlendOp = VK_BLEND_OP_ADD; + + VkPipelineColorBlendStateCreateInfo color_blend_state = + vkb::initializers::pipeline_color_blend_state_create_info(1, &blend_attachment_state); + + VkPipelineDepthStencilStateCreateInfo depth_stencil_state = + vkb::initializers::pipeline_depth_stencil_state_create_info(VK_FALSE, VK_FALSE, VK_COMPARE_OP_ALWAYS); + + VkPipelineViewportStateCreateInfo viewport_state = + vkb::initializers::pipeline_viewport_state_create_info(1, 1, 0); + + VkPipelineMultisampleStateCreateInfo multisample_state = + vkb::initializers::pipeline_multisample_state_create_info(VK_SAMPLE_COUNT_1_BIT); + + std::vector dynamic_state_enables = { + VK_DYNAMIC_STATE_VIEWPORT, + VK_DYNAMIC_STATE_SCISSOR, + VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT /* VK_EXT_extended_dynamic_state3 */ + }; + VkPipelineDynamicStateCreateInfo dynamic_state = + vkb::initializers::pipeline_dynamic_state_create_info(dynamic_state_enables); + + std::vector shader_modules; + + vkb::ShaderSource vert_shader("uioverlay/uioverlay.vert"); + vkb::ShaderSource frag_shader("uioverlay/uioverlay.frag"); + + shader_modules.push_back(&device.get_resource_cache().request_shader_module(VK_SHADER_STAGE_VERTEX_BIT, vert_shader, {})); + shader_modules.push_back(&device.get_resource_cache().request_shader_module(VK_SHADER_STAGE_FRAGMENT_BIT, frag_shader, {})); + + pipeline_layout_gui = device.get_resource_cache().request_pipeline_layout(shader_modules).get_handle(); + + VkGraphicsPipelineCreateInfo pipeline_create_info = vkb::initializers::pipeline_create_info(pipeline_layout_gui, render_pass); + + std::array shader_stages; + + shader_stages[0] = load_shader(vert_shader.get_filename(), VK_SHADER_STAGE_VERTEX_BIT); + shader_stages[1] = load_shader(frag_shader.get_filename(), VK_SHADER_STAGE_FRAGMENT_BIT); + + pipeline_create_info.stageCount = static_cast(shader_stages.size()); + pipeline_create_info.pStages = shader_stages.data(); + + pipeline_create_info.pInputAssemblyState = &input_assembly_state; + pipeline_create_info.pRasterizationState = &rasterization_state; + pipeline_create_info.pColorBlendState = &color_blend_state; + pipeline_create_info.pMultisampleState = &multisample_state; + pipeline_create_info.pViewportState = &viewport_state; + pipeline_create_info.pDepthStencilState = &depth_stencil_state; + pipeline_create_info.pDynamicState = &dynamic_state; + pipeline_create_info.stageCount = static_cast(shader_stages.size()); + pipeline_create_info.pStages = shader_stages.data(); + + // Vertex bindings an attributes based on ImGui vertex definition + std::vector vertex_input_bindings = { + vkb::initializers::vertex_input_binding_description(0, sizeof(ImDrawVert), VK_VERTEX_INPUT_RATE_VERTEX), + }; + std::vector vertex_input_attributes = { + vkb::initializers::vertex_input_attribute_description(0, 0, VK_FORMAT_R32G32_SFLOAT, offsetof(ImDrawVert, pos)), // Location 0: Position + vkb::initializers::vertex_input_attribute_description(0, 1, VK_FORMAT_R32G32_SFLOAT, offsetof(ImDrawVert, uv)), // Location 1: UV + vkb::initializers::vertex_input_attribute_description(0, 2, VK_FORMAT_R8G8B8A8_UNORM, offsetof(ImDrawVert, col)), // Location 0: Color + }; + VkPipelineVertexInputStateCreateInfo vertex_input_state_create_info = vkb::initializers::pipeline_vertex_input_state_create_info(); + vertex_input_state_create_info.vertexBindingDescriptionCount = static_cast(vertex_input_bindings.size()); + vertex_input_state_create_info.pVertexBindingDescriptions = vertex_input_bindings.data(); + vertex_input_state_create_info.vertexAttributeDescriptionCount = static_cast(vertex_input_attributes.size()); + vertex_input_state_create_info.pVertexAttributeDescriptions = vertex_input_attributes.data(); + + pipeline_create_info.pVertexInputState = &vertex_input_state_create_info; + + VK_CHECK(vkCreateGraphicsPipelines(device.get_handle(), pipeline_cache, 1, &pipeline_create_info, nullptr, &pipeline_gui)); +} + // Prepare and initialize uniform buffer containing shader uniforms void DynamicMultisampleRasterization::prepare_uniform_buffers() { @@ -777,6 +853,15 @@ void DynamicMultisampleRasterization::prepare_uniform_buffers() update_uniform_buffers(); } +void DynamicMultisampleRasterization::prepare_gui() +{ + gui = std::make_unique(*this, *window, /*stats=*/nullptr, 15.0f, true); + + prepare_gui_pipeline(); + + // No need to call gui->prepare because the pipeline has been created above +} + void DynamicMultisampleRasterization::update_uniform_buffers() { uniform_data.projection = camera.matrices.perspective; diff --git a/samples/extensions/dynamic_multisample_rasterization/dynamic_multisample_rasterization.h b/samples/extensions/dynamic_multisample_rasterization/dynamic_multisample_rasterization.h index 7c2055a5d..72860663c 100644 --- a/samples/extensions/dynamic_multisample_rasterization/dynamic_multisample_rasterization.h +++ b/samples/extensions/dynamic_multisample_rasterization/dynamic_multisample_rasterization.h @@ -56,6 +56,13 @@ class DynamicMultisampleRasterization : public ApiVulkanSample VkDescriptorSet descriptor_set; VkDescriptorSetLayout descriptor_set_layout; + // GUI + VkPipeline pipeline_gui; + VkPipelineLayout pipeline_layout_gui; + VkDescriptorSet descriptor_set_gui; + VkDescriptorSetLayout descriptor_set_layout_gui; + VkDescriptorPool descriptor_pool_gui; + /** * @brief List of MSAA levels supported by the platform */ @@ -112,11 +119,13 @@ class DynamicMultisampleRasterization : public ApiVulkanSample virtual void on_update_ui_overlay(vkb::Drawer &drawer) override; virtual bool resize(const uint32_t _width, const uint32_t _height) override; virtual void setup_depth_stencil() override; + virtual void prepare_gui() override; void load_assets(); void setup_descriptor_pool(); void setup_descriptor_set_layout(); void setup_descriptor_sets(); void prepare_pipelines(); + void prepare_gui_pipeline(); void prepare_uniform_buffers(); void update_uniform_buffers(); void draw(); From d2016f3d3be44712d6cdc8a8b1c4def5f6a5af10 Mon Sep 17 00:00:00 2001 From: pawel-jastrzebski-mobica Date: Fri, 2 Feb 2024 10:35:09 +0100 Subject: [PATCH 35/52] Update README Signed-off-by: pawel-jastrzebski-mobica --- .../README.adoc | 19 ++++++++----------- 1 file changed, 8 insertions(+), 11 deletions(-) diff --git a/samples/extensions/dynamic_multisample_rasterization/README.adoc b/samples/extensions/dynamic_multisample_rasterization/README.adoc index 47a013872..72f4e570f 100644 --- a/samples/extensions/dynamic_multisample_rasterization/README.adoc +++ b/samples/extensions/dynamic_multisample_rasterization/README.adoc @@ -37,23 +37,20 @@ must be added to the feature chain of `VkPhysicalDeviceProperties2`. To use the extension: 1) `VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT` must be added to `VkPipelineDynamicStateCreateInfo`. -2) Method `void vkCmdSetRasterizationSamplesEXT(VkCommandBuffer commandBuffer, VkSampleCountFlagBits rasterizationSamples)` should be called between -`vkCmdBeginRenderPass` and `vkCmdEndRenderPass`. +2) Method `void vkCmdSetRasterizationSamplesEXT(VkCommandBuffer commandBuffer, VkSampleCountFlagBits rasterizationSamples)` should be called between `vkCmdBeginRenderPass` and `vkCmdEndRenderPass`. == Known issues -The extension always reports the following validation error when enabled: +The extension always reports the following validation errors when enabled: .... -[error] [framework\core\instance.cpp:50] -1100021871 - UNASSIGNED-GeneralParameterError-UnrecognizedValue: Validation Error: [ UNASSIGNED-GeneralParameterError-UnrecognizedValue ] Object 0: handle = 0x15d301ca4e0, type = VK_OBJECT_TYPE_DEVICE; | MessageID = 0xbe6eff91 | vkCreateGraphicsPipelines: value of pCreateInfos[0].pDynamicState->pDynamicStates[2] (1000455005) does not fall within the begin..end range of the core VkDynamicState enumeration tokens and is not an extension added token +VUID-vkCmdDraw-rasterizationSamples-07474(ERROR / SPEC): msgNum: -2007336333 - Validation Error: [ VUID-vkCmdDraw-rasterizationSamples-07474 ] Object 0: handle = 0x1ab5b866f50, type = VK_OBJECT_TYPE_COMMAND_BUFFER; | MessageID = 0x885a7a73 | vkCmdDraw(): Render pass attachment 1 samples VK_SAMPLE_COUNT_1_BIT does not match samples VK_SAMPLE_COUNT_4_BIT set with vkCmdSetRasterizationSamplesEXT(). The Vulkan spec states: If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, and neither the VK_AMD_mixed_attachment_samples nor the VK_NV_framebuffer_mixed_samples extensions are enabled, then the rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT must be the same as the current subpass color and/or depth/stencil attachments (https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VUID-vkCmdDraw-rasterizationSamples-07474) +VUID-vkCmdDraw-renderPass-02684: Validation Error: [ VUID-vkCmdDraw-renderPass-02684 ] Object 0: handle = 0x7533b600000006c9, type = VK_OBJECT_TYPE_RENDER_PASS; Object 1: handle = 0x30f5a50000000020, type = VK_OBJECT_TYPE_RENDER_PASS; | MessageID = 0x50685725 | vkCmdDraw(): RenderPasses incompatible between active render pass w/ VkRenderPass 0x7533b600000006c9[] and pipeline state object w/ VkRenderPass 0x30f5a50000000020[] Attachment 0 is not compatible with 0: They have different samples.. The Vulkan spec states: The current render pass must be compatible with the renderPass member of the VkGraphicsPipelineCreateInfo structure specified when creating the VkPipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS (https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VUID-vkCmdDraw-renderPass-02684) +VUID-VkSubpassDescription-pResolveAttachments-00848: Validation Error: [ VUID-VkSubpassDescription-pResolveAttachments-00848 ] | MessageID = 0xfad6c3cb | vkCreateRenderPass(): pCreateInfo->pAttachments[0].samples is VK_SAMPLE_COUNT_1_BIT. The Vulkan spec states: If pResolveAttachments is not NULL, for each resolve attachment that is not VK_ATTACHMENT_UNUSED, the corresponding color attachment must not have a sample count of VK_SAMPLE_COUNT_1_BIT (https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VUID-VkSubpassDescription-pResolveAttachments-00848) .... -This implies several other validation errors during runtime: -.... -[error] [framework\core\instance.cpp:50] -1052047544 - VUID-vkCmdDraw-rasterizationSamples-04740: Validation Error: [ VUID-vkCmdDraw-rasterizationSamples-04740 ] Object 0: handle = 0xf6d9250000000139, type = VK_OBJECT_TYPE_PIPELINE; Object 1: handle = 0xfc06e9000000013d, type = VK_OBJECT_TYPE_RENDER_PASS; | MessageID = 0xc14b0748 | vkCmdDraw: In VkPipeline 0xf6d9250000000139[] the sample count is VK_SAMPLE_COUNT_1_BIT while the current VkRenderPass 0xfc06e9000000013d[] has VK_SAMPLE_COUNT_4_BIT and they need to be the same. The Vulkan spec states: If rasterization is not disabled in the bound graphics pipeline, and neither the VK_AMD_mixed_attachment_samples nor the VK_NV_framebuffer_mixed_samples extensions are enabled, then VkPipelineMultisampleStateCreateInfo::rasterizationSamples must be the same as the current subpass color and/or depth/stencil attachments (https://vulkan.lunarg.com/doc/view/1.3.216.0/windows/1.3-extensions/vkspec.html#VUID-vkCmdDraw-rasterizationSamples-04740) -[error] [framework\core\instance.cpp:50] 1349015333 - VUID-vkCmdDraw-renderPass-02684: Validation Error: [ VUID-vkCmdDraw-renderPass-02684 ] Object 0: handle = 0xfc06e9000000013d, type = VK_OBJECT_TYPE_RENDER_PASS; Object 1: handle = 0xab64de0000000020, type = VK_OBJECT_TYPE_RENDER_PASS; | MessageID = 0x50685725 | vkCmdDraw: RenderPasses incompatible between active render pass w/ VkRenderPass 0xfc06e9000000013d[] and pipeline state object w/ VkRenderPass 0xab64de0000000020[] Attachment 0 is not compatible with 0: They have different samples.. The Vulkan spec states: The current render pass must be compatible with the renderPass member of the VkGraphicsPipelineCreateInfo structure specified when creating the VkPipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS (https://vulkan.lunarg.com/doc/view/1.3.216.0/windows/1.3-extensions/vkspec.html#VUID-vkCmdDraw-renderPass-02684) -[error] [framework\core\instance.cpp:50] -329854293 - VUID-vkCmdDrawIndexed-rasterizationSamples-04740: Validation Error: [ VUID-vkCmdDrawIndexed-rasterizationSamples-04740 ] Object 0: handle = 0x9f9b41000000003c, type = VK_OBJECT_TYPE_PIPELINE; Object 1: handle = 0xfc06e9000000013d, type = VK_OBJECT_TYPE_RENDER_PASS; | MessageID = 0xec56d2ab | vkCmdDrawIndexed: In VkPipeline 0x9f9b41000000003c[] the sample count is VK_SAMPLE_COUNT_1_BIT while the current VkRenderPass 0xfc06e9000000013d[] has VK_SAMPLE_COUNT_4_BIT and they need to be the same. The Vulkan spec states: If rasterization is not disabled in the bound graphics pipeline, and neither the VK_AMD_mixed_attachment_samples nor the VK_NV_framebuffer_mixed_samples extensions are enabled, then VkPipelineMultisampleStateCreateInfo::rasterizationSamples must be the same as the current subpass color and/or depth/stencil attachments (https://vulkan.lunarg.com/doc/view/1.3.216.0/windows/1.3-extensions/vkspec.html#VUID-vkCmdDrawIndexed-rasterizationSamples-04740) -[error] [framework\core\instance.cpp:50] -1934215230 - VUID-vkCmdDrawIndexed-renderPass-02684: Validation Error: [ VUID-vkCmdDrawIndexed-renderPass-02684 ] Object 0: handle = 0xfc06e9000000013d, type = VK_OBJECT_TYPE_RENDER_PASS; Object 1: handle = 0xab64de0000000020, type = VK_OBJECT_TYPE_RENDER_PASS; | MessageID = 0x8cb637c2 | vkCmdDrawIndexed: RenderPasses incompatible between active render pass w/ VkRenderPass 0xfc06e9000000013d[] and pipeline state object w/ VkRenderPass 0xab64de0000000020[] Attachment 0 is not compatible with 0: They have different samples.. The Vulkan spec states: The current render pass must be compatible with the renderPass member of the VkGraphicsPipelineCreateInfo structure specified when creating the VkPipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS (https://vulkan.lunarg.com/doc/view/1.3.216.0/windows/1.3-extensions/vkspec.html#VUID-vkCmdDrawIndexed-renderPass-02684) -.... +The root cause for the validation errors is currently unknown and under analysis by Vulkan Validation Layers team: + +https://github.com/KhronosGroup/Vulkan-ValidationLayers/issues/7327 == Resources From ca0a459ab4f24b042621b2e50d76eee7d43142c5 Mon Sep 17 00:00:00 2001 From: pawel-jastrzebski-mobica Date: Fri, 2 Feb 2024 12:02:28 +0100 Subject: [PATCH 36/52] Change rotation speed. Signed-off-by: pawel-jastrzebski-mobica --- .../dynamic_multisample_rasterization.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/extensions/dynamic_multisample_rasterization/dynamic_multisample_rasterization.cpp b/samples/extensions/dynamic_multisample_rasterization/dynamic_multisample_rasterization.cpp index d8e710dc7..fa004cfd1 100644 --- a/samples/extensions/dynamic_multisample_rasterization/dynamic_multisample_rasterization.cpp +++ b/samples/extensions/dynamic_multisample_rasterization/dynamic_multisample_rasterization.cpp @@ -129,7 +129,7 @@ bool DynamicMultisampleRasterization::prepare(const vkb::ApplicationOptions &opt camera.type = vkb::CameraType::LookAt; camera.set_position(glm::vec3(1.9f, 10.f, -18.f)); camera.set_rotation(glm::vec3(0.f, -40.f, 0.f)); - camera.rotation_speed = 0.001f; + camera.rotation_speed = 0.01f; // Note: Using reversed depth-buffer for increased precision, so Znear and Zfar are flipped camera.set_perspective(60.0f, static_cast(width) / static_cast(height), 256.0f, 0.1f); From f4d0e0e4c65e045187152e84611a87e782626dc0 Mon Sep 17 00:00:00 2001 From: pawel-jastrzebski-mobica Date: Fri, 2 Feb 2024 12:24:06 +0100 Subject: [PATCH 37/52] Fix clang-format. Signed-off-by: pawel-jastrzebski-mobica --- framework/gui.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/framework/gui.h b/framework/gui.h index bc76104b3..322995f42 100644 --- a/framework/gui.h +++ b/framework/gui.h @@ -416,7 +416,7 @@ class Gui void set_subpass(const uint32_t subpass); - VkSampler get_sampler() const; + VkSampler get_sampler() const; VkImageView get_font_image_view() const; From 9ca43098294c531948e3a99099e21916123791fa Mon Sep 17 00:00:00 2001 From: pawel-jastrzebski-mobica Date: Mon, 5 Feb 2024 18:37:17 +0100 Subject: [PATCH 38/52] Update copyright year. Signed-off-by: pawel-jastrzebski-mobica --- framework/gui.cpp | 5 +- framework/gui.h | 5 +- .../CMakeLists.txt | 2 +- .../README.adoc | 2 +- .../dynamic_multisample_rasterization.cpp | 54 ++++++++++++++++++- .../dynamic_multisample_rasterization.h | 3 +- .../model.frag | 2 +- .../model.vert | 2 +- 8 files changed, 65 insertions(+), 10 deletions(-) diff --git a/framework/gui.cpp b/framework/gui.cpp index 0a3658786..155e97317 100644 --- a/framework/gui.cpp +++ b/framework/gui.cpp @@ -1,5 +1,6 @@ -/* Copyright (c) 2018-2023, Arm Limited and Contributors - * Copyright (c) 2019-2023, Sascha Willems +/* Copyright (c) 2018-2024, Arm Limited and Contributors + * Copyright (c) 2019-2024, Sascha Willems + * Copyright (c) 2024, Mobica Limited * * SPDX-License-Identifier: Apache-2.0 * diff --git a/framework/gui.h b/framework/gui.h index 322995f42..e376eaa90 100644 --- a/framework/gui.h +++ b/framework/gui.h @@ -1,5 +1,6 @@ -/* Copyright (c) 2018-2023, Arm Limited and Contributors - * Copyright (c) 2019-2023, Sascha Willems +/* Copyright (c) 2018-2024, Arm Limited and Contributors + * Copyright (c) 2019-2024, Sascha Willems + * Copyright (c) 2024, Mobica Limited * * SPDX-License-Identifier: Apache-2.0 * diff --git a/samples/extensions/dynamic_multisample_rasterization/CMakeLists.txt b/samples/extensions/dynamic_multisample_rasterization/CMakeLists.txt index 896b0c393..648f9db72 100644 --- a/samples/extensions/dynamic_multisample_rasterization/CMakeLists.txt +++ b/samples/extensions/dynamic_multisample_rasterization/CMakeLists.txt @@ -1,4 +1,4 @@ -# Copyright (c) 2023, Mobica Limited +# Copyright (c) 2024, Mobica Limited # # SPDX-License-Identifier: Apache-2.0 # diff --git a/samples/extensions/dynamic_multisample_rasterization/README.adoc b/samples/extensions/dynamic_multisample_rasterization/README.adoc index 72f4e570f..b2f53d9a0 100644 --- a/samples/extensions/dynamic_multisample_rasterization/README.adoc +++ b/samples/extensions/dynamic_multisample_rasterization/README.adoc @@ -1,5 +1,5 @@ //// -- Copyright (c) 2023, Mobica Limited +- Copyright (c) 2024, Mobica Limited - - SPDX-License-Identifier: Apache-2.0 - diff --git a/samples/extensions/dynamic_multisample_rasterization/dynamic_multisample_rasterization.cpp b/samples/extensions/dynamic_multisample_rasterization/dynamic_multisample_rasterization.cpp index fa004cfd1..a12e79492 100644 --- a/samples/extensions/dynamic_multisample_rasterization/dynamic_multisample_rasterization.cpp +++ b/samples/extensions/dynamic_multisample_rasterization/dynamic_multisample_rasterization.cpp @@ -1,4 +1,4 @@ -/* Copyright (c) 2023, Mobica Limited +/* Copyright (c) 2024, Mobica Limited * * SPDX-License-Identifier: Apache-2.0 * @@ -957,6 +957,58 @@ bool DynamicMultisampleRasterization::resize(const uint32_t _width, const uint32 return true; } +void DynamicMultisampleRasterization::input_event(const vkb::InputEvent &input_event) +{ + ApiVulkanSample::input_event(input_event); + + bool gui_captures_event = false; + + if (gui) + { + gui_captures_event = gui->input_event(input_event); + } + + if (!gui_captures_event) + { + if (input_event.get_source() == vkb::EventSource::Keyboard) + { + const auto &key_button = static_cast(input_event); + + if (key_button.get_action() == vkb::KeyAction::Down) + { + switch (key_button.get_code()) + { + case vkb::KeyCode::Q: + std::cout << "AAAAA" << std::endl; + + gui_settings.gui_sample_count++; + + if (gui_settings.gui_sample_count > 3) + gui_settings.gui_sample_count = 0; + + sample_count = supported_sample_count_list[gui_settings.gui_sample_count]; + + update_resources(); + break; + default: + break; + } + } + else if (key_button.get_action() == vkb::KeyAction::Up) + { + switch (key_button.get_code()) + { + case vkb::KeyCode::Q: + std::cout << "BBBB" << std::endl; + break; + default: + break; + } + } + } + } +} + std::unique_ptr create_dynamic_multisample_rasterization() { return std::make_unique(); diff --git a/samples/extensions/dynamic_multisample_rasterization/dynamic_multisample_rasterization.h b/samples/extensions/dynamic_multisample_rasterization/dynamic_multisample_rasterization.h index 72860663c..d5e380f7f 100644 --- a/samples/extensions/dynamic_multisample_rasterization/dynamic_multisample_rasterization.h +++ b/samples/extensions/dynamic_multisample_rasterization/dynamic_multisample_rasterization.h @@ -1,4 +1,4 @@ -/* Copyright (c) 2023, Mobica Limited +/* Copyright (c) 2024, Mobica Limited * * SPDX-License-Identifier: Apache-2.0 * @@ -134,6 +134,7 @@ class DynamicMultisampleRasterization : public ApiVulkanSample void draw_ui(VkCommandBuffer &); void update_resources(); void draw_node(VkCommandBuffer &, SceneNode &); + virtual void input_event(const vkb::InputEvent &input_event) override; }; std::unique_ptr create_dynamic_multisample_rasterization(); diff --git a/shaders/dynamic_multisample_rasterization/model.frag b/shaders/dynamic_multisample_rasterization/model.frag index ab58b2a5b..fce5ad702 100644 --- a/shaders/dynamic_multisample_rasterization/model.frag +++ b/shaders/dynamic_multisample_rasterization/model.frag @@ -1,5 +1,5 @@ #version 450 -/* Copyright (c) 2023, Mobica Limited +/* Copyright (c) 2024, Mobica Limited * * SPDX-License-Identifier: Apache-2.0 * diff --git a/shaders/dynamic_multisample_rasterization/model.vert b/shaders/dynamic_multisample_rasterization/model.vert index db8ef3ccc..0a4433612 100644 --- a/shaders/dynamic_multisample_rasterization/model.vert +++ b/shaders/dynamic_multisample_rasterization/model.vert @@ -1,5 +1,5 @@ #version 450 -/* Copyright (c) 2023, Mobica Limited +/* Copyright (c) 2024, Mobica Limited * * SPDX-License-Identifier: Apache-2.0 * From 8d4c1d1ebea2dbdf24623b04d9ab7b04e11cf7ed Mon Sep 17 00:00:00 2001 From: Mateusz Kowalewski Date: Tue, 13 Feb 2024 15:25:16 +0100 Subject: [PATCH 39/52] Copyright fix in CMakeLists --- samples/CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/CMakeLists.txt b/samples/CMakeLists.txt index d9db1e934..a8a0d91b7 100644 --- a/samples/CMakeLists.txt +++ b/samples/CMakeLists.txt @@ -1,4 +1,4 @@ -# Copyright (c) 2019-2023, Arm Limited and Contributors +# Copyright (c) 2019-2024, Arm Limited and Contributors # # SPDX-License-Identifier: Apache-2.0 # From 7e1e9867c1a0464764e797672c38cdfbd4bd528e Mon Sep 17 00:00:00 2001 From: pawel-jastrzebski-mobica Date: Tue, 20 Feb 2024 17:32:26 +0100 Subject: [PATCH 40/52] Fix review comments. Signed-off-by: pawel-jastrzebski-mobica --- framework/gui.cpp | 51 +--------- .../dynamic_multisample_rasterization.cpp | 98 +++++-------------- .../dynamic_multisample_rasterization.h | 9 +- 3 files changed, 30 insertions(+), 128 deletions(-) diff --git a/framework/gui.cpp b/framework/gui.cpp index 155e97317..5a886a585 100644 --- a/framework/gui.cpp +++ b/framework/gui.cpp @@ -654,56 +654,7 @@ void Gui::draw(CommandBuffer &command_buffer) void Gui::draw(VkCommandBuffer command_buffer) { - if (!visible) - { - return; - } - - auto &io = ImGui::GetIO(); - ImDrawData *draw_data = ImGui::GetDrawData(); - int32_t vertex_offset = 0; - int32_t index_offset = 0; - - if ((!draw_data) || (draw_data->CmdListsCount == 0)) - { - return; - } - - vkCmdBindPipeline(command_buffer, VK_PIPELINE_BIND_POINT_GRAPHICS, pipeline); - vkCmdBindDescriptorSets(command_buffer, VK_PIPELINE_BIND_POINT_GRAPHICS, pipeline_layout->get_handle(), 0, 1, &descriptor_set, 0, NULL); - - // Push constants - auto push_transform = glm::mat4(1.0f); - push_transform = glm::translate(push_transform, glm::vec3(-1.0f, -1.0f, 0.0f)); - push_transform = glm::scale(push_transform, glm::vec3(2.0f / io.DisplaySize.x, 2.0f / io.DisplaySize.y, 0.0f)); - vkCmdPushConstants(command_buffer, pipeline_layout->get_handle(), VK_SHADER_STAGE_VERTEX_BIT, 0, sizeof(glm::mat4), &push_transform); - - VkDeviceSize offsets[1] = {0}; - - VkBuffer vertex_buffer_handle = vertex_buffer->get_handle(); - vkCmdBindVertexBuffers(command_buffer, 0, 1, &vertex_buffer_handle, offsets); - - VkBuffer index_buffer_handle = index_buffer->get_handle(); - vkCmdBindIndexBuffer(command_buffer, index_buffer_handle, 0, VK_INDEX_TYPE_UINT16); - - for (int32_t i = 0; i < draw_data->CmdListsCount; i++) - { - const ImDrawList *cmd_list = draw_data->CmdLists[i]; - for (int32_t j = 0; j < cmd_list->CmdBuffer.Size; j++) - { - const ImDrawCmd *cmd = &cmd_list->CmdBuffer[j]; - VkRect2D scissor_rect; - scissor_rect.offset.x = std::max(static_cast(cmd->ClipRect.x), 0); - scissor_rect.offset.y = std::max(static_cast(cmd->ClipRect.y), 0); - scissor_rect.extent.width = static_cast(cmd->ClipRect.z - cmd->ClipRect.x); - scissor_rect.extent.height = static_cast(cmd->ClipRect.w - cmd->ClipRect.y); - - vkCmdSetScissor(command_buffer, 0, 1, &scissor_rect); - vkCmdDrawIndexed(command_buffer, cmd->ElemCount, 1, index_offset, vertex_offset, 0); - index_offset += cmd->ElemCount; - } - vertex_offset += cmd_list->VtxBuffer.Size; - } + draw(command_buffer, pipeline, pipeline_layout->get_handle(), descriptor_set); } void Gui::draw(VkCommandBuffer command_buffer, const VkPipeline pipeline, const VkPipelineLayout pipeline_layout, const VkDescriptorSet descriptor_set) diff --git a/samples/extensions/dynamic_multisample_rasterization/dynamic_multisample_rasterization.cpp b/samples/extensions/dynamic_multisample_rasterization/dynamic_multisample_rasterization.cpp index a12e79492..5e3640957 100644 --- a/samples/extensions/dynamic_multisample_rasterization/dynamic_multisample_rasterization.cpp +++ b/samples/extensions/dynamic_multisample_rasterization/dynamic_multisample_rasterization.cpp @@ -111,9 +111,7 @@ void DynamicMultisampleRasterization::prepare_supported_sample_count_list() [](auto count) { return to_string(count); }); if (!supported_sample_count_list.empty()) { - sample_count = supported_sample_count_list.front(); - gui_sample_count = sample_count; - last_gui_sample_count = sample_count; + sample_count = supported_sample_count_list.front(); } sample_count_prepared = true; @@ -568,6 +566,8 @@ void DynamicMultisampleRasterization::setup_depth_stencil() void DynamicMultisampleRasterization::setup_framebuffer() { + destroy_depth_stencil_attachment(); + setup_color_attachment(); setup_depth_stencil(); @@ -893,6 +893,26 @@ void DynamicMultisampleRasterization::render(float delta_time) } } +void DynamicMultisampleRasterization::destroy_color_attachment() +{ + vkDestroyImageView(get_device().get_handle(), color_attachment.view, nullptr); + vkDestroyImage(get_device().get_handle(), color_attachment.image, nullptr); + vkFreeMemory(get_device().get_handle(), color_attachment.mem, nullptr); + color_attachment.view = VK_NULL_HANDLE; + color_attachment.image = VK_NULL_HANDLE; + color_attachment.mem = VK_NULL_HANDLE; +} + +void DynamicMultisampleRasterization::destroy_depth_stencil_attachment() +{ + vkDestroyImageView(get_device().get_handle(), depth_stencil.view, nullptr); + vkDestroyImage(get_device().get_handle(), depth_stencil.image, nullptr); + vkFreeMemory(get_device().get_handle(), depth_stencil.mem, nullptr); + depth_stencil.view = VK_NULL_HANDLE; + depth_stencil.image = VK_NULL_HANDLE; + depth_stencil.mem = VK_NULL_HANDLE; +} + void DynamicMultisampleRasterization::update_resources() { prepared = false; @@ -901,21 +921,7 @@ void DynamicMultisampleRasterization::update_resources() { device->wait_idle(); - // Destroy color attachment - vkDestroyImageView(get_device().get_handle(), depth_stencil.view, nullptr); - vkDestroyImage(get_device().get_handle(), depth_stencil.image, nullptr); - vkFreeMemory(get_device().get_handle(), depth_stencil.mem, nullptr); - depth_stencil.view = VK_NULL_HANDLE; - depth_stencil.image = VK_NULL_HANDLE; - depth_stencil.mem = VK_NULL_HANDLE; - - // Destroy depth/stencil attachment - vkDestroyImageView(get_device().get_handle(), color_attachment.view, nullptr); - vkDestroyImage(get_device().get_handle(), color_attachment.image, nullptr); - vkFreeMemory(get_device().get_handle(), color_attachment.mem, nullptr); - color_attachment.view = VK_NULL_HANDLE; - color_attachment.image = VK_NULL_HANDLE; - color_attachment.mem = VK_NULL_HANDLE; + destroy_color_attachment(); if (render_pass != VK_NULL_HANDLE) { @@ -935,9 +941,9 @@ void DynamicMultisampleRasterization::on_update_ui_overlay(vkb::Drawer &drawer) { if (drawer.header("Settings")) { - if (drawer.combo_box("antialiasing", &gui_settings.gui_sample_count, gui_settings.sample_counts)) + if (drawer.combo_box("antialiasing", &gui_settings.sample_count_index, gui_settings.sample_counts)) { - sample_count = supported_sample_count_list[gui_settings.gui_sample_count]; + sample_count = supported_sample_count_list[gui_settings.sample_count_index]; update_resources(); } @@ -957,58 +963,6 @@ bool DynamicMultisampleRasterization::resize(const uint32_t _width, const uint32 return true; } -void DynamicMultisampleRasterization::input_event(const vkb::InputEvent &input_event) -{ - ApiVulkanSample::input_event(input_event); - - bool gui_captures_event = false; - - if (gui) - { - gui_captures_event = gui->input_event(input_event); - } - - if (!gui_captures_event) - { - if (input_event.get_source() == vkb::EventSource::Keyboard) - { - const auto &key_button = static_cast(input_event); - - if (key_button.get_action() == vkb::KeyAction::Down) - { - switch (key_button.get_code()) - { - case vkb::KeyCode::Q: - std::cout << "AAAAA" << std::endl; - - gui_settings.gui_sample_count++; - - if (gui_settings.gui_sample_count > 3) - gui_settings.gui_sample_count = 0; - - sample_count = supported_sample_count_list[gui_settings.gui_sample_count]; - - update_resources(); - break; - default: - break; - } - } - else if (key_button.get_action() == vkb::KeyAction::Up) - { - switch (key_button.get_code()) - { - case vkb::KeyCode::Q: - std::cout << "BBBB" << std::endl; - break; - default: - break; - } - } - } - } -} - std::unique_ptr create_dynamic_multisample_rasterization() { return std::make_unique(); diff --git a/samples/extensions/dynamic_multisample_rasterization/dynamic_multisample_rasterization.h b/samples/extensions/dynamic_multisample_rasterization/dynamic_multisample_rasterization.h index d5e380f7f..0f3e28ac4 100644 --- a/samples/extensions/dynamic_multisample_rasterization/dynamic_multisample_rasterization.h +++ b/samples/extensions/dynamic_multisample_rasterization/dynamic_multisample_rasterization.h @@ -74,10 +74,6 @@ class DynamicMultisampleRasterization : public ApiVulkanSample */ VkSampleCountFlagBits sample_count{VK_SAMPLE_COUNT_1_BIT}; - VkSampleCountFlagBits gui_sample_count{VK_SAMPLE_COUNT_1_BIT}; - - VkSampleCountFlagBits last_gui_sample_count{VK_SAMPLE_COUNT_1_BIT}; - bool sample_count_prepared = false; struct @@ -96,7 +92,7 @@ class DynamicMultisampleRasterization : public ApiVulkanSample struct GUI_settings { - int gui_sample_count = 0; + int sample_count_index = 0; std::vector sample_counts; } gui_settings; @@ -134,7 +130,8 @@ class DynamicMultisampleRasterization : public ApiVulkanSample void draw_ui(VkCommandBuffer &); void update_resources(); void draw_node(VkCommandBuffer &, SceneNode &); - virtual void input_event(const vkb::InputEvent &input_event) override; + void destroy_color_attachment(); + void destroy_depth_stencil_attachment(); }; std::unique_ptr create_dynamic_multisample_rasterization(); From b2421ad34cb1f2ae5a6e06d149f0cd9fad020408 Mon Sep 17 00:00:00 2001 From: pawel-jastrzebski-mobica Date: Tue, 20 Feb 2024 17:42:26 +0100 Subject: [PATCH 41/52] Fix review comments. Signed-off-by: pawel-jastrzebski-mobica --- .../extensions/dynamic_multisample_rasterization/README.adoc | 4 +--- .../dynamic_multisample_rasterization.cpp | 2 +- .../dynamic_multisample_rasterization.h | 2 -- 3 files changed, 2 insertions(+), 6 deletions(-) diff --git a/samples/extensions/dynamic_multisample_rasterization/README.adoc b/samples/extensions/dynamic_multisample_rasterization/README.adoc index b2f53d9a0..8aaec79d1 100644 --- a/samples/extensions/dynamic_multisample_rasterization/README.adoc +++ b/samples/extensions/dynamic_multisample_rasterization/README.adoc @@ -29,9 +29,7 @@ image:image/image.png[] == Enabling the extension To be able to use this extension in Vulkan API: -1) `VK_EXT_extended_dynamic_state3` depends on `VK_KHR_get_physical_device_properties2`, which is promoted to Vulkan 1.1. That is, to use this extension, `VK_EXT_extended_dynamic_state3` and either `VK_KHR_get_physical_device_properties2` or Vulkan 1.1 are required. -2) Set of `VkPhysicalDeviceExtendedDynamicStateFeaturesEXT`, `VkPhysicalDeviceExtendedDynamicState2FeaturesEXT`, `VkPhysicalDeviceExtendedDynamicState3FeaturesEXT` -must be added to the feature chain of `VkPhysicalDeviceProperties2`. +`VK_EXT_extended_dynamic_state3` depends on `VK_KHR_get_physical_device_properties2`, which is promoted to Vulkan 1.1. That is, to use this extension, `VK_EXT_extended_dynamic_state3` and either `VK_KHR_get_physical_device_properties2` or Vulkan 1.1 are required. == Using the extension diff --git a/samples/extensions/dynamic_multisample_rasterization/dynamic_multisample_rasterization.cpp b/samples/extensions/dynamic_multisample_rasterization/dynamic_multisample_rasterization.cpp index 5e3640957..6bebd260a 100644 --- a/samples/extensions/dynamic_multisample_rasterization/dynamic_multisample_rasterization.cpp +++ b/samples/extensions/dynamic_multisample_rasterization/dynamic_multisample_rasterization.cpp @@ -45,7 +45,7 @@ DynamicMultisampleRasterization::~DynamicMultisampleRasterization() void DynamicMultisampleRasterization::request_gpu_features(vkb::PhysicalDevice &gpu) { // Query the extended dynamic state support - extended_dynamic_state_3_features = {}; + VkPhysicalDeviceExtendedDynamicState3FeaturesEXT extended_dynamic_state_3_features{}; extended_dynamic_state_3_features.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_FEATURES_EXT; VkPhysicalDeviceFeatures2 features2{}; diff --git a/samples/extensions/dynamic_multisample_rasterization/dynamic_multisample_rasterization.h b/samples/extensions/dynamic_multisample_rasterization/dynamic_multisample_rasterization.h index 0f3e28ac4..78996d889 100644 --- a/samples/extensions/dynamic_multisample_rasterization/dynamic_multisample_rasterization.h +++ b/samples/extensions/dynamic_multisample_rasterization/dynamic_multisample_rasterization.h @@ -103,8 +103,6 @@ class DynamicMultisampleRasterization : public ApiVulkanSample VkImageView view; } color_attachment; - VkPhysicalDeviceExtendedDynamicState3FeaturesEXT extended_dynamic_state_3_features{}; - public: virtual void build_command_buffers() override; virtual void request_gpu_features(vkb::PhysicalDevice &gpu) override; From 0b806c6f3864732447edf35570d012ede067bc73 Mon Sep 17 00:00:00 2001 From: Mateusz Kowalewski Date: Tue, 20 Feb 2024 16:12:06 +0100 Subject: [PATCH 42/52] Fix VUID-VkSubpassDescription-pResolveAttachments-00848 --- .../README.adoc | 1 - .../dynamic_multisample_rasterization.cpp | 62 +++++++++++-------- 2 files changed, 37 insertions(+), 26 deletions(-) diff --git a/samples/extensions/dynamic_multisample_rasterization/README.adoc b/samples/extensions/dynamic_multisample_rasterization/README.adoc index 8aaec79d1..9d14858b0 100644 --- a/samples/extensions/dynamic_multisample_rasterization/README.adoc +++ b/samples/extensions/dynamic_multisample_rasterization/README.adoc @@ -43,7 +43,6 @@ The extension always reports the following validation errors when enabled: .... VUID-vkCmdDraw-rasterizationSamples-07474(ERROR / SPEC): msgNum: -2007336333 - Validation Error: [ VUID-vkCmdDraw-rasterizationSamples-07474 ] Object 0: handle = 0x1ab5b866f50, type = VK_OBJECT_TYPE_COMMAND_BUFFER; | MessageID = 0x885a7a73 | vkCmdDraw(): Render pass attachment 1 samples VK_SAMPLE_COUNT_1_BIT does not match samples VK_SAMPLE_COUNT_4_BIT set with vkCmdSetRasterizationSamplesEXT(). The Vulkan spec states: If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, and neither the VK_AMD_mixed_attachment_samples nor the VK_NV_framebuffer_mixed_samples extensions are enabled, then the rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT must be the same as the current subpass color and/or depth/stencil attachments (https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VUID-vkCmdDraw-rasterizationSamples-07474) VUID-vkCmdDraw-renderPass-02684: Validation Error: [ VUID-vkCmdDraw-renderPass-02684 ] Object 0: handle = 0x7533b600000006c9, type = VK_OBJECT_TYPE_RENDER_PASS; Object 1: handle = 0x30f5a50000000020, type = VK_OBJECT_TYPE_RENDER_PASS; | MessageID = 0x50685725 | vkCmdDraw(): RenderPasses incompatible between active render pass w/ VkRenderPass 0x7533b600000006c9[] and pipeline state object w/ VkRenderPass 0x30f5a50000000020[] Attachment 0 is not compatible with 0: They have different samples.. The Vulkan spec states: The current render pass must be compatible with the renderPass member of the VkGraphicsPipelineCreateInfo structure specified when creating the VkPipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS (https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VUID-vkCmdDraw-renderPass-02684) -VUID-VkSubpassDescription-pResolveAttachments-00848: Validation Error: [ VUID-VkSubpassDescription-pResolveAttachments-00848 ] | MessageID = 0xfad6c3cb | vkCreateRenderPass(): pCreateInfo->pAttachments[0].samples is VK_SAMPLE_COUNT_1_BIT. The Vulkan spec states: If pResolveAttachments is not NULL, for each resolve attachment that is not VK_ATTACHMENT_UNUSED, the corresponding color attachment must not have a sample count of VK_SAMPLE_COUNT_1_BIT (https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VUID-VkSubpassDescription-pResolveAttachments-00848) .... The root cause for the validation errors is currently unknown and under analysis by Vulkan Validation Layers team: diff --git a/samples/extensions/dynamic_multisample_rasterization/dynamic_multisample_rasterization.cpp b/samples/extensions/dynamic_multisample_rasterization/dynamic_multisample_rasterization.cpp index 6bebd260a..704d23ac5 100644 --- a/samples/extensions/dynamic_multisample_rasterization/dynamic_multisample_rasterization.cpp +++ b/samples/extensions/dynamic_multisample_rasterization/dynamic_multisample_rasterization.cpp @@ -393,7 +393,8 @@ void DynamicMultisampleRasterization::setup_render_pass() // Check if device supports requested sample count for color and depth frame buffer assert((gpu_properties.limits.framebufferColorSampleCounts >= sample_count) && (gpu_properties.limits.framebufferDepthSampleCounts >= sample_count)); - std::array attachments = {}; + uint32_t attachments_cnt = (sample_count != VK_SAMPLE_COUNT_1_BIT) ? 3 : 2; + std::vector attachments(attachments_cnt); // Color attachment attachments[0].format = render_context->get_format(); attachments[0].samples = sample_count; @@ -402,38 +403,41 @@ void DynamicMultisampleRasterization::setup_render_pass() attachments[0].stencilLoadOp = VK_ATTACHMENT_LOAD_OP_DONT_CARE; attachments[0].stencilStoreOp = VK_ATTACHMENT_STORE_OP_DONT_CARE; attachments[0].initialLayout = VK_IMAGE_LAYOUT_UNDEFINED; - attachments[0].finalLayout = VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL; + attachments[0].finalLayout = (sample_count != VK_SAMPLE_COUNT_1_BIT) ? VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL : VK_IMAGE_LAYOUT_PRESENT_SRC_KHR; - // Resolve attachment - attachments[1].format = render_context->get_format(); - attachments[1].samples = VK_SAMPLE_COUNT_1_BIT; - attachments[1].loadOp = VK_ATTACHMENT_LOAD_OP_DONT_CARE; - attachments[1].storeOp = VK_ATTACHMENT_STORE_OP_STORE; + // Depth attachment + attachments[1].format = depth_format; + attachments[1].samples = sample_count; + attachments[1].loadOp = VK_ATTACHMENT_LOAD_OP_CLEAR; + attachments[1].storeOp = VK_ATTACHMENT_STORE_OP_DONT_CARE; attachments[1].stencilLoadOp = VK_ATTACHMENT_LOAD_OP_DONT_CARE; attachments[1].stencilStoreOp = VK_ATTACHMENT_STORE_OP_DONT_CARE; attachments[1].initialLayout = VK_IMAGE_LAYOUT_UNDEFINED; - attachments[1].finalLayout = VK_IMAGE_LAYOUT_PRESENT_SRC_KHR; + attachments[1].finalLayout = VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL; - // Depth attachment - attachments[2].format = depth_format; - attachments[2].samples = sample_count; - attachments[2].loadOp = VK_ATTACHMENT_LOAD_OP_CLEAR; - attachments[2].storeOp = VK_ATTACHMENT_STORE_OP_DONT_CARE; - attachments[2].stencilLoadOp = VK_ATTACHMENT_LOAD_OP_DONT_CARE; - attachments[2].stencilStoreOp = VK_ATTACHMENT_STORE_OP_DONT_CARE; - attachments[2].initialLayout = VK_IMAGE_LAYOUT_UNDEFINED; - attachments[2].finalLayout = VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL; + if(sample_count != VK_SAMPLE_COUNT_1_BIT) + { + // Resolve attachment + attachments[2].format = render_context->get_format(); + attachments[2].samples = VK_SAMPLE_COUNT_1_BIT; + attachments[2].loadOp = VK_ATTACHMENT_LOAD_OP_DONT_CARE; + attachments[2].storeOp = VK_ATTACHMENT_STORE_OP_STORE; + attachments[2].stencilLoadOp = VK_ATTACHMENT_LOAD_OP_DONT_CARE; + attachments[2].stencilStoreOp = VK_ATTACHMENT_STORE_OP_DONT_CARE; + attachments[2].initialLayout = VK_IMAGE_LAYOUT_UNDEFINED; + attachments[2].finalLayout = VK_IMAGE_LAYOUT_PRESENT_SRC_KHR; + } VkAttachmentReference color_reference = {}; color_reference.attachment = 0; color_reference.layout = VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL; VkAttachmentReference depth_reference = {}; - depth_reference.attachment = 2; + depth_reference.attachment = 1; depth_reference.layout = VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL; VkAttachmentReference resolve_reference = {}; - resolve_reference.attachment = 1; + resolve_reference.attachment = 2; resolve_reference.layout = VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL; VkSubpassDescription subpass_description = {}; @@ -445,7 +449,7 @@ void DynamicMultisampleRasterization::setup_render_pass() subpass_description.pInputAttachments = nullptr; subpass_description.preserveAttachmentCount = 0; subpass_description.pPreserveAttachments = nullptr; - subpass_description.pResolveAttachments = &resolve_reference; + subpass_description.pResolveAttachments = (sample_count != VK_SAMPLE_COUNT_1_BIT) ? &resolve_reference : nullptr; // Subpass dependencies for layout transitions std::array dependencies; @@ -571,17 +575,18 @@ void DynamicMultisampleRasterization::setup_framebuffer() setup_color_attachment(); setup_depth_stencil(); - VkImageView attachments[3]; + uint32_t attachments_cnt = (sample_count != VK_SAMPLE_COUNT_1_BIT) ? 3 : 2; + VkImageView attachments[attachments_cnt]; // Depth/Stencil attachment is the same for all frame buffers attachments[0] = color_attachment.view; - attachments[2] = depth_stencil.view; + attachments[1] = depth_stencil.view; VkFramebufferCreateInfo framebuffer_create_info = {}; framebuffer_create_info.sType = VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO; framebuffer_create_info.pNext = NULL; framebuffer_create_info.renderPass = render_pass; - framebuffer_create_info.attachmentCount = 3; + framebuffer_create_info.attachmentCount = (sample_count != VK_SAMPLE_COUNT_1_BIT) ? 3 : 2; framebuffer_create_info.pAttachments = attachments; framebuffer_create_info.width = get_render_context().get_surface_extent().width; framebuffer_create_info.height = get_render_context().get_surface_extent().height; @@ -597,7 +602,14 @@ void DynamicMultisampleRasterization::setup_framebuffer() framebuffers.resize(render_context->get_render_frames().size()); for (uint32_t i = 0; i < framebuffers.size(); i++) { - attachments[1] = swapchain_buffers[i].view; + if(sample_count != VK_SAMPLE_COUNT_1_BIT) + { + attachments[2] = swapchain_buffers[i].view; + } + else + { + attachments[0] = swapchain_buffers[i].view; + } VK_CHECK(vkCreateFramebuffer(device->get_handle(), &framebuffer_create_info, nullptr, &framebuffers[i])); } } @@ -966,4 +978,4 @@ bool DynamicMultisampleRasterization::resize(const uint32_t _width, const uint32 std::unique_ptr create_dynamic_multisample_rasterization() { return std::make_unique(); -} +} \ No newline at end of file From 7e2434b490066e2bbf3efda81a30d7901cb121dd Mon Sep 17 00:00:00 2001 From: Mateusz Kowalewski Date: Mon, 26 Feb 2024 15:41:44 +0100 Subject: [PATCH 43/52] Image destroy refactor --- framework/api_vulkan_sample.h | 2 +- .../dynamic_multisample_rasterization.cpp | 60 +++++++++---------- .../dynamic_multisample_rasterization.h | 17 +++--- 3 files changed, 37 insertions(+), 42 deletions(-) diff --git a/framework/api_vulkan_sample.h b/framework/api_vulkan_sample.h index 8348c21db..66ac31df7 100644 --- a/framework/api_vulkan_sample.h +++ b/framework/api_vulkan_sample.h @@ -424,7 +424,7 @@ class ApiVulkanSample : public vkb::VulkanSample std::string title = "Vulkan Example"; std::string name = "vulkanExample"; - struct + struct ImageData { VkImage image; VkDeviceMemory mem; diff --git a/samples/extensions/dynamic_multisample_rasterization/dynamic_multisample_rasterization.cpp b/samples/extensions/dynamic_multisample_rasterization/dynamic_multisample_rasterization.cpp index 704d23ac5..1395ccd1c 100644 --- a/samples/extensions/dynamic_multisample_rasterization/dynamic_multisample_rasterization.cpp +++ b/samples/extensions/dynamic_multisample_rasterization/dynamic_multisample_rasterization.cpp @@ -39,6 +39,12 @@ DynamicMultisampleRasterization::~DynamicMultisampleRasterization() vkDestroyPipeline(get_device().get_handle(), pipeline_inversed_rasterizer, nullptr); vkDestroyPipelineLayout(get_device().get_handle(), pipeline_layout, nullptr); vkDestroyDescriptorSetLayout(get_device().get_handle(), descriptor_set_layout, nullptr); + + vkDestroyPipeline(get_device().get_handle(), pipeline_gui, nullptr); + vkDestroyDescriptorSetLayout(get_device().get_handle(), descriptor_set_layout_gui, nullptr); + vkDestroyDescriptorPool(get_device().get_handle(), descriptor_pool_gui, VK_NULL_HANDLE); + destroy_image_data(depth_stencil); + destroy_image_data(color_attachment); } } @@ -393,7 +399,7 @@ void DynamicMultisampleRasterization::setup_render_pass() // Check if device supports requested sample count for color and depth frame buffer assert((gpu_properties.limits.framebufferColorSampleCounts >= sample_count) && (gpu_properties.limits.framebufferDepthSampleCounts >= sample_count)); - uint32_t attachments_cnt = (sample_count != VK_SAMPLE_COUNT_1_BIT) ? 3 : 2; + uint32_t attachments_cnt = (sample_count != VK_SAMPLE_COUNT_1_BIT) ? 3 : 2; std::vector attachments(attachments_cnt); // Color attachment attachments[0].format = render_context->get_format(); @@ -415,7 +421,7 @@ void DynamicMultisampleRasterization::setup_render_pass() attachments[1].initialLayout = VK_IMAGE_LAYOUT_UNDEFINED; attachments[1].finalLayout = VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL; - if(sample_count != VK_SAMPLE_COUNT_1_BIT) + if (sample_count != VK_SAMPLE_COUNT_1_BIT) { // Resolve attachment attachments[2].format = render_context->get_format(); @@ -570,12 +576,12 @@ void DynamicMultisampleRasterization::setup_depth_stencil() void DynamicMultisampleRasterization::setup_framebuffer() { - destroy_depth_stencil_attachment(); + destroy_image_data(depth_stencil); setup_color_attachment(); setup_depth_stencil(); - uint32_t attachments_cnt = (sample_count != VK_SAMPLE_COUNT_1_BIT) ? 3 : 2; + uint32_t attachments_cnt = (sample_count != VK_SAMPLE_COUNT_1_BIT) ? 3 : 2; VkImageView attachments[attachments_cnt]; // Depth/Stencil attachment is the same for all frame buffers @@ -602,7 +608,7 @@ void DynamicMultisampleRasterization::setup_framebuffer() framebuffers.resize(render_context->get_render_frames().size()); for (uint32_t i = 0; i < framebuffers.size(); i++) { - if(sample_count != VK_SAMPLE_COUNT_1_BIT) + if (sample_count != VK_SAMPLE_COUNT_1_BIT) { attachments[2] = swapchain_buffers[i].view; } @@ -739,31 +745,29 @@ void DynamicMultisampleRasterization::prepare_pipelines() void DynamicMultisampleRasterization::prepare_gui_pipeline() { - auto &device = get_render_context().get_device(); - // Descriptor pool std::vector pool_sizes = { vkb::initializers::descriptor_pool_size(VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, 1)}; VkDescriptorPoolCreateInfo descriptorPoolInfo = vkb::initializers::descriptor_pool_create_info(pool_sizes, 2); - VK_CHECK(vkCreateDescriptorPool(device.get_handle(), &descriptorPoolInfo, nullptr, &descriptor_pool_gui)); + VK_CHECK(vkCreateDescriptorPool(get_device().get_handle(), &descriptorPoolInfo, nullptr, &descriptor_pool_gui)); // Descriptor set layout std::vector layout_bindings_gui = { vkb::initializers::descriptor_set_layout_binding(VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, VK_SHADER_STAGE_FRAGMENT_BIT, 0), }; VkDescriptorSetLayoutCreateInfo descriptor_set_layout_create_info = vkb::initializers::descriptor_set_layout_create_info(layout_bindings_gui); - VK_CHECK(vkCreateDescriptorSetLayout(device.get_handle(), &descriptor_set_layout_create_info, nullptr, &descriptor_set_layout_gui)); + VK_CHECK(vkCreateDescriptorSetLayout(get_device().get_handle(), &descriptor_set_layout_create_info, nullptr, &descriptor_set_layout_gui)); // Descriptor set VkDescriptorSetAllocateInfo descriptor_allocation = vkb::initializers::descriptor_set_allocate_info(descriptor_pool_gui, &descriptor_set_layout_gui, 1); - VK_CHECK(vkAllocateDescriptorSets(device.get_handle(), &descriptor_allocation, &descriptor_set_gui)); + VK_CHECK(vkAllocateDescriptorSets(get_device().get_handle(), &descriptor_allocation, &descriptor_set_gui)); VkDescriptorImageInfo font_descriptor = vkb::initializers::descriptor_image_info( gui->get_sampler(), gui->get_font_image_view(), VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL); std::vector write_descriptor_sets = { vkb::initializers::write_descriptor_set(descriptor_set_gui, VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, 0, &font_descriptor)}; - vkUpdateDescriptorSets(device.get_handle(), static_cast(write_descriptor_sets.size()), write_descriptor_sets.data(), 0, nullptr); + vkUpdateDescriptorSets(get_device().get_handle(), static_cast(write_descriptor_sets.size()), write_descriptor_sets.data(), 0, nullptr); // Setup graphics pipeline for UI rendering VkPipelineInputAssemblyStateCreateInfo input_assembly_state = @@ -808,10 +812,10 @@ void DynamicMultisampleRasterization::prepare_gui_pipeline() vkb::ShaderSource vert_shader("uioverlay/uioverlay.vert"); vkb::ShaderSource frag_shader("uioverlay/uioverlay.frag"); - shader_modules.push_back(&device.get_resource_cache().request_shader_module(VK_SHADER_STAGE_VERTEX_BIT, vert_shader, {})); - shader_modules.push_back(&device.get_resource_cache().request_shader_module(VK_SHADER_STAGE_FRAGMENT_BIT, frag_shader, {})); + shader_modules.push_back(&get_device().get_resource_cache().request_shader_module(VK_SHADER_STAGE_VERTEX_BIT, vert_shader, {})); + shader_modules.push_back(&get_device().get_resource_cache().request_shader_module(VK_SHADER_STAGE_FRAGMENT_BIT, frag_shader, {})); - pipeline_layout_gui = device.get_resource_cache().request_pipeline_layout(shader_modules).get_handle(); + pipeline_layout_gui = get_device().get_resource_cache().request_pipeline_layout(shader_modules).get_handle(); VkGraphicsPipelineCreateInfo pipeline_create_info = vkb::initializers::pipeline_create_info(pipeline_layout_gui, render_pass); @@ -850,7 +854,7 @@ void DynamicMultisampleRasterization::prepare_gui_pipeline() pipeline_create_info.pVertexInputState = &vertex_input_state_create_info; - VK_CHECK(vkCreateGraphicsPipelines(device.get_handle(), pipeline_cache, 1, &pipeline_create_info, nullptr, &pipeline_gui)); + VK_CHECK(vkCreateGraphicsPipelines(get_device().get_handle(), pipeline_cache, 1, &pipeline_create_info, nullptr, &pipeline_gui)); } // Prepare and initialize uniform buffer containing shader uniforms @@ -905,24 +909,14 @@ void DynamicMultisampleRasterization::render(float delta_time) } } -void DynamicMultisampleRasterization::destroy_color_attachment() -{ - vkDestroyImageView(get_device().get_handle(), color_attachment.view, nullptr); - vkDestroyImage(get_device().get_handle(), color_attachment.image, nullptr); - vkFreeMemory(get_device().get_handle(), color_attachment.mem, nullptr); - color_attachment.view = VK_NULL_HANDLE; - color_attachment.image = VK_NULL_HANDLE; - color_attachment.mem = VK_NULL_HANDLE; -} - -void DynamicMultisampleRasterization::destroy_depth_stencil_attachment() +void DynamicMultisampleRasterization::destroy_image_data(ImageData &image_data) { - vkDestroyImageView(get_device().get_handle(), depth_stencil.view, nullptr); - vkDestroyImage(get_device().get_handle(), depth_stencil.image, nullptr); - vkFreeMemory(get_device().get_handle(), depth_stencil.mem, nullptr); - depth_stencil.view = VK_NULL_HANDLE; - depth_stencil.image = VK_NULL_HANDLE; - depth_stencil.mem = VK_NULL_HANDLE; + vkDestroyImageView(get_device().get_handle(), image_data.view, nullptr); + vkDestroyImage(get_device().get_handle(), image_data.image, nullptr); + vkFreeMemory(get_device().get_handle(), image_data.mem, nullptr); + image_data.view = VK_NULL_HANDLE; + image_data.image = VK_NULL_HANDLE; + image_data.mem = VK_NULL_HANDLE; } void DynamicMultisampleRasterization::update_resources() @@ -933,7 +927,7 @@ void DynamicMultisampleRasterization::update_resources() { device->wait_idle(); - destroy_color_attachment(); + destroy_image_data(color_attachment); if (render_pass != VK_NULL_HANDLE) { diff --git a/samples/extensions/dynamic_multisample_rasterization/dynamic_multisample_rasterization.h b/samples/extensions/dynamic_multisample_rasterization/dynamic_multisample_rasterization.h index 78996d889..f2fa8e1b3 100644 --- a/samples/extensions/dynamic_multisample_rasterization/dynamic_multisample_rasterization.h +++ b/samples/extensions/dynamic_multisample_rasterization/dynamic_multisample_rasterization.h @@ -63,6 +63,8 @@ class DynamicMultisampleRasterization : public ApiVulkanSample VkDescriptorSetLayout descriptor_set_layout_gui; VkDescriptorPool descriptor_pool_gui; + ImageData color_attachment; + /** * @brief List of MSAA levels supported by the platform */ @@ -96,12 +98,12 @@ class DynamicMultisampleRasterization : public ApiVulkanSample std::vector sample_counts; } gui_settings; - struct - { - VkImage image; - VkDeviceMemory mem; - VkImageView view; - } color_attachment; + // struct + // { + // VkImage image; + // VkDeviceMemory mem; + // VkImageView view; + // } color_attachment; public: virtual void build_command_buffers() override; @@ -128,8 +130,7 @@ class DynamicMultisampleRasterization : public ApiVulkanSample void draw_ui(VkCommandBuffer &); void update_resources(); void draw_node(VkCommandBuffer &, SceneNode &); - void destroy_color_attachment(); - void destroy_depth_stencil_attachment(); + void destroy_image_data(ImageData &image_data); }; std::unique_ptr create_dynamic_multisample_rasterization(); From c4d78cb9cae07c26cea93b2a5b18162c1879a27f Mon Sep 17 00:00:00 2001 From: Mateusz Kowalewski Date: Tue, 27 Feb 2024 12:08:40 +0100 Subject: [PATCH 44/52] Fix windows build issue --- framework/api_vulkan_sample.h | 2 +- .../dynamic_multisample_rasterization.cpp | 6 +++--- .../dynamic_multisample_rasterization.h | 7 ------- 3 files changed, 4 insertions(+), 11 deletions(-) diff --git a/framework/api_vulkan_sample.h b/framework/api_vulkan_sample.h index 66ac31df7..6d527cc5e 100644 --- a/framework/api_vulkan_sample.h +++ b/framework/api_vulkan_sample.h @@ -1,4 +1,4 @@ -/* Copyright (c) 2019-2023, Sascha Willems +/* Copyright (c) 2019-2024, Sascha Willems * * SPDX-License-Identifier: Apache-2.0 * diff --git a/samples/extensions/dynamic_multisample_rasterization/dynamic_multisample_rasterization.cpp b/samples/extensions/dynamic_multisample_rasterization/dynamic_multisample_rasterization.cpp index 1395ccd1c..dd5ce3b9b 100644 --- a/samples/extensions/dynamic_multisample_rasterization/dynamic_multisample_rasterization.cpp +++ b/samples/extensions/dynamic_multisample_rasterization/dynamic_multisample_rasterization.cpp @@ -582,7 +582,7 @@ void DynamicMultisampleRasterization::setup_framebuffer() setup_depth_stencil(); uint32_t attachments_cnt = (sample_count != VK_SAMPLE_COUNT_1_BIT) ? 3 : 2; - VkImageView attachments[attachments_cnt]; + std::vector attachments(attachments_cnt); // Depth/Stencil attachment is the same for all frame buffers attachments[0] = color_attachment.view; @@ -592,8 +592,8 @@ void DynamicMultisampleRasterization::setup_framebuffer() framebuffer_create_info.sType = VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO; framebuffer_create_info.pNext = NULL; framebuffer_create_info.renderPass = render_pass; - framebuffer_create_info.attachmentCount = (sample_count != VK_SAMPLE_COUNT_1_BIT) ? 3 : 2; - framebuffer_create_info.pAttachments = attachments; + framebuffer_create_info.attachmentCount = attachments.size(); + framebuffer_create_info.pAttachments = attachments.data(); framebuffer_create_info.width = get_render_context().get_surface_extent().width; framebuffer_create_info.height = get_render_context().get_surface_extent().height; framebuffer_create_info.layers = 1; diff --git a/samples/extensions/dynamic_multisample_rasterization/dynamic_multisample_rasterization.h b/samples/extensions/dynamic_multisample_rasterization/dynamic_multisample_rasterization.h index f2fa8e1b3..46e720de8 100644 --- a/samples/extensions/dynamic_multisample_rasterization/dynamic_multisample_rasterization.h +++ b/samples/extensions/dynamic_multisample_rasterization/dynamic_multisample_rasterization.h @@ -98,13 +98,6 @@ class DynamicMultisampleRasterization : public ApiVulkanSample std::vector sample_counts; } gui_settings; - // struct - // { - // VkImage image; - // VkDeviceMemory mem; - // VkImageView view; - // } color_attachment; - public: virtual void build_command_buffers() override; virtual void request_gpu_features(vkb::PhysicalDevice &gpu) override; From ff3708bd4afe360747541b592451ccf4c1c5fec6 Mon Sep 17 00:00:00 2001 From: Mateusz Kowalewski Date: Fri, 8 Mar 2024 14:01:20 +0100 Subject: [PATCH 45/52] Add dynamic rendering --- .../dynamic_multisample_rasterization.cpp | 302 ++++++++---------- .../dynamic_multisample_rasterization.h | 8 +- 2 files changed, 142 insertions(+), 168 deletions(-) diff --git a/samples/extensions/dynamic_multisample_rasterization/dynamic_multisample_rasterization.cpp b/samples/extensions/dynamic_multisample_rasterization/dynamic_multisample_rasterization.cpp index dd5ce3b9b..c21233f31 100644 --- a/samples/extensions/dynamic_multisample_rasterization/dynamic_multisample_rasterization.cpp +++ b/samples/extensions/dynamic_multisample_rasterization/dynamic_multisample_rasterization.cpp @@ -27,8 +27,10 @@ DynamicMultisampleRasterization::DynamicMultisampleRasterization() { title = "DynamicState3 Multisample Rasterization"; + set_api_version(VK_API_VERSION_1_2); add_instance_extension(VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME); add_device_extension(VK_EXT_EXTENDED_DYNAMIC_STATE_3_EXTENSION_NAME); + add_device_extension(VK_KHR_DYNAMIC_RENDERING_EXTENSION_NAME); } DynamicMultisampleRasterization::~DynamicMultisampleRasterization() @@ -66,6 +68,10 @@ void DynamicMultisampleRasterization::request_gpu_features(vkb::PhysicalDevice & features.extendedDynamicState3RasterizationSamples = VK_TRUE; } + + // Dynamic Rendering + auto &requested_dynamic_rendering = gpu.request_extension_features(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES_KHR); + requested_dynamic_rendering.dynamicRendering = VK_TRUE; } const std::string to_string(VkSampleCountFlagBits count) @@ -130,6 +136,17 @@ bool DynamicMultisampleRasterization::prepare(const vkb::ApplicationOptions &opt return false; } +#if VK_NO_PROTOTYPES + VkInstance instance = get_device().get_gpu().get_instance().get_handle(); + assert(!!instance); + vkCmdBeginRenderingKHR = reinterpret_cast(vkGetInstanceProcAddr(instance, "vkCmdBeginRenderingKHR")); + vkCmdEndRenderingKHR = reinterpret_cast(vkGetInstanceProcAddr(instance, "vkCmdEndRenderingKHR")); + if (!vkCmdBeginRenderingKHR || !vkCmdEndRenderingKHR) + { + throw std::runtime_error("Unable to dynamically load vkCmdBeginRenderingKHR and vkCmdEndRenderingKHR"); + } +#endif + camera.type = vkb::CameraType::LookAt; camera.set_position(glm::vec3(1.9f, 10.f, -18.f)); camera.set_rotation(glm::vec3(0.f, -40.f, 0.f)); @@ -211,25 +228,64 @@ void DynamicMultisampleRasterization::build_command_buffers() { VkCommandBufferBeginInfo command_buffer_begin_info = vkb::initializers::command_buffer_begin_info(); - VkClearValue clear_values[3]; clear_values[0].color = {{0.0f, 0.0f, 0.0f, 0.0f}}; clear_values[1].color = {{0.0f, 0.0f, 0.0f, 0.0f}}; clear_values[2].depthStencil = {0.0f, 0}; - VkRenderPassBeginInfo render_pass_begin_info = vkb::initializers::render_pass_begin_info(); - render_pass_begin_info.renderPass = render_pass; - render_pass_begin_info.renderArea.extent.width = width; - render_pass_begin_info.renderArea.extent.height = height; - render_pass_begin_info.clearValueCount = 3; - render_pass_begin_info.pClearValues = clear_values; + std::vector attachments(2); + attachments_setup(attachments); + + VkImageSubresourceRange range{}; + range.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT; + range.baseMipLevel = 0; + range.levelCount = VK_REMAINING_MIP_LEVELS; + range.baseArrayLayer = 0; + range.layerCount = VK_REMAINING_ARRAY_LAYERS; + + VkImageSubresourceRange depth_range{range}; + depth_range.aspectMask = VK_IMAGE_ASPECT_DEPTH_BIT; for (int32_t i = 0; i < draw_cmd_buffers.size(); ++i) { VK_CHECK(vkBeginCommandBuffer(draw_cmd_buffers[i], &command_buffer_begin_info)); - render_pass_begin_info.framebuffer = framebuffers[i]; + if (sample_count != VK_SAMPLE_COUNT_1_BIT) + { + attachments[0].resolveImageView = swapchain_buffers[i].view; + } + else + { + attachments[0].imageView = swapchain_buffers[i].view; + } + + VkMultisampledRenderToSingleSampledInfoEXT multisampled_render; + if (sample_count != VK_SAMPLE_COUNT_1_BIT) + { + multisampled_render.multisampledRenderToSingleSampledEnable = VK_TRUE; + multisampled_render.sType = VK_STRUCTURE_TYPE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_INFO_EXT; + multisampled_render.rasterizationSamples = sample_count; + multisampled_render.pNext = nullptr; + } - vkCmdBeginRenderPass(draw_cmd_buffers[i], &render_pass_begin_info, VK_SUBPASS_CONTENTS_INLINE); + auto render_area = VkRect2D{VkOffset2D{}, VkExtent2D{width, height}}; + auto render_info = vkb::initializers::rendering_info(render_area, 1, &attachments[0]); + render_info.layerCount = 1; + render_info.pDepthAttachment = &attachments[1]; + render_info.pNext = (sample_count != VK_SAMPLE_COUNT_1_BIT) ? &multisampled_render : VK_NULL_HANDLE; + + vkb::image_layout_transition(draw_cmd_buffers[i], + swapchain_buffers[i].image, + VK_IMAGE_LAYOUT_UNDEFINED, + VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL, + range); + + vkb::image_layout_transition(draw_cmd_buffers[i], + depth_stencil.image, + VK_IMAGE_LAYOUT_UNDEFINED, + VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL, + depth_range); + + vkCmdBeginRenderingKHR(draw_cmd_buffers[i], &render_info); vkCmdSetRasterizationSamplesEXT(draw_cmd_buffers[i], sample_count); // VK_EXT_extended_dynamic_state3 VkViewport viewport = vkb::initializers::viewport(static_cast(width), static_cast(height), 0.0f, 1.0f); @@ -270,7 +326,13 @@ void DynamicMultisampleRasterization::build_command_buffers() draw_ui(draw_cmd_buffers[i]); - vkCmdEndRenderPass(draw_cmd_buffers[i]); + vkCmdEndRenderingKHR(draw_cmd_buffers[i]); + + vkb::image_layout_transition(draw_cmd_buffers[i], + swapchain_buffers[i].image, + VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL, + VK_IMAGE_LAYOUT_PRESENT_SRC_KHR, + range); VK_CHECK(vkEndCommandBuffer(draw_cmd_buffers[i])); } @@ -389,107 +451,45 @@ void DynamicMultisampleRasterization::setup_descriptor_sets() vkUpdateDescriptorSets(get_device().get_handle(), static_cast(write_descriptor_sets.size()), write_descriptor_sets.data(), 0, nullptr); } -void DynamicMultisampleRasterization::setup_render_pass() +void DynamicMultisampleRasterization::attachments_setup(std::vector &attachments) { prepare_supported_sample_count_list(); + destroy_image_data(color_attachment); + destroy_image_data(depth_stencil); + setup_color_attachment(); + setup_depth_stencil(); - VkPhysicalDeviceProperties gpu_properties; - vkGetPhysicalDeviceProperties(get_device().get_gpu().get_handle(), &gpu_properties); - - // Check if device supports requested sample count for color and depth frame buffer - assert((gpu_properties.limits.framebufferColorSampleCounts >= sample_count) && (gpu_properties.limits.framebufferDepthSampleCounts >= sample_count)); - - uint32_t attachments_cnt = (sample_count != VK_SAMPLE_COUNT_1_BIT) ? 3 : 2; - std::vector attachments(attachments_cnt); - // Color attachment - attachments[0].format = render_context->get_format(); - attachments[0].samples = sample_count; - attachments[0].loadOp = VK_ATTACHMENT_LOAD_OP_CLEAR; - attachments[0].storeOp = VK_ATTACHMENT_STORE_OP_DONT_CARE; - attachments[0].stencilLoadOp = VK_ATTACHMENT_LOAD_OP_DONT_CARE; - attachments[0].stencilStoreOp = VK_ATTACHMENT_STORE_OP_DONT_CARE; - attachments[0].initialLayout = VK_IMAGE_LAYOUT_UNDEFINED; - attachments[0].finalLayout = (sample_count != VK_SAMPLE_COUNT_1_BIT) ? VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL : VK_IMAGE_LAYOUT_PRESENT_SRC_KHR; - - // Depth attachment - attachments[1].format = depth_format; - attachments[1].samples = sample_count; - attachments[1].loadOp = VK_ATTACHMENT_LOAD_OP_CLEAR; - attachments[1].storeOp = VK_ATTACHMENT_STORE_OP_DONT_CARE; - attachments[1].stencilLoadOp = VK_ATTACHMENT_LOAD_OP_DONT_CARE; - attachments[1].stencilStoreOp = VK_ATTACHMENT_STORE_OP_DONT_CARE; - attachments[1].initialLayout = VK_IMAGE_LAYOUT_UNDEFINED; - attachments[1].finalLayout = VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL; + attachments[0].sType = VK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_INFO; + attachments[0].imageView = color_attachment.view; + attachments[0].imageLayout = VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL; + attachments[0].loadOp = VK_ATTACHMENT_LOAD_OP_CLEAR; + attachments[0].storeOp = VK_ATTACHMENT_STORE_OP_STORE; + attachments[0].clearValue = clear_values[0]; + attachments[0].pNext = VK_NULL_HANDLE; + attachments[0].resolveImageView = VK_NULL_HANDLE; if (sample_count != VK_SAMPLE_COUNT_1_BIT) { - // Resolve attachment - attachments[2].format = render_context->get_format(); - attachments[2].samples = VK_SAMPLE_COUNT_1_BIT; - attachments[2].loadOp = VK_ATTACHMENT_LOAD_OP_DONT_CARE; - attachments[2].storeOp = VK_ATTACHMENT_STORE_OP_STORE; - attachments[2].stencilLoadOp = VK_ATTACHMENT_LOAD_OP_DONT_CARE; - attachments[2].stencilStoreOp = VK_ATTACHMENT_STORE_OP_DONT_CARE; - attachments[2].initialLayout = VK_IMAGE_LAYOUT_UNDEFINED; - attachments[2].finalLayout = VK_IMAGE_LAYOUT_PRESENT_SRC_KHR; + attachments[0].resolveImageLayout = VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL; + attachments[0].resolveMode = VK_RESOLVE_MODE_AVERAGE_BIT; + } + else + { + attachments[0].resolveImageLayout = VK_IMAGE_LAYOUT_UNDEFINED; + attachments[0].resolveMode = VK_RESOLVE_MODE_NONE; } - - VkAttachmentReference color_reference = {}; - color_reference.attachment = 0; - color_reference.layout = VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL; - - VkAttachmentReference depth_reference = {}; - depth_reference.attachment = 1; - depth_reference.layout = VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL; - - VkAttachmentReference resolve_reference = {}; - resolve_reference.attachment = 2; - resolve_reference.layout = VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL; - - VkSubpassDescription subpass_description = {}; - subpass_description.pipelineBindPoint = VK_PIPELINE_BIND_POINT_GRAPHICS; - subpass_description.colorAttachmentCount = 1; - subpass_description.pColorAttachments = &color_reference; - subpass_description.pDepthStencilAttachment = &depth_reference; - subpass_description.inputAttachmentCount = 0; - subpass_description.pInputAttachments = nullptr; - subpass_description.preserveAttachmentCount = 0; - subpass_description.pPreserveAttachments = nullptr; - subpass_description.pResolveAttachments = (sample_count != VK_SAMPLE_COUNT_1_BIT) ? &resolve_reference : nullptr; - - // Subpass dependencies for layout transitions - std::array dependencies; // Depth attachment - dependencies[0].srcSubpass = VK_SUBPASS_EXTERNAL; - dependencies[0].dstSubpass = 0; - dependencies[0].srcStageMask = VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT | VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT; - dependencies[0].dstStageMask = VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT | VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT; - dependencies[0].srcAccessMask = VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT; - dependencies[0].dstAccessMask = VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT | VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT; - dependencies[0].dependencyFlags = 0; - // Color attachment - dependencies[1].srcSubpass = VK_SUBPASS_EXTERNAL; - dependencies[1].dstSubpass = 0; - dependencies[1].srcStageMask = VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT; - dependencies[1].dstStageMask = VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT; - dependencies[1].srcAccessMask = 0; - dependencies[1].dstAccessMask = VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT | VK_ACCESS_COLOR_ATTACHMENT_READ_BIT; - dependencies[1].dependencyFlags = 0; - - VkRenderPassCreateInfo render_pass_create_info = {}; - render_pass_create_info.sType = VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO; - render_pass_create_info.attachmentCount = static_cast(attachments.size()); - render_pass_create_info.pAttachments = attachments.data(); - render_pass_create_info.subpassCount = 1; - render_pass_create_info.pSubpasses = &subpass_description; - render_pass_create_info.dependencyCount = static_cast(dependencies.size()); - render_pass_create_info.pDependencies = dependencies.data(); - - VK_CHECK(vkCreateRenderPass(device->get_handle(), &render_pass_create_info, nullptr, &render_pass)); + attachments[1].sType = VK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_INFO; + attachments[1].imageView = depth_stencil.view; + attachments[1].imageLayout = VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL; + attachments[1].loadOp = VK_ATTACHMENT_LOAD_OP_CLEAR; + attachments[1].storeOp = VK_ATTACHMENT_STORE_OP_DONT_CARE; + attachments[1].clearValue = clear_values[2]; + attachments[1].pNext = VK_NULL_HANDLE; } -// Create attachment that will be used in a framebuffer. +// Create attachment that will be used in a dynamic rendering. void DynamicMultisampleRasterization::setup_color_attachment() { VkImageCreateInfo image_create_info{}; @@ -574,52 +574,6 @@ void DynamicMultisampleRasterization::setup_depth_stencil() VK_CHECK(vkCreateImageView(device->get_handle(), &image_view_create_info, nullptr, &depth_stencil.view)); } -void DynamicMultisampleRasterization::setup_framebuffer() -{ - destroy_image_data(depth_stencil); - - setup_color_attachment(); - setup_depth_stencil(); - - uint32_t attachments_cnt = (sample_count != VK_SAMPLE_COUNT_1_BIT) ? 3 : 2; - std::vector attachments(attachments_cnt); - - // Depth/Stencil attachment is the same for all frame buffers - attachments[0] = color_attachment.view; - attachments[1] = depth_stencil.view; - - VkFramebufferCreateInfo framebuffer_create_info = {}; - framebuffer_create_info.sType = VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO; - framebuffer_create_info.pNext = NULL; - framebuffer_create_info.renderPass = render_pass; - framebuffer_create_info.attachmentCount = attachments.size(); - framebuffer_create_info.pAttachments = attachments.data(); - framebuffer_create_info.width = get_render_context().get_surface_extent().width; - framebuffer_create_info.height = get_render_context().get_surface_extent().height; - framebuffer_create_info.layers = 1; - - // Delete existing frame buffers - for (uint32_t i = 0; i < framebuffers.size(); i++) - { - vkDestroyFramebuffer(device->get_handle(), framebuffers[i], nullptr); - } - - // Create frame buffers for every swap chain image - framebuffers.resize(render_context->get_render_frames().size()); - for (uint32_t i = 0; i < framebuffers.size(); i++) - { - if (sample_count != VK_SAMPLE_COUNT_1_BIT) - { - attachments[2] = swapchain_buffers[i].view; - } - else - { - attachments[0] = swapchain_buffers[i].view; - } - VK_CHECK(vkCreateFramebuffer(device->get_handle(), &framebuffer_create_info, nullptr, &framebuffers[i])); - } -} - void DynamicMultisampleRasterization::prepare_pipelines() { VkPipelineInputAssemblyStateCreateInfo input_assembly_state = @@ -684,12 +638,22 @@ void DynamicMultisampleRasterization::prepare_pipelines() VkGraphicsPipelineCreateInfo pipeline_create_info = vkb::initializers::pipeline_create_info( pipeline_layout, - render_pass, + VK_NULL_HANDLE, 0); std::vector blend_attachment_states = { vkb::initializers::pipeline_color_blend_attachment_state(0xf, VK_FALSE)}; + // Create graphics pipeline for dynamic rendering + VkFormat color_rendering_format = render_context->get_format(); + + // Provide information for dynamic rendering + VkPipelineRenderingCreateInfoKHR pipeline_rendering_create_info{VK_STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO_KHR}; + pipeline_rendering_create_info.pNext = VK_NULL_HANDLE; + pipeline_rendering_create_info.colorAttachmentCount = 1; + pipeline_rendering_create_info.pColorAttachmentFormats = &color_rendering_format; + pipeline_rendering_create_info.depthAttachmentFormat = depth_format; + pipeline_create_info.pInputAssemblyState = &input_assembly_state; pipeline_create_info.pRasterizationState = &rasterization_state; pipeline_create_info.pColorBlendState = &color_blend_state; @@ -698,6 +662,7 @@ void DynamicMultisampleRasterization::prepare_pipelines() pipeline_create_info.pDepthStencilState = &depth_stencil_state; pipeline_create_info.pDynamicState = &dynamic_state; pipeline_create_info.layout = pipeline_layout; + pipeline_create_info.pNext = &pipeline_rendering_create_info; std::array shader_stages; pipeline_create_info.stageCount = static_cast(shader_stages.size()); @@ -817,7 +782,21 @@ void DynamicMultisampleRasterization::prepare_gui_pipeline() pipeline_layout_gui = get_device().get_resource_cache().request_pipeline_layout(shader_modules).get_handle(); - VkGraphicsPipelineCreateInfo pipeline_create_info = vkb::initializers::pipeline_create_info(pipeline_layout_gui, render_pass); + // Create graphics pipeline for dynamic rendering + VkFormat color_rendering_format = render_context->get_format(); + + // Provide information for dynamic rendering + VkPipelineRenderingCreateInfoKHR pipeline_rendering_create_info{VK_STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO_KHR}; + pipeline_rendering_create_info.pNext = VK_NULL_HANDLE; + pipeline_rendering_create_info.colorAttachmentCount = 1; + pipeline_rendering_create_info.pColorAttachmentFormats = &color_rendering_format; + pipeline_rendering_create_info.depthAttachmentFormat = depth_format; + if (!vkb::is_depth_only_format(depth_format)) + { + pipeline_rendering_create_info.stencilAttachmentFormat = depth_format; + } + + VkGraphicsPipelineCreateInfo pipeline_create_info = vkb::initializers::pipeline_create_info(pipeline_layout_gui, VK_NULL_HANDLE); std::array shader_stages; @@ -836,6 +815,7 @@ void DynamicMultisampleRasterization::prepare_gui_pipeline() pipeline_create_info.pDynamicState = &dynamic_state; pipeline_create_info.stageCount = static_cast(shader_stages.size()); pipeline_create_info.pStages = shader_stages.data(); + pipeline_create_info.pNext = &pipeline_rendering_create_info; // Vertex bindings an attributes based on ImGui vertex definition std::vector vertex_input_bindings = { @@ -911,12 +891,15 @@ void DynamicMultisampleRasterization::render(float delta_time) void DynamicMultisampleRasterization::destroy_image_data(ImageData &image_data) { - vkDestroyImageView(get_device().get_handle(), image_data.view, nullptr); - vkDestroyImage(get_device().get_handle(), image_data.image, nullptr); - vkFreeMemory(get_device().get_handle(), image_data.mem, nullptr); - image_data.view = VK_NULL_HANDLE; - image_data.image = VK_NULL_HANDLE; - image_data.mem = VK_NULL_HANDLE; + if (image_data.image != nullptr) + { + vkDestroyImageView(get_device().get_handle(), image_data.view, nullptr); + vkDestroyImage(get_device().get_handle(), image_data.image, nullptr); + vkFreeMemory(get_device().get_handle(), image_data.mem, nullptr); + image_data.view = VK_NULL_HANDLE; + image_data.image = VK_NULL_HANDLE; + image_data.mem = VK_NULL_HANDLE; + } } void DynamicMultisampleRasterization::update_resources() @@ -926,17 +909,6 @@ void DynamicMultisampleRasterization::update_resources() if (device) { device->wait_idle(); - - destroy_image_data(color_attachment); - - if (render_pass != VK_NULL_HANDLE) - { - vkDestroyRenderPass(get_device().get_handle(), render_pass, nullptr); - render_pass = VK_NULL_HANDLE; - } - - setup_render_pass(); - setup_framebuffer(); rebuild_command_buffers(); } diff --git a/samples/extensions/dynamic_multisample_rasterization/dynamic_multisample_rasterization.h b/samples/extensions/dynamic_multisample_rasterization/dynamic_multisample_rasterization.h index 46e720de8..3594f76dc 100644 --- a/samples/extensions/dynamic_multisample_rasterization/dynamic_multisample_rasterization.h +++ b/samples/extensions/dynamic_multisample_rasterization/dynamic_multisample_rasterization.h @@ -63,7 +63,8 @@ class DynamicMultisampleRasterization : public ApiVulkanSample VkDescriptorSetLayout descriptor_set_layout_gui; VkDescriptorPool descriptor_pool_gui; - ImageData color_attachment; + ImageData color_attachment; + VkClearValue clear_values[3]; /** * @brief List of MSAA levels supported by the platform @@ -102,9 +103,9 @@ class DynamicMultisampleRasterization : public ApiVulkanSample virtual void build_command_buffers() override; virtual void request_gpu_features(vkb::PhysicalDevice &gpu) override; virtual bool prepare(const vkb::ApplicationOptions &options) override; - virtual void setup_render_pass() override; + // virtual void setup_render_pass() override; virtual void render(float delta_time) override; - virtual void setup_framebuffer() override; + // virtual void setup_framebuffer() override; virtual void on_update_ui_overlay(vkb::Drawer &drawer) override; virtual bool resize(const uint32_t _width, const uint32_t _height) override; virtual void setup_depth_stencil() override; @@ -124,6 +125,7 @@ class DynamicMultisampleRasterization : public ApiVulkanSample void update_resources(); void draw_node(VkCommandBuffer &, SceneNode &); void destroy_image_data(ImageData &image_data); + void attachments_setup(std::vector &attachments); }; std::unique_ptr create_dynamic_multisample_rasterization(); From 6f73a243844b5b9c5acf66fd7de3795b4c3c1fb2 Mon Sep 17 00:00:00 2001 From: Mateusz Kowalewski Date: Fri, 8 Mar 2024 14:17:53 +0100 Subject: [PATCH 46/52] Gui merge conflicts fix --- framework/gui.cpp | 1 - framework/gui.h | 1 - 2 files changed, 2 deletions(-) diff --git a/framework/gui.cpp b/framework/gui.cpp index 5a886a585..4a3f72941 100644 --- a/framework/gui.cpp +++ b/framework/gui.cpp @@ -1,6 +1,5 @@ /* Copyright (c) 2018-2024, Arm Limited and Contributors * Copyright (c) 2019-2024, Sascha Willems - * Copyright (c) 2024, Mobica Limited * * SPDX-License-Identifier: Apache-2.0 * diff --git a/framework/gui.h b/framework/gui.h index e376eaa90..42f5dcbcb 100644 --- a/framework/gui.h +++ b/framework/gui.h @@ -1,6 +1,5 @@ /* Copyright (c) 2018-2024, Arm Limited and Contributors * Copyright (c) 2019-2024, Sascha Willems - * Copyright (c) 2024, Mobica Limited * * SPDX-License-Identifier: Apache-2.0 * From 65b93cd0011d4b169cb3a1d3c6cdd0b1103356fd Mon Sep 17 00:00:00 2001 From: Mateusz Kowalewski Date: Tue, 12 Mar 2024 12:55:42 +0100 Subject: [PATCH 47/52] Fix regressions after implementing dynamic rendering --- framework/api_vulkan_sample.h | 6 +-- .../README.adoc | 11 ++--- .../dynamic_multisample_rasterization.cpp | 45 +++++-------------- .../dynamic_multisample_rasterization.h | 7 +-- 4 files changed, 20 insertions(+), 49 deletions(-) diff --git a/framework/api_vulkan_sample.h b/framework/api_vulkan_sample.h index 6d527cc5e..8d82ce39a 100644 --- a/framework/api_vulkan_sample.h +++ b/framework/api_vulkan_sample.h @@ -426,9 +426,9 @@ class ApiVulkanSample : public vkb::VulkanSample struct ImageData { - VkImage image; - VkDeviceMemory mem; - VkImageView view; + VkImage image{VK_NULL_HANDLE}; + VkDeviceMemory mem{VK_NULL_HANDLE}; + VkImageView view{VK_NULL_HANDLE}; } depth_stencil; struct diff --git a/samples/extensions/dynamic_multisample_rasterization/README.adoc b/samples/extensions/dynamic_multisample_rasterization/README.adoc index 9d14858b0..ae5374a31 100644 --- a/samples/extensions/dynamic_multisample_rasterization/README.adoc +++ b/samples/extensions/dynamic_multisample_rasterization/README.adoc @@ -29,26 +29,21 @@ image:image/image.png[] == Enabling the extension To be able to use this extension in Vulkan API: -`VK_EXT_extended_dynamic_state3` depends on `VK_KHR_get_physical_device_properties2`, which is promoted to Vulkan 1.1. That is, to use this extension, `VK_EXT_extended_dynamic_state3` and either `VK_KHR_get_physical_device_properties2` or Vulkan 1.1 are required. +`VK_EXT_extended_dynamic_state3` depends on `VK_KHR_get_physical_device_properties2`, which is promoted to Vulkan 1.1. That is, to use this extension, `VK_EXT_extended_dynamic_state3` and either `VK_KHR_get_physical_device_properties2` or Vulkan 1.1+ are required. == Using the extension To use the extension: 1) `VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT` must be added to `VkPipelineDynamicStateCreateInfo`. -2) Method `void vkCmdSetRasterizationSamplesEXT(VkCommandBuffer commandBuffer, VkSampleCountFlagBits rasterizationSamples)` should be called between `vkCmdBeginRenderPass` and `vkCmdEndRenderPass`. +2) Method `void vkCmdSetRasterizationSamplesEXT(VkCommandBuffer commandBuffer, VkSampleCountFlagBits rasterizationSamples)` should be called inside active command buffer. == Known issues The extension always reports the following validation errors when enabled: .... -VUID-vkCmdDraw-rasterizationSamples-07474(ERROR / SPEC): msgNum: -2007336333 - Validation Error: [ VUID-vkCmdDraw-rasterizationSamples-07474 ] Object 0: handle = 0x1ab5b866f50, type = VK_OBJECT_TYPE_COMMAND_BUFFER; | MessageID = 0x885a7a73 | vkCmdDraw(): Render pass attachment 1 samples VK_SAMPLE_COUNT_1_BIT does not match samples VK_SAMPLE_COUNT_4_BIT set with vkCmdSetRasterizationSamplesEXT(). The Vulkan spec states: If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, and neither the VK_AMD_mixed_attachment_samples nor the VK_NV_framebuffer_mixed_samples extensions are enabled, then the rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT must be the same as the current subpass color and/or depth/stencil attachments (https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VUID-vkCmdDraw-rasterizationSamples-07474) -VUID-vkCmdDraw-renderPass-02684: Validation Error: [ VUID-vkCmdDraw-renderPass-02684 ] Object 0: handle = 0x7533b600000006c9, type = VK_OBJECT_TYPE_RENDER_PASS; Object 1: handle = 0x30f5a50000000020, type = VK_OBJECT_TYPE_RENDER_PASS; | MessageID = 0x50685725 | vkCmdDraw(): RenderPasses incompatible between active render pass w/ VkRenderPass 0x7533b600000006c9[] and pipeline state object w/ VkRenderPass 0x30f5a50000000020[] Attachment 0 is not compatible with 0: They have different samples.. The Vulkan spec states: The current render pass must be compatible with the renderPass member of the VkGraphicsPipelineCreateInfo structure specified when creating the VkPipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS (https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VUID-vkCmdDraw-renderPass-02684) +SYNC-HAZARD-WRITE-AFTER-READ: Validation Error: [ SYNC-HAZARD-WRITE-AFTER-READ ] Object 0: handle = 0x555556f0b520, type = VK_OBJECT_TYPE_QUEUE; | MessageID = 0x376bc9df | vkQueueSubmit(): Hazard WRITE_AFTER_READ for entry 0, VkCommandBuffer 0x555558e50aa0[], Submitted access info (submitted_usage: SYNC_IMAGE_LAYOUT_TRANSITION, command: vkCmdPipelineBarrier, seq_no: 1, VkImage 0xcb3ee80000000007[], reset_no: 6). Access info (prior_usage: SYNC_PRESENT_ENGINE_SYNCVAL_PRESENT_ACQUIRE_READ_SYNCVAL, read_barriers: VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT|VK_PIPELINE_STAGE_2_BOTTOM_OF_PIPE_BIT, , batch_tag: 158, vkAcquireNextImageKHR aquire_tag:158: VkSwapchainKHR 0xf56c9b0000000004[], image_index: 2image: VkImage 0xcb3ee80000000007[]). .... -The root cause for the validation errors is currently unknown and under analysis by Vulkan Validation Layers team: - -https://github.com/KhronosGroup/Vulkan-ValidationLayers/issues/7327 - == Resources https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_EXT_extended_dynamic_state3.html diff --git a/samples/extensions/dynamic_multisample_rasterization/dynamic_multisample_rasterization.cpp b/samples/extensions/dynamic_multisample_rasterization/dynamic_multisample_rasterization.cpp index c21233f31..018498ce5 100644 --- a/samples/extensions/dynamic_multisample_rasterization/dynamic_multisample_rasterization.cpp +++ b/samples/extensions/dynamic_multisample_rasterization/dynamic_multisample_rasterization.cpp @@ -28,7 +28,6 @@ DynamicMultisampleRasterization::DynamicMultisampleRasterization() title = "DynamicState3 Multisample Rasterization"; set_api_version(VK_API_VERSION_1_2); - add_instance_extension(VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME); add_device_extension(VK_EXT_EXTENDED_DYNAMIC_STATE_3_EXTENSION_NAME); add_device_extension(VK_KHR_DYNAMIC_RENDERING_EXTENSION_NAME); } @@ -52,22 +51,9 @@ DynamicMultisampleRasterization::~DynamicMultisampleRasterization() void DynamicMultisampleRasterization::request_gpu_features(vkb::PhysicalDevice &gpu) { - // Query the extended dynamic state support - VkPhysicalDeviceExtendedDynamicState3FeaturesEXT extended_dynamic_state_3_features{}; - extended_dynamic_state_3_features.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_FEATURES_EXT; - - VkPhysicalDeviceFeatures2 features2{}; - features2.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2; - features2.pNext = &extended_dynamic_state_3_features; - vkGetPhysicalDeviceFeatures2(gpu.get_handle(), &features2); - - if (extended_dynamic_state_3_features.extendedDynamicState3RasterizationSamples) - { - // Only request the features that we support - auto &features = gpu.request_extension_features(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_FEATURES_EXT); - - features.extendedDynamicState3RasterizationSamples = VK_TRUE; - } + VkPhysicalDeviceExtendedDynamicState3FeaturesEXT requested_feature = {VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_FEATURES_EXT}; + requested_feature.extendedDynamicState3RasterizationSamples = VK_TRUE; + gpu.request_extension_features(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_FEATURES_EXT) = requested_feature; // Dynamic Rendering auto &requested_dynamic_rendering = gpu.request_extension_features(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES_KHR); @@ -136,17 +122,6 @@ bool DynamicMultisampleRasterization::prepare(const vkb::ApplicationOptions &opt return false; } -#if VK_NO_PROTOTYPES - VkInstance instance = get_device().get_gpu().get_instance().get_handle(); - assert(!!instance); - vkCmdBeginRenderingKHR = reinterpret_cast(vkGetInstanceProcAddr(instance, "vkCmdBeginRenderingKHR")); - vkCmdEndRenderingKHR = reinterpret_cast(vkGetInstanceProcAddr(instance, "vkCmdEndRenderingKHR")); - if (!vkCmdBeginRenderingKHR || !vkCmdEndRenderingKHR) - { - throw std::runtime_error("Unable to dynamically load vkCmdBeginRenderingKHR and vkCmdEndRenderingKHR"); - } -#endif - camera.type = vkb::CameraType::LookAt; camera.set_position(glm::vec3(1.9f, 10.f, -18.f)); camera.set_rotation(glm::vec3(0.f, -40.f, 0.f)); @@ -228,12 +203,12 @@ void DynamicMultisampleRasterization::build_command_buffers() { VkCommandBufferBeginInfo command_buffer_begin_info = vkb::initializers::command_buffer_begin_info(); + std::vector clear_values(2); clear_values[0].color = {{0.0f, 0.0f, 0.0f, 0.0f}}; - clear_values[1].color = {{0.0f, 0.0f, 0.0f, 0.0f}}; - clear_values[2].depthStencil = {0.0f, 0}; + clear_values[1].depthStencil = {0.0f, 0}; std::vector attachments(2); - attachments_setup(attachments); + attachments_setup(attachments, clear_values); VkImageSubresourceRange range{}; range.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT; @@ -451,7 +426,7 @@ void DynamicMultisampleRasterization::setup_descriptor_sets() vkUpdateDescriptorSets(get_device().get_handle(), static_cast(write_descriptor_sets.size()), write_descriptor_sets.data(), 0, nullptr); } -void DynamicMultisampleRasterization::attachments_setup(std::vector &attachments) +void DynamicMultisampleRasterization::attachments_setup(std::vector &attachments, std::vector &clear_values) { prepare_supported_sample_count_list(); destroy_image_data(color_attachment); @@ -485,7 +460,7 @@ void DynamicMultisampleRasterization::attachments_setup(std::vector &attachments); + void attachments_setup(std::vector &attachments, std::vector &clear_values); }; std::unique_ptr create_dynamic_multisample_rasterization(); From bdb697379a708a419ba29c7030579425ae8a3d02 Mon Sep 17 00:00:00 2001 From: Mateusz Kowalewski Date: Wed, 13 Mar 2024 13:47:24 +0100 Subject: [PATCH 48/52] Adjust sample to changes from PR#910 --- .../dynamic_multisample_rasterization.cpp | 51 ++++++++++--------- .../dynamic_multisample_rasterization.h | 2 +- 2 files changed, 27 insertions(+), 26 deletions(-) diff --git a/samples/extensions/dynamic_multisample_rasterization/dynamic_multisample_rasterization.cpp b/samples/extensions/dynamic_multisample_rasterization/dynamic_multisample_rasterization.cpp index 018498ce5..0d7d49c08 100644 --- a/samples/extensions/dynamic_multisample_rasterization/dynamic_multisample_rasterization.cpp +++ b/samples/extensions/dynamic_multisample_rasterization/dynamic_multisample_rasterization.cpp @@ -34,7 +34,7 @@ DynamicMultisampleRasterization::DynamicMultisampleRasterization() DynamicMultisampleRasterization::~DynamicMultisampleRasterization() { - if (device) + if (has_device()) { vkDestroyPipeline(get_device().get_handle(), pipeline, nullptr); vkDestroyPipeline(get_device().get_handle(), pipeline_inversed_rasterizer, nullptr); @@ -315,9 +315,9 @@ void DynamicMultisampleRasterization::build_command_buffers() void DynamicMultisampleRasterization::draw_ui(VkCommandBuffer &cmd_buffer) { - if (gui) + if (has_gui()) { - gui->draw(cmd_buffer, pipeline_gui, pipeline_layout_gui, descriptor_set_gui); + get_gui().draw(cmd_buffer, pipeline_gui, pipeline_layout_gui, descriptor_set_gui); } } @@ -470,7 +470,7 @@ void DynamicMultisampleRasterization::setup_color_attachment() VkImageCreateInfo image_create_info{}; image_create_info.sType = VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO; image_create_info.imageType = VK_IMAGE_TYPE_2D; - image_create_info.format = render_context->get_format(); + image_create_info.format = get_render_context().get_format(); image_create_info.extent = {get_render_context().get_surface_extent().width, get_render_context().get_surface_extent().height, 1}; image_create_info.mipLevels = 1; image_create_info.arrayLayers = 1; @@ -478,22 +478,22 @@ void DynamicMultisampleRasterization::setup_color_attachment() image_create_info.tiling = VK_IMAGE_TILING_OPTIMAL; image_create_info.usage = VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT | VK_IMAGE_USAGE_SAMPLED_BIT | VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT; - VK_CHECK(vkCreateImage(device->get_handle(), &image_create_info, nullptr, &color_attachment.image)); + VK_CHECK(vkCreateImage(get_device().get_handle(), &image_create_info, nullptr, &color_attachment.image)); VkMemoryRequirements memReqs{}; - vkGetImageMemoryRequirements(device->get_handle(), color_attachment.image, &memReqs); + vkGetImageMemoryRequirements(get_device().get_handle(), color_attachment.image, &memReqs); VkMemoryAllocateInfo memory_allocation{}; memory_allocation.sType = VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO; memory_allocation.allocationSize = memReqs.size; - memory_allocation.memoryTypeIndex = device->get_memory_type(memReqs.memoryTypeBits, VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT); - VK_CHECK(vkAllocateMemory(device->get_handle(), &memory_allocation, nullptr, &color_attachment.mem)); - VK_CHECK(vkBindImageMemory(device->get_handle(), color_attachment.image, color_attachment.mem, 0)); + memory_allocation.memoryTypeIndex = get_device().get_memory_type(memReqs.memoryTypeBits, VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT); + VK_CHECK(vkAllocateMemory(get_device().get_handle(), &memory_allocation, nullptr, &color_attachment.mem)); + VK_CHECK(vkBindImageMemory(get_device().get_handle(), color_attachment.image, color_attachment.mem, 0)); VkImageViewCreateInfo image_view_create_info{}; image_view_create_info.sType = VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO; image_view_create_info.viewType = VK_IMAGE_VIEW_TYPE_2D; image_view_create_info.image = color_attachment.image; - image_view_create_info.format = render_context->get_format(); + image_view_create_info.format = get_render_context().get_format(); image_view_create_info.subresourceRange.baseMipLevel = 0; image_view_create_info.subresourceRange.levelCount = 1; image_view_create_info.subresourceRange.baseArrayLayer = 0; @@ -504,7 +504,7 @@ void DynamicMultisampleRasterization::setup_color_attachment() { image_view_create_info.subresourceRange.aspectMask |= VK_IMAGE_ASPECT_STENCIL_BIT; } - VK_CHECK(vkCreateImageView(device->get_handle(), &image_view_create_info, nullptr, &color_attachment.view)); + VK_CHECK(vkCreateImageView(get_device().get_handle(), &image_view_create_info, nullptr, &color_attachment.view)); } void DynamicMultisampleRasterization::setup_depth_stencil() @@ -520,16 +520,16 @@ void DynamicMultisampleRasterization::setup_depth_stencil() image_create_info.tiling = VK_IMAGE_TILING_OPTIMAL; image_create_info.usage = VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT | VK_IMAGE_USAGE_TRANSFER_SRC_BIT; - VK_CHECK(vkCreateImage(device->get_handle(), &image_create_info, nullptr, &depth_stencil.image)); + VK_CHECK(vkCreateImage(get_device().get_handle(), &image_create_info, nullptr, &depth_stencil.image)); VkMemoryRequirements memReqs{}; - vkGetImageMemoryRequirements(device->get_handle(), depth_stencil.image, &memReqs); + vkGetImageMemoryRequirements(get_device().get_handle(), depth_stencil.image, &memReqs); VkMemoryAllocateInfo memory_allocation{}; memory_allocation.sType = VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO; memory_allocation.allocationSize = memReqs.size; - memory_allocation.memoryTypeIndex = device->get_memory_type(memReqs.memoryTypeBits, VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT); - VK_CHECK(vkAllocateMemory(device->get_handle(), &memory_allocation, nullptr, &depth_stencil.mem)); - VK_CHECK(vkBindImageMemory(device->get_handle(), depth_stencil.image, depth_stencil.mem, 0)); + memory_allocation.memoryTypeIndex = get_device().get_memory_type(memReqs.memoryTypeBits, VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT); + VK_CHECK(vkAllocateMemory(get_device().get_handle(), &memory_allocation, nullptr, &depth_stencil.mem)); + VK_CHECK(vkBindImageMemory(get_device().get_handle(), depth_stencil.image, depth_stencil.mem, 0)); VkImageViewCreateInfo image_view_create_info{}; image_view_create_info.sType = VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO; @@ -546,7 +546,7 @@ void DynamicMultisampleRasterization::setup_depth_stencil() { image_view_create_info.subresourceRange.aspectMask |= VK_IMAGE_ASPECT_STENCIL_BIT; } - VK_CHECK(vkCreateImageView(device->get_handle(), &image_view_create_info, nullptr, &depth_stencil.view)); + VK_CHECK(vkCreateImageView(get_device().get_handle(), &image_view_create_info, nullptr, &depth_stencil.view)); } void DynamicMultisampleRasterization::prepare_pipelines() @@ -620,7 +620,7 @@ void DynamicMultisampleRasterization::prepare_pipelines() vkb::initializers::pipeline_color_blend_attachment_state(0xf, VK_FALSE)}; // Create graphics pipeline for dynamic rendering - VkFormat color_rendering_format = render_context->get_format(); + VkFormat color_rendering_format = get_render_context().get_format(); // Provide information for dynamic rendering VkPipelineRenderingCreateInfoKHR pipeline_rendering_create_info{VK_STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO_KHR}; @@ -702,8 +702,8 @@ void DynamicMultisampleRasterization::prepare_gui_pipeline() VkDescriptorSetAllocateInfo descriptor_allocation = vkb::initializers::descriptor_set_allocate_info(descriptor_pool_gui, &descriptor_set_layout_gui, 1); VK_CHECK(vkAllocateDescriptorSets(get_device().get_handle(), &descriptor_allocation, &descriptor_set_gui)); VkDescriptorImageInfo font_descriptor = vkb::initializers::descriptor_image_info( - gui->get_sampler(), - gui->get_font_image_view(), + get_gui().get_sampler(), + get_gui().get_font_image_view(), VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL); std::vector write_descriptor_sets = { vkb::initializers::write_descriptor_set(descriptor_set_gui, VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, 0, &font_descriptor)}; @@ -758,7 +758,7 @@ void DynamicMultisampleRasterization::prepare_gui_pipeline() pipeline_layout_gui = get_device().get_resource_cache().request_pipeline_layout(shader_modules).get_handle(); // Create graphics pipeline for dynamic rendering - VkFormat color_rendering_format = render_context->get_format(); + VkFormat color_rendering_format = get_render_context().get_format(); // Provide information for dynamic rendering VkPipelineRenderingCreateInfoKHR pipeline_rendering_create_info{VK_STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO_KHR}; @@ -826,7 +826,8 @@ void DynamicMultisampleRasterization::prepare_uniform_buffers() void DynamicMultisampleRasterization::prepare_gui() { - gui = std::make_unique(*this, *window, /*stats=*/nullptr, 15.0f, true); + // gui = std::make_unique(*this, *window, /*stats=*/nullptr, 15.0f, true); + create_gui(*window, /*stats=*/nullptr, 15.0f, true); prepare_gui_pipeline(); @@ -881,9 +882,9 @@ void DynamicMultisampleRasterization::update_resources() { prepared = false; - if (device) + if (has_device()) { - device->wait_idle(); + get_device().wait_idle(); rebuild_command_buffers(); } @@ -920,7 +921,7 @@ bool DynamicMultisampleRasterization::resize(const uint32_t _width, const uint32 return true; } -std::unique_ptr create_dynamic_multisample_rasterization() +std::unique_ptr> create_dynamic_multisample_rasterization() { return std::make_unique(); } \ No newline at end of file diff --git a/samples/extensions/dynamic_multisample_rasterization/dynamic_multisample_rasterization.h b/samples/extensions/dynamic_multisample_rasterization/dynamic_multisample_rasterization.h index d8d3eee39..a891c40e9 100644 --- a/samples/extensions/dynamic_multisample_rasterization/dynamic_multisample_rasterization.h +++ b/samples/extensions/dynamic_multisample_rasterization/dynamic_multisample_rasterization.h @@ -125,4 +125,4 @@ class DynamicMultisampleRasterization : public ApiVulkanSample void attachments_setup(std::vector &attachments, std::vector &clear_values); }; -std::unique_ptr create_dynamic_multisample_rasterization(); +std::unique_ptr> create_dynamic_multisample_rasterization(); From 38fb8bd0d57cd8046b0d51d73ca9370ce3e1648f Mon Sep 17 00:00:00 2001 From: Mateusz Kowalewski Date: Thu, 14 Mar 2024 14:07:00 +0100 Subject: [PATCH 49/52] Fix sync issue --- .../dynamic_multisample_rasterization.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/samples/extensions/dynamic_multisample_rasterization/dynamic_multisample_rasterization.cpp b/samples/extensions/dynamic_multisample_rasterization/dynamic_multisample_rasterization.cpp index 0d7d49c08..4ffc5bff3 100644 --- a/samples/extensions/dynamic_multisample_rasterization/dynamic_multisample_rasterization.cpp +++ b/samples/extensions/dynamic_multisample_rasterization/dynamic_multisample_rasterization.cpp @@ -250,6 +250,10 @@ void DynamicMultisampleRasterization::build_command_buffers() vkb::image_layout_transition(draw_cmd_buffers[i], swapchain_buffers[i].image, + VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT, + VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT, + 0, + VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT, VK_IMAGE_LAYOUT_UNDEFINED, VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL, range); @@ -826,7 +830,6 @@ void DynamicMultisampleRasterization::prepare_uniform_buffers() void DynamicMultisampleRasterization::prepare_gui() { - // gui = std::make_unique(*this, *window, /*stats=*/nullptr, 15.0f, true); create_gui(*window, /*stats=*/nullptr, 15.0f, true); prepare_gui_pipeline(); From 130d3e4d1e341837e042ed9051b157940afe996a Mon Sep 17 00:00:00 2001 From: Mateusz Kowalewski Date: Wed, 27 Mar 2024 12:33:21 +0100 Subject: [PATCH 50/52] Documentation update --- samples/extensions/README.adoc | 8 +++++++- .../README.adoc | 11 ++--------- .../dynamic_multisample_rasterization.cpp | 18 +++++++++++++++--- 3 files changed, 24 insertions(+), 13 deletions(-) diff --git a/samples/extensions/README.adoc b/samples/extensions/README.adoc index cc24c3bec..01522bdb4 100644 --- a/samples/extensions/README.adoc +++ b/samples/extensions/README.adoc @@ -260,4 +260,10 @@ Demonstrate how to use the blending related functions available in the VK_EXT_ex *Extensions:* https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_EXT_line_rasterization.html[`VK_EXT_line_rasterization`], https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_EXT_extended_dynamic_state3.html[`VK_EXT_extended_dynamic_state3`] -Demonstrate methods for dynamically customizing the appearance of the rendered lines. \ No newline at end of file +Demonstrate methods for dynamically customizing the appearance of the rendered lines. + +=== xref:./{extension_samplespath}dynamic_multisample_rasterization/README.adoc[Dynamic multisample rasterization] + +*Extensions:* https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_EXT_extended_dynamic_state3.html[`VK_EXT_line_rasterization`], https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_EXT_extended_dynamic_state3.html[`VK_EXT_extended_dynamic_state3`] + +Demonstrate how to use dynamic multisample rasterization (MSAA) \ No newline at end of file diff --git a/samples/extensions/dynamic_multisample_rasterization/README.adoc b/samples/extensions/dynamic_multisample_rasterization/README.adoc index ae5374a31..6fa10a837 100644 --- a/samples/extensions/dynamic_multisample_rasterization/README.adoc +++ b/samples/extensions/dynamic_multisample_rasterization/README.adoc @@ -29,20 +29,13 @@ image:image/image.png[] == Enabling the extension To be able to use this extension in Vulkan API: -`VK_EXT_extended_dynamic_state3` depends on `VK_KHR_get_physical_device_properties2`, which is promoted to Vulkan 1.1. That is, to use this extension, `VK_EXT_extended_dynamic_state3` and either `VK_KHR_get_physical_device_properties2` or Vulkan 1.1+ are required. +`VK_EXT_extended_dynamic_state3` depends on `VK_KHR_get_physical_device_properties2`, which is promoted to Vulkan 1.1. That is, to use this extension, `VK_EXT_extended_dynamic_state3` and either `VK_KHR_get_physical_device_properties2` or Vulkan 1.1 are required. == Using the extension To use the extension: 1) `VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT` must be added to `VkPipelineDynamicStateCreateInfo`. -2) Method `void vkCmdSetRasterizationSamplesEXT(VkCommandBuffer commandBuffer, VkSampleCountFlagBits rasterizationSamples)` should be called inside active command buffer. - -== Known issues - -The extension always reports the following validation errors when enabled: -.... -SYNC-HAZARD-WRITE-AFTER-READ: Validation Error: [ SYNC-HAZARD-WRITE-AFTER-READ ] Object 0: handle = 0x555556f0b520, type = VK_OBJECT_TYPE_QUEUE; | MessageID = 0x376bc9df | vkQueueSubmit(): Hazard WRITE_AFTER_READ for entry 0, VkCommandBuffer 0x555558e50aa0[], Submitted access info (submitted_usage: SYNC_IMAGE_LAYOUT_TRANSITION, command: vkCmdPipelineBarrier, seq_no: 1, VkImage 0xcb3ee80000000007[], reset_no: 6). Access info (prior_usage: SYNC_PRESENT_ENGINE_SYNCVAL_PRESENT_ACQUIRE_READ_SYNCVAL, read_barriers: VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT|VK_PIPELINE_STAGE_2_BOTTOM_OF_PIPE_BIT, , batch_tag: 158, vkAcquireNextImageKHR aquire_tag:158: VkSwapchainKHR 0xf56c9b0000000004[], image_index: 2image: VkImage 0xcb3ee80000000007[]). -.... +2) Method `void vkCmdSetRasterizationSamplesEXT(VkCommandBuffer commandBuffer, VkSampleCountFlagBits rasterizationSamples)` should be called with the active command buffer. == Resources diff --git a/samples/extensions/dynamic_multisample_rasterization/dynamic_multisample_rasterization.cpp b/samples/extensions/dynamic_multisample_rasterization/dynamic_multisample_rasterization.cpp index 4ffc5bff3..c21d1bb31 100644 --- a/samples/extensions/dynamic_multisample_rasterization/dynamic_multisample_rasterization.cpp +++ b/samples/extensions/dynamic_multisample_rasterization/dynamic_multisample_rasterization.cpp @@ -51,10 +51,22 @@ DynamicMultisampleRasterization::~DynamicMultisampleRasterization() void DynamicMultisampleRasterization::request_gpu_features(vkb::PhysicalDevice &gpu) { - VkPhysicalDeviceExtendedDynamicState3FeaturesEXT requested_feature = {VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_FEATURES_EXT}; - requested_feature.extendedDynamicState3RasterizationSamples = VK_TRUE; - gpu.request_extension_features(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_FEATURES_EXT) = requested_feature; + // Query the extended dynamic state support + VkPhysicalDeviceExtendedDynamicState3FeaturesEXT extended_dynamic_state_3_features{}; + extended_dynamic_state_3_features.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_FEATURES_EXT; + VkPhysicalDeviceFeatures2 features2{}; + features2.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2; + features2.pNext = &extended_dynamic_state_3_features; + vkGetPhysicalDeviceFeatures2(gpu.get_handle(), &features2); + + if (extended_dynamic_state_3_features.extendedDynamicState3RasterizationSamples) + { + VkPhysicalDeviceExtendedDynamicState3FeaturesEXT requested_feature = {VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_FEATURES_EXT}; + requested_feature.extendedDynamicState3RasterizationSamples = VK_TRUE; + gpu.request_extension_features(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_FEATURES_EXT) = requested_feature; + } + // Dynamic Rendering auto &requested_dynamic_rendering = gpu.request_extension_features(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES_KHR); requested_dynamic_rendering.dynamicRendering = VK_TRUE; From 7acbd64d9b1cad3380658c3d1a1f19b2331c5be4 Mon Sep 17 00:00:00 2001 From: Mateusz Kowalewski Date: Tue, 7 May 2024 11:49:17 +0200 Subject: [PATCH 51/52] Remove unused feature --- .../dynamic_multisample_rasterization.cpp | 17 +++-------------- 1 file changed, 3 insertions(+), 14 deletions(-) diff --git a/samples/extensions/dynamic_multisample_rasterization/dynamic_multisample_rasterization.cpp b/samples/extensions/dynamic_multisample_rasterization/dynamic_multisample_rasterization.cpp index c21d1bb31..341bf8996 100644 --- a/samples/extensions/dynamic_multisample_rasterization/dynamic_multisample_rasterization.cpp +++ b/samples/extensions/dynamic_multisample_rasterization/dynamic_multisample_rasterization.cpp @@ -62,11 +62,11 @@ void DynamicMultisampleRasterization::request_gpu_features(vkb::PhysicalDevice & if (extended_dynamic_state_3_features.extendedDynamicState3RasterizationSamples) { - VkPhysicalDeviceExtendedDynamicState3FeaturesEXT requested_feature = {VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_FEATURES_EXT}; - requested_feature.extendedDynamicState3RasterizationSamples = VK_TRUE; + VkPhysicalDeviceExtendedDynamicState3FeaturesEXT requested_feature = {VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_FEATURES_EXT}; + requested_feature.extendedDynamicState3RasterizationSamples = VK_TRUE; gpu.request_extension_features(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_FEATURES_EXT) = requested_feature; } - + // Dynamic Rendering auto &requested_dynamic_rendering = gpu.request_extension_features(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES_KHR); requested_dynamic_rendering.dynamicRendering = VK_TRUE; @@ -244,21 +244,10 @@ void DynamicMultisampleRasterization::build_command_buffers() { attachments[0].imageView = swapchain_buffers[i].view; } - - VkMultisampledRenderToSingleSampledInfoEXT multisampled_render; - if (sample_count != VK_SAMPLE_COUNT_1_BIT) - { - multisampled_render.multisampledRenderToSingleSampledEnable = VK_TRUE; - multisampled_render.sType = VK_STRUCTURE_TYPE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_INFO_EXT; - multisampled_render.rasterizationSamples = sample_count; - multisampled_render.pNext = nullptr; - } - auto render_area = VkRect2D{VkOffset2D{}, VkExtent2D{width, height}}; auto render_info = vkb::initializers::rendering_info(render_area, 1, &attachments[0]); render_info.layerCount = 1; render_info.pDepthAttachment = &attachments[1]; - render_info.pNext = (sample_count != VK_SAMPLE_COUNT_1_BIT) ? &multisampled_render : VK_NULL_HANDLE; vkb::image_layout_transition(draw_cmd_buffers[i], swapchain_buffers[i].image, From 22b56ac81e5ebc72f8875450e029f43f77a205f2 Mon Sep 17 00:00:00 2001 From: Mateusz Kowalewski Date: Wed, 22 May 2024 15:21:12 +0200 Subject: [PATCH 52/52] VK objects initializations added --- .../README.adoc | 3 ++- .../dynamic_multisample_rasterization.h | 20 +++++++++---------- 2 files changed, 12 insertions(+), 11 deletions(-) diff --git a/samples/extensions/dynamic_multisample_rasterization/README.adoc b/samples/extensions/dynamic_multisample_rasterization/README.adoc index 6fa10a837..c5074ac08 100644 --- a/samples/extensions/dynamic_multisample_rasterization/README.adoc +++ b/samples/extensions/dynamic_multisample_rasterization/README.adoc @@ -24,12 +24,13 @@ This sample demonstrates one of the functionalities of VK_EXT_extended_dynamic_state3 related to rasterization samples. The extension can be used to dynamically change sampling without need to swap pipelines. -image:image/image.png[] +image:./image/image.png[] == Enabling the extension To be able to use this extension in Vulkan API: `VK_EXT_extended_dynamic_state3` depends on `VK_KHR_get_physical_device_properties2`, which is promoted to Vulkan 1.1. That is, to use this extension, `VK_EXT_extended_dynamic_state3` and either `VK_KHR_get_physical_device_properties2` or Vulkan 1.1 are required. +Additionally this sample uses `VK_KHR_dynamic_rendering" which required Vulkan 1.2. == Using the extension diff --git a/samples/extensions/dynamic_multisample_rasterization/dynamic_multisample_rasterization.h b/samples/extensions/dynamic_multisample_rasterization/dynamic_multisample_rasterization.h index a891c40e9..ce4e504cf 100644 --- a/samples/extensions/dynamic_multisample_rasterization/dynamic_multisample_rasterization.h +++ b/samples/extensions/dynamic_multisample_rasterization/dynamic_multisample_rasterization.h @@ -50,18 +50,18 @@ class DynamicMultisampleRasterization : public ApiVulkanSample } uniform_data; std::unique_ptr uniform_buffer; - VkPipeline pipeline; - VkPipeline pipeline_inversed_rasterizer; - VkPipelineLayout pipeline_layout; - VkDescriptorSet descriptor_set; - VkDescriptorSetLayout descriptor_set_layout; + VkPipeline pipeline{VK_NULL_HANDLE}; + VkPipeline pipeline_inversed_rasterizer{VK_NULL_HANDLE}; + VkPipelineLayout pipeline_layout{VK_NULL_HANDLE}; + VkDescriptorSet descriptor_set{VK_NULL_HANDLE}; + VkDescriptorSetLayout descriptor_set_layout{VK_NULL_HANDLE}; // GUI - VkPipeline pipeline_gui; - VkPipelineLayout pipeline_layout_gui; - VkDescriptorSet descriptor_set_gui; - VkDescriptorSetLayout descriptor_set_layout_gui; - VkDescriptorPool descriptor_pool_gui; + VkPipeline pipeline_gui{VK_NULL_HANDLE}; + VkPipelineLayout pipeline_layout_gui{VK_NULL_HANDLE}; + VkDescriptorSet descriptor_set_gui{VK_NULL_HANDLE}; + VkDescriptorSetLayout descriptor_set_layout_gui{VK_NULL_HANDLE}; + VkDescriptorPool descriptor_pool_gui{VK_NULL_HANDLE}; ImageData color_attachment;

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 z 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 z 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 }ZJ))R0hAl|;*&f@>& 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%0Ax$kzX~D}BRO=j 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%0D|1o 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�zH)nE5!Rt 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ℑH+f`*^%pwgMyfT=5kABH}EwQcs#Fn;Z)X#=v8Az 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%0D9eZe z*XcGBR)|(?xZg|!kXx^959E1Np;`sxhwa?lct5im8|j8K+1c6ZrDmYyj#p>rz$@=(gig%WLGv>%mtpEVH!N1Kna95Qwpy1 zdJd5qnNC{*fX>s?W4nx5O?}PZTH0|Lz^_3r-+qJA&nt+$kv)?QMI_&TCCf~Jke)DR zF=Y@wI(WF4IJU7;y+;-rZo2|eRRv{O$&;m!;zQAO6@kwX{0O*C&}?J2<%_`srxu<+W7|;D>Gh2hOJ?NkB^3|qoxP)Zswb;FrOuD?z4=K0?yjQdawc87PTfk(W!W_&*x(M(6r{3AFV3nmk+U~oRk@K z_KTl|e8-yC2+W`kVB$X}wlWa`@81})%yHXvG*}y+mFXyMmq~xFMD-7X7T(6D3l7Om zUb3RJ9(R(s*7mDAmz+lp{4h9>%0q=RWHtSQ_s?MFz8KM>;o#}+bE&z;gtw6RFm;(+ zeSP9`HoGBerr4a6PchQbaZi;U|6|3={>%(=egP%wH$-e0jzHp0m5TWGB2|uO*KS%~ zviRTuL*lO1r-XC3FZ{pZJw%ZFB~eg@_HdGN_jZP{?0n(^uY#c-whpROntvvl#8GzuzEx*XaChRBpt%u`k37J1Hv5x^*j@FfK?!@#_NjuHtQwYDZ@0x$I; z89o+XXzC++Jc`lCW6Gn9u)NbQNUGJlGe(j|X%D=h(C$`aU5|0HoWzicLLH6^3vO