[Bf-blender-cvs] SVN commit: /data/svn/repos/bf-blender [62378] trunk/lib/linux_centos7_x86_64/embree: Libs: Linux, add Embree 3.8.0

Sergey Sharybin sergey.vfx at gmail.com
Mon Feb 17 14:28:38 CET 2020


Revision: 62378
          https://developer.blender.org/rBL62378
Author:   sergey
Date:     2020-02-17 14:28:38 +0100 (Mon, 17 Feb 2020)
Log Message:
-----------
Libs: Linux, add Embree 3.8.0

Added Paths:
-----------
    trunk/lib/linux_centos7_x86_64/embree/
    trunk/lib/linux_centos7_x86_64/embree/include/
    trunk/lib/linux_centos7_x86_64/embree/include/embree3/
    trunk/lib/linux_centos7_x86_64/embree/include/embree3/rtcore.h
    trunk/lib/linux_centos7_x86_64/embree/include/embree3/rtcore_buffer.h
    trunk/lib/linux_centos7_x86_64/embree/include/embree3/rtcore_builder.h
    trunk/lib/linux_centos7_x86_64/embree/include/embree3/rtcore_common.h
    trunk/lib/linux_centos7_x86_64/embree/include/embree3/rtcore_config.h
    trunk/lib/linux_centos7_x86_64/embree/include/embree3/rtcore_device.h
    trunk/lib/linux_centos7_x86_64/embree/include/embree3/rtcore_geometry.h
    trunk/lib/linux_centos7_x86_64/embree/include/embree3/rtcore_quaternion.h
    trunk/lib/linux_centos7_x86_64/embree/include/embree3/rtcore_ray.h
    trunk/lib/linux_centos7_x86_64/embree/include/embree3/rtcore_scene.h
    trunk/lib/linux_centos7_x86_64/embree/lib/
    trunk/lib/linux_centos7_x86_64/embree/lib/libembree3.a
    trunk/lib/linux_centos7_x86_64/embree/lib/libembree_avx.a
    trunk/lib/linux_centos7_x86_64/embree/lib/libembree_avx2.a
    trunk/lib/linux_centos7_x86_64/embree/lib/libembree_sse42.a
    trunk/lib/linux_centos7_x86_64/embree/lib/liblexers.a
    trunk/lib/linux_centos7_x86_64/embree/lib/libmath.a
    trunk/lib/linux_centos7_x86_64/embree/lib/libsimd.a
    trunk/lib/linux_centos7_x86_64/embree/lib/libsys.a
    trunk/lib/linux_centos7_x86_64/embree/lib/libtasking.a

Added: trunk/lib/linux_centos7_x86_64/embree/include/embree3/rtcore.h
===================================================================
--- trunk/lib/linux_centos7_x86_64/embree/include/embree3/rtcore.h	                        (rev 0)
+++ trunk/lib/linux_centos7_x86_64/embree/include/embree3/rtcore.h	2020-02-17 13:28:38 UTC (rev 62378)
@@ -0,0 +1,27 @@
+// ======================================================================== //
+// Copyright 2009-2020 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 "rtcore_config.h"
+#include "rtcore_common.h"
+#include "rtcore_device.h"
+#include "rtcore_buffer.h"
+#include "rtcore_ray.h"
+#include "rtcore_geometry.h"
+#include "rtcore_scene.h"
+#include "rtcore_builder.h"
+#include "rtcore_quaternion.h"

