summaryrefslogtreecommitdiff
path: root/src/gallium/auxiliary/draw/draw_pt_emit.c
diff options
context:
space:
mode:
authorJosé Fonseca <jfonseca@vmware.com>2010-04-26 14:55:16 +0100
committerJosé Fonseca <jfonseca@vmware.com>2010-04-26 16:05:06 +0100
commit2a30d3d74a0b87f8066659952628ccd072a4e2b0 (patch)
tree740c6ec4af1014ac0260f02cd5eeda8b2a9ffec1 /src/gallium/auxiliary/draw/draw_pt_emit.c
parentfc431a58dc1446383edc11aec2a0b7de5b363e5e (diff)
draw: Pass-through pipe_buffer::max_index to translate.
max_index must be observed to prevent crashes due to bad index data. I've been using this patch for some time without regressions. Some places, where we use internal vertex buffer, it is not entirely clear what max_index should be, so passing just ~0 to avoid regressions for now.
Diffstat (limited to 'src/gallium/auxiliary/draw/draw_pt_emit.c')
-rw-r--r--src/gallium/auxiliary/draw/draw_pt_emit.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/src/gallium/auxiliary/draw/draw_pt_emit.c b/src/gallium/auxiliary/draw/draw_pt_emit.c
index a7917f54b0..ad48fa39a4 100644
--- a/src/gallium/auxiliary/draw/draw_pt_emit.c
+++ b/src/gallium/auxiliary/draw/draw_pt_emit.c
@@ -171,12 +171,14 @@ void draw_pt_emit( struct pt_emit *emit,
translate->set_buffer(translate,
0,
vertex_data,
- stride );
+ stride,
+ ~0);
translate->set_buffer(translate,
1,
&draw->rasterizer->point_size,
- 0);
+ 0,
+ ~0);
translate->run( translate,
0,
@@ -232,11 +234,11 @@ void draw_pt_emit_linear(struct pt_emit *emit,
goto fail;
translate->set_buffer(translate, 0,
- vertex_data, stride);
+ vertex_data, stride, count - 1);
translate->set_buffer(translate, 1,
&draw->rasterizer->point_size,
- 0);
+ 0, ~0);
translate->run(translate,
0,