Merge branch 'master' into blender2.8
This commit is contained in:
commit
fdb1c81117
|
@ -232,8 +232,8 @@ public:
|
|||
\
|
||||
if(err != CL_SUCCESS) { \
|
||||
string message = string_printf("OpenCL error: %s in %s (%s:%d)", clewErrorString(err), #stmt, __FILE__, __LINE__); \
|
||||
if((device)->error_msg == "") \
|
||||
(device)->error_msg = message; \
|
||||
if((device)->error_message() == "") \
|
||||
(device)->set_error(message); \
|
||||
fprintf(stderr, "%s\n", message.c_str()); \
|
||||
} \
|
||||
} (void)0
|
||||
|
@ -556,6 +556,14 @@ private:
|
|||
device_memory texture_descriptors_buffer;
|
||||
|
||||
struct Texture {
|
||||
Texture() {}
|
||||
Texture(device_memory* mem,
|
||||
InterpolationType interpolation,
|
||||
ExtensionType extension)
|
||||
: mem(mem),
|
||||
interpolation(interpolation),
|
||||
extension(extension) {
|
||||
}
|
||||
device_memory* mem;
|
||||
InterpolationType interpolation;
|
||||
ExtensionType extension;
|
||||
|
|
|
@ -30,6 +30,10 @@
|
|||
CCL_NAMESPACE_BEGIN
|
||||
|
||||
struct texture_slot_t {
|
||||
texture_slot_t(const string& name, int slot)
|
||||
: name(name),
|
||||
slot(slot) {
|
||||
}
|
||||
string name;
|
||||
int slot;
|
||||
};
|
||||
|
@ -515,11 +519,7 @@ void OpenCLDeviceBase::tex_alloc(const char *name,
|
|||
<< string_human_readable_size(mem.memory_size()) << ")";
|
||||
|
||||
memory_manager.alloc(name, mem);
|
||||
|
||||
textures[name] = (Texture){.mem = &mem,
|
||||
.interpolation = interpolation,
|
||||
.extension = extension};
|
||||
|
||||
textures[name] = Texture(&mem, interpolation, extension);
|
||||
textures_need_update = true;
|
||||
}
|
||||
|
||||
|
@ -618,10 +618,9 @@ void OpenCLDeviceBase::flush_texture_buffers()
|
|||
|
||||
vector<texture_slot_t> texture_slots;
|
||||
|
||||
#define KERNEL_TEX(type, ttype, slot_name) \
|
||||
if(textures.find(#slot_name) != textures.end()) { \
|
||||
texture_slots.push_back((texture_slot_t){.name = #slot_name, \
|
||||
.slot = num_slots}); \
|
||||
#define KERNEL_TEX(type, ttype, name) \
|
||||
if(textures.find(#name) != textures.end()) { \
|
||||
texture_slots.push_back(texture_slot_t(#name, num_slots)); \
|
||||
} \
|
||||
num_slots++;
|
||||
#include "kernel/kernel_textures.h"
|
||||
|
@ -634,11 +633,8 @@ void OpenCLDeviceBase::flush_texture_buffers()
|
|||
if(string_startswith(name, "__tex_image")) {
|
||||
int pos = name.rfind("_");
|
||||
int id = atoi(name.data() + pos + 1);
|
||||
|
||||
texture_slots.push_back((texture_slot_t){
|
||||
.name = name,
|
||||
.slot = num_data_slots + id});
|
||||
|
||||
texture_slots.push_back(texture_slot_t(name,
|
||||
num_data_slots + id));
|
||||
num_slots = max(num_slots, num_data_slots + id + 1);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -25,7 +25,6 @@
|
|||
#else
|
||||
/* SSE optimization disabled for now on 32 bit, see bug #36316 */
|
||||
# if !(defined(__GNUC__) && (defined(i386) || defined(_M_IX86)))
|
||||
# define __KERNEL_SSE__
|
||||
# define __KERNEL_SSE2__
|
||||
# endif
|
||||
#endif /* WITH_CYCLES_OPTIMIZED_KERNEL_SSE2 */
|
||||
|
|
|
@ -25,7 +25,6 @@
|
|||
#else
|
||||
/* SSE optimization disabled for now on 32 bit, see bug #36316 */
|
||||
# if !(defined(__GNUC__) && (defined(i386) || defined(_M_IX86)))
|
||||
# define __KERNEL_SSE__
|
||||
# define __KERNEL_SSE2__
|
||||
# define __KERNEL_SSE3__
|
||||
# define __KERNEL_SSSE3__
|
||||
|
|
|
@ -178,6 +178,9 @@ static void cmp_node_image_create_outputs(bNodeTree *ntree, bNode *node, LinkNod
|
|||
cmp_node_image_add_pass_output(ntree, node, "Alpha", RE_PASSNAME_COMBINED, -1, SOCK_FLOAT, false, available_sockets, &prev_index);
|
||||
|
||||
if (ima) {
|
||||
if (!ima->rr) {
|
||||
cmp_node_image_add_pass_output(ntree, node, RE_PASSNAME_Z, RE_PASSNAME_Z, -1, SOCK_FLOAT, false, available_sockets, &prev_index);
|
||||
}
|
||||
BKE_image_release_ibuf(ima, ibuf, NULL);
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue