Diligent Engine  v.2.4.g
Classes | Namespaces | Macros | Functions
VulkanTypeConversions.cpp File Reference
#include "pch.h"
#include "VulkanTypeConversions.hpp"
#include <unordered_map>
#include <array>
#include "PlatformMisc.hpp"
#include "Align.hpp"
#include "BasicMath.hpp"

Classes

class  Diligent::TexFormatToVkFormatMapper
 
class  Diligent::VkFormatToTexFormatMapper
 
class  Diligent::BlendFactorToVkBlendFactorMapper
 
class  Diligent::LogicOperationToVkLogicOp
 
class  Diligent::BlendOperationToVkBlendOp
 
class  Diligent::StateFlagBitPosToVkAccessFlags
 
class  Diligent::VkAccessFlagBitPosToResourceState
 

Namespaces

 Diligent
 The library uses Direct3D-style math:
 

Macros

#define ASSERT_SAME(Val1, Val2)   static_assert(static_cast<int>(Val1) == static_cast<int>(Val2), #Val1 " is expected to be equal to " #Val2)
 

Functions

VkFormat Diligent::TexFormatToVkFormat (TEXTURE_FORMAT TexFmt)
 
TEXTURE_FORMAT Diligent::VkFormatToTexFormat (VkFormat VkFmt)
 
VkFormat Diligent::TypeToVkFormat (VALUE_TYPE ValType, Uint32 NumComponents, Bool bIsNormalized)
 
VkIndexType Diligent::TypeToVkIndexType (VALUE_TYPE IndexType)
 
VkPolygonMode Diligent::FillModeToVkPolygonMode (FILL_MODE FillMode)
 
VkCullModeFlagBits Diligent::CullModeToVkCullMode (CULL_MODE CullMode)
 
VkPipelineRasterizationStateCreateInfo Diligent::RasterizerStateDesc_To_VkRasterizationStateCI (const RasterizerStateDesc &RasterizerDesc)
 
VkCompareOp Diligent::ComparisonFuncToVkCompareOp (COMPARISON_FUNCTION CmpFunc)
 
VkStencilOp Diligent::StencilOpToVkStencilOp (STENCIL_OP StencilOp)
 
VkStencilOpState Diligent::StencilOpDescToVkStencilOpState (const StencilOpDesc &desc, Uint8 StencilReadMask, Uint8 StencilWriteMask)
 
VkPipelineDepthStencilStateCreateInfo Diligent::DepthStencilStateDesc_To_VkDepthStencilStateCI (const DepthStencilStateDesc &DepthStencilDesc)
 
VkPipelineColorBlendAttachmentState Diligent::RenderTargetBlendDescToVkColorBlendAttachmentState (const RenderTargetBlendDesc &RTBlendDesc)
 
void Diligent::BlendStateDesc_To_VkBlendStateCI (const BlendStateDesc &BSDesc, VkPipelineColorBlendStateCreateInfo &ColorBlendStateCI, std::vector< VkPipelineColorBlendAttachmentState > &ColorBlendAttachments)
 
VkVertexInputRate Diligent::LayoutElemFrequencyToVkInputRate (INPUT_ELEMENT_FREQUENCY frequency)
 
void Diligent::InputLayoutDesc_To_VkVertexInputStateCI (const InputLayoutDesc &LayoutDesc, VkPipelineVertexInputStateCreateInfo &VertexInputStateCI, std::array< VkVertexInputBindingDescription, MAX_LAYOUT_ELEMENTS > &BindingDescriptions, std::array< VkVertexInputAttributeDescription, MAX_LAYOUT_ELEMENTS > &AttributeDescription)
 
void Diligent::PrimitiveTopology_To_VkPrimitiveTopologyAndPatchCPCount (PRIMITIVE_TOPOLOGY PrimTopology, VkPrimitiveTopology &VkPrimTopology, uint32_t &PatchControlPoints)
 
VkFilter Diligent::FilterTypeToVkFilter (FILTER_TYPE FilterType)
 
