summaryrefslogtreecommitdiffstats
path: root/src/gallium/auxiliary/draw/draw_gs.h
diff options
context:
space:
mode:
authorBryan Cain <[email protected]>2013-02-15 10:05:36 -0600
committerZack Rusin <[email protected]>2013-03-05 20:13:08 -0800
commit30f246bf2c492b7809c0a556c89a9feb13c4c13e (patch)
treef7582478cadaa23a36ea35ca8b5e6b5acff43d69 /src/gallium/auxiliary/draw/draw_gs.h
parentcf0b4a30fc536f3744bce209d4b356fe82f2e6a3 (diff)
draw: account for separate shader objects in geometry shader code
The geometry shader code seems to have been originally written with the assumptions that there are the same number of VS outputs as GS outputs and that VS outputs are in the same order as their corresponding GS inputs. Since TGSI uses separate shader objects, these are both wrong assumptions. This was causing several valid vertex/geometry shader combinations to either render incorrectly or trigger an assertion. Conflicts: src/gallium/auxiliary/draw/draw_gs.c Reviewed-by: Zack Rusin <[email protected]> Reviewed-by: Brian Paul <[email protected]> Reviewed-by: José Fonseca <[email protected]>
Diffstat (limited to 'src/gallium/auxiliary/draw/draw_gs.h')
-rw-r--r--src/gallium/auxiliary/draw/draw_gs.h2
1 files changed, 2 insertions, 0 deletions
diff --git a/src/gallium/auxiliary/draw/draw_gs.h b/src/gallium/auxiliary/draw/draw_gs.h
index bfac02c6635..5d10d0dcd41 100644
--- a/src/gallium/auxiliary/draw/draw_gs.h
+++ b/src/gallium/auxiliary/draw/draw_gs.h
@@ -64,6 +64,7 @@ struct draw_geometry_shader {
unsigned in_prim_idx;
unsigned input_vertex_stride;
const float (*input)[4];
+ const struct tgsi_shader_info *input_info;
};
/*
@@ -76,6 +77,7 @@ int draw_geometry_shader_run(struct draw_geometry_shader *shader,
const unsigned constants_size[PIPE_MAX_CONSTANT_BUFFERS],
const struct draw_vertex_info *input_verts,
const struct draw_prim_info *input_prim,
+ const struct tgsi_shader_info *input_info,
struct draw_vertex_info *output_verts,
struct draw_prim_info *output_prims );