Added: trunk/lib/linux_centos7_x86_64/embree/include/embree3/rtcore_buffer.h
===================================================================
--- trunk/lib/linux_centos7_x86_64/embree/include/embree3/rtcore_buffer.h	                        (rev 0)
+++ trunk/lib/linux_centos7_x86_64/embree/include/embree3/rtcore_buffer.h	2020-02-17 13:28:38 UTC (rev 62378)
@@ -0,0 +1,64 @@
+// ======================================================================== //
+// Copyright 2009-2020 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 "rtcore_device.h"
+
+RTC_NAMESPACE_BEGIN
+
+/* Types of buffers */
+enum RTCBufferType
+{
+  RTC_BUFFER_TYPE_INDEX            = 0,
+  RTC_BUFFER_TYPE_VERTEX           = 1,
+  RTC_BUFFER_TYPE_VERTEX_ATTRIBUTE = 2,
+  RTC_BUFFER_TYPE_NORMAL           = 3,
+  RTC_BUFFER_TYPE_TANGENT          = 4,
+  RTC_BUFFER_TYPE_NORMAL_DERIVATIVE = 5,
+
+  RTC_BUFFER_TYPE_GRID                 = 8,
+
+  RTC_BUFFER_TYPE_FACE                 = 16,
+  RTC_BUFFER_TYPE_LEVEL                = 17,
+  RTC_BUFFER_TYPE_EDGE_CREASE_INDEX    = 18,
+  RTC_BUFFER_TYPE_EDGE_CREASE_WEIGHT   = 19,
+  RTC_BUFFER_TYPE_VERTEX_CREASE_INDEX  = 20,
+  RTC_BUFFER_TYPE_VERTEX_CREASE_WEIGHT = 21,
+  RTC_BUFFER_TYPE_HOLE                 = 22,
+
+  RTC_BUFFER_TYPE_FLAGS = 32
+};
+
+/* Opaque buffer type */
+typedef struct RTCBufferTy* RTCBuffer;
+
+/* Creates a new buffer. */
+RTC_API RTCBuffer rtcNewBuffer(RTCDevice device, size_t byteSize);
+
+/* Creates a new shared buffer. */
+RTC_API RTCBuffer rtcNewSharedBuffer(RTCDevice device, void* ptr, size_t byteSize);
+
+/* Returns a pointer to the buffer data. */
+RTC_API void* rtcGetBufferData(RTCBuffer buffer);
+
+/* Retains the buffer (increments the reference count). */
+RTC_API void rtcRetainBuffer(RTCBuffer buffer);
+
+/* Releases the buffer (decrements the reference count). */
+RTC_API void rtcReleaseBuffer(RTCBuffer buffer);
+
+RTC_NAMESPACE_END

