@@ -9,7 +9,7 @@ namespace nbl::video
9
9
10
10
class COpenGLPhysicalDevice final : public IOpenGL_PhysicalDeviceBase<COpenGLLogicalDevice>
11
11
{
12
- using base_t = IOpenGL_PhysicalDeviceBase<COpenGLLogicalDevice>;
12
+ using base_t = IOpenGL_PhysicalDeviceBase<COpenGLLogicalDevice>;
13
13
14
14
public:
15
15
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
36
36
37
37
const SFormatImageUsage& getImageFormatUsagesLinear (const asset::E_FORMAT format) override
38
38
{
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];
43
56
}
44
57
45
58
const SFormatImageUsage& getImageFormatUsagesOptimal (const asset::E_FORMAT format) override
46
59
{
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];
50
77
}
51
78
52
79
const SFormatBufferUsage& getBufferFormatUsages (const asset::E_FORMAT format) override
53
80
{
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];
57
93
}
58
94
59
95
protected:
@@ -63,10 +99,10 @@ class COpenGLPhysicalDevice final : public IOpenGL_PhysicalDeviceBase<COpenGLLog
63
99
}
64
100
65
101
private:
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)
67
103
: base_t (api, rdoc, std::move(s),std::move(_egl),std::move(dbgCb), config,ctx,major,minor)
68
- {
69
- }
104
+ {
105
+ }
70
106
};
71
107
72
108
}
0 commit comments