Hi, On 04/28/11 12:28, Brecht Van Lommel wrote: > Actually, anything on this list is open to be implemented by others. > >From the point of view of the core engine, if implemented well they > can fit in right away. I guess the first ones go from a couple of days > to a week, once you are familiar with the code, the big features can > take from a week to multiple months. It's quite hard to say, but if > someone is interested, they can of course contact me, and I can give > some pointers on how to go about implementing things. > > For me personally, integration, stability, performance, will likely > take up most of the time for now. How should we report build problems found? Here on the list?
If so, on a Gentoo 32-bit Linux system with GCC 4.4.5 I get: [ 95%] Building CXX object intern/cycles/util/CMakeFiles/cycles_util.dir/util_system.cpp.o /home/melis/c/blender-cycles-svn/intern/cycles/util/util_system.cpp: In function 'std::string ccl::system_cpu_brand_string()': /home/melis/c/blender-cycles-svn/intern/cycles/util/util_system.cpp:63: error: can't find a register in class 'BREG' while reloading 'asm' /home/melis/c/blender-cycles-svn/intern/cycles/util/util_system.cpp:63: error: can't find a register in class 'BREG' while reloading 'asm' /home/melis/c/blender-cycles-svn/intern/cycles/util/util_system.cpp:63: error: can't find a register in class 'BREG' while reloading 'asm' /home/melis/c/blender-cycles-svn/intern/cycles/util/util_system.cpp:63: error: can't find a register in class 'BREG' while reloading 'asm' /home/melis/c/blender-cycles-svn/intern/cycles/util/util_system.cpp:63: error: 'asm' operand has impossible constraints /home/melis/c/blender-cycles-svn/intern/cycles/util/util_system.cpp:63: error: 'asm' operand has impossible constraints /home/melis/c/blender-cycles-svn/intern/cycles/util/util_system.cpp:63: error: 'asm' operand has impossible constraints /home/melis/c/blender-cycles-svn/intern/cycles/util/util_system.cpp:63: error: 'asm' operand has impossible constraints make[2]: *** [intern/cycles/util/CMakeFiles/cycles_util.dir/util_system.cpp.o] Error 1 make[1]: *** [intern/cycles/util/CMakeFiles/cycles_util.dir/all] Error 2 make: *** [all] Error 2 Attached a patch (untested, but it compiles) based on the stuff in http://newbiz.github.com/cpp/2010/12/20/Playing-with-cpuid.html. Regards, Paul
Index: intern/cycles/util/util_system.cpp =================================================================== --- intern/cycles/util/util_system.cpp (revision 36380) +++ intern/cycles/util/util_system.cpp (working copy) @@ -45,7 +45,7 @@ #elif defined(__APPLE__) size_t len = sizeof(count); int mib[2] = { CTL_HW, HW_NCPU }; - + sysctl(mib, 2, &count, &len, NULL, 0); #else count = (uint)sysconf(_SC_NPROCESSORS_ONLN); @@ -60,7 +60,24 @@ #ifndef _WIN32 static void __cpuid(int data[4], int selector) { - asm("cpuid" : "=a" (data[0]), "=b" (data[1]), "=c" (data[2]), "=d" (data[3]) : "a"(selector)); + uint32_t eax; // output: eax + uint32_t ebx; // output: ebx + uint32_t ecx; // output: ecx + uint32_t edx; // output: edx + + asm( + "pushl %%ebx\n\t" + "cpuid \n\t" + "movl %%ebx, %1\n\t" + "popl %%ebx\n\t" + : "=a" (eax), "=r" (ebx), "=c" (ecx), "=d" (edx) + : "a"(selector) + : "cc"); + + data[0] = eax; + data[1] = ebx; + data[2] = ecx; + data[3] = edx; } #endif
_______________________________________________ Bf-committers mailing list Bf-committers@blender.org http://lists.blender.org/mailman/listinfo/bf-committers