drm/radeon: r300_cmdbuf: Always emit INDX_BUFFER immediately after DRAW_INDEX
authorNicolai Haehnle <nhaehnle@gmail.com>
Tue, 12 Aug 2008 23:49:15 +0000 (09:49 +1000)
committerDave Airlie <airlied@linux.ie>
Sun, 24 Aug 2008 20:35:05 +0000 (06:35 +1000)
commite2898c5fdd91f54c9c84fbf7d32edb8e4dfda574
treec9939a528d7e352dbf0360aec5c19a7b041bc658
parent54f961a628b737f66710eca0b0d95346645dd33e
drm/radeon: r300_cmdbuf: Always emit INDX_BUFFER immediately after DRAW_INDEX

DRAW_INDEX writes a vertex count to VAP_VF_CNTL. Docs say that behaviour
is undefined (i.e. lockups happen) when this write is not followed by the
right number of vertex indices.

Thus we used to do the wrong thing when drawing across many cliprects was
necessary, because we emitted a sequence
DRAW_INDEX, DRAW_INDEX, INDX_BUFFER, INDX_BUFFER
instead of
DRAW_INDEX, INDX_BUFFER, DRAW_INDEX, INDX_BUFFER
The latter is what we're doing now and which ought to be correct.

Signed-off-by: Dave Airlie <airlied@redhat.com>
drivers/gpu/drm/radeon/r300_cmdbuf.c