Build Cycles for iPad

Hello everyone, I’ve successfully built Cycles for the iPad, and it runs well when rendering on the CPU. However, I encounter issues when trying to render on the GPU. The problem arises in this code:

template<uint node_feature_mask, ShaderType type, typename ConstIntegratorGenericState>
ccl_device void svm_eval_nodes(KernelGlobals kg,
ConstIntegratorGenericState state,
ccl_private ShaderData *sd,
ccl_global float *render_buffer,
uint32_t path_flag)
float stack[SVM_STACK_SIZE];
Spectrum closure_weight;
int offset = sd->shader & SHADER_MASK;

When attempting to access or write to the stack array, I receive an error stating “Compute function exceeds available temporary registers”. I would appreciate any assistance in resolving this issue. Can anybody help to fix this problem.


I’ve never tried building Cycles for the iPad, and it’s not something we support. You can try experimenting yourself to try to find a solution.

For example you could try reducing the value of SVM_STACK_SIZE, or commenting out the cases for some more expensive nodes in this function (NODE_TEX_VORONOI, NODE_TEX_NOISE, …) and see if that helps.

In kernel/types.h there are also features you can try disabling to help identify where the problem is coming from.

Thanks,I’ve tried to set SVM_STACK_SIZE to 1,but it’s still not working.By disable the #define SVM,the problem is gone, but the render result image is not colors, just a gray image, shader is gone.