Fix Cycles build error after recent changes

We need to do aligned alloc of the services instead of globals now since the
concurrent map moved there.
This commit is contained in:
2019-05-14 15:05:24 +02:00
parent 0dd5281ab2
commit b63ffa8919
3 changed files with 11 additions and 15 deletions

View File

@@ -43,7 +43,6 @@
#include "render/buffers.h"
#include "render/coverage.h"
#include "util/util_aligned_malloc.h"
#include "util/util_debug.h"
#include "util/util_foreach.h"
#include "util/util_function.h"
@@ -166,7 +165,7 @@ class CPUDevice : public Device {
bool need_texture_info;
#ifdef WITH_OSL
OSLGlobals *osl_globals;
OSLGlobals osl_globals;
#endif
bool use_split_kernel;
@@ -283,9 +282,7 @@ class CPUDevice : public Device {
}
#ifdef WITH_OSL
/* Must use aligned malloc due to concurrent hash map. */
osl_globals = util_aligned_new<OSLGlobals>();
kernel_globals.osl = osl_globals;
kernel_globals.osl = &osl_globals;
#endif
use_split_kernel = DebugFlags().cpu.split_kernel;
if (use_split_kernel) {
@@ -320,9 +317,6 @@ class CPUDevice : public Device {
~CPUDevice()
{
#ifdef WITH_OSL
util_aligned_delete(osl_globals);
#endif
task_pool.stop();
texture_info.free();
}
@@ -498,7 +492,7 @@ class CPUDevice : public Device {
void *osl_memory()
{
#ifdef WITH_OSL
return osl_globals;
return &osl_globals;
#else
return NULL;
#endif
@@ -987,7 +981,7 @@ class CPUDevice : public Device {
KernelGlobals kg = kernel_globals;
#ifdef WITH_OSL
OSLShader::thread_init(&kg, &kernel_globals, osl_globals);
OSLShader::thread_init(&kg, &kernel_globals, &osl_globals);
#endif
for (int sample = 0; sample < task.num_samples; sample++) {
for (int x = task.shader_x; x < task.shader_x + task.shader_w; x++)
@@ -1059,7 +1053,7 @@ class CPUDevice : public Device {
kg.decoupled_volume_steps_index = 0;
kg.coverage_asset = kg.coverage_object = kg.coverage_material = NULL;
#ifdef WITH_OSL
OSLShader::thread_init(&kg, &kernel_globals, osl_globals);
OSLShader::thread_init(&kg, &kernel_globals, &osl_globals);
#endif
return kg;
}