0001-Revert-i965-Disable-unused-pipeline-stages-once-at-s.patch: Fix some

hangs on ivb+
This commit is contained in:
Adam Jackson 2013-06-11 17:10:22 -04:00
parent d33e9b2ff4
commit 5311515163
2 changed files with 99 additions and 1 deletions

View file

@ -0,0 +1,92 @@
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

View file

@ -54,7 +54,7 @@
Summary: Mesa graphics libraries Summary: Mesa graphics libraries
Name: mesa Name: mesa
Version: 9.2 Version: 9.2
Release: 0.8.%{gitdate}%{?dist} Release: 0.9.%{gitdate}%{?dist}
License: MIT License: MIT
Group: System Environment/Libraries Group: System Environment/Libraries
URL: http://www.mesa3d.org URL: http://www.mesa3d.org
@ -77,6 +77,7 @@ Patch15: mesa-9.2-hardware-float.patch
Patch16: mesa-9.2-no-useless-vdpau.patch Patch16: mesa-9.2-no-useless-vdpau.patch
Patch18: mesa-9.2-llvmpipe-on-big-endian.patch Patch18: mesa-9.2-llvmpipe-on-big-endian.patch
Patch19: mesa-9.2-no-gallium-osmesa.patch Patch19: mesa-9.2-no-gallium-osmesa.patch
Patch20: 0001-Revert-i965-Disable-unused-pipeline-stages-once-at-s.patch
BuildRequires: pkgconfig autoconf automake libtool BuildRequires: pkgconfig autoconf automake libtool
%if %{with_hardware} %if %{with_hardware}
@ -311,6 +312,7 @@ grep -q ^/ src/gallium/auxiliary/vl/vl_decoder.c && exit 1
%patch16 -p1 -b .vdpau %patch16 -p1 -b .vdpau
%patch18 -p1 -b .be %patch18 -p1 -b .be
%patch19 -p1 -b .osmesa %patch19 -p1 -b .osmesa
%patch20 -p1 -b .revert
%if 0%{with_private_llvm} %if 0%{with_private_llvm}
sed -i 's/llvm-config/mesa-private-llvm-config-%{__isa_bits}/g' configure.ac sed -i 's/llvm-config/mesa-private-llvm-config-%{__isa_bits}/g' configure.ac
@ -610,6 +612,10 @@ rm -rf $RPM_BUILD_ROOT
%endif %endif
%changelog %changelog
* Tue Jun 11 2013 Adam Jackson <ajax@redhat.com> 9.2-0.9.20130610
- 0001-Revert-i965-Disable-unused-pipeline-stages-once-at-s.patch: Fix some
hangs on ivb+
* Mon Jun 10 2013 Adam Jackson <ajax@redhat.com> 9.2-0.8.20130610 * Mon Jun 10 2013 Adam Jackson <ajax@redhat.com> 9.2-0.8.20130610
- Today's git snap - Today's git snap