Unprotect VRAM before switching system. Fix texture cache clean
This commit is contained in:
parent
591ebf0ba6
commit
a9dbbccf93
|
@ -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;
|
||||
|
|
|
@ -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:
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
||||
//
|
||||
|
|
|
@ -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();
|
||||
|
||||
|
|
|
@ -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();
|
||||
}
|
||||
|
||||
|
|
|
@ -848,6 +848,7 @@ void killtex()
|
|||
}
|
||||
|
||||
TexCache.clear();
|
||||
KillTex = false;
|
||||
INFO_LOG(RENDERER, "Texture cache cleared");
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue