Commit: 930186d3df9cb55832d625e96a9655491360ba1e Author: Sergey Sharybin Date: Mon Feb 13 18:24:45 2017 +0100 Branches: master https://developer.blender.org/rB930186d3df9cb55832d625e96a9655491360ba1e
Cycles: Optimize sorting of transparent intersections on CUDA =================================================================== M intern/cycles/kernel/bvh/bvh.h =================================================================== diff --git a/intern/cycles/kernel/bvh/bvh.h b/intern/cycles/kernel/bvh/bvh.h index dfd7010601..321983c1ab 100644 --- a/intern/cycles/kernel/bvh/bvh.h +++ b/intern/cycles/kernel/bvh/bvh.h @@ -378,16 +378,19 @@ ccl_device_inline void sort_intersections(Intersection *hits, uint num_hits) { #ifdef __KERNEL_GPU__ /* Use bubble sort which has more friendly memory pattern on GPU. */ - int i, j; - for(i = 0; i < num_hits; ++i) { - for(j = 0; j < num_hits - 1; ++j) { + bool swapped; + do { + swapped = false; + for(int j = 0; j < num_hits - 1; ++j) { if(hits[j].t > hits[j + 1].t) { struct Intersection tmp = hits[j]; hits[j] = hits[j + 1]; hits[j + 1] = tmp; + swapped = true; } } - } + --num_hits; + } while(swapped); #else qsort(hits, num_hits, sizeof(Intersection), intersections_compare); #endif _______________________________________________ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org https://lists.blender.org/mailman/listinfo/bf-blender-cvs