Add comment trying to clarify shutdown of GPU_GLES, restore the wipe, minor tweaks. Should help #10652

This reverts commit 10be0cad96.
This commit is contained in:
Henrik Rydgård 2018-02-27 20:40:44 +01:00
parent adc9beefc6
commit f5dd9c17cd
3 changed files with 9 additions and 4 deletions

View File

@ -701,7 +701,7 @@ void DrawEngineCommon::SubmitPrim(void *verts, void *inds, GEPrimitiveType prim,
dhash = __rotl(dhash ^ (u32)(uintptr_t)inds, 13);
dhash = __rotl(dhash ^ (u32)vertType, 13);
dhash = __rotl(dhash ^ (u32)vertexCount, 13);
dcid_ = dhash ^ (u32)prim;;
dcid_ = dhash ^ (u32)prim;
}
if (inds) {

View File

@ -120,6 +120,12 @@ GPU_GLES::GPU_GLES(GraphicsContext *gfxCtx, Draw::DrawContext *draw)
}
GPU_GLES::~GPU_GLES() {
GLRenderManager *render = (GLRenderManager *)draw_->GetNativeObject(Draw::NativeObject::RENDER_MANAGER);
render->Wipe();
// If we're here during app shutdown (exiting the Windows app in-game, for example)
// everything should already be cleared since DeviceLost has been run.
framebufferManagerGL_->DestroyAllFBOs();
shaderManagerGL_->ClearCache(true);
depalShaderCache_.Clear();

View File

@ -231,7 +231,7 @@ GLuint ShaderStageToOpenGL(ShaderStage stage) {
class OpenGLShaderModule : public ShaderModule {
public:
OpenGLShaderModule(GLRenderManager *render, ShaderStage stage) : render_(render), stage_(stage) {
ILOG("Shader module created (%p)", this);
DLOG("Shader module created (%p)", this);
glstage_ = ShaderStageToOpenGL(stage);
}
@ -297,7 +297,7 @@ public:
OpenGLPipeline(GLRenderManager *render) : render_(render) {
}
~OpenGLPipeline() {
ILOG("OpenGLPipeline released");
DLOG("OpenGLPipeline released");
for (auto &iter : shaders) {
iter->Release();
}
@ -633,7 +633,6 @@ OpenGLTexture::OpenGLTexture(GLRenderManager *render, const TextureDesc &desc) :
bool genMips = false;
if ((int)desc.initData.size() < desc.mipLevels && desc.generateMips) {
ILOG("Generating mipmaps");
// Assumes the texture is bound for editing
genMips = true;
generatedMips_ = true;