Open kbaxtrom opened 2 years ago
We are trying to integrate SquidTasks into our engine and we are hitting the same compilation errors.
We contacted Sony about it for PS5 and their response was that coroutines weren't supported on PS5 :
Although some C++20 feature are either fully or partially supported in the compiler, there is no SDK standard library support for C++20, as the SDK standard library targets C++17. Since the coroutines feature requires the "coroutine" header file (not present in the SDK) then this is one of those C++20 features that definitely won't work at this time.
So, unfortunately, coroutines are not supported and there is no current ETA to have them on the PS5's SDK.
So, I'm definitely interested too in knowing how you went around solving this issue in The Pathless.
And kudos for your great GDC talk!
While we cannot publicly discuss details of the PS5 SDK, we can say that there exists a block of code in TasksCommonPrivate.h (starting at line 94) that is intended to be used for Clang distributions that do not include
Please let us know anything you find!
In our case, it ended up being an issue with _STL_COMPILER_PREPROCESSOR not being defined. Fixing this and making sure that block of code was used during compilation fixed our issue.
Thanks for the prompt help @westquote !
@spicard12 out of curiosity where did you put that definition?
We also found that forcing the conditional also worked. Similar modifications were necessary to the PlatformToolChain but those were very straightforward based on the example.
@kbaxtrom, for the moment, I just added the macro definition to the clang command-line with :
-D "_STL_COMPILER_PREPROCESSOR"
We're just in the prototyping phase right now to see if SquidTasks works well for what we want to accomplish (it does so far), so we're not at the clean integration part yet, hence the "hacky way" to fix the issue for now.
We're testing the integration here for PS4/PS5 with UE4 and are hitting some compiler errors. Can you clarify the documentation for consoles or add some example integration documentation?
TasksCommonPrivate.h(178,10): fatal error: 'experimental/coroutine' file not found
include <experimental/coroutine>
TasksCommonPrivate.h(59,28): error : expected class name struct static_false : std::false_type
Your GDC Talk was great!