5311515163
hangs on ivb+
93 lines
3.1 KiB
Diff
93 lines
3.1 KiB
Diff
From 3dacb7d40b3a15be1133deaac55b993e8b7809dc Mon Sep 17 00:00:00 2001
|
|
From: Kenneth Graunke <kenneth@whitecape.org>
|
|
Date: Tue, 11 Jun 2013 10:31:39 -0700
|
|
Subject: [PATCH] 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
|
|
---
|
|
src/mesa/drivers/dri/i965/brw_state.h | 4 +---
|
|
src/mesa/drivers/dri/i965/brw_state_upload.c | 2 +-
|
|
src/mesa/drivers/dri/i965/gen7_disable.c | 13 +++++++++++--
|
|
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 f14c44c..8af933e 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 a9e269e..00aea41 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 c152d0a..aaf88a8 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,
|
|
+};
|
|
--
|
|
1.8.2.1
|
|
|