diff --git a/source/renderer/PostprocManager.cpp b/source/renderer/PostprocManager.cpp index 34d1acd171..01d099e6a1 100644 --- a/source/renderer/PostprocManager.cpp +++ b/source/renderer/PostprocManager.cpp @@ -215,7 +215,7 @@ void CPostprocManager::InitializePBR() LOGWARNING("%s is unsupported", framebufferFormatName); } - if (m_Device->GetCapabilities().computeShaders && m_Device->GetCapabilities().storage) + if (m_Device->GetCapabilities().computeShaders) { m_ResolvePBRComputeTech = g_Renderer.GetShaderManager().LoadEffect(str_compute_resolve_pbr); if (m_ResolvePBRComputeTech) diff --git a/source/renderer/backend/gl/Texture.cpp b/source/renderer/backend/gl/Texture.cpp index 3d30a49f35..e166a1871f 100644 --- a/source/renderer/backend/gl/Texture.cpp +++ b/source/renderer/backend/gl/Texture.cpp @@ -174,6 +174,12 @@ std::unique_ptr CTexture::Create( // pixel format. GLenum pixelFormat = GL_RGBA; GLenum pixelType = GL_UNSIGNED_BYTE; +#if !CONFIG2_GLES + // load/store operation requires sized formats. See Table 8.25: + // https://registry.khronos.org/OpenGL/specs/gl/glspec43.core.pdf + if (usage & ITexture::Usage::STORAGE) + internalFormat = GL_RGBA8; +#endif switch (format) { case Format::UNDEFINED: