layers: Update docs for default dbg msg callbacks
authorMark Lobodzinski <mark@lunarg.com>
Wed, 1 Jun 2016 22:12:49 +0000 (16:12 -0600)
committerMark Lobodzinski <mark@lunarg.com>
Mon, 6 Jun 2016 17:40:21 +0000 (11:40 -0600)
Change-Id: Ic1f192ea7c95762d7e53f091cc9f0ea55be96c04

README.md
layers/README.md
layers/vk_layer_settings.txt

index 4b7fde4..c23e716 100755 (executable)
--- a/README.md
+++ b/README.md
@@ -1,49 +1,50 @@
-# Vulkan Ecosystem Components\r
-\r
-This project provides Khronos official ICD loader and validation layers for Vulkan developers on Windows and Linux.\r
-\r
-## Introduction\r
-\r
-Vulkan is an Explicit API, enabling direct control over how GPUs actually work. No (or very little) validation\r
-or error checking is done inside a Vulkan driver. Applications have full control and responsibility. Any errors in\r
-how Vulkan is used often result in a crash. This project provides standard validation layers that can be enabled to ease development by \r
-helping developers verify their applications correctly use the Vulkan API.\r
-\r
-Vulkan supports multiple GPUs and multiple global contexts (VkInstance). The ICD loader is necessary to support multiple GPUs  and the VkInstance level Vulkan commands.  Additionally, the loader manages inserting Vulkan layer libraries,\r
-including validation layers between the application and the ICD.\r
-\r
-The following components are available in this repository:\r
-- Vulkan header files\r
-- [*ICD Loader*](loader/)\r
-- [*Validation Layers*](layers/)\r
-- Demos and tests for the loader and validation layers\r
-\r
-## Contributing\r
-\r
-If you intend to contribute, the preferred work flow is for you to develop your contribution\r
-in a fork of this repo in your GitHub account and then submit a pull request.\r
-Please see the [CONTRIBUTING](CONTRIBUTING.md) file in this respository for more details\r
-\r
-## How to Build and Run\r
-\r
-[BUILD.md](BUILD.md)\r
-includes directions for building all the components, running the validation tests and running the demo applications.\r
-\r
-Information on how to enable the various Validation layers is in\r
-[layers/README.md](layers/README.md).\r
-\r
-Architecture and interface information for the loader is in\r
-[loader/LoaderAndLayerInterface.md](loader/LoaderAndLayerInterface.md).\r
-\r
-## License\r
-This work is released as open source under a Apache-style license from Khronos including a Khronos copyright.\r
-\r
-See COPYRIGHT.txt for a full list of licenses used in this repository.\r
-\r
-## Acknowledgements\r
-While this project has been developed primarily by LunarG, Inc; there are many other\r
-companies and individuals making this possible: Valve Corporation, funding\r
-project development; Google providing significant contributions to the validation layers;\r
-Khronos providing oversight and hosting of the project.\r
-\r
-\r
+# Vulkan Ecosystem Components
+
+This project provides Khronos official ICD loader and validation layers for Vulkan developers on Windows and Linux.
+
+## Introduction
+
+Vulkan is an Explicit API, enabling direct control over how GPUs actually work. No (or very little) validation
+or error checking is done inside a Vulkan driver. Applications have full control and responsibility. Any errors in
+how Vulkan is used often result in a crash. This project provides standard validation layers that can be enabled
+to ease development by helping developers verify their applications correctly use the Vulkan API.
+
+Vulkan supports multiple GPUs and multiple global contexts (VkInstance). The ICD loader is necessary to
+support multiple GPUs  and the VkInstance level Vulkan commands.  Additionally, the loader manages inserting
+Vulkan layer libraries, including validation layers between the application and the ICD.
+
+The following components are available in this repository:
+- Vulkan header files
+- [*ICD Loader*](loader/)
+- [*Validation Layers*](layers/)
+- Demos and tests for the loader and validation layers
+
+## Contributing
+
+If you intend to contribute, the preferred work flow is for you to develop your contribution
+in a fork of this repo in your GitHub account and then submit a pull request.
+Please see the [CONTRIBUTING](CONTRIBUTING.md) file in this respository for more details
+
+## How to Build and Run
+
+[BUILD.md](BUILD.md)
+includes directions for building all the components, running the validation tests and running the demo applications.
+
+Information on how to enable the various Validation layers is in
+[layers/README.md](layers/README.md).
+
+Architecture and interface information for the loader is in
+[loader/LoaderAndLayerInterface.md](loader/LoaderAndLayerInterface.md).
+
+## License
+This work is released as open source under a Apache-style license from Khronos including a Khronos copyright.
+
+See COPYRIGHT.txt for a full list of licenses used in this repository.
+
+## Acknowledgements
+While this project has been developed primarily by LunarG, Inc; there are many other
+companies and individuals making this possible: Valve Corporation, funding
+project development; Google providing significant contributions to the validation layers;
+Khronos providing oversight and hosting of the project.
+
+
index e2cea90..d3eecbf 100644 (file)
@@ -20,12 +20,14 @@ VkDevice, VkCommandBuffer, and VkQueue.
 vkXXXXGetProcAddr is used internally by the Layers and Loader to initialize dispatch tables.
 Layers can also be activated via the VK_INSTANCE_LAYERS environment variable.
 
-All validation layers work with the DEBUG_REPORT extension to provide the application or user with
-validation feedback. When a validation layer is enabled, it will look at the vk_layer_settings.txt
-file to determine its behavior. Such as outputing to a file, stdout or debug output (Windows). An
-application can also register callback functions via the DEBUG_REPORT extension to receive callbacks
-when the requested validation events happen. Application callbacks happen regardless of the
-settings in the vk_layer_settings.txt file.
+All validation layers work with the DEBUG_REPORT extension to provide validation feedback.
+When a validation layer is enabled, it will look for a vk_layer_settings.txt file to define
+its loggin behavior, which can include sending output to a file, stdout, or debug output (Windows).
+Applications can also register debug callback functions via the DEBUG_REPORT extension to receive
+callbacks when validation events occur. Application callbacks are independent of settings in a
+vk_layer_settings.txt file which will be carried out separately. If no vk_layer_settings.txt
+file is present and no application callbacks are registered, error messages will be output
+through default logging callbacks.
 
 ### Layer library example code
 
index d83b832..aef2f31 100644 (file)
@@ -1,4 +1,5 @@
 # This is an example vk_layer_settings.txt file.
+#
 #  This file allows for per-layer settings which can dynamically affect layer
 #  behavior. Comments in this file are denoted with the "#" char.
 #  Settings lines are of the form "<LayerIdentifier>.<SettingName> = <SettingValue>"
@@ -26,6 +27,9 @@
 #    VK_DBG_LAYER_ACTION_CALLBACK - Call user defined callback function(s) that
 #       have been registered via the VK_EXT_LUNARG_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 Visual Studio output
+#       window, for instance.
 #    VK_DBG_LAYER_ACTION_BREAK - Trigger a breakpoint.
 #
 #   REPORT_FLAGS:
@@ -33,8 +37,9 @@
 #   <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 of using the API in an unrecommended manner which may
-#       also lead to undefined behavior
+#    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