Add a fallback for intel on linux.

When workaround with alpha_channel=true failed, then fallback to the path with disabled srgb framebuffer.
This commit is contained in:
Deve 2017-10-11 21:39:13 +02:00
parent 6794670510
commit c1e17f0593
2 changed files with 8 additions and 3 deletions

View File

@ -238,13 +238,19 @@ void CentralVideoSettings::init()
}
// Check if visual is sRGB-capable
if (GraphicsRestrictions::isDisabled(GraphicsRestrictions::GR_FRAMEBUFFER_SRGB_WORKAROUND2) &&
if (!GraphicsRestrictions::isDisabled(GraphicsRestrictions::GR_FRAMEBUFFER_SRGB) &&
GraphicsRestrictions::isDisabled(GraphicsRestrictions::GR_FRAMEBUFFER_SRGB_WORKAROUND2) &&
m_glsl == true)
{
GLint param = GL_SRGB;
glGetFramebufferAttachmentParameteriv(GL_DRAW_FRAMEBUFFER, GL_BACK_LEFT,
GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING, &param);
m_need_srgb_visual_workaround = (param != GL_SRGB);
if (m_need_srgb_visual_workaround)
{
hasSRGBFramebuffer = false;
}
}
#else
if (m_glsl == true)

View File

@ -490,8 +490,7 @@ void IrrDriver::initDevice()
// Though we are able to force to use the proper format on mesa side by
// setting WithAlphaChannel parameter.
#ifndef SERVER_ONLY
else if (CVS->isARBSRGBFramebufferUsable() &&
CVS->needsSRGBCapableVisualWorkaround())
else if (CVS->needsSRGBCapableVisualWorkaround())
{
Log::warn("irr_driver", "Created visual is not sRGB-capable. "
"Re-creating device to workaround the issue.");