Enable validation layers through code instead of configuration file.
This commit is contained in:
parent
9b106ec102
commit
d213baea81
|
|
@ -444,9 +444,11 @@ static void ensure_staging_buffer_allocation(VkDeviceSize size) {
|
||||||
static VkBool32 debug_callback(VkDebugReportFlagsEXT flags, VkDebugReportObjectTypeEXT object_type, uint64_t object, size_t location,
|
static VkBool32 debug_callback(VkDebugReportFlagsEXT flags, VkDebugReportObjectTypeEXT object_type, uint64_t object, size_t location,
|
||||||
int32_t message_code, const char* layer_prefix, const char* message, void* user_data) {
|
int32_t message_code, const char* layer_prefix, const char* message, void* user_data) {
|
||||||
|
|
||||||
|
#ifdef _WIN32
|
||||||
OutputDebugString(message);
|
OutputDebugString(message);
|
||||||
OutputDebugString("\n");
|
OutputDebugString("\n");
|
||||||
DebugBreak();
|
DebugBreak();
|
||||||
|
#endif
|
||||||
return VK_FALSE;
|
return VK_FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -491,6 +493,12 @@ static void create_instance() {
|
||||||
desc.enabledExtensionCount = sizeof(instance_extensions)/sizeof(instance_extensions[0]);
|
desc.enabledExtensionCount = sizeof(instance_extensions)/sizeof(instance_extensions[0]);
|
||||||
desc.ppEnabledExtensionNames = instance_extensions;
|
desc.ppEnabledExtensionNames = instance_extensions;
|
||||||
|
|
||||||
|
#ifndef NDEBUG
|
||||||
|
const char* validation_layer_name = "VK_LAYER_LUNARG_standard_validation";
|
||||||
|
desc.enabledLayerCount = 1;
|
||||||
|
desc.ppEnabledLayerNames = &validation_layer_name;
|
||||||
|
#endif
|
||||||
|
|
||||||
VK_CHECK(vkCreateInstance(&desc, nullptr, &vk.instance));
|
VK_CHECK(vkCreateInstance(&desc, nullptr, &vk.instance));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -3,9 +3,6 @@
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||||
<LocalDebuggerCommandArguments>+set fs_basepath e:/games/quake3 +set r_mode 8 +set r_renderAPI 1</LocalDebuggerCommandArguments>
|
<LocalDebuggerCommandArguments>+set fs_basepath e:/games/quake3 +set r_mode 8 +set r_renderAPI 1</LocalDebuggerCommandArguments>
|
||||||
<DebuggerFlavor>WindowsLocalDebugger</DebuggerFlavor>
|
<DebuggerFlavor>WindowsLocalDebugger</DebuggerFlavor>
|
||||||
<LocalDebuggerEnvironment>VK_INSTANCE_LAYERS=VK_LAYER_LUNARG_standard_validation
|
|
||||||
VK_DEVICE_LAYERS=VK_LAYER_LUNARG_standard_validation
|
|
||||||
$(LocalDebuggerEnvironment)</LocalDebuggerEnvironment>
|
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||||
<LocalDebuggerCommandArguments>+set fs_basepath e:/games/quake3 +set r_mode 8 +set r_renderAPI 1</LocalDebuggerCommandArguments>
|
<LocalDebuggerCommandArguments>+set fs_basepath e:/games/quake3 +set r_mode 8 +set r_renderAPI 1</LocalDebuggerCommandArguments>
|
||||||
|
|
|
||||||
|
|
@ -1,164 +0,0 @@
|
||||||
################################################################################
|
|
||||||
#
|
|
||||||
# This file contains per-layer settings that configure layer behavior at
|
|
||||||
# execution time. Comments in this file are denoted with the "#" char.
|
|
||||||
# Settings lines are of the form:
|
|
||||||
# "<LayerIdentifier>.<SettingName> = <SettingValue>"
|
|
||||||
#
|
|
||||||
# <LayerIdentifier> is typically the official layer name, minus the VK_LAYER
|
|
||||||
# prefix and all lower-camel-case -- i.e., for VK_LAYER_LUNARG_core_validation,
|
|
||||||
# the layer identifier is 'lunarg_core_validation', and for
|
|
||||||
# VK_LAYER_GOOGLE_threading the layeridentifier is 'google_threading'.
|
|
||||||
#
|
|
||||||
################################################################################
|
|
||||||
################################################################################
|
|
||||||
# Validation Layer Common Settings:
|
|
||||||
# =================================
|
|
||||||
#
|
|
||||||
# DEBUG_ACTION:
|
|
||||||
# =============
|
|
||||||
# <LayerIdentifier>.debug_action : This is an enum value indicating what
|
|
||||||
# action is to be taken when a layer wants to report information.
|
|
||||||
# Possible settings values are defined in the vk_layer.h header file.
|
|
||||||
# These settings are:
|
|
||||||
# VK_DBG_LAYER_ACTION_IGNORE - Take no action.
|
|
||||||
# VK_DBG_LAYER_ACTION_LOG_MSG - Log a txt message to stdout or to a log filename
|
|
||||||
# specified via the <LayerIdentifier>.log_filename setting (see below).
|
|
||||||
# VK_DBG_LAYER_ACTION_CALLBACK - Call user defined callback function(s) that
|
|
||||||
# have been registered via the VK_EXT_debug_report extension. Since
|
|
||||||
# app must register callback, this is a NOOP for the settings file.
|
|
||||||
# VK_DBG_LAYER_DEBUG_OUTPUT [Windows only] - Log a txt message using the
|
|
||||||
# Windows OutputDebugString function -- messages will show up in the
|
|
||||||
# Visual Studio output window, for instance.
|
|
||||||
# VK_DBG_LAYER_ACTION_BREAK - Trigger a breakpoint.
|
|
||||||
#
|
|
||||||
# REPORT_FLAGS:
|
|
||||||
# =============
|
|
||||||
# <LayerIdentifier>.report_flags : This is a comma-delineated list of options
|
|
||||||
# telling the layer what types of messages it should report back.
|
|
||||||
# Options are:
|
|
||||||
# info - Report informational messages.
|
|
||||||
# warn - Report warnings from using the API in a manner which may lead to
|
|
||||||
# undefined behavior or to warn the user of common trouble spots.
|
|
||||||
# A warning does NOT necessarily signify illegal application behavior.
|
|
||||||
# perf - Report using the API in a way that may cause suboptimal performance.
|
|
||||||
# error - Report errors in API usage.
|
|
||||||
# debug - For layer development. Report messages for debugging layer
|
|
||||||
# behavior.
|
|
||||||
#
|
|
||||||
# LOG_FILENAME:
|
|
||||||
# =============
|
|
||||||
# <LayerIdentifier>.log_filename : output filename. Can be relative to
|
|
||||||
# location of vk_layer_settings.txt file, or an absolute path. If no
|
|
||||||
# filename is specified or if filename has invalid path, then stdout
|
|
||||||
# is used by default.
|
|
||||||
#
|
|
||||||
|
|
||||||
# VK_LAYER_LUNARG_core_validation Settings
|
|
||||||
lunarg_core_validation.debug_action = VK_DBG_LAYER_ACTION_LOG_MSG
|
|
||||||
lunarg_core_validation.report_flags = error,warn,perf
|
|
||||||
lunarg_core_validation.log_filename = vk_report
|
|
||||||
|
|
||||||
# VK_LAYER_LUNARG_object_tracker Settings
|
|
||||||
lunarg_object_tracker.debug_action = VK_DBG_LAYER_ACTION_LOG_MSG
|
|
||||||
lunarg_object_tracker.report_flags = error,warn,perf
|
|
||||||
lunarg_object_tracker.log_filename = vk_report
|
|
||||||
|
|
||||||
# VK_LAYER_LUNARG_parameter_validation Settings
|
|
||||||
lunarg_parameter_validation.debug_action = VK_DBG_LAYER_ACTION_LOG_MSG
|
|
||||||
lunarg_parameter_validation.report_flags = error,warn,perf
|
|
||||||
lunarg_parameter_validation.log_filename = vk_report
|
|
||||||
|
|
||||||
# VK_LAYER_LUNARG_swapchain Settings
|
|
||||||
lunarg_swapchain.debug_action = VK_DBG_LAYER_ACTION_LOG_MSG
|
|
||||||
lunarg_swapchain.report_flags = error,warn,perf
|
|
||||||
lunarg_swapchain.log_filename = vk_report
|
|
||||||
|
|
||||||
# VK_LAYER_GOOGLE_threading Settings
|
|
||||||
google_threading.debug_action = VK_DBG_LAYER_ACTION_LOG_MSG
|
|
||||||
google_threading.report_flags = error,warn,perf
|
|
||||||
google_threading.log_filename = vk_report
|
|
||||||
|
|
||||||
# VK_LAYER_GOOGLE_unique_objects Settings
|
|
||||||
google_unique_objects.debug_action = VK_DBG_LAYER_ACTION_LOG_MSG
|
|
||||||
google_unique_objects.report_flags = error,warn,perf
|
|
||||||
google_unique_objects.log_filename = vk_report
|
|
||||||
################################################################################
|
|
||||||
################################################################################
|
|
||||||
#
|
|
||||||
# This file contains per-layer settings that configure layer behavior at
|
|
||||||
# execution time. Comments in this file are denoted with the "#" char.
|
|
||||||
# Settings lines are of the form:
|
|
||||||
# "<LayerIdentifier>.<SettingName> = <SettingValue>"
|
|
||||||
#
|
|
||||||
# <LayerIdentifier> is typically the official layer name, minus the VK_LAYER
|
|
||||||
# prefix and all lower-camel-case -- i.e., for VK_LAYER_LUNARG_api_dump, the
|
|
||||||
# layer identifier is 'lunarg_api_dump'.
|
|
||||||
#
|
|
||||||
################################################################################
|
|
||||||
################################################################################
|
|
||||||
# VK_LAYER_LUNARG_api_dump Settings:
|
|
||||||
# ==================================
|
|
||||||
#
|
|
||||||
# DETAILED:
|
|
||||||
# =========
|
|
||||||
# <LayerIdentifer>.detailed : Setting this to TRUE causes parameter details
|
|
||||||
# to be dumped in addition to API calls.
|
|
||||||
#
|
|
||||||
# NO_ADDR:
|
|
||||||
# ========
|
|
||||||
# <LayerIdentifier>.no_addr : Setting this to TRUE causes "address" to be
|
|
||||||
# dumped in place of hex addresses.
|
|
||||||
#
|
|
||||||
# FILE:
|
|
||||||
# =====
|
|
||||||
# <LayerIdentifer>.file : Setting this to TRUE indicates that output
|
|
||||||
# should be written to file instead of STDOUT.
|
|
||||||
#
|
|
||||||
# LOG_FILENAME:
|
|
||||||
# =============
|
|
||||||
# <LayerIdentifer>.log_filename : Specifies the file to dump to when
|
|
||||||
# "file = TRUE". The default is "vk_apidump.txt".
|
|
||||||
#
|
|
||||||
# FLUSH:
|
|
||||||
# ======
|
|
||||||
# <LayerIdentifier>.flush : Setting this to TRUE causes IO to be flushed
|
|
||||||
# each API call that is written
|
|
||||||
#
|
|
||||||
# INDENT SIZE
|
|
||||||
# ==============
|
|
||||||
# <LayerIdentifier>.indent_size : Specifies the number of spaces that a tab
|
|
||||||
# is equal to
|
|
||||||
#
|
|
||||||
# SHOW TYPES
|
|
||||||
# ==============
|
|
||||||
# <LayerIdentifier>.show_types : Setting this to TRUE causes types to be
|
|
||||||
# dumped in addition to values
|
|
||||||
#
|
|
||||||
# NAME SIZE
|
|
||||||
# ==============
|
|
||||||
# <LayerIdentifier>.name_size : The number of characters the name of a
|
|
||||||
# variable should consume, assuming more are not required
|
|
||||||
#
|
|
||||||
# TYPE SIZE
|
|
||||||
# ==============
|
|
||||||
# <LayerIdentifier>.type_size : The number of characters the type of a
|
|
||||||
# variable should consume, assuming more are not requires
|
|
||||||
#
|
|
||||||
# USE_SPACES
|
|
||||||
# ==============
|
|
||||||
# <LayerIdentifier>.use_spaces : Setting this to TRUE causes all tabs
|
|
||||||
# characters to be replaced with spaces
|
|
||||||
|
|
||||||
# VK_LUNARG_LAYER_api_dump Settings
|
|
||||||
lunarg_api_dump.detailed = TRUE
|
|
||||||
lunarg_api_dump.no_addr = FALSE
|
|
||||||
lunarg_api_dump.file = FALSE
|
|
||||||
lunarg_api_dump.log_filename = vk_apidump.txt
|
|
||||||
lunarg_api_dump.flush = TRUE
|
|
||||||
lunarg_api_dump.indent_size = 4
|
|
||||||
lunarg_api_dump.show_types = TRUE
|
|
||||||
lunarg_api_dump.name_size = 32
|
|
||||||
lunarg_api_dump.type_size = 0
|
|
||||||
lunarg_api_dump.use_spaces = TRUE
|
|
||||||
lunarg_api_dump.show_shader = FALSE
|
|
||||||
Loading…
Reference in New Issue
Block a user