3#include <RendererDX11/RendererDX11DLL.h>
35 static constexpr plUInt32 s_uiRetainFrames = 4;
36 static constexpr plUInt64 s_uiPredicateFlag = PL_BIT(19);
37 static constexpr double s_fInvalid = -1.0;
41 plGALFenceHandle m_hFence;
42 ID3D11Query* m_pDisjointTimerQuery =
nullptr;
43 double m_fInvTicksPerSecond = s_fInvalid;
44 plUInt32 m_uiReadyFrames = 0;
45 plUInt64 m_uiFrameCounter = plUInt64(-1);
49 PerFrameData GetFreeFrame();
66 ID3D11Query* pQuery = GetQuery(hPool);
67 HRESULT res = m_pDevice->GetDXImmediateContext()->GetData(pQuery, &out_uiResult,
sizeof(out_uiResult), D3D11_ASYNC_GETDATA_DONOTFLUSH);
84 plUInt32 m_uiNextTimestamp = 0;
91 Pool m_OcclusionPredicatePool;
96 plUInt64 m_uiFirstFrameIndex = 0;
99 bool m_bSyncTimeNeeded =
true;
Base class for all memory allocators.
Definition Allocator.h:23
Definition DynamicArray.h:81
The DX11 device implementation of the graphics abstraction layer.
Definition DeviceDX11.h:32
Pool for GPU queries.
Definition QueryPoolDX11.h:11
A custom enum implementation that allows to define the underlying storage type to control its memory ...
Definition Enum.h:37
@ Pending
The async operation is still running, retry later.
Definition RendererFoundationDLL.h:351
@ Ready
The async operation has finished and the result is ready.
Definition RendererFoundationDLL.h:350
@ Expired
The async operation is too old and the result was thrown away. Pending results should be queried ever...
Definition RendererFoundationDLL.h:352
A generic id class that holds an id combined of an instance index and a generation counter.
Definition Id.h:52
Default enum for returning failure or success, instead of using a bool.
Definition Types.h:54
The time class encapsulates a double value storing the time in seconds.
Definition Time.h:12