VkSamplerMipmapMode Diligent::FilterTypeToVkMipmapMode (FILTER_TYPE FilterType)
 
VkSamplerAddressMode Diligent::AddressModeToVkAddressMode (TEXTURE_ADDRESS_MODE AddressMode)
 
VkBorderColor Diligent::BorderColorToVkBorderColor (const Float32 BorderColor[])
 
VkPipelineStageFlags Diligent::ResourceStateFlagsToVkPipelineStageFlags (RESOURCE_STATE StateFlags, VkPipelineStageFlags ShaderStages)
 
VkAccessFlags Diligent::ResourceStateFlagsToVkAccessFlags (RESOURCE_STATE StateFlags)
 
VkAccessFlags Diligent::AccelStructStateFlagsToVkAccessFlags (RESOURCE_STATE StateFlags)
 
RESOURCE_STATE Diligent::VkAccessFlagsToResourceStates (VkAccessFlags AccessFlags)
 
VkImageLayout Diligent::ResourceStateToVkImageLayout (RESOURCE_STATE StateFlag, bool IsInsideRenderPass=false)
 
RESOURCE_STATE Diligent::VkImageLayoutToResourceState (VkImageLayout Layout)
 
SURFACE_TRANSFORM Diligent::VkSurfaceTransformFlagToSurfaceTransform (VkSurfaceTransformFlagBitsKHR vkTransformFlag)
 
VkSurfaceTransformFlagBitsKHR Diligent::SurfaceTransformToVkSurfaceTransformFlag (SURFACE_TRANSFORM SrfTransform)
 
 Diligent::ASSERT_SAME (ATTACHMENT_LOAD_OP_LOAD, VK_ATTACHMENT_LOAD_OP_LOAD)
 
 Diligent::ASSERT_SAME (ATTACHMENT_LOAD_OP_CLEAR, VK_ATTACHMENT_LOAD_OP_CLEAR)
 
 Diligent::ASSERT_SAME (ATTACHMENT_LOAD_OP_DISCARD, VK_ATTACHMENT_LOAD_OP_DONT_CARE)
 
VkAttachmentLoadOp Diligent::AttachmentLoadOpToVkAttachmentLoadOp (ATTACHMENT_LOAD_OP LoadOp)
 
ATTACHMENT_LOAD_OP Diligent::VkAttachmentLoadOpToAttachmentLoadOp (VkAttachmentLoadOp VkLoadOp)
 
 Diligent::ASSERT_SAME (ATTACHMENT_STORE_OP_STORE, VK_ATTACHMENT_STORE_OP_STORE)
 
 Diligent::ASSERT_SAME (ATTACHMENT_STORE_OP_DISCARD, VK_ATTACHMENT_STORE_OP_DONT_CARE)
 
VkAttachmentStoreOp Diligent::AttachmentStoreOpToVkAttachmentStoreOp (ATTACHMENT_STORE_OP StoreOp)
 
