mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-05 05:18:08 +02:00
i965/gs: Add a data structure for tracking VS output VUE map.
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com> Reviewed-by: Kenneth Graunke <kenneth@whitecape.org> Reviewed-by: Matt Turner <mattst88@gmail.com>
This commit is contained in:
parent
06918f84c2
commit
60ddb96f7e
2 changed files with 16 additions and 1 deletions
|
|
@ -150,6 +150,7 @@ enum brw_state_id {
|
|||
BRW_STATE_VS_CONSTBUF,
|
||||
BRW_STATE_PROGRAM_CACHE,
|
||||
BRW_STATE_STATE_BASE_ADDRESS,
|
||||
BRW_STATE_VUE_MAP_VS,
|
||||
BRW_STATE_VUE_MAP_GEOM_OUT,
|
||||
BRW_STATE_TRANSFORM_FEEDBACK,
|
||||
BRW_STATE_RASTERIZER_DISCARD,
|
||||
|
|
@ -185,6 +186,7 @@ enum brw_state_id {
|
|||
#define BRW_NEW_VS_CONSTBUF (1 << BRW_STATE_VS_CONSTBUF)
|
||||
#define BRW_NEW_PROGRAM_CACHE (1 << BRW_STATE_PROGRAM_CACHE)
|
||||
#define BRW_NEW_STATE_BASE_ADDRESS (1 << BRW_STATE_STATE_BASE_ADDRESS)
|
||||
#define BRW_NEW_VUE_MAP_VS (1 << BRW_STATE_VUE_MAP_VS)
|
||||
#define BRW_NEW_VUE_MAP_GEOM_OUT (1 << BRW_STATE_VUE_MAP_GEOM_OUT)
|
||||
#define BRW_NEW_TRANSFORM_FEEDBACK (1 << BRW_STATE_TRANSFORM_FEEDBACK)
|
||||
#define BRW_NEW_RASTERIZER_DISCARD (1 << BRW_STATE_RASTERIZER_DISCARD)
|
||||
|
|
@ -1102,6 +1104,13 @@ struct brw_context
|
|||
GLuint last_bufsz;
|
||||
} curbe;
|
||||
|
||||
/**
|
||||
* Layout of vertex data exiting the vertex shader.
|
||||
*
|
||||
* BRW_NEW_VUE_MAP_VS is flagged when this VUE map changes.
|
||||
*/
|
||||
struct brw_vue_map vue_map_vs;
|
||||
|
||||
/**
|
||||
* Layout of vertex data exiting the geometry portion of the pipleine.
|
||||
* This comes from the geometry shader if one exists, otherwise from the
|
||||
|
|
|
|||
|
|
@ -484,7 +484,13 @@ static void brw_upload_vs_prog(struct brw_context *brw)
|
|||
}
|
||||
if (memcmp(&brw->vs.prog_data->base.vue_map, &brw->vue_map_geom_out,
|
||||
sizeof(brw->vue_map_geom_out)) != 0) {
|
||||
brw->vue_map_geom_out = brw->vs.prog_data->base.vue_map;
|
||||
brw->vue_map_vs = brw->vs.prog_data->base.vue_map;
|
||||
brw->state.dirty.brw |= BRW_NEW_VUE_MAP_VS;
|
||||
|
||||
/* No geometry shader support yet, so the VS VUE map is the VUE map for
|
||||
* the output of the "geometry" portion of the pipeline.
|
||||
*/
|
||||
brw->vue_map_geom_out = brw->vue_map_vs;
|
||||
brw->state.dirty.brw |= BRW_NEW_VUE_MAP_GEOM_OUT;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue