Skip to content

Commit 858e041

Browse files
committed
Refactor instance creation
1 parent 2ab57ee commit 858e041

File tree

79 files changed

+700
-736
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

79 files changed

+700
-736
lines changed

framework/common/helpers.h

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
/* Copyright (c) 2018-2024, Arm Limited and Contributors
1+
/* Copyright (c) 2018-2025, Arm Limited and Contributors
22
*
33
* SPDX-License-Identifier: Apache-2.0
44
*
@@ -41,6 +41,11 @@
4141

4242
namespace vkb
4343
{
44+
inline bool contains(std::vector<std::string> const &range, char const *value)
45+
{
46+
return std::ranges::find_if(range, [value](std::string const &range_value) { return range_value == value; }) != range.end();
47+
}
48+
4449
template <typename T>
4550
inline void read(std::istringstream &is, T &value)
4651
{

framework/common/vk_common.h

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,12 @@ enum class CommandBufferResetMode
5555
AlwaysAllocate,
5656
};
5757

58+
enum class RequestMode
59+
{
60+
Optional,
61+
Required
62+
};
63+
5864
/**
5965
* @brief Helper function to determine if a Vulkan format is depth only.
6066
* @param format Vulkan format to check.

framework/core/hpp_debug.h

Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -148,5 +148,65 @@ class HPPScopedDebugLabel final
148148
vk::CommandBuffer command_buffer;
149149
};
150150

151+
#if defined(VKB_DEBUG) || defined(VKB_VALIDATION_LAYERS)
152+
inline VKAPI_ATTR vk::Bool32 VKAPI_CALL debug_utils_messenger_callback(vk::DebugUtilsMessageSeverityFlagBitsEXT message_severity,
153+
vk::DebugUtilsMessageTypeFlagsEXT message_type,
154+
vk::DebugUtilsMessengerCallbackDataEXT const *callback_data,
155+
void *user_data)
156+
{
157+
// Log debug message
158+
if (message_severity & vk::DebugUtilsMessageSeverityFlagBitsEXT::eWarning)
159+
{
160+
LOGW("{} - {}: {}", callback_data->messageIdNumber, callback_data->pMessageIdName, callback_data->pMessage);
161+
}
162+
else if (message_severity & vk::DebugUtilsMessageSeverityFlagBitsEXT::eError)
163+
{
164+
LOGE("{} - {}: {}", callback_data->messageIdNumber, callback_data->pMessageIdName, callback_data->pMessage);
165+
}
166+
return false;
167+
}
168+
169+
inline vk::DebugUtilsMessengerCreateInfoEXT getDefaultDebugUtilsMessengerCreateInfoEXT()
170+
{
171+
return vk::DebugUtilsMessengerCreateInfoEXT{.messageSeverity = vk::DebugUtilsMessageSeverityFlagBitsEXT::eError | vk::DebugUtilsMessageSeverityFlagBitsEXT::eWarning,
172+
.messageType = vk::DebugUtilsMessageTypeFlagBitsEXT::eValidation | vk::DebugUtilsMessageTypeFlagBitsEXT::ePerformance,
173+
.pfnUserCallback = debug_utils_messenger_callback};
174+
}
175+
176+
inline VKAPI_ATTR vk::Bool32 VKAPI_CALL debug_callback(vk::DebugReportFlagsEXT flags,
177+
vk::DebugReportObjectTypeEXT /*type*/,
178+
uint64_t /*object*/,
179+
size_t /*location*/,
180+
int32_t /*message_code*/,
181+
char const *layer_prefix,
182+
char const *message,
183+
void * /*user_data*/)
184+
{
185+
if (flags & vk::DebugReportFlagBitsEXT::eError)
186+
{
187+
LOGE("{}: {}", layer_prefix, message);
188+
}
189+
else if (flags & vk::DebugReportFlagBitsEXT::eWarning)
190+
{
191+
LOGW("{}: {}", layer_prefix, message);
192+
}
193+
else if (flags & vk::DebugReportFlagBitsEXT::ePerformanceWarning)
194+
{
195+
LOGW("{}: {}", layer_prefix, message);
196+
}
197+
else
198+
{
199+
LOGI("{}: {}", layer_prefix, message);
200+
}
201+
return false;
202+
}
203+
204+
inline vk::DebugReportCallbackCreateInfoEXT getDefaultDebugReportCallbackCreateInfoEXT()
205+
{
206+
return vk::DebugReportCallbackCreateInfoEXT{.flags = vk::DebugReportFlagBitsEXT::eError | vk::DebugReportFlagBitsEXT::eWarning | vk::DebugReportFlagBitsEXT::ePerformanceWarning,
207+
.pfnCallback = debug_callback};
208+
}
209+
210+
#endif
151211
} // namespace core
152212
} // namespace vkb

framework/core/instance.h

Lines changed: 114 additions & 319 deletions
Large diffs are not rendered by default.

0 commit comments

Comments
 (0)