From b5008f3b562404811a81a755c6d06b47f47e545f Mon Sep 17 00:00:00 2001 From: cinap_lenrek Date: Sat, 3 Jan 2015 18:33:35 +0100 Subject: devvga: disable hardware blanking when switching drivers, check softscreen we have to reset hwblank when switching drivers to prevent the generic vgablank() to be called by blankscreen(). remove code setting hwblank from vga drivers as devvga will always force hwblank to be 1 or 0 depending on if the driver provides a native blanking routine. set hwaccel to 1 when the driver provides native fill and scroll routines independent of softscreen being disabled. this allows hw acceleration to be used when softscreen gets switched off. --- sys/src/9/pc/devvga.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'sys/src/9/pc/devvga.c') diff --git a/sys/src/9/pc/devvga.c b/sys/src/9/pc/devvga.c index 5120f5946..151b52346 100644 --- a/sys/src/9/pc/devvga.c +++ b/sys/src/9/pc/devvga.c @@ -314,6 +314,8 @@ vgactl(Cmdbuf *cb) scr->fill = nil; scr->scroll = nil; scr->blank = nil; + hwblank = 0; + hwaccel = 0; qunlock(&drawlock); if(scr->dev->disable) scr->dev->disable(scr); @@ -410,7 +412,7 @@ vgactl(Cmdbuf *cb) if(scr->dev && scr->dev->drawinit) scr->dev->drawinit(scr); hwblank = scr->blank != nil; - hwaccel = !scr->softscreen && (scr->scroll || scr->fill); + hwaccel = scr->fill != nil || scr->scroll != nil; vgascreenwin(scr); resetscreenimage(); cursoron(); -- cgit v1.2.3