godotengine / godotengine/godot-benchmarks

Track VGPR/SGPR usage in addition to other performance data

Open
#14 2 comments 1 reaction 0 assignees View on GitHub
enhancement
Dominant language
GDScript
Stars
155
Forks
48
Avg merge
1d 19h
Merged PRs (30d)
1

Description

Using AMD GPU Analyzer we can now analyze our default shader code and see line-by-line resource usage including register pressure. As VGPR usage is one of the largest bottlenecks we have right now, it is something we should track and aim to reduce.

Right now the basic Godot scene fragment shader allocates 80 VGPRs and only uses 73. We should aim to reduce that number (or at least avoid needlessly increasing it).

Below are examples of the output you can get from AMD GPU analyzer which could be easily parsed to highlight changes and increases or decreases in register usage

[gfx1035_livereg_frag.txt](https://github.com/godotengine/godot-benchmarks/files/9440799/gfx1035_livereg_frag.txt)
[gfx1035_livereg_vert.txt](https://github.com/godotengine/godot-benchmarks/files/9440800/gfx1035_livereg_vert.txt)

Contributor guide

Open the contributing guide

Research direction

Start by reviewing the attached AMD GPU Analyzer outputs for the default scene's fragment and vertex shaders, then inspect how this benchmark repository currently records performance data. Done means VGPR and SGPR usage are parsed and reported so increases or decreases in register usage can be tracked.

Written by the indexing model from the issue text.

Assessment

Domain
game-dev, performance
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.