summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKenneth Graunke <[email protected]>2015-09-29 14:43:29 -0700
committerKenneth Graunke <[email protected]>2015-10-21 14:27:48 -0700
commit72d84ae7ceaed4e723376a18d09689be183e0155 (patch)
tree1dcadb203b79988a8f759e5f9c941da70384b43e
parentac98888afdc121e6eaafc9c5393647a2df4baef6 (diff)
i965: Introduce a brw_vue_prog_data::include_vue_handles flag.
Tessellation shaders and SIMD8 geometry shaders may need to resort to the pull model for inputs at times. When set, the state upload code will tell the hardware to provide URB handles for input data. Signed-off-by: Kenneth Graunke <[email protected]> Reviewed-by: Kristian Høgsberg <[email protected]>
-rw-r--r--src/mesa/drivers/dri/i965/brw_compiler.h3
-rw-r--r--src/mesa/drivers/dri/i965/gen8_gs_state.c2
2 files changed, 5 insertions, 0 deletions
diff --git a/src/mesa/drivers/dri/i965/brw_compiler.h b/src/mesa/drivers/dri/i965/brw_compiler.h
index 10e1fde73f6..6a9799e578e 100644
--- a/src/mesa/drivers/dri/i965/brw_compiler.h
+++ b/src/mesa/drivers/dri/i965/brw_compiler.h
@@ -485,6 +485,9 @@ struct brw_vue_prog_data {
struct brw_stage_prog_data base;
struct brw_vue_map vue_map;
+ /** Should the hardware deliver input VUE handles for URB pull loads? */
+ bool include_vue_handles;
+
GLuint urb_read_length;
GLuint total_grf;
diff --git a/src/mesa/drivers/dri/i965/gen8_gs_state.c b/src/mesa/drivers/dri/i965/gen8_gs_state.c
index d766ca7bebf..6738e85eaba 100644
--- a/src/mesa/drivers/dri/i965/gen8_gs_state.c
+++ b/src/mesa/drivers/dri/i965/gen8_gs_state.c
@@ -68,6 +68,8 @@ gen8_upload_gs_state(struct brw_context *brw)
GEN7_GS_OUTPUT_VERTEX_SIZE_SHIFT) |
(brw->gs.prog_data->output_topology <<
GEN7_GS_OUTPUT_TOPOLOGY_SHIFT) |
+ (prog_data->include_vue_handles ?
+ GEN7_GS_INCLUDE_VERTEX_HANDLES : 0) |
(prog_data->urb_read_length <<
GEN6_GS_URB_READ_LENGTH_SHIFT) |
(0 << GEN6_GS_URB_ENTRY_READ_OFFSET_SHIFT) |