diff --git a/Source/Core/VideoCommon/PostProcessing.cpp b/Source/Core/VideoCommon/PostProcessing.cpp index 69e4327bdd..0a1e995c15 100644 --- a/Source/Core/VideoCommon/PostProcessing.cpp +++ b/Source/Core/VideoCommon/PostProcessing.cpp @@ -709,6 +709,9 @@ bool PostProcessing::CompilePixelShader() bool PostProcessing::CompilePipeline() { + if (m_framebuffer_format == AbstractTextureFormat::Undefined) + return true; // Not needed (some backends don't like making pipelines with no targets) + AbstractPipelineConfig config = {}; config.vertex_shader = m_vertex_shader.get(); config.geometry_shader = diff --git a/Source/Core/VideoCommon/RenderBase.cpp b/Source/Core/VideoCommon/RenderBase.cpp index b4a40195c7..209fa8293a 100644 --- a/Source/Core/VideoCommon/RenderBase.cpp +++ b/Source/Core/VideoCommon/RenderBase.cpp @@ -1068,6 +1068,13 @@ bool Renderer::InitializeImGui() bool Renderer::RecompileImGuiPipeline() { + if (m_backbuffer_format == AbstractTextureFormat::Undefined) + { + // No backbuffer (nogui) means no imgui rendering will happen + // Some backends don't like making pipelines with no render targets + return true; + } + std::unique_ptr vertex_shader = CreateShaderFromSource(ShaderStage::Vertex, FramebufferShaderGen::GenerateImGuiVertexShader(), "ImGui vertex shader");