Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrecht Van Lommel <brechtvanlommel@gmail.com>2018-01-18 23:06:35 +0300
committerBrecht Van Lommel <brechtvanlommel@gmail.com>2018-01-19 13:35:07 +0300
commit0fe41009f095835bda961a67697b36cbc8cade49 (patch)
tree5ac5379e8fb889f2dc4754043c76dfe2ba90c5d5 /intern/cycles/device
parent889321e22b70006a550c923c0ace18e75732e106 (diff)
Fix T53830: Cycles OpenCL debug assert on macOS,
This was probably harmless besides some unnecessary memory usage due to aligning allocations too much.
Diffstat (limited to 'intern/cycles/device')
-rw-r--r--intern/cycles/device/device.h2
-rw-r--r--intern/cycles/device/device_memory.cpp3
-rw-r--r--intern/cycles/device/opencl/opencl_util.cpp8
3 files changed, 6 insertions, 7 deletions
diff --git a/intern/cycles/device/device.h b/intern/cycles/device/device.h
index 35b545388f2..528a6dc10f6 100644
--- a/intern/cycles/device/device.h
+++ b/intern/cycles/device/device.h
@@ -286,7 +286,7 @@ public:
Stats &stats;
/* memory alignment */
- virtual int mem_address_alignment() { return 16; }
+ virtual int mem_address_alignment() { return MIN_ALIGNMENT_CPU_DATA_TYPES; }
/* constant memory */
virtual void const_copy_to(const char *name, void *host, size_t size) = 0;
diff --git a/intern/cycles/device/device_memory.cpp b/intern/cycles/device/device_memory.cpp
index 82598007a59..c6248fcf88b 100644
--- a/intern/cycles/device/device_memory.cpp
+++ b/intern/cycles/device/device_memory.cpp
@@ -50,8 +50,7 @@ void *device_memory::host_alloc(size_t size)
return 0;
}
- size_t alignment = device->mem_address_alignment();
- void *ptr = util_aligned_malloc(size, alignment);
+ void *ptr = util_aligned_malloc(size, MIN_ALIGNMENT_CPU_DATA_TYPES);
if(ptr) {
util_guarded_mem_alloc(size);
diff --git a/intern/cycles/device/opencl/opencl_util.cpp b/intern/cycles/device/opencl/opencl_util.cpp
index 459d512172f..47d099a1f94 100644
--- a/intern/cycles/device/opencl/opencl_util.cpp
+++ b/intern/cycles/device/opencl/opencl_util.cpp
@@ -1137,14 +1137,14 @@ bool OpenCLInfo::get_driver_version(cl_device_id device_id,
int OpenCLInfo::mem_address_alignment(cl_device_id device_id)
{
- int base_align_bits;
+ int base_align_bytes;
if(clGetDeviceInfo(device_id,
- CL_DEVICE_MEM_BASE_ADDR_ALIGN,
+ CL_DEVICE_MIN_DATA_TYPE_ALIGN_SIZE,
sizeof(int),
- &base_align_bits,
+ &base_align_bytes,
NULL) == CL_SUCCESS)
{
- return base_align_bits/8;
+ return base_align_bytes;
}
return 1;
}