ATTACHMENT_STORE_OP Diligent::VkAttachmentStoreOpToAttachmentStoreOp (VkAttachmentStoreOp VkStoreOp)
 
 Diligent::ASSERT_SAME (PIPELINE_STAGE_FLAG_TOP_OF_PIPE, VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT)
 
 Diligent::ASSERT_SAME (PIPELINE_STAGE_FLAG_DRAW_INDIRECT, VK_PIPELINE_STAGE_DRAW_INDIRECT_BIT)
 
 Diligent::ASSERT_SAME (PIPELINE_STAGE_FLAG_VERTEX_INPUT, VK_PIPELINE_STAGE_VERTEX_INPUT_BIT)
 
 Diligent::ASSERT_SAME (PIPELINE_STAGE_FLAG_VERTEX_SHADER, VK_PIPELINE_STAGE_VERTEX_SHADER_BIT)
 
 Diligent::ASSERT_SAME (PIPELINE_STAGE_FLAG_HULL_SHADER, VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT)
 
 Diligent::ASSERT_SAME (PIPELINE_STAGE_FLAG_DOMAIN_SHADER, VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT)
 
 Diligent::ASSERT_SAME (PIPELINE_STAGE_FLAG_GEOMETRY_SHADER, VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT)
 
 Diligent::ASSERT_SAME (PIPELINE_STAGE_FLAG_PIXEL_SHADER, VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT)
 
 Diligent::ASSERT_SAME (PIPELINE_STAGE_FLAG_EARLY_FRAGMENT_TESTS, VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT)
 
 Diligent::ASSERT_SAME (PIPELINE_STAGE_FLAG_LATE_FRAGMENT_TESTS, VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT)
 
 Diligent::ASSERT_SAME (PIPELINE_STAGE_FLAG_RENDER_TARGET, VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT)
 
 Diligent::ASSERT_SAME (PIPELINE_STAGE_FLAG_COMPUTE_SHADER, VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT)
 
 Diligent::ASSERT_SAME (PIPELINE_STAGE_FLAG_TRANSFER, VK_PIPELINE_STAGE_TRANSFER_BIT)
 
 Diligent::ASSERT_SAME (PIPELINE_STAGE_FLAG_BOTTOM_OF_PIPE, VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT)
 
 Diligent::ASSERT_SAME (PIPELINE_STAGE_FLAG_HOST, VK_PIPELINE_STAGE_HOST_BIT)
 
 Diligent::ASSERT_SAME (PIPELINE_STAGE_FLAG_CONDITIONAL_RENDERING, VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT)
 
 Diligent::ASSERT_SAME (PIPELINE_STAGE_FLAG_SHADING_RATE_TEXTURE, VK_PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV)
 
 Diligent::ASSERT_SAME (PIPELINE_STAGE_FLAG_RAY_TRACING_SHADER, VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_NV)
 
 Diligent::ASSERT_SAME (PIPELINE_STAGE_FLAG_ACCELERATION_STRUCTURE_BUILD, VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_NV)
 
 Diligent::ASSERT_SAME (PIPELINE_STAGE_FLAG_TASK_SHADER, VK_PIPELINE_STAGE_TASK_SHADER_BIT_NV)
 
 Diligent::ASSERT_SAME (PIPELINE_STAGE_FLAG_MESH_SHADER, VK_PIPELINE_STAGE_MESH_SHADER_BIT_NV)
 
 Diligent::ASSERT_SAME (PIPELINE_STAGE_FLAG_FRAGMENT_DENSITY_PROCESS, VK_PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT)
 
VkPipelineStageFlags Diligent::PipelineStageFlagsToVkPipelineStageFlags (PIPELINE_STAGE_FLAGS PipelineStageFlags)
 
 Diligent::ASSERT_SAME (ACCESS_FLAG_INDIRECT_COMMAND_READ, VK_ACCESS_INDIRECT_COMMAND_READ_BIT)
 
 Diligent::ASSERT_SAME (ACCESS_FLAG_INDEX_READ, VK_ACCESS_INDEX_READ_BIT)
 
 Diligent::ASSERT_SAME (ACCESS_FLAG_VERTEX_READ, VK_ACCESS_VERTEX_ATTRIBUTE_READ_BIT)
 
 Diligent::ASSERT_SAME (ACCESS_FLAG_UNIFORM_READ, VK_ACCESS_UNIFORM_READ_BIT)
 
 Diligent::ASSERT_SAME (ACCESS_FLAG_INPUT_ATTACHMENT_READ, VK_ACCESS_INPUT_ATTACHMENT_READ_BIT)
 
 Diligent::ASSERT_SAME (ACCESS_FLAG_SHADER_READ, VK_ACCESS_SHADER_READ_BIT)
 
 Diligent::ASSERT_SAME (ACCESS_FLAG_SHADER_WRITE, VK_ACCESS_SHADER_WRITE_BIT)
 
 Diligent::ASSERT_SAME (ACCESS_FLAG_RENDER_TARGET_READ, VK_ACCESS_COLOR_ATTACHMENT_READ_BIT)
 
 Diligent::ASSERT_SAME (ACCESS_FLAG_RENDER_TARGET_WRITE, VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT)
 
 Diligent::ASSERT_SAME (ACCESS_FLAG_DEPTH_STENCIL_READ, VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT)
 
 Diligent::ASSERT_SAME (ACCESS_FLAG_DEPTH_STENCIL_WRITE, VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT)
 
 Diligent::ASSERT_SAME (ACCESS_FLAG_COPY_SRC, VK_ACCESS_TRANSFER_READ_BIT)
 
 Diligent::ASSERT_SAME (ACCESS_FLAG_COPY_DST, VK_ACCESS_TRANSFER_WRITE_BIT)
 
 Diligent::ASSERT_SAME (ACCESS_FLAG_HOST_READ, VK_ACCESS_HOST_READ_BIT)
 
 Diligent::ASSERT_SAME (ACCESS_FLAG_HOST_WRITE, VK_ACCESS_HOST_WRITE_BIT)
 
 Diligent::ASSERT_SAME (ACCESS_FLAG_MEMORY_READ, VK_ACCESS_MEMORY_READ_BIT)
 
 Diligent::ASSERT_SAME (ACCESS_FLAG_MEMORY_WRITE, VK_ACCESS_MEMORY_WRITE_BIT)
 
 Diligent::ASSERT_SAME (ACCESS_FLAG_CONDITIONAL_RENDERING_READ, VK_ACCESS_CONDITIONAL_RENDERING_READ_BIT_EXT)
 
 Diligent::ASSERT_SAME (ACCESS_FLAG_SHADING_RATE_TEXTURE_READ, VK_ACCESS_SHADING_RATE_IMAGE_READ_BIT_NV)
 
 Diligent::ASSERT_SAME (ACCESS_FLAG_ACCELERATION_STRUCTURE_READ, VK_ACCESS_ACCELERATION_STRUCTURE_READ_BIT_NV)
 
 Diligent::ASSERT_SAME (ACCESS_FLAG_ACCELERATION_STRUCTURE_WRITE, VK_ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_NV)
 
 Diligent::ASSERT_SAME (ACCESS_FLAG_FRAGMENT_DENSITY_MAP_READ, VK_ACCESS_FRAGMENT_DENSITY_MAP_READ_BIT_EXT)
 
VkAccessFlags Diligent::AccessFlagsToVkAccessFlags (ACCESS_FLAGS AccessFlags)
 
VkShaderStageFlagBits Diligent::ShaderTypeToVkShaderStageFlagBit (SHADER_TYPE ShaderType)
 
VkShaderStageFlags Diligent::ShaderTypesToVkShaderStageFlags (SHADER_TYPE ShaderTypes)
 
SHADER_TYPE Diligent::VkShaderStageFlagsToShaderTypes (VkShaderStageFlags StageFlags)
 
VkBuildAccelerationStructureFlagsKHR Diligent::BuildASFlagsToVkBuildAccelerationStructureFlags (RAYTRACING_BUILD_AS_FLAGS Flags)
 
VkGeometryFlagsKHR Diligent::GeometryFlagsToVkGeometryFlags (RAYTRACING_GEOMETRY_FLAGS Flags)
 
VkGeometryInstanceFlagsKHR Diligent::InstanceFlagsToVkGeometryInstanceFlags (RAYTRACING_INSTANCE_FLAGS Flags)
 
VkCopyAccelerationStructureModeKHR Diligent::CopyASModeToVkCopyAccelerationStructureMode (COPY_AS_MODE Mode)
 
WAVE_FEATURE Diligent::VkSubgroupFeatureFlagsToWaveFeatures (VkSubgroupFeatureFlags FeatureFlags)
 

Macro Definition Documentation

◆ ASSERT_SAME

#define ASSERT_SAME (   Val1,
  Val2 
)    static_assert(static_cast<int>(Val1) == static_cast<int>(Val2), #Val1 " is expected to be equal to " #Val2)