forked from 0ad/0ad
Disables framebuffer invalidating by default for GL as some drivers perform it incorrectly.
Fixes #6805 Tested By: Itms Differential Revision: https://code.wildfiregames.com/D5003 This was SVN commit r27654.
This commit is contained in:
parent
58eebfcc64
commit
cd8eb70859
@ -131,6 +131,8 @@ renderer.backend.debugmessages = "false"
|
||||
renderer.backend.debuglabels = "false"
|
||||
renderer.backend.debugscopedlabels = "false"
|
||||
|
||||
renderer.backend.gl.enableframebufferinvalidating = "false"
|
||||
|
||||
renderer.backend.vulkan.disabledescriptorindexing = "false"
|
||||
renderer.backend.vulkan.deviceindexoverride = -1
|
||||
|
||||
|
@ -365,11 +365,17 @@ std::unique_ptr<IDevice> CDevice::Create(SDL_Window* window, const bool arb)
|
||||
#endif
|
||||
}
|
||||
|
||||
// Some drivers might invalidate an incorrect surface which leads to artifacts.
|
||||
bool enableFramebufferInvalidating = false;
|
||||
CFG_GET_VAL("renderer.backend.gl.enableframebufferinvalidating", enableFramebufferInvalidating);
|
||||
if (enableFramebufferInvalidating)
|
||||
{
|
||||
#if CONFIG2_GLES
|
||||
device->m_UseFramebufferInvalidating = ogl_HaveExtension("GL_EXT_discard_framebuffer");
|
||||
device->m_UseFramebufferInvalidating = ogl_HaveExtension("GL_EXT_discard_framebuffer");
|
||||
#else
|
||||
device->m_UseFramebufferInvalidating = !arb && ogl_HaveExtension("GL_ARB_invalidate_subdata");
|
||||
device->m_UseFramebufferInvalidating = !arb && ogl_HaveExtension("GL_ARB_invalidate_subdata");
|
||||
#endif
|
||||
}
|
||||
|
||||
Capabilities& capabilities = device->m_Capabilities;
|
||||
capabilities.ARBShaders = !ogl_HaveExtensions(0, "GL_ARB_vertex_program", "GL_ARB_fragment_program", nullptr);
|
||||
|
Loading…
Reference in New Issue
Block a user