mirror of
https://codeberg.org/comaps/comaps
synced 2025-12-20 13:23:59 +00:00
Format all C++ and Java code via clang-format
Signed-off-by: Konstantin Pastbin <konstantin.pastbin@gmail.com>
This commit is contained in:
@@ -2,7 +2,6 @@
|
||||
#include "drape/vulkan/vulkan_base_context.hpp"
|
||||
#include "drape/vulkan/vulkan_staging_buffer.hpp"
|
||||
|
||||
|
||||
drape_ptr<dp::HWTextureAllocator> CreateVulkanAllocator()
|
||||
{
|
||||
return make_unique_dp<dp::vulkan::VulkanTextureAllocator>();
|
||||
@@ -20,8 +19,7 @@ namespace vulkan
|
||||
{
|
||||
namespace
|
||||
{
|
||||
VkBufferImageCopy BufferCopyRegion(uint32_t x, uint32_t y, uint32_t width, uint32_t height,
|
||||
uint32_t stagingOffset)
|
||||
VkBufferImageCopy BufferCopyRegion(uint32_t x, uint32_t y, uint32_t width, uint32_t height, uint32_t stagingOffset)
|
||||
{
|
||||
VkBufferImageCopy bufferCopyRegion = {};
|
||||
bufferCopyRegion.imageSubresource.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT;
|
||||
@@ -80,18 +78,17 @@ void VulkanTexture::Create(ref_ptr<dp::GraphicsContext> context, Params const &
|
||||
// Create image.
|
||||
if (params.m_format == TextureFormat::DepthStencil || params.m_format == TextureFormat::Depth)
|
||||
{
|
||||
m_aspectFlags =
|
||||
params.m_format == TextureFormat::DepthStencil ? (VK_IMAGE_ASPECT_DEPTH_BIT | VK_IMAGE_ASPECT_STENCIL_BIT)
|
||||
: VK_IMAGE_ASPECT_DEPTH_BIT;
|
||||
m_textureObject = m_objectManager->CreateImage(VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT,
|
||||
format, tiling, m_aspectFlags, params.m_width, params.m_height);
|
||||
m_aspectFlags = params.m_format == TextureFormat::DepthStencil
|
||||
? (VK_IMAGE_ASPECT_DEPTH_BIT | VK_IMAGE_ASPECT_STENCIL_BIT)
|
||||
: VK_IMAGE_ASPECT_DEPTH_BIT;
|
||||
m_textureObject = m_objectManager->CreateImage(VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT, format, tiling,
|
||||
m_aspectFlags, params.m_width, params.m_height);
|
||||
}
|
||||
else
|
||||
{
|
||||
m_aspectFlags = VK_IMAGE_ASPECT_COLOR_BIT;
|
||||
m_textureObject = m_objectManager->CreateImage(VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT | VK_IMAGE_USAGE_SAMPLED_BIT,
|
||||
format, tiling, m_aspectFlags,
|
||||
params.m_width, params.m_height);
|
||||
format, tiling, m_aspectFlags, params.m_width, params.m_height);
|
||||
}
|
||||
}
|
||||
else
|
||||
@@ -115,8 +112,8 @@ void VulkanTexture::Create(ref_ptr<dp::GraphicsContext> context, Params const &
|
||||
}
|
||||
}
|
||||
|
||||
void VulkanTexture::UploadData(ref_ptr<dp::GraphicsContext> context, uint32_t x, uint32_t y,
|
||||
uint32_t width, uint32_t height, ref_ptr<void> data)
|
||||
void VulkanTexture::UploadData(ref_ptr<dp::GraphicsContext> context, uint32_t x, uint32_t y, uint32_t width,
|
||||
uint32_t height, ref_ptr<void> data)
|
||||
{
|
||||
CHECK(m_isMutable, ("Upload data is avaivable only for mutable textures."));
|
||||
CHECK(m_creationStagingBuffer == nullptr, ());
|
||||
@@ -156,16 +153,16 @@ void VulkanTexture::UploadData(ref_ptr<dp::GraphicsContext> context, uint32_t x,
|
||||
|
||||
// Here we use VK_PIPELINE_STAGE_VERTEX_SHADER_BIT, because we also read textures
|
||||
// in vertex shaders.
|
||||
MakeImageLayoutTransition(commandBuffer, VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL,
|
||||
VK_PIPELINE_STAGE_VERTEX_SHADER_BIT | VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT | VK_PIPELINE_STAGE_TRANSFER_BIT,
|
||||
VK_PIPELINE_STAGE_TRANSFER_BIT);
|
||||
MakeImageLayoutTransition(
|
||||
commandBuffer, VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL,
|
||||
VK_PIPELINE_STAGE_VERTEX_SHADER_BIT | VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT | VK_PIPELINE_STAGE_TRANSFER_BIT,
|
||||
VK_PIPELINE_STAGE_TRANSFER_BIT);
|
||||
|
||||
auto bufferCopyRegion = BufferCopyRegion(x, y, width, height, offset);
|
||||
vkCmdCopyBufferToImage(commandBuffer, sb, m_textureObject.m_image,
|
||||
VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, 1, &bufferCopyRegion);
|
||||
vkCmdCopyBufferToImage(commandBuffer, sb, m_textureObject.m_image, VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, 1,
|
||||
&bufferCopyRegion);
|
||||
|
||||
MakeImageLayoutTransition(commandBuffer, VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL,
|
||||
VK_PIPELINE_STAGE_TRANSFER_BIT,
|
||||
MakeImageLayoutTransition(commandBuffer, VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL, VK_PIPELINE_STAGE_TRANSFER_BIT,
|
||||
VK_PIPELINE_STAGE_VERTEX_SHADER_BIT | VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT);
|
||||
}
|
||||
|
||||
@@ -180,17 +177,17 @@ void VulkanTexture::Bind(ref_ptr<dp::GraphicsContext> context) const
|
||||
{
|
||||
// Here we use VK_PIPELINE_STAGE_VERTEX_SHADER_BIT, because we also read textures
|
||||
// in vertex shaders.
|
||||
MakeImageLayoutTransition(commandBuffer, VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL,
|
||||
VK_PIPELINE_STAGE_VERTEX_SHADER_BIT | VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT | VK_PIPELINE_STAGE_TRANSFER_BIT,
|
||||
VK_PIPELINE_STAGE_TRANSFER_BIT);
|
||||
MakeImageLayoutTransition(
|
||||
commandBuffer, VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL,
|
||||
VK_PIPELINE_STAGE_VERTEX_SHADER_BIT | VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT | VK_PIPELINE_STAGE_TRANSFER_BIT,
|
||||
VK_PIPELINE_STAGE_TRANSFER_BIT);
|
||||
|
||||
auto staging = m_creationStagingBuffer->GetReservationById(m_reservationId);
|
||||
auto bufferCopyRegion = BufferCopyRegion(0, 0, GetWidth(), GetHeight(), staging.m_offset);
|
||||
vkCmdCopyBufferToImage(commandBuffer, staging.m_stagingBuffer, m_textureObject.m_image,
|
||||
VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, 1, &bufferCopyRegion);
|
||||
|
||||
MakeImageLayoutTransition(commandBuffer, VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL,
|
||||
VK_PIPELINE_STAGE_TRANSFER_BIT,
|
||||
MakeImageLayoutTransition(commandBuffer, VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL, VK_PIPELINE_STAGE_TRANSFER_BIT,
|
||||
VK_PIPELINE_STAGE_VERTEX_SHADER_BIT | VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT);
|
||||
|
||||
m_creationStagingBuffer.reset();
|
||||
@@ -204,8 +201,7 @@ void VulkanTexture::SetFilter(TextureFilter filter)
|
||||
|
||||
bool VulkanTexture::Validate() const
|
||||
{
|
||||
return m_textureObject.m_image != VK_NULL_HANDLE &&
|
||||
m_textureObject.m_imageView != VK_NULL_HANDLE;
|
||||
return m_textureObject.m_image != VK_NULL_HANDLE && m_textureObject.m_imageView != VK_NULL_HANDLE;
|
||||
}
|
||||
|
||||
SamplerKey VulkanTexture::GetSamplerKey() const
|
||||
@@ -213,75 +209,63 @@ SamplerKey VulkanTexture::GetSamplerKey() const
|
||||
return SamplerKey(m_params.m_filter, m_params.m_wrapSMode, m_params.m_wrapTMode);
|
||||
}
|
||||
|
||||
void VulkanTexture::MakeImageLayoutTransition(VkCommandBuffer commandBuffer,
|
||||
VkImageLayout newLayout,
|
||||
void VulkanTexture::MakeImageLayoutTransition(VkCommandBuffer commandBuffer, VkImageLayout newLayout,
|
||||
VkPipelineStageFlags srcStageMask,
|
||||
VkPipelineStageFlags dstStageMask) const
|
||||
{
|
||||
VkAccessFlags srcAccessMask = 0;
|
||||
VkAccessFlags dstAccessMask = 0;
|
||||
|
||||
VkPipelineStageFlags const noAccessMask = VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT |
|
||||
VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT |
|
||||
VK_PIPELINE_STAGE_ALL_GRAPHICS_BIT |
|
||||
VK_PIPELINE_STAGE_ALL_COMMANDS_BIT;
|
||||
VkPipelineStageFlags const noAccessMask = VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT | VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT |
|
||||
VK_PIPELINE_STAGE_ALL_GRAPHICS_BIT | VK_PIPELINE_STAGE_ALL_COMMANDS_BIT;
|
||||
VkPipelineStageFlags srcRemainingMask = srcStageMask & ~noAccessMask;
|
||||
VkPipelineStageFlags dstRemainingMask = dstStageMask & ~noAccessMask;
|
||||
|
||||
auto const srcTestAndRemoveBit = [&](VkPipelineStageFlagBits stageBit,
|
||||
VkAccessFlags accessBits) {
|
||||
if (srcStageMask & stageBit)
|
||||
auto const srcTestAndRemoveBit = [&](VkPipelineStageFlagBits stageBit, VkAccessFlags accessBits)
|
||||
{
|
||||
if (srcStageMask & stageBit)
|
||||
{
|
||||
srcAccessMask |= accessBits;
|
||||
srcRemainingMask &= ~stageBit;
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
srcTestAndRemoveBit(VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT,
|
||||
VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT);
|
||||
srcTestAndRemoveBit(VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT, VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT);
|
||||
|
||||
srcTestAndRemoveBit(VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT,
|
||||
VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT);
|
||||
srcTestAndRemoveBit(VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT, VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT);
|
||||
|
||||
srcTestAndRemoveBit(VK_PIPELINE_STAGE_VERTEX_SHADER_BIT,
|
||||
VK_ACCESS_SHADER_READ_BIT);
|
||||
srcTestAndRemoveBit(VK_PIPELINE_STAGE_VERTEX_SHADER_BIT, VK_ACCESS_SHADER_READ_BIT);
|
||||
|
||||
srcTestAndRemoveBit(VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT,
|
||||
srcTestAndRemoveBit(VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT,
|
||||
VK_ACCESS_SHADER_READ_BIT | VK_ACCESS_INPUT_ATTACHMENT_READ_BIT);
|
||||
|
||||
srcTestAndRemoveBit(VK_PIPELINE_STAGE_TRANSFER_BIT,
|
||||
VK_ACCESS_TRANSFER_WRITE_BIT);
|
||||
srcTestAndRemoveBit(VK_PIPELINE_STAGE_TRANSFER_BIT, VK_ACCESS_TRANSFER_WRITE_BIT);
|
||||
|
||||
srcTestAndRemoveBit(VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT,
|
||||
VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT |
|
||||
VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT);
|
||||
srcTestAndRemoveBit(VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT,
|
||||
VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT | VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT);
|
||||
|
||||
CHECK(srcRemainingMask == 0, ("Not implemented transition for src pipeline stage"));
|
||||
|
||||
auto const dstTestAndRemoveBit = [&](VkPipelineStageFlagBits stageBit,
|
||||
VkAccessFlags accessBits) {
|
||||
if (dstStageMask & stageBit)
|
||||
auto const dstTestAndRemoveBit = [&](VkPipelineStageFlagBits stageBit, VkAccessFlags accessBits)
|
||||
{
|
||||
if (dstStageMask & stageBit)
|
||||
{
|
||||
dstAccessMask |= accessBits;
|
||||
dstRemainingMask &= ~stageBit;
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
dstTestAndRemoveBit(VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT,
|
||||
VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT);
|
||||
dstTestAndRemoveBit(VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT, VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT);
|
||||
|
||||
dstTestAndRemoveBit(VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT,
|
||||
VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT |
|
||||
VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT);
|
||||
VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT | VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT);
|
||||
|
||||
dstTestAndRemoveBit(VK_PIPELINE_STAGE_VERTEX_SHADER_BIT,
|
||||
VK_ACCESS_SHADER_READ_BIT);
|
||||
dstTestAndRemoveBit(VK_PIPELINE_STAGE_VERTEX_SHADER_BIT, VK_ACCESS_SHADER_READ_BIT);
|
||||
|
||||
dstTestAndRemoveBit(VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT,
|
||||
dstTestAndRemoveBit(VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT,
|
||||
VK_ACCESS_SHADER_READ_BIT | VK_ACCESS_INPUT_ATTACHMENT_READ_BIT);
|
||||
|
||||
dstTestAndRemoveBit(VK_PIPELINE_STAGE_TRANSFER_BIT,
|
||||
VK_ACCESS_TRANSFER_WRITE_BIT);
|
||||
dstTestAndRemoveBit(VK_PIPELINE_STAGE_TRANSFER_BIT, VK_ACCESS_TRANSFER_WRITE_BIT);
|
||||
|
||||
CHECK(dstRemainingMask == 0, ("Not implemented transition for dest pipeline stage"));
|
||||
|
||||
@@ -301,8 +285,7 @@ void VulkanTexture::MakeImageLayoutTransition(VkCommandBuffer commandBuffer,
|
||||
imageMemoryBarrier.subresourceRange.baseArrayLayer = 0;
|
||||
imageMemoryBarrier.subresourceRange.layerCount = VK_REMAINING_ARRAY_LAYERS;
|
||||
|
||||
vkCmdPipelineBarrier(commandBuffer, srcStageMask, dstStageMask, 0, 0,
|
||||
nullptr, 0, nullptr, 1, &imageMemoryBarrier);
|
||||
vkCmdPipelineBarrier(commandBuffer, srcStageMask, dstStageMask, 0, 0, nullptr, 0, nullptr, 1, &imageMemoryBarrier);
|
||||
|
||||
m_currentLayout = newLayout;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user