Skip to content
Permalink
Browse files

VideoBackends: Verify validity before doing full renderer init

Prevents attempting to create invalid MSAA configurations, for example.
  • Loading branch information...
stenzek committed Mar 9, 2019
1 parent 1151a12 commit 2a4bca8b4ab4a698ae034a8ac8ffa3b10c660601
Showing with 5 additions and 3 deletions.
  1. +4 −3 Source/Core/VideoBackends/OGL/main.cpp
  2. +1 −0 Source/Core/VideoCommon/VideoBackendBase.cpp
@@ -135,6 +135,8 @@ bool VideoBackend::InitializeGLExtensions(GLContext* context)

bool VideoBackend::FillBackendInfo()
{
InitBackendInfo();

// check for the max vertex attributes
GLint numvertexattribs = 0;
glGetIntegerv(GL_MAX_VERTEX_ATTRIBS, &numvertexattribs);
@@ -162,17 +164,16 @@ bool VideoBackend::FillBackendInfo()

bool VideoBackend::Initialize(const WindowSystemInfo& wsi)
{
InitializeShared();

std::unique_ptr<GLContext> main_gl_context =
GLContext::Create(wsi, g_ActiveConfig.stereo_mode == StereoMode::QuadBuffer, true, false,
GLContext::Create(wsi, g_Config.stereo_mode == StereoMode::QuadBuffer, true, false,
Config::Get(Config::GFX_PREFER_GLES));
if (!main_gl_context)
return false;

if (!InitializeGLExtensions(main_gl_context.get()) || !FillBackendInfo())
return false;

InitializeShared();
g_renderer = std::make_unique<Renderer>(std::move(main_gl_context), wsi.render_surface_scale);
ProgramShaderCache::Init();
g_vertex_manager = std::make_unique<VertexManager>();
@@ -294,6 +294,7 @@ void VideoBackendBase::InitializeShared()
GeometryShaderManager::Init();
PixelShaderManager::Init();

g_Config.VerifyValidity();
UpdateActiveConfig();
}

0 comments on commit 2a4bca8

Please sign in to comment.
You can’t perform that action at this time.