Skip to content

Commit d09c5d5

Browse files
committed
Remove Vulkan validation layer plumbing
1 parent 4e75c8b commit d09c5d5

10 files changed

Lines changed: 45 additions & 320 deletions

README.md

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,6 @@ Available examples:
8787
Useful runtime flags:
8888

8989
- `--device={vulkan|opengl}`: choose rendering backend
90-
- `--vk_validation={true|false}`: toggle Vulkan validation layers
9190

9291
## Run Tests
9392

frame/common/application.cpp

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -15,11 +15,6 @@
1515
#include "frame/vulkan/window_factory.h"
1616

1717
ABSL_FLAG(std::string, device, "vulkan", "Rendering backend (vulkan|opengl).");
18-
#if defined(_DEBUG)
19-
ABSL_FLAG(bool, vk_validation, true, "Enable Vulkan validation layers.");
20-
#else
21-
ABSL_FLAG(bool, vk_validation, false, "Enable Vulkan validation layers.");
22-
#endif
2318
ABSL_FLAG(
2419
double,
2520
auto_exit_seconds,
@@ -42,9 +37,8 @@ bool StartsWith(std::string_view value, std::string_view prefix)
4237

4338
std::string NormalizeKnownFlag(std::string_view arg)
4439
{
45-
constexpr std::array<std::string_view, 4> kKnownFlags = {
40+
constexpr std::array<std::string_view, 3> kKnownFlags = {
4641
"device",
47-
"vk_validation",
4842
"auto_exit_seconds",
4943
"screenshot_on_exit"};
5044
for (const auto flag_name : kKnownFlags)

frame/common/application.h

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@
1010
#include "frame/api.h"
1111
#include "frame/window_interface.h"
1212

13-
ABSL_DECLARE_FLAG(bool, vk_validation);
1413
ABSL_DECLARE_FLAG(double, auto_exit_seconds);
1514
ABSL_DECLARE_FLAG(bool, screenshot_on_exit);
1615

frame/vulkan/CMakeLists.txt

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -42,8 +42,6 @@ set(FRAME_VULKAN_SOURCES
4242
texture_resources.cpp
4343
texture_resources.h
4444
dispatcher.cpp
45-
debug_callback.cpp
46-
debug_callback.h
4745
device.h
4846
device.cpp
4947
sdl_vulkan_none.h

frame/vulkan/debug_callback.cpp

Lines changed: 0 additions & 58 deletions
This file was deleted.

frame/vulkan/debug_callback.h

Lines changed: 0 additions & 25 deletions
This file was deleted.

frame/vulkan/sdl_vulkan_none.cpp

Lines changed: 7 additions & 96 deletions
Original file line numberDiff line numberDiff line change
@@ -1,64 +1,20 @@
11
#include "frame/vulkan/sdl_vulkan_none.h"
22

3-
#include <SDL3/SDL.h>
4-
#include <SDL3/SDL_vulkan.h>
5-
#include <cstring>
3+
#include <SDL3/SDL.h>
4+
#include <SDL3/SDL_vulkan.h>
65
#include <format>
76
#include <string>
87
#include <vector>
98

10-
#include "absl/flags/flag.h"
11-
129
#include "frame/common/application.h"
13-
#include "frame/vulkan/debug_callback.h"
14-
10+
1511
namespace frame::vulkan
1612
{
1713
namespace
1814
{
19-
constexpr const char* kValidationLayerName = "VK_LAYER_KHRONOS_validation";
20-
21-
bool HasExtension(
22-
const std::vector<vk::ExtensionProperties>& extensions,
23-
const char* name)
24-
{
25-
for (const auto& ext : extensions)
26-
{
27-
if (std::strcmp(ext.extensionName, name) == 0)
28-
{
29-
return true;
30-
}
31-
}
32-
return false;
33-
}
34-
35-
bool HasLayer(
36-
const std::vector<vk::LayerProperties>& layers,
37-
const char* name)
38-
{
39-
for (const auto& layer : layers)
40-
{
41-
if (std::strcmp(layer.layerName, name) == 0)
42-
{
43-
return true;
44-
}
45-
}
46-
return false;
47-
}
48-
49-
bool IsValidationEnabled()
50-
{
51-
#if defined(_DEBUG)
52-
bool enabled = true;
53-
#else
54-
bool enabled = false;
55-
#endif
56-
enabled = absl::GetFlag(FLAGS_vk_validation);
57-
return enabled;
58-
}
5915
} // namespace
60-
61-
SDLVulkanNone::SDLVulkanNone(glm::uvec2 size) : size_(size)
16+
17+
SDLVulkanNone::SDLVulkanNone(glm::uvec2 size) : size_(size)
6218
{
6319
if (!SDL_Init(SDL_INIT_VIDEO))
6420
{
@@ -101,34 +57,11 @@ SDLVulkanNone::SDLVulkanNone(glm::uvec2 size) : size_(size)
10157
extensions.reserve(static_cast<std::size_t>(extension_count) + 1);
10258
extensions.insert(
10359
extensions.end(), extension_names, extension_names + extension_count);
104-
const auto available_extensions =
105-
vk::enumerateInstanceExtensionProperties();
106-
const bool want_validation = IsValidationEnabled();
107-
const bool has_debug_utils =
108-
HasExtension(available_extensions, VK_EXT_DEBUG_UTILS_EXTENSION_NAME);
109-
if (want_validation && has_debug_utils)
110-
{
111-
extensions.push_back(VK_EXT_DEBUG_UTILS_EXTENSION_NAME);
112-
}
11360
for (const auto& extension : extensions)
11461
{
11562
logger_->info("Extension: {}", extension);
11663
}
11764

118-
std::vector<const char*> layers;
119-
if (want_validation)
120-
{
121-
const auto available_layers = vk::enumerateInstanceLayerProperties();
122-
if (HasLayer(available_layers, kValidationLayerName))
123-
{
124-
layers.push_back(kValidationLayerName);
125-
}
126-
else
127-
{
128-
logger_->warn("Vulkan validation layer not found.");
129-
}
130-
}
131-
13265
vk::ApplicationInfo application_info(
13366
"Frame",
13467
VK_MAKE_VERSION(0, 5, 1),
@@ -138,35 +71,13 @@ SDLVulkanNone::SDLVulkanNone(glm::uvec2 size) : size_(size)
13871
vk::InstanceCreateInfo instance_create_info(
13972
{},
14073
&application_info,
141-
static_cast<std::uint32_t>(layers.size()),
142-
layers.data(),
74+
0,
75+
nullptr,
14376
static_cast<std::uint32_t>(extensions.size()),
14477
extensions.data());
14578

146-
vk::DebugUtilsMessengerCreateInfoEXT debug_info{};
147-
if (want_validation && has_debug_utils)
148-
{
149-
debug_info.messageSeverity =
150-
vk::DebugUtilsMessageSeverityFlagBitsEXT::eWarning |
151-
vk::DebugUtilsMessageSeverityFlagBitsEXT::eError |
152-
vk::DebugUtilsMessageSeverityFlagBitsEXT::eInfo;
153-
debug_info.messageType =
154-
vk::DebugUtilsMessageTypeFlagBitsEXT::eGeneral |
155-
vk::DebugUtilsMessageTypeFlagBitsEXT::eValidation |
156-
vk::DebugUtilsMessageTypeFlagBitsEXT::ePerformance;
157-
debug_info.pfnUserCallback =
158-
reinterpret_cast<vk::PFN_DebugUtilsMessengerCallbackEXT>(
159-
DebugCallback);
160-
instance_create_info.setPNext(&debug_info);
161-
}
162-
16379
vk_unique_instance_ = vk::createInstanceUnique(instance_create_info);
16480
VULKAN_HPP_DEFAULT_DISPATCHER.init(*vk_unique_instance_, vk_get_instance_proc_addr);
165-
if (want_validation && has_debug_utils)
166-
{
167-
debug_messenger_ =
168-
vk_unique_instance_->createDebugUtilsMessengerEXTUnique(debug_info);
169-
}
17081

17182
VkSurfaceKHR surface = VK_NULL_HANDLE;
17283
if (!SDL_Vulkan_CreateSurface(

frame/vulkan/sdl_vulkan_none.h

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -110,7 +110,6 @@ class SDLVulkanNone : public WindowInterface
110110
std::string open_file_name_ = "";
111111
frame::Logger& logger_ = frame::Logger::GetInstance();
112112
vk::UniqueInstance vk_unique_instance_;
113-
vk::UniqueDebugUtilsMessengerEXT debug_messenger_;
114113
vk::SurfaceKHR vk_surface_ = VK_NULL_HANDLE;
115114
};
116115

0 commit comments

Comments
 (0)