Skip to content

Commit

Permalink
Upgrade Embree to the latest official release.
Browse files Browse the repository at this point in the history
Since Embree v3.13.0 supports AARCH64, switch back to the
official repo instead of using Embree-aarch64.

`thirdparty/embree/patches/godot-changes.patch` should now contain
an accurate diff of the changes done to the library.
  • Loading branch information
JFonS committed May 21, 2021
1 parent 42b6602 commit 767e374
Show file tree
Hide file tree
Showing 350 changed files with 13,017 additions and 11,323 deletions.
4 changes: 2 additions & 2 deletions COPYRIGHT.txt
Original file line number Diff line number Diff line change
Expand Up @@ -131,8 +131,8 @@ Comment: doctest
Copyright: 2016-2020, Viktor Kirilov
License: Expat

Files: ./thirdparty/embree-aarch64/
Comment: Embree-aarch64
Files: ./thirdparty/embree/
Comment: Embree
Copyright: 2009-2021 Intel Corporation
License: Apache-2.0

Expand Down
18 changes: 6 additions & 12 deletions modules/raycast/SCsub
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ env_raycast = env_modules.Clone()
thirdparty_obj = []

if env["builtin_embree"]:
thirdparty_dir = "#thirdparty/embree-aarch64/"
thirdparty_dir = "#thirdparty/embree/"

embree_src = [
"common/sys/sysinfo.cpp",
Expand All @@ -28,16 +28,6 @@ if env["builtin_embree"]:
"common/lexers/stringstream.cpp",
"common/lexers/tokenstream.cpp",
"common/tasking/taskschedulerinternal.cpp",
"common/algorithms/parallel_for.cpp",
"common/algorithms/parallel_reduce.cpp",
"common/algorithms/parallel_prefix_sum.cpp",
"common/algorithms/parallel_for_for.cpp",
"common/algorithms/parallel_for_for_prefix_sum.cpp",
"common/algorithms/parallel_partition.cpp",
"common/algorithms/parallel_sort.cpp",
"common/algorithms/parallel_set.cpp",
"common/algorithms/parallel_map.cpp",
"common/algorithms/parallel_filter.cpp",
"kernels/common/device.cpp",
"kernels/common/stat.cpp",
"kernels/common/acceln.cpp",
Expand Down Expand Up @@ -82,13 +72,17 @@ if env["builtin_embree"]:
if env["platform"] == "windows":
if env.msvc:
env.Append(LINKFLAGS=["psapi.lib"])
env_raycast.Append(CPPDEFINES=["__SSE2__", "__SSE__"])
else:
env.Append(LIBS=["psapi"])

env_thirdparty = env_raycast.Clone()
env_thirdparty.disable_warnings()
env_thirdparty.add_source_files(thirdparty_obj, thirdparty_sources)

if not env["arch"] in ["x86", "x86_64"] or env.msvc:
# Embree needs those, it will automatically use SSE2NEON in ARM
env_thirdparty.Append(CPPDEFINES=["__SSE2__", "__SSE__"])

env.modules_sources += thirdparty_obj


Expand Down
3 changes: 1 addition & 2 deletions modules/raycast/config.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
def can_build(env, platform):
# Depends on Embree library, which supports only x86_64 (originally)
# and aarch64 (thanks to the embree-aarch64 fork).
# Depends on Embree library, which only supports x86_64 and aarch64.

if platform == "android":
return env["android_arch"] in ["arm64v8", "x86_64"]
Expand Down
17 changes: 4 additions & 13 deletions modules/raycast/godot_update_embree.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@
"common/algorithms",
"common/lexers",
"common/simd",
"common/simd/arm",
"include/embree3",
"kernels/subdiv",
"kernels/geometry",
Expand All @@ -32,16 +33,6 @@
"common/lexers/stringstream.cpp",
"common/lexers/tokenstream.cpp",
"common/tasking/taskschedulerinternal.cpp",
"common/algorithms/parallel_for.cpp",
"common/algorithms/parallel_reduce.cpp",
"common/algorithms/parallel_prefix_sum.cpp",
"common/algorithms/parallel_for_for.cpp",
"common/algorithms/parallel_for_for_prefix_sum.cpp",
"common/algorithms/parallel_partition.cpp",
"common/algorithms/parallel_sort.cpp",
"common/algorithms/parallel_set.cpp",
"common/algorithms/parallel_map.cpp",
"common/algorithms/parallel_filter.cpp",
"kernels/common/device.cpp",
"kernels/common/stat.cpp",
"kernels/common/acceln.cpp",
Expand Down Expand Up @@ -74,11 +65,11 @@

os.chdir("../../thirdparty")

dir_name = "embree-aarch64"
dir_name = "embree"
if os.path.exists(dir_name):
shutil.rmtree(dir_name)

subprocess.run(["git", "clone", "https://github.com/lighttransport/embree-aarch64.git", "embree-tmp"])
subprocess.run(["git", "clone", "https://github.com/embree/embree.git", "embree-tmp"])
os.chdir("embree-tmp")

commit_hash = str(subprocess.check_output(["git", "rev-parse", "HEAD"], universal_newlines=True)).strip()
Expand Down Expand Up @@ -197,7 +188,7 @@
with open(os.path.join(dest_dir, "include/embree3/rtcore_config.h"), "w") as config_file:
config_file.write(
f"""
// Copyright 2009-2020 Intel Corporation
// Copyright 2009-2021 Intel Corporation
// SPDX-License-Identifier: Apache-2.0
#pragma once
Expand Down
8 changes: 4 additions & 4 deletions thirdparty/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -61,10 +61,10 @@ Files extracted from upstream source:
Extracted from .zip provided. Extracted license and header only.


## embree-aarch64
## embree

- Upstream: https://github.com/lighttransport/embree-aarch64
- Version: 3.12.1 (6ef362f99af80c9dfe8dd2bfc582d9067897edc6, 2020)
- Upstream: https://github.com/embree/embree
- Version: 3.13.0 (7c53133eb21424f7f0ae1e25bf357e358feaf6ab, 2021)
- License: Apache 2.0

Files extracted from upstream:
Expand All @@ -73,7 +73,7 @@ Files extracted from upstream:
- All header files in the directories listed in `modules/raycast/godot_update_embree.py`

The `modules/raycast/godot_update_embree.py` script can be used to pull the
relevant files from the latest Embree-aarch64 release and apply some automatic changes.
relevant files from the latest Embree release and apply some automatic changes.

Some changes have been made in order to remove exceptions and fix minor build errors.
They are marked with `// -- GODOT start --` and `// -- GODOT end --`
Expand Down
56 changes: 0 additions & 56 deletions thirdparty/embree-aarch64/common/algorithms/parallel_filter.cpp

This file was deleted.

48 changes: 0 additions & 48 deletions thirdparty/embree-aarch64/common/algorithms/parallel_for.cpp

This file was deleted.

63 changes: 0 additions & 63 deletions thirdparty/embree-aarch64/common/algorithms/parallel_for_for.cpp

This file was deleted.

This file was deleted.

Loading

0 comments on commit 767e374

Please sign in to comment.