Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 6 additions & 1 deletion framework/common/helpers.h
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
/* Copyright (c) 2018-2024, Arm Limited and Contributors
/* Copyright (c) 2018-2025, Arm Limited and Contributors
*
* SPDX-License-Identifier: Apache-2.0
*
Expand Down Expand Up @@ -41,6 +41,11 @@

namespace vkb
{
inline bool contains(std::vector<std::string> const &range, char const *value)
{
return std::ranges::find_if(range, [value](std::string const &range_value) { return range_value == value; }) != range.end();
}

template <typename T>
inline void read(std::istringstream &is, T &value)
{
Expand Down
6 changes: 6 additions & 0 deletions framework/common/vk_common.h
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,12 @@ enum class CommandBufferResetMode
AlwaysAllocate,
};

enum class RequestMode
{
Optional,
Required
};

/**
* @brief Helper function to determine if a Vulkan format is depth only.
* @param format Vulkan format to check.
Expand Down
60 changes: 60 additions & 0 deletions framework/core/hpp_debug.h
Original file line number Diff line number Diff line change
Expand Up @@ -148,5 +148,65 @@ class HPPScopedDebugLabel final
vk::CommandBuffer command_buffer;
};

#if defined(VKB_DEBUG) || defined(VKB_VALIDATION_LAYERS)
inline VKAPI_ATTR vk::Bool32 VKAPI_CALL debug_utils_messenger_callback(vk::DebugUtilsMessageSeverityFlagBitsEXT message_severity,
vk::DebugUtilsMessageTypeFlagsEXT message_type,
vk::DebugUtilsMessengerCallbackDataEXT const *callback_data,
void *user_data)
{
// Log debug message
if (message_severity & vk::DebugUtilsMessageSeverityFlagBitsEXT::eWarning)
{
LOGW("{} - {}: {}", callback_data->messageIdNumber, callback_data->pMessageIdName, callback_data->pMessage);
}
else if (message_severity & vk::DebugUtilsMessageSeverityFlagBitsEXT::eError)
{
LOGE("{} - {}: {}", callback_data->messageIdNumber, callback_data->pMessageIdName, callback_data->pMessage);
}
return false;
}

inline vk::DebugUtilsMessengerCreateInfoEXT getDefaultDebugUtilsMessengerCreateInfoEXT()
{
return vk::DebugUtilsMessengerCreateInfoEXT{.messageSeverity = vk::DebugUtilsMessageSeverityFlagBitsEXT::eError | vk::DebugUtilsMessageSeverityFlagBitsEXT::eWarning,
.messageType = vk::DebugUtilsMessageTypeFlagBitsEXT::eValidation | vk::DebugUtilsMessageTypeFlagBitsEXT::ePerformance,
.pfnUserCallback = debug_utils_messenger_callback};
}

inline VKAPI_ATTR vk::Bool32 VKAPI_CALL debug_callback(vk::DebugReportFlagsEXT flags,
vk::DebugReportObjectTypeEXT /*type*/,
uint64_t /*object*/,
size_t /*location*/,
int32_t /*message_code*/,
char const *layer_prefix,
char const *message,
void * /*user_data*/)
{
if (flags & vk::DebugReportFlagBitsEXT::eError)
{
LOGE("{}: {}", layer_prefix, message);
}
else if (flags & vk::DebugReportFlagBitsEXT::eWarning)
{
LOGW("{}: {}", layer_prefix, message);
}
else if (flags & vk::DebugReportFlagBitsEXT::ePerformanceWarning)
{
LOGW("{}: {}", layer_prefix, message);
}
else
{
LOGI("{}: {}", layer_prefix, message);
}
return false;
}

inline vk::DebugReportCallbackCreateInfoEXT getDefaultDebugReportCallbackCreateInfoEXT()
{
return vk::DebugReportCallbackCreateInfoEXT{.flags = vk::DebugReportFlagBitsEXT::eError | vk::DebugReportFlagBitsEXT::eWarning | vk::DebugReportFlagBitsEXT::ePerformanceWarning,
.pfnCallback = debug_callback};
}

#endif
} // namespace core
} // namespace vkb
435 changes: 114 additions & 321 deletions framework/core/instance.h

Large diffs are not rendered by default.

Loading
Loading