llvmpipe: correct binning maths for iterating over whole tiles

This commit is contained in:
Keith Whitwell 2009-10-09 16:05:26 +01:00
parent 8599969582
commit 82ec7f018d
2 changed files with 12 additions and 7 deletions

View file

@ -192,6 +192,7 @@ void lp_rast_load_zstencil( struct lp_rasterizer *rast,
void lp_rast_shade_tile( struct lp_rasterizer *rast,
const union lp_rast_cmd_arg arg )
{
#if 0
const struct lp_rast_shader_inputs *inputs = arg.shade_tile;
const unsigned masks[4] = {~0, ~0, ~0, ~0};
unsigned x, y;
@ -203,6 +204,10 @@ void lp_rast_shade_tile( struct lp_rasterizer *rast,
for (y = 0; y < TILE_SIZE; y += 2)
for (x = 0; x < TILE_SIZE; x += 8)
lp_rast_shade_quads( rast, inputs, x, y, masks);
#else
RAST_DEBUG("%s\n", __FUNCTION__);
memset(rast->tile.color, 0x80, TILE_SIZE * TILE_SIZE * 4);
#endif
}

View file

@ -357,13 +357,13 @@ do_triangle_ccw(struct setup_context *setup,
c2 = tri->c2 + tri->dx23 * miny - tri->dy23 * minx;
c3 = tri->c3 + tri->dx31 * miny - tri->dy31 * minx;
minx /= TILESIZE;
miny /= TILESIZE;
maxx /= TILESIZE;
maxy /= TILESIZE;
/* Convert to tile coordinates:
*/
minx /= TILESIZE;
maxx /= TILESIZE;
miny /= TILESIZE;
maxy /= TILESIZE;
if (miny == maxy && minx == maxx)
{
/* Triangle is contained in a single tile:
@ -399,13 +399,13 @@ do_triangle_ccw(struct setup_context *setup,
* Trivially accept or reject blocks, else jump to per-pixel
* examination above.
*/
for (y = miny; y < maxy; y++)
for (y = miny; y <= maxy; y++)
{
float cx1 = c1;
float cx2 = c2;
float cx3 = c3;
for (x = minx; x < maxx; x++)
for (x = minx; x <= maxx; x++)
{
if (cx1 + eo1 < 0 ||
cx2 + eo2 < 0 ||