From b9543c3565393ab718520844bdd5cfc499c6f120113907de2bcd2079bf8768fc Mon Sep 17 00:00:00 2001 From: Stefan Dirsch Date: Wed, 16 Mar 2016 11:39:21 +0000 Subject: [PATCH] - U_llvmpipe-Do-not-use-barriers-if-not-using-threads.patch * llvmpipe: Do not use barriers if not using threads; triggers on single cpu machines (like KVM in openQA) with gcc6 and latest glibc(bnc#971350) OBS-URL: https://build.opensuse.org/package/show/X11:XOrg/Mesa?expand=0&rev=505 --- Mesa.changes | 8 ++++ Mesa.spec | 2 + ...ot-use-barriers-if-not-using-threads.patch | 42 +++++++++++++++++++ 3 files changed, 52 insertions(+) create mode 100644 U_llvmpipe-Do-not-use-barriers-if-not-using-threads.patch diff --git a/Mesa.changes b/Mesa.changes index 74b863d..d7c3345 100644 --- a/Mesa.changes +++ b/Mesa.changes @@ -1,3 +1,11 @@ +------------------------------------------------------------------- +Wed Mar 16 11:31:20 UTC 2016 - sndirsch@suse.com + +- U_llvmpipe-Do-not-use-barriers-if-not-using-threads.patch + * llvmpipe: Do not use barriers if not using threads; triggers + on single cpu machines (like KVM in openQA) with gcc6 and + latest glibc(bnc#971350) + ------------------------------------------------------------------- Mon Mar 14 12:02:29 UTC 2016 - dmueller@suse.com diff --git a/Mesa.spec b/Mesa.spec index 6856b1c..0b6ab2a 100644 --- a/Mesa.spec +++ b/Mesa.spec @@ -70,6 +70,7 @@ Patch17: u_st-va-hardlink-driver-instances-to-gallium_drv_video.patch Patch18: n_VDPAU-XVMC-libs-Replace-hardlinks-with-copies.patch # Already upstream Patch19: U_clover-Fix-build-against-LLVM-3.8.patch +Patch20: U_llvmpipe-Do-not-use-barriers-if-not-using-threads.patch BuildRequires: autoconf >= 2.60 BuildRequires: automake BuildRequires: bison @@ -563,6 +564,7 @@ rm -rf docs/README.{VMS,WIN32,OS2} %patch17 -p1 %patch18 -p1 %patch19 -p1 +%patch20 -p1 %build %if 0%{?suse_version} >= 1310 diff --git a/U_llvmpipe-Do-not-use-barriers-if-not-using-threads.patch b/U_llvmpipe-Do-not-use-barriers-if-not-using-threads.patch new file mode 100644 index 0000000..fb9df74 --- /dev/null +++ b/U_llvmpipe-Do-not-use-barriers-if-not-using-threads.patch @@ -0,0 +1,42 @@ +From 4ed4c1d9210b11ce6faea81455c21531904ea45b Mon Sep 17 00:00:00 2001 +From: Vinson Lee +Date: Wed, 10 Feb 2016 16:42:19 -0800 +Subject: [PATCH] llvmpipe: Do not use barriers if not using threads. + +Cc: mesa-stable@lists.freedesktop.org +Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=94088 +Signed-off-by: Vinson Lee +Reviewed-by: Roland Scheidegger +--- + src/gallium/drivers/llvmpipe/lp_rast.c | 8 ++++++-- + 1 file changed, 6 insertions(+), 2 deletions(-) + +diff --git a/src/gallium/drivers/llvmpipe/lp_rast.c b/src/gallium/drivers/llvmpipe/lp_rast.c +index d22e507..9e56c96 100644 +--- a/src/gallium/drivers/llvmpipe/lp_rast.c ++++ b/src/gallium/drivers/llvmpipe/lp_rast.c +@@ -910,7 +910,9 @@ lp_rast_create( unsigned num_threads ) + create_rast_threads(rast); + + /* for synchronizing rasterization threads */ +- pipe_barrier_init( &rast->barrier, rast->num_threads ); ++ if (rast->num_threads > 0) { ++ pipe_barrier_init( &rast->barrier, rast->num_threads ); ++ } + + memset(lp_dummy_tile, 0, sizeof lp_dummy_tile); + +@@ -967,7 +969,9 @@ void lp_rast_destroy( struct lp_rasterizer *rast ) + } + + /* for synchronizing rasterization threads */ +- pipe_barrier_destroy( &rast->barrier ); ++ if (rast->num_threads > 0) { ++ pipe_barrier_destroy( &rast->barrier ); ++ } + + lp_scene_queue_destroy(rast->full_scenes); + +-- +2.6.2 +