diff options
author | Bryan Cain <[email protected]> | 2013-02-15 10:05:36 -0600 |
---|---|---|
committer | Zack Rusin <[email protected]> | 2013-03-05 20:13:08 -0800 |
commit | 30f246bf2c492b7809c0a556c89a9feb13c4c13e (patch) | |
tree | f7582478cadaa23a36ea35ca8b5e6b5acff43d69 /src/gallium/auxiliary/draw/draw_gs.h | |
parent | cf0b4a30fc536f3744bce209d4b356fe82f2e6a3 (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.h | 2 |
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 ); |