37class FVulkanGfxPipeline;
42template<
typename BitsType>
45 return (
Flags & Contains) == Contains;
48template<
typename BitsType>
51 return (
Flags & Contains) != 0;
126#if PLATFORM_LITTLE_ENDIAN
206#if VULKAN_ENABLE_AGGRESSIVE_STATS
295#elif PLATFORM_ANDROID
344#if VULKAN_HAS_DEBUGGING_ENABLED
448 check(!
"Undefined vertex-element format conversion");
481#if UE_BUILD_DEBUG || UE_BUILD_DEVELOPMENT
487 static inline FString GetPipelineCacheFilename()
492 static inline FString GetValidationCacheFilename()
497#if VULKAN_ENABLE_DRAW_MARKERS
505 SetDebugName(Device, &
Info);
515 TEXT(
"You can't merge transfer src layout without anything else than transfer src (%s != %s). ")
516 TEXT(
"You need either VK_KHR_separate_depth_stencil_layouts or GRHISupportsSeparateDepthStencilCopyAccess enabled."),
524 TEXT(
"You can't merge transfer dst layout without anything else than transfer dst (%s != %s). ")
525 TEXT(
"You need either VK_KHR_separate_depth_stencil_layouts or GRHISupportsSeparateDepthStencilCopyAccess enabled."),
552 TEXT(
"Layouts were already merged but they are mismatched (%s != %s)."),
634#if UE_BUILD_DEBUG || UE_BUILD_DEVELOPMENT
660 checkf(
false,
TEXT(
"A texture was marked as a shading rate source but attachment VRS is not supported on this device. Ensure GRHISupportsAttachmentVariableRateShading and GRHIAttachmentVariableRateShadingEnabled are true before specifying a shading rate attachment."));
673#if VULKAN_HAS_DEBUGGING_ENABLED
#define check(expr)
Definition AssertionMacros.h:314
#define checkf(expr, format,...)
Definition AssertionMacros.h:315
#define DECLARE_CYCLE_STAT_EXTERN(CounterName, StatId, GroupId, API)
Definition Stats.h:679
#define DECLARE_DWORD_COUNTER_STAT_EXTERN(CounterName, StatId, GroupId, API)
Definition Stats.h:682
#define DECLARE_STATS_GROUP(GroupDesc, GroupId, GroupCat)
Definition Stats.h:689
#define DECLARE_DWORD_ACCUMULATOR_STAT_EXTERN(CounterName, StatId, GroupId, API)
Definition Stats.h:684
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
EVertexElementType
Definition RHIDefinitions.h:496
@ VET_Short4
Definition RHIDefinitions.h:507
@ VET_Half4
Definition RHIDefinitions.h:510
@ VET_UShort2N
Definition RHIDefinitions.h:514
@ VET_Short2
Definition RHIDefinitions.h:506
@ VET_Float1
Definition RHIDefinitions.h:498
@ VET_UByte4N
Definition RHIDefinitions.h:504
@ VET_Color
Definition RHIDefinitions.h:505
@ VET_Float3
Definition RHIDefinitions.h:500
@ VET_UShort4N
Definition RHIDefinitions.h:515
@ VET_Half2
Definition RHIDefinitions.h:509
@ VET_UShort2
Definition RHIDefinitions.h:512
@ VET_Float4
Definition RHIDefinitions.h:501
@ VET_UByte4
Definition RHIDefinitions.h:503
@ VET_PackedNormal
Definition RHIDefinitions.h:502
@ VET_Short2N
Definition RHIDefinitions.h:508
@ VET_UInt
Definition RHIDefinitions.h:517
@ VET_Short4N
Definition RHIDefinitions.h:511
@ VET_UShort4
Definition RHIDefinitions.h:513
@ VET_URGB10A2N
Definition RHIDefinitions.h:516
@ VET_Float2
Definition RHIDefinitions.h:499
EShaderFrequency
Definition RHIDefinitions.h:202
@ SF_Compute
Definition RHIDefinitions.h:208
@ SF_NumFrequencies
Definition RHIDefinitions.h:216
@ SF_Amplification
Definition RHIDefinitions.h:205
@ SF_Vertex
Definition RHIDefinitions.h:203
@ SF_Mesh
Definition RHIDefinitions.h:204
@ SF_Geometry
Definition RHIDefinitions.h:207
@ SF_RayGen
Definition RHIDefinitions.h:209
@ SF_RayCallable
Definition RHIDefinitions.h:212
@ SF_RayMiss
Definition RHIDefinitions.h:210
@ SF_RayHitGroup
Definition RHIDefinitions.h:211
@ SF_Pixel
Definition RHIDefinitions.h:206
@ VRSImage_Fractional
Definition RHIDefinitions.h:885
@ VRSImage_Palette
Definition RHIDefinitions.h:884
@ VRSImage_NotSupported
Definition RHIDefinitions.h:883
ERenderTargetStoreAction
Definition RHIDefinitions.h:1272
ERenderTargetLoadAction
Definition RHIDefinitions.h:1253
#define GRHIVariableRateShadingImageDataType
Definition RHIGlobals.h:891
ERHIFeatureLevel::Type GMaxRHIFeatureLevel
Definition RHI.cpp:1338
#define VK_TYPE_TO_STRING(Type, Value)
Definition VulkanConfiguration.h:244
VULKANRHI_API class FVulkanDynamicRHI * GVulkanRHI
Definition VulkanUtil.cpp:30
TAtomic< uint64 > GVulkanBufferHandleIdCounter
Definition VulkanRHI.cpp:50
bool ValidateShadingRateDataType()
Definition VulkanRHIPrivate.h:649
constexpr bool VKHasAnyFlags(VkFlags Flags, BitsType Contains)
Definition VulkanRHIPrivate.h:49
const int GMaxCrashBufferEntries
Definition VulkanRHIPrivate.h:677
TAtomic< uint64 > GVulkanBufferViewHandleIdCounter
Definition VulkanRHI.cpp:51
TAtomic< uint64 > GVulkanSamplerHandleIdCounter
Definition VulkanRHI.cpp:53
void VulkanSetImageLayout(FVulkanCommandBuffer *CmdBuffer, VkImage Image, VkImageLayout OldLayout, VkImageLayout NewLayout, const VkImageSubresourceRange &SubresourceRange)
Definition VulkanBarriers.cpp:1817
TAtomic< uint64 > GVulkanDSetLayoutHandleIdCounter
Definition VulkanRHI.cpp:54
VkFormat GVulkanSRGBFormat[PF_MAX]
Definition VulkanDevice.cpp:91
int32 GWaitForIdleOnSubmit
Definition VulkanQueue.cpp:13
VkShaderStageFlagBits UEFrequencyToVKStageBit(EShaderFrequency InStage)
Definition VulkanRHIPrivate.h:54
constexpr bool VKHasAllFlags(VkFlags Flags, BitsType Contains)
Definition VulkanRHIPrivate.h:43
VkFormat UEToVkTextureFormat(EPixelFormat UEFormat, const bool bIsSRGB)
Definition VulkanRHIPrivate.h:388
EShaderFrequency VkStageBitToUEFrequency(VkShaderStageFlagBits FlagBits)
Definition VulkanRHIPrivate.h:76
TAtomic< uint64 > GVulkanImageViewHandleIdCounter
Definition VulkanRHI.cpp:52
bool UseVulkanDescriptorCache()
Definition VulkanRHIPrivate.h:643
static CORE_API const FString & ProjectSavedDir()
Definition Paths.cpp:496
Definition VulkanCommandBuffer.h:43
Definition VulkanDescriptorSets.h:245
Definition VulkanDynamicRHI.h:69
Definition VulkanQueue.h:53
Definition VulkanRenderpass.h:453
Definition VulkanResources.h:108
Definition IConsoleManager.h:1792
@ ES3_1
Definition RHIFeatureLevel.h:25
@ NumRayTracingStages
Definition VulkanCommon.h:49
@ NumGraphicsStages
Definition VulkanCommon.h:42
@ NumComputeStages
Definition VulkanCommon.h:53
Definition VulkanCommandBuffer.h:22
void HeavyWeightBarrier(VkCommandBuffer CmdBuffer)
Definition VulkanRHIPrivate.h:587
void DebugHeavyWeightBarrier(VkCommandBuffer CmdBuffer, int32 CVarConditionMask)
Definition VulkanRHIPrivate.h:632
VkImageLayout GetMergedDepthStencilLayout(VkImageLayout DepthLayout, VkImageLayout StencilLayout)
Definition VulkanRHIPrivate.h:510
Definition VulkanRHIPrivate.h:123
uint32 Secondary
Definition VulkanRHIPrivate.h:134
uint32 Major
Definition VulkanRHIPrivate.h:132
uint32 Packed
Definition VulkanRHIPrivate.h:138
uint32 Tertiary
Definition VulkanRHIPrivate.h:135
uint32 Minor
Definition VulkanRHIPrivate.h:133