buck2 build --target-platforms //platforms:windows_11_x86_64 //Samples:01_Transformations
- tf_platform//:windows_11_x86_64
- tf_platform//:linux_x86_64
cat $(buck2 bxl --target-platforms tf_platform//:windows_11_x86_64 toolchain//compile_command.bxl:gen_compile_command) | Out-File compile_commands.json
cat $(buck2 bxl --target-platforms tf_platform//:linux_x86_64 toolchains//compile_command.bxl:gen_compile_command) > compile_commands.json
buck2 test --target-platforms <platform> tf//...
The Forge is a cross-platform rendering framework supporting
- Windows 10/11
- with DirectX 12 / Vulkan 1.1
- with DXR / RTX Ray Tracing API
- DirectX 11 fallback for older Windows platforms
- Steam Deck
- with Vulkan 1.1
- with VK_KHR_ray_query Ray Tracing API
- Android Pie or higher
- with Vulkan 1.1
- OpenGL ES 2.0 fallback for large scale business application frameworks
- Apple
- iOS 14.1 / 17.0
- iPad OS 14.1 / 17.0
- macOS 11.0 / 14.0, with Intel and Apple silicon support
- Quest 2 using Vulkan 1.1
- XBOX One / XBOX One X / XBOX Series S/X *
- PS4 / PS4 Pro *
- PS5 *
- Switch using Vulkan 1.1 *
*(only available for accredited developers on request)
Particularly, the graphics layer of The Forge supports cross-platform
- Descriptor management. A description is on this Wikipage
- Multi-threaded and asynchronous resource loading
- Shader reflection
- Multi-threaded command buffer generation
For contributions to The Forge we apply the following writing guidelines:
- We limit all code to C++ 11 by setting the Clang and other compiler flags
- We follow the [Orthodox C++ guidelines] (https://gist.github.com/bkaradzic/2e39896bc7d8c34e042b) minus C++ 14 support (see above)
- Please note that we are going to move towards C99 usage more and more because this language makes it easier to develop high-performance applications in a team. With the increased call numbers of modern APIs and the always performance-detoriating C++ features, C++ is becoming more and more a productivity and run-time performance challenge. C is also a better starting point to port to other languages like RUST. In case any of those languages become common in development.
There will be a user group meeting during GDC. In case you want to organize a user group meeting in your country / town at any other point in time, we would like to support this. We could send an engineer for a talk.
Let us know if you are in need for eductional support.
The Forge utilizes the following Open-Source libraries:
- Fontstash
- Vectormath
- Nothings single file libs
- SPIRV_Cross
- Vulkan Memory Allocator
- D3D12 Memory Allocator
- WinPixEventRuntime
- Fluid Studios Memory Manager
- volk Metaloader for Vulkan
- gainput
- Dear ImGui
- DirectX Shader Compiler
- Ozz Animation System
- Lua Scripting System
- TressFX
- MTuner
- meshoptimizer
- TinyImageFormat
- flecs
- CPU Features
- HIDAPI
- bstrlib
- cr