summaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorWillem Jan Palenstijn <Willem.Jan.Palenstijn@cwi.nl>2016-01-06 15:10:34 +0100
committerWillem Jan Palenstijn <Willem.Jan.Palenstijn@cwi.nl>2016-01-19 16:50:16 +0100
commit687c5e244e46e51786afad77f5015cae9abad129 (patch)
treefde2e2dff70e26e8fde2a44c381ced50d71ccf0c /include
parent8e68248bd587456325101911a927b206b5450b31 (diff)
downloadastra-687c5e244e46e51786afad77f5015cae9abad129.tar.gz
astra-687c5e244e46e51786afad77f5015cae9abad129.tar.bz2
astra-687c5e244e46e51786afad77f5015cae9abad129.tar.xz
astra-687c5e244e46e51786afad77f5015cae9abad129.zip
Add multi-GPU support to CompositeGeometryManager
Diffstat (limited to 'include')
-rw-r--r--include/astra/CompositeGeometryManager.h16
1 files changed, 16 insertions, 0 deletions
diff --git a/include/astra/CompositeGeometryManager.h b/include/astra/CompositeGeometryManager.h
index 6610151..49d02a7 100644
--- a/include/astra/CompositeGeometryManager.h
+++ b/include/astra/CompositeGeometryManager.h
@@ -50,9 +50,16 @@ class CProjectionGeometry3D;
class CProjector3D;
+struct SGPUParams {
+ std::vector<int> GPUIndices;
+ size_t memory;
+};
+
class _AstraExport CCompositeGeometryManager {
public:
+ CCompositeGeometryManager();
+
class CPart;
typedef std::list<boost::shared_ptr<CPart> > TPartList;
class CPart {
@@ -139,10 +146,19 @@ public:
bool doFP(CProjector3D *pProjector, const std::vector<CFloat32VolumeData3DMemory *>& volData, const std::vector<CFloat32ProjectionData3DMemory *>& projData);
bool doBP(CProjector3D *pProjector, const std::vector<CFloat32VolumeData3DMemory *>& volData, const std::vector<CFloat32ProjectionData3DMemory *>& projData);
+ void setGPUIndices(const std::vector<int>& GPUIndices);
+
+ static void setGlobalGPUParams(const SGPUParams& params);
+
protected:
bool splitJobs(TJobSet &jobs, size_t maxSize, int div, TJobSet &split);
+ std::vector<int> m_GPUIndices;
+ size_t m_iMaxSize;
+
+
+ static SGPUParams* s_params;
};
}