Alors... Et bien voilà l'OPENCL FONCTIONNNNNNEEEEEEEEEEEE!!!!!
Il manquait le paquet ocl-devel qui ne s'installe pas par défaut.
Je corrige la doc en conséquence :-P!!!!!!! Je pense que je vais rajouter la dépendance dans le SPEC de mesa pour l'installer, car c'est quand même important à mon avis 🙂. Bon il ne doit pas y avoir que ce paquet, mais il faudra faire quelques recherches.
Je relance les tests pour voir la différence de performance, déjà avec Blender ça tue :-P. Bon par contre ça bogue et fait planter blender à un moment, donc à voir par la suite... C'est dut à l'accélération par le GPU, ça fonctionne si c'est le cpu et pocl qui prend la main.
Voilà le résultat avec Blender et la Radeon :
$ CYCLES_OPENCL_TEST=1 ./blender
connect failed: No such file or directory
Read new prefs: /home/sylvain/.config/blender/2.73/config/userpref.blend
ATTENTION: default value of option vblank_mode overridden by environment.
found bundled python: /home/sylvain/3D/Experimental/2.73/python
write exr tmp file, 1280x1024, /tmp/blender_ZIg2qC/_Scene_RenderLayer_exr
Device init succes
Device init succes
Compiling OpenCL kernel ...
OpenCL kernel build output:
input.cl:135:9: warning: 'NULL' macro redefined
/usr/lib/clang/3.5.0/include/stddef.h:101:11: note: previous definition is here
input.cl:3061:9: warning: implicit declaration of function 'asin' is invalid in C99
input.cl:103:18: note: expanded from macro 'asinf'
input.cl:3066:9: warning: implicit declaration of function 'acos' is invalid in C99
input.cl:104:18: note: expanded from macro 'acosf'
input.cl:3077:6: warning: implicit declaration of function 'fmod' is invalid in C99
input.cl:112:21: note: expanded from macro 'fmodf'
input.cl:20591:2: warning: implicit declaration of function 'vstore_half4' is invalid in C99
input.cl:683:40: note: expanded from macro 'float4_store_half'
input.cl:21223:62: warning: double precision constant requires cl_khr_fp64, casting to single precision
input.cl:1885:26: note: expanded from macro 'M_2PI_F'
input.cl:89:43: note: expanded from macro 'make_float4'
input.cl:21228:63: warning: double precision constant requires cl_khr_fp64, casting to single precision
input.cl:1885:26: note: expanded from macro 'M_2PI_F'
input.cl:89:43: note: expanded from macro 'make_float4'
input.cl:21408:14: warning: double precision constant requires cl_khr_fp64, casting to single precision
input.cl:1885:26: note: expanded from macro 'M_2PI_F'
input.cl:21442:14: warning: double precision constant requires cl_khr_fp64, casting to single precision
input.cl:1885:26: note: expanded from macro 'M_2PI_F'
input.cl:21459:14: warning: double precision constant requires cl_khr_fp64, casting to single precision
input.cl:1885:26: note: expanded from macro 'M_2PI_F'
input.cl:21474:14: warning: double precision constant requires cl_khr_fp64, casting to single precision
input.cl:1885:26: note: expanded from macro 'M_2PI_F'
input.cl:41541:6: warning: implicit declaration of function 'isfinite' is invalid in C99
input.cl:42247:15: warning: double precision constant requires cl_khr_fp64, casting to single precision
input.cl:1885:26: note: expanded from macro 'M_2PI_F'
input.cl:42500:21: warning: double precision constant requires cl_khr_fp64, casting to single precision
input.cl:1885:26: note: expanded from macro 'M_2PI_F'
input.cl:42576:21: warning: double precision constant requires cl_khr_fp64, casting to single precision
input.cl:1885:26: note: expanded from macro 'M_2PI_F'
input.cl:43758:52: warning: implicit declaration of function 'native_tan' is invalid in C99
input.cl:117:17: note: expanded from macro 'tanf'
input.cl:105:32: note: expanded from macro 'atanf'
input.cl:43787:10: warning: double precision constant requires cl_khr_fp64, casting to single precision
input.cl:1885:26: note: expanded from macro 'M_2PI_F'
input.cl:46501:25: warning: double precision constant requires cl_khr_fp64, casting to single precision
input.cl:1885:26: note: expanded from macro 'M_2PI_F'
input.cl:46937:58: warning: double precision constant requires cl_khr_fp64, casting to single precision
input.cl:1885:26: note: expanded from macro 'M_2PI_F'
input.cl:50126:32: warning: double precision constant requires cl_khr_fp64, casting to single precision
input.cl:1885:26: note: expanded from macro 'M_2PI_F'
input.cl:52002:34: warning: incompatible pointer types passing 'ShaderClosure (*)[1]' to parameter of type 'ShaderClosure *' (aka 'struct ShaderClosure *')
input.cl:41956:50: note: passing argument to parameter 'sc' here
input.cl:52489:12: warning: double precision constant requires cl_khr_fp64, casting to single precision
input.cl:1885:26: note: expanded from macro 'M_2PI_F'
Kernel compilation finished in 0.64s.
Compiling OpenCL kernel ...
/tmp/poclS7UnDg/program.cl:52002:34: warning: incompatible pointer types passing 'ShaderClosure (*)[1]' to parameter of type 'ShaderClosure *' (aka 'struct ShaderClosure *')
sd->flag |= bsdf_diffuse_setup(&sd->closure);
^~~~~~~~~~~~
/tmp/poclS7UnDg/program.cl:41956:50: note: passing argument to parameter 'sc' here
ccl_device int bsdf_diffuse_setup(ShaderClosure *sc)
^
1 warning generated.
Kernel compilation finished in 0.60s.
Writing: /tmp/blender.crash.txt
Erreur de segmentation (core dumped)
Donc je pense que c'est juste des bogues à corriger soit dans le noyau, soit dans Clang.
Mais bon c'est sur la bonne voie et au moins parait vivant comparé aux essais précédents 🙂.