summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKenneth Graunke <[email protected]>2013-06-08 09:57:54 -0700
committerKenneth Graunke <[email protected]>2013-06-10 10:58:46 -0700
commit6c966ccf07bcaf64fba1a9b699440c30dc96e732 (patch)
tree672eccbcce981fb065047940f8621697d39d803c
parentb607d57630daa7d92a84c41abfd45cacbe63f3d2 (diff)
i965: Disable unused pipeline stages once at startup on Gen7+.
This removes a tiny bit of code from our drawing loop. Reviewed-by: Eric Anholt <[email protected]> Signed-off-by: Kenneth Graunke <[email protected]>
-rw-r--r--src/mesa/drivers/dri/i965/brw_state.h4
-rw-r--r--src/mesa/drivers/dri/i965/brw_state_upload.c5
-rw-r--r--src/mesa/drivers/dri/i965/gen7_disable.c13
3 files changed, 9 insertions, 13 deletions
diff --git a/src/mesa/drivers/dri/i965/brw_state.h b/src/mesa/drivers/dri/i965/brw_state.h
index 7215128c49a..62d5efca126 100644
--- a/src/mesa/drivers/dri/i965/brw_state.h
+++ b/src/mesa/drivers/dri/i965/brw_state.h
@@ -111,7 +111,6 @@ extern const struct brw_tracked_state gen7_cc_state_pointer;
extern const struct brw_tracked_state gen7_cc_viewport_state_pointer;
extern const struct brw_tracked_state gen7_clip_state;
extern const struct brw_tracked_state gen7_depth_stencil_state_pointer;
-extern const struct brw_tracked_state gen7_disable_stages;
extern const struct brw_tracked_state gen7_ps_state;
extern const struct brw_tracked_state gen7_push_constant_alloc;
extern const struct brw_tracked_state gen7_samplers;
@@ -215,6 +214,9 @@ uint32_t
get_attr_override(const struct brw_vue_map *vue_map, int urb_entry_read_offset,
int fs_attr, bool two_side_color, uint32_t *max_source_attr);
+/* gen7_disable.c */
+void gen7_disable_unused_stages(struct brw_context *brw);
+
#ifdef __cplusplus
}
#endif
diff --git a/src/mesa/drivers/dri/i965/brw_state_upload.c b/src/mesa/drivers/dri/i965/brw_state_upload.c
index 6a69a677dde..fa9b5af2e6b 100644
--- a/src/mesa/drivers/dri/i965/brw_state_upload.c
+++ b/src/mesa/drivers/dri/i965/brw_state_upload.c
@@ -211,7 +211,6 @@ static const struct brw_tracked_state *gen7_atoms[] =
&gen7_samplers,
&gen6_multisample_state,
- &gen7_disable_stages,
&gen7_vs_state,
&gen7_sol_state,
&gen7_clip_state,
@@ -252,6 +251,10 @@ brw_upload_initial_gpu_state(struct brw_context *brw)
return;
brw_upload_invariant_state(brw);
+
+ if (intel->gen >= 7) {
+ gen7_disable_unused_stages(brw);
+ }
}
void brw_init_state( struct brw_context *brw )
diff --git a/src/mesa/drivers/dri/i965/gen7_disable.c b/src/mesa/drivers/dri/i965/gen7_disable.c
index aaf88a8bba8..c152d0accaa 100644
--- a/src/mesa/drivers/dri/i965/gen7_disable.c
+++ b/src/mesa/drivers/dri/i965/gen7_disable.c
@@ -26,8 +26,8 @@
#include "brw_defines.h"
#include "intel_batchbuffer.h"
-static void
-disable_stages(struct brw_context *brw)
+void
+gen7_disable_unused_stages(struct brw_context *brw)
{
struct intel_context *intel = &brw->intel;
@@ -123,12 +123,3 @@ disable_stages(struct brw_context *brw)
OUT_BATCH(0);
ADVANCE_BATCH();
}
-
-const struct brw_tracked_state gen7_disable_stages = {
- .dirty = {
- .mesa = 0,
- .brw = BRW_NEW_CONTEXT,
- .cache = 0,
- },
- .emit = disable_stages,
-};