From: Brian Date: Wed, 10 Oct 2007 21:09:57 +0000 (-0600) Subject: fix softpipe_clear() to handle ps->offset!=0 (such as when rendering to texture and... X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=9f8cfa75ca0882a8015a714887b41f8a7a10fd19;p=mesa.git fix softpipe_clear() to handle ps->offset!=0 (such as when rendering to texture and level!=0) --- diff --git a/src/mesa/pipe/softpipe/sp_clear.c b/src/mesa/pipe/softpipe/sp_clear.c index 2d5344f424b..539da1d58b3 100644 --- a/src/mesa/pipe/softpipe/sp_clear.c +++ b/src/mesa/pipe/softpipe/sp_clear.c @@ -50,11 +50,17 @@ softpipe_clear(struct pipe_context *pipe, struct pipe_surface *ps, softpipe_update_derived(softpipe); /* not needed?? */ - x = 0; - y = 0; w = softpipe->framebuffer.cbufs[0]->width; h = softpipe->framebuffer.cbufs[0]->height; + /* Use the X coord to trick region_fill() into filling at an offset + * from the start of the region. Perhaps pipe_region should have the + * 'offset' field, not pipe_surface??? + */ + assert(ps->offset % ps->region->cpp == 0); + x = ps->offset / ps->region->cpp; + y = 0; + assert(w <= ps->region->pitch); assert(h <= ps->region->height);