UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
D3D12ConstantBuffer.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
5#include "D3D12RHICommon.h"
6#if D3D12RHI_USE_CONSTANT_BUFFER_VIEWS
7#include "D3D12View.h"
8#endif
9
12
13// Chunk size for global constant buffer shadow data. Should always be a multiple of 256
14#define GLOBAL_CONSTANT_BUFFER_CHUNK_SIZE 512
15
20{
21public:
23 virtual ~FD3D12ConstantBuffer();
24
32 {
33 // Make sure we have enough memory in our shadow data
36 {
37 // Make sure we grow in chunks to prevent too many reallocs
40 }
41
44
45 bIsDirty = true;
46 }
47
49
50 bool Version(FD3D12ResourceLocation& BufferOut, bool bDiscardSharedConstants);
51
52#if D3D12RHI_USE_CONSTANT_BUFFER_VIEWS
53 inline D3D12_CPU_DESCRIPTOR_HANDLE GetOfflineCpuHandle() const { return View->GetOfflineCpuHandle(); }
54#endif
55
56protected:
57#if D3D12RHI_USE_CONSTANT_BUFFER_VIEWS
58 FD3D12ConstantBufferView* View = nullptr;
59#endif
60
62
65
71
72 // Indicates that a constant has been updated but this one hasn't been flushed.
74
76};
constexpr T Align(T Val, uint64 Alignment)
Definition AlignmentTemplates.h:18
#define FORCEINLINE
Definition AndroidPlatform.h:140
#define FORCEINLINE_DEBUGGABLE
Definition CoreMiscDefines.h:74
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
#define GLOBAL_CONSTANT_BUFFER_CHUNK_SIZE
Definition D3D12ConstantBuffer.h:14
uint32 Offset
Definition VulkanMemory.cpp:4033
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 D3D12View.h:336
Definition D3D12ConstantBuffer.h:20
FORCEINLINE_DEBUGGABLE void UpdateConstant(const uint8 *Data, uint16 Offset, uint16 InSize)
Definition D3D12ConstantBuffer.h:31
TArray< uint8 > ShadowData
Definition D3D12ConstantBuffer.h:61
bool bIsDirty
Definition D3D12ConstantBuffer.h:73
virtual ~FD3D12ConstantBuffer()
Definition D3D12ConstantBuffer.cpp:21
FD3D12FastConstantAllocator & Allocator
Definition D3D12ConstantBuffer.h:75
bool Version(FD3D12ResourceLocation &BufferOut, bool bDiscardSharedConstants)
Definition D3D12ConstantBuffer.cpp:28
FORCEINLINE void Reset()
Definition D3D12ConstantBuffer.h:48
uint32 TotalUpdateSize
Definition D3D12ConstantBuffer.h:70
uint32 CurrentUpdateSize
Definition D3D12ConstantBuffer.h:64
Definition D3D12RHICommon.h:78
Definition D3D12Device.h:176
Definition D3D12Allocation.h:553
Definition D3D12Resources.h:641
Definition Array.h:670
UE_REWRITE SizeType Num() const
Definition Array.h:1144
void SetNumZeroed(SizeType NewNum, EAllowShrinking AllowShrinking=UE::Core::Private::AllowShrinkingByDefault< AllocatorType >())
Definition Array.h:2340
UE_NODEBUG UE_FORCEINLINE_HINT ElementType * GetData() UE_LIFETIMEBOUND
Definition Array.h:1027
static UE_FORCEINLINE_HINT void * Memcpy(void *Dest, const void *Src, SIZE_T Count)
Definition UnrealMemory.h:160