diff --git a/src/engine/renderer/vk.cpp b/src/engine/renderer/vk.cpp
index 92994db..3ef3790 100644
--- a/src/engine/renderer/vk.cpp
+++ b/src/engine/renderer/vk.cpp
@@ -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,
int32_t message_code, const char* layer_prefix, const char* message, void* user_data) {
+#ifdef _WIN32
OutputDebugString(message);
OutputDebugString("\n");
DebugBreak();
+#endif
return VK_FALSE;
}
@@ -491,6 +493,12 @@ static void create_instance() {
desc.enabledExtensionCount = sizeof(instance_extensions)/sizeof(instance_extensions[0]);
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));
}
}
diff --git a/visual-studio/quake3.vcxproj.user.example b/visual-studio/quake3.vcxproj.user.example
index 0139f00..8154fa4 100644
--- a/visual-studio/quake3.vcxproj.user.example
+++ b/visual-studio/quake3.vcxproj.user.example
@@ -3,9 +3,6 @@
+set fs_basepath e:/games/quake3 +set r_mode 8 +set r_renderAPI 1
WindowsLocalDebugger
- VK_INSTANCE_LAYERS=VK_LAYER_LUNARG_standard_validation
-VK_DEVICE_LAYERS=VK_LAYER_LUNARG_standard_validation
-$(LocalDebuggerEnvironment)
+set fs_basepath e:/games/quake3 +set r_mode 8 +set r_renderAPI 1
diff --git a/visual-studio/vk_layer_settings.txt b/visual-studio/vk_layer_settings.txt
deleted file mode 100644
index 1225102..0000000
--- a/visual-studio/vk_layer_settings.txt
+++ /dev/null
@@ -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:
-# ". = "
-#
-# 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:
-# =============
-# .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 .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:
-# =============
-# .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:
-# =============
-# .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:
-# ". = "
-#
-# 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:
-# =========
-# .detailed : Setting this to TRUE causes parameter details
-# to be dumped in addition to API calls.
-#
-# NO_ADDR:
-# ========
-# .no_addr : Setting this to TRUE causes "address" to be
-# dumped in place of hex addresses.
-#
-# FILE:
-# =====
-# .file : Setting this to TRUE indicates that output
-# should be written to file instead of STDOUT.
-#
-# LOG_FILENAME:
-# =============
-# .log_filename : Specifies the file to dump to when
-# "file = TRUE". The default is "vk_apidump.txt".
-#
-# FLUSH:
-# ======
-# .flush : Setting this to TRUE causes IO to be flushed
-# each API call that is written
-#
-# INDENT SIZE
-# ==============
-# .indent_size : Specifies the number of spaces that a tab
-# is equal to
-#
-# SHOW TYPES
-# ==============
-# .show_types : Setting this to TRUE causes types to be
-# dumped in addition to values
-#
-# NAME SIZE
-# ==============
-# .name_size : The number of characters the name of a
-# variable should consume, assuming more are not required
-#
-# TYPE SIZE
-# ==============
-# .type_size : The number of characters the type of a
-# variable should consume, assuming more are not requires
-#
-# USE_SPACES
-# ==============
-# .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