Vendor oneTBB 2023.0.0 (headers, import libs, DLLs) - #651
Open
noisethanks wants to merge 1 commit into
Open
noisethanks wants to merge 1 commit into
noisethanks wants to merge 1 commit into
Conversation
Adds the oneTBB 2023.0.0 distribution as a base layer, with no consumer wiring. Nothing in the engine references these files yet, so this commit is functionally inert: the build output is unchanged. - src/3rd party/tbb, src/3rd party/oneapi: public headers, replacing the stale TBB header drop that was already in the tree. - sdk/libraries/x64: tbb.lib, tbb12.lib, tbbmalloc.lib, tbbmalloc_proxy.lib (needed at link time by later layers, and by oneTBB's implicit MSVC auto-linkage). - sdk/binaries: the matching tbb.dll, tbb12.dll, tbbmalloc.dll, tbbmalloc_proxy.dll. Also removes src/3rd party/serial/, which was orphaned: its only referrer was the old 3rd party/tbb/parallel_for.h, which this drop replaces. .gitignore needed a fix so the import libs are actually committed. The pre-existing /**/x64/ rule excludes the *directory*, and git will not descend into an excluded directory -- so the directory exclusion is lifted first, the contents re-ignored, then the four .lib files re-included by name.
Author
|
I have a test build working with this PR as well as allocator and scheduler. Here's the branch. tbb_build. Build can be found in Releases. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Vendor oneTBB 2023.0.0
Replaces the currently-vendored TBB 2020.0 (classic, pre-oneAPI-rebrand)
with oneTBB 2023.0.0, the current stable release. Headers move from
src/3rd party/tbb/ to a combination of a thin forwarding layer there plus
the real implementation under the new src/3rd party/oneapi/tbb/ - this is
how oneTBB itself organizes its public headers, not a restructuring choice
made here.
Also included, since they were dependent on/adjacent to this swap:
tbb.lib alias (oneTBB renames the core binary; "12" is a binary-interface
version, unrelated to the TBB release version). tbbmalloc.dll/.lib and
tbbmalloc_proxy.dll/.lib added alongside - not currently used by any code
(nothing in this PR wires them in), but this is the natural place to
vendor them since they ship as a matched set with the core library.
because TBB 2020.0's own parallel_for.h referenced it as a fallback;
oneTBB's version doesn't, leaving it orphaned.
actually commit (the existing /**/x64/ rule was silently excluding them,
which would have broken linking for anyone building from a fresh clone).
Nothing in the existing engine currently references any TBB symbol, so this
verified as a behavior-preserving change: 0 build errors, and the resulting
exe's import table is byte-for-byte identical to current master (36 DLLs,
no tbb* entries either before or after).
The one exception: src/Layers/xrRender/ParticleEffect.cpp has a
pre-existing, currently-dead #include <tbb/...> that now resolves against
the 2023 headers instead of 2020's. This produces a few dozen bytes of
.rdata/.data difference in that one object file - no executable code
changes, confirmed by diffing the compiled output.
This is the first of three PRs (the other two - TBB-backed scalable
allocator, and a PPL-to-TBB scheduler swap in _thread_types.h - are
independent siblings, both based on this branch, not on each other).
They're not showing up as PRs against this repo yet since they depend on
this branch existing here first; linking them for visibility:
noisethanks#1
noisethanks#2