| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
| |
This formats all copyright comments according to SPDX formatting guidelines.
Additionally, this resolves the remaining GPLv2 only licensed files by relicensing them to GPLv2.0-or-later.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Use VK_KHR_pipeline_executable_properties when enabled and available to
log statistics about the pipeline cache in a game.
For example, this is on Turing GPUs when generating a pipeline cache
from Super Smash Bros. Ultimate:
Average pipeline statistics
==========================================
Code size: 6433.167
Register count: 32.939
More advanced results could be presented, at the moment it's just an
average of all 3D and compute pipelines.
|
| |
|
|
|
|
| |
~51% faster on Nvidia compared to previous method.
|
|
|
|
|
| |
Reduces the number of total pipelines generated on Vulkan.
Tested on Super Smash Bros. Ultimate.
|
|
|
|
|
|
|
|
| |
This uses a ring buffer similar to OpenGL's stream buffer for small
uploads. This stops us from allocating several small buffers, reducing
memory fragmentation and cache locality.
It uses dedicated allocations when possible.
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
Instead of using a two step initialization to report errors, initialize
the GPU renderer and rasterizer on the constructor and report errors
through std::runtime_error.
|
|
|
|
| |
Silence warnings explicitly initializing all members on construction.
|
|
|
|
|
| |
The Vulkan device abstraction either initializes successfully on the
constructor or throws a Vulkan exception.
|
|
|
|
|
|
| |
Report device enumeration errors with exceptions to be consistent with
other initialization related function calls. Reduces the amount of code
to maintain.
|
|
|
|
|
|
| |
Move surface initialization code to a separate file. It's unlikely to
use this code outside of Vulkan, but keeping platform-specific code
(Win32, Xlib, Wayland) in its own translation unit keeps things cleaner.
|
|
|
|
|
|
|
|
| |
Initialize debug callbacks (messenger) from a separate file. This allows
sharing code with different backends.
Change our Vulkan error handling to use exceptions instead of error
codes, simplifying the initialization process.
|
|
Allows sharing Vulkan wrapper code between different rendering backends.
|