diff options
author | Tomas Farago <sensej007@email.cz> | 2020-02-05 10:42:01 +0100 |
---|---|---|
committer | Tomas Farago <sensej007@email.cz> | 2020-02-05 10:42:01 +0100 |
commit | 64a980599dbbbc01866cf7cb2560694522e02155 (patch) | |
tree | 129d70276a6a540b798691475b7bf0efc67af560 | |
parent | 076ef3b717c58ae1fca593ab936c649aa14936a9 (diff) | |
download | ufo-filters-64a980599dbbbc01866cf7cb2560694522e02155.tar.gz ufo-filters-64a980599dbbbc01866cf7cb2560694522e02155.tar.bz2 ufo-filters-64a980599dbbbc01866cf7cb2560694522e02155.tar.xz ufo-filters-64a980599dbbbc01866cf7cb2560694522e02155.zip |
genreco: limit memory to 4 GB
because even if a card claims to be able to allocate more we get errors
if that number is larger than 4 GB.
-rw-r--r-- | src/ufo-general-backproject-task.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/src/ufo-general-backproject-task.c b/src/ufo-general-backproject-task.c index 56fb66e..b72f8e1 100644 --- a/src/ufo-general-backproject-task.c +++ b/src/ufo-general-backproject-task.c @@ -1509,7 +1509,9 @@ ufo_general_backproject_task_get_requisition (UfoTask *task, slice_size = requisition->dims[0] * requisition->dims[1] * get_type_size (priv->store_type); volume_size = slice_size * priv->num_slices; max_mem_alloc_size_gvalue = ufo_gpu_node_get_info (node, UFO_GPU_NODE_INFO_MAX_MEM_ALLOC_SIZE); - max_mem_alloc_size = g_value_get_ulong (max_mem_alloc_size_gvalue); + /* Even if a card claims to be able to allocate more than 4 GB (e.g. RTX + * 8000) we get OpenCL errors, so limit it to 4 GB */ + max_mem_alloc_size = MIN (g_value_get_ulong (max_mem_alloc_size_gvalue), ((cl_ulong) 1) << 32); g_value_unset (max_mem_alloc_size_gvalue); priv->num_slices_per_chunk = (guint) floor ((gdouble) MIN (max_mem_alloc_size, volume_size) / ((gdouble) slice_size)); if (projections_size + volume_size > max_global_mem_size) { |