Added: trunk/lib/linux_centos7_x86_64/embree/include/embree3/rtcore_builder.h
===================================================================
--- trunk/lib/linux_centos7_x86_64/embree/include/embree3/rtcore_builder.h	                        (rev 0)
+++ trunk/lib/linux_centos7_x86_64/embree/include/embree3/rtcore_builder.h	2020-02-17 13:28:38 UTC (rev 62378)
@@ -0,0 +1,138 @@
+// ======================================================================== //
+// Copyright 2009-2020 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 "rtcore_scene.h"
+
+RTC_NAMESPACE_BEGIN
+  
+/* Opaque BVH type */
+typedef struct RTCBVHTy* RTCBVH;
+
+/* Input build primitives for the builder */
+struct RTC_ALIGN(32) RTCBuildPrimitive
+{
+  float lower_x, lower_y, lower_z; 
+  unsigned int geomID;
+  float upper_x, upper_y, upper_z;
+  unsigned int primID;
+};
+
+/* Opaque thread local allocator type */
+typedef struct RTCThreadLocalAllocatorTy* RTCThreadLocalAllocator;
+
+/* Callback to create a node */
+typedef void* (*RTCCreateNodeFunction) (RTCThreadLocalAllocator allocator, unsigned int childCount, void* userPtr);
+
+/* Callback to set the pointer to all children */
+typedef void (*RTCSetNodeChildrenFunction) (void* nodePtr, void** children, unsigned int childCount, void* userPtr);
+
+/* Callback to set the bounds of all children */
+typedef void (*RTCSetNodeBoundsFunction) (void* nodePtr, const struct RTCBounds** bounds, unsigned int childCount, void* userPtr);
+
+/* Callback to create a leaf node */
+typedef void* (*RTCCreateLeafFunction) (RTCThreadLocalAllocator allocator, const struct RTCBuildPrimitive* primitives, size_t primitiveCount, void* userPtr);
+
+/* Callback to split a build primitive */
+typedef void (*RTCSplitPrimitiveFunction) (const struct RTCBuildPrimitive* primitive, unsigned int dimension, float position, struct RTCBounds* leftBounds, struct RTCBounds* rightBounds, void* userPtr);
+
+/* Build flags */
+enum RTCBuildFlags
+{
+  RTC_BUILD_FLAG_NONE    = 0,
+  RTC_BUILD_FLAG_DYNAMIC = (1 << 0),
+};
+
+enum RTCBuildConstants
+{
+  RTC_BUILD_MAX_PRIMITIVES_PER_LEAF = 32
+};
+
+/* Input for builders */
+struct RTCBuildArguments
+{
+  size_t byteSize;
+  
+  enum RTCBuildQuality buildQuality;
+  enum RTCBuildFlags buildFlags;
+  unsigned int maxBranchingFactor;
+  unsigned int maxDepth;
+  unsigned int sahBlockSize;
+  unsigned int minLeafSize;
+  unsigned int maxLeafSize;
+  float traversalCost;
+  float intersectionCost;
+  
+  RTCBVH bvh;
+  struct RTCBuildPrimitive* primitives;
+  size_t primitiveCount;
+  size_t primitiveArrayCapacity;
+  
+  RTCCreateNodeFunction createNode;
+  RTCSetNodeChildrenFunction setNodeChildren;
+  RTCSetNodeBoundsFunction setNodeBounds;
+  RTCCreateLeafFunction createLeaf;
+  RTCSplitPrimitiveFunction splitPrimitive;
+  RTCProgressMonitorFunction buildProgress;
+  void* userPtr;
+};
+
+/* Returns the default build settings.  */
+RTC_FORCEINLINE struct RTCBuildArguments rtcDefaultBuildArguments()
+{
+  struct RTCBuildArguments args;
+  args.byteSize = sizeof(args);
+  args.buildQuality = RTC_BUILD_QUALITY_MEDIUM;
+  args.buildFlags = RTC_BUILD_FLAG_NONE;
+  args.maxBranchingFactor = 2;
+  args.maxDepth = 32;
+  args.sahBlockSize = 1;
+  args.minLeafSize = 1;
+  args.maxLeafSize = RTC_BUILD_MAX_PRIMITIVES_PER_LEAF;
+  args.traversalCost = 1.0f;
+  args.intersectionCost = 1.0f;
+  args.bvh = NULL;
+  args.primitives = NULL;
+  args.primitiveCount = 0;
+  args.primitiveArrayCapacity = 0;
+  args.createNode = NULL;
+  args.setNodeChildren = NULL;
+  args.setNodeBounds = NULL;
+  args.createLeaf = NULL;
+  args.splitPrimitive = NULL;
+  args.buildProgress = NULL;
+  args.userPtr = NULL;
+  return args;
+}
+
+/* Creates a new BVH. */
+RTC_API RTCBVH rtcNewBVH(RTCDevice device);
+
+/* Builds a BVH. */
+RTC_API void* rtcBuildBVH(const struct RTCBuildArguments* args);
+
+/* Allocates memory using the thread local allocator. */
+RTC_API void* rtcThreadLocalAlloc(RTCThreadLocalAllocator allocator, size_t bytes, size_t align);
+
+/* Retains the BVH (increments reference count). */
+RTC_API void rtcRetainBVH(RTCBVH bvh);
+
+/* Releases the BVH (decrements reference count). */
+RTC_API void rtcReleaseBVH(RTCBVH bvh);
+
+RTC_NAMESPACE_END
+

Added: trunk/lib/linux_centos7_x86_64/embree/include/embree3/rtcore_common.h
===================================================================
--- trunk/lib/linux_centos7_x86_64/embree/include/embree3/rtcore_common.h	                        (rev 0)
+++ trunk/lib/linux_centos7_x86_64/embree/include/embree3/rtcore_common.h	2020-02-17 13:28:38 UTC (rev 62378)

@@ Diff output truncated at 10240 characters. @@


More information about the Bf-blender-cvs mailing list