forked from bartvdbraak/blender
Cycles: Pass string by const reference rather than by value
Some of the functions might have been inlined, but others i don't see how that was possible (don't think virtual functions can be inlined here). In any case, better be explicitly optimal in the code.
This commit is contained in:
parent
58c456b12d
commit
d37dd97e45
@ -149,7 +149,8 @@ public:
|
||||
device_memory& use_queues_flag,
|
||||
device_memory& work_pool_wgs);
|
||||
|
||||
virtual SplitKernelFunction* get_split_kernel_function(string kernel_name, const DeviceRequestedFeatures&);
|
||||
virtual SplitKernelFunction* get_split_kernel_function(const string& kernel_name,
|
||||
const DeviceRequestedFeatures&);
|
||||
virtual int2 split_kernel_local_size();
|
||||
virtual int2 split_kernel_global_size(device_memory& kg, device_memory& data, DeviceTask *task);
|
||||
virtual uint64_t state_buffer_size(device_memory& kg, device_memory& data, size_t num_threads);
|
||||
@ -932,7 +933,8 @@ bool CPUSplitKernel::enqueue_split_kernel_data_init(const KernelDimensions& dim,
|
||||
return true;
|
||||
}
|
||||
|
||||
SplitKernelFunction* CPUSplitKernel::get_split_kernel_function(string kernel_name, const DeviceRequestedFeatures&)
|
||||
SplitKernelFunction* CPUSplitKernel::get_split_kernel_function(const string& kernel_name,
|
||||
const DeviceRequestedFeatures&)
|
||||
{
|
||||
CPUSplitKernelFunction *kernel = new CPUSplitKernelFunction(device);
|
||||
|
||||
|
@ -105,7 +105,8 @@ public:
|
||||
device_memory& use_queues_flag,
|
||||
device_memory& work_pool_wgs);
|
||||
|
||||
virtual SplitKernelFunction* get_split_kernel_function(string kernel_name, const DeviceRequestedFeatures&);
|
||||
virtual SplitKernelFunction* get_split_kernel_function(const string& kernel_name,
|
||||
const DeviceRequestedFeatures&);
|
||||
virtual int2 split_kernel_local_size();
|
||||
virtual int2 split_kernel_global_size(device_memory& kg, device_memory& data, DeviceTask *task);
|
||||
};
|
||||
@ -2037,7 +2038,8 @@ bool CUDASplitKernel::enqueue_split_kernel_data_init(const KernelDimensions& dim
|
||||
return !device->have_error();
|
||||
}
|
||||
|
||||
SplitKernelFunction* CUDASplitKernel::get_split_kernel_function(string kernel_name, const DeviceRequestedFeatures&)
|
||||
SplitKernelFunction* CUDASplitKernel::get_split_kernel_function(const string& kernel_name,
|
||||
const DeviceRequestedFeatures&)
|
||||
{
|
||||
CUfunction func;
|
||||
|
||||
|
@ -125,7 +125,8 @@ public:
|
||||
device_memory& use_queues_flag,
|
||||
device_memory& work_pool_wgs) = 0;
|
||||
|
||||
virtual SplitKernelFunction* get_split_kernel_function(string kernel_name, const DeviceRequestedFeatures&) = 0;
|
||||
virtual SplitKernelFunction* get_split_kernel_function(const string& kernel_name,
|
||||
const DeviceRequestedFeatures&) = 0;
|
||||
virtual int2 split_kernel_local_size() = 0;
|
||||
virtual int2 split_kernel_global_size(device_memory& kg, device_memory& data, DeviceTask *task) = 0;
|
||||
};
|
||||
|
@ -84,7 +84,7 @@ public:
|
||||
string *error = NULL);
|
||||
static bool device_version_check(cl_device_id device,
|
||||
string *error = NULL);
|
||||
static string get_hardware_id(string platform_name,
|
||||
static string get_hardware_id(const string& platform_name,
|
||||
cl_device_id device_id);
|
||||
static void get_usable_devices(vector<OpenCLPlatformDevice> *usable_devices,
|
||||
bool force_all = false);
|
||||
@ -247,17 +247,17 @@ public:
|
||||
public:
|
||||
OpenCLProgram() : loaded(false), device(NULL) {}
|
||||
OpenCLProgram(OpenCLDeviceBase *device,
|
||||
string program_name,
|
||||
string kernel_name,
|
||||
string kernel_build_options,
|
||||
const string& program_name,
|
||||
const string& kernel_name,
|
||||
const string& kernel_build_options,
|
||||
bool use_stdout = true);
|
||||
~OpenCLProgram();
|
||||
|
||||
void add_kernel(ustring name);
|
||||
void load();
|
||||
|
||||
bool is_loaded() { return loaded; }
|
||||
string get_log() { return log; }
|
||||
bool is_loaded() const { return loaded; }
|
||||
const string& get_log() const { return log; }
|
||||
void report_error();
|
||||
|
||||
cl_kernel operator()();
|
||||
@ -271,8 +271,8 @@ public:
|
||||
bool load_binary(const string& clbin, const string *debug_src = NULL);
|
||||
bool save_binary(const string& clbin);
|
||||
|
||||
void add_log(string msg, bool is_debug);
|
||||
void add_error(string msg);
|
||||
void add_log(const string& msg, bool is_debug);
|
||||
void add_error(const string& msg);
|
||||
|
||||
bool loaded;
|
||||
cl_program program;
|
||||
|
@ -263,7 +263,7 @@ public:
|
||||
explicit OpenCLSplitKernel(OpenCLDeviceSplitKernel *device) : DeviceSplitKernel(device), device(device) {
|
||||
}
|
||||
|
||||
virtual SplitKernelFunction* get_split_kernel_function(string kernel_name,
|
||||
virtual SplitKernelFunction* get_split_kernel_function(const string& kernel_name,
|
||||
const DeviceRequestedFeatures& requested_features)
|
||||
{
|
||||
OpenCLSplitKernelFunction* kernel = new OpenCLSplitKernelFunction(device, cached_memory);
|
||||
|
@ -241,9 +241,9 @@ string OpenCLCache::get_kernel_md5()
|
||||
}
|
||||
|
||||
OpenCLDeviceBase::OpenCLProgram::OpenCLProgram(OpenCLDeviceBase *device,
|
||||
string program_name,
|
||||
string kernel_file,
|
||||
string kernel_build_options,
|
||||
const string& program_name,
|
||||
const string& kernel_file,
|
||||
const string& kernel_build_options,
|
||||
bool use_stdout)
|
||||
: device(device),
|
||||
program_name(program_name),
|
||||
@ -274,7 +274,7 @@ void OpenCLDeviceBase::OpenCLProgram::release()
|
||||
}
|
||||
}
|
||||
|
||||
void OpenCLDeviceBase::OpenCLProgram::add_log(string msg, bool debug)
|
||||
void OpenCLDeviceBase::OpenCLProgram::add_log(const string& msg, bool debug)
|
||||
{
|
||||
if(!use_stdout) {
|
||||
log += msg + "\n";
|
||||
@ -288,7 +288,7 @@ void OpenCLDeviceBase::OpenCLProgram::add_log(string msg, bool debug)
|
||||
}
|
||||
}
|
||||
|
||||
void OpenCLDeviceBase::OpenCLProgram::add_error(string msg)
|
||||
void OpenCLDeviceBase::OpenCLProgram::add_error(const string& msg)
|
||||
{
|
||||
if(use_stdout) {
|
||||
fprintf(stderr, "%s\n", msg.c_str());
|
||||
@ -707,7 +707,7 @@ bool OpenCLInfo::device_version_check(cl_device_id device,
|
||||
return true;
|
||||
}
|
||||
|
||||
string OpenCLInfo::get_hardware_id(string platform_name, cl_device_id device_id)
|
||||
string OpenCLInfo::get_hardware_id(const string& platform_name, cl_device_id device_id)
|
||||
{
|
||||
if(platform_name == "AMD Accelerated Parallel Processing" || platform_name == "Apple") {
|
||||
/* Use cl_amd_device_topology extension. */
|
||||
|
Loading…
Reference in New Issue
Block a user