summaryrefslogtreecommitdiff
path: root/sys/src/9/pc/screen.c
diff options
context:
space:
mode:
authorcinap_lenrek <cinap_lenrek@felloff.net>2015-01-03 18:33:35 +0100
committercinap_lenrek <cinap_lenrek@felloff.net>2015-01-03 18:33:35 +0100
commitb5008f3b562404811a81a755c6d06b47f47e545f (patch)
tree4b26c81f1920a244dfd4145530d22931789241fa /sys/src/9/pc/screen.c
parentce2e8e56873cae9889ce8eadd056a62ae0636d63 (diff)
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.
Diffstat (limited to 'sys/src/9/pc/screen.c')
-rw-r--r--sys/src/9/pc/screen.c11
1 files changed, 3 insertions, 8 deletions
diff --git a/sys/src/9/pc/screen.c b/sys/src/9/pc/screen.c
index 494c6e908..d5cab912a 100644
--- a/sys/src/9/pc/screen.c
+++ b/sys/src/9/pc/screen.c
@@ -393,8 +393,8 @@ setcursor(Cursor* curs)
scr->cur->load(scr, curs);
}
-int hwaccel = 1;
-int hwblank = 0; /* turned on by drivers that are known good */
+int hwaccel = 0;
+int hwblank = 0;
int panning = 0;
int
@@ -423,12 +423,10 @@ hwdraw(Memdrawparam *par)
if(mask && mask->data->bdata == scrd->bdata)
swcursoravoid(par->mr);
}
- if(hwaccel == 0)
+ if(!hwaccel || scr->softscreen)
return 0;
if(dst->data->bdata != scrd->bdata || src == nil || mask == nil)
return 0;
- if(scr->fill==nil && scr->scroll==nil)
- return 0;
/*
* If we have an opaque mask and source is one opaque
@@ -670,9 +668,6 @@ bootscreeninit(void)
scr->useflush = 0;
scr->dev = nil;
- hwblank = 0;
- hwaccel = 0;
-
physgscreenr = gscreen->r;
vgaimageinit(chan);