Commit: 209cf2f89090ff8f23e8160d6d3557fed1bd575d Author: MATILLAT Quentin Date: Sun Aug 11 13:17:20 2019 +0200 Branches: soc-2019-embree-gpu https://developer.blender.org/rB209cf2f89090ff8f23e8160d6d3557fed1bd575d
Remove embree header =================================================================== D intern/cycles/bvh/embree/common/CMakeLists.txt D intern/cycles/bvh/embree/common/algorithms/CMakeLists.txt D intern/cycles/bvh/embree/common/algorithms/parallel_filter.h D intern/cycles/bvh/embree/common/algorithms/parallel_for.h D intern/cycles/bvh/embree/common/algorithms/parallel_for_for.h D intern/cycles/bvh/embree/common/algorithms/parallel_for_for_prefix_sum.h D intern/cycles/bvh/embree/common/algorithms/parallel_map.h D intern/cycles/bvh/embree/common/algorithms/parallel_partition.h D intern/cycles/bvh/embree/common/algorithms/parallel_prefix_sum.h D intern/cycles/bvh/embree/common/algorithms/parallel_reduce.h D intern/cycles/bvh/embree/common/algorithms/parallel_set.h D intern/cycles/bvh/embree/common/algorithms/parallel_sort.h D intern/cycles/bvh/embree/common/cmake/FindOpenImageIO.cmake D intern/cycles/bvh/embree/common/cmake/FindPNG.cmake D intern/cycles/bvh/embree/common/cmake/FindTBB.cmake D intern/cycles/bvh/embree/common/cmake/check_globals.cmake D intern/cycles/bvh/embree/common/cmake/check_isa_default.cmake D intern/cycles/bvh/embree/common/cmake/check_stack_frame_size.cmake D intern/cycles/bvh/embree/common/cmake/clang.cmake D intern/cycles/bvh/embree/common/cmake/crayprgenv.cmake D intern/cycles/bvh/embree/common/cmake/create_isa_dummy_file.cmake D intern/cycles/bvh/embree/common/cmake/embree-config-builddir.cmake D intern/cycles/bvh/embree/common/cmake/embree-config-version.cmake D intern/cycles/bvh/embree/common/cmake/embree-config.cmake D intern/cycles/bvh/embree/common/cmake/gnu.cmake D intern/cycles/bvh/embree/common/cmake/intel.cmake D intern/cycles/bvh/embree/common/cmake/ispc.cmake D intern/cycles/bvh/embree/common/cmake/msvc.cmake D intern/cycles/bvh/embree/common/cmake/msvc_post.cmake D intern/cycles/bvh/embree/common/cmake/package.cmake D intern/cycles/bvh/embree/common/cmake/rpm_ldconfig.sh D intern/cycles/bvh/embree/common/cmake/test.cmake D intern/cycles/bvh/embree/common/cmake/tutorial.cmake D intern/cycles/bvh/embree/common/cmake/uninstall.cmake.in D intern/cycles/bvh/embree/common/lexers/CMakeLists.txt D intern/cycles/bvh/embree/common/lexers/parsestream.h D intern/cycles/bvh/embree/common/lexers/stream.h D intern/cycles/bvh/embree/common/lexers/streamfilters.h D intern/cycles/bvh/embree/common/lexers/stringstream.h D intern/cycles/bvh/embree/common/lexers/tokenstream.h D intern/cycles/bvh/embree/common/math/CMakeLists.txt D intern/cycles/bvh/embree/common/math/affinespace.h D intern/cycles/bvh/embree/common/math/bbox.h D intern/cycles/bvh/embree/common/math/col3.h D intern/cycles/bvh/embree/common/math/col4.h D intern/cycles/bvh/embree/common/math/color.h D intern/cycles/bvh/embree/common/math/constants.h D intern/cycles/bvh/embree/common/math/interval.h D intern/cycles/bvh/embree/common/math/lbbox.h D intern/cycles/bvh/embree/common/math/linearspace2.h D intern/cycles/bvh/embree/common/math/linearspace3.h D intern/cycles/bvh/embree/common/math/math.h D intern/cycles/bvh/embree/common/math/obbox.h D intern/cycles/bvh/embree/common/math/quaternion.h D intern/cycles/bvh/embree/common/math/range.h D intern/cycles/bvh/embree/common/math/vec2.h D intern/cycles/bvh/embree/common/math/vec2fa.h D intern/cycles/bvh/embree/common/math/vec3.h D intern/cycles/bvh/embree/common/math/vec3ba.h D intern/cycles/bvh/embree/common/math/vec3fa.h D intern/cycles/bvh/embree/common/math/vec3ia.h D intern/cycles/bvh/embree/common/math/vec4.h D intern/cycles/bvh/embree/common/simd/CMakeLists.txt D intern/cycles/bvh/embree/common/simd/avx.h D intern/cycles/bvh/embree/common/simd/avx512.h D intern/cycles/bvh/embree/common/simd/simd.h D intern/cycles/bvh/embree/common/simd/sse.h D intern/cycles/bvh/embree/common/simd/varying.h D intern/cycles/bvh/embree/common/simd/vboold4_avx.h D intern/cycles/bvh/embree/common/simd/vboold4_avx512.h D intern/cycles/bvh/embree/common/simd/vboold8_avx512.h D intern/cycles/bvh/embree/common/simd/vboolf16_avx512.h D intern/cycles/bvh/embree/common/simd/vboolf4_avx512.h D intern/cycles/bvh/embree/common/simd/vboolf4_sse2.h D intern/cycles/bvh/embree/common/simd/vboolf8_avx.h D intern/cycles/bvh/embree/common/simd/vboolf8_avx512.h D intern/cycles/bvh/embree/common/simd/vdouble4_avx.h D intern/cycles/bvh/embree/common/simd/vdouble8_avx512.h D intern/cycles/bvh/embree/common/simd/vfloat16_avx512.h D intern/cycles/bvh/embree/common/simd/vfloat4_sse2.h D intern/cycles/bvh/embree/common/simd/vfloat8_avx.h D intern/cycles/bvh/embree/common/simd/vint16_avx512.h D intern/cycles/bvh/embree/common/simd/vint4_sse2.h D intern/cycles/bvh/embree/common/simd/vint8_avx.h D intern/cycles/bvh/embree/common/simd/vint8_avx2.h D intern/cycles/bvh/embree/common/simd/vllong4_avx2.h D intern/cycles/bvh/embree/common/simd/vllong8_avx512.h D intern/cycles/bvh/embree/common/simd/vuint16_avx512.h D intern/cycles/bvh/embree/common/simd/vuint4_sse2.h D intern/cycles/bvh/embree/common/simd/vuint8_avx.h D intern/cycles/bvh/embree/common/simd/vuint8_avx2.h D intern/cycles/bvh/embree/common/sys/CMakeLists.txt D intern/cycles/bvh/embree/common/sys/alloc.h D intern/cycles/bvh/embree/common/sys/array.h D intern/cycles/bvh/embree/common/sys/atomic.h D intern/cycles/bvh/embree/common/sys/barrier.h D intern/cycles/bvh/embree/common/sys/condition.h D intern/cycles/bvh/embree/common/sys/filename.h D intern/cycles/bvh/embree/common/sys/intrinsics.h D intern/cycles/bvh/embree/common/sys/library.h D intern/cycles/bvh/embree/common/sys/mutex.h D intern/cycles/bvh/embree/common/sys/platform.h D intern/cycles/bvh/embree/common/sys/ref.h D intern/cycles/bvh/embree/common/sys/regression.h D intern/cycles/bvh/embree/common/sys/string.h D intern/cycles/bvh/embree/common/sys/sysinfo.h D intern/cycles/bvh/embree/common/sys/thread.h D intern/cycles/bvh/embree/common/sys/vector.h D intern/cycles/bvh/embree/common/tasking/CMakeLists.txt D intern/cycles/bvh/embree/common/tasking/taskscheduler.h D intern/cycles/bvh/embree/common/tasking/taskschedulerinternal.h D intern/cycles/bvh/embree/common/tasking/taskschedulerppl.h D intern/cycles/bvh/embree/common/tasking/taskschedulertbb.h D intern/cycles/bvh/embree/kernels/CMakeLists.txt D intern/cycles/bvh/embree/kernels/builders/bvh_builder_hair.h D intern/cycles/bvh/embree/kernels/builders/bvh_builder_morton.h D intern/cycles/bvh/embree/kernels/builders/bvh_builder_msmblur.h D intern/cycles/bvh/embree/kernels/builders/bvh_builder_msmblur_hair.h D intern/cycles/bvh/embree/kernels/builders/bvh_builder_sah.h D intern/cycles/bvh/embree/kernels/builders/heuristic_binning.h D intern/cycles/bvh/embree/kernels/builders/heuristic_binning_array_aligned.h D intern/cycles/bvh/embree/kernels/builders/heuristic_binning_array_unaligned.h D intern/cycles/bvh/embree/kernels/builders/heuristic_openmerge_array.h D intern/cycles/bvh/embree/kernels/builders/heuristic_spatial.h D intern/cycles/bvh/embree/kernels/builders/heuristic_spatial_array.h D intern/cycles/bvh/embree/kernels/builders/heuristic_strand_array.h D intern/cycles/bvh/embree/kernels/builders/heuristic_timesplit_array.h D intern/cycles/bvh/embree/kernels/builders/priminfo.h D intern/cycles/bvh/embree/kernels/builders/primrefgen.h D intern/cycles/bvh/embree/kernels/builders/splitter.h D intern/cycles/bvh/embree/kernels/bvh/bvh.h D intern/cycles/bvh/embree/kernels/bvh/bvh4_factory.h D intern/cycles/bvh/embree/kernels/bvh/bvh8_factory.h D intern/cycles/bvh/embree/kernels/bvh/bvh_builder.h D intern/cycles/bvh/embree/kernels/bvh/bvh_builder_twolevel.h D intern/cycles/bvh/embree/kernels/bvh/bvh_factory.h D intern/cycles/bvh/embree/kernels/bvh/bvh_intersector1.h D intern/cycles/bvh/embree/kernels/bvh/bvh_intersector_hybrid.h D intern/cycles/bvh/embree/kernels/bvh/bvh_intersector_stream.h D intern/cycles/bvh/embree/kernels/bvh/bvh_intersector_stream_filters.h D intern/cycles/bvh/embree/kernels/bvh/bvh_refit.h D intern/cycles/bvh/embree/kernels/bvh/bvh_rotate.h D intern/cycles/bvh/embree/kernels/bvh/bvh_statistics.h D intern/cycles/bvh/embree/kernels/bvh/bvh_traverser1.h D intern/cycles/bvh/embree/kernels/bvh/bvh_traverser_stream.h D intern/cycles/bvh/embree/kernels/bvh/node_intersector.h D intern/cycles/bvh/embree/kernels/bvh/node_intersector1.h D intern/cycles/bvh/embree/kernels/bvh/node_intersector_frustum.h D intern/cycles/bvh/embree/kernels/bvh/node_intersector_packet.h D intern/cycles/bvh/embree/kernels/bvh/node_intersector_packet_stream.h D intern/cycles/bvh/embree/kernels/common/accel.h D intern/cycles/bvh/embree/kernels/common/accelinstance.h D intern/cycles/bvh/embree/kernels/common/acceln.h D intern/cycles/bvh/embree/kernels/common/accelset.h D intern/cycles/bvh/embree/kernels/common/alloc.h D intern/cycles/bvh/embree/kernels/common/buffer.h D intern/cycles/bvh/embree/kernels/common/builder.h D intern/cycles/bvh/embree/kernels/common/context.h D intern/cycles/bvh/embree/kernels/common/default.h D intern/cycles/bvh/embree/kernels/common/device.h D intern/cycles/bvh/embree/kernels/common/geometry.h D intern/cycles/bvh/embree/kernels/common/hit.h D intern/cycles/bvh/embree/kernels/common/isa.h D intern/cycles/bvh/embree/kernels/common/primref.h D intern/cycles/bvh/embree/kernels/common/primref_mb.h D intern/cycles/bvh/embree/kernels/common/profile.h D intern/cycles/bvh/embree/kernels/common/ray.h D intern/cycles/bvh/embree/kernels/common/rtcore.h D intern/cycles/bvh/embree/kernels/common/scene.h D intern/cycles/bvh/embree/kernels/common/scene_curves.h D intern/cycles/bvh/embree/kernels/common/scene_grid_mesh.h D intern/cycles/bvh/embree/kernels/common/scene_instance.h D intern/cycles/bvh/embree/kernels/common/scene_line_segments.h D intern/cycles/bvh/embree/kernels/common/scene_points.h D intern/cycles/bvh/embree/kernels/common/scene_quad_mesh.h D intern/cycles/bvh/embree/kernels/common/scene_subdiv_mesh.h D intern/cycles/bvh/embree/kernels/common/scene_triangle_mesh.h D intern/cycles/bvh/embree/kernels/common/scene_user_geometry.h D intern/cycles/bvh/embree/kernels/common/stack_item.h D intern/cycles/bvh/embree/kernels/common/stat.h D intern/cycles/bvh/embree/kernels/common/state.h D intern/cycles/bvh/embree/kernels/common/vector.h D intern/cycles/bvh/embree/kernels/config.h D intern/cycles/bvh/embree/kernels/config.h.in D intern/cycles/bvh/embree/kernels/embree.rc D intern/cycles/bvh/embree/kernels/export.linux.map.in D intern/cycles/bvh/embree/kernels/export.macosx.map D intern/cycles/bvh/embree/kernels/export.macosx.map.in D intern/cycles/bvh/embree/kernels/geometry/curveNi.h D intern/cycles/bvh/embree/kernels/geometry/curveNi_intersector.h D intern/cycles/bvh/embree/kernels/geometry/curveNi_mb.h D intern/cycles/bvh/embree/kernels/geometry/curveNi_mb_intersector.h D intern/cycles/bvh/embree/kernels/geometry/curveNv.h D intern/cycles/bvh/embree/kernels/geometry/curveNv_intersector.h D intern/cycles/bvh/embree/kernels/geometry/curve_intersector.h D intern/cycles/bvh/embree/kernels/geometry/curve_intersector_distance.h D intern/cycles/bvh/embree/kernels/geometry/curve_intersector_oriented.h D intern/cycles/bvh/embree/kernels/geometry/curve_intersector_precalculations.h D intern/cycles/bvh/embree/kernels/geometry/curve_intersector_ribbon.h D intern/cycles/bvh/embree/kernels/geometry/curve_intersector_sweep.h D intern/cycles/bvh/embree/kernels/geometry/curve_intersector_virtual.h D intern/cycles/bvh/embree/kernels/geometry/cylinder.h D intern/cycles/bvh/embree/kernels/geometry/disc_intersector.h D intern/cycles/bvh/embree/kernels/geometry/disci_intersector.h D intern/cycles/bvh/embree/kernels/geometry/filter.h D intern/cycles/bvh/embree/kernels/geometry/grid_intersector.h D intern/cycles/bvh/embree/kernels/geometry/grid_soa.h D intern/cycles/bvh/embree/kernels/geometry/grid_soa_intersector1.h D intern/cycles/bvh/embree/kernels/geometry/grid_soa_intersector_packet.h D intern/cycles/bvh/embree/kernels/geometry/instance.h D intern/cycles/bvh/embree/kernels/geometry/instance_intersector.h D intern/cycles/bvh/embree/kernels/geometry/intersector_epilog.h D intern/cycles/bvh/embree/kernels/geometry/intersector_iterators.h D intern/cycles/bvh/embree/kernels/geometry/line_intersector.h D intern/cycles/bvh/embree/kernels/geometry/linei.h D intern/cycles/bvh/embree/kernels/geometry/linei_intersector.h D intern/cycles/bvh/embree/kernels/geometry/object.h D intern/cycles/bvh/embree/kernels/geometry/object_intersector.h D intern/cycles/bvh/embree/kernels/geometry/plane.h D intern/cycles/bvh/embree/kernels/geometry/pointi.h D intern/cycles/bvh/embree/kernels/geometry/primitive.h D intern/cycles/bvh/embree/kernels/geometry/quad_intersector.h D intern/cycles/bvh/embree/kernels/geometry/quad_intersector_moeller.h D intern/cycles/bvh/embree/kernels/geometry/quad_intersector_pluecker.h D intern/cycles/bvh/embree/kernels/geometry/quadi.h D intern/cycles/bvh/embree/kernels/geometry/quadi_intersector.h D intern/cycles/bvh/embree/kernels/geometry/quadv.h D intern/cycles/bvh/embree/kernels/geometry/quadv_intersector.h D intern/cycles/bvh/embree/kernels/geometry/sphere_intersector.h D intern/cycles/bvh/embree/kernels/geometry/spherei_intersector.h D intern/cycles/bvh/embree/kernels/geometry/subdivpatch1.h D intern/cycles/bvh/embree/kernels/geometry/subdivpatch1_intersector.h D intern/cycles/bvh/embree/kernels/geometry/subgrid.h D intern/cycles/bvh/embree/kernels/geometry/subgrid_intersector.h D intern/cycles/bvh/embree/kernels/geometry/subgrid_intersector_moeller.h D intern/cycles/bvh/embree/kernels/geometry/subgrid_intersector_pluecker.h D intern/cycles/bvh/embree/kernels/geometry/subgrid_mb_intersector.h D intern/cycles/bvh/embree/kernels/geometry/triangle.h D intern/cycles/bvh/embree/kernels/geometry/triangle_intersector.h D intern/cycles/bvh/embree/kernels/geometry/triangle_intersector_moeller.h D intern/cycles/bvh/embree/kernels/geometry/triangle_intersector_pluecker.h D intern/cycles/bvh/embree/kernels/geometry/triangle_intersector_woop.h D intern/cycles/bvh/embree/kernels/geometry/trianglei.h D intern/cycles/bvh/embree/kernels/geometry/trianglei_intersector.h D intern/cycles/bvh/embree/kernels/geometry/trianglev.h D intern/cycles/bvh/embree/kernels/geometry/trianglev_intersector.h D intern/cycles/bvh/embree/kernels/geometry/trianglev_mb.h D intern/cycles/bvh/embree/kernels/geometry/trianglev_mb_intersector.h D intern/cycles/bvh/embree/kernels/hash.h.in D intern/cycles/bvh/embree/kernels/rtcore_version.h.in D intern/cycles/bvh/embree/kernels/subdiv/bezier_curve.h D intern/cycles/bvh/embree/kernels/subdiv/bezier_patch.h D intern/cycles/bvh/embree/kernels/subdiv/bilinear_patch.h D intern/cycles/bvh/embree/kernels/subdiv/bspline_curve.h D intern/cycles/bvh/embree/kernels/subdiv/bspline_patch.h D intern/cycles/bvh/embree/kernels/subdiv/catmullclark_coefficients.h D intern/cycles/bvh/embree/kernels/subdiv/catmullclark_patch.h D intern/cycles/bvh/embree/kernels/subdiv/catmullclark_ring.h D intern/cycles/bvh/embree/kernels/subdiv/feature_adaptive_eval.h D intern/cycles/bvh/embree/kernels/subdiv/feature_adaptive_eval_grid.h D intern/cycles/bvh/embree/kernels/subdiv/feature_adaptive_eval_simd.h D intern/cycles/bvh/embree/kernels/subdiv/gregory_patch.h D intern/cycles/bvh/embree/kernels/subdiv/gregory_patch_dense.h D intern/cycles/bvh/embree/kernels/subdiv/gridrange.h D intern/cycles/bvh/embree/kernels/subdiv/half_edge.h D intern/cycles/bvh/embree/kernels/subdiv/hermite_curve.h D intern/cycles/bvh/embree/kernels/subdiv/linear_bezier_patch.h D intern/cycles/bvh/embree/kernels/subdiv/patch.h D intern/cycles/bvh/embree/kernels/subdiv/patch_eval.h D intern/cycles/bvh/embree/kernels/subdiv/patch_eval_grid.h D intern/cycles/bvh/embree/kernels/subdiv/patch_eval_simd.h D intern/cycles/bvh/embree/kernels/subdiv/subdivpatch1base.h D intern/cycles/bvh/embree/kernels/subdiv/tessellation.h D intern/cycles/bvh/embree/kernels/subdiv/tessellation_cache.h =================================================================== diff --git a/intern/cycles/bvh/embree/common/CMakeLists.txt b/intern/cycles/bvh/embree/common/CMakeLists.txt deleted file mode 100644 index 234e9252adc..00000000000 --- a/intern/cycles/bvh/embree/common/CMakeLists.txt +++ /dev/null @@ -1,22 +0,0 @@ -## ======================================================================== ## -## Copyright 2009-2018 Intel Corporation ## -## ## -## Licensed under the Apache License, Version 2.0 (the "License"); ## -## you may not use this file except in compliance with the License. ## -## You may obtain a copy of the License at ## -## ## -## http://www.apache.org/licenses/LICENSE-2.0 ## -## ## -## Unless required by applicable law or agreed to in writing, software ## -## distributed under the License is distributed on an "AS IS" BASIS, ## -## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. ## -## See the License for the specific language governing permissions and ## -## limitations under the License. ## -## ======================================================================== ## - -ADD_SUBDIRECTORY(sys) -ADD_SUBDIRECTORY(math) -ADD_SUBDIRECTORY(simd) -ADD_SUBDIRECTORY(lexers) -ADD_SUBDIRECTORY(tasking) -ADD_SUBDIRECTORY(algorithms) diff --git a/intern/cycles/bvh/embree/common/algorithms/CMakeLists.txt b/intern/cycles/bvh/embree/common/algorithms/CMakeLists.txt deleted file mode 100644 index ad81d14a822..00000000000 --- a/intern/cycles/bvh/embree/common/algorithms/CMakeLists.txt +++ /dev/null @@ -1,31 +0,0 @@ -## ======================================================================== ## -## Copyright 2009-2018 Intel Corporation ## -## ## -## Licensed under the Apache License, Version 2.0 (the "License"); ## -## you may not use this file except in compliance with the License. ## -## You may obtain a copy of the License at ## -## ## -## http://www.apache.org/licenses/LICENSE-2.0 ## -## ## -## Unless required by applicable law or agreed to in writing, software ## -## distributed under the License is distributed on an "AS IS" BASIS, ## -## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. ## -## See the License for the specific language governing permissions and ## -## limitations under the License. ## -## ======================================================================== ## - -ADD_LIBRARY(algorithms OBJECT - parallel_for.cpp - parallel_reduce.cpp - parallel_prefix_sum.cpp - parallel_for_for.cpp - parallel_for_for_prefix_sum.cpp - parallel_partition.cpp - parallel_sort.cpp - parallel_set.cpp - parallel_map.cpp - parallel_filter.cpp -) - -SET_PROPERTY(TARGET algorithms PROPERTY FOLDER common) -SET_PROPERTY(TARGET algorithms APPEND PROPERTY COMPILE_FLAGS " ${FLAGS_LOWEST}") diff --git a/intern/cycles/bvh/embree/common/algorithms/parallel_filter.h b/intern/cycles/bvh/embree/common/algorithms/parallel_filter.h deleted file mode 100644 index 53182a717c6..00000000000 --- a/intern/cycles/bvh/embree/common/algorithms/parallel_filter.h +++ /dev/null @@ -1,106 +0,0 @@ -// ======================================================================== // -// Copyright 2009-2018 Intel Corporation // -// // -// Licensed under the Apache License, Version 2.0 (the "License"); // -// you may not use this file except in compliance with the License. // -// You may obtain a copy of the License at // -// // -// http://www.apache.org/licenses/LICENSE-2.0 // -// // -// Unless required by applicable law or agreed to in writing, software // -// distributed under the License is distributed on an "AS IS" BASIS, // -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // -// See the License for the specific language governing permissions and // -// limitations under the License. // -// ======================================================================== // - -#pragma once - -#include "parallel_for.h" - -namespace embree -{ - template<typename Ty, typename Index, typename Predicate> - inline Index sequential_filter( Ty* data, const Index first, const Index last, const Predicate& predicate) - { - Index j = first; - for (Index i=first; i<last; i++) - if (predicate(data[i])) - data[j++] = data[i]; - - return j; - } - - template<typename Ty, typename Index, typename Predicate> - inline Index parallel_filter( Ty* data, const Index begin, const Index end, const Index minStepSize, const Predicate& predicate) - { - /* sequential fallback */ - if (end-begin <= minStepSize) - return sequential_filter(data,begin,end,predicate); - - /* calculate number of tasks to use */ - enum { MAX_TASKS = 64 }; - const Index numThreads = TaskScheduler::threadCount(); - const Index numBlocks = (end-begin+minStepSize-1)/minStepSize; - const Index taskCount = min(numThreads,numBlocks,(Index)MAX_TASKS); - - /* filter blocks */ - Index nused[MAX_TASKS]; - Index nfree[MAX_TASKS]; - parallel_for(taskCount, [&](const Index taskIndex) - { - const Index i0 = begin+(taskIndex+0)*(end-begin)/taskCount; - const Index i1 = begin+(taskIndex+1)*(end-begin)/taskCount; - const Index i2 = sequential_filter(data,i0,i1,predicate); - nused[taskIndex] = i2-i0; - nfree[taskIndex] = i1-i2; - }); - - /* calculate offsets */ - Index sused=0; - Index sfree=0; - Index pfree[MAX_TASKS]; - for (Index i=0; i<taskCount; i++) - { - sused+=nused[i]; - Index cfree = nfree[i]; pfree[i] = sfree; sfree+=cfree; - } - - /* return if we did not filter out any element */ - assert(sfree <= end-begin); - assert(sused <= end-begin); - if (sused == end-begin) - return end; - - /* otherwise we have to copy misplaced elements around */ - parallel_for(taskCount, [&](const Index taskIndex) - { - /* destination to write elements to */ - Index dst = begin+(taskIndex+0)*(end-begin)/taskCount+nused[taskIndex]; - Index dst_end = min(dst+nfree[taskIndex],begin+sused); - if (dst_end <= dst) return; - - /* range of misplaced elements to copy to destination */ - Index r0 = pfree[taskIndex]; - Index r1 = r0+dst_end-dst; - - /* find range in misplaced elements in back to front order */ - Index k0=0; - for (Index i=taskCount-1; i>0; i--) - { - if (k0 > r1) break; - Index k1 = k0+nused[i]; - Index src = begin+(i+0)*(end-begin)/taskCount+nused[i]; - for (Index i=max(r0,k0); i<min(r1,k1); i++) { - Index isrc = src-i+k0-1; - assert(dst >= begin && dst < end); - assert(isrc >= begin && isrc < end); - data[dst++] = data[isrc]; - } - k0 = k1; - } - }); - - return begin+sused; - } -} diff --git a/intern/cycles/bvh/embree/common/algorithms/parallel_for.h b/intern/cycles/bvh/embree/common/algorithms/parallel_for.h deleted file mode 100644 index 9249d373ec0..00000000000 --- a/intern/cycles/bvh/embree/common/algorithms/parallel_for.h +++ /dev/null @@ -1,133 +0,0 @@ -// ======================================================================== // -// Copyright 2009-2018 Intel Corporation // -// // -// Licensed under the Apache License, Version 2.0 (the "License"); // -// you may not use this file except in compliance with the License. // -// You may obtain a copy of the License at // -// // -// http://www.apache.org/licenses/LICENSE-2.0 // -// // -// Unless required by applicable law or agreed to in writing, software // -// distributed under the License is distributed on an "AS IS" BASIS, // -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // -// See the License for the specific language governing permissions and // -// limitations under the License. // -// ======================================================================== // - -#pragma once - -#include "../tasking/taskscheduler.h" -#include "../sys/array.h" -#include "../math/math.h" -#include "../math/range.h" - -namespace embree -{ - /* parallel_for without range */ - template<typename Index, typename Func> - __forceinline void parallel_for( const Index N, const Func& func) - { -#if defined(TASKING_INTERNAL) - if (N) { - TaskScheduler::spawn(Index(0),N,Index(1),[&] (const range<Index>& r) { - assert(r.size() == 1); - func(r.begin()); - }); - if (!TaskScheduler::wait()) - throw std::runtime_error("task cancelled"); - } - -#elif defined(TASKING_TBB) - tbb::parallel_for(Index(0),N,Index(1),[&](Index i) { - func(i); - }); - if (tbb::task::self().is_cancelled()) - throw std::runtime_error("task cancelled"); - -#elif defined(TASKING_PPL) - concurrency::parallel_for(Index @@ Diff output truncated at 10240 characters. @@ _______________________________________________ Bf-blender-cvs mailing list [email protected] https://lists.blender.org/mailman/listinfo/bf-blender-cvs
