diff --git a/core/hw/pvr/Renderer_if.cpp b/core/hw/pvr/Renderer_if.cpp index 20c2d1309..8a8a8e808 100644 --- a/core/hw/pvr/Renderer_if.cpp +++ b/core/hw/pvr/Renderer_if.cpp @@ -98,8 +98,6 @@ bool fb_dirty; TA_context* _pvrrc; void SetREP(TA_context* cntx); -void killtex(); -bool render_output_framebuffer(); static void rend_create_renderer(); void dump_frame(const char* file, TA_context* ctx, u8* vram, u8* vram_ref = NULL) { @@ -394,7 +392,6 @@ void rend_init_renderer() void rend_term_renderer() { - killtex(); gui_term(); renderer->Term(); delete renderer; diff --git a/core/nullDC.cpp b/core/nullDC.cpp index ccf093489..dd34f4a48 100755 --- a/core/nullDC.cpp +++ b/core/nullDC.cpp @@ -357,6 +357,7 @@ int reicast_init(int argc, char* argv[]) void set_platform(int platform) { + _vmem_unprotect_vram(0, VRAM_SIZE); switch (platform) { case DC_PLATFORM_DREAMCAST: diff --git a/core/rend/TexCache.cpp b/core/rend/TexCache.cpp index fba0ce9b4..41fe8dfff 100644 --- a/core/rend/TexCache.cpp +++ b/core/rend/TexCache.cpp @@ -274,17 +274,11 @@ void libCore_vramlock_Unlock_block(vram_block* block) void libCore_vramlock_Unlock_block_wb(vram_block* block) { - //VRAM_SIZE/PAGE_SIZE; - if (block->end>VRAM_SIZE) - WARN_LOG(PVR, "Error : block end is after vram , skipping unlock"); - else - { - if (mmu_enabled()) - vmem32_unprotect_vram(block->start, block->len); - vramlock_list_remove(block); - //more work needed - free(block); - } + if (mmu_enabled()) + vmem32_unprotect_vram(block->start, block->len); + vramlock_list_remove(block); + //more work needed + free(block); } // diff --git a/core/rend/gl4/gles.cpp b/core/rend/gl4/gles.cpp index e1f140a76..5d040cebd 100644 --- a/core/rend/gl4/gles.cpp +++ b/core/rend/gl4/gles.cpp @@ -971,8 +971,6 @@ static bool RenderFrame() eglCheck(); - KillTex=false; - if (is_rtt) ReadRTTBuffer(); else if (settings.rend.ScreenScaling != 100 || gl.swap_buffer_not_preserved) @@ -1015,8 +1013,7 @@ struct gl4rend : Renderer glcache.DeleteTextures(1, &depthSaveTexId); depthSaveTexId = 0; } - if (KillTex) - killtex(); + killtex(); CollectCleanup(); diff --git a/core/rend/gles/gles.cpp b/core/rend/gles/gles.cpp index e5e9798bf..0582f1007 100644 --- a/core/rend/gles/gles.cpp +++ b/core/rend/gles/gles.cpp @@ -2040,8 +2040,6 @@ bool RenderFrame() eglCheck(); - KillTex=false; - if (is_rtt) ReadRTTBuffer(); else if (settings.rend.ScreenScaling != 100 || gl.swap_buffer_not_preserved) @@ -2062,8 +2060,7 @@ struct glesrend : Renderer void Resize(int w, int h) { screen_width=w; screen_height=h; } void Term() { - if (KillTex) - killtex(); + killtex(); gles_term(); } diff --git a/core/rend/gles/gltex.cpp b/core/rend/gles/gltex.cpp index 8f6507830..22d6f1451 100644 --- a/core/rend/gles/gltex.cpp +++ b/core/rend/gles/gltex.cpp @@ -848,6 +848,7 @@ void killtex() } TexCache.clear(); + KillTex = false; INFO_LOG(RENDERER, "Texture cache cleared"); }