google / bigwheels

BigWheels is a cross-platform, API agnostic framework to build graphics applications.
Apache License 2.0
86 stars 34 forks source link
directx directx12 gpu graphics graphics-framework rendering vulkan

Overview

BigWheels is a cross-platform, API agnostic framework to build graphics applications.

Supported platforms:

Supported graphics APIs:

Note: This is not an officially supported Google product.

Requirements

Building and running

See the documentation for instructions on how to build and run BigWheels and the sample projects.

Unit Tests

BigWheels uses GoogleTest for its unit testing framework. Unit tests can be optionally disabled from the build with -DPPX_BUILD_TESTS=OFF.

To add a new test: 1) Add and write a new test file under src/test/, e.g. src/test/new_test.cpp. 2) Add the new file name to the list of test sources in src/test/CMakeLists.txt.

To build tests (without running them), use ninja build-tests. Test binaries are output in test/.

To run tests (they will be built if needed), use ninja run-tests.

Benchmarks

BigWheels includes a variety of benchmarks that test graphics fundamentals under the benchmarks folder. See the documentation for benchmarks on how to build and run them.

Software rendering

If you don't have a compatible GPU, you can use a software renderer to run BigWheels applications. See the documentation for software rendering options for Vulkan and DirectX.

CI and testing

We run automated workflows for testing as part of PR submissions. See the documentation for information on what is tested and common maintenance tasks.

Contributing & Reviews

See this document