@@ -9,7 +9,7 @@ namespace nbl::video
99
1010class COpenGLPhysicalDevice final : public IOpenGL_PhysicalDeviceBase<COpenGLLogicalDevice>
1111{
12- using base_t = IOpenGL_PhysicalDeviceBase<COpenGLLogicalDevice>;
12+ using base_t = IOpenGL_PhysicalDeviceBase<COpenGLLogicalDevice>;
1313
1414public:
1515 static COpenGLPhysicalDevice* create (IAPIConnection* api, renderdoc_api_t * rdoc, core::smart_refctd_ptr<system::ISystem>&& s, egl::CEGL&& _egl, COpenGLDebugCallback&& dbgCb)
@@ -36,24 +36,60 @@ class COpenGLPhysicalDevice final : public IOpenGL_PhysicalDeviceBase<COpenGLLog
3636
3737 const SFormatImageUsage& getImageFormatUsagesLinear (const asset::E_FORMAT format) override
3838 {
39- // Todo(achal):
40- // This will fill
41- _NBL_TODO ();
42- return SFormatImageUsage ();
39+ // Todo: Correct Format Reporting
40+ if (m_linearTilingUsages[format].isInitialized )
41+ return m_linearTilingUsages[format];
42+
43+ m_linearTilingUsages[format].sampledImage = 1 ;
44+ m_linearTilingUsages[format].storageImage = 1 ;
45+ m_linearTilingUsages[format].storageImageAtomic = 1 ;
46+ m_linearTilingUsages[format].attachment = 1 ;
47+ m_linearTilingUsages[format].attachmentBlend = 1 ;
48+ m_linearTilingUsages[format].blitSrc = 1 ;
49+ m_linearTilingUsages[format].blitDst = 1 ;
50+ m_linearTilingUsages[format].transferSrc = 1 ;
51+ m_linearTilingUsages[format].transferDst = 1 ;
52+ m_linearTilingUsages[format].log2MaxSamples = 7u ;
53+ m_linearTilingUsages[format].isInitialized = 1 ;
54+
55+ return m_linearTilingUsages[format];
4356 }
4457
4558 const SFormatImageUsage& getImageFormatUsagesOptimal (const asset::E_FORMAT format) override
4659 {
47- // Todo(achal):
48- _NBL_TODO ();
49- return SFormatImageUsage ();
60+ // Todo: Correct Format Reporting
61+ if (m_optimalTilingUsages[format].isInitialized )
62+ return m_optimalTilingUsages[format];
63+
64+ m_optimalTilingUsages[format].sampledImage = 1 ;
65+ m_optimalTilingUsages[format].storageImage = 1 ;
66+ m_optimalTilingUsages[format].storageImageAtomic = 1 ;
67+ m_optimalTilingUsages[format].attachment = 1 ;
68+ m_optimalTilingUsages[format].attachmentBlend = 1 ;
69+ m_optimalTilingUsages[format].blitSrc = 1 ;
70+ m_optimalTilingUsages[format].blitDst = 1 ;
71+ m_optimalTilingUsages[format].transferSrc = 1 ;
72+ m_optimalTilingUsages[format].transferDst = 1 ;
73+ m_optimalTilingUsages[format].log2MaxSamples = 7u ;
74+ m_optimalTilingUsages[format].isInitialized = 1 ;
75+
76+ return m_optimalTilingUsages[format];
5077 }
5178
5279 const SFormatBufferUsage& getBufferFormatUsages (const asset::E_FORMAT format) override
5380 {
54- // Todo(achal):
55- _NBL_TODO ();
56- return SFormatBufferUsage ();
81+ // Todo: Correct Format Reporting
82+ if (m_bufferUsages[format].isInitialized )
83+ return m_bufferUsages[format];
84+
85+ m_bufferUsages[format].vertexAttribute = 1 ;
86+ m_bufferUsages[format].bufferView = 1 ;
87+ m_bufferUsages[format].storageBufferView = 1 ;
88+ m_bufferUsages[format].storageBufferViewAtomic = 1 ;
89+ m_bufferUsages[format].accelerationStructureVertex = 1 ;
90+ m_bufferUsages[format].isInitialized = 1 ;
91+
92+ return m_bufferUsages[format];
5793 }
5894
5995protected:
@@ -63,10 +99,10 @@ class COpenGLPhysicalDevice final : public IOpenGL_PhysicalDeviceBase<COpenGLLog
6399 }
64100
65101private:
66- COpenGLPhysicalDevice (IAPIConnection* api, renderdoc_api_t * rdoc, core::smart_refctd_ptr<system::ISystem>&& s, egl::CEGL&& _egl, COpenGLDebugCallback&& dbgCb, EGLConfig config, EGLContext ctx, EGLint major, EGLint minor)
102+ COpenGLPhysicalDevice (IAPIConnection* api, renderdoc_api_t * rdoc, core::smart_refctd_ptr<system::ISystem>&& s, egl::CEGL&& _egl, COpenGLDebugCallback&& dbgCb, EGLConfig config, EGLContext ctx, EGLint major, EGLint minor)
67103 : base_t (api, rdoc, std::move(s),std::move(_egl),std::move(dbgCb), config,ctx,major,minor)
68- {
69- }
104+ {
105+ }
70106};
71107
72108}
0 commit comments