stephen-hqxu / superterrainplus

SuperTerrain+: A real-time procedural 3D infinite terrain engine with geographical features and photorealistic rendering.
MIT License
12 stars 1 forks source link

Project migration to C++20 #27

Closed stephen-hqxu closed 1 year ago

stephen-hqxu commented 3 years ago

Suggestion

As said in the title, there are a few new features in C++20 that can really help simplifying our project.

The main compiler we are using, MSVC, has finialised C++20 support and it's stable enough for production use. One major issue is NVCC compiler which has absolutely no support for the new language version. It will take some effort to make the project working with two different dialects.

stephen-hqxu commented 2 years ago

For the sake of ABI compatibility, I will wait for CUDA to add support for C++ 20 before porting the project.

stephen-hqxu commented 1 year ago

CUDA 12 adds support to C++ 20.

The following changes should be addressed before porting the project:

From 12.0, JIT LTO support is now part of CUDA Toolkit. JIT LTO support in the CUDA Driver through the cuLink driver APIs is officially deprecated. Driver JIT LTO will be available only for 11.x applications. The following enums supported by the cuLink Driver APIs for JIT LTO are deprecated:

stephen-hqxu commented 1 year ago

Going to close this issue because I don't want to have every C++20 TODO in one issue. For clarity I will open one issue for each TODO.