summaryrefslogtreecommitdiffstats
path: root/src/gallium/auxiliary/draw/draw_pt_emit.c
diff options
context:
space:
mode:
authorKeith Whitwell <keith@tungstengraphics.com>2008-04-17 23:44:32 +0100
committerKeith Whitwell <keith@tungstengraphics.com>2008-04-18 10:48:54 +0100
commita773f06e969a3992451dd7fe6fd55ea96b2774fa (patch)
tree7b8f2ef0bf53da7312c8a89774a5159a87c90e76 /src/gallium/auxiliary/draw/draw_pt_emit.c
parent01b6354e72a84f8c3c22be1f77eab8d9c05920a3 (diff)
downloadexternal_mesa3d-a773f06e969a3992451dd7fe6fd55ea96b2774fa.zip
external_mesa3d-a773f06e969a3992451dd7fe6fd55ea96b2774fa.tar.gz
external_mesa3d-a773f06e969a3992451dd7fe6fd55ea96b2774fa.tar.bz2
draw: split off all the extra functionality in the vertex shader
This will at least allow us to make the initial gains to get decent vertex performance much more quickly & with higher confidence of getting it right. At some later point can look again at code-generating all the fetch/cliptest/viewport extras in the same block as the vertex shader. For now, just need to get some decent baseline performance.
Diffstat (limited to 'src/gallium/auxiliary/draw/draw_pt_emit.c')
-rw-r--r--src/gallium/auxiliary/draw/draw_pt_emit.c16
1 files changed, 5 insertions, 11 deletions
diff --git a/src/gallium/auxiliary/draw/draw_pt_emit.c b/src/gallium/auxiliary/draw/draw_pt_emit.c
index e9ed294..ef9db70 100644
--- a/src/gallium/auxiliary/draw/draw_pt_emit.c
+++ b/src/gallium/auxiliary/draw/draw_pt_emit.c
@@ -38,16 +38,11 @@ struct pt_emit {
struct draw_context *draw;
struct translate *translate;
-
- unsigned pipeline_vertex_size;
- unsigned prim;
- unsigned opt;
};
void draw_pt_emit_prepare( struct pt_emit *emit,
- unsigned prim,
- unsigned opt )
+ unsigned prim )
{
struct draw_context *draw = emit->draw;
const struct vertex_info *vinfo;
@@ -75,8 +70,7 @@ void draw_pt_emit_prepare( struct pt_emit *emit,
unsigned emit_sz = 0;
unsigned src_buffer = 0;
unsigned output_format;
- unsigned src_offset = (sizeof(struct vertex_header) +
- vinfo->src_index[i] * 4 * sizeof(float) );
+ unsigned src_offset = (vinfo->src_index[i] * 4 * sizeof(float) );
@@ -139,9 +133,9 @@ void draw_pt_emit_prepare( struct pt_emit *emit,
void draw_pt_emit( struct pt_emit *emit,
- char *verts,
- unsigned stride,
+ const float (*vertex_data)[4],
unsigned vertex_count,
+ unsigned stride,
const ushort *elts,
unsigned count )
{
@@ -164,7 +158,7 @@ void draw_pt_emit( struct pt_emit *emit,
translate->set_buffer(translate,
0,
- verts,
+ vertex_data,
stride );
translate->set_buffer(translate,