sna/gen3+: Assert that nbox is not 0

Various assertions to track down a potential programming error.

References: https://bugs.launchpad.net/ubuntu/+source/xserver-xorg-video-intel/+bug/1124576
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
This commit is contained in:
Chris Wilson 2013-02-25 15:18:46 +00:00
parent 6f9646f5be
commit b12f0da0be
5 changed files with 20 additions and 0 deletions

View File

@ -1977,6 +1977,7 @@ inline static int gen3_get_rectangles(struct sna *sna,
DBG(("%s: want=%d, rem=%d\n",
__FUNCTION__, want*op->floats_per_rect, vertex_space(sna)));
assert(want);
assert(sna->render.vertex_index * op->floats_per_vertex == sna->render.vertex_used);
start:
@ -1993,6 +1994,8 @@ start:
!gen3_rectangle_begin(sna, op)))
goto flush;
assert(op->floats_per_rect >= vertex_space(sna));
assert(rem <= vertex_space(sna));
if (want > 1 && want * op->floats_per_rect > rem)
want = rem / op->floats_per_rect;
sna->render.vertex_index += 3*want;

View File

@ -642,6 +642,8 @@ inline static int gen4_get_rectangles(struct sna *sna,
{
int rem;
assert(want);
start:
rem = vertex_space(sna);
if (unlikely(rem < op->floats_per_rect)) {
@ -656,6 +658,8 @@ start:
!gen4_rectangle_begin(sna, op)))
goto flush;
assert(op->floats_per_rect >= vertex_space(sna));
assert(rem <= vertex_space(sna));
if (want > 1 && want * op->floats_per_rect > rem)
want = rem / op->floats_per_rect;
@ -2034,6 +2038,7 @@ gen4_render_composite_spans_boxes__thread(struct sna *sna,
__FUNCTION__, nbox,
op->base.src.offset[0], op->base.src.offset[1],
op->base.dst.x, op->base.dst.y));
assert(nbox);
sna_vertex_lock(&sna->render);
do {

View File

@ -628,6 +628,8 @@ inline static int gen5_get_rectangles(struct sna *sna,
{
int rem;
assert(want);
start:
rem = vertex_space(sna);
if (unlikely(rem < op->floats_per_rect)) {
@ -642,6 +644,8 @@ start:
!gen5_rectangle_begin(sna, op)))
goto flush;
assert(op->floats_per_rect >= vertex_space(sna));
assert(rem <= vertex_space(sna));
if (want > 1 && want * op->floats_per_rect > rem)
want = rem / op->floats_per_rect;

View File

@ -1177,6 +1177,8 @@ inline static int gen6_get_rectangles(struct sna *sna,
{
int rem;
assert(want);
start:
rem = vertex_space(sna);
if (unlikely(rem < op->floats_per_rect)) {
@ -1191,6 +1193,8 @@ start:
!gen6_rectangle_begin(sna, op)))
goto flush;
assert(op->floats_per_rect >= vertex_space(sna));
assert(rem <= vertex_space(sna));
if (want > 1 && want * op->floats_per_rect > rem)
want = rem / op->floats_per_rect;

View File

@ -1322,6 +1322,8 @@ inline static int gen7_get_rectangles(struct sna *sna,
{
int rem;
assert(want);
start:
rem = vertex_space(sna);
if (unlikely(rem < op->floats_per_rect)) {
@ -1336,6 +1338,8 @@ start:
!gen7_rectangle_begin(sna, op)))
goto flush;
assert(op->floats_per_rect >= vertex_space(sna));
assert(rem <= vertex_space(sna));
if (want > 1 && want * op->floats_per_rect > rem)
want = rem / op->floats_per_rect;