From 237e7989b45b8e4346b31adafe05eee8ea1a7203 Mon Sep 17 00:00:00 2001 From: Nekotekina Date: Fri, 20 Jun 2014 00:34:09 +0400 Subject: [PATCH] Tried to avoid glDeleteShader crash --- rpcs3/Emu/GS/GL/GLFragmentProgram.cpp | 9 ++++++++- rpcs3/Emu/GS/GL/GLVertexProgram.cpp | 9 ++++++++- 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/rpcs3/Emu/GS/GL/GLFragmentProgram.cpp b/rpcs3/Emu/GS/GL/GLFragmentProgram.cpp index a0813bf35e..8da1d20a63 100644 --- a/rpcs3/Emu/GS/GL/GLFragmentProgram.cpp +++ b/rpcs3/Emu/GS/GL/GLFragmentProgram.cpp @@ -536,7 +536,14 @@ void GLShaderProgram::Delete() if (m_id) { - glDeleteShader(m_id); + if (Emu.IsStopped()) + { + ConLog.Warning("GLShaderProgram::Delete(): glDeleteShader(%d) avoided", m_id); + } + else + { + glDeleteShader(m_id); + } m_id = 0; } } diff --git a/rpcs3/Emu/GS/GL/GLVertexProgram.cpp b/rpcs3/Emu/GS/GL/GLVertexProgram.cpp index 8dbc57081a..4ff7af13c8 100644 --- a/rpcs3/Emu/GS/GL/GLVertexProgram.cpp +++ b/rpcs3/Emu/GS/GL/GLVertexProgram.cpp @@ -665,7 +665,14 @@ void GLVertexProgram::Delete() if(id) { - glDeleteShader(id); + if (Emu.IsStopped()) + { + ConLog.Warning("GLVertexProgram::Delete(): glDeleteShader(%d) avoided", id); + } + else + { + glDeleteShader(id); + } id = 0; } }