summaryrefslogtreecommitdiff
path: root/modules/raycast/SCsub
AgeCommit message (Collapse)Author
2022-12-26Fix arm64 build when using ClangFilipe Rinaldi
The commit b5a8055b5c should target GCC builds only as -flax-vector-conversions has different behaviour in Clang and is currently making the build fail. Signed-off-by: Filipe Rinaldi <filipe.rinaldi@gmail.com>
2022-12-20embree: Fix Linux ARM64 build with `-flax-vector-conversions`Rémi Verschelde
This is a change done upstream in the `devel3` branch for 3.13.6: https://github.com/embree/embree/commit/82ca6b5ccb7abe0403a658a0e079926478f04cb1 They also seem to define it for macOS, but for us it breaks the build... ¯\_(ツ)_/¯ Also change wrong use of CPPFLAGS (pre-processor) where CXXFLAGS (C++) makes more sense.
2022-11-25embree: Enable raycast module build for Web and Windows x86_32Rémi Verschelde
Embree initially only supported x86_64, then got arm64 support added. Now it seems to be possible to build it with Emscripten (wasm32) and on x86_32 Windows.
2022-09-28Fix MSVC warnings C4324, C4389, C4456, and C4459Rémi Verschelde
Part of #66537.
2022-09-23SCons: Cleanup `DEBUG`, `_DEBUG` and `NDEBUG` definesRémi Verschelde
- `_DEBUG` is MSVC specific so it didn't make much sense to define for Android and iOS builds. - iOS was the only platform to define `DEBUG`. We don't use it anywhere outside thirdparty code, which we usually don't intend to debug, so it seems better to be consistent with other platforms. - Consistently define `NDEBUG` to disable assert behavior in both `release` and `release_debug` targets. This used to be set for `release` for all platforms, and `release_debug` for Android and iOS only. - Due to the above, I removed the only use we made of `assert()` in Godot code, which was only implemented for Unix anyway, should have been `DEV_ENABLED`, and is in PoolAllocator which we don't actually use. - The denoise and recast modules keep defining `NDEBUG` even for the `debug` target as we don't want OIDN and Embree asserting all over the place.
2022-08-25Unify bits, arch, and android_arch into env["arch"]Aaron Franke
Fully removes the `bits` option and adapts the code that relied on it. Co-authored-by: Rémi Verschelde <rverschelde@gmail.com>
2021-09-30Merge pull request #53245 from JFonS/occ_fixes2Rémi Verschelde
Occlusion culling fixes
2021-09-30Occlusion culling fixesjfons
Fixes some issues found by UBSAN and other misc things: * Fixed memory leak on exit. * Properly align ray packet buffer to 64 bytes. * Added some compiler flags from Embree's build system. * Fixed ray masks.
2021-09-28Force optimized builds for thirdparty Embree filesjfons
2021-09-13Upgrade Embree and enable ray packetsJoan Fons
Minor patch upgrade. Enabling ray packets results in faster processing of ray streams (i.e. occlusion culling buffer updates) at the cost of slightly larger binary sizes.
2021-05-21Upgrade Embree to the latest official release.jfons
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.
2021-05-04Port changes to the "raycast" module build files from 3.xjfons
2021-04-23Implement occlusion cullingjfons
Added an occlusion culling system with support for static occluder meshes. It can be enabled via `Project Settings > Rendering > Occlusion Culling > Use Occlusion Culling`. Occluders are defined via the new `Occluder3D` resource and instanced using the new `OccluderInstance3D` node. The occluders can also be automatically baked from a scene using the built-in editor plugin.