Git Product home page Git Product logo

bigwheels's Introduction

Overview

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

Supported platforms:

  • Windows
  • Linux
  • Android

Supported graphics APIs:

  • DirectX 12
  • Vulkan

Note: This is not an officially supported Google product.

Requirements

  • Software
    • Linux
      • C++17 compliant compiler (clang 10+ or gcc 9+)
      • Visual Studio Code or CLI
      • Recent Vulkan SDK
        • 1.3.216.0 or later
    • Windows
      • Visual Studio 2019 or 2022, or Visual Studio Code
      • Recent Vulkan SDK
        • 1.3.216.0 or later
      • Recent version of Windows SDK
        • 10.0.22621.0 or later
    • Android
      • Android Studio, 2022.1.1 Patch 2 or later
      • Recent version of NDK
        • 25.1.8937393 or later
  • Hardware (not an exhaustive list)
    • AMD
      • Vega GPUs
        • Vega 56
        • Vega 64
      • Navi GPUs
        • Radeon 5700
        • Radeon 5700 XT
        • Radeon 6700 XT
    • NVIDIA
      • 30x0 GPUs
      • 20x0 GPUs
      • 16x0 GPus
      • 10x0 GPUs
        • This is iffy - some of the later more recent DX12 and Vulkan features many not work.
    • Intel
      • None tested

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

bigwheels's People

Contributors

keenuts avatar angela28chen avatar vettoreldaniele avatar apazylbe avatar elviscapiaq avatar chaoticbob avatar hysw avatar at-ninja avatar wangra-google avatar mdagois avatar slumpwuffle avatar dnovillo avatar renfengliu avatar bjoeris avatar cassiebeckley avatar sudonatalie avatar shanminchao avatar dneto0 avatar michaelanttila avatar s-perron avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.