diff --git a/0001-Revert-i965-Disable-unused-pipeline-stages-once-at-s.patch b/0001-Revert-i965-Disable-unused-pipeline-stages-once-at-s.patch new file mode 100644 index 0000000..e2c2efc --- /dev/null +++ b/0001-Revert-i965-Disable-unused-pipeline-stages-once-at-s.patch @@ -0,0 +1,92 @@ +From 3dacb7d40b3a15be1133deaac55b993e8b7809dc Mon Sep 17 00:00:00 2001 +From: Kenneth Graunke +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 + diff --git a/mesa.spec b/mesa.spec index b691a79..680ec78 100644 --- a/mesa.spec +++ b/mesa.spec @@ -54,7 +54,7 @@ Summary: Mesa graphics libraries Name: mesa Version: 9.2 -Release: 0.8.%{gitdate}%{?dist} +Release: 0.9.%{gitdate}%{?dist} License: MIT Group: System Environment/Libraries URL: http://www.mesa3d.org @@ -77,6 +77,7 @@ Patch15: mesa-9.2-hardware-float.patch Patch16: mesa-9.2-no-useless-vdpau.patch Patch18: mesa-9.2-llvmpipe-on-big-endian.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 %if %{with_hardware} @@ -311,6 +312,7 @@ grep -q ^/ src/gallium/auxiliary/vl/vl_decoder.c && exit 1 %patch16 -p1 -b .vdpau %patch18 -p1 -b .be %patch19 -p1 -b .osmesa +%patch20 -p1 -b .revert %if 0%{with_private_llvm} sed -i 's/llvm-config/mesa-private-llvm-config-%{__isa_bits}/g' configure.ac @@ -610,6 +612,10 @@ rm -rf $RPM_BUILD_ROOT %endif %changelog +* Tue Jun 11 2013 Adam Jackson 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 9.2-0.8.20130610 - Today's git snap