Skip to content

Commit 8787944

Browse files
committed
OpenGL fixes
1 parent 18f3e40 commit 8787944

File tree

2 files changed

+51
-15
lines changed

2 files changed

+51
-15
lines changed

src/nbl/video/COpenGLPhysicalDevice.h

Lines changed: 50 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ namespace nbl::video
99

1010
class COpenGLPhysicalDevice final : public IOpenGL_PhysicalDeviceBase<COpenGLLogicalDevice>
1111
{
12-
using base_t = IOpenGL_PhysicalDeviceBase<COpenGLLogicalDevice>;
12+
using base_t = IOpenGL_PhysicalDeviceBase<COpenGLLogicalDevice>;
1313

1414
public:
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

5995
protected:
@@ -63,10 +99,10 @@ class COpenGLPhysicalDevice final : public IOpenGL_PhysicalDeviceBase<COpenGLLog
6399
}
64100

65101
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)
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
}

src/nbl/video/COpenGLSampler.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,7 @@ class COpenGLSampler : public IGPUSampler
7676

7777
if (m_params.AnisotropicFilter && gl->getFeatures()->isFeatureAvailable(COpenGLFeatureMap::NBL_EXT_texture_filter_anisotropic))
7878
{
79-
uint32_t maxSamplerAnisotropy = 1u<<uint32_t(dev->getPhysicalDevice()->getLimits().maxSamplerAnisotropyLog2);
79+
uint32_t maxSamplerAnisotropy = 1u<<uint32_t(getOriginDevice()->getPhysicalDevice()->getLimits().maxSamplerAnisotropyLog2);
8080
gl->glTexture.pglSamplerParameteri(m_GLname, gl->TEXTURE_MAX_ANISOTROPY, std::min(1u<<m_params.AnisotropicFilter, maxSamplerAnisotropy));
8181
}
8282

0 commit comments

Comments
 (0)