diff --git a/Source/Core/Common/Src/OpenCL.cpp b/Source/Core/Common/Src/OpenCL.cpp index 2d7b684074..f196fb5ed4 100644 --- a/Source/Core/Common/Src/OpenCL.cpp +++ b/Source/Core/Common/Src/OpenCL.cpp @@ -188,13 +188,16 @@ cl_kernel CompileKernel(cl_program program, const char *Function) void Destroy() { #if defined(HAVE_OPENCL) && HAVE_OPENCL - if(!g_context) - return; - clReleaseCommandQueue(g_cmdq); - clReleaseContext(g_context); - g_context = NULL; - g_cmdq = NULL; - + if (g_cmdq) + { + clReleaseCommandQueue(g_cmdq); + g_cmdq = NULL; + } + if (g_context) + { + clReleaseContext(g_context); + g_context = NULL; + } g_bInitialized = false; #endif } diff --git a/Source/Core/VideoCommon/Src/OpenCL/OCLTextureDecoder.cpp b/Source/Core/VideoCommon/Src/OpenCL/OCLTextureDecoder.cpp index 3a93a27ea6..38ee283433 100644 --- a/Source/Core/VideoCommon/Src/OpenCL/OCLTextureDecoder.cpp +++ b/Source/Core/VideoCommon/Src/OpenCL/OCLTextureDecoder.cpp @@ -127,8 +127,8 @@ void TexDecoder_OpenCL_Initialize() void TexDecoder_OpenCL_Shutdown() { #if defined(HAVE_OPENCL) && HAVE_OPENCL && !defined(DEBUG_OPENCL) - - clReleaseProgram(g_program); + if (g_program) + clReleaseProgram(g_program); for (int i = 0; i < GX_TF_CMPR; ++i) { if (g_DecodeParametersNative[i].kernel)