mirror of https://github.com/xemu-project/xemu.git
nv2a/vk: Use unsigned types for clear scissor calculation for now
This commit is contained in:
parent
f834b85bb7
commit
4a09eeb121
|
@ -1698,10 +1698,10 @@ void pgraph_vk_clear_surface(NV2AState *d, uint32_t parameter)
|
|||
uint32_t clearrectx = pgraph_reg_r(pg, NV_PGRAPH_CLEARRECTX);
|
||||
uint32_t clearrecty = pgraph_reg_r(pg, NV_PGRAPH_CLEARRECTY);
|
||||
|
||||
int xmin = GET_MASK(clearrectx, NV_PGRAPH_CLEARRECTX_XMIN);
|
||||
int xmax = GET_MASK(clearrectx, NV_PGRAPH_CLEARRECTX_XMAX);
|
||||
int ymin = GET_MASK(clearrecty, NV_PGRAPH_CLEARRECTY_YMIN);
|
||||
int ymax = GET_MASK(clearrecty, NV_PGRAPH_CLEARRECTY_YMAX);
|
||||
unsigned int xmin = GET_MASK(clearrectx, NV_PGRAPH_CLEARRECTX_XMIN);
|
||||
unsigned int xmax = GET_MASK(clearrectx, NV_PGRAPH_CLEARRECTX_XMAX);
|
||||
unsigned int ymin = GET_MASK(clearrecty, NV_PGRAPH_CLEARRECTY_YMIN);
|
||||
unsigned int ymax = GET_MASK(clearrecty, NV_PGRAPH_CLEARRECTY_YMAX);
|
||||
|
||||
NV2A_VK_DGROUP_BEGIN("CLEAR min=(%d,%d) max=(%d,%d)%s%s", xmin, ymin, xmax,
|
||||
ymax, write_color ? " color" : "",
|
||||
|
@ -1713,14 +1713,15 @@ void pgraph_vk_clear_surface(NV2AState *d, uint32_t parameter)
|
|||
binding->vram_addr);
|
||||
begin_draw(pg);
|
||||
|
||||
// FIXME: What does hardware do when min <= max?
|
||||
// FIXME: What does hardware do when min >= max?
|
||||
// FIXME: What does hardware do when min >= surface size?
|
||||
xmin = MIN(xmin, binding->width - 1);
|
||||
ymin = MIN(ymin, binding->height - 1);
|
||||
xmax = MIN(xmax, binding->width - 1);
|
||||
ymax = MIN(ymax, binding->height - 1);
|
||||
xmax = MAX(xmin, MIN(xmax, binding->width - 1));
|
||||
ymax = MAX(ymin, MIN(ymax, binding->height - 1));
|
||||
|
||||
int scissor_width = MAX(0, xmax - xmin + 1),
|
||||
scissor_height = MAX(0, ymax - ymin + 1);
|
||||
unsigned int scissor_width = MAX(0, xmax - xmin + 1);
|
||||
unsigned int scissor_height = MAX(0, ymax - ymin + 1);
|
||||
|
||||
pgraph_apply_anti_aliasing_factor(pg, &xmin, &ymin);
|
||||
pgraph_apply_anti_aliasing_factor(pg, &scissor_width, &scissor_height);
|
||||
|
|
Loading…
Reference in New Issue