OROCHI
 
Loading...
Searching...
No Matches
GxSharedContext.h
Go to the documentation of this file.
1//===========================================================================
9//===========================================================================
10#pragma once
11
12GX_CORE_NAMESPACE_BEGIN()
13
14class GxRenderQuery;
15class GxRenderTexture;
16//===========================================================================
19//===========================================================================
21{
22 //-----------------------------------------------------------
24 //-----------------------------------------------------------
26public:
27 GX_OPERATOR_NEW_DELETE_USE_ARRAY(GxAllocatorList::ALLOCATOR_TYPE::RENDER);
28
29#if GX_USE_DX12
30 // 定数バッファ最大数
31#if defined(_XBOX_XS)
32 static constexpr u32 CONST_BUFFER_MAX = GxMath::VALUE_4K;
33#else //_XBOX_XS
34 static constexpr u32 CONST_BUFFER_MAX = GxMath::VALUE_16K;
35#endif // !_XBOX_XS
36 // ディスクリプタ最大数(SRV)
37 static constexpr u32 DESCRIPTOR_SRV_MAX = 32;
38 // ディスクリプタ最大数(UAV)
39 static constexpr u32 DESCRIPTOR_UAV_MAX = RENDER_TEXTURE_SAMPLER_UAV_COUNT_MAX;
40 // ディスクリプタ最大数(CBV)
41 static constexpr u32 DESCRIPTOR_CBV_MAX = 1;
42 // ディスクリプタ最大数(SAMPLER)
43 static constexpr u32 DESCRIPTOR_SAMPLER_MAX = RENDER_TEXTURE_SAMPLER_COUNT_MAX;
44 // ビュー用ディスクリプタヒープ最大数
45 static constexpr u32 DESCRIPTOR_HEAP_VIEW_MAX = 1000000;
46 // サンプラー用ディスクリプタヒープ最大数
47 static constexpr u32 DESCRIPTOR_HEAP_SAMPLER_MAX = GxMath::VALUE_2K;
48 // 1フレームで必要な定数バッファサイズ
49 static constexpr u32 CONST_BUFFER_SIZE = GxMath::VALUE_8K;
50#endif //GX_USE_DX12
51
53 //-----------------------------------------------------------
55 //-----------------------------------------------------------
57
60 : _gpuProfilerBeginReportIndex(0)
61 , _gpuProfilerEndReportIndex(0)
62 , _pMemory(nullptr)
63 , _pAllocator(nullptr)
64 , _executeCommandCount(0)
65#if GX_USE_DX11
66 , _pTimestampDisjointQuery(nullptr)
67 , _pProfilerBeginQuery(nullptr)
68 , _pProfilerEndQuery(nullptr)
69#elif GX_USE_DX12
70 , _pD3DCommandAllocator(nullptr)
71#if defined(_WINDOWS)
72 , _fenceValue(0)
73#endif //_WINDOWS
74 , _pBackBuffer(nullptr)
75 , _constBufferCount(0)
76 , _descriptorCountView(0)
77#elif defined(_PS5)
78 , _pBackBuffer(nullptr)
79 , _pBackBufferDepthStencil(nullptr)
80 , _pCommandBufferMemory(nullptr)
81#endif //_PS5
82#if GX_DEVELOP
83 , _useScreenshotNumber(true)
84#endif //GX_DEVELOP
85 {
86#if GX_USE_DX11
87 GX_MEMSET(_pD3D11DeferredContext, 0, sizeof(ID3D11DeviceContext*) * GxThread::HARDWARE_THREAD_MAX);
88#elif GX_USE_DX12
89 GX_MEMSET(_pConstBuffer, 0, sizeof(ComPtr<ID3D12Resource>) * CONST_BUFFER_MAX);
90#endif //GX_USE_DX12
91#if defined(_PS5)
92 for (u32 renderShader = 0; renderShader < static_cast<u32>(RENDER_SHADER::MAX); renderShader++)
93 {
94 _pShaderConstBuffer[renderShader] = nullptr;
95 _shaderConstBufferOffset[renderShader] = 0;
96 }
97#endif //_PS5
98 }
99
101 //-----------------------------------------------------------
103 //-----------------------------------------------------------
105
108 void* _pMemory;
110 volatile u32 _executeCommandCount;
111
112#if GX_ENABLE_OCCLUSION_CULLING
113 GxRenderQuery* _pOcclusionQuery;
114#endif //GX_ENABLE_OCCLUSION_CULLING
115#if GX_USE_DX11
116 ID3D11DeviceContext* _pD3D11DeferredContext[GxThread::HARDWARE_THREAD_MAX];
117 ID3D11Query* _pTimestampDisjointQuery;
118 GxRenderQuery* _pProfilerBeginQuery;
119 GxRenderQuery* _pProfilerEndQuery;
120#elif GX_USE_DX12
121 ComPtr<ID3D12CommandAllocator> _pD3DCommandAllocator;
122#if defined(_WINDOWS)
123 u64 _fenceValue;
124#endif //_WINDOWS
125 GxRenderTexture* _pBackBuffer;
126 ComPtr<ID3D12Resource> _pConstBuffer[CONST_BUFFER_MAX];
127 u32 _constBufferCount;
128 ComPtr<ID3D12DescriptorHeap> _descriptorHeapView;
129 u32 _descriptorCountView;
130#elif defined(_PS5)
131 GxNativeRenderContext _context;
132 GxRenderTexture* _pBackBuffer;
133 GxRenderTexture* _pBackBufferDepthStencil;
134 GxVector4* _pShaderConstBuffer[static_cast<u32>(RENDER_SHADER::MAX)];
135 u32 _shaderConstBufferOffset[static_cast<u32>(RENDER_SHADER::MAX)];
136 void* _pCommandBufferMemory;
137#endif //_PS5
138
139#if GX_DEVELOP
140 GxString _screenshotFileName;
141 b32 _useScreenshotNumber;
142#endif //GX_DEVELOP
143
145};
146
147GX_CORE_NAMESPACE_END()
@ MAX
定義数
@ RENDER_TEXTURE_SAMPLER_COUNT_MAX
サポートするテクスチャサンプラ数
Definition GxRender.h:37
@ RENDER_TEXTURE_SAMPLER_UAV_COUNT_MAX
サポートするUAVテクスチャサンプラ数
Definition GxRender.h:39
フレームアロケータ
Definition GxAllocatorFrame.h:19
@ RENDER
レンダリング
static constexpr u32 VALUE_2K
2K
Definition GxMath.h:130
static constexpr u32 VALUE_16K
16K
Definition GxMath.h:133
static constexpr u32 VALUE_4K
4K
Definition GxMath.h:131
static constexpr u32 VALUE_8K
8K
Definition GxMath.h:132
GPUクエリを管理する
Definition GxRenderQuery.h:19
テクスチャクラス
Definition GxRenderTexture.h:19
Definition GxSharedContext.h:21
GxAllocatorFrame * _pAllocator
アロケータ
Definition GxSharedContext.h:109
u32 _gpuProfilerBeginReportIndex
GPUプロファイラ開始レポートインデックス
Definition GxSharedContext.h:106
GxSharedContext(void)
コンストラクタ
Definition GxSharedContext.h:59
void * _pMemory
描画コンテキスト用メモリ
Definition GxSharedContext.h:108
volatile u32 _executeCommandCount
描画実行コマンド数
Definition GxSharedContext.h:110
u32 _gpuProfilerEndReportIndex
GPUプロファイラ終了レポートインデックス
Definition GxSharedContext.h:107
文字列型クラス
Definition GxString.h:18
4次元ベクトル
Definition GxVector.h:582
32bitブーリアン
Definition GxDefine.h:173