2#define VULKAN_HPP_NO_CONSTRUCTORS
3#include <vulkan/vulkan.hpp>
4#include <vulkan/vulkan_raii.hpp>
9 return static_cast<Bits
>(
static_cast<std::underlying_type_t<Bits>
>(
flags));
26 case R32Uint:
return vk::Format::eR32Uint;
27 case R16Uint:
return vk::Format::eR16Uint;
31 return vk::Format::eUndefined;
36 vk::BufferUsageFlags
flags{};
49 vk::AccessFlags2
flags{};
75 return vk::ImageLayout::eUndefined;
81 vk::PipelineStageFlags
flags{};
87 if (stage &
MeshShader)
flags |= vk::PipelineStageFlagBits::eMeshShaderEXT;
89 if (stage &
Transfer)
flags |= vk::PipelineStageFlagBits::eTransfer;
92 if (stage &
TopOfPipe)
flags |= vk::PipelineStageFlagBits::eTopOfPipe;
95 if (stage &
Host)
flags |= vk::PipelineStageFlagBits::eHost;
101 vk::PipelineStageFlags2
flags{};
107 if (stage &
MeshShader)
flags |= vk::PipelineStageFlagBits2::eMeshShaderEXT;
108 if (stage &
TaskShader)
flags |= vk::PipelineStageFlagBits2::eTaskShaderEXT;
110 if (stage &
Transfer)
flags |= vk::PipelineStageFlagBits2::eTransfer;
113 if (stage &
TopOfPipe)
flags |= vk::PipelineStageFlagBits2::eTopOfPipe;
116 if (stage &
Host)
flags |= vk::PipelineStageFlagBits2::eHost;
122 vk::ShaderStageFlags
flags{};
123 if (stage ==
All)
return vk::ShaderStageFlagBits::eAll;
124 if (stage &
Vertex)
flags |= vk::ShaderStageFlagBits::eVertex;
125 if (stage &
Fragment)
flags |= vk::ShaderStageFlagBits::eFragment;
126 if (stage &
Compute)
flags |= vk::ShaderStageFlagBits::eCompute;
128 if (stage &
RayAnyHit)
flags |= vk::ShaderStageFlagBits::eAnyHitKHR;
130 if (stage &
RayMiss)
flags |= vk::ShaderStageFlagBits::eMissKHR;
132 if (stage &
Task)
flags |= vk::ShaderStageFlagBits::eTaskEXT;
133 if (stage &
Mesh)
flags |= vk::ShaderStageFlagBits::eMeshEXT;
142 return vk::DescriptorType::eSampler;
144 return vk::DescriptorType::eSampledImage;
146 return vk::DescriptorType::eStorageImage;
148 return vk::DescriptorType::eStorageBuffer;
151 return vk::DescriptorType::eUniformBuffer;
165 vk::ImageUsageFlags
flags{};
167 if (usage &
DepthStencil)
flags |= vk::ImageUsageFlagBits::eDepthStencilAttachment;
178 case E2:
return vk::SampleCountFlagBits::e2;
179 case E4:
return vk::SampleCountFlagBits::e4;
180 case E8:
return vk::SampleCountFlagBits::e8;
181 case E16:
return vk::SampleCountFlagBits::e16;
184 return vk::SampleCountFlagBits::e1;
190 vk::ImageAspectFlags
flags{};
191 if (aspect &
Color)
flags |= vk::ImageAspectFlagBits::eColor;
192 if (aspect &
Depth)
flags |= vk::ImageAspectFlagBits::eDepth;
193 if (aspect &
Stencil)
flags |= vk::ImageAspectFlagBits::eStencil;
std::unique_ptr< T, StlDeleter< T > > UniquePtr
std::unique_ptr with custom deleter that uses a Foundation::Core::Allocator to deallocate memory.
Definition Allocator.hpp:161
Low-level Rendering Hardware Interface (RHI) abstractions.
Definition Application.hpp:5
MeshShader
Definition Common.hpp:198
RayTracingShader
Definition Common.hpp:197
vk::AccessFlags2 vkAccessFlagsFromRHIResourceAccess(RHIResourceAccess state)
Definition Common.hpp:47
IndexBuffer
Definition Common.hpp:213
FragmentShader
Definition Common.hpp:195
vk::SampleCountFlagBits vkSampleCountFlagFromRHIMultisampleCount(RHIMultisampleCount count)
Definition Common.hpp:175
RHIDevicePipelineType
Definition Common.hpp:84
RHITextureLayout
Definition Common.hpp:99
Task
Definition Common.hpp:157
Depth
Definition Common.hpp:234
vk::ImageAspectFlags vkImageAspectFlagFromRHITextureAspect(RHITextureAspectFlag aspect)
Definition Common.hpp:188
vk::PipelineBindPoint vkPipelineBindPointFromRHIDevicePipelineType(RHIDevicePipelineType type)
Definition Common.hpp:155
UniformRead
Definition Common.hpp:185
VertexShader
Definition Common.hpp:194
RayGeneration
Definition Common.hpp:147
vk::DescriptorType vkDescriptorTypeFromRHIDescriptorType(RHIDescriptorType type)
Definition Common.hpp:137
TopOfPipe
Definition Common.hpp:207
RenderTargetOutput
Definition Common.hpp:200
All
Definition Common.hpp:160
Compute
Definition Common.hpp:145
Host
Definition Common.hpp:205
RenderTargetRead
Definition Common.hpp:178
ComputeShader
Definition Common.hpp:196
vk::ImageLayout vkImageLayoutFromRHITextureLayout(RHITextureLayout layout)
Definition Common.hpp:64
Color
Definition Common.hpp:233
EarlyFragmentTests
Definition Common.hpp:202
TransferRead
Definition Common.hpp:182
TransferSource
Definition Common.hpp:219
vk::Format vkFormatFromRHIFormat(RHIResourceFormat format)
Definition Common.hpp:11
vk::ImageUsageFlags vkImageUsageFlagsFromRHITextureUsage(RHITextureUsage usage)
Definition Common.hpp:163
UniformBuffer
Definition Common.hpp:215
ShaderRead
Definition Common.hpp:184
TaskShader
Definition Common.hpp:199
VertexBuffer
Definition Common.hpp:212
HostRead
Definition Common.hpp:187
StorageBuffer
Definition Common.hpp:217
vk::ShaderStageFlags vkShaderStageFlagsFromRHIShaderStage(RHIShaderStage stage)
Definition Common.hpp:120
DepthStencil
Definition Common.hpp:225
vk::PipelineStageFlags vkPipelineStageFlagsFromRHIPipelineStage(RHIPipelineStage stage)
Definition Common.hpp:79
Transfer
Definition Common.hpp:201
RayAnyHit
Definition Common.hpp:149
RHIDescriptorType
Definition Common.hpp:116
LateFragmentTests
Definition Common.hpp:203
RayClosestHit
Definition Common.hpp:151
HostWrite
Definition Common.hpp:186
RHIResourceFormat
Definition Common.hpp:20
@ R16G16B16A16SignedFloat
@ R32G32B32A32SignedFloat
BottomOfPipe
Definition Common.hpp:208
RenderTargetWrite
Definition Common.hpp:177
DepthStencilWrite
Definition Common.hpp:179
Mesh
Definition Common.hpp:159
Stencil
Definition Common.hpp:235
TransferDestination
Definition Common.hpp:220
vk::PipelineStageFlags2 vkPipelineStageFlags2FromRHIPipelineStage(RHIPipelineStage stage)
Definition Common.hpp:99
Bits vkFlagsToBits(vk::Flags< Bits > flags)
Definition Common.hpp:8
ShaderWrite
Definition Common.hpp:183
TransferWrite
Definition Common.hpp:181
RayMiss
Definition Common.hpp:153
RHIMultisampleCount
Definition Common.hpp:132
DepthStencilRead
Definition Common.hpp:180
SampledImage
Definition Common.hpp:226
Fragment
Definition Common.hpp:143
DrawIndirect
Definition Common.hpp:193
IndirectBuffer
Definition Common.hpp:218
RenderTarget
Definition Common.hpp:224
StorageImage
Definition Common.hpp:227
Vertex
Definition Common.hpp:141
AllGraphics
Definition Common.hpp:206
RayIntersection
Definition Common.hpp:155
vk::BufferUsageFlags vkBufferUsageFromRHIBufferUsage(RHIBufferUsage usage)
Definition Common.hpp:34