From 90fa6bd8955f77c32a958ced4b028816e20f8cce Mon Sep 17 00:00:00 2001 From: Grzegorz Smagacz Date: Thu, 3 Aug 2023 21:14:15 +0200 Subject: [PATCH 01/21] Initial commit. --- samples/CMakeLists.txt | 1 + .../extensions/sparse_image/CMakeLists.txt | 30 + samples/extensions/sparse_image/README.md | 73 + .../extensions/sparse_image/sparse_image.cpp | 1661 +++++++++++++++++ .../extensions/sparse_image/sparse_image.h | 245 +++ shaders/sparse_image/shader.frag | 44 + shaders/sparse_image/shader.vert | 18 + 7 files changed, 2072 insertions(+) create mode 100644 samples/extensions/sparse_image/CMakeLists.txt create mode 100644 samples/extensions/sparse_image/README.md create mode 100644 samples/extensions/sparse_image/sparse_image.cpp create mode 100644 samples/extensions/sparse_image/sparse_image.h create mode 100644 shaders/sparse_image/shader.frag create mode 100644 shaders/sparse_image/shader.vert diff --git a/samples/CMakeLists.txt b/samples/CMakeLists.txt index da45654eaa..1af968bf54 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" + "sparse_image" #Performance Samples "swapchain_images" diff --git a/samples/extensions/sparse_image/CMakeLists.txt b/samples/extensions/sparse_image/CMakeLists.txt new file mode 100644 index 0000000000..00df27fc6c --- /dev/null +++ b/samples/extensions/sparse_image/CMakeLists.txt @@ -0,0 +1,30 @@ +# Copyright (c) 2023, Mobica Limited +# +# 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 "sparse_image" + DESCRIPTION "Sample description" + SHADER_FILES_GLSL + "shader.vert" + "shader.frag") diff --git a/samples/extensions/sparse_image/README.md b/samples/extensions/sparse_image/README.md new file mode 100644 index 0000000000..c1ea6a13ad --- /dev/null +++ b/samples/extensions/sparse_image/README.md @@ -0,0 +1,73 @@ + + + + + + +# Overview + + + + + +# Conclusion + + B) and + * describes the edge from Ph to the vertical edge / describes the edge from the Ph to the horizontal top edge. + * + * Assuming that the image is not stretched within a single block, I calculate the ratio of for example (verticalVertical / AtoB) or (verticalHorizontalTop / AtoC). + * I know, that each parrallelogram on-screen corresponds to the fixed-size rectangular on-texture. Given the ratio I calculated I can just get calculate the on-texture step in texels from the right-triangle property + * and compare it to the x or y step of vertical/horizontal step in pixels on-screen. + * + */ +void sparse_image::CalculateMipLevelData::calculate_mip_levels() +{ + //std::ofstream mipTableFile; + //mipTableFile.open("C:\\MAIN\\projects\\mipTable.txt", std::ios::out || std::ios::trunc); + + size_t num_rows = mesh.size() - 1; + size_t num_columns = mesh[0].size() - 1; + + mip_table.resize(num_rows); + for (auto &row : mip_table) + { + row.resize(num_columns); + } + + for (size_t row = 0U; row < num_rows; row += 1U) + { + for (size_t column = 0U; column < num_columns; column += 1U) + { + double dTx = texture_base_dim.width / (num_columns); + double dTy = texture_base_dim.height / (num_rows); + + double dIx_vertical = mesh[row][column].x - mesh[row + 1][column].x; + double dIy_vertical = mesh[row][column].y - mesh[row + 1][column].y; + + double dIx_horizontal = mesh[row][column].x - mesh[row][column + 1].x; + double dIy_horizontal = mesh[row][column].y - mesh[row][column + 1].y; + + double AB_vertical = sqrt(pow(dIx_vertical, 2) + pow(dIy_vertical, 2)); + double AC_horizontal = sqrt(pow(dIx_horizontal, 2) + pow(dIy_horizontal, 2)); + + double pH_vertical_x, pH_vertical_y, pH_horizontal_x, pH_horizontal_y; + + pH_vertical_x = mesh[row][column].x; + pH_vertical_y = mesh[row + 1][column].y; + pH_horizontal_x = mesh[row][column + 1].x; + pH_horizontal_y = mesh[row][column].y; + + double pH_vertical_to_A = sqrt(pow(mesh[row][column].x - pH_vertical_x, 2) + pow(mesh[row][column].y - pH_vertical_y, 2)); + double pH_vertical_to_B = sqrt(pow(mesh[row + 1][column].x - pH_vertical_x, 2) + pow(mesh[row + 1][column].y - pH_vertical_y, 2)); + double pH_horizontal_to_A = sqrt(pow(mesh[row][column].x - pH_horizontal_x, 2) + pow(mesh[row][column].y - pH_horizontal_y, 2)); + double pH_horizontal_to_C = sqrt(pow(mesh[row][column + 1].x - pH_horizontal_x, 2) + pow(mesh[row][column + 1].y - pH_horizontal_y, 2)); + + double a_vertical = ax_vertical[column]; + double a_horizontal = ax_horizontal[row]; + + double x_vertical_vertical = (a_vertical * mesh[row][column].x + pH_vertical_y - (pH_vertical_x * a_horizontal) - mesh[row][column].y) / (a_vertical - a_horizontal); + double y_vertical_vertical = (x_vertical_vertical - mesh[row][column].x) * a_vertical + mesh[row][column].y; + + double x_vertical_horizontal_top = (a_horizontal * mesh[row][column].x + pH_vertical_y - (pH_vertical_x * a_vertical) - mesh[row][column].y) / (a_horizontal - a_vertical); + double y_vertical_horizontal_top = (x_vertical_horizontal_top - mesh[row][column].x) * a_horizontal + mesh[row][column].y; + double x_vertical_horizontal_bottom = (a_horizontal * mesh[row + 1][column].x + pH_vertical_y - (pH_vertical_x * a_vertical) - mesh[row + 1][column].y) / (a_horizontal - a_vertical); + double y_vertical_horizontal_bottom = (x_vertical_horizontal_bottom - mesh[row + 1][column].x) * a_horizontal + mesh[row + 1][column].y; + + double x_horizontal_horizontal = (a_horizontal * mesh[row][column].x + pH_horizontal_y - (pH_horizontal_x * a_vertical) - mesh[row][column].y) / (a_horizontal - a_vertical); + double y_horizontal_horizontal = (x_horizontal_horizontal - mesh[row][column].x) * a_horizontal + mesh[row][column].y; + + double x_horizontal_vertical_left = (a_vertical * mesh[row][column].x + pH_horizontal_y - (pH_horizontal_x * a_horizontal) - mesh[row][column].y) / (a_vertical - a_horizontal); + double y_horizontal_vertical_left = (x_horizontal_vertical_left - mesh[row][column].x) * a_vertical + mesh[row][column].y; + double x_horizontal_vertical_right = (a_vertical * mesh[row][column + 1].x + pH_horizontal_y - (pH_horizontal_x * a_horizontal) - mesh[row][column + 1].y) / (a_vertical - a_horizontal); + double y_horizontal_vertical_right = (x_horizontal_vertical_right - mesh[row][column + 1].x) * a_vertical + mesh[row][column + 1].y; + + double on_screen_pH_vertical_vertical = sqrt(pow(pH_vertical_x - x_vertical_vertical, 2) + pow(pH_vertical_y - y_vertical_vertical, 2)); + double on_screen_pH_vertical_horizontal_top = sqrt(pow(pH_vertical_x - x_vertical_horizontal_top, 2) + pow(pH_vertical_y - y_vertical_horizontal_top, 2)); + double on_screen_pH_vertical_horizontal_bottom = sqrt(pow(pH_vertical_x - x_vertical_horizontal_bottom, 2) + pow(pH_vertical_y - y_vertical_horizontal_bottom, 2)); + double on_screen_pH_horizontal_horizontal = sqrt(pow(pH_horizontal_x - x_horizontal_horizontal, 2) + pow(pH_horizontal_y - y_horizontal_horizontal, 2)); + double on_screen_pH_horizontal_vertical_left = sqrt(pow(pH_horizontal_x - x_horizontal_vertical_left, 2) + pow(pH_horizontal_y - y_horizontal_vertical_left, 2)); + double on_screen_pH_horizontal_vertical_right = sqrt(pow(pH_horizontal_x - x_horizontal_vertical_right, 2) + pow(pH_horizontal_y - y_horizontal_vertical_right, 2)); + + double on_texture_pH_vertical_vertical = on_screen_pH_vertical_vertical / AC_horizontal * dTx; + double on_texture_pH_vertical_horizontal_top = on_screen_pH_vertical_horizontal_top / AB_vertical * dTy; + double on_texture_pH_vertical_horizontal_bottom = on_screen_pH_vertical_horizontal_bottom / AB_vertical * dTy; + double on_texture_pH_horizontal_horizontal = on_screen_pH_horizontal_horizontal / AB_vertical * dTy; + double on_texture_pH_horizontal_vertical_left = on_screen_pH_horizontal_vertical_left / AC_horizontal * dTx; + double on_texture_pH_horizontal_vertical_right = on_screen_pH_horizontal_vertical_right / AC_horizontal * dTx; + + double x_texture_to_screen_vertical_ratio = abs(pH_vertical_to_A) < 1.0 ? 0.0 : sqrt(pow(on_texture_pH_vertical_vertical, 2) + pow(on_texture_pH_vertical_horizontal_top, 2)) / abs(pH_vertical_to_A); + double y_texture_to_screen_vertical_ratio = abs(pH_vertical_to_B) < 1.0 ? 0.0 : sqrt(pow(on_texture_pH_vertical_vertical, 2) + pow(on_texture_pH_vertical_horizontal_bottom, 2)) / abs(pH_vertical_to_B); + double x_texture_to_screen_horizontal_ratio = abs(pH_horizontal_to_A) < 1.0 ? 0.0 : sqrt(pow(on_texture_pH_horizontal_horizontal, 2) + pow(on_texture_pH_horizontal_vertical_left, 2)) / abs(pH_horizontal_to_A); + double y_texture_to_screen_horizontal_ratio = abs(pH_horizontal_to_C) < 1.0 ? 0.0 : sqrt(pow(on_texture_pH_horizontal_horizontal, 2) + pow(on_texture_pH_horizontal_vertical_right, 2)) / abs(pH_horizontal_to_C); + + double delta = 0.5 * std::max(std::max(x_texture_to_screen_horizontal_ratio, y_texture_to_screen_horizontal_ratio), std::max(x_texture_to_screen_vertical_ratio, y_texture_to_screen_vertical_ratio)); + double mip_level = std::min(3.0, std::max(log2(delta), 0.0)); + + + mip_table[row][column].mip_level = static_cast(mip_level); + mip_table[row][column].on_screen = mesh[row][column].on_screen && mesh[row + 1][column].on_screen && mesh[row][column + 1].on_screen; + //mipTableFile << std::left << std::setprecision(3) << std::setw(4) << std::setfill('0') << mip_level << "\t"; + } + //mipTableFile << std::endl; + } + //mipTableFile.close(); +} + + +void sparse_image::create_vertex_buffer() +{ + std::array vertices; + size_t vertices_size = sizeof(vertices[0]) * vertices.size(); + + vertices[0].norm = {-1.0f, -1.0f}; + vertices[1].norm = { 1.0f, -1.0f}; + vertices[2].norm = { 1.0f, 1.0f}; + vertices[3].norm = {-1.0f, 1.0f}; + + vertices[0].uv = {0.0f, 0.0f}; + vertices[1].uv = {1.0f, 0.0f}; + vertices[2].uv = {1.0f, 1.0f}; + vertices[3].uv = {0.0f, 1.0f}; + + struct SimpleBuffer staging_buffer {}; + staging_buffer.buffer = get_device().create_buffer(VK_BUFFER_USAGE_TRANSFER_SRC_BIT, VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT | VK_MEMORY_PROPERTY_HOST_COHERENT_BIT, vertices_size, &staging_buffer.memory, vertices.data()); + vertex_buffer.buffer = get_device().create_buffer(VK_BUFFER_USAGE_TRANSFER_DST_BIT | VK_BUFFER_USAGE_VERTEX_BUFFER_BIT, VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT, vertices_size, &vertex_buffer.memory, nullptr); + + VkCommandBuffer command_buffer = get_device().create_command_buffer(VK_COMMAND_BUFFER_LEVEL_PRIMARY, true); + + VkBufferCopy copy_buffer_info{}; + copy_buffer_info.srcOffset = 0; + copy_buffer_info.dstOffset = 0; + copy_buffer_info.size = vertices_size; + + vkCmdCopyBuffer(command_buffer, staging_buffer.buffer, vertex_buffer.buffer, 1, ©_buffer_info); + device->flush_command_buffer(command_buffer, queue, true); + + vkDestroyBuffer(get_device().get_handle(), staging_buffer.buffer, nullptr); + vkFreeMemory(get_device().get_handle(), staging_buffer.memory, nullptr); +} + +void sparse_image::create_index_buffer() +{ + std::array indices = {0, 1, 2, 2, 3, 0}; + size_t indices_size = sizeof(indices[0]) * indices.size(); + + VkDeviceSize bufferSize = sizeof(indices[0]) * indices.size(); + + struct SimpleBuffer staging_buffer {}; + staging_buffer.buffer = get_device().create_buffer(VK_BUFFER_USAGE_TRANSFER_SRC_BIT, VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT | VK_MEMORY_PROPERTY_HOST_COHERENT_BIT, indices_size, &staging_buffer.memory, indices.data()); + index_buffer.buffer = get_device().create_buffer(VK_BUFFER_USAGE_TRANSFER_DST_BIT | VK_BUFFER_USAGE_INDEX_BUFFER_BIT, VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT, indices_size, &index_buffer.memory, nullptr); + index_buffer.num_elements = indices.size(); + VkCommandBuffer command_buffer = get_device().create_command_buffer(VK_COMMAND_BUFFER_LEVEL_PRIMARY, true); + + VkBufferCopy copy_buffer_info{}; + copy_buffer_info.srcOffset = 0; + copy_buffer_info.dstOffset = 0; + copy_buffer_info.size = indices_size; + + vkCmdCopyBuffer(command_buffer, staging_buffer.buffer, index_buffer.buffer, 1, ©_buffer_info); + device->flush_command_buffer(command_buffer, queue, true); + + vkDestroyBuffer(get_device().get_handle(), staging_buffer.buffer, nullptr); + vkFreeMemory(get_device().get_handle(), staging_buffer.memory, nullptr); +} + + +/** + * @fn void sparse_image::create_descriptor_pool() + * @brief Creating descriptor pool with size adjusted to use uniform buffer and image sampler + */ +void sparse_image::create_descriptor_pool() +{ + std::array pool_sizes = { + vkb::initializers::descriptor_pool_size(VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER, 1), + vkb::initializers::descriptor_pool_size(VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, 1), + }; + + VkDescriptorPoolCreateInfo pool_info = + vkb::initializers::descriptor_pool_create_info( + static_cast(pool_sizes.size()), + pool_sizes.data(), + 1); + + VK_CHECK(vkCreateDescriptorPool(get_device().get_handle(), &pool_info, VK_NULL_HANDLE, &descriptor_pool)); +} + +/** + * @fn void sparse_image::setup_descriptor_set_layout() + * @brief Creating layout for descriptor sets + */ +void sparse_image::create_descriptor_set_layout() +{ + std::array 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), + }; + + VkDescriptorSetLayoutCreateInfo set_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(), &set_layout_create_info, VK_NULL_HANDLE, &descriptor_set_layout)); +} + +/** + * @fn void sparse_image::create_descriptor_sets() + * @brief Creating both descriptor set: + * 1. Uniform buffer + * 2. Image sampler + */ +void sparse_image::create_descriptor_sets() +{ + VkDescriptorSetAllocateInfo set_alloc_info = + vkb::initializers::descriptor_set_allocate_info( + descriptor_pool, + &descriptor_set_layout, + 1); + + VK_CHECK(vkAllocateDescriptorSets(get_device().get_handle(), &set_alloc_info, &descriptor_set)); + + VkDescriptorBufferInfo descriptor_buffer_info{}; + descriptor_buffer_info.buffer = mvp_buffer.buffer; + descriptor_buffer_info.offset = 0; + descriptor_buffer_info.range = sizeof(struct MVP); + + VkDescriptorImageInfo image_info{}; + image_info.imageLayout = VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL; + image_info.imageView = virtual_texture.texture_image_view; + image_info.sampler = texture_sampler; + + std::array write_descriptor_sets = { + vkb::initializers::write_descriptor_set( + descriptor_set, + VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER, + 0U, + &descriptor_buffer_info, + 1U), + vkb::initializers::write_descriptor_set( + descriptor_set, + VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, + 1U, + &image_info, + 1U)}; + + vkUpdateDescriptorSets(get_device().get_handle(), static_cast(write_descriptor_sets.size()), write_descriptor_sets.data(), 0, nullptr); +} + + +void sparse_image::create_uniform_buffer() +{ + VkDeviceSize buffer_size = sizeof(struct MVP); + mvp_buffer.buffer = get_device().create_buffer(VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT, VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT | VK_MEMORY_PROPERTY_HOST_COHERENT_BIT, buffer_size, &mvp_buffer.memory, nullptr); + vkMapMemory(get_device().get_handle(), mvp_buffer.memory, 0, buffer_size, 0, &mvp_buffer.mapped_memory); +} + +void sparse_image::create_texture_sampler() +{ + VkSamplerCreateInfo sampler_info = vkb::initializers::sampler_create_info(); + + sampler_info.magFilter = VK_FILTER_LINEAR; + sampler_info.minFilter = VK_FILTER_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; + + VkPhysicalDeviceProperties properties{}; + vkGetPhysicalDeviceProperties(device->get_gpu().get_handle(), &properties); + + sampler_info.anisotropyEnable = VK_TRUE; + sampler_info.maxAnisotropy = properties.limits.maxSamplerAnisotropy; + sampler_info.borderColor = VK_BORDER_COLOR_INT_OPAQUE_BLACK; + sampler_info.unnormalizedCoordinates = VK_FALSE; + sampler_info.compareEnable = VK_FALSE; + sampler_info.compareOp = VK_COMPARE_OP_ALWAYS; + sampler_info.mipmapMode = VK_SAMPLER_MIPMAP_MODE_NEAREST; + sampler_info.mipLodBias = 0.0f; + sampler_info.minLod = static_cast(virtual_texture.base_mip_level); + sampler_info.maxLod = static_cast(virtual_texture.mip_levels - 1U); + + VK_CHECK(vkCreateSampler(get_device().get_handle(), &sampler_info, nullptr, &texture_sampler)); +} + + +/** + * @fn void sparse_image::request_gpu_features(vkb::PhysicalDevice &gpu) + * @brief Enabling features + */ +void sparse_image::request_gpu_features(vkb::PhysicalDevice &gpu) +{ + gpu.get_mutable_requested_features().samplerAnisotropy = VK_TRUE; + gpu.get_mutable_requested_features().sparseBinding = VK_TRUE; + gpu.get_mutable_requested_features().sparseResidencyImage2D = VK_TRUE; +} + + +void sparse_image::create_sparse_texture_image() +{ + // Creating an Image + VkImageCreateInfo sparse_image_create_info = vkb::initializers::image_create_info(); + sparse_image_create_info.imageType = VK_IMAGE_TYPE_2D; + + sparse_image_create_info.extent.width = static_cast(virtual_texture.width); + sparse_image_create_info.extent.height = static_cast(virtual_texture.height); + sparse_image_create_info.extent.depth = 1; + + virtual_texture.base_mip_level = 0U; + virtual_texture.mip_levels = 4U; + + sparse_image_create_info.mipLevels = virtual_texture.mip_levels; + sparse_image_create_info.arrayLayers = 1; + + sparse_image_create_info.flags = VK_IMAGE_CREATE_SPARSE_BINDING_BIT | VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT; + sparse_image_create_info.format = VK_FORMAT_R8G8B8A8_SRGB; + sparse_image_create_info.tiling = VK_IMAGE_TILING_OPTIMAL; + sparse_image_create_info.initialLayout = VK_IMAGE_LAYOUT_UNDEFINED; + sparse_image_create_info.usage = VK_IMAGE_USAGE_TRANSFER_DST_BIT | VK_IMAGE_USAGE_TRANSFER_SRC_BIT | VK_IMAGE_USAGE_SAMPLED_BIT; + sparse_image_create_info.samples = VK_SAMPLE_COUNT_1_BIT; + sparse_image_create_info.sharingMode = VK_SHARING_MODE_EXCLUSIVE; + + VK_CHECK(vkCreateImage(get_device().get_handle(), &sparse_image_create_info, nullptr, &virtual_texture.texture_image)); + + //================================================================================================== + // Calculating memory dependencies and defining total number of pages and page size + + std::vector sparse_image_format_properties; + std::vector sparse_image_memory_requirements; + VkMemoryRequirements mem_requirements; + + uint32_t property_count; + uint32_t memory_req_count; + + vkGetPhysicalDeviceSparseImageFormatProperties(device->get_gpu().get_handle(), VK_FORMAT_R8G8B8A8_SRGB, VK_IMAGE_TYPE_2D, VK_SAMPLE_COUNT_1_BIT, VK_IMAGE_USAGE_TRANSFER_DST_BIT | VK_IMAGE_USAGE_TRANSFER_SRC_BIT | VK_IMAGE_USAGE_SAMPLED_BIT, VK_IMAGE_TILING_OPTIMAL, &property_count, nullptr); + sparse_image_format_properties.resize(property_count); + vkGetPhysicalDeviceSparseImageFormatProperties(device->get_gpu().get_handle(), VK_FORMAT_R8G8B8A8_SRGB, VK_IMAGE_TYPE_2D, VK_SAMPLE_COUNT_1_BIT, VK_IMAGE_USAGE_TRANSFER_DST_BIT | VK_IMAGE_USAGE_TRANSFER_SRC_BIT | VK_IMAGE_USAGE_SAMPLED_BIT, VK_IMAGE_TILING_OPTIMAL, &property_count, sparse_image_format_properties.data()); + + vkGetImageSparseMemoryRequirements(get_device().get_handle(), virtual_texture.texture_image, &memory_req_count, nullptr); + sparse_image_memory_requirements.resize(memory_req_count); + vkGetImageSparseMemoryRequirements(get_device().get_handle(), virtual_texture.texture_image, &memory_req_count, sparse_image_memory_requirements.data()); + + vkGetImageMemoryRequirements(get_device().get_handle(), virtual_texture.texture_image, &mem_requirements); + + virtual_texture.format_properties = sparse_image_format_properties[0]; + virtual_texture.memory_sparse_requirements = sparse_image_memory_requirements[0]; + virtual_texture.mem_requirements = mem_requirements; + + virtual_texture.page_size = virtual_texture.format_properties.imageGranularity.height * virtual_texture.format_properties.imageGranularity.width * 4U; + virtual_texture.single_page_buffer.buffer = get_device().create_buffer(VK_BUFFER_USAGE_TRANSFER_SRC_BIT, VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT | VK_MEMORY_PROPERTY_HOST_COHERENT_BIT, virtual_texture.page_size, &virtual_texture.single_page_buffer.memory, nullptr); + vkMapMemory(get_device().get_handle(), virtual_texture.single_page_buffer.memory, 0, virtual_texture.page_size, 0, &virtual_texture.single_page_buffer.mapped_memory); + + // calculate page size + virtual_texture.page_size = sparse_image_format_properties[0].imageGranularity.depth * sparse_image_format_properties[0].imageGranularity.height * sparse_image_format_properties[0].imageGranularity.width * 4U; + + // calculate total number of pages + size_t num_total_pages = 0U; + size_t current_mip_height = virtual_texture.height; + size_t current_mip_width = virtual_texture.width; + + virtual_texture.mip_properties.resize(virtual_texture.mip_levels); + + for (uint32_t mip_level = 0U; mip_level < virtual_texture.mip_levels; mip_level++) + { + size_t numRows = current_mip_height / sparse_image_format_properties[0].imageGranularity.height; + size_t numColumns = current_mip_width / sparse_image_format_properties[0].imageGranularity.width; + + if (current_mip_height % sparse_image_format_properties[0].imageGranularity.height) + { + numRows++; + } + if (current_mip_width % sparse_image_format_properties[0].imageGranularity.width) + { + numColumns++; + } + + num_total_pages += numRows * numColumns; + + virtual_texture.mip_properties[mip_level].width = current_mip_width; + virtual_texture.mip_properties[mip_level].height = current_mip_height; + virtual_texture.mip_properties[mip_level].num_columns = numColumns; + virtual_texture.mip_properties[mip_level].num_rows = numRows; + virtual_texture.mip_properties[mip_level].num_blocks = numRows * numColumns; + virtual_texture.mip_properties[mip_level].block_base_index = mip_level > 0 ? virtual_texture.mip_properties[mip_level - 1].block_base_index + virtual_texture.mip_properties[mip_level - 1].num_blocks : 0U; + + if (current_mip_height > 1) + { + current_mip_height /= 2U; + } + if (current_mip_width > 1) + { + current_mip_width /= 2U; + } + } + + virtual_texture.width = virtual_texture.mip_properties[0].width; + virtual_texture.height = virtual_texture.mip_properties[0].height; + + virtual_texture.current_mip_table.resize(on_screen_num_vertical_blocks); + virtual_texture.new_mip_table.resize(on_screen_num_vertical_blocks); + + + for (size_t y = 0U; y < on_screen_num_vertical_blocks; y++) + { + virtual_texture.current_mip_table[y].resize(on_screen_num_horizontal_blocks); + virtual_texture.new_mip_table[y].resize(on_screen_num_horizontal_blocks); + + for (size_t x = 0U; x < on_screen_num_horizontal_blocks; x++) + { + virtual_texture.current_mip_table[y][x].mip_level = 0xFF; + virtual_texture.current_mip_table[y][x].on_screen = false; + + virtual_texture.new_mip_table[y][x].mip_level = 0x00; + virtual_texture.new_mip_table[y][x].on_screen = false; + } + } + + virtual_texture.num_pages = num_total_pages; + virtual_texture.page_table.resize(num_total_pages); + + VkMemoryAllocateInfo memory_allocate_info{}; + memory_allocate_info.sType = VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO; + memory_allocate_info.allocationSize = virtual_texture.page_size * virtual_texture.mip_properties[0].num_blocks * 1.5; //TODO + memory_allocate_info.memoryTypeIndex = get_device().get_memory_type(virtual_texture.mem_requirements.memoryTypeBits, VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT); + + for (size_t i = 0U; i < (virtual_texture.mip_properties[0].num_blocks * 1.5); i++) + { + virtual_texture.available_memory_index_list.push_back(i); + } + + VK_CHECK(vkAllocateMemory(get_device().get_handle(), &memory_allocate_info, nullptr, &virtual_texture.texture_memory)); + + //================================================================================================== + // Creating texture image view + + VkImageViewCreateInfo view_info = vkb::initializers::image_view_create_info(); + view_info.image = virtual_texture.texture_image; + view_info.viewType = VK_IMAGE_VIEW_TYPE_2D; + view_info.format = VK_FORMAT_R8G8B8A8_SRGB; + view_info.subresourceRange.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT; + view_info.subresourceRange.baseMipLevel = virtual_texture.base_mip_level; + view_info.subresourceRange.levelCount = virtual_texture.mip_levels; + view_info.subresourceRange.baseArrayLayer = 0; + view_info.subresourceRange.layerCount = 1; + + VK_CHECK(vkCreateImageView(get_device().get_handle(), &view_info, nullptr, &virtual_texture.texture_image_view)); +} + +void sparse_image::view_changed() +{ + //process_camera_change(); +} diff --git a/samples/extensions/sparse_image/sparse_image.h b/samples/extensions/sparse_image/sparse_image.h new file mode 100644 index 0000000000..5e7390981b --- /dev/null +++ b/samples/extensions/sparse_image/sparse_image.h @@ -0,0 +1,245 @@ +/* Copyright (c) 2023, Mobica Limited + * + * 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" + +size_t const ON_SCREEN_HORIZONTAL_BLOCKS = 100; +size_t const ON_SCREEN_VERTICAL_BLOCKS = 80; +double const FOV_DEGREES = 60.0; +double const MIP_LEVEL_MARGIN = 0.3; + +class sparse_image : public ApiVulkanSample +{ + public: + + struct MVP + { + alignas(16) glm::mat4 model; + alignas(16) glm::mat4 view; + alignas(16) glm::mat4 proj; + }; + + struct SimpleBuffer + { + VkBuffer buffer; + VkDeviceMemory memory; + void *mapped_memory; + size_t num_elements; + size_t size; + }; + + struct SimpleVertex + { + glm::vec2 norm; + glm::vec2 uv; + }; + + struct MipProperties + { + size_t num_rows; + size_t num_columns; + size_t num_blocks; + size_t block_base_index; + size_t width; + size_t height; + }; + + struct TextureBlock + { + uint32_t row; + uint32_t column; + double old_mip_level; + double new_mip_level; + bool on_screen; + }; + + struct MemPageDescription + { + size_t x; + size_t y; + uint8_t mip_level; + }; + + struct PageTable + { + bool bound; + bool gen_mip_required; + size_t memory_index; + std::list> render_required_list; + }; + + struct Point + { + double x; + double y; + bool on_screen; + }; + + struct MipBlock + { + double mip_level; + bool on_screen; + }; + + struct VirtualTexture + { + VkImage texture_image; + VkImageView texture_image_view; + VkDeviceMemory texture_memory; + + std::unique_ptr row_data_image; + + struct SimpleBuffer single_page_buffer; + + + std::list available_memory_index_list; + + // dimensions + size_t width; + size_t height; + + // number of virtual pages (what if the total image was allocated) + size_t num_pages; + size_t page_size; + + // table that includes data on which page is allocated to what memory block from the textureMemory vector. + std::vector page_table; + + // list containing information which pages from the virtual should be bound + std::list bind_list; + + // list containing information which pages should be freed (present but not required or required for mip generation) + std::list free_list; + + bool update_required = false; + + // sparse image - related format and memory properties + VkSparseImageFormatProperties format_properties; + VkSparseImageMemoryRequirements memory_sparse_requirements; + VkMemoryRequirements mem_requirements; + + std::vector> current_mip_table; + std::vector> new_mip_table; + std::list texture_block_update_list; + + uint8_t base_mip_level; + uint8_t mip_levels; + + std::vector mip_properties; + }; + + + + + struct CalculateEdgeData + { + std::array vertices; + bool is_vertical; + + uint32_t xy_num_blocks; + uint32_t xy_extent[2]; + + std::vector xy_edge_coords; + + CalculateEdgeData(bool is_Vertical, uint32_t num_blocks, VkExtent2D extent_2D, glm::vec4 A, glm::vec4 B); + void calculate_edge_coordinates(); + }; + + struct CalculateMipLevelData + { + std::array edge_data; + std::vector> mesh; + std::vector> mip_table; + std::vector ax_vertical; + std::vector ax_horizontal; + + VkExtent2D texture_base_dim; + + CalculateMipLevelData(std::array &edge_data, VkExtent2D texture_base_dim); + void calculate_mesh_coordinates(); + void calculate_mip_levels(); + }; + + struct VirtualTexture virtual_texture; + + struct SimpleBuffer vertex_buffer; + struct SimpleBuffer index_buffer; + struct SimpleBuffer mvp_buffer; + + VkPipeline sample_pipeline{}; + VkPipelineLayout sample_pipeline_layout{}; + + VkDescriptorSetLayout descriptor_set_layout; + VkDescriptorSet descriptor_set; + VkSampler texture_sampler; + + size_t on_screen_num_vertical_blocks = ON_SCREEN_VERTICAL_BLOCKS; + size_t on_screen_num_horizontal_blocks = ON_SCREEN_HORIZONTAL_BLOCKS; + double fov_degrees = FOV_DEGREES; + double mip_level_margin = MIP_LEVEL_MARGIN; + + + sparse_image(); + virtual ~sparse_image(); + void cleanup_simple_buffer(struct SimpleBuffer &simple_buffer); + + void setup_camera(); + void load_assets(); + void process_camera_change(); + + void prepare_pipelines(); + + void create_vertex_buffer(); + void create_index_buffer(); + + void create_uniform_buffer(); + void create_texture_sampler(); + + void create_descriptor_set_layout(); + void create_descriptor_pool(); + void create_descriptor_sets(); + + void create_sparse_texture_image(); + + struct MemPageDescription get_mem_page_description(size_t memory_index); + void calculate_mips_table(std::array vertices, uint32_t numVerticalBlocks, uint32_t numHorizontalBlocks, std::vector> &mipTable); + void compare_mips_table(); + void calculate_required_memory_layout(); + void get_associated_memory_blocks(const TextureBlock &on_screen_block); + void get_memory_dependency_for_the_block(size_t column, size_t row, uint8_t mip_level, std::list &index_list); + void check_mip_page_requirements(std::list &mipgen_required_list, struct MemPageDescription mip_dependency); + void bind_sparse_image(); + void separate_single_row_data_block(uint8_t buffer[], const VkExtent2D blockDim, VkOffset2D offset, size_t stride); + void end_single_time_commands(VkCommandBuffer command_buffer); + VkCommandBuffer begin_single_time_command(); + void generate_mips(); + void transitionImageLayout(VkImage image, VkImageLayout old_layout, VkImageLayout new_layout); + + uint32_t get_mip_level(size_t page_index); + + + // Override basic framework functionality + void build_command_buffers() override; + void render(float delta_time) override; + void view_changed() override; + bool prepare(const vkb::ApplicationOptions &options) override; + void request_gpu_features(vkb::PhysicalDevice &gpu) override; +}; + +std::unique_ptr create_sparse_image(); diff --git a/shaders/sparse_image/shader.frag b/shaders/sparse_image/shader.frag new file mode 100644 index 0000000000..5fdc8d4e19 --- /dev/null +++ b/shaders/sparse_image/shader.frag @@ -0,0 +1,44 @@ +#version 450 + +layout(binding = 1) uniform sampler2D texSampler; + +layout(location = 0) in vec2 fragTexCoord; + +layout(location = 0) out vec4 outColor; + +float getMipLevel(in vec2 texCoord) +{ + vec2 dT_dx = dFdxFine(texCoord); + vec2 dT_dy = dFdyFine(texCoord); + float delta = 0.5 * max(sqrt(pow(dT_dx[0],2) + pow(dT_dx[1],2)), sqrt(pow(dT_dy[0],2) + pow(dT_dy[1],2))); + float mipLevel = log2(delta); + return max( 0, mipLevel ); +} + +void main() { + + float mipLevel = getMipLevel(fragTexCoord * textureSize(texSampler, 0)) - 0.5; + + outColor = textureLod(texSampler, fragTexCoord, mipLevel); + //outColor = texture(texSampler, fragTexCoord); + if (mipLevel < 0.5f) { + outColor.r = 1.0f; + } else if (mipLevel < 1.5f) { + outColor.g = 1.0f; + } else if (mipLevel < 2.5f) { + outColor.r = 1.0f; + outColor.g = 1.0f; + } else if (mipLevel < 3.5f) { + outColor.b = 1.0f; + } else if (mipLevel < 4.5f) { + outColor.b = 1.0f; + outColor.r = 1.0f; + } else if (mipLevel < 5.5f) { + outColor.b = 1.0f; + outColor.g = 1.0f; + } else if (mipLevel < 6.5f) { + outColor.b = 1.0f; + outColor.g = 1.0f; + outColor.r = 1.0f; + } +} \ No newline at end of file diff --git a/shaders/sparse_image/shader.vert b/shaders/sparse_image/shader.vert new file mode 100644 index 0000000000..56110179ba --- /dev/null +++ b/shaders/sparse_image/shader.vert @@ -0,0 +1,18 @@ +#version 450 + +layout(binding = 0) uniform UniformBufferObject { + mat4 model; + mat4 view; + mat4 proj; +} ubo; + +layout(location = 0) in vec2 inPosition; +layout(location = 1) in vec2 inTexCoord; + +layout(location = 0) out vec2 fragTexCoord; + + +void main() { + gl_Position = ubo.proj * ubo.view * ubo.model * vec4(inPosition, 0.0, 1.0); + fragTexCoord = inTexCoord; +} \ No newline at end of file From 59c5386e877fd4e538da27a6b13d4541b46379f7 Mon Sep 17 00:00:00 2001 From: Grzegorz Smagacz Date: Wed, 9 Aug 2023 21:50:22 +0200 Subject: [PATCH 02/21] MAJOR: removed entirely mesh calculation based on the trigonometric model. Instead, whole mesh is calculated using MVP transformation matrix which makes calculations way more trouble-proof. MINOR: some quick changes, using already written wrappers for some functionalities, and adding some descriptions here and there. --- .../extensions/sparse_image/CMakeLists.txt | 6 +- samples/extensions/sparse_image/README.md | 2 +- .../extensions/sparse_image/sparse_image.cpp | 544 +++++------------- .../extensions/sparse_image/sparse_image.h | 56 +- shaders/sparse_image/shader.vert | 18 - .../sparse_image/{shader.frag => sparse.frag} | 19 +- shaders/sparse_image/sparse.vert | 35 ++ 7 files changed, 212 insertions(+), 468 deletions(-) delete mode 100644 shaders/sparse_image/shader.vert rename shaders/sparse_image/{shader.frag => sparse.frag} (65%) create mode 100644 shaders/sparse_image/sparse.vert diff --git a/samples/extensions/sparse_image/CMakeLists.txt b/samples/extensions/sparse_image/CMakeLists.txt index 00df27fc6c..d8005c1ee1 100644 --- a/samples/extensions/sparse_image/CMakeLists.txt +++ b/samples/extensions/sparse_image/CMakeLists.txt @@ -24,7 +24,7 @@ add_sample( CATEGORY ${CATEGORY_NAME} AUTHOR "Mobica" NAME "sparse_image" - DESCRIPTION "Sample description" + DESCRIPTION "This sample is showcasing the potential usage of the sparse-image-binding and sparse-image-residency features. It works with the concept of Virtual Textures, allowing textures to be rendered without being entirely allocated in the memory." SHADER_FILES_GLSL - "shader.vert" - "shader.frag") + "sparse_image/sparse.vert" + "sparse_image/sparse.frag") diff --git a/samples/extensions/sparse_image/README.md b/samples/extensions/sparse_image/README.md index c1ea6a13ad..e70f6bd8af 100644 --- a/samples/extensions/sparse_image/README.md +++ b/samples/extensions/sparse_image/README.md @@ -1,5 +1,5 @@ - +# Sparse image - +# Enabling features -# Overview +There are 3 features to be enabled: +- sparseBinding; +- sparseResidencyImage2D; +- shaderResourceResidency; - +First two, are the key features required for the usage of the sparse image resources. +The last one - shaderResourceResidency, is required for the fragment shader to be able to detect which parts of the image are allocated in the memory. - +``` +lod += 1; +for(; (lod <= maxLOD) && !sparseTexelsResidentARB(residencyCode); lod += 1) +{ + residencyCode = sparseTextureLodARB(texSampler, fragTexCoord, lod, color); + ... +} +``` # Conclusion - B) and - * describes the edge from Ph to the vertical edge / describes the edge from the Ph to the horizontal top edge. + * - IMPORTANT: I assume that: + * - each block is a parallelogram which is obviously not 1:1 true, but the more precise we get (the more blocks we split the texture into) the more accurate this statement is. + * - the image is not "stretched' within a single block, which has the same rules as stated above. + * + * With those assumption, I'm providing a parralel lines from the Ph point to the corresponding edges. This creates an another parrallelogram. * - * Assuming that the image is not stretched within a single block, I calculate the ratio of for example (verticalVertical / AtoB) or (verticalHorizontalTop / AtoC). - * I know, that each parrallelogram on-screen corresponds to the fixed-size rectangular on-texture. Given the ratio I calculated I can just get calculate the on-texture step in texels from the right-triangle property - * and compare it to the x or y step of vertical/horizontal step in pixels on-screen. + * Variables named: ..vertical_vertical.. or ..vertical_horizontal_top.. should be understood as: + * This relates to the vertical step (from A --> B) and describes (the edge from pH to the corresponding vertical edge) or (describes the edge from the pH to the corresponding horizontal-top edge). * + * Assuming that the image is not stretched within a single block, I calculate the ratio of for example (...vertical_vertical... / AB_vertical) or (...vertical_horizontal_top... / AC_horizontal). + * I know, that each parrallelogram on-screen corresponds to the fixed-size rectangular on-texture. Given the ratio I calculated I can just get calculate the on-texture step in texels from the right-triangle property and compare it to the x or y step of vertical/horizontal step in pixels on-screen. */ void SparseImage::CalculateMipLevelData::calculate_mip_levels() { @@ -1043,37 +1044,42 @@ void SparseImage::CalculateMipLevelData::calculate_mip_levels() row.resize(num_columns); } + // Single, on-texture step in texels + double dTu = texture_base_dim.width / (num_columns); + double dTv = texture_base_dim.height / (num_rows); + for (size_t row = 0U; row < num_rows; row += 1U) { for (size_t column = 0U; column < num_columns; column += 1U) { - double dTx = texture_base_dim.width / (num_columns); - double dTy = texture_base_dim.height / (num_rows); - + // Single, on-screen step in pixels double dIx_vertical = mesh[row][column].x - mesh[row + 1][column].x; double dIy_vertical = mesh[row][column].y - mesh[row + 1][column].y; double dIx_horizontal = mesh[row][column].x - mesh[row][column + 1].x; double dIy_horizontal = mesh[row][column].y - mesh[row][column + 1].y; + // On-screen distance between starting node (A) and the enxt horizontal (C) or vertical (B) one double AB_vertical = sqrt(pow(dIx_vertical, 2) + pow(dIy_vertical, 2)); double AC_horizontal = sqrt(pow(dIx_horizontal, 2) + pow(dIy_horizontal, 2)); - double pH_vertical_x, pH_vertical_y, pH_horizontal_x, pH_horizontal_y; - - pH_vertical_x = mesh[row][column].x; - pH_vertical_y = mesh[row + 1][column].y; - pH_horizontal_x = mesh[row][column + 1].x; - pH_horizontal_y = mesh[row][column].y; + // Coordinates of point H + double pH_vertical_x = mesh[row][column].x; + double pH_vertical_y = mesh[row + 1][column].y; + double pH_horizontal_x = mesh[row][column + 1].x; + double pH_horizontal_y = mesh[row][column].y; + // Distance from horizontal and vertical point H, to A and C double pH_vertical_to_A = sqrt(pow(mesh[row][column].x - pH_vertical_x, 2) + pow(mesh[row][column].y - pH_vertical_y, 2)); double pH_vertical_to_B = sqrt(pow(mesh[row + 1][column].x - pH_vertical_x, 2) + pow(mesh[row + 1][column].y - pH_vertical_y, 2)); double pH_horizontal_to_A = sqrt(pow(mesh[row][column].x - pH_horizontal_x, 2) + pow(mesh[row][column].y - pH_horizontal_y, 2)); double pH_horizontal_to_C = sqrt(pow(mesh[row][column + 1].x - pH_horizontal_x, 2) + pow(mesh[row][column + 1].y - pH_horizontal_y, 2)); + // 'a' coefficient of the linear equation ax + b = y double a_vertical = ax_vertical[column]; double a_horizontal = ax_horizontal[row]; + // Coordinates of the point which is the common point of two lines: 1) AtoB or AtoC; 2) The line going through point H, parallel to AtoC or AtoB double x_vertical_vertical = (a_vertical * mesh[row][column].x + pH_vertical_y - (pH_vertical_x * a_horizontal) - mesh[row][column].y) / (a_vertical - a_horizontal); double y_vertical_vertical = (x_vertical_vertical - mesh[row][column].x) * a_vertical + mesh[row][column].y; @@ -1090,6 +1096,7 @@ void SparseImage::CalculateMipLevelData::calculate_mip_levels() double x_horizontal_vertical_right = (a_vertical * mesh[row][column + 1].x + pH_horizontal_y - (pH_horizontal_x * a_horizontal) - mesh[row][column + 1].y) / (a_vertical - a_horizontal); double y_horizontal_vertical_right = (x_horizontal_vertical_right - mesh[row][column + 1].x) * a_vertical + mesh[row][column + 1].y; + // On-screen distances from point H (vertical and horizontal) to the corresponding points calculated above double on_screen_pH_vertical_vertical = sqrt(pow(pH_vertical_x - x_vertical_vertical, 2) + pow(pH_vertical_y - y_vertical_vertical, 2)); double on_screen_pH_vertical_horizontal_top = sqrt(pow(pH_vertical_x - x_vertical_horizontal_top, 2) + pow(pH_vertical_y - y_vertical_horizontal_top, 2)); double on_screen_pH_vertical_horizontal_bottom = sqrt(pow(pH_vertical_x - x_vertical_horizontal_bottom, 2) + pow(pH_vertical_y - y_vertical_horizontal_bottom, 2)); @@ -1097,18 +1104,21 @@ void SparseImage::CalculateMipLevelData::calculate_mip_levels() double on_screen_pH_horizontal_vertical_left = sqrt(pow(pH_horizontal_x - x_horizontal_vertical_left, 2) + pow(pH_horizontal_y - y_horizontal_vertical_left, 2)); double on_screen_pH_horizontal_vertical_right = sqrt(pow(pH_horizontal_x - x_horizontal_vertical_right, 2) + pow(pH_horizontal_y - y_horizontal_vertical_right, 2)); - double on_texture_pH_vertical_vertical = on_screen_pH_vertical_vertical / AC_horizontal * dTx; - double on_texture_pH_vertical_horizontal_top = on_screen_pH_vertical_horizontal_top / AB_vertical * dTy; - double on_texture_pH_vertical_horizontal_bottom = on_screen_pH_vertical_horizontal_bottom / AB_vertical * dTy; - double on_texture_pH_horizontal_horizontal = on_screen_pH_horizontal_horizontal / AB_vertical * dTy; - double on_texture_pH_horizontal_vertical_left = on_screen_pH_horizontal_vertical_left / AC_horizontal * dTx; - double on_texture_pH_horizontal_vertical_right = on_screen_pH_horizontal_vertical_right / AC_horizontal * dTx; + // On-texture counterparts of distances above + double on_texture_pH_vertical_vertical = on_screen_pH_vertical_vertical / AC_horizontal * dTu; + double on_texture_pH_vertical_horizontal_top = on_screen_pH_vertical_horizontal_top / AB_vertical * dTv; + double on_texture_pH_vertical_horizontal_bottom = on_screen_pH_vertical_horizontal_bottom / AB_vertical * dTv; + double on_texture_pH_horizontal_horizontal = on_screen_pH_horizontal_horizontal / AB_vertical * dTv; + double on_texture_pH_horizontal_vertical_left = on_screen_pH_horizontal_vertical_left / AC_horizontal * dTu; + double on_texture_pH_horizontal_vertical_right = on_screen_pH_horizontal_vertical_right / AC_horizontal * dTu; + // Texel-to-pixel ratios double x_texture_to_screen_vertical_ratio = abs(pH_vertical_to_A) < 1.0 ? 0.0 : sqrt(pow(on_texture_pH_vertical_vertical, 2) + pow(on_texture_pH_vertical_horizontal_top, 2)) / abs(pH_vertical_to_A); double y_texture_to_screen_vertical_ratio = abs(pH_vertical_to_B) < 1.0 ? 0.0 : sqrt(pow(on_texture_pH_vertical_vertical, 2) + pow(on_texture_pH_vertical_horizontal_bottom, 2)) / abs(pH_vertical_to_B); double x_texture_to_screen_horizontal_ratio = abs(pH_horizontal_to_A) < 1.0 ? 0.0 : sqrt(pow(on_texture_pH_horizontal_horizontal, 2) + pow(on_texture_pH_horizontal_vertical_left, 2)) / abs(pH_horizontal_to_A); double y_texture_to_screen_horizontal_ratio = abs(pH_horizontal_to_C) < 1.0 ? 0.0 : sqrt(pow(on_texture_pH_horizontal_horizontal, 2) + pow(on_texture_pH_horizontal_vertical_right, 2)) / abs(pH_horizontal_to_C); + // Using the log2 formula to calculate required mip level double delta = 1.0 * std::max(std::max(x_texture_to_screen_horizontal_ratio, y_texture_to_screen_horizontal_ratio), std::max(x_texture_to_screen_vertical_ratio, y_texture_to_screen_vertical_ratio)); double mip_level = std::min(static_cast(mip_levels - 1U), std::max(log2(delta), 0.0)); @@ -1217,7 +1227,6 @@ void SparseImage::create_descriptor_set_layout() } /** - * @fn void sparse_image::create_descriptor_sets() * @brief Creating both descriptor set: * 1. Uniform buffer * 2. Image sampler @@ -1292,17 +1301,10 @@ void SparseImage::create_texture_sampler() /** - * @fn void sparse_image::request_gpu_features(vkb::PhysicalDevice &gpu) * @brief Enabling features */ void SparseImage::request_gpu_features(vkb::PhysicalDevice &gpu) { - // Enable anisotropic filtering if supported - if (gpu.get_features().samplerAnisotropy) - { - gpu.get_mutable_requested_features().samplerAnisotropy = VK_TRUE; - } - // Enable anisotropic filtering if supported if (gpu.get_features().sparseBinding && gpu.get_features().sparseResidencyImage2D && gpu.get_features().shaderResourceResidency) { gpu.get_mutable_requested_features().sparseBinding = VK_TRUE; @@ -1316,9 +1318,9 @@ void SparseImage::request_gpu_features(vkb::PhysicalDevice &gpu) } - void SparseImage::create_sparse_texture_image() { + //================================================================================================== // Creating an Image VkImageCreateInfo sparse_image_create_info = vkb::initializers::image_create_info(); sparse_image_create_info.imageType = VK_IMAGE_TYPE_2D; @@ -1419,7 +1421,6 @@ void SparseImage::create_sparse_texture_image() virtual_texture.current_mip_table.resize(on_screen_num_vertical_blocks); virtual_texture.new_mip_table.resize(on_screen_num_vertical_blocks); - for (size_t y = 0U; y < on_screen_num_vertical_blocks; y++) { virtual_texture.current_mip_table[y].resize(on_screen_num_horizontal_blocks); @@ -1440,6 +1441,7 @@ void SparseImage::create_sparse_texture_image() virtual_texture.sparse_image_memory_bind.resize(virtual_texture.num_pages); + // Setting the least detailed mip level to be constantly present in the memory (to avoid black spots on the screen) size_t start_index = virtual_texture.mip_properties[virtual_texture.mip_levels - 1].mip_base_page_index; size_t num_pages = virtual_texture.mip_properties[virtual_texture.mip_levels - 1].mip_num_pages; @@ -1448,6 +1450,7 @@ void SparseImage::create_sparse_texture_image() virtual_texture.page_table[page].fixed = true; } + // Setting the data constant data for memory page binding via vkQueueBindSparse() for (size_t page_index = 0U; page_index < virtual_texture.num_pages; page_index++) { uint32_t mipLevel = get_mip_level(page_index); @@ -1467,12 +1470,15 @@ void SparseImage::create_sparse_texture_image() } + //================================================================================================== + // Allocating memory + VkMemoryAllocateInfo memory_allocate_info{}; memory_allocate_info.sType = VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO; - memory_allocate_info.allocationSize = virtual_texture.page_size * virtual_texture.mip_properties[0].mip_num_pages / 3; //TODO + memory_allocate_info.allocationSize = virtual_texture.page_size * virtual_texture.mip_properties[0].mip_num_pages / 2; //TODO: what is the minimum memory required memory_allocate_info.memoryTypeIndex = get_device().get_memory_type(virtual_texture.mem_requirements.memoryTypeBits, VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT); - for (size_t i = 0U; i < (virtual_texture.mip_properties[0].mip_num_pages / 3); i++) + for (size_t i = 0U; i < (virtual_texture.mip_properties[0].mip_num_pages / 2); i++) //TODO: what is the minimum memory required { virtual_texture.available_memory_index_list.push_back(i); } @@ -1494,8 +1500,3 @@ void SparseImage::create_sparse_texture_image() VK_CHECK(vkCreateImageView(get_device().get_handle(), &view_info, nullptr, &virtual_texture.texture_image_view)); } - -void SparseImage::view_changed() -{ - //process_camera_change(); -} diff --git a/samples/extensions/sparse_image/sparse_image.h b/samples/extensions/sparse_image/sparse_image.h index e11ccc26f6..486624e084 100644 --- a/samples/extensions/sparse_image/sparse_image.h +++ b/samples/extensions/sparse_image/sparse_image.h @@ -19,10 +19,9 @@ #include "api_vulkan_sample.h" -size_t const ON_SCREEN_HORIZONTAL_BLOCKS = 50; -size_t const ON_SCREEN_VERTICAL_BLOCKS = 30; -double const FOV_DEGREES = 60.0; -double const MIP_LEVEL_MARGIN = 0.2; +size_t const SPARSE_IMAGE_ON_SCREEN_HORIZONTAL_BLOCKS = 50; +size_t const SPARSE_IMAGE_ON_SCREEN_VERTICAL_BLOCKS = 30; +double const SPARSE_IMAGE_FOV_DEGREES = 60.0; class SparseImage : public ApiVulkanSample { @@ -31,12 +30,10 @@ class SparseImage : public ApiVulkanSample enum Stages { SPARSE_IMAGE_IDLE_STAGE, - SPARSE_IMAGE_CALCULATE_MESH_STAGE, - SPARSE_IMAGE_REQUIRED_MEMORY_LAYOUT_STAGE, - SPARSE_IMAGE_BIND_PAGES_PRE_MIP_GEN_STAGE, - SPARSE_IMAGE_UPDATE_LEVEL0_STAGE, - SPARSE_IMAGE_GENERATE_MIPS_STAGE, - SPARSE_IMAGE_BIND_PAGES_POST_MIP_GEN_STAGE, + SPARSE_IMAGE_CALCULATE_MIPS_TABLE_STAGE, + SPARSE_IMAGE_COMPARE_MIPS_TABLE_STAGE, + SPARSE_IMAGE_PROCESS_TEXTURE_BLOCKS_STAGE, + SPARSE_IMAGE_UPDATE_AND_GENERATE_STAGE, SPARSE_IMAGE_FREE_MEMORY_STAGE, SPARSE_IMAGE_NUM_STAGES, }; @@ -48,15 +45,6 @@ class SparseImage : public ApiVulkanSample alignas(16) glm::mat4 proj; }; - struct SimpleBuffer - { - VkBuffer buffer; - VkDeviceMemory memory; - void *mapped_memory; - size_t num_elements; - size_t size; - }; - struct SimpleVertex { glm::vec2 norm; @@ -91,12 +79,13 @@ class SparseImage : public ApiVulkanSample struct PageTable { - bool bound; - bool valid; - bool gen_mip_required; - bool fixed; - size_t memory_index; - std::list> render_required_list; + bool bound; // bound via vkQueueBindSparse() + bool valid; // bound and contains valid data + bool gen_mip_required; // required for the mip generation + bool fixed; // not freed from the memory at any cases + size_t memory_index; // index from available_memory_index_list corresponding to this page + + std::list> render_required_list; // list holding information on what BLOCKS require this particular memory page to be valid for rendering }; struct Point @@ -118,64 +107,65 @@ class SparseImage : public ApiVulkanSample VkImageView texture_image_view; VkDeviceMemory texture_memory; - std::vector sparse_image_memory_bind; - - std::unique_ptr row_data_image; - - std::unique_ptr single_page_buffer; - - std::list available_memory_index_list; - - // dimensions + // Dimensions size_t width; size_t height; - // number of virtual pages (what if the total image was allocated) + // Number of virtual pages (what if the total image was allocated) size_t num_pages; size_t page_size; - // table that includes data on which page is allocated to what memory block from the textureMemory vector. + uint8_t base_mip_level; + uint8_t mip_levels; + std::vector mip_properties; + + std::vector> current_mip_table; + std::vector> new_mip_table; + + // Image containing a single, most detailed mip, allocated in the CPU memory, coppied to VRAM via stagging buffer single_page_buffer + std::unique_ptr row_data_image; + std::unique_ptr single_page_buffer; + + // Key table that includes data on which page is allocated to what memory block from the textureMemory vector std::vector page_table; - // list containing information which pages from the virtual should be bound + // List containing BLOCKS for which the required mip level has changed or/and its on-screen visibility changed + std::list texture_block_update_list; + + // List containing information which pages from the page_table should be bound std::list bind_list; - // list containing information which pages from the virtual should be updated + // List containing information which pages from the page_table should be updated (either loaded from CPU memory or blitted) std::list update_list; - // list containing information which pages should be freed (present but not required or required for mip generation) + // List containing information which pages should be freed std::list free_list; + // List of available memory pages (whole memory page pool is statically allocated at the beginning) + std::list available_memory_index_list; + bool update_required = false; - // sparse image - related format and memory properties + // Sparse-image-related format and memory properties VkSparseImageFormatProperties format_properties; VkSparseImageMemoryRequirements memory_sparse_requirements; VkMemoryRequirements mem_requirements; - std::vector> current_mip_table; - std::vector> new_mip_table; - std::list texture_block_update_list; - - uint8_t base_mip_level; - uint8_t mip_levels; - - std::vector mip_properties; + std::vector sparse_image_memory_bind; }; - struct CalculateMipLevelData { - std::vector> mesh; - std::vector> mip_table; + std::vector> mesh; + std::vector> mip_table; uint32_t vertical_num_blocks; uint32_t horizontal_num_blocks; uint8_t mip_levels; - std::vector ax_vertical; - std::vector ax_horizontal; + std::vector ax_vertical; + std::vector ax_horizontal; glm::mat4 mvp_transform; @@ -187,7 +177,7 @@ class SparseImage : public ApiVulkanSample void calculate_mip_levels(); }; - enum Stages next_stage; + enum Stages next_stage; struct VirtualTexture virtual_texture; @@ -210,12 +200,11 @@ class SparseImage : public ApiVulkanSample VkDescriptorSet descriptor_set; VkSampler texture_sampler; - size_t on_screen_num_vertical_blocks = ON_SCREEN_VERTICAL_BLOCKS; - size_t on_screen_num_horizontal_blocks = ON_SCREEN_HORIZONTAL_BLOCKS; - double fov_degrees = FOV_DEGREES; - double mip_level_margin = MIP_LEVEL_MARGIN; - + size_t on_screen_num_vertical_blocks = SPARSE_IMAGE_ON_SCREEN_VERTICAL_BLOCKS; + size_t on_screen_num_horizontal_blocks = SPARSE_IMAGE_ON_SCREEN_HORIZONTAL_BLOCKS; + double fov_degrees = SPARSE_IMAGE_FOV_DEGREES; + //================================================================================================== SparseImage(); virtual ~SparseImage(); @@ -242,7 +231,6 @@ class SparseImage : public ApiVulkanSample struct MemPageDescription get_mem_page_description(size_t memory_index); void calculate_mips_table(glm::mat4 mvp_transform, uint32_t numVerticalBlocks, uint32_t numHorizontalBlocks, std::vector> &mipTable); void compare_mips_table(); - void calculate_required_memory_layout(); void process_texture_block(const TextureBlock &on_screen_block); void get_memory_dependency_for_the_block(size_t column, size_t row, uint8_t mip_level, std::list &index_list); void check_mip_page_requirements(std::list &mipgen_required_list, struct MemPageDescription mip_dependency); @@ -252,10 +240,9 @@ class SparseImage : public ApiVulkanSample uint8_t get_mip_level(size_t page_index); size_t get_memory_index(struct MemPageDescription mem_page_desc); - // Override basic framework functionality + // Override basic framework functionalities void build_command_buffers() override; void render(float delta_time) override; - void view_changed() override; bool prepare(const vkb::ApplicationOptions &options) override; void request_gpu_features(vkb::PhysicalDevice &gpu) override; }; diff --git a/shaders/sparse_image/sparse.frag b/shaders/sparse_image/sparse.frag index 8124e328cf..5141693559 100644 --- a/shaders/sparse_image/sparse.frag +++ b/shaders/sparse_image/sparse.frag @@ -17,7 +17,6 @@ #version 450 #extension GL_ARB_sparse_texture2 : enable -#extension GL_ARB_sparse_texture_clamp : enable layout(binding = 1) uniform sampler2D texSampler; @@ -31,24 +30,21 @@ void main() { vec4 color = vec4(0.0); float minLOD = 0.0f; - float maxLOD = 5.0f; - - int residencyCode = 1; - + float maxLOD = 4.0f; + int lod = 0; - for(; (lod <= maxLOD) && !sparseTexelsResidentARB(residencyCode); lod += 1) - { - residencyCode = sparseTextureLodARB(texSampler, fragTexCoord, lod, color); - color.x = color.x / (lod * 5 + 1); - color.y = color.y / (lod * 5 + 1); - color.z = color.z / (lod * 5 + 1); - } - - bool texelResident = sparseTexelsResidentARB(residencyCode); + int residencyCode = sparseTextureLodARB(texSampler, fragTexCoord, lod, color); - if (!texelResident) + if (!sparseTexelsResidentARB(residencyCode)) { - color = vec4(1.0, 1.0, 1.0, 0.0); + lod += 1; + for(; (lod <= maxLOD) && !sparseTexelsResidentARB(residencyCode); lod += 1) + { + residencyCode = sparseTextureLodARB(texSampler, fragTexCoord, lod, color); + color.x = color.x / (lod * 5 + 1); + color.y = color.y / (lod * 5 + 1); + color.z = color.z / (lod * 5 + 1); + } } fragOutColor = color; From b349e47f00fbc3bca581758d3fbe29b7183e1914 Mon Sep 17 00:00:00 2001 From: Grzegorz Smagacz Date: Thu, 21 Sep 2023 15:24:19 +0200 Subject: [PATCH 06/21] Minor updates, mostly cleanup --- .../images/sparse_image_screenshot.png | Bin 272488 -> 325020 bytes .../extensions/sparse_image/sparse_image.cpp | 533 +++++++++--------- .../extensions/sparse_image/sparse_image.h | 17 +- shaders/sparse_image/sparse.frag | 21 +- 4 files changed, 293 insertions(+), 278 deletions(-) diff --git a/samples/extensions/sparse_image/images/sparse_image_screenshot.png b/samples/extensions/sparse_image/images/sparse_image_screenshot.png index 78bbb15666970a663b0b9a96b687102b738a7113..c56fd2c99ae8f69280c68abf5734fdd10d8edeec 100644 GIT binary patch literal 325020 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

{j*qI@BRc3Z>KZv7&SHGS(@kmApp_6 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 z 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%0Ax6H3!szK)LIR%L_#5}vZ$ebxVZ2O0aHTpTDJVij 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

W1u|s0v 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�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 diff --git a/samples/extensions/sparse_image/sparse_image.cpp b/samples/extensions/sparse_image/sparse_image.cpp index 4d093c5351..59d31b12dd 100644 --- a/samples/extensions/sparse_image/sparse_image.cpp +++ b/samples/extensions/sparse_image/sparse_image.cpp @@ -35,11 +35,6 @@ SparseImage::~SparseImage() vkDestroySampler(get_device().get_handle(), texture_sampler, nullptr); vkDestroyImageView(get_device().get_handle(), virtual_texture.texture_image_view, nullptr); vkDestroyImage(get_device().get_handle(), virtual_texture.texture_image, nullptr); - - for (auto &page : virtual_texture.page_table) - { - page.page_memory_info.memory_sector.reset(); - } } } @@ -218,7 +213,7 @@ void SparseImage::bind_sparse_image() continue; } - if (virtual_texture.page_table[page_index].valid) + if (page.valid) { continue; } @@ -241,14 +236,6 @@ void SparseImage::bind_sparse_image() bind_sparse_info.imageBindCount = 1U; bind_sparse_info.pImageBinds = &sparse_image_memory_bind_info; - VkSparseImageOpaqueMemoryBindInfo sparse_image_opaque_memory_bind_info{}; - sparse_image_opaque_memory_bind_info.image = nullptr; - sparse_image_opaque_memory_bind_info.bindCount = 0U; - sparse_image_opaque_memory_bind_info.pBinds = nullptr; - - bind_sparse_info.imageOpaqueBindCount = 0U; - bind_sparse_info.pImageOpaqueBinds = nullptr; - bind_sparse_info.signalSemaphoreCount = 1U; bind_sparse_info.pSignalSemaphores = &bound_semaphore; bind_sparse_info.waitSemaphoreCount = 1U; @@ -441,10 +428,8 @@ std::vector SparseImage::get_memory_dependency_for_the_block(size_t colu */ void SparseImage::compare_mips_table() { - if (!virtual_texture.texture_block_update_set.empty()) - { - virtual_texture.texture_block_update_set.clear(); - } + virtual_texture.texture_block_update_set.clear(); + for (size_t y = 0U; y < virtual_texture.current_mip_table.size(); y++) { for (size_t x = 0U; x < virtual_texture.current_mip_table[y].size(); x++) @@ -550,7 +535,7 @@ void SparseImage::build_command_buffers() void SparseImage::process_texture_blocks() { uint8_t block_counter; - block_counter = std::min(blocks_to_update_per_cycle, virtual_texture.texture_block_update_set.size()); + block_counter = std::min(blocks_to_update_per_cycle, virtual_texture.texture_block_update_set.size()); frame_counter_per_transfer++; auto it = virtual_texture.texture_block_update_set.begin(); @@ -713,10 +698,6 @@ void SparseImage::free_unused_memory() { page.valid = false; auto result = page.page_memory_info.memory_sector->available_offsets.insert(page.page_memory_info.offset); - if (!result.second) - { - assert(false); - } page.page_memory_info.memory_sector->virt_page_indices.erase(page_index); page.page_memory_info.memory_sector.reset(); } @@ -725,7 +706,7 @@ void SparseImage::free_unused_memory() std::set pages_to_reallocate; uint8_t sectors_to_reallocate = 0U; - auto §ors = virtual_texture.memory_allocations.get_handle(); + auto §ors = virtual_texture.memory_allocations.get_memory_sectors(); for (auto it = sectors.begin(); it != sectors.end();) { if ((*it).expired()) @@ -750,7 +731,7 @@ void SparseImage::free_unused_memory() it++; } - if (memory_defragmentation && (pages_to_reallocate.size() > 0U)) + if (memory_defragmentation && !pages_to_reallocate.empty()) { std::unique_ptr reallocation_buffer = std::make_unique(get_device(), virtual_texture.page_size * pages_to_reallocate.size(), VK_BUFFER_USAGE_TRANSFER_DST_BIT | VK_BUFFER_USAGE_TRANSFER_SRC_BIT, VMA_MEMORY_USAGE_GPU_ONLY); @@ -796,7 +777,7 @@ void SparseImage::free_unused_memory() subresource_range.baseMipLevel = virtual_texture.base_mip_level; vkb::image_layout_transition(command_buffer, virtual_texture.texture_image, VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL, VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL, subresource_range); - vkCmdCopyImageToBuffer(command_buffer, virtual_texture.texture_image, VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL, reallocation_buffer->get_handle(), copy_infos.size(), copy_infos.data()); + vkCmdCopyImageToBuffer(command_buffer, virtual_texture.texture_image, VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL, reallocation_buffer->get_handle(), static_cast(copy_infos.size()), copy_infos.data()); device->flush_command_buffer(command_buffer, queue, true); std::vector> temp_sectors; @@ -817,7 +798,7 @@ void SparseImage::free_unused_memory() command_buffer = get_device().create_command_buffer(VK_COMMAND_BUFFER_LEVEL_PRIMARY, true); vkb::image_layout_transition(command_buffer, virtual_texture.texture_image, VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL, VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, subresource_range); - vkCmdCopyBufferToImage(command_buffer, reallocation_buffer->get_handle(), virtual_texture.texture_image, VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, copy_infos.size(), copy_infos.data()); + vkCmdCopyBufferToImage(command_buffer, reallocation_buffer->get_handle(), virtual_texture.texture_image, VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, static_cast(copy_infos.size()), copy_infos.data()); vkb::image_layout_transition(command_buffer, virtual_texture.texture_image, VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL, subresource_range); device->flush_command_buffer(command_buffer, queue, true); @@ -885,7 +866,7 @@ void SparseImage::process_stage(Stages next_stage) this->next_stage = Stages::CalculateMipsTable; update_required = false; } - else if ((frame_counter_per_transfer > FRAME_COUNTER_CAP) && frame_counter_feature) + else if (frame_counter_feature && (frame_counter_per_transfer > FRAME_COUNTER_CAP)) { this->next_stage = Stages::CalculateMipsTable; } @@ -926,7 +907,7 @@ void SparseImage::draw() submit_info.pWaitSemaphores = wait_semaphores.data(); submit_info.pWaitDstStageMask = wait_stage_masks.data(); - submit_info.signalSemaphoreCount = signal_semaphores.size(); + submit_info.signalSemaphoreCount = static_cast(signal_semaphores.size()); submit_info.pSignalSemaphores = signal_semaphores.data(); VK_CHECK(vkQueueSubmit(queue, 1U, &submit_info, VK_NULL_HANDLE)); @@ -1057,7 +1038,7 @@ void SparseImage::CalculateMipLevelData::calculate_mesh_coordinates() * @brief This is the very core function. It is responsible for calculating what level of detail is required for a particular BLOCK. * * BLOCKS are just the abstraction units used to describe the texture on-screen. Each block is the same size. - * Number of vertical and horizontal blocks is described by the global constants ON_SCREEN_VERTICAL_BLOCKS and ON_SCREEN_HORIZONTAL_BLOCKS. + * Number of vertical and horizontal blocks is described by num_vertical_blocks and num_horizontal_blocks. * These constants are completely arbitrary - the more blocks, the better precision, the greater calculation overhead. * * What this function does, is based on the mesh data created in calculate_mesh_coordinates(), for each node within a mesh it calculates: @@ -1425,6 +1406,14 @@ void SparseImage::create_sparse_texture_image() sparse_image_create_info.extent.height = static_cast(virtual_texture.height); sparse_image_create_info.extent.depth = 1U; + /* + The number of mip-levels is arbitrary. + 5 LODs fit well the current design (6th would be used from too far away). + + Before incrementing this value, one should consider handling the mip tail and binding it correctly: + - vkGetImageSparseMemoryRequirements() + - VkSparseImageOpaqueMemoryBindInfo + */ virtual_texture.base_mip_level = 0U; virtual_texture.mip_levels = 5U; @@ -1445,7 +1434,6 @@ void SparseImage::create_sparse_texture_image() // Calculating memory dependencies and defining total number of pages and page size std::vector sparse_image_format_properties; - std::vector sparse_image_memory_requirements; VkMemoryRequirements mem_requirements; uint32_t property_count; @@ -1455,15 +1443,9 @@ void SparseImage::create_sparse_texture_image() sparse_image_format_properties.resize(property_count); vkGetPhysicalDeviceSparseImageFormatProperties(device->get_gpu().get_handle(), image_format, VK_IMAGE_TYPE_2D, VK_SAMPLE_COUNT_1_BIT, image_usage, VK_IMAGE_TILING_OPTIMAL, &property_count, sparse_image_format_properties.data()); - vkGetImageSparseMemoryRequirements(get_device().get_handle(), virtual_texture.texture_image, &memory_req_count, nullptr); - sparse_image_memory_requirements.resize(memory_req_count); - vkGetImageSparseMemoryRequirements(get_device().get_handle(), virtual_texture.texture_image, &memory_req_count, sparse_image_memory_requirements.data()); - vkGetImageMemoryRequirements(get_device().get_handle(), virtual_texture.texture_image, &mem_requirements); virtual_texture.format_properties = sparse_image_format_properties[0]; - virtual_texture.memory_sparse_requirements = sparse_image_memory_requirements[0]; - virtual_texture.mem_requirements = mem_requirements; // calculate page size virtual_texture.page_size = virtual_texture.format_properties.imageGranularity.height * virtual_texture.format_properties.imageGranularity.width * 4U; @@ -1511,10 +1493,10 @@ void SparseImage::create_sparse_texture_image() // Memory allocation required data virtual_texture.memory_allocations.device = get_device().get_handle(); virtual_texture.memory_allocations.page_size = virtual_texture.page_size; - virtual_texture.memory_allocations.memory_type_index = get_device().get_memory_type(virtual_texture.mem_requirements.memoryTypeBits, VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT); + virtual_texture.memory_allocations.memory_type_index = get_device().get_memory_type(mem_requirements.memoryTypeBits, VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT); virtual_texture.memory_allocations.pages_per_allocation = PAGES_PER_ALLOC; - // Setting the data constant data for memory page binding via vkQueueBindSparse() + // Setting the constant data for memory page binding via vkQueueBindSparse() for (size_t page_index = 0U; page_index < virtual_texture.page_table.size(); page_index++) { uint32_t mipLevel = get_mip_level(page_index); diff --git a/samples/extensions/sparse_image/sparse_image.h b/samples/extensions/sparse_image/sparse_image.h index 9031f769ae..c35322bf39 100644 --- a/samples/extensions/sparse_image/sparse_image.h +++ b/samples/extensions/sparse_image/sparse_image.h @@ -139,7 +139,7 @@ class SparseImage : public ApiVulkanSample return memory_sectors.size(); } - std::list> &get_handle() + std::list> &get_memory_sectors() { return memory_sectors; } @@ -155,13 +155,9 @@ class SparseImage : public ApiVulkanSample std::set available_offsets; std::set virt_page_indices; - MemSector(MemAllocInfo &mem_alloc_info) + MemSector(MemAllocInfo &mem_alloc_info) : + MemAllocInfo(mem_alloc_info) { - this->device = mem_alloc_info.device; - this->page_size = mem_alloc_info.page_size; - this->memory_type_index = mem_alloc_info.memory_type_index; - this->pages_per_allocation = mem_alloc_info.pages_per_allocation; - VkMemoryAllocateInfo memory_allocate_info{}; memory_allocate_info.sType = VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO; memory_allocate_info.allocationSize = page_size * pages_per_allocation; @@ -229,13 +225,8 @@ class SparseImage : public ApiVulkanSample // Set containing information which pages from the page_table should be updated (either loaded from CPU memory or blitted) std::set update_set; - // Vector of available memory pages (whole memory page pool is statically allocated at the beginning) - std::vector available_memory_page_indices; - // Sparse-image-related format and memory properties - VkSparseImageFormatProperties format_properties; - VkSparseImageMemoryRequirements memory_sparse_requirements; - VkMemoryRequirements mem_requirements; + VkSparseImageFormatProperties format_properties; std::vector sparse_image_memory_bind; }; @@ -271,7 +262,7 @@ class SparseImage : public ApiVulkanSample bool memory_defragmentation = true; bool frame_counter_feature = true; - size_t blocks_to_update_per_cycle = 10U; + size_t blocks_to_update_per_cycle = 25U; size_t num_vertical_blocks = 50U; size_t num_horizontal_blocks = 50U; @@ -290,8 +281,8 @@ class SparseImage : public ApiVulkanSample Stages next_stage = Stages::Idle; - const VkFormat image_format = VK_FORMAT_R8G8B8A8_SRGB; - VkImageUsageFlags image_usage = VK_IMAGE_USAGE_TRANSFER_DST_BIT | VK_IMAGE_USAGE_TRANSFER_SRC_BIT | VK_IMAGE_USAGE_SAMPLED_BIT; + const VkFormat image_format = VK_FORMAT_R8G8B8A8_SRGB; + const VkImageUsageFlags image_usage = VK_IMAGE_USAGE_TRANSFER_DST_BIT | VK_IMAGE_USAGE_TRANSFER_SRC_BIT | VK_IMAGE_USAGE_SAMPLED_BIT; VirtualTexture virtual_texture; @@ -309,8 +300,8 @@ class SparseImage : public ApiVulkanSample glm::mat4 current_mvp_transform; - VkPipeline sample_pipeline{}; - VkPipelineLayout sample_pipeline_layout{}; + VkPipeline sample_pipeline; + VkPipelineLayout sample_pipeline_layout; VkDescriptorSetLayout descriptor_set_layout; VkDescriptorSet descriptor_set; From 39b4c1f7fe0c38b4208bd92cf1f4064bb224e87e Mon Sep 17 00:00:00 2001 From: Grzegorz Smagacz Date: Mon, 30 Oct 2023 15:36:22 +0100 Subject: [PATCH 16/21] * Minor changes to match the PR's General & Sample Checklists --- antora/modules/ROOT/nav.adoc | 1 + samples/extensions/sparse_image/README.adoc | 4 +- .../extensions/sparse_image/sparse_image.cpp | 127 ++++++++++-------- .../extensions/sparse_image/sparse_image.h | 79 +++++++---- 4 files changed, 130 insertions(+), 81 deletions(-) diff --git a/antora/modules/ROOT/nav.adoc b/antora/modules/ROOT/nav.adoc index cb1d6a705a..05035e68fe 100644 --- a/antora/modules/ROOT/nav.adoc +++ b/antora/modules/ROOT/nav.adoc @@ -74,6 +74,7 @@ ** xref:samples/extensions/ray_queries/README.adoc[Ray queries] ** xref:samples/extensions/ray_tracing_reflection/README.adoc[Ray tracing reflection] ** xref:samples/extensions/shader_object/README.adoc[Shader Object] +** xref:samples/extensions/sparse_image/README.adoc[Sparse Image] ** xref:samples/extensions/synchronization_2/README.adoc[Synchronization 2] ** xref:samples/extensions/timeline_semaphore/README.adoc[Timeline semaphore] ** xref:samples/extensions/vertex_dynamic_state/README.adoc[Vertex dynamic state] diff --git a/samples/extensions/sparse_image/README.adoc b/samples/extensions/sparse_image/README.adoc index c539e96b29..31ad231f55 100644 --- a/samples/extensions/sparse_image/README.adoc +++ b/samples/extensions/sparse_image/README.adoc @@ -1,7 +1,5 @@ //// -- Copyright (c) 2023, Mobica Limited -- -- SPDX-License-Identifier: Apache-2.0 +- Copyright 2023, Mobica Limited - - Licensed under the Apache License, Version 2.0 the "License"; - you may not use this file except in compliance with the License. diff --git a/samples/extensions/sparse_image/sparse_image.cpp b/samples/extensions/sparse_image/sparse_image.cpp index 59d31b12dd..79bbafd9e4 100644 --- a/samples/extensions/sparse_image/sparse_image.cpp +++ b/samples/extensions/sparse_image/sparse_image.cpp @@ -1,6 +1,4 @@ -/* Copyright (c) 2023, Mobica Limited - * - * SPDX-License-Identifier: Apache-2.0 +/* Copyright 2023, Mobica Limited * * Licensed under the Apache License, Version 2.0 the "License"; * you may not use this file except in compliance with the License. @@ -38,6 +36,9 @@ SparseImage::~SparseImage() } } +/** + * @brief Load the main .ktx file to be accessible from CPU's side. + */ void SparseImage::load_assets() { virtual_texture.raw_data_image = vkb::sg::Image::load("/textures/vulkan_logo_full.ktx", "/textures/vulkan_logo_full.ktx", vkb::sg::Image::ContentType::Color); @@ -50,6 +51,9 @@ void SparseImage::load_assets() virtual_texture.height = tex_extent.height; } +/** + * @brief Create a dedicated queue (if available) for sparse-binding. + */ void SparseImage::create_sparse_bind_queue() { const auto &queue_family_properties = device->get_gpu().get_queue_family_properties(); @@ -109,6 +113,9 @@ bool SparseImage::prepare(const vkb::ApplicationOptions &options) return true; } +/** + * @brief Setup the pipeline(s). + */ void SparseImage::prepare_pipelines() { // Create a blank pipeline layout. @@ -178,6 +185,9 @@ void SparseImage::prepare_pipelines() VK_CHECK(vkCreateGraphicsPipelines(get_device().get_handle(), pipeline_cache, 1U, &pipeline_create_info, nullptr, &sample_pipeline)); } +/** + * @brief Set camera type, translation speed and camera's initial position. + */ void SparseImage::setup_camera() { camera.type = vkb::CameraType::FirstPerson; @@ -385,7 +395,7 @@ void SparseImage::check_mip_page_requirements(std::vector &m } /** - * @brief Convert information from BLOCK-based into PAGE-based data. BLOCKS are just the abstraction units described by ON_SCREEN_HORIZONTAL_BLOCKS and ON_SCREEN_VERTICAL_BLOCKS. PAGES are the actually allocated chunks of memory, their size is device-dependent. + * @brief Convert information from BLOCK-based into PAGE-based data. BLOCKS are just the abstraction units described by num_horizontal_blocks and num_vertical_blocks. PAGES are the actually allocated chunks of memory, their size is device-dependent. */ std::vector SparseImage::get_memory_dependency_for_the_block(size_t column, size_t row, uint8_t mip_level) { @@ -472,6 +482,9 @@ void SparseImage::update_mvp() current_mvp_transform = mvp_ubo.proj * mvp_ubo.view * mvp_ubo.model; } +/** + * @brief Build draw-related command buffer(s). + */ void SparseImage::build_command_buffers() { VkCommandBufferBeginInfo command_buffer_begin_info = vkb::initializers::command_buffer_begin_info(); @@ -532,6 +545,9 @@ void SparseImage::build_command_buffers() } } +/** + * @brief Run the update process for a number of blocks, described by blocks_to_update_per_cycle. + */ void SparseImage::process_texture_blocks() { uint8_t block_counter; @@ -547,6 +563,9 @@ void SparseImage::process_texture_blocks() virtual_texture.texture_block_update_set.erase(virtual_texture.texture_block_update_set.begin(), it); } +/** + * @brief Bind the image, update all of the required pages by either loading the original data via staging buffer or generating mipmaps. + */ void SparseImage::update_and_generate() { bind_sparse_image(); @@ -689,6 +708,9 @@ void SparseImage::update_and_generate() } } +/** + * @brief Leave only render-required pages, free empty memory sectors, run defragmentation (if enabled), bind the image. + */ void SparseImage::free_unused_memory() { for (size_t page_index = 0U; page_index < virtual_texture.page_table.size(); page_index++) @@ -815,6 +837,9 @@ void SparseImage::free_unused_memory() } } +/** + * @brief Generate the least detailed mip level, set it as unremovable, bind the image. + */ void SparseImage::load_least_detailed_level() { set_least_detailed_level(); @@ -831,6 +856,9 @@ void SparseImage::load_least_detailed_level() update_and_generate(); } +/** + * @brief Handle the state machine. + */ void SparseImage::process_stage(Stages next_stage) { switch (next_stage) @@ -893,6 +921,9 @@ void SparseImage::process_stage(Stages next_stage) } } +/** + * @brief Prepare and submit the frame. + */ void SparseImage::draw() { ApiVulkanSample::prepare_frame(); @@ -941,7 +972,7 @@ std::unique_ptr create_sparse_image() } /** - * @brief Generate the mesh and calculate required mip level for each texture block + * @brief Generate the mesh and calculate required mip level for each texture block. */ void SparseImage::calculate_mips_table() { @@ -964,19 +995,9 @@ void SparseImage::calculate_mips_table() virtual_texture.new_mip_table = mesh_data.mip_table; } -SparseImage::CalculateMipLevelData::CalculateMipLevelData(const glm::mat4 &mvp_transform, const VkExtent2D &texture_base_dim, const VkExtent2D &screen_base_dim, uint32_t vertical_num_blocks, uint32_t horizontal_num_blocks, uint8_t mip_levels) : - mesh(vertical_num_blocks + 1U), vertical_num_blocks(vertical_num_blocks), horizontal_num_blocks(horizontal_num_blocks), mip_levels(mip_levels), ax_vertical(horizontal_num_blocks + 1U), ax_horizontal(vertical_num_blocks + 1U), mvp_transform(mvp_transform), texture_base_dim(texture_base_dim), screen_base_dim(screen_base_dim) -{ - for (auto &row : mesh) - { - row.resize(horizontal_num_blocks + 1U); - } -} - -SparseImage::CalculateMipLevelData::CalculateMipLevelData() : - mvp_transform(glm::mat4(0)), texture_base_dim(VkExtent2D{0U, 0U}), screen_base_dim(VkExtent2D{0U, 0U}), mesh{0}, vertical_num_blocks(0U), horizontal_num_blocks(0U), mip_levels(0U) -{} - +/** + * @brief Generate the mesh based on the current MVP transform and number of blocks. + */ void SparseImage::CalculateMipLevelData::calculate_mesh_coordinates() { glm::vec4 top_left(-100.0f, -100.0f, 0.0f, 1.0f); @@ -1039,7 +1060,7 @@ void SparseImage::CalculateMipLevelData::calculate_mesh_coordinates() * * BLOCKS are just the abstraction units used to describe the texture on-screen. Each block is the same size. * Number of vertical and horizontal blocks is described by num_vertical_blocks and num_horizontal_blocks. - * These constants are completely arbitrary - the more blocks, the better precision, the greater calculation overhead. + * These variables are completely arbitrary - the more blocks, the better precision, the greater calculation overhead. * * What this function does, is based on the mesh data created in calculate_mesh_coordinates(), for each node within a mesh it calculates: * "What is the ratio between x/y movement on the screen to the u/v movement on the texture?". @@ -1063,7 +1084,7 @@ void SparseImage::CalculateMipLevelData::calculate_mesh_coordinates() * * - IMPORTANT: I assume that: * - each block is a parallelogram which is obviously not 1:1 true, but the more precise we get (the more blocks we split the texture into) the more accurate this statement is. - * - the image is not "stretched' within a single block, which has the same rules as stated above. + * - the image is not "stretched' within a single block, which has the same rules as stated above. * * With those assumption, I'm providing a parralel lines from the Ph point to the corresponding edges. This creates an another parrallelogram. * @@ -1168,6 +1189,9 @@ void SparseImage::CalculateMipLevelData::calculate_mip_levels() } } +/** + * @brief Create and update a vertex buffer. + */ void SparseImage::create_vertex_buffer() { std::array vertices; @@ -1200,6 +1224,9 @@ void SparseImage::create_vertex_buffer() device->flush_command_buffer(command_buffer, queue, true); } +/** + * @brief Create and update an index buffer. + */ void SparseImage::create_index_buffer() { std::array indices = {0U, 1U, 2U, 2U, 3U, 0U}; @@ -1224,7 +1251,7 @@ void SparseImage::create_index_buffer() } /** - * @brief Creating descriptor pool with size adjusted to use uniform buffer and image sampler + * @brief Creating descriptor pool with size adjusted to use uniform buffer and image sampler. */ void SparseImage::create_descriptor_pool() { @@ -1244,7 +1271,7 @@ void SparseImage::create_descriptor_pool() } /** - * @brief Creating layout for descriptor sets + * @brief Creating layout for descriptor sets. */ void SparseImage::create_descriptor_set_layout() { @@ -1271,9 +1298,9 @@ void SparseImage::create_descriptor_set_layout() /** * @brief Creating descriptor set: - * 1. Uniform buffer (MVP) - * 2. Image sampler - * 3. Uniform buffer (color_highlight) + * 1. Uniform buffer (MVP). + * 2. Image sampler. + * 3. Uniform buffer (color_highlight and LOD data). */ void SparseImage::create_descriptor_sets() { @@ -1316,6 +1343,9 @@ void SparseImage::create_descriptor_sets() vkUpdateDescriptorSets(get_device().get_handle(), static_cast(write_descriptor_sets.size()), write_descriptor_sets.data(), 0U, nullptr); } +/** + * @brief Update UBO-data used by the fragment shader. + */ void SparseImage::update_frag_settings() { FragSettingsData frag_settings = {}; @@ -1326,6 +1356,9 @@ void SparseImage::update_frag_settings() frag_settings_data_buffer->update(&frag_settings, sizeof(FragSettingsData)); } +/** + * @brief Create UBO for MVP data and fragment shader settings. + */ void SparseImage::create_uniform_buffers() { VkDeviceSize buffer_size = sizeof(MVP); @@ -1335,6 +1368,9 @@ void SparseImage::create_uniform_buffers() frag_settings_data_buffer = std::make_unique(get_device(), buffer_size, VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT, VMA_MEMORY_USAGE_CPU_TO_GPU, VMA_ALLOCATION_CREATE_MAPPED_BIT); } +/** + * @brief Create and setup the texture sampler. + */ void SparseImage::create_texture_sampler() { VkSamplerCreateInfo sampler_info = vkb::initializers::sampler_create_info(); @@ -1359,7 +1395,7 @@ void SparseImage::create_texture_sampler() } /** - * @brief Enabling features + * @brief Enable required GPU features. */ void SparseImage::request_gpu_features(vkb::PhysicalDevice &gpu) { @@ -1375,6 +1411,9 @@ void SparseImage::request_gpu_features(vkb::PhysicalDevice &gpu) } } +/** + * @brief Setup least detailed level to be required and unremovable from the memory. + */ void SparseImage::set_least_detailed_level() { // Setting the least detailed mip level to be constantly present in the memory (to avoid black spots on the screen) @@ -1395,6 +1434,9 @@ void SparseImage::set_least_detailed_level() } } +/** + * @brief Create and setup the sparse texture. + */ void SparseImage::create_sparse_texture_image() { //================================================================================================== @@ -1433,8 +1475,8 @@ void SparseImage::create_sparse_texture_image() //================================================================================================== // Calculating memory dependencies and defining total number of pages and page size - std::vector sparse_image_format_properties; - VkMemoryRequirements mem_requirements; + std::vector sparse_image_format_properties; + VkMemoryRequirements mem_requirements; uint32_t property_count; uint32_t memory_req_count; @@ -1445,7 +1487,7 @@ void SparseImage::create_sparse_texture_image() vkGetImageMemoryRequirements(get_device().get_handle(), virtual_texture.texture_image, &mem_requirements); - virtual_texture.format_properties = sparse_image_format_properties[0]; + virtual_texture.format_properties = sparse_image_format_properties[0]; // calculate page size virtual_texture.page_size = virtual_texture.format_properties.imageGranularity.height * virtual_texture.format_properties.imageGranularity.width * 4U; @@ -1553,6 +1595,9 @@ void SparseImage::create_sparse_texture_image() VK_CHECK(vkCreateSemaphore(get_device().get_handle(), &semaphore_create_info, nullptr, &bound_semaphore)); } +/** + * @brief Clear and potentially resize both current and new mip tables. + */ void SparseImage::reset_mip_table() { virtual_texture.current_mip_table.clear(); @@ -1599,28 +1644,4 @@ void SparseImage::on_update_ui_overlay(vkb::Drawer &drawer) drawer.text("* Virtual: %zu ", virtual_texture.page_table.size()); drawer.text("* Allocated: %zu ", virtual_texture.memory_allocations.get_size() * PAGES_PER_ALLOC); } -} - -void SparseImage::MemAllocInfo::get_allocation(PageInfo &page_memory_info, size_t page_index) -{ - if (memory_sectors.empty() || memory_sectors.front().expired() || memory_sectors.front().lock()->available_offsets.empty()) - { - page_memory_info.memory_sector = std::make_shared(*this); - page_memory_info.offset = *(page_memory_info.memory_sector->available_offsets.begin()); - - page_memory_info.memory_sector->available_offsets.erase(page_memory_info.offset); - page_memory_info.memory_sector->virt_page_indices.insert(page_index); - - memory_sectors.push_front(page_memory_info.memory_sector); - } - else - { - auto ptr = memory_sectors.front().lock(); - - page_memory_info.memory_sector = ptr; - page_memory_info.offset = *(page_memory_info.memory_sector->available_offsets.begin()); - - page_memory_info.memory_sector->available_offsets.erase(page_memory_info.offset); - page_memory_info.memory_sector->virt_page_indices.insert(page_index); - } } \ No newline at end of file diff --git a/samples/extensions/sparse_image/sparse_image.h b/samples/extensions/sparse_image/sparse_image.h index c35322bf39..a1026461ca 100644 --- a/samples/extensions/sparse_image/sparse_image.h +++ b/samples/extensions/sparse_image/sparse_image.h @@ -1,6 +1,4 @@ -/* Copyright (c) 2023, Mobica Limited - * - * SPDX-License-Identifier: Apache-2.0 +/* Copyright 2023, Mobica Limited * * Licensed under the Apache License, Version 2.0 the "License"; * you may not use this file except in compliance with the License. @@ -22,7 +20,7 @@ class SparseImage : public ApiVulkanSample { public: - enum class Stages : uint8_t + enum class Stages { Idle, CalculateMipsTable, @@ -111,28 +109,50 @@ class SparseImage : public ApiVulkanSample struct PageInfo { - std::shared_ptr memory_sector; - uint32_t offset; + std::shared_ptr memory_sector = nullptr; + uint32_t offset = 0U; }; struct PageTable { - bool valid; // bound via vkQueueBindSparse() and contains valid data - bool gen_mip_required; // required for the mip generation - bool fixed; // not freed from the memory at any cases - PageInfo page_memory_info; // memory-related info + bool valid = false; // bound via vkQueueBindSparse() and contains valid data + bool gen_mip_required = false; // required for the mip generation + bool fixed = false; // not freed from the memory at any cases + PageInfo page_memory_info; // memory-related info std::set> render_required_set; // set holding information on what BLOCKS require this particular memory page to be valid for rendering }; struct MemAllocInfo { - VkDevice device; - uint64_t page_size; - uint32_t memory_type_index; - size_t pages_per_allocation; + VkDevice device = VK_NULL_HANDLE; + uint64_t page_size = 0U; + uint32_t memory_type_index = 0U; + size_t pages_per_allocation = 0U; - void get_allocation(PageInfo &page_memory_info, size_t page_index); + void get_allocation(PageInfo &page_memory_info, size_t page_index) + { + if (memory_sectors.empty() || memory_sectors.front().expired() || memory_sectors.front().lock()->available_offsets.empty()) + { + page_memory_info.memory_sector = std::make_shared(*this); + page_memory_info.offset = *(page_memory_info.memory_sector->available_offsets.begin()); + + page_memory_info.memory_sector->available_offsets.erase(page_memory_info.offset); + page_memory_info.memory_sector->virt_page_indices.insert(page_index); + + memory_sectors.push_front(page_memory_info.memory_sector); + } + else + { + auto ptr = memory_sectors.front().lock(); + + page_memory_info.memory_sector = ptr; + page_memory_info.offset = *(page_memory_info.memory_sector->available_offsets.begin()); + + page_memory_info.memory_sector->available_offsets.erase(page_memory_info.offset); + page_memory_info.memory_sector->virt_page_indices.insert(page_index); + } + } uint32_t get_size() { @@ -195,19 +215,19 @@ class SparseImage : public ApiVulkanSample struct VirtualTexture { - VkImage texture_image; - VkImageView texture_image_view; + VkImage texture_image = VK_NULL_HANDLE; + VkImageView texture_image_view = VK_NULL_HANDLE; MemAllocInfo memory_allocations; // Dimensions - size_t width; - size_t height; + size_t width = 0U; + size_t height = 0U; // Number of bytes per page - size_t page_size; + size_t page_size = 0U; - uint8_t base_mip_level; - uint8_t mip_levels; + uint8_t base_mip_level = 0U; + uint8_t mip_levels = 0U; std::vector mip_properties; std::vector> current_mip_table; @@ -226,7 +246,7 @@ class SparseImage : public ApiVulkanSample std::set update_set; // Sparse-image-related format and memory properties - VkSparseImageFormatProperties format_properties; + VkSparseImageFormatProperties format_properties{}; std::vector sparse_image_memory_bind; }; @@ -249,9 +269,18 @@ class SparseImage : public ApiVulkanSample VkExtent2D texture_base_dim; VkExtent2D screen_base_dim; - CalculateMipLevelData(const glm::mat4 &mvp_transform, const VkExtent2D &texture_base_dim, const VkExtent2D &screen_base_dim, uint32_t vertical_num_blocks, uint32_t horizontal_num_blocks, uint8_t mip_levels); - CalculateMipLevelData(); + CalculateMipLevelData(const glm::mat4 &mvp_transform, const VkExtent2D &texture_base_dim, const VkExtent2D &screen_base_dim, uint32_t vertical_num_blocks, uint32_t horizontal_num_blocks, uint8_t mip_levels) : + mesh(vertical_num_blocks + 1U), vertical_num_blocks(vertical_num_blocks), horizontal_num_blocks(horizontal_num_blocks), mip_levels(mip_levels), ax_vertical(horizontal_num_blocks + 1U), ax_horizontal(vertical_num_blocks + 1U), mvp_transform(mvp_transform), texture_base_dim(texture_base_dim), screen_base_dim(screen_base_dim) + { + for (auto &row : mesh) + { + row.resize(horizontal_num_blocks + 1U); + } + } + CalculateMipLevelData() : + mvp_transform(glm::mat4(0)), texture_base_dim(VkExtent2D{0U, 0U}), screen_base_dim(VkExtent2D{0U, 0U}), mesh{0}, vertical_num_blocks(0U), horizontal_num_blocks(0U), mip_levels(0U) + {} void calculate_mesh_coordinates(); void calculate_mip_levels(); }; From 23941f674b5c93fe807eddf56c342e1f72bb9330 Mon Sep 17 00:00:00 2001 From: Grzegorz Smagacz Date: Mon, 20 Nov 2023 14:16:15 +0100 Subject: [PATCH 17/21] * Fixed Ubuntu compilation issues and Copyright checks * Minor typos and reworks --- samples/extensions/sparse_image/README.adoc | 4 ++-- .../extensions/sparse_image/sparse_image.cpp | 23 +++++++------------ .../extensions/sparse_image/sparse_image.h | 22 ++++++++++-------- 3 files changed, 22 insertions(+), 27 deletions(-) diff --git a/samples/extensions/sparse_image/README.adoc b/samples/extensions/sparse_image/README.adoc index 31ad231f55..d9a1c02496 100644 --- a/samples/extensions/sparse_image/README.adoc +++ b/samples/extensions/sparse_image/README.adoc @@ -40,7 +40,7 @@ the lifetime of the resource; The sample demonstrates usage of the Sparse Image feature by rendering a high-resolution texture with only a fraction of the total image size -actually allocated on the device’s memory. This is possible by +actually allocated on the device's memory. This is possible by dynamically loading required memory areas, generating mip levels for outer parts, removing unused memory and finally: binding an image in real-time. @@ -148,7 +148,7 @@ device. == Conclusion The primary usage of the sparse image feature is generally speaking -dedicated for cases where too much device’s memory is occupied. Keeping +dedicated for cases where too much device's memory is occupied. Keeping a low-detailed mip-level constantly in the memory and dynamically loading required areas when the camera changes, is the way to handle terrain mega-textures. The downside of these solution is that there is a diff --git a/samples/extensions/sparse_image/sparse_image.cpp b/samples/extensions/sparse_image/sparse_image.cpp index 79bbafd9e4..2d5829a2c9 100644 --- a/samples/extensions/sparse_image/sparse_image.cpp +++ b/samples/extensions/sparse_image/sparse_image.cpp @@ -197,18 +197,6 @@ void SparseImage::setup_camera() camera.translation_speed = 20.0f; } -/** - * @brief Copy a single-page, raw-pixel-data from the CPU memory into the stagging buffer. - */ -void SparseImage::copy_single_raw_data_block(uint8_t buffer[], const VkExtent2D blockDim, VkOffset2D offset, size_t stride) -{ - for (size_t row = 0U; row < blockDim.height; row++) - { - size_t position = (row + offset.y) * stride + offset.x * 4U; - memcpy(&buffer[row * blockDim.width * 4U], &virtual_texture.raw_data_image->get_data()[position], blockDim.width * 4U); - } -} - /** * @brief Fill up the information on how the sparse image should be bound and call vkQueueBindSparse. */ @@ -633,7 +621,12 @@ void SparseImage::update_and_generate() if (mip_level == 0U) { - copy_single_raw_data_block(temp_buffer.data(), block_extent, block_offset, virtual_texture.width * 4U); + // Copying a single raw data block + for (size_t row = 0U; row < block_extent.height; row++) + { + size_t position = (row + block_offset.y) * (virtual_texture.width * 4U) + block_offset.x * 4U; + memcpy(&temp_buffer[row * block_extent.width * 4U], &virtual_texture.raw_data_image->get_data()[position], block_extent.width * 4U); + } VkDeviceSize buffer_offset = level_zero_index++ * virtual_texture.page_size; multi_page_buffer->update(temp_buffer, buffer_offset); @@ -814,7 +807,7 @@ void SparseImage::free_unused_memory() page.valid = false; } - sectors.sort(sort_memory_sector); + sectors.sort(MemSectorCompare()); bind_sparse_image(); command_buffer = get_device().create_command_buffer(VK_COMMAND_BUFFER_LEVEL_PRIMARY, true); @@ -832,7 +825,7 @@ void SparseImage::free_unused_memory() } else { - sectors.sort(sort_memory_sector); + sectors.sort(MemSectorCompare()); bind_sparse_image(); } } diff --git a/samples/extensions/sparse_image/sparse_image.h b/samples/extensions/sparse_image/sparse_image.h index a1026461ca..86094d735b 100644 --- a/samples/extensions/sparse_image/sparse_image.h +++ b/samples/extensions/sparse_image/sparse_image.h @@ -200,17 +200,20 @@ class SparseImage : public ApiVulkanSample } }; - friend bool sort_memory_sector(const std::weak_ptr left, const std::weak_ptr right) + struct MemSectorCompare { - if (left.expired()) + bool operator()(const std::weak_ptr &left, const std::weak_ptr &right) { - return false; - } - else if (right.expired()) - { - return true; - } - return left.lock()->available_offsets.size() > right.lock()->available_offsets.size(); + if (left.expired()) + { + return false; + } + else if (right.expired()) + { + return true; + } + return left.lock()->available_offsets.size() > right.lock()->available_offsets.size(); + }; }; struct VirtualTexture @@ -376,7 +379,6 @@ class SparseImage : public ApiVulkanSample std::vector get_memory_dependency_for_the_block(size_t column, size_t row, uint8_t mip_level); void check_mip_page_requirements(std::vector &mipgen_required_vec, MemPageDescription mip_dependency); void bind_sparse_image(); - void copy_single_raw_data_block(uint8_t buffer[], const VkExtent2D blockDim, VkOffset2D offset, size_t stride); void load_least_detailed_level(); void set_least_detailed_level(); void update_frag_settings(); From 73197ca374c9d9490c9d927f665c7d799ccc5a92 Mon Sep 17 00:00:00 2001 From: Grzegorz Smagacz Date: Fri, 24 Nov 2023 13:16:41 +0100 Subject: [PATCH 18/21] * Minor stylistic changes --- .../extensions/sparse_image/sparse_image.cpp | 55 ++++++------------- 1 file changed, 17 insertions(+), 38 deletions(-) diff --git a/samples/extensions/sparse_image/sparse_image.cpp b/samples/extensions/sparse_image/sparse_image.cpp index 2d5829a2c9..76c05884db 100644 --- a/samples/extensions/sparse_image/sparse_image.cpp +++ b/samples/extensions/sparse_image/sparse_image.cpp @@ -118,17 +118,12 @@ bool SparseImage::prepare(const vkb::ApplicationOptions &options) */ void SparseImage::prepare_pipelines() { - // Create a blank pipeline layout. VkPipelineLayoutCreateInfo layout_info = vkb::initializers::pipeline_layout_create_info(&descriptor_set_layout, 1); - VK_CHECK(vkCreatePipelineLayout(get_device().get_handle(), &layout_info, nullptr, &sample_pipeline_layout)); - VkPipelineVertexInputStateCreateInfo vertex_input = vkb::initializers::pipeline_vertex_input_state_create_info(); - - /* Binding description */ + VkPipelineVertexInputStateCreateInfo vertex_input = vkb::initializers::pipeline_vertex_input_state_create_info(); std::array vertex_input_bindings = {vkb::initializers::vertex_input_binding_description(0, sizeof(SimpleVertex), VK_VERTEX_INPUT_RATE_VERTEX)}; - /* Attribute description */ std::array vertex_input_attributes = { vkb::initializers::vertex_input_attribute_description(0U, 0U, VK_FORMAT_R32G32_SFLOAT, offsetof(SimpleVertex, norm)), vkb::initializers::vertex_input_attribute_description(0U, 1U, VK_FORMAT_R32G32_SFLOAT, offsetof(SimpleVertex, uv))}; @@ -138,49 +133,33 @@ void SparseImage::prepare_pipelines() vertex_input.vertexBindingDescriptionCount = static_cast(vertex_input_bindings.size()); vertex_input.pVertexBindingDescriptions = vertex_input_bindings.data(); - // 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, 0U, 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(1U, &blend_attachment); - - // We will have one viewport and scissor box. - VkPipelineViewportStateCreateInfo viewport = vkb::initializers::pipeline_viewport_state_create_info(1U, 1U); - - // Enable depth testing (using reversed depth-buffer for increased precision). - VkPipelineDepthStencilStateCreateInfo depth_stencil = vkb::initializers::pipeline_depth_stencil_state_create_info(VK_FALSE, VK_FALSE, VK_COMPARE_OP_NEVER); - - // No multisampling. - VkPipelineMultisampleStateCreateInfo multisample = vkb::initializers::pipeline_multisample_state_create_info(VK_SAMPLE_COUNT_1_BIT); + std::array dynamic_states{VK_DYNAMIC_STATE_VIEWPORT, VK_DYNAMIC_STATE_SCISSOR}; - // 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())); + VkPipelineInputAssemblyStateCreateInfo input_assembly_state = vkb::initializers::pipeline_input_assembly_state_create_info(VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST, 0U, VK_FALSE); + VkPipelineRasterizationStateCreateInfo rasterization_state = vkb::initializers::pipeline_rasterization_state_create_info(VK_POLYGON_MODE_FILL, VK_CULL_MODE_BACK_BIT, VK_FRONT_FACE_CLOCKWISE); + VkPipelineColorBlendAttachmentState color_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_FALSE); + VkPipelineColorBlendStateCreateInfo color_blend_state = vkb::initializers::pipeline_color_blend_state_create_info(1U, &color_blend_attachment_state); + VkPipelineViewportStateCreateInfo viewport_state = vkb::initializers::pipeline_viewport_state_create_info(1U, 1U); + VkPipelineDepthStencilStateCreateInfo depth_stencil_state = vkb::initializers::pipeline_depth_stencil_state_create_info(VK_FALSE, VK_FALSE, VK_COMPARE_OP_NEVER); + VkPipelineMultisampleStateCreateInfo multisampling_state = vkb::initializers::pipeline_multisample_state_create_info(VK_SAMPLE_COUNT_1_BIT); + VkPipelineDynamicStateCreateInfo pipeline_dynamic_states = vkb::initializers::pipeline_dynamic_state_create_info(dynamic_states.data(), vkb::to_u32(dynamic_states.size())); - // Load our SPIR-V shaders. std::array shader_stages{}; - // Vertex stage of the pipeline shader_stages[0] = load_shader("sparse_image/sparse.vert", VK_SHADER_STAGE_VERTEX_BIT); shader_stages[1] = load_shader("sparse_image/sparse.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; + pipeline_create_info.pInputAssemblyState = &input_assembly_state; + pipeline_create_info.pRasterizationState = &rasterization_state; + pipeline_create_info.pColorBlendState = &color_blend_state; + pipeline_create_info.pMultisampleState = &multisampling_state; + pipeline_create_info.pViewportState = &viewport_state; + pipeline_create_info.pDepthStencilState = &depth_stencil_state; + pipeline_create_info.pDynamicState = &pipeline_dynamic_states; VK_CHECK(vkCreateGraphicsPipelines(get_device().get_handle(), pipeline_cache, 1U, &pipeline_create_info, nullptr, &sample_pipeline)); } From 813dce09019e38faee39f385d77f4b03176f83ea Mon Sep 17 00:00:00 2001 From: Grzegorz Smagacz Date: Mon, 4 Dec 2023 12:22:10 +0100 Subject: [PATCH 19/21] * Rebase * unified copyrights --- samples/extensions/sparse_image/README.adoc | 4 +++- samples/extensions/sparse_image/sparse_image.cpp | 4 +++- samples/extensions/sparse_image/sparse_image.h | 4 +++- 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/samples/extensions/sparse_image/README.adoc b/samples/extensions/sparse_image/README.adoc index d9a1c02496..c32668a9f7 100644 --- a/samples/extensions/sparse_image/README.adoc +++ b/samples/extensions/sparse_image/README.adoc @@ -1,5 +1,7 @@ //// -- Copyright 2023, Mobica Limited +- Copyright (c) 2023, Mobica Limited +- +- 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. diff --git a/samples/extensions/sparse_image/sparse_image.cpp b/samples/extensions/sparse_image/sparse_image.cpp index 76c05884db..74ea3b29e6 100644 --- a/samples/extensions/sparse_image/sparse_image.cpp +++ b/samples/extensions/sparse_image/sparse_image.cpp @@ -1,4 +1,6 @@ -/* Copyright 2023, Mobica Limited +/* Copyright (c) 2023, Mobica Limited + * + * 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. diff --git a/samples/extensions/sparse_image/sparse_image.h b/samples/extensions/sparse_image/sparse_image.h index 86094d735b..d9a333d283 100644 --- a/samples/extensions/sparse_image/sparse_image.h +++ b/samples/extensions/sparse_image/sparse_image.h @@ -1,4 +1,6 @@ -/* Copyright 2023, Mobica Limited +/* Copyright (c) 2023, Mobica Limited + * + * 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. From 6a72036c9079ccc9569bbcf7b570aa3e2722d445 Mon Sep 17 00:00:00 2001 From: Grzegorz Smagacz Date: Mon, 11 Dec 2023 20:04:55 +0100 Subject: [PATCH 20/21] * missing static_cast --- samples/extensions/sparse_image/sparse_image.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/extensions/sparse_image/sparse_image.cpp b/samples/extensions/sparse_image/sparse_image.cpp index 74ea3b29e6..5dbcb08c4b 100644 --- a/samples/extensions/sparse_image/sparse_image.cpp +++ b/samples/extensions/sparse_image/sparse_image.cpp @@ -209,7 +209,7 @@ void SparseImage::bind_sparse_image() VkSparseImageMemoryBindInfo sparse_image_memory_bind_info{}; sparse_image_memory_bind_info.image = virtual_texture.texture_image; - sparse_image_memory_bind_info.bindCount = virtual_texture.sparse_image_memory_bind.size(); + sparse_image_memory_bind_info.bindCount = static_cast(virtual_texture.sparse_image_memory_bind.size()); sparse_image_memory_bind_info.pBinds = virtual_texture.sparse_image_memory_bind.data(); bind_sparse_info.imageBindCount = 1U; From b166c917db8988258edfe803bbb6dd2802b15c9a Mon Sep 17 00:00:00 2001 From: Grzegorz Smagacz Date: Mon, 11 Dec 2023 20:50:20 +0100 Subject: [PATCH 21/21] * minor rework, fixing a validation layer warning --- .../extensions/sparse_image/sparse_image.cpp | 22 +++++++++---------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/samples/extensions/sparse_image/sparse_image.cpp b/samples/extensions/sparse_image/sparse_image.cpp index 5dbcb08c4b..a3732caa9b 100644 --- a/samples/extensions/sparse_image/sparse_image.cpp +++ b/samples/extensions/sparse_image/sparse_image.cpp @@ -1449,19 +1449,19 @@ void SparseImage::create_sparse_texture_image() //================================================================================================== // Calculating memory dependencies and defining total number of pages and page size - std::vector sparse_image_format_properties; - VkMemoryRequirements mem_requirements; + std::vector sparse_image_memory_requirements; + VkMemoryRequirements memory_requirements; - uint32_t property_count; + uint32_t sparse_memory_req_count; uint32_t memory_req_count; - vkGetPhysicalDeviceSparseImageFormatProperties(device->get_gpu().get_handle(), image_format, VK_IMAGE_TYPE_2D, VK_SAMPLE_COUNT_1_BIT, image_usage, VK_IMAGE_TILING_OPTIMAL, &property_count, nullptr); - sparse_image_format_properties.resize(property_count); - vkGetPhysicalDeviceSparseImageFormatProperties(device->get_gpu().get_handle(), image_format, VK_IMAGE_TYPE_2D, VK_SAMPLE_COUNT_1_BIT, image_usage, VK_IMAGE_TILING_OPTIMAL, &property_count, sparse_image_format_properties.data()); + vkGetImageSparseMemoryRequirements(device->get_handle(), virtual_texture.texture_image, &sparse_memory_req_count, sparse_image_memory_requirements.data()); + sparse_image_memory_requirements.resize(sparse_memory_req_count); + vkGetImageSparseMemoryRequirements(device->get_handle(), virtual_texture.texture_image, &sparse_memory_req_count, sparse_image_memory_requirements.data()); - vkGetImageMemoryRequirements(get_device().get_handle(), virtual_texture.texture_image, &mem_requirements); + vkGetImageMemoryRequirements(get_device().get_handle(), virtual_texture.texture_image, &memory_requirements); - virtual_texture.format_properties = sparse_image_format_properties[0]; + virtual_texture.format_properties = sparse_image_memory_requirements[0].formatProperties; // calculate page size virtual_texture.page_size = virtual_texture.format_properties.imageGranularity.height * virtual_texture.format_properties.imageGranularity.width * 4U; @@ -1475,8 +1475,8 @@ void SparseImage::create_sparse_texture_image() for (uint32_t mip_level = 0U; mip_level < virtual_texture.mip_levels; mip_level++) { - size_t numRows = current_mip_height / sparse_image_format_properties[0].imageGranularity.height + (current_mip_height % sparse_image_format_properties[0].imageGranularity.height == 0U ? 0U : 1U); - size_t numColumns = current_mip_width / sparse_image_format_properties[0].imageGranularity.width + (current_mip_width % sparse_image_format_properties[0].imageGranularity.width == 0U ? 0U : 1U); + size_t numRows = current_mip_height / virtual_texture.format_properties.imageGranularity.height + (current_mip_height % virtual_texture.format_properties.imageGranularity.height == 0U ? 0U : 1U); + size_t numColumns = current_mip_width / virtual_texture.format_properties.imageGranularity.width + (current_mip_width % virtual_texture.format_properties.imageGranularity.width == 0U ? 0U : 1U); num_total_pages += numRows * numColumns; @@ -1509,7 +1509,7 @@ void SparseImage::create_sparse_texture_image() // Memory allocation required data virtual_texture.memory_allocations.device = get_device().get_handle(); virtual_texture.memory_allocations.page_size = virtual_texture.page_size; - virtual_texture.memory_allocations.memory_type_index = get_device().get_memory_type(mem_requirements.memoryTypeBits, VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT); + virtual_texture.memory_allocations.memory_type_index = get_device().get_memory_type(memory_requirements.memoryTypeBits, VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT); virtual_texture.memory_allocations.pages_per_allocation = PAGES_PER_ALLOC; // Setting the constant data for memory page binding via vkQueueBindSparse()
W1u|s0v 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�vrP_aw0AJcRur{MM`N3fq#pAW;U^XknnGSc(Y!Cd0XW9 z_bB%-{I~r&=y}Ub30qU#V~IV`J!c%f{#cqbTebyTa7e z6dD1+FkpyzHTZA!r1Uv|Cf+|f|Ho$f56n-GcVmsKRTdh$cMd^UnbI}qGoQJ1UpHx5 zMT4?H=x*oaz|sj05!1IzV!0R!9qkW0$GveT&gc{^*`xl?=%2pgspu=T=D^o{tK^KR zpAiM-RK8OrpejWgI6N|Lsrvklow?VG%tT)(+NwqRs6PqnLDH6z^@?haQ-;vCpr}7f zOL}%eO(mhcfgGi87zrdDnrcfLSSKsqMFO2CC+KTAdaI&c*S1GZ<+S+BRDwfHLprpZ z3I==Gh05acMysY=M-D~sJJ;7q+TZeHNo?wTnrQv;7&NGm=Qad6Bc)0eyCyefrA(>{ z5YJ|5>q-w^%NOCC}{9pyh>AzrPi%4r>o;@wOrH1K2uHk`Uefv*IQ{| zbs6U$?X3aNxRCf!wK@VEN|#uaVZxF{e4q)h1-1+^{U=rk>;zF} zFs&2fUDVs;vCz!aS~8utNwKg> zHiR_j%gI9HQcLp~8ER^I*(PdvSzD#(Jdi9F{NZvE=y-1DP>ofYACnYnHj<(DD)h)28k$9agcipu zo(>^m^nqxe2lLz_N@?0BXLo6mRfVDlF|`j=!vC@B2~?S@ChC;7iHPTtd6Nw3X?< zIl$`&76zxB=Th0*Z)bG({m(#wst@#p5PqGA1$DZHx}FVu;-77Sp`9VN-0*m;?&w^f zWPI<5^?wAJ7eT356@ynoNsCF8V_(4%1`?u*@4xqahxb;;K1amHrZ;BQ?~@H~A2b_6 z_86+2CD?D*4XK#C@m>j!%xeOy($9$G8%5u>%?g=X!v5Z61*`J4@t-~W79b5 zcx8oZTjFwBFmZwf-Iz;M{_hKGDTADG+`L*E`mbxR<~H%8ND{yp61CP-_9}fP@k$wO zia+&dIUSc89gREH(Saz{fU68d;y?M)>F_dKnQ>H_q*6-iS$b@%Kz41*ug+{}U40c; zjOwKklKBgeaqDNzU+;T!DM;oPqnO5B4}IjSo0Q$cz= zsg!NQKoawCr%hc#4clf=W|AuKbNXMNn7CZTjAPS1vY2LB+n-Y(k_7!NLklSLK|`KL z;|(WzlfwO8J_dy8o9hs|LFcO0-zQ;;76psD&dlQTcs{G9toq*r)q=0pl_{tE|HM)C zAe%JoNjy%s0+ciO>KcDr%_3-2>yN%)gv*WU4o`x-30Da$WK-&`*)l{3+?Sw1o!@cv zjM3N_sL9m<7Sp!@CW`u-i@6*Sk_zHGMU`N4=a}*jG`z zGjVl(kM-`Xku7QQmif_{N?**EZX;(tMl8aN4~rqix#wf>)r z^Nu(3mm|ezupIdNJgSf*N8Ch%1Qw*}!bBP3GY);oTOr;1K2arP_mf=&4&t3JPq0Ox z`idgObMb8GZ{YOsD+Lg?2HYJUdgLVcceXnjUu2c2V~ZJ~FO6_21QT z(dS1z6XbHZ8lpgPA3p}Rf>a4Xh<^}MBBUH{?on0}Y@VQE(fpzIA+7Vua{F?A3cHSg zNhN3^8fIsh)ueENC#}&qCD_sWY;vDwH05aXl$oQCUO)h8dTOg51zT0kvy7?q(WT%q z5@!tq{9A>f9!!CeuoAeNw56p?VjQ&eoaOJI8z75LvQ^p~!uwd;&LsU$X;CC-HjF;+$Mh;j#vx023tH@`D;GL-tb;|{ z;;Lw1h1iBHY74~Jo`o!p!ho3Q;u`Tom$DoY*T2$gDc28S^fU1w2zX9{bnf0TuFdgX zs5H-$YDJ>CvT)D25<+X8Y*^P4ujK4cKSZb}u}$<;rEY8)bTc2Ag}-R6zB9Pp6&C;7s|O~2FxMoD2Vu^4cN)u|88vuL$jZ?D0|R6f6wvm4 z&Htg`{)+4ARZU^GNJ->Y@)9bLk&Uo1e{cS7 zRmmSH`xRVEi+V$lwe1ZlmL0<6i>!+LLg)1}5^+9dlNaJxrh&?tUXWvai166@aJ>L31*QS0IVfgQnv43QQP1kOlI_;WxEs zy;f>9ANl_UC6y7}{%UMj6|U@jR{>?_9m4J&F?Bq5tKt4bct>Z>)+KB-NDRW8(oU7J zb>lDw?>8fcMum?Z`2vFkaj2r+-i^Mgq;6k*eZV}~w&WIQfA{g?lnt-l7q+K(U-Y24yhHelVct1#u>L8V{|x;s|rXf5s?0PLkRG(k2W~aRUTB94o!Oo<7|2Q4>srH z;ON%QONl{x(b77Rg1`a`Ne%nBCYYIZ^;`W2|48g*FiZ(*$45TBEcoseBB@}dmzO)M z-b1-=ClVFV=U?mPvCz?n_Uf2@4MO076C$vOY-H%Tw#j-cH6)#7O2q7vqwT}4V4$c( zAXoGqPrwQPg1RTkKuOsqpIdQ`d-SwOncR)Iq#gA>8rJ@LXv&wvd)(?6V!ooLaqrxG z*0BpMf(+V$b8@R(M_6Oq+f2LS0W>UIStZFdPH3gEpU^@tD9VGLbj00eEKvY#%;sVN zkw%$vlw!4;K+_QT0@$lJx^RFv?L=m>U%=e%=!Z-Kmx2^Yd??P!F_}NikYpsj;S&Cs z7wHgm@mjt+z$*h zjavb5{o6Rn2fdG9)H-FUnN*cj2G$T}p>eBFt=YG%xDPG-`^$rq8OLyc%99i>oRup= zV$Wi0a;F{ZNQ4ZXWwj@+(U=rZ`@FMlt=NS0b$}c@Ddl=uRrH z&df9?2m?ICuB=07y}%PwC-F9mfc+&40f20!fRBbJd3h&BS`5rSq@l)oS?4AvkKD`+ zgT9_A5im3>B1Rb)iI{TC2GH9ecyPEqQ<|_M$D#U5a?n^DALD|BhY3|7457T;6m)1M zvBCS~##u-Fd$N6uaHI7u8@h$^RegsE=}{N?TF|#=L$9w>CPFGp4n|14C7+Fi^zu=I zgkJne#@{f%@_Qc>Y>0fc8+>>#$>^$q?Ye%@&Gl0Lr3LJ9VMbn(Un}y4-h@e-vw6Lx zR@!}a7%8zVOH1L_{NRAO30&ispa4UlO4{0j_x!xY3Ae*=lOSlFy*w5 zj$F4T{J_?my9;jw?cvz`UEzK73pXviD|AryChu#73L}V>72|!lD*yhf^51Q+K-3bD z;e{YO+U<%0%b16zKc3FIlnJpD-VVMlpWijjr~Nc5o?cq-Z{a)S5Hu1VtKIPL|1xax z!52GYWy4igP|F~ClicScGVLaeS`95V>{E7jW>u*SOe`V5flR40ayK!vL)#svt({tu z9})ZrvtsB!qg1~^Wfs?FRh&c~T9eCeuFMuM_A3vgXfHktE~?LP?oRaSFJfpLNDMXI zUerWOvq`n2Q)Q?0tZ3pUNVsavq``H^+*ovc1l<{NMxAbPDfYTeWwdAXWK{$~8i1zZ z&U9ofJm_GF81XGlVBI;zeigqyEmtHe;)xUtMboj;{-}VUln?`MG&9G}%aNePfG_D^ zqVZkZ`YD;*Qd`piLF1a18GER&k)hEIp+a{(&n1eTF!(}Y^9dl*mpA&wMIu9SwX+(1P^aoO@aEG+D& z%zr0cGP=YBqzV;O6ilhEc7;2ec%0N2Fz z`J9Y{h+4XEba(v%BY0Mfrc1@eRf&dpswaRUyckGCpkk_gYfC8P&_L&{t1hOm*ywDG zBRoJ+VMAe+cQAbl17o(BTYi}J=IcK@#?@Bu0F*yL}OIV_sB4K%u z6J(e#0YmBWdF)g$W!WKzlmYS6$f)NM zNt~(peO!7h&W-oNd`?s(i-H0wfVrE@Vfa^EcaE)QEjyX3s-n#0W^%`1KMf2g;qjNnQY&SYDET+F|uN?6ccSMR{U{TPc{b+a=F>F3-M>Ts(#MT zsc3W*i|;?(SS{re1&-hgCdIKn(?q2^vY)V{?y490DdYE7`Q*?3goTSfMredC)j@vj z>F+F;C?4?&M%H$m-`>z#cf?Fs@RKLq?IOz#krf9~!AR7Vj6f%~l7M2tT`rts|NF;M zkLS6V=Dy^%JLvvFYaGq+UD2P0*}r`aKmL7clv0ROf4+cnhB}52??M4h%Ia{}!V?ft zIt8Iz<0xS$D87+|fXyssfI7!Y?-YhqZ#vMRt|G<&1A6SYJl=4Yle->?QCPOvV+)6n1E4E)2bj-o7~Rj*{Q4+oKOIDM3rX(%moV?kMc-`wozC?Y2$kV z^3lgT!7^oK3nu22TogolepT7+x>yCl9}CmuCuY^~;uOM{0ZYg;egfr+sf3uTTxLQU zE_Eqp>XqkDUjK;2+wKC`4#R=?qX}}UvRZzTJN~r^B=>(xbnzG$z=2|+Z;7>U;uDZY zGaOkeP>*!)A4y~L{CK-1sceeXtx*A37(*2xfs{2mw-+d&@l>>Tn+l+xW2}ZCh62+- z@-^=d=h=`@Pxb79SRSur{iMd*=DjC;L9w1fovkM0BLq2#O9ndk&J-xh^mDdxrPn|& z9im@ew09VYZu;R{G6}??V?_e(_7#_)NC_}c>e+5qDTZ!6mY@Jk=P$=)S;&N10XMmEuVwZ_SejtM&Do&EeUJQrnSi9KEt{@tKsSmtF zmgOmx%!p}s4%azwX{bpUFvy)Svjyr%>}o(O`zgxRt0X7uE`njOLLlzcbOFD+`Tm-* z)iAtNOZ0>zDEvozIsw0)-shlC`0k47HS|~6s{YOkwHiB#I0}~at&41`3elydbw3-^ z399dCVgyIvd8ue3U@dX}w3{gqK{lzCkK-n&F2@YE(pohW`8^%t?|o^4-!#8@Jjl&j z_19RdQCAtb3~zv{erva2N!zL-$UZhEEbcys=Be z_8SiORjc1O=;mWT=X6eo^kMOClGL%YFvE>^+{@GmeW9>Pza;Q|?HK@BJ$)|l^xC$y zp$B3mAg3!gsPR{nwN=5M@)jA*;{>e0sHN^=XM=lGqS2)mG$p<}(BTp?P$}P(14Pxu zMNY=Ct;oN;!Rs%k4T+A6hPqmuw=E|K+h#_UMN@~+`39L;O#_t(QMxxg7I~%^ayOMy_OLyX zQdhAOOkh&B?6K0Ve8DgAahC2mU^Fd0n@aLTUpfjbUZU6 zu^f0tg!)m*?L);I<|MPm$}nDJ*n5`Qg!pyB{yWi=p=E`Dh;zB&1#vz{17V?Nf|z+s zEbeitA9Bv$n8fX1<+A-J0MO0t21~)q9h7}{wQXWK~x@SX-6DxCtyi83^Nr32YLcssuOBM3iO>_0ilbamp z;WYr%^6G`iJJ(_VcXih(u7+o&@HgEouckVCvNPya^#A`4ZZ2KQDKZ)D%X@xLls=A( zZ2n2T50ME}GGFjY3Mn+4{K2sw)6+G_aPCyaV&NjEHt=L+gv+!V#}q5^?@ zt28i#7bQ)H`h=(GPEqG}1o)Y#XI7{pGFfxq;dsVR>{@tAnBqKm>P&US?uN zKAQmWtwplaLpA_2_K%ky;++EG@@lNlH}OlF?{yJ%zt(6R(p%$Q0Gw<23%%J4HomI$ z@|%ak9;P@!*tkR*Jm{k|5gsw|ct`Ql|EAt%0*Qf074skFt3CxvZP+%|RHxY9ZKNMd zdq6cgtK|Y5VMCoioMVicD5%6-Ky-qfR2(W~mCs-9OEFH0)~G<@1m7) zc)t?~cNl$ci*D4+EVDEaG#VLco`j)60l1db3W`r9OrcP^_BH{p>FFzYqH!j2`&GGR z;blms1j_L3v&l*?u6PS~p8E$}JwSrlhE+M%brqO>Ee=3`qzo8teHNAxE8C{> zW%LYO%L%-Ra%3vE6^B!nxxgteJ1Dfyy&(9hudm;ykJsnnNoIJmqx(XIdVl>14iJr? zwYg9Lg&DEuC>?Oy8`>n79q4`q`rg2`E8>fW!&^56zpLPn13&q$xB1cg^W|obi-(kp zV?L-gBCjnqfjGP!afCFw8C(C@!z(nCn38R!$XyU#Q+S(eBV=oo0w?2aWbG>peuovTAO^kQ z5`gWtIpPUa9rmFtM%Dr^hy^LRNU5RM1#_H##SO~&kz8(JSLOOh$*)ux^iuPYD#1}w zQ8_y)`s}|?)XjJj1CaQC`3TyLcXJ%=>LMzw(gz(-Q) zEa5QysnA{aiAO$hfgMN-M{;MT33&iKOGoJa&qN_DSy2R0pi&VzHP;Vgf?3t(WQ6E_ zcud1bP2>TLz$pQ2EKVz~L@@*gxRxB_J4J*W!4bEmB?Yci`d~RUAmAg%Y{BtgvEDx< zbZ97@;6XqHT@M8nh`^U8SZ2rP!3r#kp3*WNw1*bFl%@=e2xySq1tt#`XR*W#yLCnfI024YZ&6Jrqx% zl?Iz5E{TvG#UqUv{o+UioHtaq0+95jph)H{we_(2qN)N3Z_+y1l#lOKtO7O^&4FAesOwN&Sf$ovNEdtmQdh{@L5e*}U04`^Ry zAgzf1a2;91r>xnwkb3-+6+eAJyp-QZ^IP)A4Cu_*O1kZ~Q%4 zPme>cbToQuEx4N2U56!yeQDv){h^rV#qidu^EZrTv{>||sBqE2i08iMd%6@9s8bO$ zTtb9|J(B=+?^s5Rmf8QYYiNpqPi~Z1R)^3WLEj)&`pvLZ}T6@VkJ-H~ZZ1s#Ib? z>tvlwRiA-~L!~;gz)e)H`bZ;o&=~Kd?j(4g+;!u3fAR#QOpU12SM| zg-g2w&O$VNM`r2$y)VuP)ncN*&cOY^l8AJ5nvms3w4+&`#kO1byplSgx{-Ff!~5`7 z-7dKhLx=w7MF9Xg_QLB|-wOQW{8Bm{Ne4&c%YFTn<3S9-o$#uAx;-D6#n(z^VB`G6 z;o`R)bag+$&SL+U`J=YJlm_Nf=5mham-O5(+=yexxZ6t&+f8(8s28`0xVj7VNL=3;sAMn30RAcj#-c>@g1Vtn@Xwr5VLv$@MjMOc!=5CtaOp8MTj&G{_EdF0 zpbU_wG96Yasn5>U0VcGJ&0 zronJsdY{wBaRjsBHdi4xK>@(>UG9Y<)OxGuV#NWwe&BG|!Ky z+fd&vdgju4a~1jiG9R@6S#tYv2aF8Y8*o`-K9lh>hn6$_wYIGUb4rQ+J{y*0Vv-YQ z$>=DUisJDI;@fQ}gD8i)%odn89Ynv{H@J9nvYE^|R|unT$aQc1d|~E`!R>|7z4r$9 zMrzRYOY4Wvd041Zb>pf>i_1g-KG?xQGNf9F3*YliQkIAjQKZ0-z*`VZiU)9-{czOY zpT3e>;i#sD36yeB@O%>8dG@FaejHG@IX6MmT=@=HlMgmK%cHOsn|tO@Ls@|oXrPZ2 z9!{1_wAuuSz{Nx+Ti8lc^_oJolL;m&D5RKAWOH_7EJLRDB?5>c$vfn&bAxzfnnGw@ zN*ITophQ^qy??A|JOkOqG%YO?YD2z6=^6#Ye@F%%y;SoroH^~kc#R#^SY%p}P5q$` zxF~l1Y-XY?hf+HJauaD7zl};%fOb+^8B-24ei(26^#IYy3GFYiWlqoA(()4?->R%b z2RH~Xt(6I!3FTHXi1y(zDM^@_nU6I>x?#~JhJY1EncHNTaJ9PL2G=))w%Ze_%xZ(V zG;G2|`OJQt?}za4p>1~`Vo*N?jEAhFJ)iPt8-s1Pffkf3!yq#DBTC44fjxSoEmwSY zyRfb%-jtTXA0~?eLm6WXA4dKDFJ)YoDl&T_z|Z6G5x-mGEdUVwTrdg<9NUF|u7-p_ zf0;L``bqIq>7u3ZgQ`#*l97)PA;S7vAmFVRqUs8cPJ-d0H99ZpoLqMp*ac7mgK!A_ zPxU};9WO_a9Lf;S8^~y^Y-||ne~Epy#|(Q9V&>PwI({Eb=jeG0MaKf2$UwOsZ?7B$ zuK+BoHczP4exjU=CfxLl#3w8?(1$|Dw-J;D)n7QevNVWaH~Azqm@+^UQNA6^Ba!pn zn2)kX!icJDYS^k~h8YjFOuxOphC`qW?U=W9c7E{H%Aou8jrx%N3;M9XU}B>+ z4KW*PS@T11V@-M`qqpE~hR&dxv=j$}HC=4tFe1auOijceAt07#rQs-Y9IM9Sbr#S3O7RRR@2H+%>d~WAdd6d^(wf(|ChKHukVB2m6V+xl2}0ATgTbP>x}c- zdPjOPfc>9&STA*P?vpLkHn5Yy0XpPe?klGEHcJ6PfQmI#b|cqThk~2 zI2oyAXi=zKc3p+%kTPtnV`?qD zi2x<9$&%84LO%9}sSFI4;jR)RT+C?fJh|7JTFRzT3&u^qT6iU`ERC|W1=aEKw-wl& zt7?8;3myjlsrwEmTvjc4^8vW)=2fL@hqYFRD+;okU8NSoBaWnX2PAr#xVkhs$v+ZY z%Z^UXr<5NvqQ|^TGe}*t;y?T`pgca>%1koOb|!#TKK?dz7PV#|YDMv87uRL)fnaEl|(bogE)IhJcfRv~4YSS8W*HIvu4ooeedl~RjD6bGebUl8)j z)DT}m7qZ?GhS!{WqdlMSthIm3a-CDatv|>&{%2VsBx=7JGSJm=>GYs|@5_Tyt?f2O zjv^BwDl1RIfnBHp6PX^G0&okDj$C^mpU6mQ5iDtFv;;KV$OQQzUXQuDiuK&PUX>_g zhZ(*;>XNU!3}hVOHMeZU|8?ko_yUK=g`a(+1Fzqq>W|eCtoAZ>naI0RK~_D0*XTll z!K5eAV(?+D?}GGGO`5Fa&#w>mz5P)R>r7i`A^TLv?NLcv>g}MH=_4l zo1RuW9|AkJyGvIu;2dztcf$i)N!=YE4$ZiQ9QtQ*H5~uGHgFtf~{ z>&hmvm&m6jscL7@=m;w#^TQ8`7=#Jq6&3d3_KL$CNds|&&V#}{|70txlAmRd{`3VV z40!3K<$2{rFzs`*eHdb5`b?2WCt1I%a+!k_9YyYZei=*5Nm`$9a15x<-8LQ_{bUIZ zMI|xIZ9@_tWVWdI&RUbv0wb?8Sj28giwwR-mVGE>frH4 z9nwLT+GbT9$KxuW#nqqLg#@8W9c2j1b(IM_t8v);E(^guN#D`b73bwBe1M=D|2}?n11Dq~gQvix|08Z5n?B!41jH|Pnzga&{&jOGKOV}Ou+UxV zd@;ry9^T_kz1@lugk$g{gw*QEE?d8R##afWBqfda6SFb@&&E^9qiu_}c2Fs`M4{m# z{39g#%Nrgx_Dx<9Nz^%THs(I~Llyr%rw?HrD5ioWWbXxhM-JW&IAi7Qfzz4N|B>E+ zt9YC}Uprujiu2M2cl@RslTbzFIDJmZA0Xhs#eSY1^bUdxTI2KIUQQNP5p$H-L4;I} z0ppC%ssz-#q*w_rv0Mr#wqZUAIM9cE~ zhZR-+@VqUWMy5dkJE^9jervdcP$m;bmK?eeKVIfIG#I*_ja}H?O^9Pb0ONtiJ|K@d z*V>vj(e#uF-7~O14>p5PJRWhhusdKS=*iO3oDD56Jt#v?c2_2qukLorwcxz4U?S}g z*C&SEX#-IQ6V2ReR7@Vs+v}6r>4^Z}-KFk`CWxBp76ST3O@u6+Y`iM_?je~JtD6ap z@r#5s{Kdt^ONgW3sNXi|JKobo-ylP9qw#>baYFH(e@7hJD9*S{d#u;hBZt9t-{Zq} z(jPJiU>GzQ`EX&i8oVB3VacvWO$)}>D&_$YO_CcLm>0&ccOEUCbfS!{B&_6E(qUnP zUniB+na9?Y)bXU12PvBKX4mQ@bRgM?~dBopnNA$sEW~ zBXw|KnA?a`bZ}_YT1qnq+@Gn$$f`)l>+D&V1%aU=aE)rlGXc(qLtWioF9EvEKSc!^ zgqg-K6&J!bEv zqC=u{z#t`>%K`1tiLpmoUq&<7RSQ^TzQ}?Ut_oLt!~GftSXy?U=$4|*+AzObK+{q9h$2B)1q_mN(c}n_FAT2YpEB9+QBD^ zr3;h-F;Gn6Z#~x-10-m+0Gx#ZNOFOR)v)*hYJOG2nu_^mf57>r4WL|HZHWRC3-#7q z%E^N_UeuS!cv#?3f1d`~kNZEgjDMq5WZ-*K!bEp}W?$>?9oEC9CIY6D==R5O)nk9Y zG^B;?mZ84E__16 zC$8@szQ?ia$*#0*qSMMkUIPc5r<4RdGe*q0jKkf31^{}PcwtJvW~ixDe4Z(mXr zLWv~6&cXd4Gdz5bjBIohwigM7QKt|!N(!GQwO-B^OUPcB!)bm>ne>%`Lv6;yfUvAQ z?{^4H`^;27(8$FbV;25`Nwm0ohN4AXM%pPufd0uyf>t=n4a2cMp{+y<;XkgcYO0*X?3qwJmTl&Tp1^B7qSo1xQYfIC%7d= zY5OO^q1U%#ygG-7EpPL{n^{z3z}rK_#c~sL*ZRnYe0jEOMoRUybc;rSoQfbW;LC{G zfR4Cy+0|}a`GXr*We2`S-9VTqXlfd9*;3Yw%z+yfo+pG$`%|JAf=K}}_h#CS*_Ay| zuaO<>l^lU_&Zh62vX$G6=$T$&m@!Niie|F{1I$TDeMVu(^_{vh2ElD#tI9qGRVXLz0{hIPdFx+T)_WaiJ_~h2U+}O+;v)@2 zF=ILc$4yKG4K_BmYPAXxq$E;jZ!>1C+rBpUieo3oxOLO6JDtvO4ccW2Zt}=|coyHC zv5ZnKw26cp(<;Ds0~7?#*Eh8b6S2iT%8ymC5lnIZy0Zf~7xkg;M(fk_h$kM8+0mp8 z=tN|;>_01VUB0x;=i?;nl5%9+h*%@LR%z#}T3T`}7eh1zThTGHGI#Qtmzvm}}xqyA=+|<@l9{`@yv`Z|-TeYd3R|Pt;vdn;o&&iyiJ;g zjQR)+a|oT4RyUI>8kctMJ6^I45aa5lf$G{`0RxFxUbiP<#R@s*FD;4=Xz)0%_wcVe zf3o=;5pGPrU7Wo^KUcLRhC#>ge4Ya3qxszO18S%pN<#fnULW!ysK;E{0L*|dZt~VS-Z8grCq??x2hNL1Fnjc zElry8%r3U(&D$>i)nAZ=l`SpEeQt@4_v)L11)cZ%>jAgQi8d0H8n2rp#ZuM_mvZx_ z>v@dK7c-JEl!LGuHffR@RGx$uqMXdQbCdDdeW^YF2Cpj&4XbBlCbXlj!(WuFt zeah5&2aI!4kBdhUc{mJwFdFE&9ZDHy?7lE%ct{xJG;C#k^-V1c`1N*;B8Y7cW9{lr9_-{}A78S5!*lbxi2+3sbocepE+4Kt^GFY1z3hN%*Y9FI^`$ zFgtrnniWJ-B1MGmtEvtzKt}%tbwnghkupPEN2kO0f`rUGvH)iyC(ArNg7gb7Sx3{j zJc)yf-g1QN(-hcPSr3C1Y}~zX9WsZW6ltCqmmuA5f3g&t4rH;@Lm6%K!L?}*ZBF5c zx4|sjt8z_bt#jAECf;_T*zd$C-GS0A2Ma|I>xn+uKaH<8!`+U2d{tfr9Q5oVnVsri z2s02<&}1jtp=sy!Of-s>Wmo_A`z4og}Qi_l&XfD9ZRW zH+5uO#vOSk8$xE3`XdGqL$`Wxt(!rizdyHSa`S>P9OL3vB6sp(s9}Z3DM$rr5hg`M z;FA85y8A&bra8l9wx;q8Sz%0mxl^0i+6Di+*x8M=f_IC;F!&=fn2u~I$!iuo0Jv*j zHF5PT`9#)gsdk9Ggm0a3JvglYj*tIxdUa-^EUXy+j&8XJipg_ij3SUo* z)r_={F|qBWv27=f)u^$J zNn_h~(%80b+cq0Fyz|}vv(~IN`|LCC`!F0he3Jo6lnTue48g@SqTzcYAs35cWjQWp zMwpsv^B+RC##ba$rKOK|PahK`(*>zFRTI*PoC5_;aGkCj3z$HRjqrEQ=_R)z4<4sqwuF6O%G8oE1aJlhI}a@g{USw* zEHyi#bv8)bO{d>xA~>AILtYSZkbR#=&SrFK0}}Y@D5GP-gh%gFZ&&N^?S0Zmx7-Ej zkA%p?l1ZFGE1;!fMmhioyS(0<+tqIfBIb-F8C9{nEkw6ZNhGsU{-<%MUM~T^m2ks3 z0BwKcmBZj+#amlY`it~oeI9VSu^Gi254qpnZp3zvZExRfu`pr+N$gj$Dc_OU%kA@` zqG|6|X&(XpXYpw0k!c`U=w>c9^$Q{TJ0D3ux6O>8cs6(7Z5Iq`y%{;U`DF0TEz9k- z5aOL+;O-Uox4S0+65Cm{n^KBgB00}^==g@OKbJplD|KP+rn>;|BXonjTYYc6!gIQX zevp8GMIpAQCjm$%0|<|q&#!G5mn|OJ)k;E>kC48T*yOk@Zm6NiR9IyiAd~uUy(25J z|L1OChFXpFsvJ33uHCeL9aCLz3WawdPUp0=Io&*cpmT4O5$fu1p;A0JMP%CBJB{oz z(SoxL^p1W@wpNpDc$%6uc0gg+sEc|=eQ*~blYaGv%V~N3W4n+MFfxi121#IM5!3`y zp&&_>Q<^5gXCR-0Nq>BS-eQInnJ{D;qaRv&MNMsBW%n6p=T3=GWcJs!7tI^PSaNO3 zk+^2*8TmE&r0uw;1vTAZA$T|rlxp+>0&1ow+R8r>Y}XDtYIDP3i*vlhH8^G$B+Q>& zVLdPHhp8_AP1Z$B&Fnv@=(GB+nI>v9%Q;KIvz~vXi9F14hlv-vCaLz{IL|sOo$(MF zbMZY%lap7AV`N|}K*cNCuIbXtftc6v#}tkC44Ms-z_4M&RD0I~x{hl6RgbcDiL7-Z zng#X(<@WV!AvkR;VM%fm?mq>Ce_{QX4bi=gb?G#S9#>a7$voMN?+(Xck&qO8JL0g! z>nT7M5%KfjRL~X(QpMcj3;2UpHD&)<0v`l5UTWVLoTO z>_fhSEOn!gmi`D7HZlQ3D)O&~ajp3c&l$uGIs;JpNTn6zWpgE1?wnD7WodmzsSLA?z93WX{J8AP}ZKsE~jJWPpf zK5Cq{Og{NFABmk^)PocIU;c?MbXaNS)Udn&I7;nB>Kt{mFH1j(#R3p3N#P zL^^w~x+BRO3yK=nZPL~nDh#K~8)5G4^_wbi8utii;2Wq$n2Mg=afWX%Rx``VXHchh z!G*5p`J>_vN^tvYUQ!FBi_?u6(OLhMV7lE7 zV?I2dOb@`t9h1RSkpU>9Vd4!ZWJ2@46m z0D-*=Q-n2kn}Y`j)O($_Fj*<@;e6yHqRaL)ogI%y5o}HfR7>eW(f)}(xv`pwO5MDL zQyZi2i)m{{8GKTgw5Bcd_JAv61;#SRccc3%)fJ1SgZq zsi2b@)OI^`j72FnF&_E1pU|sBC)ypfCVIcg4Y$!=ZulV67i=MakHvwKESRE`|C<%w z0d(XLKh&!tCg{xu&iaYCd)ofdT9!BrUsb^5$q&TwCGcr=da#VE(^97`dcm2{h#E9C zHnlD|Y*`)E`h4PS@-&B}enERBqw+^YdZzRX|KK^&U21Hq3!;22q#;8iEs!FLmxk)1 zNQ0eON=fNNY|R9P?JmxbW5f4OGMk;|*UXG{Ok8FF%1B+R#S2YPU2%mH6E3MByea2X zeWVQFaC^wTx{*)6Sjq2q)WCS5tK{(LlZ9^TnubhNRj(6tqx9HJ0o>=%RZaTP&{F*SHBDOr1E=CARlza+f`8dJC&m69w|-ftHkpE(ju5&UV5~3%;Go&fSD}=a|Z4V zRiG4`$ea`(k^7e(kyxhZktG`MB_C;nx;&rBsCe<}Nb{98-G>u<-1p~RXye?kAS^$y z#%Uc*!{fecQ~?x;MLpmDb(4`%Km%ue7Y!JQ9YgXG=BS^G>XhJi zmR?pXn1kY|U}Xw4EX(_m1$McN2*Ay!#Yp7p;kpyec0a@FS~-D`c8`QXZ(DD@O=4X9 zmUGBV7aRi{UaNuE&a-%Tnat6tw8v0@G=Pi>u4v1pU*WHbFKUr`IJycoM4Xt`P`ggz ze8buu=Ra|ag<&^!$?DWAe(L&H`_N`SDI=H^U^FKJe`tCFKBBAK(g?9AZg$c91 zYt?&$OFN@^2o^n;tal$CY)StF(2(XuaMtrM|N9!&ha=t&J63Ah_)hvwZlO-UQb-CGPFt&qNIXBvIJ&a*ioB&Hw$q05xg zaA(+`Y;>d?DG)mAOpk7Iw=gxR^4%M*2dX_a{Jn90et0jt<97erJE%5@!f@W@I!t;n za#r^Uhk+D+>k(z&xMydOi;^;!+OylH`XjZnccZ$i4K8xHVul@898IHqNY1^C{f9~i z9Mc%NlyTn|lQfNHH2tn9r_HeE(2A!|Id51}fr@^vKY1%$*e6%L7rCnOh;P=@w$6ep!$1YO~&d?)frD zM-SQKi2Oong(JlQ88jxv7*F>z2$^iN0Bb*e^zc%u70Ve=)#rZ84r#tmI+Fn@3wu<{ zS>8(2jf4yn$QM`2saA^k4p*|#+@Gu2<-zY?6>2GE!x3U=nh{*r_LEyV42qS?GR+=rRQTMrY3Tm1Y43M`HCPx7$44X}If9Q}D$TqO$Z`KxZjc1vSEwRjtBJ!`WecnkJJ*w5i9(cTjZzFcrWEoYO=FQ9 z1_2H1C?3&>>W0bu?V8d&JbkN&JN54BM*iuz5w!ldjmz`HvK>bK_RS67P(t8R+&aHX zX7B0IlU*K_rFOVyCIZj&KSiXlzemfnOm0Fe#(dnCYV%2-a~@FS(W$W$VOlw%$uk6k z?-%?5JS;;bu$}A*xs884=b@)@0m!-`omPs_K1&nLdBFOXoIG%DK0Z8V*tOq?c*wTH z5FgIwa>3eBfk*iiUo_)M9omZ~U0BXJ0 zcd}^%QSQeHM3fW8&;N)8oHiuT8v$2wsV4HLqSPnlweE*ro2tDTD-#!q1WDVs%%AB9 zRGe)RO%asLlXXZwgqyevQhY|st%5jgdE|IY<&af2Pn3lek!tpwmyRX`e>2l*dCxD5 z>&tL`*f@?TNFKe=Wn&QVSSP8fu^9urIh$!JlY1tqScO*_%bPjf-8DF5_H~Qdb;~tE zejc;~=O4}aFE((Qs1W-vJPvm2te`1;nSxe6G2@60P;wLT_nhs}2h3iw{vq5MTayZn zI~WOc{;&;$RZBK@M}a4|5oTUHFddZ;oUs9a1ez1 zXs|%1#thp#nRkyncr8cg{poeh0p`*Zcc(@;n1p(MZeg6+)U>;r1oui(SR-+xBz*KCIW-s#-E`V?lOqa*m*mT?k29R&0>5ajf3wr=I}R;S)6~ZDwXI};O%?Kc zb{fo4;;2_*?V$YPG!H?}W#i)FKoebcl7;J}7$Dw>aj3F8nU~{U=%8b18J;gGNz;E! z*@GtM>e5)3sVAh4=Fd2FaWL1*2>ka()2YpZIj<*2D%6Y|f$($B(-h{t`X(TELH|XS z=PeKdmgE4xC92--Y3Ya=y!4sU|Koda@`u;gHw<&GKIa1he*7(L6nga+O)zO$1(k0J z2-lFt#*GV0V%l!eQFmcMD%glPRCt-UJgDu+9!RgXd00Q~JsfLhLvadLyUJtGtj^=t zMd1|3gwD?o`caOccC^f)7U>=G6#&V6u;#)izUN&%(*9a1QYZ>Y3e3He@YYum2cmU% zK$UWM{RU^>pH${%^lOrBR=4LIICFb@XZA9Kqp(ih(ZCC^*bkeV9L~(tHXm%tYBHzL zJC5D0HZHQ*?ERv;3?9tY6R209ws0ueq+Op#5|vxC?7&zH%j44 z_A!+;Azq(p5gKPwmX<}x1;ifMIY+b*eli$2H%{bZOn)d5F;dbygR21r)nHWkfIqTg zo@HeIJM$MVt@$5t`ZnSe0roo*v-8Qf*K4`xkfP4CqLBWGu;9h-F~Dc)P6}movI1Y? z>JC{C2Y%}x}FnYc!!!*$!Gu0uYVJ{Q-v4>>0F6_ zmTXHY_CEhb7l#fl+_K((MFo}6)&IAA%)}5!z%bS94KIDPwpuX~@%PY4zj(u`fqSi7 zFjjZ9hp;i4JFK2DKk08rKEkXRU)~rim;I(prUg%it8nSBK$CNj!ohbo-38lV4@Aum zYRvpeY9R&rJ%~{l{HP_P7>QD*6))F-^vOkuD`U}jaBvmXS}^-M8xL*o@c9#f&D@f(A_Vg%0Yr3O*q$so}Sj8Q-CIQY4~ zkaEEWNUJtD7bhnd2L+QKpCbWL@Wv(#p=S0FNJ39%k$%QA z+$;KWVnSxtEDln5!NN;+ZWsquZ$R$+GA6O!Cd$FIf{&5=UaE$#4}uLH=2!=}TqR|J zCa-=&qcy0K9&>~R;IMTL&+mk6I`H8*wLuuI>H2~CN^S+KG9vV!_BB)OR z337HvF@#!;_TFJS{yHMi<*5ZL;rob!dHw;9<|7K+{rHxet2dkz=~-*@#yY9R2|->G zBYv~jHCL)Yo~E4vM?p)hj{twd&+|4c zj0Z3{*P*OhUKqBB(JG$8b@@-jU#FG^DGryPiB%w;V$biNXv=G&JR(NTEw3UXt*(TG z44;}?1zRo${|&WOwy9-`$wsDh{9~cLNv{uA?Ey-p$2;75CF@@j__zwgF@Tr7R8dty zCB%yeyHEu3nL_h}Fh*-ZCgvKlZUY+0D6z?@jhC0bz+nJ5I~5%^vQ85bXe)#o`J#*? zce$Nc-}Lg&kxB+-qMtiU8%MjgNB91d0}6@AR1F6htMY`slxd;YFYBRld$R0b3kuUc zqM96Fkmtf&UBSUgKirBB_7&U`as^j4P_3!>$@!F{cx+t9DW*Z+h%vwbpQ3s+;`+iY zCjZN+@uF7~gI=zPr0>w!Q#)yH^>85HY&a$Inz+Yu%h?E*L7>W4T;Q#Btvx!-{Xlu5 z(JUgciCnd+#H;<&%vpYMetSdfSVCkCYUi6>7{Ri>xG87aJs}Z`a0F#=ho_8x`?0Zh zAo=PwyHol@&sR)LF~>)+CIb@RO(DFu^Lg!`V5VSI&}|NL7KOqg@n&mJUvsLdfD)@OW(+4!j$M*qdo*a*^!;*d|-GEc07{e(~L zB??s`kcvp@d)&v|)vaeGN-ht;E~;>nGRb#dgp8{f8BRzI3JZH^AqV}qf}OsxAeQ~5 z%M+&NF_Xk{j%Dgnm>nA+GF>3FBsIF;6L(0tAl(3`-!EPG6fAd3$dMDPd8-S#t6c>K zUNUn~R8PD#tKk=$JUS7lbj?rjIV18CoeM6LUEIl3FpHy(MD|75lnKhXFrwi1^v77| zl3GtF%9E)K@?nUNPrdb=OBS4i(Jbn?5ls&^))hs;?KWBM48O=%Yjb^PmxoaE=Dk7II$*)M}T2H$NJFWiWt)mQ=x-59vL4TKEgPiy5Ohn4C^W2XkGtrW&*osa4 z-^ef)N7I6!(imJNDDgwTzWz4z$i}cnj22^VtSdacK5s%vZU+{f;c9JF_CWG4yzY^d zN$%{+Jp#oNUcc=Wv~pWqAn@x`z)SlNw#z$)7j%qY<1hMZ0<;Wszz$4lOLnI!)3z@I z2ak4v%pZy}?0ysi|4Kd0K4$=U8|qu^7ZOXVJqZV+;79r*wptE>>tA?qkSwWEow|>u z9N`XG0A$31+Sem?G*WZHW&9>`=&Zt;z|Rk8H|4_!lyU^uJ$>~>N}zLHSeHh`hlq9c z6>-|Z1@!ev7rT<7jr@1Q!Ze|X44Pmi8%_OXPgSjvw`K6j4vxdzt(|S8(x0Z#k5HRV zUI+xCynnRPjRMBviUVIOO(`zL>1JnQphG(U`bz$hqaaD{`_9tRYhi2*3N<2_7g-{? zi{*0AtNP$kOJwLN@hOv}W6+?8W9k@Cd+IQ?Q z1Fjbk>PHd#aovyXZLO!rU4KGsn{zr2<$h)R?)tj>>huVu4p<&_Z(fSEQRIQB&rP8^ zWKRu+fktJ4xhe&3wF)gXv*CXw&wr@;g0>nWr>4};5wi*7jNJ0mc_NPHyoJkqb634R zdWW%|mz2olPdcXO;gg%3mht0-5b~6ty{gPZv%0*0DMMspWrK@yQq_793D(ku& zWbCZ|SekaX`MakI0-dkSUVj2u>hXyMy@ch3N&eVzlUjVDZPQOTh(_CUAY;%}dcr`ou1_a#M7BhlUMYdVj_#^XMDQ zuPcyVZDSMNWA)t+(n5CMi-SJ-IT*ccGP?uh3C|Yii?@ zb!no&X^mK^I8ERSKi}x=4~>;MShkC6DQIJ?oQ%rLR%o)w7Y!246^`s%@5f0o3t{GB z+1=S_aKx-@60YmlaIo2d{SSWl*qn3t`NdbbxO1~f^|G@H_4U(}`!BYzz-JZ;nO|6s z4d1&Nj8q%=?b=a~Ty%GH2=-aIum=-BPA%dMDMUdb>~lhNc){7X;b^F{R@>_p zNzwo$gy-H7Ouq%*j6JW);DM zdgL-0(HwjS8?QOw`7|8Z5_t5zX2-$(_kSE%)MPw8Ncz$++}i$&CCiR@Xi31@p_{1o*$1+idkIzh;ICFuzPi{1NTS4keA0 z1~%ig1aP`T+>VrmDuU#QKzU9gaaa+2iOxikbTx&r6NMys457;3-e0%YW6fcQR0*V- z+Ua-(pyLf2u!-MkfqFK`R!x;FZ z3*y4uDKMH(YUTFC+tHOzUvC2prDW^<-|s|~?DrmFAL zm95TjUf9J-8ymU#IBR#3zDY|&@>iAUW~G>gKn1$Eq+MhEKJuaHff`I$5XFe)ddsOk z7G6ocV0-Erj4hCm+--|cfx)p=8n=_tkAeh7?$uOb zqwjgmnFUu_WtKmoZS-wbD@eBkZ0unzE`Gz|h*z6TTf7vk@YpDvC%MB3+rm^Y)oE#W zsgtnZ{d&ODKuA&JC^c`}_pe=SYyWh^Z?V1m3CNlA=v^U8-u+GDgM-jc=lP??8bG(F(4oNFf!>e~4eHW*T_R={E`WT<9eNZ3=Dx|UJR93(Q{52pG1jTQh2Q!5`l(S~tQbQ& zRdANl-Oo73`RN$GWgkHU1uM;v%WWSKw95-_c!SgdkQTZA?TyFd#MPb{V;bh)%wh4{ z)3Kf6B_MsY&*#L|owyM3p$C$T$XgG&Pbe0)=WCyan#3}zruwG0ioD|QO1~q{as?9J zN_mhG@-j2)>`~EF?o1i%kzbO-#CHZkmbWp4xVpFke~}!t?q(at#H^f;6$<%)6kjPCvdpZ6gCKAs@wQViF$s{2tQJ0UlcL}OKWQ%T1bs( z=u2(5Go~tX-;75&?fMq3y-CX!bSWV3L4lPTWe96CdTrw)B~rf9hG1PWP`a?a>lE+RA-VqnnwyIM;j5+KYP{`x8@tr5d8x3l`5BedY zr&GPA#b!Bl8|wri%&nmF7`%ZXBMZE6VKEtpU`{F`%y)fc%fx0L4Op{Fk@;a;k~dSb z0Jjf_wn+N@KgO-3$)Lmh`yn|!){CX!@bQ4$`mbX@=7L8zO$e%5{~1z77(5yJ%lRMi zqP=oYZycUPV`J^;CP8LZ<*W|K5c23Ur)@wC`u!T@!Bu1&_0dtsA!$j16MnZJlfN|{ z6=pM&rr^V-UL~~OI79t0+ob_vH4ZAQVqh|KBSSq%l5b{Bz%{lm$6Hbg$>1Wc-EVjS_P*r6o$#GUOxT#$la zc)gNPj%@5QuYH#TkWZFm496|EO^Nh#&m-0cC}7V5@?VZ*F5&OawQ0s|iVA_r-O9vc zP3FWR@`Uk^+Jo{+{8ss%0nEQfu}?h&&{q zo$7m3Y+sOxBS!~D7BK!8VTA2c4&3aJA7`M0n}7G~wB`Er&)DT1B`dXA&AgJ@p3o#8 zT!Weu=`&gb<-L22{CC$Tceh(Fe8B9w8Cws2W1$GxBP94iniHGb2-IOJY;Xq0*ll;P z(?J{(=|*SEq3h{kn95u_kds%|)(*n)d2XUh1L4G9mG|Xjgg~21$R31AT zr}QG^BC*;n7U%9FPmhn)&Pb*Pu41D+PgrY#%g?AA04nAT3JL1n7=Wl*whN-h?LG`Z zrBD&xZsYpHq%R?BquWgfn1-c$_P!zZ3k#GYwcmKW5Qizt^r=Mna#Xz)WTyEslM0*h z>;o1i=n3#4_dPO03NY3nA5GVu^JM-rtt%`mURa9CApBR51eGPVhTP#(1;}BaTY=(M zYR>f7_F%O_=yUn+{YS1?Z74OGv2lDtg8R|)e?+?Tm;ppYmYH$1>PTuIO_Mz0vac)@r$^%C zFO@Gbm2ZsMoR9+RoP)7P5q%&wX5A(`zQIvHL3oEx8utYRz+WGO;Yxe zEN#tA{_r1Bq?gJyk|#P9Rn)zVth6u(Cfva+d;coD zKwsE*9F!G|p4%hddzjuCrF^RUCDC@S^nf2y*h1tX>sBN=Lh_kU56U+mTZ#xUR%eq= zrzuNc)?_&zcU9DgAa2KqA`t_{d5VN}dEj@G4;O(tRl&i&+b+Uydxw&|?<$LX%JPt= zWf(l8{YQC7#j~;2y71`!^Tf?Eecs)FQ;LIhxpxm-;G?z?Y{x~?;q=3jYYs*uRe&nn zppij;#rIdEJtUB)Aff#bq<%a#cN%@47{|-R8BK5K@CUP>6dD@DNL|}u{qpsJiKnq$ zZBw6HmW1*4j{4=?u(%06Vsqt?lYKEYUvyjSm*~G3826h@_U1h>b;YgsXi`#ltpyQg zDace z#I26Tk}_wanDw=MeaO~3S4&&p7FzPIg$*fCUR^k|YuJUEeJJt9AC}=~ zbcerW7jVpTBRqeb1f1?RpI+Z)9scapU~j24TCy}99?e3q=uyX^Nb4o0E6n4Sz;SPn zzwI+CDL>a+zo&1aYJ>D<9zVfqhjVrmQDqhYhv{+2E*KP4EM)x|jq>YPSepxyk1@4( z!=}b^H=j{8A1Ngn-N)Q{bkZr#e;`$D6(3K0KhiJA;dISgt2MAsRddp(VcWvtVaIy) zsCQ!BXgt)gTHB7iQz3$c32 zuB~-wZzQC-rQUBLALl1?H+wL;G2{l&4s;ZlcSx3g7~>|r_F?Jh7~KddNLsr2 zqB+)Fe`brf&wbn_DsFd(WB>BR2fUnb=2~>S*LKzGa88On;Jns*t7CRO5~Y*|J%yaJ zwUn0@gceAQ!^afm`H#POnKAXk)M*;#Kmt@2<(OG1AnO}WNHbZm1-(Orb$Wt#AJO7D zZcWiJ|_#Y~)Dru7hOBzKesy`ez>;w>>7 z+~4aTcQtg(s;F}!W@O@j#&z5S%#)c?8|CnuBu|$KrGHb)_%`Al97s{rSxb&QyItlw zi@{*_H#pf!XTC>)*htiy^O(iaPEv&-CA(P|*hOQuy)m{RyG`)iZn5P0&le(%3OJB1 zPi*v#Bh1+|C@nAVq2NEK5tKmv59k!ySm%Y2{p*H_0P)?a7OuLzUFdh#1MEdBH3Xf1 zx?mt?85&U>e0d2}$3#w^)!2Y7Z&QQe)+>u3C(q6yVGI%i8-E#S$wfY6Uk>_g+goQ+ zn}(G`KT1>F-AL{=`h>Z}d?{mL(ubU&L-#+wGK#1uBm#DwaJHYH4z8y3fNuZnt6w_Y z40)z6wZg>k&3>KS(Q0v6Q@DR!E!4s3EY?J@4qg7Tvmt3M7PlZeZ}3cp^#V;GikCUK zV^0|C20_C`itI~EM^%W6W$+XbMMK9}x@XkvRHR9UUvk3=qV`tK2&|~IH5E)iUDJWQ zIINJ&ja|z!@NMci;jV68p8k_pg*uz>v4PTkr=!w?(w(SY?--rMpVP^f^X*eXHQBJg zYB{cy^QpEuZ6~&PAeL=K2dg^5?j8r;1_v2x?n`?~Mvs~N8%5~%4q)?jIY!rAB@XLU zExYdFMQi_&iN=jq^zuaRF1=3_wJb))C)u-b*_A0gN=hP&4^nuJ0YG>AeU&41aY?D< zx*ieJx}IY``Z+Dq-E(q6-ZExr^rUb3mn@Kb|C)~+xP~Wv(V{kuS11^uej&2m4Fm3L z@D0w>HVh7K2*&M4M9rE}m~t)on~7nWQ>&W`!Y0J093-y?_pj-5o>HYI(QXd-e3drD z;F#+#_`mZ4)+t^Zpkw7v@zZa1f1%JWzPaJX=mTeSW;Y&V=W$#%Im(db1$1sb& z2m~PuZTC!NpMnNrWOtxO%CC`O4Tr6A_(uE6=2~&eE2d{Eb!w`#GzU=wi^_8FvQjBr z+&*4>6AP(V!(cu7KCZ^LAkQ+oQ(LPtEQomc_E&C=#;9Fxcs!ahho7yGGH~H%_5y>W z7t+6E^cm!y$ON`Y&u`&qpksmxf5}xlq3eZ0DOE!=O%*lCkF#sXegawcxcGHCh;mLC zNp{EBQusq}4|(_i*Z}_(HZw7m$f=H5M<`+ATfz_eeIg+VE2F;llG4NUFyx`Qxqy=# zFprk*PWjX*RyDlAKv2OCekcVKuKR^LB7Olsnxr~SW-)5g$7XVe!ibPhNKzV3JSxMt zKJ~^+!Tjzx5G^PoN+mw76?w@+VPhZ9apTw0^9dchVBY4$!>DulmmYK>dFuZ|4GnWNV&gnQPGo)a{gLNPP4^(YwStThKCTXsh-DE!b9@dINK@+lMJgmvy@6l1EAuk zeI&I`&KA7?4^rj zkIwI&wvsigr=L7$;G14PC~+U@-=B#?W*W?aGy3;~`aPiQ%S`^$WVg+~>-KhN=?m3A zHAla{*AXJ$zA)#GPTe0?fDU0=dO94|g`K%KTpsDM3^GM_gY&0$L1fN0_QV^A*>^4i zP=4f6_wFDtHUu|K&qq+-bgl9u(_Z^6eDI380Xe{lh(z-;k5L1_Y#7vDJ1pjf39h!G zVJQ-e^Y#b@vD= zSUfVl}K+~ z*p%5@p=>?6;dVf|$k+wFe_h!I1T}E;Pv?a8FChV(>?wwajv}JodY8pjv~Wz&OYRO3 zVlLQ}m;@wp^TS-*2cj9^3F^eerL5?Tvg`(Y_t~ZKVd-yM{beU&!gzh*%IfNb%M(ug zqscjF;fO^C;%?t5`&+J#BZNWX(tp#ykp@}4QNCx;-+s3AT@naf5d5GR8l4d_y{L1) z?u$jtU-hAMxpIbhofTm*ZIRVDD^{L1{U)yI$e2)F^9|x9lt?;uigq|Kji+XJ2wL&PF zmW3TMOmlb8aDiQt$${3dd>>=-b0*oYuLx5|qSL_C?N{ha-Zi*xM|CVa?3ys5VXXH+ z(tO85tluD|;6F}@+dnRSnov&a|>TnH_g%pLP2tcpbA~c2)2{_RbSXo zkbBPIKm)QyD|A<40+rny0A4&D0@AGS@fq>ETRmK_W8ZP=wVjKC42euF$53ckY^ z?Nh+JqpdP*5HM#pwhH-DH}a~Gf&8z~63B0d25RAi`&VoWE9ikW_nftNe+nr4kt6!| z_bO!nmgKSLuT#nBcaL#I~PRZ%CAujWUM zhz;R;$ZoLjZNltn1=sG^I~4fG2LON-vYLi-Jz0qeMN?+GZ@PVJej(|g3!W$FDiWDW zy0$_6p$%{LpF-uK$l8($F8RXCaSH0AE+O^CM_yjm*W@~IbTsyIoua`S-TRU1Kk>=T zZhTzanj)6WPlcc#v0!0_*1R(N$v(wKhtGM|xb=4EzJ!0Cz(iLBG!37#D?JT@u2&;R zQ)^HO0r5U2plz)nPdsI`cj573|GFvg>kJ+E@#q?r#mj1t3Y7?d>+G6~`}R-M7=3#o zGC||KplNA6gX@)P3T=g{%!6U|z$_!9tZPwGZ?}*JBHq^}hFwS;T*aw-bdo@94WtiW zl7QlrI!-@sOpih4(##*>O{GO@S&sheHbz0iXeW_(0T2mL6yS~sE#cZ<>C;nM9nLaX zAzodrT3uBygGbBvuozgr0yM{{>ru(i^o$HcBdrSL!<7q*dI|^-s5dym?)~xpCC|y? z?~Rq+Okd}j_`6{~hy0~jU4|sVE~E)U9=ok(KiZYJ^|9I&;BvJB^1OG{J-H4qFy7L)OtB5 zl}z@cX}9Z+CY=lvl%OjJ#__Y{(=qv?Fdts5XkC{jX^-&&del$mI}w~198kKgw!gJ zuzQ6=A5oN@gmJDQlQNv^yumZR@?l^(nTT&9nF7#p~3~0|3=zu zdzk^vJsSxdI0ClpE{`ry=tK%Il>3V%=gwqtzs;x2;i%*F)W)SKEvvNZ-#LNz^GGKlx^k4@$EMIqU9q4eet5B_&J8raLN|v6yxW>aDIsbElD#^>3P+ z|M~vOKSgn1{0Uu+WF^*qf&vD5#`5ZSVW?M(L8KNl>u9dER*;kMpgoGWceTxj*A+d! z3kni5`y$Q|ZT1_3Y6Jh7wJhY}H?hDUg4{1?7Fo8S<#vT?Dqin&s=QvfsK0|yHvbR2 zZtz)?QI0Es{|)&!l#0hrA_qPy059d!P3)gYp|&oNyPra3)PAdP;v;mg-UaG9Ha7|; z=7aQNKC_~$@G)cHUJA36DoA*2^~A7;`c6rw2TBuXyyJPO!mewN#ew_%gi&O08v@p$ z9qHeK`K|9i_;`4z?L;SLfxU4yqqr#aRRZ)iJVLYx8gp!5)fd8y*`&YAsfA(!=ugYX zN8AiBKclHCOgTNTqp+*qLupdQHvodnL7~GVgw_Mi*TTEu3%5RZkffj*Q&a13SYBQO zC%s}1&7;kQO{zNMgucL_=)XUUR_7&cQMv7D(F}Ty3f29QId94w|AuvWqxkpCgcd5Q zih%1Z|ABB9QULy?`|#&MXrJDs5Z@mf(>Sj?;j?4yT+P^vphx<-!Xp}t7q@6Js6IKj zVz=K_K<9E@~S@{HM)n$QKH<`cjm1{#1BNo zIawx!4=H%re2=lHV;dhmIvU5;%xl@3v2Nf^1*ne0CUX%=W$L%IEm3+A0e2*BG&jAOZ=uYB&2MI=WgNltd zzU6z*D!qj}gVsBmN1~YZPp=dFEVtq>@KB4Nm>Y3B27<(TjioA!o2@K49CZo-$YDFN zJY@J%C%)#}rvhoW5xk3D0&sf&VKvt`rhNO$#Yz%p1XK9e`M@oWmZPU z=cx@O!2hxiWcJd8fS$}6c{81N#)d^>W?Su&A&!HT&&)1nMnV}Gc{U<$eJ8kq2n2Y4 z!W**B`Rf64*6VUVrm%!A-F%X>qCdx{5nn8Wh@H0okFBY9K_=@)d6-|(q{WqfUI&E>EG{k2 zrMa5-U(Xn<>Px{}pXes3oFI?L)={Jn*2OXSB)Abdh76nGQco{LXp2St*5&7CDsr?oM3J-pW;7b>g^FX!_e zc0mjG$9y>qGi>U$;wVmN?r%?T0lhxK^>?}vZcb(Z45`kdY=XRa#0d#)yi7IZNzr3B zvjE@|!R=5R*-_rt;+k%o#;&@5dcb1YVTSy5KS-bT#mChcQoby4Th9Tkxs@Y_>;XJv z(bhRiYrK$cKLY;DWQna7_q2g4vsjqmmFZ=V2i&JBOKa?D=R+4F{p`!lw$F;hS0O8K zlKc~q5BM)E;H88K_34=r_>5aQzak{l6rzMk1Qm;vx%d2vbdyU58oUp0UdV8Pzcx`@ zJG=iExB^H0@d**=;^%^mhc}{p)$*StIi#*KHZz8$ttIpg(@Lvs9c*D`Zv}1bymMlu z(%!5j-lYDh$i~^<&;YgB*Doc2M1m19Hr~VpC++Oj-f%ysAcBL)2vYjdxcAxE@{;Bi zEE%6|W`?c?256+Gi@LhHsG+07osezW+>!DzH_7lsHcv!6em)-8rghE>ThNcm)D10ikj_?+H`k zb^ESTluMidjEX{#+#5d54-x*)K?Ka03m?Y;kk)M`JdOea>XAkXyI1Q@@aoVVl5Twv zxMVq^&Rs&tv*!qwND=0vK!OISGZJEB5$@{;f2kL|-@QZlt-A=>e;7V%H{$j0^YC)) zMEH&z58pu}xq6dIb>;1QK-Rniq;=SJ6e$0c)NTx~RvjQC^OknqcuBH%_kR5G^gIFM zf8zvD=;mz*+p{0xM~)-n>;;6}xyMVIlk-uMO8qXw{ruqZ=PJlrb^6a-5P9R>xi`Z1 z9ZFLLerG}D!tsxuB53~7G&2za0$DM1G@?$Q$NRvb^ap+9%0ePeN%cn#x#I4;Fulo+ci+>IvSmDb}r^FCLjQks)kbxpZh!7z{ga{ELM2HX} zLWBqrB1DKN*eFt@2>w^JXi@%628bcd400I}Awq-*5h6s05FtW@2oWMgh!7z{ME*i% fjxUY-D}w(6s{_*uTen|g00000NkvXXu0mjfX+Oum literal 272488 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%0A***V(wp1@C5w)CyQI1o|!f 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 Z^O4F$4O%^k*mwkf6l7IoN~Mf^{{w1Hfb;+W diff --git a/samples/extensions/sparse_image/sparse_image.cpp b/samples/extensions/sparse_image/sparse_image.cpp index c7fccb1a8e..ecd8549570 100644 --- a/samples/extensions/sparse_image/sparse_image.cpp +++ b/samples/extensions/sparse_image/sparse_image.cpp @@ -94,12 +94,12 @@ void SparseImage::prepare_pipelines() VkPipelineVertexInputStateCreateInfo vertex_input = vkb::initializers::pipeline_vertex_input_state_create_info(); /* Binding description */ - std::array vertex_input_bindings = {vkb::initializers::vertex_input_binding_description(0, sizeof(SimpleVertex), VK_VERTEX_INPUT_RATE_VERTEX)}; + std::array vertex_input_bindings = {vkb::initializers::vertex_input_binding_description(0, sizeof(SimpleVertex), VK_VERTEX_INPUT_RATE_VERTEX)}; /* Attribute description */ - std::array vertex_input_attributes = { - vkb::initializers::vertex_input_attribute_description(0, 0, VK_FORMAT_R32G32_SFLOAT, offsetof(SimpleVertex, norm)), - vkb::initializers::vertex_input_attribute_description(0, 1, VK_FORMAT_R32G32_SFLOAT, offsetof(SimpleVertex, uv))}; + std::array vertex_input_attributes = { + vkb::initializers::vertex_input_attribute_description(0U, 0U, VK_FORMAT_R32G32_SFLOAT, offsetof(SimpleVertex, norm)), + vkb::initializers::vertex_input_attribute_description(0U, 1U, VK_FORMAT_R32G32_SFLOAT, offsetof(SimpleVertex, uv))}; vertex_input.vertexAttributeDescriptionCount = static_cast(vertex_input_attributes.size()); vertex_input.pVertexAttributeDescriptions = vertex_input_attributes.data(); @@ -108,7 +108,7 @@ void SparseImage::prepare_pipelines() // 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); + VkPipelineInputAssemblyStateCreateInfo input_assembly = vkb::initializers::pipeline_input_assembly_state_create_info(VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST, 0U, 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); @@ -116,10 +116,10 @@ void SparseImage::prepare_pipelines() // 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); + VkPipelineColorBlendStateCreateInfo blend = vkb::initializers::pipeline_color_blend_state_create_info(1U, &blend_attachment); // We will have one viewport and scissor box. - VkPipelineViewportStateCreateInfo viewport = vkb::initializers::pipeline_viewport_state_create_info(1, 1); + VkPipelineViewportStateCreateInfo viewport = vkb::initializers::pipeline_viewport_state_create_info(1U, 1U); // Enable depth testing (using reversed depth-buffer for increased precision). VkPipelineDepthStencilStateCreateInfo depth_stencil = vkb::initializers::pipeline_depth_stencil_state_create_info(VK_FALSE, VK_FALSE, VK_COMPARE_OP_NEVER); @@ -128,11 +128,11 @@ void SparseImage::prepare_pipelines() 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}; + 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{}; + std::array shader_stages{}; // Vertex stage of the pipeline shader_stages[0] = load_shader("sparse_image/sparse.vert", VK_SHADER_STAGE_VERTEX_BIT); @@ -151,7 +151,7 @@ void SparseImage::prepare_pipelines() 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)); + VK_CHECK(vkCreateGraphicsPipelines(get_device().get_handle(), pipeline_cache, 1U, &pipeline_create_info, nullptr, &sample_pipeline)); } void SparseImage::setup_camera() @@ -166,7 +166,7 @@ void SparseImage::setup_camera() /** * @brief Change the layout of the particular mip level. */ -void SparseImage::transition_image_layout(VkImage image, VkImageLayout old_layout, VkImageLayout new_layout, uint8_t mip_level) +void SparseImage::transition_mip_layout(VkImage image, VkImageLayout old_layout, VkImageLayout new_layout, uint8_t mip_level) { VkCommandBuffer command_buffer = get_device().create_command_buffer(VK_COMMAND_BUFFER_LEVEL_PRIMARY, true); @@ -180,15 +180,15 @@ void SparseImage::transition_image_layout(VkImage image, VkImageLayout old_layou barrier.subresourceRange.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT; barrier.subresourceRange.baseMipLevel = mip_level; barrier.subresourceRange.levelCount = 1U; - barrier.subresourceRange.baseArrayLayer = 0; - barrier.subresourceRange.layerCount = 1; + barrier.subresourceRange.baseArrayLayer = 0U; + barrier.subresourceRange.layerCount = 1U; VkPipelineStageFlags source_stage; VkPipelineStageFlags destination_stage; if (old_layout == VK_IMAGE_LAYOUT_UNDEFINED && new_layout == VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL) { - barrier.srcAccessMask = 0; + barrier.srcAccessMask = 0U; barrier.dstAccessMask = VK_ACCESS_TRANSFER_WRITE_BIT; source_stage = VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT; @@ -212,7 +212,7 @@ void SparseImage::transition_image_layout(VkImage image, VkImageLayout old_layou } else if (old_layout == VK_IMAGE_LAYOUT_UNDEFINED && new_layout == VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL) { - barrier.srcAccessMask = 0; + barrier.srcAccessMask = 0U; barrier.dstAccessMask = VK_ACCESS_SHADER_READ_BIT; source_stage = VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT; @@ -231,7 +231,7 @@ void SparseImage::transition_image_layout(VkImage image, VkImageLayout old_layou throw std::invalid_argument("Unsupported layout transition!"); } - vkCmdPipelineBarrier(command_buffer, source_stage, destination_stage, 0, 0, nullptr, 0, nullptr, 1, &barrier); + vkCmdPipelineBarrier(command_buffer, source_stage, destination_stage, 0U, 0U, nullptr, 0U, nullptr, 1U, &barrier); device->flush_command_buffer(command_buffer, queue, true); } @@ -243,8 +243,8 @@ void SparseImage::separate_single_row_data_block(uint8_t buffer[], const VkExten { for (size_t row = 0U; row < blockDim.height; row++) { - size_t position = (row + offset.y) * stride + offset.x * 4; - memcpy(&buffer[row * blockDim.width * 4], &virtual_texture.row_data_image->get_data()[position], blockDim.width * 4); + size_t position = (row + offset.y) * stride + offset.x * 4U; + memcpy(&buffer[row * blockDim.width * 4U], &virtual_texture.row_data_image->get_data()[position], blockDim.width * 4U); } } @@ -257,27 +257,15 @@ void SparseImage::bind_sparse_image() for (size_t count = 0U; count < virtual_texture.num_pages; count++) { - if (virtual_texture.bind_list.empty() == true) - { - virtual_texture.sparse_image_memory_bind[count].subresource.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT; - virtual_texture.sparse_image_memory_bind[count].memory = VK_NULL_HANDLE; - continue; - } - size_t page_index = virtual_texture.bind_list.front(); - if (count != page_index) + if ((virtual_texture.bind_list.empty() == true) || (count != page_index)) { virtual_texture.sparse_image_memory_bind[count].subresource.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT; virtual_texture.sparse_image_memory_bind[count].memory = VK_NULL_HANDLE; continue; } - if (virtual_texture.available_memory_index_list.empty() == true) - { - throw std::runtime_error("bind_sparse_image(): There is not enough memory available"); - } - virtual_texture.bind_list.pop_front(); if (virtual_texture.page_table[page_index].bound == true) @@ -286,6 +274,11 @@ void SparseImage::bind_sparse_image() } else { + if (virtual_texture.available_memory_index_list.empty() == true) + { + throw std::runtime_error("bind_sparse_image(): There is not enough memory available"); + } + size_t memory_block_index = virtual_texture.available_memory_index_list.front(); virtual_texture.available_memory_index_list.pop_front(); @@ -448,19 +441,19 @@ size_t SparseImage::get_memory_index(struct MemPageDescription mem_page_desc) */ void SparseImage::check_mip_page_requirements(std::list &mipgen_required_list, struct MemPageDescription mem_page_desc) { - if (mem_page_desc.mip_level == 0) + if (mem_page_desc.mip_level == 0U) { return; } struct MemPageDescription req_mem_page_desc; req_mem_page_desc.mip_level = mem_page_desc.mip_level - 1; - for (uint8_t y = 0; y < 2; y++) + for (uint8_t y = 0U; y < 2U; y++) { - for (uint8_t x = 0; x < 2; x++) + for (uint8_t x = 0U; x < 2U; x++) { - req_mem_page_desc.x = (mem_page_desc.x * 2) + x; - req_mem_page_desc.y = (mem_page_desc.y * 2) + y; + req_mem_page_desc.x = (mem_page_desc.x * 2U) + x; + req_mem_page_desc.y = (mem_page_desc.y * 2U) + y; size_t memory_index = get_memory_index(req_mem_page_desc); @@ -485,10 +478,10 @@ void SparseImage::get_memory_dependency_for_the_block(size_t column, size_t row, double width_on_screen_divider = 1.0 / on_screen_num_horizontal_blocks; double xLow = width_on_screen_divider * column; - double xHigh = width_on_screen_divider * (column + 1); + double xHigh = width_on_screen_divider * (column + 1U); double yLow = height_on_screen_divider * row; - double yHigh = height_on_screen_divider * (row + 1); + double yHigh = height_on_screen_divider * (row + 1U); double texel_width = virtual_texture.mip_properties[mip_level].width; double texel_height = virtual_texture.mip_properties[mip_level].height; @@ -627,7 +620,7 @@ void SparseImage::build_command_buffers() 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.clearValueCount = 2U; render_pass_begin_info.pClearValues = clear_values; for (int32_t i = 0; i < draw_cmd_buffers.size(); ++i) @@ -647,18 +640,18 @@ void SparseImage::build_command_buffers() // Set viewport dynamically VkViewport viewport = vkb::initializers::viewport(static_cast(width), static_cast(height), 0.0f, 1.0f); - vkCmdSetViewport(cmd, 0, 1, &viewport); + vkCmdSetViewport(cmd, 0U, 1U, &viewport); // Set scissor dynamically VkRect2D scissor = vkb::initializers::rect2D(width, height, 0, 0); - vkCmdSetScissor(cmd, 0, 1, &scissor); + vkCmdSetScissor(cmd, 0U, 1U, &scissor); - vkCmdBindDescriptorSets(draw_cmd_buffers[i], VK_PIPELINE_BIND_POINT_GRAPHICS, sample_pipeline_layout, 0, 1, &descriptor_set, 0, NULL); + vkCmdBindDescriptorSets(draw_cmd_buffers[i], VK_PIPELINE_BIND_POINT_GRAPHICS, sample_pipeline_layout, 0U, 1U, &descriptor_set, 0U, NULL); VkDeviceSize offsets[1] = {0}; - vkCmdBindVertexBuffers(draw_cmd_buffers[i], 0, 1, &vertex_buffer->get_handle(), offsets); - vkCmdBindIndexBuffer(draw_cmd_buffers[i], index_buffer->get_handle(), 0, VK_INDEX_TYPE_UINT16); - vkCmdDrawIndexed(draw_cmd_buffers[i], index_count, 1, 0, 0, 0); + vkCmdBindVertexBuffers(draw_cmd_buffers[i], 0U, 1U, &vertex_buffer->get_handle(), offsets); + vkCmdBindIndexBuffer(draw_cmd_buffers[i], index_buffer->get_handle(), 0U, VK_INDEX_TYPE_UINT16); + vkCmdDrawIndexed(draw_cmd_buffers[i], index_count, 1U, 0U, 0U, 0U); // Draw user interface. draw_ui(draw_cmd_buffers[i]); @@ -671,240 +664,253 @@ void SparseImage::build_command_buffers() } } - -void SparseImage::render(float delta_time) +void SparseImage::process_texture_blocks() { - if (!prepared) + uint8_t block_counter; + block_counter = 5U; + frame_counter++; + + while (virtual_texture.texture_block_update_list.empty() != true && block_counter != 0U) { - return; + block_counter--; + TextureBlock texture_block = virtual_texture.texture_block_update_list.front(); + virtual_texture.texture_block_update_list.pop_front(); + process_texture_block(texture_block); + virtual_texture.current_mip_table[texture_block.row][texture_block.column] = virtual_texture.new_mip_table[texture_block.row][texture_block.column]; } - if (camera.updated) + + if (virtual_texture.texture_block_update_list.empty() == true) { - update_mvp(); + transfer_finished = true; + init_transfer_finished = true; + } + else + { + transfer_finished = false; } - static bool transfer_finished = false; - static bool init_transfer_finished = false; - static uint8_t frame_counter = 0; - - switch (next_stage) + for (size_t i = 0U; i < virtual_texture.num_pages; i++) { - case SPARSE_IMAGE_CALCULATE_MIPS_TABLE_STAGE: - calculate_mips_table(current_mvp_transform, on_screen_num_vertical_blocks, on_screen_num_horizontal_blocks, virtual_texture.new_mip_table); - next_stage = SPARSE_IMAGE_COMPARE_MIPS_TABLE_STAGE; - break; + if (virtual_texture.page_table[i].render_required_list.empty() == false || virtual_texture.page_table[i].gen_mip_required == true) + { + virtual_texture.bind_list.push_front(i); + } + } - case SPARSE_IMAGE_COMPARE_MIPS_TABLE_STAGE: - compare_mips_table(); - if (virtual_texture.update_required == true) - { - next_stage = SPARSE_IMAGE_PROCESS_TEXTURE_BLOCKS_STAGE; - } - else - { - next_stage = SPARSE_IMAGE_CALCULATE_MIPS_TABLE_STAGE; - } - frame_counter = 0; - break; + virtual_texture.update_list.sort(); +} - case SPARSE_IMAGE_PROCESS_TEXTURE_BLOCKS_STAGE: - uint8_t block_counter; - block_counter = 5; - frame_counter++; +void SparseImage::update_and_generate() +{ + bind_sparse_image(); + while (virtual_texture.update_list.empty() == false) + { + uint8_t current_mip_level = 0xFF; // TODO possible problem with get_mip_level() - while (virtual_texture.texture_block_update_list.empty() != true && block_counter != 0) - { - block_counter--; - TextureBlock texture_block = virtual_texture.texture_block_update_list.front(); - virtual_texture.texture_block_update_list.pop_front(); - process_texture_block(texture_block); - virtual_texture.current_mip_table[texture_block.row][texture_block.column] = virtual_texture.new_mip_table[texture_block.row][texture_block.column]; - } + size_t memory_index = virtual_texture.update_list.front(); + virtual_texture.update_list.pop_front(); + + uint8_t mip_level = get_mip_level(memory_index); - if (virtual_texture.texture_block_update_list.empty() == true) + if (current_mip_level != mip_level) + { + if (mip_level == 0U) { - transfer_finished = true; - init_transfer_finished = true; + transition_mip_layout(virtual_texture.texture_image, VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL, VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, mip_level); } else { - transfer_finished = false; + transition_mip_layout(virtual_texture.texture_image, VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL, mip_level - 1U); + transition_mip_layout(virtual_texture.texture_image, VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL, VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, mip_level); } + current_mip_level = mip_level; + } - for (size_t i = 0U; i < virtual_texture.num_pages; i++) - { - if (virtual_texture.page_table[i].render_required_list.empty() == false || virtual_texture.page_table[i].gen_mip_required == true) - { - virtual_texture.bind_list.push_front(i); - } - } - - virtual_texture.update_list.sort(); - next_stage = SPARSE_IMAGE_UPDATE_AND_GENERATE_STAGE; - break; + if ((virtual_texture.page_table[memory_index].gen_mip_required == true || virtual_texture.page_table[memory_index].render_required_list.empty() == false) && virtual_texture.page_table[memory_index].bound == true && virtual_texture.page_table[memory_index].valid == false) + { + VkExtent2D block_extent{}; + block_extent.height = virtual_texture.sparse_image_memory_bind[memory_index].extent.height; + block_extent.width = virtual_texture.sparse_image_memory_bind[memory_index].extent.width; + + VkOffset2D block_offset{}; + block_offset.x = virtual_texture.sparse_image_memory_bind[memory_index].offset.x; + block_offset.y = virtual_texture.sparse_image_memory_bind[memory_index].offset.y; - case SPARSE_IMAGE_UPDATE_AND_GENERATE_STAGE: //TODO name - bind_sparse_image(); - while (virtual_texture.update_list.empty() == false) + if (mip_level == 0U) { - uint8_t current_mip_level = 0xFF; //TODO possible problem with get_mip_level() + std::vector temp_buffer; + temp_buffer.resize(virtual_texture.page_size); - size_t memory_index = virtual_texture.update_list.front(); - virtual_texture.update_list.pop_front(); + separate_single_row_data_block(temp_buffer.data(), block_extent, block_offset, virtual_texture.width * 4U); - uint8_t mip_level = get_mip_level(memory_index); + virtual_texture.single_page_buffer->update(temp_buffer, 0U); - if (current_mip_level != mip_level) - { - if (mip_level == 0U) - { - transition_image_layout(virtual_texture.texture_image, VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL, VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, mip_level); - } - else - { - transition_image_layout(virtual_texture.texture_image, VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL, mip_level - 1U); - transition_image_layout(virtual_texture.texture_image, VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL, VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, mip_level); - } - current_mip_level = mip_level; - } + VkMappedMemoryRange mapped_range{}; + mapped_range.sType = VK_STRUCTURE_TYPE_MAPPED_MEMORY_RANGE; + mapped_range.memory = virtual_texture.single_page_buffer->get_memory(); + mapped_range.offset = 0U; + mapped_range.size = virtual_texture.page_size; + vkFlushMappedMemoryRanges(device->get_handle(), 1U, &mapped_range); - if ((virtual_texture.page_table[memory_index].gen_mip_required == true || virtual_texture.page_table[memory_index].render_required_list.empty() == false) && virtual_texture.page_table[memory_index].bound == true && virtual_texture.page_table[memory_index].valid == false) - { - VkExtent2D block_extent{}; - block_extent.height = virtual_texture.sparse_image_memory_bind[memory_index].extent.height; - block_extent.width = virtual_texture.sparse_image_memory_bind[memory_index].extent.width; + VkCommandBuffer command_buffer = get_device().create_command_buffer(VK_COMMAND_BUFFER_LEVEL_PRIMARY, true); - VkOffset2D block_offset{}; - block_offset.x = virtual_texture.sparse_image_memory_bind[memory_index].offset.x; - block_offset.y = virtual_texture.sparse_image_memory_bind[memory_index].offset.y; + VkBufferImageCopy region{}; + region.bufferOffset = 0U; + region.bufferRowLength = 0U; + region.bufferImageHeight = 0U; - if (mip_level == 0U) - { - std::vector temp_buffer; - temp_buffer.resize(virtual_texture.page_size); + region.imageSubresource.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT; + region.imageSubresource.mipLevel = 0U; + region.imageSubresource.baseArrayLayer = 0U; + region.imageSubresource.layerCount = 1U; + + region.imageOffset = VkOffset3D({block_offset.x, block_offset.y, 0}); + region.imageExtent = VkExtent3D({block_extent.width, block_extent.height, 1U}); - separate_single_row_data_block(temp_buffer.data(), block_extent, block_offset, virtual_texture.width * 4U); + vkCmdCopyBufferToImage(command_buffer, virtual_texture.single_page_buffer->get_handle(), virtual_texture.texture_image, VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, 1U, ®ion); - virtual_texture.single_page_buffer->update(temp_buffer, 0U); + device->flush_command_buffer(command_buffer, queue, true); - VkMappedMemoryRange mapped_range{}; - mapped_range.sType = VK_STRUCTURE_TYPE_MAPPED_MEMORY_RANGE; - mapped_range.memory = virtual_texture.single_page_buffer->get_memory(); - mapped_range.offset = 0; - mapped_range.size = virtual_texture.page_size; - vkFlushMappedMemoryRanges(device->get_handle(), 1, &mapped_range); + virtual_texture.page_table[memory_index].valid = true; + } + else + { + VkCommandBuffer command_buffer = get_device().create_command_buffer(VK_COMMAND_BUFFER_LEVEL_PRIMARY, true); + + VkImageBlit blit_cmd{}; + blit_cmd.srcOffsets[0] = {(block_offset.x) * 2, (block_offset.y) * 2, 0}; + blit_cmd.srcOffsets[1] = {(block_offset.x + static_cast(block_extent.width)) * 2, (block_offset.y + static_cast(block_extent.height)) * 2, 1}; // TODO 1x1 mip + blit_cmd.srcSubresource.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT; + blit_cmd.srcSubresource.mipLevel = mip_level - 1U; + blit_cmd.srcSubresource.baseArrayLayer = 0U; + blit_cmd.srcSubresource.layerCount = 1U; + blit_cmd.dstOffsets[0] = {block_offset.x, block_offset.y, 0}; + blit_cmd.dstOffsets[1] = {block_offset.x + static_cast(block_extent.width), block_offset.y + static_cast(block_extent.height), 1}; // TODO 1x1 mip + blit_cmd.dstSubresource.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT; + blit_cmd.dstSubresource.mipLevel = mip_level; + blit_cmd.dstSubresource.baseArrayLayer = 0U; + blit_cmd.dstSubresource.layerCount = 1U; + + vkCmdBlitImage(command_buffer, + virtual_texture.texture_image, VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL, + virtual_texture.texture_image, VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, + 1U, &blit_cmd, + VK_FILTER_LINEAR); + + device->flush_command_buffer(command_buffer, queue, true); + virtual_texture.page_table[memory_index].valid = true; + } + } + } +} - VkCommandBuffer command_buffer = get_device().create_command_buffer(VK_COMMAND_BUFFER_LEVEL_PRIMARY, true); +void SparseImage::free_unused_memory() +{ + for (size_t i = 0U; i < virtual_texture.num_pages; i++) + { + if (virtual_texture.page_table[i].render_required_list.empty() == false) + { + virtual_texture.bind_list.push_front(i); + } + } - VkBufferImageCopy region{}; - region.bufferOffset = 0; - region.bufferRowLength = 0; - region.bufferImageHeight = 0; + bind_sparse_image(); - region.imageSubresource.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT; - region.imageSubresource.mipLevel = 0; - region.imageSubresource.baseArrayLayer = 0; - region.imageSubresource.layerCount = 1; + for (size_t i = 0U; i < virtual_texture.num_pages; i++) + { + virtual_texture.page_table[i].gen_mip_required = false; - region.imageOffset = VkOffset3D({block_offset.x, block_offset.y, 0}); - region.imageExtent = VkExtent3D({block_extent.width, block_extent.height, 1}); + if (virtual_texture.page_table[i].bound == true) + { + if (virtual_texture.page_table[i].render_required_list.empty() == true) + { + virtual_texture.free_list.push_front(i); + } + } + } - vkCmdCopyBufferToImage(command_buffer, virtual_texture.single_page_buffer->get_handle(), virtual_texture.texture_image, VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, 1, ®ion); + while (virtual_texture.free_list.empty() != true) + { + size_t index = virtual_texture.free_list.front(); + virtual_texture.free_list.pop_front(); - device->flush_command_buffer(command_buffer, queue, true); + virtual_texture.page_table[index].bound = false; + virtual_texture.page_table[index].valid = false; + virtual_texture.available_memory_index_list.push_back(virtual_texture.page_table[index].memory_index); + } +} - virtual_texture.page_table[memory_index].valid = true; - } - else - { - VkCommandBuffer command_buffer = get_device().create_command_buffer(VK_COMMAND_BUFFER_LEVEL_PRIMARY, true); - - VkImageBlit blit_cmd{}; - blit_cmd.srcOffsets[0] = {(block_offset.x) * 2, (block_offset.y) * 2, 0}; - blit_cmd.srcOffsets[1] = {(block_offset.x + static_cast(block_extent.width)) * 2, (block_offset.y + static_cast(block_extent.height)) * 2, 1}; // TODO 1x1 mip - blit_cmd.srcSubresource.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT; - blit_cmd.srcSubresource.mipLevel = mip_level - 1; - blit_cmd.srcSubresource.baseArrayLayer = 0; - blit_cmd.srcSubresource.layerCount = 1; - blit_cmd.dstOffsets[0] = {block_offset.x, block_offset.y, 0}; - blit_cmd.dstOffsets[1] = {block_offset.x + static_cast(block_extent.width), block_offset.y + static_cast(block_extent.height), 1}; // TODO 1x1 mip - blit_cmd.dstSubresource.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT; - blit_cmd.dstSubresource.mipLevel = mip_level; - blit_cmd.dstSubresource.baseArrayLayer = 0; - blit_cmd.dstSubresource.layerCount = 1; - - vkCmdBlitImage(command_buffer, - virtual_texture.texture_image, VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL, - virtual_texture.texture_image, VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, - 1, &blit_cmd, - VK_FILTER_LINEAR); - - device->flush_command_buffer(command_buffer, queue, true); - virtual_texture.page_table[memory_index].valid = true; - } - } - } - next_stage = SPARSE_IMAGE_FREE_MEMORY_STAGE; +void SparseImage::process_stage(enum Stages next_stage) +{ + switch (next_stage) + { + case SPARSE_IMAGE_CALCULATE_MIPS_TABLE_STAGE: + calculate_mips_table(current_mvp_transform, on_screen_num_vertical_blocks, on_screen_num_horizontal_blocks, virtual_texture.new_mip_table); + this->next_stage = SPARSE_IMAGE_COMPARE_MIPS_TABLE_STAGE; break; - case SPARSE_IMAGE_FREE_MEMORY_STAGE: - - for (size_t i = 0U; i < virtual_texture.num_pages; i++) + case SPARSE_IMAGE_COMPARE_MIPS_TABLE_STAGE: + compare_mips_table(); + if (virtual_texture.update_required == true) { - if (virtual_texture.page_table[i].render_required_list.empty() == false) - { - virtual_texture.bind_list.push_front(i); - } + this->next_stage = SPARSE_IMAGE_PROCESS_TEXTURE_BLOCKS_STAGE; } - - bind_sparse_image(); - - for (size_t i = 0U; i < virtual_texture.num_pages; i++) + else { - virtual_texture.page_table[i].gen_mip_required = false; - - if (virtual_texture.page_table[i].bound == true) - { - if (virtual_texture.page_table[i].render_required_list.empty() == true) - { - virtual_texture.free_list.push_front(i); - } - } + this->next_stage = SPARSE_IMAGE_CALCULATE_MIPS_TABLE_STAGE; } + frame_counter = 0U; + break; - while (virtual_texture.free_list.empty() != true) - { - size_t index = virtual_texture.free_list.front(); - virtual_texture.free_list.pop_front(); + case SPARSE_IMAGE_PROCESS_TEXTURE_BLOCKS_STAGE: + process_texture_blocks(); + this->next_stage = SPARSE_IMAGE_UPDATE_AND_GENERATE_STAGE; + break; - virtual_texture.page_table[index].bound = false; - virtual_texture.page_table[index].valid = false; - virtual_texture.available_memory_index_list.push_back(virtual_texture.page_table[index].memory_index); - } + case SPARSE_IMAGE_UPDATE_AND_GENERATE_STAGE: + update_and_generate(); + this->next_stage = SPARSE_IMAGE_FREE_UNUSED_MEMORY_STAGE; + break; - if (transfer_finished == false) + case SPARSE_IMAGE_FREE_UNUSED_MEMORY_STAGE: + free_unused_memory(); + if (init_transfer_finished && (frame_counter > 10U)) { - next_stage = SPARSE_IMAGE_PROCESS_TEXTURE_BLOCKS_STAGE; + this->next_stage = SPARSE_IMAGE_CALCULATE_MIPS_TABLE_STAGE; } - else + else if (transfer_finished == false) { - virtual_texture.update_required = false; - next_stage = SPARSE_IMAGE_CALCULATE_MIPS_TABLE_STAGE; + this->next_stage = SPARSE_IMAGE_PROCESS_TEXTURE_BLOCKS_STAGE; } - - if (init_transfer_finished && frame_counter > 10) + else { - next_stage = SPARSE_IMAGE_CALCULATE_MIPS_TABLE_STAGE; + virtual_texture.update_required = false; + this->next_stage = SPARSE_IMAGE_CALCULATE_MIPS_TABLE_STAGE; } break; - + default: break; } +} + +void SparseImage::render(float delta_time) +{ + if (!prepared) + { + return; + } + if (camera.updated) + { + update_mvp(); + } + + process_stage(next_stage); + ApiVulkanSample::prepare_frame(); - submit_info.commandBufferCount = 1; + submit_info.commandBufferCount = 1U; submit_info.pCommandBuffers = &draw_cmd_buffers[current_buffer]; - VK_CHECK(vkQueueSubmit(queue, 1, &submit_info, VK_NULL_HANDLE)); + VK_CHECK(vkQueueSubmit(queue, 1U, &submit_info, VK_NULL_HANDLE)); ApiVulkanSample::submit_frame(); } @@ -939,7 +945,6 @@ SparseImage::CalculateMipLevelData::CalculateMipLevelData(glm::mat4 mvp_transfor ax_horizontal.resize(vertical_num_blocks + 1U); } - void SparseImage::CalculateMipLevelData::calculate_mesh_coordinates() { glm::vec4 top_left(-100.0f, -100.0f, 0.0f, 1.0f); @@ -1035,8 +1040,8 @@ void SparseImage::CalculateMipLevelData::calculate_mesh_coordinates() */ void SparseImage::CalculateMipLevelData::calculate_mip_levels() { - size_t num_rows = mesh.size() - 1; - size_t num_columns = mesh[0].size() - 1; + size_t num_rows = mesh.size() - 1U; + size_t num_columns = mesh[0].size() - 1U; mip_table.resize(num_rows); for (auto &row : mip_table) @@ -1128,7 +1133,6 @@ void SparseImage::CalculateMipLevelData::calculate_mip_levels() } } - void SparseImage::create_vertex_buffer() { std::array vertices; @@ -1153,19 +1157,19 @@ void SparseImage::create_vertex_buffer() VkCommandBuffer command_buffer = get_device().create_command_buffer(VK_COMMAND_BUFFER_LEVEL_PRIMARY, true); VkBufferCopy copy_buffer_info{}; - copy_buffer_info.srcOffset = 0; - copy_buffer_info.dstOffset = 0; + copy_buffer_info.srcOffset = 0U; + copy_buffer_info.dstOffset = 0U; copy_buffer_info.size = vertices_size; - vkCmdCopyBuffer(command_buffer, staging_buffer->get_handle(), vertex_buffer->get_handle(), 1, ©_buffer_info); + vkCmdCopyBuffer(command_buffer, staging_buffer->get_handle(), vertex_buffer->get_handle(), 1U, ©_buffer_info); device->flush_command_buffer(command_buffer, queue, true); } void SparseImage::create_index_buffer() { - std::array indices = {0, 1, 2, 2, 3, 0}; - VkDeviceSize indices_size = sizeof(indices[0]) * indices.size(); - index_count = indices.size(); + std::array indices = {0U, 1U, 2U, 2U, 3U, 0U}; + VkDeviceSize indices_size = sizeof(indices[0]) * indices.size(); + index_count = indices.size(); std::unique_ptr staging_buffer; staging_buffer = std::make_unique(get_device(), indices_size, VK_BUFFER_USAGE_TRANSFER_SRC_BIT, VMA_MEMORY_USAGE_CPU_TO_GPU); @@ -1176,30 +1180,29 @@ void SparseImage::create_index_buffer() VkCommandBuffer command_buffer = get_device().create_command_buffer(VK_COMMAND_BUFFER_LEVEL_PRIMARY, true); VkBufferCopy copy_buffer_info{}; - copy_buffer_info.srcOffset = 0; - copy_buffer_info.dstOffset = 0; + copy_buffer_info.srcOffset = 0U; + copy_buffer_info.dstOffset = 0U; copy_buffer_info.size = indices_size; - vkCmdCopyBuffer(command_buffer, staging_buffer->get_handle(), index_buffer->get_handle(), 1, ©_buffer_info); + vkCmdCopyBuffer(command_buffer, staging_buffer->get_handle(), index_buffer->get_handle(), 1U, ©_buffer_info); device->flush_command_buffer(command_buffer, queue, true); } - /** * @brief Creating descriptor pool with size adjusted to use uniform buffer and image sampler */ void SparseImage::create_descriptor_pool() { - std::array pool_sizes = { - vkb::initializers::descriptor_pool_size(VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER, 1), - vkb::initializers::descriptor_pool_size(VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, 1), + std::array pool_sizes = { + vkb::initializers::descriptor_pool_size(VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER, 1U), + vkb::initializers::descriptor_pool_size(VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, 1U), }; VkDescriptorPoolCreateInfo pool_info = vkb::initializers::descriptor_pool_create_info( static_cast(pool_sizes.size()), pool_sizes.data(), - 1); + 1U); VK_CHECK(vkCreateDescriptorPool(get_device().get_handle(), &pool_info, VK_NULL_HANDLE, &descriptor_pool)); } @@ -1209,15 +1212,15 @@ void SparseImage::create_descriptor_pool() */ void SparseImage::create_descriptor_set_layout() { - std::array set_layout_bindings = { + std::array set_layout_bindings = { vkb::initializers::descriptor_set_layout_binding( VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER, VK_SHADER_STAGE_VERTEX_BIT, - 0), + 0U), vkb::initializers::descriptor_set_layout_binding( VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, VK_SHADER_STAGE_FRAGMENT_BIT, - 1), + 1U), }; VkDescriptorSetLayoutCreateInfo set_layout_create_info = @@ -1237,7 +1240,7 @@ void SparseImage::create_descriptor_sets() vkb::initializers::descriptor_set_allocate_info( descriptor_pool, &descriptor_set_layout, - 1); + 1U); VK_CHECK(vkAllocateDescriptorSets(get_device().get_handle(), &set_alloc_info, &descriptor_set)); @@ -1248,7 +1251,7 @@ void SparseImage::create_descriptor_sets() image_info.imageView = virtual_texture.texture_image_view; image_info.sampler = texture_sampler; - std::array write_descriptor_sets = { + std::array write_descriptor_sets = { vkb::initializers::write_descriptor_set( descriptor_set, VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER, @@ -1262,10 +1265,9 @@ void SparseImage::create_descriptor_sets() &image_info, 1U)}; - vkUpdateDescriptorSets(get_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(), 0U, nullptr); } - void SparseImage::create_uniform_buffer() { VkDeviceSize buffer_size = sizeof(struct MVP); @@ -1299,7 +1301,6 @@ void SparseImage::create_texture_sampler() VK_CHECK(vkCreateSampler(get_device().get_handle(), &sampler_info, nullptr, &texture_sampler)); } - /** * @brief Enabling features */ @@ -1327,13 +1328,13 @@ void SparseImage::create_sparse_texture_image() sparse_image_create_info.extent.width = static_cast(virtual_texture.width); sparse_image_create_info.extent.height = static_cast(virtual_texture.height); - sparse_image_create_info.extent.depth = 1; + sparse_image_create_info.extent.depth = 1U; virtual_texture.base_mip_level = 0U; virtual_texture.mip_levels = 5U; sparse_image_create_info.mipLevels = virtual_texture.mip_levels; - sparse_image_create_info.arrayLayers = 1; + sparse_image_create_info.arrayLayers = 1U; sparse_image_create_info.flags = VK_IMAGE_CREATE_SPARSE_BINDING_BIT | VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT; sparse_image_create_info.format = VK_FORMAT_R8G8B8A8_SRGB; @@ -1403,13 +1404,13 @@ void SparseImage::create_sparse_texture_image() virtual_texture.mip_properties[mip_level].num_columns = numColumns; virtual_texture.mip_properties[mip_level].num_rows = numRows; virtual_texture.mip_properties[mip_level].mip_num_pages = numRows * numColumns; - virtual_texture.mip_properties[mip_level].mip_base_page_index = mip_level > 0 ? virtual_texture.mip_properties[mip_level - 1].mip_base_page_index + virtual_texture.mip_properties[mip_level - 1].mip_num_pages : 0U; + virtual_texture.mip_properties[mip_level].mip_base_page_index = mip_level > 0U ? virtual_texture.mip_properties[mip_level - 1U].mip_base_page_index + virtual_texture.mip_properties[mip_level - 1U].mip_num_pages : 0U; - if (current_mip_height > 1) + if (current_mip_height > 1U) { current_mip_height /= 2U; } - if (current_mip_width > 1) + if (current_mip_width > 1U) { current_mip_width /= 2U; } @@ -1442,8 +1443,8 @@ void SparseImage::create_sparse_texture_image() virtual_texture.sparse_image_memory_bind.resize(virtual_texture.num_pages); // Setting the least detailed mip level to be constantly present in the memory (to avoid black spots on the screen) - size_t start_index = virtual_texture.mip_properties[virtual_texture.mip_levels - 1].mip_base_page_index; - size_t num_pages = virtual_texture.mip_properties[virtual_texture.mip_levels - 1].mip_num_pages; + size_t start_index = virtual_texture.mip_properties[virtual_texture.mip_levels - 1U].mip_base_page_index; + size_t num_pages = virtual_texture.mip_properties[virtual_texture.mip_levels - 1U].mip_num_pages; for (size_t page = start_index; page < (start_index + num_pages); page++) { @@ -1475,10 +1476,10 @@ void SparseImage::create_sparse_texture_image() VkMemoryAllocateInfo memory_allocate_info{}; memory_allocate_info.sType = VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO; - memory_allocate_info.allocationSize = virtual_texture.page_size * virtual_texture.mip_properties[0].mip_num_pages / 2; //TODO: what is the minimum memory required + memory_allocate_info.allocationSize = virtual_texture.page_size * virtual_texture.mip_properties[0].mip_num_pages / 2U; //TODO: what is the minimum memory required memory_allocate_info.memoryTypeIndex = get_device().get_memory_type(virtual_texture.mem_requirements.memoryTypeBits, VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT); - for (size_t i = 0U; i < (virtual_texture.mip_properties[0].mip_num_pages / 2); i++) //TODO: what is the minimum memory required + for (size_t i = 0U; i < (virtual_texture.mip_properties[0].mip_num_pages / 2U); i++) //TODO: what is the minimum memory required { virtual_texture.available_memory_index_list.push_back(i); } @@ -1489,14 +1490,14 @@ void SparseImage::create_sparse_texture_image() // Creating texture image view VkImageViewCreateInfo view_info = vkb::initializers::image_view_create_info(); - view_info.image = virtual_texture.texture_image; - view_info.viewType = VK_IMAGE_VIEW_TYPE_2D; - view_info.format = VK_FORMAT_R8G8B8A8_SRGB; - view_info.subresourceRange.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT; - view_info.subresourceRange.baseMipLevel = virtual_texture.base_mip_level; - view_info.subresourceRange.levelCount = virtual_texture.mip_levels; - view_info.subresourceRange.baseArrayLayer = 0; - view_info.subresourceRange.layerCount = 1; + view_info.image = virtual_texture.texture_image; + view_info.viewType = VK_IMAGE_VIEW_TYPE_2D; + view_info.format = VK_FORMAT_R8G8B8A8_SRGB; + view_info.subresourceRange.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT; + view_info.subresourceRange.baseMipLevel = virtual_texture.base_mip_level; + view_info.subresourceRange.levelCount = virtual_texture.mip_levels; + view_info.subresourceRange.baseArrayLayer = 0U; + view_info.subresourceRange.layerCount = 1U; VK_CHECK(vkCreateImageView(get_device().get_handle(), &view_info, nullptr, &virtual_texture.texture_image_view)); } diff --git a/samples/extensions/sparse_image/sparse_image.h b/samples/extensions/sparse_image/sparse_image.h index 486624e084..b73fc8a055 100644 --- a/samples/extensions/sparse_image/sparse_image.h +++ b/samples/extensions/sparse_image/sparse_image.h @@ -19,8 +19,8 @@ #include "api_vulkan_sample.h" -size_t const SPARSE_IMAGE_ON_SCREEN_HORIZONTAL_BLOCKS = 50; -size_t const SPARSE_IMAGE_ON_SCREEN_VERTICAL_BLOCKS = 30; +size_t const SPARSE_IMAGE_ON_SCREEN_HORIZONTAL_BLOCKS = 50U; +size_t const SPARSE_IMAGE_ON_SCREEN_VERTICAL_BLOCKS = 30U; double const SPARSE_IMAGE_FOV_DEGREES = 60.0; class SparseImage : public ApiVulkanSample @@ -34,7 +34,7 @@ class SparseImage : public ApiVulkanSample SPARSE_IMAGE_COMPARE_MIPS_TABLE_STAGE, SPARSE_IMAGE_PROCESS_TEXTURE_BLOCKS_STAGE, SPARSE_IMAGE_UPDATE_AND_GENERATE_STAGE, - SPARSE_IMAGE_FREE_MEMORY_STAGE, + SPARSE_IMAGE_FREE_UNUSED_MEMORY_STAGE, SPARSE_IMAGE_NUM_STAGES, }; @@ -177,7 +177,10 @@ class SparseImage : public ApiVulkanSample void calculate_mip_levels(); }; - enum Stages next_stage; + bool transfer_finished = false; + bool init_transfer_finished = false; + uint8_t frame_counter = 0U; + enum Stages next_stage = SPARSE_IMAGE_IDLE_STAGE; struct VirtualTexture virtual_texture; @@ -228,6 +231,10 @@ class SparseImage : public ApiVulkanSample void create_sparse_texture_image(); void update_mvp(); + void process_stage(enum Stages next_stage); + void free_unused_memory(); + void update_and_generate(); + void process_texture_blocks(); struct MemPageDescription get_mem_page_description(size_t memory_index); void calculate_mips_table(glm::mat4 mvp_transform, uint32_t numVerticalBlocks, uint32_t numHorizontalBlocks, std::vector> &mipTable); void compare_mips_table(); @@ -236,7 +243,7 @@ class SparseImage : public ApiVulkanSample void check_mip_page_requirements(std::list &mipgen_required_list, struct MemPageDescription mip_dependency); void bind_sparse_image(); void separate_single_row_data_block(uint8_t buffer[], const VkExtent2D blockDim, VkOffset2D offset, size_t stride); - void transition_image_layout(VkImage image, VkImageLayout old_layout, VkImageLayout new_layout, uint8_t mip_level); + void transition_mip_layout(VkImage image, VkImageLayout old_layout, VkImageLayout new_layout, uint8_t mip_level); uint8_t get_mip_level(size_t page_index); size_t get_memory_index(struct MemPageDescription mem_page_desc); diff --git a/shaders/sparse_image/sparse.frag b/shaders/sparse_image/sparse.frag index 5141693559..a17386fff3 100644 --- a/shaders/sparse_image/sparse.frag +++ b/shaders/sparse_image/sparse.frag @@ -25,13 +25,22 @@ layout(location = 0) in vec2 fragTexCoord; layout(location = 0) out vec4 fragOutColor; +float minLOD = 0.0f; //TODO: these should not be hardcoded +float maxLOD = 4.0f; + +vec3 color_blend_table[5] = +{ + {1.00, 1.00, 1.00}, + {0.80, 0.60, 0.40}, + {0.60, 0.80, 0.60}, + {0.40, 0.60, 0.80}, + {0.20, 0.20, 0.20}, +}; + void main() { - vec4 color = vec4(0.0); + vec4 color = vec4(0.0); - float minLOD = 0.0f; - float maxLOD = 4.0f; - int lod = 0; int residencyCode = sparseTextureLodARB(texSampler, fragTexCoord, lod, color); @@ -41,9 +50,7 @@ void main() { for(; (lod <= maxLOD) && !sparseTexelsResidentARB(residencyCode); lod += 1) { residencyCode = sparseTextureLodARB(texSampler, fragTexCoord, lod, color); - color.x = color.x / (lod * 5 + 1); - color.y = color.y / (lod * 5 + 1); - color.z = color.z / (lod * 5 + 1); + color.xyz = (color.xyz * color_blend_table[lod]); } } From 77e41b7ac16d2a2af05909de3fa4da4698d68ccf Mon Sep 17 00:00:00 2001 From: Grzegorz Smagacz Date: Fri, 22 Sep 2023 12:24:05 +0200 Subject: [PATCH 07/21] Clang Tidy Check fixes --- .../extensions/sparse_image/sparse_image.cpp | 21 +++++++++---------- .../extensions/sparse_image/sparse_image.h | 4 ++-- 2 files changed, 12 insertions(+), 13 deletions(-) diff --git a/samples/extensions/sparse_image/sparse_image.cpp b/samples/extensions/sparse_image/sparse_image.cpp index ecd8549570..9e4d67cb0a 100644 --- a/samples/extensions/sparse_image/sparse_image.cpp +++ b/samples/extensions/sparse_image/sparse_image.cpp @@ -16,7 +16,6 @@ */ #include "sparse_image.h" -#include SparseImage::SparseImage() { @@ -349,7 +348,7 @@ void SparseImage::process_texture_block(const TextureBlock &texture_block) { std::list memory_index_list; - if (texture_block.old_mip_level < virtual_texture.mip_levels) //TODO: This condition seems to be completely redundant but for some reason app is crashing with vector subscript being out of range. + if (texture_block.old_mip_level < virtual_texture.mip_levels) // TODO(GS): This condition seems to be completely redundant but for some reason app is crashing with vector subscript being out of range. { // Old value calculations and removal from the render required list get_memory_dependency_for_the_block(texture_block.column, texture_block.row, texture_block.old_mip_level, memory_index_list); @@ -415,7 +414,7 @@ struct SparseImage::MemPageDescription SparseImage::get_mem_page_description(siz struct MemPageDescription mem_page_description = {}; uint8_t mip_level = virtual_texture.mip_levels - 1U; - //TODO: use get_mip_level() instead + // TODO(GS): use get_mip_level() instead while (memory_index < virtual_texture.mip_properties[mip_level].mip_base_page_index && mip_level > virtual_texture.base_mip_level) { mip_level--; @@ -527,7 +526,7 @@ void SparseImage::compare_mips_table() process_texture_block(texture_block); virtual_texture.current_mip_table[y][x] = virtual_texture.new_mip_table[y][x]; } - //TODO: code multiplication + // TODO(GS): code multiplication else if ((virtual_texture.new_mip_table[y][x].mip_level != virtual_texture.current_mip_table[y][x].mip_level) && (virtual_texture.new_mip_table[y][x].on_screen == true)) { TextureBlock texture_block = {y, x, virtual_texture.current_mip_table[y][x].mip_level, virtual_texture.new_mip_table[y][x].mip_level, true}; @@ -543,7 +542,7 @@ void SparseImage::compare_mips_table() { if ((it->new_mip_level >= texture_block.new_mip_level) || (it == virtual_texture.texture_block_update_list.end())) { - virtual_texture.texture_block_update_list.insert(it, texture_block); //TODO: change mip level to double-type for a better block-priority results + virtual_texture.texture_block_update_list.insert(it, texture_block); // TODO(GS): change mip level to double-type for a better block-priority results break; } if (it != virtual_texture.texture_block_update_list.end()) @@ -553,7 +552,7 @@ void SparseImage::compare_mips_table() } } } - // TODO: code multiplication + // TODO(GS): code multiplication else if (virtual_texture.new_mip_table[y][x].on_screen == true && virtual_texture.current_mip_table[y][x].on_screen == false) { TextureBlock texture_block = {y, x, virtual_texture.current_mip_table[y][x].mip_level, virtual_texture.new_mip_table[y][x].mip_level, true}; @@ -705,7 +704,7 @@ void SparseImage::update_and_generate() bind_sparse_image(); while (virtual_texture.update_list.empty() == false) { - uint8_t current_mip_level = 0xFF; // TODO possible problem with get_mip_level() + uint8_t current_mip_level = 0xFF; // TODO(GS): possible problem with get_mip_level() size_t memory_index = virtual_texture.update_list.front(); virtual_texture.update_list.pop_front(); @@ -779,13 +778,13 @@ void SparseImage::update_and_generate() VkImageBlit blit_cmd{}; blit_cmd.srcOffsets[0] = {(block_offset.x) * 2, (block_offset.y) * 2, 0}; - blit_cmd.srcOffsets[1] = {(block_offset.x + static_cast(block_extent.width)) * 2, (block_offset.y + static_cast(block_extent.height)) * 2, 1}; // TODO 1x1 mip + blit_cmd.srcOffsets[1] = {(block_offset.x + static_cast(block_extent.width)) * 2, (block_offset.y + static_cast(block_extent.height)) * 2, 1}; // TODO(GS): 1x1 mip blit_cmd.srcSubresource.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT; blit_cmd.srcSubresource.mipLevel = mip_level - 1U; blit_cmd.srcSubresource.baseArrayLayer = 0U; blit_cmd.srcSubresource.layerCount = 1U; blit_cmd.dstOffsets[0] = {block_offset.x, block_offset.y, 0}; - blit_cmd.dstOffsets[1] = {block_offset.x + static_cast(block_extent.width), block_offset.y + static_cast(block_extent.height), 1}; // TODO 1x1 mip + blit_cmd.dstOffsets[1] = {block_offset.x + static_cast(block_extent.width), block_offset.y + static_cast(block_extent.height), 1}; // TODO(GS): 1x1 mip blit_cmd.dstSubresource.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT; blit_cmd.dstSubresource.mipLevel = mip_level; blit_cmd.dstSubresource.baseArrayLayer = 0U; @@ -1476,10 +1475,10 @@ void SparseImage::create_sparse_texture_image() VkMemoryAllocateInfo memory_allocate_info{}; memory_allocate_info.sType = VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO; - memory_allocate_info.allocationSize = virtual_texture.page_size * virtual_texture.mip_properties[0].mip_num_pages / 2U; //TODO: what is the minimum memory required + memory_allocate_info.allocationSize = virtual_texture.page_size * virtual_texture.mip_properties[0].mip_num_pages / 2U; // TODO(GS): what is the minimum memory required memory_allocate_info.memoryTypeIndex = get_device().get_memory_type(virtual_texture.mem_requirements.memoryTypeBits, VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT); - for (size_t i = 0U; i < (virtual_texture.mip_properties[0].mip_num_pages / 2U); i++) //TODO: what is the minimum memory required + for (size_t i = 0U; i < (virtual_texture.mip_properties[0].mip_num_pages / 2U); i++) // TODO(GS): what is the minimum memory required { virtual_texture.available_memory_index_list.push_back(i); } diff --git a/samples/extensions/sparse_image/sparse_image.h b/samples/extensions/sparse_image/sparse_image.h index b73fc8a055..155c94e0f0 100644 --- a/samples/extensions/sparse_image/sparse_image.h +++ b/samples/extensions/sparse_image/sparse_image.h @@ -63,8 +63,8 @@ class SparseImage : public ApiVulkanSample struct TextureBlock { - uint32_t row; - uint32_t column; + size_t row; + size_t column; uint8_t old_mip_level; uint8_t new_mip_level; bool on_screen; From 03d3fb6493d3d366f5e67f10a566fcfa79227e02 Mon Sep 17 00:00:00 2001 From: Grzegorz Smagacz Date: Fri, 22 Sep 2023 13:14:28 +0200 Subject: [PATCH 08/21] Clang Format Check fixes --- .../extensions/sparse_image/sparse_image.cpp | 85 +++++++++---------- .../extensions/sparse_image/sparse_image.h | 39 +++++---- 2 files changed, 60 insertions(+), 64 deletions(-) diff --git a/samples/extensions/sparse_image/sparse_image.cpp b/samples/extensions/sparse_image/sparse_image.cpp index 9e4d67cb0a..643ce9b9e8 100644 --- a/samples/extensions/sparse_image/sparse_image.cpp +++ b/samples/extensions/sparse_image/sparse_image.cpp @@ -40,8 +40,8 @@ void SparseImage::load_assets() VkExtent3D tex_extent = virtual_texture.row_data_image->get_extent(); VkDeviceSize image_size = tex_extent.width * tex_extent.height * 4U; - virtual_texture.width = tex_extent.width; - virtual_texture.height = tex_extent.height; + virtual_texture.width = tex_extent.width; + virtual_texture.height = tex_extent.height; } void SparseImage::create_sparse_bind_queue() @@ -105,7 +105,6 @@ void SparseImage::prepare_pipelines() vertex_input.vertexBindingDescriptionCount = static_cast(vertex_input_bindings.size()); vertex_input.pVertexBindingDescriptions = vertex_input_bindings.data(); - // 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, 0U, VK_FALSE); @@ -127,7 +126,7 @@ void SparseImage::prepare_pipelines() 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}; + 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. @@ -190,7 +189,7 @@ void SparseImage::transition_mip_layout(VkImage image, VkImageLayout old_layout, barrier.srcAccessMask = 0U; barrier.dstAccessMask = VK_ACCESS_TRANSFER_WRITE_BIT; - source_stage = VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT; + source_stage = VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT; destination_stage = VK_PIPELINE_STAGE_TRANSFER_BIT; } else if (old_layout == VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL && new_layout == VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL) @@ -198,7 +197,7 @@ void SparseImage::transition_mip_layout(VkImage image, VkImageLayout old_layout, barrier.srcAccessMask = VK_ACCESS_TRANSFER_WRITE_BIT; barrier.dstAccessMask = VK_ACCESS_SHADER_READ_BIT; - source_stage = VK_PIPELINE_STAGE_TRANSFER_BIT; + source_stage = VK_PIPELINE_STAGE_TRANSFER_BIT; destination_stage = VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT; } else if (old_layout == VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL && new_layout == VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL) @@ -214,7 +213,7 @@ void SparseImage::transition_mip_layout(VkImage image, VkImageLayout old_layout, barrier.srcAccessMask = 0U; barrier.dstAccessMask = VK_ACCESS_SHADER_READ_BIT; - source_stage = VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT; + source_stage = VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT; destination_stage = VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT; } else if (old_layout == VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL && new_layout == VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL) @@ -261,7 +260,7 @@ void SparseImage::bind_sparse_image() if ((virtual_texture.bind_list.empty() == true) || (count != page_index)) { virtual_texture.sparse_image_memory_bind[count].subresource.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT; - virtual_texture.sparse_image_memory_bind[count].memory = VK_NULL_HANDLE; + virtual_texture.sparse_image_memory_bind[count].memory = VK_NULL_HANDLE; continue; } @@ -348,7 +347,7 @@ void SparseImage::process_texture_block(const TextureBlock &texture_block) { std::list memory_index_list; - if (texture_block.old_mip_level < virtual_texture.mip_levels) // TODO(GS): This condition seems to be completely redundant but for some reason app is crashing with vector subscript being out of range. + if (texture_block.old_mip_level < virtual_texture.mip_levels) // TODO(GS): This condition seems to be completely redundant but for some reason app is crashing with vector subscript being out of range. { // Old value calculations and removal from the render required list get_memory_dependency_for_the_block(texture_block.column, texture_block.row, texture_block.old_mip_level, memory_index_list); @@ -365,9 +364,9 @@ void SparseImage::process_texture_block(const TextureBlock &texture_block) } } - if (texture_block.on_screen == false) - { - return; + if (texture_block.on_screen == false) + { + return; } // New value calculations and placing into update and render_required lists @@ -530,7 +529,7 @@ void SparseImage::compare_mips_table() else if ((virtual_texture.new_mip_table[y][x].mip_level != virtual_texture.current_mip_table[y][x].mip_level) && (virtual_texture.new_mip_table[y][x].on_screen == true)) { TextureBlock texture_block = {y, x, virtual_texture.current_mip_table[y][x].mip_level, virtual_texture.new_mip_table[y][x].mip_level, true}; - + if (virtual_texture.texture_block_update_list.empty()) { virtual_texture.texture_block_update_list.push_front(texture_block); @@ -542,7 +541,7 @@ void SparseImage::compare_mips_table() { if ((it->new_mip_level >= texture_block.new_mip_level) || (it == virtual_texture.texture_block_update_list.end())) { - virtual_texture.texture_block_update_list.insert(it, texture_block); // TODO(GS): change mip level to double-type for a better block-priority results + virtual_texture.texture_block_update_list.insert(it, texture_block); // TODO(GS): change mip level to double-type for a better block-priority results break; } if (it != virtual_texture.texture_block_update_list.end()) @@ -923,8 +922,8 @@ std::unique_ptr create_sparse_image() */ void SparseImage::calculate_mips_table(glm::mat4 mvp_transform, uint32_t numVerticalBlocks, uint32_t numHorizontalBlocks, std::vector> &mipTable) { - struct CalculateMipLevelData meshData(mvp_transform, VkExtent2D({static_cast(virtual_texture.width), static_cast(virtual_texture.height)}), VkExtent2D({static_cast(width), static_cast(height)}) , on_screen_num_vertical_blocks, on_screen_num_horizontal_blocks, virtual_texture.mip_levels); - + struct CalculateMipLevelData meshData(mvp_transform, VkExtent2D({static_cast(virtual_texture.width), static_cast(virtual_texture.height)}), VkExtent2D({static_cast(width), static_cast(height)}), on_screen_num_vertical_blocks, on_screen_num_horizontal_blocks, virtual_texture.mip_levels); + meshData.calculate_mesh_coordinates(); meshData.calculate_mip_levels(); @@ -935,7 +934,7 @@ SparseImage::CalculateMipLevelData::CalculateMipLevelData(glm::mat4 mvp_transfor mvp_transform(mvp_transform), texture_base_dim(texture_base_dim), screen_base_dim(screen_base_dim), mesh{0}, vertical_num_blocks(vertical_num_blocks), horizontal_num_blocks(horizontal_num_blocks), mip_levels(mip_levels) { mesh.resize(vertical_num_blocks + 1U); - for (auto& row : mesh) + for (auto &row : mesh) { row.resize(horizontal_num_blocks + 1U); } @@ -1000,14 +999,14 @@ void SparseImage::CalculateMipLevelData::calculate_mesh_coordinates() /** * @brief This is the very core function. It is responsible for calculating what level of detail is required for a particular BLOCK. - * + * * BLOCKS are just the abstraction units used to describe the texture on-screen. Each block is the same size. * Number of vertical and horizontal blocks is described by the global constants ON_SCREEN_VERTICAL_BLOCKS and ON_SCREEN_HORIZONTAL_BLOCKS. * These constants are completely arbitrary - the more blocks, the better precision, the greater calculation overhead. * * What this function does, is based on the mesh data created in calculate_mesh_coordinates(), for each node within a mesh it calculates: * "What is the ratio between x/y movement on the screen to the u/v movement on the texture?". - * + * * The idea is, that when moving pixel-by-pixel along the x or y axis on-screen, if the small on-screen step causes a significant step on-texture, then the area is far away from the observer and less-detailed mip-level is required. * The formula used for those calculations is: * @@ -1028,10 +1027,10 @@ void SparseImage::CalculateMipLevelData::calculate_mesh_coordinates() * - IMPORTANT: I assume that: * - each block is a parallelogram which is obviously not 1:1 true, but the more precise we get (the more blocks we split the texture into) the more accurate this statement is. * - the image is not "stretched' within a single block, which has the same rules as stated above. - * + * * With those assumption, I'm providing a parralel lines from the Ph point to the corresponding edges. This creates an another parrallelogram. * - * Variables named: ..vertical_vertical.. or ..vertical_horizontal_top.. should be understood as: + * Variables named: ..vertical_vertical.. or ..vertical_horizontal_top.. should be understood as: * This relates to the vertical step (from A --> B) and describes (the edge from pH to the corresponding vertical edge) or (describes the edge from the pH to the corresponding horizontal-top edge). * * Assuming that the image is not stretched within a single block, I calculate the ratio of for example (...vertical_vertical... / AB_vertical) or (...vertical_horizontal_top... / AC_horizontal). @@ -1051,7 +1050,7 @@ void SparseImage::CalculateMipLevelData::calculate_mip_levels() // Single, on-texture step in texels double dTu = texture_base_dim.width / (num_columns); double dTv = texture_base_dim.height / (num_rows); - + for (size_t row = 0U; row < num_rows; row += 1U) { for (size_t column = 0U; column < num_columns; column += 1U) @@ -1068,10 +1067,10 @@ void SparseImage::CalculateMipLevelData::calculate_mip_levels() double AC_horizontal = sqrt(pow(dIx_horizontal, 2) + pow(dIy_horizontal, 2)); // Coordinates of point H - double pH_vertical_x = mesh[row][column].x; - double pH_vertical_y = mesh[row + 1][column].y; + double pH_vertical_x = mesh[row][column].x; + double pH_vertical_y = mesh[row + 1][column].y; double pH_horizontal_x = mesh[row][column + 1].x; - double pH_horizontal_y = mesh[row][column].y; + double pH_horizontal_y = mesh[row][column].y; // Distance from horizontal and vertical point H, to A and C double pH_vertical_to_A = sqrt(pow(mesh[row][column].x - pH_vertical_x, 2) + pow(mesh[row][column].y - pH_vertical_y, 2)); @@ -1108,7 +1107,7 @@ void SparseImage::CalculateMipLevelData::calculate_mip_levels() double on_screen_pH_horizontal_vertical_left = sqrt(pow(pH_horizontal_x - x_horizontal_vertical_left, 2) + pow(pH_horizontal_y - y_horizontal_vertical_left, 2)); double on_screen_pH_horizontal_vertical_right = sqrt(pow(pH_horizontal_x - x_horizontal_vertical_right, 2) + pow(pH_horizontal_y - y_horizontal_vertical_right, 2)); - // On-texture counterparts of distances above + // On-texture counterparts of distances above double on_texture_pH_vertical_vertical = on_screen_pH_vertical_vertical / AC_horizontal * dTu; double on_texture_pH_vertical_horizontal_top = on_screen_pH_vertical_horizontal_top / AB_vertical * dTv; double on_texture_pH_vertical_horizontal_bottom = on_screen_pH_vertical_horizontal_bottom / AB_vertical * dTv; @@ -1126,7 +1125,7 @@ void SparseImage::CalculateMipLevelData::calculate_mip_levels() double delta = 1.0 * std::max(std::max(x_texture_to_screen_horizontal_ratio, y_texture_to_screen_horizontal_ratio), std::max(x_texture_to_screen_vertical_ratio, y_texture_to_screen_vertical_ratio)); double mip_level = std::min(static_cast(mip_levels - 1U), std::max(log2(delta), 0.0)); - mip_table[row][column].mip_level = static_cast(mip_level); + mip_table[row][column].mip_level = static_cast(mip_level); mip_table[row][column].on_screen = mesh[row][column].on_screen || mesh[row + 1][column].on_screen || mesh[row][column + 1].on_screen || mesh[row + 1][column + 1].on_screen; } } @@ -1138,19 +1137,19 @@ void SparseImage::create_vertex_buffer() VkDeviceSize vertices_size = sizeof(vertices[0]) * vertices.size(); vertices[0].norm = {-100.0f, -100.0f}; - vertices[1].norm = { 100.0f, -100.0f}; - vertices[2].norm = { 100.0f, 100.0f}; - vertices[3].norm = {-100.0f, 100.0f}; + vertices[1].norm = {100.0f, -100.0f}; + vertices[2].norm = {100.0f, 100.0f}; + vertices[3].norm = {-100.0f, 100.0f}; - vertices[0].uv = {0.0f, 0.0f}; - vertices[1].uv = {1.0f, 0.0f}; - vertices[2].uv = {1.0f, 1.0f}; - vertices[3].uv = {0.0f, 1.0f}; + vertices[0].uv = {0.0f, 0.0f}; + vertices[1].uv = {1.0f, 0.0f}; + vertices[2].uv = {1.0f, 1.0f}; + vertices[3].uv = {0.0f, 1.0f}; std::unique_ptr staging_buffer; staging_buffer = std::make_unique(get_device(), vertices_size, VK_BUFFER_USAGE_TRANSFER_SRC_BIT, VMA_MEMORY_USAGE_CPU_TO_GPU); vertex_buffer = std::make_unique(get_device(), vertices_size, VK_BUFFER_USAGE_TRANSFER_DST_BIT | VK_BUFFER_USAGE_VERTEX_BUFFER_BIT, VMA_MEMORY_USAGE_GPU_ONLY); - + staging_buffer->update(vertices.data(), vertices_size); VkCommandBuffer command_buffer = get_device().create_command_buffer(VK_COMMAND_BUFFER_LEVEL_PRIMARY, true); @@ -1315,7 +1314,6 @@ void SparseImage::request_gpu_features(vkb::PhysicalDevice &gpu) { throw std::runtime_error("Sparse binding not supported"); } - } void SparseImage::create_sparse_texture_image() @@ -1323,14 +1321,14 @@ void SparseImage::create_sparse_texture_image() //================================================================================================== // Creating an Image VkImageCreateInfo sparse_image_create_info = vkb::initializers::image_create_info(); - sparse_image_create_info.imageType = VK_IMAGE_TYPE_2D; + sparse_image_create_info.imageType = VK_IMAGE_TYPE_2D; sparse_image_create_info.extent.width = static_cast(virtual_texture.width); sparse_image_create_info.extent.height = static_cast(virtual_texture.height); sparse_image_create_info.extent.depth = 1U; - virtual_texture.base_mip_level = 0U; - virtual_texture.mip_levels = 5U; + virtual_texture.base_mip_level = 0U; + virtual_texture.mip_levels = 5U; sparse_image_create_info.mipLevels = virtual_texture.mip_levels; sparse_image_create_info.arrayLayers = 1U; @@ -1464,10 +1462,9 @@ void SparseImage::create_sparse_texture_image() virtual_texture.sparse_image_memory_bind[page_index].offset.y = ((page_index - virtual_texture.mip_properties[mipLevel].mip_base_page_index) / virtual_texture.mip_properties[mipLevel].num_columns) * virtual_texture.format_properties.imageGranularity.height; virtual_texture.sparse_image_memory_bind[page_index].offset.z = 0; - virtual_texture.sparse_image_memory_bind[page_index].extent.depth = virtual_texture.format_properties.imageGranularity.depth; + virtual_texture.sparse_image_memory_bind[page_index].extent.depth = virtual_texture.format_properties.imageGranularity.depth; virtual_texture.sparse_image_memory_bind[page_index].extent.width = (virtual_texture.mip_properties[mipLevel].width - virtual_texture.sparse_image_memory_bind[page_index].offset.x < virtual_texture.format_properties.imageGranularity.width) ? virtual_texture.mip_properties[mipLevel].width - virtual_texture.sparse_image_memory_bind[page_index].offset.x : virtual_texture.format_properties.imageGranularity.width; virtual_texture.sparse_image_memory_bind[page_index].extent.height = (virtual_texture.mip_properties[mipLevel].height - virtual_texture.sparse_image_memory_bind[page_index].offset.y < virtual_texture.format_properties.imageGranularity.height) ? virtual_texture.mip_properties[mipLevel].height - virtual_texture.sparse_image_memory_bind[page_index].offset.y : virtual_texture.format_properties.imageGranularity.height; - } //================================================================================================== @@ -1475,10 +1472,10 @@ void SparseImage::create_sparse_texture_image() VkMemoryAllocateInfo memory_allocate_info{}; memory_allocate_info.sType = VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO; - memory_allocate_info.allocationSize = virtual_texture.page_size * virtual_texture.mip_properties[0].mip_num_pages / 2U; // TODO(GS): what is the minimum memory required + memory_allocate_info.allocationSize = virtual_texture.page_size * virtual_texture.mip_properties[0].mip_num_pages / 2U; // TODO(GS): what is the minimum memory required memory_allocate_info.memoryTypeIndex = get_device().get_memory_type(virtual_texture.mem_requirements.memoryTypeBits, VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT); - for (size_t i = 0U; i < (virtual_texture.mip_properties[0].mip_num_pages / 2U); i++) // TODO(GS): what is the minimum memory required + for (size_t i = 0U; i < (virtual_texture.mip_properties[0].mip_num_pages / 2U); i++) // TODO(GS): what is the minimum memory required { virtual_texture.available_memory_index_list.push_back(i); } @@ -1488,7 +1485,7 @@ void SparseImage::create_sparse_texture_image() //================================================================================================== // Creating texture image view - VkImageViewCreateInfo view_info = vkb::initializers::image_view_create_info(); + VkImageViewCreateInfo view_info = vkb::initializers::image_view_create_info(); view_info.image = virtual_texture.texture_image; view_info.viewType = VK_IMAGE_VIEW_TYPE_2D; view_info.format = VK_FORMAT_R8G8B8A8_SRGB; diff --git a/samples/extensions/sparse_image/sparse_image.h b/samples/extensions/sparse_image/sparse_image.h index 155c94e0f0..4bba46f7bc 100644 --- a/samples/extensions/sparse_image/sparse_image.h +++ b/samples/extensions/sparse_image/sparse_image.h @@ -26,7 +26,6 @@ double const SPARSE_IMAGE_FOV_DEGREES = 60.0; class SparseImage : public ApiVulkanSample { public: - enum Stages { SPARSE_IMAGE_IDLE_STAGE, @@ -56,18 +55,18 @@ class SparseImage : public ApiVulkanSample size_t num_rows; size_t num_columns; size_t mip_num_pages; - size_t mip_base_page_index; + size_t mip_base_page_index; size_t width; size_t height; }; struct TextureBlock { - size_t row; - size_t column; - uint8_t old_mip_level; - uint8_t new_mip_level; - bool on_screen; + size_t row; + size_t column; + uint8_t old_mip_level; + uint8_t new_mip_level; + bool on_screen; }; struct MemPageDescription @@ -79,13 +78,13 @@ class SparseImage : public ApiVulkanSample struct PageTable { - bool bound; // bound via vkQueueBindSparse() - bool valid; // bound and contains valid data - bool gen_mip_required; // required for the mip generation - bool fixed; // not freed from the memory at any cases - size_t memory_index; // index from available_memory_index_list corresponding to this page + bool bound; // bound via vkQueueBindSparse() + bool valid; // bound and contains valid data + bool gen_mip_required; // required for the mip generation + bool fixed; // not freed from the memory at any cases + size_t memory_index; // index from available_memory_index_list corresponding to this page - std::list> render_required_list; // list holding information on what BLOCKS require this particular memory page to be valid for rendering + std::list> render_required_list; // list holding information on what BLOCKS require this particular memory page to be valid for rendering }; struct Point @@ -105,8 +104,8 @@ class SparseImage : public ApiVulkanSample { VkImage texture_image; VkImageView texture_image_view; - VkDeviceMemory texture_memory; - + VkDeviceMemory texture_memory; + // Dimensions size_t width; size_t height; @@ -115,8 +114,8 @@ class SparseImage : public ApiVulkanSample size_t num_pages; size_t page_size; - uint8_t base_mip_level; - uint8_t mip_levels; + uint8_t base_mip_level; + uint8_t mip_levels; std::vector mip_properties; std::vector> current_mip_table; @@ -154,7 +153,7 @@ class SparseImage : public ApiVulkanSample std::vector sparse_image_memory_bind; }; - struct CalculateMipLevelData + struct CalculateMipLevelData { std::vector> mesh; std::vector> mip_table; @@ -167,7 +166,7 @@ class SparseImage : public ApiVulkanSample std::vector ax_vertical; std::vector ax_horizontal; - glm::mat4 mvp_transform; + glm::mat4 mvp_transform; VkExtent2D texture_base_dim; VkExtent2D screen_base_dim; @@ -198,7 +197,7 @@ class SparseImage : public ApiVulkanSample VkPipeline sample_pipeline{}; VkPipelineLayout sample_pipeline_layout{}; - + VkDescriptorSetLayout descriptor_set_layout; VkDescriptorSet descriptor_set; VkSampler texture_sampler; From 38c906b0418a50d6106c02deef9e2a7da2932db5 Mon Sep 17 00:00:00 2001 From: Grzegorz Smagacz Date: Wed, 27 Sep 2023 13:12:24 +0200 Subject: [PATCH 09/21] * Rebased with main branch * Fixed run-time errors from validation layers * Changed .md to .adoc style --- samples/extensions/sparse_image/README.adoc | 112 ++++++++++++++++++ samples/extensions/sparse_image/README.md | 85 ------------- .../extensions/sparse_image/sparse_image.cpp | 52 +++++++- .../extensions/sparse_image/sparse_image.h | 2 +- 4 files changed, 161 insertions(+), 90 deletions(-) create mode 100644 samples/extensions/sparse_image/README.adoc delete mode 100644 samples/extensions/sparse_image/README.md diff --git a/samples/extensions/sparse_image/README.adoc b/samples/extensions/sparse_image/README.adoc new file mode 100644 index 0000000000..09b93cd4f4 --- /dev/null +++ b/samples/extensions/sparse_image/README.adoc @@ -0,0 +1,112 @@ +//// +- Copyright (c) 2023, Mobica Limited +- +- 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. +- +//// + +== Sparse image + +ifdef::site-gen-antora[] +TIP: The source for this sample can be found in the https://github.com/KhronosGroup/Vulkan-Samples/tree/main/samples/extensions/sparse_image[Khronos Vulkan samples github repository]. +endif::[] + +image::./images/sparse_image_screenshot.png[Sample] + +== Overview + +The usage of +https://registry.khronos.org/vulkan/site/spec/latest/chapters/sparsemem.html[Sparse +Resources] allows for less restrict memory binding in comparison to a +standard resource. + +The key differences between standard and sparse resources, showcased in +this sample are: + +* Sparse resources can be bound non-contiguously to one or more +VkDeviceMemory allocations; +* Sparse resources can be re-bound to different memory allocations over +the lifetime of the resource; + +The sample demonstrates usage of the Sparse Image feature by rendering a +high-resolution texture with only a fraction of the total image size +ACTUALLY allocated on the device’s memory. This is possible by +dynamically loading required memory areas, generating mip levels for +outer parts, removing unused memory and finally: binding an image in the +real-time. + +== Enabling features + +There are 3 features to be enabled: + +* sparseBinding; +* sparseResidencyImage2D; +* shaderResourceResidency; + +First two, are the key features required for the usage of the sparse +image resources. The last one - shaderResourceResidency, is required for +the fragment shader to be able to detect which parts of the image are +allocated in the memory. + +[source,c++] +---- +void SparseImage::request_gpu_features(vkb::PhysicalDevice &gpu) +{ + if (gpu.get_features().sparseBinding && gpu.get_features().sparseResidencyImage2D && gpu.get_features().shaderResourceResidency) + { + gpu.get_mutable_requested_features().sparseBinding = VK_TRUE; + gpu.get_mutable_requested_features().sparseResidencyImage2D = VK_TRUE; + gpu.get_mutable_requested_features().shaderResourceResidency = VK_TRUE; + } +---- + +== Enabling extensions + +There is a single extensions used in this sample: + +* GL_ARB_sparse_texture2; + +This extension is used only by the fragment shader, but requires +shaderResourceResidency feature to be enabled first. What this extension +does, is allowing the fragment to check if the memory for the particular +fragment is actually allocated or not. Because of this extension, it is +possible to keep checking the residency from the fragment shader, and +basically use the most detailed data available. + +[source,glsl] +---- +#extension GL_ARB_sparse_texture2 : enable +---- + +[source,glsl] +---- +for(; (lod <= maxLOD) && !sparseTexelsResidentARB(residencyCode); lod += 1) +{ + residencyCode = sparseTextureLodARB(texSampler, fragTexCoord, lod, color); +} +---- + +== Conclusion + +The primary usage of the sparse image feature is generally speaking +dedicated for cases where too much device’s memory is occupied. Keeping +a low-detailed mip-level constantly in the memory and dynamically +loading required areas when the camera changes, is the way to handle +terrain mega-textures. The downside of these solution is that there is a +possibility of a bottleneck problem when constantly transferring +required memory chunks from the CPU to the device. The other downside is +that since the application decides what memory is going to be allocated, +it must take care of the calculations such as: "`what level of detail is +required?`". This creates an unwanted CPU overhead. \ No newline at end of file diff --git a/samples/extensions/sparse_image/README.md b/samples/extensions/sparse_image/README.md deleted file mode 100644 index b55b02def0..0000000000 --- a/samples/extensions/sparse_image/README.md +++ /dev/null @@ -1,85 +0,0 @@ - - -# Sparse image - -![Sample](./images/sparse_image_screenshot.png) - -# Overview - -The usage of [Sparse Resources](https://registry.khronos.org/vulkan/site/spec/latest/chapters/sparsemem.html) allows for less restrict memory binding in comparison to a standard resource. - -The key differences between standard and sparse resources, showcased in this sample are: -- Sparse resources can be bound non-contiguously to one or more VkDeviceMemory allocations; -- Sparse resources can be re-bound to different memory allocations over the lifetime of the resource; - -The sample demonstrates usage of the Sparse Image feature by rendering a high-resolution texture with only a fraction of the total image size ACTUALLY allocated on the device's memory. -This is possible by dynamically loading required memory areas, generating mip levels for outer parts, removing unused memory and finally: binding an image in the real-time. - -# Enabling features - -There are 3 features to be enabled: -- sparseBinding; -- sparseResidencyImage2D; -- shaderResourceResidency; - -First two, are the key features required for the usage of the sparse image resources. -The last one - shaderResourceResidency, is required for the fragment shader to be able to detect which parts of the image are allocated in the memory. - -```C++ -void SparseImage::request_gpu_features(vkb::PhysicalDevice &gpu) -{ - if (gpu.get_features().sparseBinding && gpu.get_features().sparseResidencyImage2D && gpu.get_features().shaderResourceResidency) - { - gpu.get_mutable_requested_features().sparseBinding = VK_TRUE; - gpu.get_mutable_requested_features().sparseResidencyImage2D = VK_TRUE; - gpu.get_mutable_requested_features().shaderResourceResidency = VK_TRUE; - } -``` - -# Enabling extensions - -There is a single extensions used in this sample: -- GL_ARB_sparse_texture2; - -This extension is used only by the fragment shader, but requires shaderResourceResidency feature to be enabled first. -What this extension does, is allowing the fragment to check if the memory for the particular fragment is actually allocated or not. -Because of this extension, it is possible to keep checking the residency from the fragment shader, and basically use the most detailed data available. - -``` -#extension GL_ARB_sparse_texture2 : enable -``` - -``` -lod += 1; -for(; (lod <= maxLOD) && !sparseTexelsResidentARB(residencyCode); lod += 1) -{ - residencyCode = sparseTextureLodARB(texSampler, fragTexCoord, lod, color); - ... -} -``` - -# Conclusion - -The primary usage of the sparse image feature is generally speaking dedicated for cases where too much device's memory is occupied. -Keeping a low-detailed mip-level constantly in the memory and dynamically loading required areas when the camera changes, is the way to handle terrain megatextures. - -The downside of these solution is that there is a possibility of a bottleneck problem when constantly transfering required mmemory chunks from the CPU to the device. -The other downside is that since the application decides what memory is going to be allocated, it must take care of the calculations such as: "what level of detail is required?". -This creates an unwanted CPU overhead. diff --git a/samples/extensions/sparse_image/sparse_image.cpp b/samples/extensions/sparse_image/sparse_image.cpp index 643ce9b9e8..edbf976858 100644 --- a/samples/extensions/sparse_image/sparse_image.cpp +++ b/samples/extensions/sparse_image/sparse_image.cpp @@ -30,6 +30,10 @@ SparseImage::~SparseImage() vkDestroyPipeline(get_device().get_handle(), sample_pipeline, nullptr); vkDestroyPipelineLayout(get_device().get_handle(), sample_pipeline_layout, nullptr); vkDestroyDescriptorSetLayout(get_device().get_handle(), descriptor_set_layout, nullptr); + vkDestroyImageView(get_device().get_handle(), virtual_texture.texture_image_view, nullptr); + vkFreeMemory(get_device().get_handle(), virtual_texture.texture_memory, nullptr); + vkDestroyImage(get_device().get_handle(), virtual_texture.texture_image, nullptr); + vkDestroySampler(get_device().get_handle(), texture_sampler, nullptr); } } @@ -208,6 +212,14 @@ void SparseImage::transition_mip_layout(VkImage image, VkImageLayout old_layout, source_stage = VK_PIPELINE_STAGE_TRANSFER_BIT; destination_stage = VK_PIPELINE_STAGE_TRANSFER_BIT; } + else if (old_layout == VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL && new_layout == VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL) + { + barrier.srcAccessMask = VK_ACCESS_TRANSFER_READ_BIT; + barrier.dstAccessMask = VK_ACCESS_SHADER_READ_BIT; + + source_stage = VK_PIPELINE_STAGE_TRANSFER_BIT; + destination_stage = VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT; + } else if (old_layout == VK_IMAGE_LAYOUT_UNDEFINED && new_layout == VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL) { barrier.srcAccessMask = 0U; @@ -224,6 +236,14 @@ void SparseImage::transition_mip_layout(VkImage image, VkImageLayout old_layout, source_stage = VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT; destination_stage = VK_PIPELINE_STAGE_TRANSFER_BIT; } + else if (old_layout == VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL && new_layout == VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL) + { + barrier.srcAccessMask = VK_ACCESS_SHADER_READ_BIT; + barrier.dstAccessMask = VK_ACCESS_TRANSFER_READ_BIT; + + source_stage = VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT; + destination_stage = VK_PIPELINE_STAGE_TRANSFER_BIT; + } else { throw std::invalid_argument("Unsupported layout transition!"); @@ -701,10 +721,9 @@ void SparseImage::process_texture_blocks() void SparseImage::update_and_generate() { bind_sparse_image(); + uint8_t current_mip_level = 0xFF; // TODO(GS): possible problem with get_mip_level() while (virtual_texture.update_list.empty() == false) { - uint8_t current_mip_level = 0xFF; // TODO(GS): possible problem with get_mip_level() - size_t memory_index = virtual_texture.update_list.front(); virtual_texture.update_list.pop_front(); @@ -712,13 +731,23 @@ void SparseImage::update_and_generate() if (current_mip_level != mip_level) { + if (current_mip_level != 0xFF && current_mip_level != 0U) + { + transition_mip_layout(virtual_texture.texture_image, VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL, current_mip_level); + transition_mip_layout(virtual_texture.texture_image, VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL, VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL, current_mip_level - 1U); + } + else if (current_mip_level == 0U) + { + transition_mip_layout(virtual_texture.texture_image, VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL, current_mip_level); + } + if (mip_level == 0U) { transition_mip_layout(virtual_texture.texture_image, VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL, VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, mip_level); } else { - transition_mip_layout(virtual_texture.texture_image, VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL, mip_level - 1U); + transition_mip_layout(virtual_texture.texture_image, VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL, VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL, mip_level - 1U); transition_mip_layout(virtual_texture.texture_image, VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL, VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, mip_level); } current_mip_level = mip_level; @@ -800,6 +829,15 @@ void SparseImage::update_and_generate() } } } + if (current_mip_level != 0xFF && current_mip_level != 0U) + { + transition_mip_layout(virtual_texture.texture_image, VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL, current_mip_level); + transition_mip_layout(virtual_texture.texture_image, VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL, VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL, current_mip_level - 1U); + } + else if (current_mip_level == 0U) + { + transition_mip_layout(virtual_texture.texture_image, VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL, current_mip_level); + } } void SparseImage::free_unused_memory() @@ -1304,8 +1342,9 @@ void SparseImage::create_texture_sampler() */ void SparseImage::request_gpu_features(vkb::PhysicalDevice &gpu) { - if (gpu.get_features().sparseBinding && gpu.get_features().sparseResidencyImage2D && gpu.get_features().shaderResourceResidency) + if (gpu.get_features().sparseBinding && gpu.get_features().sparseResidencyImage2D && gpu.get_features().shaderResourceResidency && gpu.get_features().samplerAnisotropy) { + gpu.get_mutable_requested_features().samplerAnisotropy = VK_TRUE; gpu.get_mutable_requested_features().sparseBinding = VK_TRUE; gpu.get_mutable_requested_features().sparseResidencyImage2D = VK_TRUE; gpu.get_mutable_requested_features().shaderResourceResidency = VK_TRUE; @@ -1496,4 +1535,9 @@ void SparseImage::create_sparse_texture_image() view_info.subresourceRange.layerCount = 1U; VK_CHECK(vkCreateImageView(get_device().get_handle(), &view_info, nullptr, &virtual_texture.texture_image_view)); + + for (uint8_t mip_level = 0U; mip_level <= virtual_texture.mip_levels - 1U; mip_level++) + { + transition_mip_layout(virtual_texture.texture_image, VK_IMAGE_LAYOUT_UNDEFINED, VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL, mip_level); + } } diff --git a/samples/extensions/sparse_image/sparse_image.h b/samples/extensions/sparse_image/sparse_image.h index 4bba46f7bc..9d62fa2131 100644 --- a/samples/extensions/sparse_image/sparse_image.h +++ b/samples/extensions/sparse_image/sparse_image.h @@ -121,7 +121,7 @@ class SparseImage : public ApiVulkanSample std::vector> current_mip_table; std::vector> new_mip_table; - // Image containing a single, most detailed mip, allocated in the CPU memory, coppied to VRAM via stagging buffer single_page_buffer + // Image containing a single, most detailed mip, allocated in the CPU memory, coppied to VRAM via staging buffer single_page_buffer std::unique_ptr row_data_image; std::unique_ptr single_page_buffer; From 2cda0c3cf842a53b49f1a19f1d81af9e2c7412e6 Mon Sep 17 00:00:00 2001 From: Grzegorz Smagacz Date: Fri, 29 Sep 2023 12:27:08 +0200 Subject: [PATCH 10/21] * Now loading the least detailed mip level is done before the first frame is rendered. * Removed transition_mip_layout() and replaced it with vkb::image_layout_transition(). * Minor bugs and typos. --- samples/extensions/sparse_image/README.adoc | 4 +- .../extensions/sparse_image/sparse_image.cpp | 373 ++++++++---------- .../extensions/sparse_image/sparse_image.h | 14 +- 3 files changed, 180 insertions(+), 211 deletions(-) diff --git a/samples/extensions/sparse_image/README.adoc b/samples/extensions/sparse_image/README.adoc index 09b93cd4f4..881632198a 100644 --- a/samples/extensions/sparse_image/README.adoc +++ b/samples/extensions/sparse_image/README.adoc @@ -42,9 +42,9 @@ the lifetime of the resource; The sample demonstrates usage of the Sparse Image feature by rendering a high-resolution texture with only a fraction of the total image size -ACTUALLY allocated on the device’s memory. This is possible by +actually allocated on the device’s memory. This is possible by dynamically loading required memory areas, generating mip levels for -outer parts, removing unused memory and finally: binding an image in the +outer parts, removing unused memory and finally: binding an image in real-time. == Enabling features diff --git a/samples/extensions/sparse_image/sparse_image.cpp b/samples/extensions/sparse_image/sparse_image.cpp index edbf976858..1a3d5bff4d 100644 --- a/samples/extensions/sparse_image/sparse_image.cpp +++ b/samples/extensions/sparse_image/sparse_image.cpp @@ -30,18 +30,19 @@ SparseImage::~SparseImage() vkDestroyPipeline(get_device().get_handle(), sample_pipeline, nullptr); vkDestroyPipelineLayout(get_device().get_handle(), sample_pipeline_layout, nullptr); vkDestroyDescriptorSetLayout(get_device().get_handle(), descriptor_set_layout, nullptr); + vkDestroySampler(get_device().get_handle(), texture_sampler, nullptr); vkDestroyImageView(get_device().get_handle(), virtual_texture.texture_image_view, nullptr); - vkFreeMemory(get_device().get_handle(), virtual_texture.texture_memory, nullptr); vkDestroyImage(get_device().get_handle(), virtual_texture.texture_image, nullptr); - vkDestroySampler(get_device().get_handle(), texture_sampler, nullptr); + vkFreeMemory(get_device().get_handle(), virtual_texture.texture_memory, nullptr); } } void SparseImage::load_assets() { - virtual_texture.row_data_image = vkb::sg::Image::load("/textures/vulkan_logo_full.ktx", "/textures/vulkan_logo_full.ktx", vkb::sg::Image::ContentType::Color); + virtual_texture.raw_data_image = vkb::sg::Image::load("/textures/vulkan_logo_full.ktx", "/textures/vulkan_logo_full.ktx", vkb::sg::Image::ContentType::Color); - VkExtent3D tex_extent = virtual_texture.row_data_image->get_extent(); + assert(virtual_texture.raw_data_image->get_format() == VK_FORMAT_R8G8B8A8_SRGB); + VkExtent3D tex_extent = virtual_texture.raw_data_image->get_extent(); VkDeviceSize image_size = tex_extent.width * tex_extent.height * 4U; virtual_texture.width = tex_extent.width; @@ -80,8 +81,9 @@ bool SparseImage::prepare(const vkb::ApplicationOptions &options) build_command_buffers(); update_mvp(); + load_least_detailed_level(); - next_stage = SPARSE_IMAGE_COMPARE_MIPS_TABLE_STAGE; + next_stage = SPARSE_IMAGE_CALCULATE_MIPS_TABLE_STAGE; prepared = true; return true; @@ -165,104 +167,15 @@ void SparseImage::setup_camera() camera.translation_speed = 3.0f; } -/** - * @brief Change the layout of the particular mip level. - */ -void SparseImage::transition_mip_layout(VkImage image, VkImageLayout old_layout, VkImageLayout new_layout, uint8_t mip_level) -{ - VkCommandBuffer command_buffer = get_device().create_command_buffer(VK_COMMAND_BUFFER_LEVEL_PRIMARY, true); - - VkImageMemoryBarrier barrier{}; - barrier.sType = VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER; - barrier.oldLayout = old_layout; - barrier.newLayout = new_layout; - barrier.srcQueueFamilyIndex = VK_QUEUE_FAMILY_IGNORED; - barrier.dstQueueFamilyIndex = VK_QUEUE_FAMILY_IGNORED; - barrier.image = image; - barrier.subresourceRange.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT; - barrier.subresourceRange.baseMipLevel = mip_level; - barrier.subresourceRange.levelCount = 1U; - barrier.subresourceRange.baseArrayLayer = 0U; - barrier.subresourceRange.layerCount = 1U; - - VkPipelineStageFlags source_stage; - VkPipelineStageFlags destination_stage; - - if (old_layout == VK_IMAGE_LAYOUT_UNDEFINED && new_layout == VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL) - { - barrier.srcAccessMask = 0U; - barrier.dstAccessMask = VK_ACCESS_TRANSFER_WRITE_BIT; - - source_stage = VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT; - destination_stage = VK_PIPELINE_STAGE_TRANSFER_BIT; - } - else if (old_layout == VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL && new_layout == VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL) - { - barrier.srcAccessMask = VK_ACCESS_TRANSFER_WRITE_BIT; - barrier.dstAccessMask = VK_ACCESS_SHADER_READ_BIT; - - source_stage = VK_PIPELINE_STAGE_TRANSFER_BIT; - destination_stage = VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT; - } - else if (old_layout == VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL && new_layout == VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL) - { - barrier.srcAccessMask = VK_ACCESS_TRANSFER_WRITE_BIT; - barrier.dstAccessMask = VK_ACCESS_TRANSFER_READ_BIT; - - source_stage = VK_PIPELINE_STAGE_TRANSFER_BIT; - destination_stage = VK_PIPELINE_STAGE_TRANSFER_BIT; - } - else if (old_layout == VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL && new_layout == VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL) - { - barrier.srcAccessMask = VK_ACCESS_TRANSFER_READ_BIT; - barrier.dstAccessMask = VK_ACCESS_SHADER_READ_BIT; - - source_stage = VK_PIPELINE_STAGE_TRANSFER_BIT; - destination_stage = VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT; - } - else if (old_layout == VK_IMAGE_LAYOUT_UNDEFINED && new_layout == VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL) - { - barrier.srcAccessMask = 0U; - barrier.dstAccessMask = VK_ACCESS_SHADER_READ_BIT; - - source_stage = VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT; - destination_stage = VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT; - } - else if (old_layout == VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL && new_layout == VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL) - { - barrier.srcAccessMask = VK_ACCESS_SHADER_READ_BIT; - barrier.dstAccessMask = VK_ACCESS_TRANSFER_WRITE_BIT; - - source_stage = VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT; - destination_stage = VK_PIPELINE_STAGE_TRANSFER_BIT; - } - else if (old_layout == VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL && new_layout == VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL) - { - barrier.srcAccessMask = VK_ACCESS_SHADER_READ_BIT; - barrier.dstAccessMask = VK_ACCESS_TRANSFER_READ_BIT; - - source_stage = VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT; - destination_stage = VK_PIPELINE_STAGE_TRANSFER_BIT; - } - else - { - throw std::invalid_argument("Unsupported layout transition!"); - } - - vkCmdPipelineBarrier(command_buffer, source_stage, destination_stage, 0U, 0U, nullptr, 0U, nullptr, 1U, &barrier); - - device->flush_command_buffer(command_buffer, queue, true); -} - /** * @brief Copy a single-page, raw-pixel-data from the CPU memory into the stagging buffer. */ -void SparseImage::separate_single_row_data_block(uint8_t buffer[], const VkExtent2D blockDim, VkOffset2D offset, size_t stride) +void SparseImage::copy_single_raw_data_block(uint8_t buffer[], const VkExtent2D blockDim, VkOffset2D offset, size_t stride) { for (size_t row = 0U; row < blockDim.height; row++) { size_t position = (row + offset.y) * stride + offset.x * 4U; - memcpy(&buffer[row * blockDim.width * 4U], &virtual_texture.row_data_image->get_data()[position], blockDim.width * 4U); + memcpy(&buffer[row * blockDim.width * 4U], &virtual_texture.raw_data_image->get_data()[position], blockDim.width * 4U); } } @@ -275,39 +188,40 @@ void SparseImage::bind_sparse_image() for (size_t count = 0U; count < virtual_texture.num_pages; count++) { - size_t page_index = virtual_texture.bind_list.front(); + if (virtual_texture.bind_list.empty() == true) + { + virtual_texture.sparse_image_memory_bind[count].memory = VK_NULL_HANDLE; + continue; + } - if ((virtual_texture.bind_list.empty() == true) || (count != page_index)) + size_t page_index = virtual_texture.bind_list.front(); + if (count != page_index) { - virtual_texture.sparse_image_memory_bind[count].subresource.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT; - virtual_texture.sparse_image_memory_bind[count].memory = VK_NULL_HANDLE; + virtual_texture.sparse_image_memory_bind[count].memory = VK_NULL_HANDLE; continue; } virtual_texture.bind_list.pop_front(); - if (virtual_texture.page_table[page_index].bound == true) { continue; } - else + + if (virtual_texture.available_memory_index_list.empty() == true) { - if (virtual_texture.available_memory_index_list.empty() == true) - { - throw std::runtime_error("bind_sparse_image(): There is not enough memory available"); - } + throw std::runtime_error("bind_sparse_image(): There is not enough memory available"); + } - size_t memory_block_index = virtual_texture.available_memory_index_list.front(); - virtual_texture.available_memory_index_list.pop_front(); + size_t memory_block_index = virtual_texture.available_memory_index_list.front(); + virtual_texture.available_memory_index_list.pop_front(); - size_t pageOffset = virtual_texture.page_size * memory_block_index; + size_t pageOffset = virtual_texture.page_size * memory_block_index; - virtual_texture.page_table[page_index].memory_index = memory_block_index; - virtual_texture.page_table[page_index].bound = true; + virtual_texture.page_table[page_index].memory_index = memory_block_index; + virtual_texture.page_table[page_index].bound = true; - virtual_texture.sparse_image_memory_bind[count].memory = virtual_texture.texture_memory; - virtual_texture.sparse_image_memory_bind[count].memoryOffset = pageOffset; - } + virtual_texture.sparse_image_memory_bind[count].memory = virtual_texture.texture_memory; + virtual_texture.sparse_image_memory_bind[count].memoryOffset = pageOffset; } VkBindSparseInfo bind_sparse_info = vkb::initializers::bind_sparse_info(); @@ -699,8 +613,7 @@ void SparseImage::process_texture_blocks() if (virtual_texture.texture_block_update_list.empty() == true) { - transfer_finished = true; - init_transfer_finished = true; + transfer_finished = true; } else { @@ -729,115 +642,149 @@ void SparseImage::update_and_generate() uint8_t mip_level = get_mip_level(memory_index); + VkCommandBuffer command_buffer = get_device().create_command_buffer(VK_COMMAND_BUFFER_LEVEL_PRIMARY, true); + VkImageSubresourceRange subresource_range{}; + + subresource_range.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT; + subresource_range.baseArrayLayer = 0U; + subresource_range.layerCount = 1U; + subresource_range.levelCount = 1U; + if (current_mip_level != mip_level) { if (current_mip_level != 0xFF && current_mip_level != 0U) { - transition_mip_layout(virtual_texture.texture_image, VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL, current_mip_level); - transition_mip_layout(virtual_texture.texture_image, VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL, VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL, current_mip_level - 1U); + subresource_range.baseMipLevel = current_mip_level; + vkb::image_layout_transition(command_buffer, virtual_texture.texture_image, VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL, subresource_range); + + subresource_range.baseMipLevel = current_mip_level - 1U; + vkb::image_layout_transition(command_buffer, virtual_texture.texture_image, VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL, VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL, subresource_range); } else if (current_mip_level == 0U) { - transition_mip_layout(virtual_texture.texture_image, VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL, current_mip_level); + subresource_range.baseMipLevel = current_mip_level; + vkb::image_layout_transition(command_buffer, virtual_texture.texture_image, VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL, subresource_range); } if (mip_level == 0U) { - transition_mip_layout(virtual_texture.texture_image, VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL, VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, mip_level); + subresource_range.baseMipLevel = mip_level; + vkb::image_layout_transition(command_buffer, virtual_texture.texture_image, VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL, VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, subresource_range); } else { - transition_mip_layout(virtual_texture.texture_image, VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL, VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL, mip_level - 1U); - transition_mip_layout(virtual_texture.texture_image, VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL, VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, mip_level); + subresource_range.baseMipLevel = mip_level; + vkb::image_layout_transition(command_buffer, virtual_texture.texture_image, VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL, VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, subresource_range); + + subresource_range.baseMipLevel = mip_level - 1U; + vkb::image_layout_transition(command_buffer, virtual_texture.texture_image, VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL, VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL, subresource_range); } + + device->flush_command_buffer(command_buffer, queue, true); current_mip_level = mip_level; } - if ((virtual_texture.page_table[memory_index].gen_mip_required == true || virtual_texture.page_table[memory_index].render_required_list.empty() == false) && virtual_texture.page_table[memory_index].bound == true && virtual_texture.page_table[memory_index].valid == false) - { - VkExtent2D block_extent{}; - block_extent.height = virtual_texture.sparse_image_memory_bind[memory_index].extent.height; - block_extent.width = virtual_texture.sparse_image_memory_bind[memory_index].extent.width; + assert(virtual_texture.page_table[memory_index].gen_mip_required == true || virtual_texture.page_table[memory_index].render_required_list.empty() == false); + assert(virtual_texture.page_table[memory_index].bound == true); + assert(virtual_texture.page_table[memory_index].valid == false); - VkOffset2D block_offset{}; - block_offset.x = virtual_texture.sparse_image_memory_bind[memory_index].offset.x; - block_offset.y = virtual_texture.sparse_image_memory_bind[memory_index].offset.y; + VkExtent2D block_extent{}; + block_extent.height = virtual_texture.sparse_image_memory_bind[memory_index].extent.height; + block_extent.width = virtual_texture.sparse_image_memory_bind[memory_index].extent.width; - if (mip_level == 0U) - { - std::vector temp_buffer; - temp_buffer.resize(virtual_texture.page_size); + VkOffset2D block_offset{}; + block_offset.x = virtual_texture.sparse_image_memory_bind[memory_index].offset.x; + block_offset.y = virtual_texture.sparse_image_memory_bind[memory_index].offset.y; - separate_single_row_data_block(temp_buffer.data(), block_extent, block_offset, virtual_texture.width * 4U); + if (mip_level == 0U) + { + std::vector temp_buffer; + temp_buffer.resize(virtual_texture.page_size); - virtual_texture.single_page_buffer->update(temp_buffer, 0U); + copy_single_raw_data_block(temp_buffer.data(), block_extent, block_offset, virtual_texture.width * 4U); - VkMappedMemoryRange mapped_range{}; - mapped_range.sType = VK_STRUCTURE_TYPE_MAPPED_MEMORY_RANGE; - mapped_range.memory = virtual_texture.single_page_buffer->get_memory(); - mapped_range.offset = 0U; - mapped_range.size = virtual_texture.page_size; - vkFlushMappedMemoryRanges(device->get_handle(), 1U, &mapped_range); + virtual_texture.single_page_buffer->update(temp_buffer, 0U); - VkCommandBuffer command_buffer = get_device().create_command_buffer(VK_COMMAND_BUFFER_LEVEL_PRIMARY, true); + VkMappedMemoryRange mapped_range{}; + mapped_range.sType = VK_STRUCTURE_TYPE_MAPPED_MEMORY_RANGE; + mapped_range.memory = virtual_texture.single_page_buffer->get_memory(); + mapped_range.offset = 0U; + mapped_range.size = virtual_texture.page_size; + vkFlushMappedMemoryRanges(device->get_handle(), 1U, &mapped_range); - VkBufferImageCopy region{}; - region.bufferOffset = 0U; - region.bufferRowLength = 0U; - region.bufferImageHeight = 0U; + VkCommandBuffer command_buffer = get_device().create_command_buffer(VK_COMMAND_BUFFER_LEVEL_PRIMARY, true); - region.imageSubresource.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT; - region.imageSubresource.mipLevel = 0U; - region.imageSubresource.baseArrayLayer = 0U; - region.imageSubresource.layerCount = 1U; + VkBufferImageCopy region{}; + region.bufferOffset = 0U; + region.bufferRowLength = 0U; + region.bufferImageHeight = 0U; - region.imageOffset = VkOffset3D({block_offset.x, block_offset.y, 0}); - region.imageExtent = VkExtent3D({block_extent.width, block_extent.height, 1U}); + region.imageSubresource.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT; + region.imageSubresource.mipLevel = 0U; + region.imageSubresource.baseArrayLayer = 0U; + region.imageSubresource.layerCount = 1U; - vkCmdCopyBufferToImage(command_buffer, virtual_texture.single_page_buffer->get_handle(), virtual_texture.texture_image, VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, 1U, ®ion); + region.imageOffset = VkOffset3D({block_offset.x, block_offset.y, 0}); + region.imageExtent = VkExtent3D({block_extent.width, block_extent.height, 1U}); - device->flush_command_buffer(command_buffer, queue, true); + vkCmdCopyBufferToImage(command_buffer, virtual_texture.single_page_buffer->get_handle(), virtual_texture.texture_image, VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, 1U, ®ion); - virtual_texture.page_table[memory_index].valid = true; - } - else - { - VkCommandBuffer command_buffer = get_device().create_command_buffer(VK_COMMAND_BUFFER_LEVEL_PRIMARY, true); - - VkImageBlit blit_cmd{}; - blit_cmd.srcOffsets[0] = {(block_offset.x) * 2, (block_offset.y) * 2, 0}; - blit_cmd.srcOffsets[1] = {(block_offset.x + static_cast(block_extent.width)) * 2, (block_offset.y + static_cast(block_extent.height)) * 2, 1}; // TODO(GS): 1x1 mip - blit_cmd.srcSubresource.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT; - blit_cmd.srcSubresource.mipLevel = mip_level - 1U; - blit_cmd.srcSubresource.baseArrayLayer = 0U; - blit_cmd.srcSubresource.layerCount = 1U; - blit_cmd.dstOffsets[0] = {block_offset.x, block_offset.y, 0}; - blit_cmd.dstOffsets[1] = {block_offset.x + static_cast(block_extent.width), block_offset.y + static_cast(block_extent.height), 1}; // TODO(GS): 1x1 mip - blit_cmd.dstSubresource.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT; - blit_cmd.dstSubresource.mipLevel = mip_level; - blit_cmd.dstSubresource.baseArrayLayer = 0U; - blit_cmd.dstSubresource.layerCount = 1U; - - vkCmdBlitImage(command_buffer, - virtual_texture.texture_image, VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL, - virtual_texture.texture_image, VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, - 1U, &blit_cmd, - VK_FILTER_LINEAR); - - device->flush_command_buffer(command_buffer, queue, true); - virtual_texture.page_table[memory_index].valid = true; - } + device->flush_command_buffer(command_buffer, queue, true); + + virtual_texture.page_table[memory_index].valid = true; + } + else + { + VkCommandBuffer command_buffer = get_device().create_command_buffer(VK_COMMAND_BUFFER_LEVEL_PRIMARY, true); + + VkImageBlit blit_cmd{}; + blit_cmd.srcOffsets[0] = {(block_offset.x) * 2, (block_offset.y) * 2, 0}; + blit_cmd.srcOffsets[1] = {(block_offset.x + static_cast(block_extent.width)) * 2, (block_offset.y + static_cast(block_extent.height)) * 2, 1}; // TODO(GS): 1x1 mip + blit_cmd.srcSubresource.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT; + blit_cmd.srcSubresource.mipLevel = mip_level - 1U; + blit_cmd.srcSubresource.baseArrayLayer = 0U; + blit_cmd.srcSubresource.layerCount = 1U; + blit_cmd.dstOffsets[0] = {block_offset.x, block_offset.y, 0}; + blit_cmd.dstOffsets[1] = {block_offset.x + static_cast(block_extent.width), block_offset.y + static_cast(block_extent.height), 1}; // TODO(GS): 1x1 mip + blit_cmd.dstSubresource.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT; + blit_cmd.dstSubresource.mipLevel = mip_level; + blit_cmd.dstSubresource.baseArrayLayer = 0U; + blit_cmd.dstSubresource.layerCount = 1U; + + vkCmdBlitImage(command_buffer, + virtual_texture.texture_image, VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL, + virtual_texture.texture_image, VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, + 1U, &blit_cmd, + VK_FILTER_LINEAR); + + device->flush_command_buffer(command_buffer, queue, true); + virtual_texture.page_table[memory_index].valid = true; } } + + VkCommandBuffer command_buffer = get_device().create_command_buffer(VK_COMMAND_BUFFER_LEVEL_PRIMARY, true); + VkImageSubresourceRange subresource_range{}; + + subresource_range.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT; + subresource_range.baseArrayLayer = 0U; + subresource_range.layerCount = 1U; + subresource_range.levelCount = 1U; + if (current_mip_level != 0xFF && current_mip_level != 0U) { - transition_mip_layout(virtual_texture.texture_image, VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL, current_mip_level); - transition_mip_layout(virtual_texture.texture_image, VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL, VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL, current_mip_level - 1U); + subresource_range.baseMipLevel = current_mip_level; + vkb::image_layout_transition(command_buffer, virtual_texture.texture_image, VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL, subresource_range); + + subresource_range.baseMipLevel = current_mip_level - 1U; + vkb::image_layout_transition(command_buffer, virtual_texture.texture_image, VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL, VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL, subresource_range); } else if (current_mip_level == 0U) { - transition_mip_layout(virtual_texture.texture_image, VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL, current_mip_level); + subresource_range.baseMipLevel = current_mip_level; + vkb::image_layout_transition(command_buffer, virtual_texture.texture_image, VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL, subresource_range); } + + device->flush_command_buffer(command_buffer, queue, true); } void SparseImage::free_unused_memory() @@ -876,6 +823,18 @@ void SparseImage::free_unused_memory() } } +void SparseImage::load_least_detailed_level() +{ + set_least_detailed_level(); + compare_mips_table(); + while (virtual_texture.texture_block_update_list.empty() != true) + { + process_texture_blocks(); + update_and_generate(); + free_unused_memory(); + } +} + void SparseImage::process_stage(enum Stages next_stage) { switch (next_stage) @@ -910,7 +869,7 @@ void SparseImage::process_stage(enum Stages next_stage) case SPARSE_IMAGE_FREE_UNUSED_MEMORY_STAGE: free_unused_memory(); - if (init_transfer_finished && (frame_counter > 10U)) + if (frame_counter > 10U) { this->next_stage = SPARSE_IMAGE_CALCULATE_MIPS_TABLE_STAGE; } @@ -1355,6 +1314,18 @@ void SparseImage::request_gpu_features(vkb::PhysicalDevice &gpu) } } +void SparseImage::set_least_detailed_level() +{ + // Setting the least detailed mip level to be constantly present in the memory (to avoid black spots on the screen) + size_t start_index = virtual_texture.mip_properties[virtual_texture.mip_levels - 1U].mip_base_page_index; + size_t num_pages = virtual_texture.mip_properties[virtual_texture.mip_levels - 1U].mip_num_pages; + + for (size_t page = start_index; page < (start_index + num_pages); page++) + { + virtual_texture.page_table[page].fixed = true; + } +} + void SparseImage::create_sparse_texture_image() { //================================================================================================== @@ -1375,7 +1346,7 @@ void SparseImage::create_sparse_texture_image() sparse_image_create_info.flags = VK_IMAGE_CREATE_SPARSE_BINDING_BIT | VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT; sparse_image_create_info.format = VK_FORMAT_R8G8B8A8_SRGB; sparse_image_create_info.tiling = VK_IMAGE_TILING_OPTIMAL; - sparse_image_create_info.initialLayout = VK_IMAGE_LAYOUT_UNDEFINED; + sparse_image_create_info.initialLayout = VK_IMAGE_LAYOUT_PREINITIALIZED; sparse_image_create_info.usage = VK_IMAGE_USAGE_TRANSFER_DST_BIT | VK_IMAGE_USAGE_TRANSFER_SRC_BIT | VK_IMAGE_USAGE_SAMPLED_BIT; sparse_image_create_info.samples = VK_SAMPLE_COUNT_1_BIT; sparse_image_create_info.sharingMode = VK_SHARING_MODE_EXCLUSIVE; @@ -1478,15 +1449,6 @@ void SparseImage::create_sparse_texture_image() virtual_texture.sparse_image_memory_bind.resize(virtual_texture.num_pages); - // Setting the least detailed mip level to be constantly present in the memory (to avoid black spots on the screen) - size_t start_index = virtual_texture.mip_properties[virtual_texture.mip_levels - 1U].mip_base_page_index; - size_t num_pages = virtual_texture.mip_properties[virtual_texture.mip_levels - 1U].mip_num_pages; - - for (size_t page = start_index; page < (start_index + num_pages); page++) - { - virtual_texture.page_table[page].fixed = true; - } - // Setting the data constant data for memory page binding via vkQueueBindSparse() for (size_t page_index = 0U; page_index < virtual_texture.num_pages; page_index++) { @@ -1536,8 +1498,15 @@ void SparseImage::create_sparse_texture_image() VK_CHECK(vkCreateImageView(get_device().get_handle(), &view_info, nullptr, &virtual_texture.texture_image_view)); - for (uint8_t mip_level = 0U; mip_level <= virtual_texture.mip_levels - 1U; mip_level++) - { - transition_mip_layout(virtual_texture.texture_image, VK_IMAGE_LAYOUT_UNDEFINED, VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL, mip_level); - } + VkCommandBuffer command_buffer = get_device().create_command_buffer(VK_COMMAND_BUFFER_LEVEL_PRIMARY, true); + VkImageSubresourceRange subresource_range{}; + + subresource_range.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT; + subresource_range.baseArrayLayer = 0U; + subresource_range.layerCount = 1U; + subresource_range.levelCount = virtual_texture.mip_levels; + subresource_range.baseMipLevel = virtual_texture.base_mip_level; + + vkb::image_layout_transition(command_buffer, virtual_texture.texture_image, VK_IMAGE_LAYOUT_PREINITIALIZED, VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL, subresource_range); + device->flush_command_buffer(command_buffer, queue, true); } diff --git a/samples/extensions/sparse_image/sparse_image.h b/samples/extensions/sparse_image/sparse_image.h index 9d62fa2131..1a5ac4147a 100644 --- a/samples/extensions/sparse_image/sparse_image.h +++ b/samples/extensions/sparse_image/sparse_image.h @@ -122,7 +122,7 @@ class SparseImage : public ApiVulkanSample std::vector> new_mip_table; // Image containing a single, most detailed mip, allocated in the CPU memory, coppied to VRAM via staging buffer single_page_buffer - std::unique_ptr row_data_image; + std::unique_ptr raw_data_image; std::unique_ptr single_page_buffer; // Key table that includes data on which page is allocated to what memory block from the textureMemory vector @@ -176,10 +176,9 @@ class SparseImage : public ApiVulkanSample void calculate_mip_levels(); }; - bool transfer_finished = false; - bool init_transfer_finished = false; - uint8_t frame_counter = 0U; - enum Stages next_stage = SPARSE_IMAGE_IDLE_STAGE; + bool transfer_finished = false; + uint8_t frame_counter = 0U; + enum Stages next_stage = SPARSE_IMAGE_IDLE_STAGE; struct VirtualTexture virtual_texture; @@ -241,8 +240,9 @@ class SparseImage : public ApiVulkanSample void get_memory_dependency_for_the_block(size_t column, size_t row, uint8_t mip_level, std::list &index_list); void check_mip_page_requirements(std::list &mipgen_required_list, struct MemPageDescription mip_dependency); void bind_sparse_image(); - void separate_single_row_data_block(uint8_t buffer[], const VkExtent2D blockDim, VkOffset2D offset, size_t stride); - void transition_mip_layout(VkImage image, VkImageLayout old_layout, VkImageLayout new_layout, uint8_t mip_level); + void copy_single_raw_data_block(uint8_t buffer[], const VkExtent2D blockDim, VkOffset2D offset, size_t stride); + void load_least_detailed_level(); + void set_least_detailed_level(); uint8_t get_mip_level(size_t page_index); size_t get_memory_index(struct MemPageDescription mem_page_desc); From 88c30a27302373a4e90f1bd26096d674952a3922 Mon Sep 17 00:00:00 2001 From: Grzegorz Smagacz Date: Tue, 3 Oct 2023 14:44:30 +0200 Subject: [PATCH 11/21] * Added features from the UI level, now displaying memory-related stats + allow to toggle color highlighting * Added additional uniform buffer containing data needed by fragment shader * Removed call to bind_sparse_image() from free_unused_memory() as it is redundant * Merged UPDATE_AND_GENERATE and FREE_UNUSED_MEMORY stages * Removed virtual_texture.free_list as it is redundant * Replaced virtual_texture.bind_list with to_be_bound flag under the virtual_texture.page_table * Changed available_memory_index_list from std::list to std::vector * Minor bugs / code refactoring --- .../extensions/sparse_image/sparse_image.cpp | 228 ++++++++++-------- .../extensions/sparse_image/sparse_image.h | 45 ++-- shaders/sparse_image/sparse.frag | 20 +- shaders/sparse_image/sparse.vert | 6 +- 4 files changed, 165 insertions(+), 134 deletions(-) diff --git a/samples/extensions/sparse_image/sparse_image.cpp b/samples/extensions/sparse_image/sparse_image.cpp index 1a3d5bff4d..55a8f9a91e 100644 --- a/samples/extensions/sparse_image/sparse_image.cpp +++ b/samples/extensions/sparse_image/sparse_image.cpp @@ -68,7 +68,7 @@ bool SparseImage::prepare(const vkb::ApplicationOptions &options) create_vertex_buffer(); create_index_buffer(); - create_uniform_buffer(); + create_uniform_buffers(); create_sparse_bind_queue(); create_sparse_texture_image(); @@ -81,6 +81,7 @@ bool SparseImage::prepare(const vkb::ApplicationOptions &options) build_command_buffers(); update_mvp(); + update_frag_settings(); load_least_detailed_level(); next_stage = SPARSE_IMAGE_CALCULATE_MIPS_TABLE_STAGE; @@ -164,7 +165,7 @@ void SparseImage::setup_camera() camera.set_perspective(fov_degrees, static_cast(width) / static_cast(height), 0.1f, 512.0f); camera.set_rotation(glm::vec3(0.0f, 0.0f, 0.0f)); camera.set_translation(glm::vec3(0.0f, 0.0f, -50.0f)); - camera.translation_speed = 3.0f; + camera.translation_speed = 5.0f; } /** @@ -180,48 +181,38 @@ void SparseImage::copy_single_raw_data_block(uint8_t buffer[], const VkExtent2D } /** - * @brief Fill up the information on how the sparse image should be bound and call vkQueueBindSparse, based on the bind_list. + * @brief Fill up the information on how the sparse image should be bound and call vkQueueBindSparse. */ void SparseImage::bind_sparse_image() { - virtual_texture.bind_list.sort(); - - for (size_t count = 0U; count < virtual_texture.num_pages; count++) + for (size_t page = 0U; page < virtual_texture.page_table.size(); page++) { - if (virtual_texture.bind_list.empty() == true) + if (!virtual_texture.page_table[page].to_be_bound) { - virtual_texture.sparse_image_memory_bind[count].memory = VK_NULL_HANDLE; + virtual_texture.sparse_image_memory_bind[page].memory = VK_NULL_HANDLE; continue; } - size_t page_index = virtual_texture.bind_list.front(); - if (count != page_index) + virtual_texture.page_table[page].to_be_bound = false; + if (virtual_texture.page_table[page].valid == true) { - virtual_texture.sparse_image_memory_bind[count].memory = VK_NULL_HANDLE; continue; } - virtual_texture.bind_list.pop_front(); - if (virtual_texture.page_table[page_index].bound == true) + if (virtual_texture.available_memory_indices.empty()) { - continue; + throw std::runtime_error(std::string(__func__) + "(): There is not enough memory available"); } - if (virtual_texture.available_memory_index_list.empty() == true) - { - throw std::runtime_error("bind_sparse_image(): There is not enough memory available"); - } - - size_t memory_block_index = virtual_texture.available_memory_index_list.front(); - virtual_texture.available_memory_index_list.pop_front(); + size_t memory_block_index = virtual_texture.available_memory_indices.back(); + virtual_texture.available_memory_indices.pop_back(); size_t pageOffset = virtual_texture.page_size * memory_block_index; - virtual_texture.page_table[page_index].memory_index = memory_block_index; - virtual_texture.page_table[page_index].bound = true; + virtual_texture.page_table[page].memory_index = memory_block_index; - virtual_texture.sparse_image_memory_bind[count].memory = virtual_texture.texture_memory; - virtual_texture.sparse_image_memory_bind[count].memoryOffset = pageOffset; + virtual_texture.sparse_image_memory_bind[page].memory = virtual_texture.texture_memory; + virtual_texture.sparse_image_memory_bind[page].memoryOffset = pageOffset; } VkBindSparseInfo bind_sparse_info = vkb::initializers::bind_sparse_info(); @@ -249,7 +240,15 @@ void SparseImage::bind_sparse_image() bind_sparse_info.waitSemaphoreCount = 0U; bind_sparse_info.pWaitSemaphores = nullptr; - vkQueueBindSparse(sparse_queue, 1U, &bind_sparse_info, nullptr); + VkFence fence; + VkFenceCreateInfo fence_info{}; + fence_info.sType = VK_STRUCTURE_TYPE_FENCE_CREATE_INFO; + fence_info.flags = VK_FLAGS_NONE; + + VK_CHECK(vkCreateFence(get_device().get_handle(), &fence_info, nullptr, &fence)); + vkQueueBindSparse(sparse_queue, 1U, &bind_sparse_info, fence); + VK_CHECK(vkWaitForFences(get_device().get_handle(), 1, &fence, VK_TRUE, DEFAULT_FENCE_TIMEOUT)); + vkDestroyFence(get_device().get_handle(), fence, nullptr); } /** @@ -286,19 +285,19 @@ void SparseImage::process_texture_block(const TextureBlock &texture_block) // Old value calculations and removal from the render required list get_memory_dependency_for_the_block(texture_block.column, texture_block.row, texture_block.old_mip_level, memory_index_list); - while (memory_index_list.empty() != true) + while (!memory_index_list.empty()) { size_t memory_index = memory_index_list.front(); memory_index_list.pop_front(); - if (virtual_texture.page_table[memory_index].fixed != true) + if (!virtual_texture.page_table[memory_index].fixed) { virtual_texture.page_table[memory_index].render_required_list.remove({texture_block.old_mip_level, texture_block.column, texture_block.row}); } } } - if (texture_block.on_screen == false) + if (!texture_block.on_screen) { return; } @@ -306,7 +305,7 @@ void SparseImage::process_texture_block(const TextureBlock &texture_block) // New value calculations and placing into update and render_required lists get_memory_dependency_for_the_block(texture_block.column, texture_block.row, texture_block.new_mip_level, memory_index_list); - while (memory_index_list.empty() != true) + while (!memory_index_list.empty()) { size_t memory_index = memory_index_list.front(); memory_index_list.pop_front(); @@ -314,7 +313,7 @@ void SparseImage::process_texture_block(const TextureBlock &texture_block) virtual_texture.page_table[memory_index].render_required_list.remove({texture_block.new_mip_level, texture_block.column, texture_block.row}); virtual_texture.page_table[memory_index].render_required_list.push_front({texture_block.new_mip_level, texture_block.column, texture_block.row}); - if (virtual_texture.page_table[memory_index].valid == false) + if (!virtual_texture.page_table[memory_index].valid) { virtual_texture.update_list.remove(memory_index); virtual_texture.update_list.push_back(memory_index); @@ -329,7 +328,7 @@ void SparseImage::process_texture_block(const TextureBlock &texture_block) mipgen_required_list.push_front(mem_page_description); - while (mipgen_required_list.empty() != true) + while (!mipgen_required_list.empty()) { mem_page_description = mipgen_required_list.front(); mipgen_required_list.pop_front(); @@ -391,7 +390,7 @@ void SparseImage::check_mip_page_requirements(std::list &mip virtual_texture.page_table[memory_index].gen_mip_required = true; - if (virtual_texture.page_table[memory_index].valid == false) + if (!virtual_texture.page_table[memory_index].valid) { mipgen_required_list.push_front(req_mem_page_desc); virtual_texture.update_list.remove(memory_index); @@ -445,7 +444,7 @@ void SparseImage::get_memory_dependency_for_the_block(size_t column, size_t row, */ void SparseImage::compare_mips_table() { - if (virtual_texture.texture_block_update_list.empty() != true) + if (!virtual_texture.texture_block_update_list.empty()) { virtual_texture.texture_block_update_list.clear(); } @@ -453,7 +452,7 @@ void SparseImage::compare_mips_table() { for (size_t x = 0U; x < virtual_texture.current_mip_table[0].size(); x++) { - if (virtual_texture.new_mip_table[y][x].on_screen == false && virtual_texture.current_mip_table[y][x].on_screen == true) + if (!virtual_texture.new_mip_table[y][x].on_screen && virtual_texture.current_mip_table[y][x].on_screen) { TextureBlock texture_block = {y, x, virtual_texture.current_mip_table[y][x].mip_level, virtual_texture.new_mip_table[y][x].mip_level, false}; process_texture_block(texture_block); @@ -486,7 +485,7 @@ void SparseImage::compare_mips_table() } } // TODO(GS): code multiplication - else if (virtual_texture.new_mip_table[y][x].on_screen == true && virtual_texture.current_mip_table[y][x].on_screen == false) + else if (virtual_texture.new_mip_table[y][x].on_screen && !virtual_texture.current_mip_table[y][x].on_screen) { TextureBlock texture_block = {y, x, virtual_texture.current_mip_table[y][x].mip_level, virtual_texture.new_mip_table[y][x].mip_level, true}; @@ -514,7 +513,7 @@ void SparseImage::compare_mips_table() } } - if (virtual_texture.texture_block_update_list.empty() != true) + if (!virtual_texture.texture_block_update_list.empty()) { virtual_texture.update_required = true; } @@ -599,10 +598,10 @@ void SparseImage::build_command_buffers() void SparseImage::process_texture_blocks() { uint8_t block_counter; - block_counter = 5U; + block_counter = 10U; frame_counter++; - while (virtual_texture.texture_block_update_list.empty() != true && block_counter != 0U) + while (!virtual_texture.texture_block_update_list.empty() && block_counter != 0U) { block_counter--; TextureBlock texture_block = virtual_texture.texture_block_update_list.front(); @@ -611,7 +610,7 @@ void SparseImage::process_texture_blocks() virtual_texture.current_mip_table[texture_block.row][texture_block.column] = virtual_texture.new_mip_table[texture_block.row][texture_block.column]; } - if (virtual_texture.texture_block_update_list.empty() == true) + if (virtual_texture.texture_block_update_list.empty()) { transfer_finished = true; } @@ -620,11 +619,13 @@ void SparseImage::process_texture_blocks() transfer_finished = false; } - for (size_t i = 0U; i < virtual_texture.num_pages; i++) + for (size_t i = 0U; i < virtual_texture.page_table.size(); i++) { - if (virtual_texture.page_table[i].render_required_list.empty() == false || virtual_texture.page_table[i].gen_mip_required == true) + virtual_texture.page_table[i].to_be_bound = false; + + if (!virtual_texture.page_table[i].render_required_list.empty() || virtual_texture.page_table[i].gen_mip_required == true) { - virtual_texture.bind_list.push_front(i); + virtual_texture.page_table[i].to_be_bound = true; } } @@ -633,9 +634,9 @@ void SparseImage::process_texture_blocks() void SparseImage::update_and_generate() { - bind_sparse_image(); + bind_sparse_image(); // TODO(GS): There are minor black spots flashing out during camera movement when looking from far away. Possibly related to dynamic binding and lack of synchronization between frames rendered in parallel uint8_t current_mip_level = 0xFF; // TODO(GS): possible problem with get_mip_level() - while (virtual_texture.update_list.empty() == false) + while (!virtual_texture.update_list.empty()) { size_t memory_index = virtual_texture.update_list.front(); virtual_texture.update_list.pop_front(); @@ -684,9 +685,8 @@ void SparseImage::update_and_generate() current_mip_level = mip_level; } - assert(virtual_texture.page_table[memory_index].gen_mip_required == true || virtual_texture.page_table[memory_index].render_required_list.empty() == false); - assert(virtual_texture.page_table[memory_index].bound == true); - assert(virtual_texture.page_table[memory_index].valid == false); + assert(virtual_texture.page_table[memory_index].gen_mip_required || !virtual_texture.page_table[memory_index].render_required_list.empty()); + assert(!virtual_texture.page_table[memory_index].valid); VkExtent2D block_extent{}; block_extent.height = virtual_texture.sparse_image_memory_bind[memory_index].extent.height; @@ -704,14 +704,6 @@ void SparseImage::update_and_generate() copy_single_raw_data_block(temp_buffer.data(), block_extent, block_offset, virtual_texture.width * 4U); virtual_texture.single_page_buffer->update(temp_buffer, 0U); - - VkMappedMemoryRange mapped_range{}; - mapped_range.sType = VK_STRUCTURE_TYPE_MAPPED_MEMORY_RANGE; - mapped_range.memory = virtual_texture.single_page_buffer->get_memory(); - mapped_range.offset = 0U; - mapped_range.size = virtual_texture.page_size; - vkFlushMappedMemoryRanges(device->get_handle(), 1U, &mapped_range); - VkCommandBuffer command_buffer = get_device().create_command_buffer(VK_COMMAND_BUFFER_LEVEL_PRIMARY, true); VkBufferImageCopy region{}; @@ -730,7 +722,6 @@ void SparseImage::update_and_generate() vkCmdCopyBufferToImage(command_buffer, virtual_texture.single_page_buffer->get_handle(), virtual_texture.texture_image, VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, 1U, ®ion); device->flush_command_buffer(command_buffer, queue, true); - virtual_texture.page_table[memory_index].valid = true; } else @@ -789,37 +780,20 @@ void SparseImage::update_and_generate() void SparseImage::free_unused_memory() { - for (size_t i = 0U; i < virtual_texture.num_pages; i++) - { - if (virtual_texture.page_table[i].render_required_list.empty() == false) - { - virtual_texture.bind_list.push_front(i); - } - } - - bind_sparse_image(); - - for (size_t i = 0U; i < virtual_texture.num_pages; i++) + for (size_t i = 0U; i < virtual_texture.page_table.size(); i++) { virtual_texture.page_table[i].gen_mip_required = false; + virtual_texture.page_table[i].to_be_bound = false; - if (virtual_texture.page_table[i].bound == true) + if (!virtual_texture.page_table[i].render_required_list.empty()) { - if (virtual_texture.page_table[i].render_required_list.empty() == true) - { - virtual_texture.free_list.push_front(i); - } + virtual_texture.page_table[i].to_be_bound = true; + } + else if (virtual_texture.page_table[i].valid == true) + { + virtual_texture.page_table[i].valid = false; + virtual_texture.available_memory_indices.push_back(virtual_texture.page_table[i].memory_index); } - } - - while (virtual_texture.free_list.empty() != true) - { - size_t index = virtual_texture.free_list.front(); - virtual_texture.free_list.pop_front(); - - virtual_texture.page_table[index].bound = false; - virtual_texture.page_table[index].valid = false; - virtual_texture.available_memory_index_list.push_back(virtual_texture.page_table[index].memory_index); } } @@ -827,7 +801,7 @@ void SparseImage::load_least_detailed_level() { set_least_detailed_level(); compare_mips_table(); - while (virtual_texture.texture_block_update_list.empty() != true) + while (!virtual_texture.texture_block_update_list.empty()) { process_texture_blocks(); update_and_generate(); @@ -846,7 +820,7 @@ void SparseImage::process_stage(enum Stages next_stage) case SPARSE_IMAGE_COMPARE_MIPS_TABLE_STAGE: compare_mips_table(); - if (virtual_texture.update_required == true) + if (virtual_texture.update_required) { this->next_stage = SPARSE_IMAGE_PROCESS_TEXTURE_BLOCKS_STAGE; } @@ -864,16 +838,13 @@ void SparseImage::process_stage(enum Stages next_stage) case SPARSE_IMAGE_UPDATE_AND_GENERATE_STAGE: update_and_generate(); - this->next_stage = SPARSE_IMAGE_FREE_UNUSED_MEMORY_STAGE; - break; - - case SPARSE_IMAGE_FREE_UNUSED_MEMORY_STAGE: free_unused_memory(); + if (frame_counter > 10U) { this->next_stage = SPARSE_IMAGE_CALCULATE_MIPS_TABLE_STAGE; } - else if (transfer_finished == false) + else if (!transfer_finished) { this->next_stage = SPARSE_IMAGE_PROCESS_TEXTURE_BLOCKS_STAGE; } @@ -899,6 +870,11 @@ void SparseImage::render(float delta_time) { update_mvp(); } + if (color_highlight != color_highlight_mem) + { + update_frag_settings(); + color_highlight_mem = color_highlight; + } process_stage(next_stage); @@ -1188,9 +1164,10 @@ void SparseImage::create_index_buffer() */ void SparseImage::create_descriptor_pool() { - std::array pool_sizes = { + std::array pool_sizes = { vkb::initializers::descriptor_pool_size(VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER, 1U), vkb::initializers::descriptor_pool_size(VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, 1U), + vkb::initializers::descriptor_pool_size(VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER, 1U), }; VkDescriptorPoolCreateInfo pool_info = @@ -1207,7 +1184,7 @@ void SparseImage::create_descriptor_pool() */ void SparseImage::create_descriptor_set_layout() { - std::array set_layout_bindings = { + std::array set_layout_bindings = { vkb::initializers::descriptor_set_layout_binding( VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER, VK_SHADER_STAGE_VERTEX_BIT, @@ -1216,6 +1193,10 @@ void SparseImage::create_descriptor_set_layout() VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, VK_SHADER_STAGE_FRAGMENT_BIT, 1U), + vkb::initializers::descriptor_set_layout_binding( + VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER, + VK_SHADER_STAGE_FRAGMENT_BIT, + 2U), }; VkDescriptorSetLayoutCreateInfo set_layout_create_info = @@ -1225,9 +1206,10 @@ void SparseImage::create_descriptor_set_layout() } /** - * @brief Creating both descriptor set: - * 1. Uniform buffer + * @brief Creating descriptor set: + * 1. Uniform buffer (MVP) * 2. Image sampler + * 3. Uniform buffer (color_highlight) */ void SparseImage::create_descriptor_sets() { @@ -1239,34 +1221,53 @@ void SparseImage::create_descriptor_sets() VK_CHECK(vkAllocateDescriptorSets(get_device().get_handle(), &set_alloc_info, &descriptor_set)); - VkDescriptorBufferInfo descriptor_buffer_info = create_descriptor(*mvp_buffer); + std::array descriptor_buffer_infos = {create_descriptor(*mvp_buffer), create_descriptor(*frag_settings_data_buffer)}; VkDescriptorImageInfo image_info{}; image_info.imageLayout = VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL; image_info.imageView = virtual_texture.texture_image_view; image_info.sampler = texture_sampler; - std::array write_descriptor_sets = { + std::array write_descriptor_sets = { vkb::initializers::write_descriptor_set( descriptor_set, VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER, 0U, - &descriptor_buffer_info, + &descriptor_buffer_infos[0], 1U), vkb::initializers::write_descriptor_set( descriptor_set, VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, 1U, &image_info, + 1U), + vkb::initializers::write_descriptor_set( + descriptor_set, + VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER, + 2U, + &descriptor_buffer_infos[1], 1U)}; vkUpdateDescriptorSets(get_device().get_handle(), static_cast(write_descriptor_sets.size()), write_descriptor_sets.data(), 0U, nullptr); } -void SparseImage::create_uniform_buffer() +void SparseImage::update_frag_settings() +{ + struct FragSettingsData frag_settings = {}; + frag_settings.color_highlight = color_highlight; + frag_settings.minLOD = virtual_texture.base_mip_level; + frag_settings.maxLOD = virtual_texture.base_mip_level + virtual_texture.mip_levels - 1U; + + frag_settings_data_buffer->update(&frag_settings, sizeof(FragSettingsData)); +} + +void SparseImage::create_uniform_buffers() { VkDeviceSize buffer_size = sizeof(struct MVP); mvp_buffer = std::make_unique(get_device(), buffer_size, VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT, VMA_MEMORY_USAGE_CPU_TO_GPU, VMA_ALLOCATION_CREATE_MAPPED_BIT); + + buffer_size = sizeof(struct FragSettingsData); + frag_settings_data_buffer = std::make_unique(get_device(), buffer_size, VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT, VMA_MEMORY_USAGE_CPU_TO_GPU, VMA_ALLOCATION_CREATE_MAPPED_BIT); } void SparseImage::create_texture_sampler() @@ -1444,13 +1445,12 @@ void SparseImage::create_sparse_texture_image() } } - virtual_texture.num_pages = num_total_pages; virtual_texture.page_table.resize(num_total_pages); - virtual_texture.sparse_image_memory_bind.resize(virtual_texture.num_pages); + virtual_texture.sparse_image_memory_bind.resize(num_total_pages); // Setting the data constant data for memory page binding via vkQueueBindSparse() - for (size_t page_index = 0U; page_index < virtual_texture.num_pages; page_index++) + for (size_t page_index = 0U; page_index < virtual_texture.page_table.size(); page_index++) { uint32_t mipLevel = get_mip_level(page_index); @@ -1471,14 +1471,16 @@ void SparseImage::create_sparse_texture_image() //================================================================================================== // Allocating memory + virtual_texture.pages_allocated = virtual_texture.mip_properties[0].mip_num_pages / 2U; + VkMemoryAllocateInfo memory_allocate_info{}; memory_allocate_info.sType = VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO; - memory_allocate_info.allocationSize = virtual_texture.page_size * virtual_texture.mip_properties[0].mip_num_pages / 2U; // TODO(GS): what is the minimum memory required + memory_allocate_info.allocationSize = virtual_texture.page_size * virtual_texture.pages_allocated; memory_allocate_info.memoryTypeIndex = get_device().get_memory_type(virtual_texture.mem_requirements.memoryTypeBits, VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT); - for (size_t i = 0U; i < (virtual_texture.mip_properties[0].mip_num_pages / 2U); i++) // TODO(GS): what is the minimum memory required + for (size_t i = 0U; i < (virtual_texture.pages_allocated); i++) { - virtual_texture.available_memory_index_list.push_back(i); + virtual_texture.available_memory_indices.push_back(i); } VK_CHECK(vkAllocateMemory(get_device().get_handle(), &memory_allocate_info, nullptr, &virtual_texture.texture_memory)); @@ -1510,3 +1512,21 @@ void SparseImage::create_sparse_texture_image() vkb::image_layout_transition(command_buffer, virtual_texture.texture_image, VK_IMAGE_LAYOUT_PREINITIALIZED, VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL, subresource_range); device->flush_command_buffer(command_buffer, queue, true); } + +void SparseImage::on_update_ui_overlay(vkb::Drawer &drawer) +{ + if (drawer.header("Settings")) + { + if (drawer.checkbox("Color highlight", &color_highlight)) + { + // + } + } + if (drawer.header("Statistics")) + { + drawer.text("Memory usage in pages:"); + drawer.text("* Virtual: %zu ", virtual_texture.page_table.size()); + drawer.text("* Allocated: %zu ", virtual_texture.pages_allocated); + drawer.text("* Required: %zu ", virtual_texture.pages_allocated - virtual_texture.available_memory_indices.size()); + } +} diff --git a/samples/extensions/sparse_image/sparse_image.h b/samples/extensions/sparse_image/sparse_image.h index 1a5ac4147a..890187a042 100644 --- a/samples/extensions/sparse_image/sparse_image.h +++ b/samples/extensions/sparse_image/sparse_image.h @@ -26,6 +26,9 @@ double const SPARSE_IMAGE_FOV_DEGREES = 60.0; class SparseImage : public ApiVulkanSample { public: + bool color_highlight = true; + bool color_highlight_mem = true; + enum Stages { SPARSE_IMAGE_IDLE_STAGE, @@ -33,7 +36,6 @@ class SparseImage : public ApiVulkanSample SPARSE_IMAGE_COMPARE_MIPS_TABLE_STAGE, SPARSE_IMAGE_PROCESS_TEXTURE_BLOCKS_STAGE, SPARSE_IMAGE_UPDATE_AND_GENERATE_STAGE, - SPARSE_IMAGE_FREE_UNUSED_MEMORY_STAGE, SPARSE_IMAGE_NUM_STAGES, }; @@ -44,6 +46,13 @@ class SparseImage : public ApiVulkanSample alignas(16) glm::mat4 proj; }; + struct FragSettingsData + { + bool color_highlight; + int minLOD; + int maxLOD; + }; + struct SimpleVertex { glm::vec2 norm; @@ -78,11 +87,11 @@ class SparseImage : public ApiVulkanSample struct PageTable { - bool bound; // bound via vkQueueBindSparse() - bool valid; // bound and contains valid data + bool to_be_bound; // to be bound vkQueueBindSparse() + bool valid; // bound via vkQueueBindSparse() and contains valid data bool gen_mip_required; // required for the mip generation bool fixed; // not freed from the memory at any cases - size_t memory_index; // index from available_memory_index_list corresponding to this page + size_t memory_index; // index from available_memory_indices corresponding to this page std::list> render_required_list; // list holding information on what BLOCKS require this particular memory page to be valid for rendering }; @@ -110,9 +119,9 @@ class SparseImage : public ApiVulkanSample size_t width; size_t height; - // Number of virtual pages (what if the total image was allocated) - size_t num_pages; + // Number of bytes per page size_t page_size; + size_t pages_allocated; uint8_t base_mip_level; uint8_t mip_levels; @@ -131,17 +140,11 @@ class SparseImage : public ApiVulkanSample // List containing BLOCKS for which the required mip level has changed or/and its on-screen visibility changed std::list texture_block_update_list; - // List containing information which pages from the page_table should be bound - std::list bind_list; - // List containing information which pages from the page_table should be updated (either loaded from CPU memory or blitted) std::list update_list; - // List containing information which pages should be freed - std::list free_list; - - // List of available memory pages (whole memory page pool is statically allocated at the beginning) - std::list available_memory_index_list; + // Vector of available memory pages (whole memory page pool is statically allocated at the beginning) + std::vector available_memory_indices; bool update_required = false; @@ -177,6 +180,7 @@ class SparseImage : public ApiVulkanSample }; bool transfer_finished = false; + bool update_frag = false; uint8_t frame_counter = 0U; enum Stages next_stage = SPARSE_IMAGE_IDLE_STAGE; @@ -191,6 +195,7 @@ class SparseImage : public ApiVulkanSample size_t index_count; std::unique_ptr mvp_buffer; + std::unique_ptr frag_settings_data_buffer; glm::mat4 current_mvp_transform; @@ -219,7 +224,7 @@ class SparseImage : public ApiVulkanSample void create_vertex_buffer(); void create_index_buffer(); - void create_uniform_buffer(); + void create_uniform_buffers(); void create_texture_sampler(); void create_descriptor_set_layout(); @@ -243,14 +248,16 @@ class SparseImage : public ApiVulkanSample void copy_single_raw_data_block(uint8_t buffer[], const VkExtent2D blockDim, VkOffset2D offset, size_t stride); void load_least_detailed_level(); void set_least_detailed_level(); + void update_frag_settings(); uint8_t get_mip_level(size_t page_index); size_t get_memory_index(struct MemPageDescription mem_page_desc); // Override basic framework functionalities - void build_command_buffers() override; - void render(float delta_time) override; - bool prepare(const vkb::ApplicationOptions &options) override; - void request_gpu_features(vkb::PhysicalDevice &gpu) override; + void build_command_buffers() override; + void render(float delta_time) override; + bool prepare(const vkb::ApplicationOptions &options) override; + void request_gpu_features(vkb::PhysicalDevice &gpu) override; + virtual void on_update_ui_overlay(vkb::Drawer &drawer) override; }; std::unique_ptr create_sparse_image(); diff --git a/shaders/sparse_image/sparse.frag b/shaders/sparse_image/sparse.frag index a17386fff3..225ed72de9 100644 --- a/shaders/sparse_image/sparse.frag +++ b/shaders/sparse_image/sparse.frag @@ -20,14 +20,15 @@ layout(binding = 1) uniform sampler2D texSampler; -layout(location = 0) in vec2 fragTexCoord; +layout(binding = 2) uniform settingsData { + bool color_highlight; + int minLOD; + int maxLOD; +} settings; +layout(location = 0) in vec2 fragTexCoord; layout(location = 0) out vec4 fragOutColor; - -float minLOD = 0.0f; //TODO: these should not be hardcoded -float maxLOD = 4.0f; - vec3 color_blend_table[5] = { {1.00, 1.00, 1.00}, @@ -41,16 +42,19 @@ void main() { vec4 color = vec4(0.0); - int lod = 0; + int lod = settings.minLOD; int residencyCode = sparseTextureLodARB(texSampler, fragTexCoord, lod, color); if (!sparseTexelsResidentARB(residencyCode)) { lod += 1; - for(; (lod <= maxLOD) && !sparseTexelsResidentARB(residencyCode); lod += 1) + for(; (lod <= settings.maxLOD) && !sparseTexelsResidentARB(residencyCode); lod += 1) { residencyCode = sparseTextureLodARB(texSampler, fragTexCoord, lod, color); - color.xyz = (color.xyz * color_blend_table[lod]); + if (settings.color_highlight) + { + color.xyz = (color.xyz * color_blend_table[lod]); + } } } diff --git a/shaders/sparse_image/sparse.vert b/shaders/sparse_image/sparse.vert index 444f1f04d1..ce897ee62e 100644 --- a/shaders/sparse_image/sparse.vert +++ b/shaders/sparse_image/sparse.vert @@ -17,11 +17,11 @@ #version 450 -layout(binding = 0) uniform UniformBufferObject { +layout(binding = 0) uniform mvpTransform { mat4 model; mat4 view; mat4 proj; -} ubo; +} mvp; layout(location = 0) in vec2 inPosition; layout(location = 1) in vec2 inTexCoord; @@ -30,6 +30,6 @@ layout(location = 0) out vec2 fragTexCoord; void main() { - gl_Position = ubo.proj * ubo.view * ubo.model * vec4(inPosition, 0.0, 1.0); + gl_Position = mvp.proj * mvp.view * mvp.model * vec4(inPosition, 0.0, 1.0); fragTexCoord = inTexCoord; } \ No newline at end of file From 5b8ad7f68a2fb3f53f8211ad59f1a1e1d0bee874 Mon Sep 17 00:00:00 2001 From: Grzegorz Smagacz Date: Thu, 5 Oct 2023 16:25:50 +0200 Subject: [PATCH 12/21] * Fixed the bug that caused black-spots to appear on screen * Block update is now better prioritized to update the closest areas first * Refactoring --- .../extensions/sparse_image/sparse_image.cpp | 312 ++++++------------ .../extensions/sparse_image/sparse_image.h | 63 ++-- 2 files changed, 144 insertions(+), 231 deletions(-) diff --git a/samples/extensions/sparse_image/sparse_image.cpp b/samples/extensions/sparse_image/sparse_image.cpp index 55a8f9a91e..395f3022d5 100644 --- a/samples/extensions/sparse_image/sparse_image.cpp +++ b/samples/extensions/sparse_image/sparse_image.cpp @@ -185,34 +185,33 @@ void SparseImage::copy_single_raw_data_block(uint8_t buffer[], const VkExtent2D */ void SparseImage::bind_sparse_image() { - for (size_t page = 0U; page < virtual_texture.page_table.size(); page++) + for (size_t page_index = 0U; page_index < virtual_texture.page_table.size(); page_index++) { - if (!virtual_texture.page_table[page].to_be_bound) + if (!virtual_texture.page_table[page_index].gen_mip_required && virtual_texture.page_table[page_index].render_required_set.empty()) { - virtual_texture.sparse_image_memory_bind[page].memory = VK_NULL_HANDLE; + virtual_texture.sparse_image_memory_bind[page_index].memory = VK_NULL_HANDLE; continue; } - virtual_texture.page_table[page].to_be_bound = false; - if (virtual_texture.page_table[page].valid == true) + if (virtual_texture.page_table[page_index].valid) { continue; } - if (virtual_texture.available_memory_indices.empty()) + if (virtual_texture.available_memory_page_indices.empty()) { throw std::runtime_error(std::string(__func__) + "(): There is not enough memory available"); } - size_t memory_block_index = virtual_texture.available_memory_indices.back(); - virtual_texture.available_memory_indices.pop_back(); + size_t memory_block_index = virtual_texture.available_memory_page_indices.back(); + virtual_texture.available_memory_page_indices.pop_back(); size_t pageOffset = virtual_texture.page_size * memory_block_index; - virtual_texture.page_table[page].memory_index = memory_block_index; + virtual_texture.page_table[page_index].page_index = memory_block_index; - virtual_texture.sparse_image_memory_bind[page].memory = virtual_texture.texture_memory; - virtual_texture.sparse_image_memory_bind[page].memoryOffset = pageOffset; + virtual_texture.sparse_image_memory_bind[page_index].memory = virtual_texture.texture_memory; + virtual_texture.sparse_image_memory_bind[page_index].memoryOffset = pageOffset; } VkBindSparseInfo bind_sparse_info = vkb::initializers::bind_sparse_info(); @@ -278,24 +277,19 @@ uint8_t SparseImage::get_mip_level(size_t page_index) */ void SparseImage::process_texture_block(const TextureBlock &texture_block) { - std::list memory_index_list; + std::vector page_indices; - if (texture_block.old_mip_level < virtual_texture.mip_levels) // TODO(GS): This condition seems to be completely redundant but for some reason app is crashing with vector subscript being out of range. - { - // Old value calculations and removal from the render required list - get_memory_dependency_for_the_block(texture_block.column, texture_block.row, texture_block.old_mip_level, memory_index_list); + // Old value calculations and removal from the render required list + page_indices = get_memory_dependency_for_the_block(texture_block.column, texture_block.row, static_cast(texture_block.old_mip_level)); - while (!memory_index_list.empty()) + for (auto page_index : page_indices) + { + if (!virtual_texture.page_table[page_index].fixed) { - size_t memory_index = memory_index_list.front(); - memory_index_list.pop_front(); - - if (!virtual_texture.page_table[memory_index].fixed) - { - virtual_texture.page_table[memory_index].render_required_list.remove({texture_block.old_mip_level, texture_block.column, texture_block.row}); - } + virtual_texture.page_table[page_index].render_required_set.erase({static_cast(texture_block.old_mip_level), texture_block.column, texture_block.row}); } } + page_indices.clear(); if (!texture_block.on_screen) { @@ -303,66 +297,52 @@ void SparseImage::process_texture_block(const TextureBlock &texture_block) } // New value calculations and placing into update and render_required lists - get_memory_dependency_for_the_block(texture_block.column, texture_block.row, texture_block.new_mip_level, memory_index_list); + page_indices = get_memory_dependency_for_the_block(texture_block.column, texture_block.row, static_cast(texture_block.new_mip_level)); - while (!memory_index_list.empty()) + for (auto page_index : page_indices) { - size_t memory_index = memory_index_list.front(); - memory_index_list.pop_front(); + virtual_texture.page_table[page_index].render_required_set.insert({static_cast(texture_block.new_mip_level), texture_block.column, texture_block.row}); - virtual_texture.page_table[memory_index].render_required_list.remove({texture_block.new_mip_level, texture_block.column, texture_block.row}); - virtual_texture.page_table[memory_index].render_required_list.push_front({texture_block.new_mip_level, texture_block.column, texture_block.row}); - - if (!virtual_texture.page_table[memory_index].valid) + if (!virtual_texture.page_table[page_index].valid) { - virtual_texture.update_list.remove(memory_index); - virtual_texture.update_list.push_back(memory_index); - } - else - { - continue; - } + virtual_texture.update_set.insert(page_index); - std::list mipgen_required_list; - struct MemPageDescription mem_page_description = get_mem_page_description(memory_index); + std::vector mipgen_required_vec; + MemPageDescription mem_page_description = get_mem_page_description(page_index); - mipgen_required_list.push_front(mem_page_description); + mipgen_required_vec.push_back(mem_page_description); - while (!mipgen_required_list.empty()) - { - mem_page_description = mipgen_required_list.front(); - mipgen_required_list.pop_front(); + while (!mipgen_required_vec.empty()) + { + mem_page_description = mipgen_required_vec.back(); + mipgen_required_vec.pop_back(); - check_mip_page_requirements(mipgen_required_list, mem_page_description); + check_mip_page_requirements(mipgen_required_vec, mem_page_description); + } } } + page_indices.clear(); } /** * @brief Fill the MemPageDescription data structure. */ -struct SparseImage::MemPageDescription SparseImage::get_mem_page_description(size_t memory_index) +SparseImage::MemPageDescription SparseImage::get_mem_page_description(size_t page_index) { - struct MemPageDescription mem_page_description = {}; - uint8_t mip_level = virtual_texture.mip_levels - 1U; - - // TODO(GS): use get_mip_level() instead - while (memory_index < virtual_texture.mip_properties[mip_level].mip_base_page_index && mip_level > virtual_texture.base_mip_level) - { - mip_level--; - } + MemPageDescription mem_page_description = {}; + uint8_t mip_level = get_mip_level(page_index); mem_page_description.mip_level = mip_level; - mem_page_description.x = (memory_index - virtual_texture.mip_properties[mip_level].mip_base_page_index) % virtual_texture.mip_properties[mip_level].num_columns; - mem_page_description.y = (memory_index - virtual_texture.mip_properties[mip_level].mip_base_page_index) / virtual_texture.mip_properties[mip_level].num_columns; + mem_page_description.x = (page_index - virtual_texture.mip_properties[mip_level].mip_base_page_index) % virtual_texture.mip_properties[mip_level].num_columns; + mem_page_description.y = (page_index - virtual_texture.mip_properties[mip_level].mip_base_page_index) / virtual_texture.mip_properties[mip_level].num_columns; return mem_page_description; } /** - * @brief Get the memory_index of the particular page based on the MemPageDescription data structure. + * @brief Get the page_index of the particular page based on the MemPageDescription data structure. */ -size_t SparseImage::get_memory_index(struct MemPageDescription mem_page_desc) +size_t SparseImage::get_page_index(MemPageDescription mem_page_desc) { return virtual_texture.mip_properties[mem_page_desc.mip_level].mip_base_page_index + virtual_texture.mip_properties[mem_page_desc.mip_level].num_columns * mem_page_desc.y + mem_page_desc.x; } @@ -370,31 +350,30 @@ size_t SparseImage::get_memory_index(struct MemPageDescription mem_page_desc) /** * @brief Check if all the required resources (memory pages from the more detailed mip level) for the particular memory page to be rendered, are already allocated and valid in the memory. */ -void SparseImage::check_mip_page_requirements(std::list &mipgen_required_list, struct MemPageDescription mem_page_desc) +void SparseImage::check_mip_page_requirements(std::vector &mipgen_required_vec, MemPageDescription mem_page_desc) { if (mem_page_desc.mip_level == 0U) { return; } - struct MemPageDescription req_mem_page_desc; + MemPageDescription req_mem_page_desc; req_mem_page_desc.mip_level = mem_page_desc.mip_level - 1; for (uint8_t y = 0U; y < 2U; y++) { for (uint8_t x = 0U; x < 2U; x++) { - req_mem_page_desc.x = (mem_page_desc.x * 2U) + x; - req_mem_page_desc.y = (mem_page_desc.y * 2U) + y; + req_mem_page_desc.x = std::min((mem_page_desc.x * 2U) + x, virtual_texture.mip_properties[req_mem_page_desc.mip_level].num_columns - 1U); + req_mem_page_desc.y = std::min((mem_page_desc.y * 2U) + y, virtual_texture.mip_properties[req_mem_page_desc.mip_level].num_rows - 1U); - size_t memory_index = get_memory_index(req_mem_page_desc); + size_t page_index = get_page_index(req_mem_page_desc); - virtual_texture.page_table[memory_index].gen_mip_required = true; + virtual_texture.page_table[page_index].gen_mip_required = true; - if (!virtual_texture.page_table[memory_index].valid) + if (!virtual_texture.page_table[page_index].valid) { - mipgen_required_list.push_front(req_mem_page_desc); - virtual_texture.update_list.remove(memory_index); - virtual_texture.update_list.push_front(memory_index); + mipgen_required_vec.push_back(req_mem_page_desc); + virtual_texture.update_set.insert(page_index); } } } @@ -403,10 +382,11 @@ void SparseImage::check_mip_page_requirements(std::list &mip /** * @brief Convert information from BLOCK-based into PAGE-based data. BLOCKS are just the abstraction units described by ON_SCREEN_HORIZONTAL_BLOCKS and ON_SCREEN_VERTICAL_BLOCKS. PAGES are the actually allocated chunks of memory, their size is device-dependent. */ -void SparseImage::get_memory_dependency_for_the_block(size_t column, size_t row, uint8_t mip_level, std::list &index_list) +std::vector SparseImage::get_memory_dependency_for_the_block(size_t column, size_t row, uint8_t mip_level) { - double height_on_screen_divider = 1.0 / on_screen_num_vertical_blocks; - double width_on_screen_divider = 1.0 / on_screen_num_horizontal_blocks; + std::vector dependencies; + double height_on_screen_divider = 1.0 / on_screen_num_vertical_blocks; + double width_on_screen_divider = 1.0 / on_screen_num_horizontal_blocks; double xLow = width_on_screen_divider * column; double xHigh = width_on_screen_divider * (column + 1U); @@ -433,10 +413,11 @@ void SparseImage::get_memory_dependency_for_the_block(size_t column, size_t row, { for (size_t x = memXLow; x < memXHigh; x++) { - size_t memory_index = virtual_texture.mip_properties[mip_level].mip_base_page_index + virtual_texture.mip_properties[mip_level].num_columns * y + x; - index_list.push_front(memory_index); + size_t page_index = virtual_texture.mip_properties[mip_level].mip_base_page_index + virtual_texture.mip_properties[mip_level].num_columns * y + x; + dependencies.push_back(page_index); } } + return dependencies; } /** @@ -444,9 +425,9 @@ void SparseImage::get_memory_dependency_for_the_block(size_t column, size_t row, */ void SparseImage::compare_mips_table() { - if (!virtual_texture.texture_block_update_list.empty()) + if (!virtual_texture.texture_block_update_set.empty()) { - virtual_texture.texture_block_update_list.clear(); + virtual_texture.texture_block_update_set.clear(); } for (size_t y = 0U; y < virtual_texture.current_mip_table.size(); y++) { @@ -458,62 +439,15 @@ void SparseImage::compare_mips_table() process_texture_block(texture_block); virtual_texture.current_mip_table[y][x] = virtual_texture.new_mip_table[y][x]; } - // TODO(GS): code multiplication - else if ((virtual_texture.new_mip_table[y][x].mip_level != virtual_texture.current_mip_table[y][x].mip_level) && (virtual_texture.new_mip_table[y][x].on_screen == true)) - { - TextureBlock texture_block = {y, x, virtual_texture.current_mip_table[y][x].mip_level, virtual_texture.new_mip_table[y][x].mip_level, true}; - - if (virtual_texture.texture_block_update_list.empty()) - { - virtual_texture.texture_block_update_list.push_front(texture_block); - } - else - { - auto it = virtual_texture.texture_block_update_list.begin(); - for (size_t i = 0U; i < virtual_texture.texture_block_update_list.size(); i++) - { - if ((it->new_mip_level >= texture_block.new_mip_level) || (it == virtual_texture.texture_block_update_list.end())) - { - virtual_texture.texture_block_update_list.insert(it, texture_block); // TODO(GS): change mip level to double-type for a better block-priority results - break; - } - if (it != virtual_texture.texture_block_update_list.end()) - { - ++it; - } - } - } - } - // TODO(GS): code multiplication - else if (virtual_texture.new_mip_table[y][x].on_screen && !virtual_texture.current_mip_table[y][x].on_screen) + else if (((static_cast(virtual_texture.new_mip_table[y][x].mip_level) != static_cast(virtual_texture.current_mip_table[y][x].mip_level)) && virtual_texture.new_mip_table[y][x].on_screen) || (virtual_texture.new_mip_table[y][x].on_screen && !virtual_texture.current_mip_table[y][x].on_screen)) { TextureBlock texture_block = {y, x, virtual_texture.current_mip_table[y][x].mip_level, virtual_texture.new_mip_table[y][x].mip_level, true}; - - if (virtual_texture.texture_block_update_list.empty()) - { - virtual_texture.texture_block_update_list.push_front(texture_block); - } - else - { - auto it = virtual_texture.texture_block_update_list.begin(); - for (size_t i = 0U; i < virtual_texture.texture_block_update_list.size(); i++) - { - if ((it->new_mip_level >= texture_block.new_mip_level) || (it == virtual_texture.texture_block_update_list.end())) - { - virtual_texture.texture_block_update_list.insert(it, texture_block); - break; - } - if (it != virtual_texture.texture_block_update_list.end()) - { - ++it; - } - } - } + virtual_texture.texture_block_update_set.insert(texture_block); } } } - if (!virtual_texture.texture_block_update_list.empty()) + if (!virtual_texture.texture_block_update_set.empty()) { virtual_texture.update_required = true; } @@ -525,10 +459,10 @@ void SparseImage::compare_mips_table() void SparseImage::update_mvp() { // Update MVP + new mip block calculations - struct MVP mvp_ubo = {}; - mvp_ubo.model = glm::mat4(1.0f); - mvp_ubo.view = camera.matrices.view; - mvp_ubo.proj = camera.matrices.perspective; + MVP mvp_ubo = {}; + mvp_ubo.model = glm::mat4(1.0f); + mvp_ubo.view = camera.matrices.view; + mvp_ubo.proj = camera.matrices.perspective; mvp_buffer->update(&mvp_ubo, sizeof(mvp_ubo)); @@ -598,50 +532,27 @@ void SparseImage::build_command_buffers() void SparseImage::process_texture_blocks() { uint8_t block_counter; - block_counter = 10U; + block_counter = std::min(static_cast(10U), virtual_texture.texture_block_update_set.size()); frame_counter++; - while (!virtual_texture.texture_block_update_list.empty() && block_counter != 0U) - { - block_counter--; - TextureBlock texture_block = virtual_texture.texture_block_update_list.front(); - virtual_texture.texture_block_update_list.pop_front(); - process_texture_block(texture_block); - virtual_texture.current_mip_table[texture_block.row][texture_block.column] = virtual_texture.new_mip_table[texture_block.row][texture_block.column]; - } - - if (virtual_texture.texture_block_update_list.empty()) - { - transfer_finished = true; - } - else - { - transfer_finished = false; - } - - for (size_t i = 0U; i < virtual_texture.page_table.size(); i++) + auto it = virtual_texture.texture_block_update_set.begin(); + for (; (block_counter > 0U) && (it != virtual_texture.texture_block_update_set.end()); it++, block_counter--) { - virtual_texture.page_table[i].to_be_bound = false; - - if (!virtual_texture.page_table[i].render_required_list.empty() || virtual_texture.page_table[i].gen_mip_required == true) - { - virtual_texture.page_table[i].to_be_bound = true; - } + process_texture_block(*it); + virtual_texture.current_mip_table[(*it).row][(*it).column] = virtual_texture.new_mip_table[(*it).row][(*it).column]; } + virtual_texture.texture_block_update_set.erase(virtual_texture.texture_block_update_set.begin(), it); - virtual_texture.update_list.sort(); + transfer_finished = virtual_texture.texture_block_update_set.empty(); } void SparseImage::update_and_generate() { - bind_sparse_image(); // TODO(GS): There are minor black spots flashing out during camera movement when looking from far away. Possibly related to dynamic binding and lack of synchronization between frames rendered in parallel - uint8_t current_mip_level = 0xFF; // TODO(GS): possible problem with get_mip_level() - while (!virtual_texture.update_list.empty()) + bind_sparse_image(); + uint8_t current_mip_level = 0xFF; + for (auto page_index : virtual_texture.update_set) { - size_t memory_index = virtual_texture.update_list.front(); - virtual_texture.update_list.pop_front(); - - uint8_t mip_level = get_mip_level(memory_index); + uint8_t mip_level = get_mip_level(page_index); VkCommandBuffer command_buffer = get_device().create_command_buffer(VK_COMMAND_BUFFER_LEVEL_PRIMARY, true); VkImageSubresourceRange subresource_range{}; @@ -685,16 +596,16 @@ void SparseImage::update_and_generate() current_mip_level = mip_level; } - assert(virtual_texture.page_table[memory_index].gen_mip_required || !virtual_texture.page_table[memory_index].render_required_list.empty()); - assert(!virtual_texture.page_table[memory_index].valid); + assert(virtual_texture.page_table[page_index].gen_mip_required || !virtual_texture.page_table[page_index].render_required_set.empty()); + assert(!virtual_texture.page_table[page_index].valid); VkExtent2D block_extent{}; - block_extent.height = virtual_texture.sparse_image_memory_bind[memory_index].extent.height; - block_extent.width = virtual_texture.sparse_image_memory_bind[memory_index].extent.width; + block_extent.height = virtual_texture.sparse_image_memory_bind[page_index].extent.height; + block_extent.width = virtual_texture.sparse_image_memory_bind[page_index].extent.width; VkOffset2D block_offset{}; - block_offset.x = virtual_texture.sparse_image_memory_bind[memory_index].offset.x; - block_offset.y = virtual_texture.sparse_image_memory_bind[memory_index].offset.y; + block_offset.x = virtual_texture.sparse_image_memory_bind[page_index].offset.x; + block_offset.y = virtual_texture.sparse_image_memory_bind[page_index].offset.y; if (mip_level == 0U) { @@ -722,7 +633,7 @@ void SparseImage::update_and_generate() vkCmdCopyBufferToImage(command_buffer, virtual_texture.single_page_buffer->get_handle(), virtual_texture.texture_image, VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, 1U, ®ion); device->flush_command_buffer(command_buffer, queue, true); - virtual_texture.page_table[memory_index].valid = true; + virtual_texture.page_table[page_index].valid = true; } else { @@ -749,9 +660,10 @@ void SparseImage::update_and_generate() VK_FILTER_LINEAR); device->flush_command_buffer(command_buffer, queue, true); - virtual_texture.page_table[memory_index].valid = true; + virtual_texture.page_table[page_index].valid = true; } } + virtual_texture.update_set.clear(); VkCommandBuffer command_buffer = get_device().create_command_buffer(VK_COMMAND_BUFFER_LEVEL_PRIMARY, true); VkImageSubresourceRange subresource_range{}; @@ -783,16 +695,11 @@ void SparseImage::free_unused_memory() for (size_t i = 0U; i < virtual_texture.page_table.size(); i++) { virtual_texture.page_table[i].gen_mip_required = false; - virtual_texture.page_table[i].to_be_bound = false; - if (!virtual_texture.page_table[i].render_required_list.empty()) - { - virtual_texture.page_table[i].to_be_bound = true; - } - else if (virtual_texture.page_table[i].valid == true) + if (virtual_texture.page_table[i].render_required_set.empty() && virtual_texture.page_table[i].valid) { virtual_texture.page_table[i].valid = false; - virtual_texture.available_memory_indices.push_back(virtual_texture.page_table[i].memory_index); + virtual_texture.available_memory_page_indices.push_back(virtual_texture.page_table[i].page_index); } } } @@ -801,7 +708,7 @@ void SparseImage::load_least_detailed_level() { set_least_detailed_level(); compare_mips_table(); - while (!virtual_texture.texture_block_update_list.empty()) + while (!virtual_texture.texture_block_update_set.empty()) { process_texture_blocks(); update_and_generate(); @@ -895,7 +802,7 @@ std::unique_ptr create_sparse_image() */ void SparseImage::calculate_mips_table(glm::mat4 mvp_transform, uint32_t numVerticalBlocks, uint32_t numHorizontalBlocks, std::vector> &mipTable) { - struct CalculateMipLevelData meshData(mvp_transform, VkExtent2D({static_cast(virtual_texture.width), static_cast(virtual_texture.height)}), VkExtent2D({static_cast(width), static_cast(height)}), on_screen_num_vertical_blocks, on_screen_num_horizontal_blocks, virtual_texture.mip_levels); + CalculateMipLevelData meshData(mvp_transform, VkExtent2D({static_cast(virtual_texture.width), static_cast(virtual_texture.height)}), VkExtent2D({static_cast(width), static_cast(height)}), on_screen_num_vertical_blocks, on_screen_num_horizontal_blocks, virtual_texture.mip_levels); meshData.calculate_mesh_coordinates(); meshData.calculate_mip_levels(); @@ -1098,7 +1005,7 @@ void SparseImage::CalculateMipLevelData::calculate_mip_levels() double delta = 1.0 * std::max(std::max(x_texture_to_screen_horizontal_ratio, y_texture_to_screen_horizontal_ratio), std::max(x_texture_to_screen_vertical_ratio, y_texture_to_screen_vertical_ratio)); double mip_level = std::min(static_cast(mip_levels - 1U), std::max(log2(delta), 0.0)); - mip_table[row][column].mip_level = static_cast(mip_level); + mip_table[row][column].mip_level = mip_level; mip_table[row][column].on_screen = mesh[row][column].on_screen || mesh[row + 1][column].on_screen || mesh[row][column + 1].on_screen || mesh[row + 1][column + 1].on_screen; } } @@ -1106,8 +1013,8 @@ void SparseImage::CalculateMipLevelData::calculate_mip_levels() void SparseImage::create_vertex_buffer() { - std::array vertices; - VkDeviceSize vertices_size = sizeof(vertices[0]) * vertices.size(); + std::array vertices; + VkDeviceSize vertices_size = sizeof(vertices[0]) * vertices.size(); vertices[0].norm = {-100.0f, -100.0f}; vertices[1].norm = {100.0f, -100.0f}; @@ -1253,20 +1160,20 @@ void SparseImage::create_descriptor_sets() void SparseImage::update_frag_settings() { - struct FragSettingsData frag_settings = {}; - frag_settings.color_highlight = color_highlight; - frag_settings.minLOD = virtual_texture.base_mip_level; - frag_settings.maxLOD = virtual_texture.base_mip_level + virtual_texture.mip_levels - 1U; + FragSettingsData frag_settings = {}; + frag_settings.color_highlight = color_highlight; + frag_settings.minLOD = virtual_texture.base_mip_level; + frag_settings.maxLOD = virtual_texture.base_mip_level + virtual_texture.mip_levels - 1U; frag_settings_data_buffer->update(&frag_settings, sizeof(FragSettingsData)); } void SparseImage::create_uniform_buffers() { - VkDeviceSize buffer_size = sizeof(struct MVP); + VkDeviceSize buffer_size = sizeof(MVP); mvp_buffer = std::make_unique(get_device(), buffer_size, VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT, VMA_MEMORY_USAGE_CPU_TO_GPU, VMA_ALLOCATION_CREATE_MAPPED_BIT); - buffer_size = sizeof(struct FragSettingsData); + buffer_size = sizeof(FragSettingsData); frag_settings_data_buffer = std::make_unique(get_device(), buffer_size, VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT, VMA_MEMORY_USAGE_CPU_TO_GPU, VMA_ALLOCATION_CREATE_MAPPED_BIT); } @@ -1321,9 +1228,9 @@ void SparseImage::set_least_detailed_level() size_t start_index = virtual_texture.mip_properties[virtual_texture.mip_levels - 1U].mip_base_page_index; size_t num_pages = virtual_texture.mip_properties[virtual_texture.mip_levels - 1U].mip_num_pages; - for (size_t page = start_index; page < (start_index + num_pages); page++) + for (size_t page_index = start_index; page_index < (start_index + num_pages); page_index++) { - virtual_texture.page_table[page].fixed = true; + virtual_texture.page_table[page_index].fixed = true; } } @@ -1393,17 +1300,8 @@ void SparseImage::create_sparse_texture_image() for (uint32_t mip_level = 0U; mip_level < virtual_texture.mip_levels; mip_level++) { - size_t numRows = current_mip_height / sparse_image_format_properties[0].imageGranularity.height; - size_t numColumns = current_mip_width / sparse_image_format_properties[0].imageGranularity.width; - - if (current_mip_height % sparse_image_format_properties[0].imageGranularity.height) - { - numRows++; - } - if (current_mip_width % sparse_image_format_properties[0].imageGranularity.width) - { - numColumns++; - } + size_t numRows = current_mip_height / sparse_image_format_properties[0].imageGranularity.height + (current_mip_height % sparse_image_format_properties[0].imageGranularity.height == 0U ? 0U : 1U); + size_t numColumns = current_mip_width / sparse_image_format_properties[0].imageGranularity.width + (current_mip_width % sparse_image_format_properties[0].imageGranularity.width == 0U ? 0U : 1U); num_total_pages += numRows * numColumns; @@ -1437,7 +1335,7 @@ void SparseImage::create_sparse_texture_image() for (size_t x = 0U; x < on_screen_num_horizontal_blocks; x++) { - virtual_texture.current_mip_table[y][x].mip_level = 0xFF; + virtual_texture.current_mip_table[y][x].mip_level = virtual_texture.mip_levels - 1U; virtual_texture.current_mip_table[y][x].on_screen = false; virtual_texture.new_mip_table[y][x].mip_level = virtual_texture.mip_levels - 1U; @@ -1480,7 +1378,7 @@ void SparseImage::create_sparse_texture_image() for (size_t i = 0U; i < (virtual_texture.pages_allocated); i++) { - virtual_texture.available_memory_indices.push_back(i); + virtual_texture.available_memory_page_indices.push_back(i); } VK_CHECK(vkAllocateMemory(get_device().get_handle(), &memory_allocate_info, nullptr, &virtual_texture.texture_memory)); @@ -1527,6 +1425,6 @@ void SparseImage::on_update_ui_overlay(vkb::Drawer &drawer) drawer.text("Memory usage in pages:"); drawer.text("* Virtual: %zu ", virtual_texture.page_table.size()); drawer.text("* Allocated: %zu ", virtual_texture.pages_allocated); - drawer.text("* Required: %zu ", virtual_texture.pages_allocated - virtual_texture.available_memory_indices.size()); + drawer.text("* Required: %zu ", virtual_texture.pages_allocated - virtual_texture.available_memory_page_indices.size()); } } diff --git a/samples/extensions/sparse_image/sparse_image.h b/samples/extensions/sparse_image/sparse_image.h index 890187a042..a948abe0c5 100644 --- a/samples/extensions/sparse_image/sparse_image.h +++ b/samples/extensions/sparse_image/sparse_image.h @@ -71,11 +71,27 @@ class SparseImage : public ApiVulkanSample struct TextureBlock { - size_t row; - size_t column; - uint8_t old_mip_level; - uint8_t new_mip_level; - bool on_screen; + bool operator<(TextureBlock const &other) const + { + if (this->new_mip_level == other.new_mip_level) + { + if (this->column == other.column) + { + return this->row < other.row; + } + else + { + return this->column < other.column; + } + } + return this->new_mip_level < other.new_mip_level; + }; + + size_t row; + size_t column; + double old_mip_level; + double new_mip_level; + bool on_screen; }; struct MemPageDescription @@ -87,13 +103,12 @@ class SparseImage : public ApiVulkanSample struct PageTable { - bool to_be_bound; // to be bound vkQueueBindSparse() bool valid; // bound via vkQueueBindSparse() and contains valid data bool gen_mip_required; // required for the mip generation bool fixed; // not freed from the memory at any cases - size_t memory_index; // index from available_memory_indices corresponding to this page + size_t page_index; // index from available_memory_page_indices corresponding to this page - std::list> render_required_list; // list holding information on what BLOCKS require this particular memory page to be valid for rendering + std::set> render_required_set; // set holding information on what BLOCKS require this particular memory page to be valid for rendering }; struct Point @@ -105,8 +120,8 @@ class SparseImage : public ApiVulkanSample struct MipBlock { - uint8_t mip_level; - bool on_screen; + double mip_level; + bool on_screen; }; struct VirtualTexture @@ -123,9 +138,9 @@ class SparseImage : public ApiVulkanSample size_t page_size; size_t pages_allocated; - uint8_t base_mip_level; - uint8_t mip_levels; - std::vector mip_properties; + uint8_t base_mip_level; + uint8_t mip_levels; + std::vector mip_properties; std::vector> current_mip_table; std::vector> new_mip_table; @@ -135,16 +150,16 @@ class SparseImage : public ApiVulkanSample std::unique_ptr single_page_buffer; // Key table that includes data on which page is allocated to what memory block from the textureMemory vector - std::vector page_table; + std::vector page_table; - // List containing BLOCKS for which the required mip level has changed or/and its on-screen visibility changed - std::list texture_block_update_list; + // Set containing BLOCKS for which the required mip level has changed or/and its on-screen visibility changed + std::set texture_block_update_set; - // List containing information which pages from the page_table should be updated (either loaded from CPU memory or blitted) - std::list update_list; + // Set containing information which pages from the page_table should be updated (either loaded from CPU memory or blitted) + std::set update_set; // Vector of available memory pages (whole memory page pool is statically allocated at the beginning) - std::vector available_memory_indices; + std::vector available_memory_page_indices; bool update_required = false; @@ -184,7 +199,7 @@ class SparseImage : public ApiVulkanSample uint8_t frame_counter = 0U; enum Stages next_stage = SPARSE_IMAGE_IDLE_STAGE; - struct VirtualTexture virtual_texture; + VirtualTexture virtual_texture; VkQueue sparse_queue; size_t sparse_queue_family_index; @@ -238,19 +253,19 @@ class SparseImage : public ApiVulkanSample void free_unused_memory(); void update_and_generate(); void process_texture_blocks(); - struct MemPageDescription get_mem_page_description(size_t memory_index); + struct MemPageDescription get_mem_page_description(size_t page_index); void calculate_mips_table(glm::mat4 mvp_transform, uint32_t numVerticalBlocks, uint32_t numHorizontalBlocks, std::vector> &mipTable); void compare_mips_table(); void process_texture_block(const TextureBlock &on_screen_block); - void get_memory_dependency_for_the_block(size_t column, size_t row, uint8_t mip_level, std::list &index_list); - void check_mip_page_requirements(std::list &mipgen_required_list, struct MemPageDescription mip_dependency); + std::vector get_memory_dependency_for_the_block(size_t column, size_t row, uint8_t mip_level); + void check_mip_page_requirements(std::vector &mipgen_required_vec, MemPageDescription mip_dependency); void bind_sparse_image(); void copy_single_raw_data_block(uint8_t buffer[], const VkExtent2D blockDim, VkOffset2D offset, size_t stride); void load_least_detailed_level(); void set_least_detailed_level(); void update_frag_settings(); uint8_t get_mip_level(size_t page_index); - size_t get_memory_index(struct MemPageDescription mem_page_desc); + size_t get_page_index(MemPageDescription mem_page_desc); // Override basic framework functionalities void build_command_buffers() override; From d79749ad7de54dd9ac853a6e87a24d0cd22d17f3 Mon Sep 17 00:00:00 2001 From: Grzegorz Smagacz Date: Fri, 20 Oct 2023 00:53:15 +0200 Subject: [PATCH 13/21] * Now memory is allocated dynamically during the run-time * Memory defragmentation can be enabled for the better memory management --- .../extensions/sparse_image/sparse_image.cpp | 277 +++++++++++++----- .../extensions/sparse_image/sparse_image.h | 131 +++++++-- 2 files changed, 305 insertions(+), 103 deletions(-) diff --git a/samples/extensions/sparse_image/sparse_image.cpp b/samples/extensions/sparse_image/sparse_image.cpp index 395f3022d5..6740ad3e66 100644 --- a/samples/extensions/sparse_image/sparse_image.cpp +++ b/samples/extensions/sparse_image/sparse_image.cpp @@ -33,7 +33,11 @@ SparseImage::~SparseImage() vkDestroySampler(get_device().get_handle(), texture_sampler, nullptr); vkDestroyImageView(get_device().get_handle(), virtual_texture.texture_image_view, nullptr); vkDestroyImage(get_device().get_handle(), virtual_texture.texture_image, nullptr); - vkFreeMemory(get_device().get_handle(), virtual_texture.texture_memory, nullptr); + + for (auto &page : virtual_texture.page_table) + { + page.page_memory_info.memory_sector.reset(); + } } } @@ -162,7 +166,7 @@ void SparseImage::prepare_pipelines() void SparseImage::setup_camera() { camera.type = vkb::CameraType::FirstPerson; - camera.set_perspective(fov_degrees, static_cast(width) / static_cast(height), 0.1f, 512.0f); + camera.set_perspective(SPARSE_IMAGE_FOV_DEGREES, static_cast(width) / static_cast(height), 0.1f, 512.0f); camera.set_rotation(glm::vec3(0.0f, 0.0f, 0.0f)); camera.set_translation(glm::vec3(0.0f, 0.0f, -50.0f)); camera.translation_speed = 5.0f; @@ -198,20 +202,10 @@ void SparseImage::bind_sparse_image() continue; } - if (virtual_texture.available_memory_page_indices.empty()) - { - throw std::runtime_error(std::string(__func__) + "(): There is not enough memory available"); - } - - size_t memory_block_index = virtual_texture.available_memory_page_indices.back(); - virtual_texture.available_memory_page_indices.pop_back(); - - size_t pageOffset = virtual_texture.page_size * memory_block_index; + virtual_texture.memory_allocations.get_allocation(virtual_texture.page_table[page_index].page_memory_info, page_index); - virtual_texture.page_table[page_index].page_index = memory_block_index; - - virtual_texture.sparse_image_memory_bind[page_index].memory = virtual_texture.texture_memory; - virtual_texture.sparse_image_memory_bind[page_index].memoryOffset = pageOffset; + virtual_texture.sparse_image_memory_bind[page_index].memory = virtual_texture.page_table[page_index].page_memory_info.memory_sector->memory; + virtual_texture.sparse_image_memory_bind[page_index].memoryOffset = virtual_texture.page_table[page_index].page_memory_info.offset; } VkBindSparseInfo bind_sparse_info = vkb::initializers::bind_sparse_info(); @@ -385,8 +379,9 @@ void SparseImage::check_mip_page_requirements(std::vector &m std::vector SparseImage::get_memory_dependency_for_the_block(size_t column, size_t row, uint8_t mip_level) { std::vector dependencies; - double height_on_screen_divider = 1.0 / on_screen_num_vertical_blocks; - double width_on_screen_divider = 1.0 / on_screen_num_horizontal_blocks; + + double height_on_screen_divider = 1.0 / SPARSE_IMAGE_ON_SCREEN_NUM_VERTICAL_BLOCKS; + double width_on_screen_divider = 1.0 / SPARSE_IMAGE_ON_SCREEN_NUM_HORIZONTAL_BLOCKS; double xLow = width_on_screen_divider * column; double xHigh = width_on_screen_divider * (column + 1U); @@ -437,20 +432,18 @@ void SparseImage::compare_mips_table() { TextureBlock texture_block = {y, x, virtual_texture.current_mip_table[y][x].mip_level, virtual_texture.new_mip_table[y][x].mip_level, false}; process_texture_block(texture_block); + virtual_texture.current_mip_table[y][x] = virtual_texture.new_mip_table[y][x]; + update_required = true; } else if (((static_cast(virtual_texture.new_mip_table[y][x].mip_level) != static_cast(virtual_texture.current_mip_table[y][x].mip_level)) && virtual_texture.new_mip_table[y][x].on_screen) || (virtual_texture.new_mip_table[y][x].on_screen && !virtual_texture.current_mip_table[y][x].on_screen)) { TextureBlock texture_block = {y, x, virtual_texture.current_mip_table[y][x].mip_level, virtual_texture.new_mip_table[y][x].mip_level, true}; virtual_texture.texture_block_update_set.insert(texture_block); + update_required = true; } } } - - if (!virtual_texture.texture_block_update_set.empty()) - { - virtual_texture.update_required = true; - } } /** @@ -542,8 +535,6 @@ void SparseImage::process_texture_blocks() virtual_texture.current_mip_table[(*it).row][(*it).column] = virtual_texture.new_mip_table[(*it).row][(*it).column]; } virtual_texture.texture_block_update_set.erase(virtual_texture.texture_block_update_set.begin(), it); - - transfer_finished = virtual_texture.texture_block_update_set.empty(); } void SparseImage::update_and_generate() @@ -688,20 +679,127 @@ void SparseImage::update_and_generate() } device->flush_command_buffer(command_buffer, queue, true); + + for (size_t i = 0U; i < virtual_texture.page_table.size(); i++) + { + virtual_texture.page_table[i].gen_mip_required = false; + } } void SparseImage::free_unused_memory() { for (size_t i = 0U; i < virtual_texture.page_table.size(); i++) { - virtual_texture.page_table[i].gen_mip_required = false; - if (virtual_texture.page_table[i].render_required_set.empty() && virtual_texture.page_table[i].valid) { virtual_texture.page_table[i].valid = false; - virtual_texture.available_memory_page_indices.push_back(virtual_texture.page_table[i].page_index); + virtual_texture.page_table[i].page_memory_info.memory_sector->available_offsets.insert(virtual_texture.page_table[i].page_memory_info.offset); + virtual_texture.page_table[i].page_memory_info.memory_sector->virt_page_indices.erase(i); + virtual_texture.page_table[i].page_memory_info.memory_sector.reset(); + } + } + + std::set pages_to_reallocate; + uint8_t sectors_to_reallocate = 0U; + + auto §ors = virtual_texture.memory_allocations.get_handle(); + for (auto it = sectors.begin(); it != sectors.end();) + { + if ((*it).expired()) + { + it = sectors.erase(it); + continue; + } + + auto ptr = (*it).lock(); + if (ptr->available_offsets.size() > 20U) + { + if (sectors_to_reallocate > 0U) + { + pages_to_reallocate.insert(ptr->virt_page_indices.begin(), ptr->virt_page_indices.end()); + } + sectors_to_reallocate++; + } + it++; + } + + if (memory_defragmentation && (pages_to_reallocate.size() > 0U)) + { + std::unique_ptr reallocation_buffer = std::make_unique(get_device(), virtual_texture.page_size * pages_to_reallocate.size(), VK_BUFFER_USAGE_TRANSFER_DST_BIT | VK_BUFFER_USAGE_TRANSFER_SRC_BIT, VMA_MEMORY_USAGE_GPU_ONLY); + + VkCommandBuffer command_buffer = get_device().create_command_buffer(VK_COMMAND_BUFFER_LEVEL_PRIMARY, true); + + std::vector copy_infos; + + VkImageSubresourceLayers subresource_layers{}; + subresource_layers.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT; + subresource_layers.baseArrayLayer = 0U; + subresource_layers.layerCount = 1U; + + uint32_t index = 0U; + for (auto &page_index : pages_to_reallocate) + { + VkExtent2D block_extent{}; + block_extent.height = virtual_texture.sparse_image_memory_bind[page_index].extent.height; + block_extent.width = virtual_texture.sparse_image_memory_bind[page_index].extent.width; + + VkOffset2D block_offset{}; + block_offset.x = virtual_texture.sparse_image_memory_bind[page_index].offset.x; + block_offset.y = virtual_texture.sparse_image_memory_bind[page_index].offset.y; + + subresource_layers.mipLevel = get_mip_level(page_index); + + VkBufferImageCopy copy_info{}; + copy_info.bufferOffset = index * virtual_texture.page_size; + copy_info.bufferRowLength = 0U; + copy_info.bufferImageHeight = 0U; + copy_info.imageSubresource = subresource_layers; + copy_info.imageOffset = VkOffset3D({block_offset.x, block_offset.y, 0}); + copy_info.imageExtent = VkExtent3D({block_extent.width, block_extent.height, 1U}); + + copy_infos.push_back(copy_info); + index++; + } + + VkImageSubresourceRange subresource_range{}; + subresource_range.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT; + subresource_range.baseArrayLayer = 0U; + subresource_range.layerCount = 1U; + subresource_range.levelCount = virtual_texture.mip_levels; + subresource_range.baseMipLevel = virtual_texture.base_mip_level; + + vkb::image_layout_transition(command_buffer, virtual_texture.texture_image, VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL, VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL, subresource_range); + vkCmdCopyImageToBuffer(command_buffer, virtual_texture.texture_image, VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL, reallocation_buffer->get_handle(), copy_infos.size(), copy_infos.data()); + device->flush_command_buffer(command_buffer, queue, true); + + for (auto &page_index : pages_to_reallocate) + { + virtual_texture.page_table[page_index].valid = false; + virtual_texture.page_table[page_index].page_memory_info.memory_sector->available_offsets.insert(virtual_texture.page_table[page_index].page_memory_info.offset); + virtual_texture.page_table[page_index].page_memory_info.memory_sector->virt_page_indices.erase(page_index); + virtual_texture.page_table[page_index].page_memory_info.memory_sector.reset(); + } + + sectors.sort(sort_memory_sector); + bind_sparse_image(); + + command_buffer = get_device().create_command_buffer(VK_COMMAND_BUFFER_LEVEL_PRIMARY, true); + + vkb::image_layout_transition(command_buffer, virtual_texture.texture_image, VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL, VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, subresource_range); + vkCmdCopyBufferToImage(command_buffer, reallocation_buffer->get_handle(), virtual_texture.texture_image, VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, copy_infos.size(), copy_infos.data()); + vkb::image_layout_transition(command_buffer, virtual_texture.texture_image, VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL, subresource_range); + device->flush_command_buffer(command_buffer, queue, true); + + for (auto &page_index : pages_to_reallocate) + { + virtual_texture.page_table[page_index].valid = true; } } + else + { + sectors.sort(sort_memory_sector); + bind_sparse_image(); + } } void SparseImage::load_least_detailed_level() @@ -721,15 +819,15 @@ void SparseImage::process_stage(enum Stages next_stage) switch (next_stage) { case SPARSE_IMAGE_CALCULATE_MIPS_TABLE_STAGE: - calculate_mips_table(current_mvp_transform, on_screen_num_vertical_blocks, on_screen_num_horizontal_blocks, virtual_texture.new_mip_table); + calculate_mips_table(current_mvp_transform, SPARSE_IMAGE_ON_SCREEN_NUM_VERTICAL_BLOCKS, SPARSE_IMAGE_ON_SCREEN_NUM_HORIZONTAL_BLOCKS, virtual_texture.new_mip_table); this->next_stage = SPARSE_IMAGE_COMPARE_MIPS_TABLE_STAGE; break; case SPARSE_IMAGE_COMPARE_MIPS_TABLE_STAGE: compare_mips_table(); - if (virtual_texture.update_required) + if (update_required) { - this->next_stage = SPARSE_IMAGE_PROCESS_TEXTURE_BLOCKS_STAGE; + this->next_stage = SPARSE_IMAGE_FREE_MEMORY_STAGE; } else { @@ -738,30 +836,33 @@ void SparseImage::process_stage(enum Stages next_stage) frame_counter = 0U; break; - case SPARSE_IMAGE_PROCESS_TEXTURE_BLOCKS_STAGE: - process_texture_blocks(); - this->next_stage = SPARSE_IMAGE_UPDATE_AND_GENERATE_STAGE; - break; - - case SPARSE_IMAGE_UPDATE_AND_GENERATE_STAGE: - update_and_generate(); + case SPARSE_IMAGE_FREE_MEMORY_STAGE: free_unused_memory(); - - if (frame_counter > 10U) + if (virtual_texture.texture_block_update_set.empty()) { this->next_stage = SPARSE_IMAGE_CALCULATE_MIPS_TABLE_STAGE; + update_required = false; } - else if (!transfer_finished) + else if (frame_counter > 10U) { - this->next_stage = SPARSE_IMAGE_PROCESS_TEXTURE_BLOCKS_STAGE; + this->next_stage = SPARSE_IMAGE_CALCULATE_MIPS_TABLE_STAGE; } else { - virtual_texture.update_required = false; - this->next_stage = SPARSE_IMAGE_CALCULATE_MIPS_TABLE_STAGE; + this->next_stage = SPARSE_IMAGE_PROCESS_TEXTURE_BLOCKS_STAGE; } break; + case SPARSE_IMAGE_PROCESS_TEXTURE_BLOCKS_STAGE: + process_texture_blocks(); + this->next_stage = SPARSE_IMAGE_UPDATE_AND_GENERATE_STAGE; + break; + + case SPARSE_IMAGE_UPDATE_AND_GENERATE_STAGE: + update_and_generate(); + this->next_stage = SPARSE_IMAGE_FREE_MEMORY_STAGE; + break; + default: break; } @@ -802,7 +903,7 @@ std::unique_ptr create_sparse_image() */ void SparseImage::calculate_mips_table(glm::mat4 mvp_transform, uint32_t numVerticalBlocks, uint32_t numHorizontalBlocks, std::vector> &mipTable) { - CalculateMipLevelData meshData(mvp_transform, VkExtent2D({static_cast(virtual_texture.width), static_cast(virtual_texture.height)}), VkExtent2D({static_cast(width), static_cast(height)}), on_screen_num_vertical_blocks, on_screen_num_horizontal_blocks, virtual_texture.mip_levels); + CalculateMipLevelData meshData(mvp_transform, VkExtent2D({static_cast(virtual_texture.width), static_cast(virtual_texture.height)}), VkExtent2D({static_cast(width), static_cast(height)}), SPARSE_IMAGE_ON_SCREEN_NUM_VERTICAL_BLOCKS, SPARSE_IMAGE_ON_SCREEN_NUM_HORIZONTAL_BLOCKS, virtual_texture.mip_levels); meshData.calculate_mesh_coordinates(); meshData.calculate_mip_levels(); @@ -914,7 +1015,7 @@ void SparseImage::CalculateMipLevelData::calculate_mesh_coordinates() * This relates to the vertical step (from A --> B) and describes (the edge from pH to the corresponding vertical edge) or (describes the edge from the pH to the corresponding horizontal-top edge). * * Assuming that the image is not stretched within a single block, I calculate the ratio of for example (...vertical_vertical... / AB_vertical) or (...vertical_horizontal_top... / AC_horizontal). - * I know, that each parrallelogram on-screen corresponds to the fixed-size rectangular on-texture. Given the ratio I calculated I can just get calculate the on-texture step in texels from the right-triangle property and compare it to the x or y step of vertical/horizontal step in pixels on-screen. + * I know, that each parrallelogram on-screen corresponds to the fixed-size rectangular on-texture. Given the ratio I calculated I can just get the on-texture step in texels from the right-triangle property and compare it to the x or y step of vertical/horizontal step in pixels on-screen. */ void SparseImage::CalculateMipLevelData::calculate_mip_levels() { @@ -1325,15 +1426,15 @@ void SparseImage::create_sparse_texture_image() virtual_texture.width = virtual_texture.mip_properties[0].width; virtual_texture.height = virtual_texture.mip_properties[0].height; - virtual_texture.current_mip_table.resize(on_screen_num_vertical_blocks); - virtual_texture.new_mip_table.resize(on_screen_num_vertical_blocks); + virtual_texture.current_mip_table.resize(SPARSE_IMAGE_ON_SCREEN_NUM_VERTICAL_BLOCKS); + virtual_texture.new_mip_table.resize(SPARSE_IMAGE_ON_SCREEN_NUM_VERTICAL_BLOCKS); - for (size_t y = 0U; y < on_screen_num_vertical_blocks; y++) + for (size_t y = 0U; y < SPARSE_IMAGE_ON_SCREEN_NUM_VERTICAL_BLOCKS; y++) { - virtual_texture.current_mip_table[y].resize(on_screen_num_horizontal_blocks); - virtual_texture.new_mip_table[y].resize(on_screen_num_horizontal_blocks); + virtual_texture.current_mip_table[y].resize(SPARSE_IMAGE_ON_SCREEN_NUM_HORIZONTAL_BLOCKS); + virtual_texture.new_mip_table[y].resize(SPARSE_IMAGE_ON_SCREEN_NUM_HORIZONTAL_BLOCKS); - for (size_t x = 0U; x < on_screen_num_horizontal_blocks; x++) + for (size_t x = 0U; x < SPARSE_IMAGE_ON_SCREEN_NUM_HORIZONTAL_BLOCKS; x++) { virtual_texture.current_mip_table[y][x].mip_level = virtual_texture.mip_levels - 1U; virtual_texture.current_mip_table[y][x].on_screen = false; @@ -1347,6 +1448,10 @@ void SparseImage::create_sparse_texture_image() virtual_texture.sparse_image_memory_bind.resize(num_total_pages); + virtual_texture.memory_allocations.device = get_device().get_handle(); + virtual_texture.memory_allocations.page_size = virtual_texture.page_size; + virtual_texture.memory_allocations.memory_type_index = get_device().get_memory_type(virtual_texture.mem_requirements.memoryTypeBits, VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT); + // Setting the data constant data for memory page binding via vkQueueBindSparse() for (size_t page_index = 0U; page_index < virtual_texture.page_table.size(); page_index++) { @@ -1366,23 +1471,6 @@ void SparseImage::create_sparse_texture_image() virtual_texture.sparse_image_memory_bind[page_index].extent.height = (virtual_texture.mip_properties[mipLevel].height - virtual_texture.sparse_image_memory_bind[page_index].offset.y < virtual_texture.format_properties.imageGranularity.height) ? virtual_texture.mip_properties[mipLevel].height - virtual_texture.sparse_image_memory_bind[page_index].offset.y : virtual_texture.format_properties.imageGranularity.height; } - //================================================================================================== - // Allocating memory - - virtual_texture.pages_allocated = virtual_texture.mip_properties[0].mip_num_pages / 2U; - - VkMemoryAllocateInfo memory_allocate_info{}; - memory_allocate_info.sType = VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO; - memory_allocate_info.allocationSize = virtual_texture.page_size * virtual_texture.pages_allocated; - memory_allocate_info.memoryTypeIndex = get_device().get_memory_type(virtual_texture.mem_requirements.memoryTypeBits, VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT); - - for (size_t i = 0U; i < (virtual_texture.pages_allocated); i++) - { - virtual_texture.available_memory_page_indices.push_back(i); - } - - VK_CHECK(vkAllocateMemory(get_device().get_handle(), &memory_allocate_info, nullptr, &virtual_texture.texture_memory)); - //================================================================================================== // Creating texture image view @@ -1415,16 +1503,57 @@ void SparseImage::on_update_ui_overlay(vkb::Drawer &drawer) { if (drawer.header("Settings")) { - if (drawer.checkbox("Color highlight", &color_highlight)) - { - // - } + drawer.checkbox("Color highlight", &color_highlight); + drawer.checkbox("Memory defragmentation", &memory_defragmentation); } if (drawer.header("Statistics")) { drawer.text("Memory usage in pages:"); drawer.text("* Virtual: %zu ", virtual_texture.page_table.size()); - drawer.text("* Allocated: %zu ", virtual_texture.pages_allocated); - drawer.text("* Required: %zu ", virtual_texture.pages_allocated - virtual_texture.available_memory_page_indices.size()); + drawer.text("* Allocated: %zu ", virtual_texture.memory_allocations.get_size() * SPARSE_IMAGE_NUM_PAGES_IN_SINGLE_ALLOC); } } + +void SparseImage::MemAllocInfo::get_allocation(PageInfo &page_memory_info, size_t page_index) +{ + if (memory_sectors.empty() || memory_sectors.front().expired() || memory_sectors.front().lock()->available_offsets.empty()) + { + page_memory_info.memory_sector = std::make_shared(*this); + page_memory_info.offset = *(page_memory_info.memory_sector->available_offsets.begin()); + + page_memory_info.memory_sector->available_offsets.erase(page_memory_info.offset); + memory_sectors.push_front(page_memory_info.memory_sector); + page_memory_info.memory_sector->virt_page_indices.insert(page_index); + } + else + { + for (auto it = memory_sectors.begin(); it != memory_sectors.end();) + { + if (auto ptr = (*it).lock()) + { + if (ptr->available_offsets.empty()) + { + page_memory_info.memory_sector = std::make_shared(*this); + page_memory_info.offset = *(page_memory_info.memory_sector->available_offsets.begin()); + + page_memory_info.memory_sector->available_offsets.erase(page_memory_info.offset); + memory_sectors.push_front(page_memory_info.memory_sector); + page_memory_info.memory_sector->virt_page_indices.insert(page_index); + } + else + { + page_memory_info.memory_sector = ptr; + page_memory_info.offset = *(page_memory_info.memory_sector->available_offsets.begin()); + + page_memory_info.memory_sector->available_offsets.erase(page_memory_info.offset); + page_memory_info.memory_sector->virt_page_indices.insert(page_index); + } + break; + } + else + { + it = memory_sectors.erase(it); + } + } + } +} \ No newline at end of file diff --git a/samples/extensions/sparse_image/sparse_image.h b/samples/extensions/sparse_image/sparse_image.h index a948abe0c5..db78078a49 100644 --- a/samples/extensions/sparse_image/sparse_image.h +++ b/samples/extensions/sparse_image/sparse_image.h @@ -19,21 +19,24 @@ #include "api_vulkan_sample.h" -size_t const SPARSE_IMAGE_ON_SCREEN_HORIZONTAL_BLOCKS = 50U; -size_t const SPARSE_IMAGE_ON_SCREEN_VERTICAL_BLOCKS = 30U; -double const SPARSE_IMAGE_FOV_DEGREES = 60.0; +size_t const SPARSE_IMAGE_ON_SCREEN_NUM_HORIZONTAL_BLOCKS = 50U; +size_t const SPARSE_IMAGE_ON_SCREEN_NUM_VERTICAL_BLOCKS = 30U; +double const SPARSE_IMAGE_FOV_DEGREES = 60.0; +size_t const SPARSE_IMAGE_NUM_PAGES_IN_SINGLE_ALLOC = 50U; class SparseImage : public ApiVulkanSample { public: - bool color_highlight = true; - bool color_highlight_mem = true; + bool color_highlight = true; + bool color_highlight_mem = true; + bool memory_defragmentation = true; enum Stages { SPARSE_IMAGE_IDLE_STAGE, SPARSE_IMAGE_CALCULATE_MIPS_TABLE_STAGE, SPARSE_IMAGE_COMPARE_MIPS_TABLE_STAGE, + SPARSE_IMAGE_FREE_MEMORY_STAGE, SPARSE_IMAGE_PROCESS_TEXTURE_BLOCKS_STAGE, SPARSE_IMAGE_UPDATE_AND_GENERATE_STAGE, SPARSE_IMAGE_NUM_STAGES, @@ -101,16 +104,6 @@ class SparseImage : public ApiVulkanSample uint8_t mip_level; }; - struct PageTable - { - bool valid; // bound via vkQueueBindSparse() and contains valid data - bool gen_mip_required; // required for the mip generation - bool fixed; // not freed from the memory at any cases - size_t page_index; // index from available_memory_page_indices corresponding to this page - - std::set> render_required_set; // set holding information on what BLOCKS require this particular memory page to be valid for rendering - }; - struct Point { double x; @@ -124,11 +117,98 @@ class SparseImage : public ApiVulkanSample bool on_screen; }; + struct MemSector; + + struct PageInfo + { + std::shared_ptr memory_sector; + uint32_t offset; + }; + + struct PageTable + { + bool valid; // bound via vkQueueBindSparse() and contains valid data + bool gen_mip_required; // required for the mip generation + bool fixed; // not freed from the memory at any cases + PageInfo page_memory_info; // memory-related info + + std::set> render_required_set; // set holding information on what BLOCKS require this particular memory page to be valid for rendering + }; + + struct MemAllocInfo + { + VkDevice device; + uint64_t page_size; + uint32_t memory_type_index; + + void get_allocation(PageInfo &page_memory_info, size_t page_index); + + uint32_t get_size() + { + return memory_sectors.size(); + } + + std::list> &get_handle() + { + return memory_sectors; + } + + private: + std::list> memory_sectors; + }; + + struct MemSector : public MemAllocInfo + { + VkDeviceMemory memory = VK_NULL_HANDLE; + + std::set available_offsets; + std::set virt_page_indices; + + MemSector(MemAllocInfo &mem_alloc_info) + { + this->device = mem_alloc_info.device; + this->page_size = mem_alloc_info.page_size; + this->memory_type_index = mem_alloc_info.memory_type_index; + + VkMemoryAllocateInfo memory_allocate_info{}; + memory_allocate_info.sType = VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO; + memory_allocate_info.allocationSize = page_size * SPARSE_IMAGE_NUM_PAGES_IN_SINGLE_ALLOC; + memory_allocate_info.memoryTypeIndex = memory_type_index; + + VkDeviceMemory memory; + VK_CHECK(vkAllocateMemory(device, &memory_allocate_info, nullptr, &memory)); + this->memory = memory; + + for (size_t i = 0U; i < SPARSE_IMAGE_NUM_PAGES_IN_SINGLE_ALLOC; i++) + { + available_offsets.insert(page_size * i); + } + } + + ~MemSector() + { + vkFreeMemory(device, memory, nullptr); + } + }; + + friend bool sort_memory_sector(const std::weak_ptr left, const std::weak_ptr right) + { + if (left.expired()) + { + return false; + } + else if (right.expired()) + { + return true; + } + return left.lock()->available_offsets.size() > right.lock()->available_offsets.size(); + }; + struct VirtualTexture { - VkImage texture_image; - VkImageView texture_image_view; - VkDeviceMemory texture_memory; + VkImage texture_image; + VkImageView texture_image_view; + MemAllocInfo memory_allocations; // Dimensions size_t width; @@ -136,7 +216,6 @@ class SparseImage : public ApiVulkanSample // Number of bytes per page size_t page_size; - size_t pages_allocated; uint8_t base_mip_level; uint8_t mip_levels; @@ -161,8 +240,6 @@ class SparseImage : public ApiVulkanSample // Vector of available memory pages (whole memory page pool is statically allocated at the beginning) std::vector available_memory_page_indices; - bool update_required = false; - // Sparse-image-related format and memory properties VkSparseImageFormatProperties format_properties; VkSparseImageMemoryRequirements memory_sparse_requirements; @@ -194,10 +271,10 @@ class SparseImage : public ApiVulkanSample void calculate_mip_levels(); }; - bool transfer_finished = false; - bool update_frag = false; - uint8_t frame_counter = 0U; - enum Stages next_stage = SPARSE_IMAGE_IDLE_STAGE; + bool update_frag = false; + bool update_required = false; + uint8_t frame_counter = 0U; + enum Stages next_stage = SPARSE_IMAGE_IDLE_STAGE; VirtualTexture virtual_texture; @@ -221,10 +298,6 @@ class SparseImage : public ApiVulkanSample VkDescriptorSet descriptor_set; VkSampler texture_sampler; - size_t on_screen_num_vertical_blocks = SPARSE_IMAGE_ON_SCREEN_VERTICAL_BLOCKS; - size_t on_screen_num_horizontal_blocks = SPARSE_IMAGE_ON_SCREEN_HORIZONTAL_BLOCKS; - double fov_degrees = SPARSE_IMAGE_FOV_DEGREES; - //================================================================================================== SparseImage(); virtual ~SparseImage(); From 5ebaaeb15e63890cc562fa9a1fd6ede52c6d9212 Mon Sep 17 00:00:00 2001 From: Grzegorz Smagacz Date: Sat, 21 Oct 2023 20:27:50 +0200 Subject: [PATCH 14/21] * Fixed validation-layer-errors related to deframentation process * From now number of vertical/horizontal blocks can be changed from the UI * Number of blocks processed per-frame can be customized from UI too * Frame-counter mechanism can be enabled/disabled from the UI * Moved sparse_queue to separate (if possible) queue family, other than graphics queue * Introduced synchronization between binding the image and submitting the image * update_and_generate() was reduced to single command_buffer and one-time flush() * Several minor reworks/fixes for better code styling and efficiency --- .../extensions/sparse_image/sparse_image.cpp | 533 ++++++++++-------- .../extensions/sparse_image/sparse_image.h | 88 +-- shaders/sparse_image/sparse.frag | 18 +- 3 files changed, 373 insertions(+), 266 deletions(-) diff --git a/samples/extensions/sparse_image/sparse_image.cpp b/samples/extensions/sparse_image/sparse_image.cpp index 6740ad3e66..4d093c5351 100644 --- a/samples/extensions/sparse_image/sparse_image.cpp +++ b/samples/extensions/sparse_image/sparse_image.cpp @@ -27,6 +27,8 @@ SparseImage::~SparseImage() { if (device) { + vkDestroySemaphore(get_device().get_handle(), submit_semaphore, nullptr); + vkDestroySemaphore(get_device().get_handle(), bound_semaphore, nullptr); vkDestroyPipeline(get_device().get_handle(), sample_pipeline, nullptr); vkDestroyPipelineLayout(get_device().get_handle(), sample_pipeline_layout, nullptr); vkDestroyDescriptorSetLayout(get_device().get_handle(), descriptor_set_layout, nullptr); @@ -45,7 +47,7 @@ void SparseImage::load_assets() { virtual_texture.raw_data_image = vkb::sg::Image::load("/textures/vulkan_logo_full.ktx", "/textures/vulkan_logo_full.ktx", vkb::sg::Image::ContentType::Color); - assert(virtual_texture.raw_data_image->get_format() == VK_FORMAT_R8G8B8A8_SRGB); + assert(virtual_texture.raw_data_image->get_format() == image_format); VkExtent3D tex_extent = virtual_texture.raw_data_image->get_extent(); VkDeviceSize image_size = tex_extent.width * tex_extent.height * 4U; @@ -55,7 +57,22 @@ void SparseImage::load_assets() void SparseImage::create_sparse_bind_queue() { - sparse_queue_family_index = get_device().get_queue_family_index(VK_QUEUE_SPARSE_BINDING_BIT); + const auto &queue_family_properties = device->get_gpu().get_queue_family_properties(); + + uint8_t sparse_queue_family_index = 0xFF; + for (uint32_t i = 0; i < static_cast(queue_family_properties.size()); i++) + { + if ((queue_family_properties[i].queueFlags & VK_QUEUE_TRANSFER_BIT) && (queue_family_properties[i].queueFlags & VK_QUEUE_SPARSE_BINDING_BIT) && !(queue_family_properties[i].queueFlags & VK_QUEUE_GRAPHICS_BIT)) + { + sparse_queue_family_index = i; + break; + } + } + + if (sparse_queue_family_index == 0xFF) + { + sparse_queue_family_index = get_device().get_queue_family_index(VK_QUEUE_SPARSE_BINDING_BIT); + } vkGetDeviceQueue(get_device().get_handle(), sparse_queue_family_index, 0U, &sparse_queue); } @@ -86,9 +103,12 @@ bool SparseImage::prepare(const vkb::ApplicationOptions &options) update_mvp(); update_frag_settings(); + load_least_detailed_level(); - next_stage = SPARSE_IMAGE_CALCULATE_MIPS_TABLE_STAGE; + mesh_data = CalculateMipLevelData(current_mvp_transform, VkExtent2D({static_cast(virtual_texture.width), static_cast(virtual_texture.height)}), VkExtent2D({static_cast(width), static_cast(height)}), num_vertical_blocks, num_horizontal_blocks, virtual_texture.mip_levels); + + next_stage = Stages::Idle; prepared = true; return true; @@ -166,10 +186,10 @@ void SparseImage::prepare_pipelines() void SparseImage::setup_camera() { camera.type = vkb::CameraType::FirstPerson; - camera.set_perspective(SPARSE_IMAGE_FOV_DEGREES, static_cast(width) / static_cast(height), 0.1f, 512.0f); + camera.set_perspective(FOV_DEGREES, static_cast(width) / static_cast(height), 0.1f, 1024.0f); camera.set_rotation(glm::vec3(0.0f, 0.0f, 0.0f)); camera.set_translation(glm::vec3(0.0f, 0.0f, -50.0f)); - camera.translation_speed = 5.0f; + camera.translation_speed = 20.0f; } /** @@ -191,7 +211,8 @@ void SparseImage::bind_sparse_image() { for (size_t page_index = 0U; page_index < virtual_texture.page_table.size(); page_index++) { - if (!virtual_texture.page_table[page_index].gen_mip_required && virtual_texture.page_table[page_index].render_required_set.empty()) + auto &page = virtual_texture.page_table[page_index]; + if (!page.gen_mip_required && page.render_required_set.empty()) { virtual_texture.sparse_image_memory_bind[page_index].memory = VK_NULL_HANDLE; continue; @@ -202,10 +223,10 @@ void SparseImage::bind_sparse_image() continue; } - virtual_texture.memory_allocations.get_allocation(virtual_texture.page_table[page_index].page_memory_info, page_index); + virtual_texture.memory_allocations.get_allocation(page.page_memory_info, page_index); - virtual_texture.sparse_image_memory_bind[page_index].memory = virtual_texture.page_table[page_index].page_memory_info.memory_sector->memory; - virtual_texture.sparse_image_memory_bind[page_index].memoryOffset = virtual_texture.page_table[page_index].page_memory_info.offset; + virtual_texture.sparse_image_memory_bind[page_index].memory = page.page_memory_info.memory_sector->memory; + virtual_texture.sparse_image_memory_bind[page_index].memoryOffset = page.page_memory_info.offset; } VkBindSparseInfo bind_sparse_info = vkb::initializers::bind_sparse_info(); @@ -228,10 +249,10 @@ void SparseImage::bind_sparse_image() bind_sparse_info.imageOpaqueBindCount = 0U; bind_sparse_info.pImageOpaqueBinds = nullptr; - bind_sparse_info.signalSemaphoreCount = 0U; - bind_sparse_info.pSignalSemaphores = nullptr; - bind_sparse_info.waitSemaphoreCount = 0U; - bind_sparse_info.pWaitSemaphores = nullptr; + bind_sparse_info.signalSemaphoreCount = 1U; + bind_sparse_info.pSignalSemaphores = &bound_semaphore; + bind_sparse_info.waitSemaphoreCount = 1U; + bind_sparse_info.pWaitSemaphores = &submit_semaphore; VkFence fence; VkFenceCreateInfo fence_info{}; @@ -366,7 +387,10 @@ void SparseImage::check_mip_page_requirements(std::vector &m if (!virtual_texture.page_table[page_index].valid) { - mipgen_required_vec.push_back(req_mem_page_desc); + if (req_mem_page_desc.mip_level > 0U) + { + mipgen_required_vec.push_back(req_mem_page_desc); + } virtual_texture.update_set.insert(page_index); } } @@ -380,14 +404,14 @@ std::vector SparseImage::get_memory_dependency_for_the_block(size_t colu { std::vector dependencies; - double height_on_screen_divider = 1.0 / SPARSE_IMAGE_ON_SCREEN_NUM_VERTICAL_BLOCKS; - double width_on_screen_divider = 1.0 / SPARSE_IMAGE_ON_SCREEN_NUM_HORIZONTAL_BLOCKS; + double height_on_screen_divider = 1.0 / num_vertical_blocks; + double width_on_screen_divider = 1.0 / num_horizontal_blocks; - double xLow = width_on_screen_divider * column; - double xHigh = width_on_screen_divider * (column + 1U); + double x_low = width_on_screen_divider * column; + double x_high = width_on_screen_divider * (column + 1U); - double yLow = height_on_screen_divider * row; - double yHigh = height_on_screen_divider * (row + 1U); + double y_low = height_on_screen_divider * row; + double y_high = height_on_screen_divider * (row + 1U); double texel_width = virtual_texture.mip_properties[mip_level].width; double texel_height = virtual_texture.mip_properties[mip_level].height; @@ -395,18 +419,15 @@ std::vector SparseImage::get_memory_dependency_for_the_block(size_t colu double in_memory_row_pages = texel_height / virtual_texture.format_properties.imageGranularity.height; double in_memory_column_pages = texel_width / virtual_texture.format_properties.imageGranularity.width; - double height_in_memory_divider = 1.0 / in_memory_row_pages; - double width_in_memory_divider = 1.0 / in_memory_column_pages; - - size_t memXLow = static_cast(floor(xLow / width_in_memory_divider)); - size_t memXHigh = static_cast(ceil(xHigh / width_in_memory_divider)); + size_t mem_x_low = static_cast(floor(x_low * in_memory_column_pages)); + size_t mem_x_high = static_cast(ceil(x_high * in_memory_column_pages)); - size_t memYLow = static_cast(floor(yLow / height_in_memory_divider)); - size_t memYHigh = static_cast(ceil(yHigh / height_in_memory_divider)); + size_t mem_y_low = static_cast(floor(y_low * in_memory_row_pages)); + size_t mem_y_high = static_cast(ceil(y_high * in_memory_row_pages)); - for (size_t y = memYLow; y < memYHigh; y++) + for (size_t y = mem_y_low; y < mem_y_high; y++) { - for (size_t x = memXLow; x < memXHigh; x++) + for (size_t x = mem_x_low; x < mem_x_high; x++) { size_t page_index = virtual_texture.mip_properties[mip_level].mip_base_page_index + virtual_texture.mip_properties[mip_level].num_columns * y + x; dependencies.push_back(page_index); @@ -426,18 +447,22 @@ void SparseImage::compare_mips_table() } for (size_t y = 0U; y < virtual_texture.current_mip_table.size(); y++) { - for (size_t x = 0U; x < virtual_texture.current_mip_table[0].size(); x++) + for (size_t x = 0U; x < virtual_texture.current_mip_table[y].size(); x++) { if (!virtual_texture.new_mip_table[y][x].on_screen && virtual_texture.current_mip_table[y][x].on_screen) { + // The particular block is removed from all render_required_set`s in page_table[] entries, because it was previously visible on screen, and is not anymore. TextureBlock texture_block = {y, x, virtual_texture.current_mip_table[y][x].mip_level, virtual_texture.new_mip_table[y][x].mip_level, false}; process_texture_block(texture_block); - virtual_texture.current_mip_table[y][x] = virtual_texture.new_mip_table[y][x]; + virtual_texture.current_mip_table[y][x] = virtual_texture.new_mip_table[y][x]; // These tables are equal in size update_required = true; } - else if (((static_cast(virtual_texture.new_mip_table[y][x].mip_level) != static_cast(virtual_texture.current_mip_table[y][x].mip_level)) && virtual_texture.new_mip_table[y][x].on_screen) || (virtual_texture.new_mip_table[y][x].on_screen && !virtual_texture.current_mip_table[y][x].on_screen)) + else if (virtual_texture.new_mip_table[y][x].on_screen && + (!virtual_texture.current_mip_table[y][x].on_screen || + (static_cast(virtual_texture.new_mip_table[y][x].mip_level) != static_cast(virtual_texture.current_mip_table[y][x].mip_level)))) { + // The particular block is visible on screen and needs to be updated, because either it wasn't previously visible on screen or the required mip_level has changed. TextureBlock texture_block = {y, x, virtual_texture.current_mip_table[y][x].mip_level, virtual_texture.new_mip_table[y][x].mip_level, true}; virtual_texture.texture_block_update_set.insert(texture_block); update_required = true; @@ -481,7 +506,7 @@ void SparseImage::build_command_buffers() render_pass_begin_info.clearValueCount = 2U; render_pass_begin_info.pClearValues = clear_values; - for (int32_t i = 0; i < draw_cmd_buffers.size(); ++i) + for (size_t i = 0U; i < draw_cmd_buffers.size(); ++i) { auto cmd = draw_cmd_buffers[i]; @@ -525,11 +550,11 @@ void SparseImage::build_command_buffers() void SparseImage::process_texture_blocks() { uint8_t block_counter; - block_counter = std::min(static_cast(10U), virtual_texture.texture_block_update_set.size()); - frame_counter++; + block_counter = std::min(blocks_to_update_per_cycle, virtual_texture.texture_block_update_set.size()); + frame_counter_per_transfer++; auto it = virtual_texture.texture_block_update_set.begin(); - for (; (block_counter > 0U) && (it != virtual_texture.texture_block_update_set.end()); it++, block_counter--) + for (; block_counter > 0U; it++, block_counter--) { process_texture_block(*it); virtual_texture.current_mip_table[(*it).row][(*it).column] = virtual_texture.new_mip_table[(*it).row][(*it).column]; @@ -541,11 +566,25 @@ void SparseImage::update_and_generate() { bind_sparse_image(); uint8_t current_mip_level = 0xFF; + + std::vector temp_buffer(virtual_texture.page_size); + + size_t level_zero_count = std::count_if( + virtual_texture.update_set.begin(), virtual_texture.update_set.end(), [this](auto page_index) { return get_mip_level(page_index) == 0; }); + size_t level_zero_index = 0; + + std::unique_ptr multi_page_buffer; + if (0 < level_zero_count) + { + multi_page_buffer = std::make_unique(get_device(), level_zero_count * virtual_texture.page_size, VK_BUFFER_USAGE_TRANSFER_SRC_BIT, VMA_MEMORY_USAGE_CPU_TO_GPU, VMA_ALLOCATION_CREATE_MAPPED_BIT); + } + + VkCommandBuffer command_buffer = get_device().create_command_buffer(VK_COMMAND_BUFFER_LEVEL_PRIMARY, true); + for (auto page_index : virtual_texture.update_set) { uint8_t mip_level = get_mip_level(page_index); - VkCommandBuffer command_buffer = get_device().create_command_buffer(VK_COMMAND_BUFFER_LEVEL_PRIMARY, true); VkImageSubresourceRange subresource_range{}; subresource_range.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT; @@ -555,35 +594,25 @@ void SparseImage::update_and_generate() if (current_mip_level != mip_level) { - if (current_mip_level != 0xFF && current_mip_level != 0U) - { - subresource_range.baseMipLevel = current_mip_level; - vkb::image_layout_transition(command_buffer, virtual_texture.texture_image, VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL, subresource_range); - - subresource_range.baseMipLevel = current_mip_level - 1U; - vkb::image_layout_transition(command_buffer, virtual_texture.texture_image, VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL, VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL, subresource_range); - } - else if (current_mip_level == 0U) + if (current_mip_level != 0xFF) { subresource_range.baseMipLevel = current_mip_level; vkb::image_layout_transition(command_buffer, virtual_texture.texture_image, VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL, subresource_range); + if (current_mip_level != 0) + { + subresource_range.baseMipLevel = current_mip_level - 1U; + vkb::image_layout_transition(command_buffer, virtual_texture.texture_image, VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL, VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL, subresource_range); + } } - if (mip_level == 0U) - { - subresource_range.baseMipLevel = mip_level; - vkb::image_layout_transition(command_buffer, virtual_texture.texture_image, VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL, VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, subresource_range); - } - else + subresource_range.baseMipLevel = mip_level; + vkb::image_layout_transition(command_buffer, virtual_texture.texture_image, VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL, VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, subresource_range); + if (mip_level != 0) { - subresource_range.baseMipLevel = mip_level; - vkb::image_layout_transition(command_buffer, virtual_texture.texture_image, VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL, VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, subresource_range); - subresource_range.baseMipLevel = mip_level - 1U; vkb::image_layout_transition(command_buffer, virtual_texture.texture_image, VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL, VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL, subresource_range); } - device->flush_command_buffer(command_buffer, queue, true); current_mip_level = mip_level; } @@ -600,16 +629,13 @@ void SparseImage::update_and_generate() if (mip_level == 0U) { - std::vector temp_buffer; - temp_buffer.resize(virtual_texture.page_size); - copy_single_raw_data_block(temp_buffer.data(), block_extent, block_offset, virtual_texture.width * 4U); - virtual_texture.single_page_buffer->update(temp_buffer, 0U); - VkCommandBuffer command_buffer = get_device().create_command_buffer(VK_COMMAND_BUFFER_LEVEL_PRIMARY, true); + VkDeviceSize buffer_offset = level_zero_index++ * virtual_texture.page_size; + multi_page_buffer->update(temp_buffer, buffer_offset); VkBufferImageCopy region{}; - region.bufferOffset = 0U; + region.bufferOffset = buffer_offset; region.bufferRowLength = 0U; region.bufferImageHeight = 0U; @@ -621,24 +647,21 @@ void SparseImage::update_and_generate() region.imageOffset = VkOffset3D({block_offset.x, block_offset.y, 0}); region.imageExtent = VkExtent3D({block_extent.width, block_extent.height, 1U}); - vkCmdCopyBufferToImage(command_buffer, virtual_texture.single_page_buffer->get_handle(), virtual_texture.texture_image, VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, 1U, ®ion); + vkCmdCopyBufferToImage(command_buffer, multi_page_buffer->get_handle(), virtual_texture.texture_image, VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, 1U, ®ion); - device->flush_command_buffer(command_buffer, queue, true); virtual_texture.page_table[page_index].valid = true; } else { - VkCommandBuffer command_buffer = get_device().create_command_buffer(VK_COMMAND_BUFFER_LEVEL_PRIMARY, true); - VkImageBlit blit_cmd{}; blit_cmd.srcOffsets[0] = {(block_offset.x) * 2, (block_offset.y) * 2, 0}; - blit_cmd.srcOffsets[1] = {(block_offset.x + static_cast(block_extent.width)) * 2, (block_offset.y + static_cast(block_extent.height)) * 2, 1}; // TODO(GS): 1x1 mip + blit_cmd.srcOffsets[1] = {(block_offset.x + static_cast(block_extent.width)) * 2, (block_offset.y + static_cast(block_extent.height)) * 2, 1}; blit_cmd.srcSubresource.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT; blit_cmd.srcSubresource.mipLevel = mip_level - 1U; blit_cmd.srcSubresource.baseArrayLayer = 0U; blit_cmd.srcSubresource.layerCount = 1U; blit_cmd.dstOffsets[0] = {block_offset.x, block_offset.y, 0}; - blit_cmd.dstOffsets[1] = {block_offset.x + static_cast(block_extent.width), block_offset.y + static_cast(block_extent.height), 1}; // TODO(GS): 1x1 mip + blit_cmd.dstOffsets[1] = {block_offset.x + static_cast(block_extent.width), block_offset.y + static_cast(block_extent.height), 1}; blit_cmd.dstSubresource.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT; blit_cmd.dstSubresource.mipLevel = mip_level; blit_cmd.dstSubresource.baseArrayLayer = 0U; @@ -650,13 +673,11 @@ void SparseImage::update_and_generate() 1U, &blit_cmd, VK_FILTER_LINEAR); - device->flush_command_buffer(command_buffer, queue, true); virtual_texture.page_table[page_index].valid = true; } } virtual_texture.update_set.clear(); - VkCommandBuffer command_buffer = get_device().create_command_buffer(VK_COMMAND_BUFFER_LEVEL_PRIMARY, true); VkImageSubresourceRange subresource_range{}; subresource_range.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT; @@ -664,38 +685,40 @@ void SparseImage::update_and_generate() subresource_range.layerCount = 1U; subresource_range.levelCount = 1U; - if (current_mip_level != 0xFF && current_mip_level != 0U) - { - subresource_range.baseMipLevel = current_mip_level; - vkb::image_layout_transition(command_buffer, virtual_texture.texture_image, VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL, subresource_range); - - subresource_range.baseMipLevel = current_mip_level - 1U; - vkb::image_layout_transition(command_buffer, virtual_texture.texture_image, VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL, VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL, subresource_range); - } - else if (current_mip_level == 0U) + if (current_mip_level != 0xFF) { subresource_range.baseMipLevel = current_mip_level; vkb::image_layout_transition(command_buffer, virtual_texture.texture_image, VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL, subresource_range); + if (current_mip_level != 0) + { + subresource_range.baseMipLevel = current_mip_level - 1U; + vkb::image_layout_transition(command_buffer, virtual_texture.texture_image, VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL, VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL, subresource_range); + } } device->flush_command_buffer(command_buffer, queue, true); - for (size_t i = 0U; i < virtual_texture.page_table.size(); i++) + for (auto &page : virtual_texture.page_table) { - virtual_texture.page_table[i].gen_mip_required = false; + page.gen_mip_required = false; } } void SparseImage::free_unused_memory() { - for (size_t i = 0U; i < virtual_texture.page_table.size(); i++) + for (size_t page_index = 0U; page_index < virtual_texture.page_table.size(); page_index++) { - if (virtual_texture.page_table[i].render_required_set.empty() && virtual_texture.page_table[i].valid) + auto &page = virtual_texture.page_table[page_index]; + if (page.render_required_set.empty() && page.valid) { - virtual_texture.page_table[i].valid = false; - virtual_texture.page_table[i].page_memory_info.memory_sector->available_offsets.insert(virtual_texture.page_table[i].page_memory_info.offset); - virtual_texture.page_table[i].page_memory_info.memory_sector->virt_page_indices.erase(i); - virtual_texture.page_table[i].page_memory_info.memory_sector.reset(); + page.valid = false; + auto result = page.page_memory_info.memory_sector->available_offsets.insert(page.page_memory_info.offset); + if (!result.second) + { + assert(false); + } + page.page_memory_info.memory_sector->virt_page_indices.erase(page_index); + page.page_memory_info.memory_sector.reset(); } } @@ -711,14 +734,18 @@ void SparseImage::free_unused_memory() continue; } - auto ptr = (*it).lock(); - if (ptr->available_offsets.size() > 20U) + if (memory_defragmentation) { - if (sectors_to_reallocate > 0U) + auto ptr = (*it).lock(); + if (ptr->available_offsets.size() > MEMORY_FRAGMENTATION_CAP) { - pages_to_reallocate.insert(ptr->virt_page_indices.begin(), ptr->virt_page_indices.end()); + if (sectors_to_reallocate > 0U) + { + ptr->available_offsets.clear(); // This sector will not be used to allocate any additional pages + pages_to_reallocate.insert(ptr->virt_page_indices.begin(), ptr->virt_page_indices.end()); + } + sectors_to_reallocate++; } - sectors_to_reallocate++; } it++; } @@ -772,12 +799,16 @@ void SparseImage::free_unused_memory() vkCmdCopyImageToBuffer(command_buffer, virtual_texture.texture_image, VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL, reallocation_buffer->get_handle(), copy_infos.size(), copy_infos.data()); device->flush_command_buffer(command_buffer, queue, true); + std::vector> temp_sectors; for (auto &page_index : pages_to_reallocate) { - virtual_texture.page_table[page_index].valid = false; - virtual_texture.page_table[page_index].page_memory_info.memory_sector->available_offsets.insert(virtual_texture.page_table[page_index].page_memory_info.offset); - virtual_texture.page_table[page_index].page_memory_info.memory_sector->virt_page_indices.erase(page_index); - virtual_texture.page_table[page_index].page_memory_info.memory_sector.reset(); + auto &page = virtual_texture.page_table[page_index]; + + temp_sectors.push_back(page.page_memory_info.memory_sector); + + page.page_memory_info.memory_sector->virt_page_indices.erase(page_index); + page.page_memory_info.memory_sector.reset(); + page.valid = false; } sectors.sort(sort_memory_sector); @@ -794,6 +825,7 @@ void SparseImage::free_unused_memory() { virtual_texture.page_table[page_index].valid = true; } + temp_sectors.clear(); } else { @@ -809,65 +841,98 @@ void SparseImage::load_least_detailed_level() while (!virtual_texture.texture_block_update_set.empty()) { process_texture_blocks(); - update_and_generate(); - free_unused_memory(); } + VkSubmitInfo submit_info = {VK_STRUCTURE_TYPE_SUBMIT_INFO}; + submit_info.signalSemaphoreCount = 1; + submit_info.pSignalSemaphores = &submit_semaphore; + VK_CHECK(vkQueueSubmit(queue, 1, &submit_info, VK_NULL_HANDLE)); + + update_and_generate(); } -void SparseImage::process_stage(enum Stages next_stage) +void SparseImage::process_stage(Stages next_stage) { switch (next_stage) { - case SPARSE_IMAGE_CALCULATE_MIPS_TABLE_STAGE: - calculate_mips_table(current_mvp_transform, SPARSE_IMAGE_ON_SCREEN_NUM_VERTICAL_BLOCKS, SPARSE_IMAGE_ON_SCREEN_NUM_HORIZONTAL_BLOCKS, virtual_texture.new_mip_table); - this->next_stage = SPARSE_IMAGE_COMPARE_MIPS_TABLE_STAGE; + case Stages::Idle: + this->next_stage = Stages::FreeMemory; + break; + + case Stages::CalculateMipsTable: + bind_sparse_image(); + calculate_mips_table(); + frame_counter_per_transfer = 0U; + this->next_stage = Stages::CompareMipsTable; break; - case SPARSE_IMAGE_COMPARE_MIPS_TABLE_STAGE: + case Stages::CompareMipsTable: + bind_sparse_image(); compare_mips_table(); if (update_required) { - this->next_stage = SPARSE_IMAGE_FREE_MEMORY_STAGE; + this->next_stage = Stages::FreeMemory; } else { - this->next_stage = SPARSE_IMAGE_CALCULATE_MIPS_TABLE_STAGE; + this->next_stage = Stages::CalculateMipsTable; } - frame_counter = 0U; break; - case SPARSE_IMAGE_FREE_MEMORY_STAGE: + case Stages::FreeMemory: free_unused_memory(); if (virtual_texture.texture_block_update_set.empty()) { - this->next_stage = SPARSE_IMAGE_CALCULATE_MIPS_TABLE_STAGE; + this->next_stage = Stages::CalculateMipsTable; update_required = false; } - else if (frame_counter > 10U) + else if ((frame_counter_per_transfer > FRAME_COUNTER_CAP) && frame_counter_feature) { - this->next_stage = SPARSE_IMAGE_CALCULATE_MIPS_TABLE_STAGE; + this->next_stage = Stages::CalculateMipsTable; } else { - this->next_stage = SPARSE_IMAGE_PROCESS_TEXTURE_BLOCKS_STAGE; + this->next_stage = Stages::ProcessTextureBlocks; } break; - case SPARSE_IMAGE_PROCESS_TEXTURE_BLOCKS_STAGE: + case Stages::ProcessTextureBlocks: + bind_sparse_image(); process_texture_blocks(); - this->next_stage = SPARSE_IMAGE_UPDATE_AND_GENERATE_STAGE; + this->next_stage = Stages::UpdateAndGenerate; break; - case SPARSE_IMAGE_UPDATE_AND_GENERATE_STAGE: + case Stages::UpdateAndGenerate: update_and_generate(); - this->next_stage = SPARSE_IMAGE_FREE_MEMORY_STAGE; + this->next_stage = Stages::FreeMemory; break; default: + assert(false); break; } } +void SparseImage::draw() +{ + ApiVulkanSample::prepare_frame(); + submit_info.commandBufferCount = 1U; + submit_info.pCommandBuffers = &draw_cmd_buffers[current_buffer]; + + std::array wait_stage_masks = {VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT, VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT}; + std::array wait_semaphores = {bound_semaphore, semaphores.acquired_image_ready}; + std::array signal_semaphores = {submit_semaphore, semaphores.render_complete}; + + submit_info.waitSemaphoreCount = wait_semaphores.size(); + + submit_info.pWaitSemaphores = wait_semaphores.data(); + submit_info.pWaitDstStageMask = wait_stage_masks.data(); + submit_info.signalSemaphoreCount = signal_semaphores.size(); + submit_info.pSignalSemaphores = signal_semaphores.data(); + + VK_CHECK(vkQueueSubmit(queue, 1U, &submit_info, VK_NULL_HANDLE)); + ApiVulkanSample::submit_frame(); +} + void SparseImage::render(float delta_time) { if (!prepared) @@ -878,19 +943,15 @@ void SparseImage::render(float delta_time) { update_mvp(); } - if (color_highlight != color_highlight_mem) + if (color_highlight_changed) { update_frag_settings(); - color_highlight_mem = color_highlight; + color_highlight_changed = false; } process_stage(next_stage); - ApiVulkanSample::prepare_frame(); - submit_info.commandBufferCount = 1U; - submit_info.pCommandBuffers = &draw_cmd_buffers[current_buffer]; - VK_CHECK(vkQueueSubmit(queue, 1U, &submit_info, VK_NULL_HANDLE)); - ApiVulkanSample::submit_frame(); + draw(); } std::unique_ptr create_sparse_image() @@ -901,29 +962,40 @@ std::unique_ptr create_sparse_image() /** * @brief Generate the mesh and calculate required mip level for each texture block */ -void SparseImage::calculate_mips_table(glm::mat4 mvp_transform, uint32_t numVerticalBlocks, uint32_t numHorizontalBlocks, std::vector> &mipTable) +void SparseImage::calculate_mips_table() { - CalculateMipLevelData meshData(mvp_transform, VkExtent2D({static_cast(virtual_texture.width), static_cast(virtual_texture.height)}), VkExtent2D({static_cast(width), static_cast(height)}), SPARSE_IMAGE_ON_SCREEN_NUM_VERTICAL_BLOCKS, SPARSE_IMAGE_ON_SCREEN_NUM_HORIZONTAL_BLOCKS, virtual_texture.mip_levels); + if ((num_vertical_blocks != num_vertical_blocks_upd) || (num_horizontal_blocks != num_horizontal_blocks_upd)) + { + num_vertical_blocks = num_vertical_blocks_upd; + num_horizontal_blocks = num_horizontal_blocks_upd; + + reset_mip_table(); + mesh_data = CalculateMipLevelData(current_mvp_transform, VkExtent2D({static_cast(virtual_texture.width), static_cast(virtual_texture.height)}), VkExtent2D({static_cast(width), static_cast(height)}), num_vertical_blocks, num_horizontal_blocks, virtual_texture.mip_levels); + } + else + { + mesh_data.mvp_transform = current_mvp_transform; + } - meshData.calculate_mesh_coordinates(); - meshData.calculate_mip_levels(); + mesh_data.calculate_mesh_coordinates(); + mesh_data.calculate_mip_levels(); - mipTable = meshData.mip_table; + virtual_texture.new_mip_table = mesh_data.mip_table; } -SparseImage::CalculateMipLevelData::CalculateMipLevelData(glm::mat4 mvp_transform, VkExtent2D texture_base_dim, VkExtent2D screen_base_dim, uint32_t vertical_num_blocks, uint32_t horizontal_num_blocks, uint8_t mip_levels) : - mvp_transform(mvp_transform), texture_base_dim(texture_base_dim), screen_base_dim(screen_base_dim), mesh{0}, vertical_num_blocks(vertical_num_blocks), horizontal_num_blocks(horizontal_num_blocks), mip_levels(mip_levels) +SparseImage::CalculateMipLevelData::CalculateMipLevelData(const glm::mat4 &mvp_transform, const VkExtent2D &texture_base_dim, const VkExtent2D &screen_base_dim, uint32_t vertical_num_blocks, uint32_t horizontal_num_blocks, uint8_t mip_levels) : + mesh(vertical_num_blocks + 1U), vertical_num_blocks(vertical_num_blocks), horizontal_num_blocks(horizontal_num_blocks), mip_levels(mip_levels), ax_vertical(horizontal_num_blocks + 1U), ax_horizontal(vertical_num_blocks + 1U), mvp_transform(mvp_transform), texture_base_dim(texture_base_dim), screen_base_dim(screen_base_dim) { - mesh.resize(vertical_num_blocks + 1U); for (auto &row : mesh) { row.resize(horizontal_num_blocks + 1U); } - - ax_vertical.resize(horizontal_num_blocks + 1U); - ax_horizontal.resize(vertical_num_blocks + 1U); } +SparseImage::CalculateMipLevelData::CalculateMipLevelData() : + mvp_transform(glm::mat4(0)), texture_base_dim(VkExtent2D{0U, 0U}), screen_base_dim(VkExtent2D{0U, 0U}), mesh{0}, vertical_num_blocks(0U), horizontal_num_blocks(0U), mip_levels(0U) +{} + void SparseImage::CalculateMipLevelData::calculate_mesh_coordinates() { glm::vec4 top_left(-100.0f, -100.0f, 0.0f, 1.0f); @@ -934,6 +1006,9 @@ void SparseImage::CalculateMipLevelData::calculate_mesh_coordinates() float h_interval = (top_right[0] - top_left[0]) / horizontal_num_blocks; float v_interval = (bottom_left[1] - top_left[1]) / vertical_num_blocks; + double half_width = screen_base_dim.width / 2.0; + double half_height = screen_base_dim.height / 2.0; + for (size_t v_index = 0U; v_index < vertical_num_blocks + 1U; v_index++) { for (size_t h_index = 0U; h_index < horizontal_num_blocks + 1U; h_index++) @@ -949,7 +1024,7 @@ void SparseImage::CalculateMipLevelData::calculate_mesh_coordinates() mesh[v_index][h_index].x = x; mesh[v_index][h_index].y = y; - mesh[v_index][h_index].on_screen = (x < (screen_base_dim.width / (-2.0))) || (x > (screen_base_dim.width / 2.0)) || (y < (screen_base_dim.height / (-2.0))) || (y > (screen_base_dim.height / 2.0)) || (result[3] < 0.0) ? false : true; + mesh[v_index][h_index].on_screen = (-half_width < x) && (x < half_width) && (-half_height < y) && (y < half_height) && (0.0 < result[3]); } } @@ -1029,8 +1104,8 @@ void SparseImage::CalculateMipLevelData::calculate_mip_levels() } // Single, on-texture step in texels - double dTu = texture_base_dim.width / (num_columns); - double dTv = texture_base_dim.height / (num_rows); + double dTu = texture_base_dim.width / num_columns; + double dTv = texture_base_dim.height / num_rows; for (size_t row = 0U; row < num_rows; row += 1U) { @@ -1043,7 +1118,7 @@ void SparseImage::CalculateMipLevelData::calculate_mip_levels() double dIx_horizontal = mesh[row][column].x - mesh[row][column + 1].x; double dIy_horizontal = mesh[row][column].y - mesh[row][column + 1].y; - // On-screen distance between starting node (A) and the enxt horizontal (C) or vertical (B) one + // On-screen distance between starting node (A) and the next horizontal (C) or vertical (B) one double AB_vertical = sqrt(pow(dIx_vertical, 2) + pow(dIy_vertical, 2)); double AC_horizontal = sqrt(pow(dIx_horizontal, 2) + pow(dIy_horizontal, 2)); @@ -1103,7 +1178,7 @@ void SparseImage::CalculateMipLevelData::calculate_mip_levels() double y_texture_to_screen_horizontal_ratio = abs(pH_horizontal_to_C) < 1.0 ? 0.0 : sqrt(pow(on_texture_pH_horizontal_horizontal, 2) + pow(on_texture_pH_horizontal_vertical_right, 2)) / abs(pH_horizontal_to_C); // Using the log2 formula to calculate required mip level - double delta = 1.0 * std::max(std::max(x_texture_to_screen_horizontal_ratio, y_texture_to_screen_horizontal_ratio), std::max(x_texture_to_screen_vertical_ratio, y_texture_to_screen_vertical_ratio)); + double delta = std::max(std::max(x_texture_to_screen_horizontal_ratio, y_texture_to_screen_horizontal_ratio), std::max(x_texture_to_screen_vertical_ratio, y_texture_to_screen_vertical_ratio)); double mip_level = std::min(static_cast(mip_levels - 1U), std::max(log2(delta), 0.0)); mip_table[row][column].mip_level = mip_level; @@ -1229,7 +1304,8 @@ void SparseImage::create_descriptor_sets() VK_CHECK(vkAllocateDescriptorSets(get_device().get_handle(), &set_alloc_info, &descriptor_set)); - std::array descriptor_buffer_infos = {create_descriptor(*mvp_buffer), create_descriptor(*frag_settings_data_buffer)}; + VkDescriptorBufferInfo mvp_buffer_desc_info = create_descriptor(*mvp_buffer); + VkDescriptorBufferInfo frag_settings_desc_info = create_descriptor(*frag_settings_data_buffer); VkDescriptorImageInfo image_info{}; image_info.imageLayout = VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL; @@ -1241,7 +1317,7 @@ void SparseImage::create_descriptor_sets() descriptor_set, VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER, 0U, - &descriptor_buffer_infos[0], + &mvp_buffer_desc_info, 1U), vkb::initializers::write_descriptor_set( descriptor_set, @@ -1253,7 +1329,7 @@ void SparseImage::create_descriptor_sets() descriptor_set, VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER, 2U, - &descriptor_buffer_infos[1], + &frag_settings_desc_info, 1U)}; vkUpdateDescriptorSets(get_device().get_handle(), static_cast(write_descriptor_sets.size()), write_descriptor_sets.data(), 0U, nullptr); @@ -1282,17 +1358,13 @@ void SparseImage::create_texture_sampler() { VkSamplerCreateInfo sampler_info = vkb::initializers::sampler_create_info(); - sampler_info.magFilter = VK_FILTER_LINEAR; - sampler_info.minFilter = VK_FILTER_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; - - VkPhysicalDeviceProperties properties{}; - vkGetPhysicalDeviceProperties(device->get_gpu().get_handle(), &properties); - - sampler_info.anisotropyEnable = VK_TRUE; - sampler_info.maxAnisotropy = properties.limits.maxSamplerAnisotropy; + sampler_info.magFilter = VK_FILTER_LINEAR; + sampler_info.minFilter = VK_FILTER_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.anisotropyEnable = VK_FALSE; + sampler_info.maxAnisotropy = 1.0f; sampler_info.borderColor = VK_BORDER_COLOR_INT_OPAQUE_BLACK; sampler_info.unnormalizedCoordinates = VK_FALSE; sampler_info.compareEnable = VK_FALSE; @@ -1310,9 +1382,8 @@ void SparseImage::create_texture_sampler() */ void SparseImage::request_gpu_features(vkb::PhysicalDevice &gpu) { - if (gpu.get_features().sparseBinding && gpu.get_features().sparseResidencyImage2D && gpu.get_features().shaderResourceResidency && gpu.get_features().samplerAnisotropy) + if (gpu.get_features().sparseBinding && gpu.get_features().sparseResidencyImage2D && gpu.get_features().shaderResourceResidency) { - gpu.get_mutable_requested_features().samplerAnisotropy = VK_TRUE; gpu.get_mutable_requested_features().sparseBinding = VK_TRUE; gpu.get_mutable_requested_features().sparseResidencyImage2D = VK_TRUE; gpu.get_mutable_requested_features().shaderResourceResidency = VK_TRUE; @@ -1333,6 +1404,14 @@ void SparseImage::set_least_detailed_level() { virtual_texture.page_table[page_index].fixed = true; } + + for (auto &column : virtual_texture.new_mip_table) + { + for (auto &block : column) + { + block.mip_level = virtual_texture.mip_levels - 1U; + } + } } void SparseImage::create_sparse_texture_image() @@ -1353,10 +1432,10 @@ void SparseImage::create_sparse_texture_image() sparse_image_create_info.arrayLayers = 1U; sparse_image_create_info.flags = VK_IMAGE_CREATE_SPARSE_BINDING_BIT | VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT; - sparse_image_create_info.format = VK_FORMAT_R8G8B8A8_SRGB; + sparse_image_create_info.format = image_format; sparse_image_create_info.tiling = VK_IMAGE_TILING_OPTIMAL; sparse_image_create_info.initialLayout = VK_IMAGE_LAYOUT_PREINITIALIZED; - sparse_image_create_info.usage = VK_IMAGE_USAGE_TRANSFER_DST_BIT | VK_IMAGE_USAGE_TRANSFER_SRC_BIT | VK_IMAGE_USAGE_SAMPLED_BIT; + sparse_image_create_info.usage = image_usage; sparse_image_create_info.samples = VK_SAMPLE_COUNT_1_BIT; sparse_image_create_info.sharingMode = VK_SHARING_MODE_EXCLUSIVE; @@ -1372,9 +1451,9 @@ void SparseImage::create_sparse_texture_image() uint32_t property_count; uint32_t memory_req_count; - vkGetPhysicalDeviceSparseImageFormatProperties(device->get_gpu().get_handle(), VK_FORMAT_R8G8B8A8_SRGB, VK_IMAGE_TYPE_2D, VK_SAMPLE_COUNT_1_BIT, VK_IMAGE_USAGE_TRANSFER_DST_BIT | VK_IMAGE_USAGE_TRANSFER_SRC_BIT | VK_IMAGE_USAGE_SAMPLED_BIT, VK_IMAGE_TILING_OPTIMAL, &property_count, nullptr); + vkGetPhysicalDeviceSparseImageFormatProperties(device->get_gpu().get_handle(), image_format, VK_IMAGE_TYPE_2D, VK_SAMPLE_COUNT_1_BIT, image_usage, VK_IMAGE_TILING_OPTIMAL, &property_count, nullptr); sparse_image_format_properties.resize(property_count); - vkGetPhysicalDeviceSparseImageFormatProperties(device->get_gpu().get_handle(), VK_FORMAT_R8G8B8A8_SRGB, VK_IMAGE_TYPE_2D, VK_SAMPLE_COUNT_1_BIT, VK_IMAGE_USAGE_TRANSFER_DST_BIT | VK_IMAGE_USAGE_TRANSFER_SRC_BIT | VK_IMAGE_USAGE_SAMPLED_BIT, VK_IMAGE_TILING_OPTIMAL, &property_count, sparse_image_format_properties.data()); + vkGetPhysicalDeviceSparseImageFormatProperties(device->get_gpu().get_handle(), image_format, VK_IMAGE_TYPE_2D, VK_SAMPLE_COUNT_1_BIT, image_usage, VK_IMAGE_TILING_OPTIMAL, &property_count, sparse_image_format_properties.data()); vkGetImageSparseMemoryRequirements(get_device().get_handle(), virtual_texture.texture_image, &memory_req_count, nullptr); sparse_image_memory_requirements.resize(memory_req_count); @@ -1386,11 +1465,8 @@ void SparseImage::create_sparse_texture_image() virtual_texture.memory_sparse_requirements = sparse_image_memory_requirements[0]; virtual_texture.mem_requirements = mem_requirements; - virtual_texture.page_size = virtual_texture.format_properties.imageGranularity.height * virtual_texture.format_properties.imageGranularity.width * 4U; - virtual_texture.single_page_buffer = std::make_unique(get_device(), virtual_texture.page_size, VK_BUFFER_USAGE_TRANSFER_SRC_BIT, VMA_MEMORY_USAGE_CPU_TO_GPU, VMA_ALLOCATION_CREATE_MAPPED_BIT); - // calculate page size - virtual_texture.page_size = sparse_image_format_properties[0].imageGranularity.depth * sparse_image_format_properties[0].imageGranularity.height * sparse_image_format_properties[0].imageGranularity.width * 4U; + virtual_texture.page_size = virtual_texture.format_properties.imageGranularity.height * virtual_texture.format_properties.imageGranularity.width * 4U; // calculate total number of pages size_t num_total_pages = 0U; @@ -1426,49 +1502,38 @@ void SparseImage::create_sparse_texture_image() virtual_texture.width = virtual_texture.mip_properties[0].width; virtual_texture.height = virtual_texture.mip_properties[0].height; - virtual_texture.current_mip_table.resize(SPARSE_IMAGE_ON_SCREEN_NUM_VERTICAL_BLOCKS); - virtual_texture.new_mip_table.resize(SPARSE_IMAGE_ON_SCREEN_NUM_VERTICAL_BLOCKS); - - for (size_t y = 0U; y < SPARSE_IMAGE_ON_SCREEN_NUM_VERTICAL_BLOCKS; y++) - { - virtual_texture.current_mip_table[y].resize(SPARSE_IMAGE_ON_SCREEN_NUM_HORIZONTAL_BLOCKS); - virtual_texture.new_mip_table[y].resize(SPARSE_IMAGE_ON_SCREEN_NUM_HORIZONTAL_BLOCKS); - - for (size_t x = 0U; x < SPARSE_IMAGE_ON_SCREEN_NUM_HORIZONTAL_BLOCKS; x++) - { - virtual_texture.current_mip_table[y][x].mip_level = virtual_texture.mip_levels - 1U; - virtual_texture.current_mip_table[y][x].on_screen = false; - - virtual_texture.new_mip_table[y][x].mip_level = virtual_texture.mip_levels - 1U; - virtual_texture.new_mip_table[y][x].on_screen = true; - } - } - virtual_texture.page_table.resize(num_total_pages); - virtual_texture.sparse_image_memory_bind.resize(num_total_pages); - virtual_texture.memory_allocations.device = get_device().get_handle(); - virtual_texture.memory_allocations.page_size = virtual_texture.page_size; - virtual_texture.memory_allocations.memory_type_index = get_device().get_memory_type(virtual_texture.mem_requirements.memoryTypeBits, VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT); + // Resize table and reset page_table data + reset_mip_table(); + + // Memory allocation required data + virtual_texture.memory_allocations.device = get_device().get_handle(); + virtual_texture.memory_allocations.page_size = virtual_texture.page_size; + virtual_texture.memory_allocations.memory_type_index = get_device().get_memory_type(virtual_texture.mem_requirements.memoryTypeBits, VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT); + virtual_texture.memory_allocations.pages_per_allocation = PAGES_PER_ALLOC; // Setting the data constant data for memory page binding via vkQueueBindSparse() for (size_t page_index = 0U; page_index < virtual_texture.page_table.size(); page_index++) { uint32_t mipLevel = get_mip_level(page_index); - virtual_texture.sparse_image_memory_bind[page_index].subresource.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT; - virtual_texture.sparse_image_memory_bind[page_index].subresource.arrayLayer = 0U; - virtual_texture.sparse_image_memory_bind[page_index].subresource.mipLevel = mipLevel; - virtual_texture.sparse_image_memory_bind[page_index].flags = 0U; + auto &memory_bind_info = virtual_texture.sparse_image_memory_bind[page_index]; + auto &mip_properties = virtual_texture.mip_properties[mipLevel]; + + memory_bind_info.subresource.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT; + memory_bind_info.subresource.arrayLayer = 0U; + memory_bind_info.subresource.mipLevel = mipLevel; + memory_bind_info.flags = 0U; - virtual_texture.sparse_image_memory_bind[page_index].offset.x = ((page_index - virtual_texture.mip_properties[mipLevel].mip_base_page_index) % virtual_texture.mip_properties[mipLevel].num_columns) * virtual_texture.format_properties.imageGranularity.width; - virtual_texture.sparse_image_memory_bind[page_index].offset.y = ((page_index - virtual_texture.mip_properties[mipLevel].mip_base_page_index) / virtual_texture.mip_properties[mipLevel].num_columns) * virtual_texture.format_properties.imageGranularity.height; - virtual_texture.sparse_image_memory_bind[page_index].offset.z = 0; + memory_bind_info.offset.x = ((page_index - mip_properties.mip_base_page_index) % mip_properties.num_columns) * virtual_texture.format_properties.imageGranularity.width; + memory_bind_info.offset.y = ((page_index - mip_properties.mip_base_page_index) / mip_properties.num_columns) * virtual_texture.format_properties.imageGranularity.height; + memory_bind_info.offset.z = 0; - virtual_texture.sparse_image_memory_bind[page_index].extent.depth = virtual_texture.format_properties.imageGranularity.depth; - virtual_texture.sparse_image_memory_bind[page_index].extent.width = (virtual_texture.mip_properties[mipLevel].width - virtual_texture.sparse_image_memory_bind[page_index].offset.x < virtual_texture.format_properties.imageGranularity.width) ? virtual_texture.mip_properties[mipLevel].width - virtual_texture.sparse_image_memory_bind[page_index].offset.x : virtual_texture.format_properties.imageGranularity.width; - virtual_texture.sparse_image_memory_bind[page_index].extent.height = (virtual_texture.mip_properties[mipLevel].height - virtual_texture.sparse_image_memory_bind[page_index].offset.y < virtual_texture.format_properties.imageGranularity.height) ? virtual_texture.mip_properties[mipLevel].height - virtual_texture.sparse_image_memory_bind[page_index].offset.y : virtual_texture.format_properties.imageGranularity.height; + memory_bind_info.extent.depth = virtual_texture.format_properties.imageGranularity.depth; + memory_bind_info.extent.width = (mip_properties.width - memory_bind_info.offset.x < virtual_texture.format_properties.imageGranularity.width) ? mip_properties.width - memory_bind_info.offset.x : virtual_texture.format_properties.imageGranularity.width; + memory_bind_info.extent.height = (mip_properties.height - memory_bind_info.offset.y < virtual_texture.format_properties.imageGranularity.height) ? mip_properties.height - memory_bind_info.offset.y : virtual_texture.format_properties.imageGranularity.height; } //================================================================================================== @@ -1477,7 +1542,7 @@ void SparseImage::create_sparse_texture_image() VkImageViewCreateInfo view_info = vkb::initializers::image_view_create_info(); view_info.image = virtual_texture.texture_image; view_info.viewType = VK_IMAGE_VIEW_TYPE_2D; - view_info.format = VK_FORMAT_R8G8B8A8_SRGB; + view_info.format = image_format; view_info.subresourceRange.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT; view_info.subresourceRange.baseMipLevel = virtual_texture.base_mip_level; view_info.subresourceRange.levelCount = virtual_texture.mip_levels; @@ -1497,20 +1562,60 @@ void SparseImage::create_sparse_texture_image() vkb::image_layout_transition(command_buffer, virtual_texture.texture_image, VK_IMAGE_LAYOUT_PREINITIALIZED, VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL, subresource_range); device->flush_command_buffer(command_buffer, queue, true); + + //================================================================================================== + // Synchronization primitives + + VkSemaphoreCreateInfo semaphore_create_info = vkb::initializers::semaphore_create_info(); + VK_CHECK(vkCreateSemaphore(get_device().get_handle(), &semaphore_create_info, nullptr, &submit_semaphore)); + VK_CHECK(vkCreateSemaphore(get_device().get_handle(), &semaphore_create_info, nullptr, &bound_semaphore)); +} + +void SparseImage::reset_mip_table() +{ + virtual_texture.current_mip_table.clear(); + virtual_texture.current_mip_table.resize(num_vertical_blocks); + + virtual_texture.new_mip_table.clear(); + virtual_texture.new_mip_table.resize(num_vertical_blocks); + + for (size_t y = 0U; y < num_vertical_blocks; y++) + { + virtual_texture.current_mip_table[y].resize(num_horizontal_blocks); + virtual_texture.new_mip_table[y].resize(num_horizontal_blocks); + + for (size_t x = 0U; x < num_horizontal_blocks; x++) + { + virtual_texture.current_mip_table[y][x].on_screen = false; + virtual_texture.new_mip_table[y][x].on_screen = true; + } + } + + for (auto &page : virtual_texture.page_table) + { + if (!page.fixed) + { + page.render_required_set.clear(); + } + } } void SparseImage::on_update_ui_overlay(vkb::Drawer &drawer) { if (drawer.header("Settings")) { - drawer.checkbox("Color highlight", &color_highlight); + color_highlight_changed = drawer.checkbox("Color highlight", &color_highlight); drawer.checkbox("Memory defragmentation", &memory_defragmentation); + drawer.checkbox("Update prioritization", &frame_counter_feature); + drawer.slider_int("Blocks per cycle", reinterpret_cast(&blocks_to_update_per_cycle), 1, 50); + drawer.slider_int("Vertical blocks", reinterpret_cast(&num_vertical_blocks_upd), 1, 100); + drawer.slider_int("Horizontal blocks", reinterpret_cast(&num_horizontal_blocks_upd), 1, 100); } if (drawer.header("Statistics")) { drawer.text("Memory usage in pages:"); drawer.text("* Virtual: %zu ", virtual_texture.page_table.size()); - drawer.text("* Allocated: %zu ", virtual_texture.memory_allocations.get_size() * SPARSE_IMAGE_NUM_PAGES_IN_SINGLE_ALLOC); + drawer.text("* Allocated: %zu ", virtual_texture.memory_allocations.get_size() * PAGES_PER_ALLOC); } } @@ -1522,38 +1627,18 @@ void SparseImage::MemAllocInfo::get_allocation(PageInfo &page_memory_info, size_ page_memory_info.offset = *(page_memory_info.memory_sector->available_offsets.begin()); page_memory_info.memory_sector->available_offsets.erase(page_memory_info.offset); - memory_sectors.push_front(page_memory_info.memory_sector); page_memory_info.memory_sector->virt_page_indices.insert(page_index); + + memory_sectors.push_front(page_memory_info.memory_sector); } else { - for (auto it = memory_sectors.begin(); it != memory_sectors.end();) - { - if (auto ptr = (*it).lock()) - { - if (ptr->available_offsets.empty()) - { - page_memory_info.memory_sector = std::make_shared(*this); - page_memory_info.offset = *(page_memory_info.memory_sector->available_offsets.begin()); + auto ptr = memory_sectors.front().lock(); - page_memory_info.memory_sector->available_offsets.erase(page_memory_info.offset); - memory_sectors.push_front(page_memory_info.memory_sector); - page_memory_info.memory_sector->virt_page_indices.insert(page_index); - } - else - { - page_memory_info.memory_sector = ptr; - page_memory_info.offset = *(page_memory_info.memory_sector->available_offsets.begin()); + page_memory_info.memory_sector = ptr; + page_memory_info.offset = *(page_memory_info.memory_sector->available_offsets.begin()); - page_memory_info.memory_sector->available_offsets.erase(page_memory_info.offset); - page_memory_info.memory_sector->virt_page_indices.insert(page_index); - } - break; - } - else - { - it = memory_sectors.erase(it); - } - } + page_memory_info.memory_sector->available_offsets.erase(page_memory_info.offset); + page_memory_info.memory_sector->virt_page_indices.insert(page_index); } } \ No newline at end of file diff --git a/samples/extensions/sparse_image/sparse_image.h b/samples/extensions/sparse_image/sparse_image.h index db78078a49..9031f769ae 100644 --- a/samples/extensions/sparse_image/sparse_image.h +++ b/samples/extensions/sparse_image/sparse_image.h @@ -19,27 +19,17 @@ #include "api_vulkan_sample.h" -size_t const SPARSE_IMAGE_ON_SCREEN_NUM_HORIZONTAL_BLOCKS = 50U; -size_t const SPARSE_IMAGE_ON_SCREEN_NUM_VERTICAL_BLOCKS = 30U; -double const SPARSE_IMAGE_FOV_DEGREES = 60.0; -size_t const SPARSE_IMAGE_NUM_PAGES_IN_SINGLE_ALLOC = 50U; - class SparseImage : public ApiVulkanSample { public: - bool color_highlight = true; - bool color_highlight_mem = true; - bool memory_defragmentation = true; - - enum Stages + enum class Stages : uint8_t { - SPARSE_IMAGE_IDLE_STAGE, - SPARSE_IMAGE_CALCULATE_MIPS_TABLE_STAGE, - SPARSE_IMAGE_COMPARE_MIPS_TABLE_STAGE, - SPARSE_IMAGE_FREE_MEMORY_STAGE, - SPARSE_IMAGE_PROCESS_TEXTURE_BLOCKS_STAGE, - SPARSE_IMAGE_UPDATE_AND_GENERATE_STAGE, - SPARSE_IMAGE_NUM_STAGES, + Idle, + CalculateMipsTable, + CompareMipsTable, + FreeMemory, + ProcessTextureBlocks, + UpdateAndGenerate, }; struct MVP @@ -140,6 +130,7 @@ class SparseImage : public ApiVulkanSample VkDevice device; uint64_t page_size; uint32_t memory_type_index; + size_t pages_per_allocation; void get_allocation(PageInfo &page_memory_info, size_t page_index); @@ -166,20 +157,21 @@ class SparseImage : public ApiVulkanSample MemSector(MemAllocInfo &mem_alloc_info) { - this->device = mem_alloc_info.device; - this->page_size = mem_alloc_info.page_size; - this->memory_type_index = mem_alloc_info.memory_type_index; + this->device = mem_alloc_info.device; + this->page_size = mem_alloc_info.page_size; + this->memory_type_index = mem_alloc_info.memory_type_index; + this->pages_per_allocation = mem_alloc_info.pages_per_allocation; VkMemoryAllocateInfo memory_allocate_info{}; memory_allocate_info.sType = VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO; - memory_allocate_info.allocationSize = page_size * SPARSE_IMAGE_NUM_PAGES_IN_SINGLE_ALLOC; + memory_allocate_info.allocationSize = page_size * pages_per_allocation; memory_allocate_info.memoryTypeIndex = memory_type_index; VkDeviceMemory memory; VK_CHECK(vkAllocateMemory(device, &memory_allocate_info, nullptr, &memory)); this->memory = memory; - for (size_t i = 0U; i < SPARSE_IMAGE_NUM_PAGES_IN_SINGLE_ALLOC; i++) + for (size_t i = 0U; i < pages_per_allocation; i++) { available_offsets.insert(page_size * i); } @@ -187,6 +179,7 @@ class SparseImage : public ApiVulkanSample ~MemSector() { + vkDeviceWaitIdle(device); vkFreeMemory(device, memory, nullptr); } }; @@ -224,9 +217,8 @@ class SparseImage : public ApiVulkanSample std::vector> current_mip_table; std::vector> new_mip_table; - // Image containing a single, most detailed mip, allocated in the CPU memory, coppied to VRAM via staging buffer single_page_buffer - std::unique_ptr raw_data_image; - std::unique_ptr single_page_buffer; + // Image containing a single, most detailed mip, allocated in the CPU memory, coppied to VRAM via staging buffer in update_and_generate() + std::unique_ptr raw_data_image; // Key table that includes data on which page is allocated to what memory block from the textureMemory vector std::vector page_table; @@ -266,20 +258,46 @@ class SparseImage : public ApiVulkanSample VkExtent2D texture_base_dim; VkExtent2D screen_base_dim; - CalculateMipLevelData(glm::mat4 mvp_transform, VkExtent2D texture_base_dim, VkExtent2D screen_base_dim, uint32_t vertical_num_blocks, uint32_t horizontal_num_blocks, uint8_t mip_levels); + CalculateMipLevelData(const glm::mat4 &mvp_transform, const VkExtent2D &texture_base_dim, const VkExtent2D &screen_base_dim, uint32_t vertical_num_blocks, uint32_t horizontal_num_blocks, uint8_t mip_levels); + CalculateMipLevelData(); + void calculate_mesh_coordinates(); void calculate_mip_levels(); }; - bool update_frag = false; - bool update_required = false; - uint8_t frame_counter = 0U; - enum Stages next_stage = SPARSE_IMAGE_IDLE_STAGE; + // UI related + bool color_highlight = true; + bool color_highlight_changed = false; + bool memory_defragmentation = true; + bool frame_counter_feature = true; + + size_t blocks_to_update_per_cycle = 10U; + + size_t num_vertical_blocks = 50U; + size_t num_horizontal_blocks = 50U; + + size_t num_vertical_blocks_upd = 50U; + size_t num_horizontal_blocks_upd = 50U; + + bool update_required = false; + + uint8_t frame_counter_per_transfer = 0U; + + const uint8_t FRAME_COUNTER_CAP = 10U; + const uint8_t MEMORY_FRAGMENTATION_CAP = 20U; + const uint8_t PAGES_PER_ALLOC = 50U; + const double FOV_DEGREES = 60.0; + + Stages next_stage = Stages::Idle; + + const VkFormat image_format = VK_FORMAT_R8G8B8A8_SRGB; + VkImageUsageFlags image_usage = VK_IMAGE_USAGE_TRANSFER_DST_BIT | VK_IMAGE_USAGE_TRANSFER_SRC_BIT | VK_IMAGE_USAGE_SAMPLED_BIT; VirtualTexture virtual_texture; + CalculateMipLevelData mesh_data; + VkQueue sparse_queue; - size_t sparse_queue_family_index; std::unique_ptr vertex_buffer; @@ -298,6 +316,9 @@ class SparseImage : public ApiVulkanSample VkDescriptorSet descriptor_set; VkSampler texture_sampler; + VkSemaphore bound_semaphore; + VkSemaphore submit_semaphore; + //================================================================================================== SparseImage(); virtual ~SparseImage(); @@ -321,13 +342,15 @@ class SparseImage : public ApiVulkanSample void create_sparse_texture_image(); + void draw(); + void update_mvp(); void process_stage(enum Stages next_stage); void free_unused_memory(); void update_and_generate(); void process_texture_blocks(); struct MemPageDescription get_mem_page_description(size_t page_index); - void calculate_mips_table(glm::mat4 mvp_transform, uint32_t numVerticalBlocks, uint32_t numHorizontalBlocks, std::vector> &mipTable); + void calculate_mips_table(); void compare_mips_table(); void process_texture_block(const TextureBlock &on_screen_block); std::vector get_memory_dependency_for_the_block(size_t column, size_t row, uint8_t mip_level); @@ -339,6 +362,7 @@ class SparseImage : public ApiVulkanSample void update_frag_settings(); uint8_t get_mip_level(size_t page_index); size_t get_page_index(MemPageDescription mem_page_desc); + void reset_mip_table(); // Override basic framework functionalities void build_command_buffers() override; diff --git a/shaders/sparse_image/sparse.frag b/shaders/sparse_image/sparse.frag index 225ed72de9..94359efe59 100644 --- a/shaders/sparse_image/sparse.frag +++ b/shaders/sparse_image/sparse.frag @@ -45,17 +45,15 @@ void main() { int lod = settings.minLOD; int residencyCode = sparseTextureLodARB(texSampler, fragTexCoord, lod, color); - if (!sparseTexelsResidentARB(residencyCode)) + for(++lod; (lod <= settings.maxLOD) && !sparseTexelsResidentARB(residencyCode); ++lod) { - lod += 1; - for(; (lod <= settings.maxLOD) && !sparseTexelsResidentARB(residencyCode); lod += 1) - { - residencyCode = sparseTextureLodARB(texSampler, fragTexCoord, lod, color); - if (settings.color_highlight) - { - color.xyz = (color.xyz * color_blend_table[lod]); - } - } + residencyCode = sparseTextureLodARB(texSampler, fragTexCoord, lod, color); + } + + if (settings.color_highlight) + { + lod -= 1; + color.xyz = (color.xyz * color_blend_table[lod]); } fragOutColor = color; From dd9a846db521606f389443a0a637676288449e9a Mon Sep 17 00:00:00 2001 From: Grzegorz Smagacz Date: Thu, 26 Oct 2023 10:06:00 +0200 Subject: [PATCH 15/21] * Updated the screenshot * Put additional descriptions to README.adoc * Minor issues, cleanups & typo's --- samples/extensions/sparse_image/README.adoc | 49 ++++++++++++++ .../images/sparse_image_screenshot.png | Bin 325020 -> 286224 bytes .../extensions/sparse_image/sparse_image.cpp | 60 ++++++------------ .../extensions/sparse_image/sparse_image.h | 27 +++----- 4 files changed, 79 insertions(+), 57 deletions(-) diff --git a/samples/extensions/sparse_image/README.adoc b/samples/extensions/sparse_image/README.adoc index 881632198a..c539e96b29 100644 --- a/samples/extensions/sparse_image/README.adoc +++ b/samples/extensions/sparse_image/README.adoc @@ -98,6 +98,55 @@ for(; (lod <= maxLOD) && !sparseTexelsResidentARB(residencyCode); lod += 1) } ---- + +== How is required LOD calculated? + +The whole method is well-described in the source file. In general, the +value of LOD is obtained by calculating: What is the ratio between x or y +movement on the screen, to the u or v movement on the texture? + +The idea is, that when moving pixel-by-pixel along the x or y axis +on-screen, if the small on-screen step causes a significant step +on-texture, then the area is far away from the observer and +a less-detailed mip-level is required. + +The formula used for those calculations is: + +LOD = log2 (max(dT / dx, dT / dy)); where: + +* dT is an on-texture-step in texels, +* dx, dy are on-screen-steps in pixels. + + +== User Interface + +The user can alter the application by using the GUI. + +These are available options: + +* Color highlight - if enabled, areas of a particular LOD usage are +color-highlighted. +* Memory defragmentation - if enabled, memory pages are reallocated from +low-occupied sectors to higher-occupied (but available) sectors to keep the +overall number of allocations as low as possible. +* Update prioritization - if enabled, the application is focused on +processing the most actual requests and discards remainings from the +previous requests. This can be observed when dynamically moving the +camera around. +* Blocks per cycle - describes up to how many blocks can be updated per +a single render cycle. The total number of blocks is defined as: (Vertical +blocks) * (Horizontal blocks). +* Vertical blocks - describes the number of columns the texture is +divided into. +* Horizontal blocks - describes the number of rows the texture is +divided into. + +Additionally, GUI contains memory usage data. It describes (in pages) +what are the virtual requirements (what if the whole image was allocated +in the memory) and what is the actual, current allocation on the +device. + + == Conclusion The primary usage of the sparse image feature is generally speaking diff --git a/samples/extensions/sparse_image/images/sparse_image_screenshot.png b/samples/extensions/sparse_image/images/sparse_image_screenshot.png index c56fd2c99ae8f69280c68abf5734fdd10d8edeec..0d15e422874147fcfe16b134bcd7406e6d3bbb0b 100644 GIT binary patch literal 286224 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

aD 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%0Aoa_Mh7^TZ&5oyff^IfL`#vW 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

vh!_nMI5j!L10Brk`|5 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

{j*qI@BRc3Z>KZv7&SHGS(@kmApp_6 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 z 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%0Ax6H3!szK)LIR%L_#5}vZ$ebxVZ2O0aHTpTDJVij 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 @;1K0sbEy6=Mo~#UFJ3 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%0A?R3v2hPZc79|%*h22FC> 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ⅇ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