UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
VulkanFramebuffer.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved..
2
3#pragma once
4
5#include "VulkanRHIPrivate.h"
6
8{
9public:
12
13 bool Matches(const FRHISetRenderTargetsInfo& RTInfo) const;
14
16 {
17 return NumColorAttachments;
18 }
19
20 void Destroy(FVulkanDevice& Device);
21
23 {
24 return Framebuffer;
25 }
26
32
34
35 // Copy from the Depth render target partial view
37
39 {
41 FVulkanTexture* VulkanTexture = ResourceCast(Texture);
42 return ContainsRenderTarget(VulkanTexture->Image);
43 }
44
46 {
48 for (uint32 Index = 0; Index < NumColorAttachments; ++Index)
49 {
50 if (ColorRenderTargetImages[Index] == Image)
51 {
52 return true;
53 }
54 }
55
56 return (DepthStencilRenderTargetImage == Image);
57 }
58
60 {
61 return RenderArea;
62 }
63
64 // Expose the view creation logic so it can be reused for dynamic rendering
65 static FVulkanView* GetColorRenderTargetViewDesc(FVulkanTexture* Texture, uint32 MipIndex, int32 ArraySliceIndex, uint32 MultiViewCount, uint32& InOutNumLayers);
66 static FVulkanView* GetColorResolveTargetViewDesc(FVulkanTexture* ResolveTexture, uint32 MipIndex, int32 ArraySliceIndex);
70
71private:
72 VkFramebuffer Framebuffer;
73 VkRect2D RenderArea;
74
75 // Unadjusted number of color render targets as in FRHISetRenderTargetsInfo
76 uint32 NumColorRenderTargets;
77
78 // Save image off for comparison, in case it gets aliased.
79 uint32 NumColorAttachments;
80 VkImage ColorRenderTargetImages[MaxSimultaneousRenderTargets];
81 VkImage ColorResolveTargetImages[MaxSimultaneousRenderTargets];
82 VkImage DepthStencilRenderTargetImage;
83 VkImage DepthStencilResolveRenderTargetImage;
84 VkImage FragmentDensityImage;
85
86 // Predefined set of barriers, when executes ensuring all writes are finished
87 TArray<VkImageMemoryBarrier> WriteBarriers;
88
90};
#define check(expr)
Definition AssertionMacros.h:314
#define ensure( InExpression)
Definition AssertionMacros.h:464
FPlatformTypes::int32 int32
A 32-bit signed integer.
Definition Platform.h:1125
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
@ MaxSimultaneousRenderTargets
Definition RHIDefinitions.h:287
uint32_t uint32
Definition binka_ue_file_header.h:6
Definition RHIResources.h:4167
Definition RHIResources.h:2153
Definition VulkanContext.h:241
Definition VulkanDevice.h:279
Definition VulkanFramebuffer.h:8
static FVulkanView * GetDepthStencilTargetViewDesc(FVulkanTexture *Texture, uint32 NumColorAttachments, uint32 MipIndex, uint32 &InOutNumLayers)
Definition VulkanFramebuffer.cpp:227
uint32 GetNumColorAttachments() const
Definition VulkanFramebuffer.h:15
VkFramebuffer GetHandle()
Definition VulkanFramebuffer.h:22
TArray< FVulkanView const * > AttachmentTextureViews
Definition VulkanFramebuffer.h:33
bool ContainsRenderTarget(VkImage Image) const
Definition VulkanFramebuffer.h:45
bool ContainsRenderTarget(FRHITexture *Texture) const
Definition VulkanFramebuffer.h:38
FVulkanView const * PartialDepthTextureView
Definition VulkanFramebuffer.h:36
bool Matches(const FRHISetRenderTargetsInfo &RTInfo) const
Definition VulkanFramebuffer.cpp:316
static FVulkanView * GetFragmentDensityAttachmentViewDesc(FVulkanTexture *Texture, uint32 MipIndex)
Definition VulkanFramebuffer.cpp:288
static FVulkanView * GetColorRenderTargetViewDesc(FVulkanTexture *Texture, uint32 MipIndex, int32 ArraySliceIndex, uint32 MultiViewCount, uint32 &InOutNumLayers)
Definition VulkanFramebuffer.cpp:126
static FVulkanView * GetColorResolveTargetViewDesc(FVulkanTexture *ResolveTexture, uint32 MipIndex, int32 ArraySliceIndex)
Definition VulkanFramebuffer.cpp:206
VkRect2D GetRenderArea() const
Definition VulkanFramebuffer.h:59
static FVulkanView * GetDepthStencilResolveTargetViewDesc(FVulkanTexture *ResolveTexture, uint32 MipIndex)
Definition VulkanFramebuffer.cpp:267
~FVulkanFramebuffer()
Definition VulkanFramebuffer.cpp:120
const FVulkanView::FTextureView & GetPartialDepthTextureView() const
Definition VulkanFramebuffer.h:27
Definition VulkanRenderpass.h:453
Definition VulkanRenderTargetLayout.h:8
Definition VulkanResources.h:604
VkImage Image
Definition VulkanResources.h:791
Definition VulkanResources.h:432
FTextureView const & GetTextureView() const
Definition VulkanResources.h:501
Definition Array.h:670
U16 Index
Definition radfft.cpp:71
Definition VulkanResources.h:461