summaryrefslogtreecommitdiffstats
path: root/src/mesa
diff options
context:
space:
mode:
authorKenneth Graunke <[email protected]>2013-06-11 10:31:39 -0700
committerKenneth Graunke <[email protected]>2013-06-11 10:53:44 -0700
commit3dacb7d40b3a15be1133deaac55b993e8b7809dc (patch)
tree407ec5891eb073d3669f6b05eef1f5f1dd4bfe7b /src/mesa
parent42adf5f0dd807c43a13df62dc1aa6774de07cd59 (diff)
Revert "i965: Disable unused pipeline stages once at startup on Gen7+."
This reverts commit 6c966ccf07bcaf64fba1a9b699440c30dc96e732. Apparently causes GPU hangs. Conflicts: src/mesa/drivers/dri/i965/brw_state.h src/mesa/drivers/dri/i965/brw_state_upload.c
Diffstat (limited to 'src/mesa')
-rw-r--r--src/mesa/drivers/dri/i965/brw_state.h4
-rw-r--r--src/mesa/drivers/dri/i965/brw_state_upload.c2
-rw-r--r--src/mesa/drivers/dri/i965/gen7_disable.c13
3 files changed, 13 insertions, 6 deletions
diff --git a/src/mesa/drivers/dri/i965/brw_state.h b/src/mesa/drivers/dri/i965/brw_state.h
index f14c44cb131..8af933ea94c 100644
--- a/src/mesa/drivers/dri/i965/brw_state.h
+++ b/src/mesa/drivers/dri/i965/brw_state.h
@@ -111,6 +111,7 @@ 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_samplers;
extern const struct brw_tracked_state gen7_sbe_state;
@@ -213,9 +214,6 @@ 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);
-
/* gen7_urb.c */
void gen7_allocate_push_constants(struct brw_context *brw);
diff --git a/src/mesa/drivers/dri/i965/brw_state_upload.c b/src/mesa/drivers/dri/i965/brw_state_upload.c
index a9e269eebd6..00aea41ef2d 100644
--- a/src/mesa/drivers/dri/i965/brw_state_upload.c
+++ b/src/mesa/drivers/dri/i965/brw_state_upload.c
@@ -210,6 +210,7 @@ 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,
@@ -253,7 +254,6 @@ brw_upload_initial_gpu_state(struct brw_context *brw)
if (intel->gen >= 7) {
gen7_allocate_push_constants(brw);
- gen7_disable_unused_stages(brw);
}
}
diff --git a/src/mesa/drivers/dri/i965/gen7_disable.c b/src/mesa/drivers/dri/i965/gen7_disable.c
index c152d0accaa..aaf88a8bba8 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"
-void
-gen7_disable_unused_stages(struct brw_context *brw)
+static void
+disable_stages(struct brw_context *brw)
{
struct intel_context *intel = &brw->intel;
@@ -123,3 +123,12 @@ gen7_disable_unused_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,
+};