UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
VirtualTextureTranscodeCache.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
6#include "PixelFormat.h"
8#include "Containers/HashTable.h"
9
13
25
40static_assert(sizeof(FVTTranscodeTileHandle) == sizeof(uint64), "");
41
43{
44 union
45 {
47 struct
48 {
53 };
54 };
56};
57
66
68{
69public:
71
72 static FVTTranscodeKey GetKey(const FVirtualTextureProducerHandle& ProducerHandle, uint8 LayerMask, uint8 vLevel, uint32 vAddress);
73
75
77 FRHICommandListBase& RHICmdList,
83
87
90
92
93private:
94 enum ListType
95 {
96 LIST_FREE,
97 LIST_PENDING,
98
99 LIST_COUNT,
100 };
101
102 struct FTaskEntry
103 {
104 uint64 Key;
105 FGraphEventRef GraphEvent;
107 uint32 PackedProducerHandle;
108 uint32 FrameSubmitted;
109 uint16 Magic;
110 uint16 Hash;
111 int16 NextIndex;
112 int16 PrevIndex;
113 };
114
115 void RemoveFromList(int32 Index)
116 {
117 FTaskEntry& Entry = Tasks[Index];
118 check(Index >= LIST_COUNT); // if we're trying to remove a list head, something is corrupt
119 Tasks[Entry.PrevIndex].NextIndex = Entry.NextIndex;
120 Tasks[Entry.NextIndex].PrevIndex = Entry.PrevIndex;
121 Entry.NextIndex = Entry.PrevIndex = Index;
122 }
123
124 void AddToList(int32 HeadIndex, int32 Index)
125 {
126 FTaskEntry& Head = Tasks[HeadIndex];
127 FTaskEntry& Entry = Tasks[Index];
128 check(Index >= LIST_COUNT); // if we're trying to add a list head, something is corrupt
129 check(Index <= 0xffff);
130
131 // make sure we're not currently in any list
132 check(Entry.NextIndex == Index);
133 check(Entry.PrevIndex == Index);
134
135 Entry.NextIndex = HeadIndex;
136 Entry.PrevIndex = Head.PrevIndex;
137 Tasks[Head.PrevIndex].NextIndex = Index;
138 Head.PrevIndex = Index;
139 }
140
141 TArray<FTaskEntry> Tasks;
142 FHashTable TileIDToTaskIndex;
143 FHashTable ProducerToTaskIndex;
144};
#define NULL
Definition oodle2base.h:134
#define check(expr)
Definition AssertionMacros.h:314
FPlatformTypes::int16 int16
A 16-bit signed integer.
Definition Platform.h:1123
FPlatformTypes::int32 int32
A 32-bit signed integer.
Definition Platform.h:1125
FPlatformTypes::uint64 uint64
A 64-bit unsigned integer.
Definition Platform.h:1117
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
#define VIRTUALTEXTURE_SPACE_MAXLAYERS
Definition VirtualTexturing.h:57
uint8_t uint8
Definition binka_ue_file_header.h:8
uint16_t uint16
Definition binka_ue_file_header.h:7
uint32_t uint32
Definition binka_ue_file_header.h:6
Definition HashTable.h:210
Definition NameTypes.h:617
Definition RHICommandList.h:455
Definition UploadingVirtualTexture.h:74
Definition UploadingVirtualTexture.h:20
Definition VirtualTextureTranscodeCache.h:68
FVirtualTextureTranscodeCache()
Definition VirtualTextureTranscodeCache.cpp:258
static FVTTranscodeKey GetKey(const FVirtualTextureProducerHandle &ProducerHandle, uint8 LayerMask, uint8 vLevel, uint32 vAddress)
Definition VirtualTextureTranscodeCache.cpp:269
const FVTUploadTileHandle * AcquireTaskResult(FVTTranscodeTileHandle InHandle)
Definition VirtualTextureTranscodeCache.cpp:338
void RetireOldTasks(FRHICommandListBase &RHICmdList, FVirtualTextureUploadCache &InUploadCache)
Definition VirtualTextureTranscodeCache.cpp:468
bool IsTaskFinished(FVTTranscodeTileHandle InHandle) const
Definition VirtualTextureTranscodeCache.cpp:295
void WaitTaskFinished(FVTTranscodeTileHandle InHandle) const
Definition VirtualTextureTranscodeCache.cpp:304
FVTTranscodeTileHandle SubmitTask(FRHICommandListBase &RHICmdList, FVirtualTextureUploadCache &InUploadCache, const FVTTranscodeKey &InKey, const FVirtualTextureProducerHandle &InProducerHandle, const FVTTranscodeParams &InParams, const FGraphEventArray *InPrerequisites=NULL)
Definition VirtualTextureTranscodeCache.cpp:362
FGraphEventRef GetTaskEvent(FVTTranscodeTileHandle InHandle) const
Definition VirtualTextureTranscodeCache.cpp:316
void GatherProducePageDataTasks(FVirtualTextureProducerHandle const &ProducerHandle, FGraphEventArray &InOutTasks) const
Definition VirtualTextureTranscodeCache.cpp:325
FVTTranscodeTileHandleAndStatus FindTask(const FVTTranscodeKey &InKey) const
Definition VirtualTextureTranscodeCache.cpp:280
Definition VirtualTextureUploadCache.h:154
@ false
Definition radaudio_common.h:23
U16 Index
Definition radfft.cpp:71
Definition VirtualTextureTranscodeCache.h:43
uint32 vAddress
Definition VirtualTextureTranscodeCache.h:50
uint32 LayerMask
Definition VirtualTextureTranscodeCache.h:52
uint32 ProducerID
Definition VirtualTextureTranscodeCache.h:49
uint64 Key
Definition VirtualTextureTranscodeCache.h:46
uint32 vLevel
Definition VirtualTextureTranscodeCache.h:51
uint16 Hash
Definition VirtualTextureTranscodeCache.h:55
Definition VirtualTextureTranscodeCache.h:15
const FVirtualTextureCodec * Codec
Definition VirtualTextureTranscodeCache.h:17
uint32 ChunkIndex
Definition VirtualTextureTranscodeCache.h:20
IMemoryReadStreamRef Data
Definition VirtualTextureTranscodeCache.h:16
uint8 LayerMask
Definition VirtualTextureTranscodeCache.h:23
const FVirtualTextureBuiltData * VTData
Definition VirtualTextureTranscodeCache.h:18
uint32 vAddress
Definition VirtualTextureTranscodeCache.h:21
uint8 vLevel
Definition VirtualTextureTranscodeCache.h:22
FName Name
Definition VirtualTextureTranscodeCache.h:19
Definition VirtualTextureTranscodeCache.h:59
FVTTranscodeTileHandleAndStatus(const FVTTranscodeTileHandle &InHandle, bool InComplete)
Definition VirtualTextureTranscodeCache.h:61
bool IsComplete
Definition VirtualTextureTranscodeCache.h:64
FVTTranscodeTileHandle Handle
Definition VirtualTextureTranscodeCache.h:63
FVTTranscodeTileHandleAndStatus()
Definition VirtualTextureTranscodeCache.h:60
Definition VirtualTextureUploadCache.h:17
Definition VirtualTextureBuiltData.h:131
Definition VirtualTextureTranscodeCache.h:27
FVTTranscodeTileHandle(uint32 InIndex, uint32 InMagic)
Definition VirtualTextureTranscodeCache.h:29
bool IsValid() const
Definition VirtualTextureTranscodeCache.h:31
uint32 Index
Definition VirtualTextureTranscodeCache.h:36
uint32 Magic
Definition VirtualTextureTranscodeCache.h:37
uint64 PackedData
Definition VirtualTextureTranscodeCache.h:33
FVTTranscodeTileHandle(uint64 InPacked=0u)
Definition VirtualTextureTranscodeCache.h:28
Definition VirtualTexturing.h:33