PixelBullet  0.0.1
A C++ game engine
Loading...
Searching...
No Matches
gpu_diagnostics.h
1#pragma once
2
3#include "pixelbullet/application/specification.h"
4
5#include <volk.h>
6
7#include <cstdint>
8#include <optional>
9#include <string>
10#include <string_view>
11#include <vector>
12
13namespace pixelbullet
14{
16{
17 uint32_t graphics_family = 0;
18 uint32_t present_family = 0;
19 std::optional<uint32_t> compute_family;
20 std::optional<uint32_t> transfer_family;
21};
22
24{
25 bool is_compatible = false;
26 uint32_t score = 0;
27 std::vector<std::string> rejection_reasons;
28 std::optional<ResolvedQueueFamilies> queue_families;
29};
30
32{
33 VkPhysicalDevice device = VK_NULL_HANDLE;
34 VkPhysicalDeviceProperties properties = {};
35 std::vector<VkExtensionProperties> available_extensions;
37 bool matches_preference = false;
38 bool selected = false;
39};
40
42{
43 std::vector<PhysicalDeviceDiagnosticsEntry> entries;
44 std::optional<std::size_t> selected_index;
45 bool matched_preference = false;
46};
47
48[[nodiscard]] std::string FormatVulkanApiVersion(uint32_t version);
49[[nodiscard]] std::string_view DescribePhysicalDeviceType(VkPhysicalDeviceType device_type) noexcept;
50[[nodiscard]] PhysicalDeviceDiagnosticsReport EnumerateUtilityGpuDiagnostics(const ApplicationBootstrap& bootstrap,
51 const ApplicationLaunchOptions& launch_options);
52} // namespace pixelbullet
Definition specification.h:79
Definition specification.h:69
Definition gpu_diagnostics.h:32
Definition gpu_diagnostics.h:42
Definition gpu_diagnostics.h:16