Blender Git Commit Log

Git Commits -> Revision ec25060

Revision ec25060 by Stefan Werner (master)
April 27, 2017, 07:35 (GMT)
Unlimited number of textures for Cycles

This patch allows for an unlimited number of textures in Cycles where the hardware allows. It replaces a number static arrays with dynamic arrays and changes the way the flat_slot indices are calculated. Eventually, I'd like to get to a point where there are only flat slots left and textures off all kinds are stored in a single array.

Note that the arrays in DeviceScene are changed from containing device_vector<T> objects to device_vector<T>* pointers. Ideally, I'd like to store objects, but dynamic resizing of a std:vector in pre-C++11 calls the copy constructor, which for a good reason is not implemented for device_vector. Once we require C++11 for Cycles builds, we can implement a move constructor for device_vector and store objects again.

The limits for CUDA Fermi hardware still apply.

Reviewers: tod_baudais, InsigMathK, dingto, #cycles

Reviewed By: dingto, #cycles

Subscribers: dingto, smellslikedonkey

Differential Revision: https://developer.blender.org/D2650

Commit Details:

Full Hash: ec25060a05e394560ec92388b347c45bd9eba0ed
Parent Commit: a6b9bd0
Lines Changed: +328, -287

12 Modified Paths:

/intern/cycles/kernel/kernels/cpu/kernel.cpp (+35, -17) (Diff)
/intern/cycles/kernel/kernels/cpu/kernel_cpu_image.h (+45, -37) (Diff)
/intern/cycles/kernel/kernel_globals.h (+10, -6) (Diff)
/intern/cycles/kernel/kernel_image_opencl.h (+4, -3) (Diff)
/intern/cycles/kernel/svm/svm_image.h (+9, -4) (Diff)
/intern/cycles/kernel/svm/svm_voxel.h (+1, -1) (Diff)
/intern/cycles/render/image.cpp (+168, -141) (Diff)
/intern/cycles/render/image.h (+3, -12) (Diff)
/intern/cycles/render/nodes.cpp (+4, -4) (Diff)
/intern/cycles/render/scene.h (+7, -7) (Diff)
/intern/cycles/util/util_texture.h (+23, -55) (Diff)
/intern/cycles/util/util_types.h (+19, -0) (Diff)
By: Miika HämäläinenLast update: Nov-07-2014 14:18MiikaHweb | 2003-2021