summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexey Shvetsov <alexxy@gentoo.org>2013-04-11 19:36:21 +0400
committerAlexey Shvetsov <alexxy@gentoo.org>2013-04-11 19:36:21 +0400
commit5fc6d117965dd1cbc2abd547fcd3648935c13e71 (patch)
treece716077b5fde618c4473bcfe370566619e4199e /media-libs
parentUpdate patches (diff)
downloadx11-5fc6d117965dd1cbc2abd547fcd3648935c13e71.tar.gz
x11-5fc6d117965dd1cbc2abd547fcd3648935c13e71.tar.bz2
x11-5fc6d117965dd1cbc2abd547fcd3648935c13e71.zip
Add patch for multigpu in clover
Package-Manager: portage-2.2.0_alpha171
Diffstat (limited to 'media-libs')
-rw-r--r--media-libs/mesa/files/0001-clover-Support-multiple-devices-in-clCreateContextFr.patch51
-rw-r--r--media-libs/mesa/mesa-9999.ebuild1
2 files changed, 52 insertions, 0 deletions
diff --git a/media-libs/mesa/files/0001-clover-Support-multiple-devices-in-clCreateContextFr.patch b/media-libs/mesa/files/0001-clover-Support-multiple-devices-in-clCreateContextFr.patch
new file mode 100644
index 00000000..bd050adc
--- /dev/null
+++ b/media-libs/mesa/files/0001-clover-Support-multiple-devices-in-clCreateContextFr.patch
@@ -0,0 +1,51 @@
+From 7ab4839745069e22ff2e2636fd27b463fa308838 Mon Sep 17 00:00:00 2001
+From: Tom Stellard <thomas.stellard@amd.com>
+Date: Thu, 11 Apr 2013 10:37:55 -0400
+Subject: [PATCH] clover: Support multiple devices in clCreateContextFromType()
+
+---
+ src/gallium/state_trackers/clover/api/context.cpp | 13 +++++++++----
+ 1 file changed, 9 insertions(+), 4 deletions(-)
+
+diff --git a/src/gallium/state_trackers/clover/api/context.cpp b/src/gallium/state_trackers/clover/api/context.cpp
+index 99b9566..5caa48c 100644
+--- a/src/gallium/state_trackers/clover/api/context.cpp
++++ b/src/gallium/state_trackers/clover/api/context.cpp
+@@ -22,6 +22,7 @@
+
+ #include "api/util.hpp"
+ #include "core/context.hpp"
++#include "core/platform.hpp"
+
+ using namespace clover;
+
+@@ -63,18 +64,22 @@ clCreateContextFromType(const cl_context_properties *props,
+ void *user_data, cl_int *errcode_ret) try {
+ cl_platform_id platform;
+ cl_uint num_platforms;
+- cl_device_id dev;
+ cl_int ret;
++ std::vector<cl_device_id> devs;
+
+ ret = clGetPlatformIDs(1, &platform, &num_platforms);
+ if (ret || !num_platforms)
+ throw error(CL_INVALID_PLATFORM);
+
+- ret = clGetDeviceIDs(platform, type, 1, &dev, 0);
+- if (ret)
++ if (platform->begin() == platform->end())
+ throw error(CL_DEVICE_NOT_FOUND);
+
+- return clCreateContext(props, 1, &dev, pfn_notify, user_data, errcode_ret);
++ for (clover::platform::iterator i = platform->begin(), e = platform->end();
++ i != e; ++i) {
++ devs.push_back(&*i);
++ }
++
++ return clCreateContext(props, devs.size(), devs.data(), pfn_notify, user_data, errcode_ret);
+
+ } catch(error &e) {
+ ret_error(errcode_ret, e);
+--
+1.8.1.5
+
diff --git a/media-libs/mesa/mesa-9999.ebuild b/media-libs/mesa/mesa-9999.ebuild
index 66829549..9ceca552 100644
--- a/media-libs/mesa/mesa-9999.ebuild
+++ b/media-libs/mesa/mesa-9999.ebuild
@@ -174,6 +174,7 @@ src_prepare() {
# use non-NULL platform id
epatch "${FILESDIR}/${P}-use-a-struct-for-cl_platform_id.patch"
+ epatch "${FILESDIR}/0001-clover-Support-multiple-devices-in-clCreateContextFr.patch"
# fix for hardened pax_kernel, bug 240956
[[ ${PV} != 9999* ]] && epatch "${FILESDIR}"/glx_ro_text_segm.patch