Increase size of Voodoo dirty_line array to 2048 lines, and add some

bounds checking before accessing. Fixes crash running 3DMark 2001 on
Voodoo 3.
This commit is contained in:
SarahW 2020-11-17 08:32:12 +00:00
commit 8cfb60608e
6 changed files with 13 additions and 10 deletions

View file

@ -195,7 +195,7 @@ void voodoo_fb_writew(uint32_t addr, uint16_t val, void *p)
}
if (voodoo->fb_write_offset == voodoo->params.front_offset)
if (voodoo->fb_write_offset == voodoo->params.front_offset && y < 2048)
voodoo->dirty_line[y] = 1;
if (voodoo->col_tiled)
@ -355,7 +355,7 @@ void voodoo_fb_writel(uint32_t addr, uint32_t val, void *p)
y >>= 1;
}
if (voodoo->fb_write_offset == voodoo->params.front_offset)
if (voodoo->fb_write_offset == voodoo->params.front_offset && y < 2048)
voodoo->dirty_line[y] = 1;
if (voodoo->col_tiled)