Giter Club home page Giter Club logo

render-bench's Introduction

render-bench

Benchmark for Rend3/WGPU rendering.

John Nagle

Animats

[email protected]

PRELIMINARY - 2022-04-28

A load test for Rend3/WGPU scene updating from another thread.

Synthetic test city

This is intended to simulate a metaverse-type load, as with Second Life / Open Simulator, where assets are constantly being added and deleted from the scene as the viewpoint moves.

There are two threads. One just refreshes the scene over and over. The other adds a collection of buildings to the scene.

Half the buildings are always present. The other half are inserted and removed on a schedule:

  • Add buildings.
  • Wait 10 seconds.
  • Delete buildings.
  • Wait 10 seconds.

Repeat.

The buildings have a large number of individual meshes. At the moment, textures are shared, but meshes and materials are not.

Results

First benchmark results

On a Linux machine with an NVidia 3070, the scene displays at 60 FPS. But while the other thread is adding buildings, that drops down to 13 to 25 FPS. This is the problem this program was built to demonstrate. Mesh updates from other threads cause a severe impact on frame rate in the refresh thread.

Instructions

  • Clone this repository.
  • cargo build --release
  • cd to target/release
  • ./render-bench

A graphics window should appear, and you can watch the buildings appear and disappear. The console shows frame rate and roughly what the program is doing. WASD and QZ do what you'd expect. Click and look around with the mouse. ESC to get the mouse back for other purposes. There are some command line options for setting graphics parameters, and --help will display them.

Tested on Linux, not yet tested on Windows or Mac, but it should work.

The program is prepped for profiling and should be buildable with option "tracy" for use with Tracy.

render-bench's People

Contributors

john-nagle 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.