From 548080b88a6efbdc93eee19d5d9d5bb3d4009e53 Mon Sep 17 00:00:00 2001 From: Andrew Cox - LunarG <105252583+andrew-lunarg@users.noreply.github.com> Date: Fri, 1 Dec 2023 22:25:38 +0000 Subject: [PATCH] Better D3D12 Convert to JSON (#1362) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit A new DX12 consumer and struct and enum conversion functions that use the nlohmann JSON library. Deleted the old "ASCII" string concatenating equivalents. * JsonWriter Class that both Vulkan and DX12 Consumers write JSON through. * Moved Annotation Handling to JsonWriter * More metadata blocks supported. * More binary blobs dumped to files on the side. * Convert Masks to Binary for D3D12 Convert masks which don't have enums defining possible bit values into binary numbers encoded in strings using the same format as C++14 binary literals. * JSON Output of Marker Block types for DX12 Consumer * Improved DX12 Enum To String * OutputStream Write std::string_view Writing string views lets it write literal C-strings without specifying the length and also std::strings. * FileOutputStream Additions * Reset() to change to a new file. * FileNoLockOutputStream derived for when the destination file needs no thread locking to syncronize access. * Renamed vulkan_json_util.h to json_util.h and moved from decode to util * Use in String Streams or out, not in/out in several places. 🫳 🎤 --------- Co-authored-by: bradgrantham-lunarg <50641407+bradgrantham-lunarg@users.noreply.github.com> --- framework/decode/CMakeLists.txt | 33 +- .../decode/custom_dx12_ascii_consumer.cpp | 516 - framework/decode/custom_dx12_ascii_consumer.h | 985 -- framework/decode/custom_dx12_to_string.cpp | 731 - framework/decode/custom_dx12_to_string.h | 151 - .../decode/custom_vulkan_struct_to_json.cpp | 126 +- .../decode/custom_vulkan_struct_to_json.h | 334 +- framework/decode/decode_json_util.cpp | 158 + framework/decode/decode_json_util.h | 295 + framework/decode/dx12_ascii_consumer_base.cpp | 392 - framework/decode/dx12_ascii_consumer_base.h | 154 - framework/decode/dx12_consumer_base.h | 4 +- framework/decode/dx12_json_consumer_base.cpp | 277 + framework/decode/dx12_json_consumer_base.h | 101 + framework/decode/json_writer.cpp | 243 + framework/decode/json_writer.h | 151 + framework/decode/marker_json_consumer.h | 57 + framework/decode/metadata_json_consumer.h | 270 + framework/decode/pointer_decoder.h | 2 +- framework/decode/vulkan_decoder_base.cpp | 3 + .../vulkan_export_json_consumer_base.cpp | 673 - .../decode/vulkan_export_json_consumer_base.h | 299 - .../decode/vulkan_json_consumer_base.cpp | 229 + framework/decode/vulkan_json_consumer_base.h | 169 + framework/decode/vulkan_json_util.h | 99 - framework/format/CMakeLists.txt | 1 + framework/format/format_json.h | 70 + .../base_generators/reformat_code.py | 14 +- .../dx12_ascii_consumer_body_generator.py | 223 - .../dx12_consumer_header_generator.py | 5 +- .../dx12_enum_to_json_header_generator.py | 124 + .../dx12_enum_to_string_body_generator.py | 26 +- .../dx12_enum_to_string_header_generator.py | 15 +- .../dx12_json_common_generator.py | 66 + .../dx12_json_consumer_body_generator.py | 183 + ...=> dx12_json_consumer_header_generator.py} | 19 +- .../dx12_replay_consumer_header_generator.py | 2 +- ..._struct_decoders_to_json_body_generator.py | 964 ++ ...truct_decoders_to_json_header_generator.py | 100 + .../dx12_struct_to_string_body_generator.py | 156 - .../dx12_struct_to_string_header_generator.py | 81 - .../generated/dx12_generators/gencode.py | 80 +- .../dx12_generators/json_blocklists.json | 27 + .../json_headers_blocklists.json | 21 + ...cii_overrides.json => json_overrides.json} | 0 framework/generated/generate_dx12.py | 34 +- framework/generated/generate_vulkan.py | 4 +- .../generated_dx12_ascii_consumer.cpp | 12166 ---------------- .../generated/generated_dx12_enum_to_json.h | 2804 ++++ .../generated_dx12_enum_to_string.cpp | 6997 +++++---- .../generated/generated_dx12_enum_to_string.h | 429 +- .../generated_dx12_json_consumer.cpp | 9425 ++++++++++++ ...sumer.h => generated_dx12_json_consumer.h} | 980 +- ...generated_dx12_struct_decoders_to_json.cpp | 4659 ++++++ .../generated_dx12_struct_decoders_to_json.h | 629 + .../generated_dx12_struct_to_string.cpp | 3357 ----- .../generated_dx12_struct_to_string.h | 313 - .../generated_vulkan_enum_to_json.cpp | 4 + .../generated/generated_vulkan_enum_to_json.h | 904 +- ...cpp => generated_vulkan_json_consumer.cpp} | 5711 ++++---- ...mer.h => generated_vulkan_json_consumer.h} | 6 +- .../generated_vulkan_struct_to_json.cpp | 6 +- .../generated_vulkan_struct_to_json.h | 1914 +-- .../generated/vulkan_generators/gencode.py | 14 +- .../vulkan_enum_to_json_body_generator.py | 4 + .../vulkan_enum_to_json_header_generator.py | 13 +- ...=> vulkan_json_consumer_body_generator.py} | 34 +- ... vulkan_json_consumer_header_generator.py} | 0 .../vulkan_struct_to_json_body_generator.py | 16 +- .../vulkan_struct_to_json_header_generator.py | 10 +- framework/graphics/dx12_util.cpp | 135 + framework/graphics/dx12_util.h | 2 + framework/util/CMakeLists.txt | 2 + framework/util/argument_parser.cpp | 8 +- framework/util/custom_common_to_string.cpp | 2 +- framework/util/file_output_stream.cpp | 15 + framework/util/file_output_stream.h | 31 +- framework/util/json_util.cpp | 406 + framework/util/json_util.h | 154 +- framework/util/output_stream.h | 6 + framework/util/strings.cpp | 6 + framework/util/strings.h | 4 + framework/util/test/main.cpp | 36 + framework/util/to_string.cpp | 123 + framework/util/to_string.h | 90 +- tools/convert/main.cpp | 63 +- 86 files changed, 31066 insertions(+), 29079 deletions(-) delete mode 100644 framework/decode/custom_dx12_ascii_consumer.cpp delete mode 100644 framework/decode/custom_dx12_ascii_consumer.h delete mode 100644 framework/decode/custom_dx12_to_string.cpp delete mode 100644 framework/decode/custom_dx12_to_string.h create mode 100644 framework/decode/decode_json_util.cpp create mode 100644 framework/decode/decode_json_util.h delete mode 100644 framework/decode/dx12_ascii_consumer_base.cpp delete mode 100644 framework/decode/dx12_ascii_consumer_base.h create mode 100644 framework/decode/dx12_json_consumer_base.cpp create mode 100644 framework/decode/dx12_json_consumer_base.h create mode 100644 framework/decode/json_writer.cpp create mode 100644 framework/decode/json_writer.h create mode 100644 framework/decode/marker_json_consumer.h create mode 100644 framework/decode/metadata_json_consumer.h delete mode 100644 framework/decode/vulkan_export_json_consumer_base.cpp delete mode 100644 framework/decode/vulkan_export_json_consumer_base.h create mode 100644 framework/decode/vulkan_json_consumer_base.cpp create mode 100644 framework/decode/vulkan_json_consumer_base.h delete mode 100644 framework/decode/vulkan_json_util.h create mode 100644 framework/format/format_json.h delete mode 100644 framework/generated/dx12_generators/dx12_ascii_consumer_body_generator.py create mode 100644 framework/generated/dx12_generators/dx12_enum_to_json_header_generator.py create mode 100644 framework/generated/dx12_generators/dx12_json_common_generator.py create mode 100644 framework/generated/dx12_generators/dx12_json_consumer_body_generator.py rename framework/generated/dx12_generators/{dx12_ascii_consumer_header_generator.py => dx12_json_consumer_header_generator.py} (79%) create mode 100644 framework/generated/dx12_generators/dx12_struct_decoders_to_json_body_generator.py create mode 100644 framework/generated/dx12_generators/dx12_struct_decoders_to_json_header_generator.py delete mode 100644 framework/generated/dx12_generators/dx12_struct_to_string_body_generator.py delete mode 100644 framework/generated/dx12_generators/dx12_struct_to_string_header_generator.py create mode 100644 framework/generated/dx12_generators/json_blocklists.json create mode 100644 framework/generated/dx12_generators/json_headers_blocklists.json rename framework/generated/dx12_generators/{ascii_overrides.json => json_overrides.json} (100%) delete mode 100644 framework/generated/generated_dx12_ascii_consumer.cpp create mode 100644 framework/generated/generated_dx12_enum_to_json.h create mode 100644 framework/generated/generated_dx12_json_consumer.cpp rename framework/generated/{generated_dx12_ascii_consumer.h => generated_dx12_json_consumer.h} (82%) create mode 100644 framework/generated/generated_dx12_struct_decoders_to_json.cpp create mode 100644 framework/generated/generated_dx12_struct_decoders_to_json.h delete mode 100644 framework/generated/generated_dx12_struct_to_string.cpp delete mode 100644 framework/generated/generated_dx12_struct_to_string.h rename framework/generated/{generated_vulkan_export_json_consumer.cpp => generated_vulkan_json_consumer.cpp} (77%) rename framework/generated/{generated_vulkan_export_json_consumer.h => generated_vulkan_json_consumer.h} (99%) rename framework/generated/vulkan_generators/{vulkan_export_json_consumer_body_generator.py => vulkan_json_consumer_body_generator.py} (92%) rename framework/generated/vulkan_generators/{vulkan_export_json_consumer_header_generator.py => vulkan_json_consumer_header_generator.py} (100%) create mode 100644 framework/util/json_util.cpp create mode 100644 framework/util/to_string.cpp diff --git a/framework/decode/CMakeLists.txt b/framework/decode/CMakeLists.txt index f1cad9afc9..91c09e92fe 100644 --- a/framework/decode/CMakeLists.txt +++ b/framework/decode/CMakeLists.txt @@ -41,10 +41,6 @@ target_sources(gfxrecon_decode $<$:${CMAKE_CURRENT_LIST_DIR}/custom_dx12_struct_decoders.cpp> $<$:${CMAKE_CURRENT_LIST_DIR}/custom_dx12_struct_object_mappers.h> $<$:${CMAKE_CURRENT_LIST_DIR}/custom_dx12_struct_object_mappers.cpp> - $<$:${CMAKE_CURRENT_LIST_DIR}/custom_dx12_ascii_consumer.h> - $<$:${CMAKE_CURRENT_LIST_DIR}/custom_dx12_ascii_consumer.cpp> - $<$:${CMAKE_CURRENT_LIST_DIR}/custom_dx12_to_string.h> - $<$:${CMAKE_CURRENT_LIST_DIR}/custom_dx12_to_string.cpp> ${CMAKE_CURRENT_LIST_DIR}/custom_vulkan_struct_handle_mappers.h ${CMAKE_CURRENT_LIST_DIR}/custom_vulkan_struct_handle_mappers.cpp ${CMAKE_CURRENT_LIST_DIR}/custom_vulkan_struct_to_json.h @@ -66,6 +62,10 @@ target_sources(gfxrecon_decode ${CMAKE_CURRENT_LIST_DIR}/file_transformer.h ${CMAKE_CURRENT_LIST_DIR}/file_transformer.cpp ${CMAKE_CURRENT_LIST_DIR}/handle_pointer_decoder.h + ${CMAKE_CURRENT_LIST_DIR}/json_writer.h + ${CMAKE_CURRENT_LIST_DIR}/json_writer.cpp + ${CMAKE_CURRENT_LIST_DIR}/decode_json_util.h + ${CMAKE_CURRENT_LIST_DIR}/decode_json_util.cpp ${CMAKE_CURRENT_LIST_DIR}/pnext_node.h ${CMAKE_CURRENT_LIST_DIR}/pnext_typed_node.h ${CMAKE_CURRENT_LIST_DIR}/pointer_decoder_base.h @@ -113,8 +113,8 @@ target_sources(gfxrecon_decode $<$:${CMAKE_CURRENT_LIST_DIR}/dx12_experimental_resource_value_tracker.cpp> $<$:${CMAKE_CURRENT_LIST_DIR}/dx12_resource_value_mapper.h> $<$:${CMAKE_CURRENT_LIST_DIR}/dx12_resource_value_mapper.cpp> - $<$:${CMAKE_CURRENT_LIST_DIR}/dx12_ascii_consumer_base.h> - $<$:${CMAKE_CURRENT_LIST_DIR}/dx12_ascii_consumer_base.cpp> + $<$:${CMAKE_CURRENT_LIST_DIR}/dx12_json_consumer_base.h> + $<$:${CMAKE_CURRENT_LIST_DIR}/dx12_json_consumer_base.cpp> $<$:${CMAKE_CURRENT_LIST_DIR}/dx12_object_mapping_util.h> $<$:${CMAKE_CURRENT_LIST_DIR}/dx12_object_mapping_util.cpp> $<$:${CMAKE_CURRENT_LIST_DIR}/dx12_enum_util.h> @@ -132,8 +132,10 @@ target_sources(gfxrecon_decode ${CMAKE_CURRENT_LIST_DIR}/vulkan_default_allocator.cpp ${CMAKE_CURRENT_LIST_DIR}/vulkan_captured_swapchain.h ${CMAKE_CURRENT_LIST_DIR}/vulkan_captured_swapchain.cpp - ${CMAKE_CURRENT_LIST_DIR}/vulkan_export_json_consumer_base.h - ${CMAKE_CURRENT_LIST_DIR}/vulkan_export_json_consumer_base.cpp + ${CMAKE_CURRENT_LIST_DIR}/vulkan_json_consumer_base.h + ${CMAKE_CURRENT_LIST_DIR}/vulkan_json_consumer_base.cpp + ${CMAKE_CURRENT_LIST_DIR}/marker_json_consumer.h + ${CMAKE_CURRENT_LIST_DIR}/metadata_json_consumer.h ${CMAKE_CURRENT_LIST_DIR}/vulkan_enum_util.h ${CMAKE_CURRENT_LIST_DIR}/vulkan_feature_util.h ${CMAKE_CURRENT_LIST_DIR}/vulkan_feature_util.cpp @@ -176,8 +178,8 @@ target_sources(gfxrecon_decode ${CMAKE_SOURCE_DIR}/framework/generated/generated_vulkan_decoder.cpp ${CMAKE_SOURCE_DIR}/framework/generated/generated_vulkan_enum_to_json.h ${CMAKE_SOURCE_DIR}/framework/generated/generated_vulkan_enum_to_json.cpp - ${CMAKE_SOURCE_DIR}/framework/generated/generated_vulkan_export_json_consumer.h - ${CMAKE_SOURCE_DIR}/framework/generated/generated_vulkan_export_json_consumer.cpp + ${CMAKE_SOURCE_DIR}/framework/generated/generated_vulkan_json_consumer.h + ${CMAKE_SOURCE_DIR}/framework/generated/generated_vulkan_json_consumer.cpp ${CMAKE_SOURCE_DIR}/framework/generated/generated_vulkan_feature_util.cpp ${CMAKE_SOURCE_DIR}/framework/generated/generated_vulkan_referenced_resource_consumer.h ${CMAKE_SOURCE_DIR}/framework/generated/generated_vulkan_referenced_resource_consumer.cpp @@ -200,15 +202,16 @@ target_sources(gfxrecon_decode $<$:${CMAKE_SOURCE_DIR}/framework/generated/generated_dx12_consumer.h> $<$:${CMAKE_SOURCE_DIR}/framework/generated/generated_dx12_replay_consumer.h> $<$:${CMAKE_SOURCE_DIR}/framework/generated/generated_dx12_replay_consumer.cpp> - $<$:${CMAKE_SOURCE_DIR}/framework/generated/generated_dx12_ascii_consumer.h> - $<$:${CMAKE_SOURCE_DIR}/framework/generated/generated_dx12_ascii_consumer.cpp> + $<$:${CMAKE_SOURCE_DIR}/framework/generated/generated_dx12_json_consumer.h> + $<$:${CMAKE_SOURCE_DIR}/framework/generated/generated_dx12_json_consumer.cpp> $<$:${CMAKE_SOURCE_DIR}/framework/generated/generated_dx12_enum_to_string.h> $<$:${CMAKE_SOURCE_DIR}/framework/generated/generated_dx12_enum_to_string.cpp> - $<$:${CMAKE_SOURCE_DIR}/framework/generated/generated_dx12_struct_to_string.h> - $<$:${CMAKE_SOURCE_DIR}/framework/generated/generated_dx12_struct_to_string.cpp> $<$:${CMAKE_SOURCE_DIR}/framework/generated/generated_dx12_struct_object_mappers.h> $<$:${CMAKE_SOURCE_DIR}/framework/generated/generated_dx12_struct_object_mappers.cpp> $<$:${CMAKE_SOURCE_DIR}/framework/generated/generated_dx12_call_id_to_string.h> + $<$:${CMAKE_SOURCE_DIR}/framework/generated/generated_dx12_enum_to_json.h> + $<$:${CMAKE_SOURCE_DIR}/framework/generated/generated_dx12_struct_decoders_to_json.h> + $<$:${CMAKE_SOURCE_DIR}/framework/generated/generated_dx12_struct_decoders_to_json.cpp> ) if (${GFXRECON_AGS_SUPPORT_FINAL}) @@ -228,7 +231,7 @@ endif() if (MSVC) # These files may fail to compile with VS2017 and older, requiring the default section limit of 2^16 to be increased. set_source_files_properties(${CMAKE_SOURCE_DIR}/framework/generated/generated_decode_pnext_struct.cpp PROPERTIES COMPILE_FLAGS /bigobj) - set_source_files_properties(${CMAKE_SOURCE_DIR}/framework/generated/generated_dx12_ascii_consumer.cpp PROPERTIES COMPILE_FLAGS /bigobj) + set_source_files_properties(${CMAKE_SOURCE_DIR}/framework/generated/generated_dx12_json_consumer.cpp PROPERTIES COMPILE_FLAGS /bigobj) set_source_files_properties(${CMAKE_CURRENT_LIST_DIR}/test/main.cpp PROPERTIES COMPILE_FLAGS /bigobj) if (MSVC_VERSION LESS 1920) set_source_files_properties(${CMAKE_SOURCE_DIR}/framework/generated/generated_decode_pnext_struct.cpp PROPERTIES COMPILE_FLAGS /bigobj) diff --git a/framework/decode/custom_dx12_ascii_consumer.cpp b/framework/decode/custom_dx12_ascii_consumer.cpp deleted file mode 100644 index 97f74da6a1..0000000000 --- a/framework/decode/custom_dx12_ascii_consumer.cpp +++ /dev/null @@ -1,516 +0,0 @@ -/* -** Copyright (c) 2021 LunarG, Inc. -** -** Permission is hereby granted, free of charge, to any person obtaining a -** copy of this software and associated documentation files (the "Software"), -** to deal in the Software without restriction, including without limitation -** the rights to use, copy, modify, merge, publish, distribute, sublicense, -** and/or sell copies of the Software, and to permit persons to whom the -** Software is furnished to do so, subject to the following conditions: -** -** The above copyright notice and this permission notice shall be included in -** all copies or substantial portions of the Software. -** -** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -** IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -** FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -** AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -** LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -** FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -** DEALINGS IN THE SOFTWARE. -*/ - -#include "decode/custom_dx12_ascii_consumer.h" -#include "generated/generated_dx12_ascii_consumer.h" - -GFXRECON_BEGIN_NAMESPACE(gfxrecon) -GFXRECON_BEGIN_NAMESPACE(decode) - -void Dx12AsciiConsumer::Process_ID3D12RootSignatureDeserializer_GetRootSignatureDesc( - const ApiCallInfo& call_info, - format::HandleId object_id, - StructPointerDecoder* return_value) -{ - // clang-format off - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12RootSignatureDeserializer"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "GetRootSignatureDesc"; - auto returnValue = ToString(*return_value->GetPointer(), to_string_flags_, tab_count, tab_size); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile(writeApiCallToFileInfo, tab_count, tab_size, [&](std::stringstream& str_strm) { }); - // clang-format on -} - -void Dx12AsciiConsumer::Process_ID3D12VersionedRootSignatureDeserializer_GetUnconvertedRootSignatureDesc( - const ApiCallInfo& call_info, - format::HandleId object_id, - StructPointerDecoder* return_value) -{ - // clang-format off - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12VersionedRootSignatureDeserializer"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "GetUnconvertedRootSignatureDesc"; - auto returnValue = ToString(*return_value->GetPointer(), to_string_flags_, tab_count, tab_size); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile(writeApiCallToFileInfo, tab_count, tab_size, [&](std::stringstream& str_strm) { }); - // clang-format on -} - -void Dx12AsciiConsumer::Process_ID3D12Heap_GetDesc(const ApiCallInfo& call_info, - format::HandleId object_id, - Decoded_D3D12_HEAP_DESC return_value) -{ - // clang-format off - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12Heap"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "GetDesc"; - auto returnValue = ToString(*return_value.decoded_value, to_string_flags_, tab_count, tab_size); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile(writeApiCallToFileInfo, tab_count, tab_size, [&](std::stringstream& str_strm) { }); - // clang-format on -} - -void Dx12AsciiConsumer::Process_ID3D12Resource_GetDesc(const ApiCallInfo& call_info, - format::HandleId object_id, - Decoded_D3D12_RESOURCE_DESC return_value) -{ - // clang-format off - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12Resource"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "GetDesc"; - auto returnValue = ToString(*return_value.decoded_value, to_string_flags_, tab_count, tab_size); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile(writeApiCallToFileInfo, tab_count, tab_size, [&](std::stringstream& str_strm) { }); - // clang-format on -} - -void Dx12AsciiConsumer::Process_ID3D12DescriptorHeap_GetDesc(const ApiCallInfo& call_info, - format::HandleId object_id, - Decoded_D3D12_DESCRIPTOR_HEAP_DESC return_value) -{ - // clang-format off - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12DescriptorHeap"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "GetDesc"; - auto returnValue = ToString(*return_value.decoded_value, to_string_flags_, tab_count, tab_size); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile(writeApiCallToFileInfo, tab_count, tab_size, [&](std::stringstream& str_strm) { }); - // clang-format on -} - -void Dx12AsciiConsumer::Process_ID3D12DescriptorHeap_GetCPUDescriptorHandleForHeapStart( - const ApiCallInfo& call_info, format::HandleId object_id, Decoded_D3D12_CPU_DESCRIPTOR_HANDLE return_value) -{ - // clang-format off - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12DescriptorHeap"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "GetCPUDescriptorHandleForHeapStart"; - auto returnValue = ToString(*return_value.decoded_value, to_string_flags_, tab_count, tab_size); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile(writeApiCallToFileInfo, tab_count, tab_size, [&](std::stringstream& str_strm) { }); - // clang-format on -} - -void Dx12AsciiConsumer::Process_ID3D12DescriptorHeap_GetGPUDescriptorHandleForHeapStart( - const ApiCallInfo& call_info, format::HandleId object_id, Decoded_D3D12_GPU_DESCRIPTOR_HANDLE return_value) -{ - // clang-format off - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12DescriptorHeap"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "GetGPUDescriptorHandleForHeapStart"; - auto returnValue = ToString(*return_value.decoded_value, to_string_flags_, tab_count, tab_size); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile(writeApiCallToFileInfo, tab_count, tab_size, [&](std::stringstream& str_strm) { }); - // clang-format on -} - -void Dx12AsciiConsumer::Process_ID3D12CommandQueue_GetDesc(const ApiCallInfo& call_info, - format::HandleId object_id, - Decoded_D3D12_COMMAND_QUEUE_DESC return_value) -{ - // clang-format off - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12CommandQueue"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "GetDesc"; - auto returnValue = ToString(*return_value.decoded_value, to_string_flags_, tab_count, tab_size); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile(writeApiCallToFileInfo, tab_count, tab_size, [&](std::stringstream& str_strm) { }); - // clang-format on -} - -void Dx12AsciiConsumer::Process_ID3D12Device_GetResourceAllocationInfo( - const ApiCallInfo& call_info, - format::HandleId object_id, - Decoded_D3D12_RESOURCE_ALLOCATION_INFO return_value, - UINT visibleMask, - UINT numResourceDescs, - StructPointerDecoder* pResourceDescs) -{ - // clang-format off - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12Device"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "GetResourceAllocationInfo"; - auto returnValue = ToString(*return_value.decoded_value, to_string_flags_, tab_count, tab_size); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile(writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "visibleMask", to_string_flags_, tab_count, tab_size, ToString(visibleMask)); - FieldToString(str_strm, false, "numResourceDescs", to_string_flags_, tab_count, tab_size, ToString(numResourceDescs)); - FieldToString(str_strm, false, "pResourceDescs", to_string_flags_, tab_count, tab_size, StructPointerDecoderArrayToString(numResourceDescs, pResourceDescs, to_string_flags_, tab_count, tab_size)); - } - ); - // clang-format on -} - -void Dx12AsciiConsumer::Process_ID3D12Device_GetCustomHeapProperties(const ApiCallInfo& call_info, - format::HandleId object_id, - Decoded_D3D12_HEAP_PROPERTIES return_value, - UINT nodeMask, - D3D12_HEAP_TYPE heapType) -{ - // clang-format off - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12Device"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "GetCustomHeapProperties"; - auto returnValue = ToString(*return_value.decoded_value, to_string_flags_, tab_count, tab_size); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile(writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "nodeMask", to_string_flags_, tab_count, tab_size, ToString(nodeMask)); - FieldToString(str_strm, false, "heapType", to_string_flags_, tab_count, tab_size, Quote(ToString(heapType))); - } - ); - // clang-format on -} - -void Dx12AsciiConsumer::Process_ID3D12Device_GetAdapterLuid(const ApiCallInfo& call_info, - format::HandleId object_id, - Decoded_LUID return_value) -{ - // clang-format off - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12Device"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "GetAdapterLuid"; - auto returnValue = ToString(*return_value.decoded_value, to_string_flags_, tab_count, tab_size); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile(writeApiCallToFileInfo, tab_count, tab_size, [&](std::stringstream& str_strm) { }); - // clang-format on -} - -void Dx12AsciiConsumer::Process_ID3D12ProtectedResourceSession_GetDesc( - const ApiCallInfo& call_info, - format::HandleId object_id, - Decoded_D3D12_PROTECTED_RESOURCE_SESSION_DESC return_value) -{ - // clang-format off - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12ProtectedResourceSession"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "GetDesc"; - auto returnValue = ToString(*return_value.decoded_value, to_string_flags_, tab_count, tab_size); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile(writeApiCallToFileInfo, tab_count, tab_size, [&](std::stringstream& str_strm) { }); - // clang-format on -} - -void Dx12AsciiConsumer::Process_ID3D12Device4_GetResourceAllocationInfo1( - const ApiCallInfo& call_info, - format::HandleId object_id, - Decoded_D3D12_RESOURCE_ALLOCATION_INFO return_value, - UINT visibleMask, - UINT numResourceDescs, - StructPointerDecoder* pResourceDescs, - StructPointerDecoder* pResourceAllocationInfo1) -{ - // clang-format off - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12Device4"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "GetResourceAllocationInfo1"; - auto returnValue = ToString(*return_value.decoded_value, to_string_flags_, tab_count, tab_size); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile(writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "visibleMask", to_string_flags_, tab_count, tab_size, ToString(visibleMask)); - FieldToString(str_strm, false, "numResourceDescs", to_string_flags_, tab_count, tab_size, ToString(numResourceDescs)); - FieldToString(str_strm, false, "pResourceDescs", to_string_flags_, tab_count, tab_size, StructPointerDecoderArrayToString(numResourceDescs, pResourceDescs, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "[out]pResourceAllocationInfo1", to_string_flags_, tab_count, tab_size, StructPointerDecoderArrayToString(numResourceDescs, pResourceAllocationInfo1, to_string_flags_, tab_count, tab_size)); - } - ); - // clang-format on -} - -void Dx12AsciiConsumer::Process_ID3D12GraphicsCommandList_ResourceBarrier( - const ApiCallInfo& call_info, - format::HandleId object_id, - UINT NumBarriers, - StructPointerDecoder* pBarriers) -{ - // clang-format off - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12GraphicsCommandList"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "ResourceBarrier"; - WriteApiCallToFile(writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "NumBarriers", to_string_flags_, tab_count, tab_size, ToString(NumBarriers)); - FieldToString(str_strm, false, "pBarriers", to_string_flags_, tab_count, tab_size, StructPointerDecoderArrayToString(NumBarriers, pBarriers, to_string_flags_, tab_count, tab_size)); - } - ); - // clang-format on -} - -void Dx12AsciiConsumer::Process_ID3D12InfoQueue_GetMessage(const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value, - UINT64 MessageIndex, - StructPointerDecoder* pMessage, - PointerDecoder* pMessageByteLength) -{ - // clang-format off - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12InfoQueue"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "GetMessage"; - auto returnValue = ToString(return_value, to_string_flags_, tab_count, tab_size); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile(writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "MessageIndex", to_string_flags_, tab_count, tab_size, ToString(MessageIndex)); - FieldToString(str_strm, false, "[out]pMessage", to_string_flags_, tab_count, tab_size, StructPointerDecoderArrayToString(pMessageByteLength, pMessage, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "pMessageByteLength", to_string_flags_, tab_count, tab_size, PointerDecoderToString(pMessageByteLength, to_string_flags_, tab_count, tab_size)); - } - ); - // clang-format on -} - -void Dx12AsciiConsumer::Process_ID3D12InfoQueue_GetStorageFilter( - const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value, - StructPointerDecoder* pFilter, - PointerDecoder* pFilterByteLength) -{ - // clang-format off - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12InfoQueue"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "GetStorageFilter"; - auto returnValue = ToString(return_value, to_string_flags_, tab_count, tab_size); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile(writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "[out]pFilter", to_string_flags_, tab_count, tab_size, StructPointerDecoderArrayToString(pFilterByteLength, pFilter, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "pFilterByteLength", to_string_flags_, tab_count, tab_size, PointerDecoderToString(pFilterByteLength, to_string_flags_, tab_count, tab_size)); - } - ); - // clang-format on -} - -void Dx12AsciiConsumer::Process_ID3D12InfoQueue_GetRetrievalFilter( - const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value, - StructPointerDecoder* pFilter, - PointerDecoder* pFilterByteLength) -{ - // clang-format off - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12InfoQueue"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "GetRetrievalFilter"; - auto returnValue = ToString(return_value, to_string_flags_, tab_count, tab_size); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile(writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "[out]pFilter", to_string_flags_, tab_count, tab_size, StructPointerDecoderArrayToString(pFilterByteLength, pFilter, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "pFilterByteLength", to_string_flags_, tab_count, tab_size, PointerDecoderToString(pFilterByteLength, to_string_flags_, tab_count, tab_size)); - } - ); - // clang-format on -} - -void Dx12AsciiConsumer::Process_ID3D12Device_CreateRootSignature(const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value, - UINT nodeMask, - PointerDecoder* pBlobWithRootSignature, - SIZE_T blobLengthInBytes, - Decoded_GUID riid, - HandlePointerDecoder* ppvRootSignature) -{ - // clang-format off - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12Device"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "CreateRootSignature"; - auto returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile(writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "nodeMask", to_string_flags_, tab_count, tab_size, ToString(nodeMask)); - FieldToString(str_strm, false, "pBlobWithRootSignature", to_string_flags_, tab_count, tab_size, HandleIdToString(pBlobWithRootSignature)); - FieldToString(str_strm, false, "blobLengthInBytes", to_string_flags_, tab_count, tab_size, ToString(blobLengthInBytes)); - FieldToString(str_strm, false, "riid", to_string_flags_, tab_count, tab_size, ToString(*riid.decoded_value)); - FieldToString(str_strm, false, "[out]ppvRootSignature", to_string_flags_, tab_count, tab_size, HandleIdToString(ppvRootSignature)); - } - ); - // clang-format on -} - -void Dx12AsciiConsumer::Process_D3D12CreateRootSignatureDeserializer( - const ApiCallInfo& call_info, - HRESULT return_value, - PointerDecoder* pSrcData, - SIZE_T SrcDataSizeInBytes, - Decoded_GUID pRootSignatureDeserializerInterface, - HandlePointerDecoder* ppRootSignatureDeserializer) -{ - // clang-format off - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pFunctionName = "D3D12CreateRootSignatureDeserializer"; - auto returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile(writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "pSrcData", to_string_flags_, tab_count, tab_size, PointerDecoderArrayToString(SrcDataSizeInBytes, pSrcData, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "SrcDataSizeInBytes", to_string_flags_, tab_count, tab_size, ToString(SrcDataSizeInBytes)); - FieldToString(str_strm, false, "pRootSignatureDeserializerInterface", to_string_flags_, tab_count, tab_size, ToString(*pRootSignatureDeserializerInterface.decoded_value, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "[out]ppRootSignatureDeserializer", to_string_flags_, tab_count, tab_size, HandleIdToString(ppRootSignatureDeserializer)); - } - ); - // clang-format on -} - -void Dx12AsciiConsumer::Process_ID3D12CommandList_GetType(const ApiCallInfo& call_info, - format::HandleId object_id, - D3D12_COMMAND_LIST_TYPE return_value) -{ - // clang-format off - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12CommandList"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "GetType"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile(writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - } - ); - // clang-format on -} - -void Dx12AsciiConsumer::Process_ID3D12Device1_CreatePipelineLibrary(const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value, - PointerDecoder* pLibraryBlob, - SIZE_T BlobLength, - Decoded_GUID riid, - HandlePointerDecoder* ppPipelineLibrary) -{ - // clang-format off - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12Device1"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "CreatePipelineLibrary"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "pLibraryBlob", to_string_flags_, tab_count, tab_size, "\"" + PtrToString(pLibraryBlob->GetPointer()) + "\""); - FieldToString(str_strm, false, "BlobLength", to_string_flags_, tab_count, tab_size, ToString(BlobLength)); - FieldToString(str_strm, false, "riid", to_string_flags_, tab_count, tab_size, ToString(*riid.decoded_value)); - FieldToString(str_strm, false, "[out]ppPipelineLibrary", to_string_flags_, tab_count, tab_size, HandleIdToString(ppPipelineLibrary)); - } - ); - // clang-format on -} - -GFXRECON_END_NAMESPACE(decode) -GFXRECON_END_NAMESPACE(gfxrecon) diff --git a/framework/decode/custom_dx12_ascii_consumer.h b/framework/decode/custom_dx12_ascii_consumer.h deleted file mode 100644 index de0719b5cd..0000000000 --- a/framework/decode/custom_dx12_ascii_consumer.h +++ /dev/null @@ -1,985 +0,0 @@ -/* -** Copyright (c) 2021 LunarG, Inc. -** -** Permission is hereby granted, free of charge, to any person obtaining a -** copy of this software and associated documentation files (the "Software"), -** to deal in the Software without restriction, including without limitation -** the rights to use, copy, modify, merge, publish, distribute, sublicense, -** and/or sell copies of the Software, and to permit persons to whom the -** Software is furnished to do so, subject to the following conditions: -** -** The above copyright notice and this permission notice shall be included in -** all copies or substantial portions of the Software. -** -** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -** IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -** FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -** AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -** LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -** FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -** DEALINGS IN THE SOFTWARE. -*/ - -#ifndef GFXRECON_CUSTOM_DX12_ASCII_CONSUMER_H -#define GFXRECON_CUSTOM_DX12_ASCII_CONSUMER_H - -#include "decode/custom_dx12_struct_decoders.h" -#include "decode/custom_vulkan_struct_decoders.h" -#include "decode/descriptor_update_template_decoder.h" -#include "decode/handle_pointer_decoder.h" -#include "decode/pointer_decoder.h" -#include "decode/string_decoder.h" -#include "decode/struct_pointer_decoder.h" -#include "format/format.h" -#include "generated/generated_dx12_struct_decoders.h" -#include "generated/generated_dx12_struct_to_string.h" -#include "generated/generated_dx12_enum_to_string.h" -#include "util/defines.h" -#include "util/to_string.h" -#include "custom_dx12_to_string.h" - -GFXRECON_BEGIN_NAMESPACE(gfxrecon) -GFXRECON_BEGIN_NAMESPACE(decode) - -/////////////////////////////////////////////////////////////////////////////// -// NOTE : It would be much nicer to route return values through the generic -// ToString() mechanism...it will take some thought to figure out how to do -// that in the generators in a straight forward way...ultimately it's only a -// handful of API calls that need this treatment so it's not pressing. -template -inline std::string DX12ReturnValueToString(const DX12ReturnType& return_value, - util::ToStringFlags to_string_flags, - uint32_t tab_count, - uint32_t tab_size) -{ - static_assert(nullptr == "Implement a specialisation for whatever type is instantating this base template or call " - "util::ToString() directly if not converting a struct."); - return util::ToString(return_value, to_string_flags, tab_count, tab_size); -} - -template <> -inline std::string DX12ReturnValueToString(const Decoded_LUID& return_value, - util::ToStringFlags to_string_flags, - uint32_t tab_count, - uint32_t tab_size) -{ - return util::ToString(*return_value.decoded_value, to_string_flags, tab_count, tab_size); -} - -template <> -inline std::string DX12ReturnValueToString( - const Decoded_D3D12_PROTECTED_RESOURCE_SESSION_DESC1& return_value, - util::ToStringFlags to_string_flags, - uint32_t tab_count, - uint32_t tab_size) -{ - return util::ToString(*return_value.decoded_value, to_string_flags, tab_count, tab_size); -} - -template <> -inline std::string DX12ReturnValueToString( - const Decoded_D3D12_RESOURCE_ALLOCATION_INFO& return_value, - util::ToStringFlags to_string_flags, - uint32_t tab_count, - uint32_t tab_size) -{ - return util::ToString(*return_value.decoded_value, to_string_flags, tab_count, tab_size); -} - -template <> -inline std::string -DX12ReturnValueToString(const Decoded_D3D12_RESOURCE_DESC1& return_value, - util::ToStringFlags to_string_flags, - uint32_t tab_count, - uint32_t tab_size) -{ - return util::ToString(*return_value.decoded_value, to_string_flags, tab_count, tab_size); -} - -template <> -inline std::string DX12ReturnValueToString( - const Decoded_D3D12_SHADER_CACHE_SESSION_DESC& return_value, - util::ToStringFlags to_string_flags, - uint32_t tab_count, - uint32_t tab_size) -{ - return util::ToString(*return_value.decoded_value, to_string_flags, tab_count, tab_size); -} - -template <> -inline std::string DX12ReturnValueToString( - const Decoded_D3D12_DEVICE_CONFIGURATION_DESC& return_value, - util::ToStringFlags to_string_flags, - uint32_t tab_count, - uint32_t tab_size) -{ - return util::ToString(*return_value.decoded_value, to_string_flags, tab_count, tab_size); -} - -/////////////////////////////////////////////////////////////////////////////// - -template -inline std::string EnumPointerDecoderToString(PointerDecoder* pObj) -{ - auto pDecodedObj = pObj ? pObj->GetPointer() : nullptr; - return pDecodedObj ? (util::Quote(util::ToString(*pDecodedObj))) : "null"; -} - -template -inline std::string PointerDecoderToString(PointerDecoder* pObj, - util::ToStringFlags toStringFlags = util::kToString_Default, - uint32_t tabCount = 0, - uint32_t tabSize = 4) -{ - auto pDecodedObj = pObj ? pObj->GetPointer() : nullptr; - return pDecodedObj ? util::ToString(*pDecodedObj, toStringFlags, tabCount, tabSize) : "null"; -} - -template -inline std::string PointerDecoderToString(PointerDecoder* pObj, - util::ToStringFlags toStringFlags = util::kToString_Default, - uint32_t tabCount = 0, - uint32_t tabSize = 4) -{ - auto pDecodedObj = pObj ? pObj->GetPointer() : nullptr; - return pDecodedObj ? util::ToString(*pDecodedObj, toStringFlags, tabCount, tabSize) : "null"; -} - -template -inline std::string StructPointerDecoderToString(StructPointerDecoder* pObj, - util::ToStringFlags toStringFlags = util::kToString_Default, - uint32_t tabCount = 0, - uint32_t tabSize = 4) -{ - auto pMetaStructPointer = pObj ? pObj->GetMetaStructPointer() : nullptr; - auto pDecodedObj = pMetaStructPointer ? pMetaStructPointer->decoded_value : nullptr; - return pDecodedObj ? util::ToString(*pDecodedObj, toStringFlags, tabCount, tabSize) : "null"; -} - -template -inline std::string StringDecoderToString(StringDecoderType* pObj, - util::ToStringFlags toStringFlags = util::kToString_Default, - uint32_t tabCount = 0, - uint32_t tabSize = 4) -{ - auto pDecodedObj = pObj ? pObj->GetPointer() : nullptr; - return pDecodedObj ? util::ToString(*pDecodedObj, toStringFlags, tabCount, tabSize) : "null"; -} - -template -inline std::string OutPtrDecoderToString(HandlePointerDecoder* pObj) -{ - auto pDecodedObj = pObj ? pObj->GetPointer() : nullptr; - return pDecodedObj ? std::to_string(static_cast(*pDecodedObj)) : "null"; -} - -template -inline size_t GetCount(CountType countObj) -{ - return static_cast(countObj); -} - -template <> -inline size_t GetCount*>(PointerDecoder* pCountObj) -{ - auto pDecodedCountObj = pCountObj ? pCountObj->GetPointer() : nullptr; - return static_cast(pDecodedCountObj ? *pDecodedCountObj : 0); -} - -template <> -inline size_t GetCount*>(PointerDecoder* pCountObj) -{ - auto pDecodedCountObj = pCountObj ? pCountObj->GetPointer() : nullptr; - return static_cast(pDecodedCountObj ? *pDecodedCountObj : 0); -} - -template -inline std::string PointerDecoderArrayToString(const CountType& countObj, - PointerDecoderType* pObjs, - util::ToStringFlags toStringFlags = util::kToString_Default, - uint32_t tabCount = 0, - uint32_t tabSize = 4) -{ - using namespace util; - return ArrayToString( - GetCount(countObj), - pObjs, - toStringFlags, - tabCount, - tabSize, - [&]() { return pObjs && !pObjs->IsNull(); }, - [&](size_t i) { return ToString(pObjs->GetPointer()[i], toStringFlags, tabCount + 1, tabSize); }); -} - -template -inline std::string EnumPointerDecoderArrayToString(const CountType& countObj, - PointerDecoder* pObjs, - util::ToStringFlags toStringFlags = util::kToString_Default, - uint32_t tabCount = 0, - uint32_t tabSize = 4) -{ - using namespace util; - return ArrayToString( - GetCount(countObj), - pObjs, - toStringFlags, - tabCount, - tabSize, - [&]() { return pObjs && !pObjs->IsNull(); }, - [&](size_t i) { return util::Quote(ToString(pObjs->GetPointer()[i])); }); -} - -template -inline std::string EnumPointerDecoderArrayToString(const CountType& countObj, - PointerDecoder* pObjs, - util::ToStringFlags toStringFlags = util::kToString_Default, - uint32_t tabCount = 0, - uint32_t tabSize = 4) -{ - using namespace util; - return ArrayToString( - GetCount(countObj), - pObjs, - toStringFlags, - tabCount, - tabSize, - [&]() { return pObjs && !pObjs->IsNull(); }, - [&](size_t i) { return util::Quote(ArrayToString(pObjs->GetInnerLength(i), pObjs->GetPointer()[i])); }); -} - -template -inline std::string StructPointerDecoderArrayToString(const CountType& countObj, - StructPointerDecoderType* pObjs, - util::ToStringFlags toStringFlags = util::kToString_Default, - uint32_t tabCount = 0, - uint32_t tabSize = 4) -{ - using namespace util; - return ArrayToString( - GetCount(countObj), - pObjs, - toStringFlags, - tabCount, - tabSize, - [&]() { return pObjs && !pObjs->IsNull(); }, - [&](size_t i) { - return ToString(*pObjs->GetMetaStructPointer()[i].decoded_value, toStringFlags, tabCount + 1, tabSize); - }); -} - -/////////////////////////////////////////////////////////////////////////////// -// The following StructPointerDecoder<> types require custom handling -template -typename DecodedStructureType::struct_type GetNestedDecodedStructure(const DecodedStructureType* pObj) -{ - return pObj && pObj->decoded_value ? *pObj->decoded_value : typename DecodedStructureType::struct_type{}; -} - -template -typename const DecodedStructureType::struct_type& -GetNestedMetaStructure(const StructPointerDecoder* pObj) -{ - static const DecodedStructureType::struct_type sDefault{}; - auto pMetaStructPointer = pObj ? pObj->GetMetaStructPointer() : nullptr; - auto pDecodedObj = pMetaStructPointer ? pMetaStructPointer->decoded_value : nullptr; - return pDecodedObj ? *pDecodedObj : sDefault; -} - -template <> -inline std::string StructPointerDecoderArrayToString(const UINT& countObj, - StructPointerDecoder* pObjs, - util::ToStringFlags toStringFlags, - uint32_t tabCount, - uint32_t tabSize) -{ - using namespace util; - return ArrayToString( - GetCount(countObj), - pObjs, - toStringFlags, - tabCount, - tabSize, - [&]() { return pObjs && !pObjs->IsNull(); }, - [&](size_t i) { - auto obj = *pObjs->GetMetaStructPointer()[i].decoded_value; - switch (obj.Type) - { - case D3D12_RESOURCE_BARRIER_TYPE_TRANSITION: - { - auto pTransition = pObjs->GetMetaStructPointer()[i].Transition; - obj.Transition = GetNestedDecodedStructure(pTransition); - obj.Transition.pResource = - pTransition ? reinterpret_cast(pTransition->pResource) : nullptr; - } - break; - case D3D12_RESOURCE_BARRIER_TYPE_ALIASING: - { - auto pAliasing = pObjs->GetMetaStructPointer()[i].Aliasing; - obj.Aliasing = GetNestedDecodedStructure(pAliasing); - obj.Aliasing.pResourceBefore = - pAliasing ? reinterpret_cast(pAliasing->pResourceBefore) : nullptr; - obj.Aliasing.pResourceAfter = - pAliasing ? reinterpret_cast(pAliasing->pResourceAfter) : nullptr; - } - break; - case D3D12_RESOURCE_BARRIER_TYPE_UAV: - { - - auto pUav = pObjs->GetMetaStructPointer()[i].UAV; - obj.UAV = GetNestedDecodedStructure(pUav); - obj.UAV.pResource = pUav ? reinterpret_cast(pUav->pResource) : nullptr; - } - break; - default: - { - } - } - return ToString(obj, toStringFlags, tabCount + 1, tabSize); - }); -} - -template <> -inline std::string StructPointerDecoderToString( - StructPointerDecoder* pObj, - util::ToStringFlags toStringFlags, - uint32_t tabCount, - uint32_t tabSize) -{ - auto pMetaStructPointer = pObj ? pObj->GetMetaStructPointer() : nullptr; - auto pDecodedObj = pMetaStructPointer ? pMetaStructPointer->decoded_value : nullptr; - if (pDecodedObj) - { - auto obj = *pDecodedObj; - if (obj.Type == D3D12_TEXTURE_COPY_TYPE_PLACED_FOOTPRINT) - { - obj.PlacedFootprint = GetNestedDecodedStructure(pMetaStructPointer->PlacedFootprint); - } - obj.pResource = reinterpret_cast(pMetaStructPointer->pResource); - return util::ToString(obj, toStringFlags, tabCount, tabSize); - } - return "null"; -} - -template <> -inline std::string StructPointerDecoderToString( - StructPointerDecoder* pObj, - util::ToStringFlags toStringFlags, - uint32_t tabCount, - uint32_t tabSize) -{ - auto pMetaStructPointer = pObj ? pObj->GetMetaStructPointer() : nullptr; - auto pDecodedObj = pMetaStructPointer ? pMetaStructPointer->decoded_value : nullptr; - if (pDecodedObj) - { - auto obj = *pDecodedObj; - switch (obj.ViewDimension) - { - case D3D12_SRV_DIMENSION_BUFFER: - { - obj.Buffer = GetNestedDecodedStructure(pMetaStructPointer->Buffer); - } - break; - case D3D12_SRV_DIMENSION_TEXTURE1D: - { - obj.Texture1D = GetNestedDecodedStructure(pMetaStructPointer->Texture1D); - } - break; - case D3D12_SRV_DIMENSION_TEXTURE1DARRAY: - { - obj.Texture1DArray = GetNestedDecodedStructure(pMetaStructPointer->Texture1DArray); - } - break; - case D3D12_SRV_DIMENSION_TEXTURE2D: - { - obj.Texture2D = GetNestedDecodedStructure(pMetaStructPointer->Texture2D); - } - break; - case D3D12_SRV_DIMENSION_TEXTURE2DARRAY: - { - obj.Texture2DArray = GetNestedDecodedStructure(pMetaStructPointer->Texture2DArray); - } - break; - case D3D12_SRV_DIMENSION_TEXTURE2DMS: - { - obj.Texture2DMS = GetNestedDecodedStructure(pMetaStructPointer->Texture2DMS); - } - break; - case D3D12_SRV_DIMENSION_TEXTURE2DMSARRAY: - { - obj.Texture2DMSArray = GetNestedDecodedStructure(pMetaStructPointer->Texture2DMSArray); - } - break; - case D3D12_SRV_DIMENSION_TEXTURE3D: - { - obj.Texture3D = GetNestedDecodedStructure(pMetaStructPointer->Texture3D); - } - break; - case D3D12_SRV_DIMENSION_TEXTURECUBE: - { - obj.TextureCube = GetNestedDecodedStructure(pMetaStructPointer->TextureCube); - } - break; - case D3D12_SRV_DIMENSION_TEXTURECUBEARRAY: - { - obj.TextureCubeArray = GetNestedDecodedStructure(pMetaStructPointer->TextureCubeArray); - } - break; - case D3D12_SRV_DIMENSION_RAYTRACING_ACCELERATION_STRUCTURE: - { - obj.RaytracingAccelerationStructure = - GetNestedDecodedStructure(pMetaStructPointer->RaytracingAccelerationStructure); - } - break; - default: - { - } - } - return util::ToString(obj, toStringFlags, tabCount, tabSize); - } - return "null"; -} - -template <> -inline std::string StructPointerDecoderToString( - StructPointerDecoder* pObj, - util::ToStringFlags toStringFlags, - uint32_t tabCount, - uint32_t tabSize) -{ - auto pMetaStructPointer = pObj ? pObj->GetMetaStructPointer() : nullptr; - auto pDecodedObj = pMetaStructPointer ? pMetaStructPointer->decoded_value : nullptr; - if (pDecodedObj) - { - auto obj = *pDecodedObj; - switch (obj.ViewDimension) - { - case D3D12_SRV_DIMENSION_BUFFER: - { - obj.Buffer = GetNestedDecodedStructure(pMetaStructPointer->Buffer); - } - break; - case D3D12_SRV_DIMENSION_TEXTURE1D: - { - obj.Texture1D = GetNestedDecodedStructure(pMetaStructPointer->Texture1D); - } - break; - case D3D12_SRV_DIMENSION_TEXTURE1DARRAY: - { - obj.Texture1DArray = GetNestedDecodedStructure(pMetaStructPointer->Texture1DArray); - } - break; - case D3D12_SRV_DIMENSION_TEXTURE2D: - { - obj.Texture2D = GetNestedDecodedStructure(pMetaStructPointer->Texture2D); - } - break; - case D3D12_SRV_DIMENSION_TEXTURE2DARRAY: - { - obj.Texture2DArray = GetNestedDecodedStructure(pMetaStructPointer->Texture2DArray); - } - break; - case D3D12_SRV_DIMENSION_TEXTURE3D: - { - obj.Texture3D = GetNestedDecodedStructure(pMetaStructPointer->Texture3D); - } - break; - default: - { - } - } - return util::ToString(obj, toStringFlags, tabCount, tabSize); - } - return "null"; -} - -template <> -inline std::string StructPointerDecoderToString( - StructPointerDecoder* pObj, - util::ToStringFlags toStringFlags, - uint32_t tabCount, - uint32_t tabSize) -{ - auto pMetaStructPointer = pObj ? pObj->GetMetaStructPointer() : nullptr; - auto pDecodedObj = pMetaStructPointer ? pMetaStructPointer->decoded_value : nullptr; - if (pDecodedObj) - { - auto obj = *pDecodedObj; - switch (obj.ViewDimension) - { - case D3D12_SRV_DIMENSION_BUFFER: - { - obj.Buffer = GetNestedDecodedStructure(pMetaStructPointer->Buffer); - } - break; - case D3D12_SRV_DIMENSION_TEXTURE1D: - { - obj.Texture1D = GetNestedDecodedStructure(pMetaStructPointer->Texture1D); - } - break; - case D3D12_SRV_DIMENSION_TEXTURE1DARRAY: - { - obj.Texture1DArray = GetNestedDecodedStructure(pMetaStructPointer->Texture1DArray); - } - break; - case D3D12_SRV_DIMENSION_TEXTURE2D: - { - obj.Texture2D = GetNestedDecodedStructure(pMetaStructPointer->Texture2D); - } - break; - case D3D12_SRV_DIMENSION_TEXTURE2DARRAY: - { - obj.Texture2DArray = GetNestedDecodedStructure(pMetaStructPointer->Texture2DArray); - } - break; - case D3D12_SRV_DIMENSION_TEXTURE2DMS: - { - obj.Texture2DMS = GetNestedDecodedStructure(pMetaStructPointer->Texture2DMS); - } - break; - case D3D12_SRV_DIMENSION_TEXTURE2DMSARRAY: - { - obj.Texture2DMSArray = GetNestedDecodedStructure(pMetaStructPointer->Texture2DMSArray); - } - break; - case D3D12_SRV_DIMENSION_TEXTURE3D: - { - obj.Texture3D = GetNestedDecodedStructure(pMetaStructPointer->Texture3D); - } - break; - default: - { - } - } - return util::ToString(obj, toStringFlags, tabCount, tabSize); - } - return "null"; -} - -template <> -inline std::string StructPointerDecoderToString( - StructPointerDecoder* pObj, - util::ToStringFlags toStringFlags, - uint32_t tabCount, - uint32_t tabSize) -{ - auto pMetaStructPointer = pObj ? pObj->GetMetaStructPointer() : nullptr; - auto pDecodedObj = pMetaStructPointer ? pMetaStructPointer->decoded_value : nullptr; - if (pDecodedObj) - { - auto obj = *pDecodedObj; - switch (obj.ViewDimension) - { - case D3D12_SRV_DIMENSION_TEXTURE1D: - { - obj.Texture1D = GetNestedDecodedStructure(pMetaStructPointer->Texture1D); - } - break; - case D3D12_SRV_DIMENSION_TEXTURE1DARRAY: - { - obj.Texture1DArray = GetNestedDecodedStructure(pMetaStructPointer->Texture1DArray); - } - break; - case D3D12_SRV_DIMENSION_TEXTURE2D: - { - obj.Texture2D = GetNestedDecodedStructure(pMetaStructPointer->Texture2D); - } - break; - case D3D12_SRV_DIMENSION_TEXTURE2DARRAY: - { - obj.Texture2DArray = GetNestedDecodedStructure(pMetaStructPointer->Texture2DArray); - } - break; - case D3D12_SRV_DIMENSION_TEXTURE2DMS: - { - obj.Texture2DMS = GetNestedDecodedStructure(pMetaStructPointer->Texture2DMS); - } - break; - case D3D12_SRV_DIMENSION_TEXTURE2DMSARRAY: - { - obj.Texture2DMSArray = GetNestedDecodedStructure(pMetaStructPointer->Texture2DMSArray); - } - break; - default: - { - } - break; - } - return util::ToString(obj, toStringFlags, tabCount, tabSize); - } - return "null"; -} - -template <> -inline std::string -StructPointerDecoderToString(StructPointerDecoder* pObj, - util::ToStringFlags toStringFlags, - uint32_t tabCount, - uint32_t tabSize) -{ - auto pMetaStructPointer = pObj ? pObj->GetMetaStructPointer() : nullptr; - auto pDecodedObj = pMetaStructPointer ? pMetaStructPointer->decoded_value : nullptr; - if (pDecodedObj) - { - auto obj = *pDecodedObj; - switch (obj.ParameterType) - { - case D3D12_ROOT_PARAMETER_TYPE_DESCRIPTOR_TABLE: - { - obj.DescriptorTable = GetNestedDecodedStructure(pMetaStructPointer->DescriptorTable); - } - break; - case D3D12_ROOT_PARAMETER_TYPE_32BIT_CONSTANTS: - { - obj.Constants = GetNestedDecodedStructure(pMetaStructPointer->Constants); - } - break; - case D3D12_ROOT_PARAMETER_TYPE_CBV: - case D3D12_ROOT_PARAMETER_TYPE_SRV: - case D3D12_ROOT_PARAMETER_TYPE_UAV: - default: - { - obj.Descriptor = GetNestedDecodedStructure(pMetaStructPointer->Descriptor); - } - } - return util::ToString(obj, toStringFlags, tabCount, tabSize); - } - return "null"; -} - -template <> -inline std::string -StructPointerDecoderToString(StructPointerDecoder* pObj, - util::ToStringFlags toStringFlags, - uint32_t tabCount, - uint32_t tabSize) -{ - auto pMetaStructPointer = pObj ? pObj->GetMetaStructPointer() : nullptr; - auto pDecodedObj = pMetaStructPointer ? pMetaStructPointer->decoded_value : nullptr; - if (pDecodedObj) - { - auto obj = *pDecodedObj; - switch (obj.ParameterType) - { - case D3D12_ROOT_PARAMETER_TYPE_DESCRIPTOR_TABLE: - { - obj.DescriptorTable = GetNestedDecodedStructure(pMetaStructPointer->DescriptorTable); - } - break; - case D3D12_ROOT_PARAMETER_TYPE_32BIT_CONSTANTS: - { - obj.Constants = GetNestedDecodedStructure(pMetaStructPointer->Constants); - } - break; - case D3D12_ROOT_PARAMETER_TYPE_CBV: - case D3D12_ROOT_PARAMETER_TYPE_SRV: - case D3D12_ROOT_PARAMETER_TYPE_UAV: - default: - { - obj.Descriptor = GetNestedDecodedStructure(pMetaStructPointer->Descriptor); - } - } - return util::ToString(obj, toStringFlags, tabCount, tabSize); - } - return "null"; -} - -template <> -inline std::string StructPointerDecoderToString( - StructPointerDecoder* pObj, - util::ToStringFlags toStringFlags, - uint32_t tabCount, - uint32_t tabSize) -{ - auto pMetaStructPointer = pObj ? pObj->GetMetaStructPointer() : nullptr; - auto pDecodedObj = pMetaStructPointer ? pMetaStructPointer->decoded_value : nullptr; - if (pDecodedObj) - { - auto obj = *pDecodedObj; - switch (obj.Version) - { - case D3D_ROOT_SIGNATURE_VERSION_1_0: - { - obj.Desc_1_0 = GetNestedDecodedStructure(pMetaStructPointer->Desc_1_0); - } - break; - case D3D_ROOT_SIGNATURE_VERSION_1_1: - { - obj.Desc_1_1 = GetNestedDecodedStructure(pMetaStructPointer->Desc_1_1); - } - break; - default: - { - } - } - return util::ToString(obj, toStringFlags, tabCount, tabSize); - } - return "null"; -} - -template <> -inline std::string StructPointerDecoderToString( - StructPointerDecoder* pObj, - util::ToStringFlags toStringFlags, - uint32_t tabCount, - uint32_t tabSize) -{ - auto pMetaStructPointer = pObj ? pObj->GetMetaStructPointer() : nullptr; - auto pDecodedObj = pMetaStructPointer ? pMetaStructPointer->decoded_value : nullptr; - return pDecodedObj ? util::ToString(*pDecodedObj, toStringFlags, tabCount, tabSize) : "null"; -} - -template <> -inline std::string StructPointerDecoderToString( - StructPointerDecoder* pObj, - util::ToStringFlags toStringFlags, - uint32_t tabCount, - uint32_t tabSize) -{ - auto pMetaStructPointer = pObj ? pObj->GetMetaStructPointer() : nullptr; - auto pDecodedObj = pMetaStructPointer ? pMetaStructPointer->decoded_value : nullptr; - if (pDecodedObj) - { - auto obj = *pDecodedObj; - switch (obj.Type) - { - case D3D12_RAYTRACING_GEOMETRY_TYPE_TRIANGLES: - { - obj.Triangles = GetNestedDecodedStructure(pMetaStructPointer->Triangles); - } - break; - case D3D12_RAYTRACING_GEOMETRY_TYPE_PROCEDURAL_PRIMITIVE_AABBS: - { - obj.AABBs = GetNestedDecodedStructure(pMetaStructPointer->AABBs); - } - break; - default: - { - } - } - return util::ToString(obj, toStringFlags, tabCount, tabSize); - } - return "null"; -} - -template <> -inline std::string StructPointerDecoderToString( - StructPointerDecoder* pObj, - util::ToStringFlags toStringFlags, - uint32_t tabCount, - uint32_t tabSize) -{ - // TODO : Untested - // TODO : Unimplemented; need to determine correct handling for - // D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS::InstanceDescs - auto pMetaStructPointer = pObj ? pObj->GetMetaStructPointer() : nullptr; - auto pDecodedObj = pMetaStructPointer ? pMetaStructPointer->decoded_value : nullptr; - return pDecodedObj ? util::ToString(*pDecodedObj, toStringFlags, tabCount, tabSize) : "null"; -} - -template <> -inline std::string StructPointerDecoderToString( - StructPointerDecoder* pObj, - util::ToStringFlags toStringFlags, - uint32_t tabCount, - uint32_t tabSize) -{ - // TODO : Untested - auto pMetaStructPointer = pObj ? pObj->GetMetaStructPointer() : nullptr; - auto pDecodedObj = pMetaStructPointer ? pMetaStructPointer->decoded_value : nullptr; - if (pDecodedObj) - { - auto obj = *pDecodedObj; - if (obj.Type == D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE_CLEAR) - { - obj.Clear = GetNestedDecodedStructure(pMetaStructPointer->Clear); - } - return util::ToString(obj, toStringFlags, tabCount, tabSize); - } - return "null"; -} - -template <> -inline std::string StructPointerDecoderToString( - StructPointerDecoder* pObj, - util::ToStringFlags toStringFlags, - uint32_t tabCount, - uint32_t tabSize) -{ - // TODO : Untested - auto pMetaStructPointer = pObj ? pObj->GetMetaStructPointer() : nullptr; - auto pDecodedObj = pMetaStructPointer ? pMetaStructPointer->decoded_value : nullptr; - if (pDecodedObj) - { - auto obj = *pDecodedObj; - if (obj.Type == D3D12_RENDER_PASS_ENDING_ACCESS_TYPE_RESOLVE) - { - obj.Resolve = GetNestedDecodedStructure(pMetaStructPointer->Resolve); - } - return util::ToString(obj, toStringFlags, tabCount, tabSize); - } - return "null"; -} - -template <> -inline std::string -StructPointerDecoderToString(StructPointerDecoder* pObj, - util::ToStringFlags toStringFlags, - uint32_t tabCount, - uint32_t tabSize) -{ - // TODO : Untested - auto pMetaStructPointer = pObj ? pObj->GetMetaStructPointer() : nullptr; - auto pDecodedObj = pMetaStructPointer ? pMetaStructPointer->decoded_value : nullptr; - return pDecodedObj ? util::ToString(*pDecodedObj, toStringFlags, tabCount, tabSize) : "null"; -} - -template <> -inline std::string StructPointerDecoderToString( - StructPointerDecoder* pObj, - util::ToStringFlags toStringFlags, - uint32_t tabCount, - uint32_t tabSize) -{ - // TODO : Untested - // TODO : Unimplemented; need to determine correct handling for Decoded_D3D12_PIPELINE_STATE_STREAM_DESC - auto pMetaStructPointer = pObj ? pObj->GetMetaStructPointer() : nullptr; - auto pDecodedObj = pMetaStructPointer ? pMetaStructPointer->decoded_value : nullptr; - return pDecodedObj ? util::ToString(*pDecodedObj, toStringFlags, tabCount, tabSize) : "null"; -} - -template <> -inline std::string StructPointerDecoderToString( - StructPointerDecoder* pObj, - util::ToStringFlags toStringFlags, - uint32_t tabCount, - uint32_t tabSize) -{ - // TODO : Untested - // TODO : Unimplemented; need to determine correct handling for Decoded_D3D12_STATE_OBJECT_DESC::subobject_stride - auto pMetaStructPointer = pObj ? pObj->GetMetaStructPointer() : nullptr; - auto pDecodedObj = pMetaStructPointer ? pMetaStructPointer->decoded_value : nullptr; - return pDecodedObj ? util::ToString(*pDecodedObj, toStringFlags, tabCount, tabSize) : "null"; -} - -template <> -inline std::string -StructPointerDecoderToString(StructPointerDecoder* pObj, - util::ToStringFlags toStringFlags, - uint32_t tabCount, - uint32_t tabSize) -{ - auto pMetaStructPointer = pObj ? pObj->GetMetaStructPointer() : nullptr; - auto pDecodedObj = pMetaStructPointer ? pMetaStructPointer->decoded_value : nullptr; - if (pDecodedObj) - { - auto obj = *pDecodedObj; - switch (obj.Type) - { - case D3D12_STATE_SUBOBJECT_TYPE_STATE_OBJECT_CONFIG: - { - obj.pDesc = &GetNestedMetaStructure(pMetaStructPointer->state_object_config); - } - break; - case D3D12_STATE_SUBOBJECT_TYPE_GLOBAL_ROOT_SIGNATURE: - { - obj.pDesc = &GetNestedMetaStructure(pMetaStructPointer->global_root_signature); - } - break; - case D3D12_STATE_SUBOBJECT_TYPE_LOCAL_ROOT_SIGNATURE: - { - obj.pDesc = &GetNestedMetaStructure(pMetaStructPointer->local_root_signature); - } - break; - case D3D12_STATE_SUBOBJECT_TYPE_NODE_MASK: - { - obj.pDesc = &GetNestedMetaStructure(pMetaStructPointer->node_mask); - } - break; - case D3D12_STATE_SUBOBJECT_TYPE_DXIL_LIBRARY: - { - obj.pDesc = &GetNestedMetaStructure(pMetaStructPointer->dxil_library_desc); - } - break; - case D3D12_STATE_SUBOBJECT_TYPE_EXISTING_COLLECTION: - { - obj.pDesc = &GetNestedMetaStructure(pMetaStructPointer->existing_collection_desc); - } - break; - case D3D12_STATE_SUBOBJECT_TYPE_SUBOBJECT_TO_EXPORTS_ASSOCIATION: - { - obj.pDesc = &GetNestedMetaStructure(pMetaStructPointer->subobject_to_exports_association); - } - break; - case D3D12_STATE_SUBOBJECT_TYPE_DXIL_SUBOBJECT_TO_EXPORTS_ASSOCIATION: - { - obj.pDesc = &GetNestedMetaStructure(pMetaStructPointer->dxil_subobject_to_exports_association); - } - break; - case D3D12_STATE_SUBOBJECT_TYPE_RAYTRACING_SHADER_CONFIG: - { - obj.pDesc = &GetNestedMetaStructure(pMetaStructPointer->raytracing_shader_config); - } - break; - case D3D12_STATE_SUBOBJECT_TYPE_RAYTRACING_PIPELINE_CONFIG: - { - obj.pDesc = &GetNestedMetaStructure(pMetaStructPointer->raytracing_pipeline_config); - } - break; - case D3D12_STATE_SUBOBJECT_TYPE_HIT_GROUP: - { - obj.pDesc = &GetNestedMetaStructure(pMetaStructPointer->hit_group_desc); - } - break; - case D3D12_STATE_SUBOBJECT_TYPE_RAYTRACING_PIPELINE_CONFIG1: - { - obj.pDesc = &GetNestedMetaStructure(pMetaStructPointer->raytracing_pipeline_config1); - } - break; - default: - { - } - } - return util::ToString(obj, toStringFlags, tabCount, tabSize); - } - return "null"; -} - -template <> -inline std::string -StructPointerDecoderToString(StructPointerDecoder* pObj, - util::ToStringFlags toStringFlags, - uint32_t tabCount, - uint32_t tabSize) -{ - // TODO : Untested - auto pMetaStructPointer = pObj ? pObj->GetMetaStructPointer() : nullptr; - auto pDecodedObj = pMetaStructPointer ? pMetaStructPointer->decoded_value : nullptr; - return pDecodedObj ? util::ToString(*pDecodedObj, toStringFlags, tabCount, tabSize) : "null"; -} - -template <> -inline std::string StructPointerDecoderArrayToString(const UINT& countObj, - StructPointerDecoder* pObjs, - util::ToStringFlags toStringFlags, - uint32_t tabCount, - uint32_t tabSize) -{ - // TODO : Unimplemented - return "null"; -} - -template <> -inline std::string -StructPointerDecoderToString(StructPointerDecoder* pObj, - util::ToStringFlags toStringFlags, - uint32_t tabCount, - uint32_t tabSize) -{ - // TODO : Unimplemented - return "null"; -} - -GFXRECON_END_NAMESPACE(decode) -GFXRECON_END_NAMESPACE(gfxrecon) - -#endif // GFXRECON_CUSTOM_DX12_ASCII_CONSUMER_H diff --git a/framework/decode/custom_dx12_to_string.cpp b/framework/decode/custom_dx12_to_string.cpp deleted file mode 100644 index 1686bdcff0..0000000000 --- a/framework/decode/custom_dx12_to_string.cpp +++ /dev/null @@ -1,731 +0,0 @@ -/* -** Copyright (c) 2021 LunarG, Inc. -** -** Permission is hereby granted, free of charge, to any person obtaining a -** copy of this software and associated documentation files (the "Software"), -** to deal in the Software without restriction, including without limitation -** the rights to use, copy, modify, merge, publish, distribute, sublicense, -** and/or sell copies of the Software, and to permit persons to whom the -** Software is furnished to do so, subject to the following conditions: -** -** The above copyright notice and this permission notice shall be included in -** all copies or substantial portions of the Software. -** -** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -** IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -** FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -** AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -** LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -** FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -** DEALINGS IN THE SOFTWARE. -*/ - -#include "custom_dx12_to_string.h" -#include "generated/generated_dx12_enum_to_string.h" -#include "generated/generated_dx12_struct_to_string.h" - -#include -#include -#include -#include - -GFXRECON_BEGIN_NAMESPACE(gfxrecon) -GFXRECON_BEGIN_NAMESPACE(util) - -std::string -ToString(const D3D12_CPU_DESCRIPTOR_HANDLE& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - // clang-format off - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "ptr", toStringFlags, tabCount, tabSize, ToString(obj.ptr, toStringFlags, tabCount, tabSize)); - } - ); - // clang-format on -} - -std::string -ToString(const D3D12_GPU_DESCRIPTOR_HANDLE& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - // clang-format off - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "ptr", toStringFlags, tabCount, tabSize, ToString(obj.ptr, toStringFlags, tabCount, tabSize)); - } - ); - // clang-format on -} - -std::string ToString(const LARGE_INTEGER& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - // clang-format off - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "QuadPart", toStringFlags, tabCount, tabSize, ToString(obj.QuadPart)); - } - ); - // clang-format on -} - -std::string ToString(const D3D12_VERSIONED_ROOT_SIGNATURE_DESC& obj, - ToStringFlags toStringFlags, - uint32_t tabCount, - uint32_t tabSize) -{ - // clang-format off - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "Version", toStringFlags, tabCount, tabSize, Quote(ToString(obj.Version))); - switch (obj.Version) { - case D3D_ROOT_SIGNATURE_VERSION_1_0: - { - FieldToString(strStrm, false, "Desc_1_0", toStringFlags, tabCount, tabSize, ToString(obj.Desc_1_0, toStringFlags, tabCount, tabSize)); - } break; - case D3D_ROOT_SIGNATURE_VERSION_1_1: - { - FieldToString(strStrm, false, "Desc_1_1", toStringFlags, tabCount, tabSize, ToString(obj.Desc_1_1, toStringFlags, tabCount, tabSize)); - } break; - default: - { - } break; - } - } - ); - // clang-format on -} - -std::string -ToString(const D3D12_TEXTURE_COPY_LOCATION& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - // clang-format off - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "pResource", toStringFlags, tabCount, tabSize, HandleIdToString(obj.pResource)); - FieldToString(strStrm, false, "Type", toStringFlags, tabCount, tabSize, Quote(ToString(obj.Type))); - switch (obj.Type) { - case D3D12_TEXTURE_COPY_TYPE_PLACED_FOOTPRINT: - { - FieldToString(strStrm, false, "PlacedFootprint", toStringFlags, tabCount, tabSize, ToString(obj.PlacedFootprint, toStringFlags, tabCount, tabSize)); - } break; - case D3D12_TEXTURE_COPY_TYPE_SUBRESOURCE_INDEX: - { - FieldToString(strStrm, false, "SubresourceIndex", toStringFlags, tabCount, tabSize, ToString(obj.SubresourceIndex)); - } break; - default: - { - } break; - } - } - ); - // clang-format on -} - -std::string -ToString(const D3D12_SHADER_RESOURCE_VIEW_DESC& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - // clang-format off - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "Format", toStringFlags, tabCount, tabSize, Quote(ToString(obj.Format))); - FieldToString(strStrm, false, "ViewDimension", toStringFlags, tabCount, tabSize, Quote(ToString(obj.ViewDimension))); - FieldToString(strStrm, false, "Shader4ComponentMapping", toStringFlags, tabCount, tabSize, ToString(obj.Shader4ComponentMapping)); - switch (obj.ViewDimension) { - case D3D12_SRV_DIMENSION_BUFFER: - { - FieldToString(strStrm, false, "Buffer", toStringFlags, tabCount, tabSize, ToString(obj.Buffer, toStringFlags, tabCount, tabSize)); - } break; - case D3D12_SRV_DIMENSION_TEXTURE1D: - { - FieldToString(strStrm, false, "Texture1D", toStringFlags, tabCount, tabSize, ToString(obj.Texture1D, toStringFlags, tabCount, tabSize)); - } break; - case D3D12_SRV_DIMENSION_TEXTURE1DARRAY: - { - FieldToString(strStrm, false, "Texture1DArray", toStringFlags, tabCount, tabSize, ToString(obj.Texture1DArray, toStringFlags, tabCount, tabSize)); - } break; - case D3D12_SRV_DIMENSION_TEXTURE2D: - { - FieldToString(strStrm, false, "Texture2D", toStringFlags, tabCount, tabSize, ToString(obj.Texture2D, toStringFlags, tabCount, tabSize)); - } break; - case D3D12_SRV_DIMENSION_TEXTURE2DARRAY: - { - FieldToString(strStrm, false, "Texture2DArray", toStringFlags, tabCount, tabSize, ToString(obj.Texture2DArray, toStringFlags, tabCount, tabSize)); - } break; - case D3D12_SRV_DIMENSION_TEXTURE2DMS: - { - FieldToString(strStrm, false, "Texture2DMS", toStringFlags, tabCount, tabSize, ToString(obj.Texture2DMS, toStringFlags, tabCount, tabSize)); - } break; - case D3D12_SRV_DIMENSION_TEXTURE2DMSARRAY: - { - FieldToString(strStrm, false, "Texture2DMSArray", toStringFlags, tabCount, tabSize, ToString(obj.Texture2DMSArray, toStringFlags, tabCount, tabSize)); - } break; - case D3D12_SRV_DIMENSION_TEXTURE3D: - { - FieldToString(strStrm, false, "Texture3D", toStringFlags, tabCount, tabSize, ToString(obj.Texture3D, toStringFlags, tabCount, tabSize)); - } break; - case D3D12_SRV_DIMENSION_TEXTURECUBE: - { - FieldToString(strStrm, false, "TextureCube", toStringFlags, tabCount, tabSize, ToString(obj.TextureCube, toStringFlags, tabCount, tabSize)); - } break; - case D3D12_SRV_DIMENSION_TEXTURECUBEARRAY: - { - FieldToString(strStrm, false, "TextureCubeArray", toStringFlags, tabCount, tabSize, ToString(obj.TextureCubeArray, toStringFlags, tabCount, tabSize)); - } break; - case D3D12_SRV_DIMENSION_RAYTRACING_ACCELERATION_STRUCTURE: - { - FieldToString(strStrm, false, "RaytracingAccelerationStructure", toStringFlags, tabCount, tabSize, ToString(obj.RaytracingAccelerationStructure, toStringFlags, tabCount, tabSize)); - } break; - default: - { - } break; - } - } - ); - // clang-format on -} - -std::string -ToString(const D3D12_UNORDERED_ACCESS_VIEW_DESC& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - // clang-format off - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "Format", toStringFlags, tabCount, tabSize, Quote(ToString(obj.Format))); - FieldToString(strStrm, false, "ViewDimension", toStringFlags, tabCount, tabSize, Quote(ToString(obj.ViewDimension))); - switch (obj.ViewDimension) { - case D3D12_UAV_DIMENSION_BUFFER: - { - FieldToString(strStrm, false, "Buffer", toStringFlags, tabCount, tabSize, ToString(obj.Buffer, toStringFlags, tabCount, tabSize)); - } break; - case D3D12_UAV_DIMENSION_TEXTURE1D: - { - FieldToString(strStrm, false, "Texture1D", toStringFlags, tabCount, tabSize, ToString(obj.Texture1D, toStringFlags, tabCount, tabSize)); - } break; - case D3D12_UAV_DIMENSION_TEXTURE1DARRAY: - { - FieldToString(strStrm, false, "Texture1DArray", toStringFlags, tabCount, tabSize, ToString(obj.Texture1DArray, toStringFlags, tabCount, tabSize)); - } break; - case D3D12_UAV_DIMENSION_TEXTURE2D: - { - FieldToString(strStrm, false, "Texture2D", toStringFlags, tabCount, tabSize, ToString(obj.Texture2D, toStringFlags, tabCount, tabSize)); - } break; - case D3D12_UAV_DIMENSION_TEXTURE2DARRAY: - { - FieldToString(strStrm, false, "Texture2DArray", toStringFlags, tabCount, tabSize, ToString(obj.Texture2DArray, toStringFlags, tabCount, tabSize)); - } break; - case D3D12_UAV_DIMENSION_TEXTURE3D: - { - FieldToString(strStrm, false, "Texture3D", toStringFlags, tabCount, tabSize, ToString(obj.Texture3D, toStringFlags, tabCount, tabSize)); - } break; - default: - { - } break; - } - } - ); - // clang-format on -} - -std::string -ToString(const D3D12_RENDER_TARGET_VIEW_DESC& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - // clang-format off - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "Format", toStringFlags, tabCount, tabSize, Quote(ToString(obj.Format))); - FieldToString(strStrm, false, "ViewDimension", toStringFlags, tabCount, tabSize, Quote(ToString(obj.ViewDimension))); - switch (obj.ViewDimension) { - case D3D12_RTV_DIMENSION_BUFFER: - { - FieldToString(strStrm, false, "Buffer", toStringFlags, tabCount, tabSize, ToString(obj.Buffer, toStringFlags, tabCount, tabSize)); - } break; - case D3D12_RTV_DIMENSION_TEXTURE1D: - { - FieldToString(strStrm, false, "Texture1D", toStringFlags, tabCount, tabSize, ToString(obj.Texture1D, toStringFlags, tabCount, tabSize)); - } break; - case D3D12_RTV_DIMENSION_TEXTURE1DARRAY: - { - FieldToString(strStrm, false, "Texture1DArray", toStringFlags, tabCount, tabSize, ToString(obj.Texture1DArray, toStringFlags, tabCount, tabSize)); - } break; - case D3D12_RTV_DIMENSION_TEXTURE2D: - { - FieldToString(strStrm, false, "Texture2D", toStringFlags, tabCount, tabSize, ToString(obj.Texture2D, toStringFlags, tabCount, tabSize)); - } break; - case D3D12_RTV_DIMENSION_TEXTURE2DARRAY: - { - FieldToString(strStrm, false, "Texture2DArray", toStringFlags, tabCount, tabSize, ToString(obj.Texture2DArray, toStringFlags, tabCount, tabSize)); - } break; - case D3D12_RTV_DIMENSION_TEXTURE2DMS: - { - FieldToString(strStrm, false, "Texture2DMS", toStringFlags, tabCount, tabSize, ToString(obj.Texture2DMS, toStringFlags, tabCount, tabSize)); - } break; - case D3D12_RTV_DIMENSION_TEXTURE2DMSARRAY: - { - FieldToString(strStrm, false, "Texture2DArray", toStringFlags, tabCount, tabSize, ToString(obj.Texture2DMSArray, toStringFlags, tabCount, tabSize)); - } break; - case D3D12_RTV_DIMENSION_TEXTURE3D: - { - FieldToString(strStrm, false, "Texture3D", toStringFlags, tabCount, tabSize, ToString(obj.Texture3D, toStringFlags, tabCount, tabSize)); - } break; - default: - { - } break; - } - } - ); - // clang-format on -} - -std::string -ToString(const D3D12_DEPTH_STENCIL_VIEW_DESC& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - // clang-format off - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "Format", toStringFlags, tabCount, tabSize, Quote(ToString(obj.Format))); - FieldToString(strStrm, false, "ViewDimension", toStringFlags, tabCount, tabSize, Quote(ToString(obj.ViewDimension))); - FieldToString(strStrm, false, "Flags", toStringFlags, tabCount, tabSize, Quote(ToString(obj.Flags))); - switch (obj.ViewDimension) { - case D3D12_DSV_DIMENSION_TEXTURE1D: - { - FieldToString(strStrm, false, "Texture1D", toStringFlags, tabCount, tabSize, ToString(obj.Texture1D, toStringFlags, tabCount, tabSize)); - } break; - case D3D12_DSV_DIMENSION_TEXTURE1DARRAY: - { - FieldToString(strStrm, false, "Texture1DArray", toStringFlags, tabCount, tabSize, ToString(obj.Texture1DArray, toStringFlags, tabCount, tabSize)); - } break; - case D3D12_DSV_DIMENSION_TEXTURE2D: - { - FieldToString(strStrm, false, "Texture2D", toStringFlags, tabCount, tabSize, ToString(obj.Texture2D, toStringFlags, tabCount, tabSize)); - } break; - case D3D12_DSV_DIMENSION_TEXTURE2DARRAY: - { - FieldToString(strStrm, false, "Texture2DArray", toStringFlags, tabCount, tabSize, ToString(obj.Texture2DArray, toStringFlags, tabCount, tabSize)); - } break; - case D3D12_DSV_DIMENSION_TEXTURE2DMS: - { - FieldToString(strStrm, false, "Texture2DMS", toStringFlags, tabCount, tabSize, ToString(obj.Texture2DMS, toStringFlags, tabCount, tabSize)); - } break; - case D3D12_DSV_DIMENSION_TEXTURE2DMSARRAY: - { - FieldToString(strStrm, false, "Texture2DArray", toStringFlags, tabCount, tabSize, ToString(obj.Texture2DMSArray, toStringFlags, tabCount, tabSize)); - } break; - default: - { - } break; - } - } - ); - // clang-format on -} - -std::string ToString(const D3D12_CLEAR_VALUE& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - // clang-format off - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "Format", toStringFlags, tabCount, tabSize, Quote(ToString(obj.Format))); - switch (obj.Format) { - case DXGI_FORMAT_D32_FLOAT_S8X24_UINT: - case DXGI_FORMAT_D32_FLOAT: - case DXGI_FORMAT_D24_UNORM_S8_UINT: - case DXGI_FORMAT_D16_UNORM: - { - FieldToString(strStrm, false, "DepthStencil", toStringFlags, tabCount, tabSize, ToString(obj.DepthStencil, toStringFlags, tabCount, tabSize)); - } break; - default: - { - FieldToString(strStrm, false, "Color", toStringFlags, tabCount, tabSize, ArrayToString(4, obj.Color, toStringFlags, tabCount, tabSize)); - } break; - } - } - ); - // clang-format on -} - -std::string -ToString(const D3D12_PIPELINE_STATE_STREAM_DESC& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - // clang-format off - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "SizeInBytes", toStringFlags, tabCount, tabSize, ToString(obj.SizeInBytes)); - FieldToString(strStrm, false, "pPipelineStateSubobjectStream", toStringFlags, tabCount, tabSize, Quote(PtrToString(obj.pPipelineStateSubobjectStream))); - } - ); - // clang-format on -} - -std::string -ToString(const D3D12_STATE_OBJECT_DESC& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - // clang-format off - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "Type", toStringFlags, tabCount, tabSize, Quote(ToString(obj.Type))); - FieldToString(strStrm, false, "NumSubobjects", toStringFlags, tabCount, tabSize, ToString(obj.NumSubobjects)); - FieldToString(strStrm, false, "pSubobjects", toStringFlags, tabCount, tabSize, ArrayToString(obj.NumSubobjects, obj.pSubobjects, toStringFlags, tabCount, tabSize)); - } - ); - // clang-format on -} - -std::string ToString(const D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS& obj, - ToStringFlags toStringFlags, - uint32_t tabCount, - uint32_t tabSize) -{ - // clang-format off - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "Type", toStringFlags, tabCount, tabSize, Quote(ToString(obj.Type))); - FieldToString(strStrm, false, "Flags", toStringFlags, tabCount, tabSize, Quote(ToString(obj.Flags))); - FieldToString(strStrm, false, "NumDescs", toStringFlags, tabCount, tabSize, ToString(obj.NumDescs)); - FieldToString(strStrm, false, "DescsLayout", toStringFlags, tabCount, tabSize, Quote(ToString(obj.DescsLayout))); - switch (obj.Type) { - case D3D12_RAYTRACING_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL: - { - FieldToString(strStrm, false, "InstanceDescs", toStringFlags, tabCount, tabSize, ToString(obj.InstanceDescs, toStringFlags, tabCount, tabSize)); - } break; - case D3D12_RAYTRACING_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL: - { - switch (obj.DescsLayout) - { - case D3D12_ELEMENTS_LAYOUT_ARRAY: - { - FieldToString(strStrm, false, "InstanceDescs", toStringFlags, tabCount, tabSize, ArrayToString(obj.NumDescs, obj.pGeometryDescs, toStringFlags, tabCount, tabSize)); - } break; - case D3D12_ELEMENTS_LAYOUT_ARRAY_OF_POINTERS: - { - // TODO : Generic 2D array handler... - FieldToString(strStrm, false, "InstanceDescs", toStringFlags, tabCount, tabSize, PtrToString(obj.ppGeometryDescs)); - } break; - } - } break; - default: - { - } break; - } - } - ); - // clang-format on -} - -std::string ToString(const D3D12_RENDER_PASS_BEGINNING_ACCESS& obj, - ToStringFlags toStringFlags, - uint32_t tabCount, - uint32_t tabSize) -{ - // clang-format off - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "Type", toStringFlags, tabCount, tabSize, Quote(ToString(obj.Type))); - switch (obj.Type) { - case D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE_CLEAR: - { - FieldToString(strStrm, false, "Clear", toStringFlags, tabCount, tabSize, ToString(obj.Clear, toStringFlags, tabCount, tabSize)); - } break; - default: - { - } break; - } - } - ); - // clang-format on -} - -std::string -ToString(const D3D12_RENDER_PASS_ENDING_ACCESS& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - // clang-format off - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "Type", toStringFlags, tabCount, tabSize, Quote(ToString(obj.Type))); - switch (obj.Type) { - case D3D12_RENDER_PASS_ENDING_ACCESS_TYPE_RESOLVE: - { - FieldToString(strStrm, false, "Resolve", toStringFlags, tabCount, tabSize, ToString(obj.Resolve, toStringFlags, tabCount, tabSize)); - } break; - default: - { - } break; - } - } - ); - // clang-format on -} - -std::string ToString(const D3D12_ROOT_PARAMETER& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - // clang-format off - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "ParameterType", toStringFlags, tabCount, tabSize, Quote(ToString(obj.ParameterType))); - switch (obj.ParameterType) { - case D3D12_ROOT_PARAMETER_TYPE_DESCRIPTOR_TABLE: - { - FieldToString(strStrm, false, "DescriptorTable", toStringFlags, tabCount, tabSize, ToString(obj.DescriptorTable, toStringFlags, tabCount, tabSize)); - } break; - case D3D12_ROOT_PARAMETER_TYPE_32BIT_CONSTANTS: - { - FieldToString(strStrm, false, "Constants", toStringFlags, tabCount, tabSize, ToString(obj.Constants, toStringFlags, tabCount, tabSize)); - } break; - case D3D12_ROOT_PARAMETER_TYPE_CBV: - case D3D12_ROOT_PARAMETER_TYPE_SRV: - case D3D12_ROOT_PARAMETER_TYPE_UAV: - default: - { - FieldToString(strStrm, false, "Descriptor", toStringFlags, tabCount, tabSize, ToString(obj.Descriptor, toStringFlags, tabCount, tabSize)); - } break; - } - FieldToString(strStrm, false, "ShaderVisibility", toStringFlags, tabCount, tabSize, Quote(ToString(obj.ShaderVisibility))); - } - ); - // clang-format on -} - -std::string ToString(const D3D12_ROOT_PARAMETER1& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - // clang-format off - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "ParameterType", toStringFlags, tabCount, tabSize, Quote(ToString(obj.ParameterType))); - switch (obj.ParameterType) { - case D3D12_ROOT_PARAMETER_TYPE_DESCRIPTOR_TABLE: - { - FieldToString(strStrm, false, "DescriptorTable", toStringFlags, tabCount, tabSize, ToString(obj.DescriptorTable, toStringFlags, tabCount, tabSize)); - } break; - case D3D12_ROOT_PARAMETER_TYPE_32BIT_CONSTANTS: - { - FieldToString(strStrm, false, "Constants", toStringFlags, tabCount, tabSize, ToString(obj.Constants, toStringFlags, tabCount, tabSize)); - } break; - case D3D12_ROOT_PARAMETER_TYPE_CBV: - case D3D12_ROOT_PARAMETER_TYPE_SRV: - case D3D12_ROOT_PARAMETER_TYPE_UAV: - default: - { - FieldToString(strStrm, false, "Descriptor", toStringFlags, tabCount, tabSize, ToString(obj.Descriptor, toStringFlags, tabCount, tabSize)); - } break; - } - FieldToString(strStrm, false, "ShaderVisibility", toStringFlags, tabCount, tabSize, Quote(ToString(obj.ShaderVisibility))); - } - ); - // clang-format on -} - -std::string -ToString(const D3D12_INDIRECT_ARGUMENT_DESC& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - // clang-format off - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "Type", toStringFlags, tabCount, tabSize, Quote(ToString(obj.Type))); - switch (obj.Type) { - case D3D12_INDIRECT_ARGUMENT_TYPE_VERTEX_BUFFER_VIEW: - { - FieldToString(strStrm, false, "VertexBuffer.Slot", toStringFlags, tabCount, tabSize, ToString(obj.VertexBuffer.Slot)); - } break; - case D3D12_INDIRECT_ARGUMENT_TYPE_CONSTANT: - { - FieldToString(strStrm, false, "Constant.RootParameterIndex", toStringFlags, tabCount, tabSize, ToString(obj.Constant.RootParameterIndex)); - FieldToString(strStrm, false, "Constant.DestOffsetIn32BitValues", toStringFlags, tabCount, tabSize, ToString(obj.Constant.DestOffsetIn32BitValues)); - FieldToString(strStrm, false, "Constant.Num32BitValuesToSet", toStringFlags, tabCount, tabSize, ToString(obj.Constant.Num32BitValuesToSet)); - } break; - case D3D12_INDIRECT_ARGUMENT_TYPE_CONSTANT_BUFFER_VIEW: - { - FieldToString(strStrm, false, "ConstantBufferView.RootParameterIndex", toStringFlags, tabCount, tabSize, ToString(obj.ConstantBufferView.RootParameterIndex)); - } break; - case D3D12_INDIRECT_ARGUMENT_TYPE_SHADER_RESOURCE_VIEW: - { - FieldToString(strStrm, false, "ShaderResourceView.RootParameterIndex", toStringFlags, tabCount, tabSize, ToString(obj.ShaderResourceView.RootParameterIndex)); - } break; - case D3D12_INDIRECT_ARGUMENT_TYPE_UNORDERED_ACCESS_VIEW: - { - FieldToString(strStrm, false, "UnorderedAccessView.RootParameterIndex", toStringFlags, tabCount, tabSize, ToString(obj.UnorderedAccessView.RootParameterIndex)); - } break; - default: - { - } break; - } - } - ); - // clang-format on -} - -std::string -ToString(const DXGI_DISPLAY_COLOR_SPACE& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - // clang-format off - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - // TODO : Generic 2D array handler... - FieldToString(strStrm, true, "PrimaryCoordinates", toStringFlags, tabCount, tabSize, ArrayToString(0, obj.PrimaryCoordinates[0], toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "WhitePoints", toStringFlags, tabCount, tabSize, ArrayToString(0, obj.WhitePoints[0], toStringFlags, tabCount, tabSize)); - } - ); - // clang-format on -} - -std::string -ToString(const D3D12_RAYTRACING_INSTANCE_DESC& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - // clang-format off - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - std::string strs[3][4]; - size_t maxStrLength = 0; - for (size_t y = 0; y < 3; ++y) - { - for (size_t x = 0; x < 4; ++x) - { - strs[y][x] = std::to_string(obj.Transform[y][x]); - maxStrLength = std::max(maxStrLength, strs[y][x].size()); - } - } - FieldToString(strStrm, true, "Transform", toStringFlags, tabCount, tabSize, - ArrayToString(3, obj.Transform, toStringFlags, tabCount, tabSize, - [&]() - { - return true; - }, - [&](size_t y) - { - std::stringstream rowStrStrm; - rowStrStrm << '[' << GetWhitespaceString(toStringFlags); - for (size_t x = 0; x < 4; ++x) - { - if (x) - { - rowStrStrm << ',' << GetWhitespaceString(toStringFlags); - } - if (strs[y][x].size() < maxStrLength) - { - strs[y][x].insert(0, maxStrLength - strs[y][x].size(), ' '); - } - rowStrStrm << strs[y][x]; - } - rowStrStrm << GetWhitespaceString(toStringFlags) << ']'; - return rowStrStrm.str(); - } - ) - ); - FieldToString(strStrm, false, "InstanceID", toStringFlags, tabCount, tabSize, ToString(obj.InstanceID)); - FieldToString(strStrm, false, "InstanceMask", toStringFlags, tabCount, tabSize, ToString(obj.InstanceMask)); ///< @todo Do something better with masks like this. - FieldToString(strStrm, false, "InstanceContributionToHitGroupIndex", toStringFlags, tabCount, tabSize, ToString(obj.InstanceContributionToHitGroupIndex)); - FieldToString(strStrm, false, "Flags", toStringFlags, tabCount, tabSize, Quote(ToString(obj.Flags))); - FieldToString(strStrm, false, "AccelerationStructure", toStringFlags, tabCount, tabSize, ToString(obj.AccelerationStructure)); ///< @todo Represent virtual addresses as hex. - } - ); - // clang-format on -} - -std::string ToString(const D3D12_DXIL_SUBOBJECT_TO_EXPORTS_ASSOCIATION& obj, - ToStringFlags toStringFlags, - uint32_t tabCount, - uint32_t tabSize) -{ - // clang-format off - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "SubobjectToAssociate", toStringFlags, tabCount, tabSize, Quote(PtrToString(obj.SubobjectToAssociate))); - FieldToString(strStrm, false, "NumExports", toStringFlags, tabCount, tabSize, ToString(obj.NumExports)); - FieldToString(strStrm, false, "pExports", toStringFlags, tabCount, tabSize, Quote(PtrToString(obj.pExports))); - } - ); - // clang-format on -} - -std::string -ToString(const D3D12_RESOURCE_BARRIER& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - // clang-format off - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "Type", toStringFlags, tabCount, tabSize, Quote(ToString(obj.Type))); - FieldToString(strStrm, false, "Flags", toStringFlags, tabCount, tabSize, Quote(ToString(obj.Flags))); - switch (obj.Type) { - case D3D12_RESOURCE_BARRIER_TYPE_TRANSITION: - { - FieldToString(strStrm, false, "Transition", toStringFlags, tabCount, tabSize, ToString(obj.Transition, toStringFlags, tabCount, tabSize)); - } break; - case D3D12_RESOURCE_BARRIER_TYPE_ALIASING: - { - FieldToString(strStrm, false, "Aliasing", toStringFlags, tabCount, tabSize, ToString(obj.Aliasing, toStringFlags, tabCount, tabSize)); - } break; - case D3D12_RESOURCE_BARRIER_TYPE_UAV: - { - FieldToString(strStrm, false, "UAV", toStringFlags, tabCount, tabSize, ToString(obj.UAV, toStringFlags, tabCount, tabSize)); - } break; - default: - { - } break; - } - } - ); - // clang-format on -} - -std::string ToString(const D3D12_STATE_SUBOBJECT& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - // clang-format off - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "Type", toStringFlags, tabCount, tabSize, Quote(ToString(obj.Type))); - FieldToString(strStrm, false, "pDesc", toStringFlags, tabCount, tabSize, Quote(PtrToString(obj.pDesc))); - } - ); - // clang-format on -} - -std::string -ToString(const D3D12_RAYTRACING_GEOMETRY_DESC& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - // clang-format off - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "Type", toStringFlags, tabCount, tabSize, Quote(ToString(obj.Type))); - FieldToString(strStrm, false, "Flags", toStringFlags, tabCount, tabSize, Quote(PtrToString(obj.Flags))); - switch (obj.Type) - { - case D3D12_RAYTRACING_GEOMETRY_TYPE_TRIANGLES: - { - FieldToString(strStrm, false, "Triangles", toStringFlags, tabCount, tabSize, ToString(obj.Triangles, toStringFlags, tabCount, tabSize)); - } break; - case D3D12_RAYTRACING_GEOMETRY_TYPE_PROCEDURAL_PRIMITIVE_AABBS: - { - FieldToString(strStrm, false, "AABBs", toStringFlags, tabCount, tabSize, ToString(obj.AABBs, toStringFlags, tabCount, tabSize)); - } break; - default: - { - } break; - } - } - ); - // clang-format on -} - -GFXRECON_END_NAMESPACE(util) -GFXRECON_END_NAMESPACE(gfxrecon) diff --git a/framework/decode/custom_dx12_to_string.h b/framework/decode/custom_dx12_to_string.h deleted file mode 100644 index 99ac2bc217..0000000000 --- a/framework/decode/custom_dx12_to_string.h +++ /dev/null @@ -1,151 +0,0 @@ -/* -** Copyright (c) 2021 LunarG, Inc. -** -** Permission is hereby granted, free of charge, to any person obtaining a -** copy of this software and associated documentation files (the "Software"), -** to deal in the Software without restriction, including without limitation -** the rights to use, copy, modify, merge, publish, distribute, sublicense, -** and/or sell copies of the Software, and to permit persons to whom the -** Software is furnished to do so, subject to the following conditions: -** -** The above copyright notice and this permission notice shall be included in -** all copies or substantial portions of the Software. -** -** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -** IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -** FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -** AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -** LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -** FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -** DEALINGS IN THE SOFTWARE. -*/ - -#ifndef GFXRECON_CUSTOM_DX12_TO_STRING_H -#define GFXRECON_CUSTOM_DX12_TO_STRING_H - -#include "format/platform_types.h" -#include "util/custom_common_to_string.h" -#include "util/defines.h" -#include "util/to_string.h" - -#include - -#include - -GFXRECON_BEGIN_NAMESPACE(gfxrecon) -GFXRECON_BEGIN_NAMESPACE(util) - -std::string ToString(const D3D12_CPU_DESCRIPTOR_HANDLE& obj, - ToStringFlags toStringFlags = kToString_Default, - uint32_t tabCount = kToStringDefaultTabCount, - uint32_t tabSize = kToStringDefaultTabSize); - -std::string ToString(const D3D12_GPU_DESCRIPTOR_HANDLE& obj, - ToStringFlags toStringFlags = kToString_Default, - uint32_t tabCount = kToStringDefaultTabCount, - uint32_t tabSize = kToStringDefaultTabSize); - -std::string ToString(const LARGE_INTEGER& obj, - ToStringFlags toStringFlags = kToString_Default, - uint32_t tabCount = kToStringDefaultTabCount, - uint32_t tabSize = kToStringDefaultTabSize); - -std::string ToString(const D3D12_VERSIONED_ROOT_SIGNATURE_DESC& obj, - ToStringFlags toStringFlags = kToString_Default, - uint32_t tabCount = kToStringDefaultTabCount, - uint32_t tabSize = kToStringDefaultTabSize); - -std::string ToString(const D3D12_TEXTURE_COPY_LOCATION& obj, - ToStringFlags toStringFlags = kToString_Default, - uint32_t tabCount = kToStringDefaultTabCount, - uint32_t tabSize = kToStringDefaultTabSize); - -std::string ToString(const D3D12_SHADER_RESOURCE_VIEW_DESC& obj, - ToStringFlags toStringFlags = kToString_Default, - uint32_t tabCount = kToStringDefaultTabCount, - uint32_t tabSize = kToStringDefaultTabSize); - -std::string ToString(const D3D12_UNORDERED_ACCESS_VIEW_DESC& obj, - ToStringFlags toStringFlags = kToString_Default, - uint32_t tabCount = kToStringDefaultTabCount, - uint32_t tabSize = kToStringDefaultTabSize); - -std::string ToString(const D3D12_RENDER_TARGET_VIEW_DESC& obj, - ToStringFlags toStringFlags = kToString_Default, - uint32_t tabCount = kToStringDefaultTabCount, - uint32_t tabSize = kToStringDefaultTabSize); - -std::string ToString(const D3D12_DEPTH_STENCIL_VIEW_DESC& obj, - ToStringFlags toStringFlags = kToString_Default, - uint32_t tabCount = kToStringDefaultTabCount, - uint32_t tabSize = kToStringDefaultTabSize); - -std::string ToString(const D3D12_CLEAR_VALUE& obj, - ToStringFlags toStringFlags = kToString_Default, - uint32_t tabCount = kToStringDefaultTabCount, - uint32_t tabSize = kToStringDefaultTabSize); - -std::string ToString(const D3D12_PIPELINE_STATE_STREAM_DESC& obj, - ToStringFlags toStringFlags = kToString_Default, - uint32_t tabCount = kToStringDefaultTabCount, - uint32_t tabSize = kToStringDefaultTabSize); - -std::string ToString(const D3D12_STATE_OBJECT_DESC& obj, - ToStringFlags toStringFlags = kToString_Default, - uint32_t tabCount = kToStringDefaultTabCount, - uint32_t tabSize = kToStringDefaultTabSize); - -std::string ToString(const D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS& obj, - ToStringFlags toStringFlags = kToString_Default, - uint32_t tabCount = kToStringDefaultTabCount, - uint32_t tabSize = kToStringDefaultTabSize); - -std::string ToString(const D3D12_RENDER_PASS_BEGINNING_ACCESS& obj, - ToStringFlags toStringFlags = kToString_Default, - uint32_t tabCount = kToStringDefaultTabCount, - uint32_t tabSize = kToStringDefaultTabSize); - -std::string ToString(const D3D12_RENDER_PASS_ENDING_ACCESS& obj, - ToStringFlags toStringFlags = kToString_Default, - uint32_t tabCount = kToStringDefaultTabCount, - uint32_t tabSize = kToStringDefaultTabSize); - -std::string ToString(const D3D12_ROOT_PARAMETER& obj, - ToStringFlags toStringFlags = kToString_Default, - uint32_t tabCount = kToStringDefaultTabCount, - uint32_t tabSize = kToStringDefaultTabSize); - -std::string ToString(const D3D12_ROOT_PARAMETER1& obj, - ToStringFlags toStringFlags = kToString_Default, - uint32_t tabCount = kToStringDefaultTabCount, - uint32_t tabSize = kToStringDefaultTabSize); - -std::string ToString(const D3D12_INDIRECT_ARGUMENT_DESC& obj, - ToStringFlags toStringFlags = kToString_Default, - uint32_t tabCount = kToStringDefaultTabCount, - uint32_t tabSize = kToStringDefaultTabSize); - -std::string ToString(const D3D12_DXIL_SUBOBJECT_TO_EXPORTS_ASSOCIATION& obj, - ToStringFlags toStringFlags = kToString_Default, - uint32_t tabCount = kToStringDefaultTabCount, - uint32_t tabSize = kToStringDefaultTabSize); - -std::string ToString(const D3D12_RESOURCE_BARRIER& obj, - ToStringFlags toStringFlags = kToString_Default, - uint32_t tabCount = kToStringDefaultTabCount, - uint32_t tabSize = kToStringDefaultTabSize); - -std::string ToString(const D3D12_STATE_SUBOBJECT& obj, - ToStringFlags toStringFlags = kToString_Default, - uint32_t tabCount = kToStringDefaultTabCount, - uint32_t tabSize = kToStringDefaultTabSize); - -std::string ToString(const D3D12_RAYTRACING_GEOMETRY_DESC& obj, - ToStringFlags toStringFlags = kToString_Default, - uint32_t tabCount = kToStringDefaultTabCount, - uint32_t tabSize = kToStringDefaultTabSize); - -GFXRECON_END_NAMESPACE(util) -GFXRECON_END_NAMESPACE(gfxrecon) - -#endif // GFXRECON_CUSTOM_DX12_TO_STRING_H diff --git a/framework/decode/custom_vulkan_struct_to_json.cpp b/framework/decode/custom_vulkan_struct_to_json.cpp index 5518611f33..571a9ad67a 100644 --- a/framework/decode/custom_vulkan_struct_to_json.cpp +++ b/framework/decode/custom_vulkan_struct_to_json.cpp @@ -26,90 +26,17 @@ #include "generated/generated_vulkan_enum_to_json.h" #include "decode/descriptor_update_template_decoder.h" #include "decode/custom_vulkan_struct_decoders.h" + #include "util/platform.h" #include "util/defines.h" + #include "nlohmann/json.hpp" #include "vulkan/vulkan.h" GFXRECON_BEGIN_NAMESPACE(gfxrecon) GFXRECON_BEGIN_NAMESPACE(decode) -void FieldToJson(nlohmann::ordered_json& jdata, float data, const JsonOptions& options) -{ - if (std::isnan(data)) - { - GFXRECON_LOG_WARNING_ONCE("Converting a NAN to zero."); - data = 0.0f; - } - else if (std::isinf(data)) - { - GFXRECON_LOG_WARNING_ONCE("Converting an infinity to max or min."); - if (data < 0) - { - data = std::numeric_limits::min(); - } - else - { - data = std::numeric_limits::max(); - } - } - // Normal and denormal/subnormal numbers pass through unchanged and unremarked. - - jdata = data; -} - -void HandleToJson(nlohmann::ordered_json& jdata, - const format::HandleId* data, - size_t num_elements, - const JsonOptions& options) -{ - if (data) - { - for (size_t i = 0; i < num_elements; ++i) - { - HandleToJson(jdata[i], data[i], options); - } - } - else - { - jdata = nullptr; - } -} - -void FieldToJson(nlohmann::ordered_json& jdata, const StringArrayDecoder* data, const JsonOptions& options) -{ - if (data && data->GetPointer()) - { - const auto decoded_data = data->GetPointer(); - for (size_t i = 0; i < data->GetLength(); ++i) - { - jdata[i] = std::string(decoded_data[i]); - } - } -} - -void FieldToJson(nlohmann::ordered_json& jdata, const StringDecoder* data, const JsonOptions& options) -{ - if (data && data->GetPointer()) - { - const auto decoded_data = data->GetPointer(); - jdata = std::string(decoded_data); - } -} - -void FieldToJson(nlohmann::ordered_json& jdata, const StringDecoder& data, const JsonOptions& options) -{ - FieldToJson(jdata, &data, options); -} - -void FieldToJson(nlohmann::ordered_json& jdata, const WStringDecoder* data, const JsonOptions& options) -{ - if (data && data->GetPointer()) - { - const auto decoded_data = data->GetPointer(); - jdata = std::wstring(decoded_data); - } -} +using util::JsonOptions; void FieldToJson(nlohmann::ordered_json& jdata, VkGeometryTypeKHR discriminant, @@ -273,18 +200,6 @@ void FieldToJson(nlohmann::ordered_json& jdata, } } -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_SECURITY_ATTRIBUTES* data, const JsonOptions& options) -{ - if (data && data->decoded_value) - { - const auto& decoded_value = *data->decoded_value; - const auto& meta_struct = *data; - jdata["bInheritHandle"] = static_cast(decoded_value.bInheritHandle); - FieldToJson(jdata["nLength"], decoded_value.nLength, options); - FieldToJson(jdata["lpSecurityDescriptor"], meta_struct.lpSecurityDescriptor->GetAddress(), options); - } -} - void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkDescriptorImageInfo* data, const JsonOptions& options) { if (data && data->decoded_value) @@ -404,6 +319,18 @@ void FieldToJson(nlohmann::ordered_json& jdata, } } +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_SECURITY_ATTRIBUTES* data, const JsonOptions& options) +{ + if (data && data->decoded_value) + { + const auto& decoded_value = *data->decoded_value; + const auto& meta_struct = *data; + jdata["bInheritHandle"] = static_cast(decoded_value.bInheritHandle); + FieldToJson(jdata["nLength"], decoded_value.nLength, options); + FieldToJson(jdata["lpSecurityDescriptor"], meta_struct.lpSecurityDescriptor->GetAddress(), options); + } +} + void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPipelineCacheCreateInfo* data, const JsonOptions& options) @@ -422,29 +349,6 @@ void FieldToJson(nlohmann::ordered_json& jdata, } } -template <> -void FieldToJson(nlohmann::ordered_json& jdata, - const PointerDecoder& data, - const JsonOptions& options) -{ - if (data.GetPointer()) - { - const auto decoded_value = data.GetPointer(); - const auto length = data.GetLength(); - if (length > 1) - { - for (size_t i = 0; i < length; ++i) - { - jdata[i] = decoded_value[i]; - } - } - else - { - jdata = *decoded_value; - } - } -} - void FieldToJson(nlohmann::ordered_json& jdata, const DescriptorUpdateTemplateDecoder* const pData, const JsonOptions& options) diff --git a/framework/decode/custom_vulkan_struct_to_json.h b/framework/decode/custom_vulkan_struct_to_json.h index db5c88969a..c0c4b23859 100644 --- a/framework/decode/custom_vulkan_struct_to_json.h +++ b/framework/decode/custom_vulkan_struct_to_json.h @@ -22,380 +22,94 @@ #ifndef GFXRECON_DECODE_CUSTOM_VULKAN_STRUCT_TO_JSON_H #define GFXRECON_DECODE_CUSTOM_VULKAN_STRUCT_TO_JSON_H -#include "util/defines.h" -#include "nlohmann/json.hpp" -#include "vulkan/vulkan.h" - -#include "decode/vulkan_json_util.h" #include "decode/custom_vulkan_struct_decoders.h" #include "generated/generated_vulkan_enum_to_json.h" #include "generated/generated_vulkan_struct_to_json.h" #include "generated/generated_vulkan_struct_decoders.h" +#include "decode/decode_json_util.h" + +#include "util/defines.h" +#include "util/json_util.h" +#include "util/to_string.h" -#include +#include "nlohmann/json.hpp" +#include "vulkan/vulkan.h" GFXRECON_BEGIN_NAMESPACE(gfxrecon) GFXRECON_BEGIN_NAMESPACE(decode) class DescriptorUpdateTemplateDecoder; -inline void FieldToJson(nlohmann::ordered_json& jdata, short data, const JsonOptions& options = JsonOptions()) -{ - jdata = data; -} - -inline void FieldToJson(nlohmann::ordered_json& jdata, int data, const JsonOptions& options = JsonOptions()) -{ - jdata = data; -} - -inline void FieldToJson(nlohmann::ordered_json& jdata, long data, const JsonOptions& options = JsonOptions()) -{ - jdata = data; -} - -inline void FieldToJson(nlohmann::ordered_json& jdata, long long data, const JsonOptions& options = JsonOptions()) -{ - jdata = data; -} - -inline void FieldToJson(nlohmann::ordered_json& jdata, unsigned short data, const JsonOptions& options = JsonOptions()) -{ - jdata = data; -} - -inline void FieldToJson(nlohmann::ordered_json& jdata, unsigned int data, const JsonOptions& options = JsonOptions()) -{ - jdata = data; -} - -inline void FieldToJson(nlohmann::ordered_json& jdata, unsigned long data, const JsonOptions& options = JsonOptions()) -{ - jdata = data; -} - -inline void -FieldToJson(nlohmann::ordered_json& jdata, unsigned long long data, const JsonOptions& options = JsonOptions()) -{ - jdata = data; -} - -/// Convert floats to JSON, logging information loss when floats with no JSON -/// number type representation are adjusted. The JSON library turns these numbers -/// into JSON nulls otherwise. -void FieldToJson(nlohmann::ordered_json& jdata, float data, const JsonOptions& options = JsonOptions()); - -/// @note This is unused dead code currently (try placing a breakpoint on it). -inline void FieldToJson(nlohmann::ordered_json& jdata, double data, const JsonOptions& options = JsonOptions()) -{ - jdata = data; -} - -inline void -FieldToJson(nlohmann::ordered_json& jdata, const std::string& data, const JsonOptions& options = JsonOptions()) -{ - jdata = data; -} - -void FieldToJson(nlohmann::ordered_json& jdata, - const StringArrayDecoder* data, - const JsonOptions& options = JsonOptions()); - -void FieldToJson(nlohmann::ordered_json& jdata, const StringDecoder* data, const JsonOptions& options = JsonOptions()); - -void FieldToJson(nlohmann::ordered_json& jdata, const WStringDecoder* data, const JsonOptions& options = JsonOptions()); - void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkClearValue* data, - const JsonOptions& options = JsonOptions()); + const util::JsonOptions& options = util::JsonOptions()); void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkClearColorValue* data, - const JsonOptions& options = JsonOptions()); + const util::JsonOptions& options = util::JsonOptions()); void FieldToJson(nlohmann::ordered_json& jdata, int discriminant, const Decoded_VkDeviceOrHostAddressConstKHR* data, - const JsonOptions& options = JsonOptions()); + const util::JsonOptions& options = util::JsonOptions()); void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkDeviceOrHostAddressConstKHR* data, - const JsonOptions& options = JsonOptions()); + const util::JsonOptions& options = util::JsonOptions()); void FieldToJson(nlohmann::ordered_json& jdata, int discriminant, const Decoded_VkDeviceOrHostAddressKHR* data, - const JsonOptions& options = JsonOptions()); + const util::JsonOptions& options = util::JsonOptions()); void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkDeviceOrHostAddressKHR* data, - const JsonOptions& options = JsonOptions()); + const util::JsonOptions& options = util::JsonOptions()); void FieldToJson(nlohmann::ordered_json& jdata, VkPipelineExecutableStatisticFormatKHR discriminant, const Decoded_VkPipelineExecutableStatisticValueKHR* data, - const JsonOptions& options = JsonOptions()); + const util::JsonOptions& options = util::JsonOptions()); void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPipelineExecutableStatisticKHR* data, - const JsonOptions& options = JsonOptions()); + const util::JsonOptions& options = util::JsonOptions()); void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_SECURITY_ATTRIBUTES* data, - const JsonOptions& options = JsonOptions()); + const util::JsonOptions& options = util::JsonOptions()); void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkAccelerationStructureGeometryDataKHR* data, - const JsonOptions& options = JsonOptions()); + const util::JsonOptions& options = util::JsonOptions()); void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkAccelerationStructureGeometryKHR* data, - const JsonOptions& options = JsonOptions()); + const util::JsonOptions& options = util::JsonOptions()); void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkDescriptorImageInfo* data, - const JsonOptions& options = JsonOptions()); + const util::JsonOptions& options = util::JsonOptions()); void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkWriteDescriptorSet* data, - const JsonOptions& options = JsonOptions()); + const util::JsonOptions& options = util::JsonOptions()); void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPerformanceValueINTEL* data, - const JsonOptions& options = JsonOptions()); + const util::JsonOptions& options = util::JsonOptions()); void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkShaderModuleCreateInfo* data, - const JsonOptions& options = JsonOptions()); + const util::JsonOptions& options = util::JsonOptions()); void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPipelineCacheCreateInfo* data, - const JsonOptions& options = JsonOptions()); - -template -void FieldToJson(nlohmann::ordered_json& jdata, - const T* data, - size_t num_elements, - const JsonOptions& options = JsonOptions()) -{ - if (data) - { - for (size_t i = 0; i < num_elements; ++i) - { - FieldToJson(jdata[i], data[i], options); - } - } - else - { - jdata = nullptr; - } -} - -template -void FieldToJson(nlohmann::ordered_json& jdata, - const PointerDecoder* data, - const JsonOptions& options = JsonOptions()) -{ - if (data && data->GetPointer()) - { - const auto decoded_value = data->GetPointer(); - const auto length = data->GetLength(); - - if (data->IsArray()) - { - for (size_t i = 0; i < length; ++i) - { - FieldToJson(jdata[i], decoded_value[i], options); - } - } - else if (length == 1) - { - FieldToJson(jdata, *decoded_value, options); - } - } -} - -// Reference to pointer version wraps pointer to pointer version above. -template -void FieldToJson(nlohmann::ordered_json& jdata, - const PointerDecoder& data, - const JsonOptions& options = JsonOptions()) -{ - FieldToJson(jdata, &data, options); -} - -template <> -void FieldToJson(nlohmann::ordered_json& jdata, - const PointerDecoder& data, - const JsonOptions& options); - -template -void FieldToJson(nlohmann::ordered_json& jdata, - const StructPointerDecoder* data, - const JsonOptions& options = JsonOptions()) -{ - if (data) - { - const auto meta_struct = data->GetMetaStructPointer(); - const auto length = data->GetLength(); - if (data->IsArray()) - { - for (size_t i = 0; i < length; ++i) - { - FieldToJson(jdata[i], &meta_struct[i], options); - } - } - else if (length == 1) - { - FieldToJson(jdata, meta_struct, options); - } - } -} - -template -void FieldToJson(nlohmann::ordered_json& jdata, - StructPointerDecoder* data, - const JsonOptions& options = JsonOptions()) -{ - if (data) - { - const auto meta_struct = data->GetMetaStructPointer(); - const auto length = data->GetLength(); - if (data->IsArray()) - { - for (size_t i = 0; i < length; ++i) - { - FieldToJson(jdata[i], meta_struct[i], options); - } - } - else if (length == 1) - { - FieldToJson(jdata, *meta_struct, options); - } - } -} - -template -void HandleToJson(nlohmann::ordered_json& jdata, - const HandlePointerDecoder* data, - const JsonOptions& options = JsonOptions()) -{ - if (data && data->GetPointer()) - { - const auto decoded_value = data->GetPointer(); - const auto length = data->GetLength(); - - if (data->IsArray()) - { - for (size_t i = 0; i < length; ++i) - { - HandleToJson(jdata[i], decoded_value[i], options); - } - } - else if (length == 1) - { - HandleToJson(jdata, *decoded_value, options); - } - } -} - -void HandleToJson(nlohmann::ordered_json& jdata, - const format::HandleId* data, - size_t num_elements, - const JsonOptions& options = JsonOptions()); - -/// @brief Thunk to HandleToJson for manual conversion functions which forget to -/// use that for the array form. -template -void FieldToJson(nlohmann::ordered_json& jdata, - const HandlePointerDecoder* data, - const JsonOptions& options = JsonOptions()) -{ - HandleToJson(jdata, data, options); -} - -template -void FieldToJsonAsHex(nlohmann::ordered_json& jdata, const T data, const JsonOptions& options = JsonOptions()) -{ - jdata = to_hex_variable_width(data); -} - -// Same as array FieldToJson above but converts elements pointed-to to hexadecimal -template -void FieldToJsonAsHex(nlohmann::ordered_json& jdata, - const PointerDecoder* data, - const JsonOptions& options = JsonOptions()) -{ - if (data && data->GetPointer()) - { - const auto decoded_value = data->GetPointer(); - const auto length = data->GetLength(); - - if (data->IsArray()) - { - for (size_t i = 0; i < length; ++i) - { - FieldToJsonAsHex(jdata[i], decoded_value[i], options); - } - } - else if (length == 1) - { - FieldToJsonAsHex(jdata, *decoded_value, options); - } - } -} - -template -void FieldToJsonAsHex(nlohmann::ordered_json& jdata, - const PointerDecoder& data, - const JsonOptions& options = JsonOptions()) -{ - FieldToJsonAsHex(jdata, &data, options); -} - -// Used by (e.g.) VkMapMemory's ppData -template <> -inline void -FieldToJsonAsHex(nlohmann::ordered_json& jdata, PointerDecoder* data, const JsonOptions& options) -{ - FieldToJsonAsHex(jdata, data, options); -} - -template -void VkBool32ToJson(nlohmann::ordered_json& jdata, const T data, const JsonOptions& options = JsonOptions()) -{ - jdata = static_cast(data); -} - -// Convert arrays of and pointers to bools. Since VkBool32 is just a typedef of -// uint32_t we can't use the standard function name and dispatch on the type. -template -void VkBool32ToJson(nlohmann::ordered_json& jdata, - const PointerDecoder* data, - const JsonOptions& options = JsonOptions()) -{ - if (data && data->GetPointer()) - { - const auto decoded_value = data->GetPointer(); - const auto length = data->GetLength(); - - if (data->IsArray()) - { - for (size_t i = 0; i < length; ++i) - { - VkBool32ToJson(jdata[i], decoded_value[i], options); - } - } - else if (length == 1) - { - VkBool32ToJson(jdata, *decoded_value, options); - } - } -} + const util::JsonOptions& options = util::JsonOptions()); void FieldToJson(nlohmann::ordered_json& jdata, const DescriptorUpdateTemplateDecoder* const pData, - const JsonOptions& options = JsonOptions()); + const util::JsonOptions& options = util::JsonOptions()); GFXRECON_END_NAMESPACE(decode) GFXRECON_END_NAMESPACE(gfxrecon) diff --git a/framework/decode/decode_json_util.cpp b/framework/decode/decode_json_util.cpp new file mode 100644 index 0000000000..537011d9a1 --- /dev/null +++ b/framework/decode/decode_json_util.cpp @@ -0,0 +1,158 @@ +/* +** Copyright (c) 2022-2023 LunarG, Inc. +** +** Permission is hereby granted, free of charge, to any person obtaining a +** copy of this software and associated documentation files (the "Software"), +** to deal in the Software without restriction, including without limitation +** the rights to use, copy, modify, merge, publish, distribute, sublicense, +** and/or sell copies of the Software, and to permit persons to whom the +** Software is furnished to do so, subject to the following conditions: +** +** The above copyright notice and this permission notice shall be included in +** all copies or substantial portions of the Software. +** +** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +** IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +** FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +** AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +** LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +** FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +** DEALINGS IN THE SOFTWARE. +*/ + +#include "decode/decode_json_util.h" +#include "util/defines.h" +#include "nlohmann/json.hpp" + +GFXRECON_BEGIN_NAMESPACE(gfxrecon) +GFXRECON_BEGIN_NAMESPACE(decode) + +using util::JsonOptions; + +void FieldToJson(nlohmann::ordered_json& jdata, const StringDecoder& data, const JsonOptions& options) +{ + const char* const decoded_data = data.GetPointer(); + if (decoded_data) + { + FieldToJson(jdata, decoded_data, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const StringDecoder* data, const JsonOptions& options) +{ + if (data) + { + FieldToJson(jdata, *data, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const StringArrayDecoder* data, const JsonOptions& options) +{ + if (data && data->GetPointer()) + { + const auto decoded_data = data->GetPointer(); + for (size_t i = 0; i < data->GetLength(); ++i) + { + jdata[i] = std::string(decoded_data[i]); + } + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const WStringDecoder& data, const JsonOptions& options) +{ + const wchar_t* const decoded_data = data.GetPointer(); + if (decoded_data) + { + FieldToJson(jdata, decoded_data, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const WStringDecoder* data, const JsonOptions& options) +{ + if (data) + { + FieldToJson(jdata, *data, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const WStringArrayDecoder& data, const JsonOptions& options) +{ + const auto decoded_data = data.GetPointer(); + if (decoded_data) + { + for (size_t i = 0; i < data.GetLength(); ++i) + { + FieldToJson(jdata[i], decoded_data[i], options); + } + } +} + +template <> +void FieldToJson(nlohmann::ordered_json& jdata, + const PointerDecoder& data, + const JsonOptions& options) +{ + if (data.GetPointer()) + { + const auto decoded_value = data.GetPointer(); + const auto length = data.GetLength(); + if (length > 1) + { + for (size_t i = 0; i < length; ++i) + { + jdata[i] = decoded_value[i]; + } + } + else + { + jdata = *decoded_value; + } + } +} + +void Bool32ToJson(nlohmann::ordered_json& jdata, + const PointerDecoder* data, + const util::JsonOptions& options) +{ + if (data && data->GetPointer()) + { + const auto decoded_value = data->GetPointer(); + const auto length = data->GetLength(); + + if (data->IsArray()) + { + for (size_t i = 0; i < length; ++i) + { + util::Bool32ToJson(jdata[i], decoded_value[i], options); + } + } + else if (length == 1) + { + util::Bool32ToJson(jdata, *decoded_value, options); + } + } +} + +void Bool32ToJson(nlohmann::ordered_json& jdata, const PointerDecoder* data, const util::JsonOptions& options) +{ + if (data && data->GetPointer()) + { + const auto decoded_value = data->GetPointer(); + const auto length = data->GetLength(); + + if (data->IsArray()) + { + for (size_t i = 0; i < length; ++i) + { + util::Bool32ToJson(jdata[i], decoded_value[i], options); + } + } + else if (length == 1) + { + util::Bool32ToJson(jdata, *decoded_value, options); + } + } +} + +GFXRECON_END_NAMESPACE(decode) +GFXRECON_END_NAMESPACE(gfxrecon) diff --git a/framework/decode/decode_json_util.h b/framework/decode/decode_json_util.h new file mode 100644 index 0000000000..d3a33b56f0 --- /dev/null +++ b/framework/decode/decode_json_util.h @@ -0,0 +1,295 @@ +/* +** Copyright (c) 2022-2023 LunarG, Inc. +** Copyright (c) 2023 Valve Corporation +** +** Permission is hereby granted, free of charge, to any person obtaining a +** copy of this software and associated documentation files (the "Software"), +** to deal in the Software without restriction, including without limitation +** the rights to use, copy, modify, merge, publish, distribute, sublicense, +** and/or sell copies of the Software, and to permit persons to whom the +** Software is furnished to do so, subject to the following conditions: +** +** The above copyright notice and this permission notice shall be included in +** all copies or substantial portions of the Software. +** +** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +** IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +** FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +** AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +** LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +** FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +** DEALINGS IN THE SOFTWARE. +*/ +#ifndef GFXRECON_DECODE_DECODE_JSON_UTIL_H +#define GFXRECON_DECODE_DECODE_JSON_UTIL_H + +/// @file API-independent utilities for converting decode-module types to JSON. + +#include "decode/pointer_decoder.h" +#include "decode/handle_pointer_decoder.h" +#include "decode/struct_pointer_decoder.h" +#include "decode/string_decoder.h" +#include "decode/string_array_decoder.h" + +#include "util/json_util.h" +#include "util/defines.h" + +#include "nlohmann/json.hpp" + +GFXRECON_BEGIN_NAMESPACE(gfxrecon) +GFXRECON_BEGIN_NAMESPACE(decode) + +void FieldToJson(nlohmann::ordered_json& jdata, + const StringDecoder& data, + const util::JsonOptions& options = util::JsonOptions()); + +void FieldToJson(nlohmann::ordered_json& jdata, + const StringDecoder* data, + const util::JsonOptions& options = util::JsonOptions()); + +void FieldToJson(nlohmann::ordered_json& jdata, + const StringArrayDecoder& data, + const util::JsonOptions& options = util::JsonOptions()); + +void FieldToJson(nlohmann::ordered_json& jdata, + const StringArrayDecoder* data, + const util::JsonOptions& options = util::JsonOptions()); + +void FieldToJson(nlohmann::ordered_json& jdata, + const WStringDecoder& data, + const util::JsonOptions& options = util::JsonOptions()); + +void FieldToJson(nlohmann::ordered_json& jdata, + const WStringDecoder* data, + const util::JsonOptions& options = util::JsonOptions()); + +void FieldToJson(nlohmann::ordered_json& jdata, + const WStringArrayDecoder& data, + const util::JsonOptions& options = util::JsonOptions()); + +template +void FieldToJson(nlohmann::ordered_json& jdata, + const PointerDecoder* data, + const util::JsonOptions& options = util::JsonOptions()) +{ + if (data && data->GetPointer()) + { + const auto decoded_value = data->GetPointer(); + const auto length = data->GetLength(); + + if (data->IsArray()) + { + for (size_t i = 0; i < length; ++i) + { + FieldToJson(jdata[i], decoded_value[i], options); + } + } + else if (length == 1) + { + FieldToJson(jdata, *decoded_value, options); + } + } +} + +// Reference to pointer version wraps pointer to pointer version above. +template +void FieldToJson(nlohmann::ordered_json& jdata, + const PointerDecoder& data, + const util::JsonOptions& options = util::JsonOptions()) +{ + FieldToJson(jdata, &data, options); +} + +template <> +void FieldToJson(nlohmann::ordered_json& jdata, + const PointerDecoder& data, + const util::JsonOptions& options); + +template +void FieldToJson(nlohmann::ordered_json& jdata, + const StructPointerDecoder* data, + const util::JsonOptions& options = util::JsonOptions()) +{ + if (data) + { + const auto meta_struct = data->GetMetaStructPointer(); + const auto length = data->GetLength(); + if (data->IsArray()) + { + for (size_t i = 0; i < length; ++i) + { + FieldToJson(jdata[i], &meta_struct[i], options); + } + } + else if (length == 1) + { + FieldToJson(jdata, meta_struct, options); + } + } +} + +// Similar to above but DecodedType is pointed-to +template +void FieldToJson(nlohmann::ordered_json& jdata, + const StructPointerDecoder* data, + const util::JsonOptions& options = util::JsonOptions()) +{ + if (data) + { + const auto meta_struct = data->GetMetaStructPointer(); + const auto length = data->GetLength(); + if (data->IsArray()) + { + for (size_t i = 0; i < length; ++i) + { + FieldToJson(jdata[i], meta_struct[i], options); + } + } + else if (length == 1) + { + FieldToJson(jdata, *meta_struct, options); + } + } +} + +template +void HandleToJson(nlohmann::ordered_json& jdata, + const HandlePointerDecoder* data, + const util::JsonOptions& options = util::JsonOptions()) +{ + if (data && data->GetPointer()) + { + const auto decoded_value = data->GetPointer(); + const auto length = data->GetLength(); + + if (data->IsArray()) + { + for (size_t i = 0; i < length; ++i) + { + HandleToJson(jdata[i], decoded_value[i], options); + } + } + else if (length == 1) + { + HandleToJson(jdata, *decoded_value, options); + } + } +} + +/// @brief Thunk to HandleToJson to allow the standard FieldToJson name to be +/// used for pointers and arrays where the type of the HandlePointerDecoder +/// allows the correct version to be resolved. +template +void FieldToJson(nlohmann::ordered_json& jdata, + const HandlePointerDecoder* data, + const util::JsonOptions& options = util::JsonOptions()) +{ + HandleToJson(jdata, data, options); +} + +// Same as array FieldToJson above but converts elements pointed-to to hexadecimal +template +void FieldToJsonAsHex(nlohmann::ordered_json& jdata, + const PointerDecoder* data, + const util::JsonOptions& options = util::JsonOptions()) +{ + if (data && data->GetPointer()) + { + const auto decoded_value = data->GetPointer(); + const auto length = data->GetLength(); + + if (data->IsArray()) + { + for (size_t i = 0; i < length; ++i) + { + FieldToJsonAsHex(jdata[i], decoded_value[i], options); + } + } + else if (length == 1) + { + FieldToJsonAsHex(jdata, *decoded_value, options); + } + } +} + +template +void FieldToJsonAsHex(nlohmann::ordered_json& jdata, + const PointerDecoder& data, + const util::JsonOptions& options = util::JsonOptions()) +{ + FieldToJsonAsHex(jdata, &data, options); +} + +/// Same as array FieldToJson above but converts elements pointed-to to binary +/// as a JSON string rather than as a JSON number type. Useful for bitmasks. +template +void FieldToJsonAsFixedWidthBinary(nlohmann::ordered_json& jdata, + const PointerDecoder& data, + const util::JsonOptions& options = util::JsonOptions()) +{ + if (data.GetPointer()) + { + const auto decoded_value = data.GetPointer(); + const auto length = data.GetLength(); + + if (data.IsArray()) + { + for (size_t i = 0; i < length; ++i) + { + FieldToJsonAsFixedWidthBinary(jdata[i], decoded_value[i], options); + } + } + else if (length == 1) + { + FieldToJsonAsFixedWidthBinary(jdata, *decoded_value, options); + } + } +} + +template +void FieldToJsonAsFixedWidthBinary(nlohmann::ordered_json& jdata, + const PointerDecoder* data, + const util::JsonOptions& options = util::JsonOptions()) +{ + if (data) + { + FieldToJsonAsFixedWidthBinary(jdata, *data, options); + } +} + +/// @brief Thunk to FieldToJsonAsFixedWidthBinary because consumers deliver pointers to non-const PointerDecoders +/// and they fail to resolve to the const version above. +template +void FieldToJsonAsFixedWidthBinary(nlohmann::ordered_json& jdata, + PointerDecoder* data, + const util::JsonOptions& options = util::JsonOptions()) +{ + if (data) + { + FieldToJsonAsFixedWidthBinary(jdata, *data, options); + } +} + +// Used by (e.g.) VkMapMemory's ppData +inline void +FieldToJsonAsHex(nlohmann::ordered_json& jdata, PointerDecoder* data, const util::JsonOptions& options) +{ + FieldToJsonAsHex(jdata, data, options); +} + +/// Convert arrays of and pointers to bools. Since VkBool32 is just a typedef of +/// uint32_t we can't use the standard function name and dispatch on the type. +void Bool32ToJson(nlohmann::ordered_json& jdata, + const PointerDecoder* data, + const util::JsonOptions& options = util::JsonOptions()); + +/// Convert arrays of and pointers to bools. Since the Windows BOOL is just a +/// typedef of int we can't use the standard function name and dispatch on the type. +void Bool32ToJson(nlohmann::ordered_json& jdata, + const PointerDecoder* data, + const util::JsonOptions& options = util::JsonOptions()); + +GFXRECON_END_NAMESPACE(decode) +GFXRECON_END_NAMESPACE(gfxrecon) + +#endif // GFXRECON_DECODE_DECODE_JSON_UTIL_H diff --git a/framework/decode/dx12_ascii_consumer_base.cpp b/framework/decode/dx12_ascii_consumer_base.cpp deleted file mode 100644 index 9acd09e60f..0000000000 --- a/framework/decode/dx12_ascii_consumer_base.cpp +++ /dev/null @@ -1,392 +0,0 @@ -/* -** Copyright (c) 2021-2023 LunarG, Inc. -** -** Permission is hereby granted, free of charge, to any person obtaining a -** copy of this software and associated documentation files (the "Software"), -** to deal in the Software without restriction, including without limitation -** the rights to use, copy, modify, merge, publish, distribute, sublicense, -** and/or sell copies of the Software, and to permit persons to whom the -** Software is furnished to do so, subject to the following conditions: -** -** The above copyright notice and this permission notice shall be included in -** all copies or substantial portions of the Software. -** -** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -** IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -** FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -** AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -** LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -** FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -** DEALINGS IN THE SOFTWARE. -*/ - -#include "decode/dx12_ascii_consumer_base.h" -#include "decode/custom_dx12_ascii_consumer.h" -#include "decode/dx12_enum_util.h" -#include "util/interception/injection.h" - -GFXRECON_BEGIN_NAMESPACE(gfxrecon) -GFXRECON_BEGIN_NAMESPACE(decode) - -Dx12AsciiConsumerBase::Dx12AsciiConsumerBase() : file_(nullptr), current_frame_number_(0) {} - -Dx12AsciiConsumerBase::~Dx12AsciiConsumerBase() -{ - Destroy(); -} - -void Dx12AsciiConsumerBase::Initialize(FILE* file, gfxrecon::util::ToStringFlags toStringFlags) -{ - assert(file); - file_ = file; - to_string_flags_ = toStringFlags; - // Note the Vulkan Consumer will top and tail the file with - // a JSON array if output is not JSONL. -} - -void Dx12AsciiConsumerBase::Destroy() -{ - if (file_) - { - file_ = nullptr; - } -} - -void Dx12AsciiConsumerBase::Process_ID3D12Device_CheckFeatureSupport(format::HandleId object_id, - HRESULT original_result, - D3D12_FEATURE feature, - const void* pCaptureFeatureSupportData, - void* pReplayFeatureSupportData, - UINT FeatureSupportDataSize) -{ - // clang-format off - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12Device"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "CheckFeatureSupport"; - auto returnValue = ToString(original_result, to_string_flags_, tab_count, tab_size); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile(writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - #if 0 - FieldToString(str_strm, true, "feature", to_string_flags_, tab_count, tab_size, ToString(feature, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "FeatureSupportDataSize", to_string_flags_, tab_count, tab_size, ToString(FeatureSupportDataSize, to_string_flags_, tab_count, tab_size)); - switch (feature) - { - case D3D12_FEATURE_D3D12_OPTIONS: - { - const auto& captureFeatureSupportData = *reinterpret_cast(pCaptureFeatureSupportData); - const auto& replayFeatureSupportData = *reinterpret_cast(pReplayFeatureSupportData); - FieldToString(str_strm, false, "pCaptureFeatureSupportData", to_string_flags_, tab_count, tab_size, ToString(captureFeatureSupportData, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "pReplayFeatureSupportData", to_string_flags_, tab_count, tab_size, ToString(replayFeatureSupportData, to_string_flags_, tab_count, tab_size)); - } - break; - case D3D12_FEATURE_ARCHITECTURE: - { - const auto& captureFeatureSupportData = *reinterpret_cast(pCaptureFeatureSupportData); - const auto& replayFeatureSupportData = *reinterpret_cast(pReplayFeatureSupportData); - FieldToString(str_strm, false, "pCaptureFeatureSupportData", to_string_flags_, tab_count, tab_size, ToString(captureFeatureSupportData, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "pReplayFeatureSupportData", to_string_flags_, tab_count, tab_size, ToString(replayFeatureSupportData, to_string_flags_, tab_count, tab_size)); - } - break; - case D3D12_FEATURE_FEATURE_LEVELS: - { - const auto& captureFeatureSupportData = *reinterpret_cast(pCaptureFeatureSupportData); - const auto& replayFeatureSupportData = *reinterpret_cast(pReplayFeatureSupportData); - FieldToString(str_strm, false, "pCaptureFeatureSupportData", to_string_flags_, tab_count, tab_size, ToString(captureFeatureSupportData, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "pReplayFeatureSupportData", to_string_flags_, tab_count, tab_size, ToString(replayFeatureSupportData, to_string_flags_, tab_count, tab_size)); - } - break; - case D3D12_FEATURE_FORMAT_SUPPORT: - { - const auto& captureFeatureSupportData = *reinterpret_cast(pCaptureFeatureSupportData); - const auto& replayFeatureSupportData = *reinterpret_cast(pReplayFeatureSupportData); - FieldToString(str_strm, false, "pCaptureFeatureSupportData", to_string_flags_, tab_count, tab_size, ToString(captureFeatureSupportData, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "pReplayFeatureSupportData", to_string_flags_, tab_count, tab_size, ToString(replayFeatureSupportData, to_string_flags_, tab_count, tab_size)); - } - break; - case D3D12_FEATURE_MULTISAMPLE_QUALITY_LEVELS: - { - const auto& captureFeatureSupportData = *reinterpret_cast(pCaptureFeatureSupportData); - const auto& replayFeatureSupportData = *reinterpret_cast(pReplayFeatureSupportData); - FieldToString(str_strm, false, "pCaptureFeatureSupportData", to_string_flags_, tab_count, tab_size, ToString(captureFeatureSupportData, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "pReplayFeatureSupportData", to_string_flags_, tab_count, tab_size, ToString(replayFeatureSupportData, to_string_flags_, tab_count, tab_size)); - } - break; - case D3D12_FEATURE_FORMAT_INFO: - { - const auto& captureFeatureSupportData = *reinterpret_cast(pCaptureFeatureSupportData); - const auto& replayFeatureSupportData = *reinterpret_cast(pReplayFeatureSupportData); - FieldToString(str_strm, false, "pCaptureFeatureSupportData", to_string_flags_, tab_count, tab_size, ToString(captureFeatureSupportData, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "pReplayFeatureSupportData", to_string_flags_, tab_count, tab_size, ToString(replayFeatureSupportData, to_string_flags_, tab_count, tab_size)); - } - break; - case D3D12_FEATURE_GPU_VIRTUAL_ADDRESS_SUPPORT: - { - const auto& captureFeatureSupportData = *reinterpret_cast(pCaptureFeatureSupportData); - const auto& replayFeatureSupportData = *reinterpret_cast(pReplayFeatureSupportData); - FieldToString(str_strm, false, "pCaptureFeatureSupportData", to_string_flags_, tab_count, tab_size, ToString(captureFeatureSupportData, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "pReplayFeatureSupportData", to_string_flags_, tab_count, tab_size, ToString(replayFeatureSupportData, to_string_flags_, tab_count, tab_size)); - } - break; - case D3D12_FEATURE_SHADER_MODEL: - { - const auto& captureFeatureSupportData = *reinterpret_cast(pCaptureFeatureSupportData); - const auto& replayFeatureSupportData = *reinterpret_cast(pReplayFeatureSupportData); - FieldToString(str_strm, false, "pCaptureFeatureSupportData", to_string_flags_, tab_count, tab_size, ToString(captureFeatureSupportData, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "pReplayFeatureSupportData", to_string_flags_, tab_count, tab_size, ToString(replayFeatureSupportData, to_string_flags_, tab_count, tab_size)); - } - break; - case D3D12_FEATURE_D3D12_OPTIONS1: - { - const auto& captureFeatureSupportData = *reinterpret_cast(pCaptureFeatureSupportData); - const auto& replayFeatureSupportData = *reinterpret_cast(pReplayFeatureSupportData); - FieldToString(str_strm, false, "pCaptureFeatureSupportData", to_string_flags_, tab_count, tab_size, ToString(captureFeatureSupportData, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "pReplayFeatureSupportData", to_string_flags_, tab_count, tab_size, ToString(replayFeatureSupportData, to_string_flags_, tab_count, tab_size)); - } - break; - case D3D12_FEATURE_PROTECTED_RESOURCE_SESSION_SUPPORT: - { - const auto& captureFeatureSupportData = *reinterpret_cast(pCaptureFeatureSupportData); - const auto& replayFeatureSupportData = *reinterpret_cast(pReplayFeatureSupportData); - FieldToString(str_strm, false, "pCaptureFeatureSupportData", to_string_flags_, tab_count, tab_size, ToString(captureFeatureSupportData, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "pReplayFeatureSupportData", to_string_flags_, tab_count, tab_size, ToString(replayFeatureSupportData, to_string_flags_, tab_count, tab_size)); - } - break; - case D3D12_FEATURE_ROOT_SIGNATURE: - { - const auto& captureFeatureSupportData = *reinterpret_cast(pCaptureFeatureSupportData); - const auto& replayFeatureSupportData = *reinterpret_cast(pReplayFeatureSupportData); - FieldToString(str_strm, false, "pCaptureFeatureSupportData", to_string_flags_, tab_count, tab_size, ToString(captureFeatureSupportData, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "pReplayFeatureSupportData", to_string_flags_, tab_count, tab_size, ToString(replayFeatureSupportData, to_string_flags_, tab_count, tab_size)); - } - break; - case D3D12_FEATURE_ARCHITECTURE1: - { - const auto& captureFeatureSupportData = *reinterpret_cast(pCaptureFeatureSupportData); - const auto& replayFeatureSupportData = *reinterpret_cast(pReplayFeatureSupportData); - FieldToString(str_strm, false, "pCaptureFeatureSupportData", to_string_flags_, tab_count, tab_size, ToString(captureFeatureSupportData, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "pReplayFeatureSupportData", to_string_flags_, tab_count, tab_size, ToString(replayFeatureSupportData, to_string_flags_, tab_count, tab_size)); - } - break; - case D3D12_FEATURE_D3D12_OPTIONS2: - { - const auto& captureFeatureSupportData = *reinterpret_cast(pCaptureFeatureSupportData); - const auto& replayFeatureSupportData = *reinterpret_cast(pReplayFeatureSupportData); - FieldToString(str_strm, false, "pCaptureFeatureSupportData", to_string_flags_, tab_count, tab_size, ToString(captureFeatureSupportData, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "pReplayFeatureSupportData", to_string_flags_, tab_count, tab_size, ToString(replayFeatureSupportData, to_string_flags_, tab_count, tab_size)); - } - break; - case D3D12_FEATURE_SHADER_CACHE: - { - const auto& captureFeatureSupportData = *reinterpret_cast(pCaptureFeatureSupportData); - const auto& replayFeatureSupportData = *reinterpret_cast(pReplayFeatureSupportData); - FieldToString(str_strm, false, "pCaptureFeatureSupportData", to_string_flags_, tab_count, tab_size, ToString(captureFeatureSupportData, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "pReplayFeatureSupportData", to_string_flags_, tab_count, tab_size, ToString(replayFeatureSupportData, to_string_flags_, tab_count, tab_size)); - } - break; - case D3D12_FEATURE_COMMAND_QUEUE_PRIORITY: - { - const auto& captureFeatureSupportData = *reinterpret_cast(pCaptureFeatureSupportData); - const auto& replayFeatureSupportData = *reinterpret_cast(pReplayFeatureSupportData); - FieldToString(str_strm, false, "pCaptureFeatureSupportData", to_string_flags_, tab_count, tab_size, ToString(captureFeatureSupportData, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "pReplayFeatureSupportData", to_string_flags_, tab_count, tab_size, ToString(replayFeatureSupportData, to_string_flags_, tab_count, tab_size)); - } - break; - case D3D12_FEATURE_D3D12_OPTIONS3: - { - const auto& captureFeatureSupportData = *reinterpret_cast(pCaptureFeatureSupportData); - const auto& replayFeatureSupportData = *reinterpret_cast(pReplayFeatureSupportData); - FieldToString(str_strm, false, "pCaptureFeatureSupportData", to_string_flags_, tab_count, tab_size, ToString(captureFeatureSupportData, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "pReplayFeatureSupportData", to_string_flags_, tab_count, tab_size, ToString(replayFeatureSupportData, to_string_flags_, tab_count, tab_size)); - } - break; - case D3D12_FEATURE_EXISTING_HEAPS: - { - const auto& captureFeatureSupportData = *reinterpret_cast(pCaptureFeatureSupportData); - const auto& replayFeatureSupportData = *reinterpret_cast(pReplayFeatureSupportData); - FieldToString(str_strm, false, "pCaptureFeatureSupportData", to_string_flags_, tab_count, tab_size, ToString(captureFeatureSupportData, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "pReplayFeatureSupportData", to_string_flags_, tab_count, tab_size, ToString(replayFeatureSupportData, to_string_flags_, tab_count, tab_size)); - } - break; - case D3D12_FEATURE_D3D12_OPTIONS4: - { - const auto& captureFeatureSupportData = *reinterpret_cast(pCaptureFeatureSupportData); - const auto& replayFeatureSupportData = *reinterpret_cast(pReplayFeatureSupportData); - FieldToString(str_strm, false, "pCaptureFeatureSupportData", to_string_flags_, tab_count, tab_size, ToString(captureFeatureSupportData, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "pReplayFeatureSupportData", to_string_flags_, tab_count, tab_size, ToString(replayFeatureSupportData, to_string_flags_, tab_count, tab_size)); - } - break; - case D3D12_FEATURE_SERIALIZATION: - { - const auto& captureFeatureSupportData = *reinterpret_cast(pCaptureFeatureSupportData); - const auto& replayFeatureSupportData = *reinterpret_cast(pReplayFeatureSupportData); - FieldToString(str_strm, false, "pCaptureFeatureSupportData", to_string_flags_, tab_count, tab_size, ToString(captureFeatureSupportData, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "pReplayFeatureSupportData", to_string_flags_, tab_count, tab_size, ToString(replayFeatureSupportData, to_string_flags_, tab_count, tab_size)); - } - break; - case D3D12_FEATURE_CROSS_NODE: - { - const auto& captureFeatureSupportData = *reinterpret_cast(pCaptureFeatureSupportData); - const auto& replayFeatureSupportData = *reinterpret_cast(pReplayFeatureSupportData); - FieldToString(str_strm, false, "pCaptureFeatureSupportData", to_string_flags_, tab_count, tab_size, ToString(captureFeatureSupportData, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "pReplayFeatureSupportData", to_string_flags_, tab_count, tab_size, ToString(replayFeatureSupportData, to_string_flags_, tab_count, tab_size)); - } - break; - case D3D12_FEATURE_D3D12_OPTIONS5: - { - const auto& captureFeatureSupportData = *reinterpret_cast(pCaptureFeatureSupportData); - const auto& replayFeatureSupportData = *reinterpret_cast(pReplayFeatureSupportData); - FieldToString(str_strm, false, "pCaptureFeatureSupportData", to_string_flags_, tab_count, tab_size, ToString(captureFeatureSupportData, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "pReplayFeatureSupportData", to_string_flags_, tab_count, tab_size, ToString(replayFeatureSupportData, to_string_flags_, tab_count, tab_size)); - } - break; - case D3D12_FEATURE_D3D12_OPTIONS6: - { - const auto& captureFeatureSupportData = *reinterpret_cast(pCaptureFeatureSupportData); - const auto& replayFeatureSupportData = *reinterpret_cast(pReplayFeatureSupportData); - FieldToString(str_strm, false, "pCaptureFeatureSupportData", to_string_flags_, tab_count, tab_size, ToString(captureFeatureSupportData, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "pReplayFeatureSupportData", to_string_flags_, tab_count, tab_size, ToString(replayFeatureSupportData, to_string_flags_, tab_count, tab_size)); - } - break; - case D3D12_FEATURE_QUERY_META_COMMAND: - { - const auto& captureFeatureSupportData = *reinterpret_cast(pCaptureFeatureSupportData); - const auto& replayFeatureSupportData = *reinterpret_cast(pReplayFeatureSupportData); - FieldToString(str_strm, false, "pCaptureFeatureSupportData", to_string_flags_, tab_count, tab_size, ToString(captureFeatureSupportData, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "pReplayFeatureSupportData", to_string_flags_, tab_count, tab_size, ToString(replayFeatureSupportData, to_string_flags_, tab_count, tab_size)); - } - break; - case D3D12_FEATURE_D3D12_OPTIONS7: - { - const auto& captureFeatureSupportData = *reinterpret_cast(pCaptureFeatureSupportData); - const auto& replayFeatureSupportData = *reinterpret_cast(pReplayFeatureSupportData); - FieldToString(str_strm, false, "pCaptureFeatureSupportData", to_string_flags_, tab_count, tab_size, ToString(captureFeatureSupportData, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "pReplayFeatureSupportData", to_string_flags_, tab_count, tab_size, ToString(replayFeatureSupportData, to_string_flags_, tab_count, tab_size)); - } - break; - case D3D12_FEATURE_PROTECTED_RESOURCE_SESSION_TYPE_COUNT: - { - const auto& captureFeatureSupportData = *reinterpret_cast(pCaptureFeatureSupportData); - const auto& replayFeatureSupportData = *reinterpret_cast(pReplayFeatureSupportData); - FieldToString(str_strm, false, "pCaptureFeatureSupportData", to_string_flags_, tab_count, tab_size, ToString(captureFeatureSupportData, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "pReplayFeatureSupportData", to_string_flags_, tab_count, tab_size, ToString(replayFeatureSupportData, to_string_flags_, tab_count, tab_size)); - } - break; - case D3D12_FEATURE_PROTECTED_RESOURCE_SESSION_TYPES: - { - const auto& captureFeatureSupportData = *reinterpret_cast(pCaptureFeatureSupportData); - const auto& replayFeatureSupportData = *reinterpret_cast(pReplayFeatureSupportData); - FieldToString(str_strm, false, "pCaptureFeatureSupportData", to_string_flags_, tab_count, tab_size, ToString(captureFeatureSupportData, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "pReplayFeatureSupportData", to_string_flags_, tab_count, tab_size, ToString(replayFeatureSupportData, to_string_flags_, tab_count, tab_size)); - } - break; - default: - { - } break; - } - #endif - } - ); - // clang-format on -} - -void Dx12AsciiConsumerBase::Process_IDXGIFactory5_CheckFeatureSupport(format::HandleId object_id, - HRESULT original_result, - DXGI_FEATURE feature, - const void* pCaptureFeatureSupportData, - void* pReplayFeatureSupportData, - UINT FeatureSupportDataSize) -{ - // clang-format off - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "IDXGIFactory5"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "CheckFeatureSupport"; - auto returnValue = ToString(original_result, to_string_flags_, tab_count, tab_size); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile(writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - #if 0 - FieldToString(str_strm, true, "feature", to_string_flags_, tab_count, tab_size, ToString(feature, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "FeatureSupportDataSize", to_string_flags_, tab_count, tab_size, ToString(FeatureSupportDataSize, to_string_flags_, tab_count, tab_size)); - switch (feature) - { - case DXGI_FEATURE_PRESENT_ALLOW_TEARING: - { - const auto& captureFeatureSupportData = *reinterpret_cast(pCaptureFeatureSupportData); - const auto& replayFeatureSupportData = *reinterpret_cast(pReplayFeatureSupportData); - FieldToString(str_strm, false, "pCaptureFeatureSupportData", to_string_flags_, tab_count, tab_size, ToString(captureFeatureSupportData, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "pReplayFeatureSupportData", to_string_flags_, tab_count, tab_size, ToString(replayFeatureSupportData, to_string_flags_, tab_count, tab_size)); - } - break; - default: - { - } break; - } - #endif - } - ); - // clang-format on -} - -void Dx12AsciiConsumerBase::Process_ID3D12Resource_WriteToSubresource(format::HandleId object_id, - HRESULT return_value, - UINT DstSubresource, - StructPointerDecoder* pDstBox, - void* pSrcData, - UINT SrcRowPitch, - UINT SrcDepthPitch) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12Resource"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "WriteToSubresource"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile(writeApiCallToFileInfo, tab_count, tab_size, [&](std::stringstream& str_strm) { - FieldToString(str_strm, - true, - "DstSubresource", - to_string_flags_, - tab_count, - tab_size, - ToString(DstSubresource, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, - false, - "pDstBox", - to_string_flags_, - tab_count, - tab_size, - StructPointerDecoderToString(pDstBox, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "pSrcData", to_string_flags_, tab_count, tab_size, HandleIdToString(pSrcData)); - FieldToString(str_strm, - false, - "SrcRowPitch", - to_string_flags_, - tab_count, - tab_size, - ToString(SrcRowPitch, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, - false, - "SrcDepthPitch", - to_string_flags_, - tab_count, - tab_size, - ToString(SrcDepthPitch, to_string_flags_, tab_count, tab_size)); - }); -} - -GFXRECON_END_NAMESPACE(decode) -GFXRECON_END_NAMESPACE(gfxrecon) diff --git a/framework/decode/dx12_ascii_consumer_base.h b/framework/decode/dx12_ascii_consumer_base.h deleted file mode 100644 index 349d85c0b3..0000000000 --- a/framework/decode/dx12_ascii_consumer_base.h +++ /dev/null @@ -1,154 +0,0 @@ -/* -** Copyright (c) 2021-2023 LunarG, Inc. -** -** Permission is hereby granted, free of charge, to any person obtaining a -** copy of this software and associated documentation files (the "Software"), -** to deal in the Software without restriction, including without limitation -** the rights to use, copy, modify, merge, publish, distribute, sublicense, -** and/or sell copies of the Software, and to permit persons to whom the -** Software is furnished to do so, subject to the following conditions: -** -** The above copyright notice and this permission notice shall be included in -** all copies or substantial portions of the Software. -** -** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -** IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -** FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -** AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -** LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -** FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -** DEALINGS IN THE SOFTWARE. -*/ - -#ifndef GFXRECON_DECODE_DX12_ASCII_CONSUMER_BASE_H -#define GFXRECON_DECODE_DX12_ASCII_CONSUMER_BASE_H - -#include "generated/generated_dx12_consumer.h" -#include "util/to_string.h" - -#include - -GFXRECON_BEGIN_NAMESPACE(gfxrecon) -GFXRECON_BEGIN_NAMESPACE(decode) - -class Dx12AsciiConsumerBase : public Dx12Consumer -{ - public: - Dx12AsciiConsumerBase(); - virtual ~Dx12AsciiConsumerBase(); - - void Initialize(FILE* file, gfxrecon::util::ToStringFlags toStringFlags); - - void Destroy(); - - bool IsValid() const { return (file_ != nullptr); } - - const std::string& GetFilename() const { return filename_; } - - void Process_ID3D12Device_CheckFeatureSupport(format::HandleId object_id, - HRESULT original_result, - D3D12_FEATURE feature, - const void* capture_feature_data, - void* replay_feature_data, - UINT feature_data_size) override; - - void Process_IDXGIFactory5_CheckFeatureSupport(format::HandleId object_id, - HRESULT original_result, - DXGI_FEATURE feature, - const void* capture_feature_data, - void* replay_feature_data, - UINT feature_data_size) override; - - void Process_ID3D12Resource_WriteToSubresource(format::HandleId object_id, - HRESULT original_result, - UINT DstSubresource, - StructPointerDecoder* pDstBox, - void* pSrcData, - UINT SrcRowPitch, - UINT SrcDepthPitch) override; - - protected: - FILE* GetFile() const { return file_; } - uint32_t current_frame_number_{ 0 }; - gfxrecon::util::ToStringFlags to_string_flags_{ gfxrecon::util::kToString_Default }; - - struct WriteApiCallToFileInfo - { - const char* pObjectTypeName{}; - format::HandleId handleId{}; - const char* pFunctionName{}; - const char* pReturnValue{}; - }; - - // clang-format off - template - inline void WriteApiCallToFile(const WriteApiCallToFileInfo& writeApiCallToFileInfo, uint32_t& tabCount, uint32_t tabSize, ToStringFunctionType toStringFunction) - { - using namespace util; - using namespace util::platform; - - // Add a comma between top-level JSON objects if we are not generating JSON Lines. - if (to_string_flags_ & kToString_Formatted) { - FilePuts(",\n", file_); - } - else - { - FilePuts("\n", file_); - } - - fprintf(file_, "%s", ObjectToString(to_string_flags_, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - // Output the API call index - FieldToString(strStrm, true, "index", to_string_flags_, tabCount, tabSize, ToString(api_call_count_++, to_string_flags_, tabCount, tabSize)); - - // Output the method/function name - assert(writeApiCallToFileInfo.pFunctionName); - auto fieldName = writeApiCallToFileInfo.pObjectTypeName ? "method" : "function"; - FieldToString(strStrm, false, fieldName, to_string_flags_, tabCount, tabSize, util::Quote(writeApiCallToFileInfo.pFunctionName)); - - // If the API call is an object method we output the object type and handle - if (writeApiCallToFileInfo.pObjectTypeName) { - FieldToString(strStrm, false, "object", to_string_flags_, tabCount, tabSize, - ObjectToString(to_string_flags_, tabCount, tabSize, - [&](std::stringstream& objectStrStrm) - { - FieldToString(objectStrStrm, true, "type", to_string_flags_, tabCount, tabSize, util::Quote(writeApiCallToFileInfo.pObjectTypeName) + '"'); - FieldToString(objectStrStrm, false, "handle", to_string_flags_, tabCount, tabSize, HandleIdToString(writeApiCallToFileInfo.handleId)); - } - ) - ); - } - - // Output the return value - if (writeApiCallToFileInfo.pReturnValue) - { - FieldToString(strStrm, false, "return", to_string_flags_, tabCount, tabSize, std::string(writeApiCallToFileInfo.pReturnValue)); - } - - // Output the method/function parameters - const auto& parametersStr = ObjectToString(to_string_flags_, tabCount, tabSize, toStringFunction); - for (auto c : parametersStr) - { - if (c != '{' && !isspace(static_cast(c)) && c != '}') - { - FieldToString(strStrm, false, "parameters", to_string_flags_, tabCount, tabSize, parametersStr); - break; - } - } - return strStrm.str(); - } - ).c_str()); - } - // clang-format on - - private: - FILE* file_{ nullptr }; - std::string filename_; - uint64_t api_call_count_{ 0 }; -}; - -GFXRECON_END_NAMESPACE(decode) -GFXRECON_END_NAMESPACE(gfxrecon) - -#endif // GFXRECON_DECODE_DX12_ASCII_CONSUMER_BASE_H diff --git a/framework/decode/dx12_consumer_base.h b/framework/decode/dx12_consumer_base.h index d3f41daf68..491ce38390 100644 --- a/framework/decode/dx12_consumer_base.h +++ b/framework/decode/dx12_consumer_base.h @@ -44,7 +44,7 @@ class Dx12ConsumerBase : public MetadataConsumerBase, public MarkerConsumerBase virtual void Process_DriverInfo(const char* info_record) {} - virtual void Process_ExeFileInfo(util::filepath::FileInfo& info_record) {} + virtual void Process_ExeFileInfo(const util::filepath::FileInfo& info_record) {} virtual bool IsComplete(uint64_t block_index) { return false; } @@ -83,7 +83,7 @@ class Dx12ConsumerBase : public MetadataConsumerBase, public MarkerConsumerBase UINT SrcDepthPitch) {} - void SetCurrentBlockIndex(uint64_t block_index) { current_block_index_ = block_index; }; + void SetCurrentBlockIndex(uint64_t block_index) { current_block_index_ = block_index; } bool ContainsDxrWorkload() const { return dxr_workload_; } diff --git a/framework/decode/dx12_json_consumer_base.cpp b/framework/decode/dx12_json_consumer_base.cpp new file mode 100644 index 0000000000..a9658379f2 --- /dev/null +++ b/framework/decode/dx12_json_consumer_base.cpp @@ -0,0 +1,277 @@ +/* +** Copyright (c) 2023 LunarG, Inc. +** +** Permission is hereby granted, free of charge, to any person obtaining a +** copy of this software and associated documentation files (the "Software"), +** to deal in the Software without restriction, including without limitation +** the rights to use, copy, modify, merge, publish, distribute, sublicense, +** and/or sell copies of the Software, and to permit persons to whom the +** Software is furnished to do so, subject to the following conditions: +** +** The above copyright notice and this permission notice shall be included in +** all copies or substantial portions of the Software. +** +** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +** IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +** FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +** AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +** LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +** FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +** DEALINGS IN THE SOFTWARE. +*/ + +/// @file Implementation of manual base class for generated DX12 consumer +/// which outputs a JSON representation of a captured stream. + +#include "decode/dx12_json_consumer_base.h" +#include "decode/json_writer.h" +#include "decode/decode_json_util.h" +#include "generated/generated_dx12_enum_to_json.h" +#include "generated/generated_dx12_struct_decoders_to_json.h" +#include "util/strings.h" + +GFXRECON_BEGIN_NAMESPACE(gfxrecon) +GFXRECON_BEGIN_NAMESPACE(decode) + +Dx12JsonConsumerBase::Dx12JsonConsumerBase() {} + +Dx12JsonConsumerBase::~Dx12JsonConsumerBase() +{ + Destroy(); +} + +void Dx12JsonConsumerBase::Initialize(JsonWriter* writer) +{ + assert(writer); + writer_ = writer; +} + +void Dx12JsonConsumerBase::Destroy() +{ + writer_ = nullptr; +} + +bool Dx12JsonConsumerBase::IsValid() const +{ + return writer_ && writer_->IsValid(); +} + +void Dx12JsonConsumerBase::ProcessCreateHeapAllocationCommand(uint64_t allocation_id, uint64_t allocation_size) +{ + const util::JsonOptions& json_options = writer_->GetOptions(); + auto& jdata = writer_->WriteMetaCommandStart("CreateHeapAllocationCommand"); + FieldToJson(jdata["allocation_id"], allocation_id, json_options); + FieldToJson(jdata["allocation_size"], allocation_size, json_options); + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumerBase::ProcessInitSubresourceCommand(const format::InitSubresourceCommandHeader& command_header, + const uint8_t* data) +{ + const util::JsonOptions& json_options = writer_->GetOptions(); + auto& jdata = writer_->WriteMetaCommandStart("InitSubresourceCommand"); + + FieldToJson(jdata["thread_id"], command_header.thread_id, json_options); + FieldToJson(jdata["device_id"], command_header.device_id, json_options); + FieldToJson(jdata["resource_id"], command_header.resource_id, json_options); + FieldToJson(jdata["subresource"], command_header.subresource, json_options); + FieldToJson(jdata["initial_state"], command_header.initial_state, json_options); + FieldToJson(jdata["resource_state"], command_header.resource_state, json_options); + FieldToJson(jdata["barrier_flags"], command_header.barrier_flags, json_options); + FieldToJson(jdata["data_size"], command_header.data_size, json_options); + RepresentBinaryFile( + *(this->writer_), jdata[format::kNameData], "initsubresourcecommand.bin", command_header.data_size, data); + + writer_->WriteBlockEnd(); +} + +/// @brief Convert an InitDx12AccelerationStructureCommand, which is used for trimmed +/// captures as part of establishing the GPU memory state at the start of the trimmed +/// range. +void Dx12JsonConsumerBase::ProcessInitDx12AccelerationStructureCommand( + const format::InitDx12AccelerationStructureCommandHeader& command_header, + std::vector& geometry_descs, + const uint8_t* build_inputs_data) +{ + const util::JsonOptions& json_options = writer_->GetOptions(); + auto& jdata = writer_->WriteMetaCommandStart("InitDx12AccelerationStructureCommand"); + FieldToJson(jdata["thread_id"], command_header.thread_id, json_options); + // The GPU address D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_DESC.DestAccelerationStructureData + // is mapped from this during replay but we'll just dump the raw capture file value: + FieldToJsonAsHex( + jdata["dest_acceleration_structure_data"], command_header.dest_acceleration_structure_data, json_options); + // A GPU virtual address to copy from after pumping througnh a graphics::Dx12GpuVaMap during replay, but we'll just + // dump the raw capture file value: + FieldToJsonAsHex(jdata["copy_source_gpu_va"], command_header.copy_source_gpu_va, json_options); + FieldToJson(jdata["copy_mode"], + static_cast(command_header.copy_mode), + json_options); + FieldToJson(jdata["inputs_type"], + static_cast(command_header.inputs_type), + json_options); + FieldToJson_D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAGS( + jdata["inputs_flags"], + static_cast(command_header.inputs_flags), + json_options); + FieldToJson(jdata["inputs_num_instance_descs"], command_header.inputs_num_instance_descs, json_options); + FieldToJson(jdata["inputs_num_geometry_descs"], command_header.inputs_num_geometry_descs, json_options); + FieldToJson(jdata["inputs_data_size"], command_header.inputs_data_size, json_options); + RepresentBinaryFile(*(this->writer_), + jdata[format::kNameData], + "initdx12accelerationstructurecommand.bin", + command_header.inputs_data_size, + build_inputs_data); + FieldToJson(jdata["geometry_descs"], geometry_descs.data(), geometry_descs.size(), json_options); + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumerBase::ProcessFillMemoryResourceValueCommand( + const format::FillMemoryResourceValueCommandHeader& command_header, const uint8_t* data) +{ + const util::JsonOptions& json_options = writer_->GetOptions(); + auto& jdata = writer_->WriteMetaCommandStart("FillMemoryResourceValueCommand"); + FieldToJson(jdata["thread_id"], command_header.thread_id, json_options); + FieldToJson(jdata["resource_value_count"], command_header.resource_value_count, json_options); + // There are two blocks of values in data so we need to add together their sizes to know how big the blob to dump + // is: + const auto types_bytes = command_header.resource_value_count * sizeof(format::ResourceValueType); + const auto offsets_bytes = command_header.resource_value_count * sizeof(uint64_t); + RepresentBinaryFile(*(this->writer_), + jdata[format::kNameData], + "fillmemoryresourcevaluecommand.bin", + types_bytes + offsets_bytes, + data); + + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumerBase::ProcessDxgiAdapterInfo(const format::DxgiAdapterInfoCommandHeader& adapter_info_header) +{ + const util::JsonOptions& json_options = writer_->GetOptions(); + auto& jdata = writer_->WriteMetaCommandStart("DxgiAdapterInfo"); + FieldToJson(jdata["thread_id"], adapter_info_header.thread_id, json_options); + FieldToJson(jdata["adapter_desc"], adapter_info_header.adapter_desc, json_options); + writer_->WriteBlockEnd(); +} + +/// @see DriverInfoBlock in format.h +void Dx12JsonConsumerBase::Process_DriverInfo(const char* info_record) +{ + const util::JsonOptions& json_options = writer_->GetOptions(); + auto& jdata = writer_->WriteMetaCommandStart("DriverInfo"); + char driver_record[gfxrecon::util::filepath::kMaxDriverInfoSize + 1]; + + FieldToJson(jdata[format::kNameDebug], "thread_id field not exposed.", json_options); + FieldToJson(jdata["driver_record"], + util::strings::ViewOfCharArray(info_record, util::filepath::kMaxDriverInfoSize), + json_options); + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumerBase::ProcessDx12RuntimeInfo(const format::Dx12RuntimeInfoCommandHeader& runtime_info_header) +{ + const util::JsonOptions& json_options = writer_->GetOptions(); + auto& jdata = writer_->WriteMetaCommandStart("Dx12RuntimeInfoCommandHeader"); + + FieldToJson(jdata["thread_id"], runtime_info_header.thread_id, json_options); + FieldToJson(jdata["runtime_info"], runtime_info_header.runtime_info, json_options); + + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumerBase::Process_ExeFileInfo(const util::filepath::FileInfo& info_record) +{ + const util::JsonOptions& json_options = writer_->GetOptions(); + auto& jdata = writer_->WriteMetaCommandStart("Dx12RuntimeInfoCommandHeader"); + FieldToJson(jdata["info_record"], info_record, json_options); +} + +void Dx12JsonConsumerBase::Process_ID3D12Device_CheckFeatureSupport(format::HandleId object_id, + HRESULT original_result, + D3D12_FEATURE feature, + const void* capture_feature_data, + void* replay_feature_data, + UINT feature_data_size) +{ + using namespace gfxrecon::util; + ApiCallInfo call_info; + call_info.index = GetCurrentBlockIndex(); + call_info.thread_id = format::kNameUnknownThreadId; + + nlohmann::ordered_json& method = + writer_->WriteApiCallStart(call_info, "ID3D12Device", object_id, "CheckFeatureSupport"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], original_result, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["Feature"], feature, options); + FieldToJson(args["pFeatureSupportData"], nullptr, options); + FieldToJson(args["FeatureSupportDataSize"], feature_data_size, options); + /// @todo Complete conversion of the void * contents of Process_ID3D12Device_CheckFeatureSupport. See + /// + FieldToJson( + args[format::kNameWarning], "Incomplete conversion: pFeatureSupportData not supported yet.", options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumerBase::Process_IDXGIFactory5_CheckFeatureSupport(format::HandleId object_id, + HRESULT original_result, + DXGI_FEATURE feature, + const void* capture_feature_data, + void* replay_feature_data, + UINT feature_data_size) +{ + using namespace gfxrecon::util; + ApiCallInfo call_info; + call_info.index = GetCurrentBlockIndex(); + call_info.thread_id = format::kNameUnknownThreadId; + + nlohmann::ordered_json& method = + writer_->WriteApiCallStart(call_info, "IDXGIFactory5", object_id, "CheckFeatureSupport"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], original_result, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["Feature"], feature, options); + FieldToJson(args["pFeatureSupportData"], nullptr, options); + FieldToJson(args["FeatureSupportDataSize"], feature_data_size, options); + /// @todo Complete conversion of the void * contents of Process_IDXGIFactory5_CheckFeatureSupport. See + /// + FieldToJson( + args[format::kNameWarning], "Incomplete conversion: pFeatureSupportData not supported yet.", options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumerBase::Process_ID3D12Resource_WriteToSubresource(format::HandleId object_id, + HRESULT return_value, + UINT DstSubresource, + StructPointerDecoder* pDstBox, + void* pSrcData, + UINT SrcRowPitch, + UINT SrcDepthPitch) +{ + using namespace gfxrecon::util; + ApiCallInfo call_info; + call_info.index = GetCurrentBlockIndex(); + call_info.thread_id = format::kNameUnknownThreadId; + + nlohmann::ordered_json& method = + writer_->WriteApiCallStart(call_info, "ID3D12Resource", object_id, "WriteToSubresource"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["DstSubresource"], DstSubresource, options); + FieldToJson(args["pDstBox"], pDstBox, options); + /// @todo Complete conversion of the void * member pSrcData of Process_ID3D12Resource_WriteToSubresource. + FieldToJson(args[format::kNameWarning], "Incomplete conversion: pSrcData not supported yet.", options); + FieldToJson(args["pSrcData"], nullptr, options); + FieldToJson(args["SrcRowPitch"], SrcRowPitch, options); + FieldToJson(args["SrcDepthPitch"], SrcDepthPitch, options); + } + writer_->WriteBlockEnd(); +} +GFXRECON_END_NAMESPACE(decode) +GFXRECON_END_NAMESPACE(gfxrecon) diff --git a/framework/decode/dx12_json_consumer_base.h b/framework/decode/dx12_json_consumer_base.h new file mode 100644 index 0000000000..0bad4d45aa --- /dev/null +++ b/framework/decode/dx12_json_consumer_base.h @@ -0,0 +1,101 @@ +/* +** Copyright (c) 2023 LunarG, Inc. +** +** Permission is hereby granted, free of charge, to any person obtaining a +** copy of this software and associated documentation files (the "Software"), +** to deal in the Software without restriction, including without limitation +** the rights to use, copy, modify, merge, publish, distribute, sublicense, +** and/or sell copies of the Software, and to permit persons to whom the +** Software is furnished to do so, subject to the following conditions: +** +** The above copyright notice and this permission notice shall be included in +** all copies or substantial portions of the Software. +** +** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +** IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +** FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +** AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +** LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +** FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +** DEALINGS IN THE SOFTWARE. +*/ + +/// @file Base class for generated DX12 consumer which outputs JSON and associated utilities. + +#ifndef GFXRECON_DECODE_DX12_JSON_CONSUMER_BASE_H +#define GFXRECON_DECODE_DX12_JSON_CONSUMER_BASE_H + +#include "generated/generated_dx12_consumer.h" + +GFXRECON_BEGIN_NAMESPACE(gfxrecon) +GFXRECON_BEGIN_NAMESPACE(decode) + +class JsonWriter; + +/// @file Base class for generated DX12 consumer which outputs a JSON representation of a captured stream. +class Dx12JsonConsumerBase : public Dx12Consumer +{ + public: + Dx12JsonConsumerBase(); + virtual ~Dx12JsonConsumerBase() override; + + void Initialize(JsonWriter* writer); + + void Destroy(); + + bool IsValid() const; + + /// @defGroup MetaBlocksUsedOnlyByDx12 Metablocks used by only DX12. + /// @{ + virtual void ProcessCreateHeapAllocationCommand(uint64_t allocation_id, uint64_t allocation_size) override; + virtual void ProcessInitSubresourceCommand(const format::InitSubresourceCommandHeader& command_header, + const uint8_t* data) override; + virtual void ProcessInitDx12AccelerationStructureCommand( + const format::InitDx12AccelerationStructureCommandHeader& command_header, + std::vector& geometry_descs, + const uint8_t* build_inputs_data) override; + virtual void + ProcessFillMemoryResourceValueCommand(const format::FillMemoryResourceValueCommandHeader& command_header, + const uint8_t* data) override; + virtual void ProcessDxgiAdapterInfo(const format::DxgiAdapterInfoCommandHeader& adapter_info_header) override; + virtual void Process_DriverInfo(const char* info_record) override; + virtual void ProcessDx12RuntimeInfo(const format::Dx12RuntimeInfoCommandHeader& runtime_info_header) override; + virtual void Process_ExeFileInfo(const util::filepath::FileInfo& info_record) override; + /// @} + + /// @defGroup CustomFunctions DX12 functions and methods which require fully custom handling. + /// @{ + /// Data must be extracted from the void pointer depending on the value of feature. + void Process_ID3D12Device_CheckFeatureSupport(format::HandleId object_id, + HRESULT original_result, + D3D12_FEATURE feature, + const void* capture_feature_data, + void* replay_feature_data, + UINT feature_data_size) override; + + /// Data must be extracted from the void pointer depending on the value of feature. + void Process_IDXGIFactory5_CheckFeatureSupport(format::HandleId object_id, + HRESULT original_result, + DXGI_FEATURE feature, + const void* capture_feature_data, + void* replay_feature_data, + UINT feature_data_size) override; + + /// This is only custom because codegen gives pSrcData type uint64_t instead of void*. + /// + virtual void Process_ID3D12Resource_WriteToSubresource(format::HandleId object_id, + HRESULT original_result, + UINT DstSubresource, + StructPointerDecoder* pDstBox, + void* pSrcData, + UINT SrcRowPitch, + UINT SrcDepthPitch) override; + /// @} + protected: + JsonWriter* writer_{ nullptr }; +}; + +GFXRECON_END_NAMESPACE(decode) +GFXRECON_END_NAMESPACE(gfxrecon) + +#endif // GFXRECON_DECODE_DX12_JSON_CONSUMER_BASE_H diff --git a/framework/decode/json_writer.cpp b/framework/decode/json_writer.cpp new file mode 100644 index 0000000000..cd380eed41 --- /dev/null +++ b/framework/decode/json_writer.cpp @@ -0,0 +1,243 @@ +/* +** Copyright (c) 2023 Valve Corporation +** Copyright (c) 2023 LunarG, Inc. +** +** Permission is hereby granted, free of charge, to any person obtaining a +** copy of this software and associated documentation files (the "Software"), +** to deal in the Software without restriction, including without limitation +** the rights to use, copy, modify, merge, publish, distribute, sublicense, +** and/or sell copies of the Software, and to permit persons to whom the +** Software is furnished to do so, subject to the following conditions: +** +** The above copyright notice and this permission notice shall be included in +** all copies or substantial portions of the Software. +** +** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +** IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +** FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +** AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +** LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +** FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +** DEALINGS IN THE SOFTWARE. +*/ + +/// @file Common features for writing decoded items to a single json stream, be +/// they from Vulkan, D3D12, metadata, annotations, or any other source. + +#include "decode/json_writer.h" +#include "util/output_stream.h" +#include "util/logging.h" +#include "decode/api_decoder.h" + +GFXRECON_BEGIN_NAMESPACE(gfxrecon) +GFXRECON_BEGIN_NAMESPACE(decode) + +JsonWriter::JsonWriter(const util::JsonOptions& options, + const std::string_view gfxrVersion, + const std::string_view inputFilepath) : + json_options_(options) +{ + header_["source-path"] = inputFilepath; + header_["gfxrecon-version"] = std::string(gfxrVersion); +} + +JsonWriter::~JsonWriter() +{ + if (os_) + { + os_->Flush(); + } +} + +void JsonWriter::StartStream(util::OutputStream* os) +{ + GFXRECON_ASSERT(os); + first_ = true; + os_ = os; + + if (json_options_.format == util::JsonFormat::JSON) + { + Write(*os_, "[\n"); + } + + // Emit the header object as the first line of the file: + WriteBlockStart(); + json_data_["header"] = header_; + WriteBlockEnd(); + + ++num_streams_; +} + +void JsonWriter::EndStream() +{ + if (os_ != nullptr) + { + if (json_options_.format == util::JsonFormat::JSON) + { + Write(*os_, "\n]\n"); + } + else + { + Write(*os_, "\n"); + } + os_->Flush(); + os_ = nullptr; + } +} + +void JsonWriter::Destroy() +{ + EndStream(); +} + +bool JsonWriter::IsValid() const +{ + return os_ != nullptr && os_->IsValid(); +} + +nlohmann::ordered_json& JsonWriter::WriteBlockStart() +{ + // Dominates profiling (1/2): + json_data_.clear(); + return json_data_; +} + +void JsonWriter::WriteBlockEnd() +{ + if (!first_) + { + Write(*os_, json_options_.format == util::JsonFormat::JSONL ? "\n" : ",\n"); + } + first_ = false; + /// @todo Hand the tree over to a backend thread which dumps it to a string and streams it + /// while the main thread gets on with building the tree for the next block. + // Dominates profiling (2/2): + const std::string block = + json_data_.dump(json_options_.format == util::JsonFormat::JSONL ? -1 : util::kJsonIndentWidth); + Write(*os_, block); + os_->Flush(); +} + +nlohmann::ordered_json& JsonWriter::WriteApiCallStart(const ApiCallInfo& call_info, const std::string_view command_name) +{ + auto& json_data = WriteBlockStart(); + + json_data[format::kNameIndex] = call_info.index; + + nlohmann::ordered_json& function = json_data[format::kNameFunction]; + function[format::kNameName] = command_name; + function[format::kNameThread] = call_info.thread_id; + + return function; +} + +nlohmann::ordered_json& JsonWriter::WriteApiCallStart(const ApiCallInfo& call_info, + const std::string_view object_type, + const format::HandleId object_id, + const std::string_view command_name) +{ + auto& json_data = WriteBlockStart(); + + json_data[format::kNameIndex] = call_info.index; + + nlohmann::ordered_json& method = json_data[format::kNameMethod]; + method[format::kNameName] = command_name; + method[format::kNameThread] = call_info.thread_id; + + nlohmann::ordered_json& object = method[format::kNameObject]; + object[format::kNameObjectType] = object_type; + FieldToJson(object[format::kNameObjectHandle], object_id, GetOptions()); + + return method; +} + +void JsonWriter::WriteMarker(const char* const name, const std::string_view marker_type, uint64_t frame_number) +{ + // Markers are dispatched to all decoders and consumers so de-duplicate them for JSON + // output in case the build has multiple JSON consumers for different APIs enabled. + if (name != last_marker_name_ || marker_type != last_marker_type_ || frame_number != last_frame_number_) + { + auto& json_data = WriteBlockStart(); + + nlohmann::ordered_json& state = json_data[name]; + state["marker_type"] = marker_type; + state["frame_number"] = frame_number; + + WriteBlockEnd(); + + last_marker_name_ = name; + last_marker_type_ = marker_type; + last_frame_number_ = frame_number; + } +} + +nlohmann::ordered_json& JsonWriter::WriteMetaCommandStart(const std::string_view command_name) +{ + auto& json_data = WriteBlockStart(); + + nlohmann::ordered_json& meta = json_data[format::kNameMeta]; + meta[format::kNameName] = command_name; + return meta[format::kNameArgs]; +} + +void JsonWriter::ProcessAnnotation(uint64_t block_index, + format::AnnotationType type, + const std::string& label, + const std::string& data) +{ + auto& json_data = WriteBlockStart(); + json_data["index"] = block_index; + auto& annotation = json_data["annotation"]; + annotation["type"] = util::AnnotationTypeToString(type); + annotation["label"] = label; + annotation["data"] = data; + WriteBlockEnd(); +} + +std::string JsonWriter::GenerateFilename(const std::string_view filename) +{ + num_files_++; + return std::to_string(num_files_).append("_").append(filename); +} + +bool JsonWriter::WriteBinaryFile(const std::string& filename, uint64_t data_size, const uint8_t* data) +{ + FILE* file_output = nullptr; + if (util::platform::FileOpen(&file_output, filename.c_str(), "wb") == 0) + { + util::platform::FileWrite(data, static_cast(data_size), 1, file_output); + util::platform::FileClose(file_output); + return true; + } + return false; +} + +void RepresentBinaryFile(JsonWriter& writer, + nlohmann::ordered_json& jdata, + std::string_view filename_base, + const uint64_t data_size, + const uint8_t* const data) +{ + const util::JsonOptions& json_options = writer.GetOptions(); + if (json_options.dump_binaries) + { + std::string filename = writer.GenerateFilename(filename_base); + std::string basename = gfxrecon::util::filepath::Join(json_options.data_sub_dir, filename); + std::string filepath = gfxrecon::util::filepath::Join(json_options.root_dir, basename); + if (writer.WriteBinaryFile(filepath, data_size, data)) + { + FieldToJson(jdata, basename, json_options); + } + else + { + FieldToJson(jdata, format::kValWriteFailed, json_options); + } + } + else + { + FieldToJson(jdata, format::kValBinary, json_options); + } +} + +GFXRECON_END_NAMESPACE(decode) +GFXRECON_END_NAMESPACE(gfxrecon) diff --git a/framework/decode/json_writer.h b/framework/decode/json_writer.h new file mode 100644 index 0000000000..fe4889ec7b --- /dev/null +++ b/framework/decode/json_writer.h @@ -0,0 +1,151 @@ +/* +** Copyright (c) 2023 Valve Corporation +** Copyright (c) 2023 LunarG, Inc. +** +** Permission is hereby granted, free of charge, to any person obtaining a +** copy of this software and associated documentation files (the "Software"), +** to deal in the Software without restriction, including without limitation +** the rights to use, copy, modify, merge, publish, distribute, sublicense, +** and/or sell copies of the Software, and to permit persons to whom the +** Software is furnished to do so, subject to the following conditions: +** +** The above copyright notice and this permission notice shall be included in +** all copies or substantial portions of the Software. +** +** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +** IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +** FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +** AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +** LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +** FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +** DEALINGS IN THE SOFTWARE. +*/ + +/// @file Common features for writing decoded items to a single json stream, be +/// they from Vulkan, D3D12, metadata, annotations, or any other source. + +#ifndef GFXRECON_DECODE_JSON_WRITER_H +#define GFXRECON_DECODE_JSON_WRITER_H + +#include "annotation_handler.h" +#include "util/json_util.h" +#include "util/platform.h" +#include "util/defines.h" +#include "format/format_json.h" + +#include "nlohmann/json.hpp" + +GFXRECON_BEGIN_NAMESPACE(gfxrecon) +GFXRECON_BEGIN_NAMESPACE(util) +class OutputStream; +GFXRECON_END_NAMESPACE(util) +GFXRECON_BEGIN_NAMESPACE(decode) + +struct ApiCallInfo; + +/// Manages writing +class JsonWriter : public AnnotationHandler +{ + public: + JsonWriter(const util::JsonOptions& options, + const std::string_view gfxrVersion, + const std::string_view inputFilepath); + ~JsonWriter(); + + /// Output any data associated with the start of a logical stream such as a header object. + void StartStream(util::OutputStream* os); + /// Output data at end of stream such as closing the JSON array. + void EndStream(); + void Destroy(); + bool IsValid() const; + + /// Get a clean fresh JSON tree to build a block's representation in. + /// Users can build the JSON representation of their blocks in this tree before + /// calling WriteBlockEnd() to serialize it out to the stream. + nlohmann::ordered_json& WriteBlockStart(); + + /// Finalise the current block and stream it out. + void WriteBlockEnd(); + + /// Start the JSON tree for a function call, building the top-level object + /// with index and function fields, adding name and thread to the function. + /// @return The "function" object field for the caller to populate further + /// with return value if any and arguments. + nlohmann::ordered_json& WriteApiCallStart(const ApiCallInfo& call_info, const std::string_view command_name); + + /// Start the JSON tree for a method call, building the top-level object + /// with index and function fields, adding name and thread to the function. + /// @return The "method" object field for the caller to populate further + /// with return value if any and arguments. + nlohmann::ordered_json& WriteApiCallStart(const ApiCallInfo& call_info, + const std::string_view object_type, + const format::HandleId object_id, + const std::string_view command_name); + + void WriteMarker(const char* name, const std::string_view marker_type, uint64_t frame_number); + + /// @brief Output the boilerplate for representing a metadata block in JSON, + /// returning the root of the empty "args" JSON sub-tree for the caller to populate. + nlohmann::ordered_json& WriteMetaCommandStart(const std::string_view command_name); + + /// @brief Output the boilerplate for converting a metadata block to JSON but + /// defer internals to the function passed in. + /// @tparam ToJsonFunctionType A callable which fills out the body of the object. + template + inline void WriteMetaCommand(const std::string_view command_name, ToJsonFunctionType to_json_function) + { + nlohmann::ordered_json& args = WriteMetaCommandStart(command_name); + to_json_function(args); + WriteBlockEnd(); + } + + /// Get the JSON object used to output the per-stream header + /// Consumers can add their own fields to it. + nlohmann::ordered_json& GetHeaderJson() { return header_; } + + /// Get the root of the JSON tree for the current block. + nlohmann::ordered_json& GetBlockJson() { return json_data_; } + + const util::JsonOptions& GetOptions() const { return json_options_; } + + uint32_t GetNumStreams() const { return num_streams_; } + + /// @brief Convert annotations, which are simple {type:enum, key:string, value:string} objects. + virtual void ProcessAnnotation(uint64_t block_index, + format::AnnotationType type, + const std::string& label, + const std::string& data) override; + + std::string GenerateFilename(const std::string_view filename); + bool WriteBinaryFile(const std::string& filename, uint64_t data_size, const uint8_t* data); + + private: + util::OutputStream* os_; + nlohmann::ordered_json header_; + util::JsonOptions json_options_; + nlohmann::ordered_json json_data_; + uint32_t num_streams_{ 0 }; + /// Number of side-files generated for dumping binary blobs etc. + uint32_t num_files_{ 0 }; + + // Account for markers being broadcast to all decoders, all consumers, unlike functions and metadata blocks which + // are tagged with an API family. A marker is only converted if it differs in one of these three attributes. + std::string last_marker_name_; + std::string last_marker_type_; + uint64_t last_frame_number_{ 0 }; + + bool first_{ true }; +}; + +/// Either write the binary data to a file, and put the filename in the tree or +/// put the tag format::kValBinary in the tree to indicate it +void RepresentBinaryFile(JsonWriter& writer, + nlohmann::ordered_json& jdata, + const std::string_view filename_base, + const uint64_t data_size, + const uint8_t* const data); + +GFXRECON_END_NAMESPACE(decode) +GFXRECON_END_NAMESPACE(gfxrecon) + +#endif // GFXRECON_DECODE_JSON_WRITER_H diff --git a/framework/decode/marker_json_consumer.h b/framework/decode/marker_json_consumer.h new file mode 100644 index 0000000000..45592c8a6d --- /dev/null +++ b/framework/decode/marker_json_consumer.h @@ -0,0 +1,57 @@ +/* +** Copyright (c) 2023 Valve Corporation +** Copyright (c) 2023 LunarG, Inc. +** +** Permission is hereby granted, free of charge, to any person obtaining a +** copy of this software and associated documentation files (the "Software"), +** to deal in the Software without restriction, including without limitation +** the rights to use, copy, modify, merge, publish, distribute, sublicense, +** and/or sell copies of the Software, and to permit persons to whom the +** Software is furnished to do so, subject to the following conditions: +** +** The above copyright notice and this permission notice shall be included in +** all copies or substantial portions of the Software. +** +** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +** IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +** FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +** AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +** LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +** FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +** DEALINGS IN THE SOFTWARE. +*/ + +#ifndef GFXRECON_DECODE_MARKER_JSON_CONSUMER_BASE_H +#define GFXRECON_DECODE_MARKER_JSON_CONSUMER_BASE_H + +#include "util/defines.h" +#include "format/format_json.h" + +GFXRECON_BEGIN_NAMESPACE(gfxrecon) +GFXRECON_BEGIN_NAMESPACE(decode) + +/// Template shim for turning markers into json using a JsonWriter pointed to by +// a protected pointer called writer_ in a base class. +template +class MarkerJsonConsumer : public Base +{ + public: + virtual void ProcessStateBeginMarker(uint64_t frame_number) + { + this->writer_->WriteMarker(format::kNameState, "BeginMarker", frame_number); + } + virtual void ProcessStateEndMarker(uint64_t frame_number) + { + this->writer_->WriteMarker(format::kNameState, "EndMarker", frame_number); + } + + virtual void ProcessFrameEndMarker(uint64_t frame_number) + { + this->writer_->WriteMarker(format::kNameFrame, "EndMarker", frame_number); + } +}; + +GFXRECON_END_NAMESPACE(decode) +GFXRECON_END_NAMESPACE(gfxrecon) + +#endif // GFXRECON_DECODE_MARKER_JSON_CONSUMER_BASE_H diff --git a/framework/decode/metadata_json_consumer.h b/framework/decode/metadata_json_consumer.h new file mode 100644 index 0000000000..e2429fc758 --- /dev/null +++ b/framework/decode/metadata_json_consumer.h @@ -0,0 +1,270 @@ +/* +** Copyright (c) 2023 Valve Corporation +** Copyright (c) 2022-2023 LunarG, Inc. +** +** Permission is hereby granted, free of charge, to any person obtaining a +** copy of this software and associated documentation files (the "Software"), +** to deal in the Software without restriction, including without limitation +** the rights to use, copy, modify, merge, publish, distribute, sublicense, +** and/or sell copies of the Software, and to permit persons to whom the +** Software is furnished to do so, subject to the following conditions: +** +** The above copyright notice and this permission notice shall be included in +** all copies or substantial portions of the Software. +** +** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +** IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +** FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +** AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +** LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +** FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +** DEALINGS IN THE SOFTWARE. +*/ + +#ifndef GFXRECON_DECODE_METADATA_JSON_CONSUMER_H +#define GFXRECON_DECODE_METADATA_JSON_CONSUMER_H + +#include "util/defines.h" +#include "format/format_json.h" + +GFXRECON_BEGIN_NAMESPACE(gfxrecon) +GFXRECON_BEGIN_NAMESPACE(decode) + +/// Template shim for turning metadata (metacommands) into JSON using a +/// JsonWriter pointed to by a protected pointer called writer_ in a base class. +/// This can be shimmed into the inheritance hierarchy for any JSON consumer as +/// is done by gfxrecon-convert's main.cpp for both Vulkan and DX12 consumers to +/// provide metacommand support. +/// @note Any API-specific metablocks/metadata/metacommands are best handled directly by the JSON consumer of that API. +/// @note An alternative implementation would make MetadataConsumerBase a virtual base class of the base +/// Vulkan and DX12 consumers, and also a virtual base of a non-template version of MetadataJsonConsumer, +/// and VulkanJSONConsumer and DX12JsonConsumer would both use multiple inheritance to mix-in this posited non-template +/// MetadataJsonConsumer. The advantage would be code space saved due to avoiding two template instantiations with +/// identical code. The downside would be the slower virtual function dispatch due to diamond inheritance from the +/// use of virtual base classes (See Stroustrup, Design and Evolution of C++ for overheads of virtual base classes). +template +class MetadataJsonConsumer : public Base +{ + typedef util::JsonOptions JsonOptions; + + inline const util::JsonOptions& GetOptions() const { return this->writer_->GetOptions(); } + inline const util::JsonOptions& GetJsonOptions() const { return this->writer_->GetOptions(); } // temp + inline nlohmann::ordered_json& WriteMetaCommandStart(const std::string& command_name) const + { + return this->writer_->WriteMetaCommandStart(command_name); + } + inline void WriteBlockEnd() { this->writer_->WriteBlockEnd(); } + + public: + /// @defGroup ApiAgnosticMetaBlocks Metablocks used by both Vulkan and DX12. + /// @{ + virtual void ProcessDisplayMessageCommand(const std::string& message) override + { + auto& jdata = WriteMetaCommandStart("DisplayMessageCommand"); + FieldToJson(jdata["message"], message, GetOptions()); + WriteBlockEnd(); + } + + virtual void + ProcessFillMemoryCommand(uint64_t memory_id, uint64_t offset, uint64_t size, const uint8_t* data) override + { + const util::JsonOptions& json_options = GetOptions(); + auto& jdata = WriteMetaCommandStart("FillMemoryCommand"); + HandleToJson(jdata["memory_id"], memory_id, json_options); + FieldToJson(jdata["offset"], offset, json_options); + FieldToJson(jdata["size"], size, json_options); + RepresentBinaryFile(*(this->writer_), jdata[format::kNameData], "fill_memory.bin", size, data); + WriteBlockEnd(); + } + + virtual void ProcessResizeWindowCommand(format::HandleId surface_id, uint32_t width, uint32_t height) override + { + using namespace util; + const JsonOptions& json_options = GetOptions(); + auto& jdata = WriteMetaCommandStart("ResizeWindowCommand"); + HandleToJson(jdata["surface_id"], surface_id, json_options); + FieldToJson(jdata["width"], width, json_options); + FieldToJson(jdata["height"], height, json_options); + WriteBlockEnd(); + } + + virtual void ProcessResizeWindowCommand2(format::HandleId surface_id, + uint32_t width, + uint32_t height, + uint32_t pre_transform) override + { + auto& jdata = WriteMetaCommandStart("ResizeWindowCommand2"); + const util::JsonOptions& json_options = GetOptions(); + HandleToJson(jdata["surface_id"], surface_id, json_options); + FieldToJson(jdata["width"], width, json_options); + FieldToJson(jdata["height"], height, json_options); + FieldToJson(jdata["pre_transform"], pre_transform, json_options); + WriteBlockEnd(); + } + + virtual void + ProcessCreateHardwareBufferCommand(format::HandleId memory_id, + uint64_t buffer_id, + uint32_t format, + uint32_t width, + uint32_t height, + uint32_t stride, + uint64_t usage, + uint32_t layers, + const std::vector& plane_info) override + { + const util::JsonOptions& json_options = GetOptions(); + auto& jdata = WriteMetaCommandStart("CreateHardwareBufferCommand"); + HandleToJson(jdata["memory_id"], memory_id, json_options); + HandleToJson(jdata["buffer_id"], buffer_id, json_options); + FieldToJson(jdata["format"], format, json_options); + FieldToJson(jdata["width"], width, json_options); + FieldToJson(jdata["height"], height, json_options); + FieldToJson(jdata["stride"], stride, json_options); + FieldToJson(jdata["usage"], usage, json_options); + FieldToJson(jdata["layers"], layers, json_options); + WriteBlockEnd(); + } + + virtual void ProcessDestroyHardwareBufferCommand(const uint64_t buffer_id) override + { + auto& jdata = WriteMetaCommandStart("DestroyHardwareBufferCommand"); + HandleToJson(jdata["buffer_id"], buffer_id, GetOptions()); + WriteBlockEnd(); + } + + virtual void ProcessSetDevicePropertiesCommand(format::HandleId physical_device_id, + uint32_t api_version, + uint32_t driver_version, + uint32_t vendor_id, + uint32_t device_id, + uint32_t device_type, + const uint8_t pipeline_cache_uuid[format::kUuidSize], + const std::string& device_name) override + { + const util::JsonOptions& json_options = GetOptions(); + this->writer_->WriteMetaCommand("SetDevicePropertiesCommand", [&](auto& jdata) { + HandleToJson(jdata["physical_device_id"], physical_device_id, json_options); + FieldToJson(jdata["api_version"], api_version, json_options); + FieldToJson(jdata["driver_version"], driver_version, json_options); + FieldToJson(jdata["vendor_id"], vendor_id, json_options); + FieldToJson(jdata["device_id"], device_id, json_options); + FieldToJson(jdata["device_type"], device_type, json_options); + FieldToJson(jdata["pipeline_cache_uuid"], + util::uuid_to_string(format::kUuidSize, pipeline_cache_uuid), + json_options); + FieldToJson(jdata["device_name"], device_name, json_options); + }); + } + + virtual void + ProcessSetDeviceMemoryPropertiesCommand(format::HandleId physical_device_id, + const std::vector& memory_types, + const std::vector& memory_heaps) override + { + const util::JsonOptions& json_options = GetJsonOptions(); + this->writer_->WriteMetaCommand("SetDeviceMemoryPropertiesCommand", [&](auto& jdata) { + HandleToJson(jdata["physical_device_id"], physical_device_id, json_options); + }); + } + + virtual void + ProcessSetOpaqueAddressCommand(format::HandleId device_id, format::HandleId object_id, uint64_t address) override + { + const JsonOptions& json_options = GetJsonOptions(); + this->writer_->WriteMetaCommand("SetOpaqueAddressCommand", [&](auto& jdata) { + HandleToJson(jdata["device_id"], device_id, json_options); + HandleToJson(jdata["object_id"], object_id, json_options); + FieldToJson(jdata["address"], util::to_hex_variable_width(address), json_options); + }); + } + + virtual void ProcessSetRayTracingShaderGroupHandlesCommand(format::HandleId device_id, + format::HandleId pipeline_id, + size_t data_size, + const uint8_t* data) override + { + const JsonOptions& json_options = GetJsonOptions(); + this->writer_->WriteMetaCommand("SetRayTracingShaderGroupHandleCommand", [&](auto& jdata) { + HandleToJson(jdata["device_id"], device_id, json_options); + HandleToJson(jdata["pipeline_id"], pipeline_id, json_options); + FieldToJson(jdata["data_size"], data_size, json_options); + RepresentBinaryFile( + *(this->writer_), jdata[format::kNameData], "set_raytracing_shader_group_handle.bin", data_size, data); + }); + } + + virtual void + ProcessSetSwapchainImageStateCommand(format::HandleId device_id, + format::HandleId swapchain_id, + uint32_t last_presented_image, + const std::vector& image_state) override + { + const JsonOptions& json_options = GetJsonOptions(); + this->writer_->WriteMetaCommand("SetSwapchainImageStateCommand", [&](auto& jdata) { + HandleToJson(jdata["device_id"], device_id, json_options); + HandleToJson(jdata["swapchain_id"], swapchain_id, json_options); + FieldToJson(jdata["last_presented_image"], last_presented_image, json_options); + FieldToJson(jdata["image_state"], "not available", json_options); + }); + } + + virtual void ProcessBeginResourceInitCommand(format::HandleId device_id, + uint64_t max_resource_size, + uint64_t max_copy_size) override + { + const JsonOptions& json_options = GetJsonOptions(); + this->writer_->WriteMetaCommand("BeginResourceInitCommand", [&](auto& jdata) { + HandleToJson(jdata["device_id"], device_id, json_options); + FieldToJson(jdata["max_resource_size"], max_resource_size, json_options); + FieldToJson(jdata["max_copy_size"], max_copy_size, json_options); + }); + } + + virtual void ProcessEndResourceInitCommand(format::HandleId device_id) override + { + this->writer_->WriteMetaCommand("EndResourceInitCommand", [&](auto& jdata) { + HandleToJson(jdata["device_id"], device_id, GetJsonOptions()); + }); + } + + virtual void ProcessInitBufferCommand(format::HandleId device_id, + format::HandleId buffer_id, + uint64_t data_size, + const uint8_t* data) override + { + const JsonOptions& json_options = GetJsonOptions(); + this->writer_->WriteMetaCommand("InitBufferCommand", [&](auto& jdata) { + HandleToJson(jdata["device_id"], device_id, json_options); + HandleToJson(jdata["buffer_id"], buffer_id, json_options); + FieldToJson(jdata["data_size"], data_size, json_options); + RepresentBinaryFile(*(this->writer_), jdata[format::kNameData], "init_buffer.bin", data_size, data); + }); + } + + virtual void ProcessInitImageCommand(format::HandleId device_id, + format::HandleId image_id, + uint64_t data_size, + uint32_t aspect, + uint32_t layout, + const std::vector& level_sizes, + const uint8_t* data) override + { + const JsonOptions& json_options = GetJsonOptions(); + this->writer_->WriteMetaCommand("InitImageCommand", [&](auto& jdata) { + HandleToJson(jdata["device_id"], device_id, json_options); + HandleToJson(jdata["image_id"], image_id, json_options); + FieldToJson(jdata["data_size"], data_size, json_options); + FieldToJson(jdata["aspect"], aspect, json_options); + FieldToJson(jdata["layout"], layout, json_options); + FieldToJson(jdata["level_sizes"], "not available", json_options); + RepresentBinaryFile(*(this->writer_), jdata[format::kNameData], "init_image.bin", data_size, data); + }); + } + /// @} +}; + +GFXRECON_END_NAMESPACE(decode) +GFXRECON_END_NAMESPACE(gfxrecon) + +#endif // GFXRECON_DECODE_METADATA_JSON_CONSUMER_H diff --git a/framework/decode/pointer_decoder.h b/framework/decode/pointer_decoder.h index 66c027e1e7..6b35ae9340 100644 --- a/framework/decode/pointer_decoder.h +++ b/framework/decode/pointer_decoder.h @@ -244,7 +244,7 @@ class PointerDecoder : public PointerDecoderBase T** GetPointer() { return data_; } - const T** GetPointer() const { return data_; } + const T* const* GetPointer() const { return data_; } size_t GetInnerLength(size_t i) const { diff --git a/framework/decode/vulkan_decoder_base.cpp b/framework/decode/vulkan_decoder_base.cpp index 1d13333737..524af90384 100644 --- a/framework/decode/vulkan_decoder_base.cpp +++ b/framework/decode/vulkan_decoder_base.cpp @@ -294,6 +294,9 @@ void VulkanDecoderBase::DispatchInitImageCommand(format::ThreadId th } } +/// @note Dead code, never called. +/// @note The Vulkan Layer does not encode this and no Vulkan consumers process it. It is one of several DX12-specific +/// metablocks which could have stubbed ({}) versions of their dispatch functions in ApiDecoder. void VulkanDecoderBase::DispatchInitSubresourceCommand(const format::InitSubresourceCommandHeader& command_header, const uint8_t* data) { diff --git a/framework/decode/vulkan_export_json_consumer_base.cpp b/framework/decode/vulkan_export_json_consumer_base.cpp deleted file mode 100644 index 6a3631212d..0000000000 --- a/framework/decode/vulkan_export_json_consumer_base.cpp +++ /dev/null @@ -1,673 +0,0 @@ -/* -** Copyright (c) 2022-2023 LunarG, Inc. -** -** Permission is hereby granted, free of charge, to any person obtaining a -** copy of this software and associated documentation files (the "Software"), -** to deal in the Software without restriction, including without limitation -** the rights to use, copy, modify, merge, publish, distribute, sublicense, -** and/or sell copies of the Software, and to permit persons to whom the -** Software is furnished to do so, subject to the following conditions: -** -** The above copyright notice and this permission notice shall be included in -** all copies or substantial portions of the Software. -** -** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -** IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -** FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -** AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -** LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -** FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -** DEALINGS IN THE SOFTWARE. -*/ - -#include "decode/vulkan_export_json_consumer_base.h" -#include "decode/custom_vulkan_struct_to_json.h" - -#include "util/json_util.h" -#include "util/platform.h" -#include "util/file_path.h" - -GFXRECON_BEGIN_NAMESPACE(gfxrecon) -GFXRECON_BEGIN_NAMESPACE(decode) -using namespace util::platform; - -namespace -{ -/// @brief Convert an annotation to its string representation -/// @note This should be moved into util/to_string.h/cpp after the existing -/// code there that is tied to the deprecated toJSON paths is eliminated. -std::string AnnotationTypeToString(const format::AnnotationType& type) -{ - std::string str; - switch (type) - { - case format::AnnotationType::kUnknown: - str.assign("kUnknown"); - break; - case format::AnnotationType::kText: - str.assign("kText"); - break; - case format::AnnotationType::kJson: - str.assign("kJson"); - break; - case format::AnnotationType::kXml: - str.assign("kXml"); - break; - default: - str.assign("OUT_OF_RANGE_ERROR"); - GFXRECON_LOG_WARNING("format::AnnotationType with out of range value: %lu", - static_cast(type)); - break; - } - return str; -} -} // namespace - -VulkanExportJsonConsumerBase::VulkanExportJsonConsumerBase() : file_(nullptr) {} - -VulkanExportJsonConsumerBase::~VulkanExportJsonConsumerBase() -{ - Destroy(); -} - -void VulkanExportJsonConsumerBase::Initialize(const JsonOptions& options, - const std::string_view gfxrVersion, - const std::string_view vulkanVersion, - const std::string_view inputFilepath) -{ - num_objects_ = 0; - json_options_ = options; - - header_["source-path"] = inputFilepath; - header_["gfxrecon-version"] = std::string(gfxrVersion); - header_["vulkan-version"] = std::string(vulkanVersion); -} - -void VulkanExportJsonConsumerBase::Destroy() -{ - EndFile(); -} - -void VulkanExportJsonConsumerBase::StartFile(FILE* file) -{ - assert(file); - file_ = file; - num_objects_ = 0; - if (json_options_.format == JsonFormat::JSON) - { - FilePuts("[\n", file_); - } - - // Emit the header object as the first line of the file: - WriteBlockStart(); - json_data_["header"] = header_; - WriteBlockEnd(); -} - -void VulkanExportJsonConsumerBase::EndFile() -{ - if (file_ != nullptr) - { - if (json_options_.format == JsonFormat::JSON) - { - FilePuts("\n]\n", file_); - } - else - { - FilePuts("\n", file_); - } - file_ = nullptr; - } -} - -std::string VulkanExportJsonConsumerBase::GenerateFilename(const std::string& filename) -{ - num_files_++; - return std::to_string(num_files_) + "_" + filename; -} - -bool VulkanExportJsonConsumerBase::WriteBinaryFile(const std::string& filename, uint64_t data_size, const uint8_t* data) -{ - FILE* file_output = nullptr; - if (util::platform::FileOpen(&file_output, filename.c_str(), "wb") == 0) - { - util::platform::FileWrite(data, static_cast(data_size), 1, file_output); - util::platform::FileClose(file_output); - return true; - } - return false; -} - -void VulkanExportJsonConsumerBase::ProcessStateBeginMarker(uint64_t frame_number) -{ - WriteStateMarkerToFile("BeginMarker", frame_number); -} - -void VulkanExportJsonConsumerBase::ProcessStateEndMarker(uint64_t frame_number) -{ - WriteStateMarkerToFile("EndMarker", frame_number); -} - -void VulkanExportJsonConsumerBase::ProcessFrameEndMarker(uint64_t frame_number) -{ - WriteFrameMarkerToFile("EndMarker", frame_number); -} - -void VulkanExportJsonConsumerBase::ProcessDisplayMessageCommand(const std::string& message) -{ - WriteMetaCommandToFile("DisplayMessageCommand", - [&](auto& jdata) { FieldToJson(jdata["message"], message, json_options_); }); -} - -void VulkanExportJsonConsumerBase::ProcessFillMemoryCommand(uint64_t memory_id, - uint64_t offset, - uint64_t size, - const uint8_t* data) -{ - WriteMetaCommandToFile("FillMemoryCommand", [&](auto& jdata) { - HandleToJson(jdata["memory_id"], memory_id, json_options_); - FieldToJson(jdata["offset"], offset, json_options_); - FieldToJson(jdata["size"], size, json_options_); - if (json_options_.dump_binaries) - { - std::string filename = GenerateFilename("fill_memory.bin"); - std::string basename = gfxrecon::util::filepath::Join(json_options_.data_sub_dir, filename); - std::string filepath = gfxrecon::util::filepath::Join(json_options_.root_dir, basename); - if (WriteBinaryFile(filepath, size, data)) - { - FieldToJson(jdata["data"], basename, json_options_); - } - else - { - FieldToJson(jdata["data"], "Unable to write file", json_options_); - } - } - else - { - FieldToJson(jdata["data"], "[Binary data]", json_options_); - } - }); -} - -void VulkanExportJsonConsumerBase::ProcessResizeWindowCommand(format::HandleId surface_id, - uint32_t width, - uint32_t height) -{ - WriteMetaCommandToFile("ResizeWindowCommand", [&](auto& jdata) { - HandleToJson(jdata["surface_id"], surface_id, json_options_); - FieldToJson(jdata["width"], width, json_options_); - FieldToJson(jdata["height"], height, json_options_); - }); -} - -void VulkanExportJsonConsumerBase::ProcessResizeWindowCommand2(format::HandleId surface_id, - uint32_t width, - uint32_t height, - uint32_t pre_transform) -{ - WriteMetaCommandToFile("ResizeWindowCommand2", [&](auto& jdata) { - HandleToJson(jdata["surface_id"], surface_id, json_options_); - FieldToJson(jdata["width"], width, json_options_); - FieldToJson(jdata["height"], height, json_options_); - FieldToJson(jdata["pre_transform"], pre_transform, json_options_); - }); -} - -void VulkanExportJsonConsumerBase::ProcessCreateHardwareBufferCommand( - format::HandleId memory_id, - uint64_t buffer_id, - uint32_t format, - uint32_t width, - uint32_t height, - uint32_t stride, - uint64_t usage, - uint32_t layers, - const std::vector& plane_info) -{ - WriteMetaCommandToFile("CreateHardwareBufferCommand", [&](auto& jdata) { - HandleToJson(jdata["memory_id"], memory_id, json_options_); - HandleToJson(jdata["buffer_id"], buffer_id, json_options_); - FieldToJson(jdata["format"], format, json_options_); - FieldToJson(jdata["width"], width, json_options_); - FieldToJson(jdata["height"], height, json_options_); - FieldToJson(jdata["stride"], stride, json_options_); - FieldToJson(jdata["usage"], usage, json_options_); - FieldToJson(jdata["layers"], layers, json_options_); - }); -} - -void VulkanExportJsonConsumerBase::ProcessDestroyHardwareBufferCommand(uint64_t buffer_id) -{ - WriteMetaCommandToFile("DestroyHardwareBufferCommand", - [&](auto& jdata) { HandleToJson(jdata["buffer_id"], buffer_id, json_options_); }); -} - -void VulkanExportJsonConsumerBase::ProcessSetDevicePropertiesCommand( - format::HandleId physical_device_id, - uint32_t api_version, - uint32_t driver_version, - uint32_t vendor_id, - uint32_t device_id, - uint32_t device_type, - const uint8_t pipeline_cache_uuid[format::kUuidSize], - const std::string& device_name) -{ - WriteMetaCommandToFile("SetDevicePropertiesCommand", [&](auto& jdata) { - HandleToJson(jdata["physical_device_id"], physical_device_id, json_options_); - FieldToJson(jdata["api_version"], api_version, json_options_); - FieldToJson(jdata["driver_version"], driver_version, json_options_); - FieldToJson(jdata["vendor_id"], vendor_id, json_options_); - FieldToJson(jdata["device_id"], device_id, json_options_); - FieldToJson(jdata["device_type"], device_type, json_options_); - FieldToJson( - jdata["pipeline_cache_uuid"], uuid_to_string(format::kUuidSize, pipeline_cache_uuid), json_options_); - FieldToJson(jdata["device_name"], device_name, json_options_); - }); -} - -void VulkanExportJsonConsumerBase::ProcessSetDeviceMemoryPropertiesCommand( - format::HandleId physical_device_id, - const std::vector& memory_types, - const std::vector& memory_heaps) -{ - WriteMetaCommandToFile("SetDeviceMemoryPropertiesCommand", [&](auto& jdata) { - HandleToJson(jdata["physical_device_id"], physical_device_id, json_options_); - }); -} - -void VulkanExportJsonConsumerBase::ProcessSetOpaqueAddressCommand(format::HandleId device_id, - format::HandleId object_id, - uint64_t address) -{ - WriteMetaCommandToFile("SetOpaqueAddressCommand", [&](auto& jdata) { - HandleToJson(jdata["device_id"], device_id, json_options_); - HandleToJson(jdata["object_id"], object_id, json_options_); - FieldToJson(jdata["address"], to_hex_variable_width(address), json_options_); - }); -} - -void VulkanExportJsonConsumerBase::ProcessSetRayTracingShaderGroupHandlesCommand(format::HandleId device_id, - format::HandleId pipeline_id, - size_t data_size, - const uint8_t* data) -{ - WriteMetaCommandToFile("SetRayTracingShaderGroupHandleCommand", [&](auto& jdata) { - HandleToJson(jdata["device_id"], device_id, json_options_); - HandleToJson(jdata["pipeline_id"], pipeline_id, json_options_); - FieldToJson(jdata["data_size"], data_size, json_options_); - if (json_options_.dump_binaries) - { - std::string filename = GenerateFilename("set_raytracing_shader_group_handle.bin"); - std::string basename = gfxrecon::util::filepath::Join(json_options_.data_sub_dir, filename); - std::string filepath = gfxrecon::util::filepath::Join(json_options_.root_dir, basename); - if (WriteBinaryFile(filepath, data_size, data)) - { - FieldToJson(jdata["data"], basename, json_options_); - } - else - { - FieldToJson(jdata["data"], "Unable to write file", json_options_); - } - } - else - { - FieldToJson(jdata["data"], "[Binary data]", json_options_); - } - }); -} - -void VulkanExportJsonConsumerBase::ProcessSetSwapchainImageStateCommand( - format::HandleId device_id, - format::HandleId swapchain_id, - uint32_t last_presented_image, - const std::vector& image_state) -{ - WriteMetaCommandToFile("SetSwapchainImageStateCommand", [&](auto& jdata) { - HandleToJson(jdata["device_id"], device_id, json_options_); - HandleToJson(jdata["swapchain_id"], swapchain_id, json_options_); - FieldToJson(jdata["last_presented_image"], last_presented_image, json_options_); - FieldToJson(jdata["image_state"], "not available", json_options_); - }); -} - -void VulkanExportJsonConsumerBase::ProcessBeginResourceInitCommand(format::HandleId device_id, - uint64_t max_resource_size, - uint64_t max_copy_size) -{ - WriteMetaCommandToFile("BeginResourceInitCommand", [&](auto& jdata) { - HandleToJson(jdata["device_id"], device_id, json_options_); - FieldToJson(jdata["max_resource_size"], max_resource_size, json_options_); - FieldToJson(jdata["max_copy_size"], max_copy_size, json_options_); - }); -} - -void VulkanExportJsonConsumerBase::ProcessEndResourceInitCommand(format::HandleId device_id) -{ - WriteMetaCommandToFile("EndResourceInitCommand", - [&](auto& jdata) { HandleToJson(jdata["device_id"], device_id, json_options_); }); -} - -void VulkanExportJsonConsumerBase::ProcessInitBufferCommand(format::HandleId device_id, - format::HandleId buffer_id, - uint64_t data_size, - const uint8_t* data) -{ - WriteMetaCommandToFile("InitBufferCommand", [&](auto& jdata) { - HandleToJson(jdata["device_id"], device_id, json_options_); - HandleToJson(jdata["buffer_id"], buffer_id, json_options_); - FieldToJson(jdata["data_size"], data_size, json_options_); - if (json_options_.dump_binaries) - { - std::string filename = GenerateFilename("init_buffer.bin"); - std::string basename = gfxrecon::util::filepath::Join(json_options_.data_sub_dir, filename); - std::string filepath = gfxrecon::util::filepath::Join(json_options_.root_dir, basename); - if (WriteBinaryFile(filepath, data_size, data)) - { - FieldToJson(jdata["data"], basename, json_options_); - } - else - { - FieldToJson(jdata["data"], "Unable to write file", json_options_); - } - } - else - { - FieldToJson(jdata["data"], "[Binary data]", json_options_); - } - }); -} - -void VulkanExportJsonConsumerBase::ProcessInitImageCommand(format::HandleId device_id, - format::HandleId image_id, - uint64_t data_size, - uint32_t aspect, - uint32_t layout, - const std::vector& level_sizes, - const uint8_t* data) -{ - - WriteMetaCommandToFile("InitImageCommand", [&](auto& jdata) { - HandleToJson(jdata["device_id"], device_id, json_options_); - HandleToJson(jdata["image_id"], image_id, json_options_); - FieldToJson(jdata["data_size"], data_size, json_options_); - FieldToJson(jdata["aspect"], aspect, json_options_); - FieldToJson(jdata["layout"], layout, json_options_); - FieldToJson(jdata["level_sizez"], "not available", json_options_); /// @todo Typo: level_sizes - - if (json_options_.dump_binaries) - { - std::string filename = GenerateFilename("init_image.bin"); - std::string basename = gfxrecon::util::filepath::Join(json_options_.data_sub_dir, filename); - std::string filepath = gfxrecon::util::filepath::Join(json_options_.root_dir, basename); - if (WriteBinaryFile(filepath, data_size, data)) - { - FieldToJson(jdata["data"], basename, json_options_); - } - else - { - FieldToJson(jdata["data"], "Unable to write file", json_options_); - } - } - else - { - FieldToJson(jdata["data"], "[Binary data]", json_options_); - } - }); -} - -void VulkanExportJsonConsumerBase::Process_vkCmdBuildAccelerationStructuresIndirectKHR( - const ApiCallInfo& call_info, - format::HandleId commandBuffer, - uint32_t infoCount, - StructPointerDecoder* pInfos, - PointerDecoder* pIndirectDeviceAddresses, - PointerDecoder* pIndirectStrides, - PointerDecoder* ppMaxPrimitiveCounts) -{ - WriteApiCallToFile(call_info, "vkCmdBuildAccelerationStructuresIndirectKHR", [&](nlohmann::ordered_json& function) { - auto& args = function[NameArgs()]; - HandleToJson(args["commandBuffer"], commandBuffer, json_options_); - FieldToJson(args["infoCount"], infoCount, json_options_); - FieldToJson(args["pInfos"], pInfos, json_options_); - FieldToJson(args["pIndirectDeviceAddresses"], pIndirectDeviceAddresses, json_options_); - FieldToJson(args["pIndirectStrides"], pIndirectStrides, json_options_); - - auto infos = pInfos ? pInfos->GetPointer() : nullptr; - auto max_primitive_counts = ppMaxPrimitiveCounts ? ppMaxPrimitiveCounts->GetPointer() : nullptr; - auto max_primitive_counts_json = args["ppMaxPrimitiveCounts"]; - - for (uint32_t i = 0; i < infoCount; ++i) - { - auto element = max_primitive_counts_json[i]; - FieldToJson(max_primitive_counts_json[i], max_primitive_counts[i], infos[i].geometryCount, json_options_); - } - }); -} - -void VulkanExportJsonConsumerBase::Process_vkCreateShaderModule( - const gfxrecon::decode::ApiCallInfo& call_info, - VkResult returnValue, - gfxrecon::format::HandleId device, - gfxrecon::decode::StructPointerDecoder* pCreateInfo, - gfxrecon::decode::StructPointerDecoder* pAllocator, - gfxrecon::decode::HandlePointerDecoder* pShaderModule) -{ - WriteApiCallToFile(call_info, "vkCreateShaderModule", [&](nlohmann::ordered_json& function) { - FieldToJson(function[NameReturn()], returnValue, json_options_); - auto& args = function[NameArgs()]; - HandleToJson(args["device"], device, json_options_); - FieldToJson(args["pCreateInfo"], pCreateInfo, json_options_); - FieldToJson(args["pAllocator"], pAllocator, json_options_); - HandleToJson(args["pShaderModule"], pShaderModule, json_options_); - - if (json_options_.dump_binaries) - { - uint64_t handle_id = *pShaderModule->GetPointer(); - std::string filename = GenerateFilename("shader_module_" + to_hex_fixed_width(handle_id) + ".bin"); - std::string basename = gfxrecon::util::filepath::Join(json_options_.data_sub_dir, filename); - std::string filepath = gfxrecon::util::filepath::Join(json_options_.root_dir, basename); - auto decoded_value = pCreateInfo->GetPointer(); - - if (WriteBinaryFile(filepath, decoded_value->codeSize, (uint8_t*)decoded_value->pCode)) - { - args["pCreateInfo"]["pCode"] = basename; - } - else - { - args["pCreateInfo"]["pCode"] = "Unable to create file"; - } - } - }); -} - -void VulkanExportJsonConsumerBase::Process_vkGetPipelineCacheData(const ApiCallInfo& call_info, - VkResult returnValue, - format::HandleId device, - format::HandleId pipelineCache, - PointerDecoder* pDataSize, - PointerDecoder* pData) -{ - WriteApiCallToFile(call_info, "vkGetPipelineCacheData", [&](nlohmann::ordered_json& function) { - FieldToJson(function[NameReturn()], returnValue, json_options_); - auto& args = function[NameArgs()]; - HandleToJson(args["device"], device, json_options_); - HandleToJson(args["pipelineCache"], pipelineCache, json_options_); - FieldToJson(args["pDataSize"], pDataSize, json_options_); - if (pData->IsNull()) - { - args["pData"] = nullptr; - } - else if (json_options_.dump_binaries) - { - auto decoded_data = pData->GetPointer(); - auto data_size = pData->GetLength(); - std::string filename = GenerateFilename("pipeline_cache_data.bin"); - std::string basename = gfxrecon::util::filepath::Join(json_options_.data_sub_dir, filename); - std::string filepath = gfxrecon::util::filepath::Join(json_options_.root_dir, basename); - if (WriteBinaryFile(filepath, data_size, decoded_data)) - { - FieldToJson(args["pData"], basename, json_options_); - } - else - { - FieldToJson(args["pData"], "Unable to write file", json_options_); - } - } - else - { - FieldToJson(args["pData"], "[Binary data]", json_options_); - } - }); -} - -void VulkanExportJsonConsumerBase::Process_vkCreatePipelineCache( - const ApiCallInfo& call_info, - VkResult returnValue, - format::HandleId device, - StructPointerDecoder* pCreateInfo, - StructPointerDecoder* pAllocator, - HandlePointerDecoder* pPipelineCache) -{ - WriteApiCallToFile(call_info, "vkCreatePipelineCache", [&](nlohmann::ordered_json& function) { - FieldToJson(function[NameReturn()], returnValue, json_options_); - auto& args = function[NameArgs()]; - HandleToJson(args["device"], device, json_options_); - FieldToJson(args["pCreateInfo"], pCreateInfo, json_options_); - FieldToJson(args["pAllocator"], pAllocator, json_options_); - HandleToJson(args["pPipelineCache"], pPipelineCache, json_options_); - if (json_options_.dump_binaries) - { - auto decoded_data = pCreateInfo->GetPointer(); - std::string filename = GenerateFilename("pipeilne_cache_data.bin"); /// @todo Typo - std::string basename = gfxrecon::util::filepath::Join(json_options_.data_sub_dir, filename); - std::string filepath = gfxrecon::util::filepath::Join(json_options_.root_dir, basename); - if (WriteBinaryFile(filepath, decoded_data->initialDataSize, (uint8_t*)decoded_data->pInitialData)) - { - FieldToJson(args["pCreateInfo"]["pInitialData"], basename, json_options_); - } - else - { - FieldToJson(args["pCreateInfo"]["pInitialData"], "Unable to write file", json_options_); - } - } - else - { - FieldToJson(args["pData"], "[Binary data]", json_options_); - } - }); -} - -void VulkanExportJsonConsumerBase::Process_vkCmdPushConstants(const ApiCallInfo& call_info, - format::HandleId commandBuffer, - format::HandleId layout, - VkShaderStageFlags stageFlags, - uint32_t offset, - uint32_t size, - PointerDecoder* pValues) -{ - WriteApiCallToFile(call_info, "vkCmdPushConstants", [&](nlohmann::ordered_json& function) { - auto& args = function[NameArgs()]; - HandleToJson(args["commandBuffer"], commandBuffer, json_options_); - HandleToJson(args["layout"], layout, json_options_); - FieldToJson(VkShaderStageFlags_t(), args["stageFlags"], stageFlags, json_options_); - FieldToJson(args["offset"], offset, json_options_); - FieldToJson(args["size"], size, json_options_); - FieldToJson(args["pValues"], pValues, json_options_); - if (pValues->IsNull()) - { - args["pValues"] = nullptr; - } - else if (json_options_.dump_binaries) - { - auto decoded_data = pValues->GetPointer(); - auto data_size = pValues->GetLength(); - std::string filename = GenerateFilename("pushconstants.bin"); - std::string basename = gfxrecon::util::filepath::Join(json_options_.data_sub_dir, filename); - std::string filepath = gfxrecon::util::filepath::Join(json_options_.root_dir, basename); - if (WriteBinaryFile(filepath, data_size, decoded_data)) - { - FieldToJson(args["pValues"], basename, json_options_); - } - else - { - FieldToJson(args["pValues"], "Unable to write file", json_options_); - } - } - else - { - FieldToJson(args["pValues"], "[Binary data]", json_options_); - } - }); -} - -void VulkanExportJsonConsumerBase::Process_vkUpdateDescriptorSetWithTemplateKHR( - const ApiCallInfo& call_info, - format::HandleId device, - format::HandleId descriptorSet, - format::HandleId descriptorUpdateTemplate, - DescriptorUpdateTemplateDecoder* pData) -{ - using namespace gfxrecon::util; - - auto& function = WriteApiCallStart(call_info, "vkUpdateDescriptorSetWithTemplateKHR"); - auto& args = function[NameArgs()]; - - HandleToJson(args["device"], device, json_options_); - HandleToJson(args["descriptorSet"], descriptorSet, json_options_); - HandleToJson(args["descriptorUpdateTemplate"], descriptorUpdateTemplate, json_options_); - FieldToJson(args["pData"], pData, json_options_); - - WriteBlockEnd(); -} - -void VulkanExportJsonConsumerBase::WriteBlockStart() -{ - json_data_.clear(); // < Dominates profiling (1/2). - num_objects_++; -} - -nlohmann::ordered_json& VulkanExportJsonConsumerBase::WriteApiCallStart(const ApiCallInfo& call_info, - const std::string& command_name) -{ - using namespace util; - WriteBlockStart(); - - json_data_[NameIndex()] = call_info.index; - - nlohmann::ordered_json& function = json_data_[NameFunction()]; - function[NameName()] = command_name; - function[NameThread()] = call_info.thread_id; - - return function; -} - -void VulkanExportJsonConsumerBase::WriteBlockEnd() -{ - using namespace util::platform; - - if (num_objects_ > 1) - { - FilePuts(json_options_.format == JsonFormat::JSONL ? "\n" : ",\n", file_); - } - // Dominates profiling (2/2): - const std::string block = json_data_.dump(json_options_.format == JsonFormat::JSONL ? -1 : util::kJsonIndentWidth); - FileWriteNoLock(block.data(), sizeof(std::string::value_type), block.length(), file_); - FileFlush(file_); /// @todo Implement a FileFlushNoLock() for all platforms. -} - -void VulkanExportJsonConsumerBase::ProcessAnnotation(uint64_t block_index, - format::AnnotationType type, - const std::string& label, - const std::string& data) -{ - WriteBlockStart(); - json_data_["index"] = block_index; - auto& annotation = json_data_["annotation"]; - annotation["type"] = AnnotationTypeToString(type); - annotation["label"] = label; - annotation["data"] = data; - WriteBlockEnd(); -} - -GFXRECON_END_NAMESPACE(decode) -GFXRECON_END_NAMESPACE(gfxrecon) diff --git a/framework/decode/vulkan_export_json_consumer_base.h b/framework/decode/vulkan_export_json_consumer_base.h deleted file mode 100644 index ba764ee024..0000000000 --- a/framework/decode/vulkan_export_json_consumer_base.h +++ /dev/null @@ -1,299 +0,0 @@ -/* -** Copyright (c) 2022-2023 LunarG, Inc. -** -** Permission is hereby granted, free of charge, to any person obtaining a -** copy of this software and associated documentation files (the "Software"), -** to deal in the Software without restriction, including without limitation -** the rights to use, copy, modify, merge, publish, distribute, sublicense, -** and/or sell copies of the Software, and to permit persons to whom the -** Software is furnished to do so, subject to the following conditions: -** -** The above copyright notice and this permission notice shall be included in -** all copies or substantial portions of the Software. -** -** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -** IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -** FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -** AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -** LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -** FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -** DEALINGS IN THE SOFTWARE. -*/ - -#ifndef GFXRECON_DECODE_VULKAN_EXPORT_JSON_CONSUMER_BASE_H -#define GFXRECON_DECODE_VULKAN_EXPORT_JSON_CONSUMER_BASE_H - -#include "util/defines.h" -#include "annotation_handler.h" -#include "format/platform_types.h" -#include "generated/generated_vulkan_consumer.h" -#include "decode/vulkan_json_util.h" -#include "vulkan/vulkan.h" - -#include -#include - -GFXRECON_BEGIN_NAMESPACE(gfxrecon) -GFXRECON_BEGIN_NAMESPACE(decode) - -class VulkanExportJsonConsumerBase : public VulkanConsumer, public AnnotationHandler -{ - public: - VulkanExportJsonConsumerBase(); - - virtual ~VulkanExportJsonConsumerBase() override; - - void Initialize(const JsonOptions& options, - const std::string_view gfxrVersion, - const std::string_view vulkanVersion, - const std::string_view inputFilepath); - - void Destroy(); - - void StartFile(FILE* file); - - void EndFile(); - - bool IsValid() const { return (file_ != nullptr); } - - virtual void ProcessStateBeginMarker(uint64_t frame_number) override; - - virtual void ProcessStateEndMarker(uint64_t frame_number) override; - - virtual void ProcessFrameEndMarker(uint64_t frame_number) override; - - virtual void ProcessDisplayMessageCommand(const std::string& message) override; - - virtual void - ProcessFillMemoryCommand(uint64_t memory_id, uint64_t offset, uint64_t size, const uint8_t* data) override; - - virtual void ProcessResizeWindowCommand(format::HandleId surface_id, uint32_t width, uint32_t height) override; - - virtual void ProcessResizeWindowCommand2(format::HandleId surface_id, - uint32_t width, - uint32_t height, - uint32_t pre_transform) override; - - virtual void - ProcessCreateHardwareBufferCommand(format::HandleId memory_id, - uint64_t buffer_id, - uint32_t format, - uint32_t width, - uint32_t height, - uint32_t stride, - uint64_t usage, - uint32_t layers, - const std::vector& plane_info) override; - - virtual void ProcessDestroyHardwareBufferCommand(uint64_t buffer_id) override; - - virtual void ProcessSetDevicePropertiesCommand(format::HandleId physical_device_id, - uint32_t api_version, - uint32_t driver_version, - uint32_t vendor_id, - uint32_t device_id, - uint32_t device_type, - const uint8_t pipeline_cache_uuid[format::kUuidSize], - const std::string& device_name) override; - - virtual void - ProcessSetDeviceMemoryPropertiesCommand(format::HandleId physical_device_id, - const std::vector& memory_types, - const std::vector& memory_heaps) override; - - virtual void - ProcessSetOpaqueAddressCommand(format::HandleId device_id, format::HandleId object_id, uint64_t address) override; - - virtual void ProcessSetRayTracingShaderGroupHandlesCommand(format::HandleId device_id, - format::HandleId pipeline_id, - size_t data_size, - const uint8_t* data) override; - - virtual void - ProcessSetSwapchainImageStateCommand(format::HandleId device_id, - format::HandleId swapchain_id, - uint32_t last_presented_image, - const std::vector& image_state) override; - - virtual void ProcessBeginResourceInitCommand(format::HandleId device_id, - uint64_t max_resource_size, - uint64_t max_copy_size) override; - - virtual void ProcessEndResourceInitCommand(format::HandleId device_id) override; - - virtual void ProcessInitBufferCommand(format::HandleId device_id, - format::HandleId buffer_id, - uint64_t data_size, - const uint8_t* data) override; - - virtual void ProcessInitImageCommand(format::HandleId device_id, - format::HandleId image_id, - uint64_t data_size, - uint32_t aspect, - uint32_t layout, - const std::vector& level_sizes, - const uint8_t* data) override; - - void Process_vkCmdBuildAccelerationStructuresIndirectKHR( - const ApiCallInfo& call_info, - format::HandleId commandBuffer, - uint32_t infoCount, - StructPointerDecoder* pInfos, - PointerDecoder* pIndirectDeviceAddresses, - PointerDecoder* pIndirectStrides, - PointerDecoder* ppMaxPrimitiveCounts) override; - - virtual void Process_vkCreateShaderModule( - const gfxrecon::decode::ApiCallInfo& call_info, - VkResult returnValue, - gfxrecon::format::HandleId device, - gfxrecon::decode::StructPointerDecoder* pCreateInfo, - gfxrecon::decode::StructPointerDecoder* pAllocator, - gfxrecon::decode::HandlePointerDecoder* pShaderModule) override; - - virtual void Process_vkGetPipelineCacheData(const ApiCallInfo& call_info, - VkResult returnValue, - format::HandleId device, - format::HandleId pipelineCache, - PointerDecoder* pDataSize, - PointerDecoder* pData) override; - - virtual void Process_vkCreatePipelineCache(const ApiCallInfo& call_info, - VkResult returnValue, - format::HandleId device, - StructPointerDecoder* pCreateInfo, - StructPointerDecoder* pAllocator, - HandlePointerDecoder* pPipelineCache) override; - - virtual void Process_vkCmdPushConstants(const ApiCallInfo& call_info, - format::HandleId commandBuffer, - format::HandleId layout, - VkShaderStageFlags stageFlags, - uint32_t offset, - uint32_t size, - PointerDecoder* pValues) override; - - virtual void Process_vkUpdateDescriptorSetWithTemplateKHR(const ApiCallInfo& call_info, - format::HandleId device, - format::HandleId descriptorSet, - format::HandleId descriptorUpdateTemplate, - DescriptorUpdateTemplateDecoder* pData) override; - - /// @brief Convert annotations, which are simple {type:enum, key:string, value:string} objects. - virtual void ProcessAnnotation(uint64_t block_index, - format::AnnotationType type, - const std::string& label, - const std::string& data) override; - - private: - // Delete the in-memory JSON tree from the last line and count the new object. - // Putting it in one non-inline function allows all the JSON deletion work - // to show up in one place in a profile. - void WriteBlockStart(); - - protected: - // Output the current in-memory json tree to the destination file: - // Putting it in one non-inline function avoids code bloat and allows all - // The JSON->string work to show up in one place in a profile. - void WriteBlockEnd(); - - // Wrappers for json field names allowing change without code gen and - // leaving door open for switching output based on internal state. - constexpr const char* NameFunction() const { return "function"; } - constexpr const char* NameMeta() const { return "meta"; } - constexpr const char* NameState() const { return "state"; } - constexpr const char* NameFrame() const { return "frame"; } - constexpr const char* NameName() const { return "name"; } - constexpr const char* NameIndex() const { return "index"; } - constexpr const char* NameThread() const { return "thread"; } - constexpr const char* NameReturn() const { return "return"; } - constexpr const char* NameArgs() const { return "args"; } - constexpr const char* NameThreadId() const { return "thread"; } - /// A field not present in binary format which identifies the index of each - /// command within its command buffer. - /// @todo Make this field optional. - constexpr const char* NameCommandIndex() const { return "cmd_index"; } - /// A field not present in binary format which identifies the index of each - /// submit in the global order of all submits to all queues as recorded in - /// the binary trace file. - /// @todo Make this field optional. - constexpr const char* NameSubmitIndex() const { return "sub_index"; } - - nlohmann::ordered_json& WriteApiCallStart(const ApiCallInfo& call_info, const std::string& command_name); - - /// A utility wrapper so that manual output functions can provide a lambda which only needs to output - /// the fields unique to their call and this tops and tails with the standard boilerplate, defining it - /// once here. Generated functions avoid the indirection through this. - template - inline void - WriteApiCallToFile(const ApiCallInfo& call_info, const std::string& command_name, ToJsonFunctionType toJsonFunction) - { - nlohmann::ordered_json& function = WriteApiCallStart(call_info, command_name); - toJsonFunction(function); - WriteBlockEnd(); - } - - template - inline void WriteMetaCommandToFile(const std::string& command_name, ToJsonFunctionType to_json_function) - { - using namespace util; - WriteBlockStart(); - - nlohmann::ordered_json& meta = json_data_[NameMeta()]; - meta[NameName()] = command_name; - to_json_function(meta[NameArgs()]); - - WriteBlockEnd(); - } - - inline void WriteStateMarkerToFile(const std::string& marker_type, uint64_t frame_number) - { - using namespace util; - WriteBlockStart(); - - nlohmann::ordered_json& state = json_data_[NameState()]; - state["marker_type"] = marker_type; - state["frame_number"] = frame_number; - - WriteBlockEnd(); - } - - inline void WriteFrameMarkerToFile(const std::string& marker_type, uint64_t frame_number) - { - using namespace util; - WriteBlockStart(); - - nlohmann::ordered_json& frame = json_data_[NameFrame()]; - frame["marker_type"] = marker_type; - frame["frame_number"] = frame_number; - - WriteBlockEnd(); - } - - std::string GenerateFilename(const std::string& filename); - bool WriteBinaryFile(const std::string& filename, uint64_t buffer_size, const uint8_t* data); - - uint32_t GetCommandBufferRecordIndex(format::HandleId command_buffer) - { - uint32_t index = ++rec_cmd_index_[command_buffer]; - return index; - } - - void ResetCommandBufferRecordIndex(format::HandleId command_buffer) { rec_cmd_index_[command_buffer] = 0; } - - JsonOptions json_options_; - uint32_t submit_index_{ 0 }; // index of submissions across the trace - std::unordered_map rec_cmd_index_; - - private: - FILE* file_{ nullptr }; - nlohmann::ordered_json header_; - nlohmann::ordered_json json_data_; - uint32_t num_objects_{ 0 }; - uint32_t num_files_{ 0 }; -}; - -GFXRECON_END_NAMESPACE(decode) -GFXRECON_END_NAMESPACE(gfxrecon) - -#endif // GFXRECON_DECODE_VULKAN_EXPORT_JSON_CONSUMER_BASE_H diff --git a/framework/decode/vulkan_json_consumer_base.cpp b/framework/decode/vulkan_json_consumer_base.cpp new file mode 100644 index 0000000000..ece10c366b --- /dev/null +++ b/framework/decode/vulkan_json_consumer_base.cpp @@ -0,0 +1,229 @@ +/* +** Copyright (c) 2022-2023 LunarG, Inc. +** +** Permission is hereby granted, free of charge, to any person obtaining a +** copy of this software and associated documentation files (the "Software"), +** to deal in the Software without restriction, including without limitation +** the rights to use, copy, modify, merge, publish, distribute, sublicense, +** and/or sell copies of the Software, and to permit persons to whom the +** Software is furnished to do so, subject to the following conditions: +** +** The above copyright notice and this permission notice shall be included in +** all copies or substantial portions of the Software. +** +** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +** IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +** FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +** AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +** LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +** FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +** DEALINGS IN THE SOFTWARE. +*/ + +#include "decode/vulkan_json_consumer_base.h" +#include "decode/custom_vulkan_struct_to_json.h" + +#include "util/json_util.h" +#include "util/platform.h" +#include "util/file_path.h" +#include "util/to_string.h" + +GFXRECON_BEGIN_NAMESPACE(gfxrecon) +GFXRECON_BEGIN_NAMESPACE(decode) + +using namespace util::platform; +using util::JsonOptions; +using util::uuid_to_string; + +VulkanExportJsonConsumerBase::VulkanExportJsonConsumerBase() {} + +VulkanExportJsonConsumerBase::~VulkanExportJsonConsumerBase() +{ + Destroy(); +} + +void VulkanExportJsonConsumerBase::Initialize(JsonWriter* writer, const std::string_view vulkanVersion) +{ + GFXRECON_ASSERT(writer); + writer_ = writer; + + writer->GetHeaderJson()["vulkan-version"] = std::string(vulkanVersion); +} + +void VulkanExportJsonConsumerBase::Destroy() +{ + if (writer_) + { + writer_->Destroy(); + } +} + +std::string VulkanExportJsonConsumerBase::GenerateFilename(const std::string& filename) +{ + return writer_->GenerateFilename(filename); +} + +bool VulkanExportJsonConsumerBase::WriteBinaryFile(const std::string& filename, uint64_t data_size, const uint8_t* data) +{ + return writer_->WriteBinaryFile(filename, data_size, data); +} + +void VulkanExportJsonConsumerBase::Process_vkCmdBuildAccelerationStructuresIndirectKHR( + const ApiCallInfo& call_info, + format::HandleId commandBuffer, + uint32_t infoCount, + StructPointerDecoder* pInfos, + PointerDecoder* pIndirectDeviceAddresses, + PointerDecoder* pIndirectStrides, + PointerDecoder* ppMaxPrimitiveCounts) +{ + const JsonOptions& json_options = GetJsonOptions(); + WriteApiCallToFile(call_info, "vkCmdBuildAccelerationStructuresIndirectKHR", [&](nlohmann::ordered_json& function) { + auto& args = function[NameArgs()]; + HandleToJson(args["commandBuffer"], commandBuffer, json_options); + FieldToJson(args["infoCount"], infoCount, json_options); + FieldToJson(args["pInfos"], pInfos, json_options); + FieldToJson(args["pIndirectDeviceAddresses"], pIndirectDeviceAddresses, json_options); + FieldToJson(args["pIndirectStrides"], pIndirectStrides, json_options); + + auto infos = pInfos ? pInfos->GetPointer() : nullptr; + auto max_primitive_counts = ppMaxPrimitiveCounts ? ppMaxPrimitiveCounts->GetPointer() : nullptr; + auto max_primitive_counts_json = args["ppMaxPrimitiveCounts"]; + + for (uint32_t i = 0; i < infoCount; ++i) + { + auto element = max_primitive_counts_json[i]; + FieldToJson(max_primitive_counts_json[i], max_primitive_counts[i], infos[i].geometryCount, json_options); + } + }); +} + +void VulkanExportJsonConsumerBase::Process_vkCreateShaderModule( + const gfxrecon::decode::ApiCallInfo& call_info, + VkResult returnValue, + gfxrecon::format::HandleId device, + gfxrecon::decode::StructPointerDecoder* pCreateInfo, + gfxrecon::decode::StructPointerDecoder* pAllocator, + gfxrecon::decode::HandlePointerDecoder* pShaderModule) +{ + const JsonOptions& json_options = GetJsonOptions(); + WriteApiCallToFile(call_info, "vkCreateShaderModule", [&](nlohmann::ordered_json& function) { + FieldToJson(function[NameReturn()], returnValue, json_options); + auto& args = function[NameArgs()]; + HandleToJson(args["device"], device, json_options); + FieldToJson(args["pCreateInfo"], pCreateInfo, json_options); + FieldToJson(args["pAllocator"], pAllocator, json_options); + HandleToJson(args["pShaderModule"], pShaderModule, json_options); + + const uint64_t handle_id = *pShaderModule->GetPointer(); + auto decoded_value = pCreateInfo->GetPointer(); + RepresentBinaryFile(*(this->writer_), + args["pCreateInfo"]["pCode"], + "shader_module_" + util::to_hex_fixed_width(handle_id) + ".bin", + decoded_value->codeSize, + (uint8_t*)decoded_value->pCode); + }); +} + +void VulkanExportJsonConsumerBase::Process_vkGetPipelineCacheData(const ApiCallInfo& call_info, + VkResult returnValue, + format::HandleId device, + format::HandleId pipelineCache, + PointerDecoder* pDataSize, + PointerDecoder* pData) +{ + const JsonOptions& json_options = GetJsonOptions(); + WriteApiCallToFile(call_info, "vkGetPipelineCacheData", [&](nlohmann::ordered_json& function) { + FieldToJson(function[NameReturn()], returnValue, json_options); + auto& args = function[NameArgs()]; + HandleToJson(args["device"], device, json_options); + HandleToJson(args["pipelineCache"], pipelineCache, json_options); + FieldToJson(args["pDataSize"], pDataSize, json_options); + if (pData->IsNull()) + { + args["pData"] = nullptr; + } + else + { + RepresentBinaryFile( + *(this->writer_), args["pData"], "pipeline_cache_data.bin", pData->GetLength(), pData->GetPointer()); + } + }); +} + +void VulkanExportJsonConsumerBase::Process_vkCreatePipelineCache( + const ApiCallInfo& call_info, + VkResult returnValue, + format::HandleId device, + StructPointerDecoder* pCreateInfo, + StructPointerDecoder* pAllocator, + HandlePointerDecoder* pPipelineCache) +{ + const JsonOptions& json_options = GetJsonOptions(); + WriteApiCallToFile(call_info, "vkCreatePipelineCache", [&](nlohmann::ordered_json& function) { + FieldToJson(function[NameReturn()], returnValue, json_options); + auto& args = function[NameArgs()]; + HandleToJson(args["device"], device, json_options); + FieldToJson(args["pCreateInfo"], pCreateInfo, json_options); + FieldToJson(args["pAllocator"], pAllocator, json_options); + HandleToJson(args["pPipelineCache"], pPipelineCache, json_options); + RepresentBinaryFile(*(this->writer_), + args["pCreateInfo"]["pInitialData"], + "pipeline_cache_data.bin", + pCreateInfo->GetPointer()->initialDataSize, + reinterpret_cast(pCreateInfo->GetPointer()->pInitialData)); + }); +} + +void VulkanExportJsonConsumerBase::Process_vkCmdPushConstants(const ApiCallInfo& call_info, + format::HandleId commandBuffer, + format::HandleId layout, + VkShaderStageFlags stageFlags, + uint32_t offset, + uint32_t size, + PointerDecoder* pValues) +{ + const JsonOptions& json_options = GetJsonOptions(); + WriteApiCallToFile(call_info, "vkCmdPushConstants", [&](nlohmann::ordered_json& function) { + auto& args = function[NameArgs()]; + HandleToJson(args["commandBuffer"], commandBuffer, json_options); + HandleToJson(args["layout"], layout, json_options); + FieldToJson(VkShaderStageFlags_t(), args["stageFlags"], stageFlags, json_options); + FieldToJson(args["offset"], offset, json_options); + FieldToJson(args["size"], size, json_options); + FieldToJson(args["pValues"], pValues, json_options); + if (pValues->IsNull()) + { + args["pValues"] = nullptr; + } + else + { + RepresentBinaryFile( + *(this->writer_), args["pValues"], "pushconstants.bin", pValues->GetLength(), pValues->GetPointer()); + } + }); +} + +void VulkanExportJsonConsumerBase::Process_vkUpdateDescriptorSetWithTemplateKHR( + const ApiCallInfo& call_info, + format::HandleId device, + format::HandleId descriptorSet, + format::HandleId descriptorUpdateTemplate, + DescriptorUpdateTemplateDecoder* pData) +{ + using namespace gfxrecon::util; + const JsonOptions& json_options = GetJsonOptions(); + + auto& function = WriteApiCallStart(call_info, "vkUpdateDescriptorSetWithTemplateKHR"); + auto& args = function[NameArgs()]; + + HandleToJson(args["device"], device, json_options); + HandleToJson(args["descriptorSet"], descriptorSet, json_options); + HandleToJson(args["descriptorUpdateTemplate"], descriptorUpdateTemplate, json_options); + FieldToJson(args["pData"], pData, json_options); + + WriteBlockEnd(); +} + +GFXRECON_END_NAMESPACE(decode) +GFXRECON_END_NAMESPACE(gfxrecon) diff --git a/framework/decode/vulkan_json_consumer_base.h b/framework/decode/vulkan_json_consumer_base.h new file mode 100644 index 0000000000..a16dbd011b --- /dev/null +++ b/framework/decode/vulkan_json_consumer_base.h @@ -0,0 +1,169 @@ +/* +** Copyright (c) 2022-2023 LunarG, Inc. +** +** Permission is hereby granted, free of charge, to any person obtaining a +** copy of this software and associated documentation files (the "Software"), +** to deal in the Software without restriction, including without limitation +** the rights to use, copy, modify, merge, publish, distribute, sublicense, +** and/or sell copies of the Software, and to permit persons to whom the +** Software is furnished to do so, subject to the following conditions: +** +** The above copyright notice and this permission notice shall be included in +** all copies or substantial portions of the Software. +** +** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +** IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +** FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +** AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +** LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +** FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +** DEALINGS IN THE SOFTWARE. +*/ + +#ifndef GFXRECON_DECODE_VULKAN_JSON_CONSUMER_BASE_H +#define GFXRECON_DECODE_VULKAN_JSON_CONSUMER_BASE_H + +#include "util/output_stream.h" +#include "util/defines.h" +#include "annotation_handler.h" +#include "format/platform_types.h" +#include "format/format_json.h" +#include "generated/generated_vulkan_consumer.h" +#include "decode/json_writer.h" +#include "util/json_util.h" +#include "vulkan/vulkan.h" + +#include +#include + +GFXRECON_BEGIN_NAMESPACE(gfxrecon) +GFXRECON_BEGIN_NAMESPACE(decode) + +class VulkanExportJsonConsumerBase : public VulkanConsumer +{ + public: + VulkanExportJsonConsumerBase(); + + virtual ~VulkanExportJsonConsumerBase() override; + + void Initialize(JsonWriter* writer, const std::string_view vulkanVersion); + + void Destroy(); + + bool IsValid() const { return writer_ && writer_->IsValid(); } + + void Process_vkCmdBuildAccelerationStructuresIndirectKHR( + const ApiCallInfo& call_info, + format::HandleId commandBuffer, + uint32_t infoCount, + StructPointerDecoder* pInfos, + PointerDecoder* pIndirectDeviceAddresses, + PointerDecoder* pIndirectStrides, + PointerDecoder* ppMaxPrimitiveCounts) override; + + virtual void Process_vkCreateShaderModule( + const gfxrecon::decode::ApiCallInfo& call_info, + VkResult returnValue, + gfxrecon::format::HandleId device, + gfxrecon::decode::StructPointerDecoder* pCreateInfo, + gfxrecon::decode::StructPointerDecoder* pAllocator, + gfxrecon::decode::HandlePointerDecoder* pShaderModule) override; + + virtual void Process_vkGetPipelineCacheData(const ApiCallInfo& call_info, + VkResult returnValue, + format::HandleId device, + format::HandleId pipelineCache, + PointerDecoder* pDataSize, + PointerDecoder* pData) override; + + virtual void Process_vkCreatePipelineCache(const ApiCallInfo& call_info, + VkResult returnValue, + format::HandleId device, + StructPointerDecoder* pCreateInfo, + StructPointerDecoder* pAllocator, + HandlePointerDecoder* pPipelineCache) override; + + virtual void Process_vkCmdPushConstants(const ApiCallInfo& call_info, + format::HandleId commandBuffer, + format::HandleId layout, + VkShaderStageFlags stageFlags, + uint32_t offset, + uint32_t size, + PointerDecoder* pValues) override; + + virtual void Process_vkUpdateDescriptorSetWithTemplateKHR(const ApiCallInfo& call_info, + format::HandleId device, + format::HandleId descriptorSet, + format::HandleId descriptorUpdateTemplate, + DescriptorUpdateTemplateDecoder* pData) override; + + protected: + const util::JsonOptions& GetJsonOptions() const { return writer_->GetOptions(); } + + nlohmann::ordered_json& WriteBlockStart() { return writer_->WriteBlockStart(); } + + /// Output the current in-memory json tree to the destination file. + void WriteBlockEnd() { writer_->WriteBlockEnd(); } + + // Wrappers for json field names allowing change without code gen and + // leaving door open for switching output based on internal state. + /// @todo Just use the constants directly: the requirement to be able to have + /// different versions of field names switchable at runtime that I added these + /// as a first step towards during Export PR integration has gone away. + constexpr const char* NameFunction() const { return format::kNameFunction; } + constexpr const char* NameMeta() const { return format::kNameMeta; } + constexpr const char* NameState() const { return format::kNameState; } + constexpr const char* NameFrame() const { return format::kNameFrame; } + constexpr const char* NameName() const { return format::kNameName; } + constexpr const char* NameIndex() const { return format::kNameIndex; } + constexpr const char* NameThread() const { return format::kNameThread; } + constexpr const char* NameReturn() const { return format::kNameReturn; } + constexpr const char* NameArgs() const { return format::kNameArgs; } + /// A field not present in binary format which identifies the index of each + /// command within its command buffer. + /// @todo Make this field optional. + constexpr const char* NameCommandIndex() const { return "cmd_index"; } + /// A field not present in binary format which identifies the index of each + /// submit in the global order of all submits to all queues as recorded in + /// the binary trace file. + /// @todo Make this field optional. + constexpr const char* NameSubmitIndex() const { return "sub_index"; } + + nlohmann::ordered_json& WriteApiCallStart(const ApiCallInfo& call_info, const std::string& command_name) + { + return writer_->WriteApiCallStart(call_info, command_name); + } + + /// A utility wrapper so that manual output functions can provide a lambda which only needs to output + /// the fields unique to their call and this tops and tails with the standard boilerplate, defining it + /// once here. Generated functions avoid the indirection through this. + template + inline void + WriteApiCallToFile(const ApiCallInfo& call_info, const std::string& command_name, ToJsonFunctionType toJsonFunction) + { + nlohmann::ordered_json& function = WriteApiCallStart(call_info, command_name); + toJsonFunction(function); + WriteBlockEnd(); + } + + std::string GenerateFilename(const std::string& filename); + bool WriteBinaryFile(const std::string& filename, uint64_t data_size, const uint8_t* data); + + uint32_t GetCommandBufferRecordIndex(format::HandleId command_buffer) + { + uint32_t index = ++rec_cmd_index_[command_buffer]; + return index; + } + + void ResetCommandBufferRecordIndex(format::HandleId command_buffer) { rec_cmd_index_[command_buffer] = 0; } + + uint32_t submit_index_{ 0 }; // index of submissions across the trace + std::unordered_map rec_cmd_index_; + + JsonWriter* writer_{ nullptr }; +}; + +GFXRECON_END_NAMESPACE(decode) +GFXRECON_END_NAMESPACE(gfxrecon) + +#endif // GFXRECON_DECODE_VULKAN_JSON_CONSUMER_BASE_H diff --git a/framework/decode/vulkan_json_util.h b/framework/decode/vulkan_json_util.h deleted file mode 100644 index 47d16cc04c..0000000000 --- a/framework/decode/vulkan_json_util.h +++ /dev/null @@ -1,99 +0,0 @@ -/* -** Copyright (c) 2022-2023 LunarG, Inc. -** -** Permission is hereby granted, free of charge, to any person obtaining a -** copy of this software and associated documentation files (the "Software"), -** to deal in the Software without restriction, including without limitation -** the rights to use, copy, modify, merge, publish, distribute, sublicense, -** and/or sell copies of the Software, and to permit persons to whom the -** Software is furnished to do so, subject to the following conditions: -** -** The above copyright notice and this permission notice shall be included in -** all copies or substantial portions of the Software. -** -** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -** IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -** FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -** AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -** LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -** FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -** DEALINGS IN THE SOFTWARE. -*/ - -#ifndef GFXRECON_DECODE_VULKAN_JSON_UTIL_H -#define GFXRECON_DECODE_VULKAN_JSON_UTIL_H - -#include "util/defines.h" -#include "format/format.h" -#include "nlohmann/json.hpp" -#include "vulkan/vulkan.h" - -#include - -GFXRECON_BEGIN_NAMESPACE(gfxrecon) -GFXRECON_BEGIN_NAMESPACE(decode) - -enum class JsonFormat -{ - JSON, - JSONL -}; - -struct JsonOptions -{ - JsonFormat format = JsonFormat::JSON; - std::string root_dir; - std::string data_sub_dir; - bool dump_binaries = false; - bool expand_flags = false; - bool hex_handles = false; -}; - -template -std::string to_hex_variable_width(T value) -{ - std::ostringstream stream; - stream << "0x" << std::hex << value; - return stream.str(); -} - -template -std::string to_hex_fixed_width(T value) -{ - std::ostringstream stream; - stream << "0x" << std::setfill('0') << std::setw(sizeof(T) * 2) << std::hex << value; - return stream.str(); -} - -inline std::string uuid_to_string(uint32_t size, const uint8_t* uuid) -{ - std::ostringstream stream; - stream << std::setfill('0') << std::setw(2) << std::hex; - for (size_t i = 0; i < size; ++i) - { - stream << (uint32_t)uuid[i]; - } - return stream.str(); -} - -/// @brief Convert the integer representation of a handle in capture files into -/// either a JSON number or a JSON string with the number represented in -/// hexadecimal. -inline void HandleToJson(nlohmann::ordered_json& jdata, const format::HandleId handle, const JsonOptions& options) -{ - if (options.hex_handles) - { - // A JSON string - jdata = to_hex_variable_width(handle); - } - else - { - // A JSON number - jdata = handle; - } -} - -GFXRECON_END_NAMESPACE(decode) -GFXRECON_END_NAMESPACE(gfxrecon) - -#endif // GFXRECON_DECODE_VULKAN_JSON_UTIL_H diff --git a/framework/format/CMakeLists.txt b/framework/format/CMakeLists.txt index 05240c2d77..995513386f 100644 --- a/framework/format/CMakeLists.txt +++ b/framework/format/CMakeLists.txt @@ -33,6 +33,7 @@ target_sources(gfxrecon_format ${CMAKE_CURRENT_LIST_DIR}/api_call_id.h $<$:${CMAKE_CURRENT_LIST_DIR}/dx12_subobject_types.h> ${CMAKE_CURRENT_LIST_DIR}/format.h + ${CMAKE_CURRENT_LIST_DIR}/format_json.h ${CMAKE_CURRENT_LIST_DIR}/format_util.h ${CMAKE_CURRENT_LIST_DIR}/format_util.cpp ${CMAKE_CURRENT_LIST_DIR}/platform_types.h diff --git a/framework/format/format_json.h b/framework/format/format_json.h new file mode 100644 index 0000000000..baef199a82 --- /dev/null +++ b/framework/format/format_json.h @@ -0,0 +1,70 @@ +/* +** Copyright (c) 2023 Valve Corporation +** Copyright (c) 2023 LunarG, Inc. +** +** Permission is hereby granted, free of charge, to any person obtaining a +** copy of this software and associated documentation files (the "Software"), +** to deal in the Software without restriction, including without limitation +** the rights to use, copy, modify, merge, publish, distribute, sublicense, +** and/or sell copies of the Software, and to permit persons to whom the +** Software is furnished to do so, subject to the following conditions: +** +** The above copyright notice and this permission notice shall be included in +** all copies or substantial portions of the Software. +** +** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +** IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +** FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +** AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +** LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +** FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +** DEALINGS IN THE SOFTWARE. +*/ +/// @file Definitions used by the JSON representation of the capture file format. + +#ifndef GFXRECON_FORMAT_FORMAT_JSON_H +#define GFXRECON_FORMAT_FORMAT_JSON_H +#include "format.h" +#include "util/defines.h" + +GFXRECON_BEGIN_NAMESPACE(gfxrecon) +GFXRECON_BEGIN_NAMESPACE(format) + +/// @defgroup JSONFieldNames The names of fields used in the top-level structure +/// of the JSON representation of capture files +/// @{ +constexpr const char* kNameMeta{ "meta" }; +constexpr const char* kNameState{ "state" }; +constexpr const char* kNameFrame{ "frame" }; +constexpr const char* kNameFunction{ "function" }; +constexpr const char* kNameMethod{ "method" }; +constexpr const char* kNameObject{ "object" }; +constexpr const char* kNameObjectType{ "type" }; +constexpr const char* kNameObjectHandle{ "handle" }; +constexpr const char* kNameName{ "name" }; +constexpr const char* kNameIndex{ "index" }; +constexpr const char* kNameThread{ "thread" }; +constexpr const char* kNameReturn{ "return" }; +constexpr const char* kNameArgs{ "args" }; +constexpr const char* kNameData{ "data" }; +/// @} + +constexpr const char* kValBinary{ "[Binary data]" }; +constexpr const char* kValWriteFailed{ "[Unable to write file]" }; + +/// @defgroup JSONMetaNames The names of fields used to convey out of band information like warnings and errors +/// generated during conversion but not present in binary file. +/// @{ +constexpr const char* kNameDebug{ "DEBUG" }; +constexpr const char* kNameInfo{ "INFO" }; +constexpr const char* kNameWarning{ "WARNING" }; +constexpr const char* kNameError{ "ERROR" }; +/// @} + +/// The thread ID to use when the thread ID is not known. +constexpr format::ThreadId kNameUnknownThreadId{ gfxrecon::format::ThreadId(-1) }; + +GFXRECON_END_NAMESPACE(format) +GFXRECON_END_NAMESPACE(gfxrecon) + +#endif // GFXRECON_FORMAT_FORMAT_JSON_H diff --git a/framework/generated/base_generators/reformat_code.py b/framework/generated/base_generators/reformat_code.py index 183585e948..c7b446de26 100644 --- a/framework/generated/base_generators/reformat_code.py +++ b/framework/generated/base_generators/reformat_code.py @@ -55,13 +55,23 @@ def indent_cpp_code(code, left_level=0, indent=CPP_DEFAULT_INDENT): return formatted_code def format_cpp_code(code, left_level=0, indent=CPP_DEFAULT_INDENT): + """! Fixes the indenting of a block of code in a curlies-based language and removes + newline characters before and after. + If you want a newline after your code, append it. + """ formatted_code = indent_cpp_code(code, left_level, indent) - formatted_code = remove_trailing_empty_lines(formatted_code) + formatted_code = remove_trailing_newlines(formatted_code) formatted_code = remove_leading_empty_lines(formatted_code) return formatted_code def remove_leading_empty_lines(code): return code.lstrip('\n') +def remove_trailing_newlines(code): + return code.rstrip('\n') + def remove_trailing_empty_lines(code): - return code.rstrip('\n') \ No newline at end of file + modified = code.rstrip('\n') + if(len(modified) > 0 and code[-1] == '\n'): + modified += '\n' + return modified diff --git a/framework/generated/dx12_generators/dx12_ascii_consumer_body_generator.py b/framework/generated/dx12_generators/dx12_ascii_consumer_body_generator.py deleted file mode 100644 index 9cb23db965..0000000000 --- a/framework/generated/dx12_generators/dx12_ascii_consumer_body_generator.py +++ /dev/null @@ -1,223 +0,0 @@ -#!/usr/bin/env python3 -# -# Copyright (c) 2021 LunarG, Inc. -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to -# deal in the Software without restriction, including without limitation the -# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or -# sell copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS -# IN THE SOFTWARE. - -import json, inspect -from base_generator import write -from dx12_base_generator import Dx12BaseGenerator, Dx12GeneratorOptions -from dx12_ascii_consumer_header_generator import Dx12AsciiConsumerHeaderGenerator, Dx12AsciiConsumerHeaderGeneratorOptions - -class Dx12AsciiBodyGeneratorOptions(Dx12AsciiConsumerHeaderGeneratorOptions): - - def __init__( - self, - constructor_args, - # Path to JSON file listing Vulkan API calls to override on capture. - ascii_overrides=None, - # Path to JSON file listing apicalls and structs to ignore. - blacklists=None, - # Path to JSON file listing platform (WIN32, X11, etc.) defined types. - platform_types=None, - filename=None, - directory='.', - prefix_text='', - protect_file=False, - protect_feature=True - ): - Dx12AsciiConsumerHeaderGeneratorOptions.__init__( - self, constructor_args, blacklists, platform_types, filename, - directory, prefix_text, protect_file, protect_feature - ) - self.ascii_overrides = ascii_overrides - - -class Dx12AsciiConsumerBodyGenerator(Dx12AsciiConsumerHeaderGenerator): - - ASCII_OVERRIDES = {} - - def beginFile(self, genOpts): - # The following functions/methods require custom handling - # @todo It would be cleaner to make a custom JSON listing for these as: - # framework\generated\dx12_generators\blacklists_ascii.json - self.APICALL_BLACKLIST.append('D3D12CreateRootSignatureDeserializer') - self.METHODCALL_BLACKLIST.append('ID3D12RootSignatureDeserializer_GetRootSignatureDesc') - self.METHODCALL_BLACKLIST.append('ID3D12VersionedRootSignatureDeserializer_GetUnconvertedRootSignatureDesc') - self.METHODCALL_BLACKLIST.append('ID3D12Heap_GetDesc') - self.METHODCALL_BLACKLIST.append('ID3D12Resource_GetDesc') - self.METHODCALL_BLACKLIST.append('ID3D12DescriptorHeap_GetDesc') - self.METHODCALL_BLACKLIST.append('ID3D12DescriptorHeap_GetCPUDescriptorHandleForHeapStart') - self.METHODCALL_BLACKLIST.append('ID3D12DescriptorHeap_GetGPUDescriptorHandleForHeapStart') - self.METHODCALL_BLACKLIST.append('ID3D12CommandQueue_GetDesc') - self.METHODCALL_BLACKLIST.append('ID3D12Device_GetResourceAllocationInfo') - self.METHODCALL_BLACKLIST.append('ID3D12Device_GetCustomHeapProperties') - self.METHODCALL_BLACKLIST.append('ID3D12Device_GetAdapterLuid') - self.METHODCALL_BLACKLIST.append('ID3D12ProtectedResourceSession_GetDesc') - self.METHODCALL_BLACKLIST.append('ID3D12Device4_GetResourceAllocationInfo1') - self.METHODCALL_BLACKLIST.append('ID3D12GraphicsCommandList_ResourceBarrier') - self.METHODCALL_BLACKLIST.append('ID3D12InfoQueue_GetMessage') - self.METHODCALL_BLACKLIST.append('ID3D12InfoQueue_GetStorageFilter') - self.METHODCALL_BLACKLIST.append('ID3D12InfoQueue_GetRetrievalFilter') - self.METHODCALL_BLACKLIST.append('ID3D12Device_CreateRootSignature') - self.METHODCALL_BLACKLIST.append('ID3D12CommandList_GetType') - self.METHODCALL_BLACKLIST.append('ID3D12Device1_CreatePipelineLibrary') - Dx12AsciiConsumerHeaderGenerator.beginFile(self, genOpts) - if genOpts.ascii_overrides: - overrides = json.loads(open(genOpts.ascii_overrides, 'r').read()) - self.ASCII_OVERRIDES = overrides - - def write_include(self): - write('#include "generated_dx12_ascii_consumer.h"', file=self.outFile) - write('#include "generated_dx12_enum_to_string.h"', file=self.outFile) - write('#include "generated_dx12_struct_to_string.h"', file=self.outFile) - write('#include "decode/custom_dx12_ascii_consumer.h"', file=self.outFile) - write('#include "decode/dx12_enum_util.h"', file=self.outFile) - write('#include "util/interception/injection.h"', file=self.outFile) - write('#include "util/to_string.h"', file=self.outFile) - self.newline() - - def generate_feature(self): - Dx12BaseGenerator.generate_feature(self) - self.write_dx12_consumer_class('Ascii') - - def get_decoder_class_define(self, consumer_type): - declaration = '' - indent = '' - function_class = 'Dx12{}Consumer::'.format(consumer_type) - class_end = '' - return (declaration, indent, function_class, class_end) - - def get_consumer_function_body(self, class_name, method_info, return_type): - class_method_name = method_info['name'] - code = '\n' - - # Work out the statement to generate the value to return: - returned = 'std::string()' - if not 'void' in return_type: - return_parts = return_type.split() - returned_type = return_parts[0] - # If we have an enum or other scalar we can pipe straight through to a single-arg converter: - # @todo HANDLE -> 64 bit var length hex - if self.is_struct(returned_type) or self.is_union(returned_type): - # Deprecated mechanism for struct cases which need to know their tab depth: - returned = 'DX12ReturnValueToString(return_value, to_string_flags_, tab_count, tab_size)' - else: - returned = 'ToString(return_value)' - - code += inspect.cleandoc(''' - {{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{{}}; - writeApiCallToFileInfo.pObjectTypeName = {0}; - writeApiCallToFileInfo.handleId = {1}; - writeApiCallToFileInfo.pFunctionName = "{2}"; - std::string returnValue = {3}; - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - {{ - '''.format( - '"' + class_name + '"' if class_name else 'nullptr', - 'object_id' if class_name else '0', class_method_name, - returned)) - code += '\n' - code += self.make_consumer_func_body(class_name, method_info, return_type) - code += inspect.cleandoc(''' - } - ); - } - ''') - return code - - def make_consumer_func_body(self, class_name, method_info, return_type): - code = '' - - # Handle function arguments - for parameter in method_info['parameters']: - value = self.get_value_info(parameter) - - # Start with a static_assert() so that if any values make it through the logic - # below without being handled the generated code will fail to compile - to_string = 'static_assert(false, "Unhandled value in `dx12_ascii_consumer_body_generator.py`")' - - # StringDecoder and WStringDecoder require custom handling - if 'LPCSTR' in value.full_type or 'LPCWSTR' in value.full_type: - to_string = 'StringDecoderToString({0})' - - # There's some repeated code in this if/else block...It's easier (imo) to reason - # about each case when they're all listed explictly - elif value.is_pointer: - if value.is_array: - if self.is_handle(value.base_type): - to_string = 'static_assert(false, "Unhandled dynamic array of handles in `dx12_ascii_consumer_body_generator.py`")' - elif self.is_struct(value.base_type): - to_string = 'StructPointerDecoderArrayToString({1}, {0}, to_string_flags_, tab_count, tab_size)' - elif self.is_enum(value.base_type): - to_string = 'EnumPointerDecoderArrayToString({1}, {0}, to_string_flags_, tab_count, tab_size)' - else: - to_string = 'PointerDecoderArrayToString({1}, {0}, to_string_flags_, tab_count, tab_size)' - else: - if self.is_handle(value.base_type): - to_string = 'static_assert(false, "Unhandled pointer to handle in `dx12_ascii_consumer_body_generator.py`")' - elif self.is_struct(value.base_type): - to_string = 'StructPointerDecoderToString({0}, to_string_flags_, tab_count, tab_size)' - elif self.is_enum(value.base_type): - to_string = 'EnumPointerDecoderToString({0})' - elif self.get_category_type(value.base_type) == 'class' or value.base_type == 'void': - if self.is_com_outptr(method_info['name'], value.name, value.full_type): - to_string = 'OutPtrDecoderToString({0})' - else: - if(value.full_type.find('void') != -1 and value.pointer_count == 2): - to_string = 'PointerDecoderToString({0})' - else: - to_string = 'HandleIdToString({0})' - else: - to_string = 'PointerDecoderToString({0}, to_string_flags_, tab_count, tab_size)' - else: - if value.is_array: - if self.is_handle(value.base_type): - to_string = 'static_assert(false, "Unhandled static array of handles in `dx12_ascii_consumer_body_generator.py`")' - elif self.is_struct(value.base_type): - to_string = 'static_assert(false, "Unhandled static array of structures in `dx12_ascii_consumer_body_generator.py`")' - elif self.is_enum(value.base_type): - to_string = 'static_assert(false, "Unhandled static array of enums in `dx12_ascii_consumer_body_generator.py`")' - else: - to_string = 'PointerDecoderArrayToString({1}, {0}, to_string_flags_, tab_count, tab_size)' - else: - if self.is_handle(value.base_type): - to_string = 'static_assert(false, "Unhandled handle in `dx12_ascii_consumer_body_generator.py`")' - elif self.is_struct(value.base_type): - to_string = 'ToString(*{0}.decoded_value, to_string_flags_, tab_count, tab_size)' - elif self.is_enum(value.base_type): - to_string = 'Quote(ToString({0}))' - else: - to_string = 'ToString({0}, to_string_flags_, tab_count, tab_size)' - - first_field = 'true' if not code else 'false' - value_name = ('[out]' if self.is_output(value) else '') + value.name - array_length = value.array_length - if array_length and type(array_length) == str and array_length[0] == '*': - array_length = array_length.replace('* ', '') - to_string = to_string.format(value.name, array_length) - code += ' FieldToString(str_strm, {0}, "{1}", to_string_flags_, tab_count, tab_size, {2});\n'.format(first_field, value_name, to_string) - return code diff --git a/framework/generated/dx12_generators/dx12_consumer_header_generator.py b/framework/generated/dx12_generators/dx12_consumer_header_generator.py index 94b9d0796a..778bd54255 100644 --- a/framework/generated/dx12_generators/dx12_consumer_header_generator.py +++ b/framework/generated/dx12_generators/dx12_consumer_header_generator.py @@ -90,7 +90,7 @@ def write_include(self): ) write(code, file=self.outFile) - def get_consumer_function_body(self, class_name, method_info, return_type): + def get_consumer_function_body(self, class_name, method_info, return_type, return_value): return '{}' def change_param_type(self, param): @@ -110,6 +110,7 @@ def get_consumer_function( class_method_name = class_name + '_' + class_method_name rtn_type = method_info['rtnType'] + return_value = None if rtn_type.find('void ') == -1 or rtn_type.find('void *') != -1: rtn_type1 = self.clean_type_define(rtn_type) return_value = self.get_return_value_info( @@ -178,7 +179,7 @@ def get_consumer_function( _class_name, method_info['name'], parameters, - self.get_consumer_function_body(class_name, method_info, rtn_type)) + self.get_consumer_function_body(class_name, method_info, rtn_type, return_value)) return code def write_constructor_class(self, consumer_type): diff --git a/framework/generated/dx12_generators/dx12_enum_to_json_header_generator.py b/framework/generated/dx12_generators/dx12_enum_to_json_header_generator.py new file mode 100644 index 0000000000..b960024e61 --- /dev/null +++ b/framework/generated/dx12_generators/dx12_enum_to_json_header_generator.py @@ -0,0 +1,124 @@ +#!/usr/bin/env python3 +# +# Copyright (c) 2021-2023 LunarG, Inc. +# Copyright (c) 2023 Valve Corporation +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to +# deal in the Software without restriction, including without limitation the +# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or +# sell copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS +# IN THE SOFTWARE. + +import sys +from base_generator import write +from dx12_base_generator import Dx12BaseGenerator +from dx12_enum_to_string_header_generator import Dx12EnumToStringHeaderGenerator +from reformat_code import format_cpp_code + +class Dx12EnumToJsonHeaderGenerator(Dx12BaseGenerator): + """Generates C++ functions which build JSON representations of enums.""" + + BITS_LIST = Dx12EnumToStringHeaderGenerator.BITS_LIST + + def __init__( + self, + source_dict, + dx12_prefix_strings, + err_file=sys.stderr, + warn_file=sys.stderr, + diag_file=sys.stdout + ): + Dx12BaseGenerator.__init__( + self, source_dict, dx12_prefix_strings, err_file, warn_file, + diag_file + ) + + def beginFile(self, gen_opts): + """Method override.""" + Dx12BaseGenerator.beginFile(self, gen_opts) + + code = format_cpp_code(''' + /// @file Functions to convert enums to JSON. While trivial these do tidy up + /// the FieldToJsons of structs which use them and the JSON consumer too. + /// They also mean that generators don't need separate cases for enums. + + #include "util/json_util.h" + #include "generated/generated_dx12_enum_to_string.h" + #include "util/defines.h" + #include "util/to_string.h" + #include "format/platform_types.h" + + GFXRECON_BEGIN_NAMESPACE(gfxrecon) + GFXRECON_BEGIN_NAMESPACE(util) + ''') + write(code, file=self.outFile) + self.newline() + + def generate_feature(self): + enum_dict = self.source_dict['enum_dict'] + enum_prototypes = '' + flag_prototypes = '' + + for k, v in enum_dict.items(): + # Generate enum handler for all enums + enum_prototypes += format_cpp_code('''inline void FieldToJson(nlohmann::ordered_json& jdata, const {0} value, const JsonOptions& options = JsonOptions()) + {{ + FieldToJson(jdata, ToString(value), options); + }} + inline void FieldToJson(nlohmann::ordered_json& jdata, const {0}* pEnum, const JsonOptions& options = JsonOptions()) + {{ + FieldToJson(jdata, *pEnum, options); + }} + '''.format(k)) + enum_prototypes += '\n\n' + + # Generate flags handler for enums identified as bitmasks + for bits in self.BITS_LIST: + if k.find(bits) >= 0: + flag_prototypes += format_cpp_code('''inline void FieldToJson_{0}(nlohmann::ordered_json& jdata, const uint32_t flags, const JsonOptions& options = JsonOptions()) + {{ + std::string representation; + if (!options.expand_flags) + {{ + representation = to_hex_fixed_width(flags); + }} + else + {{ + representation = ToString_{0}(flags); + }} + FieldToJson(jdata, representation, options); + }} + \n'''.format(k)) + flag_prototypes += '\n' + + write(enum_prototypes, file=self.outFile) + write(flag_prototypes, file=self.outFile) + + write(format_cpp_code(''' + // IID struct-as-enum special case: + inline void FieldToJson(nlohmann::ordered_json& jdata, const IID& value, const JsonOptions& options = JsonOptions()) + { + FieldToJson(jdata, ToString(value), options); + } + '''), file=self.outFile) + + def endFile(self): + """Method override.""" + self.newline() + write('GFXRECON_END_NAMESPACE(util)', file=self.outFile) + write('GFXRECON_END_NAMESPACE(gfxrecon)', file=self.outFile) + + # Finish processing in superclass + Dx12BaseGenerator.endFile(self) diff --git a/framework/generated/dx12_generators/dx12_enum_to_string_body_generator.py b/framework/generated/dx12_generators/dx12_enum_to_string_body_generator.py index 7606e272dc..a17385d481 100644 --- a/framework/generated/dx12_generators/dx12_enum_to_string_body_generator.py +++ b/framework/generated/dx12_generators/dx12_enum_to_string_body_generator.py @@ -1,6 +1,7 @@ #!/usr/bin/env python3 # -# Copyright (c) 2021 LunarG, Inc. +# Copyright (c) 2023 Valve Corporation +# Copyright (c) 2021, 2023 LunarG, Inc. # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to @@ -23,14 +24,12 @@ import sys from base_generator import write from dx12_base_generator import Dx12BaseGenerator +from dx12_enum_to_string_header_generator import Dx12EnumToStringHeaderGenerator # For the list of substrings in bitflag class Dx12EnumToStringBodyGenerator(Dx12BaseGenerator): """TODO : Generates C++ functions responsible for Convert to texts.""" - BITS_LIST = [ - '_FLAGS', '_STATES', '_STATUS', 'D3D12_SHADER_MIN_PRECISION_SUPPORT', - 'D3D12_FORMAT_SUPPORT1', 'D3D12_FORMAT_SUPPORT2' - ] + BITS_LIST = Dx12EnumToStringHeaderGenerator.BITS_LIST def __init__( self, @@ -59,24 +58,24 @@ def beginFile(self, gen_opts): def generate_feature(self): for k, v in self.source_dict['enum_dict'].items(): # Generate enum handler for all enums - body = 'std::string ToString(const {0}& value)\n' + body = 'std::string ToString(const {0} value)\n' body += '{{\n' + body += ' const char* ret = "Unhandled {0}";\n' body += ' switch (value) {{\n' processed_values = set() for value in v['values']: if not value['value'] in processed_values: - body += ' case {0}: return "{0}";\n'.format(value['name']) + body += ' case {0}: ret = "{0}"; break;\n'.format(value['name']) processed_values.add(value['name']) processed_values.add(value['value']) - body += ' default: break;\n' body += ' }}\n' - body += ' return "Unhandled {0}";\n' + body += ' return ret;\n' body += '}}\n' # Generate flags handler for enums identified as bitmasks for bits in self.BITS_LIST: if k.find(bits) >= 0: - body += '\nstd::string ToString_{0}(uint32_t flags)\n' + body += '\nstd::string ToString_{0}(const uint32_t flags)\n' body += '{{\n' body += ' return BitmaskToString<{0}>(flags);\n' body += '}}\n' @@ -90,14 +89,13 @@ def generate_feature(self): if 'DEFINE_GUID' in m['type']: index = m['type'].find(',') iids.append(m['type'][len('DEFINE_GUID ( '):index]) - body = 'template <> std::string ToString(const IID& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) { return ToString(obj); }\n' - body += 'std::string ToString(const IID& iid)\n' + body = 'std::string ToString(const IID& iid)\n' body += '{\n' if not "IID_IUnknown" in iids: iids.append("IID_IUnknown") for iid in iids: - body += ' if (iid == {0}) return "\\\"{0}\\\"";\n'.format(iid) - body += ' return "\\\"Invalid IID\\\"";\n' + body += ' if (iid == {0}) return "{0}";\n'.format(iid) + body += ' return "Invalid IID";\n' body += '}\n' write(body, file=self.outFile) diff --git a/framework/generated/dx12_generators/dx12_enum_to_string_header_generator.py b/framework/generated/dx12_generators/dx12_enum_to_string_header_generator.py index 6f7955aa26..99386fd9d5 100644 --- a/framework/generated/dx12_generators/dx12_enum_to_string_header_generator.py +++ b/framework/generated/dx12_generators/dx12_enum_to_string_header_generator.py @@ -1,6 +1,7 @@ #!/usr/bin/env python3 # -# Copyright (c) 2021 LunarG, Inc. +# Copyright (c) 2023 Valve Corporation +# Copyright (c) 2021, 2023 LunarG, Inc. # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to @@ -20,13 +21,17 @@ # FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS # IN THE SOFTWARE. -import sys +import sys, inspect from base_generator import write from dx12_base_generator import Dx12BaseGenerator class Dx12EnumToStringHeaderGenerator(Dx12BaseGenerator): """TODO : Generates C++ functions responsible for Convert to texts.""" + ## A list of suffix substrings which appear at the ends of the names of bitflag enums. + ## If a name contains one of these substrings, then a function will be generated to convert + ## a value of that enum type to a string concatenating all the flags it represents. + ## Like this: "DX12_ENUMX_ENUMERANTY|DX12_ENUMX_ENUMERANTZ|...". BITS_LIST = [ '_FLAGS', '_STATES', '_STATUS', 'D3D12_SHADER_MIN_PRECISION_SUPPORT', 'D3D12_FORMAT_SUPPORT1', 'D3D12_FORMAT_SUPPORT2' @@ -59,7 +64,7 @@ def generate_feature(self): enum_dict = self.source_dict['enum_dict'] for k, v in enum_dict.items(): # Generate enum handler for all enums - body = 'std::string ToString(const {0}& value);' + body = 'std::string ToString({0} value);' # Generate flags handler for enums identified as bitmasks for bits in self.BITS_LIST: @@ -69,7 +74,7 @@ def generate_feature(self): # Generate REFIID handler body = 'std::string ToString(const IID& riid);' - body += '\ntemplate <> std::string ToString(const GUID& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize);' + body += '\ninline std::string ToString(const GUID& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize){ return ToString(obj); }' write(body, file=self.outFile) def write_include(self): @@ -81,7 +86,9 @@ def write_include(self): code += '#include "format/platform_types.h"\n' code += '#include "util/defines.h"\n' code += '#include "util/to_string.h"\n' + write(code, file=self.outFile) + self.newline() def endFile(self): """Method override.""" diff --git a/framework/generated/dx12_generators/dx12_json_common_generator.py b/framework/generated/dx12_generators/dx12_json_common_generator.py new file mode 100644 index 0000000000..92b3ccf69b --- /dev/null +++ b/framework/generated/dx12_generators/dx12_json_common_generator.py @@ -0,0 +1,66 @@ +#!/usr/bin/env python3 +# +# Copyright (c) 2023 LunarG, Inc. +# Copyright (c) 2023 Valve Corporation +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to +# deal in the Software without restriction, including without limitation the +# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or +# sell copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS +# IN THE SOFTWARE. + +from dx12_base_generator import Dx12BaseGenerator, Dx12GeneratorOptions +from dx12_enum_to_string_header_generator import Dx12EnumToStringHeaderGenerator # For the list of substrings in bitflag enums. + +# returns true if any of the strings in the list appear at the end of the string. +def ends_with_any(string, suffixes): + for suffix in suffixes: + if string.endswith(suffix): + return True + return False + +# Base class with features shared by multiple DX12 JSON Generators. +class Dx12JsonCommonGenerator(Dx12BaseGenerator): + + BIT_FLAG_SUFFIXES = Dx12EnumToStringHeaderGenerator.BITS_LIST; + + ## A set of strings which are the types of arguments and struct fields which should be output as hexadecimal. + ## @todo Expand this to include more types. + HEX_TYPES = {"D3D12_GPU_VIRTUAL_ADDRESS"} + + ## @param value_info A ValueInfo object from base_generator.py. + def is_raw_bitflags(self, value_info): + if (not ends_with_any(value_info.base_type, self.BIT_FLAG_SUFFIXES)) and value_info.base_type.upper().startswith('UINT') and value_info.name.upper().endswith("MASK"): + return True + return False + + ## @param value_info A ValueInfo object from base_generator.py. + def choose_field_to_json_name(self, value_info): + if value_info != None: + if value_info.base_type in self.HEX_TYPES: + return "FieldToJsonAsHex" + if "BOOL" in value_info.base_type: + return "Bool32ToJson" + if self.is_handle(value_info.base_type): + return "HandleToJson" + if("HRESULT" in value_info.base_type): + return "HresultToJson" + if ends_with_any(value_info.base_type, self.BIT_FLAG_SUFFIXES): + return "FieldToJson_" + value_info.base_type + if self.is_raw_bitflags(value_info): + return "FieldToJsonAsFixedWidthBinary" + return "FieldToJson" + pass + diff --git a/framework/generated/dx12_generators/dx12_json_consumer_body_generator.py b/framework/generated/dx12_generators/dx12_json_consumer_body_generator.py new file mode 100644 index 0000000000..767e87c5d4 --- /dev/null +++ b/framework/generated/dx12_generators/dx12_json_consumer_body_generator.py @@ -0,0 +1,183 @@ +#!/usr/bin/env python3 +# +# Copyright (c) 2021, 2023 LunarG, Inc. +# Copyright (c) 2023 Valve Corporation +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to +# deal in the Software without restriction, including without limitation the +# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or +# sell copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS +# IN THE SOFTWARE. + +import json +from base_generator import write +from dx12_base_generator import Dx12BaseGenerator, Dx12GeneratorOptions +from dx12_json_consumer_header_generator import Dx12JsonConsumerHeaderGenerator, Dx12JsonConsumerHeaderGeneratorOptions +from dx12_json_common_generator import Dx12JsonCommonGenerator +from reformat_code import format_cpp_code, remove_leading_empty_lines + + +class Dx12JsonBodyGeneratorOptions(Dx12JsonConsumerHeaderGeneratorOptions): + + def __init__( + self, + constructor_args, + # Path to JSON file listing Vulkan API calls to override on capture. + json_overrides=None, + # Path to JSON file listing apicalls and structs to ignore. + blacklists=None, + # Path to JSON file listing platform (WIN32, X11, etc.) defined types. + platform_types=None, + filename=None, + directory='.', + prefix_text='', + protect_file=False, + protect_feature=True + ): + Dx12JsonConsumerHeaderGeneratorOptions.__init__( + self, constructor_args, blacklists, platform_types, filename, + directory, prefix_text, protect_file, protect_feature + ) + self.json_overrides = json_overrides + + +class Dx12JsonConsumerBodyGenerator(Dx12JsonConsumerHeaderGenerator, Dx12JsonCommonGenerator): + + JSON_OVERRIDES = {} + + def beginFile(self, genOpts): + Dx12JsonConsumerHeaderGenerator.beginFile(self, genOpts) + if genOpts.json_overrides: + overrides = json.loads(open(genOpts.json_overrides, 'r').read()) + self.JSON_OVERRIDES = overrides + + def write_include(self): + write(format_cpp_code(''' + #include "generated_dx12_json_consumer.h" + #include "generated_dx12_enum_to_json.h" + #include "generated_dx12_struct_decoders_to_json.h" + #include "decode/dx12_enum_util.h" + #include "decode/decode_json_util.h" + #include "decode/json_writer.h" + #include "util/to_string.h" + #include "format/format_json.h" + '''), file=self.outFile) + self.newline() + + def generate_feature(self): + Dx12BaseGenerator.generate_feature(self) + self.write_dx12_consumer_class('Json') + + def get_decoder_class_define(self, consumer_type): + declaration = '' + indent = '' + function_class = 'Dx12{}Consumer::'.format(consumer_type) + class_end = '' + return (declaration, indent, function_class, class_end) + + def get_consumer_function_body(self, class_name, method_info, return_type, return_value): + class_method_name = method_info['name'] + code = ''' + { + using namespace gfxrecon::util; + ''' + if(class_name == None or len(class_name) == 0): + code += self.make_consumer_func_body(method_info, return_type, return_value) + else: + code += self.make_consumer_method_body(class_name, method_info, return_type, return_value) + + code += "\n}" + code = "\n" + format_cpp_code(code) + return code + + ## Generate a FieldToJson appropriate to the return type. + ## @param func_type Either "function" or "method" for expected use. + def make_return(self, func_type, return_value): + if(None == return_value): + return "" + function_name = self.choose_field_to_json_name(return_value) + ret_line = "{0}({1}[format::kNameReturn], return_value, options);\n" + ## if return_type.startswith("HANDLE "): + ## This is a Windows handle, probably to a waitable object so we output it as a JSON number: + ## + ## + ret_line = ret_line.format(function_name, func_type) + return ret_line + + def make_consumer_func_body(self, method_info, return_type, return_value): + # Deal with the function's returned value: + if return_type != 'HRESULT WINAPI': + print ("Warning - Unexpected return type:", return_type) + ret_line = self.make_return("function", return_value) + + code = ''' + nlohmann::ordered_json& function = writer_->WriteApiCallStart(call_info, "{}"); + const JsonOptions& options = writer_->GetOptions(); + ''' + code += ret_line + code += '''nlohmann::ordered_json& args = function[format::kNameArgs]; + {{ + ''' + # Generate a correct FieldToJson for each argument: + for parameter in method_info['parameters']: + value = self.get_value_info(parameter) + code += " " + self.make_field_to_json("args", value, "options") + "\n" + + code += remove_leading_empty_lines(''' + }} + writer_->WriteBlockEnd(); + ''') + code = code.format(method_info['name']) + return code + + def make_consumer_method_body(self, class_name, method_info, return_type, return_value): + code = ''' + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "{0}", object_id, "{1}"); + const JsonOptions& options = writer_->GetOptions(); + ''' + + # Deal with the function's returned value: + ret_line = self.make_return("method", return_value) + code += ret_line + + # Deal with function argumentS: + if len(method_info['parameters']) > 0: + code += '''nlohmann::ordered_json& args = method[format::kNameArgs]; + {{ + ''' + # Generate a correct FieldToJson for each argument: + for parameter in method_info['parameters']: + value = self.get_value_info(parameter) + code += " " + self.make_field_to_json("args", value, "options") + "\n" + code += "}}\n" + + code += "writer_->WriteBlockEnd();" + code = code.format(class_name, method_info['name']) + return code + + ## @param value_info A ValueInfo object from base_generator.py. + def make_field_to_json(self, parent_name, value_info, options_name): + function_name = self.choose_field_to_json_name(value_info) + src = value_info.name + ## Special case for pointers to flag sets defined by enums: + ## (easier than having pointer decoder versions of each flagset type's FieldToString) + if value_info.is_pointer and function_name.startswith("FieldToJson_"): + src = "*" + src + "->GetPointer()" + field_to_json = '{0}({1}["{2}"], {3}, {4});'.format(function_name, parent_name, value_info.name, src, options_name) + if "anon-union" in value_info.base_type: + field_to_json += "// [anon-union] " + print("ALERT: anon union " + value_info.name + " in " + parent_name) + + return field_to_json \ No newline at end of file diff --git a/framework/generated/dx12_generators/dx12_ascii_consumer_header_generator.py b/framework/generated/dx12_generators/dx12_json_consumer_header_generator.py similarity index 79% rename from framework/generated/dx12_generators/dx12_ascii_consumer_header_generator.py rename to framework/generated/dx12_generators/dx12_json_consumer_header_generator.py index 17360538d3..3e66132e34 100644 --- a/framework/generated/dx12_generators/dx12_ascii_consumer_header_generator.py +++ b/framework/generated/dx12_generators/dx12_json_consumer_header_generator.py @@ -1,6 +1,7 @@ #!/usr/bin/env python3 # -# Copyright (c) 2021 LunarG, Inc. +# Copyright (c) 2021, 2023 LunarG, Inc. +# Copyright (c) 2023 Valve Corporation # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to @@ -25,10 +26,10 @@ from dx12_consumer_header_generator import Dx12ConsumerHeaderGenerator, Dx12ConsumerHeaderGeneratorOptions -class Dx12AsciiConsumerHeaderGeneratorOptions( +class Dx12JsonConsumerHeaderGeneratorOptions( Dx12ConsumerHeaderGeneratorOptions ): - """Options for generating a ASCII dump file for Dx12 capture file replay.""" + """Options for generating a stream of JSON from a decoded Dx12 capture.""" def __init__( self, @@ -50,17 +51,19 @@ def __init__( ) -class Dx12AsciiConsumerHeaderGenerator(Dx12ConsumerHeaderGenerator): +class Dx12JsonConsumerHeaderGenerator(Dx12ConsumerHeaderGenerator): """Generates C++ functions responsible for consuming Dx12 API calls.""" def generate_feature(self): """Method override.""" Dx12BaseGenerator.generate_feature(self) - self.write_dx12_consumer_class('Ascii') + self.write_dx12_consumer_class('Json') def write_include(self): - code = ("\n" "#include \"decode/dx12_ascii_consumer_base.h\"\n" "\n") + code = ("\n" "#include \"decode/dx12_json_consumer_base.h\"\n" "\n") write(code, file=self.outFile) - def get_consumer_function_body(self, class_name, method_info, return_type): - return ';' + def get_consumer_function_body(self, class_name, method_info, return_type, return_value): + # Marking functions as override helps to ensure the code gen for + # base and derived classes never gets out of sync. + return ' override;' diff --git a/framework/generated/dx12_generators/dx12_replay_consumer_header_generator.py b/framework/generated/dx12_generators/dx12_replay_consumer_header_generator.py index c01f46cca8..28ccf21d90 100644 --- a/framework/generated/dx12_generators/dx12_replay_consumer_header_generator.py +++ b/framework/generated/dx12_generators/dx12_replay_consumer_header_generator.py @@ -59,5 +59,5 @@ def write_include(self): code = ("\n" "#include \"decode/dx12_replay_consumer_base.h\"\n" "\n") write(code, file=self.outFile) - def get_consumer_function_body(self, class_name, method_info, return_type): + def get_consumer_function_body(self, class_name, method_info, return_type, return_value): return ' override;' diff --git a/framework/generated/dx12_generators/dx12_struct_decoders_to_json_body_generator.py b/framework/generated/dx12_generators/dx12_struct_decoders_to_json_body_generator.py new file mode 100644 index 0000000000..41d71691d1 --- /dev/null +++ b/framework/generated/dx12_generators/dx12_struct_decoders_to_json_body_generator.py @@ -0,0 +1,964 @@ +#!/usr/bin/env python3 +# +# Copyright (c) 2023 Valve Corporation +# Copyright (c) 2021-2023 LunarG, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to +# deal in the Software without restriction, including without limitation the +# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or +# sell copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS +# IN THE SOFTWARE. + +## @file Generation of functions to convert decoded D3D12 structs to JSON. +## As well as the wholey generated functions, there are two levels of custom +## function support embedded inside this file. +## 1. Embedding manual code for a union member of a struct into an otherwise +## generated function via makeUnionFieldToJson(). +## 2. Wholey custom functions for more complicated struct such as those with +## custom decoded struct classes to deal with mechanisms of type erasure +## in the API such as void pointers pointing into opaque memory blocks +## tagged with a type enum. These custom functions are embedded here and +## output by endFile() to be included in the generated file for simplicity +## and to avoid compiling a whole separate .cpp file draggig in the same +## headers just for a few functions. +## If the generated ouput for a struct is ever observed to be incorrect, the +## procedure for generating a custom function is as follows: +## 1. Add cases to makeUnionFieldToJson() if it is only union members +## that are causing the issue. +## If the issue is not just union members with determining type fields in the +## same struct: +## 2. Copy the generated function into the custom function section below. +## 3. Add the struct name to json_blocklists.json (the prototype in the +## header will still be generated). +## 4. Edit the custom function to fix the issue. +## +## @todo Add a mechanism to generate the boilerplate for custom functions +## for structs with custom bodies to avoid the copy-paste. It should be +## possible to generate up to and including the line +## `const Decoded_D3D12_CPU_DESCRIPTOR_HANDLE& meta_struct = *data;` +## and then have a custom function body for just the FieldToJson calls. +## + +import sys +from base_generator import write +from dx12_base_generator import Dx12BaseGenerator +from dx12_json_common_generator import Dx12JsonCommonGenerator +from reformat_code import format_cpp_code + +class Dx12StructDecodersToJsonBodyGenerator(Dx12JsonCommonGenerator): + """Generates C++ functions responsible for converting structs to JSON.""" + + def __init__( + self, + source_dict, + dx12_prefix_strings, + err_file=sys.stderr, + warn_file=sys.stderr, + diag_file=sys.stdout + ): + Dx12BaseGenerator.__init__( + self, source_dict, dx12_prefix_strings, err_file, warn_file, + diag_file + ) + + ## @brief A set of tuples, each specifying a field of a struct which could be represented as a + ## binary blob. + ## If a field is present in this set, the generated code will output the field as a binary file* + ## so add any field names here that you want to be output as a binary file. + ## * If the JsonOptions::dump_binaries flag is set. + ## The binary file will be named as follows: .-.bin + self.binary_blobs = { + ('D3D12_SHADER_BYTECODE', 'pShaderBytecode') + } + + def beginFile(self, gen_opts): + Dx12BaseGenerator.beginFile(self, gen_opts) + code = format_cpp_code(''' + #include "generated_dx12_struct_decoders_to_json.h" + #include "generated_dx12_enum_to_json.h" + #include "decode/custom_dx12_struct_decoders.h" + #include "decode/decode_json_util.h" + #include "graphics/dx12_util.h" + #include "util/json_util.h" + #include "format/format_json.h" + + /// @file Implementations of functions for converting decoded D3D12 structs to JSON. + + GFXRECON_BEGIN_NAMESPACE(gfxrecon) + GFXRECON_BEGIN_NAMESPACE(decode) + + using util::JsonOptions; + + // TODO Move all these manual functions out of the generator and into a .cpp file. + + /// @defgroup ManualD3D12StructFieldToJsons Manual functions to convert raw structs. + /** @{ */ + static void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_RENDER_PASS_BEGINNING_ACCESS_PRESERVE_LOCAL_PARAMETERS& data, const JsonOptions& options) + { + using namespace util; + FieldToJson(jdata["AdditionalWidth"], data.AdditionalWidth, options); + FieldToJson(jdata["AdditionalHeight"], data.AdditionalHeight, options); + } + + static void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_RENDER_PASS_ENDING_ACCESS_PRESERVE_LOCAL_PARAMETERS& data, const JsonOptions& options) + { + using namespace util; + FieldToJson(jdata["AdditionalWidth"], data.AdditionalWidth, options); + FieldToJson(jdata["AdditionalHeight"], data.AdditionalHeight, options); + } + + /// Manual raw struct functon to be used for Decoded_D3D12_CLEAR_VALUE conversion. + void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_DEPTH_STENCIL_VALUE& obj, const JsonOptions& options) + { + FieldToJson(jdata["Depth"], obj.Depth, options); + FieldToJson(jdata["Stencil"], obj.Stencil, options); + } + /** @} */ + + inline bool RepresentBinaryFile(const util::JsonOptions& json_options, nlohmann::ordered_json& jdata, std::string_view filename_base, const uint64_t instance_counter, const PointerDecoder& data) + { + return RepresentBinaryFile(json_options, jdata, filename_base, instance_counter, data.GetLength(), data.GetPointer()); + } + ''') + write(code, file=self.outFile) + self.newline() + + def generate_feature(self): + struct_dict = self.source_dict['struct_dict'] + for k, v in struct_dict.items(): + if not self.is_struct_black_listed(k): + body = format_cpp_code(''' + void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_{0}* data, const JsonOptions& options) + {{ + using namespace util; + if (data && data->decoded_value) + {{ + const {0}& decoded_value = *data->decoded_value; + const Decoded_{0}& meta_struct = *data; + '''.format(k)) + body += '\n' + body += self.makeStructBody(k, v) + body += format_cpp_code(''' + } + } + ''', 2) + body += '\n' + write(body, file=self.outFile) + + # yapf: disable + def makeStructBody(self, name, values): + body = '' + union_index = 0 + # Iterate over private, protected, public properties (only public non-empty): + items = values['properties'].items() + for item in items: + properties = item[1] # item[0] is the access level which is always 'public' so we ignore it + for p in properties: + value_info = self.get_value_info(p) + + field_to_json = '' + + if "anon-union" in value_info.base_type: + field_to_json = self.makeUnionFieldToJson(properties, name, union_index) + union_index += 1 + elif (name, value_info.name) in self.binary_blobs: + field_to_json = ' static thread_local uint64_t {0}_{1}_counter{{ 0 }};\n' + field_to_json += ' const bool written = RepresentBinaryFile(options, jdata["{1}"], "{0}.{1}", {0}_{1}_counter, meta_struct.{1});\n' + field_to_json += ' {0}_{1}_counter += written;\n' + field_to_json = field_to_json.format(name, value_info.name) + else: + function_name = self.choose_field_to_json_name(value_info) + if not (value_info.is_pointer or value_info.is_array or self.is_handle(value_info.base_type) or self.is_struct(value_info.base_type)): + # Basic data plumbs to raw struct: + field_to_json = ' {0}(jdata["{1}"], decoded_value.{1}, options);' + else: + # Complex types, pointers and handles plumb to the decoded struct: + field_to_json = ' {0}(jdata["{1}"], meta_struct.{1}, options);' + field_to_json = field_to_json.format(function_name, value_info.name, value_info.array_length) + body += field_to_json + body += '\n' + return body + # yapf: enable + + # Helper for structs with anonymous unions as members. + # Instead of making the whole struct's FieldToJson custom, this helper can + # provide a custom FieldToJson for the anon union to be injected into an + # otherwise generated FieldtoJson implementation. + def makeUnionFieldToJson(self, properties, struct_name, union_index): + message = "ALERT: Union member {0} of {1} needs special handling.".format(union_index, struct_name) + field_to_json = ' ; ///< @todo ' + message + + match struct_name: + case "D3D12_ROOT_PARAMETER": + field_to_json = ''' + switch(decoded_value.ParameterType) + { + case D3D12_ROOT_PARAMETER_TYPE_DESCRIPTOR_TABLE: + { + FieldToJson(jdata["DescriptorTable"], meta_struct.DescriptorTable, options); + break; + } + case D3D12_ROOT_PARAMETER_TYPE_32BIT_CONSTANTS: + { + FieldToJson(jdata["Constants"], meta_struct.Constants, options); + break; + } + case D3D12_ROOT_PARAMETER_TYPE_CBV: + case D3D12_ROOT_PARAMETER_TYPE_SRV: + case D3D12_ROOT_PARAMETER_TYPE_UAV: + { + FieldToJson(jdata["Descriptor"], meta_struct.Descriptor, options); + break; + } + } + ''' + case "D3D12_SHADER_RESOURCE_VIEW_DESC": + field_to_json = ''' + switch(decoded_value.ViewDimension) + { + case D3D12_SRV_DIMENSION_BUFFER: + { + FieldToJson(jdata["Buffer"], meta_struct.Buffer, options); + break; + } + case D3D12_SRV_DIMENSION_TEXTURE1D: + { + FieldToJson(jdata["Texture1D"], meta_struct.Texture1D, options); + break; + } + case D3D12_SRV_DIMENSION_TEXTURE1DARRAY: + { + FieldToJson(jdata["Texture1DArray"], meta_struct.Texture1DArray, options); + break; + } + case D3D12_SRV_DIMENSION_TEXTURE2D: + { + FieldToJson(jdata["Texture2D"], meta_struct.Texture2D, options); + break; + } + case D3D12_SRV_DIMENSION_TEXTURE2DARRAY: + { + FieldToJson(jdata["Texture2DArray"], meta_struct.Texture2DArray, options); + break; + } + case D3D12_SRV_DIMENSION_TEXTURE2DMS: + { + FieldToJson(jdata["Texture2DMS"], meta_struct.Texture2DMS, options); + break; + } + case D3D12_SRV_DIMENSION_TEXTURE2DMSARRAY: + { + FieldToJson(jdata["Texture2DMSArray"], meta_struct.Texture2DMSArray, options); + break; + } + case D3D12_SRV_DIMENSION_TEXTURE3D: + { + FieldToJson(jdata["Texture3D"], meta_struct.Texture3D, options); + break; + } + case D3D12_SRV_DIMENSION_TEXTURECUBE: + { + FieldToJson(jdata["TextureCube"], meta_struct.TextureCube, options); + break; + } + case D3D12_SRV_DIMENSION_TEXTURECUBEARRAY: + { + FieldToJson(jdata["TextureCubeArray"], meta_struct.TextureCubeArray, options); + break; + } + case D3D12_SRV_DIMENSION_RAYTRACING_ACCELERATION_STRUCTURE: + { + FieldToJson(jdata["RaytracingAccelerationStructure"], meta_struct.RaytracingAccelerationStructure, options); + break; + } + } + ''' + case "D3D12_SAMPLER_DESC2": + field_to_json = ''' + if(decoded_value.Flags & D3D12_SAMPLER_FLAG_UINT_BORDER_COLOR) + { + FieldToJson(jdata["UintBorderColor"], decoded_value.UintBorderColor, options); + } + else + { + FieldToJson(jdata["FloatBorderColor"], decoded_value.FloatBorderColor, options); + } + ''' + case "D3D12_UNORDERED_ACCESS_VIEW_DESC": + field_to_json = ''' + switch(decoded_value.ViewDimension) + { + case D3D12_UAV_DIMENSION_UNKNOWN: + { + FieldToJson(jdata[format::kNameWarning], "Zero-valued ViewDimension is meaningless. Is struct corrupted?", options); + break; + } + case D3D12_UAV_DIMENSION_BUFFER: + { + FieldToJson(jdata["Buffer"], meta_struct.Buffer, options); + break; + } + case D3D12_UAV_DIMENSION_TEXTURE1D: + { + FieldToJson(jdata["Texture1D"], meta_struct.Texture1D, options); + break; + } + case D3D12_UAV_DIMENSION_TEXTURE1DARRAY: + { + FieldToJson(jdata["Texture1DArray"], meta_struct.Texture1DArray, options); + break; + } + case D3D12_UAV_DIMENSION_TEXTURE2D: + { + FieldToJson(jdata["Texture2D"], meta_struct.Texture2D, options); + break; + } + case D3D12_UAV_DIMENSION_TEXTURE2DARRAY: + { + FieldToJson(jdata["Texture2DArray"], meta_struct.Texture2DArray, options); + break; + } + case D3D12_UAV_DIMENSION_TEXTURE2DMS: + { + FieldToJson(jdata["Texture2DMS"], "Field missing from Decoded_D3D12_UNORDERED_ACCESS_VIEW_DESC.", options); + break; + } + case D3D12_UAV_DIMENSION_TEXTURE2DMSARRAY: + { + FieldToJson(jdata["Texture2DMSArray"], "Field missing from Decoded_D3D12_UNORDERED_ACCESS_VIEW_DESC.", options); + break; + } + case D3D12_UAV_DIMENSION_TEXTURE3D: + { + FieldToJson(jdata["Texture3D"], meta_struct.Texture3D, options); + break; + } + default: + { + FieldToJson(jdata[format::kNameWarning], "ViewDimension with unknown value. Is struct corrupted?", options); + FieldToJson(jdata["Unknown value"], uint32_t(decoded_value.ViewDimension), options); + break; + } + } + ''' + case "D3D12_RENDER_TARGET_VIEW_DESC": + field_to_json = ''' + switch(decoded_value.ViewDimension) + { + case D3D12_RTV_DIMENSION_UNKNOWN: + { + FieldToJson(jdata[format::kNameWarning], "Zero D3D12_RTV_DIMENSION in D3D12_RENDER_TARGET_VIEW_DESC.", options); + break; + } + case D3D12_RTV_DIMENSION_BUFFER: + { + FieldToJson(jdata["Buffer"], meta_struct.Buffer, options); + break; + } + case D3D12_RTV_DIMENSION_TEXTURE1D: + { + FieldToJson(jdata["Texture1D"], meta_struct.Texture1D, options); + break; + } + case D3D12_RTV_DIMENSION_TEXTURE1DARRAY: + { + FieldToJson(jdata["Texture1DArray"], meta_struct.Texture1DArray, options); + break; + } + case D3D12_RTV_DIMENSION_TEXTURE2D: + { + FieldToJson(jdata["Texture2D"], meta_struct.Texture2D, options); + break; + } + case D3D12_RTV_DIMENSION_TEXTURE2DARRAY: + { + FieldToJson(jdata["Texture2DArray"], meta_struct.Texture2DArray, options); + break; + } + case D3D12_RTV_DIMENSION_TEXTURE2DMS: + { + FieldToJson(jdata["Texture2DMS"], meta_struct.Texture2DMS, options); + break; + } + case D3D12_RTV_DIMENSION_TEXTURE2DMSARRAY: + { + FieldToJson(jdata["Texture2DMSArray"], meta_struct.Texture2DMSArray, options); + break; + } + case D3D12_RTV_DIMENSION_TEXTURE3D: + { + FieldToJson(jdata["Texture3D"], meta_struct.Texture3D, options); + break; + } + default: + { + FieldToJson(jdata[format::kNameWarning], "Unknown D3D12_RTV_DIMENSION in D3D12_RENDER_TARGET_VIEW_DESC. Corrupt struct?", options); + FieldToJson(jdata["Unknown value"], uint32_t(decoded_value.ViewDimension), options); + break; + } + } + ''' + case "D3D12_DEPTH_STENCIL_VIEW_DESC": + field_to_json = ''' + switch(decoded_value.ViewDimension) + { + case D3D12_DSV_DIMENSION_UNKNOWN: + { + FieldToJson(jdata[format::kNameWarning], "Zero D3D12_DSV_DIMENSION in D3D12_DEPTH_STENCIL_VIEW_DESC.", options); + break; + } + case D3D12_DSV_DIMENSION_TEXTURE1D: + { + FieldToJson(jdata["Texture1D"], meta_struct.Texture1D, options); + break; + } + case D3D12_DSV_DIMENSION_TEXTURE1DARRAY: + { + FieldToJson(jdata["Texture1DArray"], meta_struct.Texture1DArray, options); + break; + } + case D3D12_DSV_DIMENSION_TEXTURE2D: + { + FieldToJson(jdata["Texture2D"], meta_struct.Texture2D, options); + break; + } + case D3D12_DSV_DIMENSION_TEXTURE2DARRAY: + { + FieldToJson(jdata["Texture2DArray"], meta_struct.Texture2DArray, options); + break; + } + case D3D12_DSV_DIMENSION_TEXTURE2DMS: + { + FieldToJson(jdata["Texture2DMS"], meta_struct.Texture2DMS, options); + break; + } + case D3D12_DSV_DIMENSION_TEXTURE2DMSARRAY: + { + FieldToJson(jdata["Texture2DMSArray"], meta_struct.Texture2DMSArray, options); + break; + } + default: + { + FieldToJson(jdata[format::kNameWarning], "Unknown D3D12_DSV_DIMENSION in D3D12_DEPTH_STENCIL_VIEW_DESC. Corrupt struct?", options); + FieldToJson(jdata["Unknown value"], uint32_t(decoded_value.ViewDimension), options); + break; + } + } + ''' + case "D3D12_ROOT_PARAMETER1": + field_to_json = ''' + switch (decoded_value.ParameterType) + { + case D3D12_ROOT_PARAMETER_TYPE_DESCRIPTOR_TABLE: + { + FieldToJson(jdata["DescriptorTable"], meta_struct.DescriptorTable, options); + break; + } + case D3D12_ROOT_PARAMETER_TYPE_32BIT_CONSTANTS: + { + FieldToJson(jdata["Constants"], meta_struct.Constants, options); + break; + } + case D3D12_ROOT_PARAMETER_TYPE_CBV: + case D3D12_ROOT_PARAMETER_TYPE_SRV: + case D3D12_ROOT_PARAMETER_TYPE_UAV: + { + FieldToJson(jdata["Descriptor"], meta_struct.Descriptor, options); + break; + } + default: + { + FieldToJson(jdata[format::kNameWarning], "Unknown D3D12_ROOT_PARAMETER_TYPE in D3D12_ROOT_PARAMETER1.", options); + FieldToJson(jdata["Unknown value"], uint32_t(decoded_value.ParameterType), options); + break; + } + } + ''' + case "D3D12_VERSIONED_ROOT_SIGNATURE_DESC": + field_to_json = ''' + switch (decoded_value.Version) + { + case D3D_ROOT_SIGNATURE_VERSION_1_0: + { + FieldToJson(jdata["Desc_1_0"], meta_struct.Desc_1_0, options); + break; + } + case D3D_ROOT_SIGNATURE_VERSION_1_1: + { + FieldToJson(jdata["Desc_1_1"], meta_struct.Desc_1_1, options); + break; + } + case D3D_ROOT_SIGNATURE_VERSION_1_2: + { + /// @todo Uncomment this once the union member is added to the decoded struct: FieldToJson(jdata["Desc_1_2"], meta_struct.Desc_1_2, options); + GFXRECON_LOG_ERROR("Unknown D3D_ROOT_SIGNATURE_VERSION_1_2 in D3D12_VERSIONED_ROOT_SIGNATURE_DESC."); + break; + } + default: + { + FieldToJson(jdata[format::kNameWarning], "Unknown D3D_ROOT_SIGNATURE_VERSION in D3D12_VERSIONED_ROOT_SIGNATURE_DESC.", options); + break; + } + } + ''' + case "D3D12_INDIRECT_ARGUMENT_DESC": + field_to_json = ''' + switch (decoded_value.Type) + { + case D3D12_INDIRECT_ARGUMENT_TYPE_DRAW: + case D3D12_INDIRECT_ARGUMENT_TYPE_DRAW_INDEXED: + case D3D12_INDIRECT_ARGUMENT_TYPE_DISPATCH: + { + // No data to output for draws and dispatches, they are parameterless tags. + break; + } + case D3D12_INDIRECT_ARGUMENT_TYPE_VERTEX_BUFFER_VIEW: + { + auto& vb = jdata["VertexBuffer"]; + FieldToJson(vb["Slot"], decoded_value.VertexBuffer.Slot, options); + break; + } + case D3D12_INDIRECT_ARGUMENT_TYPE_INDEX_BUFFER_VIEW: + { + // No parameters to output. + FieldToJson(jdata["comment"], "There must be a D3D12_INDIRECT_ARGUMENT_TYPE_DRAW_INDEXED in the same sequence.", options); + break; + } + case D3D12_INDIRECT_ARGUMENT_TYPE_CONSTANT: + { + auto& c = jdata["Constant"]; + FieldToJson(c["RootParameterIndex"], decoded_value.Constant.RootParameterIndex, options); + FieldToJson(c["DestOffsetIn32BitValues"], decoded_value.Constant.DestOffsetIn32BitValues, options); + FieldToJson(c["Num32BitValuesToSet"], decoded_value.Constant.Num32BitValuesToSet, options); + break; + } + case D3D12_INDIRECT_ARGUMENT_TYPE_CONSTANT_BUFFER_VIEW: + { + auto& cbv = jdata["ConstantBufferView"]; + FieldToJson(cbv["RootParameterIndex"], decoded_value.ConstantBufferView.RootParameterIndex, options); + break; + } + case D3D12_INDIRECT_ARGUMENT_TYPE_SHADER_RESOURCE_VIEW: + { + auto& srv = jdata["ShaderResourceView"]; + FieldToJson(srv["RootParameterIndex"], decoded_value.ShaderResourceView.RootParameterIndex, options); + break; + } + case D3D12_INDIRECT_ARGUMENT_TYPE_UNORDERED_ACCESS_VIEW: + { + auto& uav = jdata["UnorderedAccessView"]; + FieldToJson(uav["RootParameterIndex"], decoded_value.UnorderedAccessView.RootParameterIndex, options); + break; + } + case D3D12_INDIRECT_ARGUMENT_TYPE_DISPATCH_RAYS: + case D3D12_INDIRECT_ARGUMENT_TYPE_DISPATCH_MESH: + { + // No data to output for draws and dispatches, they are parameterless tags. + break; + } + default: + { + FieldToJson(jdata[format::kNameWarning], "Unknown D3D12_INDIRECT_ARGUMENT_TYPE in D3D12_INDIRECT_ARGUMENT_DESC.", options); + break; + } + } + ''' + case "D3D12_RAYTRACING_GEOMETRY_DESC": + field_to_json = ''' + switch(decoded_value.Type) + { + case D3D12_RAYTRACING_GEOMETRY_TYPE_TRIANGLES: + { + FieldToJson(jdata["Triangles"], meta_struct.Triangles, options); + break; + } + case D3D12_RAYTRACING_GEOMETRY_TYPE_PROCEDURAL_PRIMITIVE_AABBS: + { + FieldToJson(jdata["AABBs"], meta_struct.AABBs, options); + break; + } + default: + { + FieldToJson(jdata[format::kNameWarning], "Unknown D3D12_RAYTRACING_GEOMETRY_TYPE in D3D12_RAYTRACING_GEOMETRY_DESC.", options); + break; + } + } + ''' + case "D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS": + field_to_json = ''' + switch(decoded_value.Type) + { + case D3D12_RAYTRACING_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL: + { + FieldToJsonAsHex(jdata["InstanceDescs"], decoded_value.InstanceDescs, options); + break; + } + case D3D12_RAYTRACING_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL: + { + switch(decoded_value.DescsLayout) + { + case D3D12_ELEMENTS_LAYOUT_ARRAY: + { + FieldToJson(jdata["pGeometryDescs"], meta_struct.pGeometryDescs, options); + break; + } + case D3D12_ELEMENTS_LAYOUT_ARRAY_OF_POINTERS: + { + FieldToJson(jdata["ppGeometryDescs"], meta_struct.ppGeometryDescs, options); + break; + } + } + break; + } + default: + { + FieldToJson(jdata[format::kNameWarning], "Unknown D3D12_RAYTRACING_ACCELERATION_STRUCTURE_TYPE in D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS.", options); + break; + } + } + ''' + case "D3D12_VERSIONED_DEVICE_REMOVED_EXTENDED_DATA": + field_to_json = ''' + switch(decoded_value.Version) + { + case D3D12_DRED_VERSION_1_0: + { + FieldToJson(jdata["Dred_1_0"], meta_struct.Dred_1_0, options); + break; + } + case D3D12_DRED_VERSION_1_1: + { + FieldToJson(jdata["Dred_1_1"], meta_struct.Dred_1_1, options); + break; + } + case D3D12_DRED_VERSION_1_2: + { + FieldToJson(jdata["Dred_1_2"], meta_struct.Dred_1_2, options); + break; + } + case D3D12_DRED_VERSION_1_3: + { + // This field was missing in the custom struct at time of writing. + // See issue and revise this codegen by uncommenting line below when the issue + // is fixed + // FieldToJson(jdata["Dred_1_3"], meta_struct.Dred_1_3, options); + FieldToJson(jdata[format::kNameWarning], "Dred_1_3 is not supported by GFXR at this time. Please file an issue quoting this text if this is a blocker for you.", options); + break; + } + default: + { + FieldToJson(jdata[format::kNameWarning], "Unknown D3D12_DRED_VERSION in D3D12_VERSIONED_DEVICE_REMOVED_EXTENDED_DATA.", options); + break; + } + } + ''' + case "D3D12_RENDER_PASS_BEGINNING_ACCESS": + field_to_json = ''' + switch(decoded_value.Type) + { + case D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE_CLEAR: + { + FieldToJson(jdata["Clear"], meta_struct.Clear, options); + break; + } + case D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE_PRESERVE_LOCAL_RENDER: + if(decoded_value.PreserveLocal.AdditionalWidth != 0U || decoded_value.PreserveLocal.AdditionalHeight != 0U) + { + FieldToJson(jdata[format::kNameWarning], "Additional width and height should be zero (see DirectX Specs).", options); + } + case D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE_PRESERVE_LOCAL_SRV: + case D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE_PRESERVE_LOCAL_UAV: + { + FieldToJson(jdata["PreserveLocal"], decoded_value.PreserveLocal, options); + break; + } + case D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE_DISCARD: + case D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE_PRESERVE: + case D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE_NO_ACCESS: + // No parameters to these cases. + break; + + default: + { + FieldToJson(jdata[format::kNameWarning], "Unknown D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE in D3D12_RENDER_PASS_BEGINNING_ACCESS.", options); + break; + } + } + ''' + case "D3D12_RENDER_PASS_ENDING_ACCESS": + field_to_json = ''' + switch(decoded_value.Type) + { + case D3D12_RENDER_PASS_ENDING_ACCESS_TYPE_DISCARD: + case D3D12_RENDER_PASS_ENDING_ACCESS_TYPE_PRESERVE: + case D3D12_RENDER_PASS_ENDING_ACCESS_TYPE_NO_ACCESS: + // No parameters to these cases. + break; + + case D3D12_RENDER_PASS_ENDING_ACCESS_TYPE_RESOLVE: + { + FieldToJson(jdata["Resolve"], meta_struct.Resolve, options); + break; + } + case D3D12_RENDER_PASS_ENDING_ACCESS_TYPE_PRESERVE_LOCAL_RENDER: + case D3D12_RENDER_PASS_ENDING_ACCESS_TYPE_PRESERVE_LOCAL_SRV: + case D3D12_RENDER_PASS_ENDING_ACCESS_TYPE_PRESERVE_LOCAL_UAV: + { + FieldToJson(jdata["PreserveLocal"], decoded_value.PreserveLocal, options); + break; + } + + default: + { + FieldToJson(jdata[format::kNameWarning], "Unknown D3D12_RENDER_PASS_ENDING_ACCESS_TYPE in D3D12_RENDER_PASS_ENDING_ACCESS.", options); + break; + } + } + ''' + case "D3D12_BARRIER_GROUP": + field_to_json = ''' + switch(decoded_value.Type) + { + case D3D12_BARRIER_TYPE_GLOBAL: + { + FieldToJson(jdata["pGlobalBarriers"], meta_struct.global_barriers, options); + break; + } + case D3D12_BARRIER_TYPE_TEXTURE: + { + FieldToJson(jdata["pTextureBarriers"], meta_struct.texture_barriers, options); + break; + } + case D3D12_BARRIER_TYPE_BUFFER: + { + FieldToJson(jdata["pBufferBarriers"], meta_struct.buffer_barriers, options); + break; + } + default: + { + FieldToJson(jdata[format::kNameWarning], "Unknown D3D12_BARRIER_TYPE in D3D12_BARRIER_GROUP.", options); + break; + } + } + ''' + case "D3D12_CLEAR_VALUE": + field_to_json = ''' + if(graphics::dx12::IsDepthStencilFormat(decoded_value.Format)) + { + FieldToJson(jdata["DepthStencil"], decoded_value.DepthStencil, options); + } + else + { + FieldToJson(jdata["Color"], decoded_value.Color, options); + } + ''' + case "D3D12_RESOURCE_BARRIER": + field_to_json = ''' + switch(decoded_value.Type) + { + case D3D12_RESOURCE_BARRIER_TYPE_TRANSITION: + { + FieldToJson(jdata["Transition"], meta_struct.Transition, options); + break; + } + case D3D12_RESOURCE_BARRIER_TYPE_ALIASING: + { + FieldToJson(jdata["Aliasing"], meta_struct.Aliasing, options); + break; + } + case D3D12_RESOURCE_BARRIER_TYPE_UAV: + { + FieldToJson(jdata["UAV"], meta_struct.UAV, options); + break; + } + default: + { + FieldToJson(jdata[format::kNameWarning], "Unknown D3D12_RESOURCE_BARRIER_TYPE in D3D12_RESOURCE_BARRIER.", options); + break; + } + } + ''' + case "D3D12_TEXTURE_COPY_LOCATION": + field_to_json = ''' + switch(decoded_value.Type) + { + case D3D12_TEXTURE_COPY_TYPE_SUBRESOURCE_INDEX: + { + FieldToJson(jdata["SubresourceIndex"], decoded_value.SubresourceIndex, options); + break; + } + case D3D12_TEXTURE_COPY_TYPE_PLACED_FOOTPRINT: + { + FieldToJson(jdata["PlacedFootprint"], meta_struct.PlacedFootprint, options); + break; + } + default: + { + FieldToJson(jdata[format::kNameWarning], "Unknown D3D12_TEXTURE_COPY_TYPE in D3D12_TEXTURE_COPY_LOCATION.", options); + break; + } + } + ''' + case _: + print(message) + return format_cpp_code(field_to_json, 2) + + def endFile(self): + """Method override.""" + custom_impls = format_cpp_code(''' + // TODO Move all these manual functions out of the generator and into a .cpp file. + + /// @defgroup custom_dx12_struct_decoders_to_json_bodies Custom implementations for + /// troublesome structs. + /// We put the custom implementations in the generator Python rather than + /// creating a whole new compilation unit for them. + /** @{*/ + + // Decoded_LARGE_INTEGER won't be generated as it is a struct rather than D3D12. + void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_LARGE_INTEGER* data, const JsonOptions& options) + { + using namespace util; + if (data && data->decoded_value) + { + const LARGE_INTEGER& decoded_value = *data->decoded_value; + FieldToJson(jdata, decoded_value.QuadPart, options); + } + } + + // Generated version tries to read the struct members rather than doing the "fake enum" thing. + void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_GUID* data, const JsonOptions& options) + { + using namespace util; + if (data && data->decoded_value) + { + const GUID& decoded_value = *data->decoded_value; + FieldToJson(jdata, decoded_value, options); + } + } + + /// Dump all the fields of the custom struct, even though not all need be populated. + /// @note D3D12 doesn't define names for these: the underlying struct is just a void pointer + /// and a byte count with the structure defined in documentation. See: + /// + /// See also: framework\decode\custom_dx12_struct_decoders.cpp + void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_PIPELINE_STATE_STREAM_DESC* data, const JsonOptions& options) + { + using namespace util; + if (data && data->decoded_value) + { + const D3D12_PIPELINE_STATE_STREAM_DESC& decoded_value = *data->decoded_value; + const Decoded_D3D12_PIPELINE_STATE_STREAM_DESC& meta_struct = *data; + FieldToJson(jdata["SizeInBytes"], decoded_value.SizeInBytes, options); // Basic data plumbs to raw struct. + //FieldToJson(jdata["root_signature_ptr"], meta_struct.root_signature_ptr, options); + FieldToJson(jdata[format::kNameWarning], "D3D12_PIPELINE_STATE_STREAM_DESC.root_signature_ptr is not supported.", options); + FieldToJson(jdata["root_signature_ptr"], "@todo Get this field to convert cleanly.", options); + FieldToJson(jdata["vs_bytecode"], meta_struct.vs_bytecode, options); + FieldToJson(jdata["ps_bytecode"], meta_struct.ps_bytecode, options); + FieldToJson(jdata["ds_bytecode"], meta_struct.ds_bytecode, options); + FieldToJson(jdata["hs_bytecode"], meta_struct.hs_bytecode, options); + FieldToJson(jdata["gs_bytecode"], meta_struct.gs_bytecode, options); + FieldToJson(jdata["cs_bytecode"], meta_struct.cs_bytecode, options); + FieldToJson(jdata["as_bytecode"], meta_struct.as_bytecode, options); + FieldToJson(jdata["ms_bytecode"], meta_struct.ms_bytecode, options); + FieldToJson(jdata["stream_output"], meta_struct.stream_output, options); + FieldToJson(jdata["blend"], meta_struct.blend, options); + FieldToJson(jdata["rasterizer"], meta_struct.rasterizer, options); + FieldToJson(jdata["depth_stencil"], meta_struct.depth_stencil, options); + FieldToJson(jdata["input_layout"], meta_struct.input_layout, options); + FieldToJson(jdata["render_target_formats"], meta_struct.render_target_formats, options); + FieldToJson(jdata["sample_desc"], meta_struct.sample_desc, options); + FieldToJson(jdata["cached_pso"], meta_struct.cached_pso, options); + FieldToJson(jdata["depth_stencil1"], meta_struct.depth_stencil1, options); + FieldToJson(jdata["view_instancing"], meta_struct.view_instancing, options); + } + } + + // The decoded struct has a custom implementation. + void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_STATE_SUBOBJECT* data, const JsonOptions& options) + { + using namespace util; + if (data && data->decoded_value) + { + const D3D12_STATE_SUBOBJECT& decoded_value = *data->decoded_value; + const Decoded_D3D12_STATE_SUBOBJECT& meta_struct = *data; + FieldToJson(jdata["Type"], decoded_value.Type, options); + switch(decoded_value.Type) + { + case D3D12_STATE_SUBOBJECT_TYPE_STATE_OBJECT_CONFIG: + FieldToJson(jdata["state_object_config"], meta_struct.state_object_config, options); + break; + case D3D12_STATE_SUBOBJECT_TYPE_GLOBAL_ROOT_SIGNATURE: + FieldToJson(jdata["global_root_signature"], meta_struct.global_root_signature, options); + break; + case D3D12_STATE_SUBOBJECT_TYPE_LOCAL_ROOT_SIGNATURE: + FieldToJson(jdata["local_root_signature"], meta_struct.local_root_signature, options); + break; + case D3D12_STATE_SUBOBJECT_TYPE_NODE_MASK: + FieldToJson(jdata["node_mask"], meta_struct.node_mask, options); + break; + case D3D12_STATE_SUBOBJECT_TYPE_DXIL_LIBRARY: + FieldToJson(jdata["dxil_library_desc"], meta_struct.dxil_library_desc, options); + break; + case D3D12_STATE_SUBOBJECT_TYPE_EXISTING_COLLECTION: + FieldToJson(jdata["existing_collection_desc"], meta_struct.existing_collection_desc, options); + break; + case D3D12_STATE_SUBOBJECT_TYPE_SUBOBJECT_TO_EXPORTS_ASSOCIATION: + FieldToJson(jdata["subobject_to_exports_association"], meta_struct.subobject_to_exports_association, options); + break; + case D3D12_STATE_SUBOBJECT_TYPE_DXIL_SUBOBJECT_TO_EXPORTS_ASSOCIATION: + FieldToJson(jdata["dxil_subobject_to_exports_association"], meta_struct.dxil_subobject_to_exports_association, options); + break; + case D3D12_STATE_SUBOBJECT_TYPE_RAYTRACING_SHADER_CONFIG: + FieldToJson(jdata["raytracing_shader_config"], meta_struct.raytracing_shader_config, options); + break; + case D3D12_STATE_SUBOBJECT_TYPE_RAYTRACING_PIPELINE_CONFIG: + FieldToJson(jdata["raytracing_pipeline_config"], meta_struct.raytracing_pipeline_config, options); + break; + case D3D12_STATE_SUBOBJECT_TYPE_HIT_GROUP: + FieldToJson(jdata["hit_group_desc"], meta_struct.hit_group_desc, options); + break; + case D3D12_STATE_SUBOBJECT_TYPE_RAYTRACING_PIPELINE_CONFIG1: + FieldToJson(jdata["raytracing_pipeline_config1"], meta_struct.raytracing_pipeline_config1, options); + break; + default: + { + FieldToJson(jdata[format::kNameWarning], "Unknown D3D12_STATE_SUBOBJECT_TYPE in D3D12_STATE_SUBOBJECT.", options); + break; + } + } + } + } + + void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_CPU_DESCRIPTOR_HANDLE* data, const JsonOptions& options) + { + using namespace util; + if (data && data->decoded_value) + { + const D3D12_CPU_DESCRIPTOR_HANDLE& decoded_value = *data->decoded_value; + const Decoded_D3D12_CPU_DESCRIPTOR_HANDLE& meta_struct = *data; + // FieldToJson(jdata[format::kNameInfo], "heap_id and index were copied out of ptr by a custom encoder at capture time, and ptr was never stored in the capture file.", options); + FieldToJson(jdata["heap_id"], meta_struct.heap_id, options); + FieldToJson(jdata["index"], meta_struct.index, options); + } + } + + /** @} */ + ''') + '\n' + write(custom_impls, file=self.outFile) + write('GFXRECON_END_NAMESPACE(decode)', file=self.outFile) + write('GFXRECON_END_NAMESPACE(gfxrecon)', file=self.outFile) + + # Finish processing in superclass + Dx12BaseGenerator.endFile(self) diff --git a/framework/generated/dx12_generators/dx12_struct_decoders_to_json_header_generator.py b/framework/generated/dx12_generators/dx12_struct_decoders_to_json_header_generator.py new file mode 100644 index 0000000000..0114ae51cd --- /dev/null +++ b/framework/generated/dx12_generators/dx12_struct_decoders_to_json_header_generator.py @@ -0,0 +1,100 @@ +#!/usr/bin/env python3 +# +# Copyright (c) 2023 Valve Corporation +# Copyright (c) 2021-2023 LunarG, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to +# deal in the Software without restriction, including without limitation the +# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or +# sell copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS +# IN THE SOFTWARE. +import sys, inspect +from base_generator import write +from dx12_base_generator import Dx12BaseGenerator +from reformat_code import format_cpp_code, indent_cpp_code, remove_trailing_empty_lines + +class Dx12StructDecodersToJsonHeaderGenerator(Dx12BaseGenerator): + """Convert Struct Decoders to JSON.""" + + def __init__( + self, + source_dict, + dx12_prefix_strings, + err_file=sys.stderr, + warn_file=sys.stderr, + diag_file=sys.stdout + ): + Dx12BaseGenerator.__init__( + self, source_dict, dx12_prefix_strings, err_file, warn_file, + diag_file + ) + + def beginFile(self, gen_opts): + """Method override.""" + Dx12BaseGenerator.beginFile(self, gen_opts) + + code = inspect.cleandoc(''' + /// @file Functions to convert decoded structs to JSON. + /// Note these Decoded_StructX versions have the pointer tree linking the + /// structs set-up during decode, unlike the raw structs, which is why they + /// should be used when dumping a JSON representation while following the + /// pointers. + + #include "generated/generated_dx12_struct_decoders_forward.h" + #include "decode/custom_dx12_struct_decoders_forward.h" + #include "generated_dx12_enum_to_json.h" + #include "util/defines.h" + #include "nlohmann/json.hpp" + + GFXRECON_BEGIN_NAMESPACE(gfxrecon) + GFXRECON_BEGIN_NAMESPACE(util) + struct JsonOptions; + GFXRECON_END_NAMESPACE(util) + GFXRECON_BEGIN_NAMESPACE(decode) + ''') + write(code, file=self.outFile) + self.newline() + + def generate_feature(self): + struct_dict = self.source_dict['struct_dict'] + ref_wrappers = remove_trailing_empty_lines(indent_cpp_code(''' + // Reference versions of above which simply pipe through to the pointer versions. + ''')) + for k, v in struct_dict.items(): + if not self.is_struct_black_listed(k): + body = 'void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_{0}* pObj, const util::JsonOptions& options);'.format(k) + ref_wrappers += 'inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_{0}& obj, const util::JsonOptions& options){{ FieldToJson(jdata, &obj, options); }}\n'.format(k) + write(body, file=self.outFile) + write(ref_wrappers, file=self.outFile) + + def endFile(self): + """Method override.""" + custom_to_fields = ''' + + // Custom, manually written implementations whose prototypes haven't been generated above: + + /// Named union type with two structs and a uint64_t inside. + void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_LARGE_INTEGER* pObj, const util::JsonOptions& options); + inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_LARGE_INTEGER& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } + ''' + custom_to_fields = format_cpp_code(custom_to_fields) + write(custom_to_fields, file=self.outFile) + self.newline() + write('GFXRECON_END_NAMESPACE(decode)', file=self.outFile) + write('GFXRECON_END_NAMESPACE(gfxrecon)', file=self.outFile) + + # Finish processing in superclass + Dx12BaseGenerator.endFile(self) + diff --git a/framework/generated/dx12_generators/dx12_struct_to_string_body_generator.py b/framework/generated/dx12_generators/dx12_struct_to_string_body_generator.py deleted file mode 100644 index 767c9a771e..0000000000 --- a/framework/generated/dx12_generators/dx12_struct_to_string_body_generator.py +++ /dev/null @@ -1,156 +0,0 @@ -#!/usr/bin/env python3 -# -# Copyright (c) 2021 LunarG, Inc. -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to -# deal in the Software without restriction, including without limitation the -# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or -# sell copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS -# IN THE SOFTWARE. - -import sys, inspect -from base_generator import write -from dx12_base_generator import Dx12BaseGenerator - -class Dx12StructToStringBodyGenerator(Dx12BaseGenerator): - """TODO : Generates C++ functions responsible for Convert to texts.""" - - def __init__( - self, - source_dict, - dx12_prefix_strings, - err_file=sys.stderr, - warn_file=sys.stderr, - diag_file=sys.stdout - ): - Dx12BaseGenerator.__init__( - self, source_dict, dx12_prefix_strings, err_file, warn_file, - diag_file - ) - - def beginFile(self, gen_opts): - self.STRUCT_BLACKLIST.append('DXGI_DISPLAY_COLOR_SPACE') - self.STRUCT_BLACKLIST.append('D3D12_RAYTRACING_INSTANCE_DESC') - self.STRUCT_BLACKLIST.append('D3D12_CPU_DESCRIPTOR_HANDLE') - self.STRUCT_BLACKLIST.append('D3D12_DXIL_SUBOBJECT_TO_EXPORTS_ASSOCIATION') - self.STRUCT_BLACKLIST.append('D3D12_GPU_DESCRIPTOR_HANDLE') - self.STRUCT_BLACKLIST.append('_SECURITY_ATTRIBUTES') - self.STRUCT_BLACKLIST.append('GUID') - Dx12BaseGenerator.beginFile(self, gen_opts) - - code = '#include "generated_dx12_struct_to_string.h"\n' - code += '#include "decode/custom_dx12_ascii_consumer.h"\n' - code += '#include "decode/custom_dx12_to_string.h"\n' - code += '#include "generated_dx12_enum_to_string.h"\n' - write(code, file=self.outFile) - - write('GFXRECON_BEGIN_NAMESPACE(gfxrecon)', file=self.outFile) - write('GFXRECON_BEGIN_NAMESPACE(util)', file=self.outFile) - self.newline() - - def generate_feature(self): - struct_dict = self.source_dict['struct_dict'] - for k, v in struct_dict.items(): - if not self.is_struct_black_listed(k): - body = inspect.cleandoc(''' - std::string ToString(const {0}& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) - {{ - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - {{ - '''.format(k)) - body += '\n' - body += self.makeStructBody(k, v) - body += inspect.cleandoc(''' - } - ); - } - ''') - body += '\n' - write(body, file=self.outFile) - - # yapf: disable - def makeStructBody(self, name, values): - body = '' - for property_type, properties in values['properties'].items(): - for p in properties: - value = self.get_value_info(p) - - # Start with a static_assert() so that if any values make it through the logic - # below without being handled the generated code will fail to compile - to_string = 'static_assert(false, "Unhandled value in `dx12_struct_to_string_body_generator.py`")' - - # There's some repeated code in this if/else block...for instance, arrays of - # structs, enums, and primitives all route through ArrayToString()...It's - # easier (imo) to reason about each case when they're all listed explictly - if value.is_pointer: - if value.is_array: - if self.is_handle(value.base_type): - to_string = 'static_assert(false, "Unhandled pointer to dynamic array of handles in `dx12_struct_to_string_body_generator.py`")' - elif self.is_struct(value.base_type): - to_string = 'ArrayToString(obj.{1}, obj.{0}, toStringFlags, tabCount, tabSize)' - elif self.is_enum(value.base_type): - to_string = 'EnumArrayToString(obj.{1}, obj.{0}, toStringFlags, tabCount, tabSize)' - elif self.get_category_type(value.base_type) == 'class' or value.base_type == 'void': - to_string = 'HandleIdToString(obj.{0})' - else: - to_string = 'ArrayToString(obj.{1}, obj.{0}, toStringFlags, tabCount, tabSize)' - else: - if self.is_handle(value.base_type): - to_string = 'static_assert(false, "Unhandled pointer to handle in `dx12_struct_to_string_body_generator.py`")' - elif self.is_struct(value.base_type): - to_string = '(obj.{0} ? ToString(*obj.{0}, toStringFlags, tabCount, tabSize) : "null")' - elif self.is_enum(value.base_type): - to_string = 'static_assert(false, "Unhandled pointer to enum in `dx12_struct_to_string_body_generator.py`")' - elif self.get_category_type(value.base_type) == 'class' or value.base_type == 'void': - to_string = 'HandleIdToString(obj.{0})' - else: - to_string = '(obj.{0} ? ToString(*obj.{0}, toStringFlags, tabCount, tabSize) : "null")' - else: - if value.is_array: - if self.is_handle(value.base_type): - to_string = 'static_assert(false, "Unhandled static array of handles in `dx12_struct_to_string_body_generator.py`")' - elif self.is_struct(value.base_type): - to_string = 'ArrayToString({1}, obj.{0}, toStringFlags, tabCount, tabSize)' - elif self.is_enum(value.base_type): - to_string = 'EnumArrayToString({1}, obj.{0}, toStringFlags, tabCount, tabSize)' - elif 'wchar' in value.base_type: - to_string = 'Quote(WCharArrayToString(obj.{0}))' - else: - to_string = 'ArrayToString({1}, obj.{0}, toStringFlags, tabCount, tabSize)' - else: - if self.is_handle(value.base_type): - to_string = 'static_assert(false, "Unhandled handle in `dx12_struct_to_string_body_generator.py`")' - elif self.is_struct(value.base_type): - to_string = 'ToString(obj.{0}, toStringFlags, tabCount, tabSize)' - elif self.is_enum(value.base_type): - to_string = 'Quote(ToString(obj.{0}))' - else: - to_string = 'ToString(obj.{0}, toStringFlags, tabCount, tabSize)' - - first_field = 'true' if not body else 'false' - to_string = to_string.format(value.name, value.array_length) - body += ' FieldToString(strStrm, {0}, "{1}", toStringFlags, tabCount, tabSize, {2});\n'.format(first_field, value.name, to_string) - return body - # yapf: enable - - def endFile(self): - """Method override.""" - self.newline() - write('GFXRECON_END_NAMESPACE(util)', file=self.outFile) - write('GFXRECON_END_NAMESPACE(gfxrecon)', file=self.outFile) - - # Finish processing in superclass - Dx12BaseGenerator.endFile(self) diff --git a/framework/generated/dx12_generators/dx12_struct_to_string_header_generator.py b/framework/generated/dx12_generators/dx12_struct_to_string_header_generator.py deleted file mode 100644 index a50d476b01..0000000000 --- a/framework/generated/dx12_generators/dx12_struct_to_string_header_generator.py +++ /dev/null @@ -1,81 +0,0 @@ -#!/usr/bin/env python3 -# -# Copyright (c) 2021 LunarG, Inc. -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to -# deal in the Software without restriction, including without limitation the -# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or -# sell copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS -# IN THE SOFTWARE. - -import sys -from base_generator import write -from dx12_base_generator import Dx12BaseGenerator - -class Dx12StructToStringHeaderGenerator(Dx12BaseGenerator): - """TODO : Generates C++ functions responsible for Convert to texts.""" - - def __init__( - self, - source_dict, - dx12_prefix_strings, - err_file=sys.stderr, - warn_file=sys.stderr, - diag_file=sys.stdout - ): - Dx12BaseGenerator.__init__( - self, source_dict, dx12_prefix_strings, err_file, warn_file, - diag_file - ) - - def beginFile(self, gen_opts): - """Method override.""" - self.STRUCT_BLACKLIST.append('DXGI_DISPLAY_COLOR_SPACE') - self.STRUCT_BLACKLIST.append('D3D12_RAYTRACING_INSTANCE_DESC') - self.STRUCT_BLACKLIST.append('D3D12_CPU_DESCRIPTOR_HANDLE') - self.STRUCT_BLACKLIST.append('D3D12_DXIL_SUBOBJECT_TO_EXPORTS_ASSOCIATION') - self.STRUCT_BLACKLIST.append('D3D12_GPU_DESCRIPTOR_HANDLE') - self.STRUCT_BLACKLIST.append('_SECURITY_ATTRIBUTES') - self.STRUCT_BLACKLIST.append('GUID') # Generated with the enums. - Dx12BaseGenerator.beginFile(self, gen_opts) - - code = '' - header_dict = self.source_dict['header_dict'] - for k, v in header_dict.items(): - code += '#include <{}>\n'.format(k) - code += '#include "format/platform_types.h"\n' - code += '#include "util/defines.h"\n' - code += '#include "util/to_string.h"\n' - write(code, file=self.outFile) - - write('GFXRECON_BEGIN_NAMESPACE(gfxrecon)', file=self.outFile) - write('GFXRECON_BEGIN_NAMESPACE(util)', file=self.outFile) - self.newline() - - def generate_feature(self): - struct_dict = self.source_dict['struct_dict'] - for k, v in struct_dict.items(): - if not self.is_struct_black_listed(k): - body = 'std::string ToString(const {0}& obj, ToStringFlags toStringFlags = kToString_Default, uint32_t tabCount = kToStringDefaultTabCount, uint32_t tabSize = kToStringDefaultTabSize);'.format(k) - write(body, file=self.outFile) - - def endFile(self): - """Method override.""" - self.newline() - write('GFXRECON_END_NAMESPACE(util)', file=self.outFile) - write('GFXRECON_END_NAMESPACE(gfxrecon)', file=self.outFile) - - # Finish processing in superclass - Dx12BaseGenerator.endFile(self) diff --git a/framework/generated/dx12_generators/gencode.py b/framework/generated/dx12_generators/gencode.py index 24f70f2196..c7fdce324b 100644 --- a/framework/generated/dx12_generators/gencode.py +++ b/framework/generated/dx12_generators/gencode.py @@ -36,8 +36,8 @@ from dx12_consumer_header_generator import Dx12ConsumerHeaderGenerator, Dx12ConsumerHeaderGeneratorOptions from dx12_replay_consumer_header_generator import Dx12ReplayConsumerHeaderGenerator, Dx12ReplayConsumerHeaderGeneratorOptions from dx12_replay_consumer_body_generator import Dx12ReplayConsumerBodyGenerator, Dx12ReplayConsumerBodyGeneratorOptions -from dx12_ascii_consumer_header_generator import Dx12AsciiConsumerHeaderGenerator -from dx12_ascii_consumer_body_generator import Dx12AsciiConsumerBodyGenerator, Dx12AsciiBodyGeneratorOptions +from dx12_json_consumer_header_generator import Dx12JsonConsumerHeaderGenerator +from dx12_json_consumer_body_generator import Dx12JsonConsumerBodyGenerator, Dx12JsonBodyGeneratorOptions from dx12_wrapper_header_generator import Dx12WrapperHeaderGenerator from dx12_wrapper_body_generator import Dx12WrapperBodyGenerator, Dx12WrapperBodyGeneratorOptions from dx12_wrapper_creators_header_generator import Dx12WrapperCreatorsHeaderGenerator @@ -54,9 +54,10 @@ from dx12_command_list_util_body_generator import Dx12CommandListUtilBodyGenerator from dx12_enum_to_string_header_generator import Dx12EnumToStringHeaderGenerator from dx12_enum_to_string_body_generator import Dx12EnumToStringBodyGenerator -from dx12_struct_to_string_header_generator import Dx12StructToStringHeaderGenerator -from dx12_struct_to_string_body_generator import Dx12StructToStringBodyGenerator +from dx12_enum_to_json_header_generator import Dx12EnumToJsonHeaderGenerator from dx12_call_id_to_string_header_generator import Dx12CallIdToStringHeaderGenerator +from dx12_struct_decoders_to_json_header_generator import Dx12StructDecodersToJsonHeaderGenerator +from dx12_struct_decoders_to_json_body_generator import Dx12StructDecodersToJsonBodyGenerator # JSON files for customizing code generation # @todo Review the file of blacklisted functions and determine if each generator @@ -66,7 +67,7 @@ default_platform_types = 'platform_types.json' default_replay_overrides = 'replay_overrides.json' default_capture_overrides = 'capture_overrides.json' -default_ascii_overrides = 'ascii_overrides.json' +default_json_overrides = 'json_overrides.json' def make_gen_opts(args): @@ -87,7 +88,12 @@ def make_gen_opts(args): platform_types = os.path.join(args.configs, default_platform_types) replay_overrides = os.path.join(args.configs, default_replay_overrides) capture_overrides = os.path.join(args.configs, default_capture_overrides) - ascii_overrides = os.path.join(args.configs, default_ascii_overrides) + json_overrides = os.path.join(args.configs, default_json_overrides) + # Structs, functions etc. to exclude from codegen for conversion to JSON features. + json_blocklists = os.path.join(args.configs, "json_blocklists.json") + # Structs, functions etc. to exclude from codegen of the header files for conversion to JSON. + # (we can codegen a lot more header content than body as the function signatures are not tricky) + json_headers_blocklists = os.path.join(args.configs, "json_headers_blocklists.json") # Copyright text prefixing all headers (list of strings). prefix_strings = [ @@ -281,14 +287,14 @@ def make_gen_opts(args): ] py_prefix_strings[-4] = py_prefix_strings1.format( - 'dx12_ascii_consumer_header_generator.py' + 'dx12_json_consumer_header_generator.py' ) - gen_opts['generated_dx12_ascii_consumer.h'] = [ - Dx12AsciiConsumerHeaderGenerator, + gen_opts['generated_dx12_json_consumer.h'] = [ + Dx12JsonConsumerHeaderGenerator, Dx12ConsumerHeaderGeneratorOptions( - filename='generated_dx12_ascii_consumer.h', + filename='generated_dx12_json_consumer.h', directory=directory, - blacklists=blacklists, + blacklists=json_headers_blocklists, platform_types=platform_types, prefix_text=prefix_strings + py_prefix_strings, protect_file=True, @@ -297,17 +303,17 @@ def make_gen_opts(args): ] py_prefix_strings[-4] = py_prefix_strings1.format( - 'dx12_ascii_consumer_body_generator.py' + 'dx12_json_consumer_body_generator.py' ) - gen_opts['generated_dx12_ascii_consumer.cpp'] = [ - Dx12AsciiConsumerBodyGenerator, - Dx12AsciiBodyGeneratorOptions( - filename='generated_dx12_ascii_consumer.cpp', + gen_opts['generated_dx12_json_consumer.cpp'] = [ + Dx12JsonConsumerBodyGenerator, + Dx12JsonBodyGeneratorOptions( + filename='generated_dx12_json_consumer.cpp', directory=directory, constructor_args='', - blacklists=blacklists, + blacklists=json_blocklists, platform_types=platform_types, - ascii_overrides=ascii_overrides, + json_overrides=json_overrides, prefix_text=prefix_strings + py_prefix_strings, protect_file=False, protect_feature=False @@ -563,14 +569,14 @@ def make_gen_opts(args): ] py_prefix_strings[-4] = py_prefix_strings1.format( - 'dx12_struct_to_string_header_generator.py' + 'dx12_enum_to_json_header_generator.py' ) - gen_opts['generated_dx12_struct_to_string.h'] = [ - Dx12StructToStringHeaderGenerator, + gen_opts['generated_dx12_enum_to_json.h'] = [ + Dx12EnumToJsonHeaderGenerator, Dx12GeneratorOptions( - filename='generated_dx12_struct_to_string.h', + filename='generated_dx12_enum_to_json.h', directory=directory, - blacklists=blacklists, + blacklists=json_headers_blocklists, platform_types=platform_types, prefix_text=prefix_strings + py_prefix_strings, protect_file=True, @@ -579,21 +585,37 @@ def make_gen_opts(args): ] py_prefix_strings[-4] = py_prefix_strings1.format( - 'dx12_struct_to_string_body_generator.py' + 'dx12_struct_decoders_to_json_header_generator.py' ) - gen_opts['generated_dx12_struct_to_string.cpp'] = [ - Dx12StructToStringBodyGenerator, + gen_opts['generated_dx12_struct_decoders_to_json.h'] = [ + Dx12StructDecodersToJsonHeaderGenerator, Dx12GeneratorOptions( - filename='generated_dx12_struct_to_string.cpp', + filename='generated_dx12_struct_decoders_to_json.h', directory=directory, - blacklists=blacklists, + blacklists=json_headers_blocklists, + platform_types=platform_types, + prefix_text=prefix_strings + py_prefix_strings, + protect_file=True, + protect_feature=False + ) + ] + + py_prefix_strings[-4] = py_prefix_strings1.format( + 'dx12_struct_decoders_to_json_body_generator.py' + ) + gen_opts['generated_dx12_struct_decoders_to_json.cpp'] = [ + Dx12StructDecodersToJsonBodyGenerator, + Dx12GeneratorOptions( + filename='generated_dx12_struct_decoders_to_json.cpp', + directory=directory, + blacklists=json_blocklists, platform_types=platform_types, prefix_text=prefix_strings + py_prefix_strings, protect_file=False, protect_feature=False ) ] - + py_prefix_strings[-4] = py_prefix_strings1.format( 'dx12_call_id_to_string_header_generator.py' ) diff --git a/framework/generated/dx12_generators/json_blocklists.json b/framework/generated/dx12_generators/json_blocklists.json new file mode 100644 index 0000000000..0fec2d440f --- /dev/null +++ b/framework/generated/dx12_generators/json_blocklists.json @@ -0,0 +1,27 @@ +{ + "description": "Block codegen of features for DX12 to JSON conversion. (this is just a comment on the current file for human eyes)", + "functions-all": [], + "functions-encoder": [], + "functions-decoder": [], + "classmethods": { + "ID3D12Device": [ + "CheckFeatureSupport" + ], + "IDXGIFactory5": [ + "CheckFeatureSupport" + ], + "ID3D12Resource": [ + "Comment: WriteToSubresource is needed because codegen gives pSrcData as the wrong type and because thhe manual signature in the base class defining it doesn't match what correct codegen would produce.", + "WriteToSubresource" + ] + }, + "todo2": "Remove the ones below which can be handled with anon union support.", + "structures": [ + "GUID Comment - We can generate the header for the decoded struct but the body needs a manual implementation.", + "GUID", + "Comment: definitely need custom json conversion below", + "D3D12_PIPELINE_STATE_STREAM_DESC", + "D3D12_STATE_SUBOBJECT", + "D3D12_CPU_DESCRIPTOR_HANDLE" + ] +} diff --git a/framework/generated/dx12_generators/json_headers_blocklists.json b/framework/generated/dx12_generators/json_headers_blocklists.json new file mode 100644 index 0000000000..03e635979c --- /dev/null +++ b/framework/generated/dx12_generators/json_headers_blocklists.json @@ -0,0 +1,21 @@ +{ + "description": "Block codegen of features for header files used in DX12 to JSON conversion. While many features such as structs containing unions need custom implementations of their FieldToJson functions, the function prototypes for them can still be generated, so we use this file to block generation of far fewer header features than body ones. (this is just a comment on the current file for human eyes)", + "functions-all": [], + "functions-encoder": [], + "functions-decoder": [], + "classmethods": { + "ID3D12Device": [ + "CheckFeatureSupport" + ], + "IDXGIFactory5": [ + "CheckFeatureSupport" + ], + "ID3D12Resource": [ + "Comment: WriteToSubresource is needed because codegen gives pSrcData as the wrong type and because the manual signature in the base class defining it doesn't match what correct codegen would produce.", + "WriteToSubresource" + ] + }, + "structures-comment": "We don't want to disable any structs from header generation. Even if we make custom bodies, the function protoypes in the headers will be the same so there's no need to type them all out.", + "structures": [ + ] +} diff --git a/framework/generated/dx12_generators/ascii_overrides.json b/framework/generated/dx12_generators/json_overrides.json similarity index 100% rename from framework/generated/dx12_generators/ascii_overrides.json rename to framework/generated/dx12_generators/json_overrides.json diff --git a/framework/generated/generate_dx12.py b/framework/generated/generate_dx12.py index ebd8b81b3b..086cc4fafc 100644 --- a/framework/generated/generate_dx12.py +++ b/framework/generated/generate_dx12.py @@ -1,6 +1,6 @@ #!/usr/bin/env python3 # -# Copyright (c) 2021 LunarG, Inc. +# Copyright (c) 2021-2023 LunarG, Inc. # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to @@ -34,26 +34,36 @@ # File names to provide to the dxgi generator script. GENERATE_TARGETS = [ 'generated_dx12_api_call_encoders.h', - 'generated_dx12_api_call_encoders.cpp', 'generated_dx12_decoder.h', - 'generated_dx12_decoder.cpp', 'generated_dx12_struct_decoders_forward.h', - 'generated_dx12_struct_decoders.h', 'generated_dx12_struct_decoders.cpp', - 'generated_dx12_consumer.h', 'generated_dx12_replay_consumer.h', - 'generated_dx12_replay_consumer.cpp', 'generated_dx12_ascii_consumer.h', - 'generated_dx12_ascii_consumer.cpp', 'generated_dx12_wrappers.h', - 'generated_dx12_wrappers.cpp', 'generated_dx12_wrapper_creators.h', + 'generated_dx12_api_call_encoders.cpp', + 'generated_dx12_decoder.h', + 'generated_dx12_decoder.cpp', + 'generated_dx12_struct_decoders_forward.h', + 'generated_dx12_struct_decoders.h', + 'generated_dx12_struct_decoders.cpp', + 'generated_dx12_consumer.h', + 'generated_dx12_replay_consumer.h', + 'generated_dx12_replay_consumer.cpp', + 'generated_dx12_json_consumer.h', + 'generated_dx12_json_consumer.cpp', + 'generated_dx12_wrappers.h', + 'generated_dx12_wrappers.cpp', + 'generated_dx12_wrapper_creators.h', 'generated_dx12_wrapper_creators.cpp', 'generated_dx12_struct_unwrappers.h', 'generated_dx12_struct_unwrappers.cpp', 'generated_dx12_struct_object_mappers.h', 'generated_dx12_struct_object_mappers.cpp', - 'generated_dx12_struct_wrappers.h', 'generated_dx12_struct_wrappers.cpp', + 'generated_dx12_struct_wrappers.h', + 'generated_dx12_struct_wrappers.cpp', 'generated_dx12_add_entries.h', - 'generated_dx12_state_table.h', 'generated_dx12_command_list_util.h', + 'generated_dx12_state_table.h', + 'generated_dx12_command_list_util.h', 'generated_dx12_command_list_util.cpp', 'generated_dx12_enum_to_string.h', 'generated_dx12_enum_to_string.cpp', - 'generated_dx12_struct_to_string.h', - 'generated_dx12_struct_to_string.cpp', + 'generated_dx12_enum_to_json.h', + 'generated_dx12_struct_decoders_to_json.h', + 'generated_dx12_struct_decoders_to_json.cpp', 'generated_dx12_call_id_to_string.h', ] diff --git a/framework/generated/generate_vulkan.py b/framework/generated/generate_vulkan.py index 3ef14f12c8..7bfed3ce90 100644 --- a/framework/generated/generate_vulkan.py +++ b/framework/generated/generate_vulkan.py @@ -72,8 +72,8 @@ 'generated_vulkan_enum_to_string.cpp', 'generated_vulkan_object_info_table_base2.h', 'generated_vulkan_state_table.h', - 'generated_vulkan_export_json_consumer.h', - 'generated_vulkan_export_json_consumer.cpp', + 'generated_vulkan_json_consumer.h', + 'generated_vulkan_json_consumer.cpp', 'generated_vulkan_struct_to_json.h', 'generated_vulkan_struct_to_json.cpp', 'generated_vulkan_enum_to_json.h', diff --git a/framework/generated/generated_dx12_ascii_consumer.cpp b/framework/generated/generated_dx12_ascii_consumer.cpp deleted file mode 100644 index 46cdbada65..0000000000 --- a/framework/generated/generated_dx12_ascii_consumer.cpp +++ /dev/null @@ -1,12166 +0,0 @@ -/* -** Copyright (c) 2021-2023 LunarG, Inc. -** -** Permission is hereby granted, free of charge, to any person obtaining a copy -** of this software and associated documentation files (the "Software"), to -** deal in the Software without restriction, including without limitation the -** rights to use, copy, modify, merge, publish, distribute, sublicense, and/or -** sell copies of the Software, and to permit persons to whom the Software is -** furnished to do so, subject to the following conditions: -** -** The above copyright notice and this permission notice shall be included in -** all copies or substantial portions of the Software. -** -** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -** IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -** FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -** AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -** LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -** FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS -** IN THE SOFTWARE. -*/ - -/* -** This file is generated from dx12_ascii_consumer_body_generator.py. -** -*/ - -#include "generated_dx12_ascii_consumer.h" -#include "generated_dx12_enum_to_string.h" -#include "generated_dx12_struct_to_string.h" -#include "decode/custom_dx12_ascii_consumer.h" -#include "decode/dx12_enum_util.h" -#include "util/interception/injection.h" -#include "util/to_string.h" - -GFXRECON_BEGIN_NAMESPACE(gfxrecon) -GFXRECON_BEGIN_NAMESPACE(decode) - -/* -** This part is generated from dxgi.h in Windows SDK: 10.0.20348.0 -** -*/ -void Dx12AsciiConsumer::Process_CreateDXGIFactory( - const ApiCallInfo& call_info, - HRESULT return_value, - Decoded_GUID riid, - HandlePointerDecoder* ppFactory) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = nullptr; - writeApiCallToFileInfo.handleId = 0; - writeApiCallToFileInfo.pFunctionName = "CreateDXGIFactory"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "riid", to_string_flags_, tab_count, tab_size, ToString(*riid.decoded_value, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "[out]ppFactory", to_string_flags_, tab_count, tab_size, OutPtrDecoderToString(ppFactory)); - } - ); -} - -void Dx12AsciiConsumer::Process_CreateDXGIFactory1( - const ApiCallInfo& call_info, - HRESULT return_value, - Decoded_GUID riid, - HandlePointerDecoder* ppFactory) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = nullptr; - writeApiCallToFileInfo.handleId = 0; - writeApiCallToFileInfo.pFunctionName = "CreateDXGIFactory1"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "riid", to_string_flags_, tab_count, tab_size, ToString(*riid.decoded_value, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "[out]ppFactory", to_string_flags_, tab_count, tab_size, OutPtrDecoderToString(ppFactory)); - } - ); -} - -void Dx12AsciiConsumer::Process_IDXGIObject_SetPrivateData( - const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value, - Decoded_GUID Name, - UINT DataSize, - PointerDecoder* pData) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "IDXGIObject"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "SetPrivateData"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "Name", to_string_flags_, tab_count, tab_size, ToString(*Name.decoded_value, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "DataSize", to_string_flags_, tab_count, tab_size, ToString(DataSize, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "pData", to_string_flags_, tab_count, tab_size, PointerDecoderArrayToString(DataSize, pData, to_string_flags_, tab_count, tab_size)); - } - ); -} - -void Dx12AsciiConsumer::Process_IDXGIObject_SetPrivateDataInterface( - const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value, - Decoded_GUID Name, - format::HandleId pUnknown) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "IDXGIObject"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "SetPrivateDataInterface"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "Name", to_string_flags_, tab_count, tab_size, ToString(*Name.decoded_value, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "pUnknown", to_string_flags_, tab_count, tab_size, HandleIdToString(pUnknown)); - } - ); -} - -void Dx12AsciiConsumer::Process_IDXGIObject_GetPrivateData( - const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value, - Decoded_GUID Name, - PointerDecoder* pDataSize, - PointerDecoder* pData) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "IDXGIObject"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "GetPrivateData"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "Name", to_string_flags_, tab_count, tab_size, ToString(*Name.decoded_value, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "pDataSize", to_string_flags_, tab_count, tab_size, PointerDecoderToString(pDataSize, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "[out]pData", to_string_flags_, tab_count, tab_size, PointerDecoderArrayToString(pDataSize, pData, to_string_flags_, tab_count, tab_size)); - } - ); -} - -void Dx12AsciiConsumer::Process_IDXGIObject_GetParent( - const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value, - Decoded_GUID riid, - HandlePointerDecoder* ppParent) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "IDXGIObject"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "GetParent"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "riid", to_string_flags_, tab_count, tab_size, ToString(*riid.decoded_value, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "[out]ppParent", to_string_flags_, tab_count, tab_size, OutPtrDecoderToString(ppParent)); - } - ); -} - -void Dx12AsciiConsumer::Process_IDXGIDeviceSubObject_GetDevice( - const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value, - Decoded_GUID riid, - HandlePointerDecoder* ppDevice) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "IDXGIDeviceSubObject"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "GetDevice"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "riid", to_string_flags_, tab_count, tab_size, ToString(*riid.decoded_value, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "[out]ppDevice", to_string_flags_, tab_count, tab_size, OutPtrDecoderToString(ppDevice)); - } - ); -} - -void Dx12AsciiConsumer::Process_IDXGIResource_GetSharedHandle( - const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value, - PointerDecoder* pSharedHandle) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "IDXGIResource"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "GetSharedHandle"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "[out]pSharedHandle", to_string_flags_, tab_count, tab_size, HandleIdToString(pSharedHandle)); - } - ); -} - -void Dx12AsciiConsumer::Process_IDXGIResource_GetUsage( - const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value, - PointerDecoder* pUsage) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "IDXGIResource"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "GetUsage"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "pUsage", to_string_flags_, tab_count, tab_size, PointerDecoderToString(pUsage, to_string_flags_, tab_count, tab_size)); - } - ); -} - -void Dx12AsciiConsumer::Process_IDXGIResource_SetEvictionPriority( - const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value, - UINT EvictionPriority) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "IDXGIResource"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "SetEvictionPriority"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "EvictionPriority", to_string_flags_, tab_count, tab_size, ToString(EvictionPriority, to_string_flags_, tab_count, tab_size)); - } - ); -} - -void Dx12AsciiConsumer::Process_IDXGIResource_GetEvictionPriority( - const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value, - PointerDecoder* pEvictionPriority) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "IDXGIResource"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "GetEvictionPriority"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "[out]pEvictionPriority", to_string_flags_, tab_count, tab_size, PointerDecoderToString(pEvictionPriority, to_string_flags_, tab_count, tab_size)); - } - ); -} - -void Dx12AsciiConsumer::Process_IDXGIKeyedMutex_AcquireSync( - const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value, - UINT64 Key, - DWORD dwMilliseconds) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "IDXGIKeyedMutex"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "AcquireSync"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "Key", to_string_flags_, tab_count, tab_size, ToString(Key, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "dwMilliseconds", to_string_flags_, tab_count, tab_size, ToString(dwMilliseconds, to_string_flags_, tab_count, tab_size)); - } - ); -} - -void Dx12AsciiConsumer::Process_IDXGIKeyedMutex_ReleaseSync( - const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value, - UINT64 Key) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "IDXGIKeyedMutex"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "ReleaseSync"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "Key", to_string_flags_, tab_count, tab_size, ToString(Key, to_string_flags_, tab_count, tab_size)); - } - ); -} - -void Dx12AsciiConsumer::Process_IDXGISurface_GetDesc( - const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value, - StructPointerDecoder* pDesc) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "IDXGISurface"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "GetDesc"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "[out]pDesc", to_string_flags_, tab_count, tab_size, StructPointerDecoderToString(pDesc, to_string_flags_, tab_count, tab_size)); - } - ); -} - -void Dx12AsciiConsumer::Process_IDXGISurface_Map( - const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value, - StructPointerDecoder* pLockedRect, - UINT MapFlags) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "IDXGISurface"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "Map"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "[out]pLockedRect", to_string_flags_, tab_count, tab_size, StructPointerDecoderToString(pLockedRect, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "MapFlags", to_string_flags_, tab_count, tab_size, ToString(MapFlags, to_string_flags_, tab_count, tab_size)); - } - ); -} - -void Dx12AsciiConsumer::Process_IDXGISurface_Unmap( - const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "IDXGISurface"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "Unmap"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - } - ); -} - -void Dx12AsciiConsumer::Process_IDXGISurface1_GetDC( - const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value, - BOOL Discard, - PointerDecoder* phdc) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "IDXGISurface1"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "GetDC"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "Discard", to_string_flags_, tab_count, tab_size, ToString(Discard, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "[out]phdc", to_string_flags_, tab_count, tab_size, HandleIdToString(phdc)); - } - ); -} - -void Dx12AsciiConsumer::Process_IDXGISurface1_ReleaseDC( - const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value, - StructPointerDecoder* pDirtyRect) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "IDXGISurface1"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "ReleaseDC"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "pDirtyRect", to_string_flags_, tab_count, tab_size, StructPointerDecoderToString(pDirtyRect, to_string_flags_, tab_count, tab_size)); - } - ); -} - -void Dx12AsciiConsumer::Process_IDXGIAdapter_EnumOutputs( - const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value, - UINT Output, - HandlePointerDecoder* ppOutput) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "IDXGIAdapter"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "EnumOutputs"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "Output", to_string_flags_, tab_count, tab_size, ToString(Output, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "[out]ppOutput", to_string_flags_, tab_count, tab_size, OutPtrDecoderToString(ppOutput)); - } - ); -} - -void Dx12AsciiConsumer::Process_IDXGIAdapter_GetDesc( - const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value, - StructPointerDecoder* pDesc) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "IDXGIAdapter"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "GetDesc"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "[out]pDesc", to_string_flags_, tab_count, tab_size, StructPointerDecoderToString(pDesc, to_string_flags_, tab_count, tab_size)); - } - ); -} - -void Dx12AsciiConsumer::Process_IDXGIAdapter_CheckInterfaceSupport( - const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value, - Decoded_GUID InterfaceName, - StructPointerDecoder* pUMDVersion) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "IDXGIAdapter"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "CheckInterfaceSupport"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "InterfaceName", to_string_flags_, tab_count, tab_size, ToString(*InterfaceName.decoded_value, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "[out]pUMDVersion", to_string_flags_, tab_count, tab_size, StructPointerDecoderToString(pUMDVersion, to_string_flags_, tab_count, tab_size)); - } - ); -} - -void Dx12AsciiConsumer::Process_IDXGIOutput_GetDesc( - const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value, - StructPointerDecoder* pDesc) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "IDXGIOutput"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "GetDesc"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "[out]pDesc", to_string_flags_, tab_count, tab_size, StructPointerDecoderToString(pDesc, to_string_flags_, tab_count, tab_size)); - } - ); -} - -void Dx12AsciiConsumer::Process_IDXGIOutput_GetDisplayModeList( - const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value, - DXGI_FORMAT EnumFormat, - UINT Flags, - PointerDecoder* pNumModes, - StructPointerDecoder* pDesc) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "IDXGIOutput"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "GetDisplayModeList"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "EnumFormat", to_string_flags_, tab_count, tab_size, Quote(ToString(EnumFormat))); - FieldToString(str_strm, false, "Flags", to_string_flags_, tab_count, tab_size, ToString(Flags, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "pNumModes", to_string_flags_, tab_count, tab_size, PointerDecoderToString(pNumModes, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "[out]pDesc", to_string_flags_, tab_count, tab_size, StructPointerDecoderArrayToString(pNumModes, pDesc, to_string_flags_, tab_count, tab_size)); - } - ); -} - -void Dx12AsciiConsumer::Process_IDXGIOutput_FindClosestMatchingMode( - const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value, - StructPointerDecoder* pModeToMatch, - StructPointerDecoder* pClosestMatch, - format::HandleId pConcernedDevice) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "IDXGIOutput"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "FindClosestMatchingMode"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "pModeToMatch", to_string_flags_, tab_count, tab_size, StructPointerDecoderToString(pModeToMatch, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "[out]pClosestMatch", to_string_flags_, tab_count, tab_size, StructPointerDecoderToString(pClosestMatch, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "pConcernedDevice", to_string_flags_, tab_count, tab_size, HandleIdToString(pConcernedDevice)); - } - ); -} - -void Dx12AsciiConsumer::Process_IDXGIOutput_WaitForVBlank( - const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "IDXGIOutput"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "WaitForVBlank"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - } - ); -} - -void Dx12AsciiConsumer::Process_IDXGIOutput_TakeOwnership( - const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value, - format::HandleId pDevice, - BOOL Exclusive) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "IDXGIOutput"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "TakeOwnership"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "pDevice", to_string_flags_, tab_count, tab_size, HandleIdToString(pDevice)); - FieldToString(str_strm, false, "Exclusive", to_string_flags_, tab_count, tab_size, ToString(Exclusive, to_string_flags_, tab_count, tab_size)); - } - ); -} - -void Dx12AsciiConsumer::Process_IDXGIOutput_ReleaseOwnership( - const ApiCallInfo& call_info, - format::HandleId object_id) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "IDXGIOutput"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "ReleaseOwnership"; - std::string returnValue = std::string(); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - } - ); -} - -void Dx12AsciiConsumer::Process_IDXGIOutput_GetGammaControlCapabilities( - const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value, - StructPointerDecoder* pGammaCaps) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "IDXGIOutput"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "GetGammaControlCapabilities"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "[out]pGammaCaps", to_string_flags_, tab_count, tab_size, StructPointerDecoderToString(pGammaCaps, to_string_flags_, tab_count, tab_size)); - } - ); -} - -void Dx12AsciiConsumer::Process_IDXGIOutput_SetGammaControl( - const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value, - StructPointerDecoder* pArray) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "IDXGIOutput"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "SetGammaControl"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "pArray", to_string_flags_, tab_count, tab_size, StructPointerDecoderToString(pArray, to_string_flags_, tab_count, tab_size)); - } - ); -} - -void Dx12AsciiConsumer::Process_IDXGIOutput_GetGammaControl( - const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value, - StructPointerDecoder* pArray) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "IDXGIOutput"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "GetGammaControl"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "[out]pArray", to_string_flags_, tab_count, tab_size, StructPointerDecoderToString(pArray, to_string_flags_, tab_count, tab_size)); - } - ); -} - -void Dx12AsciiConsumer::Process_IDXGIOutput_SetDisplaySurface( - const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value, - format::HandleId pScanoutSurface) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "IDXGIOutput"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "SetDisplaySurface"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "pScanoutSurface", to_string_flags_, tab_count, tab_size, HandleIdToString(pScanoutSurface)); - } - ); -} - -void Dx12AsciiConsumer::Process_IDXGIOutput_GetDisplaySurfaceData( - const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value, - format::HandleId pDestination) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "IDXGIOutput"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "GetDisplaySurfaceData"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "pDestination", to_string_flags_, tab_count, tab_size, HandleIdToString(pDestination)); - } - ); -} - -void Dx12AsciiConsumer::Process_IDXGIOutput_GetFrameStatistics( - const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value, - StructPointerDecoder* pStats) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "IDXGIOutput"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "GetFrameStatistics"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "[out]pStats", to_string_flags_, tab_count, tab_size, StructPointerDecoderToString(pStats, to_string_flags_, tab_count, tab_size)); - } - ); -} - -void Dx12AsciiConsumer::Process_IDXGISwapChain_Present( - const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value, - UINT SyncInterval, - UINT Flags) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "IDXGISwapChain"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "Present"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "SyncInterval", to_string_flags_, tab_count, tab_size, ToString(SyncInterval, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "Flags", to_string_flags_, tab_count, tab_size, ToString(Flags, to_string_flags_, tab_count, tab_size)); - } - ); -} - -void Dx12AsciiConsumer::Process_IDXGISwapChain_GetBuffer( - const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value, - UINT Buffer, - Decoded_GUID riid, - HandlePointerDecoder* ppSurface) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "IDXGISwapChain"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "GetBuffer"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "Buffer", to_string_flags_, tab_count, tab_size, ToString(Buffer, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "riid", to_string_flags_, tab_count, tab_size, ToString(*riid.decoded_value, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "[out]ppSurface", to_string_flags_, tab_count, tab_size, OutPtrDecoderToString(ppSurface)); - } - ); -} - -void Dx12AsciiConsumer::Process_IDXGISwapChain_SetFullscreenState( - const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value, - BOOL Fullscreen, - format::HandleId pTarget) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "IDXGISwapChain"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "SetFullscreenState"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "Fullscreen", to_string_flags_, tab_count, tab_size, ToString(Fullscreen, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "pTarget", to_string_flags_, tab_count, tab_size, HandleIdToString(pTarget)); - } - ); -} - -void Dx12AsciiConsumer::Process_IDXGISwapChain_GetFullscreenState( - const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value, - PointerDecoder* pFullscreen, - HandlePointerDecoder* ppTarget) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "IDXGISwapChain"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "GetFullscreenState"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "[out]pFullscreen", to_string_flags_, tab_count, tab_size, PointerDecoderToString(pFullscreen, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "[out]ppTarget", to_string_flags_, tab_count, tab_size, OutPtrDecoderToString(ppTarget)); - } - ); -} - -void Dx12AsciiConsumer::Process_IDXGISwapChain_GetDesc( - const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value, - StructPointerDecoder* pDesc) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "IDXGISwapChain"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "GetDesc"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "[out]pDesc", to_string_flags_, tab_count, tab_size, StructPointerDecoderToString(pDesc, to_string_flags_, tab_count, tab_size)); - } - ); -} - -void Dx12AsciiConsumer::Process_IDXGISwapChain_ResizeBuffers( - const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value, - UINT BufferCount, - UINT Width, - UINT Height, - DXGI_FORMAT NewFormat, - UINT SwapChainFlags) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "IDXGISwapChain"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "ResizeBuffers"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "BufferCount", to_string_flags_, tab_count, tab_size, ToString(BufferCount, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "Width", to_string_flags_, tab_count, tab_size, ToString(Width, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "Height", to_string_flags_, tab_count, tab_size, ToString(Height, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "NewFormat", to_string_flags_, tab_count, tab_size, Quote(ToString(NewFormat))); - FieldToString(str_strm, false, "SwapChainFlags", to_string_flags_, tab_count, tab_size, ToString(SwapChainFlags, to_string_flags_, tab_count, tab_size)); - } - ); -} - -void Dx12AsciiConsumer::Process_IDXGISwapChain_ResizeTarget( - const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value, - StructPointerDecoder* pNewTargetParameters) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "IDXGISwapChain"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "ResizeTarget"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "pNewTargetParameters", to_string_flags_, tab_count, tab_size, StructPointerDecoderToString(pNewTargetParameters, to_string_flags_, tab_count, tab_size)); - } - ); -} - -void Dx12AsciiConsumer::Process_IDXGISwapChain_GetContainingOutput( - const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value, - HandlePointerDecoder* ppOutput) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "IDXGISwapChain"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "GetContainingOutput"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "[out]ppOutput", to_string_flags_, tab_count, tab_size, OutPtrDecoderToString(ppOutput)); - } - ); -} - -void Dx12AsciiConsumer::Process_IDXGISwapChain_GetFrameStatistics( - const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value, - StructPointerDecoder* pStats) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "IDXGISwapChain"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "GetFrameStatistics"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "[out]pStats", to_string_flags_, tab_count, tab_size, StructPointerDecoderToString(pStats, to_string_flags_, tab_count, tab_size)); - } - ); -} - -void Dx12AsciiConsumer::Process_IDXGISwapChain_GetLastPresentCount( - const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value, - PointerDecoder* pLastPresentCount) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "IDXGISwapChain"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "GetLastPresentCount"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "[out]pLastPresentCount", to_string_flags_, tab_count, tab_size, PointerDecoderToString(pLastPresentCount, to_string_flags_, tab_count, tab_size)); - } - ); -} - -void Dx12AsciiConsumer::Process_IDXGIFactory_EnumAdapters( - const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value, - UINT Adapter, - HandlePointerDecoder* ppAdapter) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "IDXGIFactory"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "EnumAdapters"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "Adapter", to_string_flags_, tab_count, tab_size, ToString(Adapter, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "[out]ppAdapter", to_string_flags_, tab_count, tab_size, OutPtrDecoderToString(ppAdapter)); - } - ); -} - -void Dx12AsciiConsumer::Process_IDXGIFactory_MakeWindowAssociation( - const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value, - uint64_t WindowHandle, - UINT Flags) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "IDXGIFactory"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "MakeWindowAssociation"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "WindowHandle", to_string_flags_, tab_count, tab_size, HandleIdToString(WindowHandle)); - FieldToString(str_strm, false, "Flags", to_string_flags_, tab_count, tab_size, ToString(Flags, to_string_flags_, tab_count, tab_size)); - } - ); -} - -void Dx12AsciiConsumer::Process_IDXGIFactory_GetWindowAssociation( - const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value, - PointerDecoder* pWindowHandle) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "IDXGIFactory"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "GetWindowAssociation"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "[out]pWindowHandle", to_string_flags_, tab_count, tab_size, HandleIdToString(pWindowHandle)); - } - ); -} - -void Dx12AsciiConsumer::Process_IDXGIFactory_CreateSwapChain( - const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value, - format::HandleId pDevice, - StructPointerDecoder* pDesc, - HandlePointerDecoder* ppSwapChain) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "IDXGIFactory"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "CreateSwapChain"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "pDevice", to_string_flags_, tab_count, tab_size, HandleIdToString(pDevice)); - FieldToString(str_strm, false, "pDesc", to_string_flags_, tab_count, tab_size, StructPointerDecoderToString(pDesc, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "[out]ppSwapChain", to_string_flags_, tab_count, tab_size, OutPtrDecoderToString(ppSwapChain)); - } - ); -} - -void Dx12AsciiConsumer::Process_IDXGIFactory_CreateSoftwareAdapter( - const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value, - uint64_t Module, - HandlePointerDecoder* ppAdapter) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "IDXGIFactory"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "CreateSoftwareAdapter"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "Module", to_string_flags_, tab_count, tab_size, HandleIdToString(Module)); - FieldToString(str_strm, false, "[out]ppAdapter", to_string_flags_, tab_count, tab_size, OutPtrDecoderToString(ppAdapter)); - } - ); -} - -void Dx12AsciiConsumer::Process_IDXGIDevice_GetAdapter( - const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value, - HandlePointerDecoder* pAdapter) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "IDXGIDevice"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "GetAdapter"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "[out]pAdapter", to_string_flags_, tab_count, tab_size, OutPtrDecoderToString(pAdapter)); - } - ); -} - -void Dx12AsciiConsumer::Process_IDXGIDevice_CreateSurface( - const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value, - StructPointerDecoder* pDesc, - UINT NumSurfaces, - DXGI_USAGE Usage, - StructPointerDecoder* pSharedResource, - HandlePointerDecoder* ppSurface) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "IDXGIDevice"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "CreateSurface"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "pDesc", to_string_flags_, tab_count, tab_size, StructPointerDecoderToString(pDesc, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "NumSurfaces", to_string_flags_, tab_count, tab_size, ToString(NumSurfaces, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "Usage", to_string_flags_, tab_count, tab_size, ToString(Usage, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "pSharedResource", to_string_flags_, tab_count, tab_size, StructPointerDecoderToString(pSharedResource, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "[out]ppSurface", to_string_flags_, tab_count, tab_size, PointerDecoderArrayToString(NumSurfaces, ppSurface, to_string_flags_, tab_count, tab_size)); - } - ); -} - -void Dx12AsciiConsumer::Process_IDXGIDevice_QueryResourceResidency( - const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value, - HandlePointerDecoder* ppResources, - PointerDecoder* pResidencyStatus, - UINT NumResources) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "IDXGIDevice"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "QueryResourceResidency"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "ppResources", to_string_flags_, tab_count, tab_size, PointerDecoderArrayToString(NumResources, ppResources, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "[out]pResidencyStatus", to_string_flags_, tab_count, tab_size, EnumPointerDecoderArrayToString(NumResources, pResidencyStatus, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "NumResources", to_string_flags_, tab_count, tab_size, ToString(NumResources, to_string_flags_, tab_count, tab_size)); - } - ); -} - -void Dx12AsciiConsumer::Process_IDXGIDevice_SetGPUThreadPriority( - const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value, - INT Priority) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "IDXGIDevice"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "SetGPUThreadPriority"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "Priority", to_string_flags_, tab_count, tab_size, ToString(Priority, to_string_flags_, tab_count, tab_size)); - } - ); -} - -void Dx12AsciiConsumer::Process_IDXGIDevice_GetGPUThreadPriority( - const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value, - PointerDecoder* pPriority) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "IDXGIDevice"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "GetGPUThreadPriority"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "[out]pPriority", to_string_flags_, tab_count, tab_size, PointerDecoderToString(pPriority, to_string_flags_, tab_count, tab_size)); - } - ); -} - -void Dx12AsciiConsumer::Process_IDXGIFactory1_EnumAdapters1( - const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value, - UINT Adapter, - HandlePointerDecoder* ppAdapter) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "IDXGIFactory1"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "EnumAdapters1"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "Adapter", to_string_flags_, tab_count, tab_size, ToString(Adapter, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "[out]ppAdapter", to_string_flags_, tab_count, tab_size, OutPtrDecoderToString(ppAdapter)); - } - ); -} - -void Dx12AsciiConsumer::Process_IDXGIFactory1_IsCurrent( - const ApiCallInfo& call_info, - format::HandleId object_id, - BOOL return_value) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "IDXGIFactory1"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "IsCurrent"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - } - ); -} - -void Dx12AsciiConsumer::Process_IDXGIAdapter1_GetDesc1( - const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value, - StructPointerDecoder* pDesc) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "IDXGIAdapter1"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "GetDesc1"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "[out]pDesc", to_string_flags_, tab_count, tab_size, StructPointerDecoderToString(pDesc, to_string_flags_, tab_count, tab_size)); - } - ); -} - -void Dx12AsciiConsumer::Process_IDXGIDevice1_SetMaximumFrameLatency( - const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value, - UINT MaxLatency) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "IDXGIDevice1"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "SetMaximumFrameLatency"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "MaxLatency", to_string_flags_, tab_count, tab_size, ToString(MaxLatency, to_string_flags_, tab_count, tab_size)); - } - ); -} - -void Dx12AsciiConsumer::Process_IDXGIDevice1_GetMaximumFrameLatency( - const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value, - PointerDecoder* pMaxLatency) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "IDXGIDevice1"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "GetMaximumFrameLatency"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "[out]pMaxLatency", to_string_flags_, tab_count, tab_size, PointerDecoderToString(pMaxLatency, to_string_flags_, tab_count, tab_size)); - } - ); -} - -/* -** This part is generated from dxgi1_2.h in Windows SDK: 10.0.20348.0 -** -*/ -void Dx12AsciiConsumer::Process_IDXGIDisplayControl_IsStereoEnabled( - const ApiCallInfo& call_info, - format::HandleId object_id, - BOOL return_value) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "IDXGIDisplayControl"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "IsStereoEnabled"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - } - ); -} - -void Dx12AsciiConsumer::Process_IDXGIDisplayControl_SetStereoEnabled( - const ApiCallInfo& call_info, - format::HandleId object_id, - BOOL enabled) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "IDXGIDisplayControl"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "SetStereoEnabled"; - std::string returnValue = std::string(); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "enabled", to_string_flags_, tab_count, tab_size, ToString(enabled, to_string_flags_, tab_count, tab_size)); - } - ); -} - -void Dx12AsciiConsumer::Process_IDXGIOutputDuplication_GetDesc( - const ApiCallInfo& call_info, - format::HandleId object_id, - StructPointerDecoder* pDesc) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "IDXGIOutputDuplication"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "GetDesc"; - std::string returnValue = std::string(); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "[out]pDesc", to_string_flags_, tab_count, tab_size, StructPointerDecoderToString(pDesc, to_string_flags_, tab_count, tab_size)); - } - ); -} - -void Dx12AsciiConsumer::Process_IDXGIOutputDuplication_AcquireNextFrame( - const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value, - UINT TimeoutInMilliseconds, - StructPointerDecoder* pFrameInfo, - HandlePointerDecoder* ppDesktopResource) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "IDXGIOutputDuplication"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "AcquireNextFrame"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "TimeoutInMilliseconds", to_string_flags_, tab_count, tab_size, ToString(TimeoutInMilliseconds, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "[out]pFrameInfo", to_string_flags_, tab_count, tab_size, StructPointerDecoderToString(pFrameInfo, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "[out]ppDesktopResource", to_string_flags_, tab_count, tab_size, OutPtrDecoderToString(ppDesktopResource)); - } - ); -} - -void Dx12AsciiConsumer::Process_IDXGIOutputDuplication_GetFrameDirtyRects( - const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value, - UINT DirtyRectsBufferSize, - StructPointerDecoder* pDirtyRectsBuffer, - PointerDecoder* pDirtyRectsBufferSizeRequired) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "IDXGIOutputDuplication"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "GetFrameDirtyRects"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "DirtyRectsBufferSize", to_string_flags_, tab_count, tab_size, ToString(DirtyRectsBufferSize, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "[out]pDirtyRectsBuffer", to_string_flags_, tab_count, tab_size, StructPointerDecoderArrayToString(DirtyRectsBufferSize/sizeof tagRECT, pDirtyRectsBuffer, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "[out]pDirtyRectsBufferSizeRequired", to_string_flags_, tab_count, tab_size, PointerDecoderToString(pDirtyRectsBufferSizeRequired, to_string_flags_, tab_count, tab_size)); - } - ); -} - -void Dx12AsciiConsumer::Process_IDXGIOutputDuplication_GetFrameMoveRects( - const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value, - UINT MoveRectsBufferSize, - StructPointerDecoder* pMoveRectBuffer, - PointerDecoder* pMoveRectsBufferSizeRequired) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "IDXGIOutputDuplication"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "GetFrameMoveRects"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "MoveRectsBufferSize", to_string_flags_, tab_count, tab_size, ToString(MoveRectsBufferSize, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "[out]pMoveRectBuffer", to_string_flags_, tab_count, tab_size, StructPointerDecoderArrayToString(MoveRectsBufferSize/sizeof DXGI_OUTDUPL_MOVE_RECT, pMoveRectBuffer, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "[out]pMoveRectsBufferSizeRequired", to_string_flags_, tab_count, tab_size, PointerDecoderToString(pMoveRectsBufferSizeRequired, to_string_flags_, tab_count, tab_size)); - } - ); -} - -void Dx12AsciiConsumer::Process_IDXGIOutputDuplication_GetFramePointerShape( - const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value, - UINT PointerShapeBufferSize, - PointerDecoder* pPointerShapeBuffer, - PointerDecoder* pPointerShapeBufferSizeRequired, - StructPointerDecoder* pPointerShapeInfo) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "IDXGIOutputDuplication"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "GetFramePointerShape"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "PointerShapeBufferSize", to_string_flags_, tab_count, tab_size, ToString(PointerShapeBufferSize, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "[out]pPointerShapeBuffer", to_string_flags_, tab_count, tab_size, PointerDecoderArrayToString(PointerShapeBufferSize, pPointerShapeBuffer, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "[out]pPointerShapeBufferSizeRequired", to_string_flags_, tab_count, tab_size, PointerDecoderToString(pPointerShapeBufferSizeRequired, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "[out]pPointerShapeInfo", to_string_flags_, tab_count, tab_size, StructPointerDecoderToString(pPointerShapeInfo, to_string_flags_, tab_count, tab_size)); - } - ); -} - -void Dx12AsciiConsumer::Process_IDXGIOutputDuplication_MapDesktopSurface( - const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value, - StructPointerDecoder* pLockedRect) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "IDXGIOutputDuplication"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "MapDesktopSurface"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "[out]pLockedRect", to_string_flags_, tab_count, tab_size, StructPointerDecoderToString(pLockedRect, to_string_flags_, tab_count, tab_size)); - } - ); -} - -void Dx12AsciiConsumer::Process_IDXGIOutputDuplication_UnMapDesktopSurface( - const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "IDXGIOutputDuplication"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "UnMapDesktopSurface"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - } - ); -} - -void Dx12AsciiConsumer::Process_IDXGIOutputDuplication_ReleaseFrame( - const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "IDXGIOutputDuplication"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "ReleaseFrame"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - } - ); -} - -void Dx12AsciiConsumer::Process_IDXGISurface2_GetResource( - const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value, - Decoded_GUID riid, - HandlePointerDecoder* ppParentResource, - PointerDecoder* pSubresourceIndex) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "IDXGISurface2"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "GetResource"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "riid", to_string_flags_, tab_count, tab_size, ToString(*riid.decoded_value, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "[out]ppParentResource", to_string_flags_, tab_count, tab_size, OutPtrDecoderToString(ppParentResource)); - FieldToString(str_strm, false, "[out]pSubresourceIndex", to_string_flags_, tab_count, tab_size, PointerDecoderToString(pSubresourceIndex, to_string_flags_, tab_count, tab_size)); - } - ); -} - -void Dx12AsciiConsumer::Process_IDXGIResource1_CreateSubresourceSurface( - const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value, - UINT index, - HandlePointerDecoder* ppSurface) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "IDXGIResource1"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "CreateSubresourceSurface"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "index", to_string_flags_, tab_count, tab_size, ToString(index, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "[out]ppSurface", to_string_flags_, tab_count, tab_size, OutPtrDecoderToString(ppSurface)); - } - ); -} - -void Dx12AsciiConsumer::Process_IDXGIResource1_CreateSharedHandle( - const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value, - StructPointerDecoder* pAttributes, - DWORD dwAccess, - WStringDecoder* lpName, - PointerDecoder* pHandle) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "IDXGIResource1"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "CreateSharedHandle"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "pAttributes", to_string_flags_, tab_count, tab_size, StructPointerDecoderToString(pAttributes, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "dwAccess", to_string_flags_, tab_count, tab_size, ToString(dwAccess, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "lpName", to_string_flags_, tab_count, tab_size, StringDecoderToString(lpName)); - FieldToString(str_strm, false, "[out]pHandle", to_string_flags_, tab_count, tab_size, HandleIdToString(pHandle)); - } - ); -} - -void Dx12AsciiConsumer::Process_IDXGIDevice2_OfferResources( - const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value, - UINT NumResources, - HandlePointerDecoder* ppResources, - DXGI_OFFER_RESOURCE_PRIORITY Priority) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "IDXGIDevice2"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "OfferResources"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "NumResources", to_string_flags_, tab_count, tab_size, ToString(NumResources, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "ppResources", to_string_flags_, tab_count, tab_size, PointerDecoderArrayToString(NumResources, ppResources, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "Priority", to_string_flags_, tab_count, tab_size, Quote(ToString(Priority))); - } - ); -} - -void Dx12AsciiConsumer::Process_IDXGIDevice2_ReclaimResources( - const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value, - UINT NumResources, - HandlePointerDecoder* ppResources, - PointerDecoder* pDiscarded) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "IDXGIDevice2"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "ReclaimResources"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "NumResources", to_string_flags_, tab_count, tab_size, ToString(NumResources, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "ppResources", to_string_flags_, tab_count, tab_size, PointerDecoderArrayToString(NumResources, ppResources, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "[out]pDiscarded", to_string_flags_, tab_count, tab_size, PointerDecoderArrayToString(NumResources, pDiscarded, to_string_flags_, tab_count, tab_size)); - } - ); -} - -void Dx12AsciiConsumer::Process_IDXGIDevice2_EnqueueSetEvent( - const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value, - uint64_t hEvent) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "IDXGIDevice2"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "EnqueueSetEvent"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "hEvent", to_string_flags_, tab_count, tab_size, HandleIdToString(hEvent)); - } - ); -} - -void Dx12AsciiConsumer::Process_IDXGISwapChain1_GetDesc1( - const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value, - StructPointerDecoder* pDesc) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "IDXGISwapChain1"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "GetDesc1"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "[out]pDesc", to_string_flags_, tab_count, tab_size, StructPointerDecoderToString(pDesc, to_string_flags_, tab_count, tab_size)); - } - ); -} - -void Dx12AsciiConsumer::Process_IDXGISwapChain1_GetFullscreenDesc( - const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value, - StructPointerDecoder* pDesc) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "IDXGISwapChain1"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "GetFullscreenDesc"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "[out]pDesc", to_string_flags_, tab_count, tab_size, StructPointerDecoderToString(pDesc, to_string_flags_, tab_count, tab_size)); - } - ); -} - -void Dx12AsciiConsumer::Process_IDXGISwapChain1_GetHwnd( - const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value, - PointerDecoder* pHwnd) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "IDXGISwapChain1"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "GetHwnd"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "[out]pHwnd", to_string_flags_, tab_count, tab_size, HandleIdToString(pHwnd)); - } - ); -} - -void Dx12AsciiConsumer::Process_IDXGISwapChain1_GetCoreWindow( - const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value, - Decoded_GUID refiid, - HandlePointerDecoder* ppUnk) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "IDXGISwapChain1"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "GetCoreWindow"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "refiid", to_string_flags_, tab_count, tab_size, ToString(*refiid.decoded_value, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "[out]ppUnk", to_string_flags_, tab_count, tab_size, OutPtrDecoderToString(ppUnk)); - } - ); -} - -void Dx12AsciiConsumer::Process_IDXGISwapChain1_Present1( - const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value, - UINT SyncInterval, - UINT PresentFlags, - StructPointerDecoder* pPresentParameters) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "IDXGISwapChain1"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "Present1"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "SyncInterval", to_string_flags_, tab_count, tab_size, ToString(SyncInterval, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "PresentFlags", to_string_flags_, tab_count, tab_size, ToString(PresentFlags, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "pPresentParameters", to_string_flags_, tab_count, tab_size, StructPointerDecoderToString(pPresentParameters, to_string_flags_, tab_count, tab_size)); - } - ); -} - -void Dx12AsciiConsumer::Process_IDXGISwapChain1_IsTemporaryMonoSupported( - const ApiCallInfo& call_info, - format::HandleId object_id, - BOOL return_value) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "IDXGISwapChain1"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "IsTemporaryMonoSupported"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - } - ); -} - -void Dx12AsciiConsumer::Process_IDXGISwapChain1_GetRestrictToOutput( - const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value, - HandlePointerDecoder* ppRestrictToOutput) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "IDXGISwapChain1"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "GetRestrictToOutput"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "[out]ppRestrictToOutput", to_string_flags_, tab_count, tab_size, HandleIdToString(ppRestrictToOutput)); - } - ); -} - -void Dx12AsciiConsumer::Process_IDXGISwapChain1_SetBackgroundColor( - const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value, - StructPointerDecoder* pColor) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "IDXGISwapChain1"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "SetBackgroundColor"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "pColor", to_string_flags_, tab_count, tab_size, StructPointerDecoderToString(pColor, to_string_flags_, tab_count, tab_size)); - } - ); -} - -void Dx12AsciiConsumer::Process_IDXGISwapChain1_GetBackgroundColor( - const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value, - StructPointerDecoder* pColor) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "IDXGISwapChain1"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "GetBackgroundColor"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "[out]pColor", to_string_flags_, tab_count, tab_size, StructPointerDecoderToString(pColor, to_string_flags_, tab_count, tab_size)); - } - ); -} - -void Dx12AsciiConsumer::Process_IDXGISwapChain1_SetRotation( - const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value, - DXGI_MODE_ROTATION Rotation) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "IDXGISwapChain1"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "SetRotation"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "Rotation", to_string_flags_, tab_count, tab_size, Quote(ToString(Rotation))); - } - ); -} - -void Dx12AsciiConsumer::Process_IDXGISwapChain1_GetRotation( - const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value, - PointerDecoder* pRotation) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "IDXGISwapChain1"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "GetRotation"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "[out]pRotation", to_string_flags_, tab_count, tab_size, EnumPointerDecoderToString(pRotation)); - } - ); -} - -void Dx12AsciiConsumer::Process_IDXGIFactory2_IsWindowedStereoEnabled( - const ApiCallInfo& call_info, - format::HandleId object_id, - BOOL return_value) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "IDXGIFactory2"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "IsWindowedStereoEnabled"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - } - ); -} - -void Dx12AsciiConsumer::Process_IDXGIFactory2_CreateSwapChainForHwnd( - const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value, - format::HandleId pDevice, - uint64_t hWnd, - StructPointerDecoder* pDesc, - StructPointerDecoder* pFullscreenDesc, - format::HandleId pRestrictToOutput, - HandlePointerDecoder* ppSwapChain) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "IDXGIFactory2"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "CreateSwapChainForHwnd"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "pDevice", to_string_flags_, tab_count, tab_size, HandleIdToString(pDevice)); - FieldToString(str_strm, false, "hWnd", to_string_flags_, tab_count, tab_size, HandleIdToString(hWnd)); - FieldToString(str_strm, false, "pDesc", to_string_flags_, tab_count, tab_size, StructPointerDecoderToString(pDesc, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "pFullscreenDesc", to_string_flags_, tab_count, tab_size, StructPointerDecoderToString(pFullscreenDesc, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "pRestrictToOutput", to_string_flags_, tab_count, tab_size, HandleIdToString(pRestrictToOutput)); - FieldToString(str_strm, false, "[out]ppSwapChain", to_string_flags_, tab_count, tab_size, OutPtrDecoderToString(ppSwapChain)); - } - ); -} - -void Dx12AsciiConsumer::Process_IDXGIFactory2_CreateSwapChainForCoreWindow( - const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value, - format::HandleId pDevice, - format::HandleId pWindow, - StructPointerDecoder* pDesc, - format::HandleId pRestrictToOutput, - HandlePointerDecoder* ppSwapChain) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "IDXGIFactory2"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "CreateSwapChainForCoreWindow"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "pDevice", to_string_flags_, tab_count, tab_size, HandleIdToString(pDevice)); - FieldToString(str_strm, false, "pWindow", to_string_flags_, tab_count, tab_size, HandleIdToString(pWindow)); - FieldToString(str_strm, false, "pDesc", to_string_flags_, tab_count, tab_size, StructPointerDecoderToString(pDesc, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "pRestrictToOutput", to_string_flags_, tab_count, tab_size, HandleIdToString(pRestrictToOutput)); - FieldToString(str_strm, false, "[out]ppSwapChain", to_string_flags_, tab_count, tab_size, OutPtrDecoderToString(ppSwapChain)); - } - ); -} - -void Dx12AsciiConsumer::Process_IDXGIFactory2_GetSharedResourceAdapterLuid( - const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value, - uint64_t hResource, - StructPointerDecoder* pLuid) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "IDXGIFactory2"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "GetSharedResourceAdapterLuid"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "hResource", to_string_flags_, tab_count, tab_size, HandleIdToString(hResource)); - FieldToString(str_strm, false, "[out]pLuid", to_string_flags_, tab_count, tab_size, StructPointerDecoderToString(pLuid, to_string_flags_, tab_count, tab_size)); - } - ); -} - -void Dx12AsciiConsumer::Process_IDXGIFactory2_RegisterStereoStatusWindow( - const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value, - uint64_t WindowHandle, - UINT wMsg, - PointerDecoder* pdwCookie) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "IDXGIFactory2"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "RegisterStereoStatusWindow"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "WindowHandle", to_string_flags_, tab_count, tab_size, HandleIdToString(WindowHandle)); - FieldToString(str_strm, false, "wMsg", to_string_flags_, tab_count, tab_size, ToString(wMsg, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "[out]pdwCookie", to_string_flags_, tab_count, tab_size, PointerDecoderToString(pdwCookie, to_string_flags_, tab_count, tab_size)); - } - ); -} - -void Dx12AsciiConsumer::Process_IDXGIFactory2_RegisterStereoStatusEvent( - const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value, - uint64_t hEvent, - PointerDecoder* pdwCookie) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "IDXGIFactory2"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "RegisterStereoStatusEvent"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "hEvent", to_string_flags_, tab_count, tab_size, HandleIdToString(hEvent)); - FieldToString(str_strm, false, "[out]pdwCookie", to_string_flags_, tab_count, tab_size, PointerDecoderToString(pdwCookie, to_string_flags_, tab_count, tab_size)); - } - ); -} - -void Dx12AsciiConsumer::Process_IDXGIFactory2_UnregisterStereoStatus( - const ApiCallInfo& call_info, - format::HandleId object_id, - DWORD dwCookie) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "IDXGIFactory2"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "UnregisterStereoStatus"; - std::string returnValue = std::string(); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "dwCookie", to_string_flags_, tab_count, tab_size, ToString(dwCookie, to_string_flags_, tab_count, tab_size)); - } - ); -} - -void Dx12AsciiConsumer::Process_IDXGIFactory2_RegisterOcclusionStatusWindow( - const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value, - uint64_t WindowHandle, - UINT wMsg, - PointerDecoder* pdwCookie) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "IDXGIFactory2"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "RegisterOcclusionStatusWindow"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "WindowHandle", to_string_flags_, tab_count, tab_size, HandleIdToString(WindowHandle)); - FieldToString(str_strm, false, "wMsg", to_string_flags_, tab_count, tab_size, ToString(wMsg, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "[out]pdwCookie", to_string_flags_, tab_count, tab_size, PointerDecoderToString(pdwCookie, to_string_flags_, tab_count, tab_size)); - } - ); -} - -void Dx12AsciiConsumer::Process_IDXGIFactory2_RegisterOcclusionStatusEvent( - const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value, - uint64_t hEvent, - PointerDecoder* pdwCookie) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "IDXGIFactory2"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "RegisterOcclusionStatusEvent"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "hEvent", to_string_flags_, tab_count, tab_size, HandleIdToString(hEvent)); - FieldToString(str_strm, false, "[out]pdwCookie", to_string_flags_, tab_count, tab_size, PointerDecoderToString(pdwCookie, to_string_flags_, tab_count, tab_size)); - } - ); -} - -void Dx12AsciiConsumer::Process_IDXGIFactory2_UnregisterOcclusionStatus( - const ApiCallInfo& call_info, - format::HandleId object_id, - DWORD dwCookie) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "IDXGIFactory2"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "UnregisterOcclusionStatus"; - std::string returnValue = std::string(); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "dwCookie", to_string_flags_, tab_count, tab_size, ToString(dwCookie, to_string_flags_, tab_count, tab_size)); - } - ); -} - -void Dx12AsciiConsumer::Process_IDXGIFactory2_CreateSwapChainForComposition( - const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value, - format::HandleId pDevice, - StructPointerDecoder* pDesc, - format::HandleId pRestrictToOutput, - HandlePointerDecoder* ppSwapChain) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "IDXGIFactory2"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "CreateSwapChainForComposition"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "pDevice", to_string_flags_, tab_count, tab_size, HandleIdToString(pDevice)); - FieldToString(str_strm, false, "pDesc", to_string_flags_, tab_count, tab_size, StructPointerDecoderToString(pDesc, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "pRestrictToOutput", to_string_flags_, tab_count, tab_size, HandleIdToString(pRestrictToOutput)); - FieldToString(str_strm, false, "[out]ppSwapChain", to_string_flags_, tab_count, tab_size, OutPtrDecoderToString(ppSwapChain)); - } - ); -} - -void Dx12AsciiConsumer::Process_IDXGIAdapter2_GetDesc2( - const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value, - StructPointerDecoder* pDesc) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "IDXGIAdapter2"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "GetDesc2"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "[out]pDesc", to_string_flags_, tab_count, tab_size, StructPointerDecoderToString(pDesc, to_string_flags_, tab_count, tab_size)); - } - ); -} - -void Dx12AsciiConsumer::Process_IDXGIOutput1_GetDisplayModeList1( - const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value, - DXGI_FORMAT EnumFormat, - UINT Flags, - PointerDecoder* pNumModes, - StructPointerDecoder* pDesc) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "IDXGIOutput1"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "GetDisplayModeList1"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "EnumFormat", to_string_flags_, tab_count, tab_size, Quote(ToString(EnumFormat))); - FieldToString(str_strm, false, "Flags", to_string_flags_, tab_count, tab_size, ToString(Flags, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "pNumModes", to_string_flags_, tab_count, tab_size, PointerDecoderToString(pNumModes, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "[out]pDesc", to_string_flags_, tab_count, tab_size, StructPointerDecoderArrayToString(pNumModes, pDesc, to_string_flags_, tab_count, tab_size)); - } - ); -} - -void Dx12AsciiConsumer::Process_IDXGIOutput1_FindClosestMatchingMode1( - const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value, - StructPointerDecoder* pModeToMatch, - StructPointerDecoder* pClosestMatch, - format::HandleId pConcernedDevice) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "IDXGIOutput1"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "FindClosestMatchingMode1"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "pModeToMatch", to_string_flags_, tab_count, tab_size, StructPointerDecoderToString(pModeToMatch, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "[out]pClosestMatch", to_string_flags_, tab_count, tab_size, StructPointerDecoderToString(pClosestMatch, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "pConcernedDevice", to_string_flags_, tab_count, tab_size, HandleIdToString(pConcernedDevice)); - } - ); -} - -void Dx12AsciiConsumer::Process_IDXGIOutput1_GetDisplaySurfaceData1( - const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value, - format::HandleId pDestination) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "IDXGIOutput1"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "GetDisplaySurfaceData1"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "pDestination", to_string_flags_, tab_count, tab_size, HandleIdToString(pDestination)); - } - ); -} - -void Dx12AsciiConsumer::Process_IDXGIOutput1_DuplicateOutput( - const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value, - format::HandleId pDevice, - HandlePointerDecoder* ppOutputDuplication) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "IDXGIOutput1"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "DuplicateOutput"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "pDevice", to_string_flags_, tab_count, tab_size, HandleIdToString(pDevice)); - FieldToString(str_strm, false, "[out]ppOutputDuplication", to_string_flags_, tab_count, tab_size, OutPtrDecoderToString(ppOutputDuplication)); - } - ); -} - -/* -** This part is generated from dxgi1_3.h in Windows SDK: 10.0.20348.0 -** -*/ -void Dx12AsciiConsumer::Process_CreateDXGIFactory2( - const ApiCallInfo& call_info, - HRESULT return_value, - UINT Flags, - Decoded_GUID riid, - HandlePointerDecoder* ppFactory) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = nullptr; - writeApiCallToFileInfo.handleId = 0; - writeApiCallToFileInfo.pFunctionName = "CreateDXGIFactory2"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "Flags", to_string_flags_, tab_count, tab_size, ToString(Flags, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "riid", to_string_flags_, tab_count, tab_size, ToString(*riid.decoded_value, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "[out]ppFactory", to_string_flags_, tab_count, tab_size, OutPtrDecoderToString(ppFactory)); - } - ); -} - -void Dx12AsciiConsumer::Process_DXGIGetDebugInterface1( - const ApiCallInfo& call_info, - HRESULT return_value, - UINT Flags, - Decoded_GUID riid, - HandlePointerDecoder* pDebug) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = nullptr; - writeApiCallToFileInfo.handleId = 0; - writeApiCallToFileInfo.pFunctionName = "DXGIGetDebugInterface1"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "Flags", to_string_flags_, tab_count, tab_size, ToString(Flags, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "riid", to_string_flags_, tab_count, tab_size, ToString(*riid.decoded_value, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "[out]pDebug", to_string_flags_, tab_count, tab_size, OutPtrDecoderToString(pDebug)); - } - ); -} - -void Dx12AsciiConsumer::Process_IDXGIDevice3_Trim( - const ApiCallInfo& call_info, - format::HandleId object_id) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "IDXGIDevice3"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "Trim"; - std::string returnValue = std::string(); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - } - ); -} - -void Dx12AsciiConsumer::Process_IDXGISwapChain2_SetSourceSize( - const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value, - UINT Width, - UINT Height) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "IDXGISwapChain2"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "SetSourceSize"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "Width", to_string_flags_, tab_count, tab_size, ToString(Width, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "Height", to_string_flags_, tab_count, tab_size, ToString(Height, to_string_flags_, tab_count, tab_size)); - } - ); -} - -void Dx12AsciiConsumer::Process_IDXGISwapChain2_GetSourceSize( - const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value, - PointerDecoder* pWidth, - PointerDecoder* pHeight) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "IDXGISwapChain2"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "GetSourceSize"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "[out]pWidth", to_string_flags_, tab_count, tab_size, PointerDecoderToString(pWidth, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "[out]pHeight", to_string_flags_, tab_count, tab_size, PointerDecoderToString(pHeight, to_string_flags_, tab_count, tab_size)); - } - ); -} - -void Dx12AsciiConsumer::Process_IDXGISwapChain2_SetMaximumFrameLatency( - const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value, - UINT MaxLatency) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "IDXGISwapChain2"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "SetMaximumFrameLatency"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "MaxLatency", to_string_flags_, tab_count, tab_size, ToString(MaxLatency, to_string_flags_, tab_count, tab_size)); - } - ); -} - -void Dx12AsciiConsumer::Process_IDXGISwapChain2_GetMaximumFrameLatency( - const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value, - PointerDecoder* pMaxLatency) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "IDXGISwapChain2"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "GetMaximumFrameLatency"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "[out]pMaxLatency", to_string_flags_, tab_count, tab_size, PointerDecoderToString(pMaxLatency, to_string_flags_, tab_count, tab_size)); - } - ); -} - -void Dx12AsciiConsumer::Process_IDXGISwapChain2_GetFrameLatencyWaitableObject( - const ApiCallInfo& call_info, - format::HandleId object_id, - uint64_t return_value) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "IDXGISwapChain2"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "GetFrameLatencyWaitableObject"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - } - ); -} - -void Dx12AsciiConsumer::Process_IDXGISwapChain2_SetMatrixTransform( - const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value, - StructPointerDecoder* pMatrix) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "IDXGISwapChain2"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "SetMatrixTransform"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "pMatrix", to_string_flags_, tab_count, tab_size, StructPointerDecoderToString(pMatrix, to_string_flags_, tab_count, tab_size)); - } - ); -} - -void Dx12AsciiConsumer::Process_IDXGISwapChain2_GetMatrixTransform( - const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value, - StructPointerDecoder* pMatrix) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "IDXGISwapChain2"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "GetMatrixTransform"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "[out]pMatrix", to_string_flags_, tab_count, tab_size, StructPointerDecoderToString(pMatrix, to_string_flags_, tab_count, tab_size)); - } - ); -} - -void Dx12AsciiConsumer::Process_IDXGIOutput2_SupportsOverlays( - const ApiCallInfo& call_info, - format::HandleId object_id, - BOOL return_value) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "IDXGIOutput2"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "SupportsOverlays"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - } - ); -} - -void Dx12AsciiConsumer::Process_IDXGIFactory3_GetCreationFlags( - const ApiCallInfo& call_info, - format::HandleId object_id, - UINT return_value) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "IDXGIFactory3"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "GetCreationFlags"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - } - ); -} - -void Dx12AsciiConsumer::Process_IDXGIDecodeSwapChain_PresentBuffer( - const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value, - UINT BufferToPresent, - UINT SyncInterval, - UINT Flags) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "IDXGIDecodeSwapChain"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "PresentBuffer"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "BufferToPresent", to_string_flags_, tab_count, tab_size, ToString(BufferToPresent, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "SyncInterval", to_string_flags_, tab_count, tab_size, ToString(SyncInterval, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "Flags", to_string_flags_, tab_count, tab_size, ToString(Flags, to_string_flags_, tab_count, tab_size)); - } - ); -} - -void Dx12AsciiConsumer::Process_IDXGIDecodeSwapChain_SetSourceRect( - const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value, - StructPointerDecoder* pRect) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "IDXGIDecodeSwapChain"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "SetSourceRect"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "pRect", to_string_flags_, tab_count, tab_size, StructPointerDecoderToString(pRect, to_string_flags_, tab_count, tab_size)); - } - ); -} - -void Dx12AsciiConsumer::Process_IDXGIDecodeSwapChain_SetTargetRect( - const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value, - StructPointerDecoder* pRect) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "IDXGIDecodeSwapChain"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "SetTargetRect"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "pRect", to_string_flags_, tab_count, tab_size, StructPointerDecoderToString(pRect, to_string_flags_, tab_count, tab_size)); - } - ); -} - -void Dx12AsciiConsumer::Process_IDXGIDecodeSwapChain_SetDestSize( - const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value, - UINT Width, - UINT Height) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "IDXGIDecodeSwapChain"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "SetDestSize"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "Width", to_string_flags_, tab_count, tab_size, ToString(Width, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "Height", to_string_flags_, tab_count, tab_size, ToString(Height, to_string_flags_, tab_count, tab_size)); - } - ); -} - -void Dx12AsciiConsumer::Process_IDXGIDecodeSwapChain_GetSourceRect( - const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value, - StructPointerDecoder* pRect) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "IDXGIDecodeSwapChain"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "GetSourceRect"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "[out]pRect", to_string_flags_, tab_count, tab_size, StructPointerDecoderToString(pRect, to_string_flags_, tab_count, tab_size)); - } - ); -} - -void Dx12AsciiConsumer::Process_IDXGIDecodeSwapChain_GetTargetRect( - const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value, - StructPointerDecoder* pRect) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "IDXGIDecodeSwapChain"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "GetTargetRect"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "[out]pRect", to_string_flags_, tab_count, tab_size, StructPointerDecoderToString(pRect, to_string_flags_, tab_count, tab_size)); - } - ); -} - -void Dx12AsciiConsumer::Process_IDXGIDecodeSwapChain_GetDestSize( - const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value, - PointerDecoder* pWidth, - PointerDecoder* pHeight) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "IDXGIDecodeSwapChain"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "GetDestSize"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "[out]pWidth", to_string_flags_, tab_count, tab_size, PointerDecoderToString(pWidth, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "[out]pHeight", to_string_flags_, tab_count, tab_size, PointerDecoderToString(pHeight, to_string_flags_, tab_count, tab_size)); - } - ); -} - -void Dx12AsciiConsumer::Process_IDXGIDecodeSwapChain_SetColorSpace( - const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value, - DXGI_MULTIPLANE_OVERLAY_YCbCr_FLAGS ColorSpace) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "IDXGIDecodeSwapChain"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "SetColorSpace"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "ColorSpace", to_string_flags_, tab_count, tab_size, Quote(ToString(ColorSpace))); - } - ); -} - -void Dx12AsciiConsumer::Process_IDXGIDecodeSwapChain_GetColorSpace( - const ApiCallInfo& call_info, - format::HandleId object_id, - DXGI_MULTIPLANE_OVERLAY_YCbCr_FLAGS return_value) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "IDXGIDecodeSwapChain"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "GetColorSpace"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - } - ); -} - -void Dx12AsciiConsumer::Process_IDXGIFactoryMedia_CreateSwapChainForCompositionSurfaceHandle( - const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value, - format::HandleId pDevice, - uint64_t hSurface, - StructPointerDecoder* pDesc, - format::HandleId pRestrictToOutput, - HandlePointerDecoder* ppSwapChain) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "IDXGIFactoryMedia"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "CreateSwapChainForCompositionSurfaceHandle"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "pDevice", to_string_flags_, tab_count, tab_size, HandleIdToString(pDevice)); - FieldToString(str_strm, false, "hSurface", to_string_flags_, tab_count, tab_size, HandleIdToString(hSurface)); - FieldToString(str_strm, false, "pDesc", to_string_flags_, tab_count, tab_size, StructPointerDecoderToString(pDesc, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "pRestrictToOutput", to_string_flags_, tab_count, tab_size, HandleIdToString(pRestrictToOutput)); - FieldToString(str_strm, false, "[out]ppSwapChain", to_string_flags_, tab_count, tab_size, OutPtrDecoderToString(ppSwapChain)); - } - ); -} - -void Dx12AsciiConsumer::Process_IDXGIFactoryMedia_CreateDecodeSwapChainForCompositionSurfaceHandle( - const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value, - format::HandleId pDevice, - uint64_t hSurface, - StructPointerDecoder* pDesc, - format::HandleId pYuvDecodeBuffers, - format::HandleId pRestrictToOutput, - HandlePointerDecoder* ppSwapChain) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "IDXGIFactoryMedia"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "CreateDecodeSwapChainForCompositionSurfaceHandle"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "pDevice", to_string_flags_, tab_count, tab_size, HandleIdToString(pDevice)); - FieldToString(str_strm, false, "hSurface", to_string_flags_, tab_count, tab_size, HandleIdToString(hSurface)); - FieldToString(str_strm, false, "pDesc", to_string_flags_, tab_count, tab_size, StructPointerDecoderToString(pDesc, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "pYuvDecodeBuffers", to_string_flags_, tab_count, tab_size, HandleIdToString(pYuvDecodeBuffers)); - FieldToString(str_strm, false, "pRestrictToOutput", to_string_flags_, tab_count, tab_size, HandleIdToString(pRestrictToOutput)); - FieldToString(str_strm, false, "[out]ppSwapChain", to_string_flags_, tab_count, tab_size, OutPtrDecoderToString(ppSwapChain)); - } - ); -} - -void Dx12AsciiConsumer::Process_IDXGISwapChainMedia_GetFrameStatisticsMedia( - const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value, - StructPointerDecoder* pStats) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "IDXGISwapChainMedia"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "GetFrameStatisticsMedia"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "[out]pStats", to_string_flags_, tab_count, tab_size, StructPointerDecoderToString(pStats, to_string_flags_, tab_count, tab_size)); - } - ); -} - -void Dx12AsciiConsumer::Process_IDXGISwapChainMedia_SetPresentDuration( - const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value, - UINT Duration) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "IDXGISwapChainMedia"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "SetPresentDuration"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "Duration", to_string_flags_, tab_count, tab_size, ToString(Duration, to_string_flags_, tab_count, tab_size)); - } - ); -} - -void Dx12AsciiConsumer::Process_IDXGISwapChainMedia_CheckPresentDurationSupport( - const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value, - UINT DesiredPresentDuration, - PointerDecoder* pClosestSmallerPresentDuration, - PointerDecoder* pClosestLargerPresentDuration) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "IDXGISwapChainMedia"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "CheckPresentDurationSupport"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "DesiredPresentDuration", to_string_flags_, tab_count, tab_size, ToString(DesiredPresentDuration, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "[out]pClosestSmallerPresentDuration", to_string_flags_, tab_count, tab_size, PointerDecoderToString(pClosestSmallerPresentDuration, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "[out]pClosestLargerPresentDuration", to_string_flags_, tab_count, tab_size, PointerDecoderToString(pClosestLargerPresentDuration, to_string_flags_, tab_count, tab_size)); - } - ); -} - -void Dx12AsciiConsumer::Process_IDXGIOutput3_CheckOverlaySupport( - const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value, - DXGI_FORMAT EnumFormat, - format::HandleId pConcernedDevice, - PointerDecoder* pFlags) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "IDXGIOutput3"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "CheckOverlaySupport"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "EnumFormat", to_string_flags_, tab_count, tab_size, Quote(ToString(EnumFormat))); - FieldToString(str_strm, false, "pConcernedDevice", to_string_flags_, tab_count, tab_size, HandleIdToString(pConcernedDevice)); - FieldToString(str_strm, false, "[out]pFlags", to_string_flags_, tab_count, tab_size, PointerDecoderToString(pFlags, to_string_flags_, tab_count, tab_size)); - } - ); -} - -/* -** This part is generated from dxgi1_4.h in Windows SDK: 10.0.20348.0 -** -*/ -void Dx12AsciiConsumer::Process_IDXGISwapChain3_GetCurrentBackBufferIndex( - const ApiCallInfo& call_info, - format::HandleId object_id, - UINT return_value) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "IDXGISwapChain3"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "GetCurrentBackBufferIndex"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - } - ); -} - -void Dx12AsciiConsumer::Process_IDXGISwapChain3_CheckColorSpaceSupport( - const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value, - DXGI_COLOR_SPACE_TYPE ColorSpace, - PointerDecoder* pColorSpaceSupport) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "IDXGISwapChain3"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "CheckColorSpaceSupport"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "ColorSpace", to_string_flags_, tab_count, tab_size, Quote(ToString(ColorSpace))); - FieldToString(str_strm, false, "[out]pColorSpaceSupport", to_string_flags_, tab_count, tab_size, PointerDecoderToString(pColorSpaceSupport, to_string_flags_, tab_count, tab_size)); - } - ); -} - -void Dx12AsciiConsumer::Process_IDXGISwapChain3_SetColorSpace1( - const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value, - DXGI_COLOR_SPACE_TYPE ColorSpace) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "IDXGISwapChain3"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "SetColorSpace1"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "ColorSpace", to_string_flags_, tab_count, tab_size, Quote(ToString(ColorSpace))); - } - ); -} - -void Dx12AsciiConsumer::Process_IDXGISwapChain3_ResizeBuffers1( - const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value, - UINT BufferCount, - UINT Width, - UINT Height, - DXGI_FORMAT Format, - UINT SwapChainFlags, - PointerDecoder* pCreationNodeMask, - HandlePointerDecoder* ppPresentQueue) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "IDXGISwapChain3"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "ResizeBuffers1"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "BufferCount", to_string_flags_, tab_count, tab_size, ToString(BufferCount, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "Width", to_string_flags_, tab_count, tab_size, ToString(Width, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "Height", to_string_flags_, tab_count, tab_size, ToString(Height, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "Format", to_string_flags_, tab_count, tab_size, Quote(ToString(Format))); - FieldToString(str_strm, false, "SwapChainFlags", to_string_flags_, tab_count, tab_size, ToString(SwapChainFlags, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "pCreationNodeMask", to_string_flags_, tab_count, tab_size, PointerDecoderArrayToString(BufferCount, pCreationNodeMask, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "ppPresentQueue", to_string_flags_, tab_count, tab_size, PointerDecoderArrayToString(BufferCount, ppPresentQueue, to_string_flags_, tab_count, tab_size)); - } - ); -} - -void Dx12AsciiConsumer::Process_IDXGIOutput4_CheckOverlayColorSpaceSupport( - const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value, - DXGI_FORMAT Format, - DXGI_COLOR_SPACE_TYPE ColorSpace, - format::HandleId pConcernedDevice, - PointerDecoder* pFlags) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "IDXGIOutput4"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "CheckOverlayColorSpaceSupport"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "Format", to_string_flags_, tab_count, tab_size, Quote(ToString(Format))); - FieldToString(str_strm, false, "ColorSpace", to_string_flags_, tab_count, tab_size, Quote(ToString(ColorSpace))); - FieldToString(str_strm, false, "pConcernedDevice", to_string_flags_, tab_count, tab_size, HandleIdToString(pConcernedDevice)); - FieldToString(str_strm, false, "[out]pFlags", to_string_flags_, tab_count, tab_size, PointerDecoderToString(pFlags, to_string_flags_, tab_count, tab_size)); - } - ); -} - -void Dx12AsciiConsumer::Process_IDXGIFactory4_EnumAdapterByLuid( - const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value, - Decoded_LUID AdapterLuid, - Decoded_GUID riid, - HandlePointerDecoder* ppvAdapter) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "IDXGIFactory4"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "EnumAdapterByLuid"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "AdapterLuid", to_string_flags_, tab_count, tab_size, ToString(*AdapterLuid.decoded_value, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "riid", to_string_flags_, tab_count, tab_size, ToString(*riid.decoded_value, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "[out]ppvAdapter", to_string_flags_, tab_count, tab_size, OutPtrDecoderToString(ppvAdapter)); - } - ); -} - -void Dx12AsciiConsumer::Process_IDXGIFactory4_EnumWarpAdapter( - const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value, - Decoded_GUID riid, - HandlePointerDecoder* ppvAdapter) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "IDXGIFactory4"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "EnumWarpAdapter"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "riid", to_string_flags_, tab_count, tab_size, ToString(*riid.decoded_value, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "[out]ppvAdapter", to_string_flags_, tab_count, tab_size, OutPtrDecoderToString(ppvAdapter)); - } - ); -} - -void Dx12AsciiConsumer::Process_IDXGIAdapter3_RegisterHardwareContentProtectionTeardownStatusEvent( - const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value, - uint64_t hEvent, - PointerDecoder* pdwCookie) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "IDXGIAdapter3"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "RegisterHardwareContentProtectionTeardownStatusEvent"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "hEvent", to_string_flags_, tab_count, tab_size, HandleIdToString(hEvent)); - FieldToString(str_strm, false, "[out]pdwCookie", to_string_flags_, tab_count, tab_size, PointerDecoderToString(pdwCookie, to_string_flags_, tab_count, tab_size)); - } - ); -} - -void Dx12AsciiConsumer::Process_IDXGIAdapter3_UnregisterHardwareContentProtectionTeardownStatus( - const ApiCallInfo& call_info, - format::HandleId object_id, - DWORD dwCookie) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "IDXGIAdapter3"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "UnregisterHardwareContentProtectionTeardownStatus"; - std::string returnValue = std::string(); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "dwCookie", to_string_flags_, tab_count, tab_size, ToString(dwCookie, to_string_flags_, tab_count, tab_size)); - } - ); -} - -void Dx12AsciiConsumer::Process_IDXGIAdapter3_QueryVideoMemoryInfo( - const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value, - UINT NodeIndex, - DXGI_MEMORY_SEGMENT_GROUP MemorySegmentGroup, - StructPointerDecoder* pVideoMemoryInfo) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "IDXGIAdapter3"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "QueryVideoMemoryInfo"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "NodeIndex", to_string_flags_, tab_count, tab_size, ToString(NodeIndex, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "MemorySegmentGroup", to_string_flags_, tab_count, tab_size, Quote(ToString(MemorySegmentGroup))); - FieldToString(str_strm, false, "[out]pVideoMemoryInfo", to_string_flags_, tab_count, tab_size, StructPointerDecoderToString(pVideoMemoryInfo, to_string_flags_, tab_count, tab_size)); - } - ); -} - -void Dx12AsciiConsumer::Process_IDXGIAdapter3_SetVideoMemoryReservation( - const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value, - UINT NodeIndex, - DXGI_MEMORY_SEGMENT_GROUP MemorySegmentGroup, - UINT64 Reservation) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "IDXGIAdapter3"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "SetVideoMemoryReservation"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "NodeIndex", to_string_flags_, tab_count, tab_size, ToString(NodeIndex, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "MemorySegmentGroup", to_string_flags_, tab_count, tab_size, Quote(ToString(MemorySegmentGroup))); - FieldToString(str_strm, false, "Reservation", to_string_flags_, tab_count, tab_size, ToString(Reservation, to_string_flags_, tab_count, tab_size)); - } - ); -} - -void Dx12AsciiConsumer::Process_IDXGIAdapter3_RegisterVideoMemoryBudgetChangeNotificationEvent( - const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value, - uint64_t hEvent, - PointerDecoder* pdwCookie) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "IDXGIAdapter3"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "RegisterVideoMemoryBudgetChangeNotificationEvent"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "hEvent", to_string_flags_, tab_count, tab_size, HandleIdToString(hEvent)); - FieldToString(str_strm, false, "[out]pdwCookie", to_string_flags_, tab_count, tab_size, PointerDecoderToString(pdwCookie, to_string_flags_, tab_count, tab_size)); - } - ); -} - -void Dx12AsciiConsumer::Process_IDXGIAdapter3_UnregisterVideoMemoryBudgetChangeNotification( - const ApiCallInfo& call_info, - format::HandleId object_id, - DWORD dwCookie) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "IDXGIAdapter3"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "UnregisterVideoMemoryBudgetChangeNotification"; - std::string returnValue = std::string(); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "dwCookie", to_string_flags_, tab_count, tab_size, ToString(dwCookie, to_string_flags_, tab_count, tab_size)); - } - ); -} - -/* -** This part is generated from dxgi1_5.h in Windows SDK: 10.0.20348.0 -** -*/ -void Dx12AsciiConsumer::Process_IDXGIOutput5_DuplicateOutput1( - const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value, - format::HandleId pDevice, - UINT Flags, - UINT SupportedFormatsCount, - PointerDecoder* pSupportedFormats, - HandlePointerDecoder* ppOutputDuplication) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "IDXGIOutput5"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "DuplicateOutput1"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "pDevice", to_string_flags_, tab_count, tab_size, HandleIdToString(pDevice)); - FieldToString(str_strm, false, "Flags", to_string_flags_, tab_count, tab_size, ToString(Flags, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "SupportedFormatsCount", to_string_flags_, tab_count, tab_size, ToString(SupportedFormatsCount, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "pSupportedFormats", to_string_flags_, tab_count, tab_size, EnumPointerDecoderArrayToString(SupportedFormatsCount, pSupportedFormats, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "[out]ppOutputDuplication", to_string_flags_, tab_count, tab_size, OutPtrDecoderToString(ppOutputDuplication)); - } - ); -} - -void Dx12AsciiConsumer::Process_IDXGISwapChain4_SetHDRMetaData( - const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value, - DXGI_HDR_METADATA_TYPE Type, - UINT Size, - PointerDecoder* pMetaData) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "IDXGISwapChain4"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "SetHDRMetaData"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "Type", to_string_flags_, tab_count, tab_size, Quote(ToString(Type))); - FieldToString(str_strm, false, "Size", to_string_flags_, tab_count, tab_size, ToString(Size, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "pMetaData", to_string_flags_, tab_count, tab_size, PointerDecoderArrayToString(Size, pMetaData, to_string_flags_, tab_count, tab_size)); - } - ); -} - -void Dx12AsciiConsumer::Process_IDXGIDevice4_OfferResources1( - const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value, - UINT NumResources, - HandlePointerDecoder* ppResources, - DXGI_OFFER_RESOURCE_PRIORITY Priority, - UINT Flags) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "IDXGIDevice4"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "OfferResources1"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "NumResources", to_string_flags_, tab_count, tab_size, ToString(NumResources, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "ppResources", to_string_flags_, tab_count, tab_size, PointerDecoderArrayToString(NumResources, ppResources, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "Priority", to_string_flags_, tab_count, tab_size, Quote(ToString(Priority))); - FieldToString(str_strm, false, "Flags", to_string_flags_, tab_count, tab_size, ToString(Flags, to_string_flags_, tab_count, tab_size)); - } - ); -} - -void Dx12AsciiConsumer::Process_IDXGIDevice4_ReclaimResources1( - const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value, - UINT NumResources, - HandlePointerDecoder* ppResources, - PointerDecoder* pResults) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "IDXGIDevice4"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "ReclaimResources1"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "NumResources", to_string_flags_, tab_count, tab_size, ToString(NumResources, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "ppResources", to_string_flags_, tab_count, tab_size, PointerDecoderArrayToString(NumResources, ppResources, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "[out]pResults", to_string_flags_, tab_count, tab_size, EnumPointerDecoderArrayToString(NumResources, pResults, to_string_flags_, tab_count, tab_size)); - } - ); -} - -/* -** This part is generated from dxgi1_6.h in Windows SDK: 10.0.20348.0 -** -*/ -void Dx12AsciiConsumer::Process_DXGIDeclareAdapterRemovalSupport( - const ApiCallInfo& call_info, - HRESULT return_value) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = nullptr; - writeApiCallToFileInfo.handleId = 0; - writeApiCallToFileInfo.pFunctionName = "DXGIDeclareAdapterRemovalSupport"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - } - ); -} - -void Dx12AsciiConsumer::Process_IDXGIAdapter4_GetDesc3( - const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value, - StructPointerDecoder* pDesc) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "IDXGIAdapter4"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "GetDesc3"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "[out]pDesc", to_string_flags_, tab_count, tab_size, StructPointerDecoderToString(pDesc, to_string_flags_, tab_count, tab_size)); - } - ); -} - -void Dx12AsciiConsumer::Process_IDXGIOutput6_GetDesc1( - const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value, - StructPointerDecoder* pDesc) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "IDXGIOutput6"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "GetDesc1"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "[out]pDesc", to_string_flags_, tab_count, tab_size, StructPointerDecoderToString(pDesc, to_string_flags_, tab_count, tab_size)); - } - ); -} - -void Dx12AsciiConsumer::Process_IDXGIOutput6_CheckHardwareCompositionSupport( - const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value, - PointerDecoder* pFlags) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "IDXGIOutput6"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "CheckHardwareCompositionSupport"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "[out]pFlags", to_string_flags_, tab_count, tab_size, PointerDecoderToString(pFlags, to_string_flags_, tab_count, tab_size)); - } - ); -} - -void Dx12AsciiConsumer::Process_IDXGIFactory6_EnumAdapterByGpuPreference( - const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value, - UINT Adapter, - DXGI_GPU_PREFERENCE GpuPreference, - Decoded_GUID riid, - HandlePointerDecoder* ppvAdapter) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "IDXGIFactory6"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "EnumAdapterByGpuPreference"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "Adapter", to_string_flags_, tab_count, tab_size, ToString(Adapter, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "GpuPreference", to_string_flags_, tab_count, tab_size, Quote(ToString(GpuPreference))); - FieldToString(str_strm, false, "riid", to_string_flags_, tab_count, tab_size, ToString(*riid.decoded_value, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "[out]ppvAdapter", to_string_flags_, tab_count, tab_size, OutPtrDecoderToString(ppvAdapter)); - } - ); -} - -void Dx12AsciiConsumer::Process_IDXGIFactory7_RegisterAdaptersChangedEvent( - const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value, - uint64_t hEvent, - PointerDecoder* pdwCookie) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "IDXGIFactory7"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "RegisterAdaptersChangedEvent"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "hEvent", to_string_flags_, tab_count, tab_size, HandleIdToString(hEvent)); - FieldToString(str_strm, false, "[out]pdwCookie", to_string_flags_, tab_count, tab_size, PointerDecoderToString(pdwCookie, to_string_flags_, tab_count, tab_size)); - } - ); -} - -void Dx12AsciiConsumer::Process_IDXGIFactory7_UnregisterAdaptersChangedEvent( - const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value, - DWORD dwCookie) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "IDXGIFactory7"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "UnregisterAdaptersChangedEvent"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "dwCookie", to_string_flags_, tab_count, tab_size, ToString(dwCookie, to_string_flags_, tab_count, tab_size)); - } - ); -} - -/* -** This part is generated from d3d12.h in Windows SDK: 10.0.20348.0 -** -*/ -void Dx12AsciiConsumer::Process_D3D12SerializeRootSignature( - const ApiCallInfo& call_info, - HRESULT return_value, - StructPointerDecoder* pRootSignature, - D3D_ROOT_SIGNATURE_VERSION Version, - HandlePointerDecoder* ppBlob, - HandlePointerDecoder* ppErrorBlob) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = nullptr; - writeApiCallToFileInfo.handleId = 0; - writeApiCallToFileInfo.pFunctionName = "D3D12SerializeRootSignature"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "pRootSignature", to_string_flags_, tab_count, tab_size, StructPointerDecoderToString(pRootSignature, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "Version", to_string_flags_, tab_count, tab_size, Quote(ToString(Version))); - FieldToString(str_strm, false, "[out]ppBlob", to_string_flags_, tab_count, tab_size, HandleIdToString(ppBlob)); - FieldToString(str_strm, false, "[out]ppErrorBlob", to_string_flags_, tab_count, tab_size, HandleIdToString(ppErrorBlob)); - } - ); -} - -void Dx12AsciiConsumer::Process_D3D12SerializeVersionedRootSignature( - const ApiCallInfo& call_info, - HRESULT return_value, - StructPointerDecoder* pRootSignature, - HandlePointerDecoder* ppBlob, - HandlePointerDecoder* ppErrorBlob) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = nullptr; - writeApiCallToFileInfo.handleId = 0; - writeApiCallToFileInfo.pFunctionName = "D3D12SerializeVersionedRootSignature"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "pRootSignature", to_string_flags_, tab_count, tab_size, StructPointerDecoderToString(pRootSignature, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "[out]ppBlob", to_string_flags_, tab_count, tab_size, HandleIdToString(ppBlob)); - FieldToString(str_strm, false, "[out]ppErrorBlob", to_string_flags_, tab_count, tab_size, HandleIdToString(ppErrorBlob)); - } - ); -} - -void Dx12AsciiConsumer::Process_D3D12CreateVersionedRootSignatureDeserializer( - const ApiCallInfo& call_info, - HRESULT return_value, - PointerDecoder* pSrcData, - SIZE_T SrcDataSizeInBytes, - Decoded_GUID pRootSignatureDeserializerInterface, - HandlePointerDecoder* ppRootSignatureDeserializer) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = nullptr; - writeApiCallToFileInfo.handleId = 0; - writeApiCallToFileInfo.pFunctionName = "D3D12CreateVersionedRootSignatureDeserializer"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "pSrcData", to_string_flags_, tab_count, tab_size, PointerDecoderArrayToString(SrcDataSizeInBytes, pSrcData, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "SrcDataSizeInBytes", to_string_flags_, tab_count, tab_size, ToString(SrcDataSizeInBytes, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "pRootSignatureDeserializerInterface", to_string_flags_, tab_count, tab_size, ToString(*pRootSignatureDeserializerInterface.decoded_value, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "[out]ppRootSignatureDeserializer", to_string_flags_, tab_count, tab_size, OutPtrDecoderToString(ppRootSignatureDeserializer)); - } - ); -} - -void Dx12AsciiConsumer::Process_D3D12CreateDevice( - const ApiCallInfo& call_info, - HRESULT return_value, - format::HandleId pAdapter, - D3D_FEATURE_LEVEL MinimumFeatureLevel, - Decoded_GUID riid, - HandlePointerDecoder* ppDevice) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = nullptr; - writeApiCallToFileInfo.handleId = 0; - writeApiCallToFileInfo.pFunctionName = "D3D12CreateDevice"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "pAdapter", to_string_flags_, tab_count, tab_size, HandleIdToString(pAdapter)); - FieldToString(str_strm, false, "MinimumFeatureLevel", to_string_flags_, tab_count, tab_size, Quote(ToString(MinimumFeatureLevel))); - FieldToString(str_strm, false, "riid", to_string_flags_, tab_count, tab_size, ToString(*riid.decoded_value, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "[out]ppDevice", to_string_flags_, tab_count, tab_size, OutPtrDecoderToString(ppDevice)); - } - ); -} - -void Dx12AsciiConsumer::Process_D3D12GetDebugInterface( - const ApiCallInfo& call_info, - HRESULT return_value, - Decoded_GUID riid, - HandlePointerDecoder* ppvDebug) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = nullptr; - writeApiCallToFileInfo.handleId = 0; - writeApiCallToFileInfo.pFunctionName = "D3D12GetDebugInterface"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "riid", to_string_flags_, tab_count, tab_size, ToString(*riid.decoded_value, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "[out]ppvDebug", to_string_flags_, tab_count, tab_size, OutPtrDecoderToString(ppvDebug)); - } - ); -} - -void Dx12AsciiConsumer::Process_D3D12EnableExperimentalFeatures( - const ApiCallInfo& call_info, - HRESULT return_value, - UINT NumFeatures, - StructPointerDecoder* pIIDs, - PointerDecoder* pConfigurationStructs, - PointerDecoder* pConfigurationStructSizes) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = nullptr; - writeApiCallToFileInfo.handleId = 0; - writeApiCallToFileInfo.pFunctionName = "D3D12EnableExperimentalFeatures"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "NumFeatures", to_string_flags_, tab_count, tab_size, ToString(NumFeatures, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "pIIDs", to_string_flags_, tab_count, tab_size, StructPointerDecoderArrayToString(NumFeatures, pIIDs, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "pConfigurationStructs", to_string_flags_, tab_count, tab_size, PointerDecoderArrayToString(NumFeatures, pConfigurationStructs, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "pConfigurationStructSizes", to_string_flags_, tab_count, tab_size, PointerDecoderArrayToString(NumFeatures, pConfigurationStructSizes, to_string_flags_, tab_count, tab_size)); - } - ); -} - -void Dx12AsciiConsumer::Process_D3D12GetInterface( - const ApiCallInfo& call_info, - HRESULT return_value, - Decoded_GUID rclsid, - Decoded_GUID riid, - HandlePointerDecoder* ppvDebug) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = nullptr; - writeApiCallToFileInfo.handleId = 0; - writeApiCallToFileInfo.pFunctionName = "D3D12GetInterface"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "rclsid", to_string_flags_, tab_count, tab_size, ToString(*rclsid.decoded_value, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "riid", to_string_flags_, tab_count, tab_size, ToString(*riid.decoded_value, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "[out]ppvDebug", to_string_flags_, tab_count, tab_size, OutPtrDecoderToString(ppvDebug)); - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12Object_GetPrivateData( - const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value, - Decoded_GUID guid, - PointerDecoder* pDataSize, - PointerDecoder* pData) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12Object"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "GetPrivateData"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "guid", to_string_flags_, tab_count, tab_size, ToString(*guid.decoded_value, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "pDataSize", to_string_flags_, tab_count, tab_size, PointerDecoderToString(pDataSize, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "[out]pData", to_string_flags_, tab_count, tab_size, PointerDecoderArrayToString(pDataSize, pData, to_string_flags_, tab_count, tab_size)); - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12Object_SetPrivateData( - const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value, - Decoded_GUID guid, - UINT DataSize, - PointerDecoder* pData) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12Object"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "SetPrivateData"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "guid", to_string_flags_, tab_count, tab_size, ToString(*guid.decoded_value, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "DataSize", to_string_flags_, tab_count, tab_size, ToString(DataSize, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "pData", to_string_flags_, tab_count, tab_size, PointerDecoderArrayToString(DataSize, pData, to_string_flags_, tab_count, tab_size)); - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12Object_SetPrivateDataInterface( - const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value, - Decoded_GUID guid, - format::HandleId pData) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12Object"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "SetPrivateDataInterface"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "guid", to_string_flags_, tab_count, tab_size, ToString(*guid.decoded_value, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "pData", to_string_flags_, tab_count, tab_size, HandleIdToString(pData)); - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12Object_SetName( - const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value, - WStringDecoder* Name) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12Object"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "SetName"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "Name", to_string_flags_, tab_count, tab_size, StringDecoderToString(Name)); - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12DeviceChild_GetDevice( - const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value, - Decoded_GUID riid, - HandlePointerDecoder* ppvDevice) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12DeviceChild"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "GetDevice"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "riid", to_string_flags_, tab_count, tab_size, ToString(*riid.decoded_value, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "[out]ppvDevice", to_string_flags_, tab_count, tab_size, OutPtrDecoderToString(ppvDevice)); - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12VersionedRootSignatureDeserializer_GetRootSignatureDescAtVersion( - const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value, - D3D_ROOT_SIGNATURE_VERSION convertToVersion, - StructPointerDecoder* ppDesc) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12VersionedRootSignatureDeserializer"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "GetRootSignatureDescAtVersion"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "convertToVersion", to_string_flags_, tab_count, tab_size, Quote(ToString(convertToVersion))); - FieldToString(str_strm, false, "[out]ppDesc", to_string_flags_, tab_count, tab_size, StructPointerDecoderToString(ppDesc, to_string_flags_, tab_count, tab_size)); - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12Resource_Map( - const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value, - UINT Subresource, - StructPointerDecoder* pReadRange, - PointerDecoder* ppData) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12Resource"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "Map"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "Subresource", to_string_flags_, tab_count, tab_size, ToString(Subresource, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "pReadRange", to_string_flags_, tab_count, tab_size, StructPointerDecoderToString(pReadRange, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "[out]ppData", to_string_flags_, tab_count, tab_size, PointerDecoderToString(ppData)); - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12Resource_Unmap( - const ApiCallInfo& call_info, - format::HandleId object_id, - UINT Subresource, - StructPointerDecoder* pWrittenRange) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12Resource"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "Unmap"; - std::string returnValue = std::string(); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "Subresource", to_string_flags_, tab_count, tab_size, ToString(Subresource, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "pWrittenRange", to_string_flags_, tab_count, tab_size, StructPointerDecoderToString(pWrittenRange, to_string_flags_, tab_count, tab_size)); - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12Resource_GetGPUVirtualAddress( - const ApiCallInfo& call_info, - format::HandleId object_id, - D3D12_GPU_VIRTUAL_ADDRESS return_value) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12Resource"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "GetGPUVirtualAddress"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12Resource_ReadFromSubresource( - const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value, - uint64_t pDstData, - UINT DstRowPitch, - UINT DstDepthPitch, - UINT SrcSubresource, - StructPointerDecoder* pSrcBox) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12Resource"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "ReadFromSubresource"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "[out]pDstData", to_string_flags_, tab_count, tab_size, HandleIdToString(pDstData)); - FieldToString(str_strm, false, "DstRowPitch", to_string_flags_, tab_count, tab_size, ToString(DstRowPitch, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "DstDepthPitch", to_string_flags_, tab_count, tab_size, ToString(DstDepthPitch, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "SrcSubresource", to_string_flags_, tab_count, tab_size, ToString(SrcSubresource, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "pSrcBox", to_string_flags_, tab_count, tab_size, StructPointerDecoderToString(pSrcBox, to_string_flags_, tab_count, tab_size)); - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12Resource_GetHeapProperties( - const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value, - StructPointerDecoder* pHeapProperties, - PointerDecoder* pHeapFlags) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12Resource"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "GetHeapProperties"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "[out]pHeapProperties", to_string_flags_, tab_count, tab_size, StructPointerDecoderToString(pHeapProperties, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "[out]pHeapFlags", to_string_flags_, tab_count, tab_size, EnumPointerDecoderToString(pHeapFlags)); - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12CommandAllocator_Reset( - const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12CommandAllocator"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "Reset"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12Fence_GetCompletedValue( - const ApiCallInfo& call_info, - format::HandleId object_id, - UINT64 return_value) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12Fence"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "GetCompletedValue"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12Fence_SetEventOnCompletion( - const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value, - UINT64 Value, - uint64_t hEvent) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12Fence"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "SetEventOnCompletion"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "Value", to_string_flags_, tab_count, tab_size, ToString(Value, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "hEvent", to_string_flags_, tab_count, tab_size, HandleIdToString(hEvent)); - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12Fence_Signal( - const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value, - UINT64 Value) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12Fence"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "Signal"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "Value", to_string_flags_, tab_count, tab_size, ToString(Value, to_string_flags_, tab_count, tab_size)); - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12Fence1_GetCreationFlags( - const ApiCallInfo& call_info, - format::HandleId object_id, - D3D12_FENCE_FLAGS return_value) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12Fence1"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "GetCreationFlags"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12PipelineState_GetCachedBlob( - const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value, - HandlePointerDecoder* ppBlob) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12PipelineState"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "GetCachedBlob"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "[out]ppBlob", to_string_flags_, tab_count, tab_size, OutPtrDecoderToString(ppBlob)); - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12GraphicsCommandList_Close( - const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12GraphicsCommandList"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "Close"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12GraphicsCommandList_Reset( - const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value, - format::HandleId pAllocator, - format::HandleId pInitialState) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12GraphicsCommandList"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "Reset"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "pAllocator", to_string_flags_, tab_count, tab_size, HandleIdToString(pAllocator)); - FieldToString(str_strm, false, "pInitialState", to_string_flags_, tab_count, tab_size, HandleIdToString(pInitialState)); - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12GraphicsCommandList_ClearState( - const ApiCallInfo& call_info, - format::HandleId object_id, - format::HandleId pPipelineState) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12GraphicsCommandList"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "ClearState"; - std::string returnValue = std::string(); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "pPipelineState", to_string_flags_, tab_count, tab_size, HandleIdToString(pPipelineState)); - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12GraphicsCommandList_DrawInstanced( - const ApiCallInfo& call_info, - format::HandleId object_id, - UINT VertexCountPerInstance, - UINT InstanceCount, - UINT StartVertexLocation, - UINT StartInstanceLocation) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12GraphicsCommandList"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "DrawInstanced"; - std::string returnValue = std::string(); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "VertexCountPerInstance", to_string_flags_, tab_count, tab_size, ToString(VertexCountPerInstance, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "InstanceCount", to_string_flags_, tab_count, tab_size, ToString(InstanceCount, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "StartVertexLocation", to_string_flags_, tab_count, tab_size, ToString(StartVertexLocation, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "StartInstanceLocation", to_string_flags_, tab_count, tab_size, ToString(StartInstanceLocation, to_string_flags_, tab_count, tab_size)); - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12GraphicsCommandList_DrawIndexedInstanced( - const ApiCallInfo& call_info, - format::HandleId object_id, - UINT IndexCountPerInstance, - UINT InstanceCount, - UINT StartIndexLocation, - INT BaseVertexLocation, - UINT StartInstanceLocation) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12GraphicsCommandList"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "DrawIndexedInstanced"; - std::string returnValue = std::string(); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "IndexCountPerInstance", to_string_flags_, tab_count, tab_size, ToString(IndexCountPerInstance, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "InstanceCount", to_string_flags_, tab_count, tab_size, ToString(InstanceCount, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "StartIndexLocation", to_string_flags_, tab_count, tab_size, ToString(StartIndexLocation, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "BaseVertexLocation", to_string_flags_, tab_count, tab_size, ToString(BaseVertexLocation, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "StartInstanceLocation", to_string_flags_, tab_count, tab_size, ToString(StartInstanceLocation, to_string_flags_, tab_count, tab_size)); - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12GraphicsCommandList_Dispatch( - const ApiCallInfo& call_info, - format::HandleId object_id, - UINT ThreadGroupCountX, - UINT ThreadGroupCountY, - UINT ThreadGroupCountZ) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12GraphicsCommandList"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "Dispatch"; - std::string returnValue = std::string(); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "ThreadGroupCountX", to_string_flags_, tab_count, tab_size, ToString(ThreadGroupCountX, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "ThreadGroupCountY", to_string_flags_, tab_count, tab_size, ToString(ThreadGroupCountY, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "ThreadGroupCountZ", to_string_flags_, tab_count, tab_size, ToString(ThreadGroupCountZ, to_string_flags_, tab_count, tab_size)); - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12GraphicsCommandList_CopyBufferRegion( - const ApiCallInfo& call_info, - format::HandleId object_id, - format::HandleId pDstBuffer, - UINT64 DstOffset, - format::HandleId pSrcBuffer, - UINT64 SrcOffset, - UINT64 NumBytes) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12GraphicsCommandList"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "CopyBufferRegion"; - std::string returnValue = std::string(); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "pDstBuffer", to_string_flags_, tab_count, tab_size, HandleIdToString(pDstBuffer)); - FieldToString(str_strm, false, "DstOffset", to_string_flags_, tab_count, tab_size, ToString(DstOffset, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "pSrcBuffer", to_string_flags_, tab_count, tab_size, HandleIdToString(pSrcBuffer)); - FieldToString(str_strm, false, "SrcOffset", to_string_flags_, tab_count, tab_size, ToString(SrcOffset, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "NumBytes", to_string_flags_, tab_count, tab_size, ToString(NumBytes, to_string_flags_, tab_count, tab_size)); - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12GraphicsCommandList_CopyTextureRegion( - const ApiCallInfo& call_info, - format::HandleId object_id, - StructPointerDecoder* pDst, - UINT DstX, - UINT DstY, - UINT DstZ, - StructPointerDecoder* pSrc, - StructPointerDecoder* pSrcBox) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12GraphicsCommandList"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "CopyTextureRegion"; - std::string returnValue = std::string(); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "pDst", to_string_flags_, tab_count, tab_size, StructPointerDecoderToString(pDst, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "DstX", to_string_flags_, tab_count, tab_size, ToString(DstX, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "DstY", to_string_flags_, tab_count, tab_size, ToString(DstY, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "DstZ", to_string_flags_, tab_count, tab_size, ToString(DstZ, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "pSrc", to_string_flags_, tab_count, tab_size, StructPointerDecoderToString(pSrc, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "pSrcBox", to_string_flags_, tab_count, tab_size, StructPointerDecoderToString(pSrcBox, to_string_flags_, tab_count, tab_size)); - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12GraphicsCommandList_CopyResource( - const ApiCallInfo& call_info, - format::HandleId object_id, - format::HandleId pDstResource, - format::HandleId pSrcResource) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12GraphicsCommandList"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "CopyResource"; - std::string returnValue = std::string(); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "pDstResource", to_string_flags_, tab_count, tab_size, HandleIdToString(pDstResource)); - FieldToString(str_strm, false, "pSrcResource", to_string_flags_, tab_count, tab_size, HandleIdToString(pSrcResource)); - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12GraphicsCommandList_CopyTiles( - const ApiCallInfo& call_info, - format::HandleId object_id, - format::HandleId pTiledResource, - StructPointerDecoder* pTileRegionStartCoordinate, - StructPointerDecoder* pTileRegionSize, - format::HandleId pBuffer, - UINT64 BufferStartOffsetInBytes, - D3D12_TILE_COPY_FLAGS Flags) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12GraphicsCommandList"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "CopyTiles"; - std::string returnValue = std::string(); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "pTiledResource", to_string_flags_, tab_count, tab_size, HandleIdToString(pTiledResource)); - FieldToString(str_strm, false, "pTileRegionStartCoordinate", to_string_flags_, tab_count, tab_size, StructPointerDecoderToString(pTileRegionStartCoordinate, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "pTileRegionSize", to_string_flags_, tab_count, tab_size, StructPointerDecoderToString(pTileRegionSize, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "pBuffer", to_string_flags_, tab_count, tab_size, HandleIdToString(pBuffer)); - FieldToString(str_strm, false, "BufferStartOffsetInBytes", to_string_flags_, tab_count, tab_size, ToString(BufferStartOffsetInBytes, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "Flags", to_string_flags_, tab_count, tab_size, Quote(ToString(Flags))); - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12GraphicsCommandList_ResolveSubresource( - const ApiCallInfo& call_info, - format::HandleId object_id, - format::HandleId pDstResource, - UINT DstSubresource, - format::HandleId pSrcResource, - UINT SrcSubresource, - DXGI_FORMAT Format) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12GraphicsCommandList"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "ResolveSubresource"; - std::string returnValue = std::string(); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "pDstResource", to_string_flags_, tab_count, tab_size, HandleIdToString(pDstResource)); - FieldToString(str_strm, false, "DstSubresource", to_string_flags_, tab_count, tab_size, ToString(DstSubresource, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "pSrcResource", to_string_flags_, tab_count, tab_size, HandleIdToString(pSrcResource)); - FieldToString(str_strm, false, "SrcSubresource", to_string_flags_, tab_count, tab_size, ToString(SrcSubresource, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "Format", to_string_flags_, tab_count, tab_size, Quote(ToString(Format))); - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12GraphicsCommandList_IASetPrimitiveTopology( - const ApiCallInfo& call_info, - format::HandleId object_id, - D3D_PRIMITIVE_TOPOLOGY PrimitiveTopology) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12GraphicsCommandList"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "IASetPrimitiveTopology"; - std::string returnValue = std::string(); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "PrimitiveTopology", to_string_flags_, tab_count, tab_size, Quote(ToString(PrimitiveTopology))); - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12GraphicsCommandList_RSSetViewports( - const ApiCallInfo& call_info, - format::HandleId object_id, - UINT NumViewports, - StructPointerDecoder* pViewports) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12GraphicsCommandList"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "RSSetViewports"; - std::string returnValue = std::string(); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "NumViewports", to_string_flags_, tab_count, tab_size, ToString(NumViewports, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "pViewports", to_string_flags_, tab_count, tab_size, StructPointerDecoderArrayToString(NumViewports, pViewports, to_string_flags_, tab_count, tab_size)); - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12GraphicsCommandList_RSSetScissorRects( - const ApiCallInfo& call_info, - format::HandleId object_id, - UINT NumRects, - StructPointerDecoder* pRects) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12GraphicsCommandList"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "RSSetScissorRects"; - std::string returnValue = std::string(); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "NumRects", to_string_flags_, tab_count, tab_size, ToString(NumRects, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "pRects", to_string_flags_, tab_count, tab_size, StructPointerDecoderArrayToString(NumRects, pRects, to_string_flags_, tab_count, tab_size)); - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12GraphicsCommandList_OMSetBlendFactor( - const ApiCallInfo& call_info, - format::HandleId object_id, - PointerDecoder BlendFactor [4]) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12GraphicsCommandList"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "OMSetBlendFactor"; - std::string returnValue = std::string(); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "BlendFactor", to_string_flags_, tab_count, tab_size, PointerDecoderArrayToString(4, BlendFactor, to_string_flags_, tab_count, tab_size)); - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12GraphicsCommandList_OMSetStencilRef( - const ApiCallInfo& call_info, - format::HandleId object_id, - UINT StencilRef) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12GraphicsCommandList"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "OMSetStencilRef"; - std::string returnValue = std::string(); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "StencilRef", to_string_flags_, tab_count, tab_size, ToString(StencilRef, to_string_flags_, tab_count, tab_size)); - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12GraphicsCommandList_SetPipelineState( - const ApiCallInfo& call_info, - format::HandleId object_id, - format::HandleId pPipelineState) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12GraphicsCommandList"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "SetPipelineState"; - std::string returnValue = std::string(); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "pPipelineState", to_string_flags_, tab_count, tab_size, HandleIdToString(pPipelineState)); - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12GraphicsCommandList_ExecuteBundle( - const ApiCallInfo& call_info, - format::HandleId object_id, - format::HandleId pCommandList) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12GraphicsCommandList"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "ExecuteBundle"; - std::string returnValue = std::string(); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "pCommandList", to_string_flags_, tab_count, tab_size, HandleIdToString(pCommandList)); - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12GraphicsCommandList_SetDescriptorHeaps( - const ApiCallInfo& call_info, - format::HandleId object_id, - UINT NumDescriptorHeaps, - HandlePointerDecoder* ppDescriptorHeaps) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12GraphicsCommandList"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "SetDescriptorHeaps"; - std::string returnValue = std::string(); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "NumDescriptorHeaps", to_string_flags_, tab_count, tab_size, ToString(NumDescriptorHeaps, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "ppDescriptorHeaps", to_string_flags_, tab_count, tab_size, PointerDecoderArrayToString(NumDescriptorHeaps, ppDescriptorHeaps, to_string_flags_, tab_count, tab_size)); - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12GraphicsCommandList_SetComputeRootSignature( - const ApiCallInfo& call_info, - format::HandleId object_id, - format::HandleId pRootSignature) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12GraphicsCommandList"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "SetComputeRootSignature"; - std::string returnValue = std::string(); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "pRootSignature", to_string_flags_, tab_count, tab_size, HandleIdToString(pRootSignature)); - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12GraphicsCommandList_SetGraphicsRootSignature( - const ApiCallInfo& call_info, - format::HandleId object_id, - format::HandleId pRootSignature) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12GraphicsCommandList"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "SetGraphicsRootSignature"; - std::string returnValue = std::string(); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "pRootSignature", to_string_flags_, tab_count, tab_size, HandleIdToString(pRootSignature)); - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12GraphicsCommandList_SetComputeRootDescriptorTable( - const ApiCallInfo& call_info, - format::HandleId object_id, - UINT RootParameterIndex, - Decoded_D3D12_GPU_DESCRIPTOR_HANDLE BaseDescriptor) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12GraphicsCommandList"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "SetComputeRootDescriptorTable"; - std::string returnValue = std::string(); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "RootParameterIndex", to_string_flags_, tab_count, tab_size, ToString(RootParameterIndex, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "BaseDescriptor", to_string_flags_, tab_count, tab_size, ToString(*BaseDescriptor.decoded_value, to_string_flags_, tab_count, tab_size)); - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12GraphicsCommandList_SetGraphicsRootDescriptorTable( - const ApiCallInfo& call_info, - format::HandleId object_id, - UINT RootParameterIndex, - Decoded_D3D12_GPU_DESCRIPTOR_HANDLE BaseDescriptor) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12GraphicsCommandList"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "SetGraphicsRootDescriptorTable"; - std::string returnValue = std::string(); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "RootParameterIndex", to_string_flags_, tab_count, tab_size, ToString(RootParameterIndex, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "BaseDescriptor", to_string_flags_, tab_count, tab_size, ToString(*BaseDescriptor.decoded_value, to_string_flags_, tab_count, tab_size)); - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12GraphicsCommandList_SetComputeRoot32BitConstant( - const ApiCallInfo& call_info, - format::HandleId object_id, - UINT RootParameterIndex, - UINT SrcData, - UINT DestOffsetIn32BitValues) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12GraphicsCommandList"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "SetComputeRoot32BitConstant"; - std::string returnValue = std::string(); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "RootParameterIndex", to_string_flags_, tab_count, tab_size, ToString(RootParameterIndex, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "SrcData", to_string_flags_, tab_count, tab_size, ToString(SrcData, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "DestOffsetIn32BitValues", to_string_flags_, tab_count, tab_size, ToString(DestOffsetIn32BitValues, to_string_flags_, tab_count, tab_size)); - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12GraphicsCommandList_SetGraphicsRoot32BitConstant( - const ApiCallInfo& call_info, - format::HandleId object_id, - UINT RootParameterIndex, - UINT SrcData, - UINT DestOffsetIn32BitValues) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12GraphicsCommandList"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "SetGraphicsRoot32BitConstant"; - std::string returnValue = std::string(); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "RootParameterIndex", to_string_flags_, tab_count, tab_size, ToString(RootParameterIndex, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "SrcData", to_string_flags_, tab_count, tab_size, ToString(SrcData, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "DestOffsetIn32BitValues", to_string_flags_, tab_count, tab_size, ToString(DestOffsetIn32BitValues, to_string_flags_, tab_count, tab_size)); - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12GraphicsCommandList_SetComputeRoot32BitConstants( - const ApiCallInfo& call_info, - format::HandleId object_id, - UINT RootParameterIndex, - UINT Num32BitValuesToSet, - PointerDecoder* pSrcData, - UINT DestOffsetIn32BitValues) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12GraphicsCommandList"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "SetComputeRoot32BitConstants"; - std::string returnValue = std::string(); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "RootParameterIndex", to_string_flags_, tab_count, tab_size, ToString(RootParameterIndex, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "Num32BitValuesToSet", to_string_flags_, tab_count, tab_size, ToString(Num32BitValuesToSet, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "pSrcData", to_string_flags_, tab_count, tab_size, PointerDecoderArrayToString(Num32BitValuesToSet * sizeof ( UINT ), pSrcData, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "DestOffsetIn32BitValues", to_string_flags_, tab_count, tab_size, ToString(DestOffsetIn32BitValues, to_string_flags_, tab_count, tab_size)); - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12GraphicsCommandList_SetGraphicsRoot32BitConstants( - const ApiCallInfo& call_info, - format::HandleId object_id, - UINT RootParameterIndex, - UINT Num32BitValuesToSet, - PointerDecoder* pSrcData, - UINT DestOffsetIn32BitValues) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12GraphicsCommandList"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "SetGraphicsRoot32BitConstants"; - std::string returnValue = std::string(); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "RootParameterIndex", to_string_flags_, tab_count, tab_size, ToString(RootParameterIndex, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "Num32BitValuesToSet", to_string_flags_, tab_count, tab_size, ToString(Num32BitValuesToSet, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "pSrcData", to_string_flags_, tab_count, tab_size, PointerDecoderArrayToString(Num32BitValuesToSet * sizeof ( UINT ), pSrcData, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "DestOffsetIn32BitValues", to_string_flags_, tab_count, tab_size, ToString(DestOffsetIn32BitValues, to_string_flags_, tab_count, tab_size)); - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12GraphicsCommandList_SetComputeRootConstantBufferView( - const ApiCallInfo& call_info, - format::HandleId object_id, - UINT RootParameterIndex, - D3D12_GPU_VIRTUAL_ADDRESS BufferLocation) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12GraphicsCommandList"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "SetComputeRootConstantBufferView"; - std::string returnValue = std::string(); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "RootParameterIndex", to_string_flags_, tab_count, tab_size, ToString(RootParameterIndex, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "BufferLocation", to_string_flags_, tab_count, tab_size, ToString(BufferLocation, to_string_flags_, tab_count, tab_size)); - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12GraphicsCommandList_SetGraphicsRootConstantBufferView( - const ApiCallInfo& call_info, - format::HandleId object_id, - UINT RootParameterIndex, - D3D12_GPU_VIRTUAL_ADDRESS BufferLocation) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12GraphicsCommandList"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "SetGraphicsRootConstantBufferView"; - std::string returnValue = std::string(); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "RootParameterIndex", to_string_flags_, tab_count, tab_size, ToString(RootParameterIndex, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "BufferLocation", to_string_flags_, tab_count, tab_size, ToString(BufferLocation, to_string_flags_, tab_count, tab_size)); - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12GraphicsCommandList_SetComputeRootShaderResourceView( - const ApiCallInfo& call_info, - format::HandleId object_id, - UINT RootParameterIndex, - D3D12_GPU_VIRTUAL_ADDRESS BufferLocation) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12GraphicsCommandList"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "SetComputeRootShaderResourceView"; - std::string returnValue = std::string(); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "RootParameterIndex", to_string_flags_, tab_count, tab_size, ToString(RootParameterIndex, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "BufferLocation", to_string_flags_, tab_count, tab_size, ToString(BufferLocation, to_string_flags_, tab_count, tab_size)); - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12GraphicsCommandList_SetGraphicsRootShaderResourceView( - const ApiCallInfo& call_info, - format::HandleId object_id, - UINT RootParameterIndex, - D3D12_GPU_VIRTUAL_ADDRESS BufferLocation) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12GraphicsCommandList"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "SetGraphicsRootShaderResourceView"; - std::string returnValue = std::string(); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "RootParameterIndex", to_string_flags_, tab_count, tab_size, ToString(RootParameterIndex, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "BufferLocation", to_string_flags_, tab_count, tab_size, ToString(BufferLocation, to_string_flags_, tab_count, tab_size)); - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12GraphicsCommandList_SetComputeRootUnorderedAccessView( - const ApiCallInfo& call_info, - format::HandleId object_id, - UINT RootParameterIndex, - D3D12_GPU_VIRTUAL_ADDRESS BufferLocation) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12GraphicsCommandList"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "SetComputeRootUnorderedAccessView"; - std::string returnValue = std::string(); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "RootParameterIndex", to_string_flags_, tab_count, tab_size, ToString(RootParameterIndex, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "BufferLocation", to_string_flags_, tab_count, tab_size, ToString(BufferLocation, to_string_flags_, tab_count, tab_size)); - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12GraphicsCommandList_SetGraphicsRootUnorderedAccessView( - const ApiCallInfo& call_info, - format::HandleId object_id, - UINT RootParameterIndex, - D3D12_GPU_VIRTUAL_ADDRESS BufferLocation) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12GraphicsCommandList"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "SetGraphicsRootUnorderedAccessView"; - std::string returnValue = std::string(); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "RootParameterIndex", to_string_flags_, tab_count, tab_size, ToString(RootParameterIndex, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "BufferLocation", to_string_flags_, tab_count, tab_size, ToString(BufferLocation, to_string_flags_, tab_count, tab_size)); - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12GraphicsCommandList_IASetIndexBuffer( - const ApiCallInfo& call_info, - format::HandleId object_id, - StructPointerDecoder* pView) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12GraphicsCommandList"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "IASetIndexBuffer"; - std::string returnValue = std::string(); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "pView", to_string_flags_, tab_count, tab_size, StructPointerDecoderToString(pView, to_string_flags_, tab_count, tab_size)); - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12GraphicsCommandList_IASetVertexBuffers( - const ApiCallInfo& call_info, - format::HandleId object_id, - UINT StartSlot, - UINT NumViews, - StructPointerDecoder* pViews) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12GraphicsCommandList"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "IASetVertexBuffers"; - std::string returnValue = std::string(); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "StartSlot", to_string_flags_, tab_count, tab_size, ToString(StartSlot, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "NumViews", to_string_flags_, tab_count, tab_size, ToString(NumViews, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "pViews", to_string_flags_, tab_count, tab_size, StructPointerDecoderArrayToString(NumViews, pViews, to_string_flags_, tab_count, tab_size)); - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12GraphicsCommandList_SOSetTargets( - const ApiCallInfo& call_info, - format::HandleId object_id, - UINT StartSlot, - UINT NumViews, - StructPointerDecoder* pViews) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12GraphicsCommandList"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "SOSetTargets"; - std::string returnValue = std::string(); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "StartSlot", to_string_flags_, tab_count, tab_size, ToString(StartSlot, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "NumViews", to_string_flags_, tab_count, tab_size, ToString(NumViews, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "pViews", to_string_flags_, tab_count, tab_size, StructPointerDecoderArrayToString(NumViews, pViews, to_string_flags_, tab_count, tab_size)); - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12GraphicsCommandList_OMSetRenderTargets( - const ApiCallInfo& call_info, - format::HandleId object_id, - UINT NumRenderTargetDescriptors, - StructPointerDecoder* pRenderTargetDescriptors, - BOOL RTsSingleHandleToDescriptorRange, - StructPointerDecoder* pDepthStencilDescriptor) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12GraphicsCommandList"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "OMSetRenderTargets"; - std::string returnValue = std::string(); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "NumRenderTargetDescriptors", to_string_flags_, tab_count, tab_size, ToString(NumRenderTargetDescriptors, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "pRenderTargetDescriptors", to_string_flags_, tab_count, tab_size, StructPointerDecoderArrayToString((NumRenderTargetDescriptors ? (RTsSingleHandleToDescriptorRange ? 1 : NumRenderTargetDescriptors) : 0), pRenderTargetDescriptors, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "RTsSingleHandleToDescriptorRange", to_string_flags_, tab_count, tab_size, ToString(RTsSingleHandleToDescriptorRange, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "pDepthStencilDescriptor", to_string_flags_, tab_count, tab_size, StructPointerDecoderToString(pDepthStencilDescriptor, to_string_flags_, tab_count, tab_size)); - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12GraphicsCommandList_ClearDepthStencilView( - const ApiCallInfo& call_info, - format::HandleId object_id, - Decoded_D3D12_CPU_DESCRIPTOR_HANDLE DepthStencilView, - D3D12_CLEAR_FLAGS ClearFlags, - FLOAT Depth, - UINT8 Stencil, - UINT NumRects, - StructPointerDecoder* pRects) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12GraphicsCommandList"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "ClearDepthStencilView"; - std::string returnValue = std::string(); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "DepthStencilView", to_string_flags_, tab_count, tab_size, ToString(*DepthStencilView.decoded_value, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "ClearFlags", to_string_flags_, tab_count, tab_size, Quote(ToString(ClearFlags))); - FieldToString(str_strm, false, "Depth", to_string_flags_, tab_count, tab_size, ToString(Depth, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "Stencil", to_string_flags_, tab_count, tab_size, ToString(Stencil, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "NumRects", to_string_flags_, tab_count, tab_size, ToString(NumRects, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "pRects", to_string_flags_, tab_count, tab_size, StructPointerDecoderArrayToString(NumRects, pRects, to_string_flags_, tab_count, tab_size)); - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12GraphicsCommandList_ClearRenderTargetView( - const ApiCallInfo& call_info, - format::HandleId object_id, - Decoded_D3D12_CPU_DESCRIPTOR_HANDLE RenderTargetView, - PointerDecoder ColorRGBA [4], - UINT NumRects, - StructPointerDecoder* pRects) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12GraphicsCommandList"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "ClearRenderTargetView"; - std::string returnValue = std::string(); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "RenderTargetView", to_string_flags_, tab_count, tab_size, ToString(*RenderTargetView.decoded_value, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "ColorRGBA", to_string_flags_, tab_count, tab_size, PointerDecoderArrayToString(4, ColorRGBA, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "NumRects", to_string_flags_, tab_count, tab_size, ToString(NumRects, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "pRects", to_string_flags_, tab_count, tab_size, StructPointerDecoderArrayToString(NumRects, pRects, to_string_flags_, tab_count, tab_size)); - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12GraphicsCommandList_ClearUnorderedAccessViewUint( - const ApiCallInfo& call_info, - format::HandleId object_id, - Decoded_D3D12_GPU_DESCRIPTOR_HANDLE ViewGPUHandleInCurrentHeap, - Decoded_D3D12_CPU_DESCRIPTOR_HANDLE ViewCPUHandle, - format::HandleId pResource, - PointerDecoder Values [4], - UINT NumRects, - StructPointerDecoder* pRects) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12GraphicsCommandList"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "ClearUnorderedAccessViewUint"; - std::string returnValue = std::string(); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "ViewGPUHandleInCurrentHeap", to_string_flags_, tab_count, tab_size, ToString(*ViewGPUHandleInCurrentHeap.decoded_value, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "ViewCPUHandle", to_string_flags_, tab_count, tab_size, ToString(*ViewCPUHandle.decoded_value, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "pResource", to_string_flags_, tab_count, tab_size, HandleIdToString(pResource)); - FieldToString(str_strm, false, "Values", to_string_flags_, tab_count, tab_size, PointerDecoderArrayToString(4, Values, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "NumRects", to_string_flags_, tab_count, tab_size, ToString(NumRects, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "pRects", to_string_flags_, tab_count, tab_size, StructPointerDecoderArrayToString(NumRects, pRects, to_string_flags_, tab_count, tab_size)); - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12GraphicsCommandList_ClearUnorderedAccessViewFloat( - const ApiCallInfo& call_info, - format::HandleId object_id, - Decoded_D3D12_GPU_DESCRIPTOR_HANDLE ViewGPUHandleInCurrentHeap, - Decoded_D3D12_CPU_DESCRIPTOR_HANDLE ViewCPUHandle, - format::HandleId pResource, - PointerDecoder Values [4], - UINT NumRects, - StructPointerDecoder* pRects) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12GraphicsCommandList"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "ClearUnorderedAccessViewFloat"; - std::string returnValue = std::string(); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "ViewGPUHandleInCurrentHeap", to_string_flags_, tab_count, tab_size, ToString(*ViewGPUHandleInCurrentHeap.decoded_value, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "ViewCPUHandle", to_string_flags_, tab_count, tab_size, ToString(*ViewCPUHandle.decoded_value, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "pResource", to_string_flags_, tab_count, tab_size, HandleIdToString(pResource)); - FieldToString(str_strm, false, "Values", to_string_flags_, tab_count, tab_size, PointerDecoderArrayToString(4, Values, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "NumRects", to_string_flags_, tab_count, tab_size, ToString(NumRects, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "pRects", to_string_flags_, tab_count, tab_size, StructPointerDecoderArrayToString(NumRects, pRects, to_string_flags_, tab_count, tab_size)); - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12GraphicsCommandList_DiscardResource( - const ApiCallInfo& call_info, - format::HandleId object_id, - format::HandleId pResource, - StructPointerDecoder* pRegion) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12GraphicsCommandList"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "DiscardResource"; - std::string returnValue = std::string(); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "pResource", to_string_flags_, tab_count, tab_size, HandleIdToString(pResource)); - FieldToString(str_strm, false, "pRegion", to_string_flags_, tab_count, tab_size, StructPointerDecoderToString(pRegion, to_string_flags_, tab_count, tab_size)); - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12GraphicsCommandList_BeginQuery( - const ApiCallInfo& call_info, - format::HandleId object_id, - format::HandleId pQueryHeap, - D3D12_QUERY_TYPE Type, - UINT Index) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12GraphicsCommandList"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "BeginQuery"; - std::string returnValue = std::string(); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "pQueryHeap", to_string_flags_, tab_count, tab_size, HandleIdToString(pQueryHeap)); - FieldToString(str_strm, false, "Type", to_string_flags_, tab_count, tab_size, Quote(ToString(Type))); - FieldToString(str_strm, false, "Index", to_string_flags_, tab_count, tab_size, ToString(Index, to_string_flags_, tab_count, tab_size)); - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12GraphicsCommandList_EndQuery( - const ApiCallInfo& call_info, - format::HandleId object_id, - format::HandleId pQueryHeap, - D3D12_QUERY_TYPE Type, - UINT Index) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12GraphicsCommandList"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "EndQuery"; - std::string returnValue = std::string(); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "pQueryHeap", to_string_flags_, tab_count, tab_size, HandleIdToString(pQueryHeap)); - FieldToString(str_strm, false, "Type", to_string_flags_, tab_count, tab_size, Quote(ToString(Type))); - FieldToString(str_strm, false, "Index", to_string_flags_, tab_count, tab_size, ToString(Index, to_string_flags_, tab_count, tab_size)); - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12GraphicsCommandList_ResolveQueryData( - const ApiCallInfo& call_info, - format::HandleId object_id, - format::HandleId pQueryHeap, - D3D12_QUERY_TYPE Type, - UINT StartIndex, - UINT NumQueries, - format::HandleId pDestinationBuffer, - UINT64 AlignedDestinationBufferOffset) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12GraphicsCommandList"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "ResolveQueryData"; - std::string returnValue = std::string(); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "pQueryHeap", to_string_flags_, tab_count, tab_size, HandleIdToString(pQueryHeap)); - FieldToString(str_strm, false, "Type", to_string_flags_, tab_count, tab_size, Quote(ToString(Type))); - FieldToString(str_strm, false, "StartIndex", to_string_flags_, tab_count, tab_size, ToString(StartIndex, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "NumQueries", to_string_flags_, tab_count, tab_size, ToString(NumQueries, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "pDestinationBuffer", to_string_flags_, tab_count, tab_size, HandleIdToString(pDestinationBuffer)); - FieldToString(str_strm, false, "AlignedDestinationBufferOffset", to_string_flags_, tab_count, tab_size, ToString(AlignedDestinationBufferOffset, to_string_flags_, tab_count, tab_size)); - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12GraphicsCommandList_SetPredication( - const ApiCallInfo& call_info, - format::HandleId object_id, - format::HandleId pBuffer, - UINT64 AlignedBufferOffset, - D3D12_PREDICATION_OP Operation) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12GraphicsCommandList"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "SetPredication"; - std::string returnValue = std::string(); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "pBuffer", to_string_flags_, tab_count, tab_size, HandleIdToString(pBuffer)); - FieldToString(str_strm, false, "AlignedBufferOffset", to_string_flags_, tab_count, tab_size, ToString(AlignedBufferOffset, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "Operation", to_string_flags_, tab_count, tab_size, Quote(ToString(Operation))); - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12GraphicsCommandList_SetMarker( - const ApiCallInfo& call_info, - format::HandleId object_id, - UINT Metadata, - PointerDecoder* pData, - UINT Size) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12GraphicsCommandList"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "SetMarker"; - std::string returnValue = std::string(); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "Metadata", to_string_flags_, tab_count, tab_size, ToString(Metadata, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "pData", to_string_flags_, tab_count, tab_size, PointerDecoderArrayToString(Size, pData, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "Size", to_string_flags_, tab_count, tab_size, ToString(Size, to_string_flags_, tab_count, tab_size)); - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12GraphicsCommandList_BeginEvent( - const ApiCallInfo& call_info, - format::HandleId object_id, - UINT Metadata, - PointerDecoder* pData, - UINT Size) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12GraphicsCommandList"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "BeginEvent"; - std::string returnValue = std::string(); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "Metadata", to_string_flags_, tab_count, tab_size, ToString(Metadata, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "pData", to_string_flags_, tab_count, tab_size, PointerDecoderArrayToString(Size, pData, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "Size", to_string_flags_, tab_count, tab_size, ToString(Size, to_string_flags_, tab_count, tab_size)); - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12GraphicsCommandList_EndEvent( - const ApiCallInfo& call_info, - format::HandleId object_id) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12GraphicsCommandList"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "EndEvent"; - std::string returnValue = std::string(); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12GraphicsCommandList_ExecuteIndirect( - const ApiCallInfo& call_info, - format::HandleId object_id, - format::HandleId pCommandSignature, - UINT MaxCommandCount, - format::HandleId pArgumentBuffer, - UINT64 ArgumentBufferOffset, - format::HandleId pCountBuffer, - UINT64 CountBufferOffset) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12GraphicsCommandList"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "ExecuteIndirect"; - std::string returnValue = std::string(); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "pCommandSignature", to_string_flags_, tab_count, tab_size, HandleIdToString(pCommandSignature)); - FieldToString(str_strm, false, "MaxCommandCount", to_string_flags_, tab_count, tab_size, ToString(MaxCommandCount, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "pArgumentBuffer", to_string_flags_, tab_count, tab_size, HandleIdToString(pArgumentBuffer)); - FieldToString(str_strm, false, "ArgumentBufferOffset", to_string_flags_, tab_count, tab_size, ToString(ArgumentBufferOffset, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "pCountBuffer", to_string_flags_, tab_count, tab_size, HandleIdToString(pCountBuffer)); - FieldToString(str_strm, false, "CountBufferOffset", to_string_flags_, tab_count, tab_size, ToString(CountBufferOffset, to_string_flags_, tab_count, tab_size)); - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12GraphicsCommandList1_AtomicCopyBufferUINT( - const ApiCallInfo& call_info, - format::HandleId object_id, - format::HandleId pDstBuffer, - UINT64 DstOffset, - format::HandleId pSrcBuffer, - UINT64 SrcOffset, - UINT Dependencies, - HandlePointerDecoder* ppDependentResources, - StructPointerDecoder* pDependentSubresourceRanges) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12GraphicsCommandList1"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "AtomicCopyBufferUINT"; - std::string returnValue = std::string(); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "pDstBuffer", to_string_flags_, tab_count, tab_size, HandleIdToString(pDstBuffer)); - FieldToString(str_strm, false, "DstOffset", to_string_flags_, tab_count, tab_size, ToString(DstOffset, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "pSrcBuffer", to_string_flags_, tab_count, tab_size, HandleIdToString(pSrcBuffer)); - FieldToString(str_strm, false, "SrcOffset", to_string_flags_, tab_count, tab_size, ToString(SrcOffset, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "Dependencies", to_string_flags_, tab_count, tab_size, ToString(Dependencies, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "ppDependentResources", to_string_flags_, tab_count, tab_size, PointerDecoderArrayToString(Dependencies, ppDependentResources, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "pDependentSubresourceRanges", to_string_flags_, tab_count, tab_size, StructPointerDecoderArrayToString(Dependencies, pDependentSubresourceRanges, to_string_flags_, tab_count, tab_size)); - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12GraphicsCommandList1_AtomicCopyBufferUINT64( - const ApiCallInfo& call_info, - format::HandleId object_id, - format::HandleId pDstBuffer, - UINT64 DstOffset, - format::HandleId pSrcBuffer, - UINT64 SrcOffset, - UINT Dependencies, - HandlePointerDecoder* ppDependentResources, - StructPointerDecoder* pDependentSubresourceRanges) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12GraphicsCommandList1"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "AtomicCopyBufferUINT64"; - std::string returnValue = std::string(); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "pDstBuffer", to_string_flags_, tab_count, tab_size, HandleIdToString(pDstBuffer)); - FieldToString(str_strm, false, "DstOffset", to_string_flags_, tab_count, tab_size, ToString(DstOffset, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "pSrcBuffer", to_string_flags_, tab_count, tab_size, HandleIdToString(pSrcBuffer)); - FieldToString(str_strm, false, "SrcOffset", to_string_flags_, tab_count, tab_size, ToString(SrcOffset, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "Dependencies", to_string_flags_, tab_count, tab_size, ToString(Dependencies, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "ppDependentResources", to_string_flags_, tab_count, tab_size, PointerDecoderArrayToString(Dependencies, ppDependentResources, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "pDependentSubresourceRanges", to_string_flags_, tab_count, tab_size, StructPointerDecoderArrayToString(Dependencies, pDependentSubresourceRanges, to_string_flags_, tab_count, tab_size)); - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12GraphicsCommandList1_OMSetDepthBounds( - const ApiCallInfo& call_info, - format::HandleId object_id, - FLOAT Min, - FLOAT Max) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12GraphicsCommandList1"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "OMSetDepthBounds"; - std::string returnValue = std::string(); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "Min", to_string_flags_, tab_count, tab_size, ToString(Min, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "Max", to_string_flags_, tab_count, tab_size, ToString(Max, to_string_flags_, tab_count, tab_size)); - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12GraphicsCommandList1_SetSamplePositions( - const ApiCallInfo& call_info, - format::HandleId object_id, - UINT NumSamplesPerPixel, - UINT NumPixels, - StructPointerDecoder* pSamplePositions) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12GraphicsCommandList1"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "SetSamplePositions"; - std::string returnValue = std::string(); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "NumSamplesPerPixel", to_string_flags_, tab_count, tab_size, ToString(NumSamplesPerPixel, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "NumPixels", to_string_flags_, tab_count, tab_size, ToString(NumPixels, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "pSamplePositions", to_string_flags_, tab_count, tab_size, StructPointerDecoderArrayToString(NumSamplesPerPixel * NumPixels, pSamplePositions, to_string_flags_, tab_count, tab_size)); - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12GraphicsCommandList1_ResolveSubresourceRegion( - const ApiCallInfo& call_info, - format::HandleId object_id, - format::HandleId pDstResource, - UINT DstSubresource, - UINT DstX, - UINT DstY, - format::HandleId pSrcResource, - UINT SrcSubresource, - StructPointerDecoder* pSrcRect, - DXGI_FORMAT Format, - D3D12_RESOLVE_MODE ResolveMode) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12GraphicsCommandList1"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "ResolveSubresourceRegion"; - std::string returnValue = std::string(); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "pDstResource", to_string_flags_, tab_count, tab_size, HandleIdToString(pDstResource)); - FieldToString(str_strm, false, "DstSubresource", to_string_flags_, tab_count, tab_size, ToString(DstSubresource, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "DstX", to_string_flags_, tab_count, tab_size, ToString(DstX, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "DstY", to_string_flags_, tab_count, tab_size, ToString(DstY, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "pSrcResource", to_string_flags_, tab_count, tab_size, HandleIdToString(pSrcResource)); - FieldToString(str_strm, false, "SrcSubresource", to_string_flags_, tab_count, tab_size, ToString(SrcSubresource, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "pSrcRect", to_string_flags_, tab_count, tab_size, StructPointerDecoderToString(pSrcRect, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "Format", to_string_flags_, tab_count, tab_size, Quote(ToString(Format))); - FieldToString(str_strm, false, "ResolveMode", to_string_flags_, tab_count, tab_size, Quote(ToString(ResolveMode))); - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12GraphicsCommandList1_SetViewInstanceMask( - const ApiCallInfo& call_info, - format::HandleId object_id, - UINT Mask) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12GraphicsCommandList1"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "SetViewInstanceMask"; - std::string returnValue = std::string(); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "Mask", to_string_flags_, tab_count, tab_size, ToString(Mask, to_string_flags_, tab_count, tab_size)); - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12GraphicsCommandList2_WriteBufferImmediate( - const ApiCallInfo& call_info, - format::HandleId object_id, - UINT Count, - StructPointerDecoder* pParams, - PointerDecoder* pModes) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12GraphicsCommandList2"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "WriteBufferImmediate"; - std::string returnValue = std::string(); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "Count", to_string_flags_, tab_count, tab_size, ToString(Count, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "pParams", to_string_flags_, tab_count, tab_size, StructPointerDecoderArrayToString(Count, pParams, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "pModes", to_string_flags_, tab_count, tab_size, EnumPointerDecoderArrayToString(Count, pModes, to_string_flags_, tab_count, tab_size)); - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12CommandQueue_UpdateTileMappings( - const ApiCallInfo& call_info, - format::HandleId object_id, - format::HandleId pResource, - UINT NumResourceRegions, - StructPointerDecoder* pResourceRegionStartCoordinates, - StructPointerDecoder* pResourceRegionSizes, - format::HandleId pHeap, - UINT NumRanges, - PointerDecoder* pRangeFlags, - PointerDecoder* pHeapRangeStartOffsets, - PointerDecoder* pRangeTileCounts, - D3D12_TILE_MAPPING_FLAGS Flags) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12CommandQueue"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "UpdateTileMappings"; - std::string returnValue = std::string(); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "pResource", to_string_flags_, tab_count, tab_size, HandleIdToString(pResource)); - FieldToString(str_strm, false, "NumResourceRegions", to_string_flags_, tab_count, tab_size, ToString(NumResourceRegions, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "pResourceRegionStartCoordinates", to_string_flags_, tab_count, tab_size, StructPointerDecoderArrayToString(NumResourceRegions, pResourceRegionStartCoordinates, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "pResourceRegionSizes", to_string_flags_, tab_count, tab_size, StructPointerDecoderArrayToString(NumResourceRegions, pResourceRegionSizes, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "pHeap", to_string_flags_, tab_count, tab_size, HandleIdToString(pHeap)); - FieldToString(str_strm, false, "NumRanges", to_string_flags_, tab_count, tab_size, ToString(NumRanges, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "pRangeFlags", to_string_flags_, tab_count, tab_size, EnumPointerDecoderArrayToString(NumRanges, pRangeFlags, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "pHeapRangeStartOffsets", to_string_flags_, tab_count, tab_size, PointerDecoderArrayToString(NumRanges, pHeapRangeStartOffsets, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "pRangeTileCounts", to_string_flags_, tab_count, tab_size, PointerDecoderArrayToString(NumRanges, pRangeTileCounts, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "Flags", to_string_flags_, tab_count, tab_size, Quote(ToString(Flags))); - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12CommandQueue_CopyTileMappings( - const ApiCallInfo& call_info, - format::HandleId object_id, - format::HandleId pDstResource, - StructPointerDecoder* pDstRegionStartCoordinate, - format::HandleId pSrcResource, - StructPointerDecoder* pSrcRegionStartCoordinate, - StructPointerDecoder* pRegionSize, - D3D12_TILE_MAPPING_FLAGS Flags) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12CommandQueue"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "CopyTileMappings"; - std::string returnValue = std::string(); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "pDstResource", to_string_flags_, tab_count, tab_size, HandleIdToString(pDstResource)); - FieldToString(str_strm, false, "pDstRegionStartCoordinate", to_string_flags_, tab_count, tab_size, StructPointerDecoderToString(pDstRegionStartCoordinate, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "pSrcResource", to_string_flags_, tab_count, tab_size, HandleIdToString(pSrcResource)); - FieldToString(str_strm, false, "pSrcRegionStartCoordinate", to_string_flags_, tab_count, tab_size, StructPointerDecoderToString(pSrcRegionStartCoordinate, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "pRegionSize", to_string_flags_, tab_count, tab_size, StructPointerDecoderToString(pRegionSize, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "Flags", to_string_flags_, tab_count, tab_size, Quote(ToString(Flags))); - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12CommandQueue_ExecuteCommandLists( - const ApiCallInfo& call_info, - format::HandleId object_id, - UINT NumCommandLists, - HandlePointerDecoder* ppCommandLists) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12CommandQueue"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "ExecuteCommandLists"; - std::string returnValue = std::string(); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "NumCommandLists", to_string_flags_, tab_count, tab_size, ToString(NumCommandLists, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "ppCommandLists", to_string_flags_, tab_count, tab_size, PointerDecoderArrayToString(NumCommandLists, ppCommandLists, to_string_flags_, tab_count, tab_size)); - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12CommandQueue_SetMarker( - const ApiCallInfo& call_info, - format::HandleId object_id, - UINT Metadata, - PointerDecoder* pData, - UINT Size) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12CommandQueue"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "SetMarker"; - std::string returnValue = std::string(); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "Metadata", to_string_flags_, tab_count, tab_size, ToString(Metadata, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "pData", to_string_flags_, tab_count, tab_size, PointerDecoderArrayToString(Size, pData, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "Size", to_string_flags_, tab_count, tab_size, ToString(Size, to_string_flags_, tab_count, tab_size)); - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12CommandQueue_BeginEvent( - const ApiCallInfo& call_info, - format::HandleId object_id, - UINT Metadata, - PointerDecoder* pData, - UINT Size) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12CommandQueue"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "BeginEvent"; - std::string returnValue = std::string(); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "Metadata", to_string_flags_, tab_count, tab_size, ToString(Metadata, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "pData", to_string_flags_, tab_count, tab_size, PointerDecoderArrayToString(Size, pData, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "Size", to_string_flags_, tab_count, tab_size, ToString(Size, to_string_flags_, tab_count, tab_size)); - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12CommandQueue_EndEvent( - const ApiCallInfo& call_info, - format::HandleId object_id) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12CommandQueue"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "EndEvent"; - std::string returnValue = std::string(); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12CommandQueue_Signal( - const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value, - format::HandleId pFence, - UINT64 Value) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12CommandQueue"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "Signal"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "pFence", to_string_flags_, tab_count, tab_size, HandleIdToString(pFence)); - FieldToString(str_strm, false, "Value", to_string_flags_, tab_count, tab_size, ToString(Value, to_string_flags_, tab_count, tab_size)); - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12CommandQueue_Wait( - const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value, - format::HandleId pFence, - UINT64 Value) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12CommandQueue"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "Wait"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "pFence", to_string_flags_, tab_count, tab_size, HandleIdToString(pFence)); - FieldToString(str_strm, false, "Value", to_string_flags_, tab_count, tab_size, ToString(Value, to_string_flags_, tab_count, tab_size)); - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12CommandQueue_GetTimestampFrequency( - const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value, - PointerDecoder* pFrequency) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12CommandQueue"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "GetTimestampFrequency"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "[out]pFrequency", to_string_flags_, tab_count, tab_size, PointerDecoderToString(pFrequency, to_string_flags_, tab_count, tab_size)); - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12CommandQueue_GetClockCalibration( - const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value, - PointerDecoder* pGpuTimestamp, - PointerDecoder* pCpuTimestamp) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12CommandQueue"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "GetClockCalibration"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "[out]pGpuTimestamp", to_string_flags_, tab_count, tab_size, PointerDecoderToString(pGpuTimestamp, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "[out]pCpuTimestamp", to_string_flags_, tab_count, tab_size, PointerDecoderToString(pCpuTimestamp, to_string_flags_, tab_count, tab_size)); - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12Device_GetNodeCount( - const ApiCallInfo& call_info, - format::HandleId object_id, - UINT return_value) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12Device"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "GetNodeCount"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12Device_CreateCommandQueue( - const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value, - StructPointerDecoder* pDesc, - Decoded_GUID riid, - HandlePointerDecoder* ppCommandQueue) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12Device"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "CreateCommandQueue"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "pDesc", to_string_flags_, tab_count, tab_size, StructPointerDecoderToString(pDesc, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "riid", to_string_flags_, tab_count, tab_size, ToString(*riid.decoded_value, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "[out]ppCommandQueue", to_string_flags_, tab_count, tab_size, OutPtrDecoderToString(ppCommandQueue)); - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12Device_CreateCommandAllocator( - const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value, - D3D12_COMMAND_LIST_TYPE type, - Decoded_GUID riid, - HandlePointerDecoder* ppCommandAllocator) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12Device"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "CreateCommandAllocator"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "type", to_string_flags_, tab_count, tab_size, Quote(ToString(type))); - FieldToString(str_strm, false, "riid", to_string_flags_, tab_count, tab_size, ToString(*riid.decoded_value, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "[out]ppCommandAllocator", to_string_flags_, tab_count, tab_size, OutPtrDecoderToString(ppCommandAllocator)); - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12Device_CreateGraphicsPipelineState( - const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value, - StructPointerDecoder* pDesc, - Decoded_GUID riid, - HandlePointerDecoder* ppPipelineState) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12Device"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "CreateGraphicsPipelineState"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "pDesc", to_string_flags_, tab_count, tab_size, StructPointerDecoderToString(pDesc, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "riid", to_string_flags_, tab_count, tab_size, ToString(*riid.decoded_value, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "[out]ppPipelineState", to_string_flags_, tab_count, tab_size, OutPtrDecoderToString(ppPipelineState)); - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12Device_CreateComputePipelineState( - const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value, - StructPointerDecoder* pDesc, - Decoded_GUID riid, - HandlePointerDecoder* ppPipelineState) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12Device"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "CreateComputePipelineState"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "pDesc", to_string_flags_, tab_count, tab_size, StructPointerDecoderToString(pDesc, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "riid", to_string_flags_, tab_count, tab_size, ToString(*riid.decoded_value, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "[out]ppPipelineState", to_string_flags_, tab_count, tab_size, OutPtrDecoderToString(ppPipelineState)); - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12Device_CreateCommandList( - const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value, - UINT nodeMask, - D3D12_COMMAND_LIST_TYPE type, - format::HandleId pCommandAllocator, - format::HandleId pInitialState, - Decoded_GUID riid, - HandlePointerDecoder* ppCommandList) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12Device"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "CreateCommandList"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "nodeMask", to_string_flags_, tab_count, tab_size, ToString(nodeMask, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "type", to_string_flags_, tab_count, tab_size, Quote(ToString(type))); - FieldToString(str_strm, false, "pCommandAllocator", to_string_flags_, tab_count, tab_size, HandleIdToString(pCommandAllocator)); - FieldToString(str_strm, false, "pInitialState", to_string_flags_, tab_count, tab_size, HandleIdToString(pInitialState)); - FieldToString(str_strm, false, "riid", to_string_flags_, tab_count, tab_size, ToString(*riid.decoded_value, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "[out]ppCommandList", to_string_flags_, tab_count, tab_size, OutPtrDecoderToString(ppCommandList)); - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12Device_CreateDescriptorHeap( - const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value, - StructPointerDecoder* pDescriptorHeapDesc, - Decoded_GUID riid, - HandlePointerDecoder* ppvHeap) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12Device"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "CreateDescriptorHeap"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "pDescriptorHeapDesc", to_string_flags_, tab_count, tab_size, StructPointerDecoderToString(pDescriptorHeapDesc, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "riid", to_string_flags_, tab_count, tab_size, ToString(*riid.decoded_value, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "[out]ppvHeap", to_string_flags_, tab_count, tab_size, OutPtrDecoderToString(ppvHeap)); - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12Device_GetDescriptorHandleIncrementSize( - const ApiCallInfo& call_info, - format::HandleId object_id, - UINT return_value, - D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapType) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12Device"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "GetDescriptorHandleIncrementSize"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "DescriptorHeapType", to_string_flags_, tab_count, tab_size, Quote(ToString(DescriptorHeapType))); - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12Device_CreateConstantBufferView( - const ApiCallInfo& call_info, - format::HandleId object_id, - StructPointerDecoder* pDesc, - Decoded_D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12Device"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "CreateConstantBufferView"; - std::string returnValue = std::string(); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "pDesc", to_string_flags_, tab_count, tab_size, StructPointerDecoderToString(pDesc, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "DestDescriptor", to_string_flags_, tab_count, tab_size, ToString(*DestDescriptor.decoded_value, to_string_flags_, tab_count, tab_size)); - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12Device_CreateShaderResourceView( - const ApiCallInfo& call_info, - format::HandleId object_id, - format::HandleId pResource, - StructPointerDecoder* pDesc, - Decoded_D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12Device"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "CreateShaderResourceView"; - std::string returnValue = std::string(); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "pResource", to_string_flags_, tab_count, tab_size, HandleIdToString(pResource)); - FieldToString(str_strm, false, "pDesc", to_string_flags_, tab_count, tab_size, StructPointerDecoderToString(pDesc, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "DestDescriptor", to_string_flags_, tab_count, tab_size, ToString(*DestDescriptor.decoded_value, to_string_flags_, tab_count, tab_size)); - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12Device_CreateUnorderedAccessView( - const ApiCallInfo& call_info, - format::HandleId object_id, - format::HandleId pResource, - format::HandleId pCounterResource, - StructPointerDecoder* pDesc, - Decoded_D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12Device"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "CreateUnorderedAccessView"; - std::string returnValue = std::string(); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "pResource", to_string_flags_, tab_count, tab_size, HandleIdToString(pResource)); - FieldToString(str_strm, false, "pCounterResource", to_string_flags_, tab_count, tab_size, HandleIdToString(pCounterResource)); - FieldToString(str_strm, false, "pDesc", to_string_flags_, tab_count, tab_size, StructPointerDecoderToString(pDesc, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "DestDescriptor", to_string_flags_, tab_count, tab_size, ToString(*DestDescriptor.decoded_value, to_string_flags_, tab_count, tab_size)); - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12Device_CreateRenderTargetView( - const ApiCallInfo& call_info, - format::HandleId object_id, - format::HandleId pResource, - StructPointerDecoder* pDesc, - Decoded_D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12Device"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "CreateRenderTargetView"; - std::string returnValue = std::string(); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "pResource", to_string_flags_, tab_count, tab_size, HandleIdToString(pResource)); - FieldToString(str_strm, false, "pDesc", to_string_flags_, tab_count, tab_size, StructPointerDecoderToString(pDesc, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "DestDescriptor", to_string_flags_, tab_count, tab_size, ToString(*DestDescriptor.decoded_value, to_string_flags_, tab_count, tab_size)); - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12Device_CreateDepthStencilView( - const ApiCallInfo& call_info, - format::HandleId object_id, - format::HandleId pResource, - StructPointerDecoder* pDesc, - Decoded_D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12Device"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "CreateDepthStencilView"; - std::string returnValue = std::string(); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "pResource", to_string_flags_, tab_count, tab_size, HandleIdToString(pResource)); - FieldToString(str_strm, false, "pDesc", to_string_flags_, tab_count, tab_size, StructPointerDecoderToString(pDesc, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "DestDescriptor", to_string_flags_, tab_count, tab_size, ToString(*DestDescriptor.decoded_value, to_string_flags_, tab_count, tab_size)); - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12Device_CreateSampler( - const ApiCallInfo& call_info, - format::HandleId object_id, - StructPointerDecoder* pDesc, - Decoded_D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12Device"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "CreateSampler"; - std::string returnValue = std::string(); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "pDesc", to_string_flags_, tab_count, tab_size, StructPointerDecoderToString(pDesc, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "DestDescriptor", to_string_flags_, tab_count, tab_size, ToString(*DestDescriptor.decoded_value, to_string_flags_, tab_count, tab_size)); - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12Device_CopyDescriptors( - const ApiCallInfo& call_info, - format::HandleId object_id, - UINT NumDestDescriptorRanges, - StructPointerDecoder* pDestDescriptorRangeStarts, - PointerDecoder* pDestDescriptorRangeSizes, - UINT NumSrcDescriptorRanges, - StructPointerDecoder* pSrcDescriptorRangeStarts, - PointerDecoder* pSrcDescriptorRangeSizes, - D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12Device"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "CopyDescriptors"; - std::string returnValue = std::string(); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "NumDestDescriptorRanges", to_string_flags_, tab_count, tab_size, ToString(NumDestDescriptorRanges, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "pDestDescriptorRangeStarts", to_string_flags_, tab_count, tab_size, StructPointerDecoderArrayToString(NumDestDescriptorRanges, pDestDescriptorRangeStarts, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "pDestDescriptorRangeSizes", to_string_flags_, tab_count, tab_size, PointerDecoderArrayToString(NumDestDescriptorRanges, pDestDescriptorRangeSizes, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "NumSrcDescriptorRanges", to_string_flags_, tab_count, tab_size, ToString(NumSrcDescriptorRanges, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "pSrcDescriptorRangeStarts", to_string_flags_, tab_count, tab_size, StructPointerDecoderArrayToString(NumSrcDescriptorRanges, pSrcDescriptorRangeStarts, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "pSrcDescriptorRangeSizes", to_string_flags_, tab_count, tab_size, PointerDecoderArrayToString(NumSrcDescriptorRanges, pSrcDescriptorRangeSizes, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "DescriptorHeapsType", to_string_flags_, tab_count, tab_size, Quote(ToString(DescriptorHeapsType))); - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12Device_CopyDescriptorsSimple( - const ApiCallInfo& call_info, - format::HandleId object_id, - UINT NumDescriptors, - Decoded_D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptorRangeStart, - Decoded_D3D12_CPU_DESCRIPTOR_HANDLE SrcDescriptorRangeStart, - D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12Device"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "CopyDescriptorsSimple"; - std::string returnValue = std::string(); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "NumDescriptors", to_string_flags_, tab_count, tab_size, ToString(NumDescriptors, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "DestDescriptorRangeStart", to_string_flags_, tab_count, tab_size, ToString(*DestDescriptorRangeStart.decoded_value, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "SrcDescriptorRangeStart", to_string_flags_, tab_count, tab_size, ToString(*SrcDescriptorRangeStart.decoded_value, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "DescriptorHeapsType", to_string_flags_, tab_count, tab_size, Quote(ToString(DescriptorHeapsType))); - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12Device_CreateCommittedResource( - const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value, - StructPointerDecoder* pHeapProperties, - D3D12_HEAP_FLAGS HeapFlags, - StructPointerDecoder* pDesc, - D3D12_RESOURCE_STATES InitialResourceState, - StructPointerDecoder* pOptimizedClearValue, - Decoded_GUID riidResource, - HandlePointerDecoder* ppvResource) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12Device"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "CreateCommittedResource"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "pHeapProperties", to_string_flags_, tab_count, tab_size, StructPointerDecoderToString(pHeapProperties, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "HeapFlags", to_string_flags_, tab_count, tab_size, Quote(ToString(HeapFlags))); - FieldToString(str_strm, false, "pDesc", to_string_flags_, tab_count, tab_size, StructPointerDecoderToString(pDesc, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "InitialResourceState", to_string_flags_, tab_count, tab_size, Quote(ToString(InitialResourceState))); - FieldToString(str_strm, false, "pOptimizedClearValue", to_string_flags_, tab_count, tab_size, StructPointerDecoderToString(pOptimizedClearValue, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "riidResource", to_string_flags_, tab_count, tab_size, ToString(*riidResource.decoded_value, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "[out]ppvResource", to_string_flags_, tab_count, tab_size, OutPtrDecoderToString(ppvResource)); - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12Device_CreateHeap( - const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value, - StructPointerDecoder* pDesc, - Decoded_GUID riid, - HandlePointerDecoder* ppvHeap) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12Device"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "CreateHeap"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "pDesc", to_string_flags_, tab_count, tab_size, StructPointerDecoderToString(pDesc, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "riid", to_string_flags_, tab_count, tab_size, ToString(*riid.decoded_value, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "[out]ppvHeap", to_string_flags_, tab_count, tab_size, OutPtrDecoderToString(ppvHeap)); - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12Device_CreatePlacedResource( - const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value, - format::HandleId pHeap, - UINT64 HeapOffset, - StructPointerDecoder* pDesc, - D3D12_RESOURCE_STATES InitialState, - StructPointerDecoder* pOptimizedClearValue, - Decoded_GUID riid, - HandlePointerDecoder* ppvResource) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12Device"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "CreatePlacedResource"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "pHeap", to_string_flags_, tab_count, tab_size, HandleIdToString(pHeap)); - FieldToString(str_strm, false, "HeapOffset", to_string_flags_, tab_count, tab_size, ToString(HeapOffset, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "pDesc", to_string_flags_, tab_count, tab_size, StructPointerDecoderToString(pDesc, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "InitialState", to_string_flags_, tab_count, tab_size, Quote(ToString(InitialState))); - FieldToString(str_strm, false, "pOptimizedClearValue", to_string_flags_, tab_count, tab_size, StructPointerDecoderToString(pOptimizedClearValue, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "riid", to_string_flags_, tab_count, tab_size, ToString(*riid.decoded_value, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "[out]ppvResource", to_string_flags_, tab_count, tab_size, OutPtrDecoderToString(ppvResource)); - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12Device_CreateReservedResource( - const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value, - StructPointerDecoder* pDesc, - D3D12_RESOURCE_STATES InitialState, - StructPointerDecoder* pOptimizedClearValue, - Decoded_GUID riid, - HandlePointerDecoder* ppvResource) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12Device"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "CreateReservedResource"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "pDesc", to_string_flags_, tab_count, tab_size, StructPointerDecoderToString(pDesc, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "InitialState", to_string_flags_, tab_count, tab_size, Quote(ToString(InitialState))); - FieldToString(str_strm, false, "pOptimizedClearValue", to_string_flags_, tab_count, tab_size, StructPointerDecoderToString(pOptimizedClearValue, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "riid", to_string_flags_, tab_count, tab_size, ToString(*riid.decoded_value, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "[out]ppvResource", to_string_flags_, tab_count, tab_size, OutPtrDecoderToString(ppvResource)); - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12Device_CreateSharedHandle( - const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value, - format::HandleId pObject, - StructPointerDecoder* pAttributes, - DWORD Access, - WStringDecoder* Name, - PointerDecoder* pHandle) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12Device"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "CreateSharedHandle"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "pObject", to_string_flags_, tab_count, tab_size, HandleIdToString(pObject)); - FieldToString(str_strm, false, "pAttributes", to_string_flags_, tab_count, tab_size, StructPointerDecoderToString(pAttributes, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "Access", to_string_flags_, tab_count, tab_size, ToString(Access, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "Name", to_string_flags_, tab_count, tab_size, StringDecoderToString(Name)); - FieldToString(str_strm, false, "[out]pHandle", to_string_flags_, tab_count, tab_size, HandleIdToString(pHandle)); - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12Device_OpenSharedHandle( - const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value, - uint64_t NTHandle, - Decoded_GUID riid, - HandlePointerDecoder* ppvObj) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12Device"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "OpenSharedHandle"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "NTHandle", to_string_flags_, tab_count, tab_size, HandleIdToString(NTHandle)); - FieldToString(str_strm, false, "riid", to_string_flags_, tab_count, tab_size, ToString(*riid.decoded_value, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "[out]ppvObj", to_string_flags_, tab_count, tab_size, OutPtrDecoderToString(ppvObj)); - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12Device_OpenSharedHandleByName( - const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value, - WStringDecoder* Name, - DWORD Access, - PointerDecoder* pNTHandle) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12Device"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "OpenSharedHandleByName"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "Name", to_string_flags_, tab_count, tab_size, StringDecoderToString(Name)); - FieldToString(str_strm, false, "Access", to_string_flags_, tab_count, tab_size, ToString(Access, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "[out]pNTHandle", to_string_flags_, tab_count, tab_size, HandleIdToString(pNTHandle)); - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12Device_MakeResident( - const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value, - UINT NumObjects, - HandlePointerDecoder* ppObjects) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12Device"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "MakeResident"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "NumObjects", to_string_flags_, tab_count, tab_size, ToString(NumObjects, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "ppObjects", to_string_flags_, tab_count, tab_size, PointerDecoderArrayToString(NumObjects, ppObjects, to_string_flags_, tab_count, tab_size)); - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12Device_Evict( - const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value, - UINT NumObjects, - HandlePointerDecoder* ppObjects) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12Device"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "Evict"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "NumObjects", to_string_flags_, tab_count, tab_size, ToString(NumObjects, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "ppObjects", to_string_flags_, tab_count, tab_size, PointerDecoderArrayToString(NumObjects, ppObjects, to_string_flags_, tab_count, tab_size)); - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12Device_CreateFence( - const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value, - UINT64 InitialValue, - D3D12_FENCE_FLAGS Flags, - Decoded_GUID riid, - HandlePointerDecoder* ppFence) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12Device"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "CreateFence"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "InitialValue", to_string_flags_, tab_count, tab_size, ToString(InitialValue, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "Flags", to_string_flags_, tab_count, tab_size, Quote(ToString(Flags))); - FieldToString(str_strm, false, "riid", to_string_flags_, tab_count, tab_size, ToString(*riid.decoded_value, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "[out]ppFence", to_string_flags_, tab_count, tab_size, OutPtrDecoderToString(ppFence)); - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12Device_GetDeviceRemovedReason( - const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12Device"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "GetDeviceRemovedReason"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12Device_GetCopyableFootprints( - const ApiCallInfo& call_info, - format::HandleId object_id, - StructPointerDecoder* pResourceDesc, - UINT FirstSubresource, - UINT NumSubresources, - UINT64 BaseOffset, - StructPointerDecoder* pLayouts, - PointerDecoder* pNumRows, - PointerDecoder* pRowSizeInBytes, - PointerDecoder* pTotalBytes) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12Device"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "GetCopyableFootprints"; - std::string returnValue = std::string(); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "pResourceDesc", to_string_flags_, tab_count, tab_size, StructPointerDecoderToString(pResourceDesc, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "FirstSubresource", to_string_flags_, tab_count, tab_size, ToString(FirstSubresource, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "NumSubresources", to_string_flags_, tab_count, tab_size, ToString(NumSubresources, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "BaseOffset", to_string_flags_, tab_count, tab_size, ToString(BaseOffset, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "[out]pLayouts", to_string_flags_, tab_count, tab_size, StructPointerDecoderArrayToString(NumSubresources, pLayouts, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "[out]pNumRows", to_string_flags_, tab_count, tab_size, PointerDecoderArrayToString(NumSubresources, pNumRows, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "[out]pRowSizeInBytes", to_string_flags_, tab_count, tab_size, PointerDecoderArrayToString(NumSubresources, pRowSizeInBytes, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "[out]pTotalBytes", to_string_flags_, tab_count, tab_size, PointerDecoderToString(pTotalBytes, to_string_flags_, tab_count, tab_size)); - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12Device_CreateQueryHeap( - const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value, - StructPointerDecoder* pDesc, - Decoded_GUID riid, - HandlePointerDecoder* ppvHeap) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12Device"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "CreateQueryHeap"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "pDesc", to_string_flags_, tab_count, tab_size, StructPointerDecoderToString(pDesc, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "riid", to_string_flags_, tab_count, tab_size, ToString(*riid.decoded_value, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "[out]ppvHeap", to_string_flags_, tab_count, tab_size, OutPtrDecoderToString(ppvHeap)); - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12Device_SetStablePowerState( - const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value, - BOOL Enable) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12Device"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "SetStablePowerState"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "Enable", to_string_flags_, tab_count, tab_size, ToString(Enable, to_string_flags_, tab_count, tab_size)); - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12Device_CreateCommandSignature( - const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value, - StructPointerDecoder* pDesc, - format::HandleId pRootSignature, - Decoded_GUID riid, - HandlePointerDecoder* ppvCommandSignature) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12Device"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "CreateCommandSignature"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "pDesc", to_string_flags_, tab_count, tab_size, StructPointerDecoderToString(pDesc, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "pRootSignature", to_string_flags_, tab_count, tab_size, HandleIdToString(pRootSignature)); - FieldToString(str_strm, false, "riid", to_string_flags_, tab_count, tab_size, ToString(*riid.decoded_value, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "[out]ppvCommandSignature", to_string_flags_, tab_count, tab_size, OutPtrDecoderToString(ppvCommandSignature)); - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12Device_GetResourceTiling( - const ApiCallInfo& call_info, - format::HandleId object_id, - format::HandleId pTiledResource, - PointerDecoder* pNumTilesForEntireResource, - StructPointerDecoder* pPackedMipDesc, - StructPointerDecoder* pStandardTileShapeForNonPackedMips, - PointerDecoder* pNumSubresourceTilings, - UINT FirstSubresourceTilingToGet, - StructPointerDecoder* pSubresourceTilingsForNonPackedMips) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12Device"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "GetResourceTiling"; - std::string returnValue = std::string(); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "pTiledResource", to_string_flags_, tab_count, tab_size, HandleIdToString(pTiledResource)); - FieldToString(str_strm, false, "[out]pNumTilesForEntireResource", to_string_flags_, tab_count, tab_size, PointerDecoderToString(pNumTilesForEntireResource, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "[out]pPackedMipDesc", to_string_flags_, tab_count, tab_size, StructPointerDecoderToString(pPackedMipDesc, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "[out]pStandardTileShapeForNonPackedMips", to_string_flags_, tab_count, tab_size, StructPointerDecoderToString(pStandardTileShapeForNonPackedMips, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "pNumSubresourceTilings", to_string_flags_, tab_count, tab_size, PointerDecoderToString(pNumSubresourceTilings, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "FirstSubresourceTilingToGet", to_string_flags_, tab_count, tab_size, ToString(FirstSubresourceTilingToGet, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "[out]pSubresourceTilingsForNonPackedMips", to_string_flags_, tab_count, tab_size, StructPointerDecoderArrayToString(pNumSubresourceTilings, pSubresourceTilingsForNonPackedMips, to_string_flags_, tab_count, tab_size)); - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12PipelineLibrary_StorePipeline( - const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value, - WStringDecoder* pName, - format::HandleId pPipeline) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12PipelineLibrary"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "StorePipeline"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "pName", to_string_flags_, tab_count, tab_size, StringDecoderToString(pName)); - FieldToString(str_strm, false, "pPipeline", to_string_flags_, tab_count, tab_size, HandleIdToString(pPipeline)); - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12PipelineLibrary_LoadGraphicsPipeline( - const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value, - WStringDecoder* pName, - StructPointerDecoder* pDesc, - Decoded_GUID riid, - HandlePointerDecoder* ppPipelineState) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12PipelineLibrary"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "LoadGraphicsPipeline"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "pName", to_string_flags_, tab_count, tab_size, StringDecoderToString(pName)); - FieldToString(str_strm, false, "pDesc", to_string_flags_, tab_count, tab_size, StructPointerDecoderToString(pDesc, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "riid", to_string_flags_, tab_count, tab_size, ToString(*riid.decoded_value, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "[out]ppPipelineState", to_string_flags_, tab_count, tab_size, OutPtrDecoderToString(ppPipelineState)); - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12PipelineLibrary_LoadComputePipeline( - const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value, - WStringDecoder* pName, - StructPointerDecoder* pDesc, - Decoded_GUID riid, - HandlePointerDecoder* ppPipelineState) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12PipelineLibrary"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "LoadComputePipeline"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "pName", to_string_flags_, tab_count, tab_size, StringDecoderToString(pName)); - FieldToString(str_strm, false, "pDesc", to_string_flags_, tab_count, tab_size, StructPointerDecoderToString(pDesc, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "riid", to_string_flags_, tab_count, tab_size, ToString(*riid.decoded_value, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "[out]ppPipelineState", to_string_flags_, tab_count, tab_size, OutPtrDecoderToString(ppPipelineState)); - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12PipelineLibrary_GetSerializedSize( - const ApiCallInfo& call_info, - format::HandleId object_id, - SIZE_T return_value) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12PipelineLibrary"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "GetSerializedSize"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12PipelineLibrary_Serialize( - const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value, - PointerDecoder* pData, - SIZE_T DataSizeInBytes) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12PipelineLibrary"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "Serialize"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "[out]pData", to_string_flags_, tab_count, tab_size, PointerDecoderArrayToString(DataSizeInBytes, pData, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "DataSizeInBytes", to_string_flags_, tab_count, tab_size, ToString(DataSizeInBytes, to_string_flags_, tab_count, tab_size)); - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12PipelineLibrary1_LoadPipeline( - const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value, - WStringDecoder* pName, - StructPointerDecoder* pDesc, - Decoded_GUID riid, - HandlePointerDecoder* ppPipelineState) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12PipelineLibrary1"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "LoadPipeline"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "pName", to_string_flags_, tab_count, tab_size, StringDecoderToString(pName)); - FieldToString(str_strm, false, "pDesc", to_string_flags_, tab_count, tab_size, StructPointerDecoderToString(pDesc, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "riid", to_string_flags_, tab_count, tab_size, ToString(*riid.decoded_value, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "[out]ppPipelineState", to_string_flags_, tab_count, tab_size, OutPtrDecoderToString(ppPipelineState)); - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12Device1_SetEventOnMultipleFenceCompletion( - const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value, - HandlePointerDecoder* ppFences, - PointerDecoder* pFenceValues, - UINT NumFences, - D3D12_MULTIPLE_FENCE_WAIT_FLAGS Flags, - uint64_t hEvent) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12Device1"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "SetEventOnMultipleFenceCompletion"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "ppFences", to_string_flags_, tab_count, tab_size, PointerDecoderArrayToString(NumFences, ppFences, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "pFenceValues", to_string_flags_, tab_count, tab_size, PointerDecoderArrayToString(NumFences, pFenceValues, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "NumFences", to_string_flags_, tab_count, tab_size, ToString(NumFences, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "Flags", to_string_flags_, tab_count, tab_size, Quote(ToString(Flags))); - FieldToString(str_strm, false, "hEvent", to_string_flags_, tab_count, tab_size, HandleIdToString(hEvent)); - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12Device1_SetResidencyPriority( - const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value, - UINT NumObjects, - HandlePointerDecoder* ppObjects, - PointerDecoder* pPriorities) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12Device1"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "SetResidencyPriority"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "NumObjects", to_string_flags_, tab_count, tab_size, ToString(NumObjects, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "ppObjects", to_string_flags_, tab_count, tab_size, PointerDecoderArrayToString(NumObjects, ppObjects, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "pPriorities", to_string_flags_, tab_count, tab_size, EnumPointerDecoderArrayToString(NumObjects, pPriorities, to_string_flags_, tab_count, tab_size)); - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12Device2_CreatePipelineState( - const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value, - StructPointerDecoder* pDesc, - Decoded_GUID riid, - HandlePointerDecoder* ppPipelineState) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12Device2"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "CreatePipelineState"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "pDesc", to_string_flags_, tab_count, tab_size, StructPointerDecoderToString(pDesc, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "riid", to_string_flags_, tab_count, tab_size, ToString(*riid.decoded_value, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "[out]ppPipelineState", to_string_flags_, tab_count, tab_size, OutPtrDecoderToString(ppPipelineState)); - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12Device3_OpenExistingHeapFromAddress( - const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value, - uint64_t pAddress, - Decoded_GUID riid, - HandlePointerDecoder* ppvHeap) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12Device3"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "OpenExistingHeapFromAddress"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "pAddress", to_string_flags_, tab_count, tab_size, HandleIdToString(pAddress)); - FieldToString(str_strm, false, "riid", to_string_flags_, tab_count, tab_size, ToString(*riid.decoded_value, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "[out]ppvHeap", to_string_flags_, tab_count, tab_size, OutPtrDecoderToString(ppvHeap)); - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12Device3_OpenExistingHeapFromFileMapping( - const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value, - uint64_t hFileMapping, - Decoded_GUID riid, - HandlePointerDecoder* ppvHeap) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12Device3"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "OpenExistingHeapFromFileMapping"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "hFileMapping", to_string_flags_, tab_count, tab_size, HandleIdToString(hFileMapping)); - FieldToString(str_strm, false, "riid", to_string_flags_, tab_count, tab_size, ToString(*riid.decoded_value, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "[out]ppvHeap", to_string_flags_, tab_count, tab_size, OutPtrDecoderToString(ppvHeap)); - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12Device3_EnqueueMakeResident( - const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value, - D3D12_RESIDENCY_FLAGS Flags, - UINT NumObjects, - HandlePointerDecoder* ppObjects, - format::HandleId pFenceToSignal, - UINT64 FenceValueToSignal) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12Device3"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "EnqueueMakeResident"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "Flags", to_string_flags_, tab_count, tab_size, Quote(ToString(Flags))); - FieldToString(str_strm, false, "NumObjects", to_string_flags_, tab_count, tab_size, ToString(NumObjects, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "ppObjects", to_string_flags_, tab_count, tab_size, PointerDecoderArrayToString(NumObjects, ppObjects, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "pFenceToSignal", to_string_flags_, tab_count, tab_size, HandleIdToString(pFenceToSignal)); - FieldToString(str_strm, false, "FenceValueToSignal", to_string_flags_, tab_count, tab_size, ToString(FenceValueToSignal, to_string_flags_, tab_count, tab_size)); - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12ProtectedSession_GetStatusFence( - const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value, - Decoded_GUID riid, - HandlePointerDecoder* ppFence) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12ProtectedSession"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "GetStatusFence"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "riid", to_string_flags_, tab_count, tab_size, ToString(*riid.decoded_value, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "[out]ppFence", to_string_flags_, tab_count, tab_size, OutPtrDecoderToString(ppFence)); - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12ProtectedSession_GetSessionStatus( - const ApiCallInfo& call_info, - format::HandleId object_id, - D3D12_PROTECTED_SESSION_STATUS return_value) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12ProtectedSession"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "GetSessionStatus"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12Device4_CreateCommandList1( - const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value, - UINT nodeMask, - D3D12_COMMAND_LIST_TYPE type, - D3D12_COMMAND_LIST_FLAGS flags, - Decoded_GUID riid, - HandlePointerDecoder* ppCommandList) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12Device4"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "CreateCommandList1"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "nodeMask", to_string_flags_, tab_count, tab_size, ToString(nodeMask, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "type", to_string_flags_, tab_count, tab_size, Quote(ToString(type))); - FieldToString(str_strm, false, "flags", to_string_flags_, tab_count, tab_size, Quote(ToString(flags))); - FieldToString(str_strm, false, "riid", to_string_flags_, tab_count, tab_size, ToString(*riid.decoded_value, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "[out]ppCommandList", to_string_flags_, tab_count, tab_size, OutPtrDecoderToString(ppCommandList)); - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12Device4_CreateProtectedResourceSession( - const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value, - StructPointerDecoder* pDesc, - Decoded_GUID riid, - HandlePointerDecoder* ppSession) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12Device4"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "CreateProtectedResourceSession"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "pDesc", to_string_flags_, tab_count, tab_size, StructPointerDecoderToString(pDesc, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "riid", to_string_flags_, tab_count, tab_size, ToString(*riid.decoded_value, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "[out]ppSession", to_string_flags_, tab_count, tab_size, OutPtrDecoderToString(ppSession)); - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12Device4_CreateCommittedResource1( - const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value, - StructPointerDecoder* pHeapProperties, - D3D12_HEAP_FLAGS HeapFlags, - StructPointerDecoder* pDesc, - D3D12_RESOURCE_STATES InitialResourceState, - StructPointerDecoder* pOptimizedClearValue, - format::HandleId pProtectedSession, - Decoded_GUID riidResource, - HandlePointerDecoder* ppvResource) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12Device4"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "CreateCommittedResource1"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "pHeapProperties", to_string_flags_, tab_count, tab_size, StructPointerDecoderToString(pHeapProperties, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "HeapFlags", to_string_flags_, tab_count, tab_size, Quote(ToString(HeapFlags))); - FieldToString(str_strm, false, "pDesc", to_string_flags_, tab_count, tab_size, StructPointerDecoderToString(pDesc, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "InitialResourceState", to_string_flags_, tab_count, tab_size, Quote(ToString(InitialResourceState))); - FieldToString(str_strm, false, "pOptimizedClearValue", to_string_flags_, tab_count, tab_size, StructPointerDecoderToString(pOptimizedClearValue, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "pProtectedSession", to_string_flags_, tab_count, tab_size, HandleIdToString(pProtectedSession)); - FieldToString(str_strm, false, "riidResource", to_string_flags_, tab_count, tab_size, ToString(*riidResource.decoded_value, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "[out]ppvResource", to_string_flags_, tab_count, tab_size, OutPtrDecoderToString(ppvResource)); - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12Device4_CreateHeap1( - const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value, - StructPointerDecoder* pDesc, - format::HandleId pProtectedSession, - Decoded_GUID riid, - HandlePointerDecoder* ppvHeap) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12Device4"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "CreateHeap1"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "pDesc", to_string_flags_, tab_count, tab_size, StructPointerDecoderToString(pDesc, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "pProtectedSession", to_string_flags_, tab_count, tab_size, HandleIdToString(pProtectedSession)); - FieldToString(str_strm, false, "riid", to_string_flags_, tab_count, tab_size, ToString(*riid.decoded_value, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "[out]ppvHeap", to_string_flags_, tab_count, tab_size, OutPtrDecoderToString(ppvHeap)); - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12Device4_CreateReservedResource1( - const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value, - StructPointerDecoder* pDesc, - D3D12_RESOURCE_STATES InitialState, - StructPointerDecoder* pOptimizedClearValue, - format::HandleId pProtectedSession, - Decoded_GUID riid, - HandlePointerDecoder* ppvResource) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12Device4"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "CreateReservedResource1"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "pDesc", to_string_flags_, tab_count, tab_size, StructPointerDecoderToString(pDesc, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "InitialState", to_string_flags_, tab_count, tab_size, Quote(ToString(InitialState))); - FieldToString(str_strm, false, "pOptimizedClearValue", to_string_flags_, tab_count, tab_size, StructPointerDecoderToString(pOptimizedClearValue, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "pProtectedSession", to_string_flags_, tab_count, tab_size, HandleIdToString(pProtectedSession)); - FieldToString(str_strm, false, "riid", to_string_flags_, tab_count, tab_size, ToString(*riid.decoded_value, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "[out]ppvResource", to_string_flags_, tab_count, tab_size, OutPtrDecoderToString(ppvResource)); - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12LifetimeOwner_LifetimeStateUpdated( - const ApiCallInfo& call_info, - format::HandleId object_id, - D3D12_LIFETIME_STATE NewState) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12LifetimeOwner"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "LifetimeStateUpdated"; - std::string returnValue = std::string(); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "NewState", to_string_flags_, tab_count, tab_size, Quote(ToString(NewState))); - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12SwapChainAssistant_GetLUID( - const ApiCallInfo& call_info, - format::HandleId object_id, - Decoded_LUID return_value) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12SwapChainAssistant"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "GetLUID"; - std::string returnValue = DX12ReturnValueToString(return_value, to_string_flags_, tab_count, tab_size); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12SwapChainAssistant_GetSwapChainObject( - const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value, - Decoded_GUID riid, - HandlePointerDecoder* ppv) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12SwapChainAssistant"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "GetSwapChainObject"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "riid", to_string_flags_, tab_count, tab_size, ToString(*riid.decoded_value, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "[out]ppv", to_string_flags_, tab_count, tab_size, OutPtrDecoderToString(ppv)); - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12SwapChainAssistant_GetCurrentResourceAndCommandQueue( - const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value, - Decoded_GUID riidResource, - HandlePointerDecoder* ppvResource, - Decoded_GUID riidQueue, - HandlePointerDecoder* ppvQueue) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12SwapChainAssistant"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "GetCurrentResourceAndCommandQueue"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "riidResource", to_string_flags_, tab_count, tab_size, ToString(*riidResource.decoded_value, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "[out]ppvResource", to_string_flags_, tab_count, tab_size, OutPtrDecoderToString(ppvResource)); - FieldToString(str_strm, false, "riidQueue", to_string_flags_, tab_count, tab_size, ToString(*riidQueue.decoded_value, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "[out]ppvQueue", to_string_flags_, tab_count, tab_size, OutPtrDecoderToString(ppvQueue)); - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12SwapChainAssistant_InsertImplicitSync( - const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12SwapChainAssistant"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "InsertImplicitSync"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12LifetimeTracker_DestroyOwnedObject( - const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value, - format::HandleId pObject) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12LifetimeTracker"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "DestroyOwnedObject"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "pObject", to_string_flags_, tab_count, tab_size, HandleIdToString(pObject)); - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12StateObjectProperties_GetShaderIdentifier( - const ApiCallInfo& call_info, - format::HandleId object_id, - PointerDecoder* return_value, - WStringDecoder* pExportName) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12StateObjectProperties"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "GetShaderIdentifier"; - std::string returnValue = std::string(); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "pExportName", to_string_flags_, tab_count, tab_size, StringDecoderToString(pExportName)); - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12StateObjectProperties_GetShaderStackSize( - const ApiCallInfo& call_info, - format::HandleId object_id, - UINT64 return_value, - WStringDecoder* pExportName) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12StateObjectProperties"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "GetShaderStackSize"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "pExportName", to_string_flags_, tab_count, tab_size, StringDecoderToString(pExportName)); - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12StateObjectProperties_GetPipelineStackSize( - const ApiCallInfo& call_info, - format::HandleId object_id, - UINT64 return_value) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12StateObjectProperties"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "GetPipelineStackSize"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12StateObjectProperties_SetPipelineStackSize( - const ApiCallInfo& call_info, - format::HandleId object_id, - UINT64 PipelineStackSizeInBytes) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12StateObjectProperties"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "SetPipelineStackSize"; - std::string returnValue = std::string(); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "PipelineStackSizeInBytes", to_string_flags_, tab_count, tab_size, ToString(PipelineStackSizeInBytes, to_string_flags_, tab_count, tab_size)); - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12Device5_CreateLifetimeTracker( - const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value, - format::HandleId pOwner, - Decoded_GUID riid, - HandlePointerDecoder* ppvTracker) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12Device5"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "CreateLifetimeTracker"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "pOwner", to_string_flags_, tab_count, tab_size, HandleIdToString(pOwner)); - FieldToString(str_strm, false, "riid", to_string_flags_, tab_count, tab_size, ToString(*riid.decoded_value, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "[out]ppvTracker", to_string_flags_, tab_count, tab_size, OutPtrDecoderToString(ppvTracker)); - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12Device5_RemoveDevice( - const ApiCallInfo& call_info, - format::HandleId object_id) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12Device5"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "RemoveDevice"; - std::string returnValue = std::string(); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12Device5_EnumerateMetaCommands( - const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value, - PointerDecoder* pNumMetaCommands, - StructPointerDecoder* pDescs) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12Device5"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "EnumerateMetaCommands"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "pNumMetaCommands", to_string_flags_, tab_count, tab_size, PointerDecoderToString(pNumMetaCommands, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "[out]pDescs", to_string_flags_, tab_count, tab_size, StructPointerDecoderArrayToString(pNumMetaCommands, pDescs, to_string_flags_, tab_count, tab_size)); - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12Device5_EnumerateMetaCommandParameters( - const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value, - Decoded_GUID CommandId, - D3D12_META_COMMAND_PARAMETER_STAGE Stage, - PointerDecoder* pTotalStructureSizeInBytes, - PointerDecoder* pParameterCount, - StructPointerDecoder* pParameterDescs) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12Device5"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "EnumerateMetaCommandParameters"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "CommandId", to_string_flags_, tab_count, tab_size, ToString(*CommandId.decoded_value, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "Stage", to_string_flags_, tab_count, tab_size, Quote(ToString(Stage))); - FieldToString(str_strm, false, "[out]pTotalStructureSizeInBytes", to_string_flags_, tab_count, tab_size, PointerDecoderToString(pTotalStructureSizeInBytes, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "pParameterCount", to_string_flags_, tab_count, tab_size, PointerDecoderToString(pParameterCount, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "[out]pParameterDescs", to_string_flags_, tab_count, tab_size, StructPointerDecoderArrayToString(pParameterCount, pParameterDescs, to_string_flags_, tab_count, tab_size)); - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12Device5_CreateMetaCommand( - const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value, - Decoded_GUID CommandId, - UINT NodeMask, - PointerDecoder* pCreationParametersData, - SIZE_T CreationParametersDataSizeInBytes, - Decoded_GUID riid, - HandlePointerDecoder* ppMetaCommand) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12Device5"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "CreateMetaCommand"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "CommandId", to_string_flags_, tab_count, tab_size, ToString(*CommandId.decoded_value, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "NodeMask", to_string_flags_, tab_count, tab_size, ToString(NodeMask, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "pCreationParametersData", to_string_flags_, tab_count, tab_size, PointerDecoderArrayToString(CreationParametersDataSizeInBytes, pCreationParametersData, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "CreationParametersDataSizeInBytes", to_string_flags_, tab_count, tab_size, ToString(CreationParametersDataSizeInBytes, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "riid", to_string_flags_, tab_count, tab_size, ToString(*riid.decoded_value, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "[out]ppMetaCommand", to_string_flags_, tab_count, tab_size, OutPtrDecoderToString(ppMetaCommand)); - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12Device5_CreateStateObject( - const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value, - StructPointerDecoder* pDesc, - Decoded_GUID riid, - HandlePointerDecoder* ppStateObject) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12Device5"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "CreateStateObject"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "pDesc", to_string_flags_, tab_count, tab_size, StructPointerDecoderToString(pDesc, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "riid", to_string_flags_, tab_count, tab_size, ToString(*riid.decoded_value, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "[out]ppStateObject", to_string_flags_, tab_count, tab_size, OutPtrDecoderToString(ppStateObject)); - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12Device5_GetRaytracingAccelerationStructurePrebuildInfo( - const ApiCallInfo& call_info, - format::HandleId object_id, - StructPointerDecoder* pDesc, - StructPointerDecoder* pInfo) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12Device5"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "GetRaytracingAccelerationStructurePrebuildInfo"; - std::string returnValue = std::string(); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "pDesc", to_string_flags_, tab_count, tab_size, StructPointerDecoderToString(pDesc, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "[out]pInfo", to_string_flags_, tab_count, tab_size, StructPointerDecoderToString(pInfo, to_string_flags_, tab_count, tab_size)); - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12Device5_CheckDriverMatchingIdentifier( - const ApiCallInfo& call_info, - format::HandleId object_id, - D3D12_DRIVER_MATCHING_IDENTIFIER_STATUS return_value, - D3D12_SERIALIZED_DATA_TYPE SerializedDataType, - StructPointerDecoder* pIdentifierToCheck) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12Device5"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "CheckDriverMatchingIdentifier"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "SerializedDataType", to_string_flags_, tab_count, tab_size, Quote(ToString(SerializedDataType))); - FieldToString(str_strm, false, "pIdentifierToCheck", to_string_flags_, tab_count, tab_size, StructPointerDecoderToString(pIdentifierToCheck, to_string_flags_, tab_count, tab_size)); - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12DeviceRemovedExtendedDataSettings_SetAutoBreadcrumbsEnablement( - const ApiCallInfo& call_info, - format::HandleId object_id, - D3D12_DRED_ENABLEMENT Enablement) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12DeviceRemovedExtendedDataSettings"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "SetAutoBreadcrumbsEnablement"; - std::string returnValue = std::string(); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "Enablement", to_string_flags_, tab_count, tab_size, Quote(ToString(Enablement))); - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12DeviceRemovedExtendedDataSettings_SetPageFaultEnablement( - const ApiCallInfo& call_info, - format::HandleId object_id, - D3D12_DRED_ENABLEMENT Enablement) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12DeviceRemovedExtendedDataSettings"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "SetPageFaultEnablement"; - std::string returnValue = std::string(); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "Enablement", to_string_flags_, tab_count, tab_size, Quote(ToString(Enablement))); - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12DeviceRemovedExtendedDataSettings_SetWatsonDumpEnablement( - const ApiCallInfo& call_info, - format::HandleId object_id, - D3D12_DRED_ENABLEMENT Enablement) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12DeviceRemovedExtendedDataSettings"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "SetWatsonDumpEnablement"; - std::string returnValue = std::string(); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "Enablement", to_string_flags_, tab_count, tab_size, Quote(ToString(Enablement))); - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12DeviceRemovedExtendedDataSettings1_SetBreadcrumbContextEnablement( - const ApiCallInfo& call_info, - format::HandleId object_id, - D3D12_DRED_ENABLEMENT Enablement) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12DeviceRemovedExtendedDataSettings1"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "SetBreadcrumbContextEnablement"; - std::string returnValue = std::string(); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "Enablement", to_string_flags_, tab_count, tab_size, Quote(ToString(Enablement))); - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12DeviceRemovedExtendedDataSettings2_UseMarkersOnlyAutoBreadcrumbs( - const ApiCallInfo& call_info, - format::HandleId object_id, - BOOL MarkersOnly) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12DeviceRemovedExtendedDataSettings2"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "UseMarkersOnlyAutoBreadcrumbs"; - std::string returnValue = std::string(); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "MarkersOnly", to_string_flags_, tab_count, tab_size, ToString(MarkersOnly, to_string_flags_, tab_count, tab_size)); - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12DeviceRemovedExtendedData_GetAutoBreadcrumbsOutput( - const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value, - StructPointerDecoder* pOutput) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12DeviceRemovedExtendedData"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "GetAutoBreadcrumbsOutput"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "[out]pOutput", to_string_flags_, tab_count, tab_size, StructPointerDecoderToString(pOutput, to_string_flags_, tab_count, tab_size)); - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12DeviceRemovedExtendedData_GetPageFaultAllocationOutput( - const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value, - StructPointerDecoder* pOutput) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12DeviceRemovedExtendedData"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "GetPageFaultAllocationOutput"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "[out]pOutput", to_string_flags_, tab_count, tab_size, StructPointerDecoderToString(pOutput, to_string_flags_, tab_count, tab_size)); - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12DeviceRemovedExtendedData1_GetAutoBreadcrumbsOutput1( - const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value, - StructPointerDecoder* pOutput) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12DeviceRemovedExtendedData1"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "GetAutoBreadcrumbsOutput1"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "[out]pOutput", to_string_flags_, tab_count, tab_size, StructPointerDecoderToString(pOutput, to_string_flags_, tab_count, tab_size)); - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12DeviceRemovedExtendedData1_GetPageFaultAllocationOutput1( - const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value, - StructPointerDecoder* pOutput) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12DeviceRemovedExtendedData1"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "GetPageFaultAllocationOutput1"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "[out]pOutput", to_string_flags_, tab_count, tab_size, StructPointerDecoderToString(pOutput, to_string_flags_, tab_count, tab_size)); - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12DeviceRemovedExtendedData2_GetPageFaultAllocationOutput2( - const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value, - StructPointerDecoder* pOutput) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12DeviceRemovedExtendedData2"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "GetPageFaultAllocationOutput2"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "[out]pOutput", to_string_flags_, tab_count, tab_size, StructPointerDecoderToString(pOutput, to_string_flags_, tab_count, tab_size)); - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12DeviceRemovedExtendedData2_GetDeviceState( - const ApiCallInfo& call_info, - format::HandleId object_id, - D3D12_DRED_DEVICE_STATE return_value) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12DeviceRemovedExtendedData2"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "GetDeviceState"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12Device6_SetBackgroundProcessingMode( - const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value, - D3D12_BACKGROUND_PROCESSING_MODE Mode, - D3D12_MEASUREMENTS_ACTION MeasurementsAction, - uint64_t hEventToSignalUponCompletion, - PointerDecoder* pbFurtherMeasurementsDesired) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12Device6"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "SetBackgroundProcessingMode"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "Mode", to_string_flags_, tab_count, tab_size, Quote(ToString(Mode))); - FieldToString(str_strm, false, "MeasurementsAction", to_string_flags_, tab_count, tab_size, Quote(ToString(MeasurementsAction))); - FieldToString(str_strm, false, "hEventToSignalUponCompletion", to_string_flags_, tab_count, tab_size, HandleIdToString(hEventToSignalUponCompletion)); - FieldToString(str_strm, false, "[out]pbFurtherMeasurementsDesired", to_string_flags_, tab_count, tab_size, PointerDecoderToString(pbFurtherMeasurementsDesired, to_string_flags_, tab_count, tab_size)); - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12ProtectedResourceSession1_GetDesc1( - const ApiCallInfo& call_info, - format::HandleId object_id, - Decoded_D3D12_PROTECTED_RESOURCE_SESSION_DESC1 return_value) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12ProtectedResourceSession1"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "GetDesc1"; - std::string returnValue = DX12ReturnValueToString(return_value, to_string_flags_, tab_count, tab_size); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12Device7_AddToStateObject( - const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value, - StructPointerDecoder* pAddition, - format::HandleId pStateObjectToGrowFrom, - Decoded_GUID riid, - HandlePointerDecoder* ppNewStateObject) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12Device7"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "AddToStateObject"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "pAddition", to_string_flags_, tab_count, tab_size, StructPointerDecoderToString(pAddition, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "pStateObjectToGrowFrom", to_string_flags_, tab_count, tab_size, HandleIdToString(pStateObjectToGrowFrom)); - FieldToString(str_strm, false, "riid", to_string_flags_, tab_count, tab_size, ToString(*riid.decoded_value, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "[out]ppNewStateObject", to_string_flags_, tab_count, tab_size, OutPtrDecoderToString(ppNewStateObject)); - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12Device7_CreateProtectedResourceSession1( - const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value, - StructPointerDecoder* pDesc, - Decoded_GUID riid, - HandlePointerDecoder* ppSession) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12Device7"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "CreateProtectedResourceSession1"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "pDesc", to_string_flags_, tab_count, tab_size, StructPointerDecoderToString(pDesc, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "riid", to_string_flags_, tab_count, tab_size, ToString(*riid.decoded_value, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "[out]ppSession", to_string_flags_, tab_count, tab_size, OutPtrDecoderToString(ppSession)); - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12Device8_GetResourceAllocationInfo2( - const ApiCallInfo& call_info, - format::HandleId object_id, - Decoded_D3D12_RESOURCE_ALLOCATION_INFO return_value, - UINT visibleMask, - UINT numResourceDescs, - StructPointerDecoder* pResourceDescs, - StructPointerDecoder* pResourceAllocationInfo1) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12Device8"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "GetResourceAllocationInfo2"; - std::string returnValue = DX12ReturnValueToString(return_value, to_string_flags_, tab_count, tab_size); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "visibleMask", to_string_flags_, tab_count, tab_size, ToString(visibleMask, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "numResourceDescs", to_string_flags_, tab_count, tab_size, ToString(numResourceDescs, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "pResourceDescs", to_string_flags_, tab_count, tab_size, StructPointerDecoderArrayToString(numResourceDescs, pResourceDescs, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "[out]pResourceAllocationInfo1", to_string_flags_, tab_count, tab_size, StructPointerDecoderArrayToString(numResourceDescs, pResourceAllocationInfo1, to_string_flags_, tab_count, tab_size)); - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12Device8_CreateCommittedResource2( - const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value, - StructPointerDecoder* pHeapProperties, - D3D12_HEAP_FLAGS HeapFlags, - StructPointerDecoder* pDesc, - D3D12_RESOURCE_STATES InitialResourceState, - StructPointerDecoder* pOptimizedClearValue, - format::HandleId pProtectedSession, - Decoded_GUID riidResource, - HandlePointerDecoder* ppvResource) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12Device8"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "CreateCommittedResource2"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "pHeapProperties", to_string_flags_, tab_count, tab_size, StructPointerDecoderToString(pHeapProperties, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "HeapFlags", to_string_flags_, tab_count, tab_size, Quote(ToString(HeapFlags))); - FieldToString(str_strm, false, "pDesc", to_string_flags_, tab_count, tab_size, StructPointerDecoderToString(pDesc, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "InitialResourceState", to_string_flags_, tab_count, tab_size, Quote(ToString(InitialResourceState))); - FieldToString(str_strm, false, "pOptimizedClearValue", to_string_flags_, tab_count, tab_size, StructPointerDecoderToString(pOptimizedClearValue, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "pProtectedSession", to_string_flags_, tab_count, tab_size, HandleIdToString(pProtectedSession)); - FieldToString(str_strm, false, "riidResource", to_string_flags_, tab_count, tab_size, ToString(*riidResource.decoded_value, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "[out]ppvResource", to_string_flags_, tab_count, tab_size, OutPtrDecoderToString(ppvResource)); - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12Device8_CreatePlacedResource1( - const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value, - format::HandleId pHeap, - UINT64 HeapOffset, - StructPointerDecoder* pDesc, - D3D12_RESOURCE_STATES InitialState, - StructPointerDecoder* pOptimizedClearValue, - Decoded_GUID riid, - HandlePointerDecoder* ppvResource) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12Device8"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "CreatePlacedResource1"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "pHeap", to_string_flags_, tab_count, tab_size, HandleIdToString(pHeap)); - FieldToString(str_strm, false, "HeapOffset", to_string_flags_, tab_count, tab_size, ToString(HeapOffset, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "pDesc", to_string_flags_, tab_count, tab_size, StructPointerDecoderToString(pDesc, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "InitialState", to_string_flags_, tab_count, tab_size, Quote(ToString(InitialState))); - FieldToString(str_strm, false, "pOptimizedClearValue", to_string_flags_, tab_count, tab_size, StructPointerDecoderToString(pOptimizedClearValue, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "riid", to_string_flags_, tab_count, tab_size, ToString(*riid.decoded_value, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "[out]ppvResource", to_string_flags_, tab_count, tab_size, OutPtrDecoderToString(ppvResource)); - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12Device8_CreateSamplerFeedbackUnorderedAccessView( - const ApiCallInfo& call_info, - format::HandleId object_id, - format::HandleId pTargetedResource, - format::HandleId pFeedbackResource, - Decoded_D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12Device8"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "CreateSamplerFeedbackUnorderedAccessView"; - std::string returnValue = std::string(); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "pTargetedResource", to_string_flags_, tab_count, tab_size, HandleIdToString(pTargetedResource)); - FieldToString(str_strm, false, "pFeedbackResource", to_string_flags_, tab_count, tab_size, HandleIdToString(pFeedbackResource)); - FieldToString(str_strm, false, "DestDescriptor", to_string_flags_, tab_count, tab_size, ToString(*DestDescriptor.decoded_value, to_string_flags_, tab_count, tab_size)); - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12Device8_GetCopyableFootprints1( - const ApiCallInfo& call_info, - format::HandleId object_id, - StructPointerDecoder* pResourceDesc, - UINT FirstSubresource, - UINT NumSubresources, - UINT64 BaseOffset, - StructPointerDecoder* pLayouts, - PointerDecoder* pNumRows, - PointerDecoder* pRowSizeInBytes, - PointerDecoder* pTotalBytes) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12Device8"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "GetCopyableFootprints1"; - std::string returnValue = std::string(); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "pResourceDesc", to_string_flags_, tab_count, tab_size, StructPointerDecoderToString(pResourceDesc, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "FirstSubresource", to_string_flags_, tab_count, tab_size, ToString(FirstSubresource, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "NumSubresources", to_string_flags_, tab_count, tab_size, ToString(NumSubresources, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "BaseOffset", to_string_flags_, tab_count, tab_size, ToString(BaseOffset, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "[out]pLayouts", to_string_flags_, tab_count, tab_size, StructPointerDecoderArrayToString(NumSubresources, pLayouts, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "[out]pNumRows", to_string_flags_, tab_count, tab_size, PointerDecoderArrayToString(NumSubresources, pNumRows, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "[out]pRowSizeInBytes", to_string_flags_, tab_count, tab_size, PointerDecoderArrayToString(NumSubresources, pRowSizeInBytes, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "[out]pTotalBytes", to_string_flags_, tab_count, tab_size, PointerDecoderToString(pTotalBytes, to_string_flags_, tab_count, tab_size)); - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12Resource1_GetProtectedResourceSession( - const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value, - Decoded_GUID riid, - HandlePointerDecoder* ppProtectedSession) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12Resource1"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "GetProtectedResourceSession"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "riid", to_string_flags_, tab_count, tab_size, ToString(*riid.decoded_value, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "[out]ppProtectedSession", to_string_flags_, tab_count, tab_size, OutPtrDecoderToString(ppProtectedSession)); - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12Resource2_GetDesc1( - const ApiCallInfo& call_info, - format::HandleId object_id, - Decoded_D3D12_RESOURCE_DESC1 return_value) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12Resource2"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "GetDesc1"; - std::string returnValue = DX12ReturnValueToString(return_value, to_string_flags_, tab_count, tab_size); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12Heap1_GetProtectedResourceSession( - const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value, - Decoded_GUID riid, - HandlePointerDecoder* ppProtectedSession) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12Heap1"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "GetProtectedResourceSession"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "riid", to_string_flags_, tab_count, tab_size, ToString(*riid.decoded_value, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "[out]ppProtectedSession", to_string_flags_, tab_count, tab_size, OutPtrDecoderToString(ppProtectedSession)); - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12GraphicsCommandList3_SetProtectedResourceSession( - const ApiCallInfo& call_info, - format::HandleId object_id, - format::HandleId pProtectedResourceSession) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12GraphicsCommandList3"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "SetProtectedResourceSession"; - std::string returnValue = std::string(); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "pProtectedResourceSession", to_string_flags_, tab_count, tab_size, HandleIdToString(pProtectedResourceSession)); - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12MetaCommand_GetRequiredParameterResourceSize( - const ApiCallInfo& call_info, - format::HandleId object_id, - UINT64 return_value, - D3D12_META_COMMAND_PARAMETER_STAGE Stage, - UINT ParameterIndex) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12MetaCommand"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "GetRequiredParameterResourceSize"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "Stage", to_string_flags_, tab_count, tab_size, Quote(ToString(Stage))); - FieldToString(str_strm, false, "ParameterIndex", to_string_flags_, tab_count, tab_size, ToString(ParameterIndex, to_string_flags_, tab_count, tab_size)); - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12GraphicsCommandList4_BeginRenderPass( - const ApiCallInfo& call_info, - format::HandleId object_id, - UINT NumRenderTargets, - StructPointerDecoder* pRenderTargets, - StructPointerDecoder* pDepthStencil, - D3D12_RENDER_PASS_FLAGS Flags) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12GraphicsCommandList4"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "BeginRenderPass"; - std::string returnValue = std::string(); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "NumRenderTargets", to_string_flags_, tab_count, tab_size, ToString(NumRenderTargets, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "pRenderTargets", to_string_flags_, tab_count, tab_size, StructPointerDecoderArrayToString(NumRenderTargets, pRenderTargets, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "pDepthStencil", to_string_flags_, tab_count, tab_size, StructPointerDecoderToString(pDepthStencil, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "Flags", to_string_flags_, tab_count, tab_size, Quote(ToString(Flags))); - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12GraphicsCommandList4_EndRenderPass( - const ApiCallInfo& call_info, - format::HandleId object_id) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12GraphicsCommandList4"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "EndRenderPass"; - std::string returnValue = std::string(); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12GraphicsCommandList4_InitializeMetaCommand( - const ApiCallInfo& call_info, - format::HandleId object_id, - format::HandleId pMetaCommand, - PointerDecoder* pInitializationParametersData, - SIZE_T InitializationParametersDataSizeInBytes) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12GraphicsCommandList4"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "InitializeMetaCommand"; - std::string returnValue = std::string(); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "pMetaCommand", to_string_flags_, tab_count, tab_size, HandleIdToString(pMetaCommand)); - FieldToString(str_strm, false, "pInitializationParametersData", to_string_flags_, tab_count, tab_size, PointerDecoderArrayToString(InitializationParametersDataSizeInBytes, pInitializationParametersData, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "InitializationParametersDataSizeInBytes", to_string_flags_, tab_count, tab_size, ToString(InitializationParametersDataSizeInBytes, to_string_flags_, tab_count, tab_size)); - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12GraphicsCommandList4_ExecuteMetaCommand( - const ApiCallInfo& call_info, - format::HandleId object_id, - format::HandleId pMetaCommand, - PointerDecoder* pExecutionParametersData, - SIZE_T ExecutionParametersDataSizeInBytes) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12GraphicsCommandList4"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "ExecuteMetaCommand"; - std::string returnValue = std::string(); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "pMetaCommand", to_string_flags_, tab_count, tab_size, HandleIdToString(pMetaCommand)); - FieldToString(str_strm, false, "pExecutionParametersData", to_string_flags_, tab_count, tab_size, PointerDecoderArrayToString(ExecutionParametersDataSizeInBytes, pExecutionParametersData, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "ExecutionParametersDataSizeInBytes", to_string_flags_, tab_count, tab_size, ToString(ExecutionParametersDataSizeInBytes, to_string_flags_, tab_count, tab_size)); - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12GraphicsCommandList4_BuildRaytracingAccelerationStructure( - const ApiCallInfo& call_info, - format::HandleId object_id, - StructPointerDecoder* pDesc, - UINT NumPostbuildInfoDescs, - StructPointerDecoder* pPostbuildInfoDescs) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12GraphicsCommandList4"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "BuildRaytracingAccelerationStructure"; - std::string returnValue = std::string(); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "pDesc", to_string_flags_, tab_count, tab_size, StructPointerDecoderToString(pDesc, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "NumPostbuildInfoDescs", to_string_flags_, tab_count, tab_size, ToString(NumPostbuildInfoDescs, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "pPostbuildInfoDescs", to_string_flags_, tab_count, tab_size, StructPointerDecoderArrayToString(NumPostbuildInfoDescs, pPostbuildInfoDescs, to_string_flags_, tab_count, tab_size)); - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12GraphicsCommandList4_EmitRaytracingAccelerationStructurePostbuildInfo( - const ApiCallInfo& call_info, - format::HandleId object_id, - StructPointerDecoder* pDesc, - UINT NumSourceAccelerationStructures, - PointerDecoder* pSourceAccelerationStructureData) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12GraphicsCommandList4"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "EmitRaytracingAccelerationStructurePostbuildInfo"; - std::string returnValue = std::string(); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "pDesc", to_string_flags_, tab_count, tab_size, StructPointerDecoderToString(pDesc, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "NumSourceAccelerationStructures", to_string_flags_, tab_count, tab_size, ToString(NumSourceAccelerationStructures, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "pSourceAccelerationStructureData", to_string_flags_, tab_count, tab_size, PointerDecoderArrayToString(NumSourceAccelerationStructures, pSourceAccelerationStructureData, to_string_flags_, tab_count, tab_size)); - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12GraphicsCommandList4_CopyRaytracingAccelerationStructure( - const ApiCallInfo& call_info, - format::HandleId object_id, - D3D12_GPU_VIRTUAL_ADDRESS DestAccelerationStructureData, - D3D12_GPU_VIRTUAL_ADDRESS SourceAccelerationStructureData, - D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE Mode) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12GraphicsCommandList4"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "CopyRaytracingAccelerationStructure"; - std::string returnValue = std::string(); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "DestAccelerationStructureData", to_string_flags_, tab_count, tab_size, ToString(DestAccelerationStructureData, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "SourceAccelerationStructureData", to_string_flags_, tab_count, tab_size, ToString(SourceAccelerationStructureData, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "Mode", to_string_flags_, tab_count, tab_size, Quote(ToString(Mode))); - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12GraphicsCommandList4_SetPipelineState1( - const ApiCallInfo& call_info, - format::HandleId object_id, - format::HandleId pStateObject) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12GraphicsCommandList4"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "SetPipelineState1"; - std::string returnValue = std::string(); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "pStateObject", to_string_flags_, tab_count, tab_size, HandleIdToString(pStateObject)); - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12GraphicsCommandList4_DispatchRays( - const ApiCallInfo& call_info, - format::HandleId object_id, - StructPointerDecoder* pDesc) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12GraphicsCommandList4"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "DispatchRays"; - std::string returnValue = std::string(); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "pDesc", to_string_flags_, tab_count, tab_size, StructPointerDecoderToString(pDesc, to_string_flags_, tab_count, tab_size)); - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12ShaderCacheSession_FindValue( - const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value, - PointerDecoder* pKey, - UINT KeySize, - PointerDecoder* pValue, - PointerDecoder* pValueSize) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12ShaderCacheSession"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "FindValue"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "pKey", to_string_flags_, tab_count, tab_size, PointerDecoderArrayToString(KeySize, pKey, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "KeySize", to_string_flags_, tab_count, tab_size, ToString(KeySize, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "[out]pValue", to_string_flags_, tab_count, tab_size, PointerDecoderArrayToString(pValueSize, pValue, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "pValueSize", to_string_flags_, tab_count, tab_size, PointerDecoderToString(pValueSize, to_string_flags_, tab_count, tab_size)); - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12ShaderCacheSession_StoreValue( - const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value, - PointerDecoder* pKey, - UINT KeySize, - PointerDecoder* pValue, - UINT ValueSize) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12ShaderCacheSession"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "StoreValue"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "pKey", to_string_flags_, tab_count, tab_size, PointerDecoderArrayToString(KeySize, pKey, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "KeySize", to_string_flags_, tab_count, tab_size, ToString(KeySize, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "pValue", to_string_flags_, tab_count, tab_size, PointerDecoderArrayToString(ValueSize, pValue, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "ValueSize", to_string_flags_, tab_count, tab_size, ToString(ValueSize, to_string_flags_, tab_count, tab_size)); - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12ShaderCacheSession_SetDeleteOnDestroy( - const ApiCallInfo& call_info, - format::HandleId object_id) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12ShaderCacheSession"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "SetDeleteOnDestroy"; - std::string returnValue = std::string(); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12ShaderCacheSession_GetDesc( - const ApiCallInfo& call_info, - format::HandleId object_id, - Decoded_D3D12_SHADER_CACHE_SESSION_DESC return_value) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12ShaderCacheSession"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "GetDesc"; - std::string returnValue = DX12ReturnValueToString(return_value, to_string_flags_, tab_count, tab_size); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12Device9_CreateShaderCacheSession( - const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value, - StructPointerDecoder* pDesc, - Decoded_GUID riid, - HandlePointerDecoder* ppvSession) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12Device9"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "CreateShaderCacheSession"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "pDesc", to_string_flags_, tab_count, tab_size, StructPointerDecoderToString(pDesc, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "riid", to_string_flags_, tab_count, tab_size, ToString(*riid.decoded_value, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "[out]ppvSession", to_string_flags_, tab_count, tab_size, OutPtrDecoderToString(ppvSession)); - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12Device9_ShaderCacheControl( - const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value, - D3D12_SHADER_CACHE_KIND_FLAGS Kinds, - D3D12_SHADER_CACHE_CONTROL_FLAGS Control) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12Device9"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "ShaderCacheControl"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "Kinds", to_string_flags_, tab_count, tab_size, Quote(ToString(Kinds))); - FieldToString(str_strm, false, "Control", to_string_flags_, tab_count, tab_size, Quote(ToString(Control))); - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12Device9_CreateCommandQueue1( - const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value, - StructPointerDecoder* pDesc, - Decoded_GUID CreatorID, - Decoded_GUID riid, - HandlePointerDecoder* ppCommandQueue) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12Device9"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "CreateCommandQueue1"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "pDesc", to_string_flags_, tab_count, tab_size, StructPointerDecoderToString(pDesc, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "CreatorID", to_string_flags_, tab_count, tab_size, ToString(*CreatorID.decoded_value, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "riid", to_string_flags_, tab_count, tab_size, ToString(*riid.decoded_value, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "[out]ppCommandQueue", to_string_flags_, tab_count, tab_size, OutPtrDecoderToString(ppCommandQueue)); - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12Device10_CreateCommittedResource3( - const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value, - StructPointerDecoder* pHeapProperties, - D3D12_HEAP_FLAGS HeapFlags, - StructPointerDecoder* pDesc, - D3D12_BARRIER_LAYOUT InitialLayout, - StructPointerDecoder* pOptimizedClearValue, - format::HandleId pProtectedSession, - UINT32 NumCastableFormats, - PointerDecoder* pCastableFormats, - Decoded_GUID riidResource, - HandlePointerDecoder* ppvResource) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12Device10"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "CreateCommittedResource3"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "pHeapProperties", to_string_flags_, tab_count, tab_size, StructPointerDecoderToString(pHeapProperties, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "HeapFlags", to_string_flags_, tab_count, tab_size, Quote(ToString(HeapFlags))); - FieldToString(str_strm, false, "pDesc", to_string_flags_, tab_count, tab_size, StructPointerDecoderToString(pDesc, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "InitialLayout", to_string_flags_, tab_count, tab_size, Quote(ToString(InitialLayout))); - FieldToString(str_strm, false, "pOptimizedClearValue", to_string_flags_, tab_count, tab_size, StructPointerDecoderToString(pOptimizedClearValue, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "pProtectedSession", to_string_flags_, tab_count, tab_size, HandleIdToString(pProtectedSession)); - FieldToString(str_strm, false, "NumCastableFormats", to_string_flags_, tab_count, tab_size, ToString(NumCastableFormats, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "pCastableFormats", to_string_flags_, tab_count, tab_size, EnumPointerDecoderArrayToString(NumCastableFormats, pCastableFormats, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "riidResource", to_string_flags_, tab_count, tab_size, ToString(*riidResource.decoded_value, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "[out]ppvResource", to_string_flags_, tab_count, tab_size, OutPtrDecoderToString(ppvResource)); - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12Device10_CreatePlacedResource2( - const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value, - format::HandleId pHeap, - UINT64 HeapOffset, - StructPointerDecoder* pDesc, - D3D12_BARRIER_LAYOUT InitialLayout, - StructPointerDecoder* pOptimizedClearValue, - UINT32 NumCastableFormats, - PointerDecoder* pCastableFormats, - Decoded_GUID riid, - HandlePointerDecoder* ppvResource) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12Device10"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "CreatePlacedResource2"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "pHeap", to_string_flags_, tab_count, tab_size, HandleIdToString(pHeap)); - FieldToString(str_strm, false, "HeapOffset", to_string_flags_, tab_count, tab_size, ToString(HeapOffset, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "pDesc", to_string_flags_, tab_count, tab_size, StructPointerDecoderToString(pDesc, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "InitialLayout", to_string_flags_, tab_count, tab_size, Quote(ToString(InitialLayout))); - FieldToString(str_strm, false, "pOptimizedClearValue", to_string_flags_, tab_count, tab_size, StructPointerDecoderToString(pOptimizedClearValue, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "NumCastableFormats", to_string_flags_, tab_count, tab_size, ToString(NumCastableFormats, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "pCastableFormats", to_string_flags_, tab_count, tab_size, EnumPointerDecoderArrayToString(NumCastableFormats, pCastableFormats, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "riid", to_string_flags_, tab_count, tab_size, ToString(*riid.decoded_value, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "[out]ppvResource", to_string_flags_, tab_count, tab_size, OutPtrDecoderToString(ppvResource)); - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12Device10_CreateReservedResource2( - const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value, - StructPointerDecoder* pDesc, - D3D12_BARRIER_LAYOUT InitialLayout, - StructPointerDecoder* pOptimizedClearValue, - format::HandleId pProtectedSession, - UINT32 NumCastableFormats, - PointerDecoder* pCastableFormats, - Decoded_GUID riid, - HandlePointerDecoder* ppvResource) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12Device10"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "CreateReservedResource2"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "pDesc", to_string_flags_, tab_count, tab_size, StructPointerDecoderToString(pDesc, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "InitialLayout", to_string_flags_, tab_count, tab_size, Quote(ToString(InitialLayout))); - FieldToString(str_strm, false, "pOptimizedClearValue", to_string_flags_, tab_count, tab_size, StructPointerDecoderToString(pOptimizedClearValue, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "pProtectedSession", to_string_flags_, tab_count, tab_size, HandleIdToString(pProtectedSession)); - FieldToString(str_strm, false, "NumCastableFormats", to_string_flags_, tab_count, tab_size, ToString(NumCastableFormats, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "pCastableFormats", to_string_flags_, tab_count, tab_size, EnumPointerDecoderArrayToString(NumCastableFormats, pCastableFormats, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "riid", to_string_flags_, tab_count, tab_size, ToString(*riid.decoded_value, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "[out]ppvResource", to_string_flags_, tab_count, tab_size, OutPtrDecoderToString(ppvResource)); - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12Device11_CreateSampler2( - const ApiCallInfo& call_info, - format::HandleId object_id, - StructPointerDecoder* pDesc, - Decoded_D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12Device11"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "CreateSampler2"; - std::string returnValue = std::string(); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "pDesc", to_string_flags_, tab_count, tab_size, StructPointerDecoderToString(pDesc, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "DestDescriptor", to_string_flags_, tab_count, tab_size, ToString(*DestDescriptor.decoded_value, to_string_flags_, tab_count, tab_size)); - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12Device12_GetResourceAllocationInfo3( - const ApiCallInfo& call_info, - format::HandleId object_id, - Decoded_D3D12_RESOURCE_ALLOCATION_INFO return_value, - UINT visibleMask, - UINT numResourceDescs, - StructPointerDecoder* pResourceDescs, - PointerDecoder* pNumCastableFormats, - PointerDecoder* ppCastableFormats, - StructPointerDecoder* pResourceAllocationInfo1) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12Device12"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "GetResourceAllocationInfo3"; - std::string returnValue = DX12ReturnValueToString(return_value, to_string_flags_, tab_count, tab_size); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "visibleMask", to_string_flags_, tab_count, tab_size, ToString(visibleMask, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "numResourceDescs", to_string_flags_, tab_count, tab_size, ToString(numResourceDescs, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "pResourceDescs", to_string_flags_, tab_count, tab_size, StructPointerDecoderArrayToString(numResourceDescs, pResourceDescs, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "pNumCastableFormats", to_string_flags_, tab_count, tab_size, PointerDecoderArrayToString(numResourceDescs, pNumCastableFormats, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "ppCastableFormats", to_string_flags_, tab_count, tab_size, EnumPointerDecoderArrayToString(numResourceDescs, ppCastableFormats, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "[out]pResourceAllocationInfo1", to_string_flags_, tab_count, tab_size, StructPointerDecoderArrayToString(numResourceDescs, pResourceAllocationInfo1, to_string_flags_, tab_count, tab_size)); - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12VirtualizationGuestDevice_ShareWithHost( - const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value, - format::HandleId pObject, - PointerDecoder* pHandle) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12VirtualizationGuestDevice"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "ShareWithHost"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "pObject", to_string_flags_, tab_count, tab_size, HandleIdToString(pObject)); - FieldToString(str_strm, false, "[out]pHandle", to_string_flags_, tab_count, tab_size, HandleIdToString(pHandle)); - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12VirtualizationGuestDevice_CreateFenceFd( - const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value, - format::HandleId pFence, - UINT64 FenceValue, - PointerDecoder* pFenceFd) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12VirtualizationGuestDevice"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "CreateFenceFd"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "pFence", to_string_flags_, tab_count, tab_size, HandleIdToString(pFence)); - FieldToString(str_strm, false, "FenceValue", to_string_flags_, tab_count, tab_size, ToString(FenceValue, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "[out]pFenceFd", to_string_flags_, tab_count, tab_size, PointerDecoderToString(pFenceFd, to_string_flags_, tab_count, tab_size)); - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12Tools_EnableShaderInstrumentation( - const ApiCallInfo& call_info, - format::HandleId object_id, - BOOL bEnable) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12Tools"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "EnableShaderInstrumentation"; - std::string returnValue = std::string(); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "bEnable", to_string_flags_, tab_count, tab_size, ToString(bEnable, to_string_flags_, tab_count, tab_size)); - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12Tools_ShaderInstrumentationEnabled( - const ApiCallInfo& call_info, - format::HandleId object_id, - BOOL return_value) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12Tools"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "ShaderInstrumentationEnabled"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12SDKConfiguration_SetSDKVersion( - const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value, - UINT SDKVersion, - StringDecoder* SDKPath) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12SDKConfiguration"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "SetSDKVersion"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "SDKVersion", to_string_flags_, tab_count, tab_size, ToString(SDKVersion, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "SDKPath", to_string_flags_, tab_count, tab_size, StringDecoderToString(SDKPath)); - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12SDKConfiguration1_CreateDeviceFactory( - const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value, - UINT SDKVersion, - StringDecoder* SDKPath, - Decoded_GUID riid, - HandlePointerDecoder* ppvFactory) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12SDKConfiguration1"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "CreateDeviceFactory"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "SDKVersion", to_string_flags_, tab_count, tab_size, ToString(SDKVersion, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "SDKPath", to_string_flags_, tab_count, tab_size, StringDecoderToString(SDKPath)); - FieldToString(str_strm, false, "riid", to_string_flags_, tab_count, tab_size, ToString(*riid.decoded_value, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "[out]ppvFactory", to_string_flags_, tab_count, tab_size, OutPtrDecoderToString(ppvFactory)); - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12SDKConfiguration1_FreeUnusedSDKs( - const ApiCallInfo& call_info, - format::HandleId object_id) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12SDKConfiguration1"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "FreeUnusedSDKs"; - std::string returnValue = std::string(); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12DeviceFactory_InitializeFromGlobalState( - const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12DeviceFactory"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "InitializeFromGlobalState"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12DeviceFactory_ApplyToGlobalState( - const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12DeviceFactory"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "ApplyToGlobalState"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12DeviceFactory_SetFlags( - const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value, - D3D12_DEVICE_FACTORY_FLAGS flags) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12DeviceFactory"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "SetFlags"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "flags", to_string_flags_, tab_count, tab_size, Quote(ToString(flags))); - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12DeviceFactory_GetFlags( - const ApiCallInfo& call_info, - format::HandleId object_id, - D3D12_DEVICE_FACTORY_FLAGS return_value) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12DeviceFactory"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "GetFlags"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12DeviceFactory_GetConfigurationInterface( - const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value, - Decoded_GUID clsid, - Decoded_GUID iid, - HandlePointerDecoder* ppv) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12DeviceFactory"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "GetConfigurationInterface"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "clsid", to_string_flags_, tab_count, tab_size, ToString(*clsid.decoded_value, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "iid", to_string_flags_, tab_count, tab_size, ToString(*iid.decoded_value, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "[out]ppv", to_string_flags_, tab_count, tab_size, OutPtrDecoderToString(ppv)); - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12DeviceFactory_EnableExperimentalFeatures( - const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value, - UINT NumFeatures, - StructPointerDecoder* pIIDs, - PointerDecoder* pConfigurationStructs, - PointerDecoder* pConfigurationStructSizes) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12DeviceFactory"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "EnableExperimentalFeatures"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "NumFeatures", to_string_flags_, tab_count, tab_size, ToString(NumFeatures, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "pIIDs", to_string_flags_, tab_count, tab_size, StructPointerDecoderArrayToString(NumFeatures, pIIDs, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "pConfigurationStructs", to_string_flags_, tab_count, tab_size, PointerDecoderArrayToString(NumFeatures, pConfigurationStructs, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "pConfigurationStructSizes", to_string_flags_, tab_count, tab_size, PointerDecoderArrayToString(NumFeatures, pConfigurationStructSizes, to_string_flags_, tab_count, tab_size)); - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12DeviceFactory_CreateDevice( - const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value, - format::HandleId adapter, - D3D_FEATURE_LEVEL FeatureLevel, - Decoded_GUID riid, - HandlePointerDecoder* ppvDevice) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12DeviceFactory"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "CreateDevice"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "adapter", to_string_flags_, tab_count, tab_size, HandleIdToString(adapter)); - FieldToString(str_strm, false, "FeatureLevel", to_string_flags_, tab_count, tab_size, Quote(ToString(FeatureLevel))); - FieldToString(str_strm, false, "riid", to_string_flags_, tab_count, tab_size, ToString(*riid.decoded_value, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "[out]ppvDevice", to_string_flags_, tab_count, tab_size, OutPtrDecoderToString(ppvDevice)); - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12DeviceConfiguration_GetDesc( - const ApiCallInfo& call_info, - format::HandleId object_id, - Decoded_D3D12_DEVICE_CONFIGURATION_DESC return_value) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12DeviceConfiguration"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "GetDesc"; - std::string returnValue = DX12ReturnValueToString(return_value, to_string_flags_, tab_count, tab_size); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12DeviceConfiguration_GetEnabledExperimentalFeatures( - const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value, - StructPointerDecoder* pGuids, - UINT NumGuids) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12DeviceConfiguration"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "GetEnabledExperimentalFeatures"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "[out]pGuids", to_string_flags_, tab_count, tab_size, StructPointerDecoderArrayToString(NumGuids, pGuids, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "NumGuids", to_string_flags_, tab_count, tab_size, ToString(NumGuids, to_string_flags_, tab_count, tab_size)); - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12DeviceConfiguration_SerializeVersionedRootSignature( - const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value, - StructPointerDecoder* pDesc, - HandlePointerDecoder* ppResult, - HandlePointerDecoder* ppError) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12DeviceConfiguration"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "SerializeVersionedRootSignature"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "pDesc", to_string_flags_, tab_count, tab_size, StructPointerDecoderToString(pDesc, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "[out]ppResult", to_string_flags_, tab_count, tab_size, OutPtrDecoderToString(ppResult)); - FieldToString(str_strm, false, "[out]ppError", to_string_flags_, tab_count, tab_size, HandleIdToString(ppError)); - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12DeviceConfiguration_CreateVersionedRootSignatureDeserializer( - const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value, - PointerDecoder* pBlob, - SIZE_T Size, - Decoded_GUID riid, - HandlePointerDecoder* ppvDeserializer) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12DeviceConfiguration"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "CreateVersionedRootSignatureDeserializer"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "pBlob", to_string_flags_, tab_count, tab_size, PointerDecoderArrayToString(Size, pBlob, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "Size", to_string_flags_, tab_count, tab_size, ToString(Size, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "riid", to_string_flags_, tab_count, tab_size, ToString(*riid.decoded_value, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "[out]ppvDeserializer", to_string_flags_, tab_count, tab_size, OutPtrDecoderToString(ppvDeserializer)); - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12GraphicsCommandList5_RSSetShadingRate( - const ApiCallInfo& call_info, - format::HandleId object_id, - D3D12_SHADING_RATE baseShadingRate, - PointerDecoder* combiners) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12GraphicsCommandList5"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "RSSetShadingRate"; - std::string returnValue = std::string(); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "baseShadingRate", to_string_flags_, tab_count, tab_size, Quote(ToString(baseShadingRate))); - FieldToString(str_strm, false, "combiners", to_string_flags_, tab_count, tab_size, EnumPointerDecoderArrayToString(D3D12_RS_SET_SHADING_RATE_COMBINER_COUNT, combiners, to_string_flags_, tab_count, tab_size)); - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12GraphicsCommandList5_RSSetShadingRateImage( - const ApiCallInfo& call_info, - format::HandleId object_id, - format::HandleId shadingRateImage) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12GraphicsCommandList5"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "RSSetShadingRateImage"; - std::string returnValue = std::string(); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "shadingRateImage", to_string_flags_, tab_count, tab_size, HandleIdToString(shadingRateImage)); - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12GraphicsCommandList6_DispatchMesh( - const ApiCallInfo& call_info, - format::HandleId object_id, - UINT ThreadGroupCountX, - UINT ThreadGroupCountY, - UINT ThreadGroupCountZ) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12GraphicsCommandList6"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "DispatchMesh"; - std::string returnValue = std::string(); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "ThreadGroupCountX", to_string_flags_, tab_count, tab_size, ToString(ThreadGroupCountX, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "ThreadGroupCountY", to_string_flags_, tab_count, tab_size, ToString(ThreadGroupCountY, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "ThreadGroupCountZ", to_string_flags_, tab_count, tab_size, ToString(ThreadGroupCountZ, to_string_flags_, tab_count, tab_size)); - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12GraphicsCommandList7_Barrier( - const ApiCallInfo& call_info, - format::HandleId object_id, - UINT32 NumBarrierGroups, - StructPointerDecoder* pBarrierGroups) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12GraphicsCommandList7"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "Barrier"; - std::string returnValue = std::string(); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "NumBarrierGroups", to_string_flags_, tab_count, tab_size, ToString(NumBarrierGroups, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "pBarrierGroups", to_string_flags_, tab_count, tab_size, StructPointerDecoderArrayToString(NumBarrierGroups, pBarrierGroups, to_string_flags_, tab_count, tab_size)); - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12GraphicsCommandList8_OMSetFrontAndBackStencilRef( - const ApiCallInfo& call_info, - format::HandleId object_id, - UINT FrontStencilRef, - UINT BackStencilRef) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12GraphicsCommandList8"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "OMSetFrontAndBackStencilRef"; - std::string returnValue = std::string(); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "FrontStencilRef", to_string_flags_, tab_count, tab_size, ToString(FrontStencilRef, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "BackStencilRef", to_string_flags_, tab_count, tab_size, ToString(BackStencilRef, to_string_flags_, tab_count, tab_size)); - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12GraphicsCommandList9_RSSetDepthBias( - const ApiCallInfo& call_info, - format::HandleId object_id, - FLOAT DepthBias, - FLOAT DepthBiasClamp, - FLOAT SlopeScaledDepthBias) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12GraphicsCommandList9"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "RSSetDepthBias"; - std::string returnValue = std::string(); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "DepthBias", to_string_flags_, tab_count, tab_size, ToString(DepthBias, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "DepthBiasClamp", to_string_flags_, tab_count, tab_size, ToString(DepthBiasClamp, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "SlopeScaledDepthBias", to_string_flags_, tab_count, tab_size, ToString(SlopeScaledDepthBias, to_string_flags_, tab_count, tab_size)); - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12GraphicsCommandList9_IASetIndexBufferStripCutValue( - const ApiCallInfo& call_info, - format::HandleId object_id, - D3D12_INDEX_BUFFER_STRIP_CUT_VALUE IBStripCutValue) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12GraphicsCommandList9"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "IASetIndexBufferStripCutValue"; - std::string returnValue = std::string(); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "IBStripCutValue", to_string_flags_, tab_count, tab_size, Quote(ToString(IBStripCutValue))); - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12DSRDeviceFactory_CreateDSRDevice( - const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value, - format::HandleId pD3D12Device, - UINT NodeMask, - Decoded_GUID riid, - HandlePointerDecoder* ppvDSRDevice) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12DSRDeviceFactory"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "CreateDSRDevice"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "pD3D12Device", to_string_flags_, tab_count, tab_size, HandleIdToString(pD3D12Device)); - FieldToString(str_strm, false, "NodeMask", to_string_flags_, tab_count, tab_size, ToString(NodeMask, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "riid", to_string_flags_, tab_count, tab_size, ToString(*riid.decoded_value, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "[out]ppvDSRDevice", to_string_flags_, tab_count, tab_size, OutPtrDecoderToString(ppvDSRDevice)); - } - ); -} - -/* -** This part is generated from d3dcommon.h in Windows SDK: 10.0.20348.0 -** -*/ -void Dx12AsciiConsumer::Process_ID3D10Blob_GetBufferPointer( - const ApiCallInfo& call_info, - format::HandleId object_id, - uint64_t return_value) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D10Blob"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "GetBufferPointer"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D10Blob_GetBufferSize( - const ApiCallInfo& call_info, - format::HandleId object_id, - SIZE_T return_value) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D10Blob"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "GetBufferSize"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - } - ); -} - -void Dx12AsciiConsumer::Process_ID3DDestructionNotifier_RegisterDestructionCallback( - const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value, - uint64_t callbackFn, - uint64_t pData, - PointerDecoder* pCallbackID) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3DDestructionNotifier"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "RegisterDestructionCallback"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "callbackFn", to_string_flags_, tab_count, tab_size, ToString(callbackFn, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "pData", to_string_flags_, tab_count, tab_size, HandleIdToString(pData)); - FieldToString(str_strm, false, "[out]pCallbackID", to_string_flags_, tab_count, tab_size, PointerDecoderToString(pCallbackID, to_string_flags_, tab_count, tab_size)); - } - ); -} - -void Dx12AsciiConsumer::Process_ID3DDestructionNotifier_UnregisterDestructionCallback( - const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value, - UINT callbackID) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3DDestructionNotifier"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "UnregisterDestructionCallback"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "callbackID", to_string_flags_, tab_count, tab_size, ToString(callbackID, to_string_flags_, tab_count, tab_size)); - } - ); -} - -/* -** This part is generated from d3d12sdklayers.h in Windows SDK: 10.0.20348.0 -** -*/ -void Dx12AsciiConsumer::Process_ID3D12Debug_EnableDebugLayer( - const ApiCallInfo& call_info, - format::HandleId object_id) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12Debug"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "EnableDebugLayer"; - std::string returnValue = std::string(); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12Debug1_EnableDebugLayer( - const ApiCallInfo& call_info, - format::HandleId object_id) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12Debug1"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "EnableDebugLayer"; - std::string returnValue = std::string(); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12Debug1_SetEnableGPUBasedValidation( - const ApiCallInfo& call_info, - format::HandleId object_id, - BOOL Enable) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12Debug1"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "SetEnableGPUBasedValidation"; - std::string returnValue = std::string(); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "Enable", to_string_flags_, tab_count, tab_size, ToString(Enable, to_string_flags_, tab_count, tab_size)); - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12Debug1_SetEnableSynchronizedCommandQueueValidation( - const ApiCallInfo& call_info, - format::HandleId object_id, - BOOL Enable) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12Debug1"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "SetEnableSynchronizedCommandQueueValidation"; - std::string returnValue = std::string(); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "Enable", to_string_flags_, tab_count, tab_size, ToString(Enable, to_string_flags_, tab_count, tab_size)); - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12Debug2_SetGPUBasedValidationFlags( - const ApiCallInfo& call_info, - format::HandleId object_id, - D3D12_GPU_BASED_VALIDATION_FLAGS Flags) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12Debug2"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "SetGPUBasedValidationFlags"; - std::string returnValue = std::string(); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "Flags", to_string_flags_, tab_count, tab_size, Quote(ToString(Flags))); - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12Debug3_SetEnableGPUBasedValidation( - const ApiCallInfo& call_info, - format::HandleId object_id, - BOOL Enable) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12Debug3"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "SetEnableGPUBasedValidation"; - std::string returnValue = std::string(); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "Enable", to_string_flags_, tab_count, tab_size, ToString(Enable, to_string_flags_, tab_count, tab_size)); - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12Debug3_SetEnableSynchronizedCommandQueueValidation( - const ApiCallInfo& call_info, - format::HandleId object_id, - BOOL Enable) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12Debug3"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "SetEnableSynchronizedCommandQueueValidation"; - std::string returnValue = std::string(); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "Enable", to_string_flags_, tab_count, tab_size, ToString(Enable, to_string_flags_, tab_count, tab_size)); - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12Debug3_SetGPUBasedValidationFlags( - const ApiCallInfo& call_info, - format::HandleId object_id, - D3D12_GPU_BASED_VALIDATION_FLAGS Flags) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12Debug3"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "SetGPUBasedValidationFlags"; - std::string returnValue = std::string(); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "Flags", to_string_flags_, tab_count, tab_size, Quote(ToString(Flags))); - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12Debug4_DisableDebugLayer( - const ApiCallInfo& call_info, - format::HandleId object_id) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12Debug4"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "DisableDebugLayer"; - std::string returnValue = std::string(); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12Debug5_SetEnableAutoName( - const ApiCallInfo& call_info, - format::HandleId object_id, - BOOL Enable) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12Debug5"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "SetEnableAutoName"; - std::string returnValue = std::string(); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "Enable", to_string_flags_, tab_count, tab_size, ToString(Enable, to_string_flags_, tab_count, tab_size)); - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12Debug6_SetForceLegacyBarrierValidation( - const ApiCallInfo& call_info, - format::HandleId object_id, - BOOL Enable) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12Debug6"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "SetForceLegacyBarrierValidation"; - std::string returnValue = std::string(); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "Enable", to_string_flags_, tab_count, tab_size, ToString(Enable, to_string_flags_, tab_count, tab_size)); - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12DebugDevice1_SetDebugParameter( - const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value, - D3D12_DEBUG_DEVICE_PARAMETER_TYPE Type, - PointerDecoder* pData, - UINT DataSize) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12DebugDevice1"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "SetDebugParameter"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "Type", to_string_flags_, tab_count, tab_size, Quote(ToString(Type))); - FieldToString(str_strm, false, "pData", to_string_flags_, tab_count, tab_size, PointerDecoderArrayToString(DataSize, pData, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "DataSize", to_string_flags_, tab_count, tab_size, ToString(DataSize, to_string_flags_, tab_count, tab_size)); - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12DebugDevice1_GetDebugParameter( - const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value, - D3D12_DEBUG_DEVICE_PARAMETER_TYPE Type, - PointerDecoder* pData, - UINT DataSize) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12DebugDevice1"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "GetDebugParameter"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "Type", to_string_flags_, tab_count, tab_size, Quote(ToString(Type))); - FieldToString(str_strm, false, "[out]pData", to_string_flags_, tab_count, tab_size, PointerDecoderArrayToString(DataSize, pData, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "DataSize", to_string_flags_, tab_count, tab_size, ToString(DataSize, to_string_flags_, tab_count, tab_size)); - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12DebugDevice1_ReportLiveDeviceObjects( - const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value, - D3D12_RLDO_FLAGS Flags) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12DebugDevice1"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "ReportLiveDeviceObjects"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "Flags", to_string_flags_, tab_count, tab_size, Quote(ToString(Flags))); - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12DebugDevice_SetFeatureMask( - const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value, - D3D12_DEBUG_FEATURE Mask) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12DebugDevice"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "SetFeatureMask"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "Mask", to_string_flags_, tab_count, tab_size, Quote(ToString(Mask))); - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12DebugDevice_GetFeatureMask( - const ApiCallInfo& call_info, - format::HandleId object_id, - D3D12_DEBUG_FEATURE return_value) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12DebugDevice"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "GetFeatureMask"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12DebugDevice_ReportLiveDeviceObjects( - const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value, - D3D12_RLDO_FLAGS Flags) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12DebugDevice"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "ReportLiveDeviceObjects"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "Flags", to_string_flags_, tab_count, tab_size, Quote(ToString(Flags))); - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12DebugDevice2_SetDebugParameter( - const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value, - D3D12_DEBUG_DEVICE_PARAMETER_TYPE Type, - PointerDecoder* pData, - UINT DataSize) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12DebugDevice2"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "SetDebugParameter"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "Type", to_string_flags_, tab_count, tab_size, Quote(ToString(Type))); - FieldToString(str_strm, false, "pData", to_string_flags_, tab_count, tab_size, PointerDecoderArrayToString(DataSize, pData, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "DataSize", to_string_flags_, tab_count, tab_size, ToString(DataSize, to_string_flags_, tab_count, tab_size)); - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12DebugDevice2_GetDebugParameter( - const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value, - D3D12_DEBUG_DEVICE_PARAMETER_TYPE Type, - PointerDecoder* pData, - UINT DataSize) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12DebugDevice2"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "GetDebugParameter"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "Type", to_string_flags_, tab_count, tab_size, Quote(ToString(Type))); - FieldToString(str_strm, false, "[out]pData", to_string_flags_, tab_count, tab_size, PointerDecoderArrayToString(DataSize, pData, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "DataSize", to_string_flags_, tab_count, tab_size, ToString(DataSize, to_string_flags_, tab_count, tab_size)); - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12DebugCommandQueue_AssertResourceState( - const ApiCallInfo& call_info, - format::HandleId object_id, - BOOL return_value, - format::HandleId pResource, - UINT Subresource, - UINT State) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12DebugCommandQueue"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "AssertResourceState"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "pResource", to_string_flags_, tab_count, tab_size, HandleIdToString(pResource)); - FieldToString(str_strm, false, "Subresource", to_string_flags_, tab_count, tab_size, ToString(Subresource, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "State", to_string_flags_, tab_count, tab_size, ToString(State, to_string_flags_, tab_count, tab_size)); - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12DebugCommandQueue1_AssertResourceAccess( - const ApiCallInfo& call_info, - format::HandleId object_id, - format::HandleId pResource, - UINT Subresource, - D3D12_BARRIER_ACCESS Access) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12DebugCommandQueue1"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "AssertResourceAccess"; - std::string returnValue = std::string(); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "pResource", to_string_flags_, tab_count, tab_size, HandleIdToString(pResource)); - FieldToString(str_strm, false, "Subresource", to_string_flags_, tab_count, tab_size, ToString(Subresource, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "Access", to_string_flags_, tab_count, tab_size, Quote(ToString(Access))); - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12DebugCommandQueue1_AssertTextureLayout( - const ApiCallInfo& call_info, - format::HandleId object_id, - format::HandleId pResource, - UINT Subresource, - D3D12_BARRIER_LAYOUT Layout) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12DebugCommandQueue1"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "AssertTextureLayout"; - std::string returnValue = std::string(); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "pResource", to_string_flags_, tab_count, tab_size, HandleIdToString(pResource)); - FieldToString(str_strm, false, "Subresource", to_string_flags_, tab_count, tab_size, ToString(Subresource, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "Layout", to_string_flags_, tab_count, tab_size, Quote(ToString(Layout))); - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12DebugCommandList1_AssertResourceState( - const ApiCallInfo& call_info, - format::HandleId object_id, - BOOL return_value, - format::HandleId pResource, - UINT Subresource, - UINT State) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12DebugCommandList1"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "AssertResourceState"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "pResource", to_string_flags_, tab_count, tab_size, HandleIdToString(pResource)); - FieldToString(str_strm, false, "Subresource", to_string_flags_, tab_count, tab_size, ToString(Subresource, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "State", to_string_flags_, tab_count, tab_size, ToString(State, to_string_flags_, tab_count, tab_size)); - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12DebugCommandList1_SetDebugParameter( - const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value, - D3D12_DEBUG_COMMAND_LIST_PARAMETER_TYPE Type, - PointerDecoder* pData, - UINT DataSize) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12DebugCommandList1"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "SetDebugParameter"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "Type", to_string_flags_, tab_count, tab_size, Quote(ToString(Type))); - FieldToString(str_strm, false, "pData", to_string_flags_, tab_count, tab_size, PointerDecoderArrayToString(DataSize, pData, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "DataSize", to_string_flags_, tab_count, tab_size, ToString(DataSize, to_string_flags_, tab_count, tab_size)); - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12DebugCommandList1_GetDebugParameter( - const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value, - D3D12_DEBUG_COMMAND_LIST_PARAMETER_TYPE Type, - PointerDecoder* pData, - UINT DataSize) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12DebugCommandList1"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "GetDebugParameter"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "Type", to_string_flags_, tab_count, tab_size, Quote(ToString(Type))); - FieldToString(str_strm, false, "[out]pData", to_string_flags_, tab_count, tab_size, PointerDecoderArrayToString(DataSize, pData, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "DataSize", to_string_flags_, tab_count, tab_size, ToString(DataSize, to_string_flags_, tab_count, tab_size)); - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12DebugCommandList_AssertResourceState( - const ApiCallInfo& call_info, - format::HandleId object_id, - BOOL return_value, - format::HandleId pResource, - UINT Subresource, - UINT State) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12DebugCommandList"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "AssertResourceState"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "pResource", to_string_flags_, tab_count, tab_size, HandleIdToString(pResource)); - FieldToString(str_strm, false, "Subresource", to_string_flags_, tab_count, tab_size, ToString(Subresource, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "State", to_string_flags_, tab_count, tab_size, ToString(State, to_string_flags_, tab_count, tab_size)); - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12DebugCommandList_SetFeatureMask( - const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value, - D3D12_DEBUG_FEATURE Mask) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12DebugCommandList"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "SetFeatureMask"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "Mask", to_string_flags_, tab_count, tab_size, Quote(ToString(Mask))); - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12DebugCommandList_GetFeatureMask( - const ApiCallInfo& call_info, - format::HandleId object_id, - D3D12_DEBUG_FEATURE return_value) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12DebugCommandList"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "GetFeatureMask"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12DebugCommandList2_SetDebugParameter( - const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value, - D3D12_DEBUG_COMMAND_LIST_PARAMETER_TYPE Type, - PointerDecoder* pData, - UINT DataSize) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12DebugCommandList2"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "SetDebugParameter"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "Type", to_string_flags_, tab_count, tab_size, Quote(ToString(Type))); - FieldToString(str_strm, false, "pData", to_string_flags_, tab_count, tab_size, PointerDecoderArrayToString(DataSize, pData, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "DataSize", to_string_flags_, tab_count, tab_size, ToString(DataSize, to_string_flags_, tab_count, tab_size)); - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12DebugCommandList2_GetDebugParameter( - const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value, - D3D12_DEBUG_COMMAND_LIST_PARAMETER_TYPE Type, - PointerDecoder* pData, - UINT DataSize) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12DebugCommandList2"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "GetDebugParameter"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "Type", to_string_flags_, tab_count, tab_size, Quote(ToString(Type))); - FieldToString(str_strm, false, "[out]pData", to_string_flags_, tab_count, tab_size, PointerDecoderArrayToString(DataSize, pData, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "DataSize", to_string_flags_, tab_count, tab_size, ToString(DataSize, to_string_flags_, tab_count, tab_size)); - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12DebugCommandList3_AssertResourceAccess( - const ApiCallInfo& call_info, - format::HandleId object_id, - format::HandleId pResource, - UINT Subresource, - D3D12_BARRIER_ACCESS Access) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12DebugCommandList3"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "AssertResourceAccess"; - std::string returnValue = std::string(); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "pResource", to_string_flags_, tab_count, tab_size, HandleIdToString(pResource)); - FieldToString(str_strm, false, "Subresource", to_string_flags_, tab_count, tab_size, ToString(Subresource, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "Access", to_string_flags_, tab_count, tab_size, Quote(ToString(Access))); - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12DebugCommandList3_AssertTextureLayout( - const ApiCallInfo& call_info, - format::HandleId object_id, - format::HandleId pResource, - UINT Subresource, - D3D12_BARRIER_LAYOUT Layout) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12DebugCommandList3"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "AssertTextureLayout"; - std::string returnValue = std::string(); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "pResource", to_string_flags_, tab_count, tab_size, HandleIdToString(pResource)); - FieldToString(str_strm, false, "Subresource", to_string_flags_, tab_count, tab_size, ToString(Subresource, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "Layout", to_string_flags_, tab_count, tab_size, Quote(ToString(Layout))); - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12SharingContract_Present( - const ApiCallInfo& call_info, - format::HandleId object_id, - format::HandleId pResource, - UINT Subresource, - uint64_t window) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12SharingContract"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "Present"; - std::string returnValue = std::string(); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "pResource", to_string_flags_, tab_count, tab_size, HandleIdToString(pResource)); - FieldToString(str_strm, false, "Subresource", to_string_flags_, tab_count, tab_size, ToString(Subresource, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "window", to_string_flags_, tab_count, tab_size, HandleIdToString(window)); - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12SharingContract_SharedFenceSignal( - const ApiCallInfo& call_info, - format::HandleId object_id, - format::HandleId pFence, - UINT64 FenceValue) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12SharingContract"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "SharedFenceSignal"; - std::string returnValue = std::string(); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "pFence", to_string_flags_, tab_count, tab_size, HandleIdToString(pFence)); - FieldToString(str_strm, false, "FenceValue", to_string_flags_, tab_count, tab_size, ToString(FenceValue, to_string_flags_, tab_count, tab_size)); - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12SharingContract_BeginCapturableWork( - const ApiCallInfo& call_info, - format::HandleId object_id, - Decoded_GUID guid) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12SharingContract"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "BeginCapturableWork"; - std::string returnValue = std::string(); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "guid", to_string_flags_, tab_count, tab_size, ToString(*guid.decoded_value, to_string_flags_, tab_count, tab_size)); - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12SharingContract_EndCapturableWork( - const ApiCallInfo& call_info, - format::HandleId object_id, - Decoded_GUID guid) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12SharingContract"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "EndCapturableWork"; - std::string returnValue = std::string(); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "guid", to_string_flags_, tab_count, tab_size, ToString(*guid.decoded_value, to_string_flags_, tab_count, tab_size)); - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12ManualWriteTrackingResource_TrackWrite( - const ApiCallInfo& call_info, - format::HandleId object_id, - UINT Subresource, - StructPointerDecoder* pWrittenRange) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12ManualWriteTrackingResource"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "TrackWrite"; - std::string returnValue = std::string(); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "Subresource", to_string_flags_, tab_count, tab_size, ToString(Subresource, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "pWrittenRange", to_string_flags_, tab_count, tab_size, StructPointerDecoderToString(pWrittenRange, to_string_flags_, tab_count, tab_size)); - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12InfoQueue_SetMessageCountLimit( - const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value, - UINT64 MessageCountLimit) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12InfoQueue"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "SetMessageCountLimit"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "MessageCountLimit", to_string_flags_, tab_count, tab_size, ToString(MessageCountLimit, to_string_flags_, tab_count, tab_size)); - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12InfoQueue_ClearStoredMessages( - const ApiCallInfo& call_info, - format::HandleId object_id) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12InfoQueue"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "ClearStoredMessages"; - std::string returnValue = std::string(); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12InfoQueue_GetNumMessagesAllowedByStorageFilter( - const ApiCallInfo& call_info, - format::HandleId object_id, - UINT64 return_value) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12InfoQueue"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "GetNumMessagesAllowedByStorageFilter"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12InfoQueue_GetNumMessagesDeniedByStorageFilter( - const ApiCallInfo& call_info, - format::HandleId object_id, - UINT64 return_value) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12InfoQueue"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "GetNumMessagesDeniedByStorageFilter"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12InfoQueue_GetNumStoredMessages( - const ApiCallInfo& call_info, - format::HandleId object_id, - UINT64 return_value) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12InfoQueue"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "GetNumStoredMessages"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12InfoQueue_GetNumStoredMessagesAllowedByRetrievalFilter( - const ApiCallInfo& call_info, - format::HandleId object_id, - UINT64 return_value) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12InfoQueue"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "GetNumStoredMessagesAllowedByRetrievalFilter"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12InfoQueue_GetNumMessagesDiscardedByMessageCountLimit( - const ApiCallInfo& call_info, - format::HandleId object_id, - UINT64 return_value) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12InfoQueue"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "GetNumMessagesDiscardedByMessageCountLimit"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12InfoQueue_GetMessageCountLimit( - const ApiCallInfo& call_info, - format::HandleId object_id, - UINT64 return_value) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12InfoQueue"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "GetMessageCountLimit"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12InfoQueue_AddStorageFilterEntries( - const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value, - StructPointerDecoder* pFilter) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12InfoQueue"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "AddStorageFilterEntries"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "pFilter", to_string_flags_, tab_count, tab_size, StructPointerDecoderToString(pFilter, to_string_flags_, tab_count, tab_size)); - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12InfoQueue_ClearStorageFilter( - const ApiCallInfo& call_info, - format::HandleId object_id) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12InfoQueue"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "ClearStorageFilter"; - std::string returnValue = std::string(); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12InfoQueue_PushEmptyStorageFilter( - const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12InfoQueue"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "PushEmptyStorageFilter"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12InfoQueue_PushCopyOfStorageFilter( - const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12InfoQueue"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "PushCopyOfStorageFilter"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12InfoQueue_PushStorageFilter( - const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value, - StructPointerDecoder* pFilter) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12InfoQueue"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "PushStorageFilter"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "pFilter", to_string_flags_, tab_count, tab_size, StructPointerDecoderToString(pFilter, to_string_flags_, tab_count, tab_size)); - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12InfoQueue_PopStorageFilter( - const ApiCallInfo& call_info, - format::HandleId object_id) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12InfoQueue"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "PopStorageFilter"; - std::string returnValue = std::string(); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12InfoQueue_GetStorageFilterStackSize( - const ApiCallInfo& call_info, - format::HandleId object_id, - UINT return_value) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12InfoQueue"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "GetStorageFilterStackSize"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12InfoQueue_AddRetrievalFilterEntries( - const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value, - StructPointerDecoder* pFilter) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12InfoQueue"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "AddRetrievalFilterEntries"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "pFilter", to_string_flags_, tab_count, tab_size, StructPointerDecoderToString(pFilter, to_string_flags_, tab_count, tab_size)); - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12InfoQueue_ClearRetrievalFilter( - const ApiCallInfo& call_info, - format::HandleId object_id) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12InfoQueue"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "ClearRetrievalFilter"; - std::string returnValue = std::string(); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12InfoQueue_PushEmptyRetrievalFilter( - const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12InfoQueue"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "PushEmptyRetrievalFilter"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12InfoQueue_PushCopyOfRetrievalFilter( - const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12InfoQueue"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "PushCopyOfRetrievalFilter"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12InfoQueue_PushRetrievalFilter( - const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value, - StructPointerDecoder* pFilter) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12InfoQueue"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "PushRetrievalFilter"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "pFilter", to_string_flags_, tab_count, tab_size, StructPointerDecoderToString(pFilter, to_string_flags_, tab_count, tab_size)); - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12InfoQueue_PopRetrievalFilter( - const ApiCallInfo& call_info, - format::HandleId object_id) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12InfoQueue"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "PopRetrievalFilter"; - std::string returnValue = std::string(); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12InfoQueue_GetRetrievalFilterStackSize( - const ApiCallInfo& call_info, - format::HandleId object_id, - UINT return_value) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12InfoQueue"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "GetRetrievalFilterStackSize"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12InfoQueue_AddMessage( - const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value, - D3D12_MESSAGE_CATEGORY Category, - D3D12_MESSAGE_SEVERITY Severity, - D3D12_MESSAGE_ID ID, - StringDecoder* pDescription) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12InfoQueue"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "AddMessage"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "Category", to_string_flags_, tab_count, tab_size, Quote(ToString(Category))); - FieldToString(str_strm, false, "Severity", to_string_flags_, tab_count, tab_size, Quote(ToString(Severity))); - FieldToString(str_strm, false, "ID", to_string_flags_, tab_count, tab_size, Quote(ToString(ID))); - FieldToString(str_strm, false, "pDescription", to_string_flags_, tab_count, tab_size, StringDecoderToString(pDescription)); - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12InfoQueue_AddApplicationMessage( - const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value, - D3D12_MESSAGE_SEVERITY Severity, - StringDecoder* pDescription) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12InfoQueue"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "AddApplicationMessage"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "Severity", to_string_flags_, tab_count, tab_size, Quote(ToString(Severity))); - FieldToString(str_strm, false, "pDescription", to_string_flags_, tab_count, tab_size, StringDecoderToString(pDescription)); - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12InfoQueue_SetBreakOnCategory( - const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value, - D3D12_MESSAGE_CATEGORY Category, - BOOL bEnable) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12InfoQueue"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "SetBreakOnCategory"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "Category", to_string_flags_, tab_count, tab_size, Quote(ToString(Category))); - FieldToString(str_strm, false, "bEnable", to_string_flags_, tab_count, tab_size, ToString(bEnable, to_string_flags_, tab_count, tab_size)); - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12InfoQueue_SetBreakOnSeverity( - const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value, - D3D12_MESSAGE_SEVERITY Severity, - BOOL bEnable) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12InfoQueue"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "SetBreakOnSeverity"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "Severity", to_string_flags_, tab_count, tab_size, Quote(ToString(Severity))); - FieldToString(str_strm, false, "bEnable", to_string_flags_, tab_count, tab_size, ToString(bEnable, to_string_flags_, tab_count, tab_size)); - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12InfoQueue_SetBreakOnID( - const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value, - D3D12_MESSAGE_ID ID, - BOOL bEnable) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12InfoQueue"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "SetBreakOnID"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "ID", to_string_flags_, tab_count, tab_size, Quote(ToString(ID))); - FieldToString(str_strm, false, "bEnable", to_string_flags_, tab_count, tab_size, ToString(bEnable, to_string_flags_, tab_count, tab_size)); - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12InfoQueue_GetBreakOnCategory( - const ApiCallInfo& call_info, - format::HandleId object_id, - BOOL return_value, - D3D12_MESSAGE_CATEGORY Category) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12InfoQueue"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "GetBreakOnCategory"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "Category", to_string_flags_, tab_count, tab_size, Quote(ToString(Category))); - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12InfoQueue_GetBreakOnSeverity( - const ApiCallInfo& call_info, - format::HandleId object_id, - BOOL return_value, - D3D12_MESSAGE_SEVERITY Severity) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12InfoQueue"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "GetBreakOnSeverity"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "Severity", to_string_flags_, tab_count, tab_size, Quote(ToString(Severity))); - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12InfoQueue_GetBreakOnID( - const ApiCallInfo& call_info, - format::HandleId object_id, - BOOL return_value, - D3D12_MESSAGE_ID ID) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12InfoQueue"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "GetBreakOnID"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "ID", to_string_flags_, tab_count, tab_size, Quote(ToString(ID))); - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12InfoQueue_SetMuteDebugOutput( - const ApiCallInfo& call_info, - format::HandleId object_id, - BOOL bMute) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12InfoQueue"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "SetMuteDebugOutput"; - std::string returnValue = std::string(); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "bMute", to_string_flags_, tab_count, tab_size, ToString(bMute, to_string_flags_, tab_count, tab_size)); - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12InfoQueue_GetMuteDebugOutput( - const ApiCallInfo& call_info, - format::HandleId object_id, - BOOL return_value) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12InfoQueue"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "GetMuteDebugOutput"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12InfoQueue1_RegisterMessageCallback( - const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value, - uint64_t CallbackFunc, - D3D12_MESSAGE_CALLBACK_FLAGS CallbackFilterFlags, - uint64_t pContext, - PointerDecoder* pCallbackCookie) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12InfoQueue1"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "RegisterMessageCallback"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "CallbackFunc", to_string_flags_, tab_count, tab_size, ToString(CallbackFunc, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "CallbackFilterFlags", to_string_flags_, tab_count, tab_size, Quote(ToString(CallbackFilterFlags))); - FieldToString(str_strm, false, "pContext", to_string_flags_, tab_count, tab_size, HandleIdToString(pContext)); - FieldToString(str_strm, false, "pCallbackCookie", to_string_flags_, tab_count, tab_size, PointerDecoderToString(pCallbackCookie, to_string_flags_, tab_count, tab_size)); - } - ); -} - -void Dx12AsciiConsumer::Process_ID3D12InfoQueue1_UnregisterMessageCallback( - const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value, - DWORD CallbackCookie) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "ID3D12InfoQueue1"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "UnregisterMessageCallback"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "CallbackCookie", to_string_flags_, tab_count, tab_size, ToString(CallbackCookie, to_string_flags_, tab_count, tab_size)); - } - ); -} - -/* -** This part is generated from Unknwnbase.h in Windows SDK: 10.0.20348.0 -** -*/ -void Dx12AsciiConsumer::Process_IUnknown_QueryInterface( - const ApiCallInfo& call_info, - format::HandleId object_id, - HRESULT return_value, - Decoded_GUID riid, - HandlePointerDecoder* ppvObject) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "IUnknown"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "QueryInterface"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - FieldToString(str_strm, true, "riid", to_string_flags_, tab_count, tab_size, ToString(*riid.decoded_value, to_string_flags_, tab_count, tab_size)); - FieldToString(str_strm, false, "[out]ppvObject", to_string_flags_, tab_count, tab_size, OutPtrDecoderToString(ppvObject)); - } - ); -} - -void Dx12AsciiConsumer::Process_IUnknown_AddRef( - const ApiCallInfo& call_info, - format::HandleId object_id, - ULONG return_value) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "IUnknown"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "AddRef"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - } - ); -} - -void Dx12AsciiConsumer::Process_IUnknown_Release( - const ApiCallInfo& call_info, - format::HandleId object_id, - ULONG return_value) -{ - using namespace gfxrecon::util; - uint32_t tab_count = 0; - uint32_t tab_size = 4; - WriteApiCallToFileInfo writeApiCallToFileInfo{}; - writeApiCallToFileInfo.pObjectTypeName = "IUnknown"; - writeApiCallToFileInfo.handleId = object_id; - writeApiCallToFileInfo.pFunctionName = "Release"; - std::string returnValue = ToString(return_value); - writeApiCallToFileInfo.pReturnValue = !returnValue.empty() ? returnValue.c_str() : nullptr; - WriteApiCallToFile( - writeApiCallToFileInfo, tab_count, tab_size, - [&](std::stringstream& str_strm) - { - } - ); -} - - - -GFXRECON_END_NAMESPACE(decode) -GFXRECON_END_NAMESPACE(gfxrecon) diff --git a/framework/generated/generated_dx12_enum_to_json.h b/framework/generated/generated_dx12_enum_to_json.h new file mode 100644 index 0000000000..da6b6fe135 --- /dev/null +++ b/framework/generated/generated_dx12_enum_to_json.h @@ -0,0 +1,2804 @@ +/* +** Copyright (c) 2021-2023 LunarG, Inc. +** +** Permission is hereby granted, free of charge, to any person obtaining a copy +** of this software and associated documentation files (the "Software"), to +** deal in the Software without restriction, including without limitation the +** rights to use, copy, modify, merge, publish, distribute, sublicense, and/or +** sell copies of the Software, and to permit persons to whom the Software is +** furnished to do so, subject to the following conditions: +** +** The above copyright notice and this permission notice shall be included in +** all copies or substantial portions of the Software. +** +** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +** IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +** FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +** AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +** LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +** FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS +** IN THE SOFTWARE. +*/ + +/* +** This file is generated from dx12_enum_to_json_header_generator.py. +** +*/ + +#ifndef GFXRECON_GENERATED_DX12_ENUM_TO_JSON_H +#define GFXRECON_GENERATED_DX12_ENUM_TO_JSON_H + +/// @file Functions to convert enums to JSON. While trivial these do tidy up +/// the FieldToJsons of structs which use them and the JSON consumer too. +/// They also mean that generators don't need separate cases for enums. + +#include "util/json_util.h" +#include "generated/generated_dx12_enum_to_string.h" +#include "util/defines.h" +#include "util/to_string.h" +#include "format/platform_types.h" + +GFXRECON_BEGIN_NAMESPACE(gfxrecon) +GFXRECON_BEGIN_NAMESPACE(util) + +inline void FieldToJson(nlohmann::ordered_json& jdata, const DXGI_RESIDENCY value, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, ToString(value), options); +} +inline void FieldToJson(nlohmann::ordered_json& jdata, const DXGI_RESIDENCY* pEnum, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, *pEnum, options); +} + +inline void FieldToJson(nlohmann::ordered_json& jdata, const DXGI_SWAP_EFFECT value, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, ToString(value), options); +} +inline void FieldToJson(nlohmann::ordered_json& jdata, const DXGI_SWAP_EFFECT* pEnum, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, *pEnum, options); +} + +inline void FieldToJson(nlohmann::ordered_json& jdata, const DXGI_SWAP_CHAIN_FLAG value, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, ToString(value), options); +} +inline void FieldToJson(nlohmann::ordered_json& jdata, const DXGI_SWAP_CHAIN_FLAG* pEnum, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, *pEnum, options); +} + +inline void FieldToJson(nlohmann::ordered_json& jdata, const DXGI_ADAPTER_FLAG value, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, ToString(value), options); +} +inline void FieldToJson(nlohmann::ordered_json& jdata, const DXGI_ADAPTER_FLAG* pEnum, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, *pEnum, options); +} + +inline void FieldToJson(nlohmann::ordered_json& jdata, const DXGI_OUTDUPL_POINTER_SHAPE_TYPE value, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, ToString(value), options); +} +inline void FieldToJson(nlohmann::ordered_json& jdata, const DXGI_OUTDUPL_POINTER_SHAPE_TYPE* pEnum, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, *pEnum, options); +} + +inline void FieldToJson(nlohmann::ordered_json& jdata, const DXGI_ALPHA_MODE value, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, ToString(value), options); +} +inline void FieldToJson(nlohmann::ordered_json& jdata, const DXGI_ALPHA_MODE* pEnum, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, *pEnum, options); +} + +inline void FieldToJson(nlohmann::ordered_json& jdata, const DXGI_OFFER_RESOURCE_PRIORITY value, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, ToString(value), options); +} +inline void FieldToJson(nlohmann::ordered_json& jdata, const DXGI_OFFER_RESOURCE_PRIORITY* pEnum, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, *pEnum, options); +} + +inline void FieldToJson(nlohmann::ordered_json& jdata, const DXGI_SCALING value, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, ToString(value), options); +} +inline void FieldToJson(nlohmann::ordered_json& jdata, const DXGI_SCALING* pEnum, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, *pEnum, options); +} + +inline void FieldToJson(nlohmann::ordered_json& jdata, const DXGI_GRAPHICS_PREEMPTION_GRANULARITY value, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, ToString(value), options); +} +inline void FieldToJson(nlohmann::ordered_json& jdata, const DXGI_GRAPHICS_PREEMPTION_GRANULARITY* pEnum, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, *pEnum, options); +} + +inline void FieldToJson(nlohmann::ordered_json& jdata, const DXGI_COMPUTE_PREEMPTION_GRANULARITY value, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, ToString(value), options); +} +inline void FieldToJson(nlohmann::ordered_json& jdata, const DXGI_COMPUTE_PREEMPTION_GRANULARITY* pEnum, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, *pEnum, options); +} + +inline void FieldToJson(nlohmann::ordered_json& jdata, const DXGI_MULTIPLANE_OVERLAY_YCbCr_FLAGS value, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, ToString(value), options); +} +inline void FieldToJson(nlohmann::ordered_json& jdata, const DXGI_MULTIPLANE_OVERLAY_YCbCr_FLAGS* pEnum, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, *pEnum, options); +} + +inline void FieldToJson(nlohmann::ordered_json& jdata, const DXGI_FRAME_PRESENTATION_MODE value, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, ToString(value), options); +} +inline void FieldToJson(nlohmann::ordered_json& jdata, const DXGI_FRAME_PRESENTATION_MODE* pEnum, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, *pEnum, options); +} + +inline void FieldToJson(nlohmann::ordered_json& jdata, const DXGI_OVERLAY_SUPPORT_FLAG value, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, ToString(value), options); +} +inline void FieldToJson(nlohmann::ordered_json& jdata, const DXGI_OVERLAY_SUPPORT_FLAG* pEnum, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, *pEnum, options); +} + +inline void FieldToJson(nlohmann::ordered_json& jdata, const DXGI_SWAP_CHAIN_COLOR_SPACE_SUPPORT_FLAG value, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, ToString(value), options); +} +inline void FieldToJson(nlohmann::ordered_json& jdata, const DXGI_SWAP_CHAIN_COLOR_SPACE_SUPPORT_FLAG* pEnum, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, *pEnum, options); +} + +inline void FieldToJson(nlohmann::ordered_json& jdata, const DXGI_OVERLAY_COLOR_SPACE_SUPPORT_FLAG value, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, ToString(value), options); +} +inline void FieldToJson(nlohmann::ordered_json& jdata, const DXGI_OVERLAY_COLOR_SPACE_SUPPORT_FLAG* pEnum, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, *pEnum, options); +} + +inline void FieldToJson(nlohmann::ordered_json& jdata, const DXGI_MEMORY_SEGMENT_GROUP value, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, ToString(value), options); +} +inline void FieldToJson(nlohmann::ordered_json& jdata, const DXGI_MEMORY_SEGMENT_GROUP* pEnum, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, *pEnum, options); +} + +inline void FieldToJson(nlohmann::ordered_json& jdata, const DXGI_OUTDUPL_FLAG value, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, ToString(value), options); +} +inline void FieldToJson(nlohmann::ordered_json& jdata, const DXGI_OUTDUPL_FLAG* pEnum, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, *pEnum, options); +} + +inline void FieldToJson(nlohmann::ordered_json& jdata, const DXGI_HDR_METADATA_TYPE value, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, ToString(value), options); +} +inline void FieldToJson(nlohmann::ordered_json& jdata, const DXGI_HDR_METADATA_TYPE* pEnum, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, *pEnum, options); +} + +inline void FieldToJson(nlohmann::ordered_json& jdata, const DXGI_OFFER_RESOURCE_FLAGS value, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, ToString(value), options); +} +inline void FieldToJson(nlohmann::ordered_json& jdata, const DXGI_OFFER_RESOURCE_FLAGS* pEnum, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, *pEnum, options); +} + +inline void FieldToJson(nlohmann::ordered_json& jdata, const DXGI_RECLAIM_RESOURCE_RESULTS value, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, ToString(value), options); +} +inline void FieldToJson(nlohmann::ordered_json& jdata, const DXGI_RECLAIM_RESOURCE_RESULTS* pEnum, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, *pEnum, options); +} + +inline void FieldToJson(nlohmann::ordered_json& jdata, const DXGI_FEATURE value, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, ToString(value), options); +} +inline void FieldToJson(nlohmann::ordered_json& jdata, const DXGI_FEATURE* pEnum, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, *pEnum, options); +} + +inline void FieldToJson(nlohmann::ordered_json& jdata, const DXGI_ADAPTER_FLAG3 value, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, ToString(value), options); +} +inline void FieldToJson(nlohmann::ordered_json& jdata, const DXGI_ADAPTER_FLAG3* pEnum, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, *pEnum, options); +} + +inline void FieldToJson(nlohmann::ordered_json& jdata, const DXGI_HARDWARE_COMPOSITION_SUPPORT_FLAGS value, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, ToString(value), options); +} +inline void FieldToJson(nlohmann::ordered_json& jdata, const DXGI_HARDWARE_COMPOSITION_SUPPORT_FLAGS* pEnum, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, *pEnum, options); +} + +inline void FieldToJson(nlohmann::ordered_json& jdata, const DXGI_GPU_PREFERENCE value, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, ToString(value), options); +} +inline void FieldToJson(nlohmann::ordered_json& jdata, const DXGI_GPU_PREFERENCE* pEnum, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, *pEnum, options); +} + +inline void FieldToJson(nlohmann::ordered_json& jdata, const DXGI_COLOR_SPACE_TYPE value, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, ToString(value), options); +} +inline void FieldToJson(nlohmann::ordered_json& jdata, const DXGI_COLOR_SPACE_TYPE* pEnum, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, *pEnum, options); +} + +inline void FieldToJson(nlohmann::ordered_json& jdata, const DXGI_FORMAT value, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, ToString(value), options); +} +inline void FieldToJson(nlohmann::ordered_json& jdata, const DXGI_FORMAT* pEnum, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, *pEnum, options); +} + +inline void FieldToJson(nlohmann::ordered_json& jdata, const DXGI_MODE_SCANLINE_ORDER value, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, ToString(value), options); +} +inline void FieldToJson(nlohmann::ordered_json& jdata, const DXGI_MODE_SCANLINE_ORDER* pEnum, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, *pEnum, options); +} + +inline void FieldToJson(nlohmann::ordered_json& jdata, const DXGI_MODE_SCALING value, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, ToString(value), options); +} +inline void FieldToJson(nlohmann::ordered_json& jdata, const DXGI_MODE_SCALING* pEnum, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, *pEnum, options); +} + +inline void FieldToJson(nlohmann::ordered_json& jdata, const DXGI_MODE_ROTATION value, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, ToString(value), options); +} +inline void FieldToJson(nlohmann::ordered_json& jdata, const DXGI_MODE_ROTATION* pEnum, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, *pEnum, options); +} + +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_COMMAND_LIST_TYPE value, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, ToString(value), options); +} +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_COMMAND_LIST_TYPE* pEnum, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, *pEnum, options); +} + +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_COMMAND_QUEUE_FLAGS value, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, ToString(value), options); +} +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_COMMAND_QUEUE_FLAGS* pEnum, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, *pEnum, options); +} + +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_COMMAND_QUEUE_PRIORITY value, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, ToString(value), options); +} +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_COMMAND_QUEUE_PRIORITY* pEnum, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, *pEnum, options); +} + +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_PRIMITIVE_TOPOLOGY_TYPE value, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, ToString(value), options); +} +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_PRIMITIVE_TOPOLOGY_TYPE* pEnum, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, *pEnum, options); +} + +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_INPUT_CLASSIFICATION value, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, ToString(value), options); +} +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_INPUT_CLASSIFICATION* pEnum, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, *pEnum, options); +} + +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_FILL_MODE value, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, ToString(value), options); +} +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_FILL_MODE* pEnum, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, *pEnum, options); +} + +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_CULL_MODE value, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, ToString(value), options); +} +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_CULL_MODE* pEnum, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, *pEnum, options); +} + +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_COMPARISON_FUNC value, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, ToString(value), options); +} +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_COMPARISON_FUNC* pEnum, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, *pEnum, options); +} + +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_DEPTH_WRITE_MASK value, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, ToString(value), options); +} +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_DEPTH_WRITE_MASK* pEnum, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, *pEnum, options); +} + +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_STENCIL_OP value, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, ToString(value), options); +} +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_STENCIL_OP* pEnum, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, *pEnum, options); +} + +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_BLEND value, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, ToString(value), options); +} +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_BLEND* pEnum, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, *pEnum, options); +} + +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_BLEND_OP value, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, ToString(value), options); +} +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_BLEND_OP* pEnum, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, *pEnum, options); +} + +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_COLOR_WRITE_ENABLE value, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, ToString(value), options); +} +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_COLOR_WRITE_ENABLE* pEnum, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, *pEnum, options); +} + +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_LOGIC_OP value, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, ToString(value), options); +} +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_LOGIC_OP* pEnum, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, *pEnum, options); +} + +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_CONSERVATIVE_RASTERIZATION_MODE value, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, ToString(value), options); +} +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_CONSERVATIVE_RASTERIZATION_MODE* pEnum, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, *pEnum, options); +} + +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_LINE_RASTERIZATION_MODE value, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, ToString(value), options); +} +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_LINE_RASTERIZATION_MODE* pEnum, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, *pEnum, options); +} + +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_INDEX_BUFFER_STRIP_CUT_VALUE value, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, ToString(value), options); +} +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_INDEX_BUFFER_STRIP_CUT_VALUE* pEnum, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, *pEnum, options); +} + +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_PIPELINE_STATE_FLAGS value, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, ToString(value), options); +} +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_PIPELINE_STATE_FLAGS* pEnum, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, *pEnum, options); +} + +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_PIPELINE_STATE_SUBOBJECT_TYPE value, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, ToString(value), options); +} +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_PIPELINE_STATE_SUBOBJECT_TYPE* pEnum, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, *pEnum, options); +} + +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_FEATURE value, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, ToString(value), options); +} +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_FEATURE* pEnum, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, *pEnum, options); +} + +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_SHADER_MIN_PRECISION_SUPPORT value, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, ToString(value), options); +} +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_SHADER_MIN_PRECISION_SUPPORT* pEnum, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, *pEnum, options); +} + +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_TILED_RESOURCES_TIER value, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, ToString(value), options); +} +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_TILED_RESOURCES_TIER* pEnum, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, *pEnum, options); +} + +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_RESOURCE_BINDING_TIER value, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, ToString(value), options); +} +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_RESOURCE_BINDING_TIER* pEnum, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, *pEnum, options); +} + +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_CONSERVATIVE_RASTERIZATION_TIER value, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, ToString(value), options); +} +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_CONSERVATIVE_RASTERIZATION_TIER* pEnum, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, *pEnum, options); +} + +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_FORMAT_SUPPORT1 value, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, ToString(value), options); +} +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_FORMAT_SUPPORT1* pEnum, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, *pEnum, options); +} + +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_FORMAT_SUPPORT2 value, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, ToString(value), options); +} +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_FORMAT_SUPPORT2* pEnum, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, *pEnum, options); +} + +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_MULTISAMPLE_QUALITY_LEVEL_FLAGS value, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, ToString(value), options); +} +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_MULTISAMPLE_QUALITY_LEVEL_FLAGS* pEnum, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, *pEnum, options); +} + +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_CROSS_NODE_SHARING_TIER value, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, ToString(value), options); +} +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_CROSS_NODE_SHARING_TIER* pEnum, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, *pEnum, options); +} + +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_RESOURCE_HEAP_TIER value, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, ToString(value), options); +} +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_RESOURCE_HEAP_TIER* pEnum, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, *pEnum, options); +} + +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_PROGRAMMABLE_SAMPLE_POSITIONS_TIER value, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, ToString(value), options); +} +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_PROGRAMMABLE_SAMPLE_POSITIONS_TIER* pEnum, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, *pEnum, options); +} + +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_VIEW_INSTANCING_TIER value, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, ToString(value), options); +} +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_VIEW_INSTANCING_TIER* pEnum, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, *pEnum, options); +} + +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D_ROOT_SIGNATURE_VERSION value, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, ToString(value), options); +} +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D_ROOT_SIGNATURE_VERSION* pEnum, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, *pEnum, options); +} + +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D_SHADER_MODEL value, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, ToString(value), options); +} +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D_SHADER_MODEL* pEnum, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, *pEnum, options); +} + +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_SHADER_CACHE_SUPPORT_FLAGS value, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, ToString(value), options); +} +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_SHADER_CACHE_SUPPORT_FLAGS* pEnum, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, *pEnum, options); +} + +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_COMMAND_LIST_SUPPORT_FLAGS value, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, ToString(value), options); +} +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_COMMAND_LIST_SUPPORT_FLAGS* pEnum, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, *pEnum, options); +} + +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_SHARED_RESOURCE_COMPATIBILITY_TIER value, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, ToString(value), options); +} +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_SHARED_RESOURCE_COMPATIBILITY_TIER* pEnum, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, *pEnum, options); +} + +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_HEAP_SERIALIZATION_TIER value, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, ToString(value), options); +} +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_HEAP_SERIALIZATION_TIER* pEnum, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, *pEnum, options); +} + +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_RENDER_PASS_TIER value, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, ToString(value), options); +} +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_RENDER_PASS_TIER* pEnum, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, *pEnum, options); +} + +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_RAYTRACING_TIER value, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, ToString(value), options); +} +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_RAYTRACING_TIER* pEnum, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, *pEnum, options); +} + +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_VARIABLE_SHADING_RATE_TIER value, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, ToString(value), options); +} +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_VARIABLE_SHADING_RATE_TIER* pEnum, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, *pEnum, options); +} + +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_MESH_SHADER_TIER value, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, ToString(value), options); +} +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_MESH_SHADER_TIER* pEnum, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, *pEnum, options); +} + +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_SAMPLER_FEEDBACK_TIER value, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, ToString(value), options); +} +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_SAMPLER_FEEDBACK_TIER* pEnum, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, *pEnum, options); +} + +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_WAVE_MMA_TIER value, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, ToString(value), options); +} +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_WAVE_MMA_TIER* pEnum, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, *pEnum, options); +} + +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_TRI_STATE value, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, ToString(value), options); +} +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_TRI_STATE* pEnum, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, *pEnum, options); +} + +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_HEAP_TYPE value, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, ToString(value), options); +} +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_HEAP_TYPE* pEnum, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, *pEnum, options); +} + +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_CPU_PAGE_PROPERTY value, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, ToString(value), options); +} +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_CPU_PAGE_PROPERTY* pEnum, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, *pEnum, options); +} + +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_MEMORY_POOL value, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, ToString(value), options); +} +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_MEMORY_POOL* pEnum, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, *pEnum, options); +} + +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_HEAP_FLAGS value, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, ToString(value), options); +} +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_HEAP_FLAGS* pEnum, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, *pEnum, options); +} + +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_RESOURCE_DIMENSION value, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, ToString(value), options); +} +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_RESOURCE_DIMENSION* pEnum, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, *pEnum, options); +} + +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_TEXTURE_LAYOUT value, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, ToString(value), options); +} +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_TEXTURE_LAYOUT* pEnum, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, *pEnum, options); +} + +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_RESOURCE_FLAGS value, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, ToString(value), options); +} +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_RESOURCE_FLAGS* pEnum, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, *pEnum, options); +} + +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_TILE_RANGE_FLAGS value, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, ToString(value), options); +} +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_TILE_RANGE_FLAGS* pEnum, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, *pEnum, options); +} + +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_TILE_MAPPING_FLAGS value, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, ToString(value), options); +} +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_TILE_MAPPING_FLAGS* pEnum, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, *pEnum, options); +} + +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_TILE_COPY_FLAGS value, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, ToString(value), options); +} +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_TILE_COPY_FLAGS* pEnum, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, *pEnum, options); +} + +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_RESOURCE_STATES value, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, ToString(value), options); +} +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_RESOURCE_STATES* pEnum, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, *pEnum, options); +} + +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_RESOURCE_BARRIER_TYPE value, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, ToString(value), options); +} +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_RESOURCE_BARRIER_TYPE* pEnum, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, *pEnum, options); +} + +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_RESOURCE_BARRIER_FLAGS value, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, ToString(value), options); +} +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_RESOURCE_BARRIER_FLAGS* pEnum, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, *pEnum, options); +} + +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_TEXTURE_COPY_TYPE value, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, ToString(value), options); +} +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_TEXTURE_COPY_TYPE* pEnum, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, *pEnum, options); +} + +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_RESOLVE_MODE value, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, ToString(value), options); +} +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_RESOLVE_MODE* pEnum, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, *pEnum, options); +} + +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_VIEW_INSTANCING_FLAGS value, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, ToString(value), options); +} +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_VIEW_INSTANCING_FLAGS* pEnum, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, *pEnum, options); +} + +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_SHADER_COMPONENT_MAPPING value, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, ToString(value), options); +} +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_SHADER_COMPONENT_MAPPING* pEnum, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, *pEnum, options); +} + +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_BUFFER_SRV_FLAGS value, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, ToString(value), options); +} +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_BUFFER_SRV_FLAGS* pEnum, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, *pEnum, options); +} + +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_SRV_DIMENSION value, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, ToString(value), options); +} +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_SRV_DIMENSION* pEnum, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, *pEnum, options); +} + +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_FILTER value, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, ToString(value), options); +} +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_FILTER* pEnum, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, *pEnum, options); +} + +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_FILTER_TYPE value, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, ToString(value), options); +} +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_FILTER_TYPE* pEnum, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, *pEnum, options); +} + +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_FILTER_REDUCTION_TYPE value, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, ToString(value), options); +} +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_FILTER_REDUCTION_TYPE* pEnum, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, *pEnum, options); +} + +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_TEXTURE_ADDRESS_MODE value, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, ToString(value), options); +} +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_TEXTURE_ADDRESS_MODE* pEnum, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, *pEnum, options); +} + +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_SAMPLER_FLAGS value, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, ToString(value), options); +} +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_SAMPLER_FLAGS* pEnum, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, *pEnum, options); +} + +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_BUFFER_UAV_FLAGS value, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, ToString(value), options); +} +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_BUFFER_UAV_FLAGS* pEnum, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, *pEnum, options); +} + +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_UAV_DIMENSION value, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, ToString(value), options); +} +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_UAV_DIMENSION* pEnum, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, *pEnum, options); +} + +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_RTV_DIMENSION value, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, ToString(value), options); +} +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_RTV_DIMENSION* pEnum, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, *pEnum, options); +} + +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_DSV_FLAGS value, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, ToString(value), options); +} +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_DSV_FLAGS* pEnum, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, *pEnum, options); +} + +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_DSV_DIMENSION value, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, ToString(value), options); +} +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_DSV_DIMENSION* pEnum, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, *pEnum, options); +} + +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_CLEAR_FLAGS value, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, ToString(value), options); +} +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_CLEAR_FLAGS* pEnum, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, *pEnum, options); +} + +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_FENCE_FLAGS value, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, ToString(value), options); +} +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_FENCE_FLAGS* pEnum, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, *pEnum, options); +} + +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_DESCRIPTOR_HEAP_TYPE value, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, ToString(value), options); +} +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_DESCRIPTOR_HEAP_TYPE* pEnum, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, *pEnum, options); +} + +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_DESCRIPTOR_HEAP_FLAGS value, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, ToString(value), options); +} +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_DESCRIPTOR_HEAP_FLAGS* pEnum, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, *pEnum, options); +} + +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_DESCRIPTOR_RANGE_TYPE value, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, ToString(value), options); +} +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_DESCRIPTOR_RANGE_TYPE* pEnum, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, *pEnum, options); +} + +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_SHADER_VISIBILITY value, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, ToString(value), options); +} +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_SHADER_VISIBILITY* pEnum, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, *pEnum, options); +} + +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_ROOT_PARAMETER_TYPE value, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, ToString(value), options); +} +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_ROOT_PARAMETER_TYPE* pEnum, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, *pEnum, options); +} + +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_ROOT_SIGNATURE_FLAGS value, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, ToString(value), options); +} +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_ROOT_SIGNATURE_FLAGS* pEnum, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, *pEnum, options); +} + +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_STATIC_BORDER_COLOR value, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, ToString(value), options); +} +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_STATIC_BORDER_COLOR* pEnum, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, *pEnum, options); +} + +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_DESCRIPTOR_RANGE_FLAGS value, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, ToString(value), options); +} +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_DESCRIPTOR_RANGE_FLAGS* pEnum, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, *pEnum, options); +} + +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_ROOT_DESCRIPTOR_FLAGS value, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, ToString(value), options); +} +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_ROOT_DESCRIPTOR_FLAGS* pEnum, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, *pEnum, options); +} + +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_QUERY_HEAP_TYPE value, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, ToString(value), options); +} +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_QUERY_HEAP_TYPE* pEnum, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, *pEnum, options); +} + +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_QUERY_TYPE value, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, ToString(value), options); +} +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_QUERY_TYPE* pEnum, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, *pEnum, options); +} + +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_PREDICATION_OP value, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, ToString(value), options); +} +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_PREDICATION_OP* pEnum, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, *pEnum, options); +} + +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_INDIRECT_ARGUMENT_TYPE value, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, ToString(value), options); +} +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_INDIRECT_ARGUMENT_TYPE* pEnum, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, *pEnum, options); +} + +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_WRITEBUFFERIMMEDIATE_MODE value, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, ToString(value), options); +} +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_WRITEBUFFERIMMEDIATE_MODE* pEnum, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, *pEnum, options); +} + +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_MULTIPLE_FENCE_WAIT_FLAGS value, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, ToString(value), options); +} +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_MULTIPLE_FENCE_WAIT_FLAGS* pEnum, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, *pEnum, options); +} + +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_RESIDENCY_PRIORITY value, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, ToString(value), options); +} +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_RESIDENCY_PRIORITY* pEnum, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, *pEnum, options); +} + +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_RESIDENCY_FLAGS value, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, ToString(value), options); +} +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_RESIDENCY_FLAGS* pEnum, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, *pEnum, options); +} + +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_COMMAND_LIST_FLAGS value, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, ToString(value), options); +} +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_COMMAND_LIST_FLAGS* pEnum, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, *pEnum, options); +} + +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_COMMAND_POOL_FLAGS value, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, ToString(value), options); +} +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_COMMAND_POOL_FLAGS* pEnum, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, *pEnum, options); +} + +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_COMMAND_RECORDER_FLAGS value, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, ToString(value), options); +} +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_COMMAND_RECORDER_FLAGS* pEnum, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, *pEnum, options); +} + +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_PROTECTED_SESSION_STATUS value, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, ToString(value), options); +} +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_PROTECTED_SESSION_STATUS* pEnum, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, *pEnum, options); +} + +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_PROTECTED_RESOURCE_SESSION_SUPPORT_FLAGS value, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, ToString(value), options); +} +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_PROTECTED_RESOURCE_SESSION_SUPPORT_FLAGS* pEnum, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, *pEnum, options); +} + +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_PROTECTED_RESOURCE_SESSION_FLAGS value, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, ToString(value), options); +} +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_PROTECTED_RESOURCE_SESSION_FLAGS* pEnum, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, *pEnum, options); +} + +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_LIFETIME_STATE value, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, ToString(value), options); +} +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_LIFETIME_STATE* pEnum, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, *pEnum, options); +} + +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_META_COMMAND_PARAMETER_TYPE value, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, ToString(value), options); +} +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_META_COMMAND_PARAMETER_TYPE* pEnum, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, *pEnum, options); +} + +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_META_COMMAND_PARAMETER_FLAGS value, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, ToString(value), options); +} +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_META_COMMAND_PARAMETER_FLAGS* pEnum, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, *pEnum, options); +} + +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_META_COMMAND_PARAMETER_STAGE value, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, ToString(value), options); +} +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_META_COMMAND_PARAMETER_STAGE* pEnum, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, *pEnum, options); +} + +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_GRAPHICS_STATES value, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, ToString(value), options); +} +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_GRAPHICS_STATES* pEnum, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, *pEnum, options); +} + +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_STATE_SUBOBJECT_TYPE value, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, ToString(value), options); +} +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_STATE_SUBOBJECT_TYPE* pEnum, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, *pEnum, options); +} + +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_STATE_OBJECT_FLAGS value, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, ToString(value), options); +} +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_STATE_OBJECT_FLAGS* pEnum, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, *pEnum, options); +} + +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_EXPORT_FLAGS value, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, ToString(value), options); +} +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_EXPORT_FLAGS* pEnum, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, *pEnum, options); +} + +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_HIT_GROUP_TYPE value, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, ToString(value), options); +} +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_HIT_GROUP_TYPE* pEnum, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, *pEnum, options); +} + +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_RAYTRACING_PIPELINE_FLAGS value, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, ToString(value), options); +} +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_RAYTRACING_PIPELINE_FLAGS* pEnum, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, *pEnum, options); +} + +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_STATE_OBJECT_TYPE value, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, ToString(value), options); +} +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_STATE_OBJECT_TYPE* pEnum, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, *pEnum, options); +} + +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_RAYTRACING_GEOMETRY_FLAGS value, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, ToString(value), options); +} +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_RAYTRACING_GEOMETRY_FLAGS* pEnum, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, *pEnum, options); +} + +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_RAYTRACING_GEOMETRY_TYPE value, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, ToString(value), options); +} +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_RAYTRACING_GEOMETRY_TYPE* pEnum, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, *pEnum, options); +} + +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_RAYTRACING_INSTANCE_FLAGS value, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, ToString(value), options); +} +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_RAYTRACING_INSTANCE_FLAGS* pEnum, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, *pEnum, options); +} + +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAGS value, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, ToString(value), options); +} +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAGS* pEnum, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, *pEnum, options); +} + +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE value, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, ToString(value), options); +} +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE* pEnum, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, *pEnum, options); +} + +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_TYPE value, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, ToString(value), options); +} +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_TYPE* pEnum, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, *pEnum, options); +} + +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_ELEMENTS_LAYOUT value, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, ToString(value), options); +} +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_ELEMENTS_LAYOUT* pEnum, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, *pEnum, options); +} + +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_TYPE value, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, ToString(value), options); +} +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_TYPE* pEnum, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, *pEnum, options); +} + +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_SERIALIZED_DATA_TYPE value, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, ToString(value), options); +} +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_SERIALIZED_DATA_TYPE* pEnum, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, *pEnum, options); +} + +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_DRIVER_MATCHING_IDENTIFIER_STATUS value, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, ToString(value), options); +} +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_DRIVER_MATCHING_IDENTIFIER_STATUS* pEnum, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, *pEnum, options); +} + +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_RAY_FLAGS value, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, ToString(value), options); +} +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_RAY_FLAGS* pEnum, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, *pEnum, options); +} + +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_HIT_KIND value, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, ToString(value), options); +} +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_HIT_KIND* pEnum, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, *pEnum, options); +} + +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_AUTO_BREADCRUMB_OP value, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, ToString(value), options); +} +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_AUTO_BREADCRUMB_OP* pEnum, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, *pEnum, options); +} + +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_DRED_VERSION value, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, ToString(value), options); +} +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_DRED_VERSION* pEnum, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, *pEnum, options); +} + +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_DRED_FLAGS value, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, ToString(value), options); +} +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_DRED_FLAGS* pEnum, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, *pEnum, options); +} + +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_DRED_ENABLEMENT value, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, ToString(value), options); +} +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_DRED_ENABLEMENT* pEnum, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, *pEnum, options); +} + +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_DRED_ALLOCATION_TYPE value, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, ToString(value), options); +} +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_DRED_ALLOCATION_TYPE* pEnum, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, *pEnum, options); +} + +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_DRED_PAGE_FAULT_FLAGS value, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, ToString(value), options); +} +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_DRED_PAGE_FAULT_FLAGS* pEnum, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, *pEnum, options); +} + +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_DRED_DEVICE_STATE value, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, ToString(value), options); +} +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_DRED_DEVICE_STATE* pEnum, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, *pEnum, options); +} + +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_BACKGROUND_PROCESSING_MODE value, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, ToString(value), options); +} +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_BACKGROUND_PROCESSING_MODE* pEnum, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, *pEnum, options); +} + +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_MEASUREMENTS_ACTION value, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, ToString(value), options); +} +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_MEASUREMENTS_ACTION* pEnum, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, *pEnum, options); +} + +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE value, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, ToString(value), options); +} +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE* pEnum, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, *pEnum, options); +} + +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_RENDER_PASS_ENDING_ACCESS_TYPE value, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, ToString(value), options); +} +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_RENDER_PASS_ENDING_ACCESS_TYPE* pEnum, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, *pEnum, options); +} + +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_RENDER_PASS_FLAGS value, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, ToString(value), options); +} +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_RENDER_PASS_FLAGS* pEnum, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, *pEnum, options); +} + +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_SHADER_CACHE_MODE value, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, ToString(value), options); +} +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_SHADER_CACHE_MODE* pEnum, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, *pEnum, options); +} + +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_SHADER_CACHE_FLAGS value, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, ToString(value), options); +} +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_SHADER_CACHE_FLAGS* pEnum, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, *pEnum, options); +} + +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_BARRIER_LAYOUT value, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, ToString(value), options); +} +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_BARRIER_LAYOUT* pEnum, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, *pEnum, options); +} + +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_BARRIER_SYNC value, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, ToString(value), options); +} +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_BARRIER_SYNC* pEnum, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, *pEnum, options); +} + +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_BARRIER_ACCESS value, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, ToString(value), options); +} +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_BARRIER_ACCESS* pEnum, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, *pEnum, options); +} + +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_BARRIER_TYPE value, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, ToString(value), options); +} +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_BARRIER_TYPE* pEnum, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, *pEnum, options); +} + +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_TEXTURE_BARRIER_FLAGS value, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, ToString(value), options); +} +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_TEXTURE_BARRIER_FLAGS* pEnum, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, *pEnum, options); +} + +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_SHADER_CACHE_KIND_FLAGS value, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, ToString(value), options); +} +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_SHADER_CACHE_KIND_FLAGS* pEnum, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, *pEnum, options); +} + +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_SHADER_CACHE_CONTROL_FLAGS value, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, ToString(value), options); +} +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_SHADER_CACHE_CONTROL_FLAGS* pEnum, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, *pEnum, options); +} + +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_DEVICE_FACTORY_FLAGS value, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, ToString(value), options); +} +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_DEVICE_FACTORY_FLAGS* pEnum, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, *pEnum, options); +} + +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_DEVICE_FLAGS value, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, ToString(value), options); +} +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_DEVICE_FLAGS* pEnum, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, *pEnum, options); +} + +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_AXIS_SHADING_RATE value, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, ToString(value), options); +} +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_AXIS_SHADING_RATE* pEnum, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, *pEnum, options); +} + +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_SHADING_RATE value, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, ToString(value), options); +} +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_SHADING_RATE* pEnum, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, *pEnum, options); +} + +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_SHADING_RATE_COMBINER value, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, ToString(value), options); +} +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_SHADING_RATE_COMBINER* pEnum, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, *pEnum, options); +} + +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D_DRIVER_TYPE value, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, ToString(value), options); +} +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D_DRIVER_TYPE* pEnum, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, *pEnum, options); +} + +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D_FEATURE_LEVEL value, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, ToString(value), options); +} +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D_FEATURE_LEVEL* pEnum, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, *pEnum, options); +} + +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D_PRIMITIVE_TOPOLOGY value, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, ToString(value), options); +} +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D_PRIMITIVE_TOPOLOGY* pEnum, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, *pEnum, options); +} + +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D_PRIMITIVE value, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, ToString(value), options); +} +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D_PRIMITIVE* pEnum, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, *pEnum, options); +} + +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D_SRV_DIMENSION value, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, ToString(value), options); +} +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D_SRV_DIMENSION* pEnum, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, *pEnum, options); +} + +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D_INCLUDE_TYPE value, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, ToString(value), options); +} +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D_INCLUDE_TYPE* pEnum, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, *pEnum, options); +} + +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D_SHADER_VARIABLE_CLASS value, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, ToString(value), options); +} +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D_SHADER_VARIABLE_CLASS* pEnum, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, *pEnum, options); +} + +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D_SHADER_VARIABLE_FLAGS value, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, ToString(value), options); +} +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D_SHADER_VARIABLE_FLAGS* pEnum, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, *pEnum, options); +} + +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D_SHADER_VARIABLE_TYPE value, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, ToString(value), options); +} +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D_SHADER_VARIABLE_TYPE* pEnum, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, *pEnum, options); +} + +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D_SHADER_INPUT_FLAGS value, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, ToString(value), options); +} +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D_SHADER_INPUT_FLAGS* pEnum, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, *pEnum, options); +} + +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D_SHADER_INPUT_TYPE value, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, ToString(value), options); +} +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D_SHADER_INPUT_TYPE* pEnum, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, *pEnum, options); +} + +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D_SHADER_CBUFFER_FLAGS value, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, ToString(value), options); +} +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D_SHADER_CBUFFER_FLAGS* pEnum, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, *pEnum, options); +} + +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D_CBUFFER_TYPE value, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, ToString(value), options); +} +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D_CBUFFER_TYPE* pEnum, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, *pEnum, options); +} + +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D_NAME value, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, ToString(value), options); +} +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D_NAME* pEnum, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, *pEnum, options); +} + +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D_RESOURCE_RETURN_TYPE value, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, ToString(value), options); +} +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D_RESOURCE_RETURN_TYPE* pEnum, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, *pEnum, options); +} + +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D_REGISTER_COMPONENT_TYPE value, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, ToString(value), options); +} +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D_REGISTER_COMPONENT_TYPE* pEnum, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, *pEnum, options); +} + +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D_TESSELLATOR_DOMAIN value, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, ToString(value), options); +} +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D_TESSELLATOR_DOMAIN* pEnum, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, *pEnum, options); +} + +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D_TESSELLATOR_PARTITIONING value, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, ToString(value), options); +} +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D_TESSELLATOR_PARTITIONING* pEnum, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, *pEnum, options); +} + +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D_TESSELLATOR_OUTPUT_PRIMITIVE value, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, ToString(value), options); +} +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D_TESSELLATOR_OUTPUT_PRIMITIVE* pEnum, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, *pEnum, options); +} + +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D_MIN_PRECISION value, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, ToString(value), options); +} +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D_MIN_PRECISION* pEnum, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, *pEnum, options); +} + +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D_INTERPOLATION_MODE value, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, ToString(value), options); +} +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D_INTERPOLATION_MODE* pEnum, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, *pEnum, options); +} + +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D_PARAMETER_FLAGS value, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, ToString(value), options); +} +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D_PARAMETER_FLAGS* pEnum, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, *pEnum, options); +} + +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D_FORMAT_LAYOUT value, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, ToString(value), options); +} +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D_FORMAT_LAYOUT* pEnum, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, *pEnum, options); +} + +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D_FORMAT_TYPE_LEVEL value, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, ToString(value), options); +} +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D_FORMAT_TYPE_LEVEL* pEnum, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, *pEnum, options); +} + +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D_FORMAT_COMPONENT_NAME value, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, ToString(value), options); +} +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D_FORMAT_COMPONENT_NAME* pEnum, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, *pEnum, options); +} + +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D_FORMAT_COMPONENT_INTERPRETATION value, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, ToString(value), options); +} +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D_FORMAT_COMPONENT_INTERPRETATION* pEnum, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, *pEnum, options); +} + +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_GPU_BASED_VALIDATION_FLAGS value, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, ToString(value), options); +} +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_GPU_BASED_VALIDATION_FLAGS* pEnum, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, *pEnum, options); +} + +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_RLDO_FLAGS value, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, ToString(value), options); +} +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_RLDO_FLAGS* pEnum, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, *pEnum, options); +} + +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_DEBUG_DEVICE_PARAMETER_TYPE value, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, ToString(value), options); +} +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_DEBUG_DEVICE_PARAMETER_TYPE* pEnum, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, *pEnum, options); +} + +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_DEBUG_FEATURE value, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, ToString(value), options); +} +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_DEBUG_FEATURE* pEnum, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, *pEnum, options); +} + +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_GPU_BASED_VALIDATION_SHADER_PATCH_MODE value, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, ToString(value), options); +} +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_GPU_BASED_VALIDATION_SHADER_PATCH_MODE* pEnum, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, *pEnum, options); +} + +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_GPU_BASED_VALIDATION_PIPELINE_STATE_CREATE_FLAGS value, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, ToString(value), options); +} +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_GPU_BASED_VALIDATION_PIPELINE_STATE_CREATE_FLAGS* pEnum, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, *pEnum, options); +} + +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_DEBUG_COMMAND_LIST_PARAMETER_TYPE value, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, ToString(value), options); +} +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_DEBUG_COMMAND_LIST_PARAMETER_TYPE* pEnum, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, *pEnum, options); +} + +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_MESSAGE_CATEGORY value, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, ToString(value), options); +} +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_MESSAGE_CATEGORY* pEnum, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, *pEnum, options); +} + +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_MESSAGE_SEVERITY value, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, ToString(value), options); +} +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_MESSAGE_SEVERITY* pEnum, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, *pEnum, options); +} + +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_MESSAGE_ID value, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, ToString(value), options); +} +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_MESSAGE_ID* pEnum, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, *pEnum, options); +} + +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_MESSAGE_CALLBACK_FLAGS value, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, ToString(value), options); +} +inline void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_MESSAGE_CALLBACK_FLAGS* pEnum, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, *pEnum, options); +} + + +inline void FieldToJson_DXGI_MULTIPLANE_OVERLAY_YCbCr_FLAGS(nlohmann::ordered_json& jdata, const uint32_t flags, const JsonOptions& options = JsonOptions()) +{ + std::string representation; + if (!options.expand_flags) + { + representation = to_hex_fixed_width(flags); + } + else + { + representation = ToString_DXGI_MULTIPLANE_OVERLAY_YCbCr_FLAGS(flags); + } + FieldToJson(jdata, representation, options); +} +inline void FieldToJson_DXGI_OFFER_RESOURCE_FLAGS(nlohmann::ordered_json& jdata, const uint32_t flags, const JsonOptions& options = JsonOptions()) +{ + std::string representation; + if (!options.expand_flags) + { + representation = to_hex_fixed_width(flags); + } + else + { + representation = ToString_DXGI_OFFER_RESOURCE_FLAGS(flags); + } + FieldToJson(jdata, representation, options); +} +inline void FieldToJson_DXGI_HARDWARE_COMPOSITION_SUPPORT_FLAGS(nlohmann::ordered_json& jdata, const uint32_t flags, const JsonOptions& options = JsonOptions()) +{ + std::string representation; + if (!options.expand_flags) + { + representation = to_hex_fixed_width(flags); + } + else + { + representation = ToString_DXGI_HARDWARE_COMPOSITION_SUPPORT_FLAGS(flags); + } + FieldToJson(jdata, representation, options); +} +inline void FieldToJson_D3D12_COMMAND_QUEUE_FLAGS(nlohmann::ordered_json& jdata, const uint32_t flags, const JsonOptions& options = JsonOptions()) +{ + std::string representation; + if (!options.expand_flags) + { + representation = to_hex_fixed_width(flags); + } + else + { + representation = ToString_D3D12_COMMAND_QUEUE_FLAGS(flags); + } + FieldToJson(jdata, representation, options); +} +inline void FieldToJson_D3D12_PIPELINE_STATE_FLAGS(nlohmann::ordered_json& jdata, const uint32_t flags, const JsonOptions& options = JsonOptions()) +{ + std::string representation; + if (!options.expand_flags) + { + representation = to_hex_fixed_width(flags); + } + else + { + representation = ToString_D3D12_PIPELINE_STATE_FLAGS(flags); + } + FieldToJson(jdata, representation, options); +} +inline void FieldToJson_D3D12_SHADER_MIN_PRECISION_SUPPORT(nlohmann::ordered_json& jdata, const uint32_t flags, const JsonOptions& options = JsonOptions()) +{ + std::string representation; + if (!options.expand_flags) + { + representation = to_hex_fixed_width(flags); + } + else + { + representation = ToString_D3D12_SHADER_MIN_PRECISION_SUPPORT(flags); + } + FieldToJson(jdata, representation, options); +} +inline void FieldToJson_D3D12_FORMAT_SUPPORT1(nlohmann::ordered_json& jdata, const uint32_t flags, const JsonOptions& options = JsonOptions()) +{ + std::string representation; + if (!options.expand_flags) + { + representation = to_hex_fixed_width(flags); + } + else + { + representation = ToString_D3D12_FORMAT_SUPPORT1(flags); + } + FieldToJson(jdata, representation, options); +} +inline void FieldToJson_D3D12_FORMAT_SUPPORT2(nlohmann::ordered_json& jdata, const uint32_t flags, const JsonOptions& options = JsonOptions()) +{ + std::string representation; + if (!options.expand_flags) + { + representation = to_hex_fixed_width(flags); + } + else + { + representation = ToString_D3D12_FORMAT_SUPPORT2(flags); + } + FieldToJson(jdata, representation, options); +} +inline void FieldToJson_D3D12_MULTISAMPLE_QUALITY_LEVEL_FLAGS(nlohmann::ordered_json& jdata, const uint32_t flags, const JsonOptions& options = JsonOptions()) +{ + std::string representation; + if (!options.expand_flags) + { + representation = to_hex_fixed_width(flags); + } + else + { + representation = ToString_D3D12_MULTISAMPLE_QUALITY_LEVEL_FLAGS(flags); + } + FieldToJson(jdata, representation, options); +} +inline void FieldToJson_D3D12_SHADER_CACHE_SUPPORT_FLAGS(nlohmann::ordered_json& jdata, const uint32_t flags, const JsonOptions& options = JsonOptions()) +{ + std::string representation; + if (!options.expand_flags) + { + representation = to_hex_fixed_width(flags); + } + else + { + representation = ToString_D3D12_SHADER_CACHE_SUPPORT_FLAGS(flags); + } + FieldToJson(jdata, representation, options); +} +inline void FieldToJson_D3D12_COMMAND_LIST_SUPPORT_FLAGS(nlohmann::ordered_json& jdata, const uint32_t flags, const JsonOptions& options = JsonOptions()) +{ + std::string representation; + if (!options.expand_flags) + { + representation = to_hex_fixed_width(flags); + } + else + { + representation = ToString_D3D12_COMMAND_LIST_SUPPORT_FLAGS(flags); + } + FieldToJson(jdata, representation, options); +} +inline void FieldToJson_D3D12_HEAP_FLAGS(nlohmann::ordered_json& jdata, const uint32_t flags, const JsonOptions& options = JsonOptions()) +{ + std::string representation; + if (!options.expand_flags) + { + representation = to_hex_fixed_width(flags); + } + else + { + representation = ToString_D3D12_HEAP_FLAGS(flags); + } + FieldToJson(jdata, representation, options); +} +inline void FieldToJson_D3D12_RESOURCE_FLAGS(nlohmann::ordered_json& jdata, const uint32_t flags, const JsonOptions& options = JsonOptions()) +{ + std::string representation; + if (!options.expand_flags) + { + representation = to_hex_fixed_width(flags); + } + else + { + representation = ToString_D3D12_RESOURCE_FLAGS(flags); + } + FieldToJson(jdata, representation, options); +} +inline void FieldToJson_D3D12_TILE_RANGE_FLAGS(nlohmann::ordered_json& jdata, const uint32_t flags, const JsonOptions& options = JsonOptions()) +{ + std::string representation; + if (!options.expand_flags) + { + representation = to_hex_fixed_width(flags); + } + else + { + representation = ToString_D3D12_TILE_RANGE_FLAGS(flags); + } + FieldToJson(jdata, representation, options); +} +inline void FieldToJson_D3D12_TILE_MAPPING_FLAGS(nlohmann::ordered_json& jdata, const uint32_t flags, const JsonOptions& options = JsonOptions()) +{ + std::string representation; + if (!options.expand_flags) + { + representation = to_hex_fixed_width(flags); + } + else + { + representation = ToString_D3D12_TILE_MAPPING_FLAGS(flags); + } + FieldToJson(jdata, representation, options); +} +inline void FieldToJson_D3D12_TILE_COPY_FLAGS(nlohmann::ordered_json& jdata, const uint32_t flags, const JsonOptions& options = JsonOptions()) +{ + std::string representation; + if (!options.expand_flags) + { + representation = to_hex_fixed_width(flags); + } + else + { + representation = ToString_D3D12_TILE_COPY_FLAGS(flags); + } + FieldToJson(jdata, representation, options); +} +inline void FieldToJson_D3D12_RESOURCE_STATES(nlohmann::ordered_json& jdata, const uint32_t flags, const JsonOptions& options = JsonOptions()) +{ + std::string representation; + if (!options.expand_flags) + { + representation = to_hex_fixed_width(flags); + } + else + { + representation = ToString_D3D12_RESOURCE_STATES(flags); + } + FieldToJson(jdata, representation, options); +} +inline void FieldToJson_D3D12_RESOURCE_BARRIER_FLAGS(nlohmann::ordered_json& jdata, const uint32_t flags, const JsonOptions& options = JsonOptions()) +{ + std::string representation; + if (!options.expand_flags) + { + representation = to_hex_fixed_width(flags); + } + else + { + representation = ToString_D3D12_RESOURCE_BARRIER_FLAGS(flags); + } + FieldToJson(jdata, representation, options); +} +inline void FieldToJson_D3D12_VIEW_INSTANCING_FLAGS(nlohmann::ordered_json& jdata, const uint32_t flags, const JsonOptions& options = JsonOptions()) +{ + std::string representation; + if (!options.expand_flags) + { + representation = to_hex_fixed_width(flags); + } + else + { + representation = ToString_D3D12_VIEW_INSTANCING_FLAGS(flags); + } + FieldToJson(jdata, representation, options); +} +inline void FieldToJson_D3D12_BUFFER_SRV_FLAGS(nlohmann::ordered_json& jdata, const uint32_t flags, const JsonOptions& options = JsonOptions()) +{ + std::string representation; + if (!options.expand_flags) + { + representation = to_hex_fixed_width(flags); + } + else + { + representation = ToString_D3D12_BUFFER_SRV_FLAGS(flags); + } + FieldToJson(jdata, representation, options); +} +inline void FieldToJson_D3D12_SAMPLER_FLAGS(nlohmann::ordered_json& jdata, const uint32_t flags, const JsonOptions& options = JsonOptions()) +{ + std::string representation; + if (!options.expand_flags) + { + representation = to_hex_fixed_width(flags); + } + else + { + representation = ToString_D3D12_SAMPLER_FLAGS(flags); + } + FieldToJson(jdata, representation, options); +} +inline void FieldToJson_D3D12_BUFFER_UAV_FLAGS(nlohmann::ordered_json& jdata, const uint32_t flags, const JsonOptions& options = JsonOptions()) +{ + std::string representation; + if (!options.expand_flags) + { + representation = to_hex_fixed_width(flags); + } + else + { + representation = ToString_D3D12_BUFFER_UAV_FLAGS(flags); + } + FieldToJson(jdata, representation, options); +} +inline void FieldToJson_D3D12_DSV_FLAGS(nlohmann::ordered_json& jdata, const uint32_t flags, const JsonOptions& options = JsonOptions()) +{ + std::string representation; + if (!options.expand_flags) + { + representation = to_hex_fixed_width(flags); + } + else + { + representation = ToString_D3D12_DSV_FLAGS(flags); + } + FieldToJson(jdata, representation, options); +} +inline void FieldToJson_D3D12_CLEAR_FLAGS(nlohmann::ordered_json& jdata, const uint32_t flags, const JsonOptions& options = JsonOptions()) +{ + std::string representation; + if (!options.expand_flags) + { + representation = to_hex_fixed_width(flags); + } + else + { + representation = ToString_D3D12_CLEAR_FLAGS(flags); + } + FieldToJson(jdata, representation, options); +} +inline void FieldToJson_D3D12_FENCE_FLAGS(nlohmann::ordered_json& jdata, const uint32_t flags, const JsonOptions& options = JsonOptions()) +{ + std::string representation; + if (!options.expand_flags) + { + representation = to_hex_fixed_width(flags); + } + else + { + representation = ToString_D3D12_FENCE_FLAGS(flags); + } + FieldToJson(jdata, representation, options); +} +inline void FieldToJson_D3D12_DESCRIPTOR_HEAP_FLAGS(nlohmann::ordered_json& jdata, const uint32_t flags, const JsonOptions& options = JsonOptions()) +{ + std::string representation; + if (!options.expand_flags) + { + representation = to_hex_fixed_width(flags); + } + else + { + representation = ToString_D3D12_DESCRIPTOR_HEAP_FLAGS(flags); + } + FieldToJson(jdata, representation, options); +} +inline void FieldToJson_D3D12_ROOT_SIGNATURE_FLAGS(nlohmann::ordered_json& jdata, const uint32_t flags, const JsonOptions& options = JsonOptions()) +{ + std::string representation; + if (!options.expand_flags) + { + representation = to_hex_fixed_width(flags); + } + else + { + representation = ToString_D3D12_ROOT_SIGNATURE_FLAGS(flags); + } + FieldToJson(jdata, representation, options); +} +inline void FieldToJson_D3D12_DESCRIPTOR_RANGE_FLAGS(nlohmann::ordered_json& jdata, const uint32_t flags, const JsonOptions& options = JsonOptions()) +{ + std::string representation; + if (!options.expand_flags) + { + representation = to_hex_fixed_width(flags); + } + else + { + representation = ToString_D3D12_DESCRIPTOR_RANGE_FLAGS(flags); + } + FieldToJson(jdata, representation, options); +} +inline void FieldToJson_D3D12_ROOT_DESCRIPTOR_FLAGS(nlohmann::ordered_json& jdata, const uint32_t flags, const JsonOptions& options = JsonOptions()) +{ + std::string representation; + if (!options.expand_flags) + { + representation = to_hex_fixed_width(flags); + } + else + { + representation = ToString_D3D12_ROOT_DESCRIPTOR_FLAGS(flags); + } + FieldToJson(jdata, representation, options); +} +inline void FieldToJson_D3D12_MULTIPLE_FENCE_WAIT_FLAGS(nlohmann::ordered_json& jdata, const uint32_t flags, const JsonOptions& options = JsonOptions()) +{ + std::string representation; + if (!options.expand_flags) + { + representation = to_hex_fixed_width(flags); + } + else + { + representation = ToString_D3D12_MULTIPLE_FENCE_WAIT_FLAGS(flags); + } + FieldToJson(jdata, representation, options); +} +inline void FieldToJson_D3D12_RESIDENCY_FLAGS(nlohmann::ordered_json& jdata, const uint32_t flags, const JsonOptions& options = JsonOptions()) +{ + std::string representation; + if (!options.expand_flags) + { + representation = to_hex_fixed_width(flags); + } + else + { + representation = ToString_D3D12_RESIDENCY_FLAGS(flags); + } + FieldToJson(jdata, representation, options); +} +inline void FieldToJson_D3D12_COMMAND_LIST_FLAGS(nlohmann::ordered_json& jdata, const uint32_t flags, const JsonOptions& options = JsonOptions()) +{ + std::string representation; + if (!options.expand_flags) + { + representation = to_hex_fixed_width(flags); + } + else + { + representation = ToString_D3D12_COMMAND_LIST_FLAGS(flags); + } + FieldToJson(jdata, representation, options); +} +inline void FieldToJson_D3D12_COMMAND_POOL_FLAGS(nlohmann::ordered_json& jdata, const uint32_t flags, const JsonOptions& options = JsonOptions()) +{ + std::string representation; + if (!options.expand_flags) + { + representation = to_hex_fixed_width(flags); + } + else + { + representation = ToString_D3D12_COMMAND_POOL_FLAGS(flags); + } + FieldToJson(jdata, representation, options); +} +inline void FieldToJson_D3D12_COMMAND_RECORDER_FLAGS(nlohmann::ordered_json& jdata, const uint32_t flags, const JsonOptions& options = JsonOptions()) +{ + std::string representation; + if (!options.expand_flags) + { + representation = to_hex_fixed_width(flags); + } + else + { + representation = ToString_D3D12_COMMAND_RECORDER_FLAGS(flags); + } + FieldToJson(jdata, representation, options); +} +inline void FieldToJson_D3D12_PROTECTED_SESSION_STATUS(nlohmann::ordered_json& jdata, const uint32_t flags, const JsonOptions& options = JsonOptions()) +{ + std::string representation; + if (!options.expand_flags) + { + representation = to_hex_fixed_width(flags); + } + else + { + representation = ToString_D3D12_PROTECTED_SESSION_STATUS(flags); + } + FieldToJson(jdata, representation, options); +} +inline void FieldToJson_D3D12_PROTECTED_RESOURCE_SESSION_SUPPORT_FLAGS(nlohmann::ordered_json& jdata, const uint32_t flags, const JsonOptions& options = JsonOptions()) +{ + std::string representation; + if (!options.expand_flags) + { + representation = to_hex_fixed_width(flags); + } + else + { + representation = ToString_D3D12_PROTECTED_RESOURCE_SESSION_SUPPORT_FLAGS(flags); + } + FieldToJson(jdata, representation, options); +} +inline void FieldToJson_D3D12_PROTECTED_RESOURCE_SESSION_FLAGS(nlohmann::ordered_json& jdata, const uint32_t flags, const JsonOptions& options = JsonOptions()) +{ + std::string representation; + if (!options.expand_flags) + { + representation = to_hex_fixed_width(flags); + } + else + { + representation = ToString_D3D12_PROTECTED_RESOURCE_SESSION_FLAGS(flags); + } + FieldToJson(jdata, representation, options); +} +inline void FieldToJson_D3D12_META_COMMAND_PARAMETER_FLAGS(nlohmann::ordered_json& jdata, const uint32_t flags, const JsonOptions& options = JsonOptions()) +{ + std::string representation; + if (!options.expand_flags) + { + representation = to_hex_fixed_width(flags); + } + else + { + representation = ToString_D3D12_META_COMMAND_PARAMETER_FLAGS(flags); + } + FieldToJson(jdata, representation, options); +} +inline void FieldToJson_D3D12_GRAPHICS_STATES(nlohmann::ordered_json& jdata, const uint32_t flags, const JsonOptions& options = JsonOptions()) +{ + std::string representation; + if (!options.expand_flags) + { + representation = to_hex_fixed_width(flags); + } + else + { + representation = ToString_D3D12_GRAPHICS_STATES(flags); + } + FieldToJson(jdata, representation, options); +} +inline void FieldToJson_D3D12_STATE_OBJECT_FLAGS(nlohmann::ordered_json& jdata, const uint32_t flags, const JsonOptions& options = JsonOptions()) +{ + std::string representation; + if (!options.expand_flags) + { + representation = to_hex_fixed_width(flags); + } + else + { + representation = ToString_D3D12_STATE_OBJECT_FLAGS(flags); + } + FieldToJson(jdata, representation, options); +} +inline void FieldToJson_D3D12_EXPORT_FLAGS(nlohmann::ordered_json& jdata, const uint32_t flags, const JsonOptions& options = JsonOptions()) +{ + std::string representation; + if (!options.expand_flags) + { + representation = to_hex_fixed_width(flags); + } + else + { + representation = ToString_D3D12_EXPORT_FLAGS(flags); + } + FieldToJson(jdata, representation, options); +} +inline void FieldToJson_D3D12_RAYTRACING_PIPELINE_FLAGS(nlohmann::ordered_json& jdata, const uint32_t flags, const JsonOptions& options = JsonOptions()) +{ + std::string representation; + if (!options.expand_flags) + { + representation = to_hex_fixed_width(flags); + } + else + { + representation = ToString_D3D12_RAYTRACING_PIPELINE_FLAGS(flags); + } + FieldToJson(jdata, representation, options); +} +inline void FieldToJson_D3D12_RAYTRACING_GEOMETRY_FLAGS(nlohmann::ordered_json& jdata, const uint32_t flags, const JsonOptions& options = JsonOptions()) +{ + std::string representation; + if (!options.expand_flags) + { + representation = to_hex_fixed_width(flags); + } + else + { + representation = ToString_D3D12_RAYTRACING_GEOMETRY_FLAGS(flags); + } + FieldToJson(jdata, representation, options); +} +inline void FieldToJson_D3D12_RAYTRACING_INSTANCE_FLAGS(nlohmann::ordered_json& jdata, const uint32_t flags, const JsonOptions& options = JsonOptions()) +{ + std::string representation; + if (!options.expand_flags) + { + representation = to_hex_fixed_width(flags); + } + else + { + representation = ToString_D3D12_RAYTRACING_INSTANCE_FLAGS(flags); + } + FieldToJson(jdata, representation, options); +} +inline void FieldToJson_D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAGS(nlohmann::ordered_json& jdata, const uint32_t flags, const JsonOptions& options = JsonOptions()) +{ + std::string representation; + if (!options.expand_flags) + { + representation = to_hex_fixed_width(flags); + } + else + { + representation = ToString_D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAGS(flags); + } + FieldToJson(jdata, representation, options); +} +inline void FieldToJson_D3D12_DRIVER_MATCHING_IDENTIFIER_STATUS(nlohmann::ordered_json& jdata, const uint32_t flags, const JsonOptions& options = JsonOptions()) +{ + std::string representation; + if (!options.expand_flags) + { + representation = to_hex_fixed_width(flags); + } + else + { + representation = ToString_D3D12_DRIVER_MATCHING_IDENTIFIER_STATUS(flags); + } + FieldToJson(jdata, representation, options); +} +inline void FieldToJson_D3D12_RAY_FLAGS(nlohmann::ordered_json& jdata, const uint32_t flags, const JsonOptions& options = JsonOptions()) +{ + std::string representation; + if (!options.expand_flags) + { + representation = to_hex_fixed_width(flags); + } + else + { + representation = ToString_D3D12_RAY_FLAGS(flags); + } + FieldToJson(jdata, representation, options); +} +inline void FieldToJson_D3D12_DRED_FLAGS(nlohmann::ordered_json& jdata, const uint32_t flags, const JsonOptions& options = JsonOptions()) +{ + std::string representation; + if (!options.expand_flags) + { + representation = to_hex_fixed_width(flags); + } + else + { + representation = ToString_D3D12_DRED_FLAGS(flags); + } + FieldToJson(jdata, representation, options); +} +inline void FieldToJson_D3D12_DRED_PAGE_FAULT_FLAGS(nlohmann::ordered_json& jdata, const uint32_t flags, const JsonOptions& options = JsonOptions()) +{ + std::string representation; + if (!options.expand_flags) + { + representation = to_hex_fixed_width(flags); + } + else + { + representation = ToString_D3D12_DRED_PAGE_FAULT_FLAGS(flags); + } + FieldToJson(jdata, representation, options); +} +inline void FieldToJson_D3D12_RENDER_PASS_FLAGS(nlohmann::ordered_json& jdata, const uint32_t flags, const JsonOptions& options = JsonOptions()) +{ + std::string representation; + if (!options.expand_flags) + { + representation = to_hex_fixed_width(flags); + } + else + { + representation = ToString_D3D12_RENDER_PASS_FLAGS(flags); + } + FieldToJson(jdata, representation, options); +} +inline void FieldToJson_D3D12_SHADER_CACHE_FLAGS(nlohmann::ordered_json& jdata, const uint32_t flags, const JsonOptions& options = JsonOptions()) +{ + std::string representation; + if (!options.expand_flags) + { + representation = to_hex_fixed_width(flags); + } + else + { + representation = ToString_D3D12_SHADER_CACHE_FLAGS(flags); + } + FieldToJson(jdata, representation, options); +} +inline void FieldToJson_D3D12_TEXTURE_BARRIER_FLAGS(nlohmann::ordered_json& jdata, const uint32_t flags, const JsonOptions& options = JsonOptions()) +{ + std::string representation; + if (!options.expand_flags) + { + representation = to_hex_fixed_width(flags); + } + else + { + representation = ToString_D3D12_TEXTURE_BARRIER_FLAGS(flags); + } + FieldToJson(jdata, representation, options); +} +inline void FieldToJson_D3D12_SHADER_CACHE_KIND_FLAGS(nlohmann::ordered_json& jdata, const uint32_t flags, const JsonOptions& options = JsonOptions()) +{ + std::string representation; + if (!options.expand_flags) + { + representation = to_hex_fixed_width(flags); + } + else + { + representation = ToString_D3D12_SHADER_CACHE_KIND_FLAGS(flags); + } + FieldToJson(jdata, representation, options); +} +inline void FieldToJson_D3D12_SHADER_CACHE_CONTROL_FLAGS(nlohmann::ordered_json& jdata, const uint32_t flags, const JsonOptions& options = JsonOptions()) +{ + std::string representation; + if (!options.expand_flags) + { + representation = to_hex_fixed_width(flags); + } + else + { + representation = ToString_D3D12_SHADER_CACHE_CONTROL_FLAGS(flags); + } + FieldToJson(jdata, representation, options); +} +inline void FieldToJson_D3D12_DEVICE_FACTORY_FLAGS(nlohmann::ordered_json& jdata, const uint32_t flags, const JsonOptions& options = JsonOptions()) +{ + std::string representation; + if (!options.expand_flags) + { + representation = to_hex_fixed_width(flags); + } + else + { + representation = ToString_D3D12_DEVICE_FACTORY_FLAGS(flags); + } + FieldToJson(jdata, representation, options); +} +inline void FieldToJson_D3D12_DEVICE_FLAGS(nlohmann::ordered_json& jdata, const uint32_t flags, const JsonOptions& options = JsonOptions()) +{ + std::string representation; + if (!options.expand_flags) + { + representation = to_hex_fixed_width(flags); + } + else + { + representation = ToString_D3D12_DEVICE_FLAGS(flags); + } + FieldToJson(jdata, representation, options); +} +inline void FieldToJson_D3D_SHADER_VARIABLE_FLAGS(nlohmann::ordered_json& jdata, const uint32_t flags, const JsonOptions& options = JsonOptions()) +{ + std::string representation; + if (!options.expand_flags) + { + representation = to_hex_fixed_width(flags); + } + else + { + representation = ToString_D3D_SHADER_VARIABLE_FLAGS(flags); + } + FieldToJson(jdata, representation, options); +} +inline void FieldToJson_D3D_SHADER_INPUT_FLAGS(nlohmann::ordered_json& jdata, const uint32_t flags, const JsonOptions& options = JsonOptions()) +{ + std::string representation; + if (!options.expand_flags) + { + representation = to_hex_fixed_width(flags); + } + else + { + representation = ToString_D3D_SHADER_INPUT_FLAGS(flags); + } + FieldToJson(jdata, representation, options); +} +inline void FieldToJson_D3D_SHADER_CBUFFER_FLAGS(nlohmann::ordered_json& jdata, const uint32_t flags, const JsonOptions& options = JsonOptions()) +{ + std::string representation; + if (!options.expand_flags) + { + representation = to_hex_fixed_width(flags); + } + else + { + representation = ToString_D3D_SHADER_CBUFFER_FLAGS(flags); + } + FieldToJson(jdata, representation, options); +} +inline void FieldToJson_D3D_PARAMETER_FLAGS(nlohmann::ordered_json& jdata, const uint32_t flags, const JsonOptions& options = JsonOptions()) +{ + std::string representation; + if (!options.expand_flags) + { + representation = to_hex_fixed_width(flags); + } + else + { + representation = ToString_D3D_PARAMETER_FLAGS(flags); + } + FieldToJson(jdata, representation, options); +} +inline void FieldToJson_D3D12_GPU_BASED_VALIDATION_FLAGS(nlohmann::ordered_json& jdata, const uint32_t flags, const JsonOptions& options = JsonOptions()) +{ + std::string representation; + if (!options.expand_flags) + { + representation = to_hex_fixed_width(flags); + } + else + { + representation = ToString_D3D12_GPU_BASED_VALIDATION_FLAGS(flags); + } + FieldToJson(jdata, representation, options); +} +inline void FieldToJson_D3D12_RLDO_FLAGS(nlohmann::ordered_json& jdata, const uint32_t flags, const JsonOptions& options = JsonOptions()) +{ + std::string representation; + if (!options.expand_flags) + { + representation = to_hex_fixed_width(flags); + } + else + { + representation = ToString_D3D12_RLDO_FLAGS(flags); + } + FieldToJson(jdata, representation, options); +} +inline void FieldToJson_D3D12_GPU_BASED_VALIDATION_PIPELINE_STATE_CREATE_FLAGS(nlohmann::ordered_json& jdata, const uint32_t flags, const JsonOptions& options = JsonOptions()) +{ + std::string representation; + if (!options.expand_flags) + { + representation = to_hex_fixed_width(flags); + } + else + { + representation = ToString_D3D12_GPU_BASED_VALIDATION_PIPELINE_STATE_CREATE_FLAGS(flags); + } + FieldToJson(jdata, representation, options); +} +inline void FieldToJson_D3D12_MESSAGE_CALLBACK_FLAGS(nlohmann::ordered_json& jdata, const uint32_t flags, const JsonOptions& options = JsonOptions()) +{ + std::string representation; + if (!options.expand_flags) + { + representation = to_hex_fixed_width(flags); + } + else + { + representation = ToString_D3D12_MESSAGE_CALLBACK_FLAGS(flags); + } + FieldToJson(jdata, representation, options); +} + +// IID struct-as-enum special case: +inline void FieldToJson(nlohmann::ordered_json& jdata, const IID& value, const JsonOptions& options = JsonOptions()) +{ + FieldToJson(jdata, ToString(value), options); +} + +GFXRECON_END_NAMESPACE(util) +GFXRECON_END_NAMESPACE(gfxrecon) + +#endif diff --git a/framework/generated/generated_dx12_enum_to_string.cpp b/framework/generated/generated_dx12_enum_to_string.cpp index 663ce5a15d..6ec92717a3 100644 --- a/framework/generated/generated_dx12_enum_to_string.cpp +++ b/framework/generated/generated_dx12_enum_to_string.cpp @@ -30,4679 +30,4678 @@ GFXRECON_BEGIN_NAMESPACE(gfxrecon) GFXRECON_BEGIN_NAMESPACE(util) -std::string ToString(const DXGI_RESIDENCY& value) +std::string ToString(const DXGI_RESIDENCY value) { + const char* ret = "Unhandled DXGI_RESIDENCY"; switch (value) { - case DXGI_RESIDENCY_FULLY_RESIDENT: return "DXGI_RESIDENCY_FULLY_RESIDENT"; - case DXGI_RESIDENCY_RESIDENT_IN_SHARED_MEMORY: return "DXGI_RESIDENCY_RESIDENT_IN_SHARED_MEMORY"; - case DXGI_RESIDENCY_EVICTED_TO_DISK: return "DXGI_RESIDENCY_EVICTED_TO_DISK"; - default: break; + case DXGI_RESIDENCY_FULLY_RESIDENT: ret = "DXGI_RESIDENCY_FULLY_RESIDENT"; break; + case DXGI_RESIDENCY_RESIDENT_IN_SHARED_MEMORY: ret = "DXGI_RESIDENCY_RESIDENT_IN_SHARED_MEMORY"; break; + case DXGI_RESIDENCY_EVICTED_TO_DISK: ret = "DXGI_RESIDENCY_EVICTED_TO_DISK"; break; } - return "Unhandled DXGI_RESIDENCY"; + return ret; } -std::string ToString(const DXGI_SWAP_EFFECT& value) +std::string ToString(const DXGI_SWAP_EFFECT value) { + const char* ret = "Unhandled DXGI_SWAP_EFFECT"; switch (value) { - case DXGI_SWAP_EFFECT_DISCARD: return "DXGI_SWAP_EFFECT_DISCARD"; - case DXGI_SWAP_EFFECT_SEQUENTIAL: return "DXGI_SWAP_EFFECT_SEQUENTIAL"; - case DXGI_SWAP_EFFECT_FLIP_SEQUENTIAL: return "DXGI_SWAP_EFFECT_FLIP_SEQUENTIAL"; - case DXGI_SWAP_EFFECT_FLIP_DISCARD: return "DXGI_SWAP_EFFECT_FLIP_DISCARD"; - default: break; + case DXGI_SWAP_EFFECT_DISCARD: ret = "DXGI_SWAP_EFFECT_DISCARD"; break; + case DXGI_SWAP_EFFECT_SEQUENTIAL: ret = "DXGI_SWAP_EFFECT_SEQUENTIAL"; break; + case DXGI_SWAP_EFFECT_FLIP_SEQUENTIAL: ret = "DXGI_SWAP_EFFECT_FLIP_SEQUENTIAL"; break; + case DXGI_SWAP_EFFECT_FLIP_DISCARD: ret = "DXGI_SWAP_EFFECT_FLIP_DISCARD"; break; } - return "Unhandled DXGI_SWAP_EFFECT"; + return ret; } -std::string ToString(const DXGI_SWAP_CHAIN_FLAG& value) +std::string ToString(const DXGI_SWAP_CHAIN_FLAG value) { + const char* ret = "Unhandled DXGI_SWAP_CHAIN_FLAG"; switch (value) { - case DXGI_SWAP_CHAIN_FLAG_NONPREROTATED: return "DXGI_SWAP_CHAIN_FLAG_NONPREROTATED"; - case DXGI_SWAP_CHAIN_FLAG_ALLOW_MODE_SWITCH: return "DXGI_SWAP_CHAIN_FLAG_ALLOW_MODE_SWITCH"; - case DXGI_SWAP_CHAIN_FLAG_GDI_COMPATIBLE: return "DXGI_SWAP_CHAIN_FLAG_GDI_COMPATIBLE"; - case DXGI_SWAP_CHAIN_FLAG_RESTRICTED_CONTENT: return "DXGI_SWAP_CHAIN_FLAG_RESTRICTED_CONTENT"; - case DXGI_SWAP_CHAIN_FLAG_RESTRICT_SHARED_RESOURCE_DRIVER: return "DXGI_SWAP_CHAIN_FLAG_RESTRICT_SHARED_RESOURCE_DRIVER"; - case DXGI_SWAP_CHAIN_FLAG_DISPLAY_ONLY: return "DXGI_SWAP_CHAIN_FLAG_DISPLAY_ONLY"; - case DXGI_SWAP_CHAIN_FLAG_FRAME_LATENCY_WAITABLE_OBJECT: return "DXGI_SWAP_CHAIN_FLAG_FRAME_LATENCY_WAITABLE_OBJECT"; - case DXGI_SWAP_CHAIN_FLAG_FOREGROUND_LAYER: return "DXGI_SWAP_CHAIN_FLAG_FOREGROUND_LAYER"; - case DXGI_SWAP_CHAIN_FLAG_FULLSCREEN_VIDEO: return "DXGI_SWAP_CHAIN_FLAG_FULLSCREEN_VIDEO"; - case DXGI_SWAP_CHAIN_FLAG_YUV_VIDEO: return "DXGI_SWAP_CHAIN_FLAG_YUV_VIDEO"; - case DXGI_SWAP_CHAIN_FLAG_HW_PROTECTED: return "DXGI_SWAP_CHAIN_FLAG_HW_PROTECTED"; - case DXGI_SWAP_CHAIN_FLAG_ALLOW_TEARING: return "DXGI_SWAP_CHAIN_FLAG_ALLOW_TEARING"; - case DXGI_SWAP_CHAIN_FLAG_RESTRICTED_TO_ALL_HOLOGRAPHIC_DISPLAYS: return "DXGI_SWAP_CHAIN_FLAG_RESTRICTED_TO_ALL_HOLOGRAPHIC_DISPLAYS"; - default: break; + case DXGI_SWAP_CHAIN_FLAG_NONPREROTATED: ret = "DXGI_SWAP_CHAIN_FLAG_NONPREROTATED"; break; + case DXGI_SWAP_CHAIN_FLAG_ALLOW_MODE_SWITCH: ret = "DXGI_SWAP_CHAIN_FLAG_ALLOW_MODE_SWITCH"; break; + case DXGI_SWAP_CHAIN_FLAG_GDI_COMPATIBLE: ret = "DXGI_SWAP_CHAIN_FLAG_GDI_COMPATIBLE"; break; + case DXGI_SWAP_CHAIN_FLAG_RESTRICTED_CONTENT: ret = "DXGI_SWAP_CHAIN_FLAG_RESTRICTED_CONTENT"; break; + case DXGI_SWAP_CHAIN_FLAG_RESTRICT_SHARED_RESOURCE_DRIVER: ret = "DXGI_SWAP_CHAIN_FLAG_RESTRICT_SHARED_RESOURCE_DRIVER"; break; + case DXGI_SWAP_CHAIN_FLAG_DISPLAY_ONLY: ret = "DXGI_SWAP_CHAIN_FLAG_DISPLAY_ONLY"; break; + case DXGI_SWAP_CHAIN_FLAG_FRAME_LATENCY_WAITABLE_OBJECT: ret = "DXGI_SWAP_CHAIN_FLAG_FRAME_LATENCY_WAITABLE_OBJECT"; break; + case DXGI_SWAP_CHAIN_FLAG_FOREGROUND_LAYER: ret = "DXGI_SWAP_CHAIN_FLAG_FOREGROUND_LAYER"; break; + case DXGI_SWAP_CHAIN_FLAG_FULLSCREEN_VIDEO: ret = "DXGI_SWAP_CHAIN_FLAG_FULLSCREEN_VIDEO"; break; + case DXGI_SWAP_CHAIN_FLAG_YUV_VIDEO: ret = "DXGI_SWAP_CHAIN_FLAG_YUV_VIDEO"; break; + case DXGI_SWAP_CHAIN_FLAG_HW_PROTECTED: ret = "DXGI_SWAP_CHAIN_FLAG_HW_PROTECTED"; break; + case DXGI_SWAP_CHAIN_FLAG_ALLOW_TEARING: ret = "DXGI_SWAP_CHAIN_FLAG_ALLOW_TEARING"; break; + case DXGI_SWAP_CHAIN_FLAG_RESTRICTED_TO_ALL_HOLOGRAPHIC_DISPLAYS: ret = "DXGI_SWAP_CHAIN_FLAG_RESTRICTED_TO_ALL_HOLOGRAPHIC_DISPLAYS"; break; } - return "Unhandled DXGI_SWAP_CHAIN_FLAG"; + return ret; } -std::string ToString(const DXGI_ADAPTER_FLAG& value) +std::string ToString(const DXGI_ADAPTER_FLAG value) { + const char* ret = "Unhandled DXGI_ADAPTER_FLAG"; switch (value) { - case DXGI_ADAPTER_FLAG_NONE: return "DXGI_ADAPTER_FLAG_NONE"; - case DXGI_ADAPTER_FLAG_REMOTE: return "DXGI_ADAPTER_FLAG_REMOTE"; - case DXGI_ADAPTER_FLAG_SOFTWARE: return "DXGI_ADAPTER_FLAG_SOFTWARE"; - case DXGI_ADAPTER_FLAG_FORCE_DWORD: return "DXGI_ADAPTER_FLAG_FORCE_DWORD"; - default: break; + case DXGI_ADAPTER_FLAG_NONE: ret = "DXGI_ADAPTER_FLAG_NONE"; break; + case DXGI_ADAPTER_FLAG_REMOTE: ret = "DXGI_ADAPTER_FLAG_REMOTE"; break; + case DXGI_ADAPTER_FLAG_SOFTWARE: ret = "DXGI_ADAPTER_FLAG_SOFTWARE"; break; + case DXGI_ADAPTER_FLAG_FORCE_DWORD: ret = "DXGI_ADAPTER_FLAG_FORCE_DWORD"; break; } - return "Unhandled DXGI_ADAPTER_FLAG"; + return ret; } -std::string ToString(const DXGI_OUTDUPL_POINTER_SHAPE_TYPE& value) +std::string ToString(const DXGI_OUTDUPL_POINTER_SHAPE_TYPE value) { + const char* ret = "Unhandled DXGI_OUTDUPL_POINTER_SHAPE_TYPE"; switch (value) { - case DXGI_OUTDUPL_POINTER_SHAPE_TYPE_MONOCHROME: return "DXGI_OUTDUPL_POINTER_SHAPE_TYPE_MONOCHROME"; - case DXGI_OUTDUPL_POINTER_SHAPE_TYPE_COLOR: return "DXGI_OUTDUPL_POINTER_SHAPE_TYPE_COLOR"; - case DXGI_OUTDUPL_POINTER_SHAPE_TYPE_MASKED_COLOR: return "DXGI_OUTDUPL_POINTER_SHAPE_TYPE_MASKED_COLOR"; - default: break; + case DXGI_OUTDUPL_POINTER_SHAPE_TYPE_MONOCHROME: ret = "DXGI_OUTDUPL_POINTER_SHAPE_TYPE_MONOCHROME"; break; + case DXGI_OUTDUPL_POINTER_SHAPE_TYPE_COLOR: ret = "DXGI_OUTDUPL_POINTER_SHAPE_TYPE_COLOR"; break; + case DXGI_OUTDUPL_POINTER_SHAPE_TYPE_MASKED_COLOR: ret = "DXGI_OUTDUPL_POINTER_SHAPE_TYPE_MASKED_COLOR"; break; } - return "Unhandled DXGI_OUTDUPL_POINTER_SHAPE_TYPE"; + return ret; } -std::string ToString(const DXGI_ALPHA_MODE& value) +std::string ToString(const DXGI_ALPHA_MODE value) { + const char* ret = "Unhandled DXGI_ALPHA_MODE"; switch (value) { - case DXGI_ALPHA_MODE_UNSPECIFIED: return "DXGI_ALPHA_MODE_UNSPECIFIED"; - case DXGI_ALPHA_MODE_PREMULTIPLIED: return "DXGI_ALPHA_MODE_PREMULTIPLIED"; - case DXGI_ALPHA_MODE_STRAIGHT: return "DXGI_ALPHA_MODE_STRAIGHT"; - case DXGI_ALPHA_MODE_IGNORE: return "DXGI_ALPHA_MODE_IGNORE"; - case DXGI_ALPHA_MODE_FORCE_DWORD: return "DXGI_ALPHA_MODE_FORCE_DWORD"; - default: break; + case DXGI_ALPHA_MODE_UNSPECIFIED: ret = "DXGI_ALPHA_MODE_UNSPECIFIED"; break; + case DXGI_ALPHA_MODE_PREMULTIPLIED: ret = "DXGI_ALPHA_MODE_PREMULTIPLIED"; break; + case DXGI_ALPHA_MODE_STRAIGHT: ret = "DXGI_ALPHA_MODE_STRAIGHT"; break; + case DXGI_ALPHA_MODE_IGNORE: ret = "DXGI_ALPHA_MODE_IGNORE"; break; + case DXGI_ALPHA_MODE_FORCE_DWORD: ret = "DXGI_ALPHA_MODE_FORCE_DWORD"; break; } - return "Unhandled DXGI_ALPHA_MODE"; + return ret; } -std::string ToString(const DXGI_OFFER_RESOURCE_PRIORITY& value) +std::string ToString(const DXGI_OFFER_RESOURCE_PRIORITY value) { + const char* ret = "Unhandled DXGI_OFFER_RESOURCE_PRIORITY"; switch (value) { - case DXGI_OFFER_RESOURCE_PRIORITY_LOW: return "DXGI_OFFER_RESOURCE_PRIORITY_LOW"; - case DXGI_OFFER_RESOURCE_PRIORITY_NORMAL: return "DXGI_OFFER_RESOURCE_PRIORITY_NORMAL"; - case DXGI_OFFER_RESOURCE_PRIORITY_HIGH: return "DXGI_OFFER_RESOURCE_PRIORITY_HIGH"; - default: break; + case DXGI_OFFER_RESOURCE_PRIORITY_LOW: ret = "DXGI_OFFER_RESOURCE_PRIORITY_LOW"; break; + case DXGI_OFFER_RESOURCE_PRIORITY_NORMAL: ret = "DXGI_OFFER_RESOURCE_PRIORITY_NORMAL"; break; + case DXGI_OFFER_RESOURCE_PRIORITY_HIGH: ret = "DXGI_OFFER_RESOURCE_PRIORITY_HIGH"; break; } - return "Unhandled DXGI_OFFER_RESOURCE_PRIORITY"; + return ret; } -std::string ToString(const DXGI_SCALING& value) +std::string ToString(const DXGI_SCALING value) { + const char* ret = "Unhandled DXGI_SCALING"; switch (value) { - case DXGI_SCALING_STRETCH: return "DXGI_SCALING_STRETCH"; - case DXGI_SCALING_NONE: return "DXGI_SCALING_NONE"; - case DXGI_SCALING_ASPECT_RATIO_STRETCH: return "DXGI_SCALING_ASPECT_RATIO_STRETCH"; - default: break; + case DXGI_SCALING_STRETCH: ret = "DXGI_SCALING_STRETCH"; break; + case DXGI_SCALING_NONE: ret = "DXGI_SCALING_NONE"; break; + case DXGI_SCALING_ASPECT_RATIO_STRETCH: ret = "DXGI_SCALING_ASPECT_RATIO_STRETCH"; break; } - return "Unhandled DXGI_SCALING"; + return ret; } -std::string ToString(const DXGI_GRAPHICS_PREEMPTION_GRANULARITY& value) +std::string ToString(const DXGI_GRAPHICS_PREEMPTION_GRANULARITY value) { + const char* ret = "Unhandled DXGI_GRAPHICS_PREEMPTION_GRANULARITY"; switch (value) { - case DXGI_GRAPHICS_PREEMPTION_DMA_BUFFER_BOUNDARY: return "DXGI_GRAPHICS_PREEMPTION_DMA_BUFFER_BOUNDARY"; - case DXGI_GRAPHICS_PREEMPTION_PRIMITIVE_BOUNDARY: return "DXGI_GRAPHICS_PREEMPTION_PRIMITIVE_BOUNDARY"; - case DXGI_GRAPHICS_PREEMPTION_TRIANGLE_BOUNDARY: return "DXGI_GRAPHICS_PREEMPTION_TRIANGLE_BOUNDARY"; - case DXGI_GRAPHICS_PREEMPTION_PIXEL_BOUNDARY: return "DXGI_GRAPHICS_PREEMPTION_PIXEL_BOUNDARY"; - case DXGI_GRAPHICS_PREEMPTION_INSTRUCTION_BOUNDARY: return "DXGI_GRAPHICS_PREEMPTION_INSTRUCTION_BOUNDARY"; - default: break; + case DXGI_GRAPHICS_PREEMPTION_DMA_BUFFER_BOUNDARY: ret = "DXGI_GRAPHICS_PREEMPTION_DMA_BUFFER_BOUNDARY"; break; + case DXGI_GRAPHICS_PREEMPTION_PRIMITIVE_BOUNDARY: ret = "DXGI_GRAPHICS_PREEMPTION_PRIMITIVE_BOUNDARY"; break; + case DXGI_GRAPHICS_PREEMPTION_TRIANGLE_BOUNDARY: ret = "DXGI_GRAPHICS_PREEMPTION_TRIANGLE_BOUNDARY"; break; + case DXGI_GRAPHICS_PREEMPTION_PIXEL_BOUNDARY: ret = "DXGI_GRAPHICS_PREEMPTION_PIXEL_BOUNDARY"; break; + case DXGI_GRAPHICS_PREEMPTION_INSTRUCTION_BOUNDARY: ret = "DXGI_GRAPHICS_PREEMPTION_INSTRUCTION_BOUNDARY"; break; } - return "Unhandled DXGI_GRAPHICS_PREEMPTION_GRANULARITY"; + return ret; } -std::string ToString(const DXGI_COMPUTE_PREEMPTION_GRANULARITY& value) +std::string ToString(const DXGI_COMPUTE_PREEMPTION_GRANULARITY value) { + const char* ret = "Unhandled DXGI_COMPUTE_PREEMPTION_GRANULARITY"; switch (value) { - case DXGI_COMPUTE_PREEMPTION_DMA_BUFFER_BOUNDARY: return "DXGI_COMPUTE_PREEMPTION_DMA_BUFFER_BOUNDARY"; - case DXGI_COMPUTE_PREEMPTION_DISPATCH_BOUNDARY: return "DXGI_COMPUTE_PREEMPTION_DISPATCH_BOUNDARY"; - case DXGI_COMPUTE_PREEMPTION_THREAD_GROUP_BOUNDARY: return "DXGI_COMPUTE_PREEMPTION_THREAD_GROUP_BOUNDARY"; - case DXGI_COMPUTE_PREEMPTION_THREAD_BOUNDARY: return "DXGI_COMPUTE_PREEMPTION_THREAD_BOUNDARY"; - case DXGI_COMPUTE_PREEMPTION_INSTRUCTION_BOUNDARY: return "DXGI_COMPUTE_PREEMPTION_INSTRUCTION_BOUNDARY"; - default: break; + case DXGI_COMPUTE_PREEMPTION_DMA_BUFFER_BOUNDARY: ret = "DXGI_COMPUTE_PREEMPTION_DMA_BUFFER_BOUNDARY"; break; + case DXGI_COMPUTE_PREEMPTION_DISPATCH_BOUNDARY: ret = "DXGI_COMPUTE_PREEMPTION_DISPATCH_BOUNDARY"; break; + case DXGI_COMPUTE_PREEMPTION_THREAD_GROUP_BOUNDARY: ret = "DXGI_COMPUTE_PREEMPTION_THREAD_GROUP_BOUNDARY"; break; + case DXGI_COMPUTE_PREEMPTION_THREAD_BOUNDARY: ret = "DXGI_COMPUTE_PREEMPTION_THREAD_BOUNDARY"; break; + case DXGI_COMPUTE_PREEMPTION_INSTRUCTION_BOUNDARY: ret = "DXGI_COMPUTE_PREEMPTION_INSTRUCTION_BOUNDARY"; break; } - return "Unhandled DXGI_COMPUTE_PREEMPTION_GRANULARITY"; + return ret; } -std::string ToString(const DXGI_MULTIPLANE_OVERLAY_YCbCr_FLAGS& value) +std::string ToString(const DXGI_MULTIPLANE_OVERLAY_YCbCr_FLAGS value) { + const char* ret = "Unhandled DXGI_MULTIPLANE_OVERLAY_YCbCr_FLAGS"; switch (value) { - case DXGI_MULTIPLANE_OVERLAY_YCbCr_FLAG_NOMINAL_RANGE: return "DXGI_MULTIPLANE_OVERLAY_YCbCr_FLAG_NOMINAL_RANGE"; - case DXGI_MULTIPLANE_OVERLAY_YCbCr_FLAG_BT709: return "DXGI_MULTIPLANE_OVERLAY_YCbCr_FLAG_BT709"; - case DXGI_MULTIPLANE_OVERLAY_YCbCr_FLAG_xvYCC: return "DXGI_MULTIPLANE_OVERLAY_YCbCr_FLAG_xvYCC"; - default: break; + case DXGI_MULTIPLANE_OVERLAY_YCbCr_FLAG_NOMINAL_RANGE: ret = "DXGI_MULTIPLANE_OVERLAY_YCbCr_FLAG_NOMINAL_RANGE"; break; + case DXGI_MULTIPLANE_OVERLAY_YCbCr_FLAG_BT709: ret = "DXGI_MULTIPLANE_OVERLAY_YCbCr_FLAG_BT709"; break; + case DXGI_MULTIPLANE_OVERLAY_YCbCr_FLAG_xvYCC: ret = "DXGI_MULTIPLANE_OVERLAY_YCbCr_FLAG_xvYCC"; break; } - return "Unhandled DXGI_MULTIPLANE_OVERLAY_YCbCr_FLAGS"; + return ret; } -std::string ToString_DXGI_MULTIPLANE_OVERLAY_YCbCr_FLAGS(uint32_t flags) +std::string ToString_DXGI_MULTIPLANE_OVERLAY_YCbCr_FLAGS(const uint32_t flags) { return BitmaskToString(flags); } -std::string ToString(const DXGI_FRAME_PRESENTATION_MODE& value) +std::string ToString(const DXGI_FRAME_PRESENTATION_MODE value) { + const char* ret = "Unhandled DXGI_FRAME_PRESENTATION_MODE"; switch (value) { - case DXGI_FRAME_PRESENTATION_MODE_COMPOSED: return "DXGI_FRAME_PRESENTATION_MODE_COMPOSED"; - case DXGI_FRAME_PRESENTATION_MODE_OVERLAY: return "DXGI_FRAME_PRESENTATION_MODE_OVERLAY"; - case DXGI_FRAME_PRESENTATION_MODE_NONE: return "DXGI_FRAME_PRESENTATION_MODE_NONE"; - case DXGI_FRAME_PRESENTATION_MODE_COMPOSITION_FAILURE: return "DXGI_FRAME_PRESENTATION_MODE_COMPOSITION_FAILURE"; - default: break; + case DXGI_FRAME_PRESENTATION_MODE_COMPOSED: ret = "DXGI_FRAME_PRESENTATION_MODE_COMPOSED"; break; + case DXGI_FRAME_PRESENTATION_MODE_OVERLAY: ret = "DXGI_FRAME_PRESENTATION_MODE_OVERLAY"; break; + case DXGI_FRAME_PRESENTATION_MODE_NONE: ret = "DXGI_FRAME_PRESENTATION_MODE_NONE"; break; + case DXGI_FRAME_PRESENTATION_MODE_COMPOSITION_FAILURE: ret = "DXGI_FRAME_PRESENTATION_MODE_COMPOSITION_FAILURE"; break; } - return "Unhandled DXGI_FRAME_PRESENTATION_MODE"; + return ret; } -std::string ToString(const DXGI_OVERLAY_SUPPORT_FLAG& value) +std::string ToString(const DXGI_OVERLAY_SUPPORT_FLAG value) { + const char* ret = "Unhandled DXGI_OVERLAY_SUPPORT_FLAG"; switch (value) { - case DXGI_OVERLAY_SUPPORT_FLAG_DIRECT: return "DXGI_OVERLAY_SUPPORT_FLAG_DIRECT"; - case DXGI_OVERLAY_SUPPORT_FLAG_SCALING: return "DXGI_OVERLAY_SUPPORT_FLAG_SCALING"; - default: break; + case DXGI_OVERLAY_SUPPORT_FLAG_DIRECT: ret = "DXGI_OVERLAY_SUPPORT_FLAG_DIRECT"; break; + case DXGI_OVERLAY_SUPPORT_FLAG_SCALING: ret = "DXGI_OVERLAY_SUPPORT_FLAG_SCALING"; break; } - return "Unhandled DXGI_OVERLAY_SUPPORT_FLAG"; + return ret; } -std::string ToString(const DXGI_SWAP_CHAIN_COLOR_SPACE_SUPPORT_FLAG& value) +std::string ToString(const DXGI_SWAP_CHAIN_COLOR_SPACE_SUPPORT_FLAG value) { + const char* ret = "Unhandled DXGI_SWAP_CHAIN_COLOR_SPACE_SUPPORT_FLAG"; switch (value) { - case DXGI_SWAP_CHAIN_COLOR_SPACE_SUPPORT_FLAG_PRESENT: return "DXGI_SWAP_CHAIN_COLOR_SPACE_SUPPORT_FLAG_PRESENT"; - case DXGI_SWAP_CHAIN_COLOR_SPACE_SUPPORT_FLAG_OVERLAY_PRESENT: return "DXGI_SWAP_CHAIN_COLOR_SPACE_SUPPORT_FLAG_OVERLAY_PRESENT"; - default: break; + case DXGI_SWAP_CHAIN_COLOR_SPACE_SUPPORT_FLAG_PRESENT: ret = "DXGI_SWAP_CHAIN_COLOR_SPACE_SUPPORT_FLAG_PRESENT"; break; + case DXGI_SWAP_CHAIN_COLOR_SPACE_SUPPORT_FLAG_OVERLAY_PRESENT: ret = "DXGI_SWAP_CHAIN_COLOR_SPACE_SUPPORT_FLAG_OVERLAY_PRESENT"; break; } - return "Unhandled DXGI_SWAP_CHAIN_COLOR_SPACE_SUPPORT_FLAG"; + return ret; } -std::string ToString(const DXGI_OVERLAY_COLOR_SPACE_SUPPORT_FLAG& value) +std::string ToString(const DXGI_OVERLAY_COLOR_SPACE_SUPPORT_FLAG value) { + const char* ret = "Unhandled DXGI_OVERLAY_COLOR_SPACE_SUPPORT_FLAG"; switch (value) { - case DXGI_OVERLAY_COLOR_SPACE_SUPPORT_FLAG_PRESENT: return "DXGI_OVERLAY_COLOR_SPACE_SUPPORT_FLAG_PRESENT"; - default: break; + case DXGI_OVERLAY_COLOR_SPACE_SUPPORT_FLAG_PRESENT: ret = "DXGI_OVERLAY_COLOR_SPACE_SUPPORT_FLAG_PRESENT"; break; } - return "Unhandled DXGI_OVERLAY_COLOR_SPACE_SUPPORT_FLAG"; + return ret; } -std::string ToString(const DXGI_MEMORY_SEGMENT_GROUP& value) +std::string ToString(const DXGI_MEMORY_SEGMENT_GROUP value) { + const char* ret = "Unhandled DXGI_MEMORY_SEGMENT_GROUP"; switch (value) { - case DXGI_MEMORY_SEGMENT_GROUP_LOCAL: return "DXGI_MEMORY_SEGMENT_GROUP_LOCAL"; - case DXGI_MEMORY_SEGMENT_GROUP_NON_LOCAL: return "DXGI_MEMORY_SEGMENT_GROUP_NON_LOCAL"; - default: break; + case DXGI_MEMORY_SEGMENT_GROUP_LOCAL: ret = "DXGI_MEMORY_SEGMENT_GROUP_LOCAL"; break; + case DXGI_MEMORY_SEGMENT_GROUP_NON_LOCAL: ret = "DXGI_MEMORY_SEGMENT_GROUP_NON_LOCAL"; break; } - return "Unhandled DXGI_MEMORY_SEGMENT_GROUP"; + return ret; } -std::string ToString(const DXGI_OUTDUPL_FLAG& value) +std::string ToString(const DXGI_OUTDUPL_FLAG value) { + const char* ret = "Unhandled DXGI_OUTDUPL_FLAG"; switch (value) { - case DXGI_OUTDUPL_COMPOSITED_UI_CAPTURE_ONLY: return "DXGI_OUTDUPL_COMPOSITED_UI_CAPTURE_ONLY"; - default: break; + case DXGI_OUTDUPL_COMPOSITED_UI_CAPTURE_ONLY: ret = "DXGI_OUTDUPL_COMPOSITED_UI_CAPTURE_ONLY"; break; } - return "Unhandled DXGI_OUTDUPL_FLAG"; + return ret; } -std::string ToString(const DXGI_HDR_METADATA_TYPE& value) +std::string ToString(const DXGI_HDR_METADATA_TYPE value) { + const char* ret = "Unhandled DXGI_HDR_METADATA_TYPE"; switch (value) { - case DXGI_HDR_METADATA_TYPE_NONE: return "DXGI_HDR_METADATA_TYPE_NONE"; - case DXGI_HDR_METADATA_TYPE_HDR10: return "DXGI_HDR_METADATA_TYPE_HDR10"; - case DXGI_HDR_METADATA_TYPE_HDR10PLUS: return "DXGI_HDR_METADATA_TYPE_HDR10PLUS"; - default: break; + case DXGI_HDR_METADATA_TYPE_NONE: ret = "DXGI_HDR_METADATA_TYPE_NONE"; break; + case DXGI_HDR_METADATA_TYPE_HDR10: ret = "DXGI_HDR_METADATA_TYPE_HDR10"; break; + case DXGI_HDR_METADATA_TYPE_HDR10PLUS: ret = "DXGI_HDR_METADATA_TYPE_HDR10PLUS"; break; } - return "Unhandled DXGI_HDR_METADATA_TYPE"; + return ret; } -std::string ToString(const DXGI_OFFER_RESOURCE_FLAGS& value) +std::string ToString(const DXGI_OFFER_RESOURCE_FLAGS value) { + const char* ret = "Unhandled DXGI_OFFER_RESOURCE_FLAGS"; switch (value) { - case DXGI_OFFER_RESOURCE_FLAG_ALLOW_DECOMMIT: return "DXGI_OFFER_RESOURCE_FLAG_ALLOW_DECOMMIT"; - default: break; + case DXGI_OFFER_RESOURCE_FLAG_ALLOW_DECOMMIT: ret = "DXGI_OFFER_RESOURCE_FLAG_ALLOW_DECOMMIT"; break; } - return "Unhandled DXGI_OFFER_RESOURCE_FLAGS"; + return ret; } -std::string ToString_DXGI_OFFER_RESOURCE_FLAGS(uint32_t flags) +std::string ToString_DXGI_OFFER_RESOURCE_FLAGS(const uint32_t flags) { return BitmaskToString(flags); } -std::string ToString(const DXGI_RECLAIM_RESOURCE_RESULTS& value) +std::string ToString(const DXGI_RECLAIM_RESOURCE_RESULTS value) { + const char* ret = "Unhandled DXGI_RECLAIM_RESOURCE_RESULTS"; switch (value) { - case DXGI_RECLAIM_RESOURCE_RESULT_OK: return "DXGI_RECLAIM_RESOURCE_RESULT_OK"; - case DXGI_RECLAIM_RESOURCE_RESULT_DISCARDED: return "DXGI_RECLAIM_RESOURCE_RESULT_DISCARDED"; - case DXGI_RECLAIM_RESOURCE_RESULT_NOT_COMMITTED: return "DXGI_RECLAIM_RESOURCE_RESULT_NOT_COMMITTED"; - default: break; + case DXGI_RECLAIM_RESOURCE_RESULT_OK: ret = "DXGI_RECLAIM_RESOURCE_RESULT_OK"; break; + case DXGI_RECLAIM_RESOURCE_RESULT_DISCARDED: ret = "DXGI_RECLAIM_RESOURCE_RESULT_DISCARDED"; break; + case DXGI_RECLAIM_RESOURCE_RESULT_NOT_COMMITTED: ret = "DXGI_RECLAIM_RESOURCE_RESULT_NOT_COMMITTED"; break; } - return "Unhandled DXGI_RECLAIM_RESOURCE_RESULTS"; + return ret; } -std::string ToString(const DXGI_FEATURE& value) +std::string ToString(const DXGI_FEATURE value) { + const char* ret = "Unhandled DXGI_FEATURE"; switch (value) { - case DXGI_FEATURE_PRESENT_ALLOW_TEARING: return "DXGI_FEATURE_PRESENT_ALLOW_TEARING"; - default: break; + case DXGI_FEATURE_PRESENT_ALLOW_TEARING: ret = "DXGI_FEATURE_PRESENT_ALLOW_TEARING"; break; } - return "Unhandled DXGI_FEATURE"; + return ret; } -std::string ToString(const DXGI_ADAPTER_FLAG3& value) +std::string ToString(const DXGI_ADAPTER_FLAG3 value) { + const char* ret = "Unhandled DXGI_ADAPTER_FLAG3"; switch (value) { - case DXGI_ADAPTER_FLAG3_NONE: return "DXGI_ADAPTER_FLAG3_NONE"; - case DXGI_ADAPTER_FLAG3_REMOTE: return "DXGI_ADAPTER_FLAG3_REMOTE"; - case DXGI_ADAPTER_FLAG3_SOFTWARE: return "DXGI_ADAPTER_FLAG3_SOFTWARE"; - case DXGI_ADAPTER_FLAG3_ACG_COMPATIBLE: return "DXGI_ADAPTER_FLAG3_ACG_COMPATIBLE"; - case DXGI_ADAPTER_FLAG3_SUPPORT_MONITORED_FENCES: return "DXGI_ADAPTER_FLAG3_SUPPORT_MONITORED_FENCES"; - case DXGI_ADAPTER_FLAG3_SUPPORT_NON_MONITORED_FENCES: return "DXGI_ADAPTER_FLAG3_SUPPORT_NON_MONITORED_FENCES"; - case DXGI_ADAPTER_FLAG3_KEYED_MUTEX_CONFORMANCE: return "DXGI_ADAPTER_FLAG3_KEYED_MUTEX_CONFORMANCE"; - case DXGI_ADAPTER_FLAG3_FORCE_DWORD: return "DXGI_ADAPTER_FLAG3_FORCE_DWORD"; - default: break; + case DXGI_ADAPTER_FLAG3_NONE: ret = "DXGI_ADAPTER_FLAG3_NONE"; break; + case DXGI_ADAPTER_FLAG3_REMOTE: ret = "DXGI_ADAPTER_FLAG3_REMOTE"; break; + case DXGI_ADAPTER_FLAG3_SOFTWARE: ret = "DXGI_ADAPTER_FLAG3_SOFTWARE"; break; + case DXGI_ADAPTER_FLAG3_ACG_COMPATIBLE: ret = "DXGI_ADAPTER_FLAG3_ACG_COMPATIBLE"; break; + case DXGI_ADAPTER_FLAG3_SUPPORT_MONITORED_FENCES: ret = "DXGI_ADAPTER_FLAG3_SUPPORT_MONITORED_FENCES"; break; + case DXGI_ADAPTER_FLAG3_SUPPORT_NON_MONITORED_FENCES: ret = "DXGI_ADAPTER_FLAG3_SUPPORT_NON_MONITORED_FENCES"; break; + case DXGI_ADAPTER_FLAG3_KEYED_MUTEX_CONFORMANCE: ret = "DXGI_ADAPTER_FLAG3_KEYED_MUTEX_CONFORMANCE"; break; + case DXGI_ADAPTER_FLAG3_FORCE_DWORD: ret = "DXGI_ADAPTER_FLAG3_FORCE_DWORD"; break; } - return "Unhandled DXGI_ADAPTER_FLAG3"; + return ret; } -std::string ToString(const DXGI_HARDWARE_COMPOSITION_SUPPORT_FLAGS& value) +std::string ToString(const DXGI_HARDWARE_COMPOSITION_SUPPORT_FLAGS value) { + const char* ret = "Unhandled DXGI_HARDWARE_COMPOSITION_SUPPORT_FLAGS"; switch (value) { - case DXGI_HARDWARE_COMPOSITION_SUPPORT_FLAG_FULLSCREEN: return "DXGI_HARDWARE_COMPOSITION_SUPPORT_FLAG_FULLSCREEN"; - case DXGI_HARDWARE_COMPOSITION_SUPPORT_FLAG_WINDOWED: return "DXGI_HARDWARE_COMPOSITION_SUPPORT_FLAG_WINDOWED"; - case DXGI_HARDWARE_COMPOSITION_SUPPORT_FLAG_CURSOR_STRETCHED: return "DXGI_HARDWARE_COMPOSITION_SUPPORT_FLAG_CURSOR_STRETCHED"; - default: break; + case DXGI_HARDWARE_COMPOSITION_SUPPORT_FLAG_FULLSCREEN: ret = "DXGI_HARDWARE_COMPOSITION_SUPPORT_FLAG_FULLSCREEN"; break; + case DXGI_HARDWARE_COMPOSITION_SUPPORT_FLAG_WINDOWED: ret = "DXGI_HARDWARE_COMPOSITION_SUPPORT_FLAG_WINDOWED"; break; + case DXGI_HARDWARE_COMPOSITION_SUPPORT_FLAG_CURSOR_STRETCHED: ret = "DXGI_HARDWARE_COMPOSITION_SUPPORT_FLAG_CURSOR_STRETCHED"; break; } - return "Unhandled DXGI_HARDWARE_COMPOSITION_SUPPORT_FLAGS"; + return ret; } -std::string ToString_DXGI_HARDWARE_COMPOSITION_SUPPORT_FLAGS(uint32_t flags) +std::string ToString_DXGI_HARDWARE_COMPOSITION_SUPPORT_FLAGS(const uint32_t flags) { return BitmaskToString(flags); } -std::string ToString(const DXGI_GPU_PREFERENCE& value) -{ - switch (value) { - case DXGI_GPU_PREFERENCE_UNSPECIFIED: return "DXGI_GPU_PREFERENCE_UNSPECIFIED"; - case DXGI_GPU_PREFERENCE_MINIMUM_POWER: return "DXGI_GPU_PREFERENCE_MINIMUM_POWER"; - case DXGI_GPU_PREFERENCE_HIGH_PERFORMANCE: return "DXGI_GPU_PREFERENCE_HIGH_PERFORMANCE"; - default: break; - } - return "Unhandled DXGI_GPU_PREFERENCE"; -} - -std::string ToString(const DXGI_COLOR_SPACE_TYPE& value) -{ - switch (value) { - case DXGI_COLOR_SPACE_RGB_FULL_G22_NONE_P709: return "DXGI_COLOR_SPACE_RGB_FULL_G22_NONE_P709"; - case DXGI_COLOR_SPACE_RGB_FULL_G10_NONE_P709: return "DXGI_COLOR_SPACE_RGB_FULL_G10_NONE_P709"; - case DXGI_COLOR_SPACE_RGB_STUDIO_G22_NONE_P709: return "DXGI_COLOR_SPACE_RGB_STUDIO_G22_NONE_P709"; - case DXGI_COLOR_SPACE_RGB_STUDIO_G22_NONE_P2020: return "DXGI_COLOR_SPACE_RGB_STUDIO_G22_NONE_P2020"; - case DXGI_COLOR_SPACE_RESERVED: return "DXGI_COLOR_SPACE_RESERVED"; - case DXGI_COLOR_SPACE_YCBCR_FULL_G22_NONE_P709_X601: return "DXGI_COLOR_SPACE_YCBCR_FULL_G22_NONE_P709_X601"; - case DXGI_COLOR_SPACE_YCBCR_STUDIO_G22_LEFT_P601: return "DXGI_COLOR_SPACE_YCBCR_STUDIO_G22_LEFT_P601"; - case DXGI_COLOR_SPACE_YCBCR_FULL_G22_LEFT_P601: return "DXGI_COLOR_SPACE_YCBCR_FULL_G22_LEFT_P601"; - case DXGI_COLOR_SPACE_YCBCR_STUDIO_G22_LEFT_P709: return "DXGI_COLOR_SPACE_YCBCR_STUDIO_G22_LEFT_P709"; - case DXGI_COLOR_SPACE_YCBCR_FULL_G22_LEFT_P709: return "DXGI_COLOR_SPACE_YCBCR_FULL_G22_LEFT_P709"; - case DXGI_COLOR_SPACE_YCBCR_STUDIO_G22_LEFT_P2020: return "DXGI_COLOR_SPACE_YCBCR_STUDIO_G22_LEFT_P2020"; - case DXGI_COLOR_SPACE_YCBCR_FULL_G22_LEFT_P2020: return "DXGI_COLOR_SPACE_YCBCR_FULL_G22_LEFT_P2020"; - case DXGI_COLOR_SPACE_RGB_FULL_G2084_NONE_P2020: return "DXGI_COLOR_SPACE_RGB_FULL_G2084_NONE_P2020"; - case DXGI_COLOR_SPACE_YCBCR_STUDIO_G2084_LEFT_P2020: return "DXGI_COLOR_SPACE_YCBCR_STUDIO_G2084_LEFT_P2020"; - case DXGI_COLOR_SPACE_RGB_STUDIO_G2084_NONE_P2020: return "DXGI_COLOR_SPACE_RGB_STUDIO_G2084_NONE_P2020"; - case DXGI_COLOR_SPACE_YCBCR_STUDIO_G22_TOPLEFT_P2020: return "DXGI_COLOR_SPACE_YCBCR_STUDIO_G22_TOPLEFT_P2020"; - case DXGI_COLOR_SPACE_YCBCR_STUDIO_G2084_TOPLEFT_P2020: return "DXGI_COLOR_SPACE_YCBCR_STUDIO_G2084_TOPLEFT_P2020"; - case DXGI_COLOR_SPACE_RGB_FULL_G22_NONE_P2020: return "DXGI_COLOR_SPACE_RGB_FULL_G22_NONE_P2020"; - case DXGI_COLOR_SPACE_YCBCR_STUDIO_GHLG_TOPLEFT_P2020: return "DXGI_COLOR_SPACE_YCBCR_STUDIO_GHLG_TOPLEFT_P2020"; - case DXGI_COLOR_SPACE_YCBCR_FULL_GHLG_TOPLEFT_P2020: return "DXGI_COLOR_SPACE_YCBCR_FULL_GHLG_TOPLEFT_P2020"; - case DXGI_COLOR_SPACE_RGB_STUDIO_G24_NONE_P709: return "DXGI_COLOR_SPACE_RGB_STUDIO_G24_NONE_P709"; - case DXGI_COLOR_SPACE_RGB_STUDIO_G24_NONE_P2020: return "DXGI_COLOR_SPACE_RGB_STUDIO_G24_NONE_P2020"; - case DXGI_COLOR_SPACE_YCBCR_STUDIO_G24_LEFT_P709: return "DXGI_COLOR_SPACE_YCBCR_STUDIO_G24_LEFT_P709"; - case DXGI_COLOR_SPACE_YCBCR_STUDIO_G24_LEFT_P2020: return "DXGI_COLOR_SPACE_YCBCR_STUDIO_G24_LEFT_P2020"; - case DXGI_COLOR_SPACE_YCBCR_STUDIO_G24_TOPLEFT_P2020: return "DXGI_COLOR_SPACE_YCBCR_STUDIO_G24_TOPLEFT_P2020"; - case DXGI_COLOR_SPACE_CUSTOM: return "DXGI_COLOR_SPACE_CUSTOM"; - default: break; - } - return "Unhandled DXGI_COLOR_SPACE_TYPE"; -} - -std::string ToString(const DXGI_FORMAT& value) -{ - switch (value) { - case DXGI_FORMAT_UNKNOWN: return "DXGI_FORMAT_UNKNOWN"; - case DXGI_FORMAT_R32G32B32A32_TYPELESS: return "DXGI_FORMAT_R32G32B32A32_TYPELESS"; - case DXGI_FORMAT_R32G32B32A32_FLOAT: return "DXGI_FORMAT_R32G32B32A32_FLOAT"; - case DXGI_FORMAT_R32G32B32A32_UINT: return "DXGI_FORMAT_R32G32B32A32_UINT"; - case DXGI_FORMAT_R32G32B32A32_SINT: return "DXGI_FORMAT_R32G32B32A32_SINT"; - case DXGI_FORMAT_R32G32B32_TYPELESS: return "DXGI_FORMAT_R32G32B32_TYPELESS"; - case DXGI_FORMAT_R32G32B32_FLOAT: return "DXGI_FORMAT_R32G32B32_FLOAT"; - case DXGI_FORMAT_R32G32B32_UINT: return "DXGI_FORMAT_R32G32B32_UINT"; - case DXGI_FORMAT_R32G32B32_SINT: return "DXGI_FORMAT_R32G32B32_SINT"; - case DXGI_FORMAT_R16G16B16A16_TYPELESS: return "DXGI_FORMAT_R16G16B16A16_TYPELESS"; - case DXGI_FORMAT_R16G16B16A16_FLOAT: return "DXGI_FORMAT_R16G16B16A16_FLOAT"; - case DXGI_FORMAT_R16G16B16A16_UNORM: return "DXGI_FORMAT_R16G16B16A16_UNORM"; - case DXGI_FORMAT_R16G16B16A16_UINT: return "DXGI_FORMAT_R16G16B16A16_UINT"; - case DXGI_FORMAT_R16G16B16A16_SNORM: return "DXGI_FORMAT_R16G16B16A16_SNORM"; - case DXGI_FORMAT_R16G16B16A16_SINT: return "DXGI_FORMAT_R16G16B16A16_SINT"; - case DXGI_FORMAT_R32G32_TYPELESS: return "DXGI_FORMAT_R32G32_TYPELESS"; - case DXGI_FORMAT_R32G32_FLOAT: return "DXGI_FORMAT_R32G32_FLOAT"; - case DXGI_FORMAT_R32G32_UINT: return "DXGI_FORMAT_R32G32_UINT"; - case DXGI_FORMAT_R32G32_SINT: return "DXGI_FORMAT_R32G32_SINT"; - case DXGI_FORMAT_R32G8X24_TYPELESS: return "DXGI_FORMAT_R32G8X24_TYPELESS"; - case DXGI_FORMAT_D32_FLOAT_S8X24_UINT: return "DXGI_FORMAT_D32_FLOAT_S8X24_UINT"; - case DXGI_FORMAT_R32_FLOAT_X8X24_TYPELESS: return "DXGI_FORMAT_R32_FLOAT_X8X24_TYPELESS"; - case DXGI_FORMAT_X32_TYPELESS_G8X24_UINT: return "DXGI_FORMAT_X32_TYPELESS_G8X24_UINT"; - case DXGI_FORMAT_R10G10B10A2_TYPELESS: return "DXGI_FORMAT_R10G10B10A2_TYPELESS"; - case DXGI_FORMAT_R10G10B10A2_UNORM: return "DXGI_FORMAT_R10G10B10A2_UNORM"; - case DXGI_FORMAT_R10G10B10A2_UINT: return "DXGI_FORMAT_R10G10B10A2_UINT"; - case DXGI_FORMAT_R11G11B10_FLOAT: return "DXGI_FORMAT_R11G11B10_FLOAT"; - case DXGI_FORMAT_R8G8B8A8_TYPELESS: return "DXGI_FORMAT_R8G8B8A8_TYPELESS"; - case DXGI_FORMAT_R8G8B8A8_UNORM: return "DXGI_FORMAT_R8G8B8A8_UNORM"; - case DXGI_FORMAT_R8G8B8A8_UNORM_SRGB: return "DXGI_FORMAT_R8G8B8A8_UNORM_SRGB"; - case DXGI_FORMAT_R8G8B8A8_UINT: return "DXGI_FORMAT_R8G8B8A8_UINT"; - case DXGI_FORMAT_R8G8B8A8_SNORM: return "DXGI_FORMAT_R8G8B8A8_SNORM"; - case DXGI_FORMAT_R8G8B8A8_SINT: return "DXGI_FORMAT_R8G8B8A8_SINT"; - case DXGI_FORMAT_R16G16_TYPELESS: return "DXGI_FORMAT_R16G16_TYPELESS"; - case DXGI_FORMAT_R16G16_FLOAT: return "DXGI_FORMAT_R16G16_FLOAT"; - case DXGI_FORMAT_R16G16_UNORM: return "DXGI_FORMAT_R16G16_UNORM"; - case DXGI_FORMAT_R16G16_UINT: return "DXGI_FORMAT_R16G16_UINT"; - case DXGI_FORMAT_R16G16_SNORM: return "DXGI_FORMAT_R16G16_SNORM"; - case DXGI_FORMAT_R16G16_SINT: return "DXGI_FORMAT_R16G16_SINT"; - case DXGI_FORMAT_R32_TYPELESS: return "DXGI_FORMAT_R32_TYPELESS"; - case DXGI_FORMAT_D32_FLOAT: return "DXGI_FORMAT_D32_FLOAT"; - case DXGI_FORMAT_R32_FLOAT: return "DXGI_FORMAT_R32_FLOAT"; - case DXGI_FORMAT_R32_UINT: return "DXGI_FORMAT_R32_UINT"; - case DXGI_FORMAT_R32_SINT: return "DXGI_FORMAT_R32_SINT"; - case DXGI_FORMAT_R24G8_TYPELESS: return "DXGI_FORMAT_R24G8_TYPELESS"; - case DXGI_FORMAT_D24_UNORM_S8_UINT: return "DXGI_FORMAT_D24_UNORM_S8_UINT"; - case DXGI_FORMAT_R24_UNORM_X8_TYPELESS: return "DXGI_FORMAT_R24_UNORM_X8_TYPELESS"; - case DXGI_FORMAT_X24_TYPELESS_G8_UINT: return "DXGI_FORMAT_X24_TYPELESS_G8_UINT"; - case DXGI_FORMAT_R8G8_TYPELESS: return "DXGI_FORMAT_R8G8_TYPELESS"; - case DXGI_FORMAT_R8G8_UNORM: return "DXGI_FORMAT_R8G8_UNORM"; - case DXGI_FORMAT_R8G8_UINT: return "DXGI_FORMAT_R8G8_UINT"; - case DXGI_FORMAT_R8G8_SNORM: return "DXGI_FORMAT_R8G8_SNORM"; - case DXGI_FORMAT_R8G8_SINT: return "DXGI_FORMAT_R8G8_SINT"; - case DXGI_FORMAT_R16_TYPELESS: return "DXGI_FORMAT_R16_TYPELESS"; - case DXGI_FORMAT_R16_FLOAT: return "DXGI_FORMAT_R16_FLOAT"; - case DXGI_FORMAT_D16_UNORM: return "DXGI_FORMAT_D16_UNORM"; - case DXGI_FORMAT_R16_UNORM: return "DXGI_FORMAT_R16_UNORM"; - case DXGI_FORMAT_R16_UINT: return "DXGI_FORMAT_R16_UINT"; - case DXGI_FORMAT_R16_SNORM: return "DXGI_FORMAT_R16_SNORM"; - case DXGI_FORMAT_R16_SINT: return "DXGI_FORMAT_R16_SINT"; - case DXGI_FORMAT_R8_TYPELESS: return "DXGI_FORMAT_R8_TYPELESS"; - case DXGI_FORMAT_R8_UNORM: return "DXGI_FORMAT_R8_UNORM"; - case DXGI_FORMAT_R8_UINT: return "DXGI_FORMAT_R8_UINT"; - case DXGI_FORMAT_R8_SNORM: return "DXGI_FORMAT_R8_SNORM"; - case DXGI_FORMAT_R8_SINT: return "DXGI_FORMAT_R8_SINT"; - case DXGI_FORMAT_A8_UNORM: return "DXGI_FORMAT_A8_UNORM"; - case DXGI_FORMAT_R1_UNORM: return "DXGI_FORMAT_R1_UNORM"; - case DXGI_FORMAT_R9G9B9E5_SHAREDEXP: return "DXGI_FORMAT_R9G9B9E5_SHAREDEXP"; - case DXGI_FORMAT_R8G8_B8G8_UNORM: return "DXGI_FORMAT_R8G8_B8G8_UNORM"; - case DXGI_FORMAT_G8R8_G8B8_UNORM: return "DXGI_FORMAT_G8R8_G8B8_UNORM"; - case DXGI_FORMAT_BC1_TYPELESS: return "DXGI_FORMAT_BC1_TYPELESS"; - case DXGI_FORMAT_BC1_UNORM: return "DXGI_FORMAT_BC1_UNORM"; - case DXGI_FORMAT_BC1_UNORM_SRGB: return "DXGI_FORMAT_BC1_UNORM_SRGB"; - case DXGI_FORMAT_BC2_TYPELESS: return "DXGI_FORMAT_BC2_TYPELESS"; - case DXGI_FORMAT_BC2_UNORM: return "DXGI_FORMAT_BC2_UNORM"; - case DXGI_FORMAT_BC2_UNORM_SRGB: return "DXGI_FORMAT_BC2_UNORM_SRGB"; - case DXGI_FORMAT_BC3_TYPELESS: return "DXGI_FORMAT_BC3_TYPELESS"; - case DXGI_FORMAT_BC3_UNORM: return "DXGI_FORMAT_BC3_UNORM"; - case DXGI_FORMAT_BC3_UNORM_SRGB: return "DXGI_FORMAT_BC3_UNORM_SRGB"; - case DXGI_FORMAT_BC4_TYPELESS: return "DXGI_FORMAT_BC4_TYPELESS"; - case DXGI_FORMAT_BC4_UNORM: return "DXGI_FORMAT_BC4_UNORM"; - case DXGI_FORMAT_BC4_SNORM: return "DXGI_FORMAT_BC4_SNORM"; - case DXGI_FORMAT_BC5_TYPELESS: return "DXGI_FORMAT_BC5_TYPELESS"; - case DXGI_FORMAT_BC5_UNORM: return "DXGI_FORMAT_BC5_UNORM"; - case DXGI_FORMAT_BC5_SNORM: return "DXGI_FORMAT_BC5_SNORM"; - case DXGI_FORMAT_B5G6R5_UNORM: return "DXGI_FORMAT_B5G6R5_UNORM"; - case DXGI_FORMAT_B5G5R5A1_UNORM: return "DXGI_FORMAT_B5G5R5A1_UNORM"; - case DXGI_FORMAT_B8G8R8A8_UNORM: return "DXGI_FORMAT_B8G8R8A8_UNORM"; - case DXGI_FORMAT_B8G8R8X8_UNORM: return "DXGI_FORMAT_B8G8R8X8_UNORM"; - case DXGI_FORMAT_R10G10B10_XR_BIAS_A2_UNORM: return "DXGI_FORMAT_R10G10B10_XR_BIAS_A2_UNORM"; - case DXGI_FORMAT_B8G8R8A8_TYPELESS: return "DXGI_FORMAT_B8G8R8A8_TYPELESS"; - case DXGI_FORMAT_B8G8R8A8_UNORM_SRGB: return "DXGI_FORMAT_B8G8R8A8_UNORM_SRGB"; - case DXGI_FORMAT_B8G8R8X8_TYPELESS: return "DXGI_FORMAT_B8G8R8X8_TYPELESS"; - case DXGI_FORMAT_B8G8R8X8_UNORM_SRGB: return "DXGI_FORMAT_B8G8R8X8_UNORM_SRGB"; - case DXGI_FORMAT_BC6H_TYPELESS: return "DXGI_FORMAT_BC6H_TYPELESS"; - case DXGI_FORMAT_BC6H_UF16: return "DXGI_FORMAT_BC6H_UF16"; - case DXGI_FORMAT_BC6H_SF16: return "DXGI_FORMAT_BC6H_SF16"; - case DXGI_FORMAT_BC7_TYPELESS: return "DXGI_FORMAT_BC7_TYPELESS"; - case DXGI_FORMAT_BC7_UNORM: return "DXGI_FORMAT_BC7_UNORM"; - case DXGI_FORMAT_BC7_UNORM_SRGB: return "DXGI_FORMAT_BC7_UNORM_SRGB"; - case DXGI_FORMAT_AYUV: return "DXGI_FORMAT_AYUV"; - case DXGI_FORMAT_Y410: return "DXGI_FORMAT_Y410"; - case DXGI_FORMAT_Y416: return "DXGI_FORMAT_Y416"; - case DXGI_FORMAT_NV12: return "DXGI_FORMAT_NV12"; - case DXGI_FORMAT_P010: return "DXGI_FORMAT_P010"; - case DXGI_FORMAT_P016: return "DXGI_FORMAT_P016"; - case DXGI_FORMAT_420_OPAQUE: return "DXGI_FORMAT_420_OPAQUE"; - case DXGI_FORMAT_YUY2: return "DXGI_FORMAT_YUY2"; - case DXGI_FORMAT_Y210: return "DXGI_FORMAT_Y210"; - case DXGI_FORMAT_Y216: return "DXGI_FORMAT_Y216"; - case DXGI_FORMAT_NV11: return "DXGI_FORMAT_NV11"; - case DXGI_FORMAT_AI44: return "DXGI_FORMAT_AI44"; - case DXGI_FORMAT_IA44: return "DXGI_FORMAT_IA44"; - case DXGI_FORMAT_P8: return "DXGI_FORMAT_P8"; - case DXGI_FORMAT_A8P8: return "DXGI_FORMAT_A8P8"; - case DXGI_FORMAT_B4G4R4A4_UNORM: return "DXGI_FORMAT_B4G4R4A4_UNORM"; - case DXGI_FORMAT_P208: return "DXGI_FORMAT_P208"; - case DXGI_FORMAT_V208: return "DXGI_FORMAT_V208"; - case DXGI_FORMAT_V408: return "DXGI_FORMAT_V408"; - case DXGI_FORMAT_SAMPLER_FEEDBACK_MIN_MIP_OPAQUE: return "DXGI_FORMAT_SAMPLER_FEEDBACK_MIN_MIP_OPAQUE"; - case DXGI_FORMAT_SAMPLER_FEEDBACK_MIP_REGION_USED_OPAQUE: return "DXGI_FORMAT_SAMPLER_FEEDBACK_MIP_REGION_USED_OPAQUE"; - case DXGI_FORMAT_FORCE_UINT: return "DXGI_FORMAT_FORCE_UINT"; - default: break; - } - return "Unhandled DXGI_FORMAT"; -} - -std::string ToString(const DXGI_MODE_SCANLINE_ORDER& value) -{ - switch (value) { - case DXGI_MODE_SCANLINE_ORDER_UNSPECIFIED: return "DXGI_MODE_SCANLINE_ORDER_UNSPECIFIED"; - case DXGI_MODE_SCANLINE_ORDER_PROGRESSIVE: return "DXGI_MODE_SCANLINE_ORDER_PROGRESSIVE"; - case DXGI_MODE_SCANLINE_ORDER_UPPER_FIELD_FIRST: return "DXGI_MODE_SCANLINE_ORDER_UPPER_FIELD_FIRST"; - case DXGI_MODE_SCANLINE_ORDER_LOWER_FIELD_FIRST: return "DXGI_MODE_SCANLINE_ORDER_LOWER_FIELD_FIRST"; - default: break; - } - return "Unhandled DXGI_MODE_SCANLINE_ORDER"; -} - -std::string ToString(const DXGI_MODE_SCALING& value) -{ - switch (value) { - case DXGI_MODE_SCALING_UNSPECIFIED: return "DXGI_MODE_SCALING_UNSPECIFIED"; - case DXGI_MODE_SCALING_CENTERED: return "DXGI_MODE_SCALING_CENTERED"; - case DXGI_MODE_SCALING_STRETCHED: return "DXGI_MODE_SCALING_STRETCHED"; - default: break; - } - return "Unhandled DXGI_MODE_SCALING"; -} - -std::string ToString(const DXGI_MODE_ROTATION& value) -{ - switch (value) { - case DXGI_MODE_ROTATION_UNSPECIFIED: return "DXGI_MODE_ROTATION_UNSPECIFIED"; - case DXGI_MODE_ROTATION_IDENTITY: return "DXGI_MODE_ROTATION_IDENTITY"; - case DXGI_MODE_ROTATION_ROTATE90: return "DXGI_MODE_ROTATION_ROTATE90"; - case DXGI_MODE_ROTATION_ROTATE180: return "DXGI_MODE_ROTATION_ROTATE180"; - case DXGI_MODE_ROTATION_ROTATE270: return "DXGI_MODE_ROTATION_ROTATE270"; - default: break; - } - return "Unhandled DXGI_MODE_ROTATION"; -} - -std::string ToString(const D3D12_COMMAND_LIST_TYPE& value) -{ - switch (value) { - case D3D12_COMMAND_LIST_TYPE_DIRECT: return "D3D12_COMMAND_LIST_TYPE_DIRECT"; - case D3D12_COMMAND_LIST_TYPE_BUNDLE: return "D3D12_COMMAND_LIST_TYPE_BUNDLE"; - case D3D12_COMMAND_LIST_TYPE_COMPUTE: return "D3D12_COMMAND_LIST_TYPE_COMPUTE"; - case D3D12_COMMAND_LIST_TYPE_COPY: return "D3D12_COMMAND_LIST_TYPE_COPY"; - case D3D12_COMMAND_LIST_TYPE_VIDEO_DECODE: return "D3D12_COMMAND_LIST_TYPE_VIDEO_DECODE"; - case D3D12_COMMAND_LIST_TYPE_VIDEO_PROCESS: return "D3D12_COMMAND_LIST_TYPE_VIDEO_PROCESS"; - case D3D12_COMMAND_LIST_TYPE_VIDEO_ENCODE: return "D3D12_COMMAND_LIST_TYPE_VIDEO_ENCODE"; - case D3D12_COMMAND_LIST_TYPE_NONE: return "D3D12_COMMAND_LIST_TYPE_NONE"; - default: break; +std::string ToString(const DXGI_GPU_PREFERENCE value) +{ + const char* ret = "Unhandled DXGI_GPU_PREFERENCE"; + switch (value) { + case DXGI_GPU_PREFERENCE_UNSPECIFIED: ret = "DXGI_GPU_PREFERENCE_UNSPECIFIED"; break; + case DXGI_GPU_PREFERENCE_MINIMUM_POWER: ret = "DXGI_GPU_PREFERENCE_MINIMUM_POWER"; break; + case DXGI_GPU_PREFERENCE_HIGH_PERFORMANCE: ret = "DXGI_GPU_PREFERENCE_HIGH_PERFORMANCE"; break; + } + return ret; +} + +std::string ToString(const DXGI_COLOR_SPACE_TYPE value) +{ + const char* ret = "Unhandled DXGI_COLOR_SPACE_TYPE"; + switch (value) { + case DXGI_COLOR_SPACE_RGB_FULL_G22_NONE_P709: ret = "DXGI_COLOR_SPACE_RGB_FULL_G22_NONE_P709"; break; + case DXGI_COLOR_SPACE_RGB_FULL_G10_NONE_P709: ret = "DXGI_COLOR_SPACE_RGB_FULL_G10_NONE_P709"; break; + case DXGI_COLOR_SPACE_RGB_STUDIO_G22_NONE_P709: ret = "DXGI_COLOR_SPACE_RGB_STUDIO_G22_NONE_P709"; break; + case DXGI_COLOR_SPACE_RGB_STUDIO_G22_NONE_P2020: ret = "DXGI_COLOR_SPACE_RGB_STUDIO_G22_NONE_P2020"; break; + case DXGI_COLOR_SPACE_RESERVED: ret = "DXGI_COLOR_SPACE_RESERVED"; break; + case DXGI_COLOR_SPACE_YCBCR_FULL_G22_NONE_P709_X601: ret = "DXGI_COLOR_SPACE_YCBCR_FULL_G22_NONE_P709_X601"; break; + case DXGI_COLOR_SPACE_YCBCR_STUDIO_G22_LEFT_P601: ret = "DXGI_COLOR_SPACE_YCBCR_STUDIO_G22_LEFT_P601"; break; + case DXGI_COLOR_SPACE_YCBCR_FULL_G22_LEFT_P601: ret = "DXGI_COLOR_SPACE_YCBCR_FULL_G22_LEFT_P601"; break; + case DXGI_COLOR_SPACE_YCBCR_STUDIO_G22_LEFT_P709: ret = "DXGI_COLOR_SPACE_YCBCR_STUDIO_G22_LEFT_P709"; break; + case DXGI_COLOR_SPACE_YCBCR_FULL_G22_LEFT_P709: ret = "DXGI_COLOR_SPACE_YCBCR_FULL_G22_LEFT_P709"; break; + case DXGI_COLOR_SPACE_YCBCR_STUDIO_G22_LEFT_P2020: ret = "DXGI_COLOR_SPACE_YCBCR_STUDIO_G22_LEFT_P2020"; break; + case DXGI_COLOR_SPACE_YCBCR_FULL_G22_LEFT_P2020: ret = "DXGI_COLOR_SPACE_YCBCR_FULL_G22_LEFT_P2020"; break; + case DXGI_COLOR_SPACE_RGB_FULL_G2084_NONE_P2020: ret = "DXGI_COLOR_SPACE_RGB_FULL_G2084_NONE_P2020"; break; + case DXGI_COLOR_SPACE_YCBCR_STUDIO_G2084_LEFT_P2020: ret = "DXGI_COLOR_SPACE_YCBCR_STUDIO_G2084_LEFT_P2020"; break; + case DXGI_COLOR_SPACE_RGB_STUDIO_G2084_NONE_P2020: ret = "DXGI_COLOR_SPACE_RGB_STUDIO_G2084_NONE_P2020"; break; + case DXGI_COLOR_SPACE_YCBCR_STUDIO_G22_TOPLEFT_P2020: ret = "DXGI_COLOR_SPACE_YCBCR_STUDIO_G22_TOPLEFT_P2020"; break; + case DXGI_COLOR_SPACE_YCBCR_STUDIO_G2084_TOPLEFT_P2020: ret = "DXGI_COLOR_SPACE_YCBCR_STUDIO_G2084_TOPLEFT_P2020"; break; + case DXGI_COLOR_SPACE_RGB_FULL_G22_NONE_P2020: ret = "DXGI_COLOR_SPACE_RGB_FULL_G22_NONE_P2020"; break; + case DXGI_COLOR_SPACE_YCBCR_STUDIO_GHLG_TOPLEFT_P2020: ret = "DXGI_COLOR_SPACE_YCBCR_STUDIO_GHLG_TOPLEFT_P2020"; break; + case DXGI_COLOR_SPACE_YCBCR_FULL_GHLG_TOPLEFT_P2020: ret = "DXGI_COLOR_SPACE_YCBCR_FULL_GHLG_TOPLEFT_P2020"; break; + case DXGI_COLOR_SPACE_RGB_STUDIO_G24_NONE_P709: ret = "DXGI_COLOR_SPACE_RGB_STUDIO_G24_NONE_P709"; break; + case DXGI_COLOR_SPACE_RGB_STUDIO_G24_NONE_P2020: ret = "DXGI_COLOR_SPACE_RGB_STUDIO_G24_NONE_P2020"; break; + case DXGI_COLOR_SPACE_YCBCR_STUDIO_G24_LEFT_P709: ret = "DXGI_COLOR_SPACE_YCBCR_STUDIO_G24_LEFT_P709"; break; + case DXGI_COLOR_SPACE_YCBCR_STUDIO_G24_LEFT_P2020: ret = "DXGI_COLOR_SPACE_YCBCR_STUDIO_G24_LEFT_P2020"; break; + case DXGI_COLOR_SPACE_YCBCR_STUDIO_G24_TOPLEFT_P2020: ret = "DXGI_COLOR_SPACE_YCBCR_STUDIO_G24_TOPLEFT_P2020"; break; + case DXGI_COLOR_SPACE_CUSTOM: ret = "DXGI_COLOR_SPACE_CUSTOM"; break; + } + return ret; +} + +std::string ToString(const DXGI_FORMAT value) +{ + const char* ret = "Unhandled DXGI_FORMAT"; + switch (value) { + case DXGI_FORMAT_UNKNOWN: ret = "DXGI_FORMAT_UNKNOWN"; break; + case DXGI_FORMAT_R32G32B32A32_TYPELESS: ret = "DXGI_FORMAT_R32G32B32A32_TYPELESS"; break; + case DXGI_FORMAT_R32G32B32A32_FLOAT: ret = "DXGI_FORMAT_R32G32B32A32_FLOAT"; break; + case DXGI_FORMAT_R32G32B32A32_UINT: ret = "DXGI_FORMAT_R32G32B32A32_UINT"; break; + case DXGI_FORMAT_R32G32B32A32_SINT: ret = "DXGI_FORMAT_R32G32B32A32_SINT"; break; + case DXGI_FORMAT_R32G32B32_TYPELESS: ret = "DXGI_FORMAT_R32G32B32_TYPELESS"; break; + case DXGI_FORMAT_R32G32B32_FLOAT: ret = "DXGI_FORMAT_R32G32B32_FLOAT"; break; + case DXGI_FORMAT_R32G32B32_UINT: ret = "DXGI_FORMAT_R32G32B32_UINT"; break; + case DXGI_FORMAT_R32G32B32_SINT: ret = "DXGI_FORMAT_R32G32B32_SINT"; break; + case DXGI_FORMAT_R16G16B16A16_TYPELESS: ret = "DXGI_FORMAT_R16G16B16A16_TYPELESS"; break; + case DXGI_FORMAT_R16G16B16A16_FLOAT: ret = "DXGI_FORMAT_R16G16B16A16_FLOAT"; break; + case DXGI_FORMAT_R16G16B16A16_UNORM: ret = "DXGI_FORMAT_R16G16B16A16_UNORM"; break; + case DXGI_FORMAT_R16G16B16A16_UINT: ret = "DXGI_FORMAT_R16G16B16A16_UINT"; break; + case DXGI_FORMAT_R16G16B16A16_SNORM: ret = "DXGI_FORMAT_R16G16B16A16_SNORM"; break; + case DXGI_FORMAT_R16G16B16A16_SINT: ret = "DXGI_FORMAT_R16G16B16A16_SINT"; break; + case DXGI_FORMAT_R32G32_TYPELESS: ret = "DXGI_FORMAT_R32G32_TYPELESS"; break; + case DXGI_FORMAT_R32G32_FLOAT: ret = "DXGI_FORMAT_R32G32_FLOAT"; break; + case DXGI_FORMAT_R32G32_UINT: ret = "DXGI_FORMAT_R32G32_UINT"; break; + case DXGI_FORMAT_R32G32_SINT: ret = "DXGI_FORMAT_R32G32_SINT"; break; + case DXGI_FORMAT_R32G8X24_TYPELESS: ret = "DXGI_FORMAT_R32G8X24_TYPELESS"; break; + case DXGI_FORMAT_D32_FLOAT_S8X24_UINT: ret = "DXGI_FORMAT_D32_FLOAT_S8X24_UINT"; break; + case DXGI_FORMAT_R32_FLOAT_X8X24_TYPELESS: ret = "DXGI_FORMAT_R32_FLOAT_X8X24_TYPELESS"; break; + case DXGI_FORMAT_X32_TYPELESS_G8X24_UINT: ret = "DXGI_FORMAT_X32_TYPELESS_G8X24_UINT"; break; + case DXGI_FORMAT_R10G10B10A2_TYPELESS: ret = "DXGI_FORMAT_R10G10B10A2_TYPELESS"; break; + case DXGI_FORMAT_R10G10B10A2_UNORM: ret = "DXGI_FORMAT_R10G10B10A2_UNORM"; break; + case DXGI_FORMAT_R10G10B10A2_UINT: ret = "DXGI_FORMAT_R10G10B10A2_UINT"; break; + case DXGI_FORMAT_R11G11B10_FLOAT: ret = "DXGI_FORMAT_R11G11B10_FLOAT"; break; + case DXGI_FORMAT_R8G8B8A8_TYPELESS: ret = "DXGI_FORMAT_R8G8B8A8_TYPELESS"; break; + case DXGI_FORMAT_R8G8B8A8_UNORM: ret = "DXGI_FORMAT_R8G8B8A8_UNORM"; break; + case DXGI_FORMAT_R8G8B8A8_UNORM_SRGB: ret = "DXGI_FORMAT_R8G8B8A8_UNORM_SRGB"; break; + case DXGI_FORMAT_R8G8B8A8_UINT: ret = "DXGI_FORMAT_R8G8B8A8_UINT"; break; + case DXGI_FORMAT_R8G8B8A8_SNORM: ret = "DXGI_FORMAT_R8G8B8A8_SNORM"; break; + case DXGI_FORMAT_R8G8B8A8_SINT: ret = "DXGI_FORMAT_R8G8B8A8_SINT"; break; + case DXGI_FORMAT_R16G16_TYPELESS: ret = "DXGI_FORMAT_R16G16_TYPELESS"; break; + case DXGI_FORMAT_R16G16_FLOAT: ret = "DXGI_FORMAT_R16G16_FLOAT"; break; + case DXGI_FORMAT_R16G16_UNORM: ret = "DXGI_FORMAT_R16G16_UNORM"; break; + case DXGI_FORMAT_R16G16_UINT: ret = "DXGI_FORMAT_R16G16_UINT"; break; + case DXGI_FORMAT_R16G16_SNORM: ret = "DXGI_FORMAT_R16G16_SNORM"; break; + case DXGI_FORMAT_R16G16_SINT: ret = "DXGI_FORMAT_R16G16_SINT"; break; + case DXGI_FORMAT_R32_TYPELESS: ret = "DXGI_FORMAT_R32_TYPELESS"; break; + case DXGI_FORMAT_D32_FLOAT: ret = "DXGI_FORMAT_D32_FLOAT"; break; + case DXGI_FORMAT_R32_FLOAT: ret = "DXGI_FORMAT_R32_FLOAT"; break; + case DXGI_FORMAT_R32_UINT: ret = "DXGI_FORMAT_R32_UINT"; break; + case DXGI_FORMAT_R32_SINT: ret = "DXGI_FORMAT_R32_SINT"; break; + case DXGI_FORMAT_R24G8_TYPELESS: ret = "DXGI_FORMAT_R24G8_TYPELESS"; break; + case DXGI_FORMAT_D24_UNORM_S8_UINT: ret = "DXGI_FORMAT_D24_UNORM_S8_UINT"; break; + case DXGI_FORMAT_R24_UNORM_X8_TYPELESS: ret = "DXGI_FORMAT_R24_UNORM_X8_TYPELESS"; break; + case DXGI_FORMAT_X24_TYPELESS_G8_UINT: ret = "DXGI_FORMAT_X24_TYPELESS_G8_UINT"; break; + case DXGI_FORMAT_R8G8_TYPELESS: ret = "DXGI_FORMAT_R8G8_TYPELESS"; break; + case DXGI_FORMAT_R8G8_UNORM: ret = "DXGI_FORMAT_R8G8_UNORM"; break; + case DXGI_FORMAT_R8G8_UINT: ret = "DXGI_FORMAT_R8G8_UINT"; break; + case DXGI_FORMAT_R8G8_SNORM: ret = "DXGI_FORMAT_R8G8_SNORM"; break; + case DXGI_FORMAT_R8G8_SINT: ret = "DXGI_FORMAT_R8G8_SINT"; break; + case DXGI_FORMAT_R16_TYPELESS: ret = "DXGI_FORMAT_R16_TYPELESS"; break; + case DXGI_FORMAT_R16_FLOAT: ret = "DXGI_FORMAT_R16_FLOAT"; break; + case DXGI_FORMAT_D16_UNORM: ret = "DXGI_FORMAT_D16_UNORM"; break; + case DXGI_FORMAT_R16_UNORM: ret = "DXGI_FORMAT_R16_UNORM"; break; + case DXGI_FORMAT_R16_UINT: ret = "DXGI_FORMAT_R16_UINT"; break; + case DXGI_FORMAT_R16_SNORM: ret = "DXGI_FORMAT_R16_SNORM"; break; + case DXGI_FORMAT_R16_SINT: ret = "DXGI_FORMAT_R16_SINT"; break; + case DXGI_FORMAT_R8_TYPELESS: ret = "DXGI_FORMAT_R8_TYPELESS"; break; + case DXGI_FORMAT_R8_UNORM: ret = "DXGI_FORMAT_R8_UNORM"; break; + case DXGI_FORMAT_R8_UINT: ret = "DXGI_FORMAT_R8_UINT"; break; + case DXGI_FORMAT_R8_SNORM: ret = "DXGI_FORMAT_R8_SNORM"; break; + case DXGI_FORMAT_R8_SINT: ret = "DXGI_FORMAT_R8_SINT"; break; + case DXGI_FORMAT_A8_UNORM: ret = "DXGI_FORMAT_A8_UNORM"; break; + case DXGI_FORMAT_R1_UNORM: ret = "DXGI_FORMAT_R1_UNORM"; break; + case DXGI_FORMAT_R9G9B9E5_SHAREDEXP: ret = "DXGI_FORMAT_R9G9B9E5_SHAREDEXP"; break; + case DXGI_FORMAT_R8G8_B8G8_UNORM: ret = "DXGI_FORMAT_R8G8_B8G8_UNORM"; break; + case DXGI_FORMAT_G8R8_G8B8_UNORM: ret = "DXGI_FORMAT_G8R8_G8B8_UNORM"; break; + case DXGI_FORMAT_BC1_TYPELESS: ret = "DXGI_FORMAT_BC1_TYPELESS"; break; + case DXGI_FORMAT_BC1_UNORM: ret = "DXGI_FORMAT_BC1_UNORM"; break; + case DXGI_FORMAT_BC1_UNORM_SRGB: ret = "DXGI_FORMAT_BC1_UNORM_SRGB"; break; + case DXGI_FORMAT_BC2_TYPELESS: ret = "DXGI_FORMAT_BC2_TYPELESS"; break; + case DXGI_FORMAT_BC2_UNORM: ret = "DXGI_FORMAT_BC2_UNORM"; break; + case DXGI_FORMAT_BC2_UNORM_SRGB: ret = "DXGI_FORMAT_BC2_UNORM_SRGB"; break; + case DXGI_FORMAT_BC3_TYPELESS: ret = "DXGI_FORMAT_BC3_TYPELESS"; break; + case DXGI_FORMAT_BC3_UNORM: ret = "DXGI_FORMAT_BC3_UNORM"; break; + case DXGI_FORMAT_BC3_UNORM_SRGB: ret = "DXGI_FORMAT_BC3_UNORM_SRGB"; break; + case DXGI_FORMAT_BC4_TYPELESS: ret = "DXGI_FORMAT_BC4_TYPELESS"; break; + case DXGI_FORMAT_BC4_UNORM: ret = "DXGI_FORMAT_BC4_UNORM"; break; + case DXGI_FORMAT_BC4_SNORM: ret = "DXGI_FORMAT_BC4_SNORM"; break; + case DXGI_FORMAT_BC5_TYPELESS: ret = "DXGI_FORMAT_BC5_TYPELESS"; break; + case DXGI_FORMAT_BC5_UNORM: ret = "DXGI_FORMAT_BC5_UNORM"; break; + case DXGI_FORMAT_BC5_SNORM: ret = "DXGI_FORMAT_BC5_SNORM"; break; + case DXGI_FORMAT_B5G6R5_UNORM: ret = "DXGI_FORMAT_B5G6R5_UNORM"; break; + case DXGI_FORMAT_B5G5R5A1_UNORM: ret = "DXGI_FORMAT_B5G5R5A1_UNORM"; break; + case DXGI_FORMAT_B8G8R8A8_UNORM: ret = "DXGI_FORMAT_B8G8R8A8_UNORM"; break; + case DXGI_FORMAT_B8G8R8X8_UNORM: ret = "DXGI_FORMAT_B8G8R8X8_UNORM"; break; + case DXGI_FORMAT_R10G10B10_XR_BIAS_A2_UNORM: ret = "DXGI_FORMAT_R10G10B10_XR_BIAS_A2_UNORM"; break; + case DXGI_FORMAT_B8G8R8A8_TYPELESS: ret = "DXGI_FORMAT_B8G8R8A8_TYPELESS"; break; + case DXGI_FORMAT_B8G8R8A8_UNORM_SRGB: ret = "DXGI_FORMAT_B8G8R8A8_UNORM_SRGB"; break; + case DXGI_FORMAT_B8G8R8X8_TYPELESS: ret = "DXGI_FORMAT_B8G8R8X8_TYPELESS"; break; + case DXGI_FORMAT_B8G8R8X8_UNORM_SRGB: ret = "DXGI_FORMAT_B8G8R8X8_UNORM_SRGB"; break; + case DXGI_FORMAT_BC6H_TYPELESS: ret = "DXGI_FORMAT_BC6H_TYPELESS"; break; + case DXGI_FORMAT_BC6H_UF16: ret = "DXGI_FORMAT_BC6H_UF16"; break; + case DXGI_FORMAT_BC6H_SF16: ret = "DXGI_FORMAT_BC6H_SF16"; break; + case DXGI_FORMAT_BC7_TYPELESS: ret = "DXGI_FORMAT_BC7_TYPELESS"; break; + case DXGI_FORMAT_BC7_UNORM: ret = "DXGI_FORMAT_BC7_UNORM"; break; + case DXGI_FORMAT_BC7_UNORM_SRGB: ret = "DXGI_FORMAT_BC7_UNORM_SRGB"; break; + case DXGI_FORMAT_AYUV: ret = "DXGI_FORMAT_AYUV"; break; + case DXGI_FORMAT_Y410: ret = "DXGI_FORMAT_Y410"; break; + case DXGI_FORMAT_Y416: ret = "DXGI_FORMAT_Y416"; break; + case DXGI_FORMAT_NV12: ret = "DXGI_FORMAT_NV12"; break; + case DXGI_FORMAT_P010: ret = "DXGI_FORMAT_P010"; break; + case DXGI_FORMAT_P016: ret = "DXGI_FORMAT_P016"; break; + case DXGI_FORMAT_420_OPAQUE: ret = "DXGI_FORMAT_420_OPAQUE"; break; + case DXGI_FORMAT_YUY2: ret = "DXGI_FORMAT_YUY2"; break; + case DXGI_FORMAT_Y210: ret = "DXGI_FORMAT_Y210"; break; + case DXGI_FORMAT_Y216: ret = "DXGI_FORMAT_Y216"; break; + case DXGI_FORMAT_NV11: ret = "DXGI_FORMAT_NV11"; break; + case DXGI_FORMAT_AI44: ret = "DXGI_FORMAT_AI44"; break; + case DXGI_FORMAT_IA44: ret = "DXGI_FORMAT_IA44"; break; + case DXGI_FORMAT_P8: ret = "DXGI_FORMAT_P8"; break; + case DXGI_FORMAT_A8P8: ret = "DXGI_FORMAT_A8P8"; break; + case DXGI_FORMAT_B4G4R4A4_UNORM: ret = "DXGI_FORMAT_B4G4R4A4_UNORM"; break; + case DXGI_FORMAT_P208: ret = "DXGI_FORMAT_P208"; break; + case DXGI_FORMAT_V208: ret = "DXGI_FORMAT_V208"; break; + case DXGI_FORMAT_V408: ret = "DXGI_FORMAT_V408"; break; + case DXGI_FORMAT_SAMPLER_FEEDBACK_MIN_MIP_OPAQUE: ret = "DXGI_FORMAT_SAMPLER_FEEDBACK_MIN_MIP_OPAQUE"; break; + case DXGI_FORMAT_SAMPLER_FEEDBACK_MIP_REGION_USED_OPAQUE: ret = "DXGI_FORMAT_SAMPLER_FEEDBACK_MIP_REGION_USED_OPAQUE"; break; + case DXGI_FORMAT_FORCE_UINT: ret = "DXGI_FORMAT_FORCE_UINT"; break; + } + return ret; +} + +std::string ToString(const DXGI_MODE_SCANLINE_ORDER value) +{ + const char* ret = "Unhandled DXGI_MODE_SCANLINE_ORDER"; + switch (value) { + case DXGI_MODE_SCANLINE_ORDER_UNSPECIFIED: ret = "DXGI_MODE_SCANLINE_ORDER_UNSPECIFIED"; break; + case DXGI_MODE_SCANLINE_ORDER_PROGRESSIVE: ret = "DXGI_MODE_SCANLINE_ORDER_PROGRESSIVE"; break; + case DXGI_MODE_SCANLINE_ORDER_UPPER_FIELD_FIRST: ret = "DXGI_MODE_SCANLINE_ORDER_UPPER_FIELD_FIRST"; break; + case DXGI_MODE_SCANLINE_ORDER_LOWER_FIELD_FIRST: ret = "DXGI_MODE_SCANLINE_ORDER_LOWER_FIELD_FIRST"; break; + } + return ret; +} + +std::string ToString(const DXGI_MODE_SCALING value) +{ + const char* ret = "Unhandled DXGI_MODE_SCALING"; + switch (value) { + case DXGI_MODE_SCALING_UNSPECIFIED: ret = "DXGI_MODE_SCALING_UNSPECIFIED"; break; + case DXGI_MODE_SCALING_CENTERED: ret = "DXGI_MODE_SCALING_CENTERED"; break; + case DXGI_MODE_SCALING_STRETCHED: ret = "DXGI_MODE_SCALING_STRETCHED"; break; + } + return ret; +} + +std::string ToString(const DXGI_MODE_ROTATION value) +{ + const char* ret = "Unhandled DXGI_MODE_ROTATION"; + switch (value) { + case DXGI_MODE_ROTATION_UNSPECIFIED: ret = "DXGI_MODE_ROTATION_UNSPECIFIED"; break; + case DXGI_MODE_ROTATION_IDENTITY: ret = "DXGI_MODE_ROTATION_IDENTITY"; break; + case DXGI_MODE_ROTATION_ROTATE90: ret = "DXGI_MODE_ROTATION_ROTATE90"; break; + case DXGI_MODE_ROTATION_ROTATE180: ret = "DXGI_MODE_ROTATION_ROTATE180"; break; + case DXGI_MODE_ROTATION_ROTATE270: ret = "DXGI_MODE_ROTATION_ROTATE270"; break; + } + return ret; +} + +std::string ToString(const D3D12_COMMAND_LIST_TYPE value) +{ + const char* ret = "Unhandled D3D12_COMMAND_LIST_TYPE"; + switch (value) { + case D3D12_COMMAND_LIST_TYPE_DIRECT: ret = "D3D12_COMMAND_LIST_TYPE_DIRECT"; break; + case D3D12_COMMAND_LIST_TYPE_BUNDLE: ret = "D3D12_COMMAND_LIST_TYPE_BUNDLE"; break; + case D3D12_COMMAND_LIST_TYPE_COMPUTE: ret = "D3D12_COMMAND_LIST_TYPE_COMPUTE"; break; + case D3D12_COMMAND_LIST_TYPE_COPY: ret = "D3D12_COMMAND_LIST_TYPE_COPY"; break; + case D3D12_COMMAND_LIST_TYPE_VIDEO_DECODE: ret = "D3D12_COMMAND_LIST_TYPE_VIDEO_DECODE"; break; + case D3D12_COMMAND_LIST_TYPE_VIDEO_PROCESS: ret = "D3D12_COMMAND_LIST_TYPE_VIDEO_PROCESS"; break; + case D3D12_COMMAND_LIST_TYPE_VIDEO_ENCODE: ret = "D3D12_COMMAND_LIST_TYPE_VIDEO_ENCODE"; break; + case D3D12_COMMAND_LIST_TYPE_NONE: ret = "D3D12_COMMAND_LIST_TYPE_NONE"; break; } - return "Unhandled D3D12_COMMAND_LIST_TYPE"; + return ret; } -std::string ToString(const D3D12_COMMAND_QUEUE_FLAGS& value) +std::string ToString(const D3D12_COMMAND_QUEUE_FLAGS value) { + const char* ret = "Unhandled D3D12_COMMAND_QUEUE_FLAGS"; switch (value) { - case D3D12_COMMAND_QUEUE_FLAG_NONE: return "D3D12_COMMAND_QUEUE_FLAG_NONE"; - case D3D12_COMMAND_QUEUE_FLAG_DISABLE_GPU_TIMEOUT: return "D3D12_COMMAND_QUEUE_FLAG_DISABLE_GPU_TIMEOUT"; - default: break; + case D3D12_COMMAND_QUEUE_FLAG_NONE: ret = "D3D12_COMMAND_QUEUE_FLAG_NONE"; break; + case D3D12_COMMAND_QUEUE_FLAG_DISABLE_GPU_TIMEOUT: ret = "D3D12_COMMAND_QUEUE_FLAG_DISABLE_GPU_TIMEOUT"; break; } - return "Unhandled D3D12_COMMAND_QUEUE_FLAGS"; + return ret; } -std::string ToString_D3D12_COMMAND_QUEUE_FLAGS(uint32_t flags) +std::string ToString_D3D12_COMMAND_QUEUE_FLAGS(const uint32_t flags) { return BitmaskToString(flags); } -std::string ToString(const D3D12_COMMAND_QUEUE_PRIORITY& value) +std::string ToString(const D3D12_COMMAND_QUEUE_PRIORITY value) { + const char* ret = "Unhandled D3D12_COMMAND_QUEUE_PRIORITY"; switch (value) { - case D3D12_COMMAND_QUEUE_PRIORITY_NORMAL: return "D3D12_COMMAND_QUEUE_PRIORITY_NORMAL"; - case D3D12_COMMAND_QUEUE_PRIORITY_HIGH: return "D3D12_COMMAND_QUEUE_PRIORITY_HIGH"; - case D3D12_COMMAND_QUEUE_PRIORITY_GLOBAL_REALTIME: return "D3D12_COMMAND_QUEUE_PRIORITY_GLOBAL_REALTIME"; - default: break; + case D3D12_COMMAND_QUEUE_PRIORITY_NORMAL: ret = "D3D12_COMMAND_QUEUE_PRIORITY_NORMAL"; break; + case D3D12_COMMAND_QUEUE_PRIORITY_HIGH: ret = "D3D12_COMMAND_QUEUE_PRIORITY_HIGH"; break; + case D3D12_COMMAND_QUEUE_PRIORITY_GLOBAL_REALTIME: ret = "D3D12_COMMAND_QUEUE_PRIORITY_GLOBAL_REALTIME"; break; } - return "Unhandled D3D12_COMMAND_QUEUE_PRIORITY"; + return ret; } -std::string ToString(const D3D12_PRIMITIVE_TOPOLOGY_TYPE& value) +std::string ToString(const D3D12_PRIMITIVE_TOPOLOGY_TYPE value) { + const char* ret = "Unhandled D3D12_PRIMITIVE_TOPOLOGY_TYPE"; switch (value) { - case D3D12_PRIMITIVE_TOPOLOGY_TYPE_UNDEFINED: return "D3D12_PRIMITIVE_TOPOLOGY_TYPE_UNDEFINED"; - case D3D12_PRIMITIVE_TOPOLOGY_TYPE_POINT: return "D3D12_PRIMITIVE_TOPOLOGY_TYPE_POINT"; - case D3D12_PRIMITIVE_TOPOLOGY_TYPE_LINE: return "D3D12_PRIMITIVE_TOPOLOGY_TYPE_LINE"; - case D3D12_PRIMITIVE_TOPOLOGY_TYPE_TRIANGLE: return "D3D12_PRIMITIVE_TOPOLOGY_TYPE_TRIANGLE"; - case D3D12_PRIMITIVE_TOPOLOGY_TYPE_PATCH: return "D3D12_PRIMITIVE_TOPOLOGY_TYPE_PATCH"; - default: break; + case D3D12_PRIMITIVE_TOPOLOGY_TYPE_UNDEFINED: ret = "D3D12_PRIMITIVE_TOPOLOGY_TYPE_UNDEFINED"; break; + case D3D12_PRIMITIVE_TOPOLOGY_TYPE_POINT: ret = "D3D12_PRIMITIVE_TOPOLOGY_TYPE_POINT"; break; + case D3D12_PRIMITIVE_TOPOLOGY_TYPE_LINE: ret = "D3D12_PRIMITIVE_TOPOLOGY_TYPE_LINE"; break; + case D3D12_PRIMITIVE_TOPOLOGY_TYPE_TRIANGLE: ret = "D3D12_PRIMITIVE_TOPOLOGY_TYPE_TRIANGLE"; break; + case D3D12_PRIMITIVE_TOPOLOGY_TYPE_PATCH: ret = "D3D12_PRIMITIVE_TOPOLOGY_TYPE_PATCH"; break; } - return "Unhandled D3D12_PRIMITIVE_TOPOLOGY_TYPE"; + return ret; } -std::string ToString(const D3D12_INPUT_CLASSIFICATION& value) +std::string ToString(const D3D12_INPUT_CLASSIFICATION value) { + const char* ret = "Unhandled D3D12_INPUT_CLASSIFICATION"; switch (value) { - case D3D12_INPUT_CLASSIFICATION_PER_VERTEX_DATA: return "D3D12_INPUT_CLASSIFICATION_PER_VERTEX_DATA"; - case D3D12_INPUT_CLASSIFICATION_PER_INSTANCE_DATA: return "D3D12_INPUT_CLASSIFICATION_PER_INSTANCE_DATA"; - default: break; + case D3D12_INPUT_CLASSIFICATION_PER_VERTEX_DATA: ret = "D3D12_INPUT_CLASSIFICATION_PER_VERTEX_DATA"; break; + case D3D12_INPUT_CLASSIFICATION_PER_INSTANCE_DATA: ret = "D3D12_INPUT_CLASSIFICATION_PER_INSTANCE_DATA"; break; } - return "Unhandled D3D12_INPUT_CLASSIFICATION"; + return ret; } -std::string ToString(const D3D12_FILL_MODE& value) +std::string ToString(const D3D12_FILL_MODE value) { + const char* ret = "Unhandled D3D12_FILL_MODE"; switch (value) { - case D3D12_FILL_MODE_WIREFRAME: return "D3D12_FILL_MODE_WIREFRAME"; - case D3D12_FILL_MODE_SOLID: return "D3D12_FILL_MODE_SOLID"; - default: break; + case D3D12_FILL_MODE_WIREFRAME: ret = "D3D12_FILL_MODE_WIREFRAME"; break; + case D3D12_FILL_MODE_SOLID: ret = "D3D12_FILL_MODE_SOLID"; break; } - return "Unhandled D3D12_FILL_MODE"; + return ret; } -std::string ToString(const D3D12_CULL_MODE& value) +std::string ToString(const D3D12_CULL_MODE value) { + const char* ret = "Unhandled D3D12_CULL_MODE"; switch (value) { - case D3D12_CULL_MODE_NONE: return "D3D12_CULL_MODE_NONE"; - case D3D12_CULL_MODE_FRONT: return "D3D12_CULL_MODE_FRONT"; - case D3D12_CULL_MODE_BACK: return "D3D12_CULL_MODE_BACK"; - default: break; + case D3D12_CULL_MODE_NONE: ret = "D3D12_CULL_MODE_NONE"; break; + case D3D12_CULL_MODE_FRONT: ret = "D3D12_CULL_MODE_FRONT"; break; + case D3D12_CULL_MODE_BACK: ret = "D3D12_CULL_MODE_BACK"; break; } - return "Unhandled D3D12_CULL_MODE"; + return ret; } -std::string ToString(const D3D12_COMPARISON_FUNC& value) +std::string ToString(const D3D12_COMPARISON_FUNC value) { + const char* ret = "Unhandled D3D12_COMPARISON_FUNC"; switch (value) { - case D3D12_COMPARISON_FUNC_NONE: return "D3D12_COMPARISON_FUNC_NONE"; - case D3D12_COMPARISON_FUNC_NEVER: return "D3D12_COMPARISON_FUNC_NEVER"; - case D3D12_COMPARISON_FUNC_LESS: return "D3D12_COMPARISON_FUNC_LESS"; - case D3D12_COMPARISON_FUNC_EQUAL: return "D3D12_COMPARISON_FUNC_EQUAL"; - case D3D12_COMPARISON_FUNC_LESS_EQUAL: return "D3D12_COMPARISON_FUNC_LESS_EQUAL"; - case D3D12_COMPARISON_FUNC_GREATER: return "D3D12_COMPARISON_FUNC_GREATER"; - case D3D12_COMPARISON_FUNC_NOT_EQUAL: return "D3D12_COMPARISON_FUNC_NOT_EQUAL"; - case D3D12_COMPARISON_FUNC_GREATER_EQUAL: return "D3D12_COMPARISON_FUNC_GREATER_EQUAL"; - case D3D12_COMPARISON_FUNC_ALWAYS: return "D3D12_COMPARISON_FUNC_ALWAYS"; - default: break; + case D3D12_COMPARISON_FUNC_NONE: ret = "D3D12_COMPARISON_FUNC_NONE"; break; + case D3D12_COMPARISON_FUNC_NEVER: ret = "D3D12_COMPARISON_FUNC_NEVER"; break; + case D3D12_COMPARISON_FUNC_LESS: ret = "D3D12_COMPARISON_FUNC_LESS"; break; + case D3D12_COMPARISON_FUNC_EQUAL: ret = "D3D12_COMPARISON_FUNC_EQUAL"; break; + case D3D12_COMPARISON_FUNC_LESS_EQUAL: ret = "D3D12_COMPARISON_FUNC_LESS_EQUAL"; break; + case D3D12_COMPARISON_FUNC_GREATER: ret = "D3D12_COMPARISON_FUNC_GREATER"; break; + case D3D12_COMPARISON_FUNC_NOT_EQUAL: ret = "D3D12_COMPARISON_FUNC_NOT_EQUAL"; break; + case D3D12_COMPARISON_FUNC_GREATER_EQUAL: ret = "D3D12_COMPARISON_FUNC_GREATER_EQUAL"; break; + case D3D12_COMPARISON_FUNC_ALWAYS: ret = "D3D12_COMPARISON_FUNC_ALWAYS"; break; } - return "Unhandled D3D12_COMPARISON_FUNC"; + return ret; } -std::string ToString(const D3D12_DEPTH_WRITE_MASK& value) +std::string ToString(const D3D12_DEPTH_WRITE_MASK value) { + const char* ret = "Unhandled D3D12_DEPTH_WRITE_MASK"; switch (value) { - case D3D12_DEPTH_WRITE_MASK_ZERO: return "D3D12_DEPTH_WRITE_MASK_ZERO"; - case D3D12_DEPTH_WRITE_MASK_ALL: return "D3D12_DEPTH_WRITE_MASK_ALL"; - default: break; + case D3D12_DEPTH_WRITE_MASK_ZERO: ret = "D3D12_DEPTH_WRITE_MASK_ZERO"; break; + case D3D12_DEPTH_WRITE_MASK_ALL: ret = "D3D12_DEPTH_WRITE_MASK_ALL"; break; } - return "Unhandled D3D12_DEPTH_WRITE_MASK"; + return ret; } -std::string ToString(const D3D12_STENCIL_OP& value) +std::string ToString(const D3D12_STENCIL_OP value) { + const char* ret = "Unhandled D3D12_STENCIL_OP"; switch (value) { - case D3D12_STENCIL_OP_KEEP: return "D3D12_STENCIL_OP_KEEP"; - case D3D12_STENCIL_OP_ZERO: return "D3D12_STENCIL_OP_ZERO"; - case D3D12_STENCIL_OP_REPLACE: return "D3D12_STENCIL_OP_REPLACE"; - case D3D12_STENCIL_OP_INCR_SAT: return "D3D12_STENCIL_OP_INCR_SAT"; - case D3D12_STENCIL_OP_DECR_SAT: return "D3D12_STENCIL_OP_DECR_SAT"; - case D3D12_STENCIL_OP_INVERT: return "D3D12_STENCIL_OP_INVERT"; - case D3D12_STENCIL_OP_INCR: return "D3D12_STENCIL_OP_INCR"; - case D3D12_STENCIL_OP_DECR: return "D3D12_STENCIL_OP_DECR"; - default: break; + case D3D12_STENCIL_OP_KEEP: ret = "D3D12_STENCIL_OP_KEEP"; break; + case D3D12_STENCIL_OP_ZERO: ret = "D3D12_STENCIL_OP_ZERO"; break; + case D3D12_STENCIL_OP_REPLACE: ret = "D3D12_STENCIL_OP_REPLACE"; break; + case D3D12_STENCIL_OP_INCR_SAT: ret = "D3D12_STENCIL_OP_INCR_SAT"; break; + case D3D12_STENCIL_OP_DECR_SAT: ret = "D3D12_STENCIL_OP_DECR_SAT"; break; + case D3D12_STENCIL_OP_INVERT: ret = "D3D12_STENCIL_OP_INVERT"; break; + case D3D12_STENCIL_OP_INCR: ret = "D3D12_STENCIL_OP_INCR"; break; + case D3D12_STENCIL_OP_DECR: ret = "D3D12_STENCIL_OP_DECR"; break; } - return "Unhandled D3D12_STENCIL_OP"; + return ret; } -std::string ToString(const D3D12_BLEND& value) +std::string ToString(const D3D12_BLEND value) { + const char* ret = "Unhandled D3D12_BLEND"; switch (value) { - case D3D12_BLEND_ZERO: return "D3D12_BLEND_ZERO"; - case D3D12_BLEND_ONE: return "D3D12_BLEND_ONE"; - case D3D12_BLEND_SRC_COLOR: return "D3D12_BLEND_SRC_COLOR"; - case D3D12_BLEND_INV_SRC_COLOR: return "D3D12_BLEND_INV_SRC_COLOR"; - case D3D12_BLEND_SRC_ALPHA: return "D3D12_BLEND_SRC_ALPHA"; - case D3D12_BLEND_INV_SRC_ALPHA: return "D3D12_BLEND_INV_SRC_ALPHA"; - case D3D12_BLEND_DEST_ALPHA: return "D3D12_BLEND_DEST_ALPHA"; - case D3D12_BLEND_INV_DEST_ALPHA: return "D3D12_BLEND_INV_DEST_ALPHA"; - case D3D12_BLEND_DEST_COLOR: return "D3D12_BLEND_DEST_COLOR"; - case D3D12_BLEND_INV_DEST_COLOR: return "D3D12_BLEND_INV_DEST_COLOR"; - case D3D12_BLEND_SRC_ALPHA_SAT: return "D3D12_BLEND_SRC_ALPHA_SAT"; - case D3D12_BLEND_BLEND_FACTOR: return "D3D12_BLEND_BLEND_FACTOR"; - case D3D12_BLEND_INV_BLEND_FACTOR: return "D3D12_BLEND_INV_BLEND_FACTOR"; - case D3D12_BLEND_SRC1_COLOR: return "D3D12_BLEND_SRC1_COLOR"; - case D3D12_BLEND_INV_SRC1_COLOR: return "D3D12_BLEND_INV_SRC1_COLOR"; - case D3D12_BLEND_SRC1_ALPHA: return "D3D12_BLEND_SRC1_ALPHA"; - case D3D12_BLEND_INV_SRC1_ALPHA: return "D3D12_BLEND_INV_SRC1_ALPHA"; - case D3D12_BLEND_ALPHA_FACTOR: return "D3D12_BLEND_ALPHA_FACTOR"; - case D3D12_BLEND_INV_ALPHA_FACTOR: return "D3D12_BLEND_INV_ALPHA_FACTOR"; - default: break; + case D3D12_BLEND_ZERO: ret = "D3D12_BLEND_ZERO"; break; + case D3D12_BLEND_ONE: ret = "D3D12_BLEND_ONE"; break; + case D3D12_BLEND_SRC_COLOR: ret = "D3D12_BLEND_SRC_COLOR"; break; + case D3D12_BLEND_INV_SRC_COLOR: ret = "D3D12_BLEND_INV_SRC_COLOR"; break; + case D3D12_BLEND_SRC_ALPHA: ret = "D3D12_BLEND_SRC_ALPHA"; break; + case D3D12_BLEND_INV_SRC_ALPHA: ret = "D3D12_BLEND_INV_SRC_ALPHA"; break; + case D3D12_BLEND_DEST_ALPHA: ret = "D3D12_BLEND_DEST_ALPHA"; break; + case D3D12_BLEND_INV_DEST_ALPHA: ret = "D3D12_BLEND_INV_DEST_ALPHA"; break; + case D3D12_BLEND_DEST_COLOR: ret = "D3D12_BLEND_DEST_COLOR"; break; + case D3D12_BLEND_INV_DEST_COLOR: ret = "D3D12_BLEND_INV_DEST_COLOR"; break; + case D3D12_BLEND_SRC_ALPHA_SAT: ret = "D3D12_BLEND_SRC_ALPHA_SAT"; break; + case D3D12_BLEND_BLEND_FACTOR: ret = "D3D12_BLEND_BLEND_FACTOR"; break; + case D3D12_BLEND_INV_BLEND_FACTOR: ret = "D3D12_BLEND_INV_BLEND_FACTOR"; break; + case D3D12_BLEND_SRC1_COLOR: ret = "D3D12_BLEND_SRC1_COLOR"; break; + case D3D12_BLEND_INV_SRC1_COLOR: ret = "D3D12_BLEND_INV_SRC1_COLOR"; break; + case D3D12_BLEND_SRC1_ALPHA: ret = "D3D12_BLEND_SRC1_ALPHA"; break; + case D3D12_BLEND_INV_SRC1_ALPHA: ret = "D3D12_BLEND_INV_SRC1_ALPHA"; break; + case D3D12_BLEND_ALPHA_FACTOR: ret = "D3D12_BLEND_ALPHA_FACTOR"; break; + case D3D12_BLEND_INV_ALPHA_FACTOR: ret = "D3D12_BLEND_INV_ALPHA_FACTOR"; break; } - return "Unhandled D3D12_BLEND"; + return ret; } -std::string ToString(const D3D12_BLEND_OP& value) +std::string ToString(const D3D12_BLEND_OP value) { + const char* ret = "Unhandled D3D12_BLEND_OP"; switch (value) { - case D3D12_BLEND_OP_ADD: return "D3D12_BLEND_OP_ADD"; - case D3D12_BLEND_OP_SUBTRACT: return "D3D12_BLEND_OP_SUBTRACT"; - case D3D12_BLEND_OP_REV_SUBTRACT: return "D3D12_BLEND_OP_REV_SUBTRACT"; - case D3D12_BLEND_OP_MIN: return "D3D12_BLEND_OP_MIN"; - case D3D12_BLEND_OP_MAX: return "D3D12_BLEND_OP_MAX"; - default: break; + case D3D12_BLEND_OP_ADD: ret = "D3D12_BLEND_OP_ADD"; break; + case D3D12_BLEND_OP_SUBTRACT: ret = "D3D12_BLEND_OP_SUBTRACT"; break; + case D3D12_BLEND_OP_REV_SUBTRACT: ret = "D3D12_BLEND_OP_REV_SUBTRACT"; break; + case D3D12_BLEND_OP_MIN: ret = "D3D12_BLEND_OP_MIN"; break; + case D3D12_BLEND_OP_MAX: ret = "D3D12_BLEND_OP_MAX"; break; } - return "Unhandled D3D12_BLEND_OP"; + return ret; } -std::string ToString(const D3D12_COLOR_WRITE_ENABLE& value) +std::string ToString(const D3D12_COLOR_WRITE_ENABLE value) { + const char* ret = "Unhandled D3D12_COLOR_WRITE_ENABLE"; switch (value) { - case D3D12_COLOR_WRITE_ENABLE_RED: return "D3D12_COLOR_WRITE_ENABLE_RED"; - case D3D12_COLOR_WRITE_ENABLE_GREEN: return "D3D12_COLOR_WRITE_ENABLE_GREEN"; - case D3D12_COLOR_WRITE_ENABLE_BLUE: return "D3D12_COLOR_WRITE_ENABLE_BLUE"; - case D3D12_COLOR_WRITE_ENABLE_ALPHA: return "D3D12_COLOR_WRITE_ENABLE_ALPHA"; - case D3D12_COLOR_WRITE_ENABLE_ALL: return "D3D12_COLOR_WRITE_ENABLE_ALL"; - default: break; + case D3D12_COLOR_WRITE_ENABLE_RED: ret = "D3D12_COLOR_WRITE_ENABLE_RED"; break; + case D3D12_COLOR_WRITE_ENABLE_GREEN: ret = "D3D12_COLOR_WRITE_ENABLE_GREEN"; break; + case D3D12_COLOR_WRITE_ENABLE_BLUE: ret = "D3D12_COLOR_WRITE_ENABLE_BLUE"; break; + case D3D12_COLOR_WRITE_ENABLE_ALPHA: ret = "D3D12_COLOR_WRITE_ENABLE_ALPHA"; break; + case D3D12_COLOR_WRITE_ENABLE_ALL: ret = "D3D12_COLOR_WRITE_ENABLE_ALL"; break; } - return "Unhandled D3D12_COLOR_WRITE_ENABLE"; + return ret; } -std::string ToString(const D3D12_LOGIC_OP& value) +std::string ToString(const D3D12_LOGIC_OP value) { + const char* ret = "Unhandled D3D12_LOGIC_OP"; switch (value) { - case D3D12_LOGIC_OP_CLEAR: return "D3D12_LOGIC_OP_CLEAR"; - case D3D12_LOGIC_OP_SET: return "D3D12_LOGIC_OP_SET"; - case D3D12_LOGIC_OP_COPY: return "D3D12_LOGIC_OP_COPY"; - case D3D12_LOGIC_OP_COPY_INVERTED: return "D3D12_LOGIC_OP_COPY_INVERTED"; - case D3D12_LOGIC_OP_NOOP: return "D3D12_LOGIC_OP_NOOP"; - case D3D12_LOGIC_OP_INVERT: return "D3D12_LOGIC_OP_INVERT"; - case D3D12_LOGIC_OP_AND: return "D3D12_LOGIC_OP_AND"; - case D3D12_LOGIC_OP_NAND: return "D3D12_LOGIC_OP_NAND"; - case D3D12_LOGIC_OP_OR: return "D3D12_LOGIC_OP_OR"; - case D3D12_LOGIC_OP_NOR: return "D3D12_LOGIC_OP_NOR"; - case D3D12_LOGIC_OP_XOR: return "D3D12_LOGIC_OP_XOR"; - case D3D12_LOGIC_OP_EQUIV: return "D3D12_LOGIC_OP_EQUIV"; - case D3D12_LOGIC_OP_AND_REVERSE: return "D3D12_LOGIC_OP_AND_REVERSE"; - case D3D12_LOGIC_OP_AND_INVERTED: return "D3D12_LOGIC_OP_AND_INVERTED"; - case D3D12_LOGIC_OP_OR_REVERSE: return "D3D12_LOGIC_OP_OR_REVERSE"; - case D3D12_LOGIC_OP_OR_INVERTED: return "D3D12_LOGIC_OP_OR_INVERTED"; - default: break; + case D3D12_LOGIC_OP_CLEAR: ret = "D3D12_LOGIC_OP_CLEAR"; break; + case D3D12_LOGIC_OP_SET: ret = "D3D12_LOGIC_OP_SET"; break; + case D3D12_LOGIC_OP_COPY: ret = "D3D12_LOGIC_OP_COPY"; break; + case D3D12_LOGIC_OP_COPY_INVERTED: ret = "D3D12_LOGIC_OP_COPY_INVERTED"; break; + case D3D12_LOGIC_OP_NOOP: ret = "D3D12_LOGIC_OP_NOOP"; break; + case D3D12_LOGIC_OP_INVERT: ret = "D3D12_LOGIC_OP_INVERT"; break; + case D3D12_LOGIC_OP_AND: ret = "D3D12_LOGIC_OP_AND"; break; + case D3D12_LOGIC_OP_NAND: ret = "D3D12_LOGIC_OP_NAND"; break; + case D3D12_LOGIC_OP_OR: ret = "D3D12_LOGIC_OP_OR"; break; + case D3D12_LOGIC_OP_NOR: ret = "D3D12_LOGIC_OP_NOR"; break; + case D3D12_LOGIC_OP_XOR: ret = "D3D12_LOGIC_OP_XOR"; break; + case D3D12_LOGIC_OP_EQUIV: ret = "D3D12_LOGIC_OP_EQUIV"; break; + case D3D12_LOGIC_OP_AND_REVERSE: ret = "D3D12_LOGIC_OP_AND_REVERSE"; break; + case D3D12_LOGIC_OP_AND_INVERTED: ret = "D3D12_LOGIC_OP_AND_INVERTED"; break; + case D3D12_LOGIC_OP_OR_REVERSE: ret = "D3D12_LOGIC_OP_OR_REVERSE"; break; + case D3D12_LOGIC_OP_OR_INVERTED: ret = "D3D12_LOGIC_OP_OR_INVERTED"; break; } - return "Unhandled D3D12_LOGIC_OP"; + return ret; } -std::string ToString(const D3D12_CONSERVATIVE_RASTERIZATION_MODE& value) +std::string ToString(const D3D12_CONSERVATIVE_RASTERIZATION_MODE value) { + const char* ret = "Unhandled D3D12_CONSERVATIVE_RASTERIZATION_MODE"; switch (value) { - case D3D12_CONSERVATIVE_RASTERIZATION_MODE_OFF: return "D3D12_CONSERVATIVE_RASTERIZATION_MODE_OFF"; - case D3D12_CONSERVATIVE_RASTERIZATION_MODE_ON: return "D3D12_CONSERVATIVE_RASTERIZATION_MODE_ON"; - default: break; + case D3D12_CONSERVATIVE_RASTERIZATION_MODE_OFF: ret = "D3D12_CONSERVATIVE_RASTERIZATION_MODE_OFF"; break; + case D3D12_CONSERVATIVE_RASTERIZATION_MODE_ON: ret = "D3D12_CONSERVATIVE_RASTERIZATION_MODE_ON"; break; } - return "Unhandled D3D12_CONSERVATIVE_RASTERIZATION_MODE"; + return ret; } -std::string ToString(const D3D12_LINE_RASTERIZATION_MODE& value) +std::string ToString(const D3D12_LINE_RASTERIZATION_MODE value) { + const char* ret = "Unhandled D3D12_LINE_RASTERIZATION_MODE"; switch (value) { - case D3D12_LINE_RASTERIZATION_MODE_ALIASED: return "D3D12_LINE_RASTERIZATION_MODE_ALIASED"; - case D3D12_LINE_RASTERIZATION_MODE_ALPHA_ANTIALIASED: return "D3D12_LINE_RASTERIZATION_MODE_ALPHA_ANTIALIASED"; - case D3D12_LINE_RASTERIZATION_MODE_QUADRILATERAL_WIDE: return "D3D12_LINE_RASTERIZATION_MODE_QUADRILATERAL_WIDE"; - case D3D12_LINE_RASTERIZATION_MODE_QUADRILATERAL_NARROW: return "D3D12_LINE_RASTERIZATION_MODE_QUADRILATERAL_NARROW"; - default: break; + case D3D12_LINE_RASTERIZATION_MODE_ALIASED: ret = "D3D12_LINE_RASTERIZATION_MODE_ALIASED"; break; + case D3D12_LINE_RASTERIZATION_MODE_ALPHA_ANTIALIASED: ret = "D3D12_LINE_RASTERIZATION_MODE_ALPHA_ANTIALIASED"; break; + case D3D12_LINE_RASTERIZATION_MODE_QUADRILATERAL_WIDE: ret = "D3D12_LINE_RASTERIZATION_MODE_QUADRILATERAL_WIDE"; break; + case D3D12_LINE_RASTERIZATION_MODE_QUADRILATERAL_NARROW: ret = "D3D12_LINE_RASTERIZATION_MODE_QUADRILATERAL_NARROW"; break; } - return "Unhandled D3D12_LINE_RASTERIZATION_MODE"; + return ret; } -std::string ToString(const D3D12_INDEX_BUFFER_STRIP_CUT_VALUE& value) +std::string ToString(const D3D12_INDEX_BUFFER_STRIP_CUT_VALUE value) { + const char* ret = "Unhandled D3D12_INDEX_BUFFER_STRIP_CUT_VALUE"; switch (value) { - case D3D12_INDEX_BUFFER_STRIP_CUT_VALUE_DISABLED: return "D3D12_INDEX_BUFFER_STRIP_CUT_VALUE_DISABLED"; - case D3D12_INDEX_BUFFER_STRIP_CUT_VALUE_0xFFFF: return "D3D12_INDEX_BUFFER_STRIP_CUT_VALUE_0xFFFF"; - case D3D12_INDEX_BUFFER_STRIP_CUT_VALUE_0xFFFFFFFF: return "D3D12_INDEX_BUFFER_STRIP_CUT_VALUE_0xFFFFFFFF"; - default: break; + case D3D12_INDEX_BUFFER_STRIP_CUT_VALUE_DISABLED: ret = "D3D12_INDEX_BUFFER_STRIP_CUT_VALUE_DISABLED"; break; + case D3D12_INDEX_BUFFER_STRIP_CUT_VALUE_0xFFFF: ret = "D3D12_INDEX_BUFFER_STRIP_CUT_VALUE_0xFFFF"; break; + case D3D12_INDEX_BUFFER_STRIP_CUT_VALUE_0xFFFFFFFF: ret = "D3D12_INDEX_BUFFER_STRIP_CUT_VALUE_0xFFFFFFFF"; break; } - return "Unhandled D3D12_INDEX_BUFFER_STRIP_CUT_VALUE"; + return ret; } -std::string ToString(const D3D12_PIPELINE_STATE_FLAGS& value) +std::string ToString(const D3D12_PIPELINE_STATE_FLAGS value) { + const char* ret = "Unhandled D3D12_PIPELINE_STATE_FLAGS"; switch (value) { - case D3D12_PIPELINE_STATE_FLAG_NONE: return "D3D12_PIPELINE_STATE_FLAG_NONE"; - case D3D12_PIPELINE_STATE_FLAG_TOOL_DEBUG: return "D3D12_PIPELINE_STATE_FLAG_TOOL_DEBUG"; - case D3D12_PIPELINE_STATE_FLAG_DYNAMIC_DEPTH_BIAS: return "D3D12_PIPELINE_STATE_FLAG_DYNAMIC_DEPTH_BIAS"; - case D3D12_PIPELINE_STATE_FLAG_DYNAMIC_INDEX_BUFFER_STRIP_CUT: return "D3D12_PIPELINE_STATE_FLAG_DYNAMIC_INDEX_BUFFER_STRIP_CUT"; - default: break; + case D3D12_PIPELINE_STATE_FLAG_NONE: ret = "D3D12_PIPELINE_STATE_FLAG_NONE"; break; + case D3D12_PIPELINE_STATE_FLAG_TOOL_DEBUG: ret = "D3D12_PIPELINE_STATE_FLAG_TOOL_DEBUG"; break; + case D3D12_PIPELINE_STATE_FLAG_DYNAMIC_DEPTH_BIAS: ret = "D3D12_PIPELINE_STATE_FLAG_DYNAMIC_DEPTH_BIAS"; break; + case D3D12_PIPELINE_STATE_FLAG_DYNAMIC_INDEX_BUFFER_STRIP_CUT: ret = "D3D12_PIPELINE_STATE_FLAG_DYNAMIC_INDEX_BUFFER_STRIP_CUT"; break; } - return "Unhandled D3D12_PIPELINE_STATE_FLAGS"; + return ret; } -std::string ToString_D3D12_PIPELINE_STATE_FLAGS(uint32_t flags) +std::string ToString_D3D12_PIPELINE_STATE_FLAGS(const uint32_t flags) { return BitmaskToString(flags); } -std::string ToString(const D3D12_PIPELINE_STATE_SUBOBJECT_TYPE& value) -{ - switch (value) { - case D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_ROOT_SIGNATURE: return "D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_ROOT_SIGNATURE"; - case D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_VS: return "D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_VS"; - case D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_PS: return "D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_PS"; - case D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_DS: return "D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_DS"; - case D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_HS: return "D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_HS"; - case D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_GS: return "D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_GS"; - case D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_CS: return "D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_CS"; - case D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_STREAM_OUTPUT: return "D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_STREAM_OUTPUT"; - case D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_BLEND: return "D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_BLEND"; - case D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_SAMPLE_MASK: return "D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_SAMPLE_MASK"; - case D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_RASTERIZER: return "D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_RASTERIZER"; - case D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_DEPTH_STENCIL: return "D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_DEPTH_STENCIL"; - case D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_INPUT_LAYOUT: return "D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_INPUT_LAYOUT"; - case D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_IB_STRIP_CUT_VALUE: return "D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_IB_STRIP_CUT_VALUE"; - case D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_PRIMITIVE_TOPOLOGY: return "D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_PRIMITIVE_TOPOLOGY"; - case D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_RENDER_TARGET_FORMATS: return "D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_RENDER_TARGET_FORMATS"; - case D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_DEPTH_STENCIL_FORMAT: return "D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_DEPTH_STENCIL_FORMAT"; - case D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_SAMPLE_DESC: return "D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_SAMPLE_DESC"; - case D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_NODE_MASK: return "D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_NODE_MASK"; - case D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_CACHED_PSO: return "D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_CACHED_PSO"; - case D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_FLAGS: return "D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_FLAGS"; - case D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_DEPTH_STENCIL1: return "D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_DEPTH_STENCIL1"; - case D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_VIEW_INSTANCING: return "D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_VIEW_INSTANCING"; - case D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_AS: return "D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_AS"; - case D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_MS: return "D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_MS"; - case D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_DEPTH_STENCIL2: return "D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_DEPTH_STENCIL2"; - case D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_RASTERIZER1: return "D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_RASTERIZER1"; - case D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_RASTERIZER2: return "D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_RASTERIZER2"; - case D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_MAX_VALID: return "D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_MAX_VALID"; - default: break; - } - return "Unhandled D3D12_PIPELINE_STATE_SUBOBJECT_TYPE"; -} - -std::string ToString(const D3D12_FEATURE& value) -{ - switch (value) { - case D3D12_FEATURE_D3D12_OPTIONS: return "D3D12_FEATURE_D3D12_OPTIONS"; - case D3D12_FEATURE_ARCHITECTURE: return "D3D12_FEATURE_ARCHITECTURE"; - case D3D12_FEATURE_FEATURE_LEVELS: return "D3D12_FEATURE_FEATURE_LEVELS"; - case D3D12_FEATURE_FORMAT_SUPPORT: return "D3D12_FEATURE_FORMAT_SUPPORT"; - case D3D12_FEATURE_MULTISAMPLE_QUALITY_LEVELS: return "D3D12_FEATURE_MULTISAMPLE_QUALITY_LEVELS"; - case D3D12_FEATURE_FORMAT_INFO: return "D3D12_FEATURE_FORMAT_INFO"; - case D3D12_FEATURE_GPU_VIRTUAL_ADDRESS_SUPPORT: return "D3D12_FEATURE_GPU_VIRTUAL_ADDRESS_SUPPORT"; - case D3D12_FEATURE_SHADER_MODEL: return "D3D12_FEATURE_SHADER_MODEL"; - case D3D12_FEATURE_D3D12_OPTIONS1: return "D3D12_FEATURE_D3D12_OPTIONS1"; - case D3D12_FEATURE_PROTECTED_RESOURCE_SESSION_SUPPORT: return "D3D12_FEATURE_PROTECTED_RESOURCE_SESSION_SUPPORT"; - case D3D12_FEATURE_ROOT_SIGNATURE: return "D3D12_FEATURE_ROOT_SIGNATURE"; - case D3D12_FEATURE_ARCHITECTURE1: return "D3D12_FEATURE_ARCHITECTURE1"; - case D3D12_FEATURE_D3D12_OPTIONS2: return "D3D12_FEATURE_D3D12_OPTIONS2"; - case D3D12_FEATURE_SHADER_CACHE: return "D3D12_FEATURE_SHADER_CACHE"; - case D3D12_FEATURE_COMMAND_QUEUE_PRIORITY: return "D3D12_FEATURE_COMMAND_QUEUE_PRIORITY"; - case D3D12_FEATURE_D3D12_OPTIONS3: return "D3D12_FEATURE_D3D12_OPTIONS3"; - case D3D12_FEATURE_EXISTING_HEAPS: return "D3D12_FEATURE_EXISTING_HEAPS"; - case D3D12_FEATURE_D3D12_OPTIONS4: return "D3D12_FEATURE_D3D12_OPTIONS4"; - case D3D12_FEATURE_SERIALIZATION: return "D3D12_FEATURE_SERIALIZATION"; - case D3D12_FEATURE_CROSS_NODE: return "D3D12_FEATURE_CROSS_NODE"; - case D3D12_FEATURE_D3D12_OPTIONS5: return "D3D12_FEATURE_D3D12_OPTIONS5"; - case D3D12_FEATURE_DISPLAYABLE: return "D3D12_FEATURE_DISPLAYABLE"; - case D3D12_FEATURE_D3D12_OPTIONS6: return "D3D12_FEATURE_D3D12_OPTIONS6"; - case D3D12_FEATURE_QUERY_META_COMMAND: return "D3D12_FEATURE_QUERY_META_COMMAND"; - case D3D12_FEATURE_D3D12_OPTIONS7: return "D3D12_FEATURE_D3D12_OPTIONS7"; - case D3D12_FEATURE_PROTECTED_RESOURCE_SESSION_TYPE_COUNT: return "D3D12_FEATURE_PROTECTED_RESOURCE_SESSION_TYPE_COUNT"; - case D3D12_FEATURE_PROTECTED_RESOURCE_SESSION_TYPES: return "D3D12_FEATURE_PROTECTED_RESOURCE_SESSION_TYPES"; - case D3D12_FEATURE_D3D12_OPTIONS8: return "D3D12_FEATURE_D3D12_OPTIONS8"; - case D3D12_FEATURE_D3D12_OPTIONS9: return "D3D12_FEATURE_D3D12_OPTIONS9"; - case D3D12_FEATURE_D3D12_OPTIONS10: return "D3D12_FEATURE_D3D12_OPTIONS10"; - case D3D12_FEATURE_D3D12_OPTIONS11: return "D3D12_FEATURE_D3D12_OPTIONS11"; - case D3D12_FEATURE_D3D12_OPTIONS12: return "D3D12_FEATURE_D3D12_OPTIONS12"; - case D3D12_FEATURE_D3D12_OPTIONS13: return "D3D12_FEATURE_D3D12_OPTIONS13"; - case D3D12_FEATURE_D3D12_OPTIONS14: return "D3D12_FEATURE_D3D12_OPTIONS14"; - case D3D12_FEATURE_D3D12_OPTIONS15: return "D3D12_FEATURE_D3D12_OPTIONS15"; - case D3D12_FEATURE_D3D12_OPTIONS16: return "D3D12_FEATURE_D3D12_OPTIONS16"; - case D3D12_FEATURE_D3D12_OPTIONS17: return "D3D12_FEATURE_D3D12_OPTIONS17"; - case D3D12_FEATURE_D3D12_OPTIONS18: return "D3D12_FEATURE_D3D12_OPTIONS18"; - case D3D12_FEATURE_D3D12_OPTIONS19: return "D3D12_FEATURE_D3D12_OPTIONS19"; - default: break; - } - return "Unhandled D3D12_FEATURE"; -} - -std::string ToString(const D3D12_SHADER_MIN_PRECISION_SUPPORT& value) -{ - switch (value) { - case D3D12_SHADER_MIN_PRECISION_SUPPORT_NONE: return "D3D12_SHADER_MIN_PRECISION_SUPPORT_NONE"; - case D3D12_SHADER_MIN_PRECISION_SUPPORT_10_BIT: return "D3D12_SHADER_MIN_PRECISION_SUPPORT_10_BIT"; - case D3D12_SHADER_MIN_PRECISION_SUPPORT_16_BIT: return "D3D12_SHADER_MIN_PRECISION_SUPPORT_16_BIT"; - default: break; - } - return "Unhandled D3D12_SHADER_MIN_PRECISION_SUPPORT"; -} - -std::string ToString_D3D12_SHADER_MIN_PRECISION_SUPPORT(uint32_t flags) +std::string ToString(const D3D12_PIPELINE_STATE_SUBOBJECT_TYPE value) +{ + const char* ret = "Unhandled D3D12_PIPELINE_STATE_SUBOBJECT_TYPE"; + switch (value) { + case D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_ROOT_SIGNATURE: ret = "D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_ROOT_SIGNATURE"; break; + case D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_VS: ret = "D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_VS"; break; + case D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_PS: ret = "D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_PS"; break; + case D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_DS: ret = "D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_DS"; break; + case D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_HS: ret = "D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_HS"; break; + case D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_GS: ret = "D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_GS"; break; + case D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_CS: ret = "D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_CS"; break; + case D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_STREAM_OUTPUT: ret = "D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_STREAM_OUTPUT"; break; + case D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_BLEND: ret = "D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_BLEND"; break; + case D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_SAMPLE_MASK: ret = "D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_SAMPLE_MASK"; break; + case D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_RASTERIZER: ret = "D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_RASTERIZER"; break; + case D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_DEPTH_STENCIL: ret = "D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_DEPTH_STENCIL"; break; + case D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_INPUT_LAYOUT: ret = "D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_INPUT_LAYOUT"; break; + case D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_IB_STRIP_CUT_VALUE: ret = "D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_IB_STRIP_CUT_VALUE"; break; + case D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_PRIMITIVE_TOPOLOGY: ret = "D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_PRIMITIVE_TOPOLOGY"; break; + case D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_RENDER_TARGET_FORMATS: ret = "D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_RENDER_TARGET_FORMATS"; break; + case D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_DEPTH_STENCIL_FORMAT: ret = "D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_DEPTH_STENCIL_FORMAT"; break; + case D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_SAMPLE_DESC: ret = "D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_SAMPLE_DESC"; break; + case D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_NODE_MASK: ret = "D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_NODE_MASK"; break; + case D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_CACHED_PSO: ret = "D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_CACHED_PSO"; break; + case D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_FLAGS: ret = "D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_FLAGS"; break; + case D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_DEPTH_STENCIL1: ret = "D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_DEPTH_STENCIL1"; break; + case D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_VIEW_INSTANCING: ret = "D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_VIEW_INSTANCING"; break; + case D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_AS: ret = "D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_AS"; break; + case D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_MS: ret = "D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_MS"; break; + case D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_DEPTH_STENCIL2: ret = "D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_DEPTH_STENCIL2"; break; + case D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_RASTERIZER1: ret = "D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_RASTERIZER1"; break; + case D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_RASTERIZER2: ret = "D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_RASTERIZER2"; break; + case D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_MAX_VALID: ret = "D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_MAX_VALID"; break; + } + return ret; +} + +std::string ToString(const D3D12_FEATURE value) +{ + const char* ret = "Unhandled D3D12_FEATURE"; + switch (value) { + case D3D12_FEATURE_D3D12_OPTIONS: ret = "D3D12_FEATURE_D3D12_OPTIONS"; break; + case D3D12_FEATURE_ARCHITECTURE: ret = "D3D12_FEATURE_ARCHITECTURE"; break; + case D3D12_FEATURE_FEATURE_LEVELS: ret = "D3D12_FEATURE_FEATURE_LEVELS"; break; + case D3D12_FEATURE_FORMAT_SUPPORT: ret = "D3D12_FEATURE_FORMAT_SUPPORT"; break; + case D3D12_FEATURE_MULTISAMPLE_QUALITY_LEVELS: ret = "D3D12_FEATURE_MULTISAMPLE_QUALITY_LEVELS"; break; + case D3D12_FEATURE_FORMAT_INFO: ret = "D3D12_FEATURE_FORMAT_INFO"; break; + case D3D12_FEATURE_GPU_VIRTUAL_ADDRESS_SUPPORT: ret = "D3D12_FEATURE_GPU_VIRTUAL_ADDRESS_SUPPORT"; break; + case D3D12_FEATURE_SHADER_MODEL: ret = "D3D12_FEATURE_SHADER_MODEL"; break; + case D3D12_FEATURE_D3D12_OPTIONS1: ret = "D3D12_FEATURE_D3D12_OPTIONS1"; break; + case D3D12_FEATURE_PROTECTED_RESOURCE_SESSION_SUPPORT: ret = "D3D12_FEATURE_PROTECTED_RESOURCE_SESSION_SUPPORT"; break; + case D3D12_FEATURE_ROOT_SIGNATURE: ret = "D3D12_FEATURE_ROOT_SIGNATURE"; break; + case D3D12_FEATURE_ARCHITECTURE1: ret = "D3D12_FEATURE_ARCHITECTURE1"; break; + case D3D12_FEATURE_D3D12_OPTIONS2: ret = "D3D12_FEATURE_D3D12_OPTIONS2"; break; + case D3D12_FEATURE_SHADER_CACHE: ret = "D3D12_FEATURE_SHADER_CACHE"; break; + case D3D12_FEATURE_COMMAND_QUEUE_PRIORITY: ret = "D3D12_FEATURE_COMMAND_QUEUE_PRIORITY"; break; + case D3D12_FEATURE_D3D12_OPTIONS3: ret = "D3D12_FEATURE_D3D12_OPTIONS3"; break; + case D3D12_FEATURE_EXISTING_HEAPS: ret = "D3D12_FEATURE_EXISTING_HEAPS"; break; + case D3D12_FEATURE_D3D12_OPTIONS4: ret = "D3D12_FEATURE_D3D12_OPTIONS4"; break; + case D3D12_FEATURE_SERIALIZATION: ret = "D3D12_FEATURE_SERIALIZATION"; break; + case D3D12_FEATURE_CROSS_NODE: ret = "D3D12_FEATURE_CROSS_NODE"; break; + case D3D12_FEATURE_D3D12_OPTIONS5: ret = "D3D12_FEATURE_D3D12_OPTIONS5"; break; + case D3D12_FEATURE_DISPLAYABLE: ret = "D3D12_FEATURE_DISPLAYABLE"; break; + case D3D12_FEATURE_D3D12_OPTIONS6: ret = "D3D12_FEATURE_D3D12_OPTIONS6"; break; + case D3D12_FEATURE_QUERY_META_COMMAND: ret = "D3D12_FEATURE_QUERY_META_COMMAND"; break; + case D3D12_FEATURE_D3D12_OPTIONS7: ret = "D3D12_FEATURE_D3D12_OPTIONS7"; break; + case D3D12_FEATURE_PROTECTED_RESOURCE_SESSION_TYPE_COUNT: ret = "D3D12_FEATURE_PROTECTED_RESOURCE_SESSION_TYPE_COUNT"; break; + case D3D12_FEATURE_PROTECTED_RESOURCE_SESSION_TYPES: ret = "D3D12_FEATURE_PROTECTED_RESOURCE_SESSION_TYPES"; break; + case D3D12_FEATURE_D3D12_OPTIONS8: ret = "D3D12_FEATURE_D3D12_OPTIONS8"; break; + case D3D12_FEATURE_D3D12_OPTIONS9: ret = "D3D12_FEATURE_D3D12_OPTIONS9"; break; + case D3D12_FEATURE_D3D12_OPTIONS10: ret = "D3D12_FEATURE_D3D12_OPTIONS10"; break; + case D3D12_FEATURE_D3D12_OPTIONS11: ret = "D3D12_FEATURE_D3D12_OPTIONS11"; break; + case D3D12_FEATURE_D3D12_OPTIONS12: ret = "D3D12_FEATURE_D3D12_OPTIONS12"; break; + case D3D12_FEATURE_D3D12_OPTIONS13: ret = "D3D12_FEATURE_D3D12_OPTIONS13"; break; + case D3D12_FEATURE_D3D12_OPTIONS14: ret = "D3D12_FEATURE_D3D12_OPTIONS14"; break; + case D3D12_FEATURE_D3D12_OPTIONS15: ret = "D3D12_FEATURE_D3D12_OPTIONS15"; break; + case D3D12_FEATURE_D3D12_OPTIONS16: ret = "D3D12_FEATURE_D3D12_OPTIONS16"; break; + case D3D12_FEATURE_D3D12_OPTIONS17: ret = "D3D12_FEATURE_D3D12_OPTIONS17"; break; + case D3D12_FEATURE_D3D12_OPTIONS18: ret = "D3D12_FEATURE_D3D12_OPTIONS18"; break; + case D3D12_FEATURE_D3D12_OPTIONS19: ret = "D3D12_FEATURE_D3D12_OPTIONS19"; break; + } + return ret; +} + +std::string ToString(const D3D12_SHADER_MIN_PRECISION_SUPPORT value) +{ + const char* ret = "Unhandled D3D12_SHADER_MIN_PRECISION_SUPPORT"; + switch (value) { + case D3D12_SHADER_MIN_PRECISION_SUPPORT_NONE: ret = "D3D12_SHADER_MIN_PRECISION_SUPPORT_NONE"; break; + case D3D12_SHADER_MIN_PRECISION_SUPPORT_10_BIT: ret = "D3D12_SHADER_MIN_PRECISION_SUPPORT_10_BIT"; break; + case D3D12_SHADER_MIN_PRECISION_SUPPORT_16_BIT: ret = "D3D12_SHADER_MIN_PRECISION_SUPPORT_16_BIT"; break; + } + return ret; +} + +std::string ToString_D3D12_SHADER_MIN_PRECISION_SUPPORT(const uint32_t flags) { return BitmaskToString(flags); } -std::string ToString(const D3D12_TILED_RESOURCES_TIER& value) +std::string ToString(const D3D12_TILED_RESOURCES_TIER value) { + const char* ret = "Unhandled D3D12_TILED_RESOURCES_TIER"; switch (value) { - case D3D12_TILED_RESOURCES_TIER_NOT_SUPPORTED: return "D3D12_TILED_RESOURCES_TIER_NOT_SUPPORTED"; - case D3D12_TILED_RESOURCES_TIER_1: return "D3D12_TILED_RESOURCES_TIER_1"; - case D3D12_TILED_RESOURCES_TIER_2: return "D3D12_TILED_RESOURCES_TIER_2"; - case D3D12_TILED_RESOURCES_TIER_3: return "D3D12_TILED_RESOURCES_TIER_3"; - case D3D12_TILED_RESOURCES_TIER_4: return "D3D12_TILED_RESOURCES_TIER_4"; - default: break; + case D3D12_TILED_RESOURCES_TIER_NOT_SUPPORTED: ret = "D3D12_TILED_RESOURCES_TIER_NOT_SUPPORTED"; break; + case D3D12_TILED_RESOURCES_TIER_1: ret = "D3D12_TILED_RESOURCES_TIER_1"; break; + case D3D12_TILED_RESOURCES_TIER_2: ret = "D3D12_TILED_RESOURCES_TIER_2"; break; + case D3D12_TILED_RESOURCES_TIER_3: ret = "D3D12_TILED_RESOURCES_TIER_3"; break; + case D3D12_TILED_RESOURCES_TIER_4: ret = "D3D12_TILED_RESOURCES_TIER_4"; break; } - return "Unhandled D3D12_TILED_RESOURCES_TIER"; + return ret; } -std::string ToString(const D3D12_RESOURCE_BINDING_TIER& value) +std::string ToString(const D3D12_RESOURCE_BINDING_TIER value) { + const char* ret = "Unhandled D3D12_RESOURCE_BINDING_TIER"; switch (value) { - case D3D12_RESOURCE_BINDING_TIER_1: return "D3D12_RESOURCE_BINDING_TIER_1"; - case D3D12_RESOURCE_BINDING_TIER_2: return "D3D12_RESOURCE_BINDING_TIER_2"; - case D3D12_RESOURCE_BINDING_TIER_3: return "D3D12_RESOURCE_BINDING_TIER_3"; - default: break; + case D3D12_RESOURCE_BINDING_TIER_1: ret = "D3D12_RESOURCE_BINDING_TIER_1"; break; + case D3D12_RESOURCE_BINDING_TIER_2: ret = "D3D12_RESOURCE_BINDING_TIER_2"; break; + case D3D12_RESOURCE_BINDING_TIER_3: ret = "D3D12_RESOURCE_BINDING_TIER_3"; break; } - return "Unhandled D3D12_RESOURCE_BINDING_TIER"; + return ret; } -std::string ToString(const D3D12_CONSERVATIVE_RASTERIZATION_TIER& value) +std::string ToString(const D3D12_CONSERVATIVE_RASTERIZATION_TIER value) { + const char* ret = "Unhandled D3D12_CONSERVATIVE_RASTERIZATION_TIER"; switch (value) { - case D3D12_CONSERVATIVE_RASTERIZATION_TIER_NOT_SUPPORTED: return "D3D12_CONSERVATIVE_RASTERIZATION_TIER_NOT_SUPPORTED"; - case D3D12_CONSERVATIVE_RASTERIZATION_TIER_1: return "D3D12_CONSERVATIVE_RASTERIZATION_TIER_1"; - case D3D12_CONSERVATIVE_RASTERIZATION_TIER_2: return "D3D12_CONSERVATIVE_RASTERIZATION_TIER_2"; - case D3D12_CONSERVATIVE_RASTERIZATION_TIER_3: return "D3D12_CONSERVATIVE_RASTERIZATION_TIER_3"; - default: break; + case D3D12_CONSERVATIVE_RASTERIZATION_TIER_NOT_SUPPORTED: ret = "D3D12_CONSERVATIVE_RASTERIZATION_TIER_NOT_SUPPORTED"; break; + case D3D12_CONSERVATIVE_RASTERIZATION_TIER_1: ret = "D3D12_CONSERVATIVE_RASTERIZATION_TIER_1"; break; + case D3D12_CONSERVATIVE_RASTERIZATION_TIER_2: ret = "D3D12_CONSERVATIVE_RASTERIZATION_TIER_2"; break; + case D3D12_CONSERVATIVE_RASTERIZATION_TIER_3: ret = "D3D12_CONSERVATIVE_RASTERIZATION_TIER_3"; break; } - return "Unhandled D3D12_CONSERVATIVE_RASTERIZATION_TIER"; + return ret; } -std::string ToString(const D3D12_FORMAT_SUPPORT1& value) +std::string ToString(const D3D12_FORMAT_SUPPORT1 value) { + const char* ret = "Unhandled D3D12_FORMAT_SUPPORT1"; switch (value) { - case D3D12_FORMAT_SUPPORT1_NONE: return "D3D12_FORMAT_SUPPORT1_NONE"; - case D3D12_FORMAT_SUPPORT1_BUFFER: return "D3D12_FORMAT_SUPPORT1_BUFFER"; - case D3D12_FORMAT_SUPPORT1_IA_VERTEX_BUFFER: return "D3D12_FORMAT_SUPPORT1_IA_VERTEX_BUFFER"; - case D3D12_FORMAT_SUPPORT1_IA_INDEX_BUFFER: return "D3D12_FORMAT_SUPPORT1_IA_INDEX_BUFFER"; - case D3D12_FORMAT_SUPPORT1_SO_BUFFER: return "D3D12_FORMAT_SUPPORT1_SO_BUFFER"; - case D3D12_FORMAT_SUPPORT1_TEXTURE1D: return "D3D12_FORMAT_SUPPORT1_TEXTURE1D"; - case D3D12_FORMAT_SUPPORT1_TEXTURE2D: return "D3D12_FORMAT_SUPPORT1_TEXTURE2D"; - case D3D12_FORMAT_SUPPORT1_TEXTURE3D: return "D3D12_FORMAT_SUPPORT1_TEXTURE3D"; - case D3D12_FORMAT_SUPPORT1_TEXTURECUBE: return "D3D12_FORMAT_SUPPORT1_TEXTURECUBE"; - case D3D12_FORMAT_SUPPORT1_SHADER_LOAD: return "D3D12_FORMAT_SUPPORT1_SHADER_LOAD"; - case D3D12_FORMAT_SUPPORT1_SHADER_SAMPLE: return "D3D12_FORMAT_SUPPORT1_SHADER_SAMPLE"; - case D3D12_FORMAT_SUPPORT1_SHADER_SAMPLE_COMPARISON: return "D3D12_FORMAT_SUPPORT1_SHADER_SAMPLE_COMPARISON"; - case D3D12_FORMAT_SUPPORT1_SHADER_SAMPLE_MONO_TEXT: return "D3D12_FORMAT_SUPPORT1_SHADER_SAMPLE_MONO_TEXT"; - case D3D12_FORMAT_SUPPORT1_MIP: return "D3D12_FORMAT_SUPPORT1_MIP"; - case D3D12_FORMAT_SUPPORT1_RENDER_TARGET: return "D3D12_FORMAT_SUPPORT1_RENDER_TARGET"; - case D3D12_FORMAT_SUPPORT1_BLENDABLE: return "D3D12_FORMAT_SUPPORT1_BLENDABLE"; - case D3D12_FORMAT_SUPPORT1_DEPTH_STENCIL: return "D3D12_FORMAT_SUPPORT1_DEPTH_STENCIL"; - case D3D12_FORMAT_SUPPORT1_MULTISAMPLE_RESOLVE: return "D3D12_FORMAT_SUPPORT1_MULTISAMPLE_RESOLVE"; - case D3D12_FORMAT_SUPPORT1_DISPLAY: return "D3D12_FORMAT_SUPPORT1_DISPLAY"; - case D3D12_FORMAT_SUPPORT1_CAST_WITHIN_BIT_LAYOUT: return "D3D12_FORMAT_SUPPORT1_CAST_WITHIN_BIT_LAYOUT"; - case D3D12_FORMAT_SUPPORT1_MULTISAMPLE_RENDERTARGET: return "D3D12_FORMAT_SUPPORT1_MULTISAMPLE_RENDERTARGET"; - case D3D12_FORMAT_SUPPORT1_MULTISAMPLE_LOAD: return "D3D12_FORMAT_SUPPORT1_MULTISAMPLE_LOAD"; - case D3D12_FORMAT_SUPPORT1_SHADER_GATHER: return "D3D12_FORMAT_SUPPORT1_SHADER_GATHER"; - case D3D12_FORMAT_SUPPORT1_BACK_BUFFER_CAST: return "D3D12_FORMAT_SUPPORT1_BACK_BUFFER_CAST"; - case D3D12_FORMAT_SUPPORT1_TYPED_UNORDERED_ACCESS_VIEW: return "D3D12_FORMAT_SUPPORT1_TYPED_UNORDERED_ACCESS_VIEW"; - case D3D12_FORMAT_SUPPORT1_SHADER_GATHER_COMPARISON: return "D3D12_FORMAT_SUPPORT1_SHADER_GATHER_COMPARISON"; - case D3D12_FORMAT_SUPPORT1_DECODER_OUTPUT: return "D3D12_FORMAT_SUPPORT1_DECODER_OUTPUT"; - case D3D12_FORMAT_SUPPORT1_VIDEO_PROCESSOR_OUTPUT: return "D3D12_FORMAT_SUPPORT1_VIDEO_PROCESSOR_OUTPUT"; - case D3D12_FORMAT_SUPPORT1_VIDEO_PROCESSOR_INPUT: return "D3D12_FORMAT_SUPPORT1_VIDEO_PROCESSOR_INPUT"; - case D3D12_FORMAT_SUPPORT1_VIDEO_ENCODER: return "D3D12_FORMAT_SUPPORT1_VIDEO_ENCODER"; - default: break; + case D3D12_FORMAT_SUPPORT1_NONE: ret = "D3D12_FORMAT_SUPPORT1_NONE"; break; + case D3D12_FORMAT_SUPPORT1_BUFFER: ret = "D3D12_FORMAT_SUPPORT1_BUFFER"; break; + case D3D12_FORMAT_SUPPORT1_IA_VERTEX_BUFFER: ret = "D3D12_FORMAT_SUPPORT1_IA_VERTEX_BUFFER"; break; + case D3D12_FORMAT_SUPPORT1_IA_INDEX_BUFFER: ret = "D3D12_FORMAT_SUPPORT1_IA_INDEX_BUFFER"; break; + case D3D12_FORMAT_SUPPORT1_SO_BUFFER: ret = "D3D12_FORMAT_SUPPORT1_SO_BUFFER"; break; + case D3D12_FORMAT_SUPPORT1_TEXTURE1D: ret = "D3D12_FORMAT_SUPPORT1_TEXTURE1D"; break; + case D3D12_FORMAT_SUPPORT1_TEXTURE2D: ret = "D3D12_FORMAT_SUPPORT1_TEXTURE2D"; break; + case D3D12_FORMAT_SUPPORT1_TEXTURE3D: ret = "D3D12_FORMAT_SUPPORT1_TEXTURE3D"; break; + case D3D12_FORMAT_SUPPORT1_TEXTURECUBE: ret = "D3D12_FORMAT_SUPPORT1_TEXTURECUBE"; break; + case D3D12_FORMAT_SUPPORT1_SHADER_LOAD: ret = "D3D12_FORMAT_SUPPORT1_SHADER_LOAD"; break; + case D3D12_FORMAT_SUPPORT1_SHADER_SAMPLE: ret = "D3D12_FORMAT_SUPPORT1_SHADER_SAMPLE"; break; + case D3D12_FORMAT_SUPPORT1_SHADER_SAMPLE_COMPARISON: ret = "D3D12_FORMAT_SUPPORT1_SHADER_SAMPLE_COMPARISON"; break; + case D3D12_FORMAT_SUPPORT1_SHADER_SAMPLE_MONO_TEXT: ret = "D3D12_FORMAT_SUPPORT1_SHADER_SAMPLE_MONO_TEXT"; break; + case D3D12_FORMAT_SUPPORT1_MIP: ret = "D3D12_FORMAT_SUPPORT1_MIP"; break; + case D3D12_FORMAT_SUPPORT1_RENDER_TARGET: ret = "D3D12_FORMAT_SUPPORT1_RENDER_TARGET"; break; + case D3D12_FORMAT_SUPPORT1_BLENDABLE: ret = "D3D12_FORMAT_SUPPORT1_BLENDABLE"; break; + case D3D12_FORMAT_SUPPORT1_DEPTH_STENCIL: ret = "D3D12_FORMAT_SUPPORT1_DEPTH_STENCIL"; break; + case D3D12_FORMAT_SUPPORT1_MULTISAMPLE_RESOLVE: ret = "D3D12_FORMAT_SUPPORT1_MULTISAMPLE_RESOLVE"; break; + case D3D12_FORMAT_SUPPORT1_DISPLAY: ret = "D3D12_FORMAT_SUPPORT1_DISPLAY"; break; + case D3D12_FORMAT_SUPPORT1_CAST_WITHIN_BIT_LAYOUT: ret = "D3D12_FORMAT_SUPPORT1_CAST_WITHIN_BIT_LAYOUT"; break; + case D3D12_FORMAT_SUPPORT1_MULTISAMPLE_RENDERTARGET: ret = "D3D12_FORMAT_SUPPORT1_MULTISAMPLE_RENDERTARGET"; break; + case D3D12_FORMAT_SUPPORT1_MULTISAMPLE_LOAD: ret = "D3D12_FORMAT_SUPPORT1_MULTISAMPLE_LOAD"; break; + case D3D12_FORMAT_SUPPORT1_SHADER_GATHER: ret = "D3D12_FORMAT_SUPPORT1_SHADER_GATHER"; break; + case D3D12_FORMAT_SUPPORT1_BACK_BUFFER_CAST: ret = "D3D12_FORMAT_SUPPORT1_BACK_BUFFER_CAST"; break; + case D3D12_FORMAT_SUPPORT1_TYPED_UNORDERED_ACCESS_VIEW: ret = "D3D12_FORMAT_SUPPORT1_TYPED_UNORDERED_ACCESS_VIEW"; break; + case D3D12_FORMAT_SUPPORT1_SHADER_GATHER_COMPARISON: ret = "D3D12_FORMAT_SUPPORT1_SHADER_GATHER_COMPARISON"; break; + case D3D12_FORMAT_SUPPORT1_DECODER_OUTPUT: ret = "D3D12_FORMAT_SUPPORT1_DECODER_OUTPUT"; break; + case D3D12_FORMAT_SUPPORT1_VIDEO_PROCESSOR_OUTPUT: ret = "D3D12_FORMAT_SUPPORT1_VIDEO_PROCESSOR_OUTPUT"; break; + case D3D12_FORMAT_SUPPORT1_VIDEO_PROCESSOR_INPUT: ret = "D3D12_FORMAT_SUPPORT1_VIDEO_PROCESSOR_INPUT"; break; + case D3D12_FORMAT_SUPPORT1_VIDEO_ENCODER: ret = "D3D12_FORMAT_SUPPORT1_VIDEO_ENCODER"; break; } - return "Unhandled D3D12_FORMAT_SUPPORT1"; + return ret; } -std::string ToString_D3D12_FORMAT_SUPPORT1(uint32_t flags) +std::string ToString_D3D12_FORMAT_SUPPORT1(const uint32_t flags) { return BitmaskToString(flags); } -std::string ToString(const D3D12_FORMAT_SUPPORT2& value) +std::string ToString(const D3D12_FORMAT_SUPPORT2 value) { + const char* ret = "Unhandled D3D12_FORMAT_SUPPORT2"; switch (value) { - case D3D12_FORMAT_SUPPORT2_NONE: return "D3D12_FORMAT_SUPPORT2_NONE"; - case D3D12_FORMAT_SUPPORT2_UAV_ATOMIC_ADD: return "D3D12_FORMAT_SUPPORT2_UAV_ATOMIC_ADD"; - case D3D12_FORMAT_SUPPORT2_UAV_ATOMIC_BITWISE_OPS: return "D3D12_FORMAT_SUPPORT2_UAV_ATOMIC_BITWISE_OPS"; - case D3D12_FORMAT_SUPPORT2_UAV_ATOMIC_COMPARE_STORE_OR_COMPARE_EXCHANGE: return "D3D12_FORMAT_SUPPORT2_UAV_ATOMIC_COMPARE_STORE_OR_COMPARE_EXCHANGE"; - case D3D12_FORMAT_SUPPORT2_UAV_ATOMIC_EXCHANGE: return "D3D12_FORMAT_SUPPORT2_UAV_ATOMIC_EXCHANGE"; - case D3D12_FORMAT_SUPPORT2_UAV_ATOMIC_SIGNED_MIN_OR_MAX: return "D3D12_FORMAT_SUPPORT2_UAV_ATOMIC_SIGNED_MIN_OR_MAX"; - case D3D12_FORMAT_SUPPORT2_UAV_ATOMIC_UNSIGNED_MIN_OR_MAX: return "D3D12_FORMAT_SUPPORT2_UAV_ATOMIC_UNSIGNED_MIN_OR_MAX"; - case D3D12_FORMAT_SUPPORT2_UAV_TYPED_LOAD: return "D3D12_FORMAT_SUPPORT2_UAV_TYPED_LOAD"; - case D3D12_FORMAT_SUPPORT2_UAV_TYPED_STORE: return "D3D12_FORMAT_SUPPORT2_UAV_TYPED_STORE"; - case D3D12_FORMAT_SUPPORT2_OUTPUT_MERGER_LOGIC_OP: return "D3D12_FORMAT_SUPPORT2_OUTPUT_MERGER_LOGIC_OP"; - case D3D12_FORMAT_SUPPORT2_TILED: return "D3D12_FORMAT_SUPPORT2_TILED"; - case D3D12_FORMAT_SUPPORT2_MULTIPLANE_OVERLAY: return "D3D12_FORMAT_SUPPORT2_MULTIPLANE_OVERLAY"; - case D3D12_FORMAT_SUPPORT2_SAMPLER_FEEDBACK: return "D3D12_FORMAT_SUPPORT2_SAMPLER_FEEDBACK"; - default: break; + case D3D12_FORMAT_SUPPORT2_NONE: ret = "D3D12_FORMAT_SUPPORT2_NONE"; break; + case D3D12_FORMAT_SUPPORT2_UAV_ATOMIC_ADD: ret = "D3D12_FORMAT_SUPPORT2_UAV_ATOMIC_ADD"; break; + case D3D12_FORMAT_SUPPORT2_UAV_ATOMIC_BITWISE_OPS: ret = "D3D12_FORMAT_SUPPORT2_UAV_ATOMIC_BITWISE_OPS"; break; + case D3D12_FORMAT_SUPPORT2_UAV_ATOMIC_COMPARE_STORE_OR_COMPARE_EXCHANGE: ret = "D3D12_FORMAT_SUPPORT2_UAV_ATOMIC_COMPARE_STORE_OR_COMPARE_EXCHANGE"; break; + case D3D12_FORMAT_SUPPORT2_UAV_ATOMIC_EXCHANGE: ret = "D3D12_FORMAT_SUPPORT2_UAV_ATOMIC_EXCHANGE"; break; + case D3D12_FORMAT_SUPPORT2_UAV_ATOMIC_SIGNED_MIN_OR_MAX: ret = "D3D12_FORMAT_SUPPORT2_UAV_ATOMIC_SIGNED_MIN_OR_MAX"; break; + case D3D12_FORMAT_SUPPORT2_UAV_ATOMIC_UNSIGNED_MIN_OR_MAX: ret = "D3D12_FORMAT_SUPPORT2_UAV_ATOMIC_UNSIGNED_MIN_OR_MAX"; break; + case D3D12_FORMAT_SUPPORT2_UAV_TYPED_LOAD: ret = "D3D12_FORMAT_SUPPORT2_UAV_TYPED_LOAD"; break; + case D3D12_FORMAT_SUPPORT2_UAV_TYPED_STORE: ret = "D3D12_FORMAT_SUPPORT2_UAV_TYPED_STORE"; break; + case D3D12_FORMAT_SUPPORT2_OUTPUT_MERGER_LOGIC_OP: ret = "D3D12_FORMAT_SUPPORT2_OUTPUT_MERGER_LOGIC_OP"; break; + case D3D12_FORMAT_SUPPORT2_TILED: ret = "D3D12_FORMAT_SUPPORT2_TILED"; break; + case D3D12_FORMAT_SUPPORT2_MULTIPLANE_OVERLAY: ret = "D3D12_FORMAT_SUPPORT2_MULTIPLANE_OVERLAY"; break; + case D3D12_FORMAT_SUPPORT2_SAMPLER_FEEDBACK: ret = "D3D12_FORMAT_SUPPORT2_SAMPLER_FEEDBACK"; break; } - return "Unhandled D3D12_FORMAT_SUPPORT2"; + return ret; } -std::string ToString_D3D12_FORMAT_SUPPORT2(uint32_t flags) +std::string ToString_D3D12_FORMAT_SUPPORT2(const uint32_t flags) { return BitmaskToString(flags); } -std::string ToString(const D3D12_MULTISAMPLE_QUALITY_LEVEL_FLAGS& value) +std::string ToString(const D3D12_MULTISAMPLE_QUALITY_LEVEL_FLAGS value) { + const char* ret = "Unhandled D3D12_MULTISAMPLE_QUALITY_LEVEL_FLAGS"; switch (value) { - case D3D12_MULTISAMPLE_QUALITY_LEVELS_FLAG_NONE: return "D3D12_MULTISAMPLE_QUALITY_LEVELS_FLAG_NONE"; - case D3D12_MULTISAMPLE_QUALITY_LEVELS_FLAG_TILED_RESOURCE: return "D3D12_MULTISAMPLE_QUALITY_LEVELS_FLAG_TILED_RESOURCE"; - default: break; + case D3D12_MULTISAMPLE_QUALITY_LEVELS_FLAG_NONE: ret = "D3D12_MULTISAMPLE_QUALITY_LEVELS_FLAG_NONE"; break; + case D3D12_MULTISAMPLE_QUALITY_LEVELS_FLAG_TILED_RESOURCE: ret = "D3D12_MULTISAMPLE_QUALITY_LEVELS_FLAG_TILED_RESOURCE"; break; } - return "Unhandled D3D12_MULTISAMPLE_QUALITY_LEVEL_FLAGS"; + return ret; } -std::string ToString_D3D12_MULTISAMPLE_QUALITY_LEVEL_FLAGS(uint32_t flags) +std::string ToString_D3D12_MULTISAMPLE_QUALITY_LEVEL_FLAGS(const uint32_t flags) { return BitmaskToString(flags); } -std::string ToString(const D3D12_CROSS_NODE_SHARING_TIER& value) +std::string ToString(const D3D12_CROSS_NODE_SHARING_TIER value) { + const char* ret = "Unhandled D3D12_CROSS_NODE_SHARING_TIER"; switch (value) { - case D3D12_CROSS_NODE_SHARING_TIER_NOT_SUPPORTED: return "D3D12_CROSS_NODE_SHARING_TIER_NOT_SUPPORTED"; - case D3D12_CROSS_NODE_SHARING_TIER_1_EMULATED: return "D3D12_CROSS_NODE_SHARING_TIER_1_EMULATED"; - case D3D12_CROSS_NODE_SHARING_TIER_1: return "D3D12_CROSS_NODE_SHARING_TIER_1"; - case D3D12_CROSS_NODE_SHARING_TIER_2: return "D3D12_CROSS_NODE_SHARING_TIER_2"; - case D3D12_CROSS_NODE_SHARING_TIER_3: return "D3D12_CROSS_NODE_SHARING_TIER_3"; - default: break; + case D3D12_CROSS_NODE_SHARING_TIER_NOT_SUPPORTED: ret = "D3D12_CROSS_NODE_SHARING_TIER_NOT_SUPPORTED"; break; + case D3D12_CROSS_NODE_SHARING_TIER_1_EMULATED: ret = "D3D12_CROSS_NODE_SHARING_TIER_1_EMULATED"; break; + case D3D12_CROSS_NODE_SHARING_TIER_1: ret = "D3D12_CROSS_NODE_SHARING_TIER_1"; break; + case D3D12_CROSS_NODE_SHARING_TIER_2: ret = "D3D12_CROSS_NODE_SHARING_TIER_2"; break; + case D3D12_CROSS_NODE_SHARING_TIER_3: ret = "D3D12_CROSS_NODE_SHARING_TIER_3"; break; } - return "Unhandled D3D12_CROSS_NODE_SHARING_TIER"; + return ret; } -std::string ToString(const D3D12_RESOURCE_HEAP_TIER& value) +std::string ToString(const D3D12_RESOURCE_HEAP_TIER value) { + const char* ret = "Unhandled D3D12_RESOURCE_HEAP_TIER"; switch (value) { - case D3D12_RESOURCE_HEAP_TIER_1: return "D3D12_RESOURCE_HEAP_TIER_1"; - case D3D12_RESOURCE_HEAP_TIER_2: return "D3D12_RESOURCE_HEAP_TIER_2"; - default: break; + case D3D12_RESOURCE_HEAP_TIER_1: ret = "D3D12_RESOURCE_HEAP_TIER_1"; break; + case D3D12_RESOURCE_HEAP_TIER_2: ret = "D3D12_RESOURCE_HEAP_TIER_2"; break; } - return "Unhandled D3D12_RESOURCE_HEAP_TIER"; + return ret; } -std::string ToString(const D3D12_PROGRAMMABLE_SAMPLE_POSITIONS_TIER& value) +std::string ToString(const D3D12_PROGRAMMABLE_SAMPLE_POSITIONS_TIER value) { + const char* ret = "Unhandled D3D12_PROGRAMMABLE_SAMPLE_POSITIONS_TIER"; switch (value) { - case D3D12_PROGRAMMABLE_SAMPLE_POSITIONS_TIER_NOT_SUPPORTED: return "D3D12_PROGRAMMABLE_SAMPLE_POSITIONS_TIER_NOT_SUPPORTED"; - case D3D12_PROGRAMMABLE_SAMPLE_POSITIONS_TIER_1: return "D3D12_PROGRAMMABLE_SAMPLE_POSITIONS_TIER_1"; - case D3D12_PROGRAMMABLE_SAMPLE_POSITIONS_TIER_2: return "D3D12_PROGRAMMABLE_SAMPLE_POSITIONS_TIER_2"; - default: break; + case D3D12_PROGRAMMABLE_SAMPLE_POSITIONS_TIER_NOT_SUPPORTED: ret = "D3D12_PROGRAMMABLE_SAMPLE_POSITIONS_TIER_NOT_SUPPORTED"; break; + case D3D12_PROGRAMMABLE_SAMPLE_POSITIONS_TIER_1: ret = "D3D12_PROGRAMMABLE_SAMPLE_POSITIONS_TIER_1"; break; + case D3D12_PROGRAMMABLE_SAMPLE_POSITIONS_TIER_2: ret = "D3D12_PROGRAMMABLE_SAMPLE_POSITIONS_TIER_2"; break; } - return "Unhandled D3D12_PROGRAMMABLE_SAMPLE_POSITIONS_TIER"; + return ret; } -std::string ToString(const D3D12_VIEW_INSTANCING_TIER& value) +std::string ToString(const D3D12_VIEW_INSTANCING_TIER value) { + const char* ret = "Unhandled D3D12_VIEW_INSTANCING_TIER"; switch (value) { - case D3D12_VIEW_INSTANCING_TIER_NOT_SUPPORTED: return "D3D12_VIEW_INSTANCING_TIER_NOT_SUPPORTED"; - case D3D12_VIEW_INSTANCING_TIER_1: return "D3D12_VIEW_INSTANCING_TIER_1"; - case D3D12_VIEW_INSTANCING_TIER_2: return "D3D12_VIEW_INSTANCING_TIER_2"; - case D3D12_VIEW_INSTANCING_TIER_3: return "D3D12_VIEW_INSTANCING_TIER_3"; - default: break; + case D3D12_VIEW_INSTANCING_TIER_NOT_SUPPORTED: ret = "D3D12_VIEW_INSTANCING_TIER_NOT_SUPPORTED"; break; + case D3D12_VIEW_INSTANCING_TIER_1: ret = "D3D12_VIEW_INSTANCING_TIER_1"; break; + case D3D12_VIEW_INSTANCING_TIER_2: ret = "D3D12_VIEW_INSTANCING_TIER_2"; break; + case D3D12_VIEW_INSTANCING_TIER_3: ret = "D3D12_VIEW_INSTANCING_TIER_3"; break; } - return "Unhandled D3D12_VIEW_INSTANCING_TIER"; + return ret; } -std::string ToString(const D3D_ROOT_SIGNATURE_VERSION& value) +std::string ToString(const D3D_ROOT_SIGNATURE_VERSION value) { + const char* ret = "Unhandled D3D_ROOT_SIGNATURE_VERSION"; switch (value) { - case D3D_ROOT_SIGNATURE_VERSION_1: return "D3D_ROOT_SIGNATURE_VERSION_1"; - case D3D_ROOT_SIGNATURE_VERSION_1_1: return "D3D_ROOT_SIGNATURE_VERSION_1_1"; - case D3D_ROOT_SIGNATURE_VERSION_1_2: return "D3D_ROOT_SIGNATURE_VERSION_1_2"; - default: break; + case D3D_ROOT_SIGNATURE_VERSION_1: ret = "D3D_ROOT_SIGNATURE_VERSION_1"; break; + case D3D_ROOT_SIGNATURE_VERSION_1_1: ret = "D3D_ROOT_SIGNATURE_VERSION_1_1"; break; + case D3D_ROOT_SIGNATURE_VERSION_1_2: ret = "D3D_ROOT_SIGNATURE_VERSION_1_2"; break; } - return "Unhandled D3D_ROOT_SIGNATURE_VERSION"; + return ret; } -std::string ToString(const D3D_SHADER_MODEL& value) +std::string ToString(const D3D_SHADER_MODEL value) { + const char* ret = "Unhandled D3D_SHADER_MODEL"; switch (value) { - case D3D_SHADER_MODEL_5_1: return "D3D_SHADER_MODEL_5_1"; - case D3D_SHADER_MODEL_6_0: return "D3D_SHADER_MODEL_6_0"; - case D3D_SHADER_MODEL_6_1: return "D3D_SHADER_MODEL_6_1"; - case D3D_SHADER_MODEL_6_2: return "D3D_SHADER_MODEL_6_2"; - case D3D_SHADER_MODEL_6_3: return "D3D_SHADER_MODEL_6_3"; - case D3D_SHADER_MODEL_6_4: return "D3D_SHADER_MODEL_6_4"; - case D3D_SHADER_MODEL_6_5: return "D3D_SHADER_MODEL_6_5"; - case D3D_SHADER_MODEL_6_6: return "D3D_SHADER_MODEL_6_6"; - case D3D_SHADER_MODEL_6_7: return "D3D_SHADER_MODEL_6_7"; - case D3D_SHADER_MODEL_6_8: return "D3D_SHADER_MODEL_6_8"; - default: break; + case D3D_SHADER_MODEL_5_1: ret = "D3D_SHADER_MODEL_5_1"; break; + case D3D_SHADER_MODEL_6_0: ret = "D3D_SHADER_MODEL_6_0"; break; + case D3D_SHADER_MODEL_6_1: ret = "D3D_SHADER_MODEL_6_1"; break; + case D3D_SHADER_MODEL_6_2: ret = "D3D_SHADER_MODEL_6_2"; break; + case D3D_SHADER_MODEL_6_3: ret = "D3D_SHADER_MODEL_6_3"; break; + case D3D_SHADER_MODEL_6_4: ret = "D3D_SHADER_MODEL_6_4"; break; + case D3D_SHADER_MODEL_6_5: ret = "D3D_SHADER_MODEL_6_5"; break; + case D3D_SHADER_MODEL_6_6: ret = "D3D_SHADER_MODEL_6_6"; break; + case D3D_SHADER_MODEL_6_7: ret = "D3D_SHADER_MODEL_6_7"; break; + case D3D_SHADER_MODEL_6_8: ret = "D3D_SHADER_MODEL_6_8"; break; } - return "Unhandled D3D_SHADER_MODEL"; + return ret; } -std::string ToString(const D3D12_SHADER_CACHE_SUPPORT_FLAGS& value) +std::string ToString(const D3D12_SHADER_CACHE_SUPPORT_FLAGS value) { + const char* ret = "Unhandled D3D12_SHADER_CACHE_SUPPORT_FLAGS"; switch (value) { - case D3D12_SHADER_CACHE_SUPPORT_NONE: return "D3D12_SHADER_CACHE_SUPPORT_NONE"; - case D3D12_SHADER_CACHE_SUPPORT_SINGLE_PSO: return "D3D12_SHADER_CACHE_SUPPORT_SINGLE_PSO"; - case D3D12_SHADER_CACHE_SUPPORT_LIBRARY: return "D3D12_SHADER_CACHE_SUPPORT_LIBRARY"; - case D3D12_SHADER_CACHE_SUPPORT_AUTOMATIC_INPROC_CACHE: return "D3D12_SHADER_CACHE_SUPPORT_AUTOMATIC_INPROC_CACHE"; - case D3D12_SHADER_CACHE_SUPPORT_AUTOMATIC_DISK_CACHE: return "D3D12_SHADER_CACHE_SUPPORT_AUTOMATIC_DISK_CACHE"; - case D3D12_SHADER_CACHE_SUPPORT_DRIVER_MANAGED_CACHE: return "D3D12_SHADER_CACHE_SUPPORT_DRIVER_MANAGED_CACHE"; - case D3D12_SHADER_CACHE_SUPPORT_SHADER_CONTROL_CLEAR: return "D3D12_SHADER_CACHE_SUPPORT_SHADER_CONTROL_CLEAR"; - case D3D12_SHADER_CACHE_SUPPORT_SHADER_SESSION_DELETE: return "D3D12_SHADER_CACHE_SUPPORT_SHADER_SESSION_DELETE"; - default: break; + case D3D12_SHADER_CACHE_SUPPORT_NONE: ret = "D3D12_SHADER_CACHE_SUPPORT_NONE"; break; + case D3D12_SHADER_CACHE_SUPPORT_SINGLE_PSO: ret = "D3D12_SHADER_CACHE_SUPPORT_SINGLE_PSO"; break; + case D3D12_SHADER_CACHE_SUPPORT_LIBRARY: ret = "D3D12_SHADER_CACHE_SUPPORT_LIBRARY"; break; + case D3D12_SHADER_CACHE_SUPPORT_AUTOMATIC_INPROC_CACHE: ret = "D3D12_SHADER_CACHE_SUPPORT_AUTOMATIC_INPROC_CACHE"; break; + case D3D12_SHADER_CACHE_SUPPORT_AUTOMATIC_DISK_CACHE: ret = "D3D12_SHADER_CACHE_SUPPORT_AUTOMATIC_DISK_CACHE"; break; + case D3D12_SHADER_CACHE_SUPPORT_DRIVER_MANAGED_CACHE: ret = "D3D12_SHADER_CACHE_SUPPORT_DRIVER_MANAGED_CACHE"; break; + case D3D12_SHADER_CACHE_SUPPORT_SHADER_CONTROL_CLEAR: ret = "D3D12_SHADER_CACHE_SUPPORT_SHADER_CONTROL_CLEAR"; break; + case D3D12_SHADER_CACHE_SUPPORT_SHADER_SESSION_DELETE: ret = "D3D12_SHADER_CACHE_SUPPORT_SHADER_SESSION_DELETE"; break; } - return "Unhandled D3D12_SHADER_CACHE_SUPPORT_FLAGS"; + return ret; } -std::string ToString_D3D12_SHADER_CACHE_SUPPORT_FLAGS(uint32_t flags) +std::string ToString_D3D12_SHADER_CACHE_SUPPORT_FLAGS(const uint32_t flags) { return BitmaskToString(flags); } -std::string ToString(const D3D12_COMMAND_LIST_SUPPORT_FLAGS& value) +std::string ToString(const D3D12_COMMAND_LIST_SUPPORT_FLAGS value) { + const char* ret = "Unhandled D3D12_COMMAND_LIST_SUPPORT_FLAGS"; switch (value) { - case D3D12_COMMAND_LIST_SUPPORT_FLAG_NONE: return "D3D12_COMMAND_LIST_SUPPORT_FLAG_NONE"; - case D3D12_COMMAND_LIST_SUPPORT_FLAG_DIRECT: return "D3D12_COMMAND_LIST_SUPPORT_FLAG_DIRECT"; - case D3D12_COMMAND_LIST_SUPPORT_FLAG_BUNDLE: return "D3D12_COMMAND_LIST_SUPPORT_FLAG_BUNDLE"; - case D3D12_COMMAND_LIST_SUPPORT_FLAG_COMPUTE: return "D3D12_COMMAND_LIST_SUPPORT_FLAG_COMPUTE"; - case D3D12_COMMAND_LIST_SUPPORT_FLAG_COPY: return "D3D12_COMMAND_LIST_SUPPORT_FLAG_COPY"; - case D3D12_COMMAND_LIST_SUPPORT_FLAG_VIDEO_DECODE: return "D3D12_COMMAND_LIST_SUPPORT_FLAG_VIDEO_DECODE"; - case D3D12_COMMAND_LIST_SUPPORT_FLAG_VIDEO_PROCESS: return "D3D12_COMMAND_LIST_SUPPORT_FLAG_VIDEO_PROCESS"; - case D3D12_COMMAND_LIST_SUPPORT_FLAG_VIDEO_ENCODE: return "D3D12_COMMAND_LIST_SUPPORT_FLAG_VIDEO_ENCODE"; - default: break; + case D3D12_COMMAND_LIST_SUPPORT_FLAG_NONE: ret = "D3D12_COMMAND_LIST_SUPPORT_FLAG_NONE"; break; + case D3D12_COMMAND_LIST_SUPPORT_FLAG_DIRECT: ret = "D3D12_COMMAND_LIST_SUPPORT_FLAG_DIRECT"; break; + case D3D12_COMMAND_LIST_SUPPORT_FLAG_BUNDLE: ret = "D3D12_COMMAND_LIST_SUPPORT_FLAG_BUNDLE"; break; + case D3D12_COMMAND_LIST_SUPPORT_FLAG_COMPUTE: ret = "D3D12_COMMAND_LIST_SUPPORT_FLAG_COMPUTE"; break; + case D3D12_COMMAND_LIST_SUPPORT_FLAG_COPY: ret = "D3D12_COMMAND_LIST_SUPPORT_FLAG_COPY"; break; + case D3D12_COMMAND_LIST_SUPPORT_FLAG_VIDEO_DECODE: ret = "D3D12_COMMAND_LIST_SUPPORT_FLAG_VIDEO_DECODE"; break; + case D3D12_COMMAND_LIST_SUPPORT_FLAG_VIDEO_PROCESS: ret = "D3D12_COMMAND_LIST_SUPPORT_FLAG_VIDEO_PROCESS"; break; + case D3D12_COMMAND_LIST_SUPPORT_FLAG_VIDEO_ENCODE: ret = "D3D12_COMMAND_LIST_SUPPORT_FLAG_VIDEO_ENCODE"; break; } - return "Unhandled D3D12_COMMAND_LIST_SUPPORT_FLAGS"; + return ret; } -std::string ToString_D3D12_COMMAND_LIST_SUPPORT_FLAGS(uint32_t flags) +std::string ToString_D3D12_COMMAND_LIST_SUPPORT_FLAGS(const uint32_t flags) { return BitmaskToString(flags); } -std::string ToString(const D3D12_SHARED_RESOURCE_COMPATIBILITY_TIER& value) +std::string ToString(const D3D12_SHARED_RESOURCE_COMPATIBILITY_TIER value) { + const char* ret = "Unhandled D3D12_SHARED_RESOURCE_COMPATIBILITY_TIER"; switch (value) { - case D3D12_SHARED_RESOURCE_COMPATIBILITY_TIER_0: return "D3D12_SHARED_RESOURCE_COMPATIBILITY_TIER_0"; - case D3D12_SHARED_RESOURCE_COMPATIBILITY_TIER_1: return "D3D12_SHARED_RESOURCE_COMPATIBILITY_TIER_1"; - case D3D12_SHARED_RESOURCE_COMPATIBILITY_TIER_2: return "D3D12_SHARED_RESOURCE_COMPATIBILITY_TIER_2"; - default: break; + case D3D12_SHARED_RESOURCE_COMPATIBILITY_TIER_0: ret = "D3D12_SHARED_RESOURCE_COMPATIBILITY_TIER_0"; break; + case D3D12_SHARED_RESOURCE_COMPATIBILITY_TIER_1: ret = "D3D12_SHARED_RESOURCE_COMPATIBILITY_TIER_1"; break; + case D3D12_SHARED_RESOURCE_COMPATIBILITY_TIER_2: ret = "D3D12_SHARED_RESOURCE_COMPATIBILITY_TIER_2"; break; } - return "Unhandled D3D12_SHARED_RESOURCE_COMPATIBILITY_TIER"; + return ret; } -std::string ToString(const D3D12_HEAP_SERIALIZATION_TIER& value) +std::string ToString(const D3D12_HEAP_SERIALIZATION_TIER value) { + const char* ret = "Unhandled D3D12_HEAP_SERIALIZATION_TIER"; switch (value) { - case D3D12_HEAP_SERIALIZATION_TIER_0: return "D3D12_HEAP_SERIALIZATION_TIER_0"; - case D3D12_HEAP_SERIALIZATION_TIER_10: return "D3D12_HEAP_SERIALIZATION_TIER_10"; - default: break; + case D3D12_HEAP_SERIALIZATION_TIER_0: ret = "D3D12_HEAP_SERIALIZATION_TIER_0"; break; + case D3D12_HEAP_SERIALIZATION_TIER_10: ret = "D3D12_HEAP_SERIALIZATION_TIER_10"; break; } - return "Unhandled D3D12_HEAP_SERIALIZATION_TIER"; + return ret; } -std::string ToString(const D3D12_RENDER_PASS_TIER& value) +std::string ToString(const D3D12_RENDER_PASS_TIER value) { + const char* ret = "Unhandled D3D12_RENDER_PASS_TIER"; switch (value) { - case D3D12_RENDER_PASS_TIER_0: return "D3D12_RENDER_PASS_TIER_0"; - case D3D12_RENDER_PASS_TIER_1: return "D3D12_RENDER_PASS_TIER_1"; - case D3D12_RENDER_PASS_TIER_2: return "D3D12_RENDER_PASS_TIER_2"; - default: break; + case D3D12_RENDER_PASS_TIER_0: ret = "D3D12_RENDER_PASS_TIER_0"; break; + case D3D12_RENDER_PASS_TIER_1: ret = "D3D12_RENDER_PASS_TIER_1"; break; + case D3D12_RENDER_PASS_TIER_2: ret = "D3D12_RENDER_PASS_TIER_2"; break; } - return "Unhandled D3D12_RENDER_PASS_TIER"; + return ret; } -std::string ToString(const D3D12_RAYTRACING_TIER& value) +std::string ToString(const D3D12_RAYTRACING_TIER value) { + const char* ret = "Unhandled D3D12_RAYTRACING_TIER"; switch (value) { - case D3D12_RAYTRACING_TIER_NOT_SUPPORTED: return "D3D12_RAYTRACING_TIER_NOT_SUPPORTED"; - case D3D12_RAYTRACING_TIER_1_0: return "D3D12_RAYTRACING_TIER_1_0"; - case D3D12_RAYTRACING_TIER_1_1: return "D3D12_RAYTRACING_TIER_1_1"; - default: break; + case D3D12_RAYTRACING_TIER_NOT_SUPPORTED: ret = "D3D12_RAYTRACING_TIER_NOT_SUPPORTED"; break; + case D3D12_RAYTRACING_TIER_1_0: ret = "D3D12_RAYTRACING_TIER_1_0"; break; + case D3D12_RAYTRACING_TIER_1_1: ret = "D3D12_RAYTRACING_TIER_1_1"; break; } - return "Unhandled D3D12_RAYTRACING_TIER"; + return ret; } -std::string ToString(const D3D12_VARIABLE_SHADING_RATE_TIER& value) +std::string ToString(const D3D12_VARIABLE_SHADING_RATE_TIER value) { + const char* ret = "Unhandled D3D12_VARIABLE_SHADING_RATE_TIER"; switch (value) { - case D3D12_VARIABLE_SHADING_RATE_TIER_NOT_SUPPORTED: return "D3D12_VARIABLE_SHADING_RATE_TIER_NOT_SUPPORTED"; - case D3D12_VARIABLE_SHADING_RATE_TIER_1: return "D3D12_VARIABLE_SHADING_RATE_TIER_1"; - case D3D12_VARIABLE_SHADING_RATE_TIER_2: return "D3D12_VARIABLE_SHADING_RATE_TIER_2"; - default: break; + case D3D12_VARIABLE_SHADING_RATE_TIER_NOT_SUPPORTED: ret = "D3D12_VARIABLE_SHADING_RATE_TIER_NOT_SUPPORTED"; break; + case D3D12_VARIABLE_SHADING_RATE_TIER_1: ret = "D3D12_VARIABLE_SHADING_RATE_TIER_1"; break; + case D3D12_VARIABLE_SHADING_RATE_TIER_2: ret = "D3D12_VARIABLE_SHADING_RATE_TIER_2"; break; } - return "Unhandled D3D12_VARIABLE_SHADING_RATE_TIER"; + return ret; } -std::string ToString(const D3D12_MESH_SHADER_TIER& value) +std::string ToString(const D3D12_MESH_SHADER_TIER value) { + const char* ret = "Unhandled D3D12_MESH_SHADER_TIER"; switch (value) { - case D3D12_MESH_SHADER_TIER_NOT_SUPPORTED: return "D3D12_MESH_SHADER_TIER_NOT_SUPPORTED"; - case D3D12_MESH_SHADER_TIER_1: return "D3D12_MESH_SHADER_TIER_1"; - default: break; + case D3D12_MESH_SHADER_TIER_NOT_SUPPORTED: ret = "D3D12_MESH_SHADER_TIER_NOT_SUPPORTED"; break; + case D3D12_MESH_SHADER_TIER_1: ret = "D3D12_MESH_SHADER_TIER_1"; break; } - return "Unhandled D3D12_MESH_SHADER_TIER"; + return ret; } -std::string ToString(const D3D12_SAMPLER_FEEDBACK_TIER& value) +std::string ToString(const D3D12_SAMPLER_FEEDBACK_TIER value) { + const char* ret = "Unhandled D3D12_SAMPLER_FEEDBACK_TIER"; switch (value) { - case D3D12_SAMPLER_FEEDBACK_TIER_NOT_SUPPORTED: return "D3D12_SAMPLER_FEEDBACK_TIER_NOT_SUPPORTED"; - case D3D12_SAMPLER_FEEDBACK_TIER_0_9: return "D3D12_SAMPLER_FEEDBACK_TIER_0_9"; - case D3D12_SAMPLER_FEEDBACK_TIER_1_0: return "D3D12_SAMPLER_FEEDBACK_TIER_1_0"; - default: break; + case D3D12_SAMPLER_FEEDBACK_TIER_NOT_SUPPORTED: ret = "D3D12_SAMPLER_FEEDBACK_TIER_NOT_SUPPORTED"; break; + case D3D12_SAMPLER_FEEDBACK_TIER_0_9: ret = "D3D12_SAMPLER_FEEDBACK_TIER_0_9"; break; + case D3D12_SAMPLER_FEEDBACK_TIER_1_0: ret = "D3D12_SAMPLER_FEEDBACK_TIER_1_0"; break; } - return "Unhandled D3D12_SAMPLER_FEEDBACK_TIER"; + return ret; } -std::string ToString(const D3D12_WAVE_MMA_TIER& value) +std::string ToString(const D3D12_WAVE_MMA_TIER value) { + const char* ret = "Unhandled D3D12_WAVE_MMA_TIER"; switch (value) { - case D3D12_WAVE_MMA_TIER_NOT_SUPPORTED: return "D3D12_WAVE_MMA_TIER_NOT_SUPPORTED"; - case D3D12_WAVE_MMA_TIER_1_0: return "D3D12_WAVE_MMA_TIER_1_0"; - default: break; + case D3D12_WAVE_MMA_TIER_NOT_SUPPORTED: ret = "D3D12_WAVE_MMA_TIER_NOT_SUPPORTED"; break; + case D3D12_WAVE_MMA_TIER_1_0: ret = "D3D12_WAVE_MMA_TIER_1_0"; break; } - return "Unhandled D3D12_WAVE_MMA_TIER"; + return ret; } -std::string ToString(const D3D12_TRI_STATE& value) +std::string ToString(const D3D12_TRI_STATE value) { + const char* ret = "Unhandled D3D12_TRI_STATE"; switch (value) { - case D3D12_TRI_STATE_UNKNOWN: return "D3D12_TRI_STATE_UNKNOWN"; - case D3D12_TRI_STATE_FALSE: return "D3D12_TRI_STATE_FALSE"; - case D3D12_TRI_STATE_TRUE: return "D3D12_TRI_STATE_TRUE"; - default: break; + case D3D12_TRI_STATE_UNKNOWN: ret = "D3D12_TRI_STATE_UNKNOWN"; break; + case D3D12_TRI_STATE_FALSE: ret = "D3D12_TRI_STATE_FALSE"; break; + case D3D12_TRI_STATE_TRUE: ret = "D3D12_TRI_STATE_TRUE"; break; } - return "Unhandled D3D12_TRI_STATE"; + return ret; } -std::string ToString(const D3D12_HEAP_TYPE& value) +std::string ToString(const D3D12_HEAP_TYPE value) { + const char* ret = "Unhandled D3D12_HEAP_TYPE"; switch (value) { - case D3D12_HEAP_TYPE_DEFAULT: return "D3D12_HEAP_TYPE_DEFAULT"; - case D3D12_HEAP_TYPE_UPLOAD: return "D3D12_HEAP_TYPE_UPLOAD"; - case D3D12_HEAP_TYPE_READBACK: return "D3D12_HEAP_TYPE_READBACK"; - case D3D12_HEAP_TYPE_CUSTOM: return "D3D12_HEAP_TYPE_CUSTOM"; - case D3D12_HEAP_TYPE_GPU_UPLOAD: return "D3D12_HEAP_TYPE_GPU_UPLOAD"; - default: break; + case D3D12_HEAP_TYPE_DEFAULT: ret = "D3D12_HEAP_TYPE_DEFAULT"; break; + case D3D12_HEAP_TYPE_UPLOAD: ret = "D3D12_HEAP_TYPE_UPLOAD"; break; + case D3D12_HEAP_TYPE_READBACK: ret = "D3D12_HEAP_TYPE_READBACK"; break; + case D3D12_HEAP_TYPE_CUSTOM: ret = "D3D12_HEAP_TYPE_CUSTOM"; break; + case D3D12_HEAP_TYPE_GPU_UPLOAD: ret = "D3D12_HEAP_TYPE_GPU_UPLOAD"; break; } - return "Unhandled D3D12_HEAP_TYPE"; + return ret; } -std::string ToString(const D3D12_CPU_PAGE_PROPERTY& value) +std::string ToString(const D3D12_CPU_PAGE_PROPERTY value) { + const char* ret = "Unhandled D3D12_CPU_PAGE_PROPERTY"; switch (value) { - case D3D12_CPU_PAGE_PROPERTY_UNKNOWN: return "D3D12_CPU_PAGE_PROPERTY_UNKNOWN"; - case D3D12_CPU_PAGE_PROPERTY_NOT_AVAILABLE: return "D3D12_CPU_PAGE_PROPERTY_NOT_AVAILABLE"; - case D3D12_CPU_PAGE_PROPERTY_WRITE_COMBINE: return "D3D12_CPU_PAGE_PROPERTY_WRITE_COMBINE"; - case D3D12_CPU_PAGE_PROPERTY_WRITE_BACK: return "D3D12_CPU_PAGE_PROPERTY_WRITE_BACK"; - default: break; + case D3D12_CPU_PAGE_PROPERTY_UNKNOWN: ret = "D3D12_CPU_PAGE_PROPERTY_UNKNOWN"; break; + case D3D12_CPU_PAGE_PROPERTY_NOT_AVAILABLE: ret = "D3D12_CPU_PAGE_PROPERTY_NOT_AVAILABLE"; break; + case D3D12_CPU_PAGE_PROPERTY_WRITE_COMBINE: ret = "D3D12_CPU_PAGE_PROPERTY_WRITE_COMBINE"; break; + case D3D12_CPU_PAGE_PROPERTY_WRITE_BACK: ret = "D3D12_CPU_PAGE_PROPERTY_WRITE_BACK"; break; } - return "Unhandled D3D12_CPU_PAGE_PROPERTY"; + return ret; } -std::string ToString(const D3D12_MEMORY_POOL& value) +std::string ToString(const D3D12_MEMORY_POOL value) { + const char* ret = "Unhandled D3D12_MEMORY_POOL"; switch (value) { - case D3D12_MEMORY_POOL_UNKNOWN: return "D3D12_MEMORY_POOL_UNKNOWN"; - case D3D12_MEMORY_POOL_L0: return "D3D12_MEMORY_POOL_L0"; - case D3D12_MEMORY_POOL_L1: return "D3D12_MEMORY_POOL_L1"; - default: break; + case D3D12_MEMORY_POOL_UNKNOWN: ret = "D3D12_MEMORY_POOL_UNKNOWN"; break; + case D3D12_MEMORY_POOL_L0: ret = "D3D12_MEMORY_POOL_L0"; break; + case D3D12_MEMORY_POOL_L1: ret = "D3D12_MEMORY_POOL_L1"; break; } - return "Unhandled D3D12_MEMORY_POOL"; + return ret; } -std::string ToString(const D3D12_HEAP_FLAGS& value) +std::string ToString(const D3D12_HEAP_FLAGS value) { + const char* ret = "Unhandled D3D12_HEAP_FLAGS"; switch (value) { - case D3D12_HEAP_FLAG_NONE: return "D3D12_HEAP_FLAG_NONE"; - case D3D12_HEAP_FLAG_SHARED: return "D3D12_HEAP_FLAG_SHARED"; - case D3D12_HEAP_FLAG_DENY_BUFFERS: return "D3D12_HEAP_FLAG_DENY_BUFFERS"; - case D3D12_HEAP_FLAG_ALLOW_DISPLAY: return "D3D12_HEAP_FLAG_ALLOW_DISPLAY"; - case D3D12_HEAP_FLAG_SHARED_CROSS_ADAPTER: return "D3D12_HEAP_FLAG_SHARED_CROSS_ADAPTER"; - case D3D12_HEAP_FLAG_DENY_RT_DS_TEXTURES: return "D3D12_HEAP_FLAG_DENY_RT_DS_TEXTURES"; - case D3D12_HEAP_FLAG_DENY_NON_RT_DS_TEXTURES: return "D3D12_HEAP_FLAG_DENY_NON_RT_DS_TEXTURES"; - case D3D12_HEAP_FLAG_HARDWARE_PROTECTED: return "D3D12_HEAP_FLAG_HARDWARE_PROTECTED"; - case D3D12_HEAP_FLAG_ALLOW_WRITE_WATCH: return "D3D12_HEAP_FLAG_ALLOW_WRITE_WATCH"; - case D3D12_HEAP_FLAG_ALLOW_SHADER_ATOMICS: return "D3D12_HEAP_FLAG_ALLOW_SHADER_ATOMICS"; - case D3D12_HEAP_FLAG_CREATE_NOT_RESIDENT: return "D3D12_HEAP_FLAG_CREATE_NOT_RESIDENT"; - case D3D12_HEAP_FLAG_CREATE_NOT_ZEROED: return "D3D12_HEAP_FLAG_CREATE_NOT_ZEROED"; - case D3D12_HEAP_FLAG_TOOLS_USE_MANUAL_WRITE_TRACKING: return "D3D12_HEAP_FLAG_TOOLS_USE_MANUAL_WRITE_TRACKING"; - case D3D12_HEAP_FLAG_ALLOW_ONLY_BUFFERS: return "D3D12_HEAP_FLAG_ALLOW_ONLY_BUFFERS"; - case D3D12_HEAP_FLAG_ALLOW_ONLY_NON_RT_DS_TEXTURES: return "D3D12_HEAP_FLAG_ALLOW_ONLY_NON_RT_DS_TEXTURES"; - case D3D12_HEAP_FLAG_ALLOW_ONLY_RT_DS_TEXTURES: return "D3D12_HEAP_FLAG_ALLOW_ONLY_RT_DS_TEXTURES"; - default: break; + case D3D12_HEAP_FLAG_NONE: ret = "D3D12_HEAP_FLAG_NONE"; break; + case D3D12_HEAP_FLAG_SHARED: ret = "D3D12_HEAP_FLAG_SHARED"; break; + case D3D12_HEAP_FLAG_DENY_BUFFERS: ret = "D3D12_HEAP_FLAG_DENY_BUFFERS"; break; + case D3D12_HEAP_FLAG_ALLOW_DISPLAY: ret = "D3D12_HEAP_FLAG_ALLOW_DISPLAY"; break; + case D3D12_HEAP_FLAG_SHARED_CROSS_ADAPTER: ret = "D3D12_HEAP_FLAG_SHARED_CROSS_ADAPTER"; break; + case D3D12_HEAP_FLAG_DENY_RT_DS_TEXTURES: ret = "D3D12_HEAP_FLAG_DENY_RT_DS_TEXTURES"; break; + case D3D12_HEAP_FLAG_DENY_NON_RT_DS_TEXTURES: ret = "D3D12_HEAP_FLAG_DENY_NON_RT_DS_TEXTURES"; break; + case D3D12_HEAP_FLAG_HARDWARE_PROTECTED: ret = "D3D12_HEAP_FLAG_HARDWARE_PROTECTED"; break; + case D3D12_HEAP_FLAG_ALLOW_WRITE_WATCH: ret = "D3D12_HEAP_FLAG_ALLOW_WRITE_WATCH"; break; + case D3D12_HEAP_FLAG_ALLOW_SHADER_ATOMICS: ret = "D3D12_HEAP_FLAG_ALLOW_SHADER_ATOMICS"; break; + case D3D12_HEAP_FLAG_CREATE_NOT_RESIDENT: ret = "D3D12_HEAP_FLAG_CREATE_NOT_RESIDENT"; break; + case D3D12_HEAP_FLAG_CREATE_NOT_ZEROED: ret = "D3D12_HEAP_FLAG_CREATE_NOT_ZEROED"; break; + case D3D12_HEAP_FLAG_TOOLS_USE_MANUAL_WRITE_TRACKING: ret = "D3D12_HEAP_FLAG_TOOLS_USE_MANUAL_WRITE_TRACKING"; break; + case D3D12_HEAP_FLAG_ALLOW_ONLY_BUFFERS: ret = "D3D12_HEAP_FLAG_ALLOW_ONLY_BUFFERS"; break; + case D3D12_HEAP_FLAG_ALLOW_ONLY_NON_RT_DS_TEXTURES: ret = "D3D12_HEAP_FLAG_ALLOW_ONLY_NON_RT_DS_TEXTURES"; break; + case D3D12_HEAP_FLAG_ALLOW_ONLY_RT_DS_TEXTURES: ret = "D3D12_HEAP_FLAG_ALLOW_ONLY_RT_DS_TEXTURES"; break; } - return "Unhandled D3D12_HEAP_FLAGS"; + return ret; } -std::string ToString_D3D12_HEAP_FLAGS(uint32_t flags) +std::string ToString_D3D12_HEAP_FLAGS(const uint32_t flags) { return BitmaskToString(flags); } -std::string ToString(const D3D12_RESOURCE_DIMENSION& value) +std::string ToString(const D3D12_RESOURCE_DIMENSION value) { + const char* ret = "Unhandled D3D12_RESOURCE_DIMENSION"; switch (value) { - case D3D12_RESOURCE_DIMENSION_UNKNOWN: return "D3D12_RESOURCE_DIMENSION_UNKNOWN"; - case D3D12_RESOURCE_DIMENSION_BUFFER: return "D3D12_RESOURCE_DIMENSION_BUFFER"; - case D3D12_RESOURCE_DIMENSION_TEXTURE1D: return "D3D12_RESOURCE_DIMENSION_TEXTURE1D"; - case D3D12_RESOURCE_DIMENSION_TEXTURE2D: return "D3D12_RESOURCE_DIMENSION_TEXTURE2D"; - case D3D12_RESOURCE_DIMENSION_TEXTURE3D: return "D3D12_RESOURCE_DIMENSION_TEXTURE3D"; - default: break; + case D3D12_RESOURCE_DIMENSION_UNKNOWN: ret = "D3D12_RESOURCE_DIMENSION_UNKNOWN"; break; + case D3D12_RESOURCE_DIMENSION_BUFFER: ret = "D3D12_RESOURCE_DIMENSION_BUFFER"; break; + case D3D12_RESOURCE_DIMENSION_TEXTURE1D: ret = "D3D12_RESOURCE_DIMENSION_TEXTURE1D"; break; + case D3D12_RESOURCE_DIMENSION_TEXTURE2D: ret = "D3D12_RESOURCE_DIMENSION_TEXTURE2D"; break; + case D3D12_RESOURCE_DIMENSION_TEXTURE3D: ret = "D3D12_RESOURCE_DIMENSION_TEXTURE3D"; break; } - return "Unhandled D3D12_RESOURCE_DIMENSION"; + return ret; } -std::string ToString(const D3D12_TEXTURE_LAYOUT& value) +std::string ToString(const D3D12_TEXTURE_LAYOUT value) { + const char* ret = "Unhandled D3D12_TEXTURE_LAYOUT"; switch (value) { - case D3D12_TEXTURE_LAYOUT_UNKNOWN: return "D3D12_TEXTURE_LAYOUT_UNKNOWN"; - case D3D12_TEXTURE_LAYOUT_ROW_MAJOR: return "D3D12_TEXTURE_LAYOUT_ROW_MAJOR"; - case D3D12_TEXTURE_LAYOUT_64KB_UNDEFINED_SWIZZLE: return "D3D12_TEXTURE_LAYOUT_64KB_UNDEFINED_SWIZZLE"; - case D3D12_TEXTURE_LAYOUT_64KB_STANDARD_SWIZZLE: return "D3D12_TEXTURE_LAYOUT_64KB_STANDARD_SWIZZLE"; - default: break; + case D3D12_TEXTURE_LAYOUT_UNKNOWN: ret = "D3D12_TEXTURE_LAYOUT_UNKNOWN"; break; + case D3D12_TEXTURE_LAYOUT_ROW_MAJOR: ret = "D3D12_TEXTURE_LAYOUT_ROW_MAJOR"; break; + case D3D12_TEXTURE_LAYOUT_64KB_UNDEFINED_SWIZZLE: ret = "D3D12_TEXTURE_LAYOUT_64KB_UNDEFINED_SWIZZLE"; break; + case D3D12_TEXTURE_LAYOUT_64KB_STANDARD_SWIZZLE: ret = "D3D12_TEXTURE_LAYOUT_64KB_STANDARD_SWIZZLE"; break; } - return "Unhandled D3D12_TEXTURE_LAYOUT"; + return ret; } -std::string ToString(const D3D12_RESOURCE_FLAGS& value) +std::string ToString(const D3D12_RESOURCE_FLAGS value) { + const char* ret = "Unhandled D3D12_RESOURCE_FLAGS"; switch (value) { - case D3D12_RESOURCE_FLAG_NONE: return "D3D12_RESOURCE_FLAG_NONE"; - case D3D12_RESOURCE_FLAG_ALLOW_RENDER_TARGET: return "D3D12_RESOURCE_FLAG_ALLOW_RENDER_TARGET"; - case D3D12_RESOURCE_FLAG_ALLOW_DEPTH_STENCIL: return "D3D12_RESOURCE_FLAG_ALLOW_DEPTH_STENCIL"; - case D3D12_RESOURCE_FLAG_ALLOW_UNORDERED_ACCESS: return "D3D12_RESOURCE_FLAG_ALLOW_UNORDERED_ACCESS"; - case D3D12_RESOURCE_FLAG_DENY_SHADER_RESOURCE: return "D3D12_RESOURCE_FLAG_DENY_SHADER_RESOURCE"; - case D3D12_RESOURCE_FLAG_ALLOW_CROSS_ADAPTER: return "D3D12_RESOURCE_FLAG_ALLOW_CROSS_ADAPTER"; - case D3D12_RESOURCE_FLAG_ALLOW_SIMULTANEOUS_ACCESS: return "D3D12_RESOURCE_FLAG_ALLOW_SIMULTANEOUS_ACCESS"; - case D3D12_RESOURCE_FLAG_VIDEO_DECODE_REFERENCE_ONLY: return "D3D12_RESOURCE_FLAG_VIDEO_DECODE_REFERENCE_ONLY"; - case D3D12_RESOURCE_FLAG_VIDEO_ENCODE_REFERENCE_ONLY: return "D3D12_RESOURCE_FLAG_VIDEO_ENCODE_REFERENCE_ONLY"; - case D3D12_RESOURCE_FLAG_RAYTRACING_ACCELERATION_STRUCTURE: return "D3D12_RESOURCE_FLAG_RAYTRACING_ACCELERATION_STRUCTURE"; - default: break; + case D3D12_RESOURCE_FLAG_NONE: ret = "D3D12_RESOURCE_FLAG_NONE"; break; + case D3D12_RESOURCE_FLAG_ALLOW_RENDER_TARGET: ret = "D3D12_RESOURCE_FLAG_ALLOW_RENDER_TARGET"; break; + case D3D12_RESOURCE_FLAG_ALLOW_DEPTH_STENCIL: ret = "D3D12_RESOURCE_FLAG_ALLOW_DEPTH_STENCIL"; break; + case D3D12_RESOURCE_FLAG_ALLOW_UNORDERED_ACCESS: ret = "D3D12_RESOURCE_FLAG_ALLOW_UNORDERED_ACCESS"; break; + case D3D12_RESOURCE_FLAG_DENY_SHADER_RESOURCE: ret = "D3D12_RESOURCE_FLAG_DENY_SHADER_RESOURCE"; break; + case D3D12_RESOURCE_FLAG_ALLOW_CROSS_ADAPTER: ret = "D3D12_RESOURCE_FLAG_ALLOW_CROSS_ADAPTER"; break; + case D3D12_RESOURCE_FLAG_ALLOW_SIMULTANEOUS_ACCESS: ret = "D3D12_RESOURCE_FLAG_ALLOW_SIMULTANEOUS_ACCESS"; break; + case D3D12_RESOURCE_FLAG_VIDEO_DECODE_REFERENCE_ONLY: ret = "D3D12_RESOURCE_FLAG_VIDEO_DECODE_REFERENCE_ONLY"; break; + case D3D12_RESOURCE_FLAG_VIDEO_ENCODE_REFERENCE_ONLY: ret = "D3D12_RESOURCE_FLAG_VIDEO_ENCODE_REFERENCE_ONLY"; break; + case D3D12_RESOURCE_FLAG_RAYTRACING_ACCELERATION_STRUCTURE: ret = "D3D12_RESOURCE_FLAG_RAYTRACING_ACCELERATION_STRUCTURE"; break; } - return "Unhandled D3D12_RESOURCE_FLAGS"; + return ret; } -std::string ToString_D3D12_RESOURCE_FLAGS(uint32_t flags) +std::string ToString_D3D12_RESOURCE_FLAGS(const uint32_t flags) { return BitmaskToString(flags); } -std::string ToString(const D3D12_TILE_RANGE_FLAGS& value) +std::string ToString(const D3D12_TILE_RANGE_FLAGS value) { + const char* ret = "Unhandled D3D12_TILE_RANGE_FLAGS"; switch (value) { - case D3D12_TILE_RANGE_FLAG_NONE: return "D3D12_TILE_RANGE_FLAG_NONE"; - case D3D12_TILE_RANGE_FLAG_NULL: return "D3D12_TILE_RANGE_FLAG_NULL"; - case D3D12_TILE_RANGE_FLAG_SKIP: return "D3D12_TILE_RANGE_FLAG_SKIP"; - case D3D12_TILE_RANGE_FLAG_REUSE_SINGLE_TILE: return "D3D12_TILE_RANGE_FLAG_REUSE_SINGLE_TILE"; - default: break; + case D3D12_TILE_RANGE_FLAG_NONE: ret = "D3D12_TILE_RANGE_FLAG_NONE"; break; + case D3D12_TILE_RANGE_FLAG_NULL: ret = "D3D12_TILE_RANGE_FLAG_NULL"; break; + case D3D12_TILE_RANGE_FLAG_SKIP: ret = "D3D12_TILE_RANGE_FLAG_SKIP"; break; + case D3D12_TILE_RANGE_FLAG_REUSE_SINGLE_TILE: ret = "D3D12_TILE_RANGE_FLAG_REUSE_SINGLE_TILE"; break; } - return "Unhandled D3D12_TILE_RANGE_FLAGS"; + return ret; } -std::string ToString_D3D12_TILE_RANGE_FLAGS(uint32_t flags) +std::string ToString_D3D12_TILE_RANGE_FLAGS(const uint32_t flags) { return BitmaskToString(flags); } -std::string ToString(const D3D12_TILE_MAPPING_FLAGS& value) +std::string ToString(const D3D12_TILE_MAPPING_FLAGS value) { + const char* ret = "Unhandled D3D12_TILE_MAPPING_FLAGS"; switch (value) { - case D3D12_TILE_MAPPING_FLAG_NONE: return "D3D12_TILE_MAPPING_FLAG_NONE"; - case D3D12_TILE_MAPPING_FLAG_NO_HAZARD: return "D3D12_TILE_MAPPING_FLAG_NO_HAZARD"; - default: break; + case D3D12_TILE_MAPPING_FLAG_NONE: ret = "D3D12_TILE_MAPPING_FLAG_NONE"; break; + case D3D12_TILE_MAPPING_FLAG_NO_HAZARD: ret = "D3D12_TILE_MAPPING_FLAG_NO_HAZARD"; break; } - return "Unhandled D3D12_TILE_MAPPING_FLAGS"; + return ret; } -std::string ToString_D3D12_TILE_MAPPING_FLAGS(uint32_t flags) +std::string ToString_D3D12_TILE_MAPPING_FLAGS(const uint32_t flags) { return BitmaskToString(flags); } -std::string ToString(const D3D12_TILE_COPY_FLAGS& value) +std::string ToString(const D3D12_TILE_COPY_FLAGS value) { + const char* ret = "Unhandled D3D12_TILE_COPY_FLAGS"; switch (value) { - case D3D12_TILE_COPY_FLAG_NONE: return "D3D12_TILE_COPY_FLAG_NONE"; - case D3D12_TILE_COPY_FLAG_NO_HAZARD: return "D3D12_TILE_COPY_FLAG_NO_HAZARD"; - case D3D12_TILE_COPY_FLAG_LINEAR_BUFFER_TO_SWIZZLED_TILED_RESOURCE: return "D3D12_TILE_COPY_FLAG_LINEAR_BUFFER_TO_SWIZZLED_TILED_RESOURCE"; - case D3D12_TILE_COPY_FLAG_SWIZZLED_TILED_RESOURCE_TO_LINEAR_BUFFER: return "D3D12_TILE_COPY_FLAG_SWIZZLED_TILED_RESOURCE_TO_LINEAR_BUFFER"; - default: break; + case D3D12_TILE_COPY_FLAG_NONE: ret = "D3D12_TILE_COPY_FLAG_NONE"; break; + case D3D12_TILE_COPY_FLAG_NO_HAZARD: ret = "D3D12_TILE_COPY_FLAG_NO_HAZARD"; break; + case D3D12_TILE_COPY_FLAG_LINEAR_BUFFER_TO_SWIZZLED_TILED_RESOURCE: ret = "D3D12_TILE_COPY_FLAG_LINEAR_BUFFER_TO_SWIZZLED_TILED_RESOURCE"; break; + case D3D12_TILE_COPY_FLAG_SWIZZLED_TILED_RESOURCE_TO_LINEAR_BUFFER: ret = "D3D12_TILE_COPY_FLAG_SWIZZLED_TILED_RESOURCE_TO_LINEAR_BUFFER"; break; } - return "Unhandled D3D12_TILE_COPY_FLAGS"; + return ret; } -std::string ToString_D3D12_TILE_COPY_FLAGS(uint32_t flags) +std::string ToString_D3D12_TILE_COPY_FLAGS(const uint32_t flags) { return BitmaskToString(flags); } -std::string ToString(const D3D12_RESOURCE_STATES& value) -{ - switch (value) { - case D3D12_RESOURCE_STATE_COMMON: return "D3D12_RESOURCE_STATE_COMMON"; - case D3D12_RESOURCE_STATE_VERTEX_AND_CONSTANT_BUFFER: return "D3D12_RESOURCE_STATE_VERTEX_AND_CONSTANT_BUFFER"; - case D3D12_RESOURCE_STATE_INDEX_BUFFER: return "D3D12_RESOURCE_STATE_INDEX_BUFFER"; - case D3D12_RESOURCE_STATE_RENDER_TARGET: return "D3D12_RESOURCE_STATE_RENDER_TARGET"; - case D3D12_RESOURCE_STATE_UNORDERED_ACCESS: return "D3D12_RESOURCE_STATE_UNORDERED_ACCESS"; - case D3D12_RESOURCE_STATE_DEPTH_WRITE: return "D3D12_RESOURCE_STATE_DEPTH_WRITE"; - case D3D12_RESOURCE_STATE_DEPTH_READ: return "D3D12_RESOURCE_STATE_DEPTH_READ"; - case D3D12_RESOURCE_STATE_NON_PIXEL_SHADER_RESOURCE: return "D3D12_RESOURCE_STATE_NON_PIXEL_SHADER_RESOURCE"; - case D3D12_RESOURCE_STATE_PIXEL_SHADER_RESOURCE: return "D3D12_RESOURCE_STATE_PIXEL_SHADER_RESOURCE"; - case D3D12_RESOURCE_STATE_STREAM_OUT: return "D3D12_RESOURCE_STATE_STREAM_OUT"; - case D3D12_RESOURCE_STATE_INDIRECT_ARGUMENT: return "D3D12_RESOURCE_STATE_INDIRECT_ARGUMENT"; - case D3D12_RESOURCE_STATE_COPY_DEST: return "D3D12_RESOURCE_STATE_COPY_DEST"; - case D3D12_RESOURCE_STATE_COPY_SOURCE: return "D3D12_RESOURCE_STATE_COPY_SOURCE"; - case D3D12_RESOURCE_STATE_RESOLVE_DEST: return "D3D12_RESOURCE_STATE_RESOLVE_DEST"; - case D3D12_RESOURCE_STATE_RESOLVE_SOURCE: return "D3D12_RESOURCE_STATE_RESOLVE_SOURCE"; - case D3D12_RESOURCE_STATE_RAYTRACING_ACCELERATION_STRUCTURE: return "D3D12_RESOURCE_STATE_RAYTRACING_ACCELERATION_STRUCTURE"; - case D3D12_RESOURCE_STATE_SHADING_RATE_SOURCE: return "D3D12_RESOURCE_STATE_SHADING_RATE_SOURCE"; - case D3D12_RESOURCE_STATE_GENERIC_READ: return "D3D12_RESOURCE_STATE_GENERIC_READ"; - case D3D12_RESOURCE_STATE_ALL_SHADER_RESOURCE: return "D3D12_RESOURCE_STATE_ALL_SHADER_RESOURCE"; - case D3D12_RESOURCE_STATE_VIDEO_DECODE_READ: return "D3D12_RESOURCE_STATE_VIDEO_DECODE_READ"; - case D3D12_RESOURCE_STATE_VIDEO_DECODE_WRITE: return "D3D12_RESOURCE_STATE_VIDEO_DECODE_WRITE"; - case D3D12_RESOURCE_STATE_VIDEO_PROCESS_READ: return "D3D12_RESOURCE_STATE_VIDEO_PROCESS_READ"; - case D3D12_RESOURCE_STATE_VIDEO_PROCESS_WRITE: return "D3D12_RESOURCE_STATE_VIDEO_PROCESS_WRITE"; - case D3D12_RESOURCE_STATE_VIDEO_ENCODE_READ: return "D3D12_RESOURCE_STATE_VIDEO_ENCODE_READ"; - case D3D12_RESOURCE_STATE_VIDEO_ENCODE_WRITE: return "D3D12_RESOURCE_STATE_VIDEO_ENCODE_WRITE"; - default: break; - } - return "Unhandled D3D12_RESOURCE_STATES"; -} - -std::string ToString_D3D12_RESOURCE_STATES(uint32_t flags) +std::string ToString(const D3D12_RESOURCE_STATES value) +{ + const char* ret = "Unhandled D3D12_RESOURCE_STATES"; + switch (value) { + case D3D12_RESOURCE_STATE_COMMON: ret = "D3D12_RESOURCE_STATE_COMMON"; break; + case D3D12_RESOURCE_STATE_VERTEX_AND_CONSTANT_BUFFER: ret = "D3D12_RESOURCE_STATE_VERTEX_AND_CONSTANT_BUFFER"; break; + case D3D12_RESOURCE_STATE_INDEX_BUFFER: ret = "D3D12_RESOURCE_STATE_INDEX_BUFFER"; break; + case D3D12_RESOURCE_STATE_RENDER_TARGET: ret = "D3D12_RESOURCE_STATE_RENDER_TARGET"; break; + case D3D12_RESOURCE_STATE_UNORDERED_ACCESS: ret = "D3D12_RESOURCE_STATE_UNORDERED_ACCESS"; break; + case D3D12_RESOURCE_STATE_DEPTH_WRITE: ret = "D3D12_RESOURCE_STATE_DEPTH_WRITE"; break; + case D3D12_RESOURCE_STATE_DEPTH_READ: ret = "D3D12_RESOURCE_STATE_DEPTH_READ"; break; + case D3D12_RESOURCE_STATE_NON_PIXEL_SHADER_RESOURCE: ret = "D3D12_RESOURCE_STATE_NON_PIXEL_SHADER_RESOURCE"; break; + case D3D12_RESOURCE_STATE_PIXEL_SHADER_RESOURCE: ret = "D3D12_RESOURCE_STATE_PIXEL_SHADER_RESOURCE"; break; + case D3D12_RESOURCE_STATE_STREAM_OUT: ret = "D3D12_RESOURCE_STATE_STREAM_OUT"; break; + case D3D12_RESOURCE_STATE_INDIRECT_ARGUMENT: ret = "D3D12_RESOURCE_STATE_INDIRECT_ARGUMENT"; break; + case D3D12_RESOURCE_STATE_COPY_DEST: ret = "D3D12_RESOURCE_STATE_COPY_DEST"; break; + case D3D12_RESOURCE_STATE_COPY_SOURCE: ret = "D3D12_RESOURCE_STATE_COPY_SOURCE"; break; + case D3D12_RESOURCE_STATE_RESOLVE_DEST: ret = "D3D12_RESOURCE_STATE_RESOLVE_DEST"; break; + case D3D12_RESOURCE_STATE_RESOLVE_SOURCE: ret = "D3D12_RESOURCE_STATE_RESOLVE_SOURCE"; break; + case D3D12_RESOURCE_STATE_RAYTRACING_ACCELERATION_STRUCTURE: ret = "D3D12_RESOURCE_STATE_RAYTRACING_ACCELERATION_STRUCTURE"; break; + case D3D12_RESOURCE_STATE_SHADING_RATE_SOURCE: ret = "D3D12_RESOURCE_STATE_SHADING_RATE_SOURCE"; break; + case D3D12_RESOURCE_STATE_GENERIC_READ: ret = "D3D12_RESOURCE_STATE_GENERIC_READ"; break; + case D3D12_RESOURCE_STATE_ALL_SHADER_RESOURCE: ret = "D3D12_RESOURCE_STATE_ALL_SHADER_RESOURCE"; break; + case D3D12_RESOURCE_STATE_VIDEO_DECODE_READ: ret = "D3D12_RESOURCE_STATE_VIDEO_DECODE_READ"; break; + case D3D12_RESOURCE_STATE_VIDEO_DECODE_WRITE: ret = "D3D12_RESOURCE_STATE_VIDEO_DECODE_WRITE"; break; + case D3D12_RESOURCE_STATE_VIDEO_PROCESS_READ: ret = "D3D12_RESOURCE_STATE_VIDEO_PROCESS_READ"; break; + case D3D12_RESOURCE_STATE_VIDEO_PROCESS_WRITE: ret = "D3D12_RESOURCE_STATE_VIDEO_PROCESS_WRITE"; break; + case D3D12_RESOURCE_STATE_VIDEO_ENCODE_READ: ret = "D3D12_RESOURCE_STATE_VIDEO_ENCODE_READ"; break; + case D3D12_RESOURCE_STATE_VIDEO_ENCODE_WRITE: ret = "D3D12_RESOURCE_STATE_VIDEO_ENCODE_WRITE"; break; + } + return ret; +} + +std::string ToString_D3D12_RESOURCE_STATES(const uint32_t flags) { return BitmaskToString(flags); } -std::string ToString(const D3D12_RESOURCE_BARRIER_TYPE& value) +std::string ToString(const D3D12_RESOURCE_BARRIER_TYPE value) { + const char* ret = "Unhandled D3D12_RESOURCE_BARRIER_TYPE"; switch (value) { - case D3D12_RESOURCE_BARRIER_TYPE_TRANSITION: return "D3D12_RESOURCE_BARRIER_TYPE_TRANSITION"; - case D3D12_RESOURCE_BARRIER_TYPE_ALIASING: return "D3D12_RESOURCE_BARRIER_TYPE_ALIASING"; - case D3D12_RESOURCE_BARRIER_TYPE_UAV: return "D3D12_RESOURCE_BARRIER_TYPE_UAV"; - default: break; + case D3D12_RESOURCE_BARRIER_TYPE_TRANSITION: ret = "D3D12_RESOURCE_BARRIER_TYPE_TRANSITION"; break; + case D3D12_RESOURCE_BARRIER_TYPE_ALIASING: ret = "D3D12_RESOURCE_BARRIER_TYPE_ALIASING"; break; + case D3D12_RESOURCE_BARRIER_TYPE_UAV: ret = "D3D12_RESOURCE_BARRIER_TYPE_UAV"; break; } - return "Unhandled D3D12_RESOURCE_BARRIER_TYPE"; + return ret; } -std::string ToString(const D3D12_RESOURCE_BARRIER_FLAGS& value) +std::string ToString(const D3D12_RESOURCE_BARRIER_FLAGS value) { + const char* ret = "Unhandled D3D12_RESOURCE_BARRIER_FLAGS"; switch (value) { - case D3D12_RESOURCE_BARRIER_FLAG_NONE: return "D3D12_RESOURCE_BARRIER_FLAG_NONE"; - case D3D12_RESOURCE_BARRIER_FLAG_BEGIN_ONLY: return "D3D12_RESOURCE_BARRIER_FLAG_BEGIN_ONLY"; - case D3D12_RESOURCE_BARRIER_FLAG_END_ONLY: return "D3D12_RESOURCE_BARRIER_FLAG_END_ONLY"; - default: break; + case D3D12_RESOURCE_BARRIER_FLAG_NONE: ret = "D3D12_RESOURCE_BARRIER_FLAG_NONE"; break; + case D3D12_RESOURCE_BARRIER_FLAG_BEGIN_ONLY: ret = "D3D12_RESOURCE_BARRIER_FLAG_BEGIN_ONLY"; break; + case D3D12_RESOURCE_BARRIER_FLAG_END_ONLY: ret = "D3D12_RESOURCE_BARRIER_FLAG_END_ONLY"; break; } - return "Unhandled D3D12_RESOURCE_BARRIER_FLAGS"; + return ret; } -std::string ToString_D3D12_RESOURCE_BARRIER_FLAGS(uint32_t flags) +std::string ToString_D3D12_RESOURCE_BARRIER_FLAGS(const uint32_t flags) { return BitmaskToString(flags); } -std::string ToString(const D3D12_TEXTURE_COPY_TYPE& value) +std::string ToString(const D3D12_TEXTURE_COPY_TYPE value) { + const char* ret = "Unhandled D3D12_TEXTURE_COPY_TYPE"; switch (value) { - case D3D12_TEXTURE_COPY_TYPE_SUBRESOURCE_INDEX: return "D3D12_TEXTURE_COPY_TYPE_SUBRESOURCE_INDEX"; - case D3D12_TEXTURE_COPY_TYPE_PLACED_FOOTPRINT: return "D3D12_TEXTURE_COPY_TYPE_PLACED_FOOTPRINT"; - default: break; + case D3D12_TEXTURE_COPY_TYPE_SUBRESOURCE_INDEX: ret = "D3D12_TEXTURE_COPY_TYPE_SUBRESOURCE_INDEX"; break; + case D3D12_TEXTURE_COPY_TYPE_PLACED_FOOTPRINT: ret = "D3D12_TEXTURE_COPY_TYPE_PLACED_FOOTPRINT"; break; } - return "Unhandled D3D12_TEXTURE_COPY_TYPE"; + return ret; } -std::string ToString(const D3D12_RESOLVE_MODE& value) +std::string ToString(const D3D12_RESOLVE_MODE value) { + const char* ret = "Unhandled D3D12_RESOLVE_MODE"; switch (value) { - case D3D12_RESOLVE_MODE_DECOMPRESS: return "D3D12_RESOLVE_MODE_DECOMPRESS"; - case D3D12_RESOLVE_MODE_MIN: return "D3D12_RESOLVE_MODE_MIN"; - case D3D12_RESOLVE_MODE_MAX: return "D3D12_RESOLVE_MODE_MAX"; - case D3D12_RESOLVE_MODE_AVERAGE: return "D3D12_RESOLVE_MODE_AVERAGE"; - case D3D12_RESOLVE_MODE_ENCODE_SAMPLER_FEEDBACK: return "D3D12_RESOLVE_MODE_ENCODE_SAMPLER_FEEDBACK"; - case D3D12_RESOLVE_MODE_DECODE_SAMPLER_FEEDBACK: return "D3D12_RESOLVE_MODE_DECODE_SAMPLER_FEEDBACK"; - default: break; + case D3D12_RESOLVE_MODE_DECOMPRESS: ret = "D3D12_RESOLVE_MODE_DECOMPRESS"; break; + case D3D12_RESOLVE_MODE_MIN: ret = "D3D12_RESOLVE_MODE_MIN"; break; + case D3D12_RESOLVE_MODE_MAX: ret = "D3D12_RESOLVE_MODE_MAX"; break; + case D3D12_RESOLVE_MODE_AVERAGE: ret = "D3D12_RESOLVE_MODE_AVERAGE"; break; + case D3D12_RESOLVE_MODE_ENCODE_SAMPLER_FEEDBACK: ret = "D3D12_RESOLVE_MODE_ENCODE_SAMPLER_FEEDBACK"; break; + case D3D12_RESOLVE_MODE_DECODE_SAMPLER_FEEDBACK: ret = "D3D12_RESOLVE_MODE_DECODE_SAMPLER_FEEDBACK"; break; } - return "Unhandled D3D12_RESOLVE_MODE"; + return ret; } -std::string ToString(const D3D12_VIEW_INSTANCING_FLAGS& value) +std::string ToString(const D3D12_VIEW_INSTANCING_FLAGS value) { + const char* ret = "Unhandled D3D12_VIEW_INSTANCING_FLAGS"; switch (value) { - case D3D12_VIEW_INSTANCING_FLAG_NONE: return "D3D12_VIEW_INSTANCING_FLAG_NONE"; - case D3D12_VIEW_INSTANCING_FLAG_ENABLE_VIEW_INSTANCE_MASKING: return "D3D12_VIEW_INSTANCING_FLAG_ENABLE_VIEW_INSTANCE_MASKING"; - default: break; + case D3D12_VIEW_INSTANCING_FLAG_NONE: ret = "D3D12_VIEW_INSTANCING_FLAG_NONE"; break; + case D3D12_VIEW_INSTANCING_FLAG_ENABLE_VIEW_INSTANCE_MASKING: ret = "D3D12_VIEW_INSTANCING_FLAG_ENABLE_VIEW_INSTANCE_MASKING"; break; } - return "Unhandled D3D12_VIEW_INSTANCING_FLAGS"; + return ret; } -std::string ToString_D3D12_VIEW_INSTANCING_FLAGS(uint32_t flags) +std::string ToString_D3D12_VIEW_INSTANCING_FLAGS(const uint32_t flags) { return BitmaskToString(flags); } -std::string ToString(const D3D12_SHADER_COMPONENT_MAPPING& value) +std::string ToString(const D3D12_SHADER_COMPONENT_MAPPING value) { + const char* ret = "Unhandled D3D12_SHADER_COMPONENT_MAPPING"; switch (value) { - case D3D12_SHADER_COMPONENT_MAPPING_FROM_MEMORY_COMPONENT_0: return "D3D12_SHADER_COMPONENT_MAPPING_FROM_MEMORY_COMPONENT_0"; - case D3D12_SHADER_COMPONENT_MAPPING_FROM_MEMORY_COMPONENT_1: return "D3D12_SHADER_COMPONENT_MAPPING_FROM_MEMORY_COMPONENT_1"; - case D3D12_SHADER_COMPONENT_MAPPING_FROM_MEMORY_COMPONENT_2: return "D3D12_SHADER_COMPONENT_MAPPING_FROM_MEMORY_COMPONENT_2"; - case D3D12_SHADER_COMPONENT_MAPPING_FROM_MEMORY_COMPONENT_3: return "D3D12_SHADER_COMPONENT_MAPPING_FROM_MEMORY_COMPONENT_3"; - case D3D12_SHADER_COMPONENT_MAPPING_FORCE_VALUE_0: return "D3D12_SHADER_COMPONENT_MAPPING_FORCE_VALUE_0"; - case D3D12_SHADER_COMPONENT_MAPPING_FORCE_VALUE_1: return "D3D12_SHADER_COMPONENT_MAPPING_FORCE_VALUE_1"; - default: break; + case D3D12_SHADER_COMPONENT_MAPPING_FROM_MEMORY_COMPONENT_0: ret = "D3D12_SHADER_COMPONENT_MAPPING_FROM_MEMORY_COMPONENT_0"; break; + case D3D12_SHADER_COMPONENT_MAPPING_FROM_MEMORY_COMPONENT_1: ret = "D3D12_SHADER_COMPONENT_MAPPING_FROM_MEMORY_COMPONENT_1"; break; + case D3D12_SHADER_COMPONENT_MAPPING_FROM_MEMORY_COMPONENT_2: ret = "D3D12_SHADER_COMPONENT_MAPPING_FROM_MEMORY_COMPONENT_2"; break; + case D3D12_SHADER_COMPONENT_MAPPING_FROM_MEMORY_COMPONENT_3: ret = "D3D12_SHADER_COMPONENT_MAPPING_FROM_MEMORY_COMPONENT_3"; break; + case D3D12_SHADER_COMPONENT_MAPPING_FORCE_VALUE_0: ret = "D3D12_SHADER_COMPONENT_MAPPING_FORCE_VALUE_0"; break; + case D3D12_SHADER_COMPONENT_MAPPING_FORCE_VALUE_1: ret = "D3D12_SHADER_COMPONENT_MAPPING_FORCE_VALUE_1"; break; } - return "Unhandled D3D12_SHADER_COMPONENT_MAPPING"; + return ret; } -std::string ToString(const D3D12_BUFFER_SRV_FLAGS& value) +std::string ToString(const D3D12_BUFFER_SRV_FLAGS value) { + const char* ret = "Unhandled D3D12_BUFFER_SRV_FLAGS"; switch (value) { - case D3D12_BUFFER_SRV_FLAG_NONE: return "D3D12_BUFFER_SRV_FLAG_NONE"; - case D3D12_BUFFER_SRV_FLAG_RAW: return "D3D12_BUFFER_SRV_FLAG_RAW"; - default: break; + case D3D12_BUFFER_SRV_FLAG_NONE: ret = "D3D12_BUFFER_SRV_FLAG_NONE"; break; + case D3D12_BUFFER_SRV_FLAG_RAW: ret = "D3D12_BUFFER_SRV_FLAG_RAW"; break; } - return "Unhandled D3D12_BUFFER_SRV_FLAGS"; + return ret; } -std::string ToString_D3D12_BUFFER_SRV_FLAGS(uint32_t flags) +std::string ToString_D3D12_BUFFER_SRV_FLAGS(const uint32_t flags) { return BitmaskToString(flags); } -std::string ToString(const D3D12_SRV_DIMENSION& value) +std::string ToString(const D3D12_SRV_DIMENSION value) { + const char* ret = "Unhandled D3D12_SRV_DIMENSION"; switch (value) { - case D3D12_SRV_DIMENSION_UNKNOWN: return "D3D12_SRV_DIMENSION_UNKNOWN"; - case D3D12_SRV_DIMENSION_BUFFER: return "D3D12_SRV_DIMENSION_BUFFER"; - case D3D12_SRV_DIMENSION_TEXTURE1D: return "D3D12_SRV_DIMENSION_TEXTURE1D"; - case D3D12_SRV_DIMENSION_TEXTURE1DARRAY: return "D3D12_SRV_DIMENSION_TEXTURE1DARRAY"; - case D3D12_SRV_DIMENSION_TEXTURE2D: return "D3D12_SRV_DIMENSION_TEXTURE2D"; - case D3D12_SRV_DIMENSION_TEXTURE2DARRAY: return "D3D12_SRV_DIMENSION_TEXTURE2DARRAY"; - case D3D12_SRV_DIMENSION_TEXTURE2DMS: return "D3D12_SRV_DIMENSION_TEXTURE2DMS"; - case D3D12_SRV_DIMENSION_TEXTURE2DMSARRAY: return "D3D12_SRV_DIMENSION_TEXTURE2DMSARRAY"; - case D3D12_SRV_DIMENSION_TEXTURE3D: return "D3D12_SRV_DIMENSION_TEXTURE3D"; - case D3D12_SRV_DIMENSION_TEXTURECUBE: return "D3D12_SRV_DIMENSION_TEXTURECUBE"; - case D3D12_SRV_DIMENSION_TEXTURECUBEARRAY: return "D3D12_SRV_DIMENSION_TEXTURECUBEARRAY"; - case D3D12_SRV_DIMENSION_RAYTRACING_ACCELERATION_STRUCTURE: return "D3D12_SRV_DIMENSION_RAYTRACING_ACCELERATION_STRUCTURE"; - default: break; + case D3D12_SRV_DIMENSION_UNKNOWN: ret = "D3D12_SRV_DIMENSION_UNKNOWN"; break; + case D3D12_SRV_DIMENSION_BUFFER: ret = "D3D12_SRV_DIMENSION_BUFFER"; break; + case D3D12_SRV_DIMENSION_TEXTURE1D: ret = "D3D12_SRV_DIMENSION_TEXTURE1D"; break; + case D3D12_SRV_DIMENSION_TEXTURE1DARRAY: ret = "D3D12_SRV_DIMENSION_TEXTURE1DARRAY"; break; + case D3D12_SRV_DIMENSION_TEXTURE2D: ret = "D3D12_SRV_DIMENSION_TEXTURE2D"; break; + case D3D12_SRV_DIMENSION_TEXTURE2DARRAY: ret = "D3D12_SRV_DIMENSION_TEXTURE2DARRAY"; break; + case D3D12_SRV_DIMENSION_TEXTURE2DMS: ret = "D3D12_SRV_DIMENSION_TEXTURE2DMS"; break; + case D3D12_SRV_DIMENSION_TEXTURE2DMSARRAY: ret = "D3D12_SRV_DIMENSION_TEXTURE2DMSARRAY"; break; + case D3D12_SRV_DIMENSION_TEXTURE3D: ret = "D3D12_SRV_DIMENSION_TEXTURE3D"; break; + case D3D12_SRV_DIMENSION_TEXTURECUBE: ret = "D3D12_SRV_DIMENSION_TEXTURECUBE"; break; + case D3D12_SRV_DIMENSION_TEXTURECUBEARRAY: ret = "D3D12_SRV_DIMENSION_TEXTURECUBEARRAY"; break; + case D3D12_SRV_DIMENSION_RAYTRACING_ACCELERATION_STRUCTURE: ret = "D3D12_SRV_DIMENSION_RAYTRACING_ACCELERATION_STRUCTURE"; break; } - return "Unhandled D3D12_SRV_DIMENSION"; + return ret; } -std::string ToString(const D3D12_FILTER& value) +std::string ToString(const D3D12_FILTER value) { + const char* ret = "Unhandled D3D12_FILTER"; switch (value) { - case D3D12_FILTER_MIN_MAG_MIP_POINT: return "D3D12_FILTER_MIN_MAG_MIP_POINT"; - case D3D12_FILTER_MIN_MAG_POINT_MIP_LINEAR: return "D3D12_FILTER_MIN_MAG_POINT_MIP_LINEAR"; - case D3D12_FILTER_MIN_POINT_MAG_LINEAR_MIP_POINT: return "D3D12_FILTER_MIN_POINT_MAG_LINEAR_MIP_POINT"; - case D3D12_FILTER_MIN_POINT_MAG_MIP_LINEAR: return "D3D12_FILTER_MIN_POINT_MAG_MIP_LINEAR"; - case D3D12_FILTER_MIN_LINEAR_MAG_MIP_POINT: return "D3D12_FILTER_MIN_LINEAR_MAG_MIP_POINT"; - case D3D12_FILTER_MIN_LINEAR_MAG_POINT_MIP_LINEAR: return "D3D12_FILTER_MIN_LINEAR_MAG_POINT_MIP_LINEAR"; - case D3D12_FILTER_MIN_MAG_LINEAR_MIP_POINT: return "D3D12_FILTER_MIN_MAG_LINEAR_MIP_POINT"; - case D3D12_FILTER_MIN_MAG_MIP_LINEAR: return "D3D12_FILTER_MIN_MAG_MIP_LINEAR"; - case D3D12_FILTER_MIN_MAG_ANISOTROPIC_MIP_POINT: return "D3D12_FILTER_MIN_MAG_ANISOTROPIC_MIP_POINT"; - case D3D12_FILTER_ANISOTROPIC: return "D3D12_FILTER_ANISOTROPIC"; - case D3D12_FILTER_COMPARISON_MIN_MAG_MIP_POINT: return "D3D12_FILTER_COMPARISON_MIN_MAG_MIP_POINT"; - case D3D12_FILTER_COMPARISON_MIN_MAG_POINT_MIP_LINEAR: return "D3D12_FILTER_COMPARISON_MIN_MAG_POINT_MIP_LINEAR"; - case D3D12_FILTER_COMPARISON_MIN_POINT_MAG_LINEAR_MIP_POINT: return "D3D12_FILTER_COMPARISON_MIN_POINT_MAG_LINEAR_MIP_POINT"; - case D3D12_FILTER_COMPARISON_MIN_POINT_MAG_MIP_LINEAR: return "D3D12_FILTER_COMPARISON_MIN_POINT_MAG_MIP_LINEAR"; - case D3D12_FILTER_COMPARISON_MIN_LINEAR_MAG_MIP_POINT: return "D3D12_FILTER_COMPARISON_MIN_LINEAR_MAG_MIP_POINT"; - case D3D12_FILTER_COMPARISON_MIN_LINEAR_MAG_POINT_MIP_LINEAR: return "D3D12_FILTER_COMPARISON_MIN_LINEAR_MAG_POINT_MIP_LINEAR"; - case D3D12_FILTER_COMPARISON_MIN_MAG_LINEAR_MIP_POINT: return "D3D12_FILTER_COMPARISON_MIN_MAG_LINEAR_MIP_POINT"; - case D3D12_FILTER_COMPARISON_MIN_MAG_MIP_LINEAR: return "D3D12_FILTER_COMPARISON_MIN_MAG_MIP_LINEAR"; - case D3D12_FILTER_COMPARISON_MIN_MAG_ANISOTROPIC_MIP_POINT: return "D3D12_FILTER_COMPARISON_MIN_MAG_ANISOTROPIC_MIP_POINT"; - case D3D12_FILTER_COMPARISON_ANISOTROPIC: return "D3D12_FILTER_COMPARISON_ANISOTROPIC"; - case D3D12_FILTER_MINIMUM_MIN_MAG_MIP_POINT: return "D3D12_FILTER_MINIMUM_MIN_MAG_MIP_POINT"; - case D3D12_FILTER_MINIMUM_MIN_MAG_POINT_MIP_LINEAR: return "D3D12_FILTER_MINIMUM_MIN_MAG_POINT_MIP_LINEAR"; - case D3D12_FILTER_MINIMUM_MIN_POINT_MAG_LINEAR_MIP_POINT: return "D3D12_FILTER_MINIMUM_MIN_POINT_MAG_LINEAR_MIP_POINT"; - case D3D12_FILTER_MINIMUM_MIN_POINT_MAG_MIP_LINEAR: return "D3D12_FILTER_MINIMUM_MIN_POINT_MAG_MIP_LINEAR"; - case D3D12_FILTER_MINIMUM_MIN_LINEAR_MAG_MIP_POINT: return "D3D12_FILTER_MINIMUM_MIN_LINEAR_MAG_MIP_POINT"; - case D3D12_FILTER_MINIMUM_MIN_LINEAR_MAG_POINT_MIP_LINEAR: return "D3D12_FILTER_MINIMUM_MIN_LINEAR_MAG_POINT_MIP_LINEAR"; - case D3D12_FILTER_MINIMUM_MIN_MAG_LINEAR_MIP_POINT: return "D3D12_FILTER_MINIMUM_MIN_MAG_LINEAR_MIP_POINT"; - case D3D12_FILTER_MINIMUM_MIN_MAG_MIP_LINEAR: return "D3D12_FILTER_MINIMUM_MIN_MAG_MIP_LINEAR"; - case D3D12_FILTER_MINIMUM_MIN_MAG_ANISOTROPIC_MIP_POINT: return "D3D12_FILTER_MINIMUM_MIN_MAG_ANISOTROPIC_MIP_POINT"; - case D3D12_FILTER_MINIMUM_ANISOTROPIC: return "D3D12_FILTER_MINIMUM_ANISOTROPIC"; - case D3D12_FILTER_MAXIMUM_MIN_MAG_MIP_POINT: return "D3D12_FILTER_MAXIMUM_MIN_MAG_MIP_POINT"; - case D3D12_FILTER_MAXIMUM_MIN_MAG_POINT_MIP_LINEAR: return "D3D12_FILTER_MAXIMUM_MIN_MAG_POINT_MIP_LINEAR"; - case D3D12_FILTER_MAXIMUM_MIN_POINT_MAG_LINEAR_MIP_POINT: return "D3D12_FILTER_MAXIMUM_MIN_POINT_MAG_LINEAR_MIP_POINT"; - case D3D12_FILTER_MAXIMUM_MIN_POINT_MAG_MIP_LINEAR: return "D3D12_FILTER_MAXIMUM_MIN_POINT_MAG_MIP_LINEAR"; - case D3D12_FILTER_MAXIMUM_MIN_LINEAR_MAG_MIP_POINT: return "D3D12_FILTER_MAXIMUM_MIN_LINEAR_MAG_MIP_POINT"; - case D3D12_FILTER_MAXIMUM_MIN_LINEAR_MAG_POINT_MIP_LINEAR: return "D3D12_FILTER_MAXIMUM_MIN_LINEAR_MAG_POINT_MIP_LINEAR"; - case D3D12_FILTER_MAXIMUM_MIN_MAG_LINEAR_MIP_POINT: return "D3D12_FILTER_MAXIMUM_MIN_MAG_LINEAR_MIP_POINT"; - case D3D12_FILTER_MAXIMUM_MIN_MAG_MIP_LINEAR: return "D3D12_FILTER_MAXIMUM_MIN_MAG_MIP_LINEAR"; - case D3D12_FILTER_MAXIMUM_MIN_MAG_ANISOTROPIC_MIP_POINT: return "D3D12_FILTER_MAXIMUM_MIN_MAG_ANISOTROPIC_MIP_POINT"; - case D3D12_FILTER_MAXIMUM_ANISOTROPIC: return "D3D12_FILTER_MAXIMUM_ANISOTROPIC"; - default: break; + case D3D12_FILTER_MIN_MAG_MIP_POINT: ret = "D3D12_FILTER_MIN_MAG_MIP_POINT"; break; + case D3D12_FILTER_MIN_MAG_POINT_MIP_LINEAR: ret = "D3D12_FILTER_MIN_MAG_POINT_MIP_LINEAR"; break; + case D3D12_FILTER_MIN_POINT_MAG_LINEAR_MIP_POINT: ret = "D3D12_FILTER_MIN_POINT_MAG_LINEAR_MIP_POINT"; break; + case D3D12_FILTER_MIN_POINT_MAG_MIP_LINEAR: ret = "D3D12_FILTER_MIN_POINT_MAG_MIP_LINEAR"; break; + case D3D12_FILTER_MIN_LINEAR_MAG_MIP_POINT: ret = "D3D12_FILTER_MIN_LINEAR_MAG_MIP_POINT"; break; + case D3D12_FILTER_MIN_LINEAR_MAG_POINT_MIP_LINEAR: ret = "D3D12_FILTER_MIN_LINEAR_MAG_POINT_MIP_LINEAR"; break; + case D3D12_FILTER_MIN_MAG_LINEAR_MIP_POINT: ret = "D3D12_FILTER_MIN_MAG_LINEAR_MIP_POINT"; break; + case D3D12_FILTER_MIN_MAG_MIP_LINEAR: ret = "D3D12_FILTER_MIN_MAG_MIP_LINEAR"; break; + case D3D12_FILTER_MIN_MAG_ANISOTROPIC_MIP_POINT: ret = "D3D12_FILTER_MIN_MAG_ANISOTROPIC_MIP_POINT"; break; + case D3D12_FILTER_ANISOTROPIC: ret = "D3D12_FILTER_ANISOTROPIC"; break; + case D3D12_FILTER_COMPARISON_MIN_MAG_MIP_POINT: ret = "D3D12_FILTER_COMPARISON_MIN_MAG_MIP_POINT"; break; + case D3D12_FILTER_COMPARISON_MIN_MAG_POINT_MIP_LINEAR: ret = "D3D12_FILTER_COMPARISON_MIN_MAG_POINT_MIP_LINEAR"; break; + case D3D12_FILTER_COMPARISON_MIN_POINT_MAG_LINEAR_MIP_POINT: ret = "D3D12_FILTER_COMPARISON_MIN_POINT_MAG_LINEAR_MIP_POINT"; break; + case D3D12_FILTER_COMPARISON_MIN_POINT_MAG_MIP_LINEAR: ret = "D3D12_FILTER_COMPARISON_MIN_POINT_MAG_MIP_LINEAR"; break; + case D3D12_FILTER_COMPARISON_MIN_LINEAR_MAG_MIP_POINT: ret = "D3D12_FILTER_COMPARISON_MIN_LINEAR_MAG_MIP_POINT"; break; + case D3D12_FILTER_COMPARISON_MIN_LINEAR_MAG_POINT_MIP_LINEAR: ret = "D3D12_FILTER_COMPARISON_MIN_LINEAR_MAG_POINT_MIP_LINEAR"; break; + case D3D12_FILTER_COMPARISON_MIN_MAG_LINEAR_MIP_POINT: ret = "D3D12_FILTER_COMPARISON_MIN_MAG_LINEAR_MIP_POINT"; break; + case D3D12_FILTER_COMPARISON_MIN_MAG_MIP_LINEAR: ret = "D3D12_FILTER_COMPARISON_MIN_MAG_MIP_LINEAR"; break; + case D3D12_FILTER_COMPARISON_MIN_MAG_ANISOTROPIC_MIP_POINT: ret = "D3D12_FILTER_COMPARISON_MIN_MAG_ANISOTROPIC_MIP_POINT"; break; + case D3D12_FILTER_COMPARISON_ANISOTROPIC: ret = "D3D12_FILTER_COMPARISON_ANISOTROPIC"; break; + case D3D12_FILTER_MINIMUM_MIN_MAG_MIP_POINT: ret = "D3D12_FILTER_MINIMUM_MIN_MAG_MIP_POINT"; break; + case D3D12_FILTER_MINIMUM_MIN_MAG_POINT_MIP_LINEAR: ret = "D3D12_FILTER_MINIMUM_MIN_MAG_POINT_MIP_LINEAR"; break; + case D3D12_FILTER_MINIMUM_MIN_POINT_MAG_LINEAR_MIP_POINT: ret = "D3D12_FILTER_MINIMUM_MIN_POINT_MAG_LINEAR_MIP_POINT"; break; + case D3D12_FILTER_MINIMUM_MIN_POINT_MAG_MIP_LINEAR: ret = "D3D12_FILTER_MINIMUM_MIN_POINT_MAG_MIP_LINEAR"; break; + case D3D12_FILTER_MINIMUM_MIN_LINEAR_MAG_MIP_POINT: ret = "D3D12_FILTER_MINIMUM_MIN_LINEAR_MAG_MIP_POINT"; break; + case D3D12_FILTER_MINIMUM_MIN_LINEAR_MAG_POINT_MIP_LINEAR: ret = "D3D12_FILTER_MINIMUM_MIN_LINEAR_MAG_POINT_MIP_LINEAR"; break; + case D3D12_FILTER_MINIMUM_MIN_MAG_LINEAR_MIP_POINT: ret = "D3D12_FILTER_MINIMUM_MIN_MAG_LINEAR_MIP_POINT"; break; + case D3D12_FILTER_MINIMUM_MIN_MAG_MIP_LINEAR: ret = "D3D12_FILTER_MINIMUM_MIN_MAG_MIP_LINEAR"; break; + case D3D12_FILTER_MINIMUM_MIN_MAG_ANISOTROPIC_MIP_POINT: ret = "D3D12_FILTER_MINIMUM_MIN_MAG_ANISOTROPIC_MIP_POINT"; break; + case D3D12_FILTER_MINIMUM_ANISOTROPIC: ret = "D3D12_FILTER_MINIMUM_ANISOTROPIC"; break; + case D3D12_FILTER_MAXIMUM_MIN_MAG_MIP_POINT: ret = "D3D12_FILTER_MAXIMUM_MIN_MAG_MIP_POINT"; break; + case D3D12_FILTER_MAXIMUM_MIN_MAG_POINT_MIP_LINEAR: ret = "D3D12_FILTER_MAXIMUM_MIN_MAG_POINT_MIP_LINEAR"; break; + case D3D12_FILTER_MAXIMUM_MIN_POINT_MAG_LINEAR_MIP_POINT: ret = "D3D12_FILTER_MAXIMUM_MIN_POINT_MAG_LINEAR_MIP_POINT"; break; + case D3D12_FILTER_MAXIMUM_MIN_POINT_MAG_MIP_LINEAR: ret = "D3D12_FILTER_MAXIMUM_MIN_POINT_MAG_MIP_LINEAR"; break; + case D3D12_FILTER_MAXIMUM_MIN_LINEAR_MAG_MIP_POINT: ret = "D3D12_FILTER_MAXIMUM_MIN_LINEAR_MAG_MIP_POINT"; break; + case D3D12_FILTER_MAXIMUM_MIN_LINEAR_MAG_POINT_MIP_LINEAR: ret = "D3D12_FILTER_MAXIMUM_MIN_LINEAR_MAG_POINT_MIP_LINEAR"; break; + case D3D12_FILTER_MAXIMUM_MIN_MAG_LINEAR_MIP_POINT: ret = "D3D12_FILTER_MAXIMUM_MIN_MAG_LINEAR_MIP_POINT"; break; + case D3D12_FILTER_MAXIMUM_MIN_MAG_MIP_LINEAR: ret = "D3D12_FILTER_MAXIMUM_MIN_MAG_MIP_LINEAR"; break; + case D3D12_FILTER_MAXIMUM_MIN_MAG_ANISOTROPIC_MIP_POINT: ret = "D3D12_FILTER_MAXIMUM_MIN_MAG_ANISOTROPIC_MIP_POINT"; break; + case D3D12_FILTER_MAXIMUM_ANISOTROPIC: ret = "D3D12_FILTER_MAXIMUM_ANISOTROPIC"; break; } - return "Unhandled D3D12_FILTER"; + return ret; } -std::string ToString(const D3D12_FILTER_TYPE& value) +std::string ToString(const D3D12_FILTER_TYPE value) { + const char* ret = "Unhandled D3D12_FILTER_TYPE"; switch (value) { - case D3D12_FILTER_TYPE_POINT: return "D3D12_FILTER_TYPE_POINT"; - case D3D12_FILTER_TYPE_LINEAR: return "D3D12_FILTER_TYPE_LINEAR"; - default: break; + case D3D12_FILTER_TYPE_POINT: ret = "D3D12_FILTER_TYPE_POINT"; break; + case D3D12_FILTER_TYPE_LINEAR: ret = "D3D12_FILTER_TYPE_LINEAR"; break; } - return "Unhandled D3D12_FILTER_TYPE"; + return ret; } -std::string ToString(const D3D12_FILTER_REDUCTION_TYPE& value) +std::string ToString(const D3D12_FILTER_REDUCTION_TYPE value) { + const char* ret = "Unhandled D3D12_FILTER_REDUCTION_TYPE"; switch (value) { - case D3D12_FILTER_REDUCTION_TYPE_STANDARD: return "D3D12_FILTER_REDUCTION_TYPE_STANDARD"; - case D3D12_FILTER_REDUCTION_TYPE_COMPARISON: return "D3D12_FILTER_REDUCTION_TYPE_COMPARISON"; - case D3D12_FILTER_REDUCTION_TYPE_MINIMUM: return "D3D12_FILTER_REDUCTION_TYPE_MINIMUM"; - case D3D12_FILTER_REDUCTION_TYPE_MAXIMUM: return "D3D12_FILTER_REDUCTION_TYPE_MAXIMUM"; - default: break; + case D3D12_FILTER_REDUCTION_TYPE_STANDARD: ret = "D3D12_FILTER_REDUCTION_TYPE_STANDARD"; break; + case D3D12_FILTER_REDUCTION_TYPE_COMPARISON: ret = "D3D12_FILTER_REDUCTION_TYPE_COMPARISON"; break; + case D3D12_FILTER_REDUCTION_TYPE_MINIMUM: ret = "D3D12_FILTER_REDUCTION_TYPE_MINIMUM"; break; + case D3D12_FILTER_REDUCTION_TYPE_MAXIMUM: ret = "D3D12_FILTER_REDUCTION_TYPE_MAXIMUM"; break; } - return "Unhandled D3D12_FILTER_REDUCTION_TYPE"; + return ret; } -std::string ToString(const D3D12_TEXTURE_ADDRESS_MODE& value) +std::string ToString(const D3D12_TEXTURE_ADDRESS_MODE value) { + const char* ret = "Unhandled D3D12_TEXTURE_ADDRESS_MODE"; switch (value) { - case D3D12_TEXTURE_ADDRESS_MODE_WRAP: return "D3D12_TEXTURE_ADDRESS_MODE_WRAP"; - case D3D12_TEXTURE_ADDRESS_MODE_MIRROR: return "D3D12_TEXTURE_ADDRESS_MODE_MIRROR"; - case D3D12_TEXTURE_ADDRESS_MODE_CLAMP: return "D3D12_TEXTURE_ADDRESS_MODE_CLAMP"; - case D3D12_TEXTURE_ADDRESS_MODE_BORDER: return "D3D12_TEXTURE_ADDRESS_MODE_BORDER"; - case D3D12_TEXTURE_ADDRESS_MODE_MIRROR_ONCE: return "D3D12_TEXTURE_ADDRESS_MODE_MIRROR_ONCE"; - default: break; + case D3D12_TEXTURE_ADDRESS_MODE_WRAP: ret = "D3D12_TEXTURE_ADDRESS_MODE_WRAP"; break; + case D3D12_TEXTURE_ADDRESS_MODE_MIRROR: ret = "D3D12_TEXTURE_ADDRESS_MODE_MIRROR"; break; + case D3D12_TEXTURE_ADDRESS_MODE_CLAMP: ret = "D3D12_TEXTURE_ADDRESS_MODE_CLAMP"; break; + case D3D12_TEXTURE_ADDRESS_MODE_BORDER: ret = "D3D12_TEXTURE_ADDRESS_MODE_BORDER"; break; + case D3D12_TEXTURE_ADDRESS_MODE_MIRROR_ONCE: ret = "D3D12_TEXTURE_ADDRESS_MODE_MIRROR_ONCE"; break; } - return "Unhandled D3D12_TEXTURE_ADDRESS_MODE"; + return ret; } -std::string ToString(const D3D12_SAMPLER_FLAGS& value) +std::string ToString(const D3D12_SAMPLER_FLAGS value) { + const char* ret = "Unhandled D3D12_SAMPLER_FLAGS"; switch (value) { - case D3D12_SAMPLER_FLAG_NONE: return "D3D12_SAMPLER_FLAG_NONE"; - case D3D12_SAMPLER_FLAG_UINT_BORDER_COLOR: return "D3D12_SAMPLER_FLAG_UINT_BORDER_COLOR"; - case D3D12_SAMPLER_FLAG_NON_NORMALIZED_COORDINATES: return "D3D12_SAMPLER_FLAG_NON_NORMALIZED_COORDINATES"; - default: break; + case D3D12_SAMPLER_FLAG_NONE: ret = "D3D12_SAMPLER_FLAG_NONE"; break; + case D3D12_SAMPLER_FLAG_UINT_BORDER_COLOR: ret = "D3D12_SAMPLER_FLAG_UINT_BORDER_COLOR"; break; + case D3D12_SAMPLER_FLAG_NON_NORMALIZED_COORDINATES: ret = "D3D12_SAMPLER_FLAG_NON_NORMALIZED_COORDINATES"; break; } - return "Unhandled D3D12_SAMPLER_FLAGS"; + return ret; } -std::string ToString_D3D12_SAMPLER_FLAGS(uint32_t flags) +std::string ToString_D3D12_SAMPLER_FLAGS(const uint32_t flags) { return BitmaskToString(flags); } -std::string ToString(const D3D12_BUFFER_UAV_FLAGS& value) +std::string ToString(const D3D12_BUFFER_UAV_FLAGS value) { + const char* ret = "Unhandled D3D12_BUFFER_UAV_FLAGS"; switch (value) { - case D3D12_BUFFER_UAV_FLAG_NONE: return "D3D12_BUFFER_UAV_FLAG_NONE"; - case D3D12_BUFFER_UAV_FLAG_RAW: return "D3D12_BUFFER_UAV_FLAG_RAW"; - default: break; + case D3D12_BUFFER_UAV_FLAG_NONE: ret = "D3D12_BUFFER_UAV_FLAG_NONE"; break; + case D3D12_BUFFER_UAV_FLAG_RAW: ret = "D3D12_BUFFER_UAV_FLAG_RAW"; break; } - return "Unhandled D3D12_BUFFER_UAV_FLAGS"; + return ret; } -std::string ToString_D3D12_BUFFER_UAV_FLAGS(uint32_t flags) +std::string ToString_D3D12_BUFFER_UAV_FLAGS(const uint32_t flags) { return BitmaskToString(flags); } -std::string ToString(const D3D12_UAV_DIMENSION& value) +std::string ToString(const D3D12_UAV_DIMENSION value) { + const char* ret = "Unhandled D3D12_UAV_DIMENSION"; switch (value) { - case D3D12_UAV_DIMENSION_UNKNOWN: return "D3D12_UAV_DIMENSION_UNKNOWN"; - case D3D12_UAV_DIMENSION_BUFFER: return "D3D12_UAV_DIMENSION_BUFFER"; - case D3D12_UAV_DIMENSION_TEXTURE1D: return "D3D12_UAV_DIMENSION_TEXTURE1D"; - case D3D12_UAV_DIMENSION_TEXTURE1DARRAY: return "D3D12_UAV_DIMENSION_TEXTURE1DARRAY"; - case D3D12_UAV_DIMENSION_TEXTURE2D: return "D3D12_UAV_DIMENSION_TEXTURE2D"; - case D3D12_UAV_DIMENSION_TEXTURE2DARRAY: return "D3D12_UAV_DIMENSION_TEXTURE2DARRAY"; - case D3D12_UAV_DIMENSION_TEXTURE2DMS: return "D3D12_UAV_DIMENSION_TEXTURE2DMS"; - case D3D12_UAV_DIMENSION_TEXTURE2DMSARRAY: return "D3D12_UAV_DIMENSION_TEXTURE2DMSARRAY"; - case D3D12_UAV_DIMENSION_TEXTURE3D: return "D3D12_UAV_DIMENSION_TEXTURE3D"; - default: break; + case D3D12_UAV_DIMENSION_UNKNOWN: ret = "D3D12_UAV_DIMENSION_UNKNOWN"; break; + case D3D12_UAV_DIMENSION_BUFFER: ret = "D3D12_UAV_DIMENSION_BUFFER"; break; + case D3D12_UAV_DIMENSION_TEXTURE1D: ret = "D3D12_UAV_DIMENSION_TEXTURE1D"; break; + case D3D12_UAV_DIMENSION_TEXTURE1DARRAY: ret = "D3D12_UAV_DIMENSION_TEXTURE1DARRAY"; break; + case D3D12_UAV_DIMENSION_TEXTURE2D: ret = "D3D12_UAV_DIMENSION_TEXTURE2D"; break; + case D3D12_UAV_DIMENSION_TEXTURE2DARRAY: ret = "D3D12_UAV_DIMENSION_TEXTURE2DARRAY"; break; + case D3D12_UAV_DIMENSION_TEXTURE2DMS: ret = "D3D12_UAV_DIMENSION_TEXTURE2DMS"; break; + case D3D12_UAV_DIMENSION_TEXTURE2DMSARRAY: ret = "D3D12_UAV_DIMENSION_TEXTURE2DMSARRAY"; break; + case D3D12_UAV_DIMENSION_TEXTURE3D: ret = "D3D12_UAV_DIMENSION_TEXTURE3D"; break; } - return "Unhandled D3D12_UAV_DIMENSION"; + return ret; } -std::string ToString(const D3D12_RTV_DIMENSION& value) +std::string ToString(const D3D12_RTV_DIMENSION value) { + const char* ret = "Unhandled D3D12_RTV_DIMENSION"; switch (value) { - case D3D12_RTV_DIMENSION_UNKNOWN: return "D3D12_RTV_DIMENSION_UNKNOWN"; - case D3D12_RTV_DIMENSION_BUFFER: return "D3D12_RTV_DIMENSION_BUFFER"; - case D3D12_RTV_DIMENSION_TEXTURE1D: return "D3D12_RTV_DIMENSION_TEXTURE1D"; - case D3D12_RTV_DIMENSION_TEXTURE1DARRAY: return "D3D12_RTV_DIMENSION_TEXTURE1DARRAY"; - case D3D12_RTV_DIMENSION_TEXTURE2D: return "D3D12_RTV_DIMENSION_TEXTURE2D"; - case D3D12_RTV_DIMENSION_TEXTURE2DARRAY: return "D3D12_RTV_DIMENSION_TEXTURE2DARRAY"; - case D3D12_RTV_DIMENSION_TEXTURE2DMS: return "D3D12_RTV_DIMENSION_TEXTURE2DMS"; - case D3D12_RTV_DIMENSION_TEXTURE2DMSARRAY: return "D3D12_RTV_DIMENSION_TEXTURE2DMSARRAY"; - case D3D12_RTV_DIMENSION_TEXTURE3D: return "D3D12_RTV_DIMENSION_TEXTURE3D"; - default: break; + case D3D12_RTV_DIMENSION_UNKNOWN: ret = "D3D12_RTV_DIMENSION_UNKNOWN"; break; + case D3D12_RTV_DIMENSION_BUFFER: ret = "D3D12_RTV_DIMENSION_BUFFER"; break; + case D3D12_RTV_DIMENSION_TEXTURE1D: ret = "D3D12_RTV_DIMENSION_TEXTURE1D"; break; + case D3D12_RTV_DIMENSION_TEXTURE1DARRAY: ret = "D3D12_RTV_DIMENSION_TEXTURE1DARRAY"; break; + case D3D12_RTV_DIMENSION_TEXTURE2D: ret = "D3D12_RTV_DIMENSION_TEXTURE2D"; break; + case D3D12_RTV_DIMENSION_TEXTURE2DARRAY: ret = "D3D12_RTV_DIMENSION_TEXTURE2DARRAY"; break; + case D3D12_RTV_DIMENSION_TEXTURE2DMS: ret = "D3D12_RTV_DIMENSION_TEXTURE2DMS"; break; + case D3D12_RTV_DIMENSION_TEXTURE2DMSARRAY: ret = "D3D12_RTV_DIMENSION_TEXTURE2DMSARRAY"; break; + case D3D12_RTV_DIMENSION_TEXTURE3D: ret = "D3D12_RTV_DIMENSION_TEXTURE3D"; break; } - return "Unhandled D3D12_RTV_DIMENSION"; + return ret; } -std::string ToString(const D3D12_DSV_FLAGS& value) +std::string ToString(const D3D12_DSV_FLAGS value) { + const char* ret = "Unhandled D3D12_DSV_FLAGS"; switch (value) { - case D3D12_DSV_FLAG_NONE: return "D3D12_DSV_FLAG_NONE"; - case D3D12_DSV_FLAG_READ_ONLY_DEPTH: return "D3D12_DSV_FLAG_READ_ONLY_DEPTH"; - case D3D12_DSV_FLAG_READ_ONLY_STENCIL: return "D3D12_DSV_FLAG_READ_ONLY_STENCIL"; - default: break; + case D3D12_DSV_FLAG_NONE: ret = "D3D12_DSV_FLAG_NONE"; break; + case D3D12_DSV_FLAG_READ_ONLY_DEPTH: ret = "D3D12_DSV_FLAG_READ_ONLY_DEPTH"; break; + case D3D12_DSV_FLAG_READ_ONLY_STENCIL: ret = "D3D12_DSV_FLAG_READ_ONLY_STENCIL"; break; } - return "Unhandled D3D12_DSV_FLAGS"; + return ret; } -std::string ToString_D3D12_DSV_FLAGS(uint32_t flags) +std::string ToString_D3D12_DSV_FLAGS(const uint32_t flags) { return BitmaskToString(flags); } -std::string ToString(const D3D12_DSV_DIMENSION& value) +std::string ToString(const D3D12_DSV_DIMENSION value) { + const char* ret = "Unhandled D3D12_DSV_DIMENSION"; switch (value) { - case D3D12_DSV_DIMENSION_UNKNOWN: return "D3D12_DSV_DIMENSION_UNKNOWN"; - case D3D12_DSV_DIMENSION_TEXTURE1D: return "D3D12_DSV_DIMENSION_TEXTURE1D"; - case D3D12_DSV_DIMENSION_TEXTURE1DARRAY: return "D3D12_DSV_DIMENSION_TEXTURE1DARRAY"; - case D3D12_DSV_DIMENSION_TEXTURE2D: return "D3D12_DSV_DIMENSION_TEXTURE2D"; - case D3D12_DSV_DIMENSION_TEXTURE2DARRAY: return "D3D12_DSV_DIMENSION_TEXTURE2DARRAY"; - case D3D12_DSV_DIMENSION_TEXTURE2DMS: return "D3D12_DSV_DIMENSION_TEXTURE2DMS"; - case D3D12_DSV_DIMENSION_TEXTURE2DMSARRAY: return "D3D12_DSV_DIMENSION_TEXTURE2DMSARRAY"; - default: break; + case D3D12_DSV_DIMENSION_UNKNOWN: ret = "D3D12_DSV_DIMENSION_UNKNOWN"; break; + case D3D12_DSV_DIMENSION_TEXTURE1D: ret = "D3D12_DSV_DIMENSION_TEXTURE1D"; break; + case D3D12_DSV_DIMENSION_TEXTURE1DARRAY: ret = "D3D12_DSV_DIMENSION_TEXTURE1DARRAY"; break; + case D3D12_DSV_DIMENSION_TEXTURE2D: ret = "D3D12_DSV_DIMENSION_TEXTURE2D"; break; + case D3D12_DSV_DIMENSION_TEXTURE2DARRAY: ret = "D3D12_DSV_DIMENSION_TEXTURE2DARRAY"; break; + case D3D12_DSV_DIMENSION_TEXTURE2DMS: ret = "D3D12_DSV_DIMENSION_TEXTURE2DMS"; break; + case D3D12_DSV_DIMENSION_TEXTURE2DMSARRAY: ret = "D3D12_DSV_DIMENSION_TEXTURE2DMSARRAY"; break; } - return "Unhandled D3D12_DSV_DIMENSION"; + return ret; } -std::string ToString(const D3D12_CLEAR_FLAGS& value) +std::string ToString(const D3D12_CLEAR_FLAGS value) { + const char* ret = "Unhandled D3D12_CLEAR_FLAGS"; switch (value) { - case D3D12_CLEAR_FLAG_DEPTH: return "D3D12_CLEAR_FLAG_DEPTH"; - case D3D12_CLEAR_FLAG_STENCIL: return "D3D12_CLEAR_FLAG_STENCIL"; - default: break; + case D3D12_CLEAR_FLAG_DEPTH: ret = "D3D12_CLEAR_FLAG_DEPTH"; break; + case D3D12_CLEAR_FLAG_STENCIL: ret = "D3D12_CLEAR_FLAG_STENCIL"; break; } - return "Unhandled D3D12_CLEAR_FLAGS"; + return ret; } -std::string ToString_D3D12_CLEAR_FLAGS(uint32_t flags) +std::string ToString_D3D12_CLEAR_FLAGS(const uint32_t flags) { return BitmaskToString(flags); } -std::string ToString(const D3D12_FENCE_FLAGS& value) +std::string ToString(const D3D12_FENCE_FLAGS value) { + const char* ret = "Unhandled D3D12_FENCE_FLAGS"; switch (value) { - case D3D12_FENCE_FLAG_NONE: return "D3D12_FENCE_FLAG_NONE"; - case D3D12_FENCE_FLAG_SHARED: return "D3D12_FENCE_FLAG_SHARED"; - case D3D12_FENCE_FLAG_SHARED_CROSS_ADAPTER: return "D3D12_FENCE_FLAG_SHARED_CROSS_ADAPTER"; - case D3D12_FENCE_FLAG_NON_MONITORED: return "D3D12_FENCE_FLAG_NON_MONITORED"; - default: break; + case D3D12_FENCE_FLAG_NONE: ret = "D3D12_FENCE_FLAG_NONE"; break; + case D3D12_FENCE_FLAG_SHARED: ret = "D3D12_FENCE_FLAG_SHARED"; break; + case D3D12_FENCE_FLAG_SHARED_CROSS_ADAPTER: ret = "D3D12_FENCE_FLAG_SHARED_CROSS_ADAPTER"; break; + case D3D12_FENCE_FLAG_NON_MONITORED: ret = "D3D12_FENCE_FLAG_NON_MONITORED"; break; } - return "Unhandled D3D12_FENCE_FLAGS"; + return ret; } -std::string ToString_D3D12_FENCE_FLAGS(uint32_t flags) +std::string ToString_D3D12_FENCE_FLAGS(const uint32_t flags) { return BitmaskToString(flags); } -std::string ToString(const D3D12_DESCRIPTOR_HEAP_TYPE& value) +std::string ToString(const D3D12_DESCRIPTOR_HEAP_TYPE value) { + const char* ret = "Unhandled D3D12_DESCRIPTOR_HEAP_TYPE"; switch (value) { - case D3D12_DESCRIPTOR_HEAP_TYPE_CBV_SRV_UAV: return "D3D12_DESCRIPTOR_HEAP_TYPE_CBV_SRV_UAV"; - case D3D12_DESCRIPTOR_HEAP_TYPE_SAMPLER: return "D3D12_DESCRIPTOR_HEAP_TYPE_SAMPLER"; - case D3D12_DESCRIPTOR_HEAP_TYPE_RTV: return "D3D12_DESCRIPTOR_HEAP_TYPE_RTV"; - case D3D12_DESCRIPTOR_HEAP_TYPE_DSV: return "D3D12_DESCRIPTOR_HEAP_TYPE_DSV"; - case D3D12_DESCRIPTOR_HEAP_TYPE_NUM_TYPES: return "D3D12_DESCRIPTOR_HEAP_TYPE_NUM_TYPES"; - default: break; + case D3D12_DESCRIPTOR_HEAP_TYPE_CBV_SRV_UAV: ret = "D3D12_DESCRIPTOR_HEAP_TYPE_CBV_SRV_UAV"; break; + case D3D12_DESCRIPTOR_HEAP_TYPE_SAMPLER: ret = "D3D12_DESCRIPTOR_HEAP_TYPE_SAMPLER"; break; + case D3D12_DESCRIPTOR_HEAP_TYPE_RTV: ret = "D3D12_DESCRIPTOR_HEAP_TYPE_RTV"; break; + case D3D12_DESCRIPTOR_HEAP_TYPE_DSV: ret = "D3D12_DESCRIPTOR_HEAP_TYPE_DSV"; break; + case D3D12_DESCRIPTOR_HEAP_TYPE_NUM_TYPES: ret = "D3D12_DESCRIPTOR_HEAP_TYPE_NUM_TYPES"; break; } - return "Unhandled D3D12_DESCRIPTOR_HEAP_TYPE"; + return ret; } -std::string ToString(const D3D12_DESCRIPTOR_HEAP_FLAGS& value) +std::string ToString(const D3D12_DESCRIPTOR_HEAP_FLAGS value) { + const char* ret = "Unhandled D3D12_DESCRIPTOR_HEAP_FLAGS"; switch (value) { - case D3D12_DESCRIPTOR_HEAP_FLAG_NONE: return "D3D12_DESCRIPTOR_HEAP_FLAG_NONE"; - case D3D12_DESCRIPTOR_HEAP_FLAG_SHADER_VISIBLE: return "D3D12_DESCRIPTOR_HEAP_FLAG_SHADER_VISIBLE"; - default: break; + case D3D12_DESCRIPTOR_HEAP_FLAG_NONE: ret = "D3D12_DESCRIPTOR_HEAP_FLAG_NONE"; break; + case D3D12_DESCRIPTOR_HEAP_FLAG_SHADER_VISIBLE: ret = "D3D12_DESCRIPTOR_HEAP_FLAG_SHADER_VISIBLE"; break; } - return "Unhandled D3D12_DESCRIPTOR_HEAP_FLAGS"; + return ret; } -std::string ToString_D3D12_DESCRIPTOR_HEAP_FLAGS(uint32_t flags) +std::string ToString_D3D12_DESCRIPTOR_HEAP_FLAGS(const uint32_t flags) { return BitmaskToString(flags); } -std::string ToString(const D3D12_DESCRIPTOR_RANGE_TYPE& value) +std::string ToString(const D3D12_DESCRIPTOR_RANGE_TYPE value) { + const char* ret = "Unhandled D3D12_DESCRIPTOR_RANGE_TYPE"; switch (value) { - case D3D12_DESCRIPTOR_RANGE_TYPE_SRV: return "D3D12_DESCRIPTOR_RANGE_TYPE_SRV"; - case D3D12_DESCRIPTOR_RANGE_TYPE_UAV: return "D3D12_DESCRIPTOR_RANGE_TYPE_UAV"; - case D3D12_DESCRIPTOR_RANGE_TYPE_CBV: return "D3D12_DESCRIPTOR_RANGE_TYPE_CBV"; - case D3D12_DESCRIPTOR_RANGE_TYPE_SAMPLER: return "D3D12_DESCRIPTOR_RANGE_TYPE_SAMPLER"; - default: break; + case D3D12_DESCRIPTOR_RANGE_TYPE_SRV: ret = "D3D12_DESCRIPTOR_RANGE_TYPE_SRV"; break; + case D3D12_DESCRIPTOR_RANGE_TYPE_UAV: ret = "D3D12_DESCRIPTOR_RANGE_TYPE_UAV"; break; + case D3D12_DESCRIPTOR_RANGE_TYPE_CBV: ret = "D3D12_DESCRIPTOR_RANGE_TYPE_CBV"; break; + case D3D12_DESCRIPTOR_RANGE_TYPE_SAMPLER: ret = "D3D12_DESCRIPTOR_RANGE_TYPE_SAMPLER"; break; } - return "Unhandled D3D12_DESCRIPTOR_RANGE_TYPE"; + return ret; } -std::string ToString(const D3D12_SHADER_VISIBILITY& value) +std::string ToString(const D3D12_SHADER_VISIBILITY value) { + const char* ret = "Unhandled D3D12_SHADER_VISIBILITY"; switch (value) { - case D3D12_SHADER_VISIBILITY_ALL: return "D3D12_SHADER_VISIBILITY_ALL"; - case D3D12_SHADER_VISIBILITY_VERTEX: return "D3D12_SHADER_VISIBILITY_VERTEX"; - case D3D12_SHADER_VISIBILITY_HULL: return "D3D12_SHADER_VISIBILITY_HULL"; - case D3D12_SHADER_VISIBILITY_DOMAIN: return "D3D12_SHADER_VISIBILITY_DOMAIN"; - case D3D12_SHADER_VISIBILITY_GEOMETRY: return "D3D12_SHADER_VISIBILITY_GEOMETRY"; - case D3D12_SHADER_VISIBILITY_PIXEL: return "D3D12_SHADER_VISIBILITY_PIXEL"; - case D3D12_SHADER_VISIBILITY_AMPLIFICATION: return "D3D12_SHADER_VISIBILITY_AMPLIFICATION"; - case D3D12_SHADER_VISIBILITY_MESH: return "D3D12_SHADER_VISIBILITY_MESH"; - default: break; + case D3D12_SHADER_VISIBILITY_ALL: ret = "D3D12_SHADER_VISIBILITY_ALL"; break; + case D3D12_SHADER_VISIBILITY_VERTEX: ret = "D3D12_SHADER_VISIBILITY_VERTEX"; break; + case D3D12_SHADER_VISIBILITY_HULL: ret = "D3D12_SHADER_VISIBILITY_HULL"; break; + case D3D12_SHADER_VISIBILITY_DOMAIN: ret = "D3D12_SHADER_VISIBILITY_DOMAIN"; break; + case D3D12_SHADER_VISIBILITY_GEOMETRY: ret = "D3D12_SHADER_VISIBILITY_GEOMETRY"; break; + case D3D12_SHADER_VISIBILITY_PIXEL: ret = "D3D12_SHADER_VISIBILITY_PIXEL"; break; + case D3D12_SHADER_VISIBILITY_AMPLIFICATION: ret = "D3D12_SHADER_VISIBILITY_AMPLIFICATION"; break; + case D3D12_SHADER_VISIBILITY_MESH: ret = "D3D12_SHADER_VISIBILITY_MESH"; break; } - return "Unhandled D3D12_SHADER_VISIBILITY"; + return ret; } -std::string ToString(const D3D12_ROOT_PARAMETER_TYPE& value) +std::string ToString(const D3D12_ROOT_PARAMETER_TYPE value) { + const char* ret = "Unhandled D3D12_ROOT_PARAMETER_TYPE"; switch (value) { - case D3D12_ROOT_PARAMETER_TYPE_DESCRIPTOR_TABLE: return "D3D12_ROOT_PARAMETER_TYPE_DESCRIPTOR_TABLE"; - case D3D12_ROOT_PARAMETER_TYPE_32BIT_CONSTANTS: return "D3D12_ROOT_PARAMETER_TYPE_32BIT_CONSTANTS"; - case D3D12_ROOT_PARAMETER_TYPE_CBV: return "D3D12_ROOT_PARAMETER_TYPE_CBV"; - case D3D12_ROOT_PARAMETER_TYPE_SRV: return "D3D12_ROOT_PARAMETER_TYPE_SRV"; - case D3D12_ROOT_PARAMETER_TYPE_UAV: return "D3D12_ROOT_PARAMETER_TYPE_UAV"; - default: break; + case D3D12_ROOT_PARAMETER_TYPE_DESCRIPTOR_TABLE: ret = "D3D12_ROOT_PARAMETER_TYPE_DESCRIPTOR_TABLE"; break; + case D3D12_ROOT_PARAMETER_TYPE_32BIT_CONSTANTS: ret = "D3D12_ROOT_PARAMETER_TYPE_32BIT_CONSTANTS"; break; + case D3D12_ROOT_PARAMETER_TYPE_CBV: ret = "D3D12_ROOT_PARAMETER_TYPE_CBV"; break; + case D3D12_ROOT_PARAMETER_TYPE_SRV: ret = "D3D12_ROOT_PARAMETER_TYPE_SRV"; break; + case D3D12_ROOT_PARAMETER_TYPE_UAV: ret = "D3D12_ROOT_PARAMETER_TYPE_UAV"; break; } - return "Unhandled D3D12_ROOT_PARAMETER_TYPE"; + return ret; } -std::string ToString(const D3D12_ROOT_SIGNATURE_FLAGS& value) +std::string ToString(const D3D12_ROOT_SIGNATURE_FLAGS value) { + const char* ret = "Unhandled D3D12_ROOT_SIGNATURE_FLAGS"; switch (value) { - case D3D12_ROOT_SIGNATURE_FLAG_NONE: return "D3D12_ROOT_SIGNATURE_FLAG_NONE"; - case D3D12_ROOT_SIGNATURE_FLAG_ALLOW_INPUT_ASSEMBLER_INPUT_LAYOUT: return "D3D12_ROOT_SIGNATURE_FLAG_ALLOW_INPUT_ASSEMBLER_INPUT_LAYOUT"; - case D3D12_ROOT_SIGNATURE_FLAG_DENY_VERTEX_SHADER_ROOT_ACCESS: return "D3D12_ROOT_SIGNATURE_FLAG_DENY_VERTEX_SHADER_ROOT_ACCESS"; - case D3D12_ROOT_SIGNATURE_FLAG_DENY_HULL_SHADER_ROOT_ACCESS: return "D3D12_ROOT_SIGNATURE_FLAG_DENY_HULL_SHADER_ROOT_ACCESS"; - case D3D12_ROOT_SIGNATURE_FLAG_DENY_DOMAIN_SHADER_ROOT_ACCESS: return "D3D12_ROOT_SIGNATURE_FLAG_DENY_DOMAIN_SHADER_ROOT_ACCESS"; - case D3D12_ROOT_SIGNATURE_FLAG_DENY_GEOMETRY_SHADER_ROOT_ACCESS: return "D3D12_ROOT_SIGNATURE_FLAG_DENY_GEOMETRY_SHADER_ROOT_ACCESS"; - case D3D12_ROOT_SIGNATURE_FLAG_DENY_PIXEL_SHADER_ROOT_ACCESS: return "D3D12_ROOT_SIGNATURE_FLAG_DENY_PIXEL_SHADER_ROOT_ACCESS"; - case D3D12_ROOT_SIGNATURE_FLAG_ALLOW_STREAM_OUTPUT: return "D3D12_ROOT_SIGNATURE_FLAG_ALLOW_STREAM_OUTPUT"; - case D3D12_ROOT_SIGNATURE_FLAG_LOCAL_ROOT_SIGNATURE: return "D3D12_ROOT_SIGNATURE_FLAG_LOCAL_ROOT_SIGNATURE"; - case D3D12_ROOT_SIGNATURE_FLAG_DENY_AMPLIFICATION_SHADER_ROOT_ACCESS: return "D3D12_ROOT_SIGNATURE_FLAG_DENY_AMPLIFICATION_SHADER_ROOT_ACCESS"; - case D3D12_ROOT_SIGNATURE_FLAG_DENY_MESH_SHADER_ROOT_ACCESS: return "D3D12_ROOT_SIGNATURE_FLAG_DENY_MESH_SHADER_ROOT_ACCESS"; - case D3D12_ROOT_SIGNATURE_FLAG_CBV_SRV_UAV_HEAP_DIRECTLY_INDEXED: return "D3D12_ROOT_SIGNATURE_FLAG_CBV_SRV_UAV_HEAP_DIRECTLY_INDEXED"; - case D3D12_ROOT_SIGNATURE_FLAG_SAMPLER_HEAP_DIRECTLY_INDEXED: return "D3D12_ROOT_SIGNATURE_FLAG_SAMPLER_HEAP_DIRECTLY_INDEXED"; - default: break; + case D3D12_ROOT_SIGNATURE_FLAG_NONE: ret = "D3D12_ROOT_SIGNATURE_FLAG_NONE"; break; + case D3D12_ROOT_SIGNATURE_FLAG_ALLOW_INPUT_ASSEMBLER_INPUT_LAYOUT: ret = "D3D12_ROOT_SIGNATURE_FLAG_ALLOW_INPUT_ASSEMBLER_INPUT_LAYOUT"; break; + case D3D12_ROOT_SIGNATURE_FLAG_DENY_VERTEX_SHADER_ROOT_ACCESS: ret = "D3D12_ROOT_SIGNATURE_FLAG_DENY_VERTEX_SHADER_ROOT_ACCESS"; break; + case D3D12_ROOT_SIGNATURE_FLAG_DENY_HULL_SHADER_ROOT_ACCESS: ret = "D3D12_ROOT_SIGNATURE_FLAG_DENY_HULL_SHADER_ROOT_ACCESS"; break; + case D3D12_ROOT_SIGNATURE_FLAG_DENY_DOMAIN_SHADER_ROOT_ACCESS: ret = "D3D12_ROOT_SIGNATURE_FLAG_DENY_DOMAIN_SHADER_ROOT_ACCESS"; break; + case D3D12_ROOT_SIGNATURE_FLAG_DENY_GEOMETRY_SHADER_ROOT_ACCESS: ret = "D3D12_ROOT_SIGNATURE_FLAG_DENY_GEOMETRY_SHADER_ROOT_ACCESS"; break; + case D3D12_ROOT_SIGNATURE_FLAG_DENY_PIXEL_SHADER_ROOT_ACCESS: ret = "D3D12_ROOT_SIGNATURE_FLAG_DENY_PIXEL_SHADER_ROOT_ACCESS"; break; + case D3D12_ROOT_SIGNATURE_FLAG_ALLOW_STREAM_OUTPUT: ret = "D3D12_ROOT_SIGNATURE_FLAG_ALLOW_STREAM_OUTPUT"; break; + case D3D12_ROOT_SIGNATURE_FLAG_LOCAL_ROOT_SIGNATURE: ret = "D3D12_ROOT_SIGNATURE_FLAG_LOCAL_ROOT_SIGNATURE"; break; + case D3D12_ROOT_SIGNATURE_FLAG_DENY_AMPLIFICATION_SHADER_ROOT_ACCESS: ret = "D3D12_ROOT_SIGNATURE_FLAG_DENY_AMPLIFICATION_SHADER_ROOT_ACCESS"; break; + case D3D12_ROOT_SIGNATURE_FLAG_DENY_MESH_SHADER_ROOT_ACCESS: ret = "D3D12_ROOT_SIGNATURE_FLAG_DENY_MESH_SHADER_ROOT_ACCESS"; break; + case D3D12_ROOT_SIGNATURE_FLAG_CBV_SRV_UAV_HEAP_DIRECTLY_INDEXED: ret = "D3D12_ROOT_SIGNATURE_FLAG_CBV_SRV_UAV_HEAP_DIRECTLY_INDEXED"; break; + case D3D12_ROOT_SIGNATURE_FLAG_SAMPLER_HEAP_DIRECTLY_INDEXED: ret = "D3D12_ROOT_SIGNATURE_FLAG_SAMPLER_HEAP_DIRECTLY_INDEXED"; break; } - return "Unhandled D3D12_ROOT_SIGNATURE_FLAGS"; + return ret; } -std::string ToString_D3D12_ROOT_SIGNATURE_FLAGS(uint32_t flags) +std::string ToString_D3D12_ROOT_SIGNATURE_FLAGS(const uint32_t flags) { return BitmaskToString(flags); } -std::string ToString(const D3D12_STATIC_BORDER_COLOR& value) +std::string ToString(const D3D12_STATIC_BORDER_COLOR value) { + const char* ret = "Unhandled D3D12_STATIC_BORDER_COLOR"; switch (value) { - case D3D12_STATIC_BORDER_COLOR_TRANSPARENT_BLACK: return "D3D12_STATIC_BORDER_COLOR_TRANSPARENT_BLACK"; - case D3D12_STATIC_BORDER_COLOR_OPAQUE_BLACK: return "D3D12_STATIC_BORDER_COLOR_OPAQUE_BLACK"; - case D3D12_STATIC_BORDER_COLOR_OPAQUE_WHITE: return "D3D12_STATIC_BORDER_COLOR_OPAQUE_WHITE"; - case D3D12_STATIC_BORDER_COLOR_OPAQUE_BLACK_UINT: return "D3D12_STATIC_BORDER_COLOR_OPAQUE_BLACK_UINT"; - case D3D12_STATIC_BORDER_COLOR_OPAQUE_WHITE_UINT: return "D3D12_STATIC_BORDER_COLOR_OPAQUE_WHITE_UINT"; - default: break; + case D3D12_STATIC_BORDER_COLOR_TRANSPARENT_BLACK: ret = "D3D12_STATIC_BORDER_COLOR_TRANSPARENT_BLACK"; break; + case D3D12_STATIC_BORDER_COLOR_OPAQUE_BLACK: ret = "D3D12_STATIC_BORDER_COLOR_OPAQUE_BLACK"; break; + case D3D12_STATIC_BORDER_COLOR_OPAQUE_WHITE: ret = "D3D12_STATIC_BORDER_COLOR_OPAQUE_WHITE"; break; + case D3D12_STATIC_BORDER_COLOR_OPAQUE_BLACK_UINT: ret = "D3D12_STATIC_BORDER_COLOR_OPAQUE_BLACK_UINT"; break; + case D3D12_STATIC_BORDER_COLOR_OPAQUE_WHITE_UINT: ret = "D3D12_STATIC_BORDER_COLOR_OPAQUE_WHITE_UINT"; break; } - return "Unhandled D3D12_STATIC_BORDER_COLOR"; + return ret; } -std::string ToString(const D3D12_DESCRIPTOR_RANGE_FLAGS& value) +std::string ToString(const D3D12_DESCRIPTOR_RANGE_FLAGS value) { + const char* ret = "Unhandled D3D12_DESCRIPTOR_RANGE_FLAGS"; switch (value) { - case D3D12_DESCRIPTOR_RANGE_FLAG_NONE: return "D3D12_DESCRIPTOR_RANGE_FLAG_NONE"; - case D3D12_DESCRIPTOR_RANGE_FLAG_DESCRIPTORS_VOLATILE: return "D3D12_DESCRIPTOR_RANGE_FLAG_DESCRIPTORS_VOLATILE"; - case D3D12_DESCRIPTOR_RANGE_FLAG_DATA_VOLATILE: return "D3D12_DESCRIPTOR_RANGE_FLAG_DATA_VOLATILE"; - case D3D12_DESCRIPTOR_RANGE_FLAG_DATA_STATIC_WHILE_SET_AT_EXECUTE: return "D3D12_DESCRIPTOR_RANGE_FLAG_DATA_STATIC_WHILE_SET_AT_EXECUTE"; - case D3D12_DESCRIPTOR_RANGE_FLAG_DATA_STATIC: return "D3D12_DESCRIPTOR_RANGE_FLAG_DATA_STATIC"; - case D3D12_DESCRIPTOR_RANGE_FLAG_DESCRIPTORS_STATIC_KEEPING_BUFFER_BOUNDS_CHECKS: return "D3D12_DESCRIPTOR_RANGE_FLAG_DESCRIPTORS_STATIC_KEEPING_BUFFER_BOUNDS_CHECKS"; - default: break; + case D3D12_DESCRIPTOR_RANGE_FLAG_NONE: ret = "D3D12_DESCRIPTOR_RANGE_FLAG_NONE"; break; + case D3D12_DESCRIPTOR_RANGE_FLAG_DESCRIPTORS_VOLATILE: ret = "D3D12_DESCRIPTOR_RANGE_FLAG_DESCRIPTORS_VOLATILE"; break; + case D3D12_DESCRIPTOR_RANGE_FLAG_DATA_VOLATILE: ret = "D3D12_DESCRIPTOR_RANGE_FLAG_DATA_VOLATILE"; break; + case D3D12_DESCRIPTOR_RANGE_FLAG_DATA_STATIC_WHILE_SET_AT_EXECUTE: ret = "D3D12_DESCRIPTOR_RANGE_FLAG_DATA_STATIC_WHILE_SET_AT_EXECUTE"; break; + case D3D12_DESCRIPTOR_RANGE_FLAG_DATA_STATIC: ret = "D3D12_DESCRIPTOR_RANGE_FLAG_DATA_STATIC"; break; + case D3D12_DESCRIPTOR_RANGE_FLAG_DESCRIPTORS_STATIC_KEEPING_BUFFER_BOUNDS_CHECKS: ret = "D3D12_DESCRIPTOR_RANGE_FLAG_DESCRIPTORS_STATIC_KEEPING_BUFFER_BOUNDS_CHECKS"; break; } - return "Unhandled D3D12_DESCRIPTOR_RANGE_FLAGS"; + return ret; } -std::string ToString_D3D12_DESCRIPTOR_RANGE_FLAGS(uint32_t flags) +std::string ToString_D3D12_DESCRIPTOR_RANGE_FLAGS(const uint32_t flags) { return BitmaskToString(flags); } -std::string ToString(const D3D12_ROOT_DESCRIPTOR_FLAGS& value) +std::string ToString(const D3D12_ROOT_DESCRIPTOR_FLAGS value) { + const char* ret = "Unhandled D3D12_ROOT_DESCRIPTOR_FLAGS"; switch (value) { - case D3D12_ROOT_DESCRIPTOR_FLAG_NONE: return "D3D12_ROOT_DESCRIPTOR_FLAG_NONE"; - case D3D12_ROOT_DESCRIPTOR_FLAG_DATA_VOLATILE: return "D3D12_ROOT_DESCRIPTOR_FLAG_DATA_VOLATILE"; - case D3D12_ROOT_DESCRIPTOR_FLAG_DATA_STATIC_WHILE_SET_AT_EXECUTE: return "D3D12_ROOT_DESCRIPTOR_FLAG_DATA_STATIC_WHILE_SET_AT_EXECUTE"; - case D3D12_ROOT_DESCRIPTOR_FLAG_DATA_STATIC: return "D3D12_ROOT_DESCRIPTOR_FLAG_DATA_STATIC"; - default: break; + case D3D12_ROOT_DESCRIPTOR_FLAG_NONE: ret = "D3D12_ROOT_DESCRIPTOR_FLAG_NONE"; break; + case D3D12_ROOT_DESCRIPTOR_FLAG_DATA_VOLATILE: ret = "D3D12_ROOT_DESCRIPTOR_FLAG_DATA_VOLATILE"; break; + case D3D12_ROOT_DESCRIPTOR_FLAG_DATA_STATIC_WHILE_SET_AT_EXECUTE: ret = "D3D12_ROOT_DESCRIPTOR_FLAG_DATA_STATIC_WHILE_SET_AT_EXECUTE"; break; + case D3D12_ROOT_DESCRIPTOR_FLAG_DATA_STATIC: ret = "D3D12_ROOT_DESCRIPTOR_FLAG_DATA_STATIC"; break; } - return "Unhandled D3D12_ROOT_DESCRIPTOR_FLAGS"; + return ret; } -std::string ToString_D3D12_ROOT_DESCRIPTOR_FLAGS(uint32_t flags) +std::string ToString_D3D12_ROOT_DESCRIPTOR_FLAGS(const uint32_t flags) { return BitmaskToString(flags); } -std::string ToString(const D3D12_QUERY_HEAP_TYPE& value) +std::string ToString(const D3D12_QUERY_HEAP_TYPE value) { + const char* ret = "Unhandled D3D12_QUERY_HEAP_TYPE"; switch (value) { - case D3D12_QUERY_HEAP_TYPE_OCCLUSION: return "D3D12_QUERY_HEAP_TYPE_OCCLUSION"; - case D3D12_QUERY_HEAP_TYPE_TIMESTAMP: return "D3D12_QUERY_HEAP_TYPE_TIMESTAMP"; - case D3D12_QUERY_HEAP_TYPE_PIPELINE_STATISTICS: return "D3D12_QUERY_HEAP_TYPE_PIPELINE_STATISTICS"; - case D3D12_QUERY_HEAP_TYPE_SO_STATISTICS: return "D3D12_QUERY_HEAP_TYPE_SO_STATISTICS"; - case D3D12_QUERY_HEAP_TYPE_VIDEO_DECODE_STATISTICS: return "D3D12_QUERY_HEAP_TYPE_VIDEO_DECODE_STATISTICS"; - case D3D12_QUERY_HEAP_TYPE_COPY_QUEUE_TIMESTAMP: return "D3D12_QUERY_HEAP_TYPE_COPY_QUEUE_TIMESTAMP"; - case D3D12_QUERY_HEAP_TYPE_PIPELINE_STATISTICS1: return "D3D12_QUERY_HEAP_TYPE_PIPELINE_STATISTICS1"; - default: break; + case D3D12_QUERY_HEAP_TYPE_OCCLUSION: ret = "D3D12_QUERY_HEAP_TYPE_OCCLUSION"; break; + case D3D12_QUERY_HEAP_TYPE_TIMESTAMP: ret = "D3D12_QUERY_HEAP_TYPE_TIMESTAMP"; break; + case D3D12_QUERY_HEAP_TYPE_PIPELINE_STATISTICS: ret = "D3D12_QUERY_HEAP_TYPE_PIPELINE_STATISTICS"; break; + case D3D12_QUERY_HEAP_TYPE_SO_STATISTICS: ret = "D3D12_QUERY_HEAP_TYPE_SO_STATISTICS"; break; + case D3D12_QUERY_HEAP_TYPE_VIDEO_DECODE_STATISTICS: ret = "D3D12_QUERY_HEAP_TYPE_VIDEO_DECODE_STATISTICS"; break; + case D3D12_QUERY_HEAP_TYPE_COPY_QUEUE_TIMESTAMP: ret = "D3D12_QUERY_HEAP_TYPE_COPY_QUEUE_TIMESTAMP"; break; + case D3D12_QUERY_HEAP_TYPE_PIPELINE_STATISTICS1: ret = "D3D12_QUERY_HEAP_TYPE_PIPELINE_STATISTICS1"; break; } - return "Unhandled D3D12_QUERY_HEAP_TYPE"; + return ret; } -std::string ToString(const D3D12_QUERY_TYPE& value) +std::string ToString(const D3D12_QUERY_TYPE value) { + const char* ret = "Unhandled D3D12_QUERY_TYPE"; switch (value) { - case D3D12_QUERY_TYPE_OCCLUSION: return "D3D12_QUERY_TYPE_OCCLUSION"; - case D3D12_QUERY_TYPE_BINARY_OCCLUSION: return "D3D12_QUERY_TYPE_BINARY_OCCLUSION"; - case D3D12_QUERY_TYPE_TIMESTAMP: return "D3D12_QUERY_TYPE_TIMESTAMP"; - case D3D12_QUERY_TYPE_PIPELINE_STATISTICS: return "D3D12_QUERY_TYPE_PIPELINE_STATISTICS"; - case D3D12_QUERY_TYPE_SO_STATISTICS_STREAM0: return "D3D12_QUERY_TYPE_SO_STATISTICS_STREAM0"; - case D3D12_QUERY_TYPE_SO_STATISTICS_STREAM1: return "D3D12_QUERY_TYPE_SO_STATISTICS_STREAM1"; - case D3D12_QUERY_TYPE_SO_STATISTICS_STREAM2: return "D3D12_QUERY_TYPE_SO_STATISTICS_STREAM2"; - case D3D12_QUERY_TYPE_SO_STATISTICS_STREAM3: return "D3D12_QUERY_TYPE_SO_STATISTICS_STREAM3"; - case D3D12_QUERY_TYPE_VIDEO_DECODE_STATISTICS: return "D3D12_QUERY_TYPE_VIDEO_DECODE_STATISTICS"; - case D3D12_QUERY_TYPE_PIPELINE_STATISTICS1: return "D3D12_QUERY_TYPE_PIPELINE_STATISTICS1"; - default: break; + case D3D12_QUERY_TYPE_OCCLUSION: ret = "D3D12_QUERY_TYPE_OCCLUSION"; break; + case D3D12_QUERY_TYPE_BINARY_OCCLUSION: ret = "D3D12_QUERY_TYPE_BINARY_OCCLUSION"; break; + case D3D12_QUERY_TYPE_TIMESTAMP: ret = "D3D12_QUERY_TYPE_TIMESTAMP"; break; + case D3D12_QUERY_TYPE_PIPELINE_STATISTICS: ret = "D3D12_QUERY_TYPE_PIPELINE_STATISTICS"; break; + case D3D12_QUERY_TYPE_SO_STATISTICS_STREAM0: ret = "D3D12_QUERY_TYPE_SO_STATISTICS_STREAM0"; break; + case D3D12_QUERY_TYPE_SO_STATISTICS_STREAM1: ret = "D3D12_QUERY_TYPE_SO_STATISTICS_STREAM1"; break; + case D3D12_QUERY_TYPE_SO_STATISTICS_STREAM2: ret = "D3D12_QUERY_TYPE_SO_STATISTICS_STREAM2"; break; + case D3D12_QUERY_TYPE_SO_STATISTICS_STREAM3: ret = "D3D12_QUERY_TYPE_SO_STATISTICS_STREAM3"; break; + case D3D12_QUERY_TYPE_VIDEO_DECODE_STATISTICS: ret = "D3D12_QUERY_TYPE_VIDEO_DECODE_STATISTICS"; break; + case D3D12_QUERY_TYPE_PIPELINE_STATISTICS1: ret = "D3D12_QUERY_TYPE_PIPELINE_STATISTICS1"; break; } - return "Unhandled D3D12_QUERY_TYPE"; + return ret; } -std::string ToString(const D3D12_PREDICATION_OP& value) +std::string ToString(const D3D12_PREDICATION_OP value) { + const char* ret = "Unhandled D3D12_PREDICATION_OP"; switch (value) { - case D3D12_PREDICATION_OP_EQUAL_ZERO: return "D3D12_PREDICATION_OP_EQUAL_ZERO"; - case D3D12_PREDICATION_OP_NOT_EQUAL_ZERO: return "D3D12_PREDICATION_OP_NOT_EQUAL_ZERO"; - default: break; + case D3D12_PREDICATION_OP_EQUAL_ZERO: ret = "D3D12_PREDICATION_OP_EQUAL_ZERO"; break; + case D3D12_PREDICATION_OP_NOT_EQUAL_ZERO: ret = "D3D12_PREDICATION_OP_NOT_EQUAL_ZERO"; break; } - return "Unhandled D3D12_PREDICATION_OP"; + return ret; } -std::string ToString(const D3D12_INDIRECT_ARGUMENT_TYPE& value) +std::string ToString(const D3D12_INDIRECT_ARGUMENT_TYPE value) { + const char* ret = "Unhandled D3D12_INDIRECT_ARGUMENT_TYPE"; switch (value) { - case D3D12_INDIRECT_ARGUMENT_TYPE_DRAW: return "D3D12_INDIRECT_ARGUMENT_TYPE_DRAW"; - case D3D12_INDIRECT_ARGUMENT_TYPE_DRAW_INDEXED: return "D3D12_INDIRECT_ARGUMENT_TYPE_DRAW_INDEXED"; - case D3D12_INDIRECT_ARGUMENT_TYPE_DISPATCH: return "D3D12_INDIRECT_ARGUMENT_TYPE_DISPATCH"; - case D3D12_INDIRECT_ARGUMENT_TYPE_VERTEX_BUFFER_VIEW: return "D3D12_INDIRECT_ARGUMENT_TYPE_VERTEX_BUFFER_VIEW"; - case D3D12_INDIRECT_ARGUMENT_TYPE_INDEX_BUFFER_VIEW: return "D3D12_INDIRECT_ARGUMENT_TYPE_INDEX_BUFFER_VIEW"; - case D3D12_INDIRECT_ARGUMENT_TYPE_CONSTANT: return "D3D12_INDIRECT_ARGUMENT_TYPE_CONSTANT"; - case D3D12_INDIRECT_ARGUMENT_TYPE_CONSTANT_BUFFER_VIEW: return "D3D12_INDIRECT_ARGUMENT_TYPE_CONSTANT_BUFFER_VIEW"; - case D3D12_INDIRECT_ARGUMENT_TYPE_SHADER_RESOURCE_VIEW: return "D3D12_INDIRECT_ARGUMENT_TYPE_SHADER_RESOURCE_VIEW"; - case D3D12_INDIRECT_ARGUMENT_TYPE_UNORDERED_ACCESS_VIEW: return "D3D12_INDIRECT_ARGUMENT_TYPE_UNORDERED_ACCESS_VIEW"; - case D3D12_INDIRECT_ARGUMENT_TYPE_DISPATCH_RAYS: return "D3D12_INDIRECT_ARGUMENT_TYPE_DISPATCH_RAYS"; - case D3D12_INDIRECT_ARGUMENT_TYPE_DISPATCH_MESH: return "D3D12_INDIRECT_ARGUMENT_TYPE_DISPATCH_MESH"; - default: break; + case D3D12_INDIRECT_ARGUMENT_TYPE_DRAW: ret = "D3D12_INDIRECT_ARGUMENT_TYPE_DRAW"; break; + case D3D12_INDIRECT_ARGUMENT_TYPE_DRAW_INDEXED: ret = "D3D12_INDIRECT_ARGUMENT_TYPE_DRAW_INDEXED"; break; + case D3D12_INDIRECT_ARGUMENT_TYPE_DISPATCH: ret = "D3D12_INDIRECT_ARGUMENT_TYPE_DISPATCH"; break; + case D3D12_INDIRECT_ARGUMENT_TYPE_VERTEX_BUFFER_VIEW: ret = "D3D12_INDIRECT_ARGUMENT_TYPE_VERTEX_BUFFER_VIEW"; break; + case D3D12_INDIRECT_ARGUMENT_TYPE_INDEX_BUFFER_VIEW: ret = "D3D12_INDIRECT_ARGUMENT_TYPE_INDEX_BUFFER_VIEW"; break; + case D3D12_INDIRECT_ARGUMENT_TYPE_CONSTANT: ret = "D3D12_INDIRECT_ARGUMENT_TYPE_CONSTANT"; break; + case D3D12_INDIRECT_ARGUMENT_TYPE_CONSTANT_BUFFER_VIEW: ret = "D3D12_INDIRECT_ARGUMENT_TYPE_CONSTANT_BUFFER_VIEW"; break; + case D3D12_INDIRECT_ARGUMENT_TYPE_SHADER_RESOURCE_VIEW: ret = "D3D12_INDIRECT_ARGUMENT_TYPE_SHADER_RESOURCE_VIEW"; break; + case D3D12_INDIRECT_ARGUMENT_TYPE_UNORDERED_ACCESS_VIEW: ret = "D3D12_INDIRECT_ARGUMENT_TYPE_UNORDERED_ACCESS_VIEW"; break; + case D3D12_INDIRECT_ARGUMENT_TYPE_DISPATCH_RAYS: ret = "D3D12_INDIRECT_ARGUMENT_TYPE_DISPATCH_RAYS"; break; + case D3D12_INDIRECT_ARGUMENT_TYPE_DISPATCH_MESH: ret = "D3D12_INDIRECT_ARGUMENT_TYPE_DISPATCH_MESH"; break; } - return "Unhandled D3D12_INDIRECT_ARGUMENT_TYPE"; + return ret; } -std::string ToString(const D3D12_WRITEBUFFERIMMEDIATE_MODE& value) +std::string ToString(const D3D12_WRITEBUFFERIMMEDIATE_MODE value) { + const char* ret = "Unhandled D3D12_WRITEBUFFERIMMEDIATE_MODE"; switch (value) { - case D3D12_WRITEBUFFERIMMEDIATE_MODE_DEFAULT: return "D3D12_WRITEBUFFERIMMEDIATE_MODE_DEFAULT"; - case D3D12_WRITEBUFFERIMMEDIATE_MODE_MARKER_IN: return "D3D12_WRITEBUFFERIMMEDIATE_MODE_MARKER_IN"; - case D3D12_WRITEBUFFERIMMEDIATE_MODE_MARKER_OUT: return "D3D12_WRITEBUFFERIMMEDIATE_MODE_MARKER_OUT"; - default: break; + case D3D12_WRITEBUFFERIMMEDIATE_MODE_DEFAULT: ret = "D3D12_WRITEBUFFERIMMEDIATE_MODE_DEFAULT"; break; + case D3D12_WRITEBUFFERIMMEDIATE_MODE_MARKER_IN: ret = "D3D12_WRITEBUFFERIMMEDIATE_MODE_MARKER_IN"; break; + case D3D12_WRITEBUFFERIMMEDIATE_MODE_MARKER_OUT: ret = "D3D12_WRITEBUFFERIMMEDIATE_MODE_MARKER_OUT"; break; } - return "Unhandled D3D12_WRITEBUFFERIMMEDIATE_MODE"; + return ret; } -std::string ToString(const D3D12_MULTIPLE_FENCE_WAIT_FLAGS& value) +std::string ToString(const D3D12_MULTIPLE_FENCE_WAIT_FLAGS value) { + const char* ret = "Unhandled D3D12_MULTIPLE_FENCE_WAIT_FLAGS"; switch (value) { - case D3D12_MULTIPLE_FENCE_WAIT_FLAG_NONE: return "D3D12_MULTIPLE_FENCE_WAIT_FLAG_NONE"; - case D3D12_MULTIPLE_FENCE_WAIT_FLAG_ANY: return "D3D12_MULTIPLE_FENCE_WAIT_FLAG_ANY"; - default: break; + case D3D12_MULTIPLE_FENCE_WAIT_FLAG_NONE: ret = "D3D12_MULTIPLE_FENCE_WAIT_FLAG_NONE"; break; + case D3D12_MULTIPLE_FENCE_WAIT_FLAG_ANY: ret = "D3D12_MULTIPLE_FENCE_WAIT_FLAG_ANY"; break; } - return "Unhandled D3D12_MULTIPLE_FENCE_WAIT_FLAGS"; + return ret; } -std::string ToString_D3D12_MULTIPLE_FENCE_WAIT_FLAGS(uint32_t flags) +std::string ToString_D3D12_MULTIPLE_FENCE_WAIT_FLAGS(const uint32_t flags) { return BitmaskToString(flags); } -std::string ToString(const D3D12_RESIDENCY_PRIORITY& value) +std::string ToString(const D3D12_RESIDENCY_PRIORITY value) { + const char* ret = "Unhandled D3D12_RESIDENCY_PRIORITY"; switch (value) { - case D3D12_RESIDENCY_PRIORITY_MINIMUM: return "D3D12_RESIDENCY_PRIORITY_MINIMUM"; - case D3D12_RESIDENCY_PRIORITY_LOW: return "D3D12_RESIDENCY_PRIORITY_LOW"; - case D3D12_RESIDENCY_PRIORITY_NORMAL: return "D3D12_RESIDENCY_PRIORITY_NORMAL"; - case D3D12_RESIDENCY_PRIORITY_HIGH: return "D3D12_RESIDENCY_PRIORITY_HIGH"; - case D3D12_RESIDENCY_PRIORITY_MAXIMUM: return "D3D12_RESIDENCY_PRIORITY_MAXIMUM"; - default: break; + case D3D12_RESIDENCY_PRIORITY_MINIMUM: ret = "D3D12_RESIDENCY_PRIORITY_MINIMUM"; break; + case D3D12_RESIDENCY_PRIORITY_LOW: ret = "D3D12_RESIDENCY_PRIORITY_LOW"; break; + case D3D12_RESIDENCY_PRIORITY_NORMAL: ret = "D3D12_RESIDENCY_PRIORITY_NORMAL"; break; + case D3D12_RESIDENCY_PRIORITY_HIGH: ret = "D3D12_RESIDENCY_PRIORITY_HIGH"; break; + case D3D12_RESIDENCY_PRIORITY_MAXIMUM: ret = "D3D12_RESIDENCY_PRIORITY_MAXIMUM"; break; } - return "Unhandled D3D12_RESIDENCY_PRIORITY"; + return ret; } -std::string ToString(const D3D12_RESIDENCY_FLAGS& value) +std::string ToString(const D3D12_RESIDENCY_FLAGS value) { + const char* ret = "Unhandled D3D12_RESIDENCY_FLAGS"; switch (value) { - case D3D12_RESIDENCY_FLAG_NONE: return "D3D12_RESIDENCY_FLAG_NONE"; - case D3D12_RESIDENCY_FLAG_DENY_OVERBUDGET: return "D3D12_RESIDENCY_FLAG_DENY_OVERBUDGET"; - default: break; + case D3D12_RESIDENCY_FLAG_NONE: ret = "D3D12_RESIDENCY_FLAG_NONE"; break; + case D3D12_RESIDENCY_FLAG_DENY_OVERBUDGET: ret = "D3D12_RESIDENCY_FLAG_DENY_OVERBUDGET"; break; } - return "Unhandled D3D12_RESIDENCY_FLAGS"; + return ret; } -std::string ToString_D3D12_RESIDENCY_FLAGS(uint32_t flags) +std::string ToString_D3D12_RESIDENCY_FLAGS(const uint32_t flags) { return BitmaskToString(flags); } -std::string ToString(const D3D12_COMMAND_LIST_FLAGS& value) +std::string ToString(const D3D12_COMMAND_LIST_FLAGS value) { + const char* ret = "Unhandled D3D12_COMMAND_LIST_FLAGS"; switch (value) { - case D3D12_COMMAND_LIST_FLAG_NONE: return "D3D12_COMMAND_LIST_FLAG_NONE"; - default: break; + case D3D12_COMMAND_LIST_FLAG_NONE: ret = "D3D12_COMMAND_LIST_FLAG_NONE"; break; } - return "Unhandled D3D12_COMMAND_LIST_FLAGS"; + return ret; } -std::string ToString_D3D12_COMMAND_LIST_FLAGS(uint32_t flags) +std::string ToString_D3D12_COMMAND_LIST_FLAGS(const uint32_t flags) { return BitmaskToString(flags); } -std::string ToString(const D3D12_COMMAND_POOL_FLAGS& value) +std::string ToString(const D3D12_COMMAND_POOL_FLAGS value) { + const char* ret = "Unhandled D3D12_COMMAND_POOL_FLAGS"; switch (value) { - case D3D12_COMMAND_POOL_FLAG_NONE: return "D3D12_COMMAND_POOL_FLAG_NONE"; - default: break; + case D3D12_COMMAND_POOL_FLAG_NONE: ret = "D3D12_COMMAND_POOL_FLAG_NONE"; break; } - return "Unhandled D3D12_COMMAND_POOL_FLAGS"; + return ret; } -std::string ToString_D3D12_COMMAND_POOL_FLAGS(uint32_t flags) +std::string ToString_D3D12_COMMAND_POOL_FLAGS(const uint32_t flags) { return BitmaskToString(flags); } -std::string ToString(const D3D12_COMMAND_RECORDER_FLAGS& value) +std::string ToString(const D3D12_COMMAND_RECORDER_FLAGS value) { + const char* ret = "Unhandled D3D12_COMMAND_RECORDER_FLAGS"; switch (value) { - case D3D12_COMMAND_RECORDER_FLAG_NONE: return "D3D12_COMMAND_RECORDER_FLAG_NONE"; - default: break; + case D3D12_COMMAND_RECORDER_FLAG_NONE: ret = "D3D12_COMMAND_RECORDER_FLAG_NONE"; break; } - return "Unhandled D3D12_COMMAND_RECORDER_FLAGS"; + return ret; } -std::string ToString_D3D12_COMMAND_RECORDER_FLAGS(uint32_t flags) +std::string ToString_D3D12_COMMAND_RECORDER_FLAGS(const uint32_t flags) { return BitmaskToString(flags); } -std::string ToString(const D3D12_PROTECTED_SESSION_STATUS& value) +std::string ToString(const D3D12_PROTECTED_SESSION_STATUS value) { + const char* ret = "Unhandled D3D12_PROTECTED_SESSION_STATUS"; switch (value) { - case D3D12_PROTECTED_SESSION_STATUS_OK: return "D3D12_PROTECTED_SESSION_STATUS_OK"; - case D3D12_PROTECTED_SESSION_STATUS_INVALID: return "D3D12_PROTECTED_SESSION_STATUS_INVALID"; - default: break; + case D3D12_PROTECTED_SESSION_STATUS_OK: ret = "D3D12_PROTECTED_SESSION_STATUS_OK"; break; + case D3D12_PROTECTED_SESSION_STATUS_INVALID: ret = "D3D12_PROTECTED_SESSION_STATUS_INVALID"; break; } - return "Unhandled D3D12_PROTECTED_SESSION_STATUS"; + return ret; } -std::string ToString_D3D12_PROTECTED_SESSION_STATUS(uint32_t flags) +std::string ToString_D3D12_PROTECTED_SESSION_STATUS(const uint32_t flags) { return BitmaskToString(flags); } -std::string ToString(const D3D12_PROTECTED_RESOURCE_SESSION_SUPPORT_FLAGS& value) +std::string ToString(const D3D12_PROTECTED_RESOURCE_SESSION_SUPPORT_FLAGS value) { + const char* ret = "Unhandled D3D12_PROTECTED_RESOURCE_SESSION_SUPPORT_FLAGS"; switch (value) { - case D3D12_PROTECTED_RESOURCE_SESSION_SUPPORT_FLAG_NONE: return "D3D12_PROTECTED_RESOURCE_SESSION_SUPPORT_FLAG_NONE"; - case D3D12_PROTECTED_RESOURCE_SESSION_SUPPORT_FLAG_SUPPORTED: return "D3D12_PROTECTED_RESOURCE_SESSION_SUPPORT_FLAG_SUPPORTED"; - default: break; + case D3D12_PROTECTED_RESOURCE_SESSION_SUPPORT_FLAG_NONE: ret = "D3D12_PROTECTED_RESOURCE_SESSION_SUPPORT_FLAG_NONE"; break; + case D3D12_PROTECTED_RESOURCE_SESSION_SUPPORT_FLAG_SUPPORTED: ret = "D3D12_PROTECTED_RESOURCE_SESSION_SUPPORT_FLAG_SUPPORTED"; break; } - return "Unhandled D3D12_PROTECTED_RESOURCE_SESSION_SUPPORT_FLAGS"; + return ret; } -std::string ToString_D3D12_PROTECTED_RESOURCE_SESSION_SUPPORT_FLAGS(uint32_t flags) +std::string ToString_D3D12_PROTECTED_RESOURCE_SESSION_SUPPORT_FLAGS(const uint32_t flags) { return BitmaskToString(flags); } -std::string ToString(const D3D12_PROTECTED_RESOURCE_SESSION_FLAGS& value) +std::string ToString(const D3D12_PROTECTED_RESOURCE_SESSION_FLAGS value) { + const char* ret = "Unhandled D3D12_PROTECTED_RESOURCE_SESSION_FLAGS"; switch (value) { - case D3D12_PROTECTED_RESOURCE_SESSION_FLAG_NONE: return "D3D12_PROTECTED_RESOURCE_SESSION_FLAG_NONE"; - default: break; + case D3D12_PROTECTED_RESOURCE_SESSION_FLAG_NONE: ret = "D3D12_PROTECTED_RESOURCE_SESSION_FLAG_NONE"; break; } - return "Unhandled D3D12_PROTECTED_RESOURCE_SESSION_FLAGS"; + return ret; } -std::string ToString_D3D12_PROTECTED_RESOURCE_SESSION_FLAGS(uint32_t flags) +std::string ToString_D3D12_PROTECTED_RESOURCE_SESSION_FLAGS(const uint32_t flags) { return BitmaskToString(flags); } -std::string ToString(const D3D12_LIFETIME_STATE& value) +std::string ToString(const D3D12_LIFETIME_STATE value) { + const char* ret = "Unhandled D3D12_LIFETIME_STATE"; switch (value) { - case D3D12_LIFETIME_STATE_IN_USE: return "D3D12_LIFETIME_STATE_IN_USE"; - case D3D12_LIFETIME_STATE_NOT_IN_USE: return "D3D12_LIFETIME_STATE_NOT_IN_USE"; - default: break; + case D3D12_LIFETIME_STATE_IN_USE: ret = "D3D12_LIFETIME_STATE_IN_USE"; break; + case D3D12_LIFETIME_STATE_NOT_IN_USE: ret = "D3D12_LIFETIME_STATE_NOT_IN_USE"; break; } - return "Unhandled D3D12_LIFETIME_STATE"; + return ret; } -std::string ToString(const D3D12_META_COMMAND_PARAMETER_TYPE& value) +std::string ToString(const D3D12_META_COMMAND_PARAMETER_TYPE value) { + const char* ret = "Unhandled D3D12_META_COMMAND_PARAMETER_TYPE"; switch (value) { - case D3D12_META_COMMAND_PARAMETER_TYPE_FLOAT: return "D3D12_META_COMMAND_PARAMETER_TYPE_FLOAT"; - case D3D12_META_COMMAND_PARAMETER_TYPE_UINT64: return "D3D12_META_COMMAND_PARAMETER_TYPE_UINT64"; - case D3D12_META_COMMAND_PARAMETER_TYPE_GPU_VIRTUAL_ADDRESS: return "D3D12_META_COMMAND_PARAMETER_TYPE_GPU_VIRTUAL_ADDRESS"; - case D3D12_META_COMMAND_PARAMETER_TYPE_CPU_DESCRIPTOR_HANDLE_HEAP_TYPE_CBV_SRV_UAV: return "D3D12_META_COMMAND_PARAMETER_TYPE_CPU_DESCRIPTOR_HANDLE_HEAP_TYPE_CBV_SRV_UAV"; - case D3D12_META_COMMAND_PARAMETER_TYPE_GPU_DESCRIPTOR_HANDLE_HEAP_TYPE_CBV_SRV_UAV: return "D3D12_META_COMMAND_PARAMETER_TYPE_GPU_DESCRIPTOR_HANDLE_HEAP_TYPE_CBV_SRV_UAV"; - default: break; + case D3D12_META_COMMAND_PARAMETER_TYPE_FLOAT: ret = "D3D12_META_COMMAND_PARAMETER_TYPE_FLOAT"; break; + case D3D12_META_COMMAND_PARAMETER_TYPE_UINT64: ret = "D3D12_META_COMMAND_PARAMETER_TYPE_UINT64"; break; + case D3D12_META_COMMAND_PARAMETER_TYPE_GPU_VIRTUAL_ADDRESS: ret = "D3D12_META_COMMAND_PARAMETER_TYPE_GPU_VIRTUAL_ADDRESS"; break; + case D3D12_META_COMMAND_PARAMETER_TYPE_CPU_DESCRIPTOR_HANDLE_HEAP_TYPE_CBV_SRV_UAV: ret = "D3D12_META_COMMAND_PARAMETER_TYPE_CPU_DESCRIPTOR_HANDLE_HEAP_TYPE_CBV_SRV_UAV"; break; + case D3D12_META_COMMAND_PARAMETER_TYPE_GPU_DESCRIPTOR_HANDLE_HEAP_TYPE_CBV_SRV_UAV: ret = "D3D12_META_COMMAND_PARAMETER_TYPE_GPU_DESCRIPTOR_HANDLE_HEAP_TYPE_CBV_SRV_UAV"; break; } - return "Unhandled D3D12_META_COMMAND_PARAMETER_TYPE"; + return ret; } -std::string ToString(const D3D12_META_COMMAND_PARAMETER_FLAGS& value) +std::string ToString(const D3D12_META_COMMAND_PARAMETER_FLAGS value) { + const char* ret = "Unhandled D3D12_META_COMMAND_PARAMETER_FLAGS"; switch (value) { - case D3D12_META_COMMAND_PARAMETER_FLAG_INPUT: return "D3D12_META_COMMAND_PARAMETER_FLAG_INPUT"; - case D3D12_META_COMMAND_PARAMETER_FLAG_OUTPUT: return "D3D12_META_COMMAND_PARAMETER_FLAG_OUTPUT"; - default: break; + case D3D12_META_COMMAND_PARAMETER_FLAG_INPUT: ret = "D3D12_META_COMMAND_PARAMETER_FLAG_INPUT"; break; + case D3D12_META_COMMAND_PARAMETER_FLAG_OUTPUT: ret = "D3D12_META_COMMAND_PARAMETER_FLAG_OUTPUT"; break; } - return "Unhandled D3D12_META_COMMAND_PARAMETER_FLAGS"; + return ret; } -std::string ToString_D3D12_META_COMMAND_PARAMETER_FLAGS(uint32_t flags) +std::string ToString_D3D12_META_COMMAND_PARAMETER_FLAGS(const uint32_t flags) { return BitmaskToString(flags); } -std::string ToString(const D3D12_META_COMMAND_PARAMETER_STAGE& value) +std::string ToString(const D3D12_META_COMMAND_PARAMETER_STAGE value) { + const char* ret = "Unhandled D3D12_META_COMMAND_PARAMETER_STAGE"; switch (value) { - case D3D12_META_COMMAND_PARAMETER_STAGE_CREATION: return "D3D12_META_COMMAND_PARAMETER_STAGE_CREATION"; - case D3D12_META_COMMAND_PARAMETER_STAGE_INITIALIZATION: return "D3D12_META_COMMAND_PARAMETER_STAGE_INITIALIZATION"; - case D3D12_META_COMMAND_PARAMETER_STAGE_EXECUTION: return "D3D12_META_COMMAND_PARAMETER_STAGE_EXECUTION"; - default: break; + case D3D12_META_COMMAND_PARAMETER_STAGE_CREATION: ret = "D3D12_META_COMMAND_PARAMETER_STAGE_CREATION"; break; + case D3D12_META_COMMAND_PARAMETER_STAGE_INITIALIZATION: ret = "D3D12_META_COMMAND_PARAMETER_STAGE_INITIALIZATION"; break; + case D3D12_META_COMMAND_PARAMETER_STAGE_EXECUTION: ret = "D3D12_META_COMMAND_PARAMETER_STAGE_EXECUTION"; break; } - return "Unhandled D3D12_META_COMMAND_PARAMETER_STAGE"; + return ret; } -std::string ToString(const D3D12_GRAPHICS_STATES& value) +std::string ToString(const D3D12_GRAPHICS_STATES value) { + const char* ret = "Unhandled D3D12_GRAPHICS_STATES"; switch (value) { - case D3D12_GRAPHICS_STATE_NONE: return "D3D12_GRAPHICS_STATE_NONE"; - case D3D12_GRAPHICS_STATE_IA_VERTEX_BUFFERS: return "D3D12_GRAPHICS_STATE_IA_VERTEX_BUFFERS"; - case D3D12_GRAPHICS_STATE_IA_INDEX_BUFFER: return "D3D12_GRAPHICS_STATE_IA_INDEX_BUFFER"; - case D3D12_GRAPHICS_STATE_IA_PRIMITIVE_TOPOLOGY: return "D3D12_GRAPHICS_STATE_IA_PRIMITIVE_TOPOLOGY"; - case D3D12_GRAPHICS_STATE_DESCRIPTOR_HEAP: return "D3D12_GRAPHICS_STATE_DESCRIPTOR_HEAP"; - case D3D12_GRAPHICS_STATE_GRAPHICS_ROOT_SIGNATURE: return "D3D12_GRAPHICS_STATE_GRAPHICS_ROOT_SIGNATURE"; - case D3D12_GRAPHICS_STATE_COMPUTE_ROOT_SIGNATURE: return "D3D12_GRAPHICS_STATE_COMPUTE_ROOT_SIGNATURE"; - case D3D12_GRAPHICS_STATE_RS_VIEWPORTS: return "D3D12_GRAPHICS_STATE_RS_VIEWPORTS"; - case D3D12_GRAPHICS_STATE_RS_SCISSOR_RECTS: return "D3D12_GRAPHICS_STATE_RS_SCISSOR_RECTS"; - case D3D12_GRAPHICS_STATE_PREDICATION: return "D3D12_GRAPHICS_STATE_PREDICATION"; - case D3D12_GRAPHICS_STATE_OM_RENDER_TARGETS: return "D3D12_GRAPHICS_STATE_OM_RENDER_TARGETS"; - case D3D12_GRAPHICS_STATE_OM_STENCIL_REF: return "D3D12_GRAPHICS_STATE_OM_STENCIL_REF"; - case D3D12_GRAPHICS_STATE_OM_BLEND_FACTOR: return "D3D12_GRAPHICS_STATE_OM_BLEND_FACTOR"; - case D3D12_GRAPHICS_STATE_PIPELINE_STATE: return "D3D12_GRAPHICS_STATE_PIPELINE_STATE"; - case D3D12_GRAPHICS_STATE_SO_TARGETS: return "D3D12_GRAPHICS_STATE_SO_TARGETS"; - case D3D12_GRAPHICS_STATE_OM_DEPTH_BOUNDS: return "D3D12_GRAPHICS_STATE_OM_DEPTH_BOUNDS"; - case D3D12_GRAPHICS_STATE_SAMPLE_POSITIONS: return "D3D12_GRAPHICS_STATE_SAMPLE_POSITIONS"; - case D3D12_GRAPHICS_STATE_VIEW_INSTANCE_MASK: return "D3D12_GRAPHICS_STATE_VIEW_INSTANCE_MASK"; - default: break; + case D3D12_GRAPHICS_STATE_NONE: ret = "D3D12_GRAPHICS_STATE_NONE"; break; + case D3D12_GRAPHICS_STATE_IA_VERTEX_BUFFERS: ret = "D3D12_GRAPHICS_STATE_IA_VERTEX_BUFFERS"; break; + case D3D12_GRAPHICS_STATE_IA_INDEX_BUFFER: ret = "D3D12_GRAPHICS_STATE_IA_INDEX_BUFFER"; break; + case D3D12_GRAPHICS_STATE_IA_PRIMITIVE_TOPOLOGY: ret = "D3D12_GRAPHICS_STATE_IA_PRIMITIVE_TOPOLOGY"; break; + case D3D12_GRAPHICS_STATE_DESCRIPTOR_HEAP: ret = "D3D12_GRAPHICS_STATE_DESCRIPTOR_HEAP"; break; + case D3D12_GRAPHICS_STATE_GRAPHICS_ROOT_SIGNATURE: ret = "D3D12_GRAPHICS_STATE_GRAPHICS_ROOT_SIGNATURE"; break; + case D3D12_GRAPHICS_STATE_COMPUTE_ROOT_SIGNATURE: ret = "D3D12_GRAPHICS_STATE_COMPUTE_ROOT_SIGNATURE"; break; + case D3D12_GRAPHICS_STATE_RS_VIEWPORTS: ret = "D3D12_GRAPHICS_STATE_RS_VIEWPORTS"; break; + case D3D12_GRAPHICS_STATE_RS_SCISSOR_RECTS: ret = "D3D12_GRAPHICS_STATE_RS_SCISSOR_RECTS"; break; + case D3D12_GRAPHICS_STATE_PREDICATION: ret = "D3D12_GRAPHICS_STATE_PREDICATION"; break; + case D3D12_GRAPHICS_STATE_OM_RENDER_TARGETS: ret = "D3D12_GRAPHICS_STATE_OM_RENDER_TARGETS"; break; + case D3D12_GRAPHICS_STATE_OM_STENCIL_REF: ret = "D3D12_GRAPHICS_STATE_OM_STENCIL_REF"; break; + case D3D12_GRAPHICS_STATE_OM_BLEND_FACTOR: ret = "D3D12_GRAPHICS_STATE_OM_BLEND_FACTOR"; break; + case D3D12_GRAPHICS_STATE_PIPELINE_STATE: ret = "D3D12_GRAPHICS_STATE_PIPELINE_STATE"; break; + case D3D12_GRAPHICS_STATE_SO_TARGETS: ret = "D3D12_GRAPHICS_STATE_SO_TARGETS"; break; + case D3D12_GRAPHICS_STATE_OM_DEPTH_BOUNDS: ret = "D3D12_GRAPHICS_STATE_OM_DEPTH_BOUNDS"; break; + case D3D12_GRAPHICS_STATE_SAMPLE_POSITIONS: ret = "D3D12_GRAPHICS_STATE_SAMPLE_POSITIONS"; break; + case D3D12_GRAPHICS_STATE_VIEW_INSTANCE_MASK: ret = "D3D12_GRAPHICS_STATE_VIEW_INSTANCE_MASK"; break; } - return "Unhandled D3D12_GRAPHICS_STATES"; + return ret; } -std::string ToString_D3D12_GRAPHICS_STATES(uint32_t flags) +std::string ToString_D3D12_GRAPHICS_STATES(const uint32_t flags) { return BitmaskToString(flags); } -std::string ToString(const D3D12_STATE_SUBOBJECT_TYPE& value) +std::string ToString(const D3D12_STATE_SUBOBJECT_TYPE value) { + const char* ret = "Unhandled D3D12_STATE_SUBOBJECT_TYPE"; switch (value) { - case D3D12_STATE_SUBOBJECT_TYPE_STATE_OBJECT_CONFIG: return "D3D12_STATE_SUBOBJECT_TYPE_STATE_OBJECT_CONFIG"; - case D3D12_STATE_SUBOBJECT_TYPE_GLOBAL_ROOT_SIGNATURE: return "D3D12_STATE_SUBOBJECT_TYPE_GLOBAL_ROOT_SIGNATURE"; - case D3D12_STATE_SUBOBJECT_TYPE_LOCAL_ROOT_SIGNATURE: return "D3D12_STATE_SUBOBJECT_TYPE_LOCAL_ROOT_SIGNATURE"; - case D3D12_STATE_SUBOBJECT_TYPE_NODE_MASK: return "D3D12_STATE_SUBOBJECT_TYPE_NODE_MASK"; - case D3D12_STATE_SUBOBJECT_TYPE_DXIL_LIBRARY: return "D3D12_STATE_SUBOBJECT_TYPE_DXIL_LIBRARY"; - case D3D12_STATE_SUBOBJECT_TYPE_EXISTING_COLLECTION: return "D3D12_STATE_SUBOBJECT_TYPE_EXISTING_COLLECTION"; - case D3D12_STATE_SUBOBJECT_TYPE_SUBOBJECT_TO_EXPORTS_ASSOCIATION: return "D3D12_STATE_SUBOBJECT_TYPE_SUBOBJECT_TO_EXPORTS_ASSOCIATION"; - case D3D12_STATE_SUBOBJECT_TYPE_DXIL_SUBOBJECT_TO_EXPORTS_ASSOCIATION: return "D3D12_STATE_SUBOBJECT_TYPE_DXIL_SUBOBJECT_TO_EXPORTS_ASSOCIATION"; - case D3D12_STATE_SUBOBJECT_TYPE_RAYTRACING_SHADER_CONFIG: return "D3D12_STATE_SUBOBJECT_TYPE_RAYTRACING_SHADER_CONFIG"; - case D3D12_STATE_SUBOBJECT_TYPE_RAYTRACING_PIPELINE_CONFIG: return "D3D12_STATE_SUBOBJECT_TYPE_RAYTRACING_PIPELINE_CONFIG"; - case D3D12_STATE_SUBOBJECT_TYPE_HIT_GROUP: return "D3D12_STATE_SUBOBJECT_TYPE_HIT_GROUP"; - case D3D12_STATE_SUBOBJECT_TYPE_RAYTRACING_PIPELINE_CONFIG1: return "D3D12_STATE_SUBOBJECT_TYPE_RAYTRACING_PIPELINE_CONFIG1"; - case D3D12_STATE_SUBOBJECT_TYPE_MAX_VALID: return "D3D12_STATE_SUBOBJECT_TYPE_MAX_VALID"; - default: break; + case D3D12_STATE_SUBOBJECT_TYPE_STATE_OBJECT_CONFIG: ret = "D3D12_STATE_SUBOBJECT_TYPE_STATE_OBJECT_CONFIG"; break; + case D3D12_STATE_SUBOBJECT_TYPE_GLOBAL_ROOT_SIGNATURE: ret = "D3D12_STATE_SUBOBJECT_TYPE_GLOBAL_ROOT_SIGNATURE"; break; + case D3D12_STATE_SUBOBJECT_TYPE_LOCAL_ROOT_SIGNATURE: ret = "D3D12_STATE_SUBOBJECT_TYPE_LOCAL_ROOT_SIGNATURE"; break; + case D3D12_STATE_SUBOBJECT_TYPE_NODE_MASK: ret = "D3D12_STATE_SUBOBJECT_TYPE_NODE_MASK"; break; + case D3D12_STATE_SUBOBJECT_TYPE_DXIL_LIBRARY: ret = "D3D12_STATE_SUBOBJECT_TYPE_DXIL_LIBRARY"; break; + case D3D12_STATE_SUBOBJECT_TYPE_EXISTING_COLLECTION: ret = "D3D12_STATE_SUBOBJECT_TYPE_EXISTING_COLLECTION"; break; + case D3D12_STATE_SUBOBJECT_TYPE_SUBOBJECT_TO_EXPORTS_ASSOCIATION: ret = "D3D12_STATE_SUBOBJECT_TYPE_SUBOBJECT_TO_EXPORTS_ASSOCIATION"; break; + case D3D12_STATE_SUBOBJECT_TYPE_DXIL_SUBOBJECT_TO_EXPORTS_ASSOCIATION: ret = "D3D12_STATE_SUBOBJECT_TYPE_DXIL_SUBOBJECT_TO_EXPORTS_ASSOCIATION"; break; + case D3D12_STATE_SUBOBJECT_TYPE_RAYTRACING_SHADER_CONFIG: ret = "D3D12_STATE_SUBOBJECT_TYPE_RAYTRACING_SHADER_CONFIG"; break; + case D3D12_STATE_SUBOBJECT_TYPE_RAYTRACING_PIPELINE_CONFIG: ret = "D3D12_STATE_SUBOBJECT_TYPE_RAYTRACING_PIPELINE_CONFIG"; break; + case D3D12_STATE_SUBOBJECT_TYPE_HIT_GROUP: ret = "D3D12_STATE_SUBOBJECT_TYPE_HIT_GROUP"; break; + case D3D12_STATE_SUBOBJECT_TYPE_RAYTRACING_PIPELINE_CONFIG1: ret = "D3D12_STATE_SUBOBJECT_TYPE_RAYTRACING_PIPELINE_CONFIG1"; break; + case D3D12_STATE_SUBOBJECT_TYPE_MAX_VALID: ret = "D3D12_STATE_SUBOBJECT_TYPE_MAX_VALID"; break; } - return "Unhandled D3D12_STATE_SUBOBJECT_TYPE"; + return ret; } -std::string ToString(const D3D12_STATE_OBJECT_FLAGS& value) +std::string ToString(const D3D12_STATE_OBJECT_FLAGS value) { + const char* ret = "Unhandled D3D12_STATE_OBJECT_FLAGS"; switch (value) { - case D3D12_STATE_OBJECT_FLAG_NONE: return "D3D12_STATE_OBJECT_FLAG_NONE"; - case D3D12_STATE_OBJECT_FLAG_ALLOW_LOCAL_DEPENDENCIES_ON_EXTERNAL_DEFINITIONS: return "D3D12_STATE_OBJECT_FLAG_ALLOW_LOCAL_DEPENDENCIES_ON_EXTERNAL_DEFINITIONS"; - case D3D12_STATE_OBJECT_FLAG_ALLOW_EXTERNAL_DEPENDENCIES_ON_LOCAL_DEFINITIONS: return "D3D12_STATE_OBJECT_FLAG_ALLOW_EXTERNAL_DEPENDENCIES_ON_LOCAL_DEFINITIONS"; - case D3D12_STATE_OBJECT_FLAG_ALLOW_STATE_OBJECT_ADDITIONS: return "D3D12_STATE_OBJECT_FLAG_ALLOW_STATE_OBJECT_ADDITIONS"; - default: break; + case D3D12_STATE_OBJECT_FLAG_NONE: ret = "D3D12_STATE_OBJECT_FLAG_NONE"; break; + case D3D12_STATE_OBJECT_FLAG_ALLOW_LOCAL_DEPENDENCIES_ON_EXTERNAL_DEFINITIONS: ret = "D3D12_STATE_OBJECT_FLAG_ALLOW_LOCAL_DEPENDENCIES_ON_EXTERNAL_DEFINITIONS"; break; + case D3D12_STATE_OBJECT_FLAG_ALLOW_EXTERNAL_DEPENDENCIES_ON_LOCAL_DEFINITIONS: ret = "D3D12_STATE_OBJECT_FLAG_ALLOW_EXTERNAL_DEPENDENCIES_ON_LOCAL_DEFINITIONS"; break; + case D3D12_STATE_OBJECT_FLAG_ALLOW_STATE_OBJECT_ADDITIONS: ret = "D3D12_STATE_OBJECT_FLAG_ALLOW_STATE_OBJECT_ADDITIONS"; break; } - return "Unhandled D3D12_STATE_OBJECT_FLAGS"; + return ret; } -std::string ToString_D3D12_STATE_OBJECT_FLAGS(uint32_t flags) +std::string ToString_D3D12_STATE_OBJECT_FLAGS(const uint32_t flags) { return BitmaskToString(flags); } -std::string ToString(const D3D12_EXPORT_FLAGS& value) +std::string ToString(const D3D12_EXPORT_FLAGS value) { + const char* ret = "Unhandled D3D12_EXPORT_FLAGS"; switch (value) { - case D3D12_EXPORT_FLAG_NONE: return "D3D12_EXPORT_FLAG_NONE"; - default: break; + case D3D12_EXPORT_FLAG_NONE: ret = "D3D12_EXPORT_FLAG_NONE"; break; } - return "Unhandled D3D12_EXPORT_FLAGS"; + return ret; } -std::string ToString_D3D12_EXPORT_FLAGS(uint32_t flags) +std::string ToString_D3D12_EXPORT_FLAGS(const uint32_t flags) { return BitmaskToString(flags); } -std::string ToString(const D3D12_HIT_GROUP_TYPE& value) +std::string ToString(const D3D12_HIT_GROUP_TYPE value) { + const char* ret = "Unhandled D3D12_HIT_GROUP_TYPE"; switch (value) { - case D3D12_HIT_GROUP_TYPE_TRIANGLES: return "D3D12_HIT_GROUP_TYPE_TRIANGLES"; - case D3D12_HIT_GROUP_TYPE_PROCEDURAL_PRIMITIVE: return "D3D12_HIT_GROUP_TYPE_PROCEDURAL_PRIMITIVE"; - default: break; + case D3D12_HIT_GROUP_TYPE_TRIANGLES: ret = "D3D12_HIT_GROUP_TYPE_TRIANGLES"; break; + case D3D12_HIT_GROUP_TYPE_PROCEDURAL_PRIMITIVE: ret = "D3D12_HIT_GROUP_TYPE_PROCEDURAL_PRIMITIVE"; break; } - return "Unhandled D3D12_HIT_GROUP_TYPE"; + return ret; } -std::string ToString(const D3D12_RAYTRACING_PIPELINE_FLAGS& value) +std::string ToString(const D3D12_RAYTRACING_PIPELINE_FLAGS value) { + const char* ret = "Unhandled D3D12_RAYTRACING_PIPELINE_FLAGS"; switch (value) { - case D3D12_RAYTRACING_PIPELINE_FLAG_NONE: return "D3D12_RAYTRACING_PIPELINE_FLAG_NONE"; - case D3D12_RAYTRACING_PIPELINE_FLAG_SKIP_TRIANGLES: return "D3D12_RAYTRACING_PIPELINE_FLAG_SKIP_TRIANGLES"; - case D3D12_RAYTRACING_PIPELINE_FLAG_SKIP_PROCEDURAL_PRIMITIVES: return "D3D12_RAYTRACING_PIPELINE_FLAG_SKIP_PROCEDURAL_PRIMITIVES"; - default: break; + case D3D12_RAYTRACING_PIPELINE_FLAG_NONE: ret = "D3D12_RAYTRACING_PIPELINE_FLAG_NONE"; break; + case D3D12_RAYTRACING_PIPELINE_FLAG_SKIP_TRIANGLES: ret = "D3D12_RAYTRACING_PIPELINE_FLAG_SKIP_TRIANGLES"; break; + case D3D12_RAYTRACING_PIPELINE_FLAG_SKIP_PROCEDURAL_PRIMITIVES: ret = "D3D12_RAYTRACING_PIPELINE_FLAG_SKIP_PROCEDURAL_PRIMITIVES"; break; } - return "Unhandled D3D12_RAYTRACING_PIPELINE_FLAGS"; + return ret; } -std::string ToString_D3D12_RAYTRACING_PIPELINE_FLAGS(uint32_t flags) +std::string ToString_D3D12_RAYTRACING_PIPELINE_FLAGS(const uint32_t flags) { return BitmaskToString(flags); } -std::string ToString(const D3D12_STATE_OBJECT_TYPE& value) +std::string ToString(const D3D12_STATE_OBJECT_TYPE value) { + const char* ret = "Unhandled D3D12_STATE_OBJECT_TYPE"; switch (value) { - case D3D12_STATE_OBJECT_TYPE_COLLECTION: return "D3D12_STATE_OBJECT_TYPE_COLLECTION"; - case D3D12_STATE_OBJECT_TYPE_RAYTRACING_PIPELINE: return "D3D12_STATE_OBJECT_TYPE_RAYTRACING_PIPELINE"; - default: break; + case D3D12_STATE_OBJECT_TYPE_COLLECTION: ret = "D3D12_STATE_OBJECT_TYPE_COLLECTION"; break; + case D3D12_STATE_OBJECT_TYPE_RAYTRACING_PIPELINE: ret = "D3D12_STATE_OBJECT_TYPE_RAYTRACING_PIPELINE"; break; } - return "Unhandled D3D12_STATE_OBJECT_TYPE"; + return ret; } -std::string ToString(const D3D12_RAYTRACING_GEOMETRY_FLAGS& value) +std::string ToString(const D3D12_RAYTRACING_GEOMETRY_FLAGS value) { + const char* ret = "Unhandled D3D12_RAYTRACING_GEOMETRY_FLAGS"; switch (value) { - case D3D12_RAYTRACING_GEOMETRY_FLAG_NONE: return "D3D12_RAYTRACING_GEOMETRY_FLAG_NONE"; - case D3D12_RAYTRACING_GEOMETRY_FLAG_OPAQUE: return "D3D12_RAYTRACING_GEOMETRY_FLAG_OPAQUE"; - case D3D12_RAYTRACING_GEOMETRY_FLAG_NO_DUPLICATE_ANYHIT_INVOCATION: return "D3D12_RAYTRACING_GEOMETRY_FLAG_NO_DUPLICATE_ANYHIT_INVOCATION"; - default: break; + case D3D12_RAYTRACING_GEOMETRY_FLAG_NONE: ret = "D3D12_RAYTRACING_GEOMETRY_FLAG_NONE"; break; + case D3D12_RAYTRACING_GEOMETRY_FLAG_OPAQUE: ret = "D3D12_RAYTRACING_GEOMETRY_FLAG_OPAQUE"; break; + case D3D12_RAYTRACING_GEOMETRY_FLAG_NO_DUPLICATE_ANYHIT_INVOCATION: ret = "D3D12_RAYTRACING_GEOMETRY_FLAG_NO_DUPLICATE_ANYHIT_INVOCATION"; break; } - return "Unhandled D3D12_RAYTRACING_GEOMETRY_FLAGS"; + return ret; } -std::string ToString_D3D12_RAYTRACING_GEOMETRY_FLAGS(uint32_t flags) +std::string ToString_D3D12_RAYTRACING_GEOMETRY_FLAGS(const uint32_t flags) { return BitmaskToString(flags); } -std::string ToString(const D3D12_RAYTRACING_GEOMETRY_TYPE& value) +std::string ToString(const D3D12_RAYTRACING_GEOMETRY_TYPE value) { + const char* ret = "Unhandled D3D12_RAYTRACING_GEOMETRY_TYPE"; switch (value) { - case D3D12_RAYTRACING_GEOMETRY_TYPE_TRIANGLES: return "D3D12_RAYTRACING_GEOMETRY_TYPE_TRIANGLES"; - case D3D12_RAYTRACING_GEOMETRY_TYPE_PROCEDURAL_PRIMITIVE_AABBS: return "D3D12_RAYTRACING_GEOMETRY_TYPE_PROCEDURAL_PRIMITIVE_AABBS"; - default: break; + case D3D12_RAYTRACING_GEOMETRY_TYPE_TRIANGLES: ret = "D3D12_RAYTRACING_GEOMETRY_TYPE_TRIANGLES"; break; + case D3D12_RAYTRACING_GEOMETRY_TYPE_PROCEDURAL_PRIMITIVE_AABBS: ret = "D3D12_RAYTRACING_GEOMETRY_TYPE_PROCEDURAL_PRIMITIVE_AABBS"; break; } - return "Unhandled D3D12_RAYTRACING_GEOMETRY_TYPE"; + return ret; } -std::string ToString(const D3D12_RAYTRACING_INSTANCE_FLAGS& value) +std::string ToString(const D3D12_RAYTRACING_INSTANCE_FLAGS value) { + const char* ret = "Unhandled D3D12_RAYTRACING_INSTANCE_FLAGS"; switch (value) { - case D3D12_RAYTRACING_INSTANCE_FLAG_NONE: return "D3D12_RAYTRACING_INSTANCE_FLAG_NONE"; - case D3D12_RAYTRACING_INSTANCE_FLAG_TRIANGLE_CULL_DISABLE: return "D3D12_RAYTRACING_INSTANCE_FLAG_TRIANGLE_CULL_DISABLE"; - case D3D12_RAYTRACING_INSTANCE_FLAG_TRIANGLE_FRONT_COUNTERCLOCKWISE: return "D3D12_RAYTRACING_INSTANCE_FLAG_TRIANGLE_FRONT_COUNTERCLOCKWISE"; - case D3D12_RAYTRACING_INSTANCE_FLAG_FORCE_OPAQUE: return "D3D12_RAYTRACING_INSTANCE_FLAG_FORCE_OPAQUE"; - case D3D12_RAYTRACING_INSTANCE_FLAG_FORCE_NON_OPAQUE: return "D3D12_RAYTRACING_INSTANCE_FLAG_FORCE_NON_OPAQUE"; - default: break; + case D3D12_RAYTRACING_INSTANCE_FLAG_NONE: ret = "D3D12_RAYTRACING_INSTANCE_FLAG_NONE"; break; + case D3D12_RAYTRACING_INSTANCE_FLAG_TRIANGLE_CULL_DISABLE: ret = "D3D12_RAYTRACING_INSTANCE_FLAG_TRIANGLE_CULL_DISABLE"; break; + case D3D12_RAYTRACING_INSTANCE_FLAG_TRIANGLE_FRONT_COUNTERCLOCKWISE: ret = "D3D12_RAYTRACING_INSTANCE_FLAG_TRIANGLE_FRONT_COUNTERCLOCKWISE"; break; + case D3D12_RAYTRACING_INSTANCE_FLAG_FORCE_OPAQUE: ret = "D3D12_RAYTRACING_INSTANCE_FLAG_FORCE_OPAQUE"; break; + case D3D12_RAYTRACING_INSTANCE_FLAG_FORCE_NON_OPAQUE: ret = "D3D12_RAYTRACING_INSTANCE_FLAG_FORCE_NON_OPAQUE"; break; } - return "Unhandled D3D12_RAYTRACING_INSTANCE_FLAGS"; + return ret; } -std::string ToString_D3D12_RAYTRACING_INSTANCE_FLAGS(uint32_t flags) +std::string ToString_D3D12_RAYTRACING_INSTANCE_FLAGS(const uint32_t flags) { return BitmaskToString(flags); } -std::string ToString(const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAGS& value) +std::string ToString(const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAGS value) { + const char* ret = "Unhandled D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAGS"; switch (value) { - case D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_NONE: return "D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_NONE"; - case D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_ALLOW_UPDATE: return "D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_ALLOW_UPDATE"; - case D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_ALLOW_COMPACTION: return "D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_ALLOW_COMPACTION"; - case D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_PREFER_FAST_TRACE: return "D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_PREFER_FAST_TRACE"; - case D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_PREFER_FAST_BUILD: return "D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_PREFER_FAST_BUILD"; - case D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_MINIMIZE_MEMORY: return "D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_MINIMIZE_MEMORY"; - case D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_PERFORM_UPDATE: return "D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_PERFORM_UPDATE"; - default: break; + case D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_NONE: ret = "D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_NONE"; break; + case D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_ALLOW_UPDATE: ret = "D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_ALLOW_UPDATE"; break; + case D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_ALLOW_COMPACTION: ret = "D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_ALLOW_COMPACTION"; break; + case D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_PREFER_FAST_TRACE: ret = "D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_PREFER_FAST_TRACE"; break; + case D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_PREFER_FAST_BUILD: ret = "D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_PREFER_FAST_BUILD"; break; + case D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_MINIMIZE_MEMORY: ret = "D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_MINIMIZE_MEMORY"; break; + case D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_PERFORM_UPDATE: ret = "D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_PERFORM_UPDATE"; break; } - return "Unhandled D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAGS"; + return ret; } -std::string ToString_D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAGS(uint32_t flags) +std::string ToString_D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAGS(const uint32_t flags) { return BitmaskToString(flags); } -std::string ToString(const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE& value) +std::string ToString(const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE value) { + const char* ret = "Unhandled D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE"; switch (value) { - case D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE_CLONE: return "D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE_CLONE"; - case D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE_COMPACT: return "D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE_COMPACT"; - case D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE_VISUALIZATION_DECODE_FOR_TOOLS: return "D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE_VISUALIZATION_DECODE_FOR_TOOLS"; - case D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE_SERIALIZE: return "D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE_SERIALIZE"; - case D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE_DESERIALIZE: return "D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE_DESERIALIZE"; - default: break; + case D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE_CLONE: ret = "D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE_CLONE"; break; + case D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE_COMPACT: ret = "D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE_COMPACT"; break; + case D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE_VISUALIZATION_DECODE_FOR_TOOLS: ret = "D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE_VISUALIZATION_DECODE_FOR_TOOLS"; break; + case D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE_SERIALIZE: ret = "D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE_SERIALIZE"; break; + case D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE_DESERIALIZE: ret = "D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE_DESERIALIZE"; break; } - return "Unhandled D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE"; + return ret; } -std::string ToString(const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_TYPE& value) +std::string ToString(const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_TYPE value) { + const char* ret = "Unhandled D3D12_RAYTRACING_ACCELERATION_STRUCTURE_TYPE"; switch (value) { - case D3D12_RAYTRACING_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL: return "D3D12_RAYTRACING_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL"; - case D3D12_RAYTRACING_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL: return "D3D12_RAYTRACING_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL"; - default: break; + case D3D12_RAYTRACING_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL: ret = "D3D12_RAYTRACING_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL"; break; + case D3D12_RAYTRACING_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL: ret = "D3D12_RAYTRACING_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL"; break; } - return "Unhandled D3D12_RAYTRACING_ACCELERATION_STRUCTURE_TYPE"; + return ret; } -std::string ToString(const D3D12_ELEMENTS_LAYOUT& value) +std::string ToString(const D3D12_ELEMENTS_LAYOUT value) { + const char* ret = "Unhandled D3D12_ELEMENTS_LAYOUT"; switch (value) { - case D3D12_ELEMENTS_LAYOUT_ARRAY: return "D3D12_ELEMENTS_LAYOUT_ARRAY"; - case D3D12_ELEMENTS_LAYOUT_ARRAY_OF_POINTERS: return "D3D12_ELEMENTS_LAYOUT_ARRAY_OF_POINTERS"; - default: break; + case D3D12_ELEMENTS_LAYOUT_ARRAY: ret = "D3D12_ELEMENTS_LAYOUT_ARRAY"; break; + case D3D12_ELEMENTS_LAYOUT_ARRAY_OF_POINTERS: ret = "D3D12_ELEMENTS_LAYOUT_ARRAY_OF_POINTERS"; break; } - return "Unhandled D3D12_ELEMENTS_LAYOUT"; + return ret; } -std::string ToString(const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_TYPE& value) +std::string ToString(const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_TYPE value) { + const char* ret = "Unhandled D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_TYPE"; switch (value) { - case D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_COMPACTED_SIZE: return "D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_COMPACTED_SIZE"; - case D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_TOOLS_VISUALIZATION: return "D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_TOOLS_VISUALIZATION"; - case D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_SERIALIZATION: return "D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_SERIALIZATION"; - case D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_CURRENT_SIZE: return "D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_CURRENT_SIZE"; - default: break; + case D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_COMPACTED_SIZE: ret = "D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_COMPACTED_SIZE"; break; + case D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_TOOLS_VISUALIZATION: ret = "D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_TOOLS_VISUALIZATION"; break; + case D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_SERIALIZATION: ret = "D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_SERIALIZATION"; break; + case D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_CURRENT_SIZE: ret = "D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_CURRENT_SIZE"; break; } - return "Unhandled D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_TYPE"; + return ret; } -std::string ToString(const D3D12_SERIALIZED_DATA_TYPE& value) +std::string ToString(const D3D12_SERIALIZED_DATA_TYPE value) { + const char* ret = "Unhandled D3D12_SERIALIZED_DATA_TYPE"; switch (value) { - case D3D12_SERIALIZED_DATA_RAYTRACING_ACCELERATION_STRUCTURE: return "D3D12_SERIALIZED_DATA_RAYTRACING_ACCELERATION_STRUCTURE"; - default: break; + case D3D12_SERIALIZED_DATA_RAYTRACING_ACCELERATION_STRUCTURE: ret = "D3D12_SERIALIZED_DATA_RAYTRACING_ACCELERATION_STRUCTURE"; break; } - return "Unhandled D3D12_SERIALIZED_DATA_TYPE"; + return ret; } -std::string ToString(const D3D12_DRIVER_MATCHING_IDENTIFIER_STATUS& value) +std::string ToString(const D3D12_DRIVER_MATCHING_IDENTIFIER_STATUS value) { + const char* ret = "Unhandled D3D12_DRIVER_MATCHING_IDENTIFIER_STATUS"; switch (value) { - case D3D12_DRIVER_MATCHING_IDENTIFIER_COMPATIBLE_WITH_DEVICE: return "D3D12_DRIVER_MATCHING_IDENTIFIER_COMPATIBLE_WITH_DEVICE"; - case D3D12_DRIVER_MATCHING_IDENTIFIER_UNSUPPORTED_TYPE: return "D3D12_DRIVER_MATCHING_IDENTIFIER_UNSUPPORTED_TYPE"; - case D3D12_DRIVER_MATCHING_IDENTIFIER_UNRECOGNIZED: return "D3D12_DRIVER_MATCHING_IDENTIFIER_UNRECOGNIZED"; - case D3D12_DRIVER_MATCHING_IDENTIFIER_INCOMPATIBLE_VERSION: return "D3D12_DRIVER_MATCHING_IDENTIFIER_INCOMPATIBLE_VERSION"; - case D3D12_DRIVER_MATCHING_IDENTIFIER_INCOMPATIBLE_TYPE: return "D3D12_DRIVER_MATCHING_IDENTIFIER_INCOMPATIBLE_TYPE"; - default: break; + case D3D12_DRIVER_MATCHING_IDENTIFIER_COMPATIBLE_WITH_DEVICE: ret = "D3D12_DRIVER_MATCHING_IDENTIFIER_COMPATIBLE_WITH_DEVICE"; break; + case D3D12_DRIVER_MATCHING_IDENTIFIER_UNSUPPORTED_TYPE: ret = "D3D12_DRIVER_MATCHING_IDENTIFIER_UNSUPPORTED_TYPE"; break; + case D3D12_DRIVER_MATCHING_IDENTIFIER_UNRECOGNIZED: ret = "D3D12_DRIVER_MATCHING_IDENTIFIER_UNRECOGNIZED"; break; + case D3D12_DRIVER_MATCHING_IDENTIFIER_INCOMPATIBLE_VERSION: ret = "D3D12_DRIVER_MATCHING_IDENTIFIER_INCOMPATIBLE_VERSION"; break; + case D3D12_DRIVER_MATCHING_IDENTIFIER_INCOMPATIBLE_TYPE: ret = "D3D12_DRIVER_MATCHING_IDENTIFIER_INCOMPATIBLE_TYPE"; break; } - return "Unhandled D3D12_DRIVER_MATCHING_IDENTIFIER_STATUS"; + return ret; } -std::string ToString_D3D12_DRIVER_MATCHING_IDENTIFIER_STATUS(uint32_t flags) +std::string ToString_D3D12_DRIVER_MATCHING_IDENTIFIER_STATUS(const uint32_t flags) { return BitmaskToString(flags); } -std::string ToString(const D3D12_RAY_FLAGS& value) +std::string ToString(const D3D12_RAY_FLAGS value) { + const char* ret = "Unhandled D3D12_RAY_FLAGS"; switch (value) { - case D3D12_RAY_FLAG_NONE: return "D3D12_RAY_FLAG_NONE"; - case D3D12_RAY_FLAG_FORCE_OPAQUE: return "D3D12_RAY_FLAG_FORCE_OPAQUE"; - case D3D12_RAY_FLAG_FORCE_NON_OPAQUE: return "D3D12_RAY_FLAG_FORCE_NON_OPAQUE"; - case D3D12_RAY_FLAG_ACCEPT_FIRST_HIT_AND_END_SEARCH: return "D3D12_RAY_FLAG_ACCEPT_FIRST_HIT_AND_END_SEARCH"; - case D3D12_RAY_FLAG_SKIP_CLOSEST_HIT_SHADER: return "D3D12_RAY_FLAG_SKIP_CLOSEST_HIT_SHADER"; - case D3D12_RAY_FLAG_CULL_BACK_FACING_TRIANGLES: return "D3D12_RAY_FLAG_CULL_BACK_FACING_TRIANGLES"; - case D3D12_RAY_FLAG_CULL_FRONT_FACING_TRIANGLES: return "D3D12_RAY_FLAG_CULL_FRONT_FACING_TRIANGLES"; - case D3D12_RAY_FLAG_CULL_OPAQUE: return "D3D12_RAY_FLAG_CULL_OPAQUE"; - case D3D12_RAY_FLAG_CULL_NON_OPAQUE: return "D3D12_RAY_FLAG_CULL_NON_OPAQUE"; - case D3D12_RAY_FLAG_SKIP_TRIANGLES: return "D3D12_RAY_FLAG_SKIP_TRIANGLES"; - case D3D12_RAY_FLAG_SKIP_PROCEDURAL_PRIMITIVES: return "D3D12_RAY_FLAG_SKIP_PROCEDURAL_PRIMITIVES"; - default: break; + case D3D12_RAY_FLAG_NONE: ret = "D3D12_RAY_FLAG_NONE"; break; + case D3D12_RAY_FLAG_FORCE_OPAQUE: ret = "D3D12_RAY_FLAG_FORCE_OPAQUE"; break; + case D3D12_RAY_FLAG_FORCE_NON_OPAQUE: ret = "D3D12_RAY_FLAG_FORCE_NON_OPAQUE"; break; + case D3D12_RAY_FLAG_ACCEPT_FIRST_HIT_AND_END_SEARCH: ret = "D3D12_RAY_FLAG_ACCEPT_FIRST_HIT_AND_END_SEARCH"; break; + case D3D12_RAY_FLAG_SKIP_CLOSEST_HIT_SHADER: ret = "D3D12_RAY_FLAG_SKIP_CLOSEST_HIT_SHADER"; break; + case D3D12_RAY_FLAG_CULL_BACK_FACING_TRIANGLES: ret = "D3D12_RAY_FLAG_CULL_BACK_FACING_TRIANGLES"; break; + case D3D12_RAY_FLAG_CULL_FRONT_FACING_TRIANGLES: ret = "D3D12_RAY_FLAG_CULL_FRONT_FACING_TRIANGLES"; break; + case D3D12_RAY_FLAG_CULL_OPAQUE: ret = "D3D12_RAY_FLAG_CULL_OPAQUE"; break; + case D3D12_RAY_FLAG_CULL_NON_OPAQUE: ret = "D3D12_RAY_FLAG_CULL_NON_OPAQUE"; break; + case D3D12_RAY_FLAG_SKIP_TRIANGLES: ret = "D3D12_RAY_FLAG_SKIP_TRIANGLES"; break; + case D3D12_RAY_FLAG_SKIP_PROCEDURAL_PRIMITIVES: ret = "D3D12_RAY_FLAG_SKIP_PROCEDURAL_PRIMITIVES"; break; } - return "Unhandled D3D12_RAY_FLAGS"; + return ret; } -std::string ToString_D3D12_RAY_FLAGS(uint32_t flags) +std::string ToString_D3D12_RAY_FLAGS(const uint32_t flags) { return BitmaskToString(flags); } -std::string ToString(const D3D12_HIT_KIND& value) +std::string ToString(const D3D12_HIT_KIND value) { + const char* ret = "Unhandled D3D12_HIT_KIND"; switch (value) { - case D3D12_HIT_KIND_TRIANGLE_FRONT_FACE: return "D3D12_HIT_KIND_TRIANGLE_FRONT_FACE"; - case D3D12_HIT_KIND_TRIANGLE_BACK_FACE: return "D3D12_HIT_KIND_TRIANGLE_BACK_FACE"; - default: break; + case D3D12_HIT_KIND_TRIANGLE_FRONT_FACE: ret = "D3D12_HIT_KIND_TRIANGLE_FRONT_FACE"; break; + case D3D12_HIT_KIND_TRIANGLE_BACK_FACE: ret = "D3D12_HIT_KIND_TRIANGLE_BACK_FACE"; break; } - return "Unhandled D3D12_HIT_KIND"; + return ret; } -std::string ToString(const D3D12_AUTO_BREADCRUMB_OP& value) +std::string ToString(const D3D12_AUTO_BREADCRUMB_OP value) { + const char* ret = "Unhandled D3D12_AUTO_BREADCRUMB_OP"; switch (value) { - case D3D12_AUTO_BREADCRUMB_OP_SETMARKER: return "D3D12_AUTO_BREADCRUMB_OP_SETMARKER"; - case D3D12_AUTO_BREADCRUMB_OP_BEGINEVENT: return "D3D12_AUTO_BREADCRUMB_OP_BEGINEVENT"; - case D3D12_AUTO_BREADCRUMB_OP_ENDEVENT: return "D3D12_AUTO_BREADCRUMB_OP_ENDEVENT"; - case D3D12_AUTO_BREADCRUMB_OP_DRAWINSTANCED: return "D3D12_AUTO_BREADCRUMB_OP_DRAWINSTANCED"; - case D3D12_AUTO_BREADCRUMB_OP_DRAWINDEXEDINSTANCED: return "D3D12_AUTO_BREADCRUMB_OP_DRAWINDEXEDINSTANCED"; - case D3D12_AUTO_BREADCRUMB_OP_EXECUTEINDIRECT: return "D3D12_AUTO_BREADCRUMB_OP_EXECUTEINDIRECT"; - case D3D12_AUTO_BREADCRUMB_OP_DISPATCH: return "D3D12_AUTO_BREADCRUMB_OP_DISPATCH"; - case D3D12_AUTO_BREADCRUMB_OP_COPYBUFFERREGION: return "D3D12_AUTO_BREADCRUMB_OP_COPYBUFFERREGION"; - case D3D12_AUTO_BREADCRUMB_OP_COPYTEXTUREREGION: return "D3D12_AUTO_BREADCRUMB_OP_COPYTEXTUREREGION"; - case D3D12_AUTO_BREADCRUMB_OP_COPYRESOURCE: return "D3D12_AUTO_BREADCRUMB_OP_COPYRESOURCE"; - case D3D12_AUTO_BREADCRUMB_OP_COPYTILES: return "D3D12_AUTO_BREADCRUMB_OP_COPYTILES"; - case D3D12_AUTO_BREADCRUMB_OP_RESOLVESUBRESOURCE: return "D3D12_AUTO_BREADCRUMB_OP_RESOLVESUBRESOURCE"; - case D3D12_AUTO_BREADCRUMB_OP_CLEARRENDERTARGETVIEW: return "D3D12_AUTO_BREADCRUMB_OP_CLEARRENDERTARGETVIEW"; - case D3D12_AUTO_BREADCRUMB_OP_CLEARUNORDEREDACCESSVIEW: return "D3D12_AUTO_BREADCRUMB_OP_CLEARUNORDEREDACCESSVIEW"; - case D3D12_AUTO_BREADCRUMB_OP_CLEARDEPTHSTENCILVIEW: return "D3D12_AUTO_BREADCRUMB_OP_CLEARDEPTHSTENCILVIEW"; - case D3D12_AUTO_BREADCRUMB_OP_RESOURCEBARRIER: return "D3D12_AUTO_BREADCRUMB_OP_RESOURCEBARRIER"; - case D3D12_AUTO_BREADCRUMB_OP_EXECUTEBUNDLE: return "D3D12_AUTO_BREADCRUMB_OP_EXECUTEBUNDLE"; - case D3D12_AUTO_BREADCRUMB_OP_PRESENT: return "D3D12_AUTO_BREADCRUMB_OP_PRESENT"; - case D3D12_AUTO_BREADCRUMB_OP_RESOLVEQUERYDATA: return "D3D12_AUTO_BREADCRUMB_OP_RESOLVEQUERYDATA"; - case D3D12_AUTO_BREADCRUMB_OP_BEGINSUBMISSION: return "D3D12_AUTO_BREADCRUMB_OP_BEGINSUBMISSION"; - case D3D12_AUTO_BREADCRUMB_OP_ENDSUBMISSION: return "D3D12_AUTO_BREADCRUMB_OP_ENDSUBMISSION"; - case D3D12_AUTO_BREADCRUMB_OP_DECODEFRAME: return "D3D12_AUTO_BREADCRUMB_OP_DECODEFRAME"; - case D3D12_AUTO_BREADCRUMB_OP_PROCESSFRAMES: return "D3D12_AUTO_BREADCRUMB_OP_PROCESSFRAMES"; - case D3D12_AUTO_BREADCRUMB_OP_ATOMICCOPYBUFFERUINT: return "D3D12_AUTO_BREADCRUMB_OP_ATOMICCOPYBUFFERUINT"; - case D3D12_AUTO_BREADCRUMB_OP_ATOMICCOPYBUFFERUINT64: return "D3D12_AUTO_BREADCRUMB_OP_ATOMICCOPYBUFFERUINT64"; - case D3D12_AUTO_BREADCRUMB_OP_RESOLVESUBRESOURCEREGION: return "D3D12_AUTO_BREADCRUMB_OP_RESOLVESUBRESOURCEREGION"; - case D3D12_AUTO_BREADCRUMB_OP_WRITEBUFFERIMMEDIATE: return "D3D12_AUTO_BREADCRUMB_OP_WRITEBUFFERIMMEDIATE"; - case D3D12_AUTO_BREADCRUMB_OP_DECODEFRAME1: return "D3D12_AUTO_BREADCRUMB_OP_DECODEFRAME1"; - case D3D12_AUTO_BREADCRUMB_OP_SETPROTECTEDRESOURCESESSION: return "D3D12_AUTO_BREADCRUMB_OP_SETPROTECTEDRESOURCESESSION"; - case D3D12_AUTO_BREADCRUMB_OP_DECODEFRAME2: return "D3D12_AUTO_BREADCRUMB_OP_DECODEFRAME2"; - case D3D12_AUTO_BREADCRUMB_OP_PROCESSFRAMES1: return "D3D12_AUTO_BREADCRUMB_OP_PROCESSFRAMES1"; - case D3D12_AUTO_BREADCRUMB_OP_BUILDRAYTRACINGACCELERATIONSTRUCTURE: return "D3D12_AUTO_BREADCRUMB_OP_BUILDRAYTRACINGACCELERATIONSTRUCTURE"; - case D3D12_AUTO_BREADCRUMB_OP_EMITRAYTRACINGACCELERATIONSTRUCTUREPOSTBUILDINFO: return "D3D12_AUTO_BREADCRUMB_OP_EMITRAYTRACINGACCELERATIONSTRUCTUREPOSTBUILDINFO"; - case D3D12_AUTO_BREADCRUMB_OP_COPYRAYTRACINGACCELERATIONSTRUCTURE: return "D3D12_AUTO_BREADCRUMB_OP_COPYRAYTRACINGACCELERATIONSTRUCTURE"; - case D3D12_AUTO_BREADCRUMB_OP_DISPATCHRAYS: return "D3D12_AUTO_BREADCRUMB_OP_DISPATCHRAYS"; - case D3D12_AUTO_BREADCRUMB_OP_INITIALIZEMETACOMMAND: return "D3D12_AUTO_BREADCRUMB_OP_INITIALIZEMETACOMMAND"; - case D3D12_AUTO_BREADCRUMB_OP_EXECUTEMETACOMMAND: return "D3D12_AUTO_BREADCRUMB_OP_EXECUTEMETACOMMAND"; - case D3D12_AUTO_BREADCRUMB_OP_ESTIMATEMOTION: return "D3D12_AUTO_BREADCRUMB_OP_ESTIMATEMOTION"; - case D3D12_AUTO_BREADCRUMB_OP_RESOLVEMOTIONVECTORHEAP: return "D3D12_AUTO_BREADCRUMB_OP_RESOLVEMOTIONVECTORHEAP"; - case D3D12_AUTO_BREADCRUMB_OP_SETPIPELINESTATE1: return "D3D12_AUTO_BREADCRUMB_OP_SETPIPELINESTATE1"; - case D3D12_AUTO_BREADCRUMB_OP_INITIALIZEEXTENSIONCOMMAND: return "D3D12_AUTO_BREADCRUMB_OP_INITIALIZEEXTENSIONCOMMAND"; - case D3D12_AUTO_BREADCRUMB_OP_EXECUTEEXTENSIONCOMMAND: return "D3D12_AUTO_BREADCRUMB_OP_EXECUTEEXTENSIONCOMMAND"; - case D3D12_AUTO_BREADCRUMB_OP_DISPATCHMESH: return "D3D12_AUTO_BREADCRUMB_OP_DISPATCHMESH"; - case D3D12_AUTO_BREADCRUMB_OP_ENCODEFRAME: return "D3D12_AUTO_BREADCRUMB_OP_ENCODEFRAME"; - case D3D12_AUTO_BREADCRUMB_OP_RESOLVEENCODEROUTPUTMETADATA: return "D3D12_AUTO_BREADCRUMB_OP_RESOLVEENCODEROUTPUTMETADATA"; - case D3D12_AUTO_BREADCRUMB_OP_BARRIER: return "D3D12_AUTO_BREADCRUMB_OP_BARRIER"; - default: break; + case D3D12_AUTO_BREADCRUMB_OP_SETMARKER: ret = "D3D12_AUTO_BREADCRUMB_OP_SETMARKER"; break; + case D3D12_AUTO_BREADCRUMB_OP_BEGINEVENT: ret = "D3D12_AUTO_BREADCRUMB_OP_BEGINEVENT"; break; + case D3D12_AUTO_BREADCRUMB_OP_ENDEVENT: ret = "D3D12_AUTO_BREADCRUMB_OP_ENDEVENT"; break; + case D3D12_AUTO_BREADCRUMB_OP_DRAWINSTANCED: ret = "D3D12_AUTO_BREADCRUMB_OP_DRAWINSTANCED"; break; + case D3D12_AUTO_BREADCRUMB_OP_DRAWINDEXEDINSTANCED: ret = "D3D12_AUTO_BREADCRUMB_OP_DRAWINDEXEDINSTANCED"; break; + case D3D12_AUTO_BREADCRUMB_OP_EXECUTEINDIRECT: ret = "D3D12_AUTO_BREADCRUMB_OP_EXECUTEINDIRECT"; break; + case D3D12_AUTO_BREADCRUMB_OP_DISPATCH: ret = "D3D12_AUTO_BREADCRUMB_OP_DISPATCH"; break; + case D3D12_AUTO_BREADCRUMB_OP_COPYBUFFERREGION: ret = "D3D12_AUTO_BREADCRUMB_OP_COPYBUFFERREGION"; break; + case D3D12_AUTO_BREADCRUMB_OP_COPYTEXTUREREGION: ret = "D3D12_AUTO_BREADCRUMB_OP_COPYTEXTUREREGION"; break; + case D3D12_AUTO_BREADCRUMB_OP_COPYRESOURCE: ret = "D3D12_AUTO_BREADCRUMB_OP_COPYRESOURCE"; break; + case D3D12_AUTO_BREADCRUMB_OP_COPYTILES: ret = "D3D12_AUTO_BREADCRUMB_OP_COPYTILES"; break; + case D3D12_AUTO_BREADCRUMB_OP_RESOLVESUBRESOURCE: ret = "D3D12_AUTO_BREADCRUMB_OP_RESOLVESUBRESOURCE"; break; + case D3D12_AUTO_BREADCRUMB_OP_CLEARRENDERTARGETVIEW: ret = "D3D12_AUTO_BREADCRUMB_OP_CLEARRENDERTARGETVIEW"; break; + case D3D12_AUTO_BREADCRUMB_OP_CLEARUNORDEREDACCESSVIEW: ret = "D3D12_AUTO_BREADCRUMB_OP_CLEARUNORDEREDACCESSVIEW"; break; + case D3D12_AUTO_BREADCRUMB_OP_CLEARDEPTHSTENCILVIEW: ret = "D3D12_AUTO_BREADCRUMB_OP_CLEARDEPTHSTENCILVIEW"; break; + case D3D12_AUTO_BREADCRUMB_OP_RESOURCEBARRIER: ret = "D3D12_AUTO_BREADCRUMB_OP_RESOURCEBARRIER"; break; + case D3D12_AUTO_BREADCRUMB_OP_EXECUTEBUNDLE: ret = "D3D12_AUTO_BREADCRUMB_OP_EXECUTEBUNDLE"; break; + case D3D12_AUTO_BREADCRUMB_OP_PRESENT: ret = "D3D12_AUTO_BREADCRUMB_OP_PRESENT"; break; + case D3D12_AUTO_BREADCRUMB_OP_RESOLVEQUERYDATA: ret = "D3D12_AUTO_BREADCRUMB_OP_RESOLVEQUERYDATA"; break; + case D3D12_AUTO_BREADCRUMB_OP_BEGINSUBMISSION: ret = "D3D12_AUTO_BREADCRUMB_OP_BEGINSUBMISSION"; break; + case D3D12_AUTO_BREADCRUMB_OP_ENDSUBMISSION: ret = "D3D12_AUTO_BREADCRUMB_OP_ENDSUBMISSION"; break; + case D3D12_AUTO_BREADCRUMB_OP_DECODEFRAME: ret = "D3D12_AUTO_BREADCRUMB_OP_DECODEFRAME"; break; + case D3D12_AUTO_BREADCRUMB_OP_PROCESSFRAMES: ret = "D3D12_AUTO_BREADCRUMB_OP_PROCESSFRAMES"; break; + case D3D12_AUTO_BREADCRUMB_OP_ATOMICCOPYBUFFERUINT: ret = "D3D12_AUTO_BREADCRUMB_OP_ATOMICCOPYBUFFERUINT"; break; + case D3D12_AUTO_BREADCRUMB_OP_ATOMICCOPYBUFFERUINT64: ret = "D3D12_AUTO_BREADCRUMB_OP_ATOMICCOPYBUFFERUINT64"; break; + case D3D12_AUTO_BREADCRUMB_OP_RESOLVESUBRESOURCEREGION: ret = "D3D12_AUTO_BREADCRUMB_OP_RESOLVESUBRESOURCEREGION"; break; + case D3D12_AUTO_BREADCRUMB_OP_WRITEBUFFERIMMEDIATE: ret = "D3D12_AUTO_BREADCRUMB_OP_WRITEBUFFERIMMEDIATE"; break; + case D3D12_AUTO_BREADCRUMB_OP_DECODEFRAME1: ret = "D3D12_AUTO_BREADCRUMB_OP_DECODEFRAME1"; break; + case D3D12_AUTO_BREADCRUMB_OP_SETPROTECTEDRESOURCESESSION: ret = "D3D12_AUTO_BREADCRUMB_OP_SETPROTECTEDRESOURCESESSION"; break; + case D3D12_AUTO_BREADCRUMB_OP_DECODEFRAME2: ret = "D3D12_AUTO_BREADCRUMB_OP_DECODEFRAME2"; break; + case D3D12_AUTO_BREADCRUMB_OP_PROCESSFRAMES1: ret = "D3D12_AUTO_BREADCRUMB_OP_PROCESSFRAMES1"; break; + case D3D12_AUTO_BREADCRUMB_OP_BUILDRAYTRACINGACCELERATIONSTRUCTURE: ret = "D3D12_AUTO_BREADCRUMB_OP_BUILDRAYTRACINGACCELERATIONSTRUCTURE"; break; + case D3D12_AUTO_BREADCRUMB_OP_EMITRAYTRACINGACCELERATIONSTRUCTUREPOSTBUILDINFO: ret = "D3D12_AUTO_BREADCRUMB_OP_EMITRAYTRACINGACCELERATIONSTRUCTUREPOSTBUILDINFO"; break; + case D3D12_AUTO_BREADCRUMB_OP_COPYRAYTRACINGACCELERATIONSTRUCTURE: ret = "D3D12_AUTO_BREADCRUMB_OP_COPYRAYTRACINGACCELERATIONSTRUCTURE"; break; + case D3D12_AUTO_BREADCRUMB_OP_DISPATCHRAYS: ret = "D3D12_AUTO_BREADCRUMB_OP_DISPATCHRAYS"; break; + case D3D12_AUTO_BREADCRUMB_OP_INITIALIZEMETACOMMAND: ret = "D3D12_AUTO_BREADCRUMB_OP_INITIALIZEMETACOMMAND"; break; + case D3D12_AUTO_BREADCRUMB_OP_EXECUTEMETACOMMAND: ret = "D3D12_AUTO_BREADCRUMB_OP_EXECUTEMETACOMMAND"; break; + case D3D12_AUTO_BREADCRUMB_OP_ESTIMATEMOTION: ret = "D3D12_AUTO_BREADCRUMB_OP_ESTIMATEMOTION"; break; + case D3D12_AUTO_BREADCRUMB_OP_RESOLVEMOTIONVECTORHEAP: ret = "D3D12_AUTO_BREADCRUMB_OP_RESOLVEMOTIONVECTORHEAP"; break; + case D3D12_AUTO_BREADCRUMB_OP_SETPIPELINESTATE1: ret = "D3D12_AUTO_BREADCRUMB_OP_SETPIPELINESTATE1"; break; + case D3D12_AUTO_BREADCRUMB_OP_INITIALIZEEXTENSIONCOMMAND: ret = "D3D12_AUTO_BREADCRUMB_OP_INITIALIZEEXTENSIONCOMMAND"; break; + case D3D12_AUTO_BREADCRUMB_OP_EXECUTEEXTENSIONCOMMAND: ret = "D3D12_AUTO_BREADCRUMB_OP_EXECUTEEXTENSIONCOMMAND"; break; + case D3D12_AUTO_BREADCRUMB_OP_DISPATCHMESH: ret = "D3D12_AUTO_BREADCRUMB_OP_DISPATCHMESH"; break; + case D3D12_AUTO_BREADCRUMB_OP_ENCODEFRAME: ret = "D3D12_AUTO_BREADCRUMB_OP_ENCODEFRAME"; break; + case D3D12_AUTO_BREADCRUMB_OP_RESOLVEENCODEROUTPUTMETADATA: ret = "D3D12_AUTO_BREADCRUMB_OP_RESOLVEENCODEROUTPUTMETADATA"; break; + case D3D12_AUTO_BREADCRUMB_OP_BARRIER: ret = "D3D12_AUTO_BREADCRUMB_OP_BARRIER"; break; } - return "Unhandled D3D12_AUTO_BREADCRUMB_OP"; + return ret; } -std::string ToString(const D3D12_DRED_VERSION& value) +std::string ToString(const D3D12_DRED_VERSION value) { + const char* ret = "Unhandled D3D12_DRED_VERSION"; switch (value) { - case D3D12_DRED_VERSION_1_0: return "D3D12_DRED_VERSION_1_0"; - case D3D12_DRED_VERSION_1_1: return "D3D12_DRED_VERSION_1_1"; - case D3D12_DRED_VERSION_1_2: return "D3D12_DRED_VERSION_1_2"; - case D3D12_DRED_VERSION_1_3: return "D3D12_DRED_VERSION_1_3"; - default: break; + case D3D12_DRED_VERSION_1_0: ret = "D3D12_DRED_VERSION_1_0"; break; + case D3D12_DRED_VERSION_1_1: ret = "D3D12_DRED_VERSION_1_1"; break; + case D3D12_DRED_VERSION_1_2: ret = "D3D12_DRED_VERSION_1_2"; break; + case D3D12_DRED_VERSION_1_3: ret = "D3D12_DRED_VERSION_1_3"; break; } - return "Unhandled D3D12_DRED_VERSION"; + return ret; } -std::string ToString(const D3D12_DRED_FLAGS& value) +std::string ToString(const D3D12_DRED_FLAGS value) { + const char* ret = "Unhandled D3D12_DRED_FLAGS"; switch (value) { - case D3D12_DRED_FLAG_NONE: return "D3D12_DRED_FLAG_NONE"; - case D3D12_DRED_FLAG_FORCE_ENABLE: return "D3D12_DRED_FLAG_FORCE_ENABLE"; - case D3D12_DRED_FLAG_DISABLE_AUTOBREADCRUMBS: return "D3D12_DRED_FLAG_DISABLE_AUTOBREADCRUMBS"; - default: break; + case D3D12_DRED_FLAG_NONE: ret = "D3D12_DRED_FLAG_NONE"; break; + case D3D12_DRED_FLAG_FORCE_ENABLE: ret = "D3D12_DRED_FLAG_FORCE_ENABLE"; break; + case D3D12_DRED_FLAG_DISABLE_AUTOBREADCRUMBS: ret = "D3D12_DRED_FLAG_DISABLE_AUTOBREADCRUMBS"; break; } - return "Unhandled D3D12_DRED_FLAGS"; + return ret; } -std::string ToString_D3D12_DRED_FLAGS(uint32_t flags) +std::string ToString_D3D12_DRED_FLAGS(const uint32_t flags) { return BitmaskToString(flags); } -std::string ToString(const D3D12_DRED_ENABLEMENT& value) +std::string ToString(const D3D12_DRED_ENABLEMENT value) { + const char* ret = "Unhandled D3D12_DRED_ENABLEMENT"; switch (value) { - case D3D12_DRED_ENABLEMENT_SYSTEM_CONTROLLED: return "D3D12_DRED_ENABLEMENT_SYSTEM_CONTROLLED"; - case D3D12_DRED_ENABLEMENT_FORCED_OFF: return "D3D12_DRED_ENABLEMENT_FORCED_OFF"; - case D3D12_DRED_ENABLEMENT_FORCED_ON: return "D3D12_DRED_ENABLEMENT_FORCED_ON"; - default: break; + case D3D12_DRED_ENABLEMENT_SYSTEM_CONTROLLED: ret = "D3D12_DRED_ENABLEMENT_SYSTEM_CONTROLLED"; break; + case D3D12_DRED_ENABLEMENT_FORCED_OFF: ret = "D3D12_DRED_ENABLEMENT_FORCED_OFF"; break; + case D3D12_DRED_ENABLEMENT_FORCED_ON: ret = "D3D12_DRED_ENABLEMENT_FORCED_ON"; break; } - return "Unhandled D3D12_DRED_ENABLEMENT"; + return ret; } -std::string ToString(const D3D12_DRED_ALLOCATION_TYPE& value) +std::string ToString(const D3D12_DRED_ALLOCATION_TYPE value) { + const char* ret = "Unhandled D3D12_DRED_ALLOCATION_TYPE"; switch (value) { - case D3D12_DRED_ALLOCATION_TYPE_COMMAND_QUEUE: return "D3D12_DRED_ALLOCATION_TYPE_COMMAND_QUEUE"; - case D3D12_DRED_ALLOCATION_TYPE_COMMAND_ALLOCATOR: return "D3D12_DRED_ALLOCATION_TYPE_COMMAND_ALLOCATOR"; - case D3D12_DRED_ALLOCATION_TYPE_PIPELINE_STATE: return "D3D12_DRED_ALLOCATION_TYPE_PIPELINE_STATE"; - case D3D12_DRED_ALLOCATION_TYPE_COMMAND_LIST: return "D3D12_DRED_ALLOCATION_TYPE_COMMAND_LIST"; - case D3D12_DRED_ALLOCATION_TYPE_FENCE: return "D3D12_DRED_ALLOCATION_TYPE_FENCE"; - case D3D12_DRED_ALLOCATION_TYPE_DESCRIPTOR_HEAP: return "D3D12_DRED_ALLOCATION_TYPE_DESCRIPTOR_HEAP"; - case D3D12_DRED_ALLOCATION_TYPE_HEAP: return "D3D12_DRED_ALLOCATION_TYPE_HEAP"; - case D3D12_DRED_ALLOCATION_TYPE_QUERY_HEAP: return "D3D12_DRED_ALLOCATION_TYPE_QUERY_HEAP"; - case D3D12_DRED_ALLOCATION_TYPE_COMMAND_SIGNATURE: return "D3D12_DRED_ALLOCATION_TYPE_COMMAND_SIGNATURE"; - case D3D12_DRED_ALLOCATION_TYPE_PIPELINE_LIBRARY: return "D3D12_DRED_ALLOCATION_TYPE_PIPELINE_LIBRARY"; - case D3D12_DRED_ALLOCATION_TYPE_VIDEO_DECODER: return "D3D12_DRED_ALLOCATION_TYPE_VIDEO_DECODER"; - case D3D12_DRED_ALLOCATION_TYPE_VIDEO_PROCESSOR: return "D3D12_DRED_ALLOCATION_TYPE_VIDEO_PROCESSOR"; - case D3D12_DRED_ALLOCATION_TYPE_RESOURCE: return "D3D12_DRED_ALLOCATION_TYPE_RESOURCE"; - case D3D12_DRED_ALLOCATION_TYPE_PASS: return "D3D12_DRED_ALLOCATION_TYPE_PASS"; - case D3D12_DRED_ALLOCATION_TYPE_CRYPTOSESSION: return "D3D12_DRED_ALLOCATION_TYPE_CRYPTOSESSION"; - case D3D12_DRED_ALLOCATION_TYPE_CRYPTOSESSIONPOLICY: return "D3D12_DRED_ALLOCATION_TYPE_CRYPTOSESSIONPOLICY"; - case D3D12_DRED_ALLOCATION_TYPE_PROTECTEDRESOURCESESSION: return "D3D12_DRED_ALLOCATION_TYPE_PROTECTEDRESOURCESESSION"; - case D3D12_DRED_ALLOCATION_TYPE_VIDEO_DECODER_HEAP: return "D3D12_DRED_ALLOCATION_TYPE_VIDEO_DECODER_HEAP"; - case D3D12_DRED_ALLOCATION_TYPE_COMMAND_POOL: return "D3D12_DRED_ALLOCATION_TYPE_COMMAND_POOL"; - case D3D12_DRED_ALLOCATION_TYPE_COMMAND_RECORDER: return "D3D12_DRED_ALLOCATION_TYPE_COMMAND_RECORDER"; - case D3D12_DRED_ALLOCATION_TYPE_STATE_OBJECT: return "D3D12_DRED_ALLOCATION_TYPE_STATE_OBJECT"; - case D3D12_DRED_ALLOCATION_TYPE_METACOMMAND: return "D3D12_DRED_ALLOCATION_TYPE_METACOMMAND"; - case D3D12_DRED_ALLOCATION_TYPE_SCHEDULINGGROUP: return "D3D12_DRED_ALLOCATION_TYPE_SCHEDULINGGROUP"; - case D3D12_DRED_ALLOCATION_TYPE_VIDEO_MOTION_ESTIMATOR: return "D3D12_DRED_ALLOCATION_TYPE_VIDEO_MOTION_ESTIMATOR"; - case D3D12_DRED_ALLOCATION_TYPE_VIDEO_MOTION_VECTOR_HEAP: return "D3D12_DRED_ALLOCATION_TYPE_VIDEO_MOTION_VECTOR_HEAP"; - case D3D12_DRED_ALLOCATION_TYPE_VIDEO_EXTENSION_COMMAND: return "D3D12_DRED_ALLOCATION_TYPE_VIDEO_EXTENSION_COMMAND"; - case D3D12_DRED_ALLOCATION_TYPE_VIDEO_ENCODER: return "D3D12_DRED_ALLOCATION_TYPE_VIDEO_ENCODER"; - case D3D12_DRED_ALLOCATION_TYPE_VIDEO_ENCODER_HEAP: return "D3D12_DRED_ALLOCATION_TYPE_VIDEO_ENCODER_HEAP"; - case D3D12_DRED_ALLOCATION_TYPE_INVALID: return "D3D12_DRED_ALLOCATION_TYPE_INVALID"; - default: break; + case D3D12_DRED_ALLOCATION_TYPE_COMMAND_QUEUE: ret = "D3D12_DRED_ALLOCATION_TYPE_COMMAND_QUEUE"; break; + case D3D12_DRED_ALLOCATION_TYPE_COMMAND_ALLOCATOR: ret = "D3D12_DRED_ALLOCATION_TYPE_COMMAND_ALLOCATOR"; break; + case D3D12_DRED_ALLOCATION_TYPE_PIPELINE_STATE: ret = "D3D12_DRED_ALLOCATION_TYPE_PIPELINE_STATE"; break; + case D3D12_DRED_ALLOCATION_TYPE_COMMAND_LIST: ret = "D3D12_DRED_ALLOCATION_TYPE_COMMAND_LIST"; break; + case D3D12_DRED_ALLOCATION_TYPE_FENCE: ret = "D3D12_DRED_ALLOCATION_TYPE_FENCE"; break; + case D3D12_DRED_ALLOCATION_TYPE_DESCRIPTOR_HEAP: ret = "D3D12_DRED_ALLOCATION_TYPE_DESCRIPTOR_HEAP"; break; + case D3D12_DRED_ALLOCATION_TYPE_HEAP: ret = "D3D12_DRED_ALLOCATION_TYPE_HEAP"; break; + case D3D12_DRED_ALLOCATION_TYPE_QUERY_HEAP: ret = "D3D12_DRED_ALLOCATION_TYPE_QUERY_HEAP"; break; + case D3D12_DRED_ALLOCATION_TYPE_COMMAND_SIGNATURE: ret = "D3D12_DRED_ALLOCATION_TYPE_COMMAND_SIGNATURE"; break; + case D3D12_DRED_ALLOCATION_TYPE_PIPELINE_LIBRARY: ret = "D3D12_DRED_ALLOCATION_TYPE_PIPELINE_LIBRARY"; break; + case D3D12_DRED_ALLOCATION_TYPE_VIDEO_DECODER: ret = "D3D12_DRED_ALLOCATION_TYPE_VIDEO_DECODER"; break; + case D3D12_DRED_ALLOCATION_TYPE_VIDEO_PROCESSOR: ret = "D3D12_DRED_ALLOCATION_TYPE_VIDEO_PROCESSOR"; break; + case D3D12_DRED_ALLOCATION_TYPE_RESOURCE: ret = "D3D12_DRED_ALLOCATION_TYPE_RESOURCE"; break; + case D3D12_DRED_ALLOCATION_TYPE_PASS: ret = "D3D12_DRED_ALLOCATION_TYPE_PASS"; break; + case D3D12_DRED_ALLOCATION_TYPE_CRYPTOSESSION: ret = "D3D12_DRED_ALLOCATION_TYPE_CRYPTOSESSION"; break; + case D3D12_DRED_ALLOCATION_TYPE_CRYPTOSESSIONPOLICY: ret = "D3D12_DRED_ALLOCATION_TYPE_CRYPTOSESSIONPOLICY"; break; + case D3D12_DRED_ALLOCATION_TYPE_PROTECTEDRESOURCESESSION: ret = "D3D12_DRED_ALLOCATION_TYPE_PROTECTEDRESOURCESESSION"; break; + case D3D12_DRED_ALLOCATION_TYPE_VIDEO_DECODER_HEAP: ret = "D3D12_DRED_ALLOCATION_TYPE_VIDEO_DECODER_HEAP"; break; + case D3D12_DRED_ALLOCATION_TYPE_COMMAND_POOL: ret = "D3D12_DRED_ALLOCATION_TYPE_COMMAND_POOL"; break; + case D3D12_DRED_ALLOCATION_TYPE_COMMAND_RECORDER: ret = "D3D12_DRED_ALLOCATION_TYPE_COMMAND_RECORDER"; break; + case D3D12_DRED_ALLOCATION_TYPE_STATE_OBJECT: ret = "D3D12_DRED_ALLOCATION_TYPE_STATE_OBJECT"; break; + case D3D12_DRED_ALLOCATION_TYPE_METACOMMAND: ret = "D3D12_DRED_ALLOCATION_TYPE_METACOMMAND"; break; + case D3D12_DRED_ALLOCATION_TYPE_SCHEDULINGGROUP: ret = "D3D12_DRED_ALLOCATION_TYPE_SCHEDULINGGROUP"; break; + case D3D12_DRED_ALLOCATION_TYPE_VIDEO_MOTION_ESTIMATOR: ret = "D3D12_DRED_ALLOCATION_TYPE_VIDEO_MOTION_ESTIMATOR"; break; + case D3D12_DRED_ALLOCATION_TYPE_VIDEO_MOTION_VECTOR_HEAP: ret = "D3D12_DRED_ALLOCATION_TYPE_VIDEO_MOTION_VECTOR_HEAP"; break; + case D3D12_DRED_ALLOCATION_TYPE_VIDEO_EXTENSION_COMMAND: ret = "D3D12_DRED_ALLOCATION_TYPE_VIDEO_EXTENSION_COMMAND"; break; + case D3D12_DRED_ALLOCATION_TYPE_VIDEO_ENCODER: ret = "D3D12_DRED_ALLOCATION_TYPE_VIDEO_ENCODER"; break; + case D3D12_DRED_ALLOCATION_TYPE_VIDEO_ENCODER_HEAP: ret = "D3D12_DRED_ALLOCATION_TYPE_VIDEO_ENCODER_HEAP"; break; + case D3D12_DRED_ALLOCATION_TYPE_INVALID: ret = "D3D12_DRED_ALLOCATION_TYPE_INVALID"; break; } - return "Unhandled D3D12_DRED_ALLOCATION_TYPE"; + return ret; } -std::string ToString(const D3D12_DRED_PAGE_FAULT_FLAGS& value) +std::string ToString(const D3D12_DRED_PAGE_FAULT_FLAGS value) { + const char* ret = "Unhandled D3D12_DRED_PAGE_FAULT_FLAGS"; switch (value) { - case D3D12_DRED_PAGE_FAULT_FLAGS_NONE: return "D3D12_DRED_PAGE_FAULT_FLAGS_NONE"; - default: break; + case D3D12_DRED_PAGE_FAULT_FLAGS_NONE: ret = "D3D12_DRED_PAGE_FAULT_FLAGS_NONE"; break; } - return "Unhandled D3D12_DRED_PAGE_FAULT_FLAGS"; + return ret; } -std::string ToString_D3D12_DRED_PAGE_FAULT_FLAGS(uint32_t flags) +std::string ToString_D3D12_DRED_PAGE_FAULT_FLAGS(const uint32_t flags) { return BitmaskToString(flags); } -std::string ToString(const D3D12_DRED_DEVICE_STATE& value) +std::string ToString(const D3D12_DRED_DEVICE_STATE value) { + const char* ret = "Unhandled D3D12_DRED_DEVICE_STATE"; switch (value) { - case D3D12_DRED_DEVICE_STATE_UNKNOWN: return "D3D12_DRED_DEVICE_STATE_UNKNOWN"; - case D3D12_DRED_DEVICE_STATE_HUNG: return "D3D12_DRED_DEVICE_STATE_HUNG"; - case D3D12_DRED_DEVICE_STATE_FAULT: return "D3D12_DRED_DEVICE_STATE_FAULT"; - case D3D12_DRED_DEVICE_STATE_PAGEFAULT: return "D3D12_DRED_DEVICE_STATE_PAGEFAULT"; - default: break; + case D3D12_DRED_DEVICE_STATE_UNKNOWN: ret = "D3D12_DRED_DEVICE_STATE_UNKNOWN"; break; + case D3D12_DRED_DEVICE_STATE_HUNG: ret = "D3D12_DRED_DEVICE_STATE_HUNG"; break; + case D3D12_DRED_DEVICE_STATE_FAULT: ret = "D3D12_DRED_DEVICE_STATE_FAULT"; break; + case D3D12_DRED_DEVICE_STATE_PAGEFAULT: ret = "D3D12_DRED_DEVICE_STATE_PAGEFAULT"; break; } - return "Unhandled D3D12_DRED_DEVICE_STATE"; + return ret; } -std::string ToString(const D3D12_BACKGROUND_PROCESSING_MODE& value) +std::string ToString(const D3D12_BACKGROUND_PROCESSING_MODE value) { + const char* ret = "Unhandled D3D12_BACKGROUND_PROCESSING_MODE"; switch (value) { - case D3D12_BACKGROUND_PROCESSING_MODE_ALLOWED: return "D3D12_BACKGROUND_PROCESSING_MODE_ALLOWED"; - case D3D12_BACKGROUND_PROCESSING_MODE_ALLOW_INTRUSIVE_MEASUREMENTS: return "D3D12_BACKGROUND_PROCESSING_MODE_ALLOW_INTRUSIVE_MEASUREMENTS"; - case D3D12_BACKGROUND_PROCESSING_MODE_DISABLE_BACKGROUND_WORK: return "D3D12_BACKGROUND_PROCESSING_MODE_DISABLE_BACKGROUND_WORK"; - case D3D12_BACKGROUND_PROCESSING_MODE_DISABLE_PROFILING_BY_SYSTEM: return "D3D12_BACKGROUND_PROCESSING_MODE_DISABLE_PROFILING_BY_SYSTEM"; - default: break; + case D3D12_BACKGROUND_PROCESSING_MODE_ALLOWED: ret = "D3D12_BACKGROUND_PROCESSING_MODE_ALLOWED"; break; + case D3D12_BACKGROUND_PROCESSING_MODE_ALLOW_INTRUSIVE_MEASUREMENTS: ret = "D3D12_BACKGROUND_PROCESSING_MODE_ALLOW_INTRUSIVE_MEASUREMENTS"; break; + case D3D12_BACKGROUND_PROCESSING_MODE_DISABLE_BACKGROUND_WORK: ret = "D3D12_BACKGROUND_PROCESSING_MODE_DISABLE_BACKGROUND_WORK"; break; + case D3D12_BACKGROUND_PROCESSING_MODE_DISABLE_PROFILING_BY_SYSTEM: ret = "D3D12_BACKGROUND_PROCESSING_MODE_DISABLE_PROFILING_BY_SYSTEM"; break; } - return "Unhandled D3D12_BACKGROUND_PROCESSING_MODE"; + return ret; } -std::string ToString(const D3D12_MEASUREMENTS_ACTION& value) +std::string ToString(const D3D12_MEASUREMENTS_ACTION value) { + const char* ret = "Unhandled D3D12_MEASUREMENTS_ACTION"; switch (value) { - case D3D12_MEASUREMENTS_ACTION_KEEP_ALL: return "D3D12_MEASUREMENTS_ACTION_KEEP_ALL"; - case D3D12_MEASUREMENTS_ACTION_COMMIT_RESULTS: return "D3D12_MEASUREMENTS_ACTION_COMMIT_RESULTS"; - case D3D12_MEASUREMENTS_ACTION_COMMIT_RESULTS_HIGH_PRIORITY: return "D3D12_MEASUREMENTS_ACTION_COMMIT_RESULTS_HIGH_PRIORITY"; - case D3D12_MEASUREMENTS_ACTION_DISCARD_PREVIOUS: return "D3D12_MEASUREMENTS_ACTION_DISCARD_PREVIOUS"; - default: break; + case D3D12_MEASUREMENTS_ACTION_KEEP_ALL: ret = "D3D12_MEASUREMENTS_ACTION_KEEP_ALL"; break; + case D3D12_MEASUREMENTS_ACTION_COMMIT_RESULTS: ret = "D3D12_MEASUREMENTS_ACTION_COMMIT_RESULTS"; break; + case D3D12_MEASUREMENTS_ACTION_COMMIT_RESULTS_HIGH_PRIORITY: ret = "D3D12_MEASUREMENTS_ACTION_COMMIT_RESULTS_HIGH_PRIORITY"; break; + case D3D12_MEASUREMENTS_ACTION_DISCARD_PREVIOUS: ret = "D3D12_MEASUREMENTS_ACTION_DISCARD_PREVIOUS"; break; } - return "Unhandled D3D12_MEASUREMENTS_ACTION"; + return ret; } -std::string ToString(const D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE& value) +std::string ToString(const D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE value) { + const char* ret = "Unhandled D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE"; switch (value) { - case D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE_DISCARD: return "D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE_DISCARD"; - case D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE_PRESERVE: return "D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE_PRESERVE"; - case D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE_CLEAR: return "D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE_CLEAR"; - case D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE_NO_ACCESS: return "D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE_NO_ACCESS"; - case D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE_PRESERVE_LOCAL_RENDER: return "D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE_PRESERVE_LOCAL_RENDER"; - case D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE_PRESERVE_LOCAL_SRV: return "D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE_PRESERVE_LOCAL_SRV"; - case D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE_PRESERVE_LOCAL_UAV: return "D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE_PRESERVE_LOCAL_UAV"; - default: break; + case D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE_DISCARD: ret = "D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE_DISCARD"; break; + case D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE_PRESERVE: ret = "D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE_PRESERVE"; break; + case D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE_CLEAR: ret = "D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE_CLEAR"; break; + case D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE_NO_ACCESS: ret = "D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE_NO_ACCESS"; break; + case D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE_PRESERVE_LOCAL_RENDER: ret = "D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE_PRESERVE_LOCAL_RENDER"; break; + case D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE_PRESERVE_LOCAL_SRV: ret = "D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE_PRESERVE_LOCAL_SRV"; break; + case D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE_PRESERVE_LOCAL_UAV: ret = "D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE_PRESERVE_LOCAL_UAV"; break; } - return "Unhandled D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE"; + return ret; } -std::string ToString(const D3D12_RENDER_PASS_ENDING_ACCESS_TYPE& value) +std::string ToString(const D3D12_RENDER_PASS_ENDING_ACCESS_TYPE value) { + const char* ret = "Unhandled D3D12_RENDER_PASS_ENDING_ACCESS_TYPE"; switch (value) { - case D3D12_RENDER_PASS_ENDING_ACCESS_TYPE_DISCARD: return "D3D12_RENDER_PASS_ENDING_ACCESS_TYPE_DISCARD"; - case D3D12_RENDER_PASS_ENDING_ACCESS_TYPE_PRESERVE: return "D3D12_RENDER_PASS_ENDING_ACCESS_TYPE_PRESERVE"; - case D3D12_RENDER_PASS_ENDING_ACCESS_TYPE_RESOLVE: return "D3D12_RENDER_PASS_ENDING_ACCESS_TYPE_RESOLVE"; - case D3D12_RENDER_PASS_ENDING_ACCESS_TYPE_NO_ACCESS: return "D3D12_RENDER_PASS_ENDING_ACCESS_TYPE_NO_ACCESS"; - case D3D12_RENDER_PASS_ENDING_ACCESS_TYPE_PRESERVE_LOCAL_RENDER: return "D3D12_RENDER_PASS_ENDING_ACCESS_TYPE_PRESERVE_LOCAL_RENDER"; - case D3D12_RENDER_PASS_ENDING_ACCESS_TYPE_PRESERVE_LOCAL_SRV: return "D3D12_RENDER_PASS_ENDING_ACCESS_TYPE_PRESERVE_LOCAL_SRV"; - case D3D12_RENDER_PASS_ENDING_ACCESS_TYPE_PRESERVE_LOCAL_UAV: return "D3D12_RENDER_PASS_ENDING_ACCESS_TYPE_PRESERVE_LOCAL_UAV"; - default: break; + case D3D12_RENDER_PASS_ENDING_ACCESS_TYPE_DISCARD: ret = "D3D12_RENDER_PASS_ENDING_ACCESS_TYPE_DISCARD"; break; + case D3D12_RENDER_PASS_ENDING_ACCESS_TYPE_PRESERVE: ret = "D3D12_RENDER_PASS_ENDING_ACCESS_TYPE_PRESERVE"; break; + case D3D12_RENDER_PASS_ENDING_ACCESS_TYPE_RESOLVE: ret = "D3D12_RENDER_PASS_ENDING_ACCESS_TYPE_RESOLVE"; break; + case D3D12_RENDER_PASS_ENDING_ACCESS_TYPE_NO_ACCESS: ret = "D3D12_RENDER_PASS_ENDING_ACCESS_TYPE_NO_ACCESS"; break; + case D3D12_RENDER_PASS_ENDING_ACCESS_TYPE_PRESERVE_LOCAL_RENDER: ret = "D3D12_RENDER_PASS_ENDING_ACCESS_TYPE_PRESERVE_LOCAL_RENDER"; break; + case D3D12_RENDER_PASS_ENDING_ACCESS_TYPE_PRESERVE_LOCAL_SRV: ret = "D3D12_RENDER_PASS_ENDING_ACCESS_TYPE_PRESERVE_LOCAL_SRV"; break; + case D3D12_RENDER_PASS_ENDING_ACCESS_TYPE_PRESERVE_LOCAL_UAV: ret = "D3D12_RENDER_PASS_ENDING_ACCESS_TYPE_PRESERVE_LOCAL_UAV"; break; } - return "Unhandled D3D12_RENDER_PASS_ENDING_ACCESS_TYPE"; + return ret; } -std::string ToString(const D3D12_RENDER_PASS_FLAGS& value) +std::string ToString(const D3D12_RENDER_PASS_FLAGS value) { + const char* ret = "Unhandled D3D12_RENDER_PASS_FLAGS"; switch (value) { - case D3D12_RENDER_PASS_FLAG_NONE: return "D3D12_RENDER_PASS_FLAG_NONE"; - case D3D12_RENDER_PASS_FLAG_ALLOW_UAV_WRITES: return "D3D12_RENDER_PASS_FLAG_ALLOW_UAV_WRITES"; - case D3D12_RENDER_PASS_FLAG_SUSPENDING_PASS: return "D3D12_RENDER_PASS_FLAG_SUSPENDING_PASS"; - case D3D12_RENDER_PASS_FLAG_RESUMING_PASS: return "D3D12_RENDER_PASS_FLAG_RESUMING_PASS"; - case D3D12_RENDER_PASS_FLAG_BIND_READ_ONLY_DEPTH: return "D3D12_RENDER_PASS_FLAG_BIND_READ_ONLY_DEPTH"; - case D3D12_RENDER_PASS_FLAG_BIND_READ_ONLY_STENCIL: return "D3D12_RENDER_PASS_FLAG_BIND_READ_ONLY_STENCIL"; - default: break; + case D3D12_RENDER_PASS_FLAG_NONE: ret = "D3D12_RENDER_PASS_FLAG_NONE"; break; + case D3D12_RENDER_PASS_FLAG_ALLOW_UAV_WRITES: ret = "D3D12_RENDER_PASS_FLAG_ALLOW_UAV_WRITES"; break; + case D3D12_RENDER_PASS_FLAG_SUSPENDING_PASS: ret = "D3D12_RENDER_PASS_FLAG_SUSPENDING_PASS"; break; + case D3D12_RENDER_PASS_FLAG_RESUMING_PASS: ret = "D3D12_RENDER_PASS_FLAG_RESUMING_PASS"; break; + case D3D12_RENDER_PASS_FLAG_BIND_READ_ONLY_DEPTH: ret = "D3D12_RENDER_PASS_FLAG_BIND_READ_ONLY_DEPTH"; break; + case D3D12_RENDER_PASS_FLAG_BIND_READ_ONLY_STENCIL: ret = "D3D12_RENDER_PASS_FLAG_BIND_READ_ONLY_STENCIL"; break; } - return "Unhandled D3D12_RENDER_PASS_FLAGS"; + return ret; } -std::string ToString_D3D12_RENDER_PASS_FLAGS(uint32_t flags) +std::string ToString_D3D12_RENDER_PASS_FLAGS(const uint32_t flags) { return BitmaskToString(flags); } -std::string ToString(const D3D12_SHADER_CACHE_MODE& value) +std::string ToString(const D3D12_SHADER_CACHE_MODE value) { + const char* ret = "Unhandled D3D12_SHADER_CACHE_MODE"; switch (value) { - case D3D12_SHADER_CACHE_MODE_MEMORY: return "D3D12_SHADER_CACHE_MODE_MEMORY"; - case D3D12_SHADER_CACHE_MODE_DISK: return "D3D12_SHADER_CACHE_MODE_DISK"; - default: break; + case D3D12_SHADER_CACHE_MODE_MEMORY: ret = "D3D12_SHADER_CACHE_MODE_MEMORY"; break; + case D3D12_SHADER_CACHE_MODE_DISK: ret = "D3D12_SHADER_CACHE_MODE_DISK"; break; } - return "Unhandled D3D12_SHADER_CACHE_MODE"; + return ret; } -std::string ToString(const D3D12_SHADER_CACHE_FLAGS& value) +std::string ToString(const D3D12_SHADER_CACHE_FLAGS value) { + const char* ret = "Unhandled D3D12_SHADER_CACHE_FLAGS"; switch (value) { - case D3D12_SHADER_CACHE_FLAG_NONE: return "D3D12_SHADER_CACHE_FLAG_NONE"; - case D3D12_SHADER_CACHE_FLAG_DRIVER_VERSIONED: return "D3D12_SHADER_CACHE_FLAG_DRIVER_VERSIONED"; - case D3D12_SHADER_CACHE_FLAG_USE_WORKING_DIR: return "D3D12_SHADER_CACHE_FLAG_USE_WORKING_DIR"; - default: break; + case D3D12_SHADER_CACHE_FLAG_NONE: ret = "D3D12_SHADER_CACHE_FLAG_NONE"; break; + case D3D12_SHADER_CACHE_FLAG_DRIVER_VERSIONED: ret = "D3D12_SHADER_CACHE_FLAG_DRIVER_VERSIONED"; break; + case D3D12_SHADER_CACHE_FLAG_USE_WORKING_DIR: ret = "D3D12_SHADER_CACHE_FLAG_USE_WORKING_DIR"; break; } - return "Unhandled D3D12_SHADER_CACHE_FLAGS"; + return ret; } -std::string ToString_D3D12_SHADER_CACHE_FLAGS(uint32_t flags) +std::string ToString_D3D12_SHADER_CACHE_FLAGS(const uint32_t flags) { return BitmaskToString(flags); } -std::string ToString(const D3D12_BARRIER_LAYOUT& value) -{ - switch (value) { - case D3D12_BARRIER_LAYOUT_UNDEFINED: return "D3D12_BARRIER_LAYOUT_UNDEFINED"; - case D3D12_BARRIER_LAYOUT_COMMON: return "D3D12_BARRIER_LAYOUT_COMMON"; - case D3D12_BARRIER_LAYOUT_GENERIC_READ: return "D3D12_BARRIER_LAYOUT_GENERIC_READ"; - case D3D12_BARRIER_LAYOUT_RENDER_TARGET: return "D3D12_BARRIER_LAYOUT_RENDER_TARGET"; - case D3D12_BARRIER_LAYOUT_UNORDERED_ACCESS: return "D3D12_BARRIER_LAYOUT_UNORDERED_ACCESS"; - case D3D12_BARRIER_LAYOUT_DEPTH_STENCIL_WRITE: return "D3D12_BARRIER_LAYOUT_DEPTH_STENCIL_WRITE"; - case D3D12_BARRIER_LAYOUT_DEPTH_STENCIL_READ: return "D3D12_BARRIER_LAYOUT_DEPTH_STENCIL_READ"; - case D3D12_BARRIER_LAYOUT_SHADER_RESOURCE: return "D3D12_BARRIER_LAYOUT_SHADER_RESOURCE"; - case D3D12_BARRIER_LAYOUT_COPY_SOURCE: return "D3D12_BARRIER_LAYOUT_COPY_SOURCE"; - case D3D12_BARRIER_LAYOUT_COPY_DEST: return "D3D12_BARRIER_LAYOUT_COPY_DEST"; - case D3D12_BARRIER_LAYOUT_RESOLVE_SOURCE: return "D3D12_BARRIER_LAYOUT_RESOLVE_SOURCE"; - case D3D12_BARRIER_LAYOUT_RESOLVE_DEST: return "D3D12_BARRIER_LAYOUT_RESOLVE_DEST"; - case D3D12_BARRIER_LAYOUT_SHADING_RATE_SOURCE: return "D3D12_BARRIER_LAYOUT_SHADING_RATE_SOURCE"; - case D3D12_BARRIER_LAYOUT_VIDEO_DECODE_READ: return "D3D12_BARRIER_LAYOUT_VIDEO_DECODE_READ"; - case D3D12_BARRIER_LAYOUT_VIDEO_DECODE_WRITE: return "D3D12_BARRIER_LAYOUT_VIDEO_DECODE_WRITE"; - case D3D12_BARRIER_LAYOUT_VIDEO_PROCESS_READ: return "D3D12_BARRIER_LAYOUT_VIDEO_PROCESS_READ"; - case D3D12_BARRIER_LAYOUT_VIDEO_PROCESS_WRITE: return "D3D12_BARRIER_LAYOUT_VIDEO_PROCESS_WRITE"; - case D3D12_BARRIER_LAYOUT_VIDEO_ENCODE_READ: return "D3D12_BARRIER_LAYOUT_VIDEO_ENCODE_READ"; - case D3D12_BARRIER_LAYOUT_VIDEO_ENCODE_WRITE: return "D3D12_BARRIER_LAYOUT_VIDEO_ENCODE_WRITE"; - case D3D12_BARRIER_LAYOUT_DIRECT_QUEUE_COMMON: return "D3D12_BARRIER_LAYOUT_DIRECT_QUEUE_COMMON"; - case D3D12_BARRIER_LAYOUT_DIRECT_QUEUE_GENERIC_READ: return "D3D12_BARRIER_LAYOUT_DIRECT_QUEUE_GENERIC_READ"; - case D3D12_BARRIER_LAYOUT_DIRECT_QUEUE_UNORDERED_ACCESS: return "D3D12_BARRIER_LAYOUT_DIRECT_QUEUE_UNORDERED_ACCESS"; - case D3D12_BARRIER_LAYOUT_DIRECT_QUEUE_SHADER_RESOURCE: return "D3D12_BARRIER_LAYOUT_DIRECT_QUEUE_SHADER_RESOURCE"; - case D3D12_BARRIER_LAYOUT_DIRECT_QUEUE_COPY_SOURCE: return "D3D12_BARRIER_LAYOUT_DIRECT_QUEUE_COPY_SOURCE"; - case D3D12_BARRIER_LAYOUT_DIRECT_QUEUE_COPY_DEST: return "D3D12_BARRIER_LAYOUT_DIRECT_QUEUE_COPY_DEST"; - case D3D12_BARRIER_LAYOUT_COMPUTE_QUEUE_COMMON: return "D3D12_BARRIER_LAYOUT_COMPUTE_QUEUE_COMMON"; - case D3D12_BARRIER_LAYOUT_COMPUTE_QUEUE_GENERIC_READ: return "D3D12_BARRIER_LAYOUT_COMPUTE_QUEUE_GENERIC_READ"; - case D3D12_BARRIER_LAYOUT_COMPUTE_QUEUE_UNORDERED_ACCESS: return "D3D12_BARRIER_LAYOUT_COMPUTE_QUEUE_UNORDERED_ACCESS"; - case D3D12_BARRIER_LAYOUT_COMPUTE_QUEUE_SHADER_RESOURCE: return "D3D12_BARRIER_LAYOUT_COMPUTE_QUEUE_SHADER_RESOURCE"; - case D3D12_BARRIER_LAYOUT_COMPUTE_QUEUE_COPY_SOURCE: return "D3D12_BARRIER_LAYOUT_COMPUTE_QUEUE_COPY_SOURCE"; - case D3D12_BARRIER_LAYOUT_COMPUTE_QUEUE_COPY_DEST: return "D3D12_BARRIER_LAYOUT_COMPUTE_QUEUE_COPY_DEST"; - case D3D12_BARRIER_LAYOUT_VIDEO_QUEUE_COMMON: return "D3D12_BARRIER_LAYOUT_VIDEO_QUEUE_COMMON"; - default: break; - } - return "Unhandled D3D12_BARRIER_LAYOUT"; -} - -std::string ToString(const D3D12_BARRIER_SYNC& value) -{ - switch (value) { - case D3D12_BARRIER_SYNC_NONE: return "D3D12_BARRIER_SYNC_NONE"; - case D3D12_BARRIER_SYNC_ALL: return "D3D12_BARRIER_SYNC_ALL"; - case D3D12_BARRIER_SYNC_DRAW: return "D3D12_BARRIER_SYNC_DRAW"; - case D3D12_BARRIER_SYNC_INDEX_INPUT: return "D3D12_BARRIER_SYNC_INDEX_INPUT"; - case D3D12_BARRIER_SYNC_VERTEX_SHADING: return "D3D12_BARRIER_SYNC_VERTEX_SHADING"; - case D3D12_BARRIER_SYNC_PIXEL_SHADING: return "D3D12_BARRIER_SYNC_PIXEL_SHADING"; - case D3D12_BARRIER_SYNC_DEPTH_STENCIL: return "D3D12_BARRIER_SYNC_DEPTH_STENCIL"; - case D3D12_BARRIER_SYNC_RENDER_TARGET: return "D3D12_BARRIER_SYNC_RENDER_TARGET"; - case D3D12_BARRIER_SYNC_COMPUTE_SHADING: return "D3D12_BARRIER_SYNC_COMPUTE_SHADING"; - case D3D12_BARRIER_SYNC_RAYTRACING: return "D3D12_BARRIER_SYNC_RAYTRACING"; - case D3D12_BARRIER_SYNC_COPY: return "D3D12_BARRIER_SYNC_COPY"; - case D3D12_BARRIER_SYNC_RESOLVE: return "D3D12_BARRIER_SYNC_RESOLVE"; - case D3D12_BARRIER_SYNC_EXECUTE_INDIRECT: return "D3D12_BARRIER_SYNC_EXECUTE_INDIRECT"; - case D3D12_BARRIER_SYNC_ALL_SHADING: return "D3D12_BARRIER_SYNC_ALL_SHADING"; - case D3D12_BARRIER_SYNC_NON_PIXEL_SHADING: return "D3D12_BARRIER_SYNC_NON_PIXEL_SHADING"; - case D3D12_BARRIER_SYNC_EMIT_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO: return "D3D12_BARRIER_SYNC_EMIT_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO"; - case D3D12_BARRIER_SYNC_CLEAR_UNORDERED_ACCESS_VIEW: return "D3D12_BARRIER_SYNC_CLEAR_UNORDERED_ACCESS_VIEW"; - case D3D12_BARRIER_SYNC_VIDEO_DECODE: return "D3D12_BARRIER_SYNC_VIDEO_DECODE"; - case D3D12_BARRIER_SYNC_VIDEO_PROCESS: return "D3D12_BARRIER_SYNC_VIDEO_PROCESS"; - case D3D12_BARRIER_SYNC_VIDEO_ENCODE: return "D3D12_BARRIER_SYNC_VIDEO_ENCODE"; - case D3D12_BARRIER_SYNC_BUILD_RAYTRACING_ACCELERATION_STRUCTURE: return "D3D12_BARRIER_SYNC_BUILD_RAYTRACING_ACCELERATION_STRUCTURE"; - case D3D12_BARRIER_SYNC_COPY_RAYTRACING_ACCELERATION_STRUCTURE: return "D3D12_BARRIER_SYNC_COPY_RAYTRACING_ACCELERATION_STRUCTURE"; - case D3D12_BARRIER_SYNC_SPLIT: return "D3D12_BARRIER_SYNC_SPLIT"; - default: break; - } - return "Unhandled D3D12_BARRIER_SYNC"; -} - -std::string ToString(const D3D12_BARRIER_ACCESS& value) -{ - switch (value) { - case D3D12_BARRIER_ACCESS_COMMON: return "D3D12_BARRIER_ACCESS_COMMON"; - case D3D12_BARRIER_ACCESS_VERTEX_BUFFER: return "D3D12_BARRIER_ACCESS_VERTEX_BUFFER"; - case D3D12_BARRIER_ACCESS_CONSTANT_BUFFER: return "D3D12_BARRIER_ACCESS_CONSTANT_BUFFER"; - case D3D12_BARRIER_ACCESS_INDEX_BUFFER: return "D3D12_BARRIER_ACCESS_INDEX_BUFFER"; - case D3D12_BARRIER_ACCESS_RENDER_TARGET: return "D3D12_BARRIER_ACCESS_RENDER_TARGET"; - case D3D12_BARRIER_ACCESS_UNORDERED_ACCESS: return "D3D12_BARRIER_ACCESS_UNORDERED_ACCESS"; - case D3D12_BARRIER_ACCESS_DEPTH_STENCIL_WRITE: return "D3D12_BARRIER_ACCESS_DEPTH_STENCIL_WRITE"; - case D3D12_BARRIER_ACCESS_DEPTH_STENCIL_READ: return "D3D12_BARRIER_ACCESS_DEPTH_STENCIL_READ"; - case D3D12_BARRIER_ACCESS_SHADER_RESOURCE: return "D3D12_BARRIER_ACCESS_SHADER_RESOURCE"; - case D3D12_BARRIER_ACCESS_STREAM_OUTPUT: return "D3D12_BARRIER_ACCESS_STREAM_OUTPUT"; - case D3D12_BARRIER_ACCESS_INDIRECT_ARGUMENT: return "D3D12_BARRIER_ACCESS_INDIRECT_ARGUMENT"; - case D3D12_BARRIER_ACCESS_COPY_DEST: return "D3D12_BARRIER_ACCESS_COPY_DEST"; - case D3D12_BARRIER_ACCESS_COPY_SOURCE: return "D3D12_BARRIER_ACCESS_COPY_SOURCE"; - case D3D12_BARRIER_ACCESS_RESOLVE_DEST: return "D3D12_BARRIER_ACCESS_RESOLVE_DEST"; - case D3D12_BARRIER_ACCESS_RESOLVE_SOURCE: return "D3D12_BARRIER_ACCESS_RESOLVE_SOURCE"; - case D3D12_BARRIER_ACCESS_RAYTRACING_ACCELERATION_STRUCTURE_READ: return "D3D12_BARRIER_ACCESS_RAYTRACING_ACCELERATION_STRUCTURE_READ"; - case D3D12_BARRIER_ACCESS_RAYTRACING_ACCELERATION_STRUCTURE_WRITE: return "D3D12_BARRIER_ACCESS_RAYTRACING_ACCELERATION_STRUCTURE_WRITE"; - case D3D12_BARRIER_ACCESS_SHADING_RATE_SOURCE: return "D3D12_BARRIER_ACCESS_SHADING_RATE_SOURCE"; - case D3D12_BARRIER_ACCESS_VIDEO_DECODE_READ: return "D3D12_BARRIER_ACCESS_VIDEO_DECODE_READ"; - case D3D12_BARRIER_ACCESS_VIDEO_DECODE_WRITE: return "D3D12_BARRIER_ACCESS_VIDEO_DECODE_WRITE"; - case D3D12_BARRIER_ACCESS_VIDEO_PROCESS_READ: return "D3D12_BARRIER_ACCESS_VIDEO_PROCESS_READ"; - case D3D12_BARRIER_ACCESS_VIDEO_PROCESS_WRITE: return "D3D12_BARRIER_ACCESS_VIDEO_PROCESS_WRITE"; - case D3D12_BARRIER_ACCESS_VIDEO_ENCODE_READ: return "D3D12_BARRIER_ACCESS_VIDEO_ENCODE_READ"; - case D3D12_BARRIER_ACCESS_VIDEO_ENCODE_WRITE: return "D3D12_BARRIER_ACCESS_VIDEO_ENCODE_WRITE"; - case D3D12_BARRIER_ACCESS_NO_ACCESS: return "D3D12_BARRIER_ACCESS_NO_ACCESS"; - default: break; - } - return "Unhandled D3D12_BARRIER_ACCESS"; -} - -std::string ToString(const D3D12_BARRIER_TYPE& value) -{ - switch (value) { - case D3D12_BARRIER_TYPE_GLOBAL: return "D3D12_BARRIER_TYPE_GLOBAL"; - case D3D12_BARRIER_TYPE_TEXTURE: return "D3D12_BARRIER_TYPE_TEXTURE"; - case D3D12_BARRIER_TYPE_BUFFER: return "D3D12_BARRIER_TYPE_BUFFER"; - default: break; - } - return "Unhandled D3D12_BARRIER_TYPE"; -} - -std::string ToString(const D3D12_TEXTURE_BARRIER_FLAGS& value) -{ - switch (value) { - case D3D12_TEXTURE_BARRIER_FLAG_NONE: return "D3D12_TEXTURE_BARRIER_FLAG_NONE"; - case D3D12_TEXTURE_BARRIER_FLAG_DISCARD: return "D3D12_TEXTURE_BARRIER_FLAG_DISCARD"; - default: break; - } - return "Unhandled D3D12_TEXTURE_BARRIER_FLAGS"; -} - -std::string ToString_D3D12_TEXTURE_BARRIER_FLAGS(uint32_t flags) +std::string ToString(const D3D12_BARRIER_LAYOUT value) +{ + const char* ret = "Unhandled D3D12_BARRIER_LAYOUT"; + switch (value) { + case D3D12_BARRIER_LAYOUT_UNDEFINED: ret = "D3D12_BARRIER_LAYOUT_UNDEFINED"; break; + case D3D12_BARRIER_LAYOUT_COMMON: ret = "D3D12_BARRIER_LAYOUT_COMMON"; break; + case D3D12_BARRIER_LAYOUT_GENERIC_READ: ret = "D3D12_BARRIER_LAYOUT_GENERIC_READ"; break; + case D3D12_BARRIER_LAYOUT_RENDER_TARGET: ret = "D3D12_BARRIER_LAYOUT_RENDER_TARGET"; break; + case D3D12_BARRIER_LAYOUT_UNORDERED_ACCESS: ret = "D3D12_BARRIER_LAYOUT_UNORDERED_ACCESS"; break; + case D3D12_BARRIER_LAYOUT_DEPTH_STENCIL_WRITE: ret = "D3D12_BARRIER_LAYOUT_DEPTH_STENCIL_WRITE"; break; + case D3D12_BARRIER_LAYOUT_DEPTH_STENCIL_READ: ret = "D3D12_BARRIER_LAYOUT_DEPTH_STENCIL_READ"; break; + case D3D12_BARRIER_LAYOUT_SHADER_RESOURCE: ret = "D3D12_BARRIER_LAYOUT_SHADER_RESOURCE"; break; + case D3D12_BARRIER_LAYOUT_COPY_SOURCE: ret = "D3D12_BARRIER_LAYOUT_COPY_SOURCE"; break; + case D3D12_BARRIER_LAYOUT_COPY_DEST: ret = "D3D12_BARRIER_LAYOUT_COPY_DEST"; break; + case D3D12_BARRIER_LAYOUT_RESOLVE_SOURCE: ret = "D3D12_BARRIER_LAYOUT_RESOLVE_SOURCE"; break; + case D3D12_BARRIER_LAYOUT_RESOLVE_DEST: ret = "D3D12_BARRIER_LAYOUT_RESOLVE_DEST"; break; + case D3D12_BARRIER_LAYOUT_SHADING_RATE_SOURCE: ret = "D3D12_BARRIER_LAYOUT_SHADING_RATE_SOURCE"; break; + case D3D12_BARRIER_LAYOUT_VIDEO_DECODE_READ: ret = "D3D12_BARRIER_LAYOUT_VIDEO_DECODE_READ"; break; + case D3D12_BARRIER_LAYOUT_VIDEO_DECODE_WRITE: ret = "D3D12_BARRIER_LAYOUT_VIDEO_DECODE_WRITE"; break; + case D3D12_BARRIER_LAYOUT_VIDEO_PROCESS_READ: ret = "D3D12_BARRIER_LAYOUT_VIDEO_PROCESS_READ"; break; + case D3D12_BARRIER_LAYOUT_VIDEO_PROCESS_WRITE: ret = "D3D12_BARRIER_LAYOUT_VIDEO_PROCESS_WRITE"; break; + case D3D12_BARRIER_LAYOUT_VIDEO_ENCODE_READ: ret = "D3D12_BARRIER_LAYOUT_VIDEO_ENCODE_READ"; break; + case D3D12_BARRIER_LAYOUT_VIDEO_ENCODE_WRITE: ret = "D3D12_BARRIER_LAYOUT_VIDEO_ENCODE_WRITE"; break; + case D3D12_BARRIER_LAYOUT_DIRECT_QUEUE_COMMON: ret = "D3D12_BARRIER_LAYOUT_DIRECT_QUEUE_COMMON"; break; + case D3D12_BARRIER_LAYOUT_DIRECT_QUEUE_GENERIC_READ: ret = "D3D12_BARRIER_LAYOUT_DIRECT_QUEUE_GENERIC_READ"; break; + case D3D12_BARRIER_LAYOUT_DIRECT_QUEUE_UNORDERED_ACCESS: ret = "D3D12_BARRIER_LAYOUT_DIRECT_QUEUE_UNORDERED_ACCESS"; break; + case D3D12_BARRIER_LAYOUT_DIRECT_QUEUE_SHADER_RESOURCE: ret = "D3D12_BARRIER_LAYOUT_DIRECT_QUEUE_SHADER_RESOURCE"; break; + case D3D12_BARRIER_LAYOUT_DIRECT_QUEUE_COPY_SOURCE: ret = "D3D12_BARRIER_LAYOUT_DIRECT_QUEUE_COPY_SOURCE"; break; + case D3D12_BARRIER_LAYOUT_DIRECT_QUEUE_COPY_DEST: ret = "D3D12_BARRIER_LAYOUT_DIRECT_QUEUE_COPY_DEST"; break; + case D3D12_BARRIER_LAYOUT_COMPUTE_QUEUE_COMMON: ret = "D3D12_BARRIER_LAYOUT_COMPUTE_QUEUE_COMMON"; break; + case D3D12_BARRIER_LAYOUT_COMPUTE_QUEUE_GENERIC_READ: ret = "D3D12_BARRIER_LAYOUT_COMPUTE_QUEUE_GENERIC_READ"; break; + case D3D12_BARRIER_LAYOUT_COMPUTE_QUEUE_UNORDERED_ACCESS: ret = "D3D12_BARRIER_LAYOUT_COMPUTE_QUEUE_UNORDERED_ACCESS"; break; + case D3D12_BARRIER_LAYOUT_COMPUTE_QUEUE_SHADER_RESOURCE: ret = "D3D12_BARRIER_LAYOUT_COMPUTE_QUEUE_SHADER_RESOURCE"; break; + case D3D12_BARRIER_LAYOUT_COMPUTE_QUEUE_COPY_SOURCE: ret = "D3D12_BARRIER_LAYOUT_COMPUTE_QUEUE_COPY_SOURCE"; break; + case D3D12_BARRIER_LAYOUT_COMPUTE_QUEUE_COPY_DEST: ret = "D3D12_BARRIER_LAYOUT_COMPUTE_QUEUE_COPY_DEST"; break; + case D3D12_BARRIER_LAYOUT_VIDEO_QUEUE_COMMON: ret = "D3D12_BARRIER_LAYOUT_VIDEO_QUEUE_COMMON"; break; + } + return ret; +} + +std::string ToString(const D3D12_BARRIER_SYNC value) +{ + const char* ret = "Unhandled D3D12_BARRIER_SYNC"; + switch (value) { + case D3D12_BARRIER_SYNC_NONE: ret = "D3D12_BARRIER_SYNC_NONE"; break; + case D3D12_BARRIER_SYNC_ALL: ret = "D3D12_BARRIER_SYNC_ALL"; break; + case D3D12_BARRIER_SYNC_DRAW: ret = "D3D12_BARRIER_SYNC_DRAW"; break; + case D3D12_BARRIER_SYNC_INDEX_INPUT: ret = "D3D12_BARRIER_SYNC_INDEX_INPUT"; break; + case D3D12_BARRIER_SYNC_VERTEX_SHADING: ret = "D3D12_BARRIER_SYNC_VERTEX_SHADING"; break; + case D3D12_BARRIER_SYNC_PIXEL_SHADING: ret = "D3D12_BARRIER_SYNC_PIXEL_SHADING"; break; + case D3D12_BARRIER_SYNC_DEPTH_STENCIL: ret = "D3D12_BARRIER_SYNC_DEPTH_STENCIL"; break; + case D3D12_BARRIER_SYNC_RENDER_TARGET: ret = "D3D12_BARRIER_SYNC_RENDER_TARGET"; break; + case D3D12_BARRIER_SYNC_COMPUTE_SHADING: ret = "D3D12_BARRIER_SYNC_COMPUTE_SHADING"; break; + case D3D12_BARRIER_SYNC_RAYTRACING: ret = "D3D12_BARRIER_SYNC_RAYTRACING"; break; + case D3D12_BARRIER_SYNC_COPY: ret = "D3D12_BARRIER_SYNC_COPY"; break; + case D3D12_BARRIER_SYNC_RESOLVE: ret = "D3D12_BARRIER_SYNC_RESOLVE"; break; + case D3D12_BARRIER_SYNC_EXECUTE_INDIRECT: ret = "D3D12_BARRIER_SYNC_EXECUTE_INDIRECT"; break; + case D3D12_BARRIER_SYNC_ALL_SHADING: ret = "D3D12_BARRIER_SYNC_ALL_SHADING"; break; + case D3D12_BARRIER_SYNC_NON_PIXEL_SHADING: ret = "D3D12_BARRIER_SYNC_NON_PIXEL_SHADING"; break; + case D3D12_BARRIER_SYNC_EMIT_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO: ret = "D3D12_BARRIER_SYNC_EMIT_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO"; break; + case D3D12_BARRIER_SYNC_CLEAR_UNORDERED_ACCESS_VIEW: ret = "D3D12_BARRIER_SYNC_CLEAR_UNORDERED_ACCESS_VIEW"; break; + case D3D12_BARRIER_SYNC_VIDEO_DECODE: ret = "D3D12_BARRIER_SYNC_VIDEO_DECODE"; break; + case D3D12_BARRIER_SYNC_VIDEO_PROCESS: ret = "D3D12_BARRIER_SYNC_VIDEO_PROCESS"; break; + case D3D12_BARRIER_SYNC_VIDEO_ENCODE: ret = "D3D12_BARRIER_SYNC_VIDEO_ENCODE"; break; + case D3D12_BARRIER_SYNC_BUILD_RAYTRACING_ACCELERATION_STRUCTURE: ret = "D3D12_BARRIER_SYNC_BUILD_RAYTRACING_ACCELERATION_STRUCTURE"; break; + case D3D12_BARRIER_SYNC_COPY_RAYTRACING_ACCELERATION_STRUCTURE: ret = "D3D12_BARRIER_SYNC_COPY_RAYTRACING_ACCELERATION_STRUCTURE"; break; + case D3D12_BARRIER_SYNC_SPLIT: ret = "D3D12_BARRIER_SYNC_SPLIT"; break; + } + return ret; +} + +std::string ToString(const D3D12_BARRIER_ACCESS value) +{ + const char* ret = "Unhandled D3D12_BARRIER_ACCESS"; + switch (value) { + case D3D12_BARRIER_ACCESS_COMMON: ret = "D3D12_BARRIER_ACCESS_COMMON"; break; + case D3D12_BARRIER_ACCESS_VERTEX_BUFFER: ret = "D3D12_BARRIER_ACCESS_VERTEX_BUFFER"; break; + case D3D12_BARRIER_ACCESS_CONSTANT_BUFFER: ret = "D3D12_BARRIER_ACCESS_CONSTANT_BUFFER"; break; + case D3D12_BARRIER_ACCESS_INDEX_BUFFER: ret = "D3D12_BARRIER_ACCESS_INDEX_BUFFER"; break; + case D3D12_BARRIER_ACCESS_RENDER_TARGET: ret = "D3D12_BARRIER_ACCESS_RENDER_TARGET"; break; + case D3D12_BARRIER_ACCESS_UNORDERED_ACCESS: ret = "D3D12_BARRIER_ACCESS_UNORDERED_ACCESS"; break; + case D3D12_BARRIER_ACCESS_DEPTH_STENCIL_WRITE: ret = "D3D12_BARRIER_ACCESS_DEPTH_STENCIL_WRITE"; break; + case D3D12_BARRIER_ACCESS_DEPTH_STENCIL_READ: ret = "D3D12_BARRIER_ACCESS_DEPTH_STENCIL_READ"; break; + case D3D12_BARRIER_ACCESS_SHADER_RESOURCE: ret = "D3D12_BARRIER_ACCESS_SHADER_RESOURCE"; break; + case D3D12_BARRIER_ACCESS_STREAM_OUTPUT: ret = "D3D12_BARRIER_ACCESS_STREAM_OUTPUT"; break; + case D3D12_BARRIER_ACCESS_INDIRECT_ARGUMENT: ret = "D3D12_BARRIER_ACCESS_INDIRECT_ARGUMENT"; break; + case D3D12_BARRIER_ACCESS_COPY_DEST: ret = "D3D12_BARRIER_ACCESS_COPY_DEST"; break; + case D3D12_BARRIER_ACCESS_COPY_SOURCE: ret = "D3D12_BARRIER_ACCESS_COPY_SOURCE"; break; + case D3D12_BARRIER_ACCESS_RESOLVE_DEST: ret = "D3D12_BARRIER_ACCESS_RESOLVE_DEST"; break; + case D3D12_BARRIER_ACCESS_RESOLVE_SOURCE: ret = "D3D12_BARRIER_ACCESS_RESOLVE_SOURCE"; break; + case D3D12_BARRIER_ACCESS_RAYTRACING_ACCELERATION_STRUCTURE_READ: ret = "D3D12_BARRIER_ACCESS_RAYTRACING_ACCELERATION_STRUCTURE_READ"; break; + case D3D12_BARRIER_ACCESS_RAYTRACING_ACCELERATION_STRUCTURE_WRITE: ret = "D3D12_BARRIER_ACCESS_RAYTRACING_ACCELERATION_STRUCTURE_WRITE"; break; + case D3D12_BARRIER_ACCESS_SHADING_RATE_SOURCE: ret = "D3D12_BARRIER_ACCESS_SHADING_RATE_SOURCE"; break; + case D3D12_BARRIER_ACCESS_VIDEO_DECODE_READ: ret = "D3D12_BARRIER_ACCESS_VIDEO_DECODE_READ"; break; + case D3D12_BARRIER_ACCESS_VIDEO_DECODE_WRITE: ret = "D3D12_BARRIER_ACCESS_VIDEO_DECODE_WRITE"; break; + case D3D12_BARRIER_ACCESS_VIDEO_PROCESS_READ: ret = "D3D12_BARRIER_ACCESS_VIDEO_PROCESS_READ"; break; + case D3D12_BARRIER_ACCESS_VIDEO_PROCESS_WRITE: ret = "D3D12_BARRIER_ACCESS_VIDEO_PROCESS_WRITE"; break; + case D3D12_BARRIER_ACCESS_VIDEO_ENCODE_READ: ret = "D3D12_BARRIER_ACCESS_VIDEO_ENCODE_READ"; break; + case D3D12_BARRIER_ACCESS_VIDEO_ENCODE_WRITE: ret = "D3D12_BARRIER_ACCESS_VIDEO_ENCODE_WRITE"; break; + case D3D12_BARRIER_ACCESS_NO_ACCESS: ret = "D3D12_BARRIER_ACCESS_NO_ACCESS"; break; + } + return ret; +} + +std::string ToString(const D3D12_BARRIER_TYPE value) +{ + const char* ret = "Unhandled D3D12_BARRIER_TYPE"; + switch (value) { + case D3D12_BARRIER_TYPE_GLOBAL: ret = "D3D12_BARRIER_TYPE_GLOBAL"; break; + case D3D12_BARRIER_TYPE_TEXTURE: ret = "D3D12_BARRIER_TYPE_TEXTURE"; break; + case D3D12_BARRIER_TYPE_BUFFER: ret = "D3D12_BARRIER_TYPE_BUFFER"; break; + } + return ret; +} + +std::string ToString(const D3D12_TEXTURE_BARRIER_FLAGS value) +{ + const char* ret = "Unhandled D3D12_TEXTURE_BARRIER_FLAGS"; + switch (value) { + case D3D12_TEXTURE_BARRIER_FLAG_NONE: ret = "D3D12_TEXTURE_BARRIER_FLAG_NONE"; break; + case D3D12_TEXTURE_BARRIER_FLAG_DISCARD: ret = "D3D12_TEXTURE_BARRIER_FLAG_DISCARD"; break; + } + return ret; +} + +std::string ToString_D3D12_TEXTURE_BARRIER_FLAGS(const uint32_t flags) { return BitmaskToString(flags); } -std::string ToString(const D3D12_SHADER_CACHE_KIND_FLAGS& value) +std::string ToString(const D3D12_SHADER_CACHE_KIND_FLAGS value) { + const char* ret = "Unhandled D3D12_SHADER_CACHE_KIND_FLAGS"; switch (value) { - case D3D12_SHADER_CACHE_KIND_FLAG_IMPLICIT_D3D_CACHE_FOR_DRIVER: return "D3D12_SHADER_CACHE_KIND_FLAG_IMPLICIT_D3D_CACHE_FOR_DRIVER"; - case D3D12_SHADER_CACHE_KIND_FLAG_IMPLICIT_D3D_CONVERSIONS: return "D3D12_SHADER_CACHE_KIND_FLAG_IMPLICIT_D3D_CONVERSIONS"; - case D3D12_SHADER_CACHE_KIND_FLAG_IMPLICIT_DRIVER_MANAGED: return "D3D12_SHADER_CACHE_KIND_FLAG_IMPLICIT_DRIVER_MANAGED"; - case D3D12_SHADER_CACHE_KIND_FLAG_APPLICATION_MANAGED: return "D3D12_SHADER_CACHE_KIND_FLAG_APPLICATION_MANAGED"; - default: break; + case D3D12_SHADER_CACHE_KIND_FLAG_IMPLICIT_D3D_CACHE_FOR_DRIVER: ret = "D3D12_SHADER_CACHE_KIND_FLAG_IMPLICIT_D3D_CACHE_FOR_DRIVER"; break; + case D3D12_SHADER_CACHE_KIND_FLAG_IMPLICIT_D3D_CONVERSIONS: ret = "D3D12_SHADER_CACHE_KIND_FLAG_IMPLICIT_D3D_CONVERSIONS"; break; + case D3D12_SHADER_CACHE_KIND_FLAG_IMPLICIT_DRIVER_MANAGED: ret = "D3D12_SHADER_CACHE_KIND_FLAG_IMPLICIT_DRIVER_MANAGED"; break; + case D3D12_SHADER_CACHE_KIND_FLAG_APPLICATION_MANAGED: ret = "D3D12_SHADER_CACHE_KIND_FLAG_APPLICATION_MANAGED"; break; } - return "Unhandled D3D12_SHADER_CACHE_KIND_FLAGS"; + return ret; } -std::string ToString_D3D12_SHADER_CACHE_KIND_FLAGS(uint32_t flags) +std::string ToString_D3D12_SHADER_CACHE_KIND_FLAGS(const uint32_t flags) { return BitmaskToString(flags); } -std::string ToString(const D3D12_SHADER_CACHE_CONTROL_FLAGS& value) +std::string ToString(const D3D12_SHADER_CACHE_CONTROL_FLAGS value) { + const char* ret = "Unhandled D3D12_SHADER_CACHE_CONTROL_FLAGS"; switch (value) { - case D3D12_SHADER_CACHE_CONTROL_FLAG_DISABLE: return "D3D12_SHADER_CACHE_CONTROL_FLAG_DISABLE"; - case D3D12_SHADER_CACHE_CONTROL_FLAG_ENABLE: return "D3D12_SHADER_CACHE_CONTROL_FLAG_ENABLE"; - case D3D12_SHADER_CACHE_CONTROL_FLAG_CLEAR: return "D3D12_SHADER_CACHE_CONTROL_FLAG_CLEAR"; - default: break; + case D3D12_SHADER_CACHE_CONTROL_FLAG_DISABLE: ret = "D3D12_SHADER_CACHE_CONTROL_FLAG_DISABLE"; break; + case D3D12_SHADER_CACHE_CONTROL_FLAG_ENABLE: ret = "D3D12_SHADER_CACHE_CONTROL_FLAG_ENABLE"; break; + case D3D12_SHADER_CACHE_CONTROL_FLAG_CLEAR: ret = "D3D12_SHADER_CACHE_CONTROL_FLAG_CLEAR"; break; } - return "Unhandled D3D12_SHADER_CACHE_CONTROL_FLAGS"; + return ret; } -std::string ToString_D3D12_SHADER_CACHE_CONTROL_FLAGS(uint32_t flags) +std::string ToString_D3D12_SHADER_CACHE_CONTROL_FLAGS(const uint32_t flags) { return BitmaskToString(flags); } -std::string ToString(const D3D12_DEVICE_FACTORY_FLAGS& value) +std::string ToString(const D3D12_DEVICE_FACTORY_FLAGS value) { + const char* ret = "Unhandled D3D12_DEVICE_FACTORY_FLAGS"; switch (value) { - case D3D12_DEVICE_FACTORY_FLAG_NONE: return "D3D12_DEVICE_FACTORY_FLAG_NONE"; - case D3D12_DEVICE_FACTORY_FLAG_ALLOW_RETURNING_EXISTING_DEVICE: return "D3D12_DEVICE_FACTORY_FLAG_ALLOW_RETURNING_EXISTING_DEVICE"; - case D3D12_DEVICE_FACTORY_FLAG_ALLOW_RETURNING_INCOMPATIBLE_EXISTING_DEVICE: return "D3D12_DEVICE_FACTORY_FLAG_ALLOW_RETURNING_INCOMPATIBLE_EXISTING_DEVICE"; - case D3D12_DEVICE_FACTORY_FLAG_DISALLOW_STORING_NEW_DEVICE_AS_SINGLETON: return "D3D12_DEVICE_FACTORY_FLAG_DISALLOW_STORING_NEW_DEVICE_AS_SINGLETON"; - default: break; + case D3D12_DEVICE_FACTORY_FLAG_NONE: ret = "D3D12_DEVICE_FACTORY_FLAG_NONE"; break; + case D3D12_DEVICE_FACTORY_FLAG_ALLOW_RETURNING_EXISTING_DEVICE: ret = "D3D12_DEVICE_FACTORY_FLAG_ALLOW_RETURNING_EXISTING_DEVICE"; break; + case D3D12_DEVICE_FACTORY_FLAG_ALLOW_RETURNING_INCOMPATIBLE_EXISTING_DEVICE: ret = "D3D12_DEVICE_FACTORY_FLAG_ALLOW_RETURNING_INCOMPATIBLE_EXISTING_DEVICE"; break; + case D3D12_DEVICE_FACTORY_FLAG_DISALLOW_STORING_NEW_DEVICE_AS_SINGLETON: ret = "D3D12_DEVICE_FACTORY_FLAG_DISALLOW_STORING_NEW_DEVICE_AS_SINGLETON"; break; } - return "Unhandled D3D12_DEVICE_FACTORY_FLAGS"; + return ret; } -std::string ToString_D3D12_DEVICE_FACTORY_FLAGS(uint32_t flags) +std::string ToString_D3D12_DEVICE_FACTORY_FLAGS(const uint32_t flags) { return BitmaskToString(flags); } -std::string ToString(const D3D12_DEVICE_FLAGS& value) +std::string ToString(const D3D12_DEVICE_FLAGS value) { + const char* ret = "Unhandled D3D12_DEVICE_FLAGS"; switch (value) { - case D3D12_DEVICE_FLAG_NONE: return "D3D12_DEVICE_FLAG_NONE"; - case D3D12_DEVICE_FLAG_DEBUG_LAYER_ENABLED: return "D3D12_DEVICE_FLAG_DEBUG_LAYER_ENABLED"; - case D3D12_DEVICE_FLAG_GPU_BASED_VALIDATION_ENABLED: return "D3D12_DEVICE_FLAG_GPU_BASED_VALIDATION_ENABLED"; - case D3D12_DEVICE_FLAG_SYNCHRONIZED_COMMAND_QUEUE_VALIDATION_DISABLED: return "D3D12_DEVICE_FLAG_SYNCHRONIZED_COMMAND_QUEUE_VALIDATION_DISABLED"; - case D3D12_DEVICE_FLAG_DRED_AUTO_BREADCRUMBS_ENABLED: return "D3D12_DEVICE_FLAG_DRED_AUTO_BREADCRUMBS_ENABLED"; - case D3D12_DEVICE_FLAG_DRED_PAGE_FAULT_REPORTING_ENABLED: return "D3D12_DEVICE_FLAG_DRED_PAGE_FAULT_REPORTING_ENABLED"; - case D3D12_DEVICE_FLAG_DRED_WATSON_REPORTING_ENABLED: return "D3D12_DEVICE_FLAG_DRED_WATSON_REPORTING_ENABLED"; - case D3D12_DEVICE_FLAG_DRED_BREADCRUMB_CONTEXT_ENABLED: return "D3D12_DEVICE_FLAG_DRED_BREADCRUMB_CONTEXT_ENABLED"; - case D3D12_DEVICE_FLAG_DRED_USE_MARKERS_ONLY_BREADCRUMBS: return "D3D12_DEVICE_FLAG_DRED_USE_MARKERS_ONLY_BREADCRUMBS"; - case D3D12_DEVICE_FLAG_SHADER_INSTRUMENTATION_ENABLED: return "D3D12_DEVICE_FLAG_SHADER_INSTRUMENTATION_ENABLED"; - case D3D12_DEVICE_FLAG_AUTO_DEBUG_NAME_ENABLED: return "D3D12_DEVICE_FLAG_AUTO_DEBUG_NAME_ENABLED"; - case D3D12_DEVICE_FLAG_FORCE_LEGACY_STATE_VALIDATION: return "D3D12_DEVICE_FLAG_FORCE_LEGACY_STATE_VALIDATION"; - default: break; + case D3D12_DEVICE_FLAG_NONE: ret = "D3D12_DEVICE_FLAG_NONE"; break; + case D3D12_DEVICE_FLAG_DEBUG_LAYER_ENABLED: ret = "D3D12_DEVICE_FLAG_DEBUG_LAYER_ENABLED"; break; + case D3D12_DEVICE_FLAG_GPU_BASED_VALIDATION_ENABLED: ret = "D3D12_DEVICE_FLAG_GPU_BASED_VALIDATION_ENABLED"; break; + case D3D12_DEVICE_FLAG_SYNCHRONIZED_COMMAND_QUEUE_VALIDATION_DISABLED: ret = "D3D12_DEVICE_FLAG_SYNCHRONIZED_COMMAND_QUEUE_VALIDATION_DISABLED"; break; + case D3D12_DEVICE_FLAG_DRED_AUTO_BREADCRUMBS_ENABLED: ret = "D3D12_DEVICE_FLAG_DRED_AUTO_BREADCRUMBS_ENABLED"; break; + case D3D12_DEVICE_FLAG_DRED_PAGE_FAULT_REPORTING_ENABLED: ret = "D3D12_DEVICE_FLAG_DRED_PAGE_FAULT_REPORTING_ENABLED"; break; + case D3D12_DEVICE_FLAG_DRED_WATSON_REPORTING_ENABLED: ret = "D3D12_DEVICE_FLAG_DRED_WATSON_REPORTING_ENABLED"; break; + case D3D12_DEVICE_FLAG_DRED_BREADCRUMB_CONTEXT_ENABLED: ret = "D3D12_DEVICE_FLAG_DRED_BREADCRUMB_CONTEXT_ENABLED"; break; + case D3D12_DEVICE_FLAG_DRED_USE_MARKERS_ONLY_BREADCRUMBS: ret = "D3D12_DEVICE_FLAG_DRED_USE_MARKERS_ONLY_BREADCRUMBS"; break; + case D3D12_DEVICE_FLAG_SHADER_INSTRUMENTATION_ENABLED: ret = "D3D12_DEVICE_FLAG_SHADER_INSTRUMENTATION_ENABLED"; break; + case D3D12_DEVICE_FLAG_AUTO_DEBUG_NAME_ENABLED: ret = "D3D12_DEVICE_FLAG_AUTO_DEBUG_NAME_ENABLED"; break; + case D3D12_DEVICE_FLAG_FORCE_LEGACY_STATE_VALIDATION: ret = "D3D12_DEVICE_FLAG_FORCE_LEGACY_STATE_VALIDATION"; break; } - return "Unhandled D3D12_DEVICE_FLAGS"; + return ret; } -std::string ToString_D3D12_DEVICE_FLAGS(uint32_t flags) +std::string ToString_D3D12_DEVICE_FLAGS(const uint32_t flags) { return BitmaskToString(flags); } -std::string ToString(const D3D12_AXIS_SHADING_RATE& value) +std::string ToString(const D3D12_AXIS_SHADING_RATE value) { + const char* ret = "Unhandled D3D12_AXIS_SHADING_RATE"; switch (value) { - case D3D12_AXIS_SHADING_RATE_1X: return "D3D12_AXIS_SHADING_RATE_1X"; - case D3D12_AXIS_SHADING_RATE_2X: return "D3D12_AXIS_SHADING_RATE_2X"; - case D3D12_AXIS_SHADING_RATE_4X: return "D3D12_AXIS_SHADING_RATE_4X"; - default: break; + case D3D12_AXIS_SHADING_RATE_1X: ret = "D3D12_AXIS_SHADING_RATE_1X"; break; + case D3D12_AXIS_SHADING_RATE_2X: ret = "D3D12_AXIS_SHADING_RATE_2X"; break; + case D3D12_AXIS_SHADING_RATE_4X: ret = "D3D12_AXIS_SHADING_RATE_4X"; break; } - return "Unhandled D3D12_AXIS_SHADING_RATE"; + return ret; } -std::string ToString(const D3D12_SHADING_RATE& value) +std::string ToString(const D3D12_SHADING_RATE value) { + const char* ret = "Unhandled D3D12_SHADING_RATE"; switch (value) { - case D3D12_SHADING_RATE_1X1: return "D3D12_SHADING_RATE_1X1"; - case D3D12_SHADING_RATE_1X2: return "D3D12_SHADING_RATE_1X2"; - case D3D12_SHADING_RATE_2X1: return "D3D12_SHADING_RATE_2X1"; - case D3D12_SHADING_RATE_2X2: return "D3D12_SHADING_RATE_2X2"; - case D3D12_SHADING_RATE_2X4: return "D3D12_SHADING_RATE_2X4"; - case D3D12_SHADING_RATE_4X2: return "D3D12_SHADING_RATE_4X2"; - case D3D12_SHADING_RATE_4X4: return "D3D12_SHADING_RATE_4X4"; - default: break; + case D3D12_SHADING_RATE_1X1: ret = "D3D12_SHADING_RATE_1X1"; break; + case D3D12_SHADING_RATE_1X2: ret = "D3D12_SHADING_RATE_1X2"; break; + case D3D12_SHADING_RATE_2X1: ret = "D3D12_SHADING_RATE_2X1"; break; + case D3D12_SHADING_RATE_2X2: ret = "D3D12_SHADING_RATE_2X2"; break; + case D3D12_SHADING_RATE_2X4: ret = "D3D12_SHADING_RATE_2X4"; break; + case D3D12_SHADING_RATE_4X2: ret = "D3D12_SHADING_RATE_4X2"; break; + case D3D12_SHADING_RATE_4X4: ret = "D3D12_SHADING_RATE_4X4"; break; } - return "Unhandled D3D12_SHADING_RATE"; + return ret; } -std::string ToString(const D3D12_SHADING_RATE_COMBINER& value) +std::string ToString(const D3D12_SHADING_RATE_COMBINER value) { + const char* ret = "Unhandled D3D12_SHADING_RATE_COMBINER"; switch (value) { - case D3D12_SHADING_RATE_COMBINER_PASSTHROUGH: return "D3D12_SHADING_RATE_COMBINER_PASSTHROUGH"; - case D3D12_SHADING_RATE_COMBINER_OVERRIDE: return "D3D12_SHADING_RATE_COMBINER_OVERRIDE"; - case D3D12_SHADING_RATE_COMBINER_MIN: return "D3D12_SHADING_RATE_COMBINER_MIN"; - case D3D12_SHADING_RATE_COMBINER_MAX: return "D3D12_SHADING_RATE_COMBINER_MAX"; - case D3D12_SHADING_RATE_COMBINER_SUM: return "D3D12_SHADING_RATE_COMBINER_SUM"; - default: break; + case D3D12_SHADING_RATE_COMBINER_PASSTHROUGH: ret = "D3D12_SHADING_RATE_COMBINER_PASSTHROUGH"; break; + case D3D12_SHADING_RATE_COMBINER_OVERRIDE: ret = "D3D12_SHADING_RATE_COMBINER_OVERRIDE"; break; + case D3D12_SHADING_RATE_COMBINER_MIN: ret = "D3D12_SHADING_RATE_COMBINER_MIN"; break; + case D3D12_SHADING_RATE_COMBINER_MAX: ret = "D3D12_SHADING_RATE_COMBINER_MAX"; break; + case D3D12_SHADING_RATE_COMBINER_SUM: ret = "D3D12_SHADING_RATE_COMBINER_SUM"; break; } - return "Unhandled D3D12_SHADING_RATE_COMBINER"; -} - -std::string ToString(const D3D_DRIVER_TYPE& value) -{ - switch (value) { - case D3D_DRIVER_TYPE_UNKNOWN: return "D3D_DRIVER_TYPE_UNKNOWN"; - case D3D_DRIVER_TYPE_HARDWARE: return "D3D_DRIVER_TYPE_HARDWARE"; - case D3D_DRIVER_TYPE_REFERENCE: return "D3D_DRIVER_TYPE_REFERENCE"; - case D3D_DRIVER_TYPE_NULL: return "D3D_DRIVER_TYPE_NULL"; - case D3D_DRIVER_TYPE_SOFTWARE: return "D3D_DRIVER_TYPE_SOFTWARE"; - case D3D_DRIVER_TYPE_WARP: return "D3D_DRIVER_TYPE_WARP"; - default: break; - } - return "Unhandled D3D_DRIVER_TYPE"; -} - -std::string ToString(const D3D_FEATURE_LEVEL& value) -{ - switch (value) { - case D3D_FEATURE_LEVEL_1_0_CORE: return "D3D_FEATURE_LEVEL_1_0_CORE"; - case D3D_FEATURE_LEVEL_9_1: return "D3D_FEATURE_LEVEL_9_1"; - case D3D_FEATURE_LEVEL_9_2: return "D3D_FEATURE_LEVEL_9_2"; - case D3D_FEATURE_LEVEL_9_3: return "D3D_FEATURE_LEVEL_9_3"; - case D3D_FEATURE_LEVEL_10_0: return "D3D_FEATURE_LEVEL_10_0"; - case D3D_FEATURE_LEVEL_10_1: return "D3D_FEATURE_LEVEL_10_1"; - case D3D_FEATURE_LEVEL_11_0: return "D3D_FEATURE_LEVEL_11_0"; - case D3D_FEATURE_LEVEL_11_1: return "D3D_FEATURE_LEVEL_11_1"; - case D3D_FEATURE_LEVEL_12_0: return "D3D_FEATURE_LEVEL_12_0"; - case D3D_FEATURE_LEVEL_12_1: return "D3D_FEATURE_LEVEL_12_1"; - case D3D_FEATURE_LEVEL_12_2: return "D3D_FEATURE_LEVEL_12_2"; - default: break; - } - return "Unhandled D3D_FEATURE_LEVEL"; -} - -std::string ToString(const D3D_PRIMITIVE_TOPOLOGY& value) -{ - switch (value) { - case D3D_PRIMITIVE_TOPOLOGY_UNDEFINED: return "D3D_PRIMITIVE_TOPOLOGY_UNDEFINED"; - case D3D_PRIMITIVE_TOPOLOGY_POINTLIST: return "D3D_PRIMITIVE_TOPOLOGY_POINTLIST"; - case D3D_PRIMITIVE_TOPOLOGY_LINELIST: return "D3D_PRIMITIVE_TOPOLOGY_LINELIST"; - case D3D_PRIMITIVE_TOPOLOGY_LINESTRIP: return "D3D_PRIMITIVE_TOPOLOGY_LINESTRIP"; - case D3D_PRIMITIVE_TOPOLOGY_TRIANGLELIST: return "D3D_PRIMITIVE_TOPOLOGY_TRIANGLELIST"; - case D3D_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP: return "D3D_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP"; - case D3D_PRIMITIVE_TOPOLOGY_TRIANGLEFAN: return "D3D_PRIMITIVE_TOPOLOGY_TRIANGLEFAN"; - case D3D_PRIMITIVE_TOPOLOGY_LINELIST_ADJ: return "D3D_PRIMITIVE_TOPOLOGY_LINELIST_ADJ"; - case D3D_PRIMITIVE_TOPOLOGY_LINESTRIP_ADJ: return "D3D_PRIMITIVE_TOPOLOGY_LINESTRIP_ADJ"; - case D3D_PRIMITIVE_TOPOLOGY_TRIANGLELIST_ADJ: return "D3D_PRIMITIVE_TOPOLOGY_TRIANGLELIST_ADJ"; - case D3D_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP_ADJ: return "D3D_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP_ADJ"; - case D3D_PRIMITIVE_TOPOLOGY_1_CONTROL_POINT_PATCHLIST: return "D3D_PRIMITIVE_TOPOLOGY_1_CONTROL_POINT_PATCHLIST"; - case D3D_PRIMITIVE_TOPOLOGY_2_CONTROL_POINT_PATCHLIST: return "D3D_PRIMITIVE_TOPOLOGY_2_CONTROL_POINT_PATCHLIST"; - case D3D_PRIMITIVE_TOPOLOGY_3_CONTROL_POINT_PATCHLIST: return "D3D_PRIMITIVE_TOPOLOGY_3_CONTROL_POINT_PATCHLIST"; - case D3D_PRIMITIVE_TOPOLOGY_4_CONTROL_POINT_PATCHLIST: return "D3D_PRIMITIVE_TOPOLOGY_4_CONTROL_POINT_PATCHLIST"; - case D3D_PRIMITIVE_TOPOLOGY_5_CONTROL_POINT_PATCHLIST: return "D3D_PRIMITIVE_TOPOLOGY_5_CONTROL_POINT_PATCHLIST"; - case D3D_PRIMITIVE_TOPOLOGY_6_CONTROL_POINT_PATCHLIST: return "D3D_PRIMITIVE_TOPOLOGY_6_CONTROL_POINT_PATCHLIST"; - case D3D_PRIMITIVE_TOPOLOGY_7_CONTROL_POINT_PATCHLIST: return "D3D_PRIMITIVE_TOPOLOGY_7_CONTROL_POINT_PATCHLIST"; - case D3D_PRIMITIVE_TOPOLOGY_8_CONTROL_POINT_PATCHLIST: return "D3D_PRIMITIVE_TOPOLOGY_8_CONTROL_POINT_PATCHLIST"; - case D3D_PRIMITIVE_TOPOLOGY_9_CONTROL_POINT_PATCHLIST: return "D3D_PRIMITIVE_TOPOLOGY_9_CONTROL_POINT_PATCHLIST"; - case D3D_PRIMITIVE_TOPOLOGY_10_CONTROL_POINT_PATCHLIST: return "D3D_PRIMITIVE_TOPOLOGY_10_CONTROL_POINT_PATCHLIST"; - case D3D_PRIMITIVE_TOPOLOGY_11_CONTROL_POINT_PATCHLIST: return "D3D_PRIMITIVE_TOPOLOGY_11_CONTROL_POINT_PATCHLIST"; - case D3D_PRIMITIVE_TOPOLOGY_12_CONTROL_POINT_PATCHLIST: return "D3D_PRIMITIVE_TOPOLOGY_12_CONTROL_POINT_PATCHLIST"; - case D3D_PRIMITIVE_TOPOLOGY_13_CONTROL_POINT_PATCHLIST: return "D3D_PRIMITIVE_TOPOLOGY_13_CONTROL_POINT_PATCHLIST"; - case D3D_PRIMITIVE_TOPOLOGY_14_CONTROL_POINT_PATCHLIST: return "D3D_PRIMITIVE_TOPOLOGY_14_CONTROL_POINT_PATCHLIST"; - case D3D_PRIMITIVE_TOPOLOGY_15_CONTROL_POINT_PATCHLIST: return "D3D_PRIMITIVE_TOPOLOGY_15_CONTROL_POINT_PATCHLIST"; - case D3D_PRIMITIVE_TOPOLOGY_16_CONTROL_POINT_PATCHLIST: return "D3D_PRIMITIVE_TOPOLOGY_16_CONTROL_POINT_PATCHLIST"; - case D3D_PRIMITIVE_TOPOLOGY_17_CONTROL_POINT_PATCHLIST: return "D3D_PRIMITIVE_TOPOLOGY_17_CONTROL_POINT_PATCHLIST"; - case D3D_PRIMITIVE_TOPOLOGY_18_CONTROL_POINT_PATCHLIST: return "D3D_PRIMITIVE_TOPOLOGY_18_CONTROL_POINT_PATCHLIST"; - case D3D_PRIMITIVE_TOPOLOGY_19_CONTROL_POINT_PATCHLIST: return "D3D_PRIMITIVE_TOPOLOGY_19_CONTROL_POINT_PATCHLIST"; - case D3D_PRIMITIVE_TOPOLOGY_20_CONTROL_POINT_PATCHLIST: return "D3D_PRIMITIVE_TOPOLOGY_20_CONTROL_POINT_PATCHLIST"; - case D3D_PRIMITIVE_TOPOLOGY_21_CONTROL_POINT_PATCHLIST: return "D3D_PRIMITIVE_TOPOLOGY_21_CONTROL_POINT_PATCHLIST"; - case D3D_PRIMITIVE_TOPOLOGY_22_CONTROL_POINT_PATCHLIST: return "D3D_PRIMITIVE_TOPOLOGY_22_CONTROL_POINT_PATCHLIST"; - case D3D_PRIMITIVE_TOPOLOGY_23_CONTROL_POINT_PATCHLIST: return "D3D_PRIMITIVE_TOPOLOGY_23_CONTROL_POINT_PATCHLIST"; - case D3D_PRIMITIVE_TOPOLOGY_24_CONTROL_POINT_PATCHLIST: return "D3D_PRIMITIVE_TOPOLOGY_24_CONTROL_POINT_PATCHLIST"; - case D3D_PRIMITIVE_TOPOLOGY_25_CONTROL_POINT_PATCHLIST: return "D3D_PRIMITIVE_TOPOLOGY_25_CONTROL_POINT_PATCHLIST"; - case D3D_PRIMITIVE_TOPOLOGY_26_CONTROL_POINT_PATCHLIST: return "D3D_PRIMITIVE_TOPOLOGY_26_CONTROL_POINT_PATCHLIST"; - case D3D_PRIMITIVE_TOPOLOGY_27_CONTROL_POINT_PATCHLIST: return "D3D_PRIMITIVE_TOPOLOGY_27_CONTROL_POINT_PATCHLIST"; - case D3D_PRIMITIVE_TOPOLOGY_28_CONTROL_POINT_PATCHLIST: return "D3D_PRIMITIVE_TOPOLOGY_28_CONTROL_POINT_PATCHLIST"; - case D3D_PRIMITIVE_TOPOLOGY_29_CONTROL_POINT_PATCHLIST: return "D3D_PRIMITIVE_TOPOLOGY_29_CONTROL_POINT_PATCHLIST"; - case D3D_PRIMITIVE_TOPOLOGY_30_CONTROL_POINT_PATCHLIST: return "D3D_PRIMITIVE_TOPOLOGY_30_CONTROL_POINT_PATCHLIST"; - case D3D_PRIMITIVE_TOPOLOGY_31_CONTROL_POINT_PATCHLIST: return "D3D_PRIMITIVE_TOPOLOGY_31_CONTROL_POINT_PATCHLIST"; - case D3D_PRIMITIVE_TOPOLOGY_32_CONTROL_POINT_PATCHLIST: return "D3D_PRIMITIVE_TOPOLOGY_32_CONTROL_POINT_PATCHLIST"; - default: break; - } - return "Unhandled D3D_PRIMITIVE_TOPOLOGY"; -} - -std::string ToString(const D3D_PRIMITIVE& value) -{ - switch (value) { - case D3D_PRIMITIVE_UNDEFINED: return "D3D_PRIMITIVE_UNDEFINED"; - case D3D_PRIMITIVE_POINT: return "D3D_PRIMITIVE_POINT"; - case D3D_PRIMITIVE_LINE: return "D3D_PRIMITIVE_LINE"; - case D3D_PRIMITIVE_TRIANGLE: return "D3D_PRIMITIVE_TRIANGLE"; - case D3D_PRIMITIVE_LINE_ADJ: return "D3D_PRIMITIVE_LINE_ADJ"; - case D3D_PRIMITIVE_TRIANGLE_ADJ: return "D3D_PRIMITIVE_TRIANGLE_ADJ"; - case D3D_PRIMITIVE_1_CONTROL_POINT_PATCH: return "D3D_PRIMITIVE_1_CONTROL_POINT_PATCH"; - case D3D_PRIMITIVE_2_CONTROL_POINT_PATCH: return "D3D_PRIMITIVE_2_CONTROL_POINT_PATCH"; - case D3D_PRIMITIVE_3_CONTROL_POINT_PATCH: return "D3D_PRIMITIVE_3_CONTROL_POINT_PATCH"; - case D3D_PRIMITIVE_4_CONTROL_POINT_PATCH: return "D3D_PRIMITIVE_4_CONTROL_POINT_PATCH"; - case D3D_PRIMITIVE_5_CONTROL_POINT_PATCH: return "D3D_PRIMITIVE_5_CONTROL_POINT_PATCH"; - case D3D_PRIMITIVE_6_CONTROL_POINT_PATCH: return "D3D_PRIMITIVE_6_CONTROL_POINT_PATCH"; - case D3D_PRIMITIVE_7_CONTROL_POINT_PATCH: return "D3D_PRIMITIVE_7_CONTROL_POINT_PATCH"; - case D3D_PRIMITIVE_8_CONTROL_POINT_PATCH: return "D3D_PRIMITIVE_8_CONTROL_POINT_PATCH"; - case D3D_PRIMITIVE_9_CONTROL_POINT_PATCH: return "D3D_PRIMITIVE_9_CONTROL_POINT_PATCH"; - case D3D_PRIMITIVE_10_CONTROL_POINT_PATCH: return "D3D_PRIMITIVE_10_CONTROL_POINT_PATCH"; - case D3D_PRIMITIVE_11_CONTROL_POINT_PATCH: return "D3D_PRIMITIVE_11_CONTROL_POINT_PATCH"; - case D3D_PRIMITIVE_12_CONTROL_POINT_PATCH: return "D3D_PRIMITIVE_12_CONTROL_POINT_PATCH"; - case D3D_PRIMITIVE_13_CONTROL_POINT_PATCH: return "D3D_PRIMITIVE_13_CONTROL_POINT_PATCH"; - case D3D_PRIMITIVE_14_CONTROL_POINT_PATCH: return "D3D_PRIMITIVE_14_CONTROL_POINT_PATCH"; - case D3D_PRIMITIVE_15_CONTROL_POINT_PATCH: return "D3D_PRIMITIVE_15_CONTROL_POINT_PATCH"; - case D3D_PRIMITIVE_16_CONTROL_POINT_PATCH: return "D3D_PRIMITIVE_16_CONTROL_POINT_PATCH"; - case D3D_PRIMITIVE_17_CONTROL_POINT_PATCH: return "D3D_PRIMITIVE_17_CONTROL_POINT_PATCH"; - case D3D_PRIMITIVE_18_CONTROL_POINT_PATCH: return "D3D_PRIMITIVE_18_CONTROL_POINT_PATCH"; - case D3D_PRIMITIVE_19_CONTROL_POINT_PATCH: return "D3D_PRIMITIVE_19_CONTROL_POINT_PATCH"; - case D3D_PRIMITIVE_20_CONTROL_POINT_PATCH: return "D3D_PRIMITIVE_20_CONTROL_POINT_PATCH"; - case D3D_PRIMITIVE_21_CONTROL_POINT_PATCH: return "D3D_PRIMITIVE_21_CONTROL_POINT_PATCH"; - case D3D_PRIMITIVE_22_CONTROL_POINT_PATCH: return "D3D_PRIMITIVE_22_CONTROL_POINT_PATCH"; - case D3D_PRIMITIVE_23_CONTROL_POINT_PATCH: return "D3D_PRIMITIVE_23_CONTROL_POINT_PATCH"; - case D3D_PRIMITIVE_24_CONTROL_POINT_PATCH: return "D3D_PRIMITIVE_24_CONTROL_POINT_PATCH"; - case D3D_PRIMITIVE_25_CONTROL_POINT_PATCH: return "D3D_PRIMITIVE_25_CONTROL_POINT_PATCH"; - case D3D_PRIMITIVE_26_CONTROL_POINT_PATCH: return "D3D_PRIMITIVE_26_CONTROL_POINT_PATCH"; - case D3D_PRIMITIVE_27_CONTROL_POINT_PATCH: return "D3D_PRIMITIVE_27_CONTROL_POINT_PATCH"; - case D3D_PRIMITIVE_28_CONTROL_POINT_PATCH: return "D3D_PRIMITIVE_28_CONTROL_POINT_PATCH"; - case D3D_PRIMITIVE_29_CONTROL_POINT_PATCH: return "D3D_PRIMITIVE_29_CONTROL_POINT_PATCH"; - case D3D_PRIMITIVE_30_CONTROL_POINT_PATCH: return "D3D_PRIMITIVE_30_CONTROL_POINT_PATCH"; - case D3D_PRIMITIVE_31_CONTROL_POINT_PATCH: return "D3D_PRIMITIVE_31_CONTROL_POINT_PATCH"; - case D3D_PRIMITIVE_32_CONTROL_POINT_PATCH: return "D3D_PRIMITIVE_32_CONTROL_POINT_PATCH"; - default: break; - } - return "Unhandled D3D_PRIMITIVE"; -} - -std::string ToString(const D3D_SRV_DIMENSION& value) -{ - switch (value) { - case D3D_SRV_DIMENSION_UNKNOWN: return "D3D_SRV_DIMENSION_UNKNOWN"; - case D3D_SRV_DIMENSION_BUFFER: return "D3D_SRV_DIMENSION_BUFFER"; - case D3D_SRV_DIMENSION_TEXTURE1D: return "D3D_SRV_DIMENSION_TEXTURE1D"; - case D3D_SRV_DIMENSION_TEXTURE1DARRAY: return "D3D_SRV_DIMENSION_TEXTURE1DARRAY"; - case D3D_SRV_DIMENSION_TEXTURE2D: return "D3D_SRV_DIMENSION_TEXTURE2D"; - case D3D_SRV_DIMENSION_TEXTURE2DARRAY: return "D3D_SRV_DIMENSION_TEXTURE2DARRAY"; - case D3D_SRV_DIMENSION_TEXTURE2DMS: return "D3D_SRV_DIMENSION_TEXTURE2DMS"; - case D3D_SRV_DIMENSION_TEXTURE2DMSARRAY: return "D3D_SRV_DIMENSION_TEXTURE2DMSARRAY"; - case D3D_SRV_DIMENSION_TEXTURE3D: return "D3D_SRV_DIMENSION_TEXTURE3D"; - case D3D_SRV_DIMENSION_TEXTURECUBE: return "D3D_SRV_DIMENSION_TEXTURECUBE"; - case D3D_SRV_DIMENSION_TEXTURECUBEARRAY: return "D3D_SRV_DIMENSION_TEXTURECUBEARRAY"; - case D3D_SRV_DIMENSION_BUFFEREX: return "D3D_SRV_DIMENSION_BUFFEREX"; - default: break; - } - return "Unhandled D3D_SRV_DIMENSION"; -} - -std::string ToString(const D3D_INCLUDE_TYPE& value) -{ - switch (value) { - case D3D_INCLUDE_LOCAL: return "D3D_INCLUDE_LOCAL"; - case D3D_INCLUDE_SYSTEM: return "D3D_INCLUDE_SYSTEM"; - case D3D_INCLUDE_FORCE_DWORD: return "D3D_INCLUDE_FORCE_DWORD"; - default: break; - } - return "Unhandled D3D_INCLUDE_TYPE"; -} - -std::string ToString(const D3D_SHADER_VARIABLE_CLASS& value) -{ - switch (value) { - case D3D_SVC_SCALAR: return "D3D_SVC_SCALAR"; - case D3D_SVC_VECTOR: return "D3D_SVC_VECTOR"; - case D3D_SVC_MATRIX_ROWS: return "D3D_SVC_MATRIX_ROWS"; - case D3D_SVC_MATRIX_COLUMNS: return "D3D_SVC_MATRIX_COLUMNS"; - case D3D_SVC_OBJECT: return "D3D_SVC_OBJECT"; - case D3D_SVC_STRUCT: return "D3D_SVC_STRUCT"; - case D3D_SVC_INTERFACE_CLASS: return "D3D_SVC_INTERFACE_CLASS"; - case D3D_SVC_INTERFACE_POINTER: return "D3D_SVC_INTERFACE_POINTER"; - case D3D_SVC_FORCE_DWORD: return "D3D_SVC_FORCE_DWORD"; - default: break; + return ret; +} + +std::string ToString(const D3D_DRIVER_TYPE value) +{ + const char* ret = "Unhandled D3D_DRIVER_TYPE"; + switch (value) { + case D3D_DRIVER_TYPE_UNKNOWN: ret = "D3D_DRIVER_TYPE_UNKNOWN"; break; + case D3D_DRIVER_TYPE_HARDWARE: ret = "D3D_DRIVER_TYPE_HARDWARE"; break; + case D3D_DRIVER_TYPE_REFERENCE: ret = "D3D_DRIVER_TYPE_REFERENCE"; break; + case D3D_DRIVER_TYPE_NULL: ret = "D3D_DRIVER_TYPE_NULL"; break; + case D3D_DRIVER_TYPE_SOFTWARE: ret = "D3D_DRIVER_TYPE_SOFTWARE"; break; + case D3D_DRIVER_TYPE_WARP: ret = "D3D_DRIVER_TYPE_WARP"; break; + } + return ret; +} + +std::string ToString(const D3D_FEATURE_LEVEL value) +{ + const char* ret = "Unhandled D3D_FEATURE_LEVEL"; + switch (value) { + case D3D_FEATURE_LEVEL_1_0_CORE: ret = "D3D_FEATURE_LEVEL_1_0_CORE"; break; + case D3D_FEATURE_LEVEL_9_1: ret = "D3D_FEATURE_LEVEL_9_1"; break; + case D3D_FEATURE_LEVEL_9_2: ret = "D3D_FEATURE_LEVEL_9_2"; break; + case D3D_FEATURE_LEVEL_9_3: ret = "D3D_FEATURE_LEVEL_9_3"; break; + case D3D_FEATURE_LEVEL_10_0: ret = "D3D_FEATURE_LEVEL_10_0"; break; + case D3D_FEATURE_LEVEL_10_1: ret = "D3D_FEATURE_LEVEL_10_1"; break; + case D3D_FEATURE_LEVEL_11_0: ret = "D3D_FEATURE_LEVEL_11_0"; break; + case D3D_FEATURE_LEVEL_11_1: ret = "D3D_FEATURE_LEVEL_11_1"; break; + case D3D_FEATURE_LEVEL_12_0: ret = "D3D_FEATURE_LEVEL_12_0"; break; + case D3D_FEATURE_LEVEL_12_1: ret = "D3D_FEATURE_LEVEL_12_1"; break; + case D3D_FEATURE_LEVEL_12_2: ret = "D3D_FEATURE_LEVEL_12_2"; break; + } + return ret; +} + +std::string ToString(const D3D_PRIMITIVE_TOPOLOGY value) +{ + const char* ret = "Unhandled D3D_PRIMITIVE_TOPOLOGY"; + switch (value) { + case D3D_PRIMITIVE_TOPOLOGY_UNDEFINED: ret = "D3D_PRIMITIVE_TOPOLOGY_UNDEFINED"; break; + case D3D_PRIMITIVE_TOPOLOGY_POINTLIST: ret = "D3D_PRIMITIVE_TOPOLOGY_POINTLIST"; break; + case D3D_PRIMITIVE_TOPOLOGY_LINELIST: ret = "D3D_PRIMITIVE_TOPOLOGY_LINELIST"; break; + case D3D_PRIMITIVE_TOPOLOGY_LINESTRIP: ret = "D3D_PRIMITIVE_TOPOLOGY_LINESTRIP"; break; + case D3D_PRIMITIVE_TOPOLOGY_TRIANGLELIST: ret = "D3D_PRIMITIVE_TOPOLOGY_TRIANGLELIST"; break; + case D3D_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP: ret = "D3D_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP"; break; + case D3D_PRIMITIVE_TOPOLOGY_TRIANGLEFAN: ret = "D3D_PRIMITIVE_TOPOLOGY_TRIANGLEFAN"; break; + case D3D_PRIMITIVE_TOPOLOGY_LINELIST_ADJ: ret = "D3D_PRIMITIVE_TOPOLOGY_LINELIST_ADJ"; break; + case D3D_PRIMITIVE_TOPOLOGY_LINESTRIP_ADJ: ret = "D3D_PRIMITIVE_TOPOLOGY_LINESTRIP_ADJ"; break; + case D3D_PRIMITIVE_TOPOLOGY_TRIANGLELIST_ADJ: ret = "D3D_PRIMITIVE_TOPOLOGY_TRIANGLELIST_ADJ"; break; + case D3D_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP_ADJ: ret = "D3D_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP_ADJ"; break; + case D3D_PRIMITIVE_TOPOLOGY_1_CONTROL_POINT_PATCHLIST: ret = "D3D_PRIMITIVE_TOPOLOGY_1_CONTROL_POINT_PATCHLIST"; break; + case D3D_PRIMITIVE_TOPOLOGY_2_CONTROL_POINT_PATCHLIST: ret = "D3D_PRIMITIVE_TOPOLOGY_2_CONTROL_POINT_PATCHLIST"; break; + case D3D_PRIMITIVE_TOPOLOGY_3_CONTROL_POINT_PATCHLIST: ret = "D3D_PRIMITIVE_TOPOLOGY_3_CONTROL_POINT_PATCHLIST"; break; + case D3D_PRIMITIVE_TOPOLOGY_4_CONTROL_POINT_PATCHLIST: ret = "D3D_PRIMITIVE_TOPOLOGY_4_CONTROL_POINT_PATCHLIST"; break; + case D3D_PRIMITIVE_TOPOLOGY_5_CONTROL_POINT_PATCHLIST: ret = "D3D_PRIMITIVE_TOPOLOGY_5_CONTROL_POINT_PATCHLIST"; break; + case D3D_PRIMITIVE_TOPOLOGY_6_CONTROL_POINT_PATCHLIST: ret = "D3D_PRIMITIVE_TOPOLOGY_6_CONTROL_POINT_PATCHLIST"; break; + case D3D_PRIMITIVE_TOPOLOGY_7_CONTROL_POINT_PATCHLIST: ret = "D3D_PRIMITIVE_TOPOLOGY_7_CONTROL_POINT_PATCHLIST"; break; + case D3D_PRIMITIVE_TOPOLOGY_8_CONTROL_POINT_PATCHLIST: ret = "D3D_PRIMITIVE_TOPOLOGY_8_CONTROL_POINT_PATCHLIST"; break; + case D3D_PRIMITIVE_TOPOLOGY_9_CONTROL_POINT_PATCHLIST: ret = "D3D_PRIMITIVE_TOPOLOGY_9_CONTROL_POINT_PATCHLIST"; break; + case D3D_PRIMITIVE_TOPOLOGY_10_CONTROL_POINT_PATCHLIST: ret = "D3D_PRIMITIVE_TOPOLOGY_10_CONTROL_POINT_PATCHLIST"; break; + case D3D_PRIMITIVE_TOPOLOGY_11_CONTROL_POINT_PATCHLIST: ret = "D3D_PRIMITIVE_TOPOLOGY_11_CONTROL_POINT_PATCHLIST"; break; + case D3D_PRIMITIVE_TOPOLOGY_12_CONTROL_POINT_PATCHLIST: ret = "D3D_PRIMITIVE_TOPOLOGY_12_CONTROL_POINT_PATCHLIST"; break; + case D3D_PRIMITIVE_TOPOLOGY_13_CONTROL_POINT_PATCHLIST: ret = "D3D_PRIMITIVE_TOPOLOGY_13_CONTROL_POINT_PATCHLIST"; break; + case D3D_PRIMITIVE_TOPOLOGY_14_CONTROL_POINT_PATCHLIST: ret = "D3D_PRIMITIVE_TOPOLOGY_14_CONTROL_POINT_PATCHLIST"; break; + case D3D_PRIMITIVE_TOPOLOGY_15_CONTROL_POINT_PATCHLIST: ret = "D3D_PRIMITIVE_TOPOLOGY_15_CONTROL_POINT_PATCHLIST"; break; + case D3D_PRIMITIVE_TOPOLOGY_16_CONTROL_POINT_PATCHLIST: ret = "D3D_PRIMITIVE_TOPOLOGY_16_CONTROL_POINT_PATCHLIST"; break; + case D3D_PRIMITIVE_TOPOLOGY_17_CONTROL_POINT_PATCHLIST: ret = "D3D_PRIMITIVE_TOPOLOGY_17_CONTROL_POINT_PATCHLIST"; break; + case D3D_PRIMITIVE_TOPOLOGY_18_CONTROL_POINT_PATCHLIST: ret = "D3D_PRIMITIVE_TOPOLOGY_18_CONTROL_POINT_PATCHLIST"; break; + case D3D_PRIMITIVE_TOPOLOGY_19_CONTROL_POINT_PATCHLIST: ret = "D3D_PRIMITIVE_TOPOLOGY_19_CONTROL_POINT_PATCHLIST"; break; + case D3D_PRIMITIVE_TOPOLOGY_20_CONTROL_POINT_PATCHLIST: ret = "D3D_PRIMITIVE_TOPOLOGY_20_CONTROL_POINT_PATCHLIST"; break; + case D3D_PRIMITIVE_TOPOLOGY_21_CONTROL_POINT_PATCHLIST: ret = "D3D_PRIMITIVE_TOPOLOGY_21_CONTROL_POINT_PATCHLIST"; break; + case D3D_PRIMITIVE_TOPOLOGY_22_CONTROL_POINT_PATCHLIST: ret = "D3D_PRIMITIVE_TOPOLOGY_22_CONTROL_POINT_PATCHLIST"; break; + case D3D_PRIMITIVE_TOPOLOGY_23_CONTROL_POINT_PATCHLIST: ret = "D3D_PRIMITIVE_TOPOLOGY_23_CONTROL_POINT_PATCHLIST"; break; + case D3D_PRIMITIVE_TOPOLOGY_24_CONTROL_POINT_PATCHLIST: ret = "D3D_PRIMITIVE_TOPOLOGY_24_CONTROL_POINT_PATCHLIST"; break; + case D3D_PRIMITIVE_TOPOLOGY_25_CONTROL_POINT_PATCHLIST: ret = "D3D_PRIMITIVE_TOPOLOGY_25_CONTROL_POINT_PATCHLIST"; break; + case D3D_PRIMITIVE_TOPOLOGY_26_CONTROL_POINT_PATCHLIST: ret = "D3D_PRIMITIVE_TOPOLOGY_26_CONTROL_POINT_PATCHLIST"; break; + case D3D_PRIMITIVE_TOPOLOGY_27_CONTROL_POINT_PATCHLIST: ret = "D3D_PRIMITIVE_TOPOLOGY_27_CONTROL_POINT_PATCHLIST"; break; + case D3D_PRIMITIVE_TOPOLOGY_28_CONTROL_POINT_PATCHLIST: ret = "D3D_PRIMITIVE_TOPOLOGY_28_CONTROL_POINT_PATCHLIST"; break; + case D3D_PRIMITIVE_TOPOLOGY_29_CONTROL_POINT_PATCHLIST: ret = "D3D_PRIMITIVE_TOPOLOGY_29_CONTROL_POINT_PATCHLIST"; break; + case D3D_PRIMITIVE_TOPOLOGY_30_CONTROL_POINT_PATCHLIST: ret = "D3D_PRIMITIVE_TOPOLOGY_30_CONTROL_POINT_PATCHLIST"; break; + case D3D_PRIMITIVE_TOPOLOGY_31_CONTROL_POINT_PATCHLIST: ret = "D3D_PRIMITIVE_TOPOLOGY_31_CONTROL_POINT_PATCHLIST"; break; + case D3D_PRIMITIVE_TOPOLOGY_32_CONTROL_POINT_PATCHLIST: ret = "D3D_PRIMITIVE_TOPOLOGY_32_CONTROL_POINT_PATCHLIST"; break; + } + return ret; +} + +std::string ToString(const D3D_PRIMITIVE value) +{ + const char* ret = "Unhandled D3D_PRIMITIVE"; + switch (value) { + case D3D_PRIMITIVE_UNDEFINED: ret = "D3D_PRIMITIVE_UNDEFINED"; break; + case D3D_PRIMITIVE_POINT: ret = "D3D_PRIMITIVE_POINT"; break; + case D3D_PRIMITIVE_LINE: ret = "D3D_PRIMITIVE_LINE"; break; + case D3D_PRIMITIVE_TRIANGLE: ret = "D3D_PRIMITIVE_TRIANGLE"; break; + case D3D_PRIMITIVE_LINE_ADJ: ret = "D3D_PRIMITIVE_LINE_ADJ"; break; + case D3D_PRIMITIVE_TRIANGLE_ADJ: ret = "D3D_PRIMITIVE_TRIANGLE_ADJ"; break; + case D3D_PRIMITIVE_1_CONTROL_POINT_PATCH: ret = "D3D_PRIMITIVE_1_CONTROL_POINT_PATCH"; break; + case D3D_PRIMITIVE_2_CONTROL_POINT_PATCH: ret = "D3D_PRIMITIVE_2_CONTROL_POINT_PATCH"; break; + case D3D_PRIMITIVE_3_CONTROL_POINT_PATCH: ret = "D3D_PRIMITIVE_3_CONTROL_POINT_PATCH"; break; + case D3D_PRIMITIVE_4_CONTROL_POINT_PATCH: ret = "D3D_PRIMITIVE_4_CONTROL_POINT_PATCH"; break; + case D3D_PRIMITIVE_5_CONTROL_POINT_PATCH: ret = "D3D_PRIMITIVE_5_CONTROL_POINT_PATCH"; break; + case D3D_PRIMITIVE_6_CONTROL_POINT_PATCH: ret = "D3D_PRIMITIVE_6_CONTROL_POINT_PATCH"; break; + case D3D_PRIMITIVE_7_CONTROL_POINT_PATCH: ret = "D3D_PRIMITIVE_7_CONTROL_POINT_PATCH"; break; + case D3D_PRIMITIVE_8_CONTROL_POINT_PATCH: ret = "D3D_PRIMITIVE_8_CONTROL_POINT_PATCH"; break; + case D3D_PRIMITIVE_9_CONTROL_POINT_PATCH: ret = "D3D_PRIMITIVE_9_CONTROL_POINT_PATCH"; break; + case D3D_PRIMITIVE_10_CONTROL_POINT_PATCH: ret = "D3D_PRIMITIVE_10_CONTROL_POINT_PATCH"; break; + case D3D_PRIMITIVE_11_CONTROL_POINT_PATCH: ret = "D3D_PRIMITIVE_11_CONTROL_POINT_PATCH"; break; + case D3D_PRIMITIVE_12_CONTROL_POINT_PATCH: ret = "D3D_PRIMITIVE_12_CONTROL_POINT_PATCH"; break; + case D3D_PRIMITIVE_13_CONTROL_POINT_PATCH: ret = "D3D_PRIMITIVE_13_CONTROL_POINT_PATCH"; break; + case D3D_PRIMITIVE_14_CONTROL_POINT_PATCH: ret = "D3D_PRIMITIVE_14_CONTROL_POINT_PATCH"; break; + case D3D_PRIMITIVE_15_CONTROL_POINT_PATCH: ret = "D3D_PRIMITIVE_15_CONTROL_POINT_PATCH"; break; + case D3D_PRIMITIVE_16_CONTROL_POINT_PATCH: ret = "D3D_PRIMITIVE_16_CONTROL_POINT_PATCH"; break; + case D3D_PRIMITIVE_17_CONTROL_POINT_PATCH: ret = "D3D_PRIMITIVE_17_CONTROL_POINT_PATCH"; break; + case D3D_PRIMITIVE_18_CONTROL_POINT_PATCH: ret = "D3D_PRIMITIVE_18_CONTROL_POINT_PATCH"; break; + case D3D_PRIMITIVE_19_CONTROL_POINT_PATCH: ret = "D3D_PRIMITIVE_19_CONTROL_POINT_PATCH"; break; + case D3D_PRIMITIVE_20_CONTROL_POINT_PATCH: ret = "D3D_PRIMITIVE_20_CONTROL_POINT_PATCH"; break; + case D3D_PRIMITIVE_21_CONTROL_POINT_PATCH: ret = "D3D_PRIMITIVE_21_CONTROL_POINT_PATCH"; break; + case D3D_PRIMITIVE_22_CONTROL_POINT_PATCH: ret = "D3D_PRIMITIVE_22_CONTROL_POINT_PATCH"; break; + case D3D_PRIMITIVE_23_CONTROL_POINT_PATCH: ret = "D3D_PRIMITIVE_23_CONTROL_POINT_PATCH"; break; + case D3D_PRIMITIVE_24_CONTROL_POINT_PATCH: ret = "D3D_PRIMITIVE_24_CONTROL_POINT_PATCH"; break; + case D3D_PRIMITIVE_25_CONTROL_POINT_PATCH: ret = "D3D_PRIMITIVE_25_CONTROL_POINT_PATCH"; break; + case D3D_PRIMITIVE_26_CONTROL_POINT_PATCH: ret = "D3D_PRIMITIVE_26_CONTROL_POINT_PATCH"; break; + case D3D_PRIMITIVE_27_CONTROL_POINT_PATCH: ret = "D3D_PRIMITIVE_27_CONTROL_POINT_PATCH"; break; + case D3D_PRIMITIVE_28_CONTROL_POINT_PATCH: ret = "D3D_PRIMITIVE_28_CONTROL_POINT_PATCH"; break; + case D3D_PRIMITIVE_29_CONTROL_POINT_PATCH: ret = "D3D_PRIMITIVE_29_CONTROL_POINT_PATCH"; break; + case D3D_PRIMITIVE_30_CONTROL_POINT_PATCH: ret = "D3D_PRIMITIVE_30_CONTROL_POINT_PATCH"; break; + case D3D_PRIMITIVE_31_CONTROL_POINT_PATCH: ret = "D3D_PRIMITIVE_31_CONTROL_POINT_PATCH"; break; + case D3D_PRIMITIVE_32_CONTROL_POINT_PATCH: ret = "D3D_PRIMITIVE_32_CONTROL_POINT_PATCH"; break; + } + return ret; +} + +std::string ToString(const D3D_SRV_DIMENSION value) +{ + const char* ret = "Unhandled D3D_SRV_DIMENSION"; + switch (value) { + case D3D_SRV_DIMENSION_UNKNOWN: ret = "D3D_SRV_DIMENSION_UNKNOWN"; break; + case D3D_SRV_DIMENSION_BUFFER: ret = "D3D_SRV_DIMENSION_BUFFER"; break; + case D3D_SRV_DIMENSION_TEXTURE1D: ret = "D3D_SRV_DIMENSION_TEXTURE1D"; break; + case D3D_SRV_DIMENSION_TEXTURE1DARRAY: ret = "D3D_SRV_DIMENSION_TEXTURE1DARRAY"; break; + case D3D_SRV_DIMENSION_TEXTURE2D: ret = "D3D_SRV_DIMENSION_TEXTURE2D"; break; + case D3D_SRV_DIMENSION_TEXTURE2DARRAY: ret = "D3D_SRV_DIMENSION_TEXTURE2DARRAY"; break; + case D3D_SRV_DIMENSION_TEXTURE2DMS: ret = "D3D_SRV_DIMENSION_TEXTURE2DMS"; break; + case D3D_SRV_DIMENSION_TEXTURE2DMSARRAY: ret = "D3D_SRV_DIMENSION_TEXTURE2DMSARRAY"; break; + case D3D_SRV_DIMENSION_TEXTURE3D: ret = "D3D_SRV_DIMENSION_TEXTURE3D"; break; + case D3D_SRV_DIMENSION_TEXTURECUBE: ret = "D3D_SRV_DIMENSION_TEXTURECUBE"; break; + case D3D_SRV_DIMENSION_TEXTURECUBEARRAY: ret = "D3D_SRV_DIMENSION_TEXTURECUBEARRAY"; break; + case D3D_SRV_DIMENSION_BUFFEREX: ret = "D3D_SRV_DIMENSION_BUFFEREX"; break; + } + return ret; +} + +std::string ToString(const D3D_INCLUDE_TYPE value) +{ + const char* ret = "Unhandled D3D_INCLUDE_TYPE"; + switch (value) { + case D3D_INCLUDE_LOCAL: ret = "D3D_INCLUDE_LOCAL"; break; + case D3D_INCLUDE_SYSTEM: ret = "D3D_INCLUDE_SYSTEM"; break; + case D3D_INCLUDE_FORCE_DWORD: ret = "D3D_INCLUDE_FORCE_DWORD"; break; + } + return ret; +} + +std::string ToString(const D3D_SHADER_VARIABLE_CLASS value) +{ + const char* ret = "Unhandled D3D_SHADER_VARIABLE_CLASS"; + switch (value) { + case D3D_SVC_SCALAR: ret = "D3D_SVC_SCALAR"; break; + case D3D_SVC_VECTOR: ret = "D3D_SVC_VECTOR"; break; + case D3D_SVC_MATRIX_ROWS: ret = "D3D_SVC_MATRIX_ROWS"; break; + case D3D_SVC_MATRIX_COLUMNS: ret = "D3D_SVC_MATRIX_COLUMNS"; break; + case D3D_SVC_OBJECT: ret = "D3D_SVC_OBJECT"; break; + case D3D_SVC_STRUCT: ret = "D3D_SVC_STRUCT"; break; + case D3D_SVC_INTERFACE_CLASS: ret = "D3D_SVC_INTERFACE_CLASS"; break; + case D3D_SVC_INTERFACE_POINTER: ret = "D3D_SVC_INTERFACE_POINTER"; break; + case D3D_SVC_FORCE_DWORD: ret = "D3D_SVC_FORCE_DWORD"; break; } - return "Unhandled D3D_SHADER_VARIABLE_CLASS"; + return ret; } -std::string ToString(const D3D_SHADER_VARIABLE_FLAGS& value) +std::string ToString(const D3D_SHADER_VARIABLE_FLAGS value) { + const char* ret = "Unhandled D3D_SHADER_VARIABLE_FLAGS"; switch (value) { - case D3D_SVF_USERPACKED: return "D3D_SVF_USERPACKED"; - case D3D_SVF_USED: return "D3D_SVF_USED"; - case D3D_SVF_INTERFACE_POINTER: return "D3D_SVF_INTERFACE_POINTER"; - case D3D_SVF_INTERFACE_PARAMETER: return "D3D_SVF_INTERFACE_PARAMETER"; - case D3D_SVF_FORCE_DWORD: return "D3D_SVF_FORCE_DWORD"; - default: break; - } - return "Unhandled D3D_SHADER_VARIABLE_FLAGS"; -} - -std::string ToString_D3D_SHADER_VARIABLE_FLAGS(uint32_t flags) + case D3D_SVF_USERPACKED: ret = "D3D_SVF_USERPACKED"; break; + case D3D_SVF_USED: ret = "D3D_SVF_USED"; break; + case D3D_SVF_INTERFACE_POINTER: ret = "D3D_SVF_INTERFACE_POINTER"; break; + case D3D_SVF_INTERFACE_PARAMETER: ret = "D3D_SVF_INTERFACE_PARAMETER"; break; + case D3D_SVF_FORCE_DWORD: ret = "D3D_SVF_FORCE_DWORD"; break; + } + return ret; +} + +std::string ToString_D3D_SHADER_VARIABLE_FLAGS(const uint32_t flags) { return BitmaskToString(flags); } -std::string ToString(const D3D_SHADER_VARIABLE_TYPE& value) -{ - switch (value) { - case D3D_SVT_VOID: return "D3D_SVT_VOID"; - case D3D_SVT_BOOL: return "D3D_SVT_BOOL"; - case D3D_SVT_INT: return "D3D_SVT_INT"; - case D3D_SVT_FLOAT: return "D3D_SVT_FLOAT"; - case D3D_SVT_STRING: return "D3D_SVT_STRING"; - case D3D_SVT_TEXTURE: return "D3D_SVT_TEXTURE"; - case D3D_SVT_TEXTURE1D: return "D3D_SVT_TEXTURE1D"; - case D3D_SVT_TEXTURE2D: return "D3D_SVT_TEXTURE2D"; - case D3D_SVT_TEXTURE3D: return "D3D_SVT_TEXTURE3D"; - case D3D_SVT_TEXTURECUBE: return "D3D_SVT_TEXTURECUBE"; - case D3D_SVT_SAMPLER: return "D3D_SVT_SAMPLER"; - case D3D_SVT_SAMPLER1D: return "D3D_SVT_SAMPLER1D"; - case D3D_SVT_SAMPLER2D: return "D3D_SVT_SAMPLER2D"; - case D3D_SVT_SAMPLER3D: return "D3D_SVT_SAMPLER3D"; - case D3D_SVT_SAMPLERCUBE: return "D3D_SVT_SAMPLERCUBE"; - case D3D_SVT_PIXELSHADER: return "D3D_SVT_PIXELSHADER"; - case D3D_SVT_VERTEXSHADER: return "D3D_SVT_VERTEXSHADER"; - case D3D_SVT_PIXELFRAGMENT: return "D3D_SVT_PIXELFRAGMENT"; - case D3D_SVT_VERTEXFRAGMENT: return "D3D_SVT_VERTEXFRAGMENT"; - case D3D_SVT_UINT: return "D3D_SVT_UINT"; - case D3D_SVT_UINT8: return "D3D_SVT_UINT8"; - case D3D_SVT_GEOMETRYSHADER: return "D3D_SVT_GEOMETRYSHADER"; - case D3D_SVT_RASTERIZER: return "D3D_SVT_RASTERIZER"; - case D3D_SVT_DEPTHSTENCIL: return "D3D_SVT_DEPTHSTENCIL"; - case D3D_SVT_BLEND: return "D3D_SVT_BLEND"; - case D3D_SVT_BUFFER: return "D3D_SVT_BUFFER"; - case D3D_SVT_CBUFFER: return "D3D_SVT_CBUFFER"; - case D3D_SVT_TBUFFER: return "D3D_SVT_TBUFFER"; - case D3D_SVT_TEXTURE1DARRAY: return "D3D_SVT_TEXTURE1DARRAY"; - case D3D_SVT_TEXTURE2DARRAY: return "D3D_SVT_TEXTURE2DARRAY"; - case D3D_SVT_RENDERTARGETVIEW: return "D3D_SVT_RENDERTARGETVIEW"; - case D3D_SVT_DEPTHSTENCILVIEW: return "D3D_SVT_DEPTHSTENCILVIEW"; - case D3D_SVT_TEXTURE2DMS: return "D3D_SVT_TEXTURE2DMS"; - case D3D_SVT_TEXTURE2DMSARRAY: return "D3D_SVT_TEXTURE2DMSARRAY"; - case D3D_SVT_TEXTURECUBEARRAY: return "D3D_SVT_TEXTURECUBEARRAY"; - case D3D_SVT_HULLSHADER: return "D3D_SVT_HULLSHADER"; - case D3D_SVT_DOMAINSHADER: return "D3D_SVT_DOMAINSHADER"; - case D3D_SVT_INTERFACE_POINTER: return "D3D_SVT_INTERFACE_POINTER"; - case D3D_SVT_COMPUTESHADER: return "D3D_SVT_COMPUTESHADER"; - case D3D_SVT_DOUBLE: return "D3D_SVT_DOUBLE"; - case D3D_SVT_RWTEXTURE1D: return "D3D_SVT_RWTEXTURE1D"; - case D3D_SVT_RWTEXTURE1DARRAY: return "D3D_SVT_RWTEXTURE1DARRAY"; - case D3D_SVT_RWTEXTURE2D: return "D3D_SVT_RWTEXTURE2D"; - case D3D_SVT_RWTEXTURE2DARRAY: return "D3D_SVT_RWTEXTURE2DARRAY"; - case D3D_SVT_RWTEXTURE3D: return "D3D_SVT_RWTEXTURE3D"; - case D3D_SVT_RWBUFFER: return "D3D_SVT_RWBUFFER"; - case D3D_SVT_BYTEADDRESS_BUFFER: return "D3D_SVT_BYTEADDRESS_BUFFER"; - case D3D_SVT_RWBYTEADDRESS_BUFFER: return "D3D_SVT_RWBYTEADDRESS_BUFFER"; - case D3D_SVT_STRUCTURED_BUFFER: return "D3D_SVT_STRUCTURED_BUFFER"; - case D3D_SVT_RWSTRUCTURED_BUFFER: return "D3D_SVT_RWSTRUCTURED_BUFFER"; - case D3D_SVT_APPEND_STRUCTURED_BUFFER: return "D3D_SVT_APPEND_STRUCTURED_BUFFER"; - case D3D_SVT_CONSUME_STRUCTURED_BUFFER: return "D3D_SVT_CONSUME_STRUCTURED_BUFFER"; - case D3D_SVT_MIN8FLOAT: return "D3D_SVT_MIN8FLOAT"; - case D3D_SVT_MIN10FLOAT: return "D3D_SVT_MIN10FLOAT"; - case D3D_SVT_MIN16FLOAT: return "D3D_SVT_MIN16FLOAT"; - case D3D_SVT_MIN12INT: return "D3D_SVT_MIN12INT"; - case D3D_SVT_MIN16INT: return "D3D_SVT_MIN16INT"; - case D3D_SVT_MIN16UINT: return "D3D_SVT_MIN16UINT"; - case D3D_SVT_INT16: return "D3D_SVT_INT16"; - case D3D_SVT_UINT16: return "D3D_SVT_UINT16"; - case D3D_SVT_FLOAT16: return "D3D_SVT_FLOAT16"; - case D3D_SVT_INT64: return "D3D_SVT_INT64"; - case D3D_SVT_UINT64: return "D3D_SVT_UINT64"; - case D3D_SVT_FORCE_DWORD: return "D3D_SVT_FORCE_DWORD"; - default: break; - } - return "Unhandled D3D_SHADER_VARIABLE_TYPE"; -} - -std::string ToString(const D3D_SHADER_INPUT_FLAGS& value) -{ - switch (value) { - case D3D_SIF_USERPACKED: return "D3D_SIF_USERPACKED"; - case D3D_SIF_COMPARISON_SAMPLER: return "D3D_SIF_COMPARISON_SAMPLER"; - case D3D_SIF_TEXTURE_COMPONENT_0: return "D3D_SIF_TEXTURE_COMPONENT_0"; - case D3D_SIF_TEXTURE_COMPONENT_1: return "D3D_SIF_TEXTURE_COMPONENT_1"; - case D3D_SIF_TEXTURE_COMPONENTS: return "D3D_SIF_TEXTURE_COMPONENTS"; - case D3D_SIF_UNUSED: return "D3D_SIF_UNUSED"; - case D3D_SIF_FORCE_DWORD: return "D3D_SIF_FORCE_DWORD"; - default: break; - } - return "Unhandled D3D_SHADER_INPUT_FLAGS"; -} - -std::string ToString_D3D_SHADER_INPUT_FLAGS(uint32_t flags) +std::string ToString(const D3D_SHADER_VARIABLE_TYPE value) +{ + const char* ret = "Unhandled D3D_SHADER_VARIABLE_TYPE"; + switch (value) { + case D3D_SVT_VOID: ret = "D3D_SVT_VOID"; break; + case D3D_SVT_BOOL: ret = "D3D_SVT_BOOL"; break; + case D3D_SVT_INT: ret = "D3D_SVT_INT"; break; + case D3D_SVT_FLOAT: ret = "D3D_SVT_FLOAT"; break; + case D3D_SVT_STRING: ret = "D3D_SVT_STRING"; break; + case D3D_SVT_TEXTURE: ret = "D3D_SVT_TEXTURE"; break; + case D3D_SVT_TEXTURE1D: ret = "D3D_SVT_TEXTURE1D"; break; + case D3D_SVT_TEXTURE2D: ret = "D3D_SVT_TEXTURE2D"; break; + case D3D_SVT_TEXTURE3D: ret = "D3D_SVT_TEXTURE3D"; break; + case D3D_SVT_TEXTURECUBE: ret = "D3D_SVT_TEXTURECUBE"; break; + case D3D_SVT_SAMPLER: ret = "D3D_SVT_SAMPLER"; break; + case D3D_SVT_SAMPLER1D: ret = "D3D_SVT_SAMPLER1D"; break; + case D3D_SVT_SAMPLER2D: ret = "D3D_SVT_SAMPLER2D"; break; + case D3D_SVT_SAMPLER3D: ret = "D3D_SVT_SAMPLER3D"; break; + case D3D_SVT_SAMPLERCUBE: ret = "D3D_SVT_SAMPLERCUBE"; break; + case D3D_SVT_PIXELSHADER: ret = "D3D_SVT_PIXELSHADER"; break; + case D3D_SVT_VERTEXSHADER: ret = "D3D_SVT_VERTEXSHADER"; break; + case D3D_SVT_PIXELFRAGMENT: ret = "D3D_SVT_PIXELFRAGMENT"; break; + case D3D_SVT_VERTEXFRAGMENT: ret = "D3D_SVT_VERTEXFRAGMENT"; break; + case D3D_SVT_UINT: ret = "D3D_SVT_UINT"; break; + case D3D_SVT_UINT8: ret = "D3D_SVT_UINT8"; break; + case D3D_SVT_GEOMETRYSHADER: ret = "D3D_SVT_GEOMETRYSHADER"; break; + case D3D_SVT_RASTERIZER: ret = "D3D_SVT_RASTERIZER"; break; + case D3D_SVT_DEPTHSTENCIL: ret = "D3D_SVT_DEPTHSTENCIL"; break; + case D3D_SVT_BLEND: ret = "D3D_SVT_BLEND"; break; + case D3D_SVT_BUFFER: ret = "D3D_SVT_BUFFER"; break; + case D3D_SVT_CBUFFER: ret = "D3D_SVT_CBUFFER"; break; + case D3D_SVT_TBUFFER: ret = "D3D_SVT_TBUFFER"; break; + case D3D_SVT_TEXTURE1DARRAY: ret = "D3D_SVT_TEXTURE1DARRAY"; break; + case D3D_SVT_TEXTURE2DARRAY: ret = "D3D_SVT_TEXTURE2DARRAY"; break; + case D3D_SVT_RENDERTARGETVIEW: ret = "D3D_SVT_RENDERTARGETVIEW"; break; + case D3D_SVT_DEPTHSTENCILVIEW: ret = "D3D_SVT_DEPTHSTENCILVIEW"; break; + case D3D_SVT_TEXTURE2DMS: ret = "D3D_SVT_TEXTURE2DMS"; break; + case D3D_SVT_TEXTURE2DMSARRAY: ret = "D3D_SVT_TEXTURE2DMSARRAY"; break; + case D3D_SVT_TEXTURECUBEARRAY: ret = "D3D_SVT_TEXTURECUBEARRAY"; break; + case D3D_SVT_HULLSHADER: ret = "D3D_SVT_HULLSHADER"; break; + case D3D_SVT_DOMAINSHADER: ret = "D3D_SVT_DOMAINSHADER"; break; + case D3D_SVT_INTERFACE_POINTER: ret = "D3D_SVT_INTERFACE_POINTER"; break; + case D3D_SVT_COMPUTESHADER: ret = "D3D_SVT_COMPUTESHADER"; break; + case D3D_SVT_DOUBLE: ret = "D3D_SVT_DOUBLE"; break; + case D3D_SVT_RWTEXTURE1D: ret = "D3D_SVT_RWTEXTURE1D"; break; + case D3D_SVT_RWTEXTURE1DARRAY: ret = "D3D_SVT_RWTEXTURE1DARRAY"; break; + case D3D_SVT_RWTEXTURE2D: ret = "D3D_SVT_RWTEXTURE2D"; break; + case D3D_SVT_RWTEXTURE2DARRAY: ret = "D3D_SVT_RWTEXTURE2DARRAY"; break; + case D3D_SVT_RWTEXTURE3D: ret = "D3D_SVT_RWTEXTURE3D"; break; + case D3D_SVT_RWBUFFER: ret = "D3D_SVT_RWBUFFER"; break; + case D3D_SVT_BYTEADDRESS_BUFFER: ret = "D3D_SVT_BYTEADDRESS_BUFFER"; break; + case D3D_SVT_RWBYTEADDRESS_BUFFER: ret = "D3D_SVT_RWBYTEADDRESS_BUFFER"; break; + case D3D_SVT_STRUCTURED_BUFFER: ret = "D3D_SVT_STRUCTURED_BUFFER"; break; + case D3D_SVT_RWSTRUCTURED_BUFFER: ret = "D3D_SVT_RWSTRUCTURED_BUFFER"; break; + case D3D_SVT_APPEND_STRUCTURED_BUFFER: ret = "D3D_SVT_APPEND_STRUCTURED_BUFFER"; break; + case D3D_SVT_CONSUME_STRUCTURED_BUFFER: ret = "D3D_SVT_CONSUME_STRUCTURED_BUFFER"; break; + case D3D_SVT_MIN8FLOAT: ret = "D3D_SVT_MIN8FLOAT"; break; + case D3D_SVT_MIN10FLOAT: ret = "D3D_SVT_MIN10FLOAT"; break; + case D3D_SVT_MIN16FLOAT: ret = "D3D_SVT_MIN16FLOAT"; break; + case D3D_SVT_MIN12INT: ret = "D3D_SVT_MIN12INT"; break; + case D3D_SVT_MIN16INT: ret = "D3D_SVT_MIN16INT"; break; + case D3D_SVT_MIN16UINT: ret = "D3D_SVT_MIN16UINT"; break; + case D3D_SVT_INT16: ret = "D3D_SVT_INT16"; break; + case D3D_SVT_UINT16: ret = "D3D_SVT_UINT16"; break; + case D3D_SVT_FLOAT16: ret = "D3D_SVT_FLOAT16"; break; + case D3D_SVT_INT64: ret = "D3D_SVT_INT64"; break; + case D3D_SVT_UINT64: ret = "D3D_SVT_UINT64"; break; + case D3D_SVT_FORCE_DWORD: ret = "D3D_SVT_FORCE_DWORD"; break; + } + return ret; +} + +std::string ToString(const D3D_SHADER_INPUT_FLAGS value) +{ + const char* ret = "Unhandled D3D_SHADER_INPUT_FLAGS"; + switch (value) { + case D3D_SIF_USERPACKED: ret = "D3D_SIF_USERPACKED"; break; + case D3D_SIF_COMPARISON_SAMPLER: ret = "D3D_SIF_COMPARISON_SAMPLER"; break; + case D3D_SIF_TEXTURE_COMPONENT_0: ret = "D3D_SIF_TEXTURE_COMPONENT_0"; break; + case D3D_SIF_TEXTURE_COMPONENT_1: ret = "D3D_SIF_TEXTURE_COMPONENT_1"; break; + case D3D_SIF_TEXTURE_COMPONENTS: ret = "D3D_SIF_TEXTURE_COMPONENTS"; break; + case D3D_SIF_UNUSED: ret = "D3D_SIF_UNUSED"; break; + case D3D_SIF_FORCE_DWORD: ret = "D3D_SIF_FORCE_DWORD"; break; + } + return ret; +} + +std::string ToString_D3D_SHADER_INPUT_FLAGS(const uint32_t flags) { return BitmaskToString(flags); } -std::string ToString(const D3D_SHADER_INPUT_TYPE& value) +std::string ToString(const D3D_SHADER_INPUT_TYPE value) { + const char* ret = "Unhandled D3D_SHADER_INPUT_TYPE"; switch (value) { - case D3D_SIT_CBUFFER: return "D3D_SIT_CBUFFER"; - case D3D_SIT_TBUFFER: return "D3D_SIT_TBUFFER"; - case D3D_SIT_TEXTURE: return "D3D_SIT_TEXTURE"; - case D3D_SIT_SAMPLER: return "D3D_SIT_SAMPLER"; - case D3D_SIT_UAV_RWTYPED: return "D3D_SIT_UAV_RWTYPED"; - case D3D_SIT_STRUCTURED: return "D3D_SIT_STRUCTURED"; - case D3D_SIT_UAV_RWSTRUCTURED: return "D3D_SIT_UAV_RWSTRUCTURED"; - case D3D_SIT_BYTEADDRESS: return "D3D_SIT_BYTEADDRESS"; - case D3D_SIT_UAV_RWBYTEADDRESS: return "D3D_SIT_UAV_RWBYTEADDRESS"; - case D3D_SIT_UAV_APPEND_STRUCTURED: return "D3D_SIT_UAV_APPEND_STRUCTURED"; - case D3D_SIT_UAV_CONSUME_STRUCTURED: return "D3D_SIT_UAV_CONSUME_STRUCTURED"; - case D3D_SIT_UAV_RWSTRUCTURED_WITH_COUNTER: return "D3D_SIT_UAV_RWSTRUCTURED_WITH_COUNTER"; - case D3D_SIT_RTACCELERATIONSTRUCTURE: return "D3D_SIT_RTACCELERATIONSTRUCTURE"; - case D3D_SIT_UAV_FEEDBACKTEXTURE: return "D3D_SIT_UAV_FEEDBACKTEXTURE"; - default: break; + case D3D_SIT_CBUFFER: ret = "D3D_SIT_CBUFFER"; break; + case D3D_SIT_TBUFFER: ret = "D3D_SIT_TBUFFER"; break; + case D3D_SIT_TEXTURE: ret = "D3D_SIT_TEXTURE"; break; + case D3D_SIT_SAMPLER: ret = "D3D_SIT_SAMPLER"; break; + case D3D_SIT_UAV_RWTYPED: ret = "D3D_SIT_UAV_RWTYPED"; break; + case D3D_SIT_STRUCTURED: ret = "D3D_SIT_STRUCTURED"; break; + case D3D_SIT_UAV_RWSTRUCTURED: ret = "D3D_SIT_UAV_RWSTRUCTURED"; break; + case D3D_SIT_BYTEADDRESS: ret = "D3D_SIT_BYTEADDRESS"; break; + case D3D_SIT_UAV_RWBYTEADDRESS: ret = "D3D_SIT_UAV_RWBYTEADDRESS"; break; + case D3D_SIT_UAV_APPEND_STRUCTURED: ret = "D3D_SIT_UAV_APPEND_STRUCTURED"; break; + case D3D_SIT_UAV_CONSUME_STRUCTURED: ret = "D3D_SIT_UAV_CONSUME_STRUCTURED"; break; + case D3D_SIT_UAV_RWSTRUCTURED_WITH_COUNTER: ret = "D3D_SIT_UAV_RWSTRUCTURED_WITH_COUNTER"; break; + case D3D_SIT_RTACCELERATIONSTRUCTURE: ret = "D3D_SIT_RTACCELERATIONSTRUCTURE"; break; + case D3D_SIT_UAV_FEEDBACKTEXTURE: ret = "D3D_SIT_UAV_FEEDBACKTEXTURE"; break; } - return "Unhandled D3D_SHADER_INPUT_TYPE"; + return ret; } -std::string ToString(const D3D_SHADER_CBUFFER_FLAGS& value) +std::string ToString(const D3D_SHADER_CBUFFER_FLAGS value) { + const char* ret = "Unhandled D3D_SHADER_CBUFFER_FLAGS"; switch (value) { - case D3D_CBF_USERPACKED: return "D3D_CBF_USERPACKED"; - case D3D_CBF_FORCE_DWORD: return "D3D_CBF_FORCE_DWORD"; - default: break; + case D3D_CBF_USERPACKED: ret = "D3D_CBF_USERPACKED"; break; + case D3D_CBF_FORCE_DWORD: ret = "D3D_CBF_FORCE_DWORD"; break; } - return "Unhandled D3D_SHADER_CBUFFER_FLAGS"; + return ret; } -std::string ToString_D3D_SHADER_CBUFFER_FLAGS(uint32_t flags) +std::string ToString_D3D_SHADER_CBUFFER_FLAGS(const uint32_t flags) { return BitmaskToString(flags); } -std::string ToString(const D3D_CBUFFER_TYPE& value) +std::string ToString(const D3D_CBUFFER_TYPE value) { + const char* ret = "Unhandled D3D_CBUFFER_TYPE"; switch (value) { - case D3D_CT_CBUFFER: return "D3D_CT_CBUFFER"; - case D3D_CT_TBUFFER: return "D3D_CT_TBUFFER"; - case D3D_CT_INTERFACE_POINTERS: return "D3D_CT_INTERFACE_POINTERS"; - case D3D_CT_RESOURCE_BIND_INFO: return "D3D_CT_RESOURCE_BIND_INFO"; - default: break; + case D3D_CT_CBUFFER: ret = "D3D_CT_CBUFFER"; break; + case D3D_CT_TBUFFER: ret = "D3D_CT_TBUFFER"; break; + case D3D_CT_INTERFACE_POINTERS: ret = "D3D_CT_INTERFACE_POINTERS"; break; + case D3D_CT_RESOURCE_BIND_INFO: ret = "D3D_CT_RESOURCE_BIND_INFO"; break; } - return "Unhandled D3D_CBUFFER_TYPE"; + return ret; } -std::string ToString(const D3D_NAME& value) +std::string ToString(const D3D_NAME value) { + const char* ret = "Unhandled D3D_NAME"; switch (value) { - case D3D_NAME_UNDEFINED: return "D3D_NAME_UNDEFINED"; - case D3D_NAME_POSITION: return "D3D_NAME_POSITION"; - case D3D_NAME_CLIP_DISTANCE: return "D3D_NAME_CLIP_DISTANCE"; - case D3D_NAME_CULL_DISTANCE: return "D3D_NAME_CULL_DISTANCE"; - case D3D_NAME_RENDER_TARGET_ARRAY_INDEX: return "D3D_NAME_RENDER_TARGET_ARRAY_INDEX"; - case D3D_NAME_VIEWPORT_ARRAY_INDEX: return "D3D_NAME_VIEWPORT_ARRAY_INDEX"; - case D3D_NAME_VERTEX_ID: return "D3D_NAME_VERTEX_ID"; - case D3D_NAME_PRIMITIVE_ID: return "D3D_NAME_PRIMITIVE_ID"; - case D3D_NAME_INSTANCE_ID: return "D3D_NAME_INSTANCE_ID"; - case D3D_NAME_IS_FRONT_FACE: return "D3D_NAME_IS_FRONT_FACE"; - case D3D_NAME_SAMPLE_INDEX: return "D3D_NAME_SAMPLE_INDEX"; - case D3D_NAME_FINAL_QUAD_EDGE_TESSFACTOR: return "D3D_NAME_FINAL_QUAD_EDGE_TESSFACTOR"; - case D3D_NAME_FINAL_QUAD_INSIDE_TESSFACTOR: return "D3D_NAME_FINAL_QUAD_INSIDE_TESSFACTOR"; - case D3D_NAME_FINAL_TRI_EDGE_TESSFACTOR: return "D3D_NAME_FINAL_TRI_EDGE_TESSFACTOR"; - case D3D_NAME_FINAL_TRI_INSIDE_TESSFACTOR: return "D3D_NAME_FINAL_TRI_INSIDE_TESSFACTOR"; - case D3D_NAME_FINAL_LINE_DETAIL_TESSFACTOR: return "D3D_NAME_FINAL_LINE_DETAIL_TESSFACTOR"; - case D3D_NAME_FINAL_LINE_DENSITY_TESSFACTOR: return "D3D_NAME_FINAL_LINE_DENSITY_TESSFACTOR"; - case D3D_NAME_BARYCENTRICS: return "D3D_NAME_BARYCENTRICS"; - case D3D_NAME_SHADINGRATE: return "D3D_NAME_SHADINGRATE"; - case D3D_NAME_CULLPRIMITIVE: return "D3D_NAME_CULLPRIMITIVE"; - case D3D_NAME_TARGET: return "D3D_NAME_TARGET"; - case D3D_NAME_DEPTH: return "D3D_NAME_DEPTH"; - case D3D_NAME_COVERAGE: return "D3D_NAME_COVERAGE"; - case D3D_NAME_DEPTH_GREATER_EQUAL: return "D3D_NAME_DEPTH_GREATER_EQUAL"; - case D3D_NAME_DEPTH_LESS_EQUAL: return "D3D_NAME_DEPTH_LESS_EQUAL"; - case D3D_NAME_STENCIL_REF: return "D3D_NAME_STENCIL_REF"; - case D3D_NAME_INNER_COVERAGE: return "D3D_NAME_INNER_COVERAGE"; - default: break; + case D3D_NAME_UNDEFINED: ret = "D3D_NAME_UNDEFINED"; break; + case D3D_NAME_POSITION: ret = "D3D_NAME_POSITION"; break; + case D3D_NAME_CLIP_DISTANCE: ret = "D3D_NAME_CLIP_DISTANCE"; break; + case D3D_NAME_CULL_DISTANCE: ret = "D3D_NAME_CULL_DISTANCE"; break; + case D3D_NAME_RENDER_TARGET_ARRAY_INDEX: ret = "D3D_NAME_RENDER_TARGET_ARRAY_INDEX"; break; + case D3D_NAME_VIEWPORT_ARRAY_INDEX: ret = "D3D_NAME_VIEWPORT_ARRAY_INDEX"; break; + case D3D_NAME_VERTEX_ID: ret = "D3D_NAME_VERTEX_ID"; break; + case D3D_NAME_PRIMITIVE_ID: ret = "D3D_NAME_PRIMITIVE_ID"; break; + case D3D_NAME_INSTANCE_ID: ret = "D3D_NAME_INSTANCE_ID"; break; + case D3D_NAME_IS_FRONT_FACE: ret = "D3D_NAME_IS_FRONT_FACE"; break; + case D3D_NAME_SAMPLE_INDEX: ret = "D3D_NAME_SAMPLE_INDEX"; break; + case D3D_NAME_FINAL_QUAD_EDGE_TESSFACTOR: ret = "D3D_NAME_FINAL_QUAD_EDGE_TESSFACTOR"; break; + case D3D_NAME_FINAL_QUAD_INSIDE_TESSFACTOR: ret = "D3D_NAME_FINAL_QUAD_INSIDE_TESSFACTOR"; break; + case D3D_NAME_FINAL_TRI_EDGE_TESSFACTOR: ret = "D3D_NAME_FINAL_TRI_EDGE_TESSFACTOR"; break; + case D3D_NAME_FINAL_TRI_INSIDE_TESSFACTOR: ret = "D3D_NAME_FINAL_TRI_INSIDE_TESSFACTOR"; break; + case D3D_NAME_FINAL_LINE_DETAIL_TESSFACTOR: ret = "D3D_NAME_FINAL_LINE_DETAIL_TESSFACTOR"; break; + case D3D_NAME_FINAL_LINE_DENSITY_TESSFACTOR: ret = "D3D_NAME_FINAL_LINE_DENSITY_TESSFACTOR"; break; + case D3D_NAME_BARYCENTRICS: ret = "D3D_NAME_BARYCENTRICS"; break; + case D3D_NAME_SHADINGRATE: ret = "D3D_NAME_SHADINGRATE"; break; + case D3D_NAME_CULLPRIMITIVE: ret = "D3D_NAME_CULLPRIMITIVE"; break; + case D3D_NAME_TARGET: ret = "D3D_NAME_TARGET"; break; + case D3D_NAME_DEPTH: ret = "D3D_NAME_DEPTH"; break; + case D3D_NAME_COVERAGE: ret = "D3D_NAME_COVERAGE"; break; + case D3D_NAME_DEPTH_GREATER_EQUAL: ret = "D3D_NAME_DEPTH_GREATER_EQUAL"; break; + case D3D_NAME_DEPTH_LESS_EQUAL: ret = "D3D_NAME_DEPTH_LESS_EQUAL"; break; + case D3D_NAME_STENCIL_REF: ret = "D3D_NAME_STENCIL_REF"; break; + case D3D_NAME_INNER_COVERAGE: ret = "D3D_NAME_INNER_COVERAGE"; break; } - return "Unhandled D3D_NAME"; + return ret; } -std::string ToString(const D3D_RESOURCE_RETURN_TYPE& value) +std::string ToString(const D3D_RESOURCE_RETURN_TYPE value) { + const char* ret = "Unhandled D3D_RESOURCE_RETURN_TYPE"; switch (value) { - case D3D_RETURN_TYPE_UNORM: return "D3D_RETURN_TYPE_UNORM"; - case D3D_RETURN_TYPE_SNORM: return "D3D_RETURN_TYPE_SNORM"; - case D3D_RETURN_TYPE_SINT: return "D3D_RETURN_TYPE_SINT"; - case D3D_RETURN_TYPE_UINT: return "D3D_RETURN_TYPE_UINT"; - case D3D_RETURN_TYPE_FLOAT: return "D3D_RETURN_TYPE_FLOAT"; - case D3D_RETURN_TYPE_MIXED: return "D3D_RETURN_TYPE_MIXED"; - case D3D_RETURN_TYPE_DOUBLE: return "D3D_RETURN_TYPE_DOUBLE"; - case D3D_RETURN_TYPE_CONTINUED: return "D3D_RETURN_TYPE_CONTINUED"; - default: break; + case D3D_RETURN_TYPE_UNORM: ret = "D3D_RETURN_TYPE_UNORM"; break; + case D3D_RETURN_TYPE_SNORM: ret = "D3D_RETURN_TYPE_SNORM"; break; + case D3D_RETURN_TYPE_SINT: ret = "D3D_RETURN_TYPE_SINT"; break; + case D3D_RETURN_TYPE_UINT: ret = "D3D_RETURN_TYPE_UINT"; break; + case D3D_RETURN_TYPE_FLOAT: ret = "D3D_RETURN_TYPE_FLOAT"; break; + case D3D_RETURN_TYPE_MIXED: ret = "D3D_RETURN_TYPE_MIXED"; break; + case D3D_RETURN_TYPE_DOUBLE: ret = "D3D_RETURN_TYPE_DOUBLE"; break; + case D3D_RETURN_TYPE_CONTINUED: ret = "D3D_RETURN_TYPE_CONTINUED"; break; } - return "Unhandled D3D_RESOURCE_RETURN_TYPE"; + return ret; } -std::string ToString(const D3D_REGISTER_COMPONENT_TYPE& value) +std::string ToString(const D3D_REGISTER_COMPONENT_TYPE value) { + const char* ret = "Unhandled D3D_REGISTER_COMPONENT_TYPE"; switch (value) { - case D3D_REGISTER_COMPONENT_UNKNOWN: return "D3D_REGISTER_COMPONENT_UNKNOWN"; - case D3D_REGISTER_COMPONENT_UINT32: return "D3D_REGISTER_COMPONENT_UINT32"; - case D3D_REGISTER_COMPONENT_SINT32: return "D3D_REGISTER_COMPONENT_SINT32"; - case D3D_REGISTER_COMPONENT_FLOAT32: return "D3D_REGISTER_COMPONENT_FLOAT32"; - default: break; + case D3D_REGISTER_COMPONENT_UNKNOWN: ret = "D3D_REGISTER_COMPONENT_UNKNOWN"; break; + case D3D_REGISTER_COMPONENT_UINT32: ret = "D3D_REGISTER_COMPONENT_UINT32"; break; + case D3D_REGISTER_COMPONENT_SINT32: ret = "D3D_REGISTER_COMPONENT_SINT32"; break; + case D3D_REGISTER_COMPONENT_FLOAT32: ret = "D3D_REGISTER_COMPONENT_FLOAT32"; break; } - return "Unhandled D3D_REGISTER_COMPONENT_TYPE"; + return ret; } -std::string ToString(const D3D_TESSELLATOR_DOMAIN& value) +std::string ToString(const D3D_TESSELLATOR_DOMAIN value) { + const char* ret = "Unhandled D3D_TESSELLATOR_DOMAIN"; switch (value) { - case D3D_TESSELLATOR_DOMAIN_UNDEFINED: return "D3D_TESSELLATOR_DOMAIN_UNDEFINED"; - case D3D_TESSELLATOR_DOMAIN_ISOLINE: return "D3D_TESSELLATOR_DOMAIN_ISOLINE"; - case D3D_TESSELLATOR_DOMAIN_TRI: return "D3D_TESSELLATOR_DOMAIN_TRI"; - case D3D_TESSELLATOR_DOMAIN_QUAD: return "D3D_TESSELLATOR_DOMAIN_QUAD"; - default: break; + case D3D_TESSELLATOR_DOMAIN_UNDEFINED: ret = "D3D_TESSELLATOR_DOMAIN_UNDEFINED"; break; + case D3D_TESSELLATOR_DOMAIN_ISOLINE: ret = "D3D_TESSELLATOR_DOMAIN_ISOLINE"; break; + case D3D_TESSELLATOR_DOMAIN_TRI: ret = "D3D_TESSELLATOR_DOMAIN_TRI"; break; + case D3D_TESSELLATOR_DOMAIN_QUAD: ret = "D3D_TESSELLATOR_DOMAIN_QUAD"; break; } - return "Unhandled D3D_TESSELLATOR_DOMAIN"; + return ret; } -std::string ToString(const D3D_TESSELLATOR_PARTITIONING& value) +std::string ToString(const D3D_TESSELLATOR_PARTITIONING value) { + const char* ret = "Unhandled D3D_TESSELLATOR_PARTITIONING"; switch (value) { - case D3D_TESSELLATOR_PARTITIONING_UNDEFINED: return "D3D_TESSELLATOR_PARTITIONING_UNDEFINED"; - case D3D_TESSELLATOR_PARTITIONING_INTEGER: return "D3D_TESSELLATOR_PARTITIONING_INTEGER"; - case D3D_TESSELLATOR_PARTITIONING_POW2: return "D3D_TESSELLATOR_PARTITIONING_POW2"; - case D3D_TESSELLATOR_PARTITIONING_FRACTIONAL_ODD: return "D3D_TESSELLATOR_PARTITIONING_FRACTIONAL_ODD"; - case D3D_TESSELLATOR_PARTITIONING_FRACTIONAL_EVEN: return "D3D_TESSELLATOR_PARTITIONING_FRACTIONAL_EVEN"; - default: break; + case D3D_TESSELLATOR_PARTITIONING_UNDEFINED: ret = "D3D_TESSELLATOR_PARTITIONING_UNDEFINED"; break; + case D3D_TESSELLATOR_PARTITIONING_INTEGER: ret = "D3D_TESSELLATOR_PARTITIONING_INTEGER"; break; + case D3D_TESSELLATOR_PARTITIONING_POW2: ret = "D3D_TESSELLATOR_PARTITIONING_POW2"; break; + case D3D_TESSELLATOR_PARTITIONING_FRACTIONAL_ODD: ret = "D3D_TESSELLATOR_PARTITIONING_FRACTIONAL_ODD"; break; + case D3D_TESSELLATOR_PARTITIONING_FRACTIONAL_EVEN: ret = "D3D_TESSELLATOR_PARTITIONING_FRACTIONAL_EVEN"; break; } - return "Unhandled D3D_TESSELLATOR_PARTITIONING"; + return ret; } -std::string ToString(const D3D_TESSELLATOR_OUTPUT_PRIMITIVE& value) +std::string ToString(const D3D_TESSELLATOR_OUTPUT_PRIMITIVE value) { + const char* ret = "Unhandled D3D_TESSELLATOR_OUTPUT_PRIMITIVE"; switch (value) { - case D3D_TESSELLATOR_OUTPUT_UNDEFINED: return "D3D_TESSELLATOR_OUTPUT_UNDEFINED"; - case D3D_TESSELLATOR_OUTPUT_POINT: return "D3D_TESSELLATOR_OUTPUT_POINT"; - case D3D_TESSELLATOR_OUTPUT_LINE: return "D3D_TESSELLATOR_OUTPUT_LINE"; - case D3D_TESSELLATOR_OUTPUT_TRIANGLE_CW: return "D3D_TESSELLATOR_OUTPUT_TRIANGLE_CW"; - case D3D_TESSELLATOR_OUTPUT_TRIANGLE_CCW: return "D3D_TESSELLATOR_OUTPUT_TRIANGLE_CCW"; - default: break; + case D3D_TESSELLATOR_OUTPUT_UNDEFINED: ret = "D3D_TESSELLATOR_OUTPUT_UNDEFINED"; break; + case D3D_TESSELLATOR_OUTPUT_POINT: ret = "D3D_TESSELLATOR_OUTPUT_POINT"; break; + case D3D_TESSELLATOR_OUTPUT_LINE: ret = "D3D_TESSELLATOR_OUTPUT_LINE"; break; + case D3D_TESSELLATOR_OUTPUT_TRIANGLE_CW: ret = "D3D_TESSELLATOR_OUTPUT_TRIANGLE_CW"; break; + case D3D_TESSELLATOR_OUTPUT_TRIANGLE_CCW: ret = "D3D_TESSELLATOR_OUTPUT_TRIANGLE_CCW"; break; } - return "Unhandled D3D_TESSELLATOR_OUTPUT_PRIMITIVE"; + return ret; } -std::string ToString(const D3D_MIN_PRECISION& value) +std::string ToString(const D3D_MIN_PRECISION value) { + const char* ret = "Unhandled D3D_MIN_PRECISION"; switch (value) { - case D3D_MIN_PRECISION_DEFAULT: return "D3D_MIN_PRECISION_DEFAULT"; - case D3D_MIN_PRECISION_FLOAT_16: return "D3D_MIN_PRECISION_FLOAT_16"; - case D3D_MIN_PRECISION_FLOAT_2_8: return "D3D_MIN_PRECISION_FLOAT_2_8"; - case D3D_MIN_PRECISION_RESERVED: return "D3D_MIN_PRECISION_RESERVED"; - case D3D_MIN_PRECISION_SINT_16: return "D3D_MIN_PRECISION_SINT_16"; - case D3D_MIN_PRECISION_UINT_16: return "D3D_MIN_PRECISION_UINT_16"; - case D3D_MIN_PRECISION_ANY_16: return "D3D_MIN_PRECISION_ANY_16"; - case D3D_MIN_PRECISION_ANY_10: return "D3D_MIN_PRECISION_ANY_10"; - default: break; + case D3D_MIN_PRECISION_DEFAULT: ret = "D3D_MIN_PRECISION_DEFAULT"; break; + case D3D_MIN_PRECISION_FLOAT_16: ret = "D3D_MIN_PRECISION_FLOAT_16"; break; + case D3D_MIN_PRECISION_FLOAT_2_8: ret = "D3D_MIN_PRECISION_FLOAT_2_8"; break; + case D3D_MIN_PRECISION_RESERVED: ret = "D3D_MIN_PRECISION_RESERVED"; break; + case D3D_MIN_PRECISION_SINT_16: ret = "D3D_MIN_PRECISION_SINT_16"; break; + case D3D_MIN_PRECISION_UINT_16: ret = "D3D_MIN_PRECISION_UINT_16"; break; + case D3D_MIN_PRECISION_ANY_16: ret = "D3D_MIN_PRECISION_ANY_16"; break; + case D3D_MIN_PRECISION_ANY_10: ret = "D3D_MIN_PRECISION_ANY_10"; break; } - return "Unhandled D3D_MIN_PRECISION"; + return ret; } -std::string ToString(const D3D_INTERPOLATION_MODE& value) +std::string ToString(const D3D_INTERPOLATION_MODE value) { + const char* ret = "Unhandled D3D_INTERPOLATION_MODE"; switch (value) { - case D3D_INTERPOLATION_UNDEFINED: return "D3D_INTERPOLATION_UNDEFINED"; - case D3D_INTERPOLATION_CONSTANT: return "D3D_INTERPOLATION_CONSTANT"; - case D3D_INTERPOLATION_LINEAR: return "D3D_INTERPOLATION_LINEAR"; - case D3D_INTERPOLATION_LINEAR_CENTROID: return "D3D_INTERPOLATION_LINEAR_CENTROID"; - case D3D_INTERPOLATION_LINEAR_NOPERSPECTIVE: return "D3D_INTERPOLATION_LINEAR_NOPERSPECTIVE"; - case D3D_INTERPOLATION_LINEAR_NOPERSPECTIVE_CENTROID: return "D3D_INTERPOLATION_LINEAR_NOPERSPECTIVE_CENTROID"; - case D3D_INTERPOLATION_LINEAR_SAMPLE: return "D3D_INTERPOLATION_LINEAR_SAMPLE"; - case D3D_INTERPOLATION_LINEAR_NOPERSPECTIVE_SAMPLE: return "D3D_INTERPOLATION_LINEAR_NOPERSPECTIVE_SAMPLE"; - default: break; + case D3D_INTERPOLATION_UNDEFINED: ret = "D3D_INTERPOLATION_UNDEFINED"; break; + case D3D_INTERPOLATION_CONSTANT: ret = "D3D_INTERPOLATION_CONSTANT"; break; + case D3D_INTERPOLATION_LINEAR: ret = "D3D_INTERPOLATION_LINEAR"; break; + case D3D_INTERPOLATION_LINEAR_CENTROID: ret = "D3D_INTERPOLATION_LINEAR_CENTROID"; break; + case D3D_INTERPOLATION_LINEAR_NOPERSPECTIVE: ret = "D3D_INTERPOLATION_LINEAR_NOPERSPECTIVE"; break; + case D3D_INTERPOLATION_LINEAR_NOPERSPECTIVE_CENTROID: ret = "D3D_INTERPOLATION_LINEAR_NOPERSPECTIVE_CENTROID"; break; + case D3D_INTERPOLATION_LINEAR_SAMPLE: ret = "D3D_INTERPOLATION_LINEAR_SAMPLE"; break; + case D3D_INTERPOLATION_LINEAR_NOPERSPECTIVE_SAMPLE: ret = "D3D_INTERPOLATION_LINEAR_NOPERSPECTIVE_SAMPLE"; break; } - return "Unhandled D3D_INTERPOLATION_MODE"; + return ret; } -std::string ToString(const D3D_PARAMETER_FLAGS& value) +std::string ToString(const D3D_PARAMETER_FLAGS value) { + const char* ret = "Unhandled D3D_PARAMETER_FLAGS"; switch (value) { - case D3D_PF_NONE: return "D3D_PF_NONE"; - case D3D_PF_IN: return "D3D_PF_IN"; - case D3D_PF_OUT: return "D3D_PF_OUT"; - case D3D_PF_FORCE_DWORD: return "D3D_PF_FORCE_DWORD"; - default: break; + case D3D_PF_NONE: ret = "D3D_PF_NONE"; break; + case D3D_PF_IN: ret = "D3D_PF_IN"; break; + case D3D_PF_OUT: ret = "D3D_PF_OUT"; break; + case D3D_PF_FORCE_DWORD: ret = "D3D_PF_FORCE_DWORD"; break; } - return "Unhandled D3D_PARAMETER_FLAGS"; + return ret; } -std::string ToString_D3D_PARAMETER_FLAGS(uint32_t flags) +std::string ToString_D3D_PARAMETER_FLAGS(const uint32_t flags) { return BitmaskToString(flags); } -std::string ToString(const D3D_FORMAT_LAYOUT& value) +std::string ToString(const D3D_FORMAT_LAYOUT value) { + const char* ret = "Unhandled D3D_FORMAT_LAYOUT"; switch (value) { - case D3DFL_STANDARD: return "D3DFL_STANDARD"; - case D3DFL_CUSTOM: return "D3DFL_CUSTOM"; - default: break; + case D3DFL_STANDARD: ret = "D3DFL_STANDARD"; break; + case D3DFL_CUSTOM: ret = "D3DFL_CUSTOM"; break; } - return "Unhandled D3D_FORMAT_LAYOUT"; + return ret; } -std::string ToString(const D3D_FORMAT_TYPE_LEVEL& value) +std::string ToString(const D3D_FORMAT_TYPE_LEVEL value) { + const char* ret = "Unhandled D3D_FORMAT_TYPE_LEVEL"; switch (value) { - case D3DFTL_NO_TYPE: return "D3DFTL_NO_TYPE"; - case D3DFTL_PARTIAL_TYPE: return "D3DFTL_PARTIAL_TYPE"; - case D3DFTL_FULL_TYPE: return "D3DFTL_FULL_TYPE"; - default: break; + case D3DFTL_NO_TYPE: ret = "D3DFTL_NO_TYPE"; break; + case D3DFTL_PARTIAL_TYPE: ret = "D3DFTL_PARTIAL_TYPE"; break; + case D3DFTL_FULL_TYPE: ret = "D3DFTL_FULL_TYPE"; break; } - return "Unhandled D3D_FORMAT_TYPE_LEVEL"; + return ret; } -std::string ToString(const D3D_FORMAT_COMPONENT_NAME& value) +std::string ToString(const D3D_FORMAT_COMPONENT_NAME value) { + const char* ret = "Unhandled D3D_FORMAT_COMPONENT_NAME"; switch (value) { - case D3DFCN_R: return "D3DFCN_R"; - case D3DFCN_G: return "D3DFCN_G"; - case D3DFCN_B: return "D3DFCN_B"; - case D3DFCN_A: return "D3DFCN_A"; - case D3DFCN_D: return "D3DFCN_D"; - case D3DFCN_S: return "D3DFCN_S"; - case D3DFCN_X: return "D3DFCN_X"; - default: break; + case D3DFCN_R: ret = "D3DFCN_R"; break; + case D3DFCN_G: ret = "D3DFCN_G"; break; + case D3DFCN_B: ret = "D3DFCN_B"; break; + case D3DFCN_A: ret = "D3DFCN_A"; break; + case D3DFCN_D: ret = "D3DFCN_D"; break; + case D3DFCN_S: ret = "D3DFCN_S"; break; + case D3DFCN_X: ret = "D3DFCN_X"; break; } - return "Unhandled D3D_FORMAT_COMPONENT_NAME"; + return ret; } -std::string ToString(const D3D_FORMAT_COMPONENT_INTERPRETATION& value) +std::string ToString(const D3D_FORMAT_COMPONENT_INTERPRETATION value) { + const char* ret = "Unhandled D3D_FORMAT_COMPONENT_INTERPRETATION"; switch (value) { - case D3DFCI_TYPELESS: return "D3DFCI_TYPELESS"; - case D3DFCI_FLOAT: return "D3DFCI_FLOAT"; - case D3DFCI_SNORM: return "D3DFCI_SNORM"; - case D3DFCI_UNORM: return "D3DFCI_UNORM"; - case D3DFCI_SINT: return "D3DFCI_SINT"; - case D3DFCI_UINT: return "D3DFCI_UINT"; - case D3DFCI_UNORM_SRGB: return "D3DFCI_UNORM_SRGB"; - case D3DFCI_BIASED_FIXED_2_8: return "D3DFCI_BIASED_FIXED_2_8"; - default: break; + case D3DFCI_TYPELESS: ret = "D3DFCI_TYPELESS"; break; + case D3DFCI_FLOAT: ret = "D3DFCI_FLOAT"; break; + case D3DFCI_SNORM: ret = "D3DFCI_SNORM"; break; + case D3DFCI_UNORM: ret = "D3DFCI_UNORM"; break; + case D3DFCI_SINT: ret = "D3DFCI_SINT"; break; + case D3DFCI_UINT: ret = "D3DFCI_UINT"; break; + case D3DFCI_UNORM_SRGB: ret = "D3DFCI_UNORM_SRGB"; break; + case D3DFCI_BIASED_FIXED_2_8: ret = "D3DFCI_BIASED_FIXED_2_8"; break; } - return "Unhandled D3D_FORMAT_COMPONENT_INTERPRETATION"; + return ret; } -std::string ToString(const D3D12_GPU_BASED_VALIDATION_FLAGS& value) +std::string ToString(const D3D12_GPU_BASED_VALIDATION_FLAGS value) { + const char* ret = "Unhandled D3D12_GPU_BASED_VALIDATION_FLAGS"; switch (value) { - case D3D12_GPU_BASED_VALIDATION_FLAGS_NONE: return "D3D12_GPU_BASED_VALIDATION_FLAGS_NONE"; - case D3D12_GPU_BASED_VALIDATION_FLAGS_DISABLE_STATE_TRACKING: return "D3D12_GPU_BASED_VALIDATION_FLAGS_DISABLE_STATE_TRACKING"; - default: break; + case D3D12_GPU_BASED_VALIDATION_FLAGS_NONE: ret = "D3D12_GPU_BASED_VALIDATION_FLAGS_NONE"; break; + case D3D12_GPU_BASED_VALIDATION_FLAGS_DISABLE_STATE_TRACKING: ret = "D3D12_GPU_BASED_VALIDATION_FLAGS_DISABLE_STATE_TRACKING"; break; } - return "Unhandled D3D12_GPU_BASED_VALIDATION_FLAGS"; + return ret; } -std::string ToString_D3D12_GPU_BASED_VALIDATION_FLAGS(uint32_t flags) +std::string ToString_D3D12_GPU_BASED_VALIDATION_FLAGS(const uint32_t flags) { return BitmaskToString(flags); } -std::string ToString(const D3D12_RLDO_FLAGS& value) +std::string ToString(const D3D12_RLDO_FLAGS value) { + const char* ret = "Unhandled D3D12_RLDO_FLAGS"; switch (value) { - case D3D12_RLDO_NONE: return "D3D12_RLDO_NONE"; - case D3D12_RLDO_SUMMARY: return "D3D12_RLDO_SUMMARY"; - case D3D12_RLDO_DETAIL: return "D3D12_RLDO_DETAIL"; - case D3D12_RLDO_IGNORE_INTERNAL: return "D3D12_RLDO_IGNORE_INTERNAL"; - default: break; + case D3D12_RLDO_NONE: ret = "D3D12_RLDO_NONE"; break; + case D3D12_RLDO_SUMMARY: ret = "D3D12_RLDO_SUMMARY"; break; + case D3D12_RLDO_DETAIL: ret = "D3D12_RLDO_DETAIL"; break; + case D3D12_RLDO_IGNORE_INTERNAL: ret = "D3D12_RLDO_IGNORE_INTERNAL"; break; } - return "Unhandled D3D12_RLDO_FLAGS"; + return ret; } -std::string ToString_D3D12_RLDO_FLAGS(uint32_t flags) +std::string ToString_D3D12_RLDO_FLAGS(const uint32_t flags) { return BitmaskToString(flags); } -std::string ToString(const D3D12_DEBUG_DEVICE_PARAMETER_TYPE& value) +std::string ToString(const D3D12_DEBUG_DEVICE_PARAMETER_TYPE value) { + const char* ret = "Unhandled D3D12_DEBUG_DEVICE_PARAMETER_TYPE"; switch (value) { - case D3D12_DEBUG_DEVICE_PARAMETER_FEATURE_FLAGS: return "D3D12_DEBUG_DEVICE_PARAMETER_FEATURE_FLAGS"; - case D3D12_DEBUG_DEVICE_PARAMETER_GPU_BASED_VALIDATION_SETTINGS: return "D3D12_DEBUG_DEVICE_PARAMETER_GPU_BASED_VALIDATION_SETTINGS"; - case D3D12_DEBUG_DEVICE_PARAMETER_GPU_SLOWDOWN_PERFORMANCE_FACTOR: return "D3D12_DEBUG_DEVICE_PARAMETER_GPU_SLOWDOWN_PERFORMANCE_FACTOR"; - default: break; + case D3D12_DEBUG_DEVICE_PARAMETER_FEATURE_FLAGS: ret = "D3D12_DEBUG_DEVICE_PARAMETER_FEATURE_FLAGS"; break; + case D3D12_DEBUG_DEVICE_PARAMETER_GPU_BASED_VALIDATION_SETTINGS: ret = "D3D12_DEBUG_DEVICE_PARAMETER_GPU_BASED_VALIDATION_SETTINGS"; break; + case D3D12_DEBUG_DEVICE_PARAMETER_GPU_SLOWDOWN_PERFORMANCE_FACTOR: ret = "D3D12_DEBUG_DEVICE_PARAMETER_GPU_SLOWDOWN_PERFORMANCE_FACTOR"; break; } - return "Unhandled D3D12_DEBUG_DEVICE_PARAMETER_TYPE"; + return ret; } -std::string ToString(const D3D12_DEBUG_FEATURE& value) +std::string ToString(const D3D12_DEBUG_FEATURE value) { + const char* ret = "Unhandled D3D12_DEBUG_FEATURE"; switch (value) { - case D3D12_DEBUG_FEATURE_NONE: return "D3D12_DEBUG_FEATURE_NONE"; - case D3D12_DEBUG_FEATURE_ALLOW_BEHAVIOR_CHANGING_DEBUG_AIDS: return "D3D12_DEBUG_FEATURE_ALLOW_BEHAVIOR_CHANGING_DEBUG_AIDS"; - case D3D12_DEBUG_FEATURE_CONSERVATIVE_RESOURCE_STATE_TRACKING: return "D3D12_DEBUG_FEATURE_CONSERVATIVE_RESOURCE_STATE_TRACKING"; - case D3D12_DEBUG_FEATURE_DISABLE_VIRTUALIZED_BUNDLES_VALIDATION: return "D3D12_DEBUG_FEATURE_DISABLE_VIRTUALIZED_BUNDLES_VALIDATION"; - case D3D12_DEBUG_FEATURE_EMULATE_WINDOWS7: return "D3D12_DEBUG_FEATURE_EMULATE_WINDOWS7"; - default: break; + case D3D12_DEBUG_FEATURE_NONE: ret = "D3D12_DEBUG_FEATURE_NONE"; break; + case D3D12_DEBUG_FEATURE_ALLOW_BEHAVIOR_CHANGING_DEBUG_AIDS: ret = "D3D12_DEBUG_FEATURE_ALLOW_BEHAVIOR_CHANGING_DEBUG_AIDS"; break; + case D3D12_DEBUG_FEATURE_CONSERVATIVE_RESOURCE_STATE_TRACKING: ret = "D3D12_DEBUG_FEATURE_CONSERVATIVE_RESOURCE_STATE_TRACKING"; break; + case D3D12_DEBUG_FEATURE_DISABLE_VIRTUALIZED_BUNDLES_VALIDATION: ret = "D3D12_DEBUG_FEATURE_DISABLE_VIRTUALIZED_BUNDLES_VALIDATION"; break; + case D3D12_DEBUG_FEATURE_EMULATE_WINDOWS7: ret = "D3D12_DEBUG_FEATURE_EMULATE_WINDOWS7"; break; } - return "Unhandled D3D12_DEBUG_FEATURE"; + return ret; } -std::string ToString(const D3D12_GPU_BASED_VALIDATION_SHADER_PATCH_MODE& value) +std::string ToString(const D3D12_GPU_BASED_VALIDATION_SHADER_PATCH_MODE value) { + const char* ret = "Unhandled D3D12_GPU_BASED_VALIDATION_SHADER_PATCH_MODE"; switch (value) { - case D3D12_GPU_BASED_VALIDATION_SHADER_PATCH_MODE_NONE: return "D3D12_GPU_BASED_VALIDATION_SHADER_PATCH_MODE_NONE"; - case D3D12_GPU_BASED_VALIDATION_SHADER_PATCH_MODE_STATE_TRACKING_ONLY: return "D3D12_GPU_BASED_VALIDATION_SHADER_PATCH_MODE_STATE_TRACKING_ONLY"; - case D3D12_GPU_BASED_VALIDATION_SHADER_PATCH_MODE_UNGUARDED_VALIDATION: return "D3D12_GPU_BASED_VALIDATION_SHADER_PATCH_MODE_UNGUARDED_VALIDATION"; - case D3D12_GPU_BASED_VALIDATION_SHADER_PATCH_MODE_GUARDED_VALIDATION: return "D3D12_GPU_BASED_VALIDATION_SHADER_PATCH_MODE_GUARDED_VALIDATION"; - case NUM_D3D12_GPU_BASED_VALIDATION_SHADER_PATCH_MODES: return "NUM_D3D12_GPU_BASED_VALIDATION_SHADER_PATCH_MODES"; - default: break; + case D3D12_GPU_BASED_VALIDATION_SHADER_PATCH_MODE_NONE: ret = "D3D12_GPU_BASED_VALIDATION_SHADER_PATCH_MODE_NONE"; break; + case D3D12_GPU_BASED_VALIDATION_SHADER_PATCH_MODE_STATE_TRACKING_ONLY: ret = "D3D12_GPU_BASED_VALIDATION_SHADER_PATCH_MODE_STATE_TRACKING_ONLY"; break; + case D3D12_GPU_BASED_VALIDATION_SHADER_PATCH_MODE_UNGUARDED_VALIDATION: ret = "D3D12_GPU_BASED_VALIDATION_SHADER_PATCH_MODE_UNGUARDED_VALIDATION"; break; + case D3D12_GPU_BASED_VALIDATION_SHADER_PATCH_MODE_GUARDED_VALIDATION: ret = "D3D12_GPU_BASED_VALIDATION_SHADER_PATCH_MODE_GUARDED_VALIDATION"; break; + case NUM_D3D12_GPU_BASED_VALIDATION_SHADER_PATCH_MODES: ret = "NUM_D3D12_GPU_BASED_VALIDATION_SHADER_PATCH_MODES"; break; } - return "Unhandled D3D12_GPU_BASED_VALIDATION_SHADER_PATCH_MODE"; + return ret; } -std::string ToString(const D3D12_GPU_BASED_VALIDATION_PIPELINE_STATE_CREATE_FLAGS& value) +std::string ToString(const D3D12_GPU_BASED_VALIDATION_PIPELINE_STATE_CREATE_FLAGS value) { + const char* ret = "Unhandled D3D12_GPU_BASED_VALIDATION_PIPELINE_STATE_CREATE_FLAGS"; switch (value) { - case D3D12_GPU_BASED_VALIDATION_PIPELINE_STATE_CREATE_FLAG_NONE: return "D3D12_GPU_BASED_VALIDATION_PIPELINE_STATE_CREATE_FLAG_NONE"; - case D3D12_GPU_BASED_VALIDATION_PIPELINE_STATE_CREATE_FLAG_FRONT_LOAD_CREATE_TRACKING_ONLY_SHADERS: return "D3D12_GPU_BASED_VALIDATION_PIPELINE_STATE_CREATE_FLAG_FRONT_LOAD_CREATE_TRACKING_ONLY_SHADERS"; - case D3D12_GPU_BASED_VALIDATION_PIPELINE_STATE_CREATE_FLAG_FRONT_LOAD_CREATE_UNGUARDED_VALIDATION_SHADERS: return "D3D12_GPU_BASED_VALIDATION_PIPELINE_STATE_CREATE_FLAG_FRONT_LOAD_CREATE_UNGUARDED_VALIDATION_SHADERS"; - case D3D12_GPU_BASED_VALIDATION_PIPELINE_STATE_CREATE_FLAG_FRONT_LOAD_CREATE_GUARDED_VALIDATION_SHADERS: return "D3D12_GPU_BASED_VALIDATION_PIPELINE_STATE_CREATE_FLAG_FRONT_LOAD_CREATE_GUARDED_VALIDATION_SHADERS"; - case D3D12_GPU_BASED_VALIDATION_PIPELINE_STATE_CREATE_FLAGS_VALID_MASK: return "D3D12_GPU_BASED_VALIDATION_PIPELINE_STATE_CREATE_FLAGS_VALID_MASK"; - default: break; + case D3D12_GPU_BASED_VALIDATION_PIPELINE_STATE_CREATE_FLAG_NONE: ret = "D3D12_GPU_BASED_VALIDATION_PIPELINE_STATE_CREATE_FLAG_NONE"; break; + case D3D12_GPU_BASED_VALIDATION_PIPELINE_STATE_CREATE_FLAG_FRONT_LOAD_CREATE_TRACKING_ONLY_SHADERS: ret = "D3D12_GPU_BASED_VALIDATION_PIPELINE_STATE_CREATE_FLAG_FRONT_LOAD_CREATE_TRACKING_ONLY_SHADERS"; break; + case D3D12_GPU_BASED_VALIDATION_PIPELINE_STATE_CREATE_FLAG_FRONT_LOAD_CREATE_UNGUARDED_VALIDATION_SHADERS: ret = "D3D12_GPU_BASED_VALIDATION_PIPELINE_STATE_CREATE_FLAG_FRONT_LOAD_CREATE_UNGUARDED_VALIDATION_SHADERS"; break; + case D3D12_GPU_BASED_VALIDATION_PIPELINE_STATE_CREATE_FLAG_FRONT_LOAD_CREATE_GUARDED_VALIDATION_SHADERS: ret = "D3D12_GPU_BASED_VALIDATION_PIPELINE_STATE_CREATE_FLAG_FRONT_LOAD_CREATE_GUARDED_VALIDATION_SHADERS"; break; + case D3D12_GPU_BASED_VALIDATION_PIPELINE_STATE_CREATE_FLAGS_VALID_MASK: ret = "D3D12_GPU_BASED_VALIDATION_PIPELINE_STATE_CREATE_FLAGS_VALID_MASK"; break; } - return "Unhandled D3D12_GPU_BASED_VALIDATION_PIPELINE_STATE_CREATE_FLAGS"; + return ret; } -std::string ToString_D3D12_GPU_BASED_VALIDATION_PIPELINE_STATE_CREATE_FLAGS(uint32_t flags) +std::string ToString_D3D12_GPU_BASED_VALIDATION_PIPELINE_STATE_CREATE_FLAGS(const uint32_t flags) { return BitmaskToString(flags); } -std::string ToString(const D3D12_DEBUG_COMMAND_LIST_PARAMETER_TYPE& value) -{ - switch (value) { - case D3D12_DEBUG_COMMAND_LIST_PARAMETER_GPU_BASED_VALIDATION_SETTINGS: return "D3D12_DEBUG_COMMAND_LIST_PARAMETER_GPU_BASED_VALIDATION_SETTINGS"; - default: break; - } - return "Unhandled D3D12_DEBUG_COMMAND_LIST_PARAMETER_TYPE"; -} - -std::string ToString(const D3D12_MESSAGE_CATEGORY& value) -{ - switch (value) { - case D3D12_MESSAGE_CATEGORY_APPLICATION_DEFINED: return "D3D12_MESSAGE_CATEGORY_APPLICATION_DEFINED"; - case D3D12_MESSAGE_CATEGORY_MISCELLANEOUS: return "D3D12_MESSAGE_CATEGORY_MISCELLANEOUS"; - case D3D12_MESSAGE_CATEGORY_INITIALIZATION: return "D3D12_MESSAGE_CATEGORY_INITIALIZATION"; - case D3D12_MESSAGE_CATEGORY_CLEANUP: return "D3D12_MESSAGE_CATEGORY_CLEANUP"; - case D3D12_MESSAGE_CATEGORY_COMPILATION: return "D3D12_MESSAGE_CATEGORY_COMPILATION"; - case D3D12_MESSAGE_CATEGORY_STATE_CREATION: return "D3D12_MESSAGE_CATEGORY_STATE_CREATION"; - case D3D12_MESSAGE_CATEGORY_STATE_SETTING: return "D3D12_MESSAGE_CATEGORY_STATE_SETTING"; - case D3D12_MESSAGE_CATEGORY_STATE_GETTING: return "D3D12_MESSAGE_CATEGORY_STATE_GETTING"; - case D3D12_MESSAGE_CATEGORY_RESOURCE_MANIPULATION: return "D3D12_MESSAGE_CATEGORY_RESOURCE_MANIPULATION"; - case D3D12_MESSAGE_CATEGORY_EXECUTION: return "D3D12_MESSAGE_CATEGORY_EXECUTION"; - case D3D12_MESSAGE_CATEGORY_SHADER: return "D3D12_MESSAGE_CATEGORY_SHADER"; - default: break; - } - return "Unhandled D3D12_MESSAGE_CATEGORY"; -} - -std::string ToString(const D3D12_MESSAGE_SEVERITY& value) -{ - switch (value) { - case D3D12_MESSAGE_SEVERITY_CORRUPTION: return "D3D12_MESSAGE_SEVERITY_CORRUPTION"; - case D3D12_MESSAGE_SEVERITY_ERROR: return "D3D12_MESSAGE_SEVERITY_ERROR"; - case D3D12_MESSAGE_SEVERITY_WARNING: return "D3D12_MESSAGE_SEVERITY_WARNING"; - case D3D12_MESSAGE_SEVERITY_INFO: return "D3D12_MESSAGE_SEVERITY_INFO"; - case D3D12_MESSAGE_SEVERITY_MESSAGE: return "D3D12_MESSAGE_SEVERITY_MESSAGE"; - default: break; - } - return "Unhandled D3D12_MESSAGE_SEVERITY"; -} - -std::string ToString(const D3D12_MESSAGE_ID& value) -{ - switch (value) { - case D3D12_MESSAGE_ID_UNKNOWN: return "D3D12_MESSAGE_ID_UNKNOWN"; - case D3D12_MESSAGE_ID_STRING_FROM_APPLICATION: return "D3D12_MESSAGE_ID_STRING_FROM_APPLICATION"; - case D3D12_MESSAGE_ID_CORRUPTED_THIS: return "D3D12_MESSAGE_ID_CORRUPTED_THIS"; - case D3D12_MESSAGE_ID_CORRUPTED_PARAMETER1: return "D3D12_MESSAGE_ID_CORRUPTED_PARAMETER1"; - case D3D12_MESSAGE_ID_CORRUPTED_PARAMETER2: return "D3D12_MESSAGE_ID_CORRUPTED_PARAMETER2"; - case D3D12_MESSAGE_ID_CORRUPTED_PARAMETER3: return "D3D12_MESSAGE_ID_CORRUPTED_PARAMETER3"; - case D3D12_MESSAGE_ID_CORRUPTED_PARAMETER4: return "D3D12_MESSAGE_ID_CORRUPTED_PARAMETER4"; - case D3D12_MESSAGE_ID_CORRUPTED_PARAMETER5: return "D3D12_MESSAGE_ID_CORRUPTED_PARAMETER5"; - case D3D12_MESSAGE_ID_CORRUPTED_PARAMETER6: return "D3D12_MESSAGE_ID_CORRUPTED_PARAMETER6"; - case D3D12_MESSAGE_ID_CORRUPTED_PARAMETER7: return "D3D12_MESSAGE_ID_CORRUPTED_PARAMETER7"; - case D3D12_MESSAGE_ID_CORRUPTED_PARAMETER8: return "D3D12_MESSAGE_ID_CORRUPTED_PARAMETER8"; - case D3D12_MESSAGE_ID_CORRUPTED_PARAMETER9: return "D3D12_MESSAGE_ID_CORRUPTED_PARAMETER9"; - case D3D12_MESSAGE_ID_CORRUPTED_PARAMETER10: return "D3D12_MESSAGE_ID_CORRUPTED_PARAMETER10"; - case D3D12_MESSAGE_ID_CORRUPTED_PARAMETER11: return "D3D12_MESSAGE_ID_CORRUPTED_PARAMETER11"; - case D3D12_MESSAGE_ID_CORRUPTED_PARAMETER12: return "D3D12_MESSAGE_ID_CORRUPTED_PARAMETER12"; - case D3D12_MESSAGE_ID_CORRUPTED_PARAMETER13: return "D3D12_MESSAGE_ID_CORRUPTED_PARAMETER13"; - case D3D12_MESSAGE_ID_CORRUPTED_PARAMETER14: return "D3D12_MESSAGE_ID_CORRUPTED_PARAMETER14"; - case D3D12_MESSAGE_ID_CORRUPTED_PARAMETER15: return "D3D12_MESSAGE_ID_CORRUPTED_PARAMETER15"; - case D3D12_MESSAGE_ID_CORRUPTED_MULTITHREADING: return "D3D12_MESSAGE_ID_CORRUPTED_MULTITHREADING"; - case D3D12_MESSAGE_ID_MESSAGE_REPORTING_OUTOFMEMORY: return "D3D12_MESSAGE_ID_MESSAGE_REPORTING_OUTOFMEMORY"; - case D3D12_MESSAGE_ID_GETPRIVATEDATA_MOREDATA: return "D3D12_MESSAGE_ID_GETPRIVATEDATA_MOREDATA"; - case D3D12_MESSAGE_ID_SETPRIVATEDATA_INVALIDFREEDATA: return "D3D12_MESSAGE_ID_SETPRIVATEDATA_INVALIDFREEDATA"; - case D3D12_MESSAGE_ID_SETPRIVATEDATA_CHANGINGPARAMS: return "D3D12_MESSAGE_ID_SETPRIVATEDATA_CHANGINGPARAMS"; - case D3D12_MESSAGE_ID_SETPRIVATEDATA_OUTOFMEMORY: return "D3D12_MESSAGE_ID_SETPRIVATEDATA_OUTOFMEMORY"; - case D3D12_MESSAGE_ID_CREATESHADERRESOURCEVIEW_UNRECOGNIZEDFORMAT: return "D3D12_MESSAGE_ID_CREATESHADERRESOURCEVIEW_UNRECOGNIZEDFORMAT"; - case D3D12_MESSAGE_ID_CREATESHADERRESOURCEVIEW_INVALIDDESC: return "D3D12_MESSAGE_ID_CREATESHADERRESOURCEVIEW_INVALIDDESC"; - case D3D12_MESSAGE_ID_CREATESHADERRESOURCEVIEW_INVALIDFORMAT: return "D3D12_MESSAGE_ID_CREATESHADERRESOURCEVIEW_INVALIDFORMAT"; - case D3D12_MESSAGE_ID_CREATESHADERRESOURCEVIEW_INVALIDVIDEOPLANESLICE: return "D3D12_MESSAGE_ID_CREATESHADERRESOURCEVIEW_INVALIDVIDEOPLANESLICE"; - case D3D12_MESSAGE_ID_CREATESHADERRESOURCEVIEW_INVALIDPLANESLICE: return "D3D12_MESSAGE_ID_CREATESHADERRESOURCEVIEW_INVALIDPLANESLICE"; - case D3D12_MESSAGE_ID_CREATESHADERRESOURCEVIEW_INVALIDDIMENSIONS: return "D3D12_MESSAGE_ID_CREATESHADERRESOURCEVIEW_INVALIDDIMENSIONS"; - case D3D12_MESSAGE_ID_CREATESHADERRESOURCEVIEW_INVALIDRESOURCE: return "D3D12_MESSAGE_ID_CREATESHADERRESOURCEVIEW_INVALIDRESOURCE"; - case D3D12_MESSAGE_ID_CREATERENDERTARGETVIEW_UNRECOGNIZEDFORMAT: return "D3D12_MESSAGE_ID_CREATERENDERTARGETVIEW_UNRECOGNIZEDFORMAT"; - case D3D12_MESSAGE_ID_CREATERENDERTARGETVIEW_UNSUPPORTEDFORMAT: return "D3D12_MESSAGE_ID_CREATERENDERTARGETVIEW_UNSUPPORTEDFORMAT"; - case D3D12_MESSAGE_ID_CREATERENDERTARGETVIEW_INVALIDDESC: return "D3D12_MESSAGE_ID_CREATERENDERTARGETVIEW_INVALIDDESC"; - case D3D12_MESSAGE_ID_CREATERENDERTARGETVIEW_INVALIDFORMAT: return "D3D12_MESSAGE_ID_CREATERENDERTARGETVIEW_INVALIDFORMAT"; - case D3D12_MESSAGE_ID_CREATERENDERTARGETVIEW_INVALIDVIDEOPLANESLICE: return "D3D12_MESSAGE_ID_CREATERENDERTARGETVIEW_INVALIDVIDEOPLANESLICE"; - case D3D12_MESSAGE_ID_CREATERENDERTARGETVIEW_INVALIDPLANESLICE: return "D3D12_MESSAGE_ID_CREATERENDERTARGETVIEW_INVALIDPLANESLICE"; - case D3D12_MESSAGE_ID_CREATERENDERTARGETVIEW_INVALIDDIMENSIONS: return "D3D12_MESSAGE_ID_CREATERENDERTARGETVIEW_INVALIDDIMENSIONS"; - case D3D12_MESSAGE_ID_CREATERENDERTARGETVIEW_INVALIDRESOURCE: return "D3D12_MESSAGE_ID_CREATERENDERTARGETVIEW_INVALIDRESOURCE"; - case D3D12_MESSAGE_ID_CREATEDEPTHSTENCILVIEW_UNRECOGNIZEDFORMAT: return "D3D12_MESSAGE_ID_CREATEDEPTHSTENCILVIEW_UNRECOGNIZEDFORMAT"; - case D3D12_MESSAGE_ID_CREATEDEPTHSTENCILVIEW_INVALIDDESC: return "D3D12_MESSAGE_ID_CREATEDEPTHSTENCILVIEW_INVALIDDESC"; - case D3D12_MESSAGE_ID_CREATEDEPTHSTENCILVIEW_INVALIDFORMAT: return "D3D12_MESSAGE_ID_CREATEDEPTHSTENCILVIEW_INVALIDFORMAT"; - case D3D12_MESSAGE_ID_CREATEDEPTHSTENCILVIEW_INVALIDDIMENSIONS: return "D3D12_MESSAGE_ID_CREATEDEPTHSTENCILVIEW_INVALIDDIMENSIONS"; - case D3D12_MESSAGE_ID_CREATEDEPTHSTENCILVIEW_INVALIDRESOURCE: return "D3D12_MESSAGE_ID_CREATEDEPTHSTENCILVIEW_INVALIDRESOURCE"; - case D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_OUTOFMEMORY: return "D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_OUTOFMEMORY"; - case D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_TOOMANYELEMENTS: return "D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_TOOMANYELEMENTS"; - case D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_INVALIDFORMAT: return "D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_INVALIDFORMAT"; - case D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_INCOMPATIBLEFORMAT: return "D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_INCOMPATIBLEFORMAT"; - case D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_INVALIDSLOT: return "D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_INVALIDSLOT"; - case D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_INVALIDINPUTSLOTCLASS: return "D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_INVALIDINPUTSLOTCLASS"; - case D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_STEPRATESLOTCLASSMISMATCH: return "D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_STEPRATESLOTCLASSMISMATCH"; - case D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_INVALIDSLOTCLASSCHANGE: return "D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_INVALIDSLOTCLASSCHANGE"; - case D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_INVALIDSTEPRATECHANGE: return "D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_INVALIDSTEPRATECHANGE"; - case D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_INVALIDALIGNMENT: return "D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_INVALIDALIGNMENT"; - case D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_DUPLICATESEMANTIC: return "D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_DUPLICATESEMANTIC"; - case D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_UNPARSEABLEINPUTSIGNATURE: return "D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_UNPARSEABLEINPUTSIGNATURE"; - case D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_NULLSEMANTIC: return "D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_NULLSEMANTIC"; - case D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_MISSINGELEMENT: return "D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_MISSINGELEMENT"; - case D3D12_MESSAGE_ID_CREATEVERTEXSHADER_OUTOFMEMORY: return "D3D12_MESSAGE_ID_CREATEVERTEXSHADER_OUTOFMEMORY"; - case D3D12_MESSAGE_ID_CREATEVERTEXSHADER_INVALIDSHADERBYTECODE: return "D3D12_MESSAGE_ID_CREATEVERTEXSHADER_INVALIDSHADERBYTECODE"; - case D3D12_MESSAGE_ID_CREATEVERTEXSHADER_INVALIDSHADERTYPE: return "D3D12_MESSAGE_ID_CREATEVERTEXSHADER_INVALIDSHADERTYPE"; - case D3D12_MESSAGE_ID_CREATEGEOMETRYSHADER_OUTOFMEMORY: return "D3D12_MESSAGE_ID_CREATEGEOMETRYSHADER_OUTOFMEMORY"; - case D3D12_MESSAGE_ID_CREATEGEOMETRYSHADER_INVALIDSHADERBYTECODE: return "D3D12_MESSAGE_ID_CREATEGEOMETRYSHADER_INVALIDSHADERBYTECODE"; - case D3D12_MESSAGE_ID_CREATEGEOMETRYSHADER_INVALIDSHADERTYPE: return "D3D12_MESSAGE_ID_CREATEGEOMETRYSHADER_INVALIDSHADERTYPE"; - case D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_OUTOFMEMORY: return "D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_OUTOFMEMORY"; - case D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDSHADERBYTECODE: return "D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDSHADERBYTECODE"; - case D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDSHADERTYPE: return "D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDSHADERTYPE"; - case D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDNUMENTRIES: return "D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDNUMENTRIES"; - case D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_OUTPUTSTREAMSTRIDEUNUSED: return "D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_OUTPUTSTREAMSTRIDEUNUSED"; - case D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_OUTPUTSLOT0EXPECTED: return "D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_OUTPUTSLOT0EXPECTED"; - case D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDOUTPUTSLOT: return "D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDOUTPUTSLOT"; - case D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_ONLYONEELEMENTPERSLOT: return "D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_ONLYONEELEMENTPERSLOT"; - case D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDCOMPONENTCOUNT: return "D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDCOMPONENTCOUNT"; - case D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDSTARTCOMPONENTANDCOMPONENTCOUNT: return "D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDSTARTCOMPONENTANDCOMPONENTCOUNT"; - case D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDGAPDEFINITION: return "D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDGAPDEFINITION"; - case D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_REPEATEDOUTPUT: return "D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_REPEATEDOUTPUT"; - case D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDOUTPUTSTREAMSTRIDE: return "D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDOUTPUTSTREAMSTRIDE"; - case D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_MISSINGSEMANTIC: return "D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_MISSINGSEMANTIC"; - case D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_MASKMISMATCH: return "D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_MASKMISMATCH"; - case D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_CANTHAVEONLYGAPS: return "D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_CANTHAVEONLYGAPS"; - case D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_DECLTOOCOMPLEX: return "D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_DECLTOOCOMPLEX"; - case D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_MISSINGOUTPUTSIGNATURE: return "D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_MISSINGOUTPUTSIGNATURE"; - case D3D12_MESSAGE_ID_CREATEPIXELSHADER_OUTOFMEMORY: return "D3D12_MESSAGE_ID_CREATEPIXELSHADER_OUTOFMEMORY"; - case D3D12_MESSAGE_ID_CREATEPIXELSHADER_INVALIDSHADERBYTECODE: return "D3D12_MESSAGE_ID_CREATEPIXELSHADER_INVALIDSHADERBYTECODE"; - case D3D12_MESSAGE_ID_CREATEPIXELSHADER_INVALIDSHADERTYPE: return "D3D12_MESSAGE_ID_CREATEPIXELSHADER_INVALIDSHADERTYPE"; - case D3D12_MESSAGE_ID_CREATERASTERIZERSTATE_INVALIDFILLMODE: return "D3D12_MESSAGE_ID_CREATERASTERIZERSTATE_INVALIDFILLMODE"; - case D3D12_MESSAGE_ID_CREATERASTERIZERSTATE_INVALIDCULLMODE: return "D3D12_MESSAGE_ID_CREATERASTERIZERSTATE_INVALIDCULLMODE"; - case D3D12_MESSAGE_ID_CREATERASTERIZERSTATE_INVALIDDEPTHBIASCLAMP: return "D3D12_MESSAGE_ID_CREATERASTERIZERSTATE_INVALIDDEPTHBIASCLAMP"; - case D3D12_MESSAGE_ID_CREATERASTERIZERSTATE_INVALIDSLOPESCALEDDEPTHBIAS: return "D3D12_MESSAGE_ID_CREATERASTERIZERSTATE_INVALIDSLOPESCALEDDEPTHBIAS"; - case D3D12_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDDEPTHWRITEMASK: return "D3D12_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDDEPTHWRITEMASK"; - case D3D12_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDDEPTHFUNC: return "D3D12_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDDEPTHFUNC"; - case D3D12_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDFRONTFACESTENCILFAILOP: return "D3D12_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDFRONTFACESTENCILFAILOP"; - case D3D12_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDFRONTFACESTENCILZFAILOP: return "D3D12_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDFRONTFACESTENCILZFAILOP"; - case D3D12_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDFRONTFACESTENCILPASSOP: return "D3D12_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDFRONTFACESTENCILPASSOP"; - case D3D12_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDFRONTFACESTENCILFUNC: return "D3D12_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDFRONTFACESTENCILFUNC"; - case D3D12_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDBACKFACESTENCILFAILOP: return "D3D12_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDBACKFACESTENCILFAILOP"; - case D3D12_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDBACKFACESTENCILZFAILOP: return "D3D12_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDBACKFACESTENCILZFAILOP"; - case D3D12_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDBACKFACESTENCILPASSOP: return "D3D12_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDBACKFACESTENCILPASSOP"; - case D3D12_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDBACKFACESTENCILFUNC: return "D3D12_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDBACKFACESTENCILFUNC"; - case D3D12_MESSAGE_ID_CREATEBLENDSTATE_INVALIDSRCBLEND: return "D3D12_MESSAGE_ID_CREATEBLENDSTATE_INVALIDSRCBLEND"; - case D3D12_MESSAGE_ID_CREATEBLENDSTATE_INVALIDDESTBLEND: return "D3D12_MESSAGE_ID_CREATEBLENDSTATE_INVALIDDESTBLEND"; - case D3D12_MESSAGE_ID_CREATEBLENDSTATE_INVALIDBLENDOP: return "D3D12_MESSAGE_ID_CREATEBLENDSTATE_INVALIDBLENDOP"; - case D3D12_MESSAGE_ID_CREATEBLENDSTATE_INVALIDSRCBLENDALPHA: return "D3D12_MESSAGE_ID_CREATEBLENDSTATE_INVALIDSRCBLENDALPHA"; - case D3D12_MESSAGE_ID_CREATEBLENDSTATE_INVALIDDESTBLENDALPHA: return "D3D12_MESSAGE_ID_CREATEBLENDSTATE_INVALIDDESTBLENDALPHA"; - case D3D12_MESSAGE_ID_CREATEBLENDSTATE_INVALIDBLENDOPALPHA: return "D3D12_MESSAGE_ID_CREATEBLENDSTATE_INVALIDBLENDOPALPHA"; - case D3D12_MESSAGE_ID_CREATEBLENDSTATE_INVALIDRENDERTARGETWRITEMASK: return "D3D12_MESSAGE_ID_CREATEBLENDSTATE_INVALIDRENDERTARGETWRITEMASK"; - case D3D12_MESSAGE_ID_CLEARDEPTHSTENCILVIEW_INVALID: return "D3D12_MESSAGE_ID_CLEARDEPTHSTENCILVIEW_INVALID"; - case D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_ROOT_SIGNATURE_NOT_SET: return "D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_ROOT_SIGNATURE_NOT_SET"; - case D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_ROOT_SIGNATURE_MISMATCH: return "D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_ROOT_SIGNATURE_MISMATCH"; - case D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_VERTEX_BUFFER_NOT_SET: return "D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_VERTEX_BUFFER_NOT_SET"; - case D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_VERTEX_BUFFER_STRIDE_TOO_SMALL: return "D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_VERTEX_BUFFER_STRIDE_TOO_SMALL"; - case D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_VERTEX_BUFFER_TOO_SMALL: return "D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_VERTEX_BUFFER_TOO_SMALL"; - case D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_INDEX_BUFFER_NOT_SET: return "D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_INDEX_BUFFER_NOT_SET"; - case D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_INDEX_BUFFER_FORMAT_INVALID: return "D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_INDEX_BUFFER_FORMAT_INVALID"; - case D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_INDEX_BUFFER_TOO_SMALL: return "D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_INDEX_BUFFER_TOO_SMALL"; - case D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_INVALID_PRIMITIVETOPOLOGY: return "D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_INVALID_PRIMITIVETOPOLOGY"; - case D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_VERTEX_STRIDE_UNALIGNED: return "D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_VERTEX_STRIDE_UNALIGNED"; - case D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_INDEX_OFFSET_UNALIGNED: return "D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_INDEX_OFFSET_UNALIGNED"; - case D3D12_MESSAGE_ID_DEVICE_REMOVAL_PROCESS_AT_FAULT: return "D3D12_MESSAGE_ID_DEVICE_REMOVAL_PROCESS_AT_FAULT"; - case D3D12_MESSAGE_ID_DEVICE_REMOVAL_PROCESS_POSSIBLY_AT_FAULT: return "D3D12_MESSAGE_ID_DEVICE_REMOVAL_PROCESS_POSSIBLY_AT_FAULT"; - case D3D12_MESSAGE_ID_DEVICE_REMOVAL_PROCESS_NOT_AT_FAULT: return "D3D12_MESSAGE_ID_DEVICE_REMOVAL_PROCESS_NOT_AT_FAULT"; - case D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_TRAILING_DIGIT_IN_SEMANTIC: return "D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_TRAILING_DIGIT_IN_SEMANTIC"; - case D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_TRAILING_DIGIT_IN_SEMANTIC: return "D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_TRAILING_DIGIT_IN_SEMANTIC"; - case D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_TYPE_MISMATCH: return "D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_TYPE_MISMATCH"; - case D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_EMPTY_LAYOUT: return "D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_EMPTY_LAYOUT"; - case D3D12_MESSAGE_ID_LIVE_OBJECT_SUMMARY: return "D3D12_MESSAGE_ID_LIVE_OBJECT_SUMMARY"; - case D3D12_MESSAGE_ID_LIVE_DEVICE: return "D3D12_MESSAGE_ID_LIVE_DEVICE"; - case D3D12_MESSAGE_ID_LIVE_SWAPCHAIN: return "D3D12_MESSAGE_ID_LIVE_SWAPCHAIN"; - case D3D12_MESSAGE_ID_CREATEDEPTHSTENCILVIEW_INVALIDFLAGS: return "D3D12_MESSAGE_ID_CREATEDEPTHSTENCILVIEW_INVALIDFLAGS"; - case D3D12_MESSAGE_ID_CREATEVERTEXSHADER_INVALIDCLASSLINKAGE: return "D3D12_MESSAGE_ID_CREATEVERTEXSHADER_INVALIDCLASSLINKAGE"; - case D3D12_MESSAGE_ID_CREATEGEOMETRYSHADER_INVALIDCLASSLINKAGE: return "D3D12_MESSAGE_ID_CREATEGEOMETRYSHADER_INVALIDCLASSLINKAGE"; - case D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDSTREAMTORASTERIZER: return "D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDSTREAMTORASTERIZER"; - case D3D12_MESSAGE_ID_CREATEPIXELSHADER_INVALIDCLASSLINKAGE: return "D3D12_MESSAGE_ID_CREATEPIXELSHADER_INVALIDCLASSLINKAGE"; - case D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDSTREAM: return "D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDSTREAM"; - case D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_UNEXPECTEDENTRIES: return "D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_UNEXPECTEDENTRIES"; - case D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_UNEXPECTEDSTRIDES: return "D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_UNEXPECTEDSTRIDES"; - case D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDNUMSTRIDES: return "D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDNUMSTRIDES"; - case D3D12_MESSAGE_ID_CREATEHULLSHADER_OUTOFMEMORY: return "D3D12_MESSAGE_ID_CREATEHULLSHADER_OUTOFMEMORY"; - case D3D12_MESSAGE_ID_CREATEHULLSHADER_INVALIDSHADERBYTECODE: return "D3D12_MESSAGE_ID_CREATEHULLSHADER_INVALIDSHADERBYTECODE"; - case D3D12_MESSAGE_ID_CREATEHULLSHADER_INVALIDSHADERTYPE: return "D3D12_MESSAGE_ID_CREATEHULLSHADER_INVALIDSHADERTYPE"; - case D3D12_MESSAGE_ID_CREATEHULLSHADER_INVALIDCLASSLINKAGE: return "D3D12_MESSAGE_ID_CREATEHULLSHADER_INVALIDCLASSLINKAGE"; - case D3D12_MESSAGE_ID_CREATEDOMAINSHADER_OUTOFMEMORY: return "D3D12_MESSAGE_ID_CREATEDOMAINSHADER_OUTOFMEMORY"; - case D3D12_MESSAGE_ID_CREATEDOMAINSHADER_INVALIDSHADERBYTECODE: return "D3D12_MESSAGE_ID_CREATEDOMAINSHADER_INVALIDSHADERBYTECODE"; - case D3D12_MESSAGE_ID_CREATEDOMAINSHADER_INVALIDSHADERTYPE: return "D3D12_MESSAGE_ID_CREATEDOMAINSHADER_INVALIDSHADERTYPE"; - case D3D12_MESSAGE_ID_CREATEDOMAINSHADER_INVALIDCLASSLINKAGE: return "D3D12_MESSAGE_ID_CREATEDOMAINSHADER_INVALIDCLASSLINKAGE"; - case D3D12_MESSAGE_ID_RESOURCE_UNMAP_NOTMAPPED: return "D3D12_MESSAGE_ID_RESOURCE_UNMAP_NOTMAPPED"; - case D3D12_MESSAGE_ID_DEVICE_CHECKFEATURESUPPORT_MISMATCHED_DATA_SIZE: return "D3D12_MESSAGE_ID_DEVICE_CHECKFEATURESUPPORT_MISMATCHED_DATA_SIZE"; - case D3D12_MESSAGE_ID_CREATECOMPUTESHADER_OUTOFMEMORY: return "D3D12_MESSAGE_ID_CREATECOMPUTESHADER_OUTOFMEMORY"; - case D3D12_MESSAGE_ID_CREATECOMPUTESHADER_INVALIDSHADERBYTECODE: return "D3D12_MESSAGE_ID_CREATECOMPUTESHADER_INVALIDSHADERBYTECODE"; - case D3D12_MESSAGE_ID_CREATECOMPUTESHADER_INVALIDCLASSLINKAGE: return "D3D12_MESSAGE_ID_CREATECOMPUTESHADER_INVALIDCLASSLINKAGE"; - case D3D12_MESSAGE_ID_DEVICE_CREATEVERTEXSHADER_DOUBLEFLOATOPSNOTSUPPORTED: return "D3D12_MESSAGE_ID_DEVICE_CREATEVERTEXSHADER_DOUBLEFLOATOPSNOTSUPPORTED"; - case D3D12_MESSAGE_ID_DEVICE_CREATEHULLSHADER_DOUBLEFLOATOPSNOTSUPPORTED: return "D3D12_MESSAGE_ID_DEVICE_CREATEHULLSHADER_DOUBLEFLOATOPSNOTSUPPORTED"; - case D3D12_MESSAGE_ID_DEVICE_CREATEDOMAINSHADER_DOUBLEFLOATOPSNOTSUPPORTED: return "D3D12_MESSAGE_ID_DEVICE_CREATEDOMAINSHADER_DOUBLEFLOATOPSNOTSUPPORTED"; - case D3D12_MESSAGE_ID_DEVICE_CREATEGEOMETRYSHADER_DOUBLEFLOATOPSNOTSUPPORTED: return "D3D12_MESSAGE_ID_DEVICE_CREATEGEOMETRYSHADER_DOUBLEFLOATOPSNOTSUPPORTED"; - case D3D12_MESSAGE_ID_DEVICE_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_DOUBLEFLOATOPSNOTSUPPORTED: return "D3D12_MESSAGE_ID_DEVICE_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_DOUBLEFLOATOPSNOTSUPPORTED"; - case D3D12_MESSAGE_ID_DEVICE_CREATEPIXELSHADER_DOUBLEFLOATOPSNOTSUPPORTED: return "D3D12_MESSAGE_ID_DEVICE_CREATEPIXELSHADER_DOUBLEFLOATOPSNOTSUPPORTED"; - case D3D12_MESSAGE_ID_DEVICE_CREATECOMPUTESHADER_DOUBLEFLOATOPSNOTSUPPORTED: return "D3D12_MESSAGE_ID_DEVICE_CREATECOMPUTESHADER_DOUBLEFLOATOPSNOTSUPPORTED"; - case D3D12_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_INVALIDRESOURCE: return "D3D12_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_INVALIDRESOURCE"; - case D3D12_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_INVALIDDESC: return "D3D12_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_INVALIDDESC"; - case D3D12_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_INVALIDFORMAT: return "D3D12_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_INVALIDFORMAT"; - case D3D12_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_INVALIDVIDEOPLANESLICE: return "D3D12_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_INVALIDVIDEOPLANESLICE"; - case D3D12_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_INVALIDPLANESLICE: return "D3D12_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_INVALIDPLANESLICE"; - case D3D12_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_INVALIDDIMENSIONS: return "D3D12_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_INVALIDDIMENSIONS"; - case D3D12_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_UNRECOGNIZEDFORMAT: return "D3D12_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_UNRECOGNIZEDFORMAT"; - case D3D12_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_INVALIDFLAGS: return "D3D12_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_INVALIDFLAGS"; - case D3D12_MESSAGE_ID_CREATERASTERIZERSTATE_INVALIDFORCEDSAMPLECOUNT: return "D3D12_MESSAGE_ID_CREATERASTERIZERSTATE_INVALIDFORCEDSAMPLECOUNT"; - case D3D12_MESSAGE_ID_CREATEBLENDSTATE_INVALIDLOGICOPS: return "D3D12_MESSAGE_ID_CREATEBLENDSTATE_INVALIDLOGICOPS"; - case D3D12_MESSAGE_ID_DEVICE_CREATEVERTEXSHADER_DOUBLEEXTENSIONSNOTSUPPORTED: return "D3D12_MESSAGE_ID_DEVICE_CREATEVERTEXSHADER_DOUBLEEXTENSIONSNOTSUPPORTED"; - case D3D12_MESSAGE_ID_DEVICE_CREATEHULLSHADER_DOUBLEEXTENSIONSNOTSUPPORTED: return "D3D12_MESSAGE_ID_DEVICE_CREATEHULLSHADER_DOUBLEEXTENSIONSNOTSUPPORTED"; - case D3D12_MESSAGE_ID_DEVICE_CREATEDOMAINSHADER_DOUBLEEXTENSIONSNOTSUPPORTED: return "D3D12_MESSAGE_ID_DEVICE_CREATEDOMAINSHADER_DOUBLEEXTENSIONSNOTSUPPORTED"; - case D3D12_MESSAGE_ID_DEVICE_CREATEGEOMETRYSHADER_DOUBLEEXTENSIONSNOTSUPPORTED: return "D3D12_MESSAGE_ID_DEVICE_CREATEGEOMETRYSHADER_DOUBLEEXTENSIONSNOTSUPPORTED"; - case D3D12_MESSAGE_ID_DEVICE_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_DOUBLEEXTENSIONSNOTSUPPORTED: return "D3D12_MESSAGE_ID_DEVICE_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_DOUBLEEXTENSIONSNOTSUPPORTED"; - case D3D12_MESSAGE_ID_DEVICE_CREATEPIXELSHADER_DOUBLEEXTENSIONSNOTSUPPORTED: return "D3D12_MESSAGE_ID_DEVICE_CREATEPIXELSHADER_DOUBLEEXTENSIONSNOTSUPPORTED"; - case D3D12_MESSAGE_ID_DEVICE_CREATECOMPUTESHADER_DOUBLEEXTENSIONSNOTSUPPORTED: return "D3D12_MESSAGE_ID_DEVICE_CREATECOMPUTESHADER_DOUBLEEXTENSIONSNOTSUPPORTED"; - case D3D12_MESSAGE_ID_DEVICE_CREATEVERTEXSHADER_UAVSNOTSUPPORTED: return "D3D12_MESSAGE_ID_DEVICE_CREATEVERTEXSHADER_UAVSNOTSUPPORTED"; - case D3D12_MESSAGE_ID_DEVICE_CREATEHULLSHADER_UAVSNOTSUPPORTED: return "D3D12_MESSAGE_ID_DEVICE_CREATEHULLSHADER_UAVSNOTSUPPORTED"; - case D3D12_MESSAGE_ID_DEVICE_CREATEDOMAINSHADER_UAVSNOTSUPPORTED: return "D3D12_MESSAGE_ID_DEVICE_CREATEDOMAINSHADER_UAVSNOTSUPPORTED"; - case D3D12_MESSAGE_ID_DEVICE_CREATEGEOMETRYSHADER_UAVSNOTSUPPORTED: return "D3D12_MESSAGE_ID_DEVICE_CREATEGEOMETRYSHADER_UAVSNOTSUPPORTED"; - case D3D12_MESSAGE_ID_DEVICE_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_UAVSNOTSUPPORTED: return "D3D12_MESSAGE_ID_DEVICE_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_UAVSNOTSUPPORTED"; - case D3D12_MESSAGE_ID_DEVICE_CREATEPIXELSHADER_UAVSNOTSUPPORTED: return "D3D12_MESSAGE_ID_DEVICE_CREATEPIXELSHADER_UAVSNOTSUPPORTED"; - case D3D12_MESSAGE_ID_DEVICE_CREATECOMPUTESHADER_UAVSNOTSUPPORTED: return "D3D12_MESSAGE_ID_DEVICE_CREATECOMPUTESHADER_UAVSNOTSUPPORTED"; - case D3D12_MESSAGE_ID_DEVICE_CLEARVIEW_INVALIDSOURCERECT: return "D3D12_MESSAGE_ID_DEVICE_CLEARVIEW_INVALIDSOURCERECT"; - case D3D12_MESSAGE_ID_DEVICE_CLEARVIEW_EMPTYRECT: return "D3D12_MESSAGE_ID_DEVICE_CLEARVIEW_EMPTYRECT"; - case D3D12_MESSAGE_ID_UPDATETILEMAPPINGS_INVALID_PARAMETER: return "D3D12_MESSAGE_ID_UPDATETILEMAPPINGS_INVALID_PARAMETER"; - case D3D12_MESSAGE_ID_COPYTILEMAPPINGS_INVALID_PARAMETER: return "D3D12_MESSAGE_ID_COPYTILEMAPPINGS_INVALID_PARAMETER"; - case D3D12_MESSAGE_ID_CREATEDEVICE_INVALIDARGS: return "D3D12_MESSAGE_ID_CREATEDEVICE_INVALIDARGS"; - case D3D12_MESSAGE_ID_CREATEDEVICE_WARNING: return "D3D12_MESSAGE_ID_CREATEDEVICE_WARNING"; - case D3D12_MESSAGE_ID_RESOURCE_BARRIER_INVALID_TYPE: return "D3D12_MESSAGE_ID_RESOURCE_BARRIER_INVALID_TYPE"; - case D3D12_MESSAGE_ID_RESOURCE_BARRIER_NULL_POINTER: return "D3D12_MESSAGE_ID_RESOURCE_BARRIER_NULL_POINTER"; - case D3D12_MESSAGE_ID_RESOURCE_BARRIER_INVALID_SUBRESOURCE: return "D3D12_MESSAGE_ID_RESOURCE_BARRIER_INVALID_SUBRESOURCE"; - case D3D12_MESSAGE_ID_RESOURCE_BARRIER_RESERVED_BITS: return "D3D12_MESSAGE_ID_RESOURCE_BARRIER_RESERVED_BITS"; - case D3D12_MESSAGE_ID_RESOURCE_BARRIER_MISSING_BIND_FLAGS: return "D3D12_MESSAGE_ID_RESOURCE_BARRIER_MISSING_BIND_FLAGS"; - case D3D12_MESSAGE_ID_RESOURCE_BARRIER_MISMATCHING_MISC_FLAGS: return "D3D12_MESSAGE_ID_RESOURCE_BARRIER_MISMATCHING_MISC_FLAGS"; - case D3D12_MESSAGE_ID_RESOURCE_BARRIER_MATCHING_STATES: return "D3D12_MESSAGE_ID_RESOURCE_BARRIER_MATCHING_STATES"; - case D3D12_MESSAGE_ID_RESOURCE_BARRIER_INVALID_COMBINATION: return "D3D12_MESSAGE_ID_RESOURCE_BARRIER_INVALID_COMBINATION"; - case D3D12_MESSAGE_ID_RESOURCE_BARRIER_BEFORE_AFTER_MISMATCH: return "D3D12_MESSAGE_ID_RESOURCE_BARRIER_BEFORE_AFTER_MISMATCH"; - case D3D12_MESSAGE_ID_RESOURCE_BARRIER_INVALID_RESOURCE: return "D3D12_MESSAGE_ID_RESOURCE_BARRIER_INVALID_RESOURCE"; - case D3D12_MESSAGE_ID_RESOURCE_BARRIER_SAMPLE_COUNT: return "D3D12_MESSAGE_ID_RESOURCE_BARRIER_SAMPLE_COUNT"; - case D3D12_MESSAGE_ID_RESOURCE_BARRIER_INVALID_FLAGS: return "D3D12_MESSAGE_ID_RESOURCE_BARRIER_INVALID_FLAGS"; - case D3D12_MESSAGE_ID_RESOURCE_BARRIER_INVALID_COMBINED_FLAGS: return "D3D12_MESSAGE_ID_RESOURCE_BARRIER_INVALID_COMBINED_FLAGS"; - case D3D12_MESSAGE_ID_RESOURCE_BARRIER_INVALID_FLAGS_FOR_FORMAT: return "D3D12_MESSAGE_ID_RESOURCE_BARRIER_INVALID_FLAGS_FOR_FORMAT"; - case D3D12_MESSAGE_ID_RESOURCE_BARRIER_INVALID_SPLIT_BARRIER: return "D3D12_MESSAGE_ID_RESOURCE_BARRIER_INVALID_SPLIT_BARRIER"; - case D3D12_MESSAGE_ID_RESOURCE_BARRIER_UNMATCHED_END: return "D3D12_MESSAGE_ID_RESOURCE_BARRIER_UNMATCHED_END"; - case D3D12_MESSAGE_ID_RESOURCE_BARRIER_UNMATCHED_BEGIN: return "D3D12_MESSAGE_ID_RESOURCE_BARRIER_UNMATCHED_BEGIN"; - case D3D12_MESSAGE_ID_RESOURCE_BARRIER_INVALID_FLAG: return "D3D12_MESSAGE_ID_RESOURCE_BARRIER_INVALID_FLAG"; - case D3D12_MESSAGE_ID_RESOURCE_BARRIER_INVALID_COMMAND_LIST_TYPE: return "D3D12_MESSAGE_ID_RESOURCE_BARRIER_INVALID_COMMAND_LIST_TYPE"; - case D3D12_MESSAGE_ID_INVALID_SUBRESOURCE_STATE: return "D3D12_MESSAGE_ID_INVALID_SUBRESOURCE_STATE"; - case D3D12_MESSAGE_ID_COMMAND_ALLOCATOR_CONTENTION: return "D3D12_MESSAGE_ID_COMMAND_ALLOCATOR_CONTENTION"; - case D3D12_MESSAGE_ID_COMMAND_ALLOCATOR_RESET: return "D3D12_MESSAGE_ID_COMMAND_ALLOCATOR_RESET"; - case D3D12_MESSAGE_ID_COMMAND_ALLOCATOR_RESET_BUNDLE: return "D3D12_MESSAGE_ID_COMMAND_ALLOCATOR_RESET_BUNDLE"; - case D3D12_MESSAGE_ID_COMMAND_ALLOCATOR_CANNOT_RESET: return "D3D12_MESSAGE_ID_COMMAND_ALLOCATOR_CANNOT_RESET"; - case D3D12_MESSAGE_ID_COMMAND_LIST_OPEN: return "D3D12_MESSAGE_ID_COMMAND_LIST_OPEN"; - case D3D12_MESSAGE_ID_INVALID_BUNDLE_API: return "D3D12_MESSAGE_ID_INVALID_BUNDLE_API"; - case D3D12_MESSAGE_ID_COMMAND_LIST_CLOSED: return "D3D12_MESSAGE_ID_COMMAND_LIST_CLOSED"; - case D3D12_MESSAGE_ID_WRONG_COMMAND_ALLOCATOR_TYPE: return "D3D12_MESSAGE_ID_WRONG_COMMAND_ALLOCATOR_TYPE"; - case D3D12_MESSAGE_ID_COMMAND_ALLOCATOR_SYNC: return "D3D12_MESSAGE_ID_COMMAND_ALLOCATOR_SYNC"; - case D3D12_MESSAGE_ID_COMMAND_LIST_SYNC: return "D3D12_MESSAGE_ID_COMMAND_LIST_SYNC"; - case D3D12_MESSAGE_ID_SET_DESCRIPTOR_HEAP_INVALID: return "D3D12_MESSAGE_ID_SET_DESCRIPTOR_HEAP_INVALID"; - case D3D12_MESSAGE_ID_CREATE_COMMANDQUEUE: return "D3D12_MESSAGE_ID_CREATE_COMMANDQUEUE"; - case D3D12_MESSAGE_ID_CREATE_COMMANDALLOCATOR: return "D3D12_MESSAGE_ID_CREATE_COMMANDALLOCATOR"; - case D3D12_MESSAGE_ID_CREATE_PIPELINESTATE: return "D3D12_MESSAGE_ID_CREATE_PIPELINESTATE"; - case D3D12_MESSAGE_ID_CREATE_COMMANDLIST12: return "D3D12_MESSAGE_ID_CREATE_COMMANDLIST12"; - case D3D12_MESSAGE_ID_CREATE_RESOURCE: return "D3D12_MESSAGE_ID_CREATE_RESOURCE"; - case D3D12_MESSAGE_ID_CREATE_DESCRIPTORHEAP: return "D3D12_MESSAGE_ID_CREATE_DESCRIPTORHEAP"; - case D3D12_MESSAGE_ID_CREATE_ROOTSIGNATURE: return "D3D12_MESSAGE_ID_CREATE_ROOTSIGNATURE"; - case D3D12_MESSAGE_ID_CREATE_LIBRARY: return "D3D12_MESSAGE_ID_CREATE_LIBRARY"; - case D3D12_MESSAGE_ID_CREATE_HEAP: return "D3D12_MESSAGE_ID_CREATE_HEAP"; - case D3D12_MESSAGE_ID_CREATE_MONITOREDFENCE: return "D3D12_MESSAGE_ID_CREATE_MONITOREDFENCE"; - case D3D12_MESSAGE_ID_CREATE_QUERYHEAP: return "D3D12_MESSAGE_ID_CREATE_QUERYHEAP"; - case D3D12_MESSAGE_ID_CREATE_COMMANDSIGNATURE: return "D3D12_MESSAGE_ID_CREATE_COMMANDSIGNATURE"; - case D3D12_MESSAGE_ID_LIVE_COMMANDQUEUE: return "D3D12_MESSAGE_ID_LIVE_COMMANDQUEUE"; - case D3D12_MESSAGE_ID_LIVE_COMMANDALLOCATOR: return "D3D12_MESSAGE_ID_LIVE_COMMANDALLOCATOR"; - case D3D12_MESSAGE_ID_LIVE_PIPELINESTATE: return "D3D12_MESSAGE_ID_LIVE_PIPELINESTATE"; - case D3D12_MESSAGE_ID_LIVE_COMMANDLIST12: return "D3D12_MESSAGE_ID_LIVE_COMMANDLIST12"; - case D3D12_MESSAGE_ID_LIVE_RESOURCE: return "D3D12_MESSAGE_ID_LIVE_RESOURCE"; - case D3D12_MESSAGE_ID_LIVE_DESCRIPTORHEAP: return "D3D12_MESSAGE_ID_LIVE_DESCRIPTORHEAP"; - case D3D12_MESSAGE_ID_LIVE_ROOTSIGNATURE: return "D3D12_MESSAGE_ID_LIVE_ROOTSIGNATURE"; - case D3D12_MESSAGE_ID_LIVE_LIBRARY: return "D3D12_MESSAGE_ID_LIVE_LIBRARY"; - case D3D12_MESSAGE_ID_LIVE_HEAP: return "D3D12_MESSAGE_ID_LIVE_HEAP"; - case D3D12_MESSAGE_ID_LIVE_MONITOREDFENCE: return "D3D12_MESSAGE_ID_LIVE_MONITOREDFENCE"; - case D3D12_MESSAGE_ID_LIVE_QUERYHEAP: return "D3D12_MESSAGE_ID_LIVE_QUERYHEAP"; - case D3D12_MESSAGE_ID_LIVE_COMMANDSIGNATURE: return "D3D12_MESSAGE_ID_LIVE_COMMANDSIGNATURE"; - case D3D12_MESSAGE_ID_DESTROY_COMMANDQUEUE: return "D3D12_MESSAGE_ID_DESTROY_COMMANDQUEUE"; - case D3D12_MESSAGE_ID_DESTROY_COMMANDALLOCATOR: return "D3D12_MESSAGE_ID_DESTROY_COMMANDALLOCATOR"; - case D3D12_MESSAGE_ID_DESTROY_PIPELINESTATE: return "D3D12_MESSAGE_ID_DESTROY_PIPELINESTATE"; - case D3D12_MESSAGE_ID_DESTROY_COMMANDLIST12: return "D3D12_MESSAGE_ID_DESTROY_COMMANDLIST12"; - case D3D12_MESSAGE_ID_DESTROY_RESOURCE: return "D3D12_MESSAGE_ID_DESTROY_RESOURCE"; - case D3D12_MESSAGE_ID_DESTROY_DESCRIPTORHEAP: return "D3D12_MESSAGE_ID_DESTROY_DESCRIPTORHEAP"; - case D3D12_MESSAGE_ID_DESTROY_ROOTSIGNATURE: return "D3D12_MESSAGE_ID_DESTROY_ROOTSIGNATURE"; - case D3D12_MESSAGE_ID_DESTROY_LIBRARY: return "D3D12_MESSAGE_ID_DESTROY_LIBRARY"; - case D3D12_MESSAGE_ID_DESTROY_HEAP: return "D3D12_MESSAGE_ID_DESTROY_HEAP"; - case D3D12_MESSAGE_ID_DESTROY_MONITOREDFENCE: return "D3D12_MESSAGE_ID_DESTROY_MONITOREDFENCE"; - case D3D12_MESSAGE_ID_DESTROY_QUERYHEAP: return "D3D12_MESSAGE_ID_DESTROY_QUERYHEAP"; - case D3D12_MESSAGE_ID_DESTROY_COMMANDSIGNATURE: return "D3D12_MESSAGE_ID_DESTROY_COMMANDSIGNATURE"; - case D3D12_MESSAGE_ID_CREATERESOURCE_INVALIDDIMENSIONS: return "D3D12_MESSAGE_ID_CREATERESOURCE_INVALIDDIMENSIONS"; - case D3D12_MESSAGE_ID_CREATERESOURCE_INVALIDMISCFLAGS: return "D3D12_MESSAGE_ID_CREATERESOURCE_INVALIDMISCFLAGS"; - case D3D12_MESSAGE_ID_CREATERESOURCE_INVALIDARG_RETURN: return "D3D12_MESSAGE_ID_CREATERESOURCE_INVALIDARG_RETURN"; - case D3D12_MESSAGE_ID_CREATERESOURCE_OUTOFMEMORY_RETURN: return "D3D12_MESSAGE_ID_CREATERESOURCE_OUTOFMEMORY_RETURN"; - case D3D12_MESSAGE_ID_CREATERESOURCE_INVALIDDESC: return "D3D12_MESSAGE_ID_CREATERESOURCE_INVALIDDESC"; - case D3D12_MESSAGE_ID_POSSIBLY_INVALID_SUBRESOURCE_STATE: return "D3D12_MESSAGE_ID_POSSIBLY_INVALID_SUBRESOURCE_STATE"; - case D3D12_MESSAGE_ID_INVALID_USE_OF_NON_RESIDENT_RESOURCE: return "D3D12_MESSAGE_ID_INVALID_USE_OF_NON_RESIDENT_RESOURCE"; - case D3D12_MESSAGE_ID_POSSIBLE_INVALID_USE_OF_NON_RESIDENT_RESOURCE: return "D3D12_MESSAGE_ID_POSSIBLE_INVALID_USE_OF_NON_RESIDENT_RESOURCE"; - case D3D12_MESSAGE_ID_BUNDLE_PIPELINE_STATE_MISMATCH: return "D3D12_MESSAGE_ID_BUNDLE_PIPELINE_STATE_MISMATCH"; - case D3D12_MESSAGE_ID_PRIMITIVE_TOPOLOGY_MISMATCH_PIPELINE_STATE: return "D3D12_MESSAGE_ID_PRIMITIVE_TOPOLOGY_MISMATCH_PIPELINE_STATE"; - case D3D12_MESSAGE_ID_RENDER_TARGET_FORMAT_MISMATCH_PIPELINE_STATE: return "D3D12_MESSAGE_ID_RENDER_TARGET_FORMAT_MISMATCH_PIPELINE_STATE"; - case D3D12_MESSAGE_ID_RENDER_TARGET_SAMPLE_DESC_MISMATCH_PIPELINE_STATE: return "D3D12_MESSAGE_ID_RENDER_TARGET_SAMPLE_DESC_MISMATCH_PIPELINE_STATE"; - case D3D12_MESSAGE_ID_DEPTH_STENCIL_FORMAT_MISMATCH_PIPELINE_STATE: return "D3D12_MESSAGE_ID_DEPTH_STENCIL_FORMAT_MISMATCH_PIPELINE_STATE"; - case D3D12_MESSAGE_ID_DEPTH_STENCIL_SAMPLE_DESC_MISMATCH_PIPELINE_STATE: return "D3D12_MESSAGE_ID_DEPTH_STENCIL_SAMPLE_DESC_MISMATCH_PIPELINE_STATE"; - case D3D12_MESSAGE_ID_CREATESHADER_INVALIDBYTECODE: return "D3D12_MESSAGE_ID_CREATESHADER_INVALIDBYTECODE"; - case D3D12_MESSAGE_ID_CREATEHEAP_NULLDESC: return "D3D12_MESSAGE_ID_CREATEHEAP_NULLDESC"; - case D3D12_MESSAGE_ID_CREATEHEAP_INVALIDSIZE: return "D3D12_MESSAGE_ID_CREATEHEAP_INVALIDSIZE"; - case D3D12_MESSAGE_ID_CREATEHEAP_UNRECOGNIZEDHEAPTYPE: return "D3D12_MESSAGE_ID_CREATEHEAP_UNRECOGNIZEDHEAPTYPE"; - case D3D12_MESSAGE_ID_CREATEHEAP_UNRECOGNIZEDCPUPAGEPROPERTIES: return "D3D12_MESSAGE_ID_CREATEHEAP_UNRECOGNIZEDCPUPAGEPROPERTIES"; - case D3D12_MESSAGE_ID_CREATEHEAP_UNRECOGNIZEDMEMORYPOOL: return "D3D12_MESSAGE_ID_CREATEHEAP_UNRECOGNIZEDMEMORYPOOL"; - case D3D12_MESSAGE_ID_CREATEHEAP_INVALIDPROPERTIES: return "D3D12_MESSAGE_ID_CREATEHEAP_INVALIDPROPERTIES"; - case D3D12_MESSAGE_ID_CREATEHEAP_INVALIDALIGNMENT: return "D3D12_MESSAGE_ID_CREATEHEAP_INVALIDALIGNMENT"; - case D3D12_MESSAGE_ID_CREATEHEAP_UNRECOGNIZEDMISCFLAGS: return "D3D12_MESSAGE_ID_CREATEHEAP_UNRECOGNIZEDMISCFLAGS"; - case D3D12_MESSAGE_ID_CREATEHEAP_INVALIDMISCFLAGS: return "D3D12_MESSAGE_ID_CREATEHEAP_INVALIDMISCFLAGS"; - case D3D12_MESSAGE_ID_CREATEHEAP_INVALIDARG_RETURN: return "D3D12_MESSAGE_ID_CREATEHEAP_INVALIDARG_RETURN"; - case D3D12_MESSAGE_ID_CREATEHEAP_OUTOFMEMORY_RETURN: return "D3D12_MESSAGE_ID_CREATEHEAP_OUTOFMEMORY_RETURN"; - case D3D12_MESSAGE_ID_CREATERESOURCEANDHEAP_NULLHEAPPROPERTIES: return "D3D12_MESSAGE_ID_CREATERESOURCEANDHEAP_NULLHEAPPROPERTIES"; - case D3D12_MESSAGE_ID_CREATERESOURCEANDHEAP_UNRECOGNIZEDHEAPTYPE: return "D3D12_MESSAGE_ID_CREATERESOURCEANDHEAP_UNRECOGNIZEDHEAPTYPE"; - case D3D12_MESSAGE_ID_CREATERESOURCEANDHEAP_UNRECOGNIZEDCPUPAGEPROPERTIES: return "D3D12_MESSAGE_ID_CREATERESOURCEANDHEAP_UNRECOGNIZEDCPUPAGEPROPERTIES"; - case D3D12_MESSAGE_ID_CREATERESOURCEANDHEAP_UNRECOGNIZEDMEMORYPOOL: return "D3D12_MESSAGE_ID_CREATERESOURCEANDHEAP_UNRECOGNIZEDMEMORYPOOL"; - case D3D12_MESSAGE_ID_CREATERESOURCEANDHEAP_INVALIDHEAPPROPERTIES: return "D3D12_MESSAGE_ID_CREATERESOURCEANDHEAP_INVALIDHEAPPROPERTIES"; - case D3D12_MESSAGE_ID_CREATERESOURCEANDHEAP_UNRECOGNIZEDHEAPMISCFLAGS: return "D3D12_MESSAGE_ID_CREATERESOURCEANDHEAP_UNRECOGNIZEDHEAPMISCFLAGS"; - case D3D12_MESSAGE_ID_CREATERESOURCEANDHEAP_INVALIDHEAPMISCFLAGS: return "D3D12_MESSAGE_ID_CREATERESOURCEANDHEAP_INVALIDHEAPMISCFLAGS"; - case D3D12_MESSAGE_ID_CREATERESOURCEANDHEAP_INVALIDARG_RETURN: return "D3D12_MESSAGE_ID_CREATERESOURCEANDHEAP_INVALIDARG_RETURN"; - case D3D12_MESSAGE_ID_CREATERESOURCEANDHEAP_OUTOFMEMORY_RETURN: return "D3D12_MESSAGE_ID_CREATERESOURCEANDHEAP_OUTOFMEMORY_RETURN"; - case D3D12_MESSAGE_ID_GETCUSTOMHEAPPROPERTIES_UNRECOGNIZEDHEAPTYPE: return "D3D12_MESSAGE_ID_GETCUSTOMHEAPPROPERTIES_UNRECOGNIZEDHEAPTYPE"; - case D3D12_MESSAGE_ID_GETCUSTOMHEAPPROPERTIES_INVALIDHEAPTYPE: return "D3D12_MESSAGE_ID_GETCUSTOMHEAPPROPERTIES_INVALIDHEAPTYPE"; - case D3D12_MESSAGE_ID_CREATE_DESCRIPTOR_HEAP_INVALID_DESC: return "D3D12_MESSAGE_ID_CREATE_DESCRIPTOR_HEAP_INVALID_DESC"; - case D3D12_MESSAGE_ID_INVALID_DESCRIPTOR_HANDLE: return "D3D12_MESSAGE_ID_INVALID_DESCRIPTOR_HANDLE"; - case D3D12_MESSAGE_ID_CREATERASTERIZERSTATE_INVALID_CONSERVATIVERASTERMODE: return "D3D12_MESSAGE_ID_CREATERASTERIZERSTATE_INVALID_CONSERVATIVERASTERMODE"; - case D3D12_MESSAGE_ID_CREATE_CONSTANT_BUFFER_VIEW_INVALID_RESOURCE: return "D3D12_MESSAGE_ID_CREATE_CONSTANT_BUFFER_VIEW_INVALID_RESOURCE"; - case D3D12_MESSAGE_ID_CREATE_CONSTANT_BUFFER_VIEW_INVALID_DESC: return "D3D12_MESSAGE_ID_CREATE_CONSTANT_BUFFER_VIEW_INVALID_DESC"; - case D3D12_MESSAGE_ID_CREATE_UNORDEREDACCESS_VIEW_INVALID_COUNTER_USAGE: return "D3D12_MESSAGE_ID_CREATE_UNORDEREDACCESS_VIEW_INVALID_COUNTER_USAGE"; - case D3D12_MESSAGE_ID_COPY_DESCRIPTORS_INVALID_RANGES: return "D3D12_MESSAGE_ID_COPY_DESCRIPTORS_INVALID_RANGES"; - case D3D12_MESSAGE_ID_COPY_DESCRIPTORS_WRITE_ONLY_DESCRIPTOR: return "D3D12_MESSAGE_ID_COPY_DESCRIPTORS_WRITE_ONLY_DESCRIPTOR"; - case D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_RTV_FORMAT_NOT_UNKNOWN: return "D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_RTV_FORMAT_NOT_UNKNOWN"; - case D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_INVALID_RENDER_TARGET_COUNT: return "D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_INVALID_RENDER_TARGET_COUNT"; - case D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_VERTEX_SHADER_NOT_SET: return "D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_VERTEX_SHADER_NOT_SET"; - case D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_INPUTLAYOUT_NOT_SET: return "D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_INPUTLAYOUT_NOT_SET"; - case D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_SHADER_LINKAGE_HS_DS_SIGNATURE_MISMATCH: return "D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_SHADER_LINKAGE_HS_DS_SIGNATURE_MISMATCH"; - case D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_SHADER_LINKAGE_REGISTERINDEX: return "D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_SHADER_LINKAGE_REGISTERINDEX"; - case D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_SHADER_LINKAGE_COMPONENTTYPE: return "D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_SHADER_LINKAGE_COMPONENTTYPE"; - case D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_SHADER_LINKAGE_REGISTERMASK: return "D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_SHADER_LINKAGE_REGISTERMASK"; - case D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_SHADER_LINKAGE_SYSTEMVALUE: return "D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_SHADER_LINKAGE_SYSTEMVALUE"; - case D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_SHADER_LINKAGE_NEVERWRITTEN_ALWAYSREADS: return "D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_SHADER_LINKAGE_NEVERWRITTEN_ALWAYSREADS"; - case D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_SHADER_LINKAGE_MINPRECISION: return "D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_SHADER_LINKAGE_MINPRECISION"; - case D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_SHADER_LINKAGE_SEMANTICNAME_NOT_FOUND: return "D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_SHADER_LINKAGE_SEMANTICNAME_NOT_FOUND"; - case D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_HS_XOR_DS_MISMATCH: return "D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_HS_XOR_DS_MISMATCH"; - case D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_HULL_SHADER_INPUT_TOPOLOGY_MISMATCH: return "D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_HULL_SHADER_INPUT_TOPOLOGY_MISMATCH"; - case D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_HS_DS_CONTROL_POINT_COUNT_MISMATCH: return "D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_HS_DS_CONTROL_POINT_COUNT_MISMATCH"; - case D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_HS_DS_TESSELLATOR_DOMAIN_MISMATCH: return "D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_HS_DS_TESSELLATOR_DOMAIN_MISMATCH"; - case D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_INVALID_USE_OF_CENTER_MULTISAMPLE_PATTERN: return "D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_INVALID_USE_OF_CENTER_MULTISAMPLE_PATTERN"; - case D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_INVALID_USE_OF_FORCED_SAMPLE_COUNT: return "D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_INVALID_USE_OF_FORCED_SAMPLE_COUNT"; - case D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_INVALID_PRIMITIVETOPOLOGY: return "D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_INVALID_PRIMITIVETOPOLOGY"; - case D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_INVALID_SYSTEMVALUE: return "D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_INVALID_SYSTEMVALUE"; - case D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_OM_DUAL_SOURCE_BLENDING_CAN_ONLY_HAVE_RENDER_TARGET_0: return "D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_OM_DUAL_SOURCE_BLENDING_CAN_ONLY_HAVE_RENDER_TARGET_0"; - case D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_OM_RENDER_TARGET_DOES_NOT_SUPPORT_BLENDING: return "D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_OM_RENDER_TARGET_DOES_NOT_SUPPORT_BLENDING"; - case D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_PS_OUTPUT_TYPE_MISMATCH: return "D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_PS_OUTPUT_TYPE_MISMATCH"; - case D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_OM_RENDER_TARGET_DOES_NOT_SUPPORT_LOGIC_OPS: return "D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_OM_RENDER_TARGET_DOES_NOT_SUPPORT_LOGIC_OPS"; - case D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_RENDERTARGETVIEW_NOT_SET: return "D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_RENDERTARGETVIEW_NOT_SET"; - case D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_DEPTHSTENCILVIEW_NOT_SET: return "D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_DEPTHSTENCILVIEW_NOT_SET"; - case D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_GS_INPUT_PRIMITIVE_MISMATCH: return "D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_GS_INPUT_PRIMITIVE_MISMATCH"; - case D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_POSITION_NOT_PRESENT: return "D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_POSITION_NOT_PRESENT"; - case D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_MISSING_ROOT_SIGNATURE_FLAGS: return "D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_MISSING_ROOT_SIGNATURE_FLAGS"; - case D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_INVALID_INDEX_BUFFER_PROPERTIES: return "D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_INVALID_INDEX_BUFFER_PROPERTIES"; - case D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_INVALID_SAMPLE_DESC: return "D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_INVALID_SAMPLE_DESC"; - case D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_HS_ROOT_SIGNATURE_MISMATCH: return "D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_HS_ROOT_SIGNATURE_MISMATCH"; - case D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_DS_ROOT_SIGNATURE_MISMATCH: return "D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_DS_ROOT_SIGNATURE_MISMATCH"; - case D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_VS_ROOT_SIGNATURE_MISMATCH: return "D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_VS_ROOT_SIGNATURE_MISMATCH"; - case D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_GS_ROOT_SIGNATURE_MISMATCH: return "D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_GS_ROOT_SIGNATURE_MISMATCH"; - case D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_PS_ROOT_SIGNATURE_MISMATCH: return "D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_PS_ROOT_SIGNATURE_MISMATCH"; - case D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_MISSING_ROOT_SIGNATURE: return "D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_MISSING_ROOT_SIGNATURE"; - case D3D12_MESSAGE_ID_EXECUTE_BUNDLE_OPEN_BUNDLE: return "D3D12_MESSAGE_ID_EXECUTE_BUNDLE_OPEN_BUNDLE"; - case D3D12_MESSAGE_ID_EXECUTE_BUNDLE_DESCRIPTOR_HEAP_MISMATCH: return "D3D12_MESSAGE_ID_EXECUTE_BUNDLE_DESCRIPTOR_HEAP_MISMATCH"; - case D3D12_MESSAGE_ID_EXECUTE_BUNDLE_TYPE: return "D3D12_MESSAGE_ID_EXECUTE_BUNDLE_TYPE"; - case D3D12_MESSAGE_ID_DRAW_EMPTY_SCISSOR_RECTANGLE: return "D3D12_MESSAGE_ID_DRAW_EMPTY_SCISSOR_RECTANGLE"; - case D3D12_MESSAGE_ID_CREATE_ROOT_SIGNATURE_BLOB_NOT_FOUND: return "D3D12_MESSAGE_ID_CREATE_ROOT_SIGNATURE_BLOB_NOT_FOUND"; - case D3D12_MESSAGE_ID_CREATE_ROOT_SIGNATURE_DESERIALIZE_FAILED: return "D3D12_MESSAGE_ID_CREATE_ROOT_SIGNATURE_DESERIALIZE_FAILED"; - case D3D12_MESSAGE_ID_CREATE_ROOT_SIGNATURE_INVALID_CONFIGURATION: return "D3D12_MESSAGE_ID_CREATE_ROOT_SIGNATURE_INVALID_CONFIGURATION"; - case D3D12_MESSAGE_ID_CREATE_ROOT_SIGNATURE_NOT_SUPPORTED_ON_DEVICE: return "D3D12_MESSAGE_ID_CREATE_ROOT_SIGNATURE_NOT_SUPPORTED_ON_DEVICE"; - case D3D12_MESSAGE_ID_CREATERESOURCEANDHEAP_NULLRESOURCEPROPERTIES: return "D3D12_MESSAGE_ID_CREATERESOURCEANDHEAP_NULLRESOURCEPROPERTIES"; - case D3D12_MESSAGE_ID_CREATERESOURCEANDHEAP_NULLHEAP: return "D3D12_MESSAGE_ID_CREATERESOURCEANDHEAP_NULLHEAP"; - case D3D12_MESSAGE_ID_GETRESOURCEALLOCATIONINFO_INVALIDRDESCS: return "D3D12_MESSAGE_ID_GETRESOURCEALLOCATIONINFO_INVALIDRDESCS"; - case D3D12_MESSAGE_ID_MAKERESIDENT_NULLOBJECTARRAY: return "D3D12_MESSAGE_ID_MAKERESIDENT_NULLOBJECTARRAY"; - case D3D12_MESSAGE_ID_EVICT_NULLOBJECTARRAY: return "D3D12_MESSAGE_ID_EVICT_NULLOBJECTARRAY"; - case D3D12_MESSAGE_ID_SET_DESCRIPTOR_TABLE_INVALID: return "D3D12_MESSAGE_ID_SET_DESCRIPTOR_TABLE_INVALID"; - case D3D12_MESSAGE_ID_SET_ROOT_CONSTANT_INVALID: return "D3D12_MESSAGE_ID_SET_ROOT_CONSTANT_INVALID"; - case D3D12_MESSAGE_ID_SET_ROOT_CONSTANT_BUFFER_VIEW_INVALID: return "D3D12_MESSAGE_ID_SET_ROOT_CONSTANT_BUFFER_VIEW_INVALID"; - case D3D12_MESSAGE_ID_SET_ROOT_SHADER_RESOURCE_VIEW_INVALID: return "D3D12_MESSAGE_ID_SET_ROOT_SHADER_RESOURCE_VIEW_INVALID"; - case D3D12_MESSAGE_ID_SET_ROOT_UNORDERED_ACCESS_VIEW_INVALID: return "D3D12_MESSAGE_ID_SET_ROOT_UNORDERED_ACCESS_VIEW_INVALID"; - case D3D12_MESSAGE_ID_SET_VERTEX_BUFFERS_INVALID_DESC: return "D3D12_MESSAGE_ID_SET_VERTEX_BUFFERS_INVALID_DESC"; - case D3D12_MESSAGE_ID_SET_INDEX_BUFFER_INVALID_DESC: return "D3D12_MESSAGE_ID_SET_INDEX_BUFFER_INVALID_DESC"; - case D3D12_MESSAGE_ID_SET_STREAM_OUTPUT_BUFFERS_INVALID_DESC: return "D3D12_MESSAGE_ID_SET_STREAM_OUTPUT_BUFFERS_INVALID_DESC"; - case D3D12_MESSAGE_ID_CREATERESOURCE_UNRECOGNIZEDDIMENSIONALITY: return "D3D12_MESSAGE_ID_CREATERESOURCE_UNRECOGNIZEDDIMENSIONALITY"; - case D3D12_MESSAGE_ID_CREATERESOURCE_UNRECOGNIZEDLAYOUT: return "D3D12_MESSAGE_ID_CREATERESOURCE_UNRECOGNIZEDLAYOUT"; - case D3D12_MESSAGE_ID_CREATERESOURCE_INVALIDDIMENSIONALITY: return "D3D12_MESSAGE_ID_CREATERESOURCE_INVALIDDIMENSIONALITY"; - case D3D12_MESSAGE_ID_CREATERESOURCE_INVALIDALIGNMENT: return "D3D12_MESSAGE_ID_CREATERESOURCE_INVALIDALIGNMENT"; - case D3D12_MESSAGE_ID_CREATERESOURCE_INVALIDMIPLEVELS: return "D3D12_MESSAGE_ID_CREATERESOURCE_INVALIDMIPLEVELS"; - case D3D12_MESSAGE_ID_CREATERESOURCE_INVALIDSAMPLEDESC: return "D3D12_MESSAGE_ID_CREATERESOURCE_INVALIDSAMPLEDESC"; - case D3D12_MESSAGE_ID_CREATERESOURCE_INVALIDLAYOUT: return "D3D12_MESSAGE_ID_CREATERESOURCE_INVALIDLAYOUT"; - case D3D12_MESSAGE_ID_SET_INDEX_BUFFER_INVALID: return "D3D12_MESSAGE_ID_SET_INDEX_BUFFER_INVALID"; - case D3D12_MESSAGE_ID_SET_VERTEX_BUFFERS_INVALID: return "D3D12_MESSAGE_ID_SET_VERTEX_BUFFERS_INVALID"; - case D3D12_MESSAGE_ID_SET_STREAM_OUTPUT_BUFFERS_INVALID: return "D3D12_MESSAGE_ID_SET_STREAM_OUTPUT_BUFFERS_INVALID"; - case D3D12_MESSAGE_ID_SET_RENDER_TARGETS_INVALID: return "D3D12_MESSAGE_ID_SET_RENDER_TARGETS_INVALID"; - case D3D12_MESSAGE_ID_CREATEQUERY_HEAP_INVALID_PARAMETERS: return "D3D12_MESSAGE_ID_CREATEQUERY_HEAP_INVALID_PARAMETERS"; - case D3D12_MESSAGE_ID_BEGIN_END_QUERY_INVALID_PARAMETERS: return "D3D12_MESSAGE_ID_BEGIN_END_QUERY_INVALID_PARAMETERS"; - case D3D12_MESSAGE_ID_CLOSE_COMMAND_LIST_OPEN_QUERY: return "D3D12_MESSAGE_ID_CLOSE_COMMAND_LIST_OPEN_QUERY"; - case D3D12_MESSAGE_ID_RESOLVE_QUERY_DATA_INVALID_PARAMETERS: return "D3D12_MESSAGE_ID_RESOLVE_QUERY_DATA_INVALID_PARAMETERS"; - case D3D12_MESSAGE_ID_SET_PREDICATION_INVALID_PARAMETERS: return "D3D12_MESSAGE_ID_SET_PREDICATION_INVALID_PARAMETERS"; - case D3D12_MESSAGE_ID_TIMESTAMPS_NOT_SUPPORTED: return "D3D12_MESSAGE_ID_TIMESTAMPS_NOT_SUPPORTED"; - case D3D12_MESSAGE_ID_CREATERESOURCE_UNRECOGNIZEDFORMAT: return "D3D12_MESSAGE_ID_CREATERESOURCE_UNRECOGNIZEDFORMAT"; - case D3D12_MESSAGE_ID_CREATERESOURCE_INVALIDFORMAT: return "D3D12_MESSAGE_ID_CREATERESOURCE_INVALIDFORMAT"; - case D3D12_MESSAGE_ID_GETCOPYABLEFOOTPRINTS_INVALIDSUBRESOURCERANGE: return "D3D12_MESSAGE_ID_GETCOPYABLEFOOTPRINTS_INVALIDSUBRESOURCERANGE"; - case D3D12_MESSAGE_ID_GETCOPYABLEFOOTPRINTS_INVALIDBASEOFFSET: return "D3D12_MESSAGE_ID_GETCOPYABLEFOOTPRINTS_INVALIDBASEOFFSET"; - case D3D12_MESSAGE_ID_RESOURCE_BARRIER_INVALID_HEAP: return "D3D12_MESSAGE_ID_RESOURCE_BARRIER_INVALID_HEAP"; - case D3D12_MESSAGE_ID_CREATE_SAMPLER_INVALID: return "D3D12_MESSAGE_ID_CREATE_SAMPLER_INVALID"; - case D3D12_MESSAGE_ID_CREATECOMMANDSIGNATURE_INVALID: return "D3D12_MESSAGE_ID_CREATECOMMANDSIGNATURE_INVALID"; - case D3D12_MESSAGE_ID_EXECUTE_INDIRECT_INVALID_PARAMETERS: return "D3D12_MESSAGE_ID_EXECUTE_INDIRECT_INVALID_PARAMETERS"; - case D3D12_MESSAGE_ID_GETGPUVIRTUALADDRESS_INVALID_RESOURCE_DIMENSION: return "D3D12_MESSAGE_ID_GETGPUVIRTUALADDRESS_INVALID_RESOURCE_DIMENSION"; - case D3D12_MESSAGE_ID_CREATERESOURCE_INVALIDCLEARVALUE: return "D3D12_MESSAGE_ID_CREATERESOURCE_INVALIDCLEARVALUE"; - case D3D12_MESSAGE_ID_CREATERESOURCE_UNRECOGNIZEDCLEARVALUEFORMAT: return "D3D12_MESSAGE_ID_CREATERESOURCE_UNRECOGNIZEDCLEARVALUEFORMAT"; - case D3D12_MESSAGE_ID_CREATERESOURCE_INVALIDCLEARVALUEFORMAT: return "D3D12_MESSAGE_ID_CREATERESOURCE_INVALIDCLEARVALUEFORMAT"; - case D3D12_MESSAGE_ID_CREATERESOURCE_CLEARVALUEDENORMFLUSH: return "D3D12_MESSAGE_ID_CREATERESOURCE_CLEARVALUEDENORMFLUSH"; - case D3D12_MESSAGE_ID_CLEARRENDERTARGETVIEW_MISMATCHINGCLEARVALUE: return "D3D12_MESSAGE_ID_CLEARRENDERTARGETVIEW_MISMATCHINGCLEARVALUE"; - case D3D12_MESSAGE_ID_CLEARDEPTHSTENCILVIEW_MISMATCHINGCLEARVALUE: return "D3D12_MESSAGE_ID_CLEARDEPTHSTENCILVIEW_MISMATCHINGCLEARVALUE"; - case D3D12_MESSAGE_ID_MAP_INVALIDHEAP: return "D3D12_MESSAGE_ID_MAP_INVALIDHEAP"; - case D3D12_MESSAGE_ID_UNMAP_INVALIDHEAP: return "D3D12_MESSAGE_ID_UNMAP_INVALIDHEAP"; - case D3D12_MESSAGE_ID_MAP_INVALIDRESOURCE: return "D3D12_MESSAGE_ID_MAP_INVALIDRESOURCE"; - case D3D12_MESSAGE_ID_UNMAP_INVALIDRESOURCE: return "D3D12_MESSAGE_ID_UNMAP_INVALIDRESOURCE"; - case D3D12_MESSAGE_ID_MAP_INVALIDSUBRESOURCE: return "D3D12_MESSAGE_ID_MAP_INVALIDSUBRESOURCE"; - case D3D12_MESSAGE_ID_UNMAP_INVALIDSUBRESOURCE: return "D3D12_MESSAGE_ID_UNMAP_INVALIDSUBRESOURCE"; - case D3D12_MESSAGE_ID_MAP_INVALIDRANGE: return "D3D12_MESSAGE_ID_MAP_INVALIDRANGE"; - case D3D12_MESSAGE_ID_UNMAP_INVALIDRANGE: return "D3D12_MESSAGE_ID_UNMAP_INVALIDRANGE"; - case D3D12_MESSAGE_ID_MAP_INVALIDDATAPOINTER: return "D3D12_MESSAGE_ID_MAP_INVALIDDATAPOINTER"; - case D3D12_MESSAGE_ID_MAP_INVALIDARG_RETURN: return "D3D12_MESSAGE_ID_MAP_INVALIDARG_RETURN"; - case D3D12_MESSAGE_ID_MAP_OUTOFMEMORY_RETURN: return "D3D12_MESSAGE_ID_MAP_OUTOFMEMORY_RETURN"; - case D3D12_MESSAGE_ID_EXECUTECOMMANDLISTS_BUNDLENOTSUPPORTED: return "D3D12_MESSAGE_ID_EXECUTECOMMANDLISTS_BUNDLENOTSUPPORTED"; - case D3D12_MESSAGE_ID_EXECUTECOMMANDLISTS_COMMANDLISTMISMATCH: return "D3D12_MESSAGE_ID_EXECUTECOMMANDLISTS_COMMANDLISTMISMATCH"; - case D3D12_MESSAGE_ID_EXECUTECOMMANDLISTS_OPENCOMMANDLIST: return "D3D12_MESSAGE_ID_EXECUTECOMMANDLISTS_OPENCOMMANDLIST"; - case D3D12_MESSAGE_ID_EXECUTECOMMANDLISTS_FAILEDCOMMANDLIST: return "D3D12_MESSAGE_ID_EXECUTECOMMANDLISTS_FAILEDCOMMANDLIST"; - case D3D12_MESSAGE_ID_COPYBUFFERREGION_NULLDST: return "D3D12_MESSAGE_ID_COPYBUFFERREGION_NULLDST"; - case D3D12_MESSAGE_ID_COPYBUFFERREGION_INVALIDDSTRESOURCEDIMENSION: return "D3D12_MESSAGE_ID_COPYBUFFERREGION_INVALIDDSTRESOURCEDIMENSION"; - case D3D12_MESSAGE_ID_COPYBUFFERREGION_DSTRANGEOUTOFBOUNDS: return "D3D12_MESSAGE_ID_COPYBUFFERREGION_DSTRANGEOUTOFBOUNDS"; - case D3D12_MESSAGE_ID_COPYBUFFERREGION_NULLSRC: return "D3D12_MESSAGE_ID_COPYBUFFERREGION_NULLSRC"; - case D3D12_MESSAGE_ID_COPYBUFFERREGION_INVALIDSRCRESOURCEDIMENSION: return "D3D12_MESSAGE_ID_COPYBUFFERREGION_INVALIDSRCRESOURCEDIMENSION"; - case D3D12_MESSAGE_ID_COPYBUFFERREGION_SRCRANGEOUTOFBOUNDS: return "D3D12_MESSAGE_ID_COPYBUFFERREGION_SRCRANGEOUTOFBOUNDS"; - case D3D12_MESSAGE_ID_COPYBUFFERREGION_INVALIDCOPYFLAGS: return "D3D12_MESSAGE_ID_COPYBUFFERREGION_INVALIDCOPYFLAGS"; - case D3D12_MESSAGE_ID_COPYTEXTUREREGION_NULLDST: return "D3D12_MESSAGE_ID_COPYTEXTUREREGION_NULLDST"; - case D3D12_MESSAGE_ID_COPYTEXTUREREGION_UNRECOGNIZEDDSTTYPE: return "D3D12_MESSAGE_ID_COPYTEXTUREREGION_UNRECOGNIZEDDSTTYPE"; - case D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDDSTRESOURCEDIMENSION: return "D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDDSTRESOURCEDIMENSION"; - case D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDDSTRESOURCE: return "D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDDSTRESOURCE"; - case D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDDSTSUBRESOURCE: return "D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDDSTSUBRESOURCE"; - case D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDDSTOFFSET: return "D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDDSTOFFSET"; - case D3D12_MESSAGE_ID_COPYTEXTUREREGION_UNRECOGNIZEDDSTFORMAT: return "D3D12_MESSAGE_ID_COPYTEXTUREREGION_UNRECOGNIZEDDSTFORMAT"; - case D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDDSTFORMAT: return "D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDDSTFORMAT"; - case D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDDSTDIMENSIONS: return "D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDDSTDIMENSIONS"; - case D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDDSTROWPITCH: return "D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDDSTROWPITCH"; - case D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDDSTPLACEMENT: return "D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDDSTPLACEMENT"; - case D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDDSTDSPLACEDFOOTPRINTFORMAT: return "D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDDSTDSPLACEDFOOTPRINTFORMAT"; - case D3D12_MESSAGE_ID_COPYTEXTUREREGION_DSTREGIONOUTOFBOUNDS: return "D3D12_MESSAGE_ID_COPYTEXTUREREGION_DSTREGIONOUTOFBOUNDS"; - case D3D12_MESSAGE_ID_COPYTEXTUREREGION_NULLSRC: return "D3D12_MESSAGE_ID_COPYTEXTUREREGION_NULLSRC"; - case D3D12_MESSAGE_ID_COPYTEXTUREREGION_UNRECOGNIZEDSRCTYPE: return "D3D12_MESSAGE_ID_COPYTEXTUREREGION_UNRECOGNIZEDSRCTYPE"; - case D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDSRCRESOURCEDIMENSION: return "D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDSRCRESOURCEDIMENSION"; - case D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDSRCRESOURCE: return "D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDSRCRESOURCE"; - case D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDSRCSUBRESOURCE: return "D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDSRCSUBRESOURCE"; - case D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDSRCOFFSET: return "D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDSRCOFFSET"; - case D3D12_MESSAGE_ID_COPYTEXTUREREGION_UNRECOGNIZEDSRCFORMAT: return "D3D12_MESSAGE_ID_COPYTEXTUREREGION_UNRECOGNIZEDSRCFORMAT"; - case D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDSRCFORMAT: return "D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDSRCFORMAT"; - case D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDSRCDIMENSIONS: return "D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDSRCDIMENSIONS"; - case D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDSRCROWPITCH: return "D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDSRCROWPITCH"; - case D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDSRCPLACEMENT: return "D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDSRCPLACEMENT"; - case D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDSRCDSPLACEDFOOTPRINTFORMAT: return "D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDSRCDSPLACEDFOOTPRINTFORMAT"; - case D3D12_MESSAGE_ID_COPYTEXTUREREGION_SRCREGIONOUTOFBOUNDS: return "D3D12_MESSAGE_ID_COPYTEXTUREREGION_SRCREGIONOUTOFBOUNDS"; - case D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDDSTCOORDINATES: return "D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDDSTCOORDINATES"; - case D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDSRCBOX: return "D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDSRCBOX"; - case D3D12_MESSAGE_ID_COPYTEXTUREREGION_FORMATMISMATCH: return "D3D12_MESSAGE_ID_COPYTEXTUREREGION_FORMATMISMATCH"; - case D3D12_MESSAGE_ID_COPYTEXTUREREGION_EMPTYBOX: return "D3D12_MESSAGE_ID_COPYTEXTUREREGION_EMPTYBOX"; - case D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDCOPYFLAGS: return "D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDCOPYFLAGS"; - case D3D12_MESSAGE_ID_RESOLVESUBRESOURCE_INVALID_SUBRESOURCE_INDEX: return "D3D12_MESSAGE_ID_RESOLVESUBRESOURCE_INVALID_SUBRESOURCE_INDEX"; - case D3D12_MESSAGE_ID_RESOLVESUBRESOURCE_INVALID_FORMAT: return "D3D12_MESSAGE_ID_RESOLVESUBRESOURCE_INVALID_FORMAT"; - case D3D12_MESSAGE_ID_RESOLVESUBRESOURCE_RESOURCE_MISMATCH: return "D3D12_MESSAGE_ID_RESOLVESUBRESOURCE_RESOURCE_MISMATCH"; - case D3D12_MESSAGE_ID_RESOLVESUBRESOURCE_INVALID_SAMPLE_COUNT: return "D3D12_MESSAGE_ID_RESOLVESUBRESOURCE_INVALID_SAMPLE_COUNT"; - case D3D12_MESSAGE_ID_CREATECOMPUTEPIPELINESTATE_INVALID_SHADER: return "D3D12_MESSAGE_ID_CREATECOMPUTEPIPELINESTATE_INVALID_SHADER"; - case D3D12_MESSAGE_ID_CREATECOMPUTEPIPELINESTATE_CS_ROOT_SIGNATURE_MISMATCH: return "D3D12_MESSAGE_ID_CREATECOMPUTEPIPELINESTATE_CS_ROOT_SIGNATURE_MISMATCH"; - case D3D12_MESSAGE_ID_CREATECOMPUTEPIPELINESTATE_MISSING_ROOT_SIGNATURE: return "D3D12_MESSAGE_ID_CREATECOMPUTEPIPELINESTATE_MISSING_ROOT_SIGNATURE"; - case D3D12_MESSAGE_ID_CREATEPIPELINESTATE_INVALIDCACHEDBLOB: return "D3D12_MESSAGE_ID_CREATEPIPELINESTATE_INVALIDCACHEDBLOB"; - case D3D12_MESSAGE_ID_CREATEPIPELINESTATE_CACHEDBLOBADAPTERMISMATCH: return "D3D12_MESSAGE_ID_CREATEPIPELINESTATE_CACHEDBLOBADAPTERMISMATCH"; - case D3D12_MESSAGE_ID_CREATEPIPELINESTATE_CACHEDBLOBDRIVERVERSIONMISMATCH: return "D3D12_MESSAGE_ID_CREATEPIPELINESTATE_CACHEDBLOBDRIVERVERSIONMISMATCH"; - case D3D12_MESSAGE_ID_CREATEPIPELINESTATE_CACHEDBLOBDESCMISMATCH: return "D3D12_MESSAGE_ID_CREATEPIPELINESTATE_CACHEDBLOBDESCMISMATCH"; - case D3D12_MESSAGE_ID_CREATEPIPELINESTATE_CACHEDBLOBIGNORED: return "D3D12_MESSAGE_ID_CREATEPIPELINESTATE_CACHEDBLOBIGNORED"; - case D3D12_MESSAGE_ID_WRITETOSUBRESOURCE_INVALIDHEAP: return "D3D12_MESSAGE_ID_WRITETOSUBRESOURCE_INVALIDHEAP"; - case D3D12_MESSAGE_ID_WRITETOSUBRESOURCE_INVALIDRESOURCE: return "D3D12_MESSAGE_ID_WRITETOSUBRESOURCE_INVALIDRESOURCE"; - case D3D12_MESSAGE_ID_WRITETOSUBRESOURCE_INVALIDBOX: return "D3D12_MESSAGE_ID_WRITETOSUBRESOURCE_INVALIDBOX"; - case D3D12_MESSAGE_ID_WRITETOSUBRESOURCE_INVALIDSUBRESOURCE: return "D3D12_MESSAGE_ID_WRITETOSUBRESOURCE_INVALIDSUBRESOURCE"; - case D3D12_MESSAGE_ID_WRITETOSUBRESOURCE_EMPTYBOX: return "D3D12_MESSAGE_ID_WRITETOSUBRESOURCE_EMPTYBOX"; - case D3D12_MESSAGE_ID_READFROMSUBRESOURCE_INVALIDHEAP: return "D3D12_MESSAGE_ID_READFROMSUBRESOURCE_INVALIDHEAP"; - case D3D12_MESSAGE_ID_READFROMSUBRESOURCE_INVALIDRESOURCE: return "D3D12_MESSAGE_ID_READFROMSUBRESOURCE_INVALIDRESOURCE"; - case D3D12_MESSAGE_ID_READFROMSUBRESOURCE_INVALIDBOX: return "D3D12_MESSAGE_ID_READFROMSUBRESOURCE_INVALIDBOX"; - case D3D12_MESSAGE_ID_READFROMSUBRESOURCE_INVALIDSUBRESOURCE: return "D3D12_MESSAGE_ID_READFROMSUBRESOURCE_INVALIDSUBRESOURCE"; - case D3D12_MESSAGE_ID_READFROMSUBRESOURCE_EMPTYBOX: return "D3D12_MESSAGE_ID_READFROMSUBRESOURCE_EMPTYBOX"; - case D3D12_MESSAGE_ID_TOO_MANY_NODES_SPECIFIED: return "D3D12_MESSAGE_ID_TOO_MANY_NODES_SPECIFIED"; - case D3D12_MESSAGE_ID_INVALID_NODE_INDEX: return "D3D12_MESSAGE_ID_INVALID_NODE_INDEX"; - case D3D12_MESSAGE_ID_GETHEAPPROPERTIES_INVALIDRESOURCE: return "D3D12_MESSAGE_ID_GETHEAPPROPERTIES_INVALIDRESOURCE"; - case D3D12_MESSAGE_ID_NODE_MASK_MISMATCH: return "D3D12_MESSAGE_ID_NODE_MASK_MISMATCH"; - case D3D12_MESSAGE_ID_COMMAND_LIST_OUTOFMEMORY: return "D3D12_MESSAGE_ID_COMMAND_LIST_OUTOFMEMORY"; - case D3D12_MESSAGE_ID_COMMAND_LIST_MULTIPLE_SWAPCHAIN_BUFFER_REFERENCES: return "D3D12_MESSAGE_ID_COMMAND_LIST_MULTIPLE_SWAPCHAIN_BUFFER_REFERENCES"; - case D3D12_MESSAGE_ID_COMMAND_LIST_TOO_MANY_SWAPCHAIN_REFERENCES: return "D3D12_MESSAGE_ID_COMMAND_LIST_TOO_MANY_SWAPCHAIN_REFERENCES"; - case D3D12_MESSAGE_ID_COMMAND_QUEUE_TOO_MANY_SWAPCHAIN_REFERENCES: return "D3D12_MESSAGE_ID_COMMAND_QUEUE_TOO_MANY_SWAPCHAIN_REFERENCES"; - case D3D12_MESSAGE_ID_EXECUTECOMMANDLISTS_WRONGSWAPCHAINBUFFERREFERENCE: return "D3D12_MESSAGE_ID_EXECUTECOMMANDLISTS_WRONGSWAPCHAINBUFFERREFERENCE"; - case D3D12_MESSAGE_ID_COMMAND_LIST_SETRENDERTARGETS_INVALIDNUMRENDERTARGETS: return "D3D12_MESSAGE_ID_COMMAND_LIST_SETRENDERTARGETS_INVALIDNUMRENDERTARGETS"; - case D3D12_MESSAGE_ID_CREATE_QUEUE_INVALID_TYPE: return "D3D12_MESSAGE_ID_CREATE_QUEUE_INVALID_TYPE"; - case D3D12_MESSAGE_ID_CREATE_QUEUE_INVALID_FLAGS: return "D3D12_MESSAGE_ID_CREATE_QUEUE_INVALID_FLAGS"; - case D3D12_MESSAGE_ID_CREATESHAREDRESOURCE_INVALIDFLAGS: return "D3D12_MESSAGE_ID_CREATESHAREDRESOURCE_INVALIDFLAGS"; - case D3D12_MESSAGE_ID_CREATESHAREDRESOURCE_INVALIDFORMAT: return "D3D12_MESSAGE_ID_CREATESHAREDRESOURCE_INVALIDFORMAT"; - case D3D12_MESSAGE_ID_CREATESHAREDHEAP_INVALIDFLAGS: return "D3D12_MESSAGE_ID_CREATESHAREDHEAP_INVALIDFLAGS"; - case D3D12_MESSAGE_ID_REFLECTSHAREDPROPERTIES_UNRECOGNIZEDPROPERTIES: return "D3D12_MESSAGE_ID_REFLECTSHAREDPROPERTIES_UNRECOGNIZEDPROPERTIES"; - case D3D12_MESSAGE_ID_REFLECTSHAREDPROPERTIES_INVALIDSIZE: return "D3D12_MESSAGE_ID_REFLECTSHAREDPROPERTIES_INVALIDSIZE"; - case D3D12_MESSAGE_ID_REFLECTSHAREDPROPERTIES_INVALIDOBJECT: return "D3D12_MESSAGE_ID_REFLECTSHAREDPROPERTIES_INVALIDOBJECT"; - case D3D12_MESSAGE_ID_KEYEDMUTEX_INVALIDOBJECT: return "D3D12_MESSAGE_ID_KEYEDMUTEX_INVALIDOBJECT"; - case D3D12_MESSAGE_ID_KEYEDMUTEX_INVALIDKEY: return "D3D12_MESSAGE_ID_KEYEDMUTEX_INVALIDKEY"; - case D3D12_MESSAGE_ID_KEYEDMUTEX_WRONGSTATE: return "D3D12_MESSAGE_ID_KEYEDMUTEX_WRONGSTATE"; - case D3D12_MESSAGE_ID_CREATE_QUEUE_INVALID_PRIORITY: return "D3D12_MESSAGE_ID_CREATE_QUEUE_INVALID_PRIORITY"; - case D3D12_MESSAGE_ID_OBJECT_DELETED_WHILE_STILL_IN_USE: return "D3D12_MESSAGE_ID_OBJECT_DELETED_WHILE_STILL_IN_USE"; - case D3D12_MESSAGE_ID_CREATEPIPELINESTATE_INVALID_FLAGS: return "D3D12_MESSAGE_ID_CREATEPIPELINESTATE_INVALID_FLAGS"; - case D3D12_MESSAGE_ID_HEAP_ADDRESS_RANGE_HAS_NO_RESOURCE: return "D3D12_MESSAGE_ID_HEAP_ADDRESS_RANGE_HAS_NO_RESOURCE"; - case D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_RENDER_TARGET_DELETED: return "D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_RENDER_TARGET_DELETED"; - case D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_ALL_RENDER_TARGETS_HAVE_UNKNOWN_FORMAT: return "D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_ALL_RENDER_TARGETS_HAVE_UNKNOWN_FORMAT"; - case D3D12_MESSAGE_ID_HEAP_ADDRESS_RANGE_INTERSECTS_MULTIPLE_BUFFERS: return "D3D12_MESSAGE_ID_HEAP_ADDRESS_RANGE_INTERSECTS_MULTIPLE_BUFFERS"; - case D3D12_MESSAGE_ID_EXECUTECOMMANDLISTS_GPU_WRITTEN_READBACK_RESOURCE_MAPPED: return "D3D12_MESSAGE_ID_EXECUTECOMMANDLISTS_GPU_WRITTEN_READBACK_RESOURCE_MAPPED"; - case D3D12_MESSAGE_ID_UNMAP_RANGE_NOT_EMPTY: return "D3D12_MESSAGE_ID_UNMAP_RANGE_NOT_EMPTY"; - case D3D12_MESSAGE_ID_MAP_INVALID_NULLRANGE: return "D3D12_MESSAGE_ID_MAP_INVALID_NULLRANGE"; - case D3D12_MESSAGE_ID_UNMAP_INVALID_NULLRANGE: return "D3D12_MESSAGE_ID_UNMAP_INVALID_NULLRANGE"; - case D3D12_MESSAGE_ID_NO_GRAPHICS_API_SUPPORT: return "D3D12_MESSAGE_ID_NO_GRAPHICS_API_SUPPORT"; - case D3D12_MESSAGE_ID_NO_COMPUTE_API_SUPPORT: return "D3D12_MESSAGE_ID_NO_COMPUTE_API_SUPPORT"; - case D3D12_MESSAGE_ID_RESOLVESUBRESOURCE_RESOURCE_FLAGS_NOT_SUPPORTED: return "D3D12_MESSAGE_ID_RESOLVESUBRESOURCE_RESOURCE_FLAGS_NOT_SUPPORTED"; - case D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_ROOT_ARGUMENT_UNINITIALIZED: return "D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_ROOT_ARGUMENT_UNINITIALIZED"; - case D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_DESCRIPTOR_HEAP_INDEX_OUT_OF_BOUNDS: return "D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_DESCRIPTOR_HEAP_INDEX_OUT_OF_BOUNDS"; - case D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_DESCRIPTOR_TABLE_REGISTER_INDEX_OUT_OF_BOUNDS: return "D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_DESCRIPTOR_TABLE_REGISTER_INDEX_OUT_OF_BOUNDS"; - case D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_DESCRIPTOR_UNINITIALIZED: return "D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_DESCRIPTOR_UNINITIALIZED"; - case D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_DESCRIPTOR_TYPE_MISMATCH: return "D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_DESCRIPTOR_TYPE_MISMATCH"; - case D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_SRV_RESOURCE_DIMENSION_MISMATCH: return "D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_SRV_RESOURCE_DIMENSION_MISMATCH"; - case D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_UAV_RESOURCE_DIMENSION_MISMATCH: return "D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_UAV_RESOURCE_DIMENSION_MISMATCH"; - case D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_INCOMPATIBLE_RESOURCE_STATE: return "D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_INCOMPATIBLE_RESOURCE_STATE"; - case D3D12_MESSAGE_ID_COPYRESOURCE_NULLDST: return "D3D12_MESSAGE_ID_COPYRESOURCE_NULLDST"; - case D3D12_MESSAGE_ID_COPYRESOURCE_INVALIDDSTRESOURCE: return "D3D12_MESSAGE_ID_COPYRESOURCE_INVALIDDSTRESOURCE"; - case D3D12_MESSAGE_ID_COPYRESOURCE_NULLSRC: return "D3D12_MESSAGE_ID_COPYRESOURCE_NULLSRC"; - case D3D12_MESSAGE_ID_COPYRESOURCE_INVALIDSRCRESOURCE: return "D3D12_MESSAGE_ID_COPYRESOURCE_INVALIDSRCRESOURCE"; - case D3D12_MESSAGE_ID_RESOLVESUBRESOURCE_NULLDST: return "D3D12_MESSAGE_ID_RESOLVESUBRESOURCE_NULLDST"; - case D3D12_MESSAGE_ID_RESOLVESUBRESOURCE_INVALIDDSTRESOURCE: return "D3D12_MESSAGE_ID_RESOLVESUBRESOURCE_INVALIDDSTRESOURCE"; - case D3D12_MESSAGE_ID_RESOLVESUBRESOURCE_NULLSRC: return "D3D12_MESSAGE_ID_RESOLVESUBRESOURCE_NULLSRC"; - case D3D12_MESSAGE_ID_RESOLVESUBRESOURCE_INVALIDSRCRESOURCE: return "D3D12_MESSAGE_ID_RESOLVESUBRESOURCE_INVALIDSRCRESOURCE"; - case D3D12_MESSAGE_ID_PIPELINE_STATE_TYPE_MISMATCH: return "D3D12_MESSAGE_ID_PIPELINE_STATE_TYPE_MISMATCH"; - case D3D12_MESSAGE_ID_COMMAND_LIST_DISPATCH_ROOT_SIGNATURE_NOT_SET: return "D3D12_MESSAGE_ID_COMMAND_LIST_DISPATCH_ROOT_SIGNATURE_NOT_SET"; - case D3D12_MESSAGE_ID_COMMAND_LIST_DISPATCH_ROOT_SIGNATURE_MISMATCH: return "D3D12_MESSAGE_ID_COMMAND_LIST_DISPATCH_ROOT_SIGNATURE_MISMATCH"; - case D3D12_MESSAGE_ID_RESOURCE_BARRIER_ZERO_BARRIERS: return "D3D12_MESSAGE_ID_RESOURCE_BARRIER_ZERO_BARRIERS"; - case D3D12_MESSAGE_ID_BEGIN_END_EVENT_MISMATCH: return "D3D12_MESSAGE_ID_BEGIN_END_EVENT_MISMATCH"; - case D3D12_MESSAGE_ID_RESOURCE_BARRIER_POSSIBLE_BEFORE_AFTER_MISMATCH: return "D3D12_MESSAGE_ID_RESOURCE_BARRIER_POSSIBLE_BEFORE_AFTER_MISMATCH"; - case D3D12_MESSAGE_ID_RESOURCE_BARRIER_MISMATCHING_BEGIN_END: return "D3D12_MESSAGE_ID_RESOURCE_BARRIER_MISMATCHING_BEGIN_END"; - case D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_INVALID_RESOURCE: return "D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_INVALID_RESOURCE"; - case D3D12_MESSAGE_ID_USE_OF_ZERO_REFCOUNT_OBJECT: return "D3D12_MESSAGE_ID_USE_OF_ZERO_REFCOUNT_OBJECT"; - case D3D12_MESSAGE_ID_OBJECT_EVICTED_WHILE_STILL_IN_USE: return "D3D12_MESSAGE_ID_OBJECT_EVICTED_WHILE_STILL_IN_USE"; - case D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_ROOT_DESCRIPTOR_ACCESS_OUT_OF_BOUNDS: return "D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_ROOT_DESCRIPTOR_ACCESS_OUT_OF_BOUNDS"; - case D3D12_MESSAGE_ID_CREATEPIPELINELIBRARY_INVALIDLIBRARYBLOB: return "D3D12_MESSAGE_ID_CREATEPIPELINELIBRARY_INVALIDLIBRARYBLOB"; - case D3D12_MESSAGE_ID_CREATEPIPELINELIBRARY_DRIVERVERSIONMISMATCH: return "D3D12_MESSAGE_ID_CREATEPIPELINELIBRARY_DRIVERVERSIONMISMATCH"; - case D3D12_MESSAGE_ID_CREATEPIPELINELIBRARY_ADAPTERVERSIONMISMATCH: return "D3D12_MESSAGE_ID_CREATEPIPELINELIBRARY_ADAPTERVERSIONMISMATCH"; - case D3D12_MESSAGE_ID_CREATEPIPELINELIBRARY_UNSUPPORTED: return "D3D12_MESSAGE_ID_CREATEPIPELINELIBRARY_UNSUPPORTED"; - case D3D12_MESSAGE_ID_CREATE_PIPELINELIBRARY: return "D3D12_MESSAGE_ID_CREATE_PIPELINELIBRARY"; - case D3D12_MESSAGE_ID_LIVE_PIPELINELIBRARY: return "D3D12_MESSAGE_ID_LIVE_PIPELINELIBRARY"; - case D3D12_MESSAGE_ID_DESTROY_PIPELINELIBRARY: return "D3D12_MESSAGE_ID_DESTROY_PIPELINELIBRARY"; - case D3D12_MESSAGE_ID_STOREPIPELINE_NONAME: return "D3D12_MESSAGE_ID_STOREPIPELINE_NONAME"; - case D3D12_MESSAGE_ID_STOREPIPELINE_DUPLICATENAME: return "D3D12_MESSAGE_ID_STOREPIPELINE_DUPLICATENAME"; - case D3D12_MESSAGE_ID_LOADPIPELINE_NAMENOTFOUND: return "D3D12_MESSAGE_ID_LOADPIPELINE_NAMENOTFOUND"; - case D3D12_MESSAGE_ID_LOADPIPELINE_INVALIDDESC: return "D3D12_MESSAGE_ID_LOADPIPELINE_INVALIDDESC"; - case D3D12_MESSAGE_ID_PIPELINELIBRARY_SERIALIZE_NOTENOUGHMEMORY: return "D3D12_MESSAGE_ID_PIPELINELIBRARY_SERIALIZE_NOTENOUGHMEMORY"; - case D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_PS_OUTPUT_RT_OUTPUT_MISMATCH: return "D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_PS_OUTPUT_RT_OUTPUT_MISMATCH"; - case D3D12_MESSAGE_ID_SETEVENTONMULTIPLEFENCECOMPLETION_INVALIDFLAGS: return "D3D12_MESSAGE_ID_SETEVENTONMULTIPLEFENCECOMPLETION_INVALIDFLAGS"; - case D3D12_MESSAGE_ID_CREATE_QUEUE_VIDEO_NOT_SUPPORTED: return "D3D12_MESSAGE_ID_CREATE_QUEUE_VIDEO_NOT_SUPPORTED"; - case D3D12_MESSAGE_ID_CREATE_COMMAND_ALLOCATOR_VIDEO_NOT_SUPPORTED: return "D3D12_MESSAGE_ID_CREATE_COMMAND_ALLOCATOR_VIDEO_NOT_SUPPORTED"; - case D3D12_MESSAGE_ID_CREATEQUERY_HEAP_VIDEO_DECODE_STATISTICS_NOT_SUPPORTED: return "D3D12_MESSAGE_ID_CREATEQUERY_HEAP_VIDEO_DECODE_STATISTICS_NOT_SUPPORTED"; - case D3D12_MESSAGE_ID_CREATE_VIDEODECODECOMMANDLIST: return "D3D12_MESSAGE_ID_CREATE_VIDEODECODECOMMANDLIST"; - case D3D12_MESSAGE_ID_CREATE_VIDEODECODER: return "D3D12_MESSAGE_ID_CREATE_VIDEODECODER"; - case D3D12_MESSAGE_ID_CREATE_VIDEODECODESTREAM: return "D3D12_MESSAGE_ID_CREATE_VIDEODECODESTREAM"; - case D3D12_MESSAGE_ID_LIVE_VIDEODECODECOMMANDLIST: return "D3D12_MESSAGE_ID_LIVE_VIDEODECODECOMMANDLIST"; - case D3D12_MESSAGE_ID_LIVE_VIDEODECODER: return "D3D12_MESSAGE_ID_LIVE_VIDEODECODER"; - case D3D12_MESSAGE_ID_LIVE_VIDEODECODESTREAM: return "D3D12_MESSAGE_ID_LIVE_VIDEODECODESTREAM"; - case D3D12_MESSAGE_ID_DESTROY_VIDEODECODECOMMANDLIST: return "D3D12_MESSAGE_ID_DESTROY_VIDEODECODECOMMANDLIST"; - case D3D12_MESSAGE_ID_DESTROY_VIDEODECODER: return "D3D12_MESSAGE_ID_DESTROY_VIDEODECODER"; - case D3D12_MESSAGE_ID_DESTROY_VIDEODECODESTREAM: return "D3D12_MESSAGE_ID_DESTROY_VIDEODECODESTREAM"; - case D3D12_MESSAGE_ID_DECODE_FRAME_INVALID_PARAMETERS: return "D3D12_MESSAGE_ID_DECODE_FRAME_INVALID_PARAMETERS"; - case D3D12_MESSAGE_ID_DEPRECATED_API: return "D3D12_MESSAGE_ID_DEPRECATED_API"; - case D3D12_MESSAGE_ID_RESOURCE_BARRIER_MISMATCHING_COMMAND_LIST_TYPE: return "D3D12_MESSAGE_ID_RESOURCE_BARRIER_MISMATCHING_COMMAND_LIST_TYPE"; - case D3D12_MESSAGE_ID_COMMAND_LIST_DESCRIPTOR_TABLE_NOT_SET: return "D3D12_MESSAGE_ID_COMMAND_LIST_DESCRIPTOR_TABLE_NOT_SET"; - case D3D12_MESSAGE_ID_COMMAND_LIST_ROOT_CONSTANT_BUFFER_VIEW_NOT_SET: return "D3D12_MESSAGE_ID_COMMAND_LIST_ROOT_CONSTANT_BUFFER_VIEW_NOT_SET"; - case D3D12_MESSAGE_ID_COMMAND_LIST_ROOT_SHADER_RESOURCE_VIEW_NOT_SET: return "D3D12_MESSAGE_ID_COMMAND_LIST_ROOT_SHADER_RESOURCE_VIEW_NOT_SET"; - case D3D12_MESSAGE_ID_COMMAND_LIST_ROOT_UNORDERED_ACCESS_VIEW_NOT_SET: return "D3D12_MESSAGE_ID_COMMAND_LIST_ROOT_UNORDERED_ACCESS_VIEW_NOT_SET"; - case D3D12_MESSAGE_ID_DISCARD_INVALID_SUBRESOURCE_RANGE: return "D3D12_MESSAGE_ID_DISCARD_INVALID_SUBRESOURCE_RANGE"; - case D3D12_MESSAGE_ID_DISCARD_ONE_SUBRESOURCE_FOR_MIPS_WITH_RECTS: return "D3D12_MESSAGE_ID_DISCARD_ONE_SUBRESOURCE_FOR_MIPS_WITH_RECTS"; - case D3D12_MESSAGE_ID_DISCARD_NO_RECTS_FOR_NON_TEXTURE2D: return "D3D12_MESSAGE_ID_DISCARD_NO_RECTS_FOR_NON_TEXTURE2D"; - case D3D12_MESSAGE_ID_COPY_ON_SAME_SUBRESOURCE: return "D3D12_MESSAGE_ID_COPY_ON_SAME_SUBRESOURCE"; - case D3D12_MESSAGE_ID_SETRESIDENCYPRIORITY_INVALID_PAGEABLE: return "D3D12_MESSAGE_ID_SETRESIDENCYPRIORITY_INVALID_PAGEABLE"; - case D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_UNSUPPORTED: return "D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_UNSUPPORTED"; - case D3D12_MESSAGE_ID_STATIC_DESCRIPTOR_INVALID_DESCRIPTOR_CHANGE: return "D3D12_MESSAGE_ID_STATIC_DESCRIPTOR_INVALID_DESCRIPTOR_CHANGE"; - case D3D12_MESSAGE_ID_DATA_STATIC_DESCRIPTOR_INVALID_DATA_CHANGE: return "D3D12_MESSAGE_ID_DATA_STATIC_DESCRIPTOR_INVALID_DATA_CHANGE"; - case D3D12_MESSAGE_ID_DATA_STATIC_WHILE_SET_AT_EXECUTE_DESCRIPTOR_INVALID_DATA_CHANGE: return "D3D12_MESSAGE_ID_DATA_STATIC_WHILE_SET_AT_EXECUTE_DESCRIPTOR_INVALID_DATA_CHANGE"; - case D3D12_MESSAGE_ID_EXECUTE_BUNDLE_STATIC_DESCRIPTOR_DATA_STATIC_NOT_SET: return "D3D12_MESSAGE_ID_EXECUTE_BUNDLE_STATIC_DESCRIPTOR_DATA_STATIC_NOT_SET"; - case D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_RESOURCE_ACCESS_OUT_OF_BOUNDS: return "D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_RESOURCE_ACCESS_OUT_OF_BOUNDS"; - case D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_SAMPLER_MODE_MISMATCH: return "D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_SAMPLER_MODE_MISMATCH"; - case D3D12_MESSAGE_ID_CREATE_FENCE_INVALID_FLAGS: return "D3D12_MESSAGE_ID_CREATE_FENCE_INVALID_FLAGS"; - case D3D12_MESSAGE_ID_RESOURCE_BARRIER_DUPLICATE_SUBRESOURCE_TRANSITIONS: return "D3D12_MESSAGE_ID_RESOURCE_BARRIER_DUPLICATE_SUBRESOURCE_TRANSITIONS"; - case D3D12_MESSAGE_ID_SETRESIDENCYPRIORITY_INVALID_PRIORITY: return "D3D12_MESSAGE_ID_SETRESIDENCYPRIORITY_INVALID_PRIORITY"; - case D3D12_MESSAGE_ID_CREATE_DESCRIPTOR_HEAP_LARGE_NUM_DESCRIPTORS: return "D3D12_MESSAGE_ID_CREATE_DESCRIPTOR_HEAP_LARGE_NUM_DESCRIPTORS"; - case D3D12_MESSAGE_ID_BEGIN_EVENT: return "D3D12_MESSAGE_ID_BEGIN_EVENT"; - case D3D12_MESSAGE_ID_END_EVENT: return "D3D12_MESSAGE_ID_END_EVENT"; - case D3D12_MESSAGE_ID_CREATEDEVICE_DEBUG_LAYER_STARTUP_OPTIONS: return "D3D12_MESSAGE_ID_CREATEDEVICE_DEBUG_LAYER_STARTUP_OPTIONS"; - case D3D12_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_DEPTHBOUNDSTEST_UNSUPPORTED: return "D3D12_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_DEPTHBOUNDSTEST_UNSUPPORTED"; - case D3D12_MESSAGE_ID_CREATEPIPELINESTATE_DUPLICATE_SUBOBJECT: return "D3D12_MESSAGE_ID_CREATEPIPELINESTATE_DUPLICATE_SUBOBJECT"; - case D3D12_MESSAGE_ID_CREATEPIPELINESTATE_UNKNOWN_SUBOBJECT: return "D3D12_MESSAGE_ID_CREATEPIPELINESTATE_UNKNOWN_SUBOBJECT"; - case D3D12_MESSAGE_ID_CREATEPIPELINESTATE_ZERO_SIZE_STREAM: return "D3D12_MESSAGE_ID_CREATEPIPELINESTATE_ZERO_SIZE_STREAM"; - case D3D12_MESSAGE_ID_CREATEPIPELINESTATE_INVALID_STREAM: return "D3D12_MESSAGE_ID_CREATEPIPELINESTATE_INVALID_STREAM"; - case D3D12_MESSAGE_ID_CREATEPIPELINESTATE_CANNOT_DEDUCE_TYPE: return "D3D12_MESSAGE_ID_CREATEPIPELINESTATE_CANNOT_DEDUCE_TYPE"; - case D3D12_MESSAGE_ID_COMMAND_LIST_STATIC_DESCRIPTOR_RESOURCE_DIMENSION_MISMATCH: return "D3D12_MESSAGE_ID_COMMAND_LIST_STATIC_DESCRIPTOR_RESOURCE_DIMENSION_MISMATCH"; - case D3D12_MESSAGE_ID_CREATE_COMMAND_QUEUE_INSUFFICIENT_PRIVILEGE_FOR_GLOBAL_REALTIME: return "D3D12_MESSAGE_ID_CREATE_COMMAND_QUEUE_INSUFFICIENT_PRIVILEGE_FOR_GLOBAL_REALTIME"; - case D3D12_MESSAGE_ID_CREATE_COMMAND_QUEUE_INSUFFICIENT_HARDWARE_SUPPORT_FOR_GLOBAL_REALTIME: return "D3D12_MESSAGE_ID_CREATE_COMMAND_QUEUE_INSUFFICIENT_HARDWARE_SUPPORT_FOR_GLOBAL_REALTIME"; - case D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_INVALID_ARCHITECTURE: return "D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_INVALID_ARCHITECTURE"; - case D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_NULL_DST: return "D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_NULL_DST"; - case D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_INVALID_DST_RESOURCE_DIMENSION: return "D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_INVALID_DST_RESOURCE_DIMENSION"; - case D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_DST_RANGE_OUT_OF_BOUNDS: return "D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_DST_RANGE_OUT_OF_BOUNDS"; - case D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_NULL_SRC: return "D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_NULL_SRC"; - case D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_INVALID_SRC_RESOURCE_DIMENSION: return "D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_INVALID_SRC_RESOURCE_DIMENSION"; - case D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_SRC_RANGE_OUT_OF_BOUNDS: return "D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_SRC_RANGE_OUT_OF_BOUNDS"; - case D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_INVALID_OFFSET_ALIGNMENT: return "D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_INVALID_OFFSET_ALIGNMENT"; - case D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_NULL_DEPENDENT_RESOURCES: return "D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_NULL_DEPENDENT_RESOURCES"; - case D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_NULL_DEPENDENT_SUBRESOURCE_RANGES: return "D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_NULL_DEPENDENT_SUBRESOURCE_RANGES"; - case D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_INVALID_DEPENDENT_RESOURCE: return "D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_INVALID_DEPENDENT_RESOURCE"; - case D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_INVALID_DEPENDENT_SUBRESOURCE_RANGE: return "D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_INVALID_DEPENDENT_SUBRESOURCE_RANGE"; - case D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_DEPENDENT_SUBRESOURCE_OUT_OF_BOUNDS: return "D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_DEPENDENT_SUBRESOURCE_OUT_OF_BOUNDS"; - case D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_DEPENDENT_RANGE_OUT_OF_BOUNDS: return "D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_DEPENDENT_RANGE_OUT_OF_BOUNDS"; - case D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_ZERO_DEPENDENCIES: return "D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_ZERO_DEPENDENCIES"; - case D3D12_MESSAGE_ID_DEVICE_CREATE_SHARED_HANDLE_INVALIDARG: return "D3D12_MESSAGE_ID_DEVICE_CREATE_SHARED_HANDLE_INVALIDARG"; - case D3D12_MESSAGE_ID_DESCRIPTOR_HANDLE_WITH_INVALID_RESOURCE: return "D3D12_MESSAGE_ID_DESCRIPTOR_HANDLE_WITH_INVALID_RESOURCE"; - case D3D12_MESSAGE_ID_SETDEPTHBOUNDS_INVALIDARGS: return "D3D12_MESSAGE_ID_SETDEPTHBOUNDS_INVALIDARGS"; - case D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_RESOURCE_STATE_IMPRECISE: return "D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_RESOURCE_STATE_IMPRECISE"; - case D3D12_MESSAGE_ID_COMMAND_LIST_PIPELINE_STATE_NOT_SET: return "D3D12_MESSAGE_ID_COMMAND_LIST_PIPELINE_STATE_NOT_SET"; - case D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_SHADER_MODEL_MISMATCH: return "D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_SHADER_MODEL_MISMATCH"; - case D3D12_MESSAGE_ID_OBJECT_ACCESSED_WHILE_STILL_IN_USE: return "D3D12_MESSAGE_ID_OBJECT_ACCESSED_WHILE_STILL_IN_USE"; - case D3D12_MESSAGE_ID_PROGRAMMABLE_MSAA_UNSUPPORTED: return "D3D12_MESSAGE_ID_PROGRAMMABLE_MSAA_UNSUPPORTED"; - case D3D12_MESSAGE_ID_SETSAMPLEPOSITIONS_INVALIDARGS: return "D3D12_MESSAGE_ID_SETSAMPLEPOSITIONS_INVALIDARGS"; - case D3D12_MESSAGE_ID_RESOLVESUBRESOURCEREGION_INVALID_RECT: return "D3D12_MESSAGE_ID_RESOLVESUBRESOURCEREGION_INVALID_RECT"; - case D3D12_MESSAGE_ID_CREATE_VIDEODECODECOMMANDQUEUE: return "D3D12_MESSAGE_ID_CREATE_VIDEODECODECOMMANDQUEUE"; - case D3D12_MESSAGE_ID_CREATE_VIDEOPROCESSCOMMANDLIST: return "D3D12_MESSAGE_ID_CREATE_VIDEOPROCESSCOMMANDLIST"; - case D3D12_MESSAGE_ID_CREATE_VIDEOPROCESSCOMMANDQUEUE: return "D3D12_MESSAGE_ID_CREATE_VIDEOPROCESSCOMMANDQUEUE"; - case D3D12_MESSAGE_ID_LIVE_VIDEODECODECOMMANDQUEUE: return "D3D12_MESSAGE_ID_LIVE_VIDEODECODECOMMANDQUEUE"; - case D3D12_MESSAGE_ID_LIVE_VIDEOPROCESSCOMMANDLIST: return "D3D12_MESSAGE_ID_LIVE_VIDEOPROCESSCOMMANDLIST"; - case D3D12_MESSAGE_ID_LIVE_VIDEOPROCESSCOMMANDQUEUE: return "D3D12_MESSAGE_ID_LIVE_VIDEOPROCESSCOMMANDQUEUE"; - case D3D12_MESSAGE_ID_DESTROY_VIDEODECODECOMMANDQUEUE: return "D3D12_MESSAGE_ID_DESTROY_VIDEODECODECOMMANDQUEUE"; - case D3D12_MESSAGE_ID_DESTROY_VIDEOPROCESSCOMMANDLIST: return "D3D12_MESSAGE_ID_DESTROY_VIDEOPROCESSCOMMANDLIST"; - case D3D12_MESSAGE_ID_DESTROY_VIDEOPROCESSCOMMANDQUEUE: return "D3D12_MESSAGE_ID_DESTROY_VIDEOPROCESSCOMMANDQUEUE"; - case D3D12_MESSAGE_ID_CREATE_VIDEOPROCESSOR: return "D3D12_MESSAGE_ID_CREATE_VIDEOPROCESSOR"; - case D3D12_MESSAGE_ID_CREATE_VIDEOPROCESSSTREAM: return "D3D12_MESSAGE_ID_CREATE_VIDEOPROCESSSTREAM"; - case D3D12_MESSAGE_ID_LIVE_VIDEOPROCESSOR: return "D3D12_MESSAGE_ID_LIVE_VIDEOPROCESSOR"; - case D3D12_MESSAGE_ID_LIVE_VIDEOPROCESSSTREAM: return "D3D12_MESSAGE_ID_LIVE_VIDEOPROCESSSTREAM"; - case D3D12_MESSAGE_ID_DESTROY_VIDEOPROCESSOR: return "D3D12_MESSAGE_ID_DESTROY_VIDEOPROCESSOR"; - case D3D12_MESSAGE_ID_DESTROY_VIDEOPROCESSSTREAM: return "D3D12_MESSAGE_ID_DESTROY_VIDEOPROCESSSTREAM"; - case D3D12_MESSAGE_ID_PROCESS_FRAME_INVALID_PARAMETERS: return "D3D12_MESSAGE_ID_PROCESS_FRAME_INVALID_PARAMETERS"; - case D3D12_MESSAGE_ID_COPY_INVALIDLAYOUT: return "D3D12_MESSAGE_ID_COPY_INVALIDLAYOUT"; - case D3D12_MESSAGE_ID_CREATE_CRYPTO_SESSION: return "D3D12_MESSAGE_ID_CREATE_CRYPTO_SESSION"; - case D3D12_MESSAGE_ID_CREATE_CRYPTO_SESSION_POLICY: return "D3D12_MESSAGE_ID_CREATE_CRYPTO_SESSION_POLICY"; - case D3D12_MESSAGE_ID_CREATE_PROTECTED_RESOURCE_SESSION: return "D3D12_MESSAGE_ID_CREATE_PROTECTED_RESOURCE_SESSION"; - case D3D12_MESSAGE_ID_LIVE_CRYPTO_SESSION: return "D3D12_MESSAGE_ID_LIVE_CRYPTO_SESSION"; - case D3D12_MESSAGE_ID_LIVE_CRYPTO_SESSION_POLICY: return "D3D12_MESSAGE_ID_LIVE_CRYPTO_SESSION_POLICY"; - case D3D12_MESSAGE_ID_LIVE_PROTECTED_RESOURCE_SESSION: return "D3D12_MESSAGE_ID_LIVE_PROTECTED_RESOURCE_SESSION"; - case D3D12_MESSAGE_ID_DESTROY_CRYPTO_SESSION: return "D3D12_MESSAGE_ID_DESTROY_CRYPTO_SESSION"; - case D3D12_MESSAGE_ID_DESTROY_CRYPTO_SESSION_POLICY: return "D3D12_MESSAGE_ID_DESTROY_CRYPTO_SESSION_POLICY"; - case D3D12_MESSAGE_ID_DESTROY_PROTECTED_RESOURCE_SESSION: return "D3D12_MESSAGE_ID_DESTROY_PROTECTED_RESOURCE_SESSION"; - case D3D12_MESSAGE_ID_PROTECTED_RESOURCE_SESSION_UNSUPPORTED: return "D3D12_MESSAGE_ID_PROTECTED_RESOURCE_SESSION_UNSUPPORTED"; - case D3D12_MESSAGE_ID_FENCE_INVALIDOPERATION: return "D3D12_MESSAGE_ID_FENCE_INVALIDOPERATION"; - case D3D12_MESSAGE_ID_CREATEQUERY_HEAP_COPY_QUEUE_TIMESTAMPS_NOT_SUPPORTED: return "D3D12_MESSAGE_ID_CREATEQUERY_HEAP_COPY_QUEUE_TIMESTAMPS_NOT_SUPPORTED"; - case D3D12_MESSAGE_ID_SAMPLEPOSITIONS_MISMATCH_DEFERRED: return "D3D12_MESSAGE_ID_SAMPLEPOSITIONS_MISMATCH_DEFERRED"; - case D3D12_MESSAGE_ID_SAMPLEPOSITIONS_MISMATCH_RECORDTIME_ASSUMEDFROMFIRSTUSE: return "D3D12_MESSAGE_ID_SAMPLEPOSITIONS_MISMATCH_RECORDTIME_ASSUMEDFROMFIRSTUSE"; - case D3D12_MESSAGE_ID_SAMPLEPOSITIONS_MISMATCH_RECORDTIME_ASSUMEDFROMCLEAR: return "D3D12_MESSAGE_ID_SAMPLEPOSITIONS_MISMATCH_RECORDTIME_ASSUMEDFROMCLEAR"; - case D3D12_MESSAGE_ID_CREATE_VIDEODECODERHEAP: return "D3D12_MESSAGE_ID_CREATE_VIDEODECODERHEAP"; - case D3D12_MESSAGE_ID_LIVE_VIDEODECODERHEAP: return "D3D12_MESSAGE_ID_LIVE_VIDEODECODERHEAP"; - case D3D12_MESSAGE_ID_DESTROY_VIDEODECODERHEAP: return "D3D12_MESSAGE_ID_DESTROY_VIDEODECODERHEAP"; - case D3D12_MESSAGE_ID_OPENEXISTINGHEAP_INVALIDARG_RETURN: return "D3D12_MESSAGE_ID_OPENEXISTINGHEAP_INVALIDARG_RETURN"; - case D3D12_MESSAGE_ID_OPENEXISTINGHEAP_OUTOFMEMORY_RETURN: return "D3D12_MESSAGE_ID_OPENEXISTINGHEAP_OUTOFMEMORY_RETURN"; - case D3D12_MESSAGE_ID_OPENEXISTINGHEAP_INVALIDADDRESS: return "D3D12_MESSAGE_ID_OPENEXISTINGHEAP_INVALIDADDRESS"; - case D3D12_MESSAGE_ID_OPENEXISTINGHEAP_INVALIDHANDLE: return "D3D12_MESSAGE_ID_OPENEXISTINGHEAP_INVALIDHANDLE"; - case D3D12_MESSAGE_ID_WRITEBUFFERIMMEDIATE_INVALID_DEST: return "D3D12_MESSAGE_ID_WRITEBUFFERIMMEDIATE_INVALID_DEST"; - case D3D12_MESSAGE_ID_WRITEBUFFERIMMEDIATE_INVALID_MODE: return "D3D12_MESSAGE_ID_WRITEBUFFERIMMEDIATE_INVALID_MODE"; - case D3D12_MESSAGE_ID_WRITEBUFFERIMMEDIATE_INVALID_ALIGNMENT: return "D3D12_MESSAGE_ID_WRITEBUFFERIMMEDIATE_INVALID_ALIGNMENT"; - case D3D12_MESSAGE_ID_WRITEBUFFERIMMEDIATE_NOT_SUPPORTED: return "D3D12_MESSAGE_ID_WRITEBUFFERIMMEDIATE_NOT_SUPPORTED"; - case D3D12_MESSAGE_ID_SETVIEWINSTANCEMASK_INVALIDARGS: return "D3D12_MESSAGE_ID_SETVIEWINSTANCEMASK_INVALIDARGS"; - case D3D12_MESSAGE_ID_VIEW_INSTANCING_UNSUPPORTED: return "D3D12_MESSAGE_ID_VIEW_INSTANCING_UNSUPPORTED"; - case D3D12_MESSAGE_ID_VIEW_INSTANCING_INVALIDARGS: return "D3D12_MESSAGE_ID_VIEW_INSTANCING_INVALIDARGS"; - case D3D12_MESSAGE_ID_COPYTEXTUREREGION_MISMATCH_DECODE_REFERENCE_ONLY_FLAG: return "D3D12_MESSAGE_ID_COPYTEXTUREREGION_MISMATCH_DECODE_REFERENCE_ONLY_FLAG"; - case D3D12_MESSAGE_ID_COPYRESOURCE_MISMATCH_DECODE_REFERENCE_ONLY_FLAG: return "D3D12_MESSAGE_ID_COPYRESOURCE_MISMATCH_DECODE_REFERENCE_ONLY_FLAG"; - case D3D12_MESSAGE_ID_CREATE_VIDEO_DECODE_HEAP_CAPS_FAILURE: return "D3D12_MESSAGE_ID_CREATE_VIDEO_DECODE_HEAP_CAPS_FAILURE"; - case D3D12_MESSAGE_ID_CREATE_VIDEO_DECODE_HEAP_CAPS_UNSUPPORTED: return "D3D12_MESSAGE_ID_CREATE_VIDEO_DECODE_HEAP_CAPS_UNSUPPORTED"; - case D3D12_MESSAGE_ID_VIDEO_DECODE_SUPPORT_INVALID_INPUT: return "D3D12_MESSAGE_ID_VIDEO_DECODE_SUPPORT_INVALID_INPUT"; - case D3D12_MESSAGE_ID_CREATE_VIDEO_DECODER_UNSUPPORTED: return "D3D12_MESSAGE_ID_CREATE_VIDEO_DECODER_UNSUPPORTED"; - case D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_METADATA_ERROR: return "D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_METADATA_ERROR"; - case D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_VIEW_INSTANCING_VERTEX_SIZE_EXCEEDED: return "D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_VIEW_INSTANCING_VERTEX_SIZE_EXCEEDED"; - case D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_RUNTIME_INTERNAL_ERROR: return "D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_RUNTIME_INTERNAL_ERROR"; - case D3D12_MESSAGE_ID_NO_VIDEO_API_SUPPORT: return "D3D12_MESSAGE_ID_NO_VIDEO_API_SUPPORT"; - case D3D12_MESSAGE_ID_VIDEO_PROCESS_SUPPORT_INVALID_INPUT: return "D3D12_MESSAGE_ID_VIDEO_PROCESS_SUPPORT_INVALID_INPUT"; - case D3D12_MESSAGE_ID_CREATE_VIDEO_PROCESSOR_CAPS_FAILURE: return "D3D12_MESSAGE_ID_CREATE_VIDEO_PROCESSOR_CAPS_FAILURE"; - case D3D12_MESSAGE_ID_VIDEO_PROCESS_SUPPORT_UNSUPPORTED_FORMAT: return "D3D12_MESSAGE_ID_VIDEO_PROCESS_SUPPORT_UNSUPPORTED_FORMAT"; - case D3D12_MESSAGE_ID_VIDEO_DECODE_FRAME_INVALID_ARGUMENT: return "D3D12_MESSAGE_ID_VIDEO_DECODE_FRAME_INVALID_ARGUMENT"; - case D3D12_MESSAGE_ID_ENQUEUE_MAKE_RESIDENT_INVALID_FLAGS: return "D3D12_MESSAGE_ID_ENQUEUE_MAKE_RESIDENT_INVALID_FLAGS"; - case D3D12_MESSAGE_ID_OPENEXISTINGHEAP_UNSUPPORTED: return "D3D12_MESSAGE_ID_OPENEXISTINGHEAP_UNSUPPORTED"; - case D3D12_MESSAGE_ID_VIDEO_PROCESS_FRAMES_INVALID_ARGUMENT: return "D3D12_MESSAGE_ID_VIDEO_PROCESS_FRAMES_INVALID_ARGUMENT"; - case D3D12_MESSAGE_ID_VIDEO_DECODE_SUPPORT_UNSUPPORTED: return "D3D12_MESSAGE_ID_VIDEO_DECODE_SUPPORT_UNSUPPORTED"; - case D3D12_MESSAGE_ID_CREATE_COMMANDRECORDER: return "D3D12_MESSAGE_ID_CREATE_COMMANDRECORDER"; - case D3D12_MESSAGE_ID_LIVE_COMMANDRECORDER: return "D3D12_MESSAGE_ID_LIVE_COMMANDRECORDER"; - case D3D12_MESSAGE_ID_DESTROY_COMMANDRECORDER: return "D3D12_MESSAGE_ID_DESTROY_COMMANDRECORDER"; - case D3D12_MESSAGE_ID_CREATE_COMMAND_RECORDER_VIDEO_NOT_SUPPORTED: return "D3D12_MESSAGE_ID_CREATE_COMMAND_RECORDER_VIDEO_NOT_SUPPORTED"; - case D3D12_MESSAGE_ID_CREATE_COMMAND_RECORDER_INVALID_SUPPORT_FLAGS: return "D3D12_MESSAGE_ID_CREATE_COMMAND_RECORDER_INVALID_SUPPORT_FLAGS"; - case D3D12_MESSAGE_ID_CREATE_COMMAND_RECORDER_INVALID_FLAGS: return "D3D12_MESSAGE_ID_CREATE_COMMAND_RECORDER_INVALID_FLAGS"; - case D3D12_MESSAGE_ID_CREATE_COMMAND_RECORDER_MORE_RECORDERS_THAN_LOGICAL_PROCESSORS: return "D3D12_MESSAGE_ID_CREATE_COMMAND_RECORDER_MORE_RECORDERS_THAN_LOGICAL_PROCESSORS"; - case D3D12_MESSAGE_ID_CREATE_COMMANDPOOL: return "D3D12_MESSAGE_ID_CREATE_COMMANDPOOL"; - case D3D12_MESSAGE_ID_LIVE_COMMANDPOOL: return "D3D12_MESSAGE_ID_LIVE_COMMANDPOOL"; - case D3D12_MESSAGE_ID_DESTROY_COMMANDPOOL: return "D3D12_MESSAGE_ID_DESTROY_COMMANDPOOL"; - case D3D12_MESSAGE_ID_CREATE_COMMAND_POOL_INVALID_FLAGS: return "D3D12_MESSAGE_ID_CREATE_COMMAND_POOL_INVALID_FLAGS"; - case D3D12_MESSAGE_ID_CREATE_COMMAND_LIST_VIDEO_NOT_SUPPORTED: return "D3D12_MESSAGE_ID_CREATE_COMMAND_LIST_VIDEO_NOT_SUPPORTED"; - case D3D12_MESSAGE_ID_COMMAND_RECORDER_SUPPORT_FLAGS_MISMATCH: return "D3D12_MESSAGE_ID_COMMAND_RECORDER_SUPPORT_FLAGS_MISMATCH"; - case D3D12_MESSAGE_ID_COMMAND_RECORDER_CONTENTION: return "D3D12_MESSAGE_ID_COMMAND_RECORDER_CONTENTION"; - case D3D12_MESSAGE_ID_COMMAND_RECORDER_USAGE_WITH_CREATECOMMANDLIST_COMMAND_LIST: return "D3D12_MESSAGE_ID_COMMAND_RECORDER_USAGE_WITH_CREATECOMMANDLIST_COMMAND_LIST"; - case D3D12_MESSAGE_ID_COMMAND_ALLOCATOR_USAGE_WITH_CREATECOMMANDLIST1_COMMAND_LIST: return "D3D12_MESSAGE_ID_COMMAND_ALLOCATOR_USAGE_WITH_CREATECOMMANDLIST1_COMMAND_LIST"; - case D3D12_MESSAGE_ID_CANNOT_EXECUTE_EMPTY_COMMAND_LIST: return "D3D12_MESSAGE_ID_CANNOT_EXECUTE_EMPTY_COMMAND_LIST"; - case D3D12_MESSAGE_ID_CANNOT_RESET_COMMAND_POOL_WITH_OPEN_COMMAND_LISTS: return "D3D12_MESSAGE_ID_CANNOT_RESET_COMMAND_POOL_WITH_OPEN_COMMAND_LISTS"; - case D3D12_MESSAGE_ID_CANNOT_USE_COMMAND_RECORDER_WITHOUT_CURRENT_TARGET: return "D3D12_MESSAGE_ID_CANNOT_USE_COMMAND_RECORDER_WITHOUT_CURRENT_TARGET"; - case D3D12_MESSAGE_ID_CANNOT_CHANGE_COMMAND_RECORDER_TARGET_WHILE_RECORDING: return "D3D12_MESSAGE_ID_CANNOT_CHANGE_COMMAND_RECORDER_TARGET_WHILE_RECORDING"; - case D3D12_MESSAGE_ID_COMMAND_POOL_SYNC: return "D3D12_MESSAGE_ID_COMMAND_POOL_SYNC"; - case D3D12_MESSAGE_ID_EVICT_UNDERFLOW: return "D3D12_MESSAGE_ID_EVICT_UNDERFLOW"; - case D3D12_MESSAGE_ID_CREATE_META_COMMAND: return "D3D12_MESSAGE_ID_CREATE_META_COMMAND"; - case D3D12_MESSAGE_ID_LIVE_META_COMMAND: return "D3D12_MESSAGE_ID_LIVE_META_COMMAND"; - case D3D12_MESSAGE_ID_DESTROY_META_COMMAND: return "D3D12_MESSAGE_ID_DESTROY_META_COMMAND"; - case D3D12_MESSAGE_ID_COPYBUFFERREGION_INVALID_DST_RESOURCE: return "D3D12_MESSAGE_ID_COPYBUFFERREGION_INVALID_DST_RESOURCE"; - case D3D12_MESSAGE_ID_COPYBUFFERREGION_INVALID_SRC_RESOURCE: return "D3D12_MESSAGE_ID_COPYBUFFERREGION_INVALID_SRC_RESOURCE"; - case D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_INVALID_DST_RESOURCE: return "D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_INVALID_DST_RESOURCE"; - case D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_INVALID_SRC_RESOURCE: return "D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_INVALID_SRC_RESOURCE"; - case D3D12_MESSAGE_ID_CREATEPLACEDRESOURCEONBUFFER_NULL_BUFFER: return "D3D12_MESSAGE_ID_CREATEPLACEDRESOURCEONBUFFER_NULL_BUFFER"; - case D3D12_MESSAGE_ID_CREATEPLACEDRESOURCEONBUFFER_NULL_RESOURCE_DESC: return "D3D12_MESSAGE_ID_CREATEPLACEDRESOURCEONBUFFER_NULL_RESOURCE_DESC"; - case D3D12_MESSAGE_ID_CREATEPLACEDRESOURCEONBUFFER_UNSUPPORTED: return "D3D12_MESSAGE_ID_CREATEPLACEDRESOURCEONBUFFER_UNSUPPORTED"; - case D3D12_MESSAGE_ID_CREATEPLACEDRESOURCEONBUFFER_INVALID_BUFFER_DIMENSION: return "D3D12_MESSAGE_ID_CREATEPLACEDRESOURCEONBUFFER_INVALID_BUFFER_DIMENSION"; - case D3D12_MESSAGE_ID_CREATEPLACEDRESOURCEONBUFFER_INVALID_BUFFER_FLAGS: return "D3D12_MESSAGE_ID_CREATEPLACEDRESOURCEONBUFFER_INVALID_BUFFER_FLAGS"; - case D3D12_MESSAGE_ID_CREATEPLACEDRESOURCEONBUFFER_INVALID_BUFFER_OFFSET: return "D3D12_MESSAGE_ID_CREATEPLACEDRESOURCEONBUFFER_INVALID_BUFFER_OFFSET"; - case D3D12_MESSAGE_ID_CREATEPLACEDRESOURCEONBUFFER_INVALID_RESOURCE_DIMENSION: return "D3D12_MESSAGE_ID_CREATEPLACEDRESOURCEONBUFFER_INVALID_RESOURCE_DIMENSION"; - case D3D12_MESSAGE_ID_CREATEPLACEDRESOURCEONBUFFER_INVALID_RESOURCE_FLAGS: return "D3D12_MESSAGE_ID_CREATEPLACEDRESOURCEONBUFFER_INVALID_RESOURCE_FLAGS"; - case D3D12_MESSAGE_ID_CREATEPLACEDRESOURCEONBUFFER_OUTOFMEMORY_RETURN: return "D3D12_MESSAGE_ID_CREATEPLACEDRESOURCEONBUFFER_OUTOFMEMORY_RETURN"; - case D3D12_MESSAGE_ID_CANNOT_CREATE_GRAPHICS_AND_VIDEO_COMMAND_RECORDER: return "D3D12_MESSAGE_ID_CANNOT_CREATE_GRAPHICS_AND_VIDEO_COMMAND_RECORDER"; - case D3D12_MESSAGE_ID_UPDATETILEMAPPINGS_POSSIBLY_MISMATCHING_PROPERTIES: return "D3D12_MESSAGE_ID_UPDATETILEMAPPINGS_POSSIBLY_MISMATCHING_PROPERTIES"; - case D3D12_MESSAGE_ID_CREATE_COMMAND_LIST_INVALID_COMMAND_LIST_TYPE: return "D3D12_MESSAGE_ID_CREATE_COMMAND_LIST_INVALID_COMMAND_LIST_TYPE"; - case D3D12_MESSAGE_ID_CLEARUNORDEREDACCESSVIEW_INCOMPATIBLE_WITH_STRUCTURED_BUFFERS: return "D3D12_MESSAGE_ID_CLEARUNORDEREDACCESSVIEW_INCOMPATIBLE_WITH_STRUCTURED_BUFFERS"; - case D3D12_MESSAGE_ID_COMPUTE_ONLY_DEVICE_OPERATION_UNSUPPORTED: return "D3D12_MESSAGE_ID_COMPUTE_ONLY_DEVICE_OPERATION_UNSUPPORTED"; - case D3D12_MESSAGE_ID_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INVALID: return "D3D12_MESSAGE_ID_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INVALID"; - case D3D12_MESSAGE_ID_EMIT_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_INVALID: return "D3D12_MESSAGE_ID_EMIT_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_INVALID"; - case D3D12_MESSAGE_ID_COPY_RAYTRACING_ACCELERATION_STRUCTURE_INVALID: return "D3D12_MESSAGE_ID_COPY_RAYTRACING_ACCELERATION_STRUCTURE_INVALID"; - case D3D12_MESSAGE_ID_DISPATCH_RAYS_INVALID: return "D3D12_MESSAGE_ID_DISPATCH_RAYS_INVALID"; - case D3D12_MESSAGE_ID_GET_RAYTRACING_ACCELERATION_STRUCTURE_PREBUILD_INFO_INVALID: return "D3D12_MESSAGE_ID_GET_RAYTRACING_ACCELERATION_STRUCTURE_PREBUILD_INFO_INVALID"; - case D3D12_MESSAGE_ID_CREATE_LIFETIMETRACKER: return "D3D12_MESSAGE_ID_CREATE_LIFETIMETRACKER"; - case D3D12_MESSAGE_ID_LIVE_LIFETIMETRACKER: return "D3D12_MESSAGE_ID_LIVE_LIFETIMETRACKER"; - case D3D12_MESSAGE_ID_DESTROY_LIFETIMETRACKER: return "D3D12_MESSAGE_ID_DESTROY_LIFETIMETRACKER"; - case D3D12_MESSAGE_ID_DESTROYOWNEDOBJECT_OBJECTNOTOWNED: return "D3D12_MESSAGE_ID_DESTROYOWNEDOBJECT_OBJECTNOTOWNED"; - case D3D12_MESSAGE_ID_CREATE_TRACKEDWORKLOAD: return "D3D12_MESSAGE_ID_CREATE_TRACKEDWORKLOAD"; - case D3D12_MESSAGE_ID_LIVE_TRACKEDWORKLOAD: return "D3D12_MESSAGE_ID_LIVE_TRACKEDWORKLOAD"; - case D3D12_MESSAGE_ID_DESTROY_TRACKEDWORKLOAD: return "D3D12_MESSAGE_ID_DESTROY_TRACKEDWORKLOAD"; - case D3D12_MESSAGE_ID_RENDER_PASS_ERROR: return "D3D12_MESSAGE_ID_RENDER_PASS_ERROR"; - case D3D12_MESSAGE_ID_META_COMMAND_ID_INVALID: return "D3D12_MESSAGE_ID_META_COMMAND_ID_INVALID"; - case D3D12_MESSAGE_ID_META_COMMAND_UNSUPPORTED_PARAMS: return "D3D12_MESSAGE_ID_META_COMMAND_UNSUPPORTED_PARAMS"; - case D3D12_MESSAGE_ID_META_COMMAND_FAILED_ENUMERATION: return "D3D12_MESSAGE_ID_META_COMMAND_FAILED_ENUMERATION"; - case D3D12_MESSAGE_ID_META_COMMAND_PARAMETER_SIZE_MISMATCH: return "D3D12_MESSAGE_ID_META_COMMAND_PARAMETER_SIZE_MISMATCH"; - case D3D12_MESSAGE_ID_UNINITIALIZED_META_COMMAND: return "D3D12_MESSAGE_ID_UNINITIALIZED_META_COMMAND"; - case D3D12_MESSAGE_ID_META_COMMAND_INVALID_GPU_VIRTUAL_ADDRESS: return "D3D12_MESSAGE_ID_META_COMMAND_INVALID_GPU_VIRTUAL_ADDRESS"; - case D3D12_MESSAGE_ID_CREATE_VIDEOENCODECOMMANDLIST: return "D3D12_MESSAGE_ID_CREATE_VIDEOENCODECOMMANDLIST"; - case D3D12_MESSAGE_ID_LIVE_VIDEOENCODECOMMANDLIST: return "D3D12_MESSAGE_ID_LIVE_VIDEOENCODECOMMANDLIST"; - case D3D12_MESSAGE_ID_DESTROY_VIDEOENCODECOMMANDLIST: return "D3D12_MESSAGE_ID_DESTROY_VIDEOENCODECOMMANDLIST"; - case D3D12_MESSAGE_ID_CREATE_VIDEOENCODECOMMANDQUEUE: return "D3D12_MESSAGE_ID_CREATE_VIDEOENCODECOMMANDQUEUE"; - case D3D12_MESSAGE_ID_LIVE_VIDEOENCODECOMMANDQUEUE: return "D3D12_MESSAGE_ID_LIVE_VIDEOENCODECOMMANDQUEUE"; - case D3D12_MESSAGE_ID_DESTROY_VIDEOENCODECOMMANDQUEUE: return "D3D12_MESSAGE_ID_DESTROY_VIDEOENCODECOMMANDQUEUE"; - case D3D12_MESSAGE_ID_CREATE_VIDEOMOTIONESTIMATOR: return "D3D12_MESSAGE_ID_CREATE_VIDEOMOTIONESTIMATOR"; - case D3D12_MESSAGE_ID_LIVE_VIDEOMOTIONESTIMATOR: return "D3D12_MESSAGE_ID_LIVE_VIDEOMOTIONESTIMATOR"; - case D3D12_MESSAGE_ID_DESTROY_VIDEOMOTIONESTIMATOR: return "D3D12_MESSAGE_ID_DESTROY_VIDEOMOTIONESTIMATOR"; - case D3D12_MESSAGE_ID_CREATE_VIDEOMOTIONVECTORHEAP: return "D3D12_MESSAGE_ID_CREATE_VIDEOMOTIONVECTORHEAP"; - case D3D12_MESSAGE_ID_LIVE_VIDEOMOTIONVECTORHEAP: return "D3D12_MESSAGE_ID_LIVE_VIDEOMOTIONVECTORHEAP"; - case D3D12_MESSAGE_ID_DESTROY_VIDEOMOTIONVECTORHEAP: return "D3D12_MESSAGE_ID_DESTROY_VIDEOMOTIONVECTORHEAP"; - case D3D12_MESSAGE_ID_MULTIPLE_TRACKED_WORKLOADS: return "D3D12_MESSAGE_ID_MULTIPLE_TRACKED_WORKLOADS"; - case D3D12_MESSAGE_ID_MULTIPLE_TRACKED_WORKLOAD_PAIRS: return "D3D12_MESSAGE_ID_MULTIPLE_TRACKED_WORKLOAD_PAIRS"; - case D3D12_MESSAGE_ID_OUT_OF_ORDER_TRACKED_WORKLOAD_PAIR: return "D3D12_MESSAGE_ID_OUT_OF_ORDER_TRACKED_WORKLOAD_PAIR"; - case D3D12_MESSAGE_ID_CANNOT_ADD_TRACKED_WORKLOAD: return "D3D12_MESSAGE_ID_CANNOT_ADD_TRACKED_WORKLOAD"; - case D3D12_MESSAGE_ID_INCOMPLETE_TRACKED_WORKLOAD_PAIR: return "D3D12_MESSAGE_ID_INCOMPLETE_TRACKED_WORKLOAD_PAIR"; - case D3D12_MESSAGE_ID_CREATE_STATE_OBJECT_ERROR: return "D3D12_MESSAGE_ID_CREATE_STATE_OBJECT_ERROR"; - case D3D12_MESSAGE_ID_GET_SHADER_IDENTIFIER_ERROR: return "D3D12_MESSAGE_ID_GET_SHADER_IDENTIFIER_ERROR"; - case D3D12_MESSAGE_ID_GET_SHADER_STACK_SIZE_ERROR: return "D3D12_MESSAGE_ID_GET_SHADER_STACK_SIZE_ERROR"; - case D3D12_MESSAGE_ID_GET_PIPELINE_STACK_SIZE_ERROR: return "D3D12_MESSAGE_ID_GET_PIPELINE_STACK_SIZE_ERROR"; - case D3D12_MESSAGE_ID_SET_PIPELINE_STACK_SIZE_ERROR: return "D3D12_MESSAGE_ID_SET_PIPELINE_STACK_SIZE_ERROR"; - case D3D12_MESSAGE_ID_GET_SHADER_IDENTIFIER_SIZE_INVALID: return "D3D12_MESSAGE_ID_GET_SHADER_IDENTIFIER_SIZE_INVALID"; - case D3D12_MESSAGE_ID_CHECK_DRIVER_MATCHING_IDENTIFIER_INVALID: return "D3D12_MESSAGE_ID_CHECK_DRIVER_MATCHING_IDENTIFIER_INVALID"; - case D3D12_MESSAGE_ID_CHECK_DRIVER_MATCHING_IDENTIFIER_DRIVER_REPORTED_ISSUE: return "D3D12_MESSAGE_ID_CHECK_DRIVER_MATCHING_IDENTIFIER_DRIVER_REPORTED_ISSUE"; - case D3D12_MESSAGE_ID_RENDER_PASS_INVALID_RESOURCE_BARRIER: return "D3D12_MESSAGE_ID_RENDER_PASS_INVALID_RESOURCE_BARRIER"; - case D3D12_MESSAGE_ID_RENDER_PASS_DISALLOWED_API_CALLED: return "D3D12_MESSAGE_ID_RENDER_PASS_DISALLOWED_API_CALLED"; - case D3D12_MESSAGE_ID_RENDER_PASS_CANNOT_NEST_RENDER_PASSES: return "D3D12_MESSAGE_ID_RENDER_PASS_CANNOT_NEST_RENDER_PASSES"; - case D3D12_MESSAGE_ID_RENDER_PASS_CANNOT_END_WITHOUT_BEGIN: return "D3D12_MESSAGE_ID_RENDER_PASS_CANNOT_END_WITHOUT_BEGIN"; - case D3D12_MESSAGE_ID_RENDER_PASS_CANNOT_CLOSE_COMMAND_LIST: return "D3D12_MESSAGE_ID_RENDER_PASS_CANNOT_CLOSE_COMMAND_LIST"; - case D3D12_MESSAGE_ID_RENDER_PASS_GPU_WORK_WHILE_SUSPENDED: return "D3D12_MESSAGE_ID_RENDER_PASS_GPU_WORK_WHILE_SUSPENDED"; - case D3D12_MESSAGE_ID_RENDER_PASS_MISMATCHING_SUSPEND_RESUME: return "D3D12_MESSAGE_ID_RENDER_PASS_MISMATCHING_SUSPEND_RESUME"; - case D3D12_MESSAGE_ID_RENDER_PASS_NO_PRIOR_SUSPEND_WITHIN_EXECUTECOMMANDLISTS: return "D3D12_MESSAGE_ID_RENDER_PASS_NO_PRIOR_SUSPEND_WITHIN_EXECUTECOMMANDLISTS"; - case D3D12_MESSAGE_ID_RENDER_PASS_NO_SUBSEQUENT_RESUME_WITHIN_EXECUTECOMMANDLISTS: return "D3D12_MESSAGE_ID_RENDER_PASS_NO_SUBSEQUENT_RESUME_WITHIN_EXECUTECOMMANDLISTS"; - case D3D12_MESSAGE_ID_TRACKED_WORKLOAD_COMMAND_QUEUE_MISMATCH: return "D3D12_MESSAGE_ID_TRACKED_WORKLOAD_COMMAND_QUEUE_MISMATCH"; - case D3D12_MESSAGE_ID_TRACKED_WORKLOAD_NOT_SUPPORTED: return "D3D12_MESSAGE_ID_TRACKED_WORKLOAD_NOT_SUPPORTED"; - case D3D12_MESSAGE_ID_RENDER_PASS_MISMATCHING_NO_ACCESS: return "D3D12_MESSAGE_ID_RENDER_PASS_MISMATCHING_NO_ACCESS"; - case D3D12_MESSAGE_ID_RENDER_PASS_UNSUPPORTED_RESOLVE: return "D3D12_MESSAGE_ID_RENDER_PASS_UNSUPPORTED_RESOLVE"; - case D3D12_MESSAGE_ID_CLEARUNORDEREDACCESSVIEW_INVALID_RESOURCE_PTR: return "D3D12_MESSAGE_ID_CLEARUNORDEREDACCESSVIEW_INVALID_RESOURCE_PTR"; - case D3D12_MESSAGE_ID_WINDOWS7_FENCE_OUTOFORDER_SIGNAL: return "D3D12_MESSAGE_ID_WINDOWS7_FENCE_OUTOFORDER_SIGNAL"; - case D3D12_MESSAGE_ID_WINDOWS7_FENCE_OUTOFORDER_WAIT: return "D3D12_MESSAGE_ID_WINDOWS7_FENCE_OUTOFORDER_WAIT"; - case D3D12_MESSAGE_ID_VIDEO_CREATE_MOTION_ESTIMATOR_INVALID_ARGUMENT: return "D3D12_MESSAGE_ID_VIDEO_CREATE_MOTION_ESTIMATOR_INVALID_ARGUMENT"; - case D3D12_MESSAGE_ID_VIDEO_CREATE_MOTION_VECTOR_HEAP_INVALID_ARGUMENT: return "D3D12_MESSAGE_ID_VIDEO_CREATE_MOTION_VECTOR_HEAP_INVALID_ARGUMENT"; - case D3D12_MESSAGE_ID_ESTIMATE_MOTION_INVALID_ARGUMENT: return "D3D12_MESSAGE_ID_ESTIMATE_MOTION_INVALID_ARGUMENT"; - case D3D12_MESSAGE_ID_RESOLVE_MOTION_VECTOR_HEAP_INVALID_ARGUMENT: return "D3D12_MESSAGE_ID_RESOLVE_MOTION_VECTOR_HEAP_INVALID_ARGUMENT"; - case D3D12_MESSAGE_ID_GETGPUVIRTUALADDRESS_INVALID_HEAP_TYPE: return "D3D12_MESSAGE_ID_GETGPUVIRTUALADDRESS_INVALID_HEAP_TYPE"; - case D3D12_MESSAGE_ID_SET_BACKGROUND_PROCESSING_MODE_INVALID_ARGUMENT: return "D3D12_MESSAGE_ID_SET_BACKGROUND_PROCESSING_MODE_INVALID_ARGUMENT"; - case D3D12_MESSAGE_ID_CREATE_COMMAND_LIST_INVALID_COMMAND_LIST_TYPE_FOR_FEATURE_LEVEL: return "D3D12_MESSAGE_ID_CREATE_COMMAND_LIST_INVALID_COMMAND_LIST_TYPE_FOR_FEATURE_LEVEL"; - case D3D12_MESSAGE_ID_CREATE_VIDEOEXTENSIONCOMMAND: return "D3D12_MESSAGE_ID_CREATE_VIDEOEXTENSIONCOMMAND"; - case D3D12_MESSAGE_ID_LIVE_VIDEOEXTENSIONCOMMAND: return "D3D12_MESSAGE_ID_LIVE_VIDEOEXTENSIONCOMMAND"; - case D3D12_MESSAGE_ID_DESTROY_VIDEOEXTENSIONCOMMAND: return "D3D12_MESSAGE_ID_DESTROY_VIDEOEXTENSIONCOMMAND"; - case D3D12_MESSAGE_ID_INVALID_VIDEO_EXTENSION_COMMAND_ID: return "D3D12_MESSAGE_ID_INVALID_VIDEO_EXTENSION_COMMAND_ID"; - case D3D12_MESSAGE_ID_VIDEO_EXTENSION_COMMAND_INVALID_ARGUMENT: return "D3D12_MESSAGE_ID_VIDEO_EXTENSION_COMMAND_INVALID_ARGUMENT"; - case D3D12_MESSAGE_ID_CREATE_ROOT_SIGNATURE_NOT_UNIQUE_IN_DXIL_LIBRARY: return "D3D12_MESSAGE_ID_CREATE_ROOT_SIGNATURE_NOT_UNIQUE_IN_DXIL_LIBRARY"; - case D3D12_MESSAGE_ID_VARIABLE_SHADING_RATE_NOT_ALLOWED_WITH_TIR: return "D3D12_MESSAGE_ID_VARIABLE_SHADING_RATE_NOT_ALLOWED_WITH_TIR"; - case D3D12_MESSAGE_ID_GEOMETRY_SHADER_OUTPUTTING_BOTH_VIEWPORT_ARRAY_INDEX_AND_SHADING_RATE_NOT_SUPPORTED_ON_DEVICE: return "D3D12_MESSAGE_ID_GEOMETRY_SHADER_OUTPUTTING_BOTH_VIEWPORT_ARRAY_INDEX_AND_SHADING_RATE_NOT_SUPPORTED_ON_DEVICE"; - case D3D12_MESSAGE_ID_RSSETSHADING_RATE_INVALID_SHADING_RATE: return "D3D12_MESSAGE_ID_RSSETSHADING_RATE_INVALID_SHADING_RATE"; - case D3D12_MESSAGE_ID_RSSETSHADING_RATE_SHADING_RATE_NOT_PERMITTED_BY_CAP: return "D3D12_MESSAGE_ID_RSSETSHADING_RATE_SHADING_RATE_NOT_PERMITTED_BY_CAP"; - case D3D12_MESSAGE_ID_RSSETSHADING_RATE_INVALID_COMBINER: return "D3D12_MESSAGE_ID_RSSETSHADING_RATE_INVALID_COMBINER"; - case D3D12_MESSAGE_ID_RSSETSHADINGRATEIMAGE_REQUIRES_TIER_2: return "D3D12_MESSAGE_ID_RSSETSHADINGRATEIMAGE_REQUIRES_TIER_2"; - case D3D12_MESSAGE_ID_RSSETSHADINGRATE_REQUIRES_TIER_1: return "D3D12_MESSAGE_ID_RSSETSHADINGRATE_REQUIRES_TIER_1"; - case D3D12_MESSAGE_ID_SHADING_RATE_IMAGE_INCORRECT_FORMAT: return "D3D12_MESSAGE_ID_SHADING_RATE_IMAGE_INCORRECT_FORMAT"; - case D3D12_MESSAGE_ID_SHADING_RATE_IMAGE_INCORRECT_ARRAY_SIZE: return "D3D12_MESSAGE_ID_SHADING_RATE_IMAGE_INCORRECT_ARRAY_SIZE"; - case D3D12_MESSAGE_ID_SHADING_RATE_IMAGE_INCORRECT_MIP_LEVEL: return "D3D12_MESSAGE_ID_SHADING_RATE_IMAGE_INCORRECT_MIP_LEVEL"; - case D3D12_MESSAGE_ID_SHADING_RATE_IMAGE_INCORRECT_SAMPLE_COUNT: return "D3D12_MESSAGE_ID_SHADING_RATE_IMAGE_INCORRECT_SAMPLE_COUNT"; - case D3D12_MESSAGE_ID_SHADING_RATE_IMAGE_INCORRECT_SAMPLE_QUALITY: return "D3D12_MESSAGE_ID_SHADING_RATE_IMAGE_INCORRECT_SAMPLE_QUALITY"; - case D3D12_MESSAGE_ID_NON_RETAIL_SHADER_MODEL_WONT_VALIDATE: return "D3D12_MESSAGE_ID_NON_RETAIL_SHADER_MODEL_WONT_VALIDATE"; - case D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_AS_ROOT_SIGNATURE_MISMATCH: return "D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_AS_ROOT_SIGNATURE_MISMATCH"; - case D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_MS_ROOT_SIGNATURE_MISMATCH: return "D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_MS_ROOT_SIGNATURE_MISMATCH"; - case D3D12_MESSAGE_ID_ADD_TO_STATE_OBJECT_ERROR: return "D3D12_MESSAGE_ID_ADD_TO_STATE_OBJECT_ERROR"; - case D3D12_MESSAGE_ID_CREATE_PROTECTED_RESOURCE_SESSION_INVALID_ARGUMENT: return "D3D12_MESSAGE_ID_CREATE_PROTECTED_RESOURCE_SESSION_INVALID_ARGUMENT"; - case D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_MS_PSO_DESC_MISMATCH: return "D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_MS_PSO_DESC_MISMATCH"; - case D3D12_MESSAGE_ID_CREATEPIPELINESTATE_MS_INCOMPLETE_TYPE: return "D3D12_MESSAGE_ID_CREATEPIPELINESTATE_MS_INCOMPLETE_TYPE"; - case D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_AS_NOT_MS_MISMATCH: return "D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_AS_NOT_MS_MISMATCH"; - case D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_MS_NOT_PS_MISMATCH: return "D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_MS_NOT_PS_MISMATCH"; - case D3D12_MESSAGE_ID_NONZERO_SAMPLER_FEEDBACK_MIP_REGION_WITH_INCOMPATIBLE_FORMAT: return "D3D12_MESSAGE_ID_NONZERO_SAMPLER_FEEDBACK_MIP_REGION_WITH_INCOMPATIBLE_FORMAT"; - case D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_INPUTLAYOUT_SHADER_MISMATCH: return "D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_INPUTLAYOUT_SHADER_MISMATCH"; - case D3D12_MESSAGE_ID_EMPTY_DISPATCH: return "D3D12_MESSAGE_ID_EMPTY_DISPATCH"; - case D3D12_MESSAGE_ID_RESOURCE_FORMAT_REQUIRES_SAMPLER_FEEDBACK_CAPABILITY: return "D3D12_MESSAGE_ID_RESOURCE_FORMAT_REQUIRES_SAMPLER_FEEDBACK_CAPABILITY"; - case D3D12_MESSAGE_ID_SAMPLER_FEEDBACK_MAP_INVALID_MIP_REGION: return "D3D12_MESSAGE_ID_SAMPLER_FEEDBACK_MAP_INVALID_MIP_REGION"; - case D3D12_MESSAGE_ID_SAMPLER_FEEDBACK_MAP_INVALID_DIMENSION: return "D3D12_MESSAGE_ID_SAMPLER_FEEDBACK_MAP_INVALID_DIMENSION"; - case D3D12_MESSAGE_ID_SAMPLER_FEEDBACK_MAP_INVALID_SAMPLE_COUNT: return "D3D12_MESSAGE_ID_SAMPLER_FEEDBACK_MAP_INVALID_SAMPLE_COUNT"; - case D3D12_MESSAGE_ID_SAMPLER_FEEDBACK_MAP_INVALID_SAMPLE_QUALITY: return "D3D12_MESSAGE_ID_SAMPLER_FEEDBACK_MAP_INVALID_SAMPLE_QUALITY"; - case D3D12_MESSAGE_ID_SAMPLER_FEEDBACK_MAP_INVALID_LAYOUT: return "D3D12_MESSAGE_ID_SAMPLER_FEEDBACK_MAP_INVALID_LAYOUT"; - case D3D12_MESSAGE_ID_SAMPLER_FEEDBACK_MAP_REQUIRES_UNORDERED_ACCESS_FLAG: return "D3D12_MESSAGE_ID_SAMPLER_FEEDBACK_MAP_REQUIRES_UNORDERED_ACCESS_FLAG"; - case D3D12_MESSAGE_ID_SAMPLER_FEEDBACK_CREATE_UAV_NULL_ARGUMENTS: return "D3D12_MESSAGE_ID_SAMPLER_FEEDBACK_CREATE_UAV_NULL_ARGUMENTS"; - case D3D12_MESSAGE_ID_SAMPLER_FEEDBACK_UAV_REQUIRES_SAMPLER_FEEDBACK_CAPABILITY: return "D3D12_MESSAGE_ID_SAMPLER_FEEDBACK_UAV_REQUIRES_SAMPLER_FEEDBACK_CAPABILITY"; - case D3D12_MESSAGE_ID_SAMPLER_FEEDBACK_CREATE_UAV_REQUIRES_FEEDBACK_MAP_FORMAT: return "D3D12_MESSAGE_ID_SAMPLER_FEEDBACK_CREATE_UAV_REQUIRES_FEEDBACK_MAP_FORMAT"; - case D3D12_MESSAGE_ID_CREATEMESHSHADER_INVALIDSHADERBYTECODE: return "D3D12_MESSAGE_ID_CREATEMESHSHADER_INVALIDSHADERBYTECODE"; - case D3D12_MESSAGE_ID_CREATEMESHSHADER_OUTOFMEMORY: return "D3D12_MESSAGE_ID_CREATEMESHSHADER_OUTOFMEMORY"; - case D3D12_MESSAGE_ID_CREATEMESHSHADERWITHSTREAMOUTPUT_INVALIDSHADERTYPE: return "D3D12_MESSAGE_ID_CREATEMESHSHADERWITHSTREAMOUTPUT_INVALIDSHADERTYPE"; - case D3D12_MESSAGE_ID_RESOLVESUBRESOURCE_SAMPLER_FEEDBACK_TRANSCODE_INVALID_FORMAT: return "D3D12_MESSAGE_ID_RESOLVESUBRESOURCE_SAMPLER_FEEDBACK_TRANSCODE_INVALID_FORMAT"; - case D3D12_MESSAGE_ID_RESOLVESUBRESOURCE_SAMPLER_FEEDBACK_INVALID_MIP_LEVEL_COUNT: return "D3D12_MESSAGE_ID_RESOLVESUBRESOURCE_SAMPLER_FEEDBACK_INVALID_MIP_LEVEL_COUNT"; - case D3D12_MESSAGE_ID_RESOLVESUBRESOURCE_SAMPLER_FEEDBACK_TRANSCODE_ARRAY_SIZE_MISMATCH: return "D3D12_MESSAGE_ID_RESOLVESUBRESOURCE_SAMPLER_FEEDBACK_TRANSCODE_ARRAY_SIZE_MISMATCH"; - case D3D12_MESSAGE_ID_SAMPLER_FEEDBACK_CREATE_UAV_MISMATCHING_TARGETED_RESOURCE: return "D3D12_MESSAGE_ID_SAMPLER_FEEDBACK_CREATE_UAV_MISMATCHING_TARGETED_RESOURCE"; - case D3D12_MESSAGE_ID_CREATEMESHSHADER_OUTPUTEXCEEDSMAXSIZE: return "D3D12_MESSAGE_ID_CREATEMESHSHADER_OUTPUTEXCEEDSMAXSIZE"; - case D3D12_MESSAGE_ID_CREATEMESHSHADER_GROUPSHAREDEXCEEDSMAXSIZE: return "D3D12_MESSAGE_ID_CREATEMESHSHADER_GROUPSHAREDEXCEEDSMAXSIZE"; - case D3D12_MESSAGE_ID_VERTEX_SHADER_OUTPUTTING_BOTH_VIEWPORT_ARRAY_INDEX_AND_SHADING_RATE_NOT_SUPPORTED_ON_DEVICE: return "D3D12_MESSAGE_ID_VERTEX_SHADER_OUTPUTTING_BOTH_VIEWPORT_ARRAY_INDEX_AND_SHADING_RATE_NOT_SUPPORTED_ON_DEVICE"; - case D3D12_MESSAGE_ID_MESH_SHADER_OUTPUTTING_BOTH_VIEWPORT_ARRAY_INDEX_AND_SHADING_RATE_NOT_SUPPORTED_ON_DEVICE: return "D3D12_MESSAGE_ID_MESH_SHADER_OUTPUTTING_BOTH_VIEWPORT_ARRAY_INDEX_AND_SHADING_RATE_NOT_SUPPORTED_ON_DEVICE"; - case D3D12_MESSAGE_ID_CREATEMESHSHADER_MISMATCHEDASMSPAYLOADSIZE: return "D3D12_MESSAGE_ID_CREATEMESHSHADER_MISMATCHEDASMSPAYLOADSIZE"; - case D3D12_MESSAGE_ID_CREATE_ROOT_SIGNATURE_UNBOUNDED_STATIC_DESCRIPTORS: return "D3D12_MESSAGE_ID_CREATE_ROOT_SIGNATURE_UNBOUNDED_STATIC_DESCRIPTORS"; - case D3D12_MESSAGE_ID_CREATEAMPLIFICATIONSHADER_INVALIDSHADERBYTECODE: return "D3D12_MESSAGE_ID_CREATEAMPLIFICATIONSHADER_INVALIDSHADERBYTECODE"; - case D3D12_MESSAGE_ID_CREATEAMPLIFICATIONSHADER_OUTOFMEMORY: return "D3D12_MESSAGE_ID_CREATEAMPLIFICATIONSHADER_OUTOFMEMORY"; - case D3D12_MESSAGE_ID_CREATE_SHADERCACHESESSION: return "D3D12_MESSAGE_ID_CREATE_SHADERCACHESESSION"; - case D3D12_MESSAGE_ID_LIVE_SHADERCACHESESSION: return "D3D12_MESSAGE_ID_LIVE_SHADERCACHESESSION"; - case D3D12_MESSAGE_ID_DESTROY_SHADERCACHESESSION: return "D3D12_MESSAGE_ID_DESTROY_SHADERCACHESESSION"; - case D3D12_MESSAGE_ID_CREATESHADERCACHESESSION_INVALIDARGS: return "D3D12_MESSAGE_ID_CREATESHADERCACHESESSION_INVALIDARGS"; - case D3D12_MESSAGE_ID_CREATESHADERCACHESESSION_DISABLED: return "D3D12_MESSAGE_ID_CREATESHADERCACHESESSION_DISABLED"; - case D3D12_MESSAGE_ID_CREATESHADERCACHESESSION_ALREADYOPEN: return "D3D12_MESSAGE_ID_CREATESHADERCACHESESSION_ALREADYOPEN"; - case D3D12_MESSAGE_ID_SHADERCACHECONTROL_DEVELOPERMODE: return "D3D12_MESSAGE_ID_SHADERCACHECONTROL_DEVELOPERMODE"; - case D3D12_MESSAGE_ID_SHADERCACHECONTROL_INVALIDFLAGS: return "D3D12_MESSAGE_ID_SHADERCACHECONTROL_INVALIDFLAGS"; - case D3D12_MESSAGE_ID_SHADERCACHECONTROL_STATEALREADYSET: return "D3D12_MESSAGE_ID_SHADERCACHECONTROL_STATEALREADYSET"; - case D3D12_MESSAGE_ID_SHADERCACHECONTROL_IGNOREDFLAG: return "D3D12_MESSAGE_ID_SHADERCACHECONTROL_IGNOREDFLAG"; - case D3D12_MESSAGE_ID_SHADERCACHESESSION_STOREVALUE_ALREADYPRESENT: return "D3D12_MESSAGE_ID_SHADERCACHESESSION_STOREVALUE_ALREADYPRESENT"; - case D3D12_MESSAGE_ID_SHADERCACHESESSION_STOREVALUE_HASHCOLLISION: return "D3D12_MESSAGE_ID_SHADERCACHESESSION_STOREVALUE_HASHCOLLISION"; - case D3D12_MESSAGE_ID_SHADERCACHESESSION_STOREVALUE_CACHEFULL: return "D3D12_MESSAGE_ID_SHADERCACHESESSION_STOREVALUE_CACHEFULL"; - case D3D12_MESSAGE_ID_SHADERCACHESESSION_FINDVALUE_NOTFOUND: return "D3D12_MESSAGE_ID_SHADERCACHESESSION_FINDVALUE_NOTFOUND"; - case D3D12_MESSAGE_ID_SHADERCACHESESSION_CORRUPT: return "D3D12_MESSAGE_ID_SHADERCACHESESSION_CORRUPT"; - case D3D12_MESSAGE_ID_SHADERCACHESESSION_DISABLED: return "D3D12_MESSAGE_ID_SHADERCACHESESSION_DISABLED"; - case D3D12_MESSAGE_ID_OVERSIZED_DISPATCH: return "D3D12_MESSAGE_ID_OVERSIZED_DISPATCH"; - case D3D12_MESSAGE_ID_CREATE_VIDEOENCODER: return "D3D12_MESSAGE_ID_CREATE_VIDEOENCODER"; - case D3D12_MESSAGE_ID_LIVE_VIDEOENCODER: return "D3D12_MESSAGE_ID_LIVE_VIDEOENCODER"; - case D3D12_MESSAGE_ID_DESTROY_VIDEOENCODER: return "D3D12_MESSAGE_ID_DESTROY_VIDEOENCODER"; - case D3D12_MESSAGE_ID_CREATE_VIDEOENCODERHEAP: return "D3D12_MESSAGE_ID_CREATE_VIDEOENCODERHEAP"; - case D3D12_MESSAGE_ID_LIVE_VIDEOENCODERHEAP: return "D3D12_MESSAGE_ID_LIVE_VIDEOENCODERHEAP"; - case D3D12_MESSAGE_ID_DESTROY_VIDEOENCODERHEAP: return "D3D12_MESSAGE_ID_DESTROY_VIDEOENCODERHEAP"; - case D3D12_MESSAGE_ID_COPYTEXTUREREGION_MISMATCH_ENCODE_REFERENCE_ONLY_FLAG: return "D3D12_MESSAGE_ID_COPYTEXTUREREGION_MISMATCH_ENCODE_REFERENCE_ONLY_FLAG"; - case D3D12_MESSAGE_ID_COPYRESOURCE_MISMATCH_ENCODE_REFERENCE_ONLY_FLAG: return "D3D12_MESSAGE_ID_COPYRESOURCE_MISMATCH_ENCODE_REFERENCE_ONLY_FLAG"; - case D3D12_MESSAGE_ID_ENCODE_FRAME_INVALID_PARAMETERS: return "D3D12_MESSAGE_ID_ENCODE_FRAME_INVALID_PARAMETERS"; - case D3D12_MESSAGE_ID_ENCODE_FRAME_UNSUPPORTED_PARAMETERS: return "D3D12_MESSAGE_ID_ENCODE_FRAME_UNSUPPORTED_PARAMETERS"; - case D3D12_MESSAGE_ID_RESOLVE_ENCODER_OUTPUT_METADATA_INVALID_PARAMETERS: return "D3D12_MESSAGE_ID_RESOLVE_ENCODER_OUTPUT_METADATA_INVALID_PARAMETERS"; - case D3D12_MESSAGE_ID_RESOLVE_ENCODER_OUTPUT_METADATA_UNSUPPORTED_PARAMETERS: return "D3D12_MESSAGE_ID_RESOLVE_ENCODER_OUTPUT_METADATA_UNSUPPORTED_PARAMETERS"; - case D3D12_MESSAGE_ID_CREATE_VIDEO_ENCODER_INVALID_PARAMETERS: return "D3D12_MESSAGE_ID_CREATE_VIDEO_ENCODER_INVALID_PARAMETERS"; - case D3D12_MESSAGE_ID_CREATE_VIDEO_ENCODER_UNSUPPORTED_PARAMETERS: return "D3D12_MESSAGE_ID_CREATE_VIDEO_ENCODER_UNSUPPORTED_PARAMETERS"; - case D3D12_MESSAGE_ID_CREATE_VIDEO_ENCODER_HEAP_INVALID_PARAMETERS: return "D3D12_MESSAGE_ID_CREATE_VIDEO_ENCODER_HEAP_INVALID_PARAMETERS"; - case D3D12_MESSAGE_ID_CREATE_VIDEO_ENCODER_HEAP_UNSUPPORTED_PARAMETERS: return "D3D12_MESSAGE_ID_CREATE_VIDEO_ENCODER_HEAP_UNSUPPORTED_PARAMETERS"; - case D3D12_MESSAGE_ID_CREATECOMMANDLIST_NULL_COMMANDALLOCATOR: return "D3D12_MESSAGE_ID_CREATECOMMANDLIST_NULL_COMMANDALLOCATOR"; - case D3D12_MESSAGE_ID_CLEAR_UNORDERED_ACCESS_VIEW_INVALID_DESCRIPTOR_HANDLE: return "D3D12_MESSAGE_ID_CLEAR_UNORDERED_ACCESS_VIEW_INVALID_DESCRIPTOR_HANDLE"; - case D3D12_MESSAGE_ID_DESCRIPTOR_HEAP_NOT_SHADER_VISIBLE: return "D3D12_MESSAGE_ID_DESCRIPTOR_HEAP_NOT_SHADER_VISIBLE"; - case D3D12_MESSAGE_ID_CREATEBLENDSTATE_BLENDOP_WARNING: return "D3D12_MESSAGE_ID_CREATEBLENDSTATE_BLENDOP_WARNING"; - case D3D12_MESSAGE_ID_CREATEBLENDSTATE_BLENDOPALPHA_WARNING: return "D3D12_MESSAGE_ID_CREATEBLENDSTATE_BLENDOPALPHA_WARNING"; - case D3D12_MESSAGE_ID_WRITE_COMBINE_PERFORMANCE_WARNING: return "D3D12_MESSAGE_ID_WRITE_COMBINE_PERFORMANCE_WARNING"; - case D3D12_MESSAGE_ID_RESOLVE_QUERY_INVALID_QUERY_STATE: return "D3D12_MESSAGE_ID_RESOLVE_QUERY_INVALID_QUERY_STATE"; - case D3D12_MESSAGE_ID_SETPRIVATEDATA_NO_ACCESS: return "D3D12_MESSAGE_ID_SETPRIVATEDATA_NO_ACCESS"; - case D3D12_MESSAGE_ID_COMMAND_LIST_STATIC_DESCRIPTOR_SAMPLER_MODE_MISMATCH: return "D3D12_MESSAGE_ID_COMMAND_LIST_STATIC_DESCRIPTOR_SAMPLER_MODE_MISMATCH"; - case D3D12_MESSAGE_ID_GETCOPYABLEFOOTPRINTS_UNSUPPORTED_BUFFER_WIDTH: return "D3D12_MESSAGE_ID_GETCOPYABLEFOOTPRINTS_UNSUPPORTED_BUFFER_WIDTH"; - case D3D12_MESSAGE_ID_CREATEMESHSHADER_TOPOLOGY_MISMATCH: return "D3D12_MESSAGE_ID_CREATEMESHSHADER_TOPOLOGY_MISMATCH"; - case D3D12_MESSAGE_ID_VRS_SUM_COMBINER_REQUIRES_CAPABILITY: return "D3D12_MESSAGE_ID_VRS_SUM_COMBINER_REQUIRES_CAPABILITY"; - case D3D12_MESSAGE_ID_SETTING_SHADING_RATE_FROM_MS_REQUIRES_CAPABILITY: return "D3D12_MESSAGE_ID_SETTING_SHADING_RATE_FROM_MS_REQUIRES_CAPABILITY"; - case D3D12_MESSAGE_ID_SHADERCACHESESSION_SHADERCACHEDELETE_NOTSUPPORTED: return "D3D12_MESSAGE_ID_SHADERCACHESESSION_SHADERCACHEDELETE_NOTSUPPORTED"; - case D3D12_MESSAGE_ID_SHADERCACHECONTROL_SHADERCACHECLEAR_NOTSUPPORTED: return "D3D12_MESSAGE_ID_SHADERCACHECONTROL_SHADERCACHECLEAR_NOTSUPPORTED"; - case D3D12_MESSAGE_ID_CREATERESOURCE_STATE_IGNORED: return "D3D12_MESSAGE_ID_CREATERESOURCE_STATE_IGNORED"; - case D3D12_MESSAGE_ID_UNUSED_CROSS_EXECUTE_SPLIT_BARRIER: return "D3D12_MESSAGE_ID_UNUSED_CROSS_EXECUTE_SPLIT_BARRIER"; - case D3D12_MESSAGE_ID_DEVICE_OPEN_SHARED_HANDLE_ACCESS_DENIED: return "D3D12_MESSAGE_ID_DEVICE_OPEN_SHARED_HANDLE_ACCESS_DENIED"; - case D3D12_MESSAGE_ID_INCOMPATIBLE_BARRIER_VALUES: return "D3D12_MESSAGE_ID_INCOMPATIBLE_BARRIER_VALUES"; - case D3D12_MESSAGE_ID_INCOMPATIBLE_BARRIER_ACCESS: return "D3D12_MESSAGE_ID_INCOMPATIBLE_BARRIER_ACCESS"; - case D3D12_MESSAGE_ID_INCOMPATIBLE_BARRIER_SYNC: return "D3D12_MESSAGE_ID_INCOMPATIBLE_BARRIER_SYNC"; - case D3D12_MESSAGE_ID_INCOMPATIBLE_BARRIER_LAYOUT: return "D3D12_MESSAGE_ID_INCOMPATIBLE_BARRIER_LAYOUT"; - case D3D12_MESSAGE_ID_INCOMPATIBLE_BARRIER_TYPE: return "D3D12_MESSAGE_ID_INCOMPATIBLE_BARRIER_TYPE"; - case D3D12_MESSAGE_ID_OUT_OF_BOUNDS_BARRIER_SUBRESOURCE_RANGE: return "D3D12_MESSAGE_ID_OUT_OF_BOUNDS_BARRIER_SUBRESOURCE_RANGE"; - case D3D12_MESSAGE_ID_INCOMPATIBLE_BARRIER_RESOURCE_DIMENSION: return "D3D12_MESSAGE_ID_INCOMPATIBLE_BARRIER_RESOURCE_DIMENSION"; - case D3D12_MESSAGE_ID_SET_SCISSOR_RECTS_INVALID_RECT: return "D3D12_MESSAGE_ID_SET_SCISSOR_RECTS_INVALID_RECT"; - case D3D12_MESSAGE_ID_SHADING_RATE_SOURCE_REQUIRES_DIMENSION_TEXTURE2D: return "D3D12_MESSAGE_ID_SHADING_RATE_SOURCE_REQUIRES_DIMENSION_TEXTURE2D"; - case D3D12_MESSAGE_ID_BUFFER_BARRIER_SUBREGION_OUT_OF_BOUNDS: return "D3D12_MESSAGE_ID_BUFFER_BARRIER_SUBREGION_OUT_OF_BOUNDS"; - case D3D12_MESSAGE_ID_UNSUPPORTED_BARRIER_LAYOUT: return "D3D12_MESSAGE_ID_UNSUPPORTED_BARRIER_LAYOUT"; - case D3D12_MESSAGE_ID_CREATERESOURCEANDHEAP_INVALID_PARAMETERS: return "D3D12_MESSAGE_ID_CREATERESOURCEANDHEAP_INVALID_PARAMETERS"; - case D3D12_MESSAGE_ID_ENHANCED_BARRIERS_NOT_SUPPORTED: return "D3D12_MESSAGE_ID_ENHANCED_BARRIERS_NOT_SUPPORTED"; - case D3D12_MESSAGE_ID_LEGACY_BARRIER_VALIDATION_FORCED_ON: return "D3D12_MESSAGE_ID_LEGACY_BARRIER_VALIDATION_FORCED_ON"; - case D3D12_MESSAGE_ID_EMPTY_ROOT_DESCRIPTOR_TABLE: return "D3D12_MESSAGE_ID_EMPTY_ROOT_DESCRIPTOR_TABLE"; - case D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_ELEMENT_OFFSET_UNALIGNED: return "D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_ELEMENT_OFFSET_UNALIGNED"; - case D3D12_MESSAGE_ID_ALPHA_BLEND_FACTOR_NOT_SUPPORTED: return "D3D12_MESSAGE_ID_ALPHA_BLEND_FACTOR_NOT_SUPPORTED"; - case D3D12_MESSAGE_ID_BARRIER_INTEROP_INVALID_LAYOUT: return "D3D12_MESSAGE_ID_BARRIER_INTEROP_INVALID_LAYOUT"; - case D3D12_MESSAGE_ID_BARRIER_INTEROP_INVALID_STATE: return "D3D12_MESSAGE_ID_BARRIER_INTEROP_INVALID_STATE"; - case D3D12_MESSAGE_ID_GRAPHICS_PIPELINE_STATE_DESC_ZERO_SAMPLE_MASK: return "D3D12_MESSAGE_ID_GRAPHICS_PIPELINE_STATE_DESC_ZERO_SAMPLE_MASK"; - case D3D12_MESSAGE_ID_INDEPENDENT_STENCIL_REF_NOT_SUPPORTED: return "D3D12_MESSAGE_ID_INDEPENDENT_STENCIL_REF_NOT_SUPPORTED"; - case D3D12_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INDEPENDENT_MASKS_UNSUPPORTED: return "D3D12_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INDEPENDENT_MASKS_UNSUPPORTED"; - case D3D12_MESSAGE_ID_TEXTURE_BARRIER_SUBRESOURCES_OUT_OF_BOUNDS: return "D3D12_MESSAGE_ID_TEXTURE_BARRIER_SUBRESOURCES_OUT_OF_BOUNDS"; - case D3D12_MESSAGE_ID_NON_OPTIMAL_BARRIER_ONLY_EXECUTE_COMMAND_LISTS: return "D3D12_MESSAGE_ID_NON_OPTIMAL_BARRIER_ONLY_EXECUTE_COMMAND_LISTS"; - case D3D12_MESSAGE_ID_EXECUTE_INDIRECT_ZERO_COMMAND_COUNT: return "D3D12_MESSAGE_ID_EXECUTE_INDIRECT_ZERO_COMMAND_COUNT"; - case D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_INCOMPATIBLE_TEXTURE_LAYOUT: return "D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_INCOMPATIBLE_TEXTURE_LAYOUT"; - case D3D12_MESSAGE_ID_DYNAMIC_INDEX_BUFFER_STRIP_CUT_NOT_SUPPORTED: return "D3D12_MESSAGE_ID_DYNAMIC_INDEX_BUFFER_STRIP_CUT_NOT_SUPPORTED"; - case D3D12_MESSAGE_ID_PRIMITIVE_TOPOLOGY_TRIANGLE_FANS_NOT_SUPPORTED: return "D3D12_MESSAGE_ID_PRIMITIVE_TOPOLOGY_TRIANGLE_FANS_NOT_SUPPORTED"; - case D3D12_MESSAGE_ID_CREATE_SAMPLER_COMPARISON_FUNC_IGNORED: return "D3D12_MESSAGE_ID_CREATE_SAMPLER_COMPARISON_FUNC_IGNORED"; - case D3D12_MESSAGE_ID_CREATEHEAP_INVALIDHEAPTYPE: return "D3D12_MESSAGE_ID_CREATEHEAP_INVALIDHEAPTYPE"; - case D3D12_MESSAGE_ID_CREATERESOURCEANDHEAP_INVALIDHEAPTYPE: return "D3D12_MESSAGE_ID_CREATERESOURCEANDHEAP_INVALIDHEAPTYPE"; - case D3D12_MESSAGE_ID_DYNAMIC_DEPTH_BIAS_NOT_SUPPORTED: return "D3D12_MESSAGE_ID_DYNAMIC_DEPTH_BIAS_NOT_SUPPORTED"; - case D3D12_MESSAGE_ID_CREATERASTERIZERSTATE_NON_WHOLE_DYNAMIC_DEPTH_BIAS: return "D3D12_MESSAGE_ID_CREATERASTERIZERSTATE_NON_WHOLE_DYNAMIC_DEPTH_BIAS"; - case D3D12_MESSAGE_ID_DYNAMIC_DEPTH_BIAS_FLAG_MISSING: return "D3D12_MESSAGE_ID_DYNAMIC_DEPTH_BIAS_FLAG_MISSING"; - case D3D12_MESSAGE_ID_DYNAMIC_DEPTH_BIAS_NO_PIPELINE: return "D3D12_MESSAGE_ID_DYNAMIC_DEPTH_BIAS_NO_PIPELINE"; - case D3D12_MESSAGE_ID_DYNAMIC_INDEX_BUFFER_STRIP_CUT_FLAG_MISSING: return "D3D12_MESSAGE_ID_DYNAMIC_INDEX_BUFFER_STRIP_CUT_FLAG_MISSING"; - case D3D12_MESSAGE_ID_DYNAMIC_INDEX_BUFFER_STRIP_CUT_NO_PIPELINE: return "D3D12_MESSAGE_ID_DYNAMIC_INDEX_BUFFER_STRIP_CUT_NO_PIPELINE"; - case D3D12_MESSAGE_ID_NONNORMALIZED_COORDINATE_SAMPLING_NOT_SUPPORTED: return "D3D12_MESSAGE_ID_NONNORMALIZED_COORDINATE_SAMPLING_NOT_SUPPORTED"; - case D3D12_MESSAGE_ID_INVALID_CAST_TARGET: return "D3D12_MESSAGE_ID_INVALID_CAST_TARGET"; - case D3D12_MESSAGE_ID_RENDER_PASS_COMMANDLIST_INVALID_END_STATE: return "D3D12_MESSAGE_ID_RENDER_PASS_COMMANDLIST_INVALID_END_STATE"; - case D3D12_MESSAGE_ID_RENDER_PASS_COMMANDLIST_INVALID_START_STATE: return "D3D12_MESSAGE_ID_RENDER_PASS_COMMANDLIST_INVALID_START_STATE"; - case D3D12_MESSAGE_ID_RENDER_PASS_MISMATCHING_ACCESS: return "D3D12_MESSAGE_ID_RENDER_PASS_MISMATCHING_ACCESS"; - case D3D12_MESSAGE_ID_RENDER_PASS_MISMATCHING_LOCAL_PRESERVE_PARAMETERS: return "D3D12_MESSAGE_ID_RENDER_PASS_MISMATCHING_LOCAL_PRESERVE_PARAMETERS"; - case D3D12_MESSAGE_ID_RENDER_PASS_LOCAL_PRESERVE_RENDER_PARAMETERS_ERROR: return "D3D12_MESSAGE_ID_RENDER_PASS_LOCAL_PRESERVE_RENDER_PARAMETERS_ERROR"; - case D3D12_MESSAGE_ID_RENDER_PASS_LOCAL_DEPTH_STENCIL_ERROR: return "D3D12_MESSAGE_ID_RENDER_PASS_LOCAL_DEPTH_STENCIL_ERROR"; - case D3D12_MESSAGE_ID_DRAW_POTENTIALLY_OUTSIDE_OF_VALID_RENDER_AREA: return "D3D12_MESSAGE_ID_DRAW_POTENTIALLY_OUTSIDE_OF_VALID_RENDER_AREA"; - case D3D12_MESSAGE_ID_CREATERASTERIZERSTATE_INVALID_LINERASTERIZATIONMODE: return "D3D12_MESSAGE_ID_CREATERASTERIZERSTATE_INVALID_LINERASTERIZATIONMODE"; - case D3D12_MESSAGE_ID_CREATERESOURCE_INVALIDALIGNMENT_SMALLRESOURCE: return "D3D12_MESSAGE_ID_CREATERESOURCE_INVALIDALIGNMENT_SMALLRESOURCE"; - case D3D12_MESSAGE_ID_D3D12_MESSAGES_END: return "D3D12_MESSAGE_ID_D3D12_MESSAGES_END"; - default: break; - } - return "Unhandled D3D12_MESSAGE_ID"; -} - -std::string ToString(const D3D12_MESSAGE_CALLBACK_FLAGS& value) -{ - switch (value) { - case D3D12_MESSAGE_CALLBACK_FLAG_NONE: return "D3D12_MESSAGE_CALLBACK_FLAG_NONE"; - case D3D12_MESSAGE_CALLBACK_IGNORE_FILTERS: return "D3D12_MESSAGE_CALLBACK_IGNORE_FILTERS"; - default: break; - } - return "Unhandled D3D12_MESSAGE_CALLBACK_FLAGS"; -} - -std::string ToString_D3D12_MESSAGE_CALLBACK_FLAGS(uint32_t flags) +std::string ToString(const D3D12_DEBUG_COMMAND_LIST_PARAMETER_TYPE value) +{ + const char* ret = "Unhandled D3D12_DEBUG_COMMAND_LIST_PARAMETER_TYPE"; + switch (value) { + case D3D12_DEBUG_COMMAND_LIST_PARAMETER_GPU_BASED_VALIDATION_SETTINGS: ret = "D3D12_DEBUG_COMMAND_LIST_PARAMETER_GPU_BASED_VALIDATION_SETTINGS"; break; + } + return ret; +} + +std::string ToString(const D3D12_MESSAGE_CATEGORY value) +{ + const char* ret = "Unhandled D3D12_MESSAGE_CATEGORY"; + switch (value) { + case D3D12_MESSAGE_CATEGORY_APPLICATION_DEFINED: ret = "D3D12_MESSAGE_CATEGORY_APPLICATION_DEFINED"; break; + case D3D12_MESSAGE_CATEGORY_MISCELLANEOUS: ret = "D3D12_MESSAGE_CATEGORY_MISCELLANEOUS"; break; + case D3D12_MESSAGE_CATEGORY_INITIALIZATION: ret = "D3D12_MESSAGE_CATEGORY_INITIALIZATION"; break; + case D3D12_MESSAGE_CATEGORY_CLEANUP: ret = "D3D12_MESSAGE_CATEGORY_CLEANUP"; break; + case D3D12_MESSAGE_CATEGORY_COMPILATION: ret = "D3D12_MESSAGE_CATEGORY_COMPILATION"; break; + case D3D12_MESSAGE_CATEGORY_STATE_CREATION: ret = "D3D12_MESSAGE_CATEGORY_STATE_CREATION"; break; + case D3D12_MESSAGE_CATEGORY_STATE_SETTING: ret = "D3D12_MESSAGE_CATEGORY_STATE_SETTING"; break; + case D3D12_MESSAGE_CATEGORY_STATE_GETTING: ret = "D3D12_MESSAGE_CATEGORY_STATE_GETTING"; break; + case D3D12_MESSAGE_CATEGORY_RESOURCE_MANIPULATION: ret = "D3D12_MESSAGE_CATEGORY_RESOURCE_MANIPULATION"; break; + case D3D12_MESSAGE_CATEGORY_EXECUTION: ret = "D3D12_MESSAGE_CATEGORY_EXECUTION"; break; + case D3D12_MESSAGE_CATEGORY_SHADER: ret = "D3D12_MESSAGE_CATEGORY_SHADER"; break; + } + return ret; +} + +std::string ToString(const D3D12_MESSAGE_SEVERITY value) +{ + const char* ret = "Unhandled D3D12_MESSAGE_SEVERITY"; + switch (value) { + case D3D12_MESSAGE_SEVERITY_CORRUPTION: ret = "D3D12_MESSAGE_SEVERITY_CORRUPTION"; break; + case D3D12_MESSAGE_SEVERITY_ERROR: ret = "D3D12_MESSAGE_SEVERITY_ERROR"; break; + case D3D12_MESSAGE_SEVERITY_WARNING: ret = "D3D12_MESSAGE_SEVERITY_WARNING"; break; + case D3D12_MESSAGE_SEVERITY_INFO: ret = "D3D12_MESSAGE_SEVERITY_INFO"; break; + case D3D12_MESSAGE_SEVERITY_MESSAGE: ret = "D3D12_MESSAGE_SEVERITY_MESSAGE"; break; + } + return ret; +} + +std::string ToString(const D3D12_MESSAGE_ID value) +{ + const char* ret = "Unhandled D3D12_MESSAGE_ID"; + switch (value) { + case D3D12_MESSAGE_ID_UNKNOWN: ret = "D3D12_MESSAGE_ID_UNKNOWN"; break; + case D3D12_MESSAGE_ID_STRING_FROM_APPLICATION: ret = "D3D12_MESSAGE_ID_STRING_FROM_APPLICATION"; break; + case D3D12_MESSAGE_ID_CORRUPTED_THIS: ret = "D3D12_MESSAGE_ID_CORRUPTED_THIS"; break; + case D3D12_MESSAGE_ID_CORRUPTED_PARAMETER1: ret = "D3D12_MESSAGE_ID_CORRUPTED_PARAMETER1"; break; + case D3D12_MESSAGE_ID_CORRUPTED_PARAMETER2: ret = "D3D12_MESSAGE_ID_CORRUPTED_PARAMETER2"; break; + case D3D12_MESSAGE_ID_CORRUPTED_PARAMETER3: ret = "D3D12_MESSAGE_ID_CORRUPTED_PARAMETER3"; break; + case D3D12_MESSAGE_ID_CORRUPTED_PARAMETER4: ret = "D3D12_MESSAGE_ID_CORRUPTED_PARAMETER4"; break; + case D3D12_MESSAGE_ID_CORRUPTED_PARAMETER5: ret = "D3D12_MESSAGE_ID_CORRUPTED_PARAMETER5"; break; + case D3D12_MESSAGE_ID_CORRUPTED_PARAMETER6: ret = "D3D12_MESSAGE_ID_CORRUPTED_PARAMETER6"; break; + case D3D12_MESSAGE_ID_CORRUPTED_PARAMETER7: ret = "D3D12_MESSAGE_ID_CORRUPTED_PARAMETER7"; break; + case D3D12_MESSAGE_ID_CORRUPTED_PARAMETER8: ret = "D3D12_MESSAGE_ID_CORRUPTED_PARAMETER8"; break; + case D3D12_MESSAGE_ID_CORRUPTED_PARAMETER9: ret = "D3D12_MESSAGE_ID_CORRUPTED_PARAMETER9"; break; + case D3D12_MESSAGE_ID_CORRUPTED_PARAMETER10: ret = "D3D12_MESSAGE_ID_CORRUPTED_PARAMETER10"; break; + case D3D12_MESSAGE_ID_CORRUPTED_PARAMETER11: ret = "D3D12_MESSAGE_ID_CORRUPTED_PARAMETER11"; break; + case D3D12_MESSAGE_ID_CORRUPTED_PARAMETER12: ret = "D3D12_MESSAGE_ID_CORRUPTED_PARAMETER12"; break; + case D3D12_MESSAGE_ID_CORRUPTED_PARAMETER13: ret = "D3D12_MESSAGE_ID_CORRUPTED_PARAMETER13"; break; + case D3D12_MESSAGE_ID_CORRUPTED_PARAMETER14: ret = "D3D12_MESSAGE_ID_CORRUPTED_PARAMETER14"; break; + case D3D12_MESSAGE_ID_CORRUPTED_PARAMETER15: ret = "D3D12_MESSAGE_ID_CORRUPTED_PARAMETER15"; break; + case D3D12_MESSAGE_ID_CORRUPTED_MULTITHREADING: ret = "D3D12_MESSAGE_ID_CORRUPTED_MULTITHREADING"; break; + case D3D12_MESSAGE_ID_MESSAGE_REPORTING_OUTOFMEMORY: ret = "D3D12_MESSAGE_ID_MESSAGE_REPORTING_OUTOFMEMORY"; break; + case D3D12_MESSAGE_ID_GETPRIVATEDATA_MOREDATA: ret = "D3D12_MESSAGE_ID_GETPRIVATEDATA_MOREDATA"; break; + case D3D12_MESSAGE_ID_SETPRIVATEDATA_INVALIDFREEDATA: ret = "D3D12_MESSAGE_ID_SETPRIVATEDATA_INVALIDFREEDATA"; break; + case D3D12_MESSAGE_ID_SETPRIVATEDATA_CHANGINGPARAMS: ret = "D3D12_MESSAGE_ID_SETPRIVATEDATA_CHANGINGPARAMS"; break; + case D3D12_MESSAGE_ID_SETPRIVATEDATA_OUTOFMEMORY: ret = "D3D12_MESSAGE_ID_SETPRIVATEDATA_OUTOFMEMORY"; break; + case D3D12_MESSAGE_ID_CREATESHADERRESOURCEVIEW_UNRECOGNIZEDFORMAT: ret = "D3D12_MESSAGE_ID_CREATESHADERRESOURCEVIEW_UNRECOGNIZEDFORMAT"; break; + case D3D12_MESSAGE_ID_CREATESHADERRESOURCEVIEW_INVALIDDESC: ret = "D3D12_MESSAGE_ID_CREATESHADERRESOURCEVIEW_INVALIDDESC"; break; + case D3D12_MESSAGE_ID_CREATESHADERRESOURCEVIEW_INVALIDFORMAT: ret = "D3D12_MESSAGE_ID_CREATESHADERRESOURCEVIEW_INVALIDFORMAT"; break; + case D3D12_MESSAGE_ID_CREATESHADERRESOURCEVIEW_INVALIDVIDEOPLANESLICE: ret = "D3D12_MESSAGE_ID_CREATESHADERRESOURCEVIEW_INVALIDVIDEOPLANESLICE"; break; + case D3D12_MESSAGE_ID_CREATESHADERRESOURCEVIEW_INVALIDPLANESLICE: ret = "D3D12_MESSAGE_ID_CREATESHADERRESOURCEVIEW_INVALIDPLANESLICE"; break; + case D3D12_MESSAGE_ID_CREATESHADERRESOURCEVIEW_INVALIDDIMENSIONS: ret = "D3D12_MESSAGE_ID_CREATESHADERRESOURCEVIEW_INVALIDDIMENSIONS"; break; + case D3D12_MESSAGE_ID_CREATESHADERRESOURCEVIEW_INVALIDRESOURCE: ret = "D3D12_MESSAGE_ID_CREATESHADERRESOURCEVIEW_INVALIDRESOURCE"; break; + case D3D12_MESSAGE_ID_CREATERENDERTARGETVIEW_UNRECOGNIZEDFORMAT: ret = "D3D12_MESSAGE_ID_CREATERENDERTARGETVIEW_UNRECOGNIZEDFORMAT"; break; + case D3D12_MESSAGE_ID_CREATERENDERTARGETVIEW_UNSUPPORTEDFORMAT: ret = "D3D12_MESSAGE_ID_CREATERENDERTARGETVIEW_UNSUPPORTEDFORMAT"; break; + case D3D12_MESSAGE_ID_CREATERENDERTARGETVIEW_INVALIDDESC: ret = "D3D12_MESSAGE_ID_CREATERENDERTARGETVIEW_INVALIDDESC"; break; + case D3D12_MESSAGE_ID_CREATERENDERTARGETVIEW_INVALIDFORMAT: ret = "D3D12_MESSAGE_ID_CREATERENDERTARGETVIEW_INVALIDFORMAT"; break; + case D3D12_MESSAGE_ID_CREATERENDERTARGETVIEW_INVALIDVIDEOPLANESLICE: ret = "D3D12_MESSAGE_ID_CREATERENDERTARGETVIEW_INVALIDVIDEOPLANESLICE"; break; + case D3D12_MESSAGE_ID_CREATERENDERTARGETVIEW_INVALIDPLANESLICE: ret = "D3D12_MESSAGE_ID_CREATERENDERTARGETVIEW_INVALIDPLANESLICE"; break; + case D3D12_MESSAGE_ID_CREATERENDERTARGETVIEW_INVALIDDIMENSIONS: ret = "D3D12_MESSAGE_ID_CREATERENDERTARGETVIEW_INVALIDDIMENSIONS"; break; + case D3D12_MESSAGE_ID_CREATERENDERTARGETVIEW_INVALIDRESOURCE: ret = "D3D12_MESSAGE_ID_CREATERENDERTARGETVIEW_INVALIDRESOURCE"; break; + case D3D12_MESSAGE_ID_CREATEDEPTHSTENCILVIEW_UNRECOGNIZEDFORMAT: ret = "D3D12_MESSAGE_ID_CREATEDEPTHSTENCILVIEW_UNRECOGNIZEDFORMAT"; break; + case D3D12_MESSAGE_ID_CREATEDEPTHSTENCILVIEW_INVALIDDESC: ret = "D3D12_MESSAGE_ID_CREATEDEPTHSTENCILVIEW_INVALIDDESC"; break; + case D3D12_MESSAGE_ID_CREATEDEPTHSTENCILVIEW_INVALIDFORMAT: ret = "D3D12_MESSAGE_ID_CREATEDEPTHSTENCILVIEW_INVALIDFORMAT"; break; + case D3D12_MESSAGE_ID_CREATEDEPTHSTENCILVIEW_INVALIDDIMENSIONS: ret = "D3D12_MESSAGE_ID_CREATEDEPTHSTENCILVIEW_INVALIDDIMENSIONS"; break; + case D3D12_MESSAGE_ID_CREATEDEPTHSTENCILVIEW_INVALIDRESOURCE: ret = "D3D12_MESSAGE_ID_CREATEDEPTHSTENCILVIEW_INVALIDRESOURCE"; break; + case D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_OUTOFMEMORY: ret = "D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_OUTOFMEMORY"; break; + case D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_TOOMANYELEMENTS: ret = "D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_TOOMANYELEMENTS"; break; + case D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_INVALIDFORMAT: ret = "D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_INVALIDFORMAT"; break; + case D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_INCOMPATIBLEFORMAT: ret = "D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_INCOMPATIBLEFORMAT"; break; + case D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_INVALIDSLOT: ret = "D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_INVALIDSLOT"; break; + case D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_INVALIDINPUTSLOTCLASS: ret = "D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_INVALIDINPUTSLOTCLASS"; break; + case D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_STEPRATESLOTCLASSMISMATCH: ret = "D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_STEPRATESLOTCLASSMISMATCH"; break; + case D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_INVALIDSLOTCLASSCHANGE: ret = "D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_INVALIDSLOTCLASSCHANGE"; break; + case D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_INVALIDSTEPRATECHANGE: ret = "D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_INVALIDSTEPRATECHANGE"; break; + case D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_INVALIDALIGNMENT: ret = "D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_INVALIDALIGNMENT"; break; + case D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_DUPLICATESEMANTIC: ret = "D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_DUPLICATESEMANTIC"; break; + case D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_UNPARSEABLEINPUTSIGNATURE: ret = "D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_UNPARSEABLEINPUTSIGNATURE"; break; + case D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_NULLSEMANTIC: ret = "D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_NULLSEMANTIC"; break; + case D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_MISSINGELEMENT: ret = "D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_MISSINGELEMENT"; break; + case D3D12_MESSAGE_ID_CREATEVERTEXSHADER_OUTOFMEMORY: ret = "D3D12_MESSAGE_ID_CREATEVERTEXSHADER_OUTOFMEMORY"; break; + case D3D12_MESSAGE_ID_CREATEVERTEXSHADER_INVALIDSHADERBYTECODE: ret = "D3D12_MESSAGE_ID_CREATEVERTEXSHADER_INVALIDSHADERBYTECODE"; break; + case D3D12_MESSAGE_ID_CREATEVERTEXSHADER_INVALIDSHADERTYPE: ret = "D3D12_MESSAGE_ID_CREATEVERTEXSHADER_INVALIDSHADERTYPE"; break; + case D3D12_MESSAGE_ID_CREATEGEOMETRYSHADER_OUTOFMEMORY: ret = "D3D12_MESSAGE_ID_CREATEGEOMETRYSHADER_OUTOFMEMORY"; break; + case D3D12_MESSAGE_ID_CREATEGEOMETRYSHADER_INVALIDSHADERBYTECODE: ret = "D3D12_MESSAGE_ID_CREATEGEOMETRYSHADER_INVALIDSHADERBYTECODE"; break; + case D3D12_MESSAGE_ID_CREATEGEOMETRYSHADER_INVALIDSHADERTYPE: ret = "D3D12_MESSAGE_ID_CREATEGEOMETRYSHADER_INVALIDSHADERTYPE"; break; + case D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_OUTOFMEMORY: ret = "D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_OUTOFMEMORY"; break; + case D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDSHADERBYTECODE: ret = "D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDSHADERBYTECODE"; break; + case D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDSHADERTYPE: ret = "D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDSHADERTYPE"; break; + case D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDNUMENTRIES: ret = "D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDNUMENTRIES"; break; + case D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_OUTPUTSTREAMSTRIDEUNUSED: ret = "D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_OUTPUTSTREAMSTRIDEUNUSED"; break; + case D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_OUTPUTSLOT0EXPECTED: ret = "D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_OUTPUTSLOT0EXPECTED"; break; + case D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDOUTPUTSLOT: ret = "D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDOUTPUTSLOT"; break; + case D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_ONLYONEELEMENTPERSLOT: ret = "D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_ONLYONEELEMENTPERSLOT"; break; + case D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDCOMPONENTCOUNT: ret = "D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDCOMPONENTCOUNT"; break; + case D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDSTARTCOMPONENTANDCOMPONENTCOUNT: ret = "D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDSTARTCOMPONENTANDCOMPONENTCOUNT"; break; + case D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDGAPDEFINITION: ret = "D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDGAPDEFINITION"; break; + case D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_REPEATEDOUTPUT: ret = "D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_REPEATEDOUTPUT"; break; + case D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDOUTPUTSTREAMSTRIDE: ret = "D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDOUTPUTSTREAMSTRIDE"; break; + case D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_MISSINGSEMANTIC: ret = "D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_MISSINGSEMANTIC"; break; + case D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_MASKMISMATCH: ret = "D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_MASKMISMATCH"; break; + case D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_CANTHAVEONLYGAPS: ret = "D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_CANTHAVEONLYGAPS"; break; + case D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_DECLTOOCOMPLEX: ret = "D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_DECLTOOCOMPLEX"; break; + case D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_MISSINGOUTPUTSIGNATURE: ret = "D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_MISSINGOUTPUTSIGNATURE"; break; + case D3D12_MESSAGE_ID_CREATEPIXELSHADER_OUTOFMEMORY: ret = "D3D12_MESSAGE_ID_CREATEPIXELSHADER_OUTOFMEMORY"; break; + case D3D12_MESSAGE_ID_CREATEPIXELSHADER_INVALIDSHADERBYTECODE: ret = "D3D12_MESSAGE_ID_CREATEPIXELSHADER_INVALIDSHADERBYTECODE"; break; + case D3D12_MESSAGE_ID_CREATEPIXELSHADER_INVALIDSHADERTYPE: ret = "D3D12_MESSAGE_ID_CREATEPIXELSHADER_INVALIDSHADERTYPE"; break; + case D3D12_MESSAGE_ID_CREATERASTERIZERSTATE_INVALIDFILLMODE: ret = "D3D12_MESSAGE_ID_CREATERASTERIZERSTATE_INVALIDFILLMODE"; break; + case D3D12_MESSAGE_ID_CREATERASTERIZERSTATE_INVALIDCULLMODE: ret = "D3D12_MESSAGE_ID_CREATERASTERIZERSTATE_INVALIDCULLMODE"; break; + case D3D12_MESSAGE_ID_CREATERASTERIZERSTATE_INVALIDDEPTHBIASCLAMP: ret = "D3D12_MESSAGE_ID_CREATERASTERIZERSTATE_INVALIDDEPTHBIASCLAMP"; break; + case D3D12_MESSAGE_ID_CREATERASTERIZERSTATE_INVALIDSLOPESCALEDDEPTHBIAS: ret = "D3D12_MESSAGE_ID_CREATERASTERIZERSTATE_INVALIDSLOPESCALEDDEPTHBIAS"; break; + case D3D12_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDDEPTHWRITEMASK: ret = "D3D12_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDDEPTHWRITEMASK"; break; + case D3D12_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDDEPTHFUNC: ret = "D3D12_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDDEPTHFUNC"; break; + case D3D12_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDFRONTFACESTENCILFAILOP: ret = "D3D12_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDFRONTFACESTENCILFAILOP"; break; + case D3D12_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDFRONTFACESTENCILZFAILOP: ret = "D3D12_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDFRONTFACESTENCILZFAILOP"; break; + case D3D12_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDFRONTFACESTENCILPASSOP: ret = "D3D12_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDFRONTFACESTENCILPASSOP"; break; + case D3D12_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDFRONTFACESTENCILFUNC: ret = "D3D12_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDFRONTFACESTENCILFUNC"; break; + case D3D12_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDBACKFACESTENCILFAILOP: ret = "D3D12_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDBACKFACESTENCILFAILOP"; break; + case D3D12_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDBACKFACESTENCILZFAILOP: ret = "D3D12_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDBACKFACESTENCILZFAILOP"; break; + case D3D12_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDBACKFACESTENCILPASSOP: ret = "D3D12_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDBACKFACESTENCILPASSOP"; break; + case D3D12_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDBACKFACESTENCILFUNC: ret = "D3D12_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDBACKFACESTENCILFUNC"; break; + case D3D12_MESSAGE_ID_CREATEBLENDSTATE_INVALIDSRCBLEND: ret = "D3D12_MESSAGE_ID_CREATEBLENDSTATE_INVALIDSRCBLEND"; break; + case D3D12_MESSAGE_ID_CREATEBLENDSTATE_INVALIDDESTBLEND: ret = "D3D12_MESSAGE_ID_CREATEBLENDSTATE_INVALIDDESTBLEND"; break; + case D3D12_MESSAGE_ID_CREATEBLENDSTATE_INVALIDBLENDOP: ret = "D3D12_MESSAGE_ID_CREATEBLENDSTATE_INVALIDBLENDOP"; break; + case D3D12_MESSAGE_ID_CREATEBLENDSTATE_INVALIDSRCBLENDALPHA: ret = "D3D12_MESSAGE_ID_CREATEBLENDSTATE_INVALIDSRCBLENDALPHA"; break; + case D3D12_MESSAGE_ID_CREATEBLENDSTATE_INVALIDDESTBLENDALPHA: ret = "D3D12_MESSAGE_ID_CREATEBLENDSTATE_INVALIDDESTBLENDALPHA"; break; + case D3D12_MESSAGE_ID_CREATEBLENDSTATE_INVALIDBLENDOPALPHA: ret = "D3D12_MESSAGE_ID_CREATEBLENDSTATE_INVALIDBLENDOPALPHA"; break; + case D3D12_MESSAGE_ID_CREATEBLENDSTATE_INVALIDRENDERTARGETWRITEMASK: ret = "D3D12_MESSAGE_ID_CREATEBLENDSTATE_INVALIDRENDERTARGETWRITEMASK"; break; + case D3D12_MESSAGE_ID_CLEARDEPTHSTENCILVIEW_INVALID: ret = "D3D12_MESSAGE_ID_CLEARDEPTHSTENCILVIEW_INVALID"; break; + case D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_ROOT_SIGNATURE_NOT_SET: ret = "D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_ROOT_SIGNATURE_NOT_SET"; break; + case D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_ROOT_SIGNATURE_MISMATCH: ret = "D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_ROOT_SIGNATURE_MISMATCH"; break; + case D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_VERTEX_BUFFER_NOT_SET: ret = "D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_VERTEX_BUFFER_NOT_SET"; break; + case D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_VERTEX_BUFFER_STRIDE_TOO_SMALL: ret = "D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_VERTEX_BUFFER_STRIDE_TOO_SMALL"; break; + case D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_VERTEX_BUFFER_TOO_SMALL: ret = "D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_VERTEX_BUFFER_TOO_SMALL"; break; + case D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_INDEX_BUFFER_NOT_SET: ret = "D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_INDEX_BUFFER_NOT_SET"; break; + case D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_INDEX_BUFFER_FORMAT_INVALID: ret = "D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_INDEX_BUFFER_FORMAT_INVALID"; break; + case D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_INDEX_BUFFER_TOO_SMALL: ret = "D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_INDEX_BUFFER_TOO_SMALL"; break; + case D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_INVALID_PRIMITIVETOPOLOGY: ret = "D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_INVALID_PRIMITIVETOPOLOGY"; break; + case D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_VERTEX_STRIDE_UNALIGNED: ret = "D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_VERTEX_STRIDE_UNALIGNED"; break; + case D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_INDEX_OFFSET_UNALIGNED: ret = "D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_INDEX_OFFSET_UNALIGNED"; break; + case D3D12_MESSAGE_ID_DEVICE_REMOVAL_PROCESS_AT_FAULT: ret = "D3D12_MESSAGE_ID_DEVICE_REMOVAL_PROCESS_AT_FAULT"; break; + case D3D12_MESSAGE_ID_DEVICE_REMOVAL_PROCESS_POSSIBLY_AT_FAULT: ret = "D3D12_MESSAGE_ID_DEVICE_REMOVAL_PROCESS_POSSIBLY_AT_FAULT"; break; + case D3D12_MESSAGE_ID_DEVICE_REMOVAL_PROCESS_NOT_AT_FAULT: ret = "D3D12_MESSAGE_ID_DEVICE_REMOVAL_PROCESS_NOT_AT_FAULT"; break; + case D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_TRAILING_DIGIT_IN_SEMANTIC: ret = "D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_TRAILING_DIGIT_IN_SEMANTIC"; break; + case D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_TRAILING_DIGIT_IN_SEMANTIC: ret = "D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_TRAILING_DIGIT_IN_SEMANTIC"; break; + case D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_TYPE_MISMATCH: ret = "D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_TYPE_MISMATCH"; break; + case D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_EMPTY_LAYOUT: ret = "D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_EMPTY_LAYOUT"; break; + case D3D12_MESSAGE_ID_LIVE_OBJECT_SUMMARY: ret = "D3D12_MESSAGE_ID_LIVE_OBJECT_SUMMARY"; break; + case D3D12_MESSAGE_ID_LIVE_DEVICE: ret = "D3D12_MESSAGE_ID_LIVE_DEVICE"; break; + case D3D12_MESSAGE_ID_LIVE_SWAPCHAIN: ret = "D3D12_MESSAGE_ID_LIVE_SWAPCHAIN"; break; + case D3D12_MESSAGE_ID_CREATEDEPTHSTENCILVIEW_INVALIDFLAGS: ret = "D3D12_MESSAGE_ID_CREATEDEPTHSTENCILVIEW_INVALIDFLAGS"; break; + case D3D12_MESSAGE_ID_CREATEVERTEXSHADER_INVALIDCLASSLINKAGE: ret = "D3D12_MESSAGE_ID_CREATEVERTEXSHADER_INVALIDCLASSLINKAGE"; break; + case D3D12_MESSAGE_ID_CREATEGEOMETRYSHADER_INVALIDCLASSLINKAGE: ret = "D3D12_MESSAGE_ID_CREATEGEOMETRYSHADER_INVALIDCLASSLINKAGE"; break; + case D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDSTREAMTORASTERIZER: ret = "D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDSTREAMTORASTERIZER"; break; + case D3D12_MESSAGE_ID_CREATEPIXELSHADER_INVALIDCLASSLINKAGE: ret = "D3D12_MESSAGE_ID_CREATEPIXELSHADER_INVALIDCLASSLINKAGE"; break; + case D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDSTREAM: ret = "D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDSTREAM"; break; + case D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_UNEXPECTEDENTRIES: ret = "D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_UNEXPECTEDENTRIES"; break; + case D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_UNEXPECTEDSTRIDES: ret = "D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_UNEXPECTEDSTRIDES"; break; + case D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDNUMSTRIDES: ret = "D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDNUMSTRIDES"; break; + case D3D12_MESSAGE_ID_CREATEHULLSHADER_OUTOFMEMORY: ret = "D3D12_MESSAGE_ID_CREATEHULLSHADER_OUTOFMEMORY"; break; + case D3D12_MESSAGE_ID_CREATEHULLSHADER_INVALIDSHADERBYTECODE: ret = "D3D12_MESSAGE_ID_CREATEHULLSHADER_INVALIDSHADERBYTECODE"; break; + case D3D12_MESSAGE_ID_CREATEHULLSHADER_INVALIDSHADERTYPE: ret = "D3D12_MESSAGE_ID_CREATEHULLSHADER_INVALIDSHADERTYPE"; break; + case D3D12_MESSAGE_ID_CREATEHULLSHADER_INVALIDCLASSLINKAGE: ret = "D3D12_MESSAGE_ID_CREATEHULLSHADER_INVALIDCLASSLINKAGE"; break; + case D3D12_MESSAGE_ID_CREATEDOMAINSHADER_OUTOFMEMORY: ret = "D3D12_MESSAGE_ID_CREATEDOMAINSHADER_OUTOFMEMORY"; break; + case D3D12_MESSAGE_ID_CREATEDOMAINSHADER_INVALIDSHADERBYTECODE: ret = "D3D12_MESSAGE_ID_CREATEDOMAINSHADER_INVALIDSHADERBYTECODE"; break; + case D3D12_MESSAGE_ID_CREATEDOMAINSHADER_INVALIDSHADERTYPE: ret = "D3D12_MESSAGE_ID_CREATEDOMAINSHADER_INVALIDSHADERTYPE"; break; + case D3D12_MESSAGE_ID_CREATEDOMAINSHADER_INVALIDCLASSLINKAGE: ret = "D3D12_MESSAGE_ID_CREATEDOMAINSHADER_INVALIDCLASSLINKAGE"; break; + case D3D12_MESSAGE_ID_RESOURCE_UNMAP_NOTMAPPED: ret = "D3D12_MESSAGE_ID_RESOURCE_UNMAP_NOTMAPPED"; break; + case D3D12_MESSAGE_ID_DEVICE_CHECKFEATURESUPPORT_MISMATCHED_DATA_SIZE: ret = "D3D12_MESSAGE_ID_DEVICE_CHECKFEATURESUPPORT_MISMATCHED_DATA_SIZE"; break; + case D3D12_MESSAGE_ID_CREATECOMPUTESHADER_OUTOFMEMORY: ret = "D3D12_MESSAGE_ID_CREATECOMPUTESHADER_OUTOFMEMORY"; break; + case D3D12_MESSAGE_ID_CREATECOMPUTESHADER_INVALIDSHADERBYTECODE: ret = "D3D12_MESSAGE_ID_CREATECOMPUTESHADER_INVALIDSHADERBYTECODE"; break; + case D3D12_MESSAGE_ID_CREATECOMPUTESHADER_INVALIDCLASSLINKAGE: ret = "D3D12_MESSAGE_ID_CREATECOMPUTESHADER_INVALIDCLASSLINKAGE"; break; + case D3D12_MESSAGE_ID_DEVICE_CREATEVERTEXSHADER_DOUBLEFLOATOPSNOTSUPPORTED: ret = "D3D12_MESSAGE_ID_DEVICE_CREATEVERTEXSHADER_DOUBLEFLOATOPSNOTSUPPORTED"; break; + case D3D12_MESSAGE_ID_DEVICE_CREATEHULLSHADER_DOUBLEFLOATOPSNOTSUPPORTED: ret = "D3D12_MESSAGE_ID_DEVICE_CREATEHULLSHADER_DOUBLEFLOATOPSNOTSUPPORTED"; break; + case D3D12_MESSAGE_ID_DEVICE_CREATEDOMAINSHADER_DOUBLEFLOATOPSNOTSUPPORTED: ret = "D3D12_MESSAGE_ID_DEVICE_CREATEDOMAINSHADER_DOUBLEFLOATOPSNOTSUPPORTED"; break; + case D3D12_MESSAGE_ID_DEVICE_CREATEGEOMETRYSHADER_DOUBLEFLOATOPSNOTSUPPORTED: ret = "D3D12_MESSAGE_ID_DEVICE_CREATEGEOMETRYSHADER_DOUBLEFLOATOPSNOTSUPPORTED"; break; + case D3D12_MESSAGE_ID_DEVICE_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_DOUBLEFLOATOPSNOTSUPPORTED: ret = "D3D12_MESSAGE_ID_DEVICE_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_DOUBLEFLOATOPSNOTSUPPORTED"; break; + case D3D12_MESSAGE_ID_DEVICE_CREATEPIXELSHADER_DOUBLEFLOATOPSNOTSUPPORTED: ret = "D3D12_MESSAGE_ID_DEVICE_CREATEPIXELSHADER_DOUBLEFLOATOPSNOTSUPPORTED"; break; + case D3D12_MESSAGE_ID_DEVICE_CREATECOMPUTESHADER_DOUBLEFLOATOPSNOTSUPPORTED: ret = "D3D12_MESSAGE_ID_DEVICE_CREATECOMPUTESHADER_DOUBLEFLOATOPSNOTSUPPORTED"; break; + case D3D12_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_INVALIDRESOURCE: ret = "D3D12_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_INVALIDRESOURCE"; break; + case D3D12_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_INVALIDDESC: ret = "D3D12_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_INVALIDDESC"; break; + case D3D12_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_INVALIDFORMAT: ret = "D3D12_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_INVALIDFORMAT"; break; + case D3D12_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_INVALIDVIDEOPLANESLICE: ret = "D3D12_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_INVALIDVIDEOPLANESLICE"; break; + case D3D12_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_INVALIDPLANESLICE: ret = "D3D12_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_INVALIDPLANESLICE"; break; + case D3D12_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_INVALIDDIMENSIONS: ret = "D3D12_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_INVALIDDIMENSIONS"; break; + case D3D12_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_UNRECOGNIZEDFORMAT: ret = "D3D12_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_UNRECOGNIZEDFORMAT"; break; + case D3D12_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_INVALIDFLAGS: ret = "D3D12_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_INVALIDFLAGS"; break; + case D3D12_MESSAGE_ID_CREATERASTERIZERSTATE_INVALIDFORCEDSAMPLECOUNT: ret = "D3D12_MESSAGE_ID_CREATERASTERIZERSTATE_INVALIDFORCEDSAMPLECOUNT"; break; + case D3D12_MESSAGE_ID_CREATEBLENDSTATE_INVALIDLOGICOPS: ret = "D3D12_MESSAGE_ID_CREATEBLENDSTATE_INVALIDLOGICOPS"; break; + case D3D12_MESSAGE_ID_DEVICE_CREATEVERTEXSHADER_DOUBLEEXTENSIONSNOTSUPPORTED: ret = "D3D12_MESSAGE_ID_DEVICE_CREATEVERTEXSHADER_DOUBLEEXTENSIONSNOTSUPPORTED"; break; + case D3D12_MESSAGE_ID_DEVICE_CREATEHULLSHADER_DOUBLEEXTENSIONSNOTSUPPORTED: ret = "D3D12_MESSAGE_ID_DEVICE_CREATEHULLSHADER_DOUBLEEXTENSIONSNOTSUPPORTED"; break; + case D3D12_MESSAGE_ID_DEVICE_CREATEDOMAINSHADER_DOUBLEEXTENSIONSNOTSUPPORTED: ret = "D3D12_MESSAGE_ID_DEVICE_CREATEDOMAINSHADER_DOUBLEEXTENSIONSNOTSUPPORTED"; break; + case D3D12_MESSAGE_ID_DEVICE_CREATEGEOMETRYSHADER_DOUBLEEXTENSIONSNOTSUPPORTED: ret = "D3D12_MESSAGE_ID_DEVICE_CREATEGEOMETRYSHADER_DOUBLEEXTENSIONSNOTSUPPORTED"; break; + case D3D12_MESSAGE_ID_DEVICE_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_DOUBLEEXTENSIONSNOTSUPPORTED: ret = "D3D12_MESSAGE_ID_DEVICE_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_DOUBLEEXTENSIONSNOTSUPPORTED"; break; + case D3D12_MESSAGE_ID_DEVICE_CREATEPIXELSHADER_DOUBLEEXTENSIONSNOTSUPPORTED: ret = "D3D12_MESSAGE_ID_DEVICE_CREATEPIXELSHADER_DOUBLEEXTENSIONSNOTSUPPORTED"; break; + case D3D12_MESSAGE_ID_DEVICE_CREATECOMPUTESHADER_DOUBLEEXTENSIONSNOTSUPPORTED: ret = "D3D12_MESSAGE_ID_DEVICE_CREATECOMPUTESHADER_DOUBLEEXTENSIONSNOTSUPPORTED"; break; + case D3D12_MESSAGE_ID_DEVICE_CREATEVERTEXSHADER_UAVSNOTSUPPORTED: ret = "D3D12_MESSAGE_ID_DEVICE_CREATEVERTEXSHADER_UAVSNOTSUPPORTED"; break; + case D3D12_MESSAGE_ID_DEVICE_CREATEHULLSHADER_UAVSNOTSUPPORTED: ret = "D3D12_MESSAGE_ID_DEVICE_CREATEHULLSHADER_UAVSNOTSUPPORTED"; break; + case D3D12_MESSAGE_ID_DEVICE_CREATEDOMAINSHADER_UAVSNOTSUPPORTED: ret = "D3D12_MESSAGE_ID_DEVICE_CREATEDOMAINSHADER_UAVSNOTSUPPORTED"; break; + case D3D12_MESSAGE_ID_DEVICE_CREATEGEOMETRYSHADER_UAVSNOTSUPPORTED: ret = "D3D12_MESSAGE_ID_DEVICE_CREATEGEOMETRYSHADER_UAVSNOTSUPPORTED"; break; + case D3D12_MESSAGE_ID_DEVICE_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_UAVSNOTSUPPORTED: ret = "D3D12_MESSAGE_ID_DEVICE_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_UAVSNOTSUPPORTED"; break; + case D3D12_MESSAGE_ID_DEVICE_CREATEPIXELSHADER_UAVSNOTSUPPORTED: ret = "D3D12_MESSAGE_ID_DEVICE_CREATEPIXELSHADER_UAVSNOTSUPPORTED"; break; + case D3D12_MESSAGE_ID_DEVICE_CREATECOMPUTESHADER_UAVSNOTSUPPORTED: ret = "D3D12_MESSAGE_ID_DEVICE_CREATECOMPUTESHADER_UAVSNOTSUPPORTED"; break; + case D3D12_MESSAGE_ID_DEVICE_CLEARVIEW_INVALIDSOURCERECT: ret = "D3D12_MESSAGE_ID_DEVICE_CLEARVIEW_INVALIDSOURCERECT"; break; + case D3D12_MESSAGE_ID_DEVICE_CLEARVIEW_EMPTYRECT: ret = "D3D12_MESSAGE_ID_DEVICE_CLEARVIEW_EMPTYRECT"; break; + case D3D12_MESSAGE_ID_UPDATETILEMAPPINGS_INVALID_PARAMETER: ret = "D3D12_MESSAGE_ID_UPDATETILEMAPPINGS_INVALID_PARAMETER"; break; + case D3D12_MESSAGE_ID_COPYTILEMAPPINGS_INVALID_PARAMETER: ret = "D3D12_MESSAGE_ID_COPYTILEMAPPINGS_INVALID_PARAMETER"; break; + case D3D12_MESSAGE_ID_CREATEDEVICE_INVALIDARGS: ret = "D3D12_MESSAGE_ID_CREATEDEVICE_INVALIDARGS"; break; + case D3D12_MESSAGE_ID_CREATEDEVICE_WARNING: ret = "D3D12_MESSAGE_ID_CREATEDEVICE_WARNING"; break; + case D3D12_MESSAGE_ID_RESOURCE_BARRIER_INVALID_TYPE: ret = "D3D12_MESSAGE_ID_RESOURCE_BARRIER_INVALID_TYPE"; break; + case D3D12_MESSAGE_ID_RESOURCE_BARRIER_NULL_POINTER: ret = "D3D12_MESSAGE_ID_RESOURCE_BARRIER_NULL_POINTER"; break; + case D3D12_MESSAGE_ID_RESOURCE_BARRIER_INVALID_SUBRESOURCE: ret = "D3D12_MESSAGE_ID_RESOURCE_BARRIER_INVALID_SUBRESOURCE"; break; + case D3D12_MESSAGE_ID_RESOURCE_BARRIER_RESERVED_BITS: ret = "D3D12_MESSAGE_ID_RESOURCE_BARRIER_RESERVED_BITS"; break; + case D3D12_MESSAGE_ID_RESOURCE_BARRIER_MISSING_BIND_FLAGS: ret = "D3D12_MESSAGE_ID_RESOURCE_BARRIER_MISSING_BIND_FLAGS"; break; + case D3D12_MESSAGE_ID_RESOURCE_BARRIER_MISMATCHING_MISC_FLAGS: ret = "D3D12_MESSAGE_ID_RESOURCE_BARRIER_MISMATCHING_MISC_FLAGS"; break; + case D3D12_MESSAGE_ID_RESOURCE_BARRIER_MATCHING_STATES: ret = "D3D12_MESSAGE_ID_RESOURCE_BARRIER_MATCHING_STATES"; break; + case D3D12_MESSAGE_ID_RESOURCE_BARRIER_INVALID_COMBINATION: ret = "D3D12_MESSAGE_ID_RESOURCE_BARRIER_INVALID_COMBINATION"; break; + case D3D12_MESSAGE_ID_RESOURCE_BARRIER_BEFORE_AFTER_MISMATCH: ret = "D3D12_MESSAGE_ID_RESOURCE_BARRIER_BEFORE_AFTER_MISMATCH"; break; + case D3D12_MESSAGE_ID_RESOURCE_BARRIER_INVALID_RESOURCE: ret = "D3D12_MESSAGE_ID_RESOURCE_BARRIER_INVALID_RESOURCE"; break; + case D3D12_MESSAGE_ID_RESOURCE_BARRIER_SAMPLE_COUNT: ret = "D3D12_MESSAGE_ID_RESOURCE_BARRIER_SAMPLE_COUNT"; break; + case D3D12_MESSAGE_ID_RESOURCE_BARRIER_INVALID_FLAGS: ret = "D3D12_MESSAGE_ID_RESOURCE_BARRIER_INVALID_FLAGS"; break; + case D3D12_MESSAGE_ID_RESOURCE_BARRIER_INVALID_COMBINED_FLAGS: ret = "D3D12_MESSAGE_ID_RESOURCE_BARRIER_INVALID_COMBINED_FLAGS"; break; + case D3D12_MESSAGE_ID_RESOURCE_BARRIER_INVALID_FLAGS_FOR_FORMAT: ret = "D3D12_MESSAGE_ID_RESOURCE_BARRIER_INVALID_FLAGS_FOR_FORMAT"; break; + case D3D12_MESSAGE_ID_RESOURCE_BARRIER_INVALID_SPLIT_BARRIER: ret = "D3D12_MESSAGE_ID_RESOURCE_BARRIER_INVALID_SPLIT_BARRIER"; break; + case D3D12_MESSAGE_ID_RESOURCE_BARRIER_UNMATCHED_END: ret = "D3D12_MESSAGE_ID_RESOURCE_BARRIER_UNMATCHED_END"; break; + case D3D12_MESSAGE_ID_RESOURCE_BARRIER_UNMATCHED_BEGIN: ret = "D3D12_MESSAGE_ID_RESOURCE_BARRIER_UNMATCHED_BEGIN"; break; + case D3D12_MESSAGE_ID_RESOURCE_BARRIER_INVALID_FLAG: ret = "D3D12_MESSAGE_ID_RESOURCE_BARRIER_INVALID_FLAG"; break; + case D3D12_MESSAGE_ID_RESOURCE_BARRIER_INVALID_COMMAND_LIST_TYPE: ret = "D3D12_MESSAGE_ID_RESOURCE_BARRIER_INVALID_COMMAND_LIST_TYPE"; break; + case D3D12_MESSAGE_ID_INVALID_SUBRESOURCE_STATE: ret = "D3D12_MESSAGE_ID_INVALID_SUBRESOURCE_STATE"; break; + case D3D12_MESSAGE_ID_COMMAND_ALLOCATOR_CONTENTION: ret = "D3D12_MESSAGE_ID_COMMAND_ALLOCATOR_CONTENTION"; break; + case D3D12_MESSAGE_ID_COMMAND_ALLOCATOR_RESET: ret = "D3D12_MESSAGE_ID_COMMAND_ALLOCATOR_RESET"; break; + case D3D12_MESSAGE_ID_COMMAND_ALLOCATOR_RESET_BUNDLE: ret = "D3D12_MESSAGE_ID_COMMAND_ALLOCATOR_RESET_BUNDLE"; break; + case D3D12_MESSAGE_ID_COMMAND_ALLOCATOR_CANNOT_RESET: ret = "D3D12_MESSAGE_ID_COMMAND_ALLOCATOR_CANNOT_RESET"; break; + case D3D12_MESSAGE_ID_COMMAND_LIST_OPEN: ret = "D3D12_MESSAGE_ID_COMMAND_LIST_OPEN"; break; + case D3D12_MESSAGE_ID_INVALID_BUNDLE_API: ret = "D3D12_MESSAGE_ID_INVALID_BUNDLE_API"; break; + case D3D12_MESSAGE_ID_COMMAND_LIST_CLOSED: ret = "D3D12_MESSAGE_ID_COMMAND_LIST_CLOSED"; break; + case D3D12_MESSAGE_ID_WRONG_COMMAND_ALLOCATOR_TYPE: ret = "D3D12_MESSAGE_ID_WRONG_COMMAND_ALLOCATOR_TYPE"; break; + case D3D12_MESSAGE_ID_COMMAND_ALLOCATOR_SYNC: ret = "D3D12_MESSAGE_ID_COMMAND_ALLOCATOR_SYNC"; break; + case D3D12_MESSAGE_ID_COMMAND_LIST_SYNC: ret = "D3D12_MESSAGE_ID_COMMAND_LIST_SYNC"; break; + case D3D12_MESSAGE_ID_SET_DESCRIPTOR_HEAP_INVALID: ret = "D3D12_MESSAGE_ID_SET_DESCRIPTOR_HEAP_INVALID"; break; + case D3D12_MESSAGE_ID_CREATE_COMMANDQUEUE: ret = "D3D12_MESSAGE_ID_CREATE_COMMANDQUEUE"; break; + case D3D12_MESSAGE_ID_CREATE_COMMANDALLOCATOR: ret = "D3D12_MESSAGE_ID_CREATE_COMMANDALLOCATOR"; break; + case D3D12_MESSAGE_ID_CREATE_PIPELINESTATE: ret = "D3D12_MESSAGE_ID_CREATE_PIPELINESTATE"; break; + case D3D12_MESSAGE_ID_CREATE_COMMANDLIST12: ret = "D3D12_MESSAGE_ID_CREATE_COMMANDLIST12"; break; + case D3D12_MESSAGE_ID_CREATE_RESOURCE: ret = "D3D12_MESSAGE_ID_CREATE_RESOURCE"; break; + case D3D12_MESSAGE_ID_CREATE_DESCRIPTORHEAP: ret = "D3D12_MESSAGE_ID_CREATE_DESCRIPTORHEAP"; break; + case D3D12_MESSAGE_ID_CREATE_ROOTSIGNATURE: ret = "D3D12_MESSAGE_ID_CREATE_ROOTSIGNATURE"; break; + case D3D12_MESSAGE_ID_CREATE_LIBRARY: ret = "D3D12_MESSAGE_ID_CREATE_LIBRARY"; break; + case D3D12_MESSAGE_ID_CREATE_HEAP: ret = "D3D12_MESSAGE_ID_CREATE_HEAP"; break; + case D3D12_MESSAGE_ID_CREATE_MONITOREDFENCE: ret = "D3D12_MESSAGE_ID_CREATE_MONITOREDFENCE"; break; + case D3D12_MESSAGE_ID_CREATE_QUERYHEAP: ret = "D3D12_MESSAGE_ID_CREATE_QUERYHEAP"; break; + case D3D12_MESSAGE_ID_CREATE_COMMANDSIGNATURE: ret = "D3D12_MESSAGE_ID_CREATE_COMMANDSIGNATURE"; break; + case D3D12_MESSAGE_ID_LIVE_COMMANDQUEUE: ret = "D3D12_MESSAGE_ID_LIVE_COMMANDQUEUE"; break; + case D3D12_MESSAGE_ID_LIVE_COMMANDALLOCATOR: ret = "D3D12_MESSAGE_ID_LIVE_COMMANDALLOCATOR"; break; + case D3D12_MESSAGE_ID_LIVE_PIPELINESTATE: ret = "D3D12_MESSAGE_ID_LIVE_PIPELINESTATE"; break; + case D3D12_MESSAGE_ID_LIVE_COMMANDLIST12: ret = "D3D12_MESSAGE_ID_LIVE_COMMANDLIST12"; break; + case D3D12_MESSAGE_ID_LIVE_RESOURCE: ret = "D3D12_MESSAGE_ID_LIVE_RESOURCE"; break; + case D3D12_MESSAGE_ID_LIVE_DESCRIPTORHEAP: ret = "D3D12_MESSAGE_ID_LIVE_DESCRIPTORHEAP"; break; + case D3D12_MESSAGE_ID_LIVE_ROOTSIGNATURE: ret = "D3D12_MESSAGE_ID_LIVE_ROOTSIGNATURE"; break; + case D3D12_MESSAGE_ID_LIVE_LIBRARY: ret = "D3D12_MESSAGE_ID_LIVE_LIBRARY"; break; + case D3D12_MESSAGE_ID_LIVE_HEAP: ret = "D3D12_MESSAGE_ID_LIVE_HEAP"; break; + case D3D12_MESSAGE_ID_LIVE_MONITOREDFENCE: ret = "D3D12_MESSAGE_ID_LIVE_MONITOREDFENCE"; break; + case D3D12_MESSAGE_ID_LIVE_QUERYHEAP: ret = "D3D12_MESSAGE_ID_LIVE_QUERYHEAP"; break; + case D3D12_MESSAGE_ID_LIVE_COMMANDSIGNATURE: ret = "D3D12_MESSAGE_ID_LIVE_COMMANDSIGNATURE"; break; + case D3D12_MESSAGE_ID_DESTROY_COMMANDQUEUE: ret = "D3D12_MESSAGE_ID_DESTROY_COMMANDQUEUE"; break; + case D3D12_MESSAGE_ID_DESTROY_COMMANDALLOCATOR: ret = "D3D12_MESSAGE_ID_DESTROY_COMMANDALLOCATOR"; break; + case D3D12_MESSAGE_ID_DESTROY_PIPELINESTATE: ret = "D3D12_MESSAGE_ID_DESTROY_PIPELINESTATE"; break; + case D3D12_MESSAGE_ID_DESTROY_COMMANDLIST12: ret = "D3D12_MESSAGE_ID_DESTROY_COMMANDLIST12"; break; + case D3D12_MESSAGE_ID_DESTROY_RESOURCE: ret = "D3D12_MESSAGE_ID_DESTROY_RESOURCE"; break; + case D3D12_MESSAGE_ID_DESTROY_DESCRIPTORHEAP: ret = "D3D12_MESSAGE_ID_DESTROY_DESCRIPTORHEAP"; break; + case D3D12_MESSAGE_ID_DESTROY_ROOTSIGNATURE: ret = "D3D12_MESSAGE_ID_DESTROY_ROOTSIGNATURE"; break; + case D3D12_MESSAGE_ID_DESTROY_LIBRARY: ret = "D3D12_MESSAGE_ID_DESTROY_LIBRARY"; break; + case D3D12_MESSAGE_ID_DESTROY_HEAP: ret = "D3D12_MESSAGE_ID_DESTROY_HEAP"; break; + case D3D12_MESSAGE_ID_DESTROY_MONITOREDFENCE: ret = "D3D12_MESSAGE_ID_DESTROY_MONITOREDFENCE"; break; + case D3D12_MESSAGE_ID_DESTROY_QUERYHEAP: ret = "D3D12_MESSAGE_ID_DESTROY_QUERYHEAP"; break; + case D3D12_MESSAGE_ID_DESTROY_COMMANDSIGNATURE: ret = "D3D12_MESSAGE_ID_DESTROY_COMMANDSIGNATURE"; break; + case D3D12_MESSAGE_ID_CREATERESOURCE_INVALIDDIMENSIONS: ret = "D3D12_MESSAGE_ID_CREATERESOURCE_INVALIDDIMENSIONS"; break; + case D3D12_MESSAGE_ID_CREATERESOURCE_INVALIDMISCFLAGS: ret = "D3D12_MESSAGE_ID_CREATERESOURCE_INVALIDMISCFLAGS"; break; + case D3D12_MESSAGE_ID_CREATERESOURCE_INVALIDARG_RETURN: ret = "D3D12_MESSAGE_ID_CREATERESOURCE_INVALIDARG_RETURN"; break; + case D3D12_MESSAGE_ID_CREATERESOURCE_OUTOFMEMORY_RETURN: ret = "D3D12_MESSAGE_ID_CREATERESOURCE_OUTOFMEMORY_RETURN"; break; + case D3D12_MESSAGE_ID_CREATERESOURCE_INVALIDDESC: ret = "D3D12_MESSAGE_ID_CREATERESOURCE_INVALIDDESC"; break; + case D3D12_MESSAGE_ID_POSSIBLY_INVALID_SUBRESOURCE_STATE: ret = "D3D12_MESSAGE_ID_POSSIBLY_INVALID_SUBRESOURCE_STATE"; break; + case D3D12_MESSAGE_ID_INVALID_USE_OF_NON_RESIDENT_RESOURCE: ret = "D3D12_MESSAGE_ID_INVALID_USE_OF_NON_RESIDENT_RESOURCE"; break; + case D3D12_MESSAGE_ID_POSSIBLE_INVALID_USE_OF_NON_RESIDENT_RESOURCE: ret = "D3D12_MESSAGE_ID_POSSIBLE_INVALID_USE_OF_NON_RESIDENT_RESOURCE"; break; + case D3D12_MESSAGE_ID_BUNDLE_PIPELINE_STATE_MISMATCH: ret = "D3D12_MESSAGE_ID_BUNDLE_PIPELINE_STATE_MISMATCH"; break; + case D3D12_MESSAGE_ID_PRIMITIVE_TOPOLOGY_MISMATCH_PIPELINE_STATE: ret = "D3D12_MESSAGE_ID_PRIMITIVE_TOPOLOGY_MISMATCH_PIPELINE_STATE"; break; + case D3D12_MESSAGE_ID_RENDER_TARGET_FORMAT_MISMATCH_PIPELINE_STATE: ret = "D3D12_MESSAGE_ID_RENDER_TARGET_FORMAT_MISMATCH_PIPELINE_STATE"; break; + case D3D12_MESSAGE_ID_RENDER_TARGET_SAMPLE_DESC_MISMATCH_PIPELINE_STATE: ret = "D3D12_MESSAGE_ID_RENDER_TARGET_SAMPLE_DESC_MISMATCH_PIPELINE_STATE"; break; + case D3D12_MESSAGE_ID_DEPTH_STENCIL_FORMAT_MISMATCH_PIPELINE_STATE: ret = "D3D12_MESSAGE_ID_DEPTH_STENCIL_FORMAT_MISMATCH_PIPELINE_STATE"; break; + case D3D12_MESSAGE_ID_DEPTH_STENCIL_SAMPLE_DESC_MISMATCH_PIPELINE_STATE: ret = "D3D12_MESSAGE_ID_DEPTH_STENCIL_SAMPLE_DESC_MISMATCH_PIPELINE_STATE"; break; + case D3D12_MESSAGE_ID_CREATESHADER_INVALIDBYTECODE: ret = "D3D12_MESSAGE_ID_CREATESHADER_INVALIDBYTECODE"; break; + case D3D12_MESSAGE_ID_CREATEHEAP_NULLDESC: ret = "D3D12_MESSAGE_ID_CREATEHEAP_NULLDESC"; break; + case D3D12_MESSAGE_ID_CREATEHEAP_INVALIDSIZE: ret = "D3D12_MESSAGE_ID_CREATEHEAP_INVALIDSIZE"; break; + case D3D12_MESSAGE_ID_CREATEHEAP_UNRECOGNIZEDHEAPTYPE: ret = "D3D12_MESSAGE_ID_CREATEHEAP_UNRECOGNIZEDHEAPTYPE"; break; + case D3D12_MESSAGE_ID_CREATEHEAP_UNRECOGNIZEDCPUPAGEPROPERTIES: ret = "D3D12_MESSAGE_ID_CREATEHEAP_UNRECOGNIZEDCPUPAGEPROPERTIES"; break; + case D3D12_MESSAGE_ID_CREATEHEAP_UNRECOGNIZEDMEMORYPOOL: ret = "D3D12_MESSAGE_ID_CREATEHEAP_UNRECOGNIZEDMEMORYPOOL"; break; + case D3D12_MESSAGE_ID_CREATEHEAP_INVALIDPROPERTIES: ret = "D3D12_MESSAGE_ID_CREATEHEAP_INVALIDPROPERTIES"; break; + case D3D12_MESSAGE_ID_CREATEHEAP_INVALIDALIGNMENT: ret = "D3D12_MESSAGE_ID_CREATEHEAP_INVALIDALIGNMENT"; break; + case D3D12_MESSAGE_ID_CREATEHEAP_UNRECOGNIZEDMISCFLAGS: ret = "D3D12_MESSAGE_ID_CREATEHEAP_UNRECOGNIZEDMISCFLAGS"; break; + case D3D12_MESSAGE_ID_CREATEHEAP_INVALIDMISCFLAGS: ret = "D3D12_MESSAGE_ID_CREATEHEAP_INVALIDMISCFLAGS"; break; + case D3D12_MESSAGE_ID_CREATEHEAP_INVALIDARG_RETURN: ret = "D3D12_MESSAGE_ID_CREATEHEAP_INVALIDARG_RETURN"; break; + case D3D12_MESSAGE_ID_CREATEHEAP_OUTOFMEMORY_RETURN: ret = "D3D12_MESSAGE_ID_CREATEHEAP_OUTOFMEMORY_RETURN"; break; + case D3D12_MESSAGE_ID_CREATERESOURCEANDHEAP_NULLHEAPPROPERTIES: ret = "D3D12_MESSAGE_ID_CREATERESOURCEANDHEAP_NULLHEAPPROPERTIES"; break; + case D3D12_MESSAGE_ID_CREATERESOURCEANDHEAP_UNRECOGNIZEDHEAPTYPE: ret = "D3D12_MESSAGE_ID_CREATERESOURCEANDHEAP_UNRECOGNIZEDHEAPTYPE"; break; + case D3D12_MESSAGE_ID_CREATERESOURCEANDHEAP_UNRECOGNIZEDCPUPAGEPROPERTIES: ret = "D3D12_MESSAGE_ID_CREATERESOURCEANDHEAP_UNRECOGNIZEDCPUPAGEPROPERTIES"; break; + case D3D12_MESSAGE_ID_CREATERESOURCEANDHEAP_UNRECOGNIZEDMEMORYPOOL: ret = "D3D12_MESSAGE_ID_CREATERESOURCEANDHEAP_UNRECOGNIZEDMEMORYPOOL"; break; + case D3D12_MESSAGE_ID_CREATERESOURCEANDHEAP_INVALIDHEAPPROPERTIES: ret = "D3D12_MESSAGE_ID_CREATERESOURCEANDHEAP_INVALIDHEAPPROPERTIES"; break; + case D3D12_MESSAGE_ID_CREATERESOURCEANDHEAP_UNRECOGNIZEDHEAPMISCFLAGS: ret = "D3D12_MESSAGE_ID_CREATERESOURCEANDHEAP_UNRECOGNIZEDHEAPMISCFLAGS"; break; + case D3D12_MESSAGE_ID_CREATERESOURCEANDHEAP_INVALIDHEAPMISCFLAGS: ret = "D3D12_MESSAGE_ID_CREATERESOURCEANDHEAP_INVALIDHEAPMISCFLAGS"; break; + case D3D12_MESSAGE_ID_CREATERESOURCEANDHEAP_INVALIDARG_RETURN: ret = "D3D12_MESSAGE_ID_CREATERESOURCEANDHEAP_INVALIDARG_RETURN"; break; + case D3D12_MESSAGE_ID_CREATERESOURCEANDHEAP_OUTOFMEMORY_RETURN: ret = "D3D12_MESSAGE_ID_CREATERESOURCEANDHEAP_OUTOFMEMORY_RETURN"; break; + case D3D12_MESSAGE_ID_GETCUSTOMHEAPPROPERTIES_UNRECOGNIZEDHEAPTYPE: ret = "D3D12_MESSAGE_ID_GETCUSTOMHEAPPROPERTIES_UNRECOGNIZEDHEAPTYPE"; break; + case D3D12_MESSAGE_ID_GETCUSTOMHEAPPROPERTIES_INVALIDHEAPTYPE: ret = "D3D12_MESSAGE_ID_GETCUSTOMHEAPPROPERTIES_INVALIDHEAPTYPE"; break; + case D3D12_MESSAGE_ID_CREATE_DESCRIPTOR_HEAP_INVALID_DESC: ret = "D3D12_MESSAGE_ID_CREATE_DESCRIPTOR_HEAP_INVALID_DESC"; break; + case D3D12_MESSAGE_ID_INVALID_DESCRIPTOR_HANDLE: ret = "D3D12_MESSAGE_ID_INVALID_DESCRIPTOR_HANDLE"; break; + case D3D12_MESSAGE_ID_CREATERASTERIZERSTATE_INVALID_CONSERVATIVERASTERMODE: ret = "D3D12_MESSAGE_ID_CREATERASTERIZERSTATE_INVALID_CONSERVATIVERASTERMODE"; break; + case D3D12_MESSAGE_ID_CREATE_CONSTANT_BUFFER_VIEW_INVALID_RESOURCE: ret = "D3D12_MESSAGE_ID_CREATE_CONSTANT_BUFFER_VIEW_INVALID_RESOURCE"; break; + case D3D12_MESSAGE_ID_CREATE_CONSTANT_BUFFER_VIEW_INVALID_DESC: ret = "D3D12_MESSAGE_ID_CREATE_CONSTANT_BUFFER_VIEW_INVALID_DESC"; break; + case D3D12_MESSAGE_ID_CREATE_UNORDEREDACCESS_VIEW_INVALID_COUNTER_USAGE: ret = "D3D12_MESSAGE_ID_CREATE_UNORDEREDACCESS_VIEW_INVALID_COUNTER_USAGE"; break; + case D3D12_MESSAGE_ID_COPY_DESCRIPTORS_INVALID_RANGES: ret = "D3D12_MESSAGE_ID_COPY_DESCRIPTORS_INVALID_RANGES"; break; + case D3D12_MESSAGE_ID_COPY_DESCRIPTORS_WRITE_ONLY_DESCRIPTOR: ret = "D3D12_MESSAGE_ID_COPY_DESCRIPTORS_WRITE_ONLY_DESCRIPTOR"; break; + case D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_RTV_FORMAT_NOT_UNKNOWN: ret = "D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_RTV_FORMAT_NOT_UNKNOWN"; break; + case D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_INVALID_RENDER_TARGET_COUNT: ret = "D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_INVALID_RENDER_TARGET_COUNT"; break; + case D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_VERTEX_SHADER_NOT_SET: ret = "D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_VERTEX_SHADER_NOT_SET"; break; + case D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_INPUTLAYOUT_NOT_SET: ret = "D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_INPUTLAYOUT_NOT_SET"; break; + case D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_SHADER_LINKAGE_HS_DS_SIGNATURE_MISMATCH: ret = "D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_SHADER_LINKAGE_HS_DS_SIGNATURE_MISMATCH"; break; + case D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_SHADER_LINKAGE_REGISTERINDEX: ret = "D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_SHADER_LINKAGE_REGISTERINDEX"; break; + case D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_SHADER_LINKAGE_COMPONENTTYPE: ret = "D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_SHADER_LINKAGE_COMPONENTTYPE"; break; + case D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_SHADER_LINKAGE_REGISTERMASK: ret = "D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_SHADER_LINKAGE_REGISTERMASK"; break; + case D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_SHADER_LINKAGE_SYSTEMVALUE: ret = "D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_SHADER_LINKAGE_SYSTEMVALUE"; break; + case D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_SHADER_LINKAGE_NEVERWRITTEN_ALWAYSREADS: ret = "D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_SHADER_LINKAGE_NEVERWRITTEN_ALWAYSREADS"; break; + case D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_SHADER_LINKAGE_MINPRECISION: ret = "D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_SHADER_LINKAGE_MINPRECISION"; break; + case D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_SHADER_LINKAGE_SEMANTICNAME_NOT_FOUND: ret = "D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_SHADER_LINKAGE_SEMANTICNAME_NOT_FOUND"; break; + case D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_HS_XOR_DS_MISMATCH: ret = "D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_HS_XOR_DS_MISMATCH"; break; + case D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_HULL_SHADER_INPUT_TOPOLOGY_MISMATCH: ret = "D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_HULL_SHADER_INPUT_TOPOLOGY_MISMATCH"; break; + case D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_HS_DS_CONTROL_POINT_COUNT_MISMATCH: ret = "D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_HS_DS_CONTROL_POINT_COUNT_MISMATCH"; break; + case D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_HS_DS_TESSELLATOR_DOMAIN_MISMATCH: ret = "D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_HS_DS_TESSELLATOR_DOMAIN_MISMATCH"; break; + case D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_INVALID_USE_OF_CENTER_MULTISAMPLE_PATTERN: ret = "D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_INVALID_USE_OF_CENTER_MULTISAMPLE_PATTERN"; break; + case D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_INVALID_USE_OF_FORCED_SAMPLE_COUNT: ret = "D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_INVALID_USE_OF_FORCED_SAMPLE_COUNT"; break; + case D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_INVALID_PRIMITIVETOPOLOGY: ret = "D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_INVALID_PRIMITIVETOPOLOGY"; break; + case D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_INVALID_SYSTEMVALUE: ret = "D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_INVALID_SYSTEMVALUE"; break; + case D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_OM_DUAL_SOURCE_BLENDING_CAN_ONLY_HAVE_RENDER_TARGET_0: ret = "D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_OM_DUAL_SOURCE_BLENDING_CAN_ONLY_HAVE_RENDER_TARGET_0"; break; + case D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_OM_RENDER_TARGET_DOES_NOT_SUPPORT_BLENDING: ret = "D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_OM_RENDER_TARGET_DOES_NOT_SUPPORT_BLENDING"; break; + case D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_PS_OUTPUT_TYPE_MISMATCH: ret = "D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_PS_OUTPUT_TYPE_MISMATCH"; break; + case D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_OM_RENDER_TARGET_DOES_NOT_SUPPORT_LOGIC_OPS: ret = "D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_OM_RENDER_TARGET_DOES_NOT_SUPPORT_LOGIC_OPS"; break; + case D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_RENDERTARGETVIEW_NOT_SET: ret = "D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_RENDERTARGETVIEW_NOT_SET"; break; + case D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_DEPTHSTENCILVIEW_NOT_SET: ret = "D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_DEPTHSTENCILVIEW_NOT_SET"; break; + case D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_GS_INPUT_PRIMITIVE_MISMATCH: ret = "D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_GS_INPUT_PRIMITIVE_MISMATCH"; break; + case D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_POSITION_NOT_PRESENT: ret = "D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_POSITION_NOT_PRESENT"; break; + case D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_MISSING_ROOT_SIGNATURE_FLAGS: ret = "D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_MISSING_ROOT_SIGNATURE_FLAGS"; break; + case D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_INVALID_INDEX_BUFFER_PROPERTIES: ret = "D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_INVALID_INDEX_BUFFER_PROPERTIES"; break; + case D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_INVALID_SAMPLE_DESC: ret = "D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_INVALID_SAMPLE_DESC"; break; + case D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_HS_ROOT_SIGNATURE_MISMATCH: ret = "D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_HS_ROOT_SIGNATURE_MISMATCH"; break; + case D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_DS_ROOT_SIGNATURE_MISMATCH: ret = "D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_DS_ROOT_SIGNATURE_MISMATCH"; break; + case D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_VS_ROOT_SIGNATURE_MISMATCH: ret = "D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_VS_ROOT_SIGNATURE_MISMATCH"; break; + case D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_GS_ROOT_SIGNATURE_MISMATCH: ret = "D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_GS_ROOT_SIGNATURE_MISMATCH"; break; + case D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_PS_ROOT_SIGNATURE_MISMATCH: ret = "D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_PS_ROOT_SIGNATURE_MISMATCH"; break; + case D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_MISSING_ROOT_SIGNATURE: ret = "D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_MISSING_ROOT_SIGNATURE"; break; + case D3D12_MESSAGE_ID_EXECUTE_BUNDLE_OPEN_BUNDLE: ret = "D3D12_MESSAGE_ID_EXECUTE_BUNDLE_OPEN_BUNDLE"; break; + case D3D12_MESSAGE_ID_EXECUTE_BUNDLE_DESCRIPTOR_HEAP_MISMATCH: ret = "D3D12_MESSAGE_ID_EXECUTE_BUNDLE_DESCRIPTOR_HEAP_MISMATCH"; break; + case D3D12_MESSAGE_ID_EXECUTE_BUNDLE_TYPE: ret = "D3D12_MESSAGE_ID_EXECUTE_BUNDLE_TYPE"; break; + case D3D12_MESSAGE_ID_DRAW_EMPTY_SCISSOR_RECTANGLE: ret = "D3D12_MESSAGE_ID_DRAW_EMPTY_SCISSOR_RECTANGLE"; break; + case D3D12_MESSAGE_ID_CREATE_ROOT_SIGNATURE_BLOB_NOT_FOUND: ret = "D3D12_MESSAGE_ID_CREATE_ROOT_SIGNATURE_BLOB_NOT_FOUND"; break; + case D3D12_MESSAGE_ID_CREATE_ROOT_SIGNATURE_DESERIALIZE_FAILED: ret = "D3D12_MESSAGE_ID_CREATE_ROOT_SIGNATURE_DESERIALIZE_FAILED"; break; + case D3D12_MESSAGE_ID_CREATE_ROOT_SIGNATURE_INVALID_CONFIGURATION: ret = "D3D12_MESSAGE_ID_CREATE_ROOT_SIGNATURE_INVALID_CONFIGURATION"; break; + case D3D12_MESSAGE_ID_CREATE_ROOT_SIGNATURE_NOT_SUPPORTED_ON_DEVICE: ret = "D3D12_MESSAGE_ID_CREATE_ROOT_SIGNATURE_NOT_SUPPORTED_ON_DEVICE"; break; + case D3D12_MESSAGE_ID_CREATERESOURCEANDHEAP_NULLRESOURCEPROPERTIES: ret = "D3D12_MESSAGE_ID_CREATERESOURCEANDHEAP_NULLRESOURCEPROPERTIES"; break; + case D3D12_MESSAGE_ID_CREATERESOURCEANDHEAP_NULLHEAP: ret = "D3D12_MESSAGE_ID_CREATERESOURCEANDHEAP_NULLHEAP"; break; + case D3D12_MESSAGE_ID_GETRESOURCEALLOCATIONINFO_INVALIDRDESCS: ret = "D3D12_MESSAGE_ID_GETRESOURCEALLOCATIONINFO_INVALIDRDESCS"; break; + case D3D12_MESSAGE_ID_MAKERESIDENT_NULLOBJECTARRAY: ret = "D3D12_MESSAGE_ID_MAKERESIDENT_NULLOBJECTARRAY"; break; + case D3D12_MESSAGE_ID_EVICT_NULLOBJECTARRAY: ret = "D3D12_MESSAGE_ID_EVICT_NULLOBJECTARRAY"; break; + case D3D12_MESSAGE_ID_SET_DESCRIPTOR_TABLE_INVALID: ret = "D3D12_MESSAGE_ID_SET_DESCRIPTOR_TABLE_INVALID"; break; + case D3D12_MESSAGE_ID_SET_ROOT_CONSTANT_INVALID: ret = "D3D12_MESSAGE_ID_SET_ROOT_CONSTANT_INVALID"; break; + case D3D12_MESSAGE_ID_SET_ROOT_CONSTANT_BUFFER_VIEW_INVALID: ret = "D3D12_MESSAGE_ID_SET_ROOT_CONSTANT_BUFFER_VIEW_INVALID"; break; + case D3D12_MESSAGE_ID_SET_ROOT_SHADER_RESOURCE_VIEW_INVALID: ret = "D3D12_MESSAGE_ID_SET_ROOT_SHADER_RESOURCE_VIEW_INVALID"; break; + case D3D12_MESSAGE_ID_SET_ROOT_UNORDERED_ACCESS_VIEW_INVALID: ret = "D3D12_MESSAGE_ID_SET_ROOT_UNORDERED_ACCESS_VIEW_INVALID"; break; + case D3D12_MESSAGE_ID_SET_VERTEX_BUFFERS_INVALID_DESC: ret = "D3D12_MESSAGE_ID_SET_VERTEX_BUFFERS_INVALID_DESC"; break; + case D3D12_MESSAGE_ID_SET_INDEX_BUFFER_INVALID_DESC: ret = "D3D12_MESSAGE_ID_SET_INDEX_BUFFER_INVALID_DESC"; break; + case D3D12_MESSAGE_ID_SET_STREAM_OUTPUT_BUFFERS_INVALID_DESC: ret = "D3D12_MESSAGE_ID_SET_STREAM_OUTPUT_BUFFERS_INVALID_DESC"; break; + case D3D12_MESSAGE_ID_CREATERESOURCE_UNRECOGNIZEDDIMENSIONALITY: ret = "D3D12_MESSAGE_ID_CREATERESOURCE_UNRECOGNIZEDDIMENSIONALITY"; break; + case D3D12_MESSAGE_ID_CREATERESOURCE_UNRECOGNIZEDLAYOUT: ret = "D3D12_MESSAGE_ID_CREATERESOURCE_UNRECOGNIZEDLAYOUT"; break; + case D3D12_MESSAGE_ID_CREATERESOURCE_INVALIDDIMENSIONALITY: ret = "D3D12_MESSAGE_ID_CREATERESOURCE_INVALIDDIMENSIONALITY"; break; + case D3D12_MESSAGE_ID_CREATERESOURCE_INVALIDALIGNMENT: ret = "D3D12_MESSAGE_ID_CREATERESOURCE_INVALIDALIGNMENT"; break; + case D3D12_MESSAGE_ID_CREATERESOURCE_INVALIDMIPLEVELS: ret = "D3D12_MESSAGE_ID_CREATERESOURCE_INVALIDMIPLEVELS"; break; + case D3D12_MESSAGE_ID_CREATERESOURCE_INVALIDSAMPLEDESC: ret = "D3D12_MESSAGE_ID_CREATERESOURCE_INVALIDSAMPLEDESC"; break; + case D3D12_MESSAGE_ID_CREATERESOURCE_INVALIDLAYOUT: ret = "D3D12_MESSAGE_ID_CREATERESOURCE_INVALIDLAYOUT"; break; + case D3D12_MESSAGE_ID_SET_INDEX_BUFFER_INVALID: ret = "D3D12_MESSAGE_ID_SET_INDEX_BUFFER_INVALID"; break; + case D3D12_MESSAGE_ID_SET_VERTEX_BUFFERS_INVALID: ret = "D3D12_MESSAGE_ID_SET_VERTEX_BUFFERS_INVALID"; break; + case D3D12_MESSAGE_ID_SET_STREAM_OUTPUT_BUFFERS_INVALID: ret = "D3D12_MESSAGE_ID_SET_STREAM_OUTPUT_BUFFERS_INVALID"; break; + case D3D12_MESSAGE_ID_SET_RENDER_TARGETS_INVALID: ret = "D3D12_MESSAGE_ID_SET_RENDER_TARGETS_INVALID"; break; + case D3D12_MESSAGE_ID_CREATEQUERY_HEAP_INVALID_PARAMETERS: ret = "D3D12_MESSAGE_ID_CREATEQUERY_HEAP_INVALID_PARAMETERS"; break; + case D3D12_MESSAGE_ID_BEGIN_END_QUERY_INVALID_PARAMETERS: ret = "D3D12_MESSAGE_ID_BEGIN_END_QUERY_INVALID_PARAMETERS"; break; + case D3D12_MESSAGE_ID_CLOSE_COMMAND_LIST_OPEN_QUERY: ret = "D3D12_MESSAGE_ID_CLOSE_COMMAND_LIST_OPEN_QUERY"; break; + case D3D12_MESSAGE_ID_RESOLVE_QUERY_DATA_INVALID_PARAMETERS: ret = "D3D12_MESSAGE_ID_RESOLVE_QUERY_DATA_INVALID_PARAMETERS"; break; + case D3D12_MESSAGE_ID_SET_PREDICATION_INVALID_PARAMETERS: ret = "D3D12_MESSAGE_ID_SET_PREDICATION_INVALID_PARAMETERS"; break; + case D3D12_MESSAGE_ID_TIMESTAMPS_NOT_SUPPORTED: ret = "D3D12_MESSAGE_ID_TIMESTAMPS_NOT_SUPPORTED"; break; + case D3D12_MESSAGE_ID_CREATERESOURCE_UNRECOGNIZEDFORMAT: ret = "D3D12_MESSAGE_ID_CREATERESOURCE_UNRECOGNIZEDFORMAT"; break; + case D3D12_MESSAGE_ID_CREATERESOURCE_INVALIDFORMAT: ret = "D3D12_MESSAGE_ID_CREATERESOURCE_INVALIDFORMAT"; break; + case D3D12_MESSAGE_ID_GETCOPYABLEFOOTPRINTS_INVALIDSUBRESOURCERANGE: ret = "D3D12_MESSAGE_ID_GETCOPYABLEFOOTPRINTS_INVALIDSUBRESOURCERANGE"; break; + case D3D12_MESSAGE_ID_GETCOPYABLEFOOTPRINTS_INVALIDBASEOFFSET: ret = "D3D12_MESSAGE_ID_GETCOPYABLEFOOTPRINTS_INVALIDBASEOFFSET"; break; + case D3D12_MESSAGE_ID_RESOURCE_BARRIER_INVALID_HEAP: ret = "D3D12_MESSAGE_ID_RESOURCE_BARRIER_INVALID_HEAP"; break; + case D3D12_MESSAGE_ID_CREATE_SAMPLER_INVALID: ret = "D3D12_MESSAGE_ID_CREATE_SAMPLER_INVALID"; break; + case D3D12_MESSAGE_ID_CREATECOMMANDSIGNATURE_INVALID: ret = "D3D12_MESSAGE_ID_CREATECOMMANDSIGNATURE_INVALID"; break; + case D3D12_MESSAGE_ID_EXECUTE_INDIRECT_INVALID_PARAMETERS: ret = "D3D12_MESSAGE_ID_EXECUTE_INDIRECT_INVALID_PARAMETERS"; break; + case D3D12_MESSAGE_ID_GETGPUVIRTUALADDRESS_INVALID_RESOURCE_DIMENSION: ret = "D3D12_MESSAGE_ID_GETGPUVIRTUALADDRESS_INVALID_RESOURCE_DIMENSION"; break; + case D3D12_MESSAGE_ID_CREATERESOURCE_INVALIDCLEARVALUE: ret = "D3D12_MESSAGE_ID_CREATERESOURCE_INVALIDCLEARVALUE"; break; + case D3D12_MESSAGE_ID_CREATERESOURCE_UNRECOGNIZEDCLEARVALUEFORMAT: ret = "D3D12_MESSAGE_ID_CREATERESOURCE_UNRECOGNIZEDCLEARVALUEFORMAT"; break; + case D3D12_MESSAGE_ID_CREATERESOURCE_INVALIDCLEARVALUEFORMAT: ret = "D3D12_MESSAGE_ID_CREATERESOURCE_INVALIDCLEARVALUEFORMAT"; break; + case D3D12_MESSAGE_ID_CREATERESOURCE_CLEARVALUEDENORMFLUSH: ret = "D3D12_MESSAGE_ID_CREATERESOURCE_CLEARVALUEDENORMFLUSH"; break; + case D3D12_MESSAGE_ID_CLEARRENDERTARGETVIEW_MISMATCHINGCLEARVALUE: ret = "D3D12_MESSAGE_ID_CLEARRENDERTARGETVIEW_MISMATCHINGCLEARVALUE"; break; + case D3D12_MESSAGE_ID_CLEARDEPTHSTENCILVIEW_MISMATCHINGCLEARVALUE: ret = "D3D12_MESSAGE_ID_CLEARDEPTHSTENCILVIEW_MISMATCHINGCLEARVALUE"; break; + case D3D12_MESSAGE_ID_MAP_INVALIDHEAP: ret = "D3D12_MESSAGE_ID_MAP_INVALIDHEAP"; break; + case D3D12_MESSAGE_ID_UNMAP_INVALIDHEAP: ret = "D3D12_MESSAGE_ID_UNMAP_INVALIDHEAP"; break; + case D3D12_MESSAGE_ID_MAP_INVALIDRESOURCE: ret = "D3D12_MESSAGE_ID_MAP_INVALIDRESOURCE"; break; + case D3D12_MESSAGE_ID_UNMAP_INVALIDRESOURCE: ret = "D3D12_MESSAGE_ID_UNMAP_INVALIDRESOURCE"; break; + case D3D12_MESSAGE_ID_MAP_INVALIDSUBRESOURCE: ret = "D3D12_MESSAGE_ID_MAP_INVALIDSUBRESOURCE"; break; + case D3D12_MESSAGE_ID_UNMAP_INVALIDSUBRESOURCE: ret = "D3D12_MESSAGE_ID_UNMAP_INVALIDSUBRESOURCE"; break; + case D3D12_MESSAGE_ID_MAP_INVALIDRANGE: ret = "D3D12_MESSAGE_ID_MAP_INVALIDRANGE"; break; + case D3D12_MESSAGE_ID_UNMAP_INVALIDRANGE: ret = "D3D12_MESSAGE_ID_UNMAP_INVALIDRANGE"; break; + case D3D12_MESSAGE_ID_MAP_INVALIDDATAPOINTER: ret = "D3D12_MESSAGE_ID_MAP_INVALIDDATAPOINTER"; break; + case D3D12_MESSAGE_ID_MAP_INVALIDARG_RETURN: ret = "D3D12_MESSAGE_ID_MAP_INVALIDARG_RETURN"; break; + case D3D12_MESSAGE_ID_MAP_OUTOFMEMORY_RETURN: ret = "D3D12_MESSAGE_ID_MAP_OUTOFMEMORY_RETURN"; break; + case D3D12_MESSAGE_ID_EXECUTECOMMANDLISTS_BUNDLENOTSUPPORTED: ret = "D3D12_MESSAGE_ID_EXECUTECOMMANDLISTS_BUNDLENOTSUPPORTED"; break; + case D3D12_MESSAGE_ID_EXECUTECOMMANDLISTS_COMMANDLISTMISMATCH: ret = "D3D12_MESSAGE_ID_EXECUTECOMMANDLISTS_COMMANDLISTMISMATCH"; break; + case D3D12_MESSAGE_ID_EXECUTECOMMANDLISTS_OPENCOMMANDLIST: ret = "D3D12_MESSAGE_ID_EXECUTECOMMANDLISTS_OPENCOMMANDLIST"; break; + case D3D12_MESSAGE_ID_EXECUTECOMMANDLISTS_FAILEDCOMMANDLIST: ret = "D3D12_MESSAGE_ID_EXECUTECOMMANDLISTS_FAILEDCOMMANDLIST"; break; + case D3D12_MESSAGE_ID_COPYBUFFERREGION_NULLDST: ret = "D3D12_MESSAGE_ID_COPYBUFFERREGION_NULLDST"; break; + case D3D12_MESSAGE_ID_COPYBUFFERREGION_INVALIDDSTRESOURCEDIMENSION: ret = "D3D12_MESSAGE_ID_COPYBUFFERREGION_INVALIDDSTRESOURCEDIMENSION"; break; + case D3D12_MESSAGE_ID_COPYBUFFERREGION_DSTRANGEOUTOFBOUNDS: ret = "D3D12_MESSAGE_ID_COPYBUFFERREGION_DSTRANGEOUTOFBOUNDS"; break; + case D3D12_MESSAGE_ID_COPYBUFFERREGION_NULLSRC: ret = "D3D12_MESSAGE_ID_COPYBUFFERREGION_NULLSRC"; break; + case D3D12_MESSAGE_ID_COPYBUFFERREGION_INVALIDSRCRESOURCEDIMENSION: ret = "D3D12_MESSAGE_ID_COPYBUFFERREGION_INVALIDSRCRESOURCEDIMENSION"; break; + case D3D12_MESSAGE_ID_COPYBUFFERREGION_SRCRANGEOUTOFBOUNDS: ret = "D3D12_MESSAGE_ID_COPYBUFFERREGION_SRCRANGEOUTOFBOUNDS"; break; + case D3D12_MESSAGE_ID_COPYBUFFERREGION_INVALIDCOPYFLAGS: ret = "D3D12_MESSAGE_ID_COPYBUFFERREGION_INVALIDCOPYFLAGS"; break; + case D3D12_MESSAGE_ID_COPYTEXTUREREGION_NULLDST: ret = "D3D12_MESSAGE_ID_COPYTEXTUREREGION_NULLDST"; break; + case D3D12_MESSAGE_ID_COPYTEXTUREREGION_UNRECOGNIZEDDSTTYPE: ret = "D3D12_MESSAGE_ID_COPYTEXTUREREGION_UNRECOGNIZEDDSTTYPE"; break; + case D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDDSTRESOURCEDIMENSION: ret = "D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDDSTRESOURCEDIMENSION"; break; + case D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDDSTRESOURCE: ret = "D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDDSTRESOURCE"; break; + case D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDDSTSUBRESOURCE: ret = "D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDDSTSUBRESOURCE"; break; + case D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDDSTOFFSET: ret = "D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDDSTOFFSET"; break; + case D3D12_MESSAGE_ID_COPYTEXTUREREGION_UNRECOGNIZEDDSTFORMAT: ret = "D3D12_MESSAGE_ID_COPYTEXTUREREGION_UNRECOGNIZEDDSTFORMAT"; break; + case D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDDSTFORMAT: ret = "D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDDSTFORMAT"; break; + case D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDDSTDIMENSIONS: ret = "D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDDSTDIMENSIONS"; break; + case D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDDSTROWPITCH: ret = "D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDDSTROWPITCH"; break; + case D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDDSTPLACEMENT: ret = "D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDDSTPLACEMENT"; break; + case D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDDSTDSPLACEDFOOTPRINTFORMAT: ret = "D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDDSTDSPLACEDFOOTPRINTFORMAT"; break; + case D3D12_MESSAGE_ID_COPYTEXTUREREGION_DSTREGIONOUTOFBOUNDS: ret = "D3D12_MESSAGE_ID_COPYTEXTUREREGION_DSTREGIONOUTOFBOUNDS"; break; + case D3D12_MESSAGE_ID_COPYTEXTUREREGION_NULLSRC: ret = "D3D12_MESSAGE_ID_COPYTEXTUREREGION_NULLSRC"; break; + case D3D12_MESSAGE_ID_COPYTEXTUREREGION_UNRECOGNIZEDSRCTYPE: ret = "D3D12_MESSAGE_ID_COPYTEXTUREREGION_UNRECOGNIZEDSRCTYPE"; break; + case D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDSRCRESOURCEDIMENSION: ret = "D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDSRCRESOURCEDIMENSION"; break; + case D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDSRCRESOURCE: ret = "D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDSRCRESOURCE"; break; + case D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDSRCSUBRESOURCE: ret = "D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDSRCSUBRESOURCE"; break; + case D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDSRCOFFSET: ret = "D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDSRCOFFSET"; break; + case D3D12_MESSAGE_ID_COPYTEXTUREREGION_UNRECOGNIZEDSRCFORMAT: ret = "D3D12_MESSAGE_ID_COPYTEXTUREREGION_UNRECOGNIZEDSRCFORMAT"; break; + case D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDSRCFORMAT: ret = "D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDSRCFORMAT"; break; + case D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDSRCDIMENSIONS: ret = "D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDSRCDIMENSIONS"; break; + case D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDSRCROWPITCH: ret = "D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDSRCROWPITCH"; break; + case D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDSRCPLACEMENT: ret = "D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDSRCPLACEMENT"; break; + case D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDSRCDSPLACEDFOOTPRINTFORMAT: ret = "D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDSRCDSPLACEDFOOTPRINTFORMAT"; break; + case D3D12_MESSAGE_ID_COPYTEXTUREREGION_SRCREGIONOUTOFBOUNDS: ret = "D3D12_MESSAGE_ID_COPYTEXTUREREGION_SRCREGIONOUTOFBOUNDS"; break; + case D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDDSTCOORDINATES: ret = "D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDDSTCOORDINATES"; break; + case D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDSRCBOX: ret = "D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDSRCBOX"; break; + case D3D12_MESSAGE_ID_COPYTEXTUREREGION_FORMATMISMATCH: ret = "D3D12_MESSAGE_ID_COPYTEXTUREREGION_FORMATMISMATCH"; break; + case D3D12_MESSAGE_ID_COPYTEXTUREREGION_EMPTYBOX: ret = "D3D12_MESSAGE_ID_COPYTEXTUREREGION_EMPTYBOX"; break; + case D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDCOPYFLAGS: ret = "D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDCOPYFLAGS"; break; + case D3D12_MESSAGE_ID_RESOLVESUBRESOURCE_INVALID_SUBRESOURCE_INDEX: ret = "D3D12_MESSAGE_ID_RESOLVESUBRESOURCE_INVALID_SUBRESOURCE_INDEX"; break; + case D3D12_MESSAGE_ID_RESOLVESUBRESOURCE_INVALID_FORMAT: ret = "D3D12_MESSAGE_ID_RESOLVESUBRESOURCE_INVALID_FORMAT"; break; + case D3D12_MESSAGE_ID_RESOLVESUBRESOURCE_RESOURCE_MISMATCH: ret = "D3D12_MESSAGE_ID_RESOLVESUBRESOURCE_RESOURCE_MISMATCH"; break; + case D3D12_MESSAGE_ID_RESOLVESUBRESOURCE_INVALID_SAMPLE_COUNT: ret = "D3D12_MESSAGE_ID_RESOLVESUBRESOURCE_INVALID_SAMPLE_COUNT"; break; + case D3D12_MESSAGE_ID_CREATECOMPUTEPIPELINESTATE_INVALID_SHADER: ret = "D3D12_MESSAGE_ID_CREATECOMPUTEPIPELINESTATE_INVALID_SHADER"; break; + case D3D12_MESSAGE_ID_CREATECOMPUTEPIPELINESTATE_CS_ROOT_SIGNATURE_MISMATCH: ret = "D3D12_MESSAGE_ID_CREATECOMPUTEPIPELINESTATE_CS_ROOT_SIGNATURE_MISMATCH"; break; + case D3D12_MESSAGE_ID_CREATECOMPUTEPIPELINESTATE_MISSING_ROOT_SIGNATURE: ret = "D3D12_MESSAGE_ID_CREATECOMPUTEPIPELINESTATE_MISSING_ROOT_SIGNATURE"; break; + case D3D12_MESSAGE_ID_CREATEPIPELINESTATE_INVALIDCACHEDBLOB: ret = "D3D12_MESSAGE_ID_CREATEPIPELINESTATE_INVALIDCACHEDBLOB"; break; + case D3D12_MESSAGE_ID_CREATEPIPELINESTATE_CACHEDBLOBADAPTERMISMATCH: ret = "D3D12_MESSAGE_ID_CREATEPIPELINESTATE_CACHEDBLOBADAPTERMISMATCH"; break; + case D3D12_MESSAGE_ID_CREATEPIPELINESTATE_CACHEDBLOBDRIVERVERSIONMISMATCH: ret = "D3D12_MESSAGE_ID_CREATEPIPELINESTATE_CACHEDBLOBDRIVERVERSIONMISMATCH"; break; + case D3D12_MESSAGE_ID_CREATEPIPELINESTATE_CACHEDBLOBDESCMISMATCH: ret = "D3D12_MESSAGE_ID_CREATEPIPELINESTATE_CACHEDBLOBDESCMISMATCH"; break; + case D3D12_MESSAGE_ID_CREATEPIPELINESTATE_CACHEDBLOBIGNORED: ret = "D3D12_MESSAGE_ID_CREATEPIPELINESTATE_CACHEDBLOBIGNORED"; break; + case D3D12_MESSAGE_ID_WRITETOSUBRESOURCE_INVALIDHEAP: ret = "D3D12_MESSAGE_ID_WRITETOSUBRESOURCE_INVALIDHEAP"; break; + case D3D12_MESSAGE_ID_WRITETOSUBRESOURCE_INVALIDRESOURCE: ret = "D3D12_MESSAGE_ID_WRITETOSUBRESOURCE_INVALIDRESOURCE"; break; + case D3D12_MESSAGE_ID_WRITETOSUBRESOURCE_INVALIDBOX: ret = "D3D12_MESSAGE_ID_WRITETOSUBRESOURCE_INVALIDBOX"; break; + case D3D12_MESSAGE_ID_WRITETOSUBRESOURCE_INVALIDSUBRESOURCE: ret = "D3D12_MESSAGE_ID_WRITETOSUBRESOURCE_INVALIDSUBRESOURCE"; break; + case D3D12_MESSAGE_ID_WRITETOSUBRESOURCE_EMPTYBOX: ret = "D3D12_MESSAGE_ID_WRITETOSUBRESOURCE_EMPTYBOX"; break; + case D3D12_MESSAGE_ID_READFROMSUBRESOURCE_INVALIDHEAP: ret = "D3D12_MESSAGE_ID_READFROMSUBRESOURCE_INVALIDHEAP"; break; + case D3D12_MESSAGE_ID_READFROMSUBRESOURCE_INVALIDRESOURCE: ret = "D3D12_MESSAGE_ID_READFROMSUBRESOURCE_INVALIDRESOURCE"; break; + case D3D12_MESSAGE_ID_READFROMSUBRESOURCE_INVALIDBOX: ret = "D3D12_MESSAGE_ID_READFROMSUBRESOURCE_INVALIDBOX"; break; + case D3D12_MESSAGE_ID_READFROMSUBRESOURCE_INVALIDSUBRESOURCE: ret = "D3D12_MESSAGE_ID_READFROMSUBRESOURCE_INVALIDSUBRESOURCE"; break; + case D3D12_MESSAGE_ID_READFROMSUBRESOURCE_EMPTYBOX: ret = "D3D12_MESSAGE_ID_READFROMSUBRESOURCE_EMPTYBOX"; break; + case D3D12_MESSAGE_ID_TOO_MANY_NODES_SPECIFIED: ret = "D3D12_MESSAGE_ID_TOO_MANY_NODES_SPECIFIED"; break; + case D3D12_MESSAGE_ID_INVALID_NODE_INDEX: ret = "D3D12_MESSAGE_ID_INVALID_NODE_INDEX"; break; + case D3D12_MESSAGE_ID_GETHEAPPROPERTIES_INVALIDRESOURCE: ret = "D3D12_MESSAGE_ID_GETHEAPPROPERTIES_INVALIDRESOURCE"; break; + case D3D12_MESSAGE_ID_NODE_MASK_MISMATCH: ret = "D3D12_MESSAGE_ID_NODE_MASK_MISMATCH"; break; + case D3D12_MESSAGE_ID_COMMAND_LIST_OUTOFMEMORY: ret = "D3D12_MESSAGE_ID_COMMAND_LIST_OUTOFMEMORY"; break; + case D3D12_MESSAGE_ID_COMMAND_LIST_MULTIPLE_SWAPCHAIN_BUFFER_REFERENCES: ret = "D3D12_MESSAGE_ID_COMMAND_LIST_MULTIPLE_SWAPCHAIN_BUFFER_REFERENCES"; break; + case D3D12_MESSAGE_ID_COMMAND_LIST_TOO_MANY_SWAPCHAIN_REFERENCES: ret = "D3D12_MESSAGE_ID_COMMAND_LIST_TOO_MANY_SWAPCHAIN_REFERENCES"; break; + case D3D12_MESSAGE_ID_COMMAND_QUEUE_TOO_MANY_SWAPCHAIN_REFERENCES: ret = "D3D12_MESSAGE_ID_COMMAND_QUEUE_TOO_MANY_SWAPCHAIN_REFERENCES"; break; + case D3D12_MESSAGE_ID_EXECUTECOMMANDLISTS_WRONGSWAPCHAINBUFFERREFERENCE: ret = "D3D12_MESSAGE_ID_EXECUTECOMMANDLISTS_WRONGSWAPCHAINBUFFERREFERENCE"; break; + case D3D12_MESSAGE_ID_COMMAND_LIST_SETRENDERTARGETS_INVALIDNUMRENDERTARGETS: ret = "D3D12_MESSAGE_ID_COMMAND_LIST_SETRENDERTARGETS_INVALIDNUMRENDERTARGETS"; break; + case D3D12_MESSAGE_ID_CREATE_QUEUE_INVALID_TYPE: ret = "D3D12_MESSAGE_ID_CREATE_QUEUE_INVALID_TYPE"; break; + case D3D12_MESSAGE_ID_CREATE_QUEUE_INVALID_FLAGS: ret = "D3D12_MESSAGE_ID_CREATE_QUEUE_INVALID_FLAGS"; break; + case D3D12_MESSAGE_ID_CREATESHAREDRESOURCE_INVALIDFLAGS: ret = "D3D12_MESSAGE_ID_CREATESHAREDRESOURCE_INVALIDFLAGS"; break; + case D3D12_MESSAGE_ID_CREATESHAREDRESOURCE_INVALIDFORMAT: ret = "D3D12_MESSAGE_ID_CREATESHAREDRESOURCE_INVALIDFORMAT"; break; + case D3D12_MESSAGE_ID_CREATESHAREDHEAP_INVALIDFLAGS: ret = "D3D12_MESSAGE_ID_CREATESHAREDHEAP_INVALIDFLAGS"; break; + case D3D12_MESSAGE_ID_REFLECTSHAREDPROPERTIES_UNRECOGNIZEDPROPERTIES: ret = "D3D12_MESSAGE_ID_REFLECTSHAREDPROPERTIES_UNRECOGNIZEDPROPERTIES"; break; + case D3D12_MESSAGE_ID_REFLECTSHAREDPROPERTIES_INVALIDSIZE: ret = "D3D12_MESSAGE_ID_REFLECTSHAREDPROPERTIES_INVALIDSIZE"; break; + case D3D12_MESSAGE_ID_REFLECTSHAREDPROPERTIES_INVALIDOBJECT: ret = "D3D12_MESSAGE_ID_REFLECTSHAREDPROPERTIES_INVALIDOBJECT"; break; + case D3D12_MESSAGE_ID_KEYEDMUTEX_INVALIDOBJECT: ret = "D3D12_MESSAGE_ID_KEYEDMUTEX_INVALIDOBJECT"; break; + case D3D12_MESSAGE_ID_KEYEDMUTEX_INVALIDKEY: ret = "D3D12_MESSAGE_ID_KEYEDMUTEX_INVALIDKEY"; break; + case D3D12_MESSAGE_ID_KEYEDMUTEX_WRONGSTATE: ret = "D3D12_MESSAGE_ID_KEYEDMUTEX_WRONGSTATE"; break; + case D3D12_MESSAGE_ID_CREATE_QUEUE_INVALID_PRIORITY: ret = "D3D12_MESSAGE_ID_CREATE_QUEUE_INVALID_PRIORITY"; break; + case D3D12_MESSAGE_ID_OBJECT_DELETED_WHILE_STILL_IN_USE: ret = "D3D12_MESSAGE_ID_OBJECT_DELETED_WHILE_STILL_IN_USE"; break; + case D3D12_MESSAGE_ID_CREATEPIPELINESTATE_INVALID_FLAGS: ret = "D3D12_MESSAGE_ID_CREATEPIPELINESTATE_INVALID_FLAGS"; break; + case D3D12_MESSAGE_ID_HEAP_ADDRESS_RANGE_HAS_NO_RESOURCE: ret = "D3D12_MESSAGE_ID_HEAP_ADDRESS_RANGE_HAS_NO_RESOURCE"; break; + case D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_RENDER_TARGET_DELETED: ret = "D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_RENDER_TARGET_DELETED"; break; + case D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_ALL_RENDER_TARGETS_HAVE_UNKNOWN_FORMAT: ret = "D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_ALL_RENDER_TARGETS_HAVE_UNKNOWN_FORMAT"; break; + case D3D12_MESSAGE_ID_HEAP_ADDRESS_RANGE_INTERSECTS_MULTIPLE_BUFFERS: ret = "D3D12_MESSAGE_ID_HEAP_ADDRESS_RANGE_INTERSECTS_MULTIPLE_BUFFERS"; break; + case D3D12_MESSAGE_ID_EXECUTECOMMANDLISTS_GPU_WRITTEN_READBACK_RESOURCE_MAPPED: ret = "D3D12_MESSAGE_ID_EXECUTECOMMANDLISTS_GPU_WRITTEN_READBACK_RESOURCE_MAPPED"; break; + case D3D12_MESSAGE_ID_UNMAP_RANGE_NOT_EMPTY: ret = "D3D12_MESSAGE_ID_UNMAP_RANGE_NOT_EMPTY"; break; + case D3D12_MESSAGE_ID_MAP_INVALID_NULLRANGE: ret = "D3D12_MESSAGE_ID_MAP_INVALID_NULLRANGE"; break; + case D3D12_MESSAGE_ID_UNMAP_INVALID_NULLRANGE: ret = "D3D12_MESSAGE_ID_UNMAP_INVALID_NULLRANGE"; break; + case D3D12_MESSAGE_ID_NO_GRAPHICS_API_SUPPORT: ret = "D3D12_MESSAGE_ID_NO_GRAPHICS_API_SUPPORT"; break; + case D3D12_MESSAGE_ID_NO_COMPUTE_API_SUPPORT: ret = "D3D12_MESSAGE_ID_NO_COMPUTE_API_SUPPORT"; break; + case D3D12_MESSAGE_ID_RESOLVESUBRESOURCE_RESOURCE_FLAGS_NOT_SUPPORTED: ret = "D3D12_MESSAGE_ID_RESOLVESUBRESOURCE_RESOURCE_FLAGS_NOT_SUPPORTED"; break; + case D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_ROOT_ARGUMENT_UNINITIALIZED: ret = "D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_ROOT_ARGUMENT_UNINITIALIZED"; break; + case D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_DESCRIPTOR_HEAP_INDEX_OUT_OF_BOUNDS: ret = "D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_DESCRIPTOR_HEAP_INDEX_OUT_OF_BOUNDS"; break; + case D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_DESCRIPTOR_TABLE_REGISTER_INDEX_OUT_OF_BOUNDS: ret = "D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_DESCRIPTOR_TABLE_REGISTER_INDEX_OUT_OF_BOUNDS"; break; + case D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_DESCRIPTOR_UNINITIALIZED: ret = "D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_DESCRIPTOR_UNINITIALIZED"; break; + case D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_DESCRIPTOR_TYPE_MISMATCH: ret = "D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_DESCRIPTOR_TYPE_MISMATCH"; break; + case D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_SRV_RESOURCE_DIMENSION_MISMATCH: ret = "D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_SRV_RESOURCE_DIMENSION_MISMATCH"; break; + case D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_UAV_RESOURCE_DIMENSION_MISMATCH: ret = "D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_UAV_RESOURCE_DIMENSION_MISMATCH"; break; + case D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_INCOMPATIBLE_RESOURCE_STATE: ret = "D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_INCOMPATIBLE_RESOURCE_STATE"; break; + case D3D12_MESSAGE_ID_COPYRESOURCE_NULLDST: ret = "D3D12_MESSAGE_ID_COPYRESOURCE_NULLDST"; break; + case D3D12_MESSAGE_ID_COPYRESOURCE_INVALIDDSTRESOURCE: ret = "D3D12_MESSAGE_ID_COPYRESOURCE_INVALIDDSTRESOURCE"; break; + case D3D12_MESSAGE_ID_COPYRESOURCE_NULLSRC: ret = "D3D12_MESSAGE_ID_COPYRESOURCE_NULLSRC"; break; + case D3D12_MESSAGE_ID_COPYRESOURCE_INVALIDSRCRESOURCE: ret = "D3D12_MESSAGE_ID_COPYRESOURCE_INVALIDSRCRESOURCE"; break; + case D3D12_MESSAGE_ID_RESOLVESUBRESOURCE_NULLDST: ret = "D3D12_MESSAGE_ID_RESOLVESUBRESOURCE_NULLDST"; break; + case D3D12_MESSAGE_ID_RESOLVESUBRESOURCE_INVALIDDSTRESOURCE: ret = "D3D12_MESSAGE_ID_RESOLVESUBRESOURCE_INVALIDDSTRESOURCE"; break; + case D3D12_MESSAGE_ID_RESOLVESUBRESOURCE_NULLSRC: ret = "D3D12_MESSAGE_ID_RESOLVESUBRESOURCE_NULLSRC"; break; + case D3D12_MESSAGE_ID_RESOLVESUBRESOURCE_INVALIDSRCRESOURCE: ret = "D3D12_MESSAGE_ID_RESOLVESUBRESOURCE_INVALIDSRCRESOURCE"; break; + case D3D12_MESSAGE_ID_PIPELINE_STATE_TYPE_MISMATCH: ret = "D3D12_MESSAGE_ID_PIPELINE_STATE_TYPE_MISMATCH"; break; + case D3D12_MESSAGE_ID_COMMAND_LIST_DISPATCH_ROOT_SIGNATURE_NOT_SET: ret = "D3D12_MESSAGE_ID_COMMAND_LIST_DISPATCH_ROOT_SIGNATURE_NOT_SET"; break; + case D3D12_MESSAGE_ID_COMMAND_LIST_DISPATCH_ROOT_SIGNATURE_MISMATCH: ret = "D3D12_MESSAGE_ID_COMMAND_LIST_DISPATCH_ROOT_SIGNATURE_MISMATCH"; break; + case D3D12_MESSAGE_ID_RESOURCE_BARRIER_ZERO_BARRIERS: ret = "D3D12_MESSAGE_ID_RESOURCE_BARRIER_ZERO_BARRIERS"; break; + case D3D12_MESSAGE_ID_BEGIN_END_EVENT_MISMATCH: ret = "D3D12_MESSAGE_ID_BEGIN_END_EVENT_MISMATCH"; break; + case D3D12_MESSAGE_ID_RESOURCE_BARRIER_POSSIBLE_BEFORE_AFTER_MISMATCH: ret = "D3D12_MESSAGE_ID_RESOURCE_BARRIER_POSSIBLE_BEFORE_AFTER_MISMATCH"; break; + case D3D12_MESSAGE_ID_RESOURCE_BARRIER_MISMATCHING_BEGIN_END: ret = "D3D12_MESSAGE_ID_RESOURCE_BARRIER_MISMATCHING_BEGIN_END"; break; + case D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_INVALID_RESOURCE: ret = "D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_INVALID_RESOURCE"; break; + case D3D12_MESSAGE_ID_USE_OF_ZERO_REFCOUNT_OBJECT: ret = "D3D12_MESSAGE_ID_USE_OF_ZERO_REFCOUNT_OBJECT"; break; + case D3D12_MESSAGE_ID_OBJECT_EVICTED_WHILE_STILL_IN_USE: ret = "D3D12_MESSAGE_ID_OBJECT_EVICTED_WHILE_STILL_IN_USE"; break; + case D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_ROOT_DESCRIPTOR_ACCESS_OUT_OF_BOUNDS: ret = "D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_ROOT_DESCRIPTOR_ACCESS_OUT_OF_BOUNDS"; break; + case D3D12_MESSAGE_ID_CREATEPIPELINELIBRARY_INVALIDLIBRARYBLOB: ret = "D3D12_MESSAGE_ID_CREATEPIPELINELIBRARY_INVALIDLIBRARYBLOB"; break; + case D3D12_MESSAGE_ID_CREATEPIPELINELIBRARY_DRIVERVERSIONMISMATCH: ret = "D3D12_MESSAGE_ID_CREATEPIPELINELIBRARY_DRIVERVERSIONMISMATCH"; break; + case D3D12_MESSAGE_ID_CREATEPIPELINELIBRARY_ADAPTERVERSIONMISMATCH: ret = "D3D12_MESSAGE_ID_CREATEPIPELINELIBRARY_ADAPTERVERSIONMISMATCH"; break; + case D3D12_MESSAGE_ID_CREATEPIPELINELIBRARY_UNSUPPORTED: ret = "D3D12_MESSAGE_ID_CREATEPIPELINELIBRARY_UNSUPPORTED"; break; + case D3D12_MESSAGE_ID_CREATE_PIPELINELIBRARY: ret = "D3D12_MESSAGE_ID_CREATE_PIPELINELIBRARY"; break; + case D3D12_MESSAGE_ID_LIVE_PIPELINELIBRARY: ret = "D3D12_MESSAGE_ID_LIVE_PIPELINELIBRARY"; break; + case D3D12_MESSAGE_ID_DESTROY_PIPELINELIBRARY: ret = "D3D12_MESSAGE_ID_DESTROY_PIPELINELIBRARY"; break; + case D3D12_MESSAGE_ID_STOREPIPELINE_NONAME: ret = "D3D12_MESSAGE_ID_STOREPIPELINE_NONAME"; break; + case D3D12_MESSAGE_ID_STOREPIPELINE_DUPLICATENAME: ret = "D3D12_MESSAGE_ID_STOREPIPELINE_DUPLICATENAME"; break; + case D3D12_MESSAGE_ID_LOADPIPELINE_NAMENOTFOUND: ret = "D3D12_MESSAGE_ID_LOADPIPELINE_NAMENOTFOUND"; break; + case D3D12_MESSAGE_ID_LOADPIPELINE_INVALIDDESC: ret = "D3D12_MESSAGE_ID_LOADPIPELINE_INVALIDDESC"; break; + case D3D12_MESSAGE_ID_PIPELINELIBRARY_SERIALIZE_NOTENOUGHMEMORY: ret = "D3D12_MESSAGE_ID_PIPELINELIBRARY_SERIALIZE_NOTENOUGHMEMORY"; break; + case D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_PS_OUTPUT_RT_OUTPUT_MISMATCH: ret = "D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_PS_OUTPUT_RT_OUTPUT_MISMATCH"; break; + case D3D12_MESSAGE_ID_SETEVENTONMULTIPLEFENCECOMPLETION_INVALIDFLAGS: ret = "D3D12_MESSAGE_ID_SETEVENTONMULTIPLEFENCECOMPLETION_INVALIDFLAGS"; break; + case D3D12_MESSAGE_ID_CREATE_QUEUE_VIDEO_NOT_SUPPORTED: ret = "D3D12_MESSAGE_ID_CREATE_QUEUE_VIDEO_NOT_SUPPORTED"; break; + case D3D12_MESSAGE_ID_CREATE_COMMAND_ALLOCATOR_VIDEO_NOT_SUPPORTED: ret = "D3D12_MESSAGE_ID_CREATE_COMMAND_ALLOCATOR_VIDEO_NOT_SUPPORTED"; break; + case D3D12_MESSAGE_ID_CREATEQUERY_HEAP_VIDEO_DECODE_STATISTICS_NOT_SUPPORTED: ret = "D3D12_MESSAGE_ID_CREATEQUERY_HEAP_VIDEO_DECODE_STATISTICS_NOT_SUPPORTED"; break; + case D3D12_MESSAGE_ID_CREATE_VIDEODECODECOMMANDLIST: ret = "D3D12_MESSAGE_ID_CREATE_VIDEODECODECOMMANDLIST"; break; + case D3D12_MESSAGE_ID_CREATE_VIDEODECODER: ret = "D3D12_MESSAGE_ID_CREATE_VIDEODECODER"; break; + case D3D12_MESSAGE_ID_CREATE_VIDEODECODESTREAM: ret = "D3D12_MESSAGE_ID_CREATE_VIDEODECODESTREAM"; break; + case D3D12_MESSAGE_ID_LIVE_VIDEODECODECOMMANDLIST: ret = "D3D12_MESSAGE_ID_LIVE_VIDEODECODECOMMANDLIST"; break; + case D3D12_MESSAGE_ID_LIVE_VIDEODECODER: ret = "D3D12_MESSAGE_ID_LIVE_VIDEODECODER"; break; + case D3D12_MESSAGE_ID_LIVE_VIDEODECODESTREAM: ret = "D3D12_MESSAGE_ID_LIVE_VIDEODECODESTREAM"; break; + case D3D12_MESSAGE_ID_DESTROY_VIDEODECODECOMMANDLIST: ret = "D3D12_MESSAGE_ID_DESTROY_VIDEODECODECOMMANDLIST"; break; + case D3D12_MESSAGE_ID_DESTROY_VIDEODECODER: ret = "D3D12_MESSAGE_ID_DESTROY_VIDEODECODER"; break; + case D3D12_MESSAGE_ID_DESTROY_VIDEODECODESTREAM: ret = "D3D12_MESSAGE_ID_DESTROY_VIDEODECODESTREAM"; break; + case D3D12_MESSAGE_ID_DECODE_FRAME_INVALID_PARAMETERS: ret = "D3D12_MESSAGE_ID_DECODE_FRAME_INVALID_PARAMETERS"; break; + case D3D12_MESSAGE_ID_DEPRECATED_API: ret = "D3D12_MESSAGE_ID_DEPRECATED_API"; break; + case D3D12_MESSAGE_ID_RESOURCE_BARRIER_MISMATCHING_COMMAND_LIST_TYPE: ret = "D3D12_MESSAGE_ID_RESOURCE_BARRIER_MISMATCHING_COMMAND_LIST_TYPE"; break; + case D3D12_MESSAGE_ID_COMMAND_LIST_DESCRIPTOR_TABLE_NOT_SET: ret = "D3D12_MESSAGE_ID_COMMAND_LIST_DESCRIPTOR_TABLE_NOT_SET"; break; + case D3D12_MESSAGE_ID_COMMAND_LIST_ROOT_CONSTANT_BUFFER_VIEW_NOT_SET: ret = "D3D12_MESSAGE_ID_COMMAND_LIST_ROOT_CONSTANT_BUFFER_VIEW_NOT_SET"; break; + case D3D12_MESSAGE_ID_COMMAND_LIST_ROOT_SHADER_RESOURCE_VIEW_NOT_SET: ret = "D3D12_MESSAGE_ID_COMMAND_LIST_ROOT_SHADER_RESOURCE_VIEW_NOT_SET"; break; + case D3D12_MESSAGE_ID_COMMAND_LIST_ROOT_UNORDERED_ACCESS_VIEW_NOT_SET: ret = "D3D12_MESSAGE_ID_COMMAND_LIST_ROOT_UNORDERED_ACCESS_VIEW_NOT_SET"; break; + case D3D12_MESSAGE_ID_DISCARD_INVALID_SUBRESOURCE_RANGE: ret = "D3D12_MESSAGE_ID_DISCARD_INVALID_SUBRESOURCE_RANGE"; break; + case D3D12_MESSAGE_ID_DISCARD_ONE_SUBRESOURCE_FOR_MIPS_WITH_RECTS: ret = "D3D12_MESSAGE_ID_DISCARD_ONE_SUBRESOURCE_FOR_MIPS_WITH_RECTS"; break; + case D3D12_MESSAGE_ID_DISCARD_NO_RECTS_FOR_NON_TEXTURE2D: ret = "D3D12_MESSAGE_ID_DISCARD_NO_RECTS_FOR_NON_TEXTURE2D"; break; + case D3D12_MESSAGE_ID_COPY_ON_SAME_SUBRESOURCE: ret = "D3D12_MESSAGE_ID_COPY_ON_SAME_SUBRESOURCE"; break; + case D3D12_MESSAGE_ID_SETRESIDENCYPRIORITY_INVALID_PAGEABLE: ret = "D3D12_MESSAGE_ID_SETRESIDENCYPRIORITY_INVALID_PAGEABLE"; break; + case D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_UNSUPPORTED: ret = "D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_UNSUPPORTED"; break; + case D3D12_MESSAGE_ID_STATIC_DESCRIPTOR_INVALID_DESCRIPTOR_CHANGE: ret = "D3D12_MESSAGE_ID_STATIC_DESCRIPTOR_INVALID_DESCRIPTOR_CHANGE"; break; + case D3D12_MESSAGE_ID_DATA_STATIC_DESCRIPTOR_INVALID_DATA_CHANGE: ret = "D3D12_MESSAGE_ID_DATA_STATIC_DESCRIPTOR_INVALID_DATA_CHANGE"; break; + case D3D12_MESSAGE_ID_DATA_STATIC_WHILE_SET_AT_EXECUTE_DESCRIPTOR_INVALID_DATA_CHANGE: ret = "D3D12_MESSAGE_ID_DATA_STATIC_WHILE_SET_AT_EXECUTE_DESCRIPTOR_INVALID_DATA_CHANGE"; break; + case D3D12_MESSAGE_ID_EXECUTE_BUNDLE_STATIC_DESCRIPTOR_DATA_STATIC_NOT_SET: ret = "D3D12_MESSAGE_ID_EXECUTE_BUNDLE_STATIC_DESCRIPTOR_DATA_STATIC_NOT_SET"; break; + case D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_RESOURCE_ACCESS_OUT_OF_BOUNDS: ret = "D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_RESOURCE_ACCESS_OUT_OF_BOUNDS"; break; + case D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_SAMPLER_MODE_MISMATCH: ret = "D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_SAMPLER_MODE_MISMATCH"; break; + case D3D12_MESSAGE_ID_CREATE_FENCE_INVALID_FLAGS: ret = "D3D12_MESSAGE_ID_CREATE_FENCE_INVALID_FLAGS"; break; + case D3D12_MESSAGE_ID_RESOURCE_BARRIER_DUPLICATE_SUBRESOURCE_TRANSITIONS: ret = "D3D12_MESSAGE_ID_RESOURCE_BARRIER_DUPLICATE_SUBRESOURCE_TRANSITIONS"; break; + case D3D12_MESSAGE_ID_SETRESIDENCYPRIORITY_INVALID_PRIORITY: ret = "D3D12_MESSAGE_ID_SETRESIDENCYPRIORITY_INVALID_PRIORITY"; break; + case D3D12_MESSAGE_ID_CREATE_DESCRIPTOR_HEAP_LARGE_NUM_DESCRIPTORS: ret = "D3D12_MESSAGE_ID_CREATE_DESCRIPTOR_HEAP_LARGE_NUM_DESCRIPTORS"; break; + case D3D12_MESSAGE_ID_BEGIN_EVENT: ret = "D3D12_MESSAGE_ID_BEGIN_EVENT"; break; + case D3D12_MESSAGE_ID_END_EVENT: ret = "D3D12_MESSAGE_ID_END_EVENT"; break; + case D3D12_MESSAGE_ID_CREATEDEVICE_DEBUG_LAYER_STARTUP_OPTIONS: ret = "D3D12_MESSAGE_ID_CREATEDEVICE_DEBUG_LAYER_STARTUP_OPTIONS"; break; + case D3D12_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_DEPTHBOUNDSTEST_UNSUPPORTED: ret = "D3D12_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_DEPTHBOUNDSTEST_UNSUPPORTED"; break; + case D3D12_MESSAGE_ID_CREATEPIPELINESTATE_DUPLICATE_SUBOBJECT: ret = "D3D12_MESSAGE_ID_CREATEPIPELINESTATE_DUPLICATE_SUBOBJECT"; break; + case D3D12_MESSAGE_ID_CREATEPIPELINESTATE_UNKNOWN_SUBOBJECT: ret = "D3D12_MESSAGE_ID_CREATEPIPELINESTATE_UNKNOWN_SUBOBJECT"; break; + case D3D12_MESSAGE_ID_CREATEPIPELINESTATE_ZERO_SIZE_STREAM: ret = "D3D12_MESSAGE_ID_CREATEPIPELINESTATE_ZERO_SIZE_STREAM"; break; + case D3D12_MESSAGE_ID_CREATEPIPELINESTATE_INVALID_STREAM: ret = "D3D12_MESSAGE_ID_CREATEPIPELINESTATE_INVALID_STREAM"; break; + case D3D12_MESSAGE_ID_CREATEPIPELINESTATE_CANNOT_DEDUCE_TYPE: ret = "D3D12_MESSAGE_ID_CREATEPIPELINESTATE_CANNOT_DEDUCE_TYPE"; break; + case D3D12_MESSAGE_ID_COMMAND_LIST_STATIC_DESCRIPTOR_RESOURCE_DIMENSION_MISMATCH: ret = "D3D12_MESSAGE_ID_COMMAND_LIST_STATIC_DESCRIPTOR_RESOURCE_DIMENSION_MISMATCH"; break; + case D3D12_MESSAGE_ID_CREATE_COMMAND_QUEUE_INSUFFICIENT_PRIVILEGE_FOR_GLOBAL_REALTIME: ret = "D3D12_MESSAGE_ID_CREATE_COMMAND_QUEUE_INSUFFICIENT_PRIVILEGE_FOR_GLOBAL_REALTIME"; break; + case D3D12_MESSAGE_ID_CREATE_COMMAND_QUEUE_INSUFFICIENT_HARDWARE_SUPPORT_FOR_GLOBAL_REALTIME: ret = "D3D12_MESSAGE_ID_CREATE_COMMAND_QUEUE_INSUFFICIENT_HARDWARE_SUPPORT_FOR_GLOBAL_REALTIME"; break; + case D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_INVALID_ARCHITECTURE: ret = "D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_INVALID_ARCHITECTURE"; break; + case D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_NULL_DST: ret = "D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_NULL_DST"; break; + case D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_INVALID_DST_RESOURCE_DIMENSION: ret = "D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_INVALID_DST_RESOURCE_DIMENSION"; break; + case D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_DST_RANGE_OUT_OF_BOUNDS: ret = "D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_DST_RANGE_OUT_OF_BOUNDS"; break; + case D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_NULL_SRC: ret = "D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_NULL_SRC"; break; + case D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_INVALID_SRC_RESOURCE_DIMENSION: ret = "D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_INVALID_SRC_RESOURCE_DIMENSION"; break; + case D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_SRC_RANGE_OUT_OF_BOUNDS: ret = "D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_SRC_RANGE_OUT_OF_BOUNDS"; break; + case D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_INVALID_OFFSET_ALIGNMENT: ret = "D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_INVALID_OFFSET_ALIGNMENT"; break; + case D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_NULL_DEPENDENT_RESOURCES: ret = "D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_NULL_DEPENDENT_RESOURCES"; break; + case D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_NULL_DEPENDENT_SUBRESOURCE_RANGES: ret = "D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_NULL_DEPENDENT_SUBRESOURCE_RANGES"; break; + case D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_INVALID_DEPENDENT_RESOURCE: ret = "D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_INVALID_DEPENDENT_RESOURCE"; break; + case D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_INVALID_DEPENDENT_SUBRESOURCE_RANGE: ret = "D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_INVALID_DEPENDENT_SUBRESOURCE_RANGE"; break; + case D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_DEPENDENT_SUBRESOURCE_OUT_OF_BOUNDS: ret = "D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_DEPENDENT_SUBRESOURCE_OUT_OF_BOUNDS"; break; + case D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_DEPENDENT_RANGE_OUT_OF_BOUNDS: ret = "D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_DEPENDENT_RANGE_OUT_OF_BOUNDS"; break; + case D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_ZERO_DEPENDENCIES: ret = "D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_ZERO_DEPENDENCIES"; break; + case D3D12_MESSAGE_ID_DEVICE_CREATE_SHARED_HANDLE_INVALIDARG: ret = "D3D12_MESSAGE_ID_DEVICE_CREATE_SHARED_HANDLE_INVALIDARG"; break; + case D3D12_MESSAGE_ID_DESCRIPTOR_HANDLE_WITH_INVALID_RESOURCE: ret = "D3D12_MESSAGE_ID_DESCRIPTOR_HANDLE_WITH_INVALID_RESOURCE"; break; + case D3D12_MESSAGE_ID_SETDEPTHBOUNDS_INVALIDARGS: ret = "D3D12_MESSAGE_ID_SETDEPTHBOUNDS_INVALIDARGS"; break; + case D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_RESOURCE_STATE_IMPRECISE: ret = "D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_RESOURCE_STATE_IMPRECISE"; break; + case D3D12_MESSAGE_ID_COMMAND_LIST_PIPELINE_STATE_NOT_SET: ret = "D3D12_MESSAGE_ID_COMMAND_LIST_PIPELINE_STATE_NOT_SET"; break; + case D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_SHADER_MODEL_MISMATCH: ret = "D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_SHADER_MODEL_MISMATCH"; break; + case D3D12_MESSAGE_ID_OBJECT_ACCESSED_WHILE_STILL_IN_USE: ret = "D3D12_MESSAGE_ID_OBJECT_ACCESSED_WHILE_STILL_IN_USE"; break; + case D3D12_MESSAGE_ID_PROGRAMMABLE_MSAA_UNSUPPORTED: ret = "D3D12_MESSAGE_ID_PROGRAMMABLE_MSAA_UNSUPPORTED"; break; + case D3D12_MESSAGE_ID_SETSAMPLEPOSITIONS_INVALIDARGS: ret = "D3D12_MESSAGE_ID_SETSAMPLEPOSITIONS_INVALIDARGS"; break; + case D3D12_MESSAGE_ID_RESOLVESUBRESOURCEREGION_INVALID_RECT: ret = "D3D12_MESSAGE_ID_RESOLVESUBRESOURCEREGION_INVALID_RECT"; break; + case D3D12_MESSAGE_ID_CREATE_VIDEODECODECOMMANDQUEUE: ret = "D3D12_MESSAGE_ID_CREATE_VIDEODECODECOMMANDQUEUE"; break; + case D3D12_MESSAGE_ID_CREATE_VIDEOPROCESSCOMMANDLIST: ret = "D3D12_MESSAGE_ID_CREATE_VIDEOPROCESSCOMMANDLIST"; break; + case D3D12_MESSAGE_ID_CREATE_VIDEOPROCESSCOMMANDQUEUE: ret = "D3D12_MESSAGE_ID_CREATE_VIDEOPROCESSCOMMANDQUEUE"; break; + case D3D12_MESSAGE_ID_LIVE_VIDEODECODECOMMANDQUEUE: ret = "D3D12_MESSAGE_ID_LIVE_VIDEODECODECOMMANDQUEUE"; break; + case D3D12_MESSAGE_ID_LIVE_VIDEOPROCESSCOMMANDLIST: ret = "D3D12_MESSAGE_ID_LIVE_VIDEOPROCESSCOMMANDLIST"; break; + case D3D12_MESSAGE_ID_LIVE_VIDEOPROCESSCOMMANDQUEUE: ret = "D3D12_MESSAGE_ID_LIVE_VIDEOPROCESSCOMMANDQUEUE"; break; + case D3D12_MESSAGE_ID_DESTROY_VIDEODECODECOMMANDQUEUE: ret = "D3D12_MESSAGE_ID_DESTROY_VIDEODECODECOMMANDQUEUE"; break; + case D3D12_MESSAGE_ID_DESTROY_VIDEOPROCESSCOMMANDLIST: ret = "D3D12_MESSAGE_ID_DESTROY_VIDEOPROCESSCOMMANDLIST"; break; + case D3D12_MESSAGE_ID_DESTROY_VIDEOPROCESSCOMMANDQUEUE: ret = "D3D12_MESSAGE_ID_DESTROY_VIDEOPROCESSCOMMANDQUEUE"; break; + case D3D12_MESSAGE_ID_CREATE_VIDEOPROCESSOR: ret = "D3D12_MESSAGE_ID_CREATE_VIDEOPROCESSOR"; break; + case D3D12_MESSAGE_ID_CREATE_VIDEOPROCESSSTREAM: ret = "D3D12_MESSAGE_ID_CREATE_VIDEOPROCESSSTREAM"; break; + case D3D12_MESSAGE_ID_LIVE_VIDEOPROCESSOR: ret = "D3D12_MESSAGE_ID_LIVE_VIDEOPROCESSOR"; break; + case D3D12_MESSAGE_ID_LIVE_VIDEOPROCESSSTREAM: ret = "D3D12_MESSAGE_ID_LIVE_VIDEOPROCESSSTREAM"; break; + case D3D12_MESSAGE_ID_DESTROY_VIDEOPROCESSOR: ret = "D3D12_MESSAGE_ID_DESTROY_VIDEOPROCESSOR"; break; + case D3D12_MESSAGE_ID_DESTROY_VIDEOPROCESSSTREAM: ret = "D3D12_MESSAGE_ID_DESTROY_VIDEOPROCESSSTREAM"; break; + case D3D12_MESSAGE_ID_PROCESS_FRAME_INVALID_PARAMETERS: ret = "D3D12_MESSAGE_ID_PROCESS_FRAME_INVALID_PARAMETERS"; break; + case D3D12_MESSAGE_ID_COPY_INVALIDLAYOUT: ret = "D3D12_MESSAGE_ID_COPY_INVALIDLAYOUT"; break; + case D3D12_MESSAGE_ID_CREATE_CRYPTO_SESSION: ret = "D3D12_MESSAGE_ID_CREATE_CRYPTO_SESSION"; break; + case D3D12_MESSAGE_ID_CREATE_CRYPTO_SESSION_POLICY: ret = "D3D12_MESSAGE_ID_CREATE_CRYPTO_SESSION_POLICY"; break; + case D3D12_MESSAGE_ID_CREATE_PROTECTED_RESOURCE_SESSION: ret = "D3D12_MESSAGE_ID_CREATE_PROTECTED_RESOURCE_SESSION"; break; + case D3D12_MESSAGE_ID_LIVE_CRYPTO_SESSION: ret = "D3D12_MESSAGE_ID_LIVE_CRYPTO_SESSION"; break; + case D3D12_MESSAGE_ID_LIVE_CRYPTO_SESSION_POLICY: ret = "D3D12_MESSAGE_ID_LIVE_CRYPTO_SESSION_POLICY"; break; + case D3D12_MESSAGE_ID_LIVE_PROTECTED_RESOURCE_SESSION: ret = "D3D12_MESSAGE_ID_LIVE_PROTECTED_RESOURCE_SESSION"; break; + case D3D12_MESSAGE_ID_DESTROY_CRYPTO_SESSION: ret = "D3D12_MESSAGE_ID_DESTROY_CRYPTO_SESSION"; break; + case D3D12_MESSAGE_ID_DESTROY_CRYPTO_SESSION_POLICY: ret = "D3D12_MESSAGE_ID_DESTROY_CRYPTO_SESSION_POLICY"; break; + case D3D12_MESSAGE_ID_DESTROY_PROTECTED_RESOURCE_SESSION: ret = "D3D12_MESSAGE_ID_DESTROY_PROTECTED_RESOURCE_SESSION"; break; + case D3D12_MESSAGE_ID_PROTECTED_RESOURCE_SESSION_UNSUPPORTED: ret = "D3D12_MESSAGE_ID_PROTECTED_RESOURCE_SESSION_UNSUPPORTED"; break; + case D3D12_MESSAGE_ID_FENCE_INVALIDOPERATION: ret = "D3D12_MESSAGE_ID_FENCE_INVALIDOPERATION"; break; + case D3D12_MESSAGE_ID_CREATEQUERY_HEAP_COPY_QUEUE_TIMESTAMPS_NOT_SUPPORTED: ret = "D3D12_MESSAGE_ID_CREATEQUERY_HEAP_COPY_QUEUE_TIMESTAMPS_NOT_SUPPORTED"; break; + case D3D12_MESSAGE_ID_SAMPLEPOSITIONS_MISMATCH_DEFERRED: ret = "D3D12_MESSAGE_ID_SAMPLEPOSITIONS_MISMATCH_DEFERRED"; break; + case D3D12_MESSAGE_ID_SAMPLEPOSITIONS_MISMATCH_RECORDTIME_ASSUMEDFROMFIRSTUSE: ret = "D3D12_MESSAGE_ID_SAMPLEPOSITIONS_MISMATCH_RECORDTIME_ASSUMEDFROMFIRSTUSE"; break; + case D3D12_MESSAGE_ID_SAMPLEPOSITIONS_MISMATCH_RECORDTIME_ASSUMEDFROMCLEAR: ret = "D3D12_MESSAGE_ID_SAMPLEPOSITIONS_MISMATCH_RECORDTIME_ASSUMEDFROMCLEAR"; break; + case D3D12_MESSAGE_ID_CREATE_VIDEODECODERHEAP: ret = "D3D12_MESSAGE_ID_CREATE_VIDEODECODERHEAP"; break; + case D3D12_MESSAGE_ID_LIVE_VIDEODECODERHEAP: ret = "D3D12_MESSAGE_ID_LIVE_VIDEODECODERHEAP"; break; + case D3D12_MESSAGE_ID_DESTROY_VIDEODECODERHEAP: ret = "D3D12_MESSAGE_ID_DESTROY_VIDEODECODERHEAP"; break; + case D3D12_MESSAGE_ID_OPENEXISTINGHEAP_INVALIDARG_RETURN: ret = "D3D12_MESSAGE_ID_OPENEXISTINGHEAP_INVALIDARG_RETURN"; break; + case D3D12_MESSAGE_ID_OPENEXISTINGHEAP_OUTOFMEMORY_RETURN: ret = "D3D12_MESSAGE_ID_OPENEXISTINGHEAP_OUTOFMEMORY_RETURN"; break; + case D3D12_MESSAGE_ID_OPENEXISTINGHEAP_INVALIDADDRESS: ret = "D3D12_MESSAGE_ID_OPENEXISTINGHEAP_INVALIDADDRESS"; break; + case D3D12_MESSAGE_ID_OPENEXISTINGHEAP_INVALIDHANDLE: ret = "D3D12_MESSAGE_ID_OPENEXISTINGHEAP_INVALIDHANDLE"; break; + case D3D12_MESSAGE_ID_WRITEBUFFERIMMEDIATE_INVALID_DEST: ret = "D3D12_MESSAGE_ID_WRITEBUFFERIMMEDIATE_INVALID_DEST"; break; + case D3D12_MESSAGE_ID_WRITEBUFFERIMMEDIATE_INVALID_MODE: ret = "D3D12_MESSAGE_ID_WRITEBUFFERIMMEDIATE_INVALID_MODE"; break; + case D3D12_MESSAGE_ID_WRITEBUFFERIMMEDIATE_INVALID_ALIGNMENT: ret = "D3D12_MESSAGE_ID_WRITEBUFFERIMMEDIATE_INVALID_ALIGNMENT"; break; + case D3D12_MESSAGE_ID_WRITEBUFFERIMMEDIATE_NOT_SUPPORTED: ret = "D3D12_MESSAGE_ID_WRITEBUFFERIMMEDIATE_NOT_SUPPORTED"; break; + case D3D12_MESSAGE_ID_SETVIEWINSTANCEMASK_INVALIDARGS: ret = "D3D12_MESSAGE_ID_SETVIEWINSTANCEMASK_INVALIDARGS"; break; + case D3D12_MESSAGE_ID_VIEW_INSTANCING_UNSUPPORTED: ret = "D3D12_MESSAGE_ID_VIEW_INSTANCING_UNSUPPORTED"; break; + case D3D12_MESSAGE_ID_VIEW_INSTANCING_INVALIDARGS: ret = "D3D12_MESSAGE_ID_VIEW_INSTANCING_INVALIDARGS"; break; + case D3D12_MESSAGE_ID_COPYTEXTUREREGION_MISMATCH_DECODE_REFERENCE_ONLY_FLAG: ret = "D3D12_MESSAGE_ID_COPYTEXTUREREGION_MISMATCH_DECODE_REFERENCE_ONLY_FLAG"; break; + case D3D12_MESSAGE_ID_COPYRESOURCE_MISMATCH_DECODE_REFERENCE_ONLY_FLAG: ret = "D3D12_MESSAGE_ID_COPYRESOURCE_MISMATCH_DECODE_REFERENCE_ONLY_FLAG"; break; + case D3D12_MESSAGE_ID_CREATE_VIDEO_DECODE_HEAP_CAPS_FAILURE: ret = "D3D12_MESSAGE_ID_CREATE_VIDEO_DECODE_HEAP_CAPS_FAILURE"; break; + case D3D12_MESSAGE_ID_CREATE_VIDEO_DECODE_HEAP_CAPS_UNSUPPORTED: ret = "D3D12_MESSAGE_ID_CREATE_VIDEO_DECODE_HEAP_CAPS_UNSUPPORTED"; break; + case D3D12_MESSAGE_ID_VIDEO_DECODE_SUPPORT_INVALID_INPUT: ret = "D3D12_MESSAGE_ID_VIDEO_DECODE_SUPPORT_INVALID_INPUT"; break; + case D3D12_MESSAGE_ID_CREATE_VIDEO_DECODER_UNSUPPORTED: ret = "D3D12_MESSAGE_ID_CREATE_VIDEO_DECODER_UNSUPPORTED"; break; + case D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_METADATA_ERROR: ret = "D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_METADATA_ERROR"; break; + case D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_VIEW_INSTANCING_VERTEX_SIZE_EXCEEDED: ret = "D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_VIEW_INSTANCING_VERTEX_SIZE_EXCEEDED"; break; + case D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_RUNTIME_INTERNAL_ERROR: ret = "D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_RUNTIME_INTERNAL_ERROR"; break; + case D3D12_MESSAGE_ID_NO_VIDEO_API_SUPPORT: ret = "D3D12_MESSAGE_ID_NO_VIDEO_API_SUPPORT"; break; + case D3D12_MESSAGE_ID_VIDEO_PROCESS_SUPPORT_INVALID_INPUT: ret = "D3D12_MESSAGE_ID_VIDEO_PROCESS_SUPPORT_INVALID_INPUT"; break; + case D3D12_MESSAGE_ID_CREATE_VIDEO_PROCESSOR_CAPS_FAILURE: ret = "D3D12_MESSAGE_ID_CREATE_VIDEO_PROCESSOR_CAPS_FAILURE"; break; + case D3D12_MESSAGE_ID_VIDEO_PROCESS_SUPPORT_UNSUPPORTED_FORMAT: ret = "D3D12_MESSAGE_ID_VIDEO_PROCESS_SUPPORT_UNSUPPORTED_FORMAT"; break; + case D3D12_MESSAGE_ID_VIDEO_DECODE_FRAME_INVALID_ARGUMENT: ret = "D3D12_MESSAGE_ID_VIDEO_DECODE_FRAME_INVALID_ARGUMENT"; break; + case D3D12_MESSAGE_ID_ENQUEUE_MAKE_RESIDENT_INVALID_FLAGS: ret = "D3D12_MESSAGE_ID_ENQUEUE_MAKE_RESIDENT_INVALID_FLAGS"; break; + case D3D12_MESSAGE_ID_OPENEXISTINGHEAP_UNSUPPORTED: ret = "D3D12_MESSAGE_ID_OPENEXISTINGHEAP_UNSUPPORTED"; break; + case D3D12_MESSAGE_ID_VIDEO_PROCESS_FRAMES_INVALID_ARGUMENT: ret = "D3D12_MESSAGE_ID_VIDEO_PROCESS_FRAMES_INVALID_ARGUMENT"; break; + case D3D12_MESSAGE_ID_VIDEO_DECODE_SUPPORT_UNSUPPORTED: ret = "D3D12_MESSAGE_ID_VIDEO_DECODE_SUPPORT_UNSUPPORTED"; break; + case D3D12_MESSAGE_ID_CREATE_COMMANDRECORDER: ret = "D3D12_MESSAGE_ID_CREATE_COMMANDRECORDER"; break; + case D3D12_MESSAGE_ID_LIVE_COMMANDRECORDER: ret = "D3D12_MESSAGE_ID_LIVE_COMMANDRECORDER"; break; + case D3D12_MESSAGE_ID_DESTROY_COMMANDRECORDER: ret = "D3D12_MESSAGE_ID_DESTROY_COMMANDRECORDER"; break; + case D3D12_MESSAGE_ID_CREATE_COMMAND_RECORDER_VIDEO_NOT_SUPPORTED: ret = "D3D12_MESSAGE_ID_CREATE_COMMAND_RECORDER_VIDEO_NOT_SUPPORTED"; break; + case D3D12_MESSAGE_ID_CREATE_COMMAND_RECORDER_INVALID_SUPPORT_FLAGS: ret = "D3D12_MESSAGE_ID_CREATE_COMMAND_RECORDER_INVALID_SUPPORT_FLAGS"; break; + case D3D12_MESSAGE_ID_CREATE_COMMAND_RECORDER_INVALID_FLAGS: ret = "D3D12_MESSAGE_ID_CREATE_COMMAND_RECORDER_INVALID_FLAGS"; break; + case D3D12_MESSAGE_ID_CREATE_COMMAND_RECORDER_MORE_RECORDERS_THAN_LOGICAL_PROCESSORS: ret = "D3D12_MESSAGE_ID_CREATE_COMMAND_RECORDER_MORE_RECORDERS_THAN_LOGICAL_PROCESSORS"; break; + case D3D12_MESSAGE_ID_CREATE_COMMANDPOOL: ret = "D3D12_MESSAGE_ID_CREATE_COMMANDPOOL"; break; + case D3D12_MESSAGE_ID_LIVE_COMMANDPOOL: ret = "D3D12_MESSAGE_ID_LIVE_COMMANDPOOL"; break; + case D3D12_MESSAGE_ID_DESTROY_COMMANDPOOL: ret = "D3D12_MESSAGE_ID_DESTROY_COMMANDPOOL"; break; + case D3D12_MESSAGE_ID_CREATE_COMMAND_POOL_INVALID_FLAGS: ret = "D3D12_MESSAGE_ID_CREATE_COMMAND_POOL_INVALID_FLAGS"; break; + case D3D12_MESSAGE_ID_CREATE_COMMAND_LIST_VIDEO_NOT_SUPPORTED: ret = "D3D12_MESSAGE_ID_CREATE_COMMAND_LIST_VIDEO_NOT_SUPPORTED"; break; + case D3D12_MESSAGE_ID_COMMAND_RECORDER_SUPPORT_FLAGS_MISMATCH: ret = "D3D12_MESSAGE_ID_COMMAND_RECORDER_SUPPORT_FLAGS_MISMATCH"; break; + case D3D12_MESSAGE_ID_COMMAND_RECORDER_CONTENTION: ret = "D3D12_MESSAGE_ID_COMMAND_RECORDER_CONTENTION"; break; + case D3D12_MESSAGE_ID_COMMAND_RECORDER_USAGE_WITH_CREATECOMMANDLIST_COMMAND_LIST: ret = "D3D12_MESSAGE_ID_COMMAND_RECORDER_USAGE_WITH_CREATECOMMANDLIST_COMMAND_LIST"; break; + case D3D12_MESSAGE_ID_COMMAND_ALLOCATOR_USAGE_WITH_CREATECOMMANDLIST1_COMMAND_LIST: ret = "D3D12_MESSAGE_ID_COMMAND_ALLOCATOR_USAGE_WITH_CREATECOMMANDLIST1_COMMAND_LIST"; break; + case D3D12_MESSAGE_ID_CANNOT_EXECUTE_EMPTY_COMMAND_LIST: ret = "D3D12_MESSAGE_ID_CANNOT_EXECUTE_EMPTY_COMMAND_LIST"; break; + case D3D12_MESSAGE_ID_CANNOT_RESET_COMMAND_POOL_WITH_OPEN_COMMAND_LISTS: ret = "D3D12_MESSAGE_ID_CANNOT_RESET_COMMAND_POOL_WITH_OPEN_COMMAND_LISTS"; break; + case D3D12_MESSAGE_ID_CANNOT_USE_COMMAND_RECORDER_WITHOUT_CURRENT_TARGET: ret = "D3D12_MESSAGE_ID_CANNOT_USE_COMMAND_RECORDER_WITHOUT_CURRENT_TARGET"; break; + case D3D12_MESSAGE_ID_CANNOT_CHANGE_COMMAND_RECORDER_TARGET_WHILE_RECORDING: ret = "D3D12_MESSAGE_ID_CANNOT_CHANGE_COMMAND_RECORDER_TARGET_WHILE_RECORDING"; break; + case D3D12_MESSAGE_ID_COMMAND_POOL_SYNC: ret = "D3D12_MESSAGE_ID_COMMAND_POOL_SYNC"; break; + case D3D12_MESSAGE_ID_EVICT_UNDERFLOW: ret = "D3D12_MESSAGE_ID_EVICT_UNDERFLOW"; break; + case D3D12_MESSAGE_ID_CREATE_META_COMMAND: ret = "D3D12_MESSAGE_ID_CREATE_META_COMMAND"; break; + case D3D12_MESSAGE_ID_LIVE_META_COMMAND: ret = "D3D12_MESSAGE_ID_LIVE_META_COMMAND"; break; + case D3D12_MESSAGE_ID_DESTROY_META_COMMAND: ret = "D3D12_MESSAGE_ID_DESTROY_META_COMMAND"; break; + case D3D12_MESSAGE_ID_COPYBUFFERREGION_INVALID_DST_RESOURCE: ret = "D3D12_MESSAGE_ID_COPYBUFFERREGION_INVALID_DST_RESOURCE"; break; + case D3D12_MESSAGE_ID_COPYBUFFERREGION_INVALID_SRC_RESOURCE: ret = "D3D12_MESSAGE_ID_COPYBUFFERREGION_INVALID_SRC_RESOURCE"; break; + case D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_INVALID_DST_RESOURCE: ret = "D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_INVALID_DST_RESOURCE"; break; + case D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_INVALID_SRC_RESOURCE: ret = "D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_INVALID_SRC_RESOURCE"; break; + case D3D12_MESSAGE_ID_CREATEPLACEDRESOURCEONBUFFER_NULL_BUFFER: ret = "D3D12_MESSAGE_ID_CREATEPLACEDRESOURCEONBUFFER_NULL_BUFFER"; break; + case D3D12_MESSAGE_ID_CREATEPLACEDRESOURCEONBUFFER_NULL_RESOURCE_DESC: ret = "D3D12_MESSAGE_ID_CREATEPLACEDRESOURCEONBUFFER_NULL_RESOURCE_DESC"; break; + case D3D12_MESSAGE_ID_CREATEPLACEDRESOURCEONBUFFER_UNSUPPORTED: ret = "D3D12_MESSAGE_ID_CREATEPLACEDRESOURCEONBUFFER_UNSUPPORTED"; break; + case D3D12_MESSAGE_ID_CREATEPLACEDRESOURCEONBUFFER_INVALID_BUFFER_DIMENSION: ret = "D3D12_MESSAGE_ID_CREATEPLACEDRESOURCEONBUFFER_INVALID_BUFFER_DIMENSION"; break; + case D3D12_MESSAGE_ID_CREATEPLACEDRESOURCEONBUFFER_INVALID_BUFFER_FLAGS: ret = "D3D12_MESSAGE_ID_CREATEPLACEDRESOURCEONBUFFER_INVALID_BUFFER_FLAGS"; break; + case D3D12_MESSAGE_ID_CREATEPLACEDRESOURCEONBUFFER_INVALID_BUFFER_OFFSET: ret = "D3D12_MESSAGE_ID_CREATEPLACEDRESOURCEONBUFFER_INVALID_BUFFER_OFFSET"; break; + case D3D12_MESSAGE_ID_CREATEPLACEDRESOURCEONBUFFER_INVALID_RESOURCE_DIMENSION: ret = "D3D12_MESSAGE_ID_CREATEPLACEDRESOURCEONBUFFER_INVALID_RESOURCE_DIMENSION"; break; + case D3D12_MESSAGE_ID_CREATEPLACEDRESOURCEONBUFFER_INVALID_RESOURCE_FLAGS: ret = "D3D12_MESSAGE_ID_CREATEPLACEDRESOURCEONBUFFER_INVALID_RESOURCE_FLAGS"; break; + case D3D12_MESSAGE_ID_CREATEPLACEDRESOURCEONBUFFER_OUTOFMEMORY_RETURN: ret = "D3D12_MESSAGE_ID_CREATEPLACEDRESOURCEONBUFFER_OUTOFMEMORY_RETURN"; break; + case D3D12_MESSAGE_ID_CANNOT_CREATE_GRAPHICS_AND_VIDEO_COMMAND_RECORDER: ret = "D3D12_MESSAGE_ID_CANNOT_CREATE_GRAPHICS_AND_VIDEO_COMMAND_RECORDER"; break; + case D3D12_MESSAGE_ID_UPDATETILEMAPPINGS_POSSIBLY_MISMATCHING_PROPERTIES: ret = "D3D12_MESSAGE_ID_UPDATETILEMAPPINGS_POSSIBLY_MISMATCHING_PROPERTIES"; break; + case D3D12_MESSAGE_ID_CREATE_COMMAND_LIST_INVALID_COMMAND_LIST_TYPE: ret = "D3D12_MESSAGE_ID_CREATE_COMMAND_LIST_INVALID_COMMAND_LIST_TYPE"; break; + case D3D12_MESSAGE_ID_CLEARUNORDEREDACCESSVIEW_INCOMPATIBLE_WITH_STRUCTURED_BUFFERS: ret = "D3D12_MESSAGE_ID_CLEARUNORDEREDACCESSVIEW_INCOMPATIBLE_WITH_STRUCTURED_BUFFERS"; break; + case D3D12_MESSAGE_ID_COMPUTE_ONLY_DEVICE_OPERATION_UNSUPPORTED: ret = "D3D12_MESSAGE_ID_COMPUTE_ONLY_DEVICE_OPERATION_UNSUPPORTED"; break; + case D3D12_MESSAGE_ID_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INVALID: ret = "D3D12_MESSAGE_ID_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INVALID"; break; + case D3D12_MESSAGE_ID_EMIT_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_INVALID: ret = "D3D12_MESSAGE_ID_EMIT_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_INVALID"; break; + case D3D12_MESSAGE_ID_COPY_RAYTRACING_ACCELERATION_STRUCTURE_INVALID: ret = "D3D12_MESSAGE_ID_COPY_RAYTRACING_ACCELERATION_STRUCTURE_INVALID"; break; + case D3D12_MESSAGE_ID_DISPATCH_RAYS_INVALID: ret = "D3D12_MESSAGE_ID_DISPATCH_RAYS_INVALID"; break; + case D3D12_MESSAGE_ID_GET_RAYTRACING_ACCELERATION_STRUCTURE_PREBUILD_INFO_INVALID: ret = "D3D12_MESSAGE_ID_GET_RAYTRACING_ACCELERATION_STRUCTURE_PREBUILD_INFO_INVALID"; break; + case D3D12_MESSAGE_ID_CREATE_LIFETIMETRACKER: ret = "D3D12_MESSAGE_ID_CREATE_LIFETIMETRACKER"; break; + case D3D12_MESSAGE_ID_LIVE_LIFETIMETRACKER: ret = "D3D12_MESSAGE_ID_LIVE_LIFETIMETRACKER"; break; + case D3D12_MESSAGE_ID_DESTROY_LIFETIMETRACKER: ret = "D3D12_MESSAGE_ID_DESTROY_LIFETIMETRACKER"; break; + case D3D12_MESSAGE_ID_DESTROYOWNEDOBJECT_OBJECTNOTOWNED: ret = "D3D12_MESSAGE_ID_DESTROYOWNEDOBJECT_OBJECTNOTOWNED"; break; + case D3D12_MESSAGE_ID_CREATE_TRACKEDWORKLOAD: ret = "D3D12_MESSAGE_ID_CREATE_TRACKEDWORKLOAD"; break; + case D3D12_MESSAGE_ID_LIVE_TRACKEDWORKLOAD: ret = "D3D12_MESSAGE_ID_LIVE_TRACKEDWORKLOAD"; break; + case D3D12_MESSAGE_ID_DESTROY_TRACKEDWORKLOAD: ret = "D3D12_MESSAGE_ID_DESTROY_TRACKEDWORKLOAD"; break; + case D3D12_MESSAGE_ID_RENDER_PASS_ERROR: ret = "D3D12_MESSAGE_ID_RENDER_PASS_ERROR"; break; + case D3D12_MESSAGE_ID_META_COMMAND_ID_INVALID: ret = "D3D12_MESSAGE_ID_META_COMMAND_ID_INVALID"; break; + case D3D12_MESSAGE_ID_META_COMMAND_UNSUPPORTED_PARAMS: ret = "D3D12_MESSAGE_ID_META_COMMAND_UNSUPPORTED_PARAMS"; break; + case D3D12_MESSAGE_ID_META_COMMAND_FAILED_ENUMERATION: ret = "D3D12_MESSAGE_ID_META_COMMAND_FAILED_ENUMERATION"; break; + case D3D12_MESSAGE_ID_META_COMMAND_PARAMETER_SIZE_MISMATCH: ret = "D3D12_MESSAGE_ID_META_COMMAND_PARAMETER_SIZE_MISMATCH"; break; + case D3D12_MESSAGE_ID_UNINITIALIZED_META_COMMAND: ret = "D3D12_MESSAGE_ID_UNINITIALIZED_META_COMMAND"; break; + case D3D12_MESSAGE_ID_META_COMMAND_INVALID_GPU_VIRTUAL_ADDRESS: ret = "D3D12_MESSAGE_ID_META_COMMAND_INVALID_GPU_VIRTUAL_ADDRESS"; break; + case D3D12_MESSAGE_ID_CREATE_VIDEOENCODECOMMANDLIST: ret = "D3D12_MESSAGE_ID_CREATE_VIDEOENCODECOMMANDLIST"; break; + case D3D12_MESSAGE_ID_LIVE_VIDEOENCODECOMMANDLIST: ret = "D3D12_MESSAGE_ID_LIVE_VIDEOENCODECOMMANDLIST"; break; + case D3D12_MESSAGE_ID_DESTROY_VIDEOENCODECOMMANDLIST: ret = "D3D12_MESSAGE_ID_DESTROY_VIDEOENCODECOMMANDLIST"; break; + case D3D12_MESSAGE_ID_CREATE_VIDEOENCODECOMMANDQUEUE: ret = "D3D12_MESSAGE_ID_CREATE_VIDEOENCODECOMMANDQUEUE"; break; + case D3D12_MESSAGE_ID_LIVE_VIDEOENCODECOMMANDQUEUE: ret = "D3D12_MESSAGE_ID_LIVE_VIDEOENCODECOMMANDQUEUE"; break; + case D3D12_MESSAGE_ID_DESTROY_VIDEOENCODECOMMANDQUEUE: ret = "D3D12_MESSAGE_ID_DESTROY_VIDEOENCODECOMMANDQUEUE"; break; + case D3D12_MESSAGE_ID_CREATE_VIDEOMOTIONESTIMATOR: ret = "D3D12_MESSAGE_ID_CREATE_VIDEOMOTIONESTIMATOR"; break; + case D3D12_MESSAGE_ID_LIVE_VIDEOMOTIONESTIMATOR: ret = "D3D12_MESSAGE_ID_LIVE_VIDEOMOTIONESTIMATOR"; break; + case D3D12_MESSAGE_ID_DESTROY_VIDEOMOTIONESTIMATOR: ret = "D3D12_MESSAGE_ID_DESTROY_VIDEOMOTIONESTIMATOR"; break; + case D3D12_MESSAGE_ID_CREATE_VIDEOMOTIONVECTORHEAP: ret = "D3D12_MESSAGE_ID_CREATE_VIDEOMOTIONVECTORHEAP"; break; + case D3D12_MESSAGE_ID_LIVE_VIDEOMOTIONVECTORHEAP: ret = "D3D12_MESSAGE_ID_LIVE_VIDEOMOTIONVECTORHEAP"; break; + case D3D12_MESSAGE_ID_DESTROY_VIDEOMOTIONVECTORHEAP: ret = "D3D12_MESSAGE_ID_DESTROY_VIDEOMOTIONVECTORHEAP"; break; + case D3D12_MESSAGE_ID_MULTIPLE_TRACKED_WORKLOADS: ret = "D3D12_MESSAGE_ID_MULTIPLE_TRACKED_WORKLOADS"; break; + case D3D12_MESSAGE_ID_MULTIPLE_TRACKED_WORKLOAD_PAIRS: ret = "D3D12_MESSAGE_ID_MULTIPLE_TRACKED_WORKLOAD_PAIRS"; break; + case D3D12_MESSAGE_ID_OUT_OF_ORDER_TRACKED_WORKLOAD_PAIR: ret = "D3D12_MESSAGE_ID_OUT_OF_ORDER_TRACKED_WORKLOAD_PAIR"; break; + case D3D12_MESSAGE_ID_CANNOT_ADD_TRACKED_WORKLOAD: ret = "D3D12_MESSAGE_ID_CANNOT_ADD_TRACKED_WORKLOAD"; break; + case D3D12_MESSAGE_ID_INCOMPLETE_TRACKED_WORKLOAD_PAIR: ret = "D3D12_MESSAGE_ID_INCOMPLETE_TRACKED_WORKLOAD_PAIR"; break; + case D3D12_MESSAGE_ID_CREATE_STATE_OBJECT_ERROR: ret = "D3D12_MESSAGE_ID_CREATE_STATE_OBJECT_ERROR"; break; + case D3D12_MESSAGE_ID_GET_SHADER_IDENTIFIER_ERROR: ret = "D3D12_MESSAGE_ID_GET_SHADER_IDENTIFIER_ERROR"; break; + case D3D12_MESSAGE_ID_GET_SHADER_STACK_SIZE_ERROR: ret = "D3D12_MESSAGE_ID_GET_SHADER_STACK_SIZE_ERROR"; break; + case D3D12_MESSAGE_ID_GET_PIPELINE_STACK_SIZE_ERROR: ret = "D3D12_MESSAGE_ID_GET_PIPELINE_STACK_SIZE_ERROR"; break; + case D3D12_MESSAGE_ID_SET_PIPELINE_STACK_SIZE_ERROR: ret = "D3D12_MESSAGE_ID_SET_PIPELINE_STACK_SIZE_ERROR"; break; + case D3D12_MESSAGE_ID_GET_SHADER_IDENTIFIER_SIZE_INVALID: ret = "D3D12_MESSAGE_ID_GET_SHADER_IDENTIFIER_SIZE_INVALID"; break; + case D3D12_MESSAGE_ID_CHECK_DRIVER_MATCHING_IDENTIFIER_INVALID: ret = "D3D12_MESSAGE_ID_CHECK_DRIVER_MATCHING_IDENTIFIER_INVALID"; break; + case D3D12_MESSAGE_ID_CHECK_DRIVER_MATCHING_IDENTIFIER_DRIVER_REPORTED_ISSUE: ret = "D3D12_MESSAGE_ID_CHECK_DRIVER_MATCHING_IDENTIFIER_DRIVER_REPORTED_ISSUE"; break; + case D3D12_MESSAGE_ID_RENDER_PASS_INVALID_RESOURCE_BARRIER: ret = "D3D12_MESSAGE_ID_RENDER_PASS_INVALID_RESOURCE_BARRIER"; break; + case D3D12_MESSAGE_ID_RENDER_PASS_DISALLOWED_API_CALLED: ret = "D3D12_MESSAGE_ID_RENDER_PASS_DISALLOWED_API_CALLED"; break; + case D3D12_MESSAGE_ID_RENDER_PASS_CANNOT_NEST_RENDER_PASSES: ret = "D3D12_MESSAGE_ID_RENDER_PASS_CANNOT_NEST_RENDER_PASSES"; break; + case D3D12_MESSAGE_ID_RENDER_PASS_CANNOT_END_WITHOUT_BEGIN: ret = "D3D12_MESSAGE_ID_RENDER_PASS_CANNOT_END_WITHOUT_BEGIN"; break; + case D3D12_MESSAGE_ID_RENDER_PASS_CANNOT_CLOSE_COMMAND_LIST: ret = "D3D12_MESSAGE_ID_RENDER_PASS_CANNOT_CLOSE_COMMAND_LIST"; break; + case D3D12_MESSAGE_ID_RENDER_PASS_GPU_WORK_WHILE_SUSPENDED: ret = "D3D12_MESSAGE_ID_RENDER_PASS_GPU_WORK_WHILE_SUSPENDED"; break; + case D3D12_MESSAGE_ID_RENDER_PASS_MISMATCHING_SUSPEND_RESUME: ret = "D3D12_MESSAGE_ID_RENDER_PASS_MISMATCHING_SUSPEND_RESUME"; break; + case D3D12_MESSAGE_ID_RENDER_PASS_NO_PRIOR_SUSPEND_WITHIN_EXECUTECOMMANDLISTS: ret = "D3D12_MESSAGE_ID_RENDER_PASS_NO_PRIOR_SUSPEND_WITHIN_EXECUTECOMMANDLISTS"; break; + case D3D12_MESSAGE_ID_RENDER_PASS_NO_SUBSEQUENT_RESUME_WITHIN_EXECUTECOMMANDLISTS: ret = "D3D12_MESSAGE_ID_RENDER_PASS_NO_SUBSEQUENT_RESUME_WITHIN_EXECUTECOMMANDLISTS"; break; + case D3D12_MESSAGE_ID_TRACKED_WORKLOAD_COMMAND_QUEUE_MISMATCH: ret = "D3D12_MESSAGE_ID_TRACKED_WORKLOAD_COMMAND_QUEUE_MISMATCH"; break; + case D3D12_MESSAGE_ID_TRACKED_WORKLOAD_NOT_SUPPORTED: ret = "D3D12_MESSAGE_ID_TRACKED_WORKLOAD_NOT_SUPPORTED"; break; + case D3D12_MESSAGE_ID_RENDER_PASS_MISMATCHING_NO_ACCESS: ret = "D3D12_MESSAGE_ID_RENDER_PASS_MISMATCHING_NO_ACCESS"; break; + case D3D12_MESSAGE_ID_RENDER_PASS_UNSUPPORTED_RESOLVE: ret = "D3D12_MESSAGE_ID_RENDER_PASS_UNSUPPORTED_RESOLVE"; break; + case D3D12_MESSAGE_ID_CLEARUNORDEREDACCESSVIEW_INVALID_RESOURCE_PTR: ret = "D3D12_MESSAGE_ID_CLEARUNORDEREDACCESSVIEW_INVALID_RESOURCE_PTR"; break; + case D3D12_MESSAGE_ID_WINDOWS7_FENCE_OUTOFORDER_SIGNAL: ret = "D3D12_MESSAGE_ID_WINDOWS7_FENCE_OUTOFORDER_SIGNAL"; break; + case D3D12_MESSAGE_ID_WINDOWS7_FENCE_OUTOFORDER_WAIT: ret = "D3D12_MESSAGE_ID_WINDOWS7_FENCE_OUTOFORDER_WAIT"; break; + case D3D12_MESSAGE_ID_VIDEO_CREATE_MOTION_ESTIMATOR_INVALID_ARGUMENT: ret = "D3D12_MESSAGE_ID_VIDEO_CREATE_MOTION_ESTIMATOR_INVALID_ARGUMENT"; break; + case D3D12_MESSAGE_ID_VIDEO_CREATE_MOTION_VECTOR_HEAP_INVALID_ARGUMENT: ret = "D3D12_MESSAGE_ID_VIDEO_CREATE_MOTION_VECTOR_HEAP_INVALID_ARGUMENT"; break; + case D3D12_MESSAGE_ID_ESTIMATE_MOTION_INVALID_ARGUMENT: ret = "D3D12_MESSAGE_ID_ESTIMATE_MOTION_INVALID_ARGUMENT"; break; + case D3D12_MESSAGE_ID_RESOLVE_MOTION_VECTOR_HEAP_INVALID_ARGUMENT: ret = "D3D12_MESSAGE_ID_RESOLVE_MOTION_VECTOR_HEAP_INVALID_ARGUMENT"; break; + case D3D12_MESSAGE_ID_GETGPUVIRTUALADDRESS_INVALID_HEAP_TYPE: ret = "D3D12_MESSAGE_ID_GETGPUVIRTUALADDRESS_INVALID_HEAP_TYPE"; break; + case D3D12_MESSAGE_ID_SET_BACKGROUND_PROCESSING_MODE_INVALID_ARGUMENT: ret = "D3D12_MESSAGE_ID_SET_BACKGROUND_PROCESSING_MODE_INVALID_ARGUMENT"; break; + case D3D12_MESSAGE_ID_CREATE_COMMAND_LIST_INVALID_COMMAND_LIST_TYPE_FOR_FEATURE_LEVEL: ret = "D3D12_MESSAGE_ID_CREATE_COMMAND_LIST_INVALID_COMMAND_LIST_TYPE_FOR_FEATURE_LEVEL"; break; + case D3D12_MESSAGE_ID_CREATE_VIDEOEXTENSIONCOMMAND: ret = "D3D12_MESSAGE_ID_CREATE_VIDEOEXTENSIONCOMMAND"; break; + case D3D12_MESSAGE_ID_LIVE_VIDEOEXTENSIONCOMMAND: ret = "D3D12_MESSAGE_ID_LIVE_VIDEOEXTENSIONCOMMAND"; break; + case D3D12_MESSAGE_ID_DESTROY_VIDEOEXTENSIONCOMMAND: ret = "D3D12_MESSAGE_ID_DESTROY_VIDEOEXTENSIONCOMMAND"; break; + case D3D12_MESSAGE_ID_INVALID_VIDEO_EXTENSION_COMMAND_ID: ret = "D3D12_MESSAGE_ID_INVALID_VIDEO_EXTENSION_COMMAND_ID"; break; + case D3D12_MESSAGE_ID_VIDEO_EXTENSION_COMMAND_INVALID_ARGUMENT: ret = "D3D12_MESSAGE_ID_VIDEO_EXTENSION_COMMAND_INVALID_ARGUMENT"; break; + case D3D12_MESSAGE_ID_CREATE_ROOT_SIGNATURE_NOT_UNIQUE_IN_DXIL_LIBRARY: ret = "D3D12_MESSAGE_ID_CREATE_ROOT_SIGNATURE_NOT_UNIQUE_IN_DXIL_LIBRARY"; break; + case D3D12_MESSAGE_ID_VARIABLE_SHADING_RATE_NOT_ALLOWED_WITH_TIR: ret = "D3D12_MESSAGE_ID_VARIABLE_SHADING_RATE_NOT_ALLOWED_WITH_TIR"; break; + case D3D12_MESSAGE_ID_GEOMETRY_SHADER_OUTPUTTING_BOTH_VIEWPORT_ARRAY_INDEX_AND_SHADING_RATE_NOT_SUPPORTED_ON_DEVICE: ret = "D3D12_MESSAGE_ID_GEOMETRY_SHADER_OUTPUTTING_BOTH_VIEWPORT_ARRAY_INDEX_AND_SHADING_RATE_NOT_SUPPORTED_ON_DEVICE"; break; + case D3D12_MESSAGE_ID_RSSETSHADING_RATE_INVALID_SHADING_RATE: ret = "D3D12_MESSAGE_ID_RSSETSHADING_RATE_INVALID_SHADING_RATE"; break; + case D3D12_MESSAGE_ID_RSSETSHADING_RATE_SHADING_RATE_NOT_PERMITTED_BY_CAP: ret = "D3D12_MESSAGE_ID_RSSETSHADING_RATE_SHADING_RATE_NOT_PERMITTED_BY_CAP"; break; + case D3D12_MESSAGE_ID_RSSETSHADING_RATE_INVALID_COMBINER: ret = "D3D12_MESSAGE_ID_RSSETSHADING_RATE_INVALID_COMBINER"; break; + case D3D12_MESSAGE_ID_RSSETSHADINGRATEIMAGE_REQUIRES_TIER_2: ret = "D3D12_MESSAGE_ID_RSSETSHADINGRATEIMAGE_REQUIRES_TIER_2"; break; + case D3D12_MESSAGE_ID_RSSETSHADINGRATE_REQUIRES_TIER_1: ret = "D3D12_MESSAGE_ID_RSSETSHADINGRATE_REQUIRES_TIER_1"; break; + case D3D12_MESSAGE_ID_SHADING_RATE_IMAGE_INCORRECT_FORMAT: ret = "D3D12_MESSAGE_ID_SHADING_RATE_IMAGE_INCORRECT_FORMAT"; break; + case D3D12_MESSAGE_ID_SHADING_RATE_IMAGE_INCORRECT_ARRAY_SIZE: ret = "D3D12_MESSAGE_ID_SHADING_RATE_IMAGE_INCORRECT_ARRAY_SIZE"; break; + case D3D12_MESSAGE_ID_SHADING_RATE_IMAGE_INCORRECT_MIP_LEVEL: ret = "D3D12_MESSAGE_ID_SHADING_RATE_IMAGE_INCORRECT_MIP_LEVEL"; break; + case D3D12_MESSAGE_ID_SHADING_RATE_IMAGE_INCORRECT_SAMPLE_COUNT: ret = "D3D12_MESSAGE_ID_SHADING_RATE_IMAGE_INCORRECT_SAMPLE_COUNT"; break; + case D3D12_MESSAGE_ID_SHADING_RATE_IMAGE_INCORRECT_SAMPLE_QUALITY: ret = "D3D12_MESSAGE_ID_SHADING_RATE_IMAGE_INCORRECT_SAMPLE_QUALITY"; break; + case D3D12_MESSAGE_ID_NON_RETAIL_SHADER_MODEL_WONT_VALIDATE: ret = "D3D12_MESSAGE_ID_NON_RETAIL_SHADER_MODEL_WONT_VALIDATE"; break; + case D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_AS_ROOT_SIGNATURE_MISMATCH: ret = "D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_AS_ROOT_SIGNATURE_MISMATCH"; break; + case D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_MS_ROOT_SIGNATURE_MISMATCH: ret = "D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_MS_ROOT_SIGNATURE_MISMATCH"; break; + case D3D12_MESSAGE_ID_ADD_TO_STATE_OBJECT_ERROR: ret = "D3D12_MESSAGE_ID_ADD_TO_STATE_OBJECT_ERROR"; break; + case D3D12_MESSAGE_ID_CREATE_PROTECTED_RESOURCE_SESSION_INVALID_ARGUMENT: ret = "D3D12_MESSAGE_ID_CREATE_PROTECTED_RESOURCE_SESSION_INVALID_ARGUMENT"; break; + case D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_MS_PSO_DESC_MISMATCH: ret = "D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_MS_PSO_DESC_MISMATCH"; break; + case D3D12_MESSAGE_ID_CREATEPIPELINESTATE_MS_INCOMPLETE_TYPE: ret = "D3D12_MESSAGE_ID_CREATEPIPELINESTATE_MS_INCOMPLETE_TYPE"; break; + case D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_AS_NOT_MS_MISMATCH: ret = "D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_AS_NOT_MS_MISMATCH"; break; + case D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_MS_NOT_PS_MISMATCH: ret = "D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_MS_NOT_PS_MISMATCH"; break; + case D3D12_MESSAGE_ID_NONZERO_SAMPLER_FEEDBACK_MIP_REGION_WITH_INCOMPATIBLE_FORMAT: ret = "D3D12_MESSAGE_ID_NONZERO_SAMPLER_FEEDBACK_MIP_REGION_WITH_INCOMPATIBLE_FORMAT"; break; + case D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_INPUTLAYOUT_SHADER_MISMATCH: ret = "D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_INPUTLAYOUT_SHADER_MISMATCH"; break; + case D3D12_MESSAGE_ID_EMPTY_DISPATCH: ret = "D3D12_MESSAGE_ID_EMPTY_DISPATCH"; break; + case D3D12_MESSAGE_ID_RESOURCE_FORMAT_REQUIRES_SAMPLER_FEEDBACK_CAPABILITY: ret = "D3D12_MESSAGE_ID_RESOURCE_FORMAT_REQUIRES_SAMPLER_FEEDBACK_CAPABILITY"; break; + case D3D12_MESSAGE_ID_SAMPLER_FEEDBACK_MAP_INVALID_MIP_REGION: ret = "D3D12_MESSAGE_ID_SAMPLER_FEEDBACK_MAP_INVALID_MIP_REGION"; break; + case D3D12_MESSAGE_ID_SAMPLER_FEEDBACK_MAP_INVALID_DIMENSION: ret = "D3D12_MESSAGE_ID_SAMPLER_FEEDBACK_MAP_INVALID_DIMENSION"; break; + case D3D12_MESSAGE_ID_SAMPLER_FEEDBACK_MAP_INVALID_SAMPLE_COUNT: ret = "D3D12_MESSAGE_ID_SAMPLER_FEEDBACK_MAP_INVALID_SAMPLE_COUNT"; break; + case D3D12_MESSAGE_ID_SAMPLER_FEEDBACK_MAP_INVALID_SAMPLE_QUALITY: ret = "D3D12_MESSAGE_ID_SAMPLER_FEEDBACK_MAP_INVALID_SAMPLE_QUALITY"; break; + case D3D12_MESSAGE_ID_SAMPLER_FEEDBACK_MAP_INVALID_LAYOUT: ret = "D3D12_MESSAGE_ID_SAMPLER_FEEDBACK_MAP_INVALID_LAYOUT"; break; + case D3D12_MESSAGE_ID_SAMPLER_FEEDBACK_MAP_REQUIRES_UNORDERED_ACCESS_FLAG: ret = "D3D12_MESSAGE_ID_SAMPLER_FEEDBACK_MAP_REQUIRES_UNORDERED_ACCESS_FLAG"; break; + case D3D12_MESSAGE_ID_SAMPLER_FEEDBACK_CREATE_UAV_NULL_ARGUMENTS: ret = "D3D12_MESSAGE_ID_SAMPLER_FEEDBACK_CREATE_UAV_NULL_ARGUMENTS"; break; + case D3D12_MESSAGE_ID_SAMPLER_FEEDBACK_UAV_REQUIRES_SAMPLER_FEEDBACK_CAPABILITY: ret = "D3D12_MESSAGE_ID_SAMPLER_FEEDBACK_UAV_REQUIRES_SAMPLER_FEEDBACK_CAPABILITY"; break; + case D3D12_MESSAGE_ID_SAMPLER_FEEDBACK_CREATE_UAV_REQUIRES_FEEDBACK_MAP_FORMAT: ret = "D3D12_MESSAGE_ID_SAMPLER_FEEDBACK_CREATE_UAV_REQUIRES_FEEDBACK_MAP_FORMAT"; break; + case D3D12_MESSAGE_ID_CREATEMESHSHADER_INVALIDSHADERBYTECODE: ret = "D3D12_MESSAGE_ID_CREATEMESHSHADER_INVALIDSHADERBYTECODE"; break; + case D3D12_MESSAGE_ID_CREATEMESHSHADER_OUTOFMEMORY: ret = "D3D12_MESSAGE_ID_CREATEMESHSHADER_OUTOFMEMORY"; break; + case D3D12_MESSAGE_ID_CREATEMESHSHADERWITHSTREAMOUTPUT_INVALIDSHADERTYPE: ret = "D3D12_MESSAGE_ID_CREATEMESHSHADERWITHSTREAMOUTPUT_INVALIDSHADERTYPE"; break; + case D3D12_MESSAGE_ID_RESOLVESUBRESOURCE_SAMPLER_FEEDBACK_TRANSCODE_INVALID_FORMAT: ret = "D3D12_MESSAGE_ID_RESOLVESUBRESOURCE_SAMPLER_FEEDBACK_TRANSCODE_INVALID_FORMAT"; break; + case D3D12_MESSAGE_ID_RESOLVESUBRESOURCE_SAMPLER_FEEDBACK_INVALID_MIP_LEVEL_COUNT: ret = "D3D12_MESSAGE_ID_RESOLVESUBRESOURCE_SAMPLER_FEEDBACK_INVALID_MIP_LEVEL_COUNT"; break; + case D3D12_MESSAGE_ID_RESOLVESUBRESOURCE_SAMPLER_FEEDBACK_TRANSCODE_ARRAY_SIZE_MISMATCH: ret = "D3D12_MESSAGE_ID_RESOLVESUBRESOURCE_SAMPLER_FEEDBACK_TRANSCODE_ARRAY_SIZE_MISMATCH"; break; + case D3D12_MESSAGE_ID_SAMPLER_FEEDBACK_CREATE_UAV_MISMATCHING_TARGETED_RESOURCE: ret = "D3D12_MESSAGE_ID_SAMPLER_FEEDBACK_CREATE_UAV_MISMATCHING_TARGETED_RESOURCE"; break; + case D3D12_MESSAGE_ID_CREATEMESHSHADER_OUTPUTEXCEEDSMAXSIZE: ret = "D3D12_MESSAGE_ID_CREATEMESHSHADER_OUTPUTEXCEEDSMAXSIZE"; break; + case D3D12_MESSAGE_ID_CREATEMESHSHADER_GROUPSHAREDEXCEEDSMAXSIZE: ret = "D3D12_MESSAGE_ID_CREATEMESHSHADER_GROUPSHAREDEXCEEDSMAXSIZE"; break; + case D3D12_MESSAGE_ID_VERTEX_SHADER_OUTPUTTING_BOTH_VIEWPORT_ARRAY_INDEX_AND_SHADING_RATE_NOT_SUPPORTED_ON_DEVICE: ret = "D3D12_MESSAGE_ID_VERTEX_SHADER_OUTPUTTING_BOTH_VIEWPORT_ARRAY_INDEX_AND_SHADING_RATE_NOT_SUPPORTED_ON_DEVICE"; break; + case D3D12_MESSAGE_ID_MESH_SHADER_OUTPUTTING_BOTH_VIEWPORT_ARRAY_INDEX_AND_SHADING_RATE_NOT_SUPPORTED_ON_DEVICE: ret = "D3D12_MESSAGE_ID_MESH_SHADER_OUTPUTTING_BOTH_VIEWPORT_ARRAY_INDEX_AND_SHADING_RATE_NOT_SUPPORTED_ON_DEVICE"; break; + case D3D12_MESSAGE_ID_CREATEMESHSHADER_MISMATCHEDASMSPAYLOADSIZE: ret = "D3D12_MESSAGE_ID_CREATEMESHSHADER_MISMATCHEDASMSPAYLOADSIZE"; break; + case D3D12_MESSAGE_ID_CREATE_ROOT_SIGNATURE_UNBOUNDED_STATIC_DESCRIPTORS: ret = "D3D12_MESSAGE_ID_CREATE_ROOT_SIGNATURE_UNBOUNDED_STATIC_DESCRIPTORS"; break; + case D3D12_MESSAGE_ID_CREATEAMPLIFICATIONSHADER_INVALIDSHADERBYTECODE: ret = "D3D12_MESSAGE_ID_CREATEAMPLIFICATIONSHADER_INVALIDSHADERBYTECODE"; break; + case D3D12_MESSAGE_ID_CREATEAMPLIFICATIONSHADER_OUTOFMEMORY: ret = "D3D12_MESSAGE_ID_CREATEAMPLIFICATIONSHADER_OUTOFMEMORY"; break; + case D3D12_MESSAGE_ID_CREATE_SHADERCACHESESSION: ret = "D3D12_MESSAGE_ID_CREATE_SHADERCACHESESSION"; break; + case D3D12_MESSAGE_ID_LIVE_SHADERCACHESESSION: ret = "D3D12_MESSAGE_ID_LIVE_SHADERCACHESESSION"; break; + case D3D12_MESSAGE_ID_DESTROY_SHADERCACHESESSION: ret = "D3D12_MESSAGE_ID_DESTROY_SHADERCACHESESSION"; break; + case D3D12_MESSAGE_ID_CREATESHADERCACHESESSION_INVALIDARGS: ret = "D3D12_MESSAGE_ID_CREATESHADERCACHESESSION_INVALIDARGS"; break; + case D3D12_MESSAGE_ID_CREATESHADERCACHESESSION_DISABLED: ret = "D3D12_MESSAGE_ID_CREATESHADERCACHESESSION_DISABLED"; break; + case D3D12_MESSAGE_ID_CREATESHADERCACHESESSION_ALREADYOPEN: ret = "D3D12_MESSAGE_ID_CREATESHADERCACHESESSION_ALREADYOPEN"; break; + case D3D12_MESSAGE_ID_SHADERCACHECONTROL_DEVELOPERMODE: ret = "D3D12_MESSAGE_ID_SHADERCACHECONTROL_DEVELOPERMODE"; break; + case D3D12_MESSAGE_ID_SHADERCACHECONTROL_INVALIDFLAGS: ret = "D3D12_MESSAGE_ID_SHADERCACHECONTROL_INVALIDFLAGS"; break; + case D3D12_MESSAGE_ID_SHADERCACHECONTROL_STATEALREADYSET: ret = "D3D12_MESSAGE_ID_SHADERCACHECONTROL_STATEALREADYSET"; break; + case D3D12_MESSAGE_ID_SHADERCACHECONTROL_IGNOREDFLAG: ret = "D3D12_MESSAGE_ID_SHADERCACHECONTROL_IGNOREDFLAG"; break; + case D3D12_MESSAGE_ID_SHADERCACHESESSION_STOREVALUE_ALREADYPRESENT: ret = "D3D12_MESSAGE_ID_SHADERCACHESESSION_STOREVALUE_ALREADYPRESENT"; break; + case D3D12_MESSAGE_ID_SHADERCACHESESSION_STOREVALUE_HASHCOLLISION: ret = "D3D12_MESSAGE_ID_SHADERCACHESESSION_STOREVALUE_HASHCOLLISION"; break; + case D3D12_MESSAGE_ID_SHADERCACHESESSION_STOREVALUE_CACHEFULL: ret = "D3D12_MESSAGE_ID_SHADERCACHESESSION_STOREVALUE_CACHEFULL"; break; + case D3D12_MESSAGE_ID_SHADERCACHESESSION_FINDVALUE_NOTFOUND: ret = "D3D12_MESSAGE_ID_SHADERCACHESESSION_FINDVALUE_NOTFOUND"; break; + case D3D12_MESSAGE_ID_SHADERCACHESESSION_CORRUPT: ret = "D3D12_MESSAGE_ID_SHADERCACHESESSION_CORRUPT"; break; + case D3D12_MESSAGE_ID_SHADERCACHESESSION_DISABLED: ret = "D3D12_MESSAGE_ID_SHADERCACHESESSION_DISABLED"; break; + case D3D12_MESSAGE_ID_OVERSIZED_DISPATCH: ret = "D3D12_MESSAGE_ID_OVERSIZED_DISPATCH"; break; + case D3D12_MESSAGE_ID_CREATE_VIDEOENCODER: ret = "D3D12_MESSAGE_ID_CREATE_VIDEOENCODER"; break; + case D3D12_MESSAGE_ID_LIVE_VIDEOENCODER: ret = "D3D12_MESSAGE_ID_LIVE_VIDEOENCODER"; break; + case D3D12_MESSAGE_ID_DESTROY_VIDEOENCODER: ret = "D3D12_MESSAGE_ID_DESTROY_VIDEOENCODER"; break; + case D3D12_MESSAGE_ID_CREATE_VIDEOENCODERHEAP: ret = "D3D12_MESSAGE_ID_CREATE_VIDEOENCODERHEAP"; break; + case D3D12_MESSAGE_ID_LIVE_VIDEOENCODERHEAP: ret = "D3D12_MESSAGE_ID_LIVE_VIDEOENCODERHEAP"; break; + case D3D12_MESSAGE_ID_DESTROY_VIDEOENCODERHEAP: ret = "D3D12_MESSAGE_ID_DESTROY_VIDEOENCODERHEAP"; break; + case D3D12_MESSAGE_ID_COPYTEXTUREREGION_MISMATCH_ENCODE_REFERENCE_ONLY_FLAG: ret = "D3D12_MESSAGE_ID_COPYTEXTUREREGION_MISMATCH_ENCODE_REFERENCE_ONLY_FLAG"; break; + case D3D12_MESSAGE_ID_COPYRESOURCE_MISMATCH_ENCODE_REFERENCE_ONLY_FLAG: ret = "D3D12_MESSAGE_ID_COPYRESOURCE_MISMATCH_ENCODE_REFERENCE_ONLY_FLAG"; break; + case D3D12_MESSAGE_ID_ENCODE_FRAME_INVALID_PARAMETERS: ret = "D3D12_MESSAGE_ID_ENCODE_FRAME_INVALID_PARAMETERS"; break; + case D3D12_MESSAGE_ID_ENCODE_FRAME_UNSUPPORTED_PARAMETERS: ret = "D3D12_MESSAGE_ID_ENCODE_FRAME_UNSUPPORTED_PARAMETERS"; break; + case D3D12_MESSAGE_ID_RESOLVE_ENCODER_OUTPUT_METADATA_INVALID_PARAMETERS: ret = "D3D12_MESSAGE_ID_RESOLVE_ENCODER_OUTPUT_METADATA_INVALID_PARAMETERS"; break; + case D3D12_MESSAGE_ID_RESOLVE_ENCODER_OUTPUT_METADATA_UNSUPPORTED_PARAMETERS: ret = "D3D12_MESSAGE_ID_RESOLVE_ENCODER_OUTPUT_METADATA_UNSUPPORTED_PARAMETERS"; break; + case D3D12_MESSAGE_ID_CREATE_VIDEO_ENCODER_INVALID_PARAMETERS: ret = "D3D12_MESSAGE_ID_CREATE_VIDEO_ENCODER_INVALID_PARAMETERS"; break; + case D3D12_MESSAGE_ID_CREATE_VIDEO_ENCODER_UNSUPPORTED_PARAMETERS: ret = "D3D12_MESSAGE_ID_CREATE_VIDEO_ENCODER_UNSUPPORTED_PARAMETERS"; break; + case D3D12_MESSAGE_ID_CREATE_VIDEO_ENCODER_HEAP_INVALID_PARAMETERS: ret = "D3D12_MESSAGE_ID_CREATE_VIDEO_ENCODER_HEAP_INVALID_PARAMETERS"; break; + case D3D12_MESSAGE_ID_CREATE_VIDEO_ENCODER_HEAP_UNSUPPORTED_PARAMETERS: ret = "D3D12_MESSAGE_ID_CREATE_VIDEO_ENCODER_HEAP_UNSUPPORTED_PARAMETERS"; break; + case D3D12_MESSAGE_ID_CREATECOMMANDLIST_NULL_COMMANDALLOCATOR: ret = "D3D12_MESSAGE_ID_CREATECOMMANDLIST_NULL_COMMANDALLOCATOR"; break; + case D3D12_MESSAGE_ID_CLEAR_UNORDERED_ACCESS_VIEW_INVALID_DESCRIPTOR_HANDLE: ret = "D3D12_MESSAGE_ID_CLEAR_UNORDERED_ACCESS_VIEW_INVALID_DESCRIPTOR_HANDLE"; break; + case D3D12_MESSAGE_ID_DESCRIPTOR_HEAP_NOT_SHADER_VISIBLE: ret = "D3D12_MESSAGE_ID_DESCRIPTOR_HEAP_NOT_SHADER_VISIBLE"; break; + case D3D12_MESSAGE_ID_CREATEBLENDSTATE_BLENDOP_WARNING: ret = "D3D12_MESSAGE_ID_CREATEBLENDSTATE_BLENDOP_WARNING"; break; + case D3D12_MESSAGE_ID_CREATEBLENDSTATE_BLENDOPALPHA_WARNING: ret = "D3D12_MESSAGE_ID_CREATEBLENDSTATE_BLENDOPALPHA_WARNING"; break; + case D3D12_MESSAGE_ID_WRITE_COMBINE_PERFORMANCE_WARNING: ret = "D3D12_MESSAGE_ID_WRITE_COMBINE_PERFORMANCE_WARNING"; break; + case D3D12_MESSAGE_ID_RESOLVE_QUERY_INVALID_QUERY_STATE: ret = "D3D12_MESSAGE_ID_RESOLVE_QUERY_INVALID_QUERY_STATE"; break; + case D3D12_MESSAGE_ID_SETPRIVATEDATA_NO_ACCESS: ret = "D3D12_MESSAGE_ID_SETPRIVATEDATA_NO_ACCESS"; break; + case D3D12_MESSAGE_ID_COMMAND_LIST_STATIC_DESCRIPTOR_SAMPLER_MODE_MISMATCH: ret = "D3D12_MESSAGE_ID_COMMAND_LIST_STATIC_DESCRIPTOR_SAMPLER_MODE_MISMATCH"; break; + case D3D12_MESSAGE_ID_GETCOPYABLEFOOTPRINTS_UNSUPPORTED_BUFFER_WIDTH: ret = "D3D12_MESSAGE_ID_GETCOPYABLEFOOTPRINTS_UNSUPPORTED_BUFFER_WIDTH"; break; + case D3D12_MESSAGE_ID_CREATEMESHSHADER_TOPOLOGY_MISMATCH: ret = "D3D12_MESSAGE_ID_CREATEMESHSHADER_TOPOLOGY_MISMATCH"; break; + case D3D12_MESSAGE_ID_VRS_SUM_COMBINER_REQUIRES_CAPABILITY: ret = "D3D12_MESSAGE_ID_VRS_SUM_COMBINER_REQUIRES_CAPABILITY"; break; + case D3D12_MESSAGE_ID_SETTING_SHADING_RATE_FROM_MS_REQUIRES_CAPABILITY: ret = "D3D12_MESSAGE_ID_SETTING_SHADING_RATE_FROM_MS_REQUIRES_CAPABILITY"; break; + case D3D12_MESSAGE_ID_SHADERCACHESESSION_SHADERCACHEDELETE_NOTSUPPORTED: ret = "D3D12_MESSAGE_ID_SHADERCACHESESSION_SHADERCACHEDELETE_NOTSUPPORTED"; break; + case D3D12_MESSAGE_ID_SHADERCACHECONTROL_SHADERCACHECLEAR_NOTSUPPORTED: ret = "D3D12_MESSAGE_ID_SHADERCACHECONTROL_SHADERCACHECLEAR_NOTSUPPORTED"; break; + case D3D12_MESSAGE_ID_CREATERESOURCE_STATE_IGNORED: ret = "D3D12_MESSAGE_ID_CREATERESOURCE_STATE_IGNORED"; break; + case D3D12_MESSAGE_ID_UNUSED_CROSS_EXECUTE_SPLIT_BARRIER: ret = "D3D12_MESSAGE_ID_UNUSED_CROSS_EXECUTE_SPLIT_BARRIER"; break; + case D3D12_MESSAGE_ID_DEVICE_OPEN_SHARED_HANDLE_ACCESS_DENIED: ret = "D3D12_MESSAGE_ID_DEVICE_OPEN_SHARED_HANDLE_ACCESS_DENIED"; break; + case D3D12_MESSAGE_ID_INCOMPATIBLE_BARRIER_VALUES: ret = "D3D12_MESSAGE_ID_INCOMPATIBLE_BARRIER_VALUES"; break; + case D3D12_MESSAGE_ID_INCOMPATIBLE_BARRIER_ACCESS: ret = "D3D12_MESSAGE_ID_INCOMPATIBLE_BARRIER_ACCESS"; break; + case D3D12_MESSAGE_ID_INCOMPATIBLE_BARRIER_SYNC: ret = "D3D12_MESSAGE_ID_INCOMPATIBLE_BARRIER_SYNC"; break; + case D3D12_MESSAGE_ID_INCOMPATIBLE_BARRIER_LAYOUT: ret = "D3D12_MESSAGE_ID_INCOMPATIBLE_BARRIER_LAYOUT"; break; + case D3D12_MESSAGE_ID_INCOMPATIBLE_BARRIER_TYPE: ret = "D3D12_MESSAGE_ID_INCOMPATIBLE_BARRIER_TYPE"; break; + case D3D12_MESSAGE_ID_OUT_OF_BOUNDS_BARRIER_SUBRESOURCE_RANGE: ret = "D3D12_MESSAGE_ID_OUT_OF_BOUNDS_BARRIER_SUBRESOURCE_RANGE"; break; + case D3D12_MESSAGE_ID_INCOMPATIBLE_BARRIER_RESOURCE_DIMENSION: ret = "D3D12_MESSAGE_ID_INCOMPATIBLE_BARRIER_RESOURCE_DIMENSION"; break; + case D3D12_MESSAGE_ID_SET_SCISSOR_RECTS_INVALID_RECT: ret = "D3D12_MESSAGE_ID_SET_SCISSOR_RECTS_INVALID_RECT"; break; + case D3D12_MESSAGE_ID_SHADING_RATE_SOURCE_REQUIRES_DIMENSION_TEXTURE2D: ret = "D3D12_MESSAGE_ID_SHADING_RATE_SOURCE_REQUIRES_DIMENSION_TEXTURE2D"; break; + case D3D12_MESSAGE_ID_BUFFER_BARRIER_SUBREGION_OUT_OF_BOUNDS: ret = "D3D12_MESSAGE_ID_BUFFER_BARRIER_SUBREGION_OUT_OF_BOUNDS"; break; + case D3D12_MESSAGE_ID_UNSUPPORTED_BARRIER_LAYOUT: ret = "D3D12_MESSAGE_ID_UNSUPPORTED_BARRIER_LAYOUT"; break; + case D3D12_MESSAGE_ID_CREATERESOURCEANDHEAP_INVALID_PARAMETERS: ret = "D3D12_MESSAGE_ID_CREATERESOURCEANDHEAP_INVALID_PARAMETERS"; break; + case D3D12_MESSAGE_ID_ENHANCED_BARRIERS_NOT_SUPPORTED: ret = "D3D12_MESSAGE_ID_ENHANCED_BARRIERS_NOT_SUPPORTED"; break; + case D3D12_MESSAGE_ID_LEGACY_BARRIER_VALIDATION_FORCED_ON: ret = "D3D12_MESSAGE_ID_LEGACY_BARRIER_VALIDATION_FORCED_ON"; break; + case D3D12_MESSAGE_ID_EMPTY_ROOT_DESCRIPTOR_TABLE: ret = "D3D12_MESSAGE_ID_EMPTY_ROOT_DESCRIPTOR_TABLE"; break; + case D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_ELEMENT_OFFSET_UNALIGNED: ret = "D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_ELEMENT_OFFSET_UNALIGNED"; break; + case D3D12_MESSAGE_ID_ALPHA_BLEND_FACTOR_NOT_SUPPORTED: ret = "D3D12_MESSAGE_ID_ALPHA_BLEND_FACTOR_NOT_SUPPORTED"; break; + case D3D12_MESSAGE_ID_BARRIER_INTEROP_INVALID_LAYOUT: ret = "D3D12_MESSAGE_ID_BARRIER_INTEROP_INVALID_LAYOUT"; break; + case D3D12_MESSAGE_ID_BARRIER_INTEROP_INVALID_STATE: ret = "D3D12_MESSAGE_ID_BARRIER_INTEROP_INVALID_STATE"; break; + case D3D12_MESSAGE_ID_GRAPHICS_PIPELINE_STATE_DESC_ZERO_SAMPLE_MASK: ret = "D3D12_MESSAGE_ID_GRAPHICS_PIPELINE_STATE_DESC_ZERO_SAMPLE_MASK"; break; + case D3D12_MESSAGE_ID_INDEPENDENT_STENCIL_REF_NOT_SUPPORTED: ret = "D3D12_MESSAGE_ID_INDEPENDENT_STENCIL_REF_NOT_SUPPORTED"; break; + case D3D12_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INDEPENDENT_MASKS_UNSUPPORTED: ret = "D3D12_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INDEPENDENT_MASKS_UNSUPPORTED"; break; + case D3D12_MESSAGE_ID_TEXTURE_BARRIER_SUBRESOURCES_OUT_OF_BOUNDS: ret = "D3D12_MESSAGE_ID_TEXTURE_BARRIER_SUBRESOURCES_OUT_OF_BOUNDS"; break; + case D3D12_MESSAGE_ID_NON_OPTIMAL_BARRIER_ONLY_EXECUTE_COMMAND_LISTS: ret = "D3D12_MESSAGE_ID_NON_OPTIMAL_BARRIER_ONLY_EXECUTE_COMMAND_LISTS"; break; + case D3D12_MESSAGE_ID_EXECUTE_INDIRECT_ZERO_COMMAND_COUNT: ret = "D3D12_MESSAGE_ID_EXECUTE_INDIRECT_ZERO_COMMAND_COUNT"; break; + case D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_INCOMPATIBLE_TEXTURE_LAYOUT: ret = "D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_INCOMPATIBLE_TEXTURE_LAYOUT"; break; + case D3D12_MESSAGE_ID_DYNAMIC_INDEX_BUFFER_STRIP_CUT_NOT_SUPPORTED: ret = "D3D12_MESSAGE_ID_DYNAMIC_INDEX_BUFFER_STRIP_CUT_NOT_SUPPORTED"; break; + case D3D12_MESSAGE_ID_PRIMITIVE_TOPOLOGY_TRIANGLE_FANS_NOT_SUPPORTED: ret = "D3D12_MESSAGE_ID_PRIMITIVE_TOPOLOGY_TRIANGLE_FANS_NOT_SUPPORTED"; break; + case D3D12_MESSAGE_ID_CREATE_SAMPLER_COMPARISON_FUNC_IGNORED: ret = "D3D12_MESSAGE_ID_CREATE_SAMPLER_COMPARISON_FUNC_IGNORED"; break; + case D3D12_MESSAGE_ID_CREATEHEAP_INVALIDHEAPTYPE: ret = "D3D12_MESSAGE_ID_CREATEHEAP_INVALIDHEAPTYPE"; break; + case D3D12_MESSAGE_ID_CREATERESOURCEANDHEAP_INVALIDHEAPTYPE: ret = "D3D12_MESSAGE_ID_CREATERESOURCEANDHEAP_INVALIDHEAPTYPE"; break; + case D3D12_MESSAGE_ID_DYNAMIC_DEPTH_BIAS_NOT_SUPPORTED: ret = "D3D12_MESSAGE_ID_DYNAMIC_DEPTH_BIAS_NOT_SUPPORTED"; break; + case D3D12_MESSAGE_ID_CREATERASTERIZERSTATE_NON_WHOLE_DYNAMIC_DEPTH_BIAS: ret = "D3D12_MESSAGE_ID_CREATERASTERIZERSTATE_NON_WHOLE_DYNAMIC_DEPTH_BIAS"; break; + case D3D12_MESSAGE_ID_DYNAMIC_DEPTH_BIAS_FLAG_MISSING: ret = "D3D12_MESSAGE_ID_DYNAMIC_DEPTH_BIAS_FLAG_MISSING"; break; + case D3D12_MESSAGE_ID_DYNAMIC_DEPTH_BIAS_NO_PIPELINE: ret = "D3D12_MESSAGE_ID_DYNAMIC_DEPTH_BIAS_NO_PIPELINE"; break; + case D3D12_MESSAGE_ID_DYNAMIC_INDEX_BUFFER_STRIP_CUT_FLAG_MISSING: ret = "D3D12_MESSAGE_ID_DYNAMIC_INDEX_BUFFER_STRIP_CUT_FLAG_MISSING"; break; + case D3D12_MESSAGE_ID_DYNAMIC_INDEX_BUFFER_STRIP_CUT_NO_PIPELINE: ret = "D3D12_MESSAGE_ID_DYNAMIC_INDEX_BUFFER_STRIP_CUT_NO_PIPELINE"; break; + case D3D12_MESSAGE_ID_NONNORMALIZED_COORDINATE_SAMPLING_NOT_SUPPORTED: ret = "D3D12_MESSAGE_ID_NONNORMALIZED_COORDINATE_SAMPLING_NOT_SUPPORTED"; break; + case D3D12_MESSAGE_ID_INVALID_CAST_TARGET: ret = "D3D12_MESSAGE_ID_INVALID_CAST_TARGET"; break; + case D3D12_MESSAGE_ID_RENDER_PASS_COMMANDLIST_INVALID_END_STATE: ret = "D3D12_MESSAGE_ID_RENDER_PASS_COMMANDLIST_INVALID_END_STATE"; break; + case D3D12_MESSAGE_ID_RENDER_PASS_COMMANDLIST_INVALID_START_STATE: ret = "D3D12_MESSAGE_ID_RENDER_PASS_COMMANDLIST_INVALID_START_STATE"; break; + case D3D12_MESSAGE_ID_RENDER_PASS_MISMATCHING_ACCESS: ret = "D3D12_MESSAGE_ID_RENDER_PASS_MISMATCHING_ACCESS"; break; + case D3D12_MESSAGE_ID_RENDER_PASS_MISMATCHING_LOCAL_PRESERVE_PARAMETERS: ret = "D3D12_MESSAGE_ID_RENDER_PASS_MISMATCHING_LOCAL_PRESERVE_PARAMETERS"; break; + case D3D12_MESSAGE_ID_RENDER_PASS_LOCAL_PRESERVE_RENDER_PARAMETERS_ERROR: ret = "D3D12_MESSAGE_ID_RENDER_PASS_LOCAL_PRESERVE_RENDER_PARAMETERS_ERROR"; break; + case D3D12_MESSAGE_ID_RENDER_PASS_LOCAL_DEPTH_STENCIL_ERROR: ret = "D3D12_MESSAGE_ID_RENDER_PASS_LOCAL_DEPTH_STENCIL_ERROR"; break; + case D3D12_MESSAGE_ID_DRAW_POTENTIALLY_OUTSIDE_OF_VALID_RENDER_AREA: ret = "D3D12_MESSAGE_ID_DRAW_POTENTIALLY_OUTSIDE_OF_VALID_RENDER_AREA"; break; + case D3D12_MESSAGE_ID_CREATERASTERIZERSTATE_INVALID_LINERASTERIZATIONMODE: ret = "D3D12_MESSAGE_ID_CREATERASTERIZERSTATE_INVALID_LINERASTERIZATIONMODE"; break; + case D3D12_MESSAGE_ID_CREATERESOURCE_INVALIDALIGNMENT_SMALLRESOURCE: ret = "D3D12_MESSAGE_ID_CREATERESOURCE_INVALIDALIGNMENT_SMALLRESOURCE"; break; + case D3D12_MESSAGE_ID_D3D12_MESSAGES_END: ret = "D3D12_MESSAGE_ID_D3D12_MESSAGES_END"; break; + } + return ret; +} + +std::string ToString(const D3D12_MESSAGE_CALLBACK_FLAGS value) +{ + const char* ret = "Unhandled D3D12_MESSAGE_CALLBACK_FLAGS"; + switch (value) { + case D3D12_MESSAGE_CALLBACK_FLAG_NONE: ret = "D3D12_MESSAGE_CALLBACK_FLAG_NONE"; break; + case D3D12_MESSAGE_CALLBACK_IGNORE_FILTERS: ret = "D3D12_MESSAGE_CALLBACK_IGNORE_FILTERS"; break; + } + return ret; +} + +std::string ToString_D3D12_MESSAGE_CALLBACK_FLAGS(const uint32_t flags) { return BitmaskToString(flags); } -template <> std::string ToString(const IID& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) { return ToString(obj); } std::string ToString(const IID& iid) { - if (iid == IID_IDXGIObject) return "\"IID_IDXGIObject\""; - if (iid == IID_IDXGIDeviceSubObject) return "\"IID_IDXGIDeviceSubObject\""; - if (iid == IID_IDXGIResource) return "\"IID_IDXGIResource\""; - if (iid == IID_IDXGIKeyedMutex) return "\"IID_IDXGIKeyedMutex\""; - if (iid == IID_IDXGISurface) return "\"IID_IDXGISurface\""; - if (iid == IID_IDXGISurface1) return "\"IID_IDXGISurface1\""; - if (iid == IID_IDXGIAdapter) return "\"IID_IDXGIAdapter\""; - if (iid == IID_IDXGIOutput) return "\"IID_IDXGIOutput\""; - if (iid == IID_IDXGISwapChain) return "\"IID_IDXGISwapChain\""; - if (iid == IID_IDXGIFactory) return "\"IID_IDXGIFactory\""; - if (iid == IID_IDXGIDevice) return "\"IID_IDXGIDevice\""; - if (iid == IID_IDXGIFactory1) return "\"IID_IDXGIFactory1\""; - if (iid == IID_IDXGIAdapter1) return "\"IID_IDXGIAdapter1\""; - if (iid == IID_IDXGIDevice1) return "\"IID_IDXGIDevice1\""; - if (iid == IID_IDXGIDisplayControl) return "\"IID_IDXGIDisplayControl\""; - if (iid == IID_IDXGIOutputDuplication) return "\"IID_IDXGIOutputDuplication\""; - if (iid == IID_IDXGISurface2) return "\"IID_IDXGISurface2\""; - if (iid == IID_IDXGIResource1) return "\"IID_IDXGIResource1\""; - if (iid == IID_IDXGIDevice2) return "\"IID_IDXGIDevice2\""; - if (iid == IID_IDXGISwapChain1) return "\"IID_IDXGISwapChain1\""; - if (iid == IID_IDXGIFactory2) return "\"IID_IDXGIFactory2\""; - if (iid == IID_IDXGIAdapter2) return "\"IID_IDXGIAdapter2\""; - if (iid == IID_IDXGIOutput1) return "\"IID_IDXGIOutput1\""; - if (iid == IID_IDXGIDevice3) return "\"IID_IDXGIDevice3\""; - if (iid == IID_IDXGISwapChain2) return "\"IID_IDXGISwapChain2\""; - if (iid == IID_IDXGIOutput2) return "\"IID_IDXGIOutput2\""; - if (iid == IID_IDXGIFactory3) return "\"IID_IDXGIFactory3\""; - if (iid == IID_IDXGIDecodeSwapChain) return "\"IID_IDXGIDecodeSwapChain\""; - if (iid == IID_IDXGIFactoryMedia) return "\"IID_IDXGIFactoryMedia\""; - if (iid == IID_IDXGISwapChainMedia) return "\"IID_IDXGISwapChainMedia\""; - if (iid == IID_IDXGIOutput3) return "\"IID_IDXGIOutput3\""; - if (iid == IID_IDXGISwapChain3) return "\"IID_IDXGISwapChain3\""; - if (iid == IID_IDXGIOutput4) return "\"IID_IDXGIOutput4\""; - if (iid == IID_IDXGIFactory4) return "\"IID_IDXGIFactory4\""; - if (iid == IID_IDXGIAdapter3) return "\"IID_IDXGIAdapter3\""; - if (iid == IID_IDXGIOutput5) return "\"IID_IDXGIOutput5\""; - if (iid == IID_IDXGISwapChain4) return "\"IID_IDXGISwapChain4\""; - if (iid == IID_IDXGIDevice4) return "\"IID_IDXGIDevice4\""; - if (iid == IID_IDXGIFactory5) return "\"IID_IDXGIFactory5\""; - if (iid == IID_IDXGIAdapter4) return "\"IID_IDXGIAdapter4\""; - if (iid == IID_IDXGIOutput6) return "\"IID_IDXGIOutput6\""; - if (iid == IID_IDXGIFactory6) return "\"IID_IDXGIFactory6\""; - if (iid == IID_IDXGIFactory7) return "\"IID_IDXGIFactory7\""; - if (iid == D3D12_PROTECTED_RESOURCES_SESSION_HARDWARE_PROTECTED) return "\"D3D12_PROTECTED_RESOURCES_SESSION_HARDWARE_PROTECTED\""; - if (iid == CLSID_D3D12Debug) return "\"CLSID_D3D12Debug\""; - if (iid == CLSID_D3D12Tools) return "\"CLSID_D3D12Tools\""; - if (iid == CLSID_D3D12DeviceRemovedExtendedData) return "\"CLSID_D3D12DeviceRemovedExtendedData\""; - if (iid == CLSID_D3D12SDKConfiguration) return "\"CLSID_D3D12SDKConfiguration\""; - if (iid == CLSID_D3D12DeviceFactory) return "\"CLSID_D3D12DeviceFactory\""; - if (iid == CLSID_D3D12DSRDeviceFactory) return "\"CLSID_D3D12DSRDeviceFactory\""; - if (iid == IID_ID3D12Object) return "\"IID_ID3D12Object\""; - if (iid == IID_ID3D12DeviceChild) return "\"IID_ID3D12DeviceChild\""; - if (iid == IID_ID3D12RootSignature) return "\"IID_ID3D12RootSignature\""; - if (iid == IID_ID3D12RootSignatureDeserializer) return "\"IID_ID3D12RootSignatureDeserializer\""; - if (iid == IID_ID3D12VersionedRootSignatureDeserializer) return "\"IID_ID3D12VersionedRootSignatureDeserializer\""; - if (iid == IID_ID3D12Pageable) return "\"IID_ID3D12Pageable\""; - if (iid == IID_ID3D12Heap) return "\"IID_ID3D12Heap\""; - if (iid == IID_ID3D12Resource) return "\"IID_ID3D12Resource\""; - if (iid == IID_ID3D12CommandAllocator) return "\"IID_ID3D12CommandAllocator\""; - if (iid == IID_ID3D12Fence) return "\"IID_ID3D12Fence\""; - if (iid == IID_ID3D12Fence1) return "\"IID_ID3D12Fence1\""; - if (iid == IID_ID3D12PipelineState) return "\"IID_ID3D12PipelineState\""; - if (iid == IID_ID3D12DescriptorHeap) return "\"IID_ID3D12DescriptorHeap\""; - if (iid == IID_ID3D12QueryHeap) return "\"IID_ID3D12QueryHeap\""; - if (iid == IID_ID3D12CommandSignature) return "\"IID_ID3D12CommandSignature\""; - if (iid == IID_ID3D12CommandList) return "\"IID_ID3D12CommandList\""; - if (iid == IID_ID3D12GraphicsCommandList) return "\"IID_ID3D12GraphicsCommandList\""; - if (iid == IID_ID3D12GraphicsCommandList1) return "\"IID_ID3D12GraphicsCommandList1\""; - if (iid == IID_ID3D12GraphicsCommandList2) return "\"IID_ID3D12GraphicsCommandList2\""; - if (iid == IID_ID3D12CommandQueue) return "\"IID_ID3D12CommandQueue\""; - if (iid == IID_ID3D12Device) return "\"IID_ID3D12Device\""; - if (iid == IID_ID3D12PipelineLibrary) return "\"IID_ID3D12PipelineLibrary\""; - if (iid == IID_ID3D12PipelineLibrary1) return "\"IID_ID3D12PipelineLibrary1\""; - if (iid == IID_ID3D12Device1) return "\"IID_ID3D12Device1\""; - if (iid == IID_ID3D12Device2) return "\"IID_ID3D12Device2\""; - if (iid == IID_ID3D12Device3) return "\"IID_ID3D12Device3\""; - if (iid == IID_ID3D12ProtectedSession) return "\"IID_ID3D12ProtectedSession\""; - if (iid == IID_ID3D12ProtectedResourceSession) return "\"IID_ID3D12ProtectedResourceSession\""; - if (iid == IID_ID3D12Device4) return "\"IID_ID3D12Device4\""; - if (iid == IID_ID3D12LifetimeOwner) return "\"IID_ID3D12LifetimeOwner\""; - if (iid == IID_ID3D12SwapChainAssistant) return "\"IID_ID3D12SwapChainAssistant\""; - if (iid == IID_ID3D12LifetimeTracker) return "\"IID_ID3D12LifetimeTracker\""; - if (iid == IID_ID3D12StateObject) return "\"IID_ID3D12StateObject\""; - if (iid == IID_ID3D12StateObjectProperties) return "\"IID_ID3D12StateObjectProperties\""; - if (iid == IID_ID3D12Device5) return "\"IID_ID3D12Device5\""; - if (iid == IID_ID3D12DeviceRemovedExtendedDataSettings) return "\"IID_ID3D12DeviceRemovedExtendedDataSettings\""; - if (iid == IID_ID3D12DeviceRemovedExtendedDataSettings1) return "\"IID_ID3D12DeviceRemovedExtendedDataSettings1\""; - if (iid == IID_ID3D12DeviceRemovedExtendedDataSettings2) return "\"IID_ID3D12DeviceRemovedExtendedDataSettings2\""; - if (iid == IID_ID3D12DeviceRemovedExtendedData) return "\"IID_ID3D12DeviceRemovedExtendedData\""; - if (iid == IID_ID3D12DeviceRemovedExtendedData1) return "\"IID_ID3D12DeviceRemovedExtendedData1\""; - if (iid == IID_ID3D12DeviceRemovedExtendedData2) return "\"IID_ID3D12DeviceRemovedExtendedData2\""; - if (iid == IID_ID3D12Device6) return "\"IID_ID3D12Device6\""; - if (iid == IID_ID3D12ProtectedResourceSession1) return "\"IID_ID3D12ProtectedResourceSession1\""; - if (iid == IID_ID3D12Device7) return "\"IID_ID3D12Device7\""; - if (iid == IID_ID3D12Device8) return "\"IID_ID3D12Device8\""; - if (iid == IID_ID3D12Resource1) return "\"IID_ID3D12Resource1\""; - if (iid == IID_ID3D12Resource2) return "\"IID_ID3D12Resource2\""; - if (iid == IID_ID3D12Heap1) return "\"IID_ID3D12Heap1\""; - if (iid == IID_ID3D12GraphicsCommandList3) return "\"IID_ID3D12GraphicsCommandList3\""; - if (iid == IID_ID3D12MetaCommand) return "\"IID_ID3D12MetaCommand\""; - if (iid == IID_ID3D12GraphicsCommandList4) return "\"IID_ID3D12GraphicsCommandList4\""; - if (iid == IID_ID3D12ShaderCacheSession) return "\"IID_ID3D12ShaderCacheSession\""; - if (iid == IID_ID3D12Device9) return "\"IID_ID3D12Device9\""; - if (iid == IID_ID3D12Device10) return "\"IID_ID3D12Device10\""; - if (iid == IID_ID3D12Device11) return "\"IID_ID3D12Device11\""; - if (iid == IID_ID3D12Device12) return "\"IID_ID3D12Device12\""; - if (iid == IID_ID3D12VirtualizationGuestDevice) return "\"IID_ID3D12VirtualizationGuestDevice\""; - if (iid == IID_ID3D12Tools) return "\"IID_ID3D12Tools\""; - if (iid == IID_ID3D12SDKConfiguration) return "\"IID_ID3D12SDKConfiguration\""; - if (iid == IID_ID3D12SDKConfiguration1) return "\"IID_ID3D12SDKConfiguration1\""; - if (iid == IID_ID3D12DeviceFactory) return "\"IID_ID3D12DeviceFactory\""; - if (iid == IID_ID3D12DeviceConfiguration) return "\"IID_ID3D12DeviceConfiguration\""; - if (iid == IID_ID3D12GraphicsCommandList5) return "\"IID_ID3D12GraphicsCommandList5\""; - if (iid == IID_ID3D12GraphicsCommandList6) return "\"IID_ID3D12GraphicsCommandList6\""; - if (iid == IID_ID3D12GraphicsCommandList7) return "\"IID_ID3D12GraphicsCommandList7\""; - if (iid == IID_ID3D12GraphicsCommandList8) return "\"IID_ID3D12GraphicsCommandList8\""; - if (iid == IID_ID3D12GraphicsCommandList9) return "\"IID_ID3D12GraphicsCommandList9\""; - if (iid == IID_ID3D12DSRDeviceFactory) return "\"IID_ID3D12DSRDeviceFactory\""; - if (iid == IID_ID3D10Blob) return "\"IID_ID3D10Blob\""; - if (iid == WKPDID_D3DDebugObjectName) return "\"WKPDID_D3DDebugObjectName\""; - if (iid == WKPDID_D3DDebugObjectNameW) return "\"WKPDID_D3DDebugObjectNameW\""; - if (iid == WKPDID_CommentStringW) return "\"WKPDID_CommentStringW\""; - if (iid == WKPDID_D3D12UniqueObjectId) return "\"WKPDID_D3D12UniqueObjectId\""; - if (iid == D3D_TEXTURE_LAYOUT_ROW_MAJOR) return "\"D3D_TEXTURE_LAYOUT_ROW_MAJOR\""; - if (iid == D3D_TEXTURE_LAYOUT_64KB_STANDARD_SWIZZLE) return "\"D3D_TEXTURE_LAYOUT_64KB_STANDARD_SWIZZLE\""; - if (iid == WKPDID_D3DAutoDebugObjectNameW) return "\"WKPDID_D3DAutoDebugObjectNameW\""; - if (iid == DXGI_DEBUG_D3D12) return "\"DXGI_DEBUG_D3D12\""; - if (iid == IID_ID3D12Debug) return "\"IID_ID3D12Debug\""; - if (iid == IID_ID3D12Debug1) return "\"IID_ID3D12Debug1\""; - if (iid == IID_ID3D12Debug2) return "\"IID_ID3D12Debug2\""; - if (iid == IID_ID3D12Debug3) return "\"IID_ID3D12Debug3\""; - if (iid == IID_ID3D12Debug4) return "\"IID_ID3D12Debug4\""; - if (iid == IID_ID3D12Debug5) return "\"IID_ID3D12Debug5\""; - if (iid == IID_ID3D12Debug6) return "\"IID_ID3D12Debug6\""; - if (iid == IID_ID3D12DebugDevice1) return "\"IID_ID3D12DebugDevice1\""; - if (iid == IID_ID3D12DebugDevice) return "\"IID_ID3D12DebugDevice\""; - if (iid == IID_ID3D12DebugDevice2) return "\"IID_ID3D12DebugDevice2\""; - if (iid == IID_ID3D12DebugCommandQueue) return "\"IID_ID3D12DebugCommandQueue\""; - if (iid == IID_ID3D12DebugCommandQueue1) return "\"IID_ID3D12DebugCommandQueue1\""; - if (iid == IID_ID3D12DebugCommandList1) return "\"IID_ID3D12DebugCommandList1\""; - if (iid == IID_ID3D12DebugCommandList) return "\"IID_ID3D12DebugCommandList\""; - if (iid == IID_ID3D12DebugCommandList2) return "\"IID_ID3D12DebugCommandList2\""; - if (iid == IID_ID3D12DebugCommandList3) return "\"IID_ID3D12DebugCommandList3\""; - if (iid == IID_ID3D12SharingContract) return "\"IID_ID3D12SharingContract\""; - if (iid == IID_ID3D12ManualWriteTrackingResource) return "\"IID_ID3D12ManualWriteTrackingResource\""; - if (iid == IID_ID3D12InfoQueue) return "\"IID_ID3D12InfoQueue\""; - if (iid == IID_ID3D12InfoQueue1) return "\"IID_ID3D12InfoQueue1\""; - if (iid == IID_IUnknown) return "\"IID_IUnknown\""; - return "\"Invalid IID\""; + if (iid == IID_IDXGIObject) return "IID_IDXGIObject"; + if (iid == IID_IDXGIDeviceSubObject) return "IID_IDXGIDeviceSubObject"; + if (iid == IID_IDXGIResource) return "IID_IDXGIResource"; + if (iid == IID_IDXGIKeyedMutex) return "IID_IDXGIKeyedMutex"; + if (iid == IID_IDXGISurface) return "IID_IDXGISurface"; + if (iid == IID_IDXGISurface1) return "IID_IDXGISurface1"; + if (iid == IID_IDXGIAdapter) return "IID_IDXGIAdapter"; + if (iid == IID_IDXGIOutput) return "IID_IDXGIOutput"; + if (iid == IID_IDXGISwapChain) return "IID_IDXGISwapChain"; + if (iid == IID_IDXGIFactory) return "IID_IDXGIFactory"; + if (iid == IID_IDXGIDevice) return "IID_IDXGIDevice"; + if (iid == IID_IDXGIFactory1) return "IID_IDXGIFactory1"; + if (iid == IID_IDXGIAdapter1) return "IID_IDXGIAdapter1"; + if (iid == IID_IDXGIDevice1) return "IID_IDXGIDevice1"; + if (iid == IID_IDXGIDisplayControl) return "IID_IDXGIDisplayControl"; + if (iid == IID_IDXGIOutputDuplication) return "IID_IDXGIOutputDuplication"; + if (iid == IID_IDXGISurface2) return "IID_IDXGISurface2"; + if (iid == IID_IDXGIResource1) return "IID_IDXGIResource1"; + if (iid == IID_IDXGIDevice2) return "IID_IDXGIDevice2"; + if (iid == IID_IDXGISwapChain1) return "IID_IDXGISwapChain1"; + if (iid == IID_IDXGIFactory2) return "IID_IDXGIFactory2"; + if (iid == IID_IDXGIAdapter2) return "IID_IDXGIAdapter2"; + if (iid == IID_IDXGIOutput1) return "IID_IDXGIOutput1"; + if (iid == IID_IDXGIDevice3) return "IID_IDXGIDevice3"; + if (iid == IID_IDXGISwapChain2) return "IID_IDXGISwapChain2"; + if (iid == IID_IDXGIOutput2) return "IID_IDXGIOutput2"; + if (iid == IID_IDXGIFactory3) return "IID_IDXGIFactory3"; + if (iid == IID_IDXGIDecodeSwapChain) return "IID_IDXGIDecodeSwapChain"; + if (iid == IID_IDXGIFactoryMedia) return "IID_IDXGIFactoryMedia"; + if (iid == IID_IDXGISwapChainMedia) return "IID_IDXGISwapChainMedia"; + if (iid == IID_IDXGIOutput3) return "IID_IDXGIOutput3"; + if (iid == IID_IDXGISwapChain3) return "IID_IDXGISwapChain3"; + if (iid == IID_IDXGIOutput4) return "IID_IDXGIOutput4"; + if (iid == IID_IDXGIFactory4) return "IID_IDXGIFactory4"; + if (iid == IID_IDXGIAdapter3) return "IID_IDXGIAdapter3"; + if (iid == IID_IDXGIOutput5) return "IID_IDXGIOutput5"; + if (iid == IID_IDXGISwapChain4) return "IID_IDXGISwapChain4"; + if (iid == IID_IDXGIDevice4) return "IID_IDXGIDevice4"; + if (iid == IID_IDXGIFactory5) return "IID_IDXGIFactory5"; + if (iid == IID_IDXGIAdapter4) return "IID_IDXGIAdapter4"; + if (iid == IID_IDXGIOutput6) return "IID_IDXGIOutput6"; + if (iid == IID_IDXGIFactory6) return "IID_IDXGIFactory6"; + if (iid == IID_IDXGIFactory7) return "IID_IDXGIFactory7"; + if (iid == D3D12_PROTECTED_RESOURCES_SESSION_HARDWARE_PROTECTED) return "D3D12_PROTECTED_RESOURCES_SESSION_HARDWARE_PROTECTED"; + if (iid == CLSID_D3D12Debug) return "CLSID_D3D12Debug"; + if (iid == CLSID_D3D12Tools) return "CLSID_D3D12Tools"; + if (iid == CLSID_D3D12DeviceRemovedExtendedData) return "CLSID_D3D12DeviceRemovedExtendedData"; + if (iid == CLSID_D3D12SDKConfiguration) return "CLSID_D3D12SDKConfiguration"; + if (iid == CLSID_D3D12DeviceFactory) return "CLSID_D3D12DeviceFactory"; + if (iid == CLSID_D3D12DSRDeviceFactory) return "CLSID_D3D12DSRDeviceFactory"; + if (iid == IID_ID3D12Object) return "IID_ID3D12Object"; + if (iid == IID_ID3D12DeviceChild) return "IID_ID3D12DeviceChild"; + if (iid == IID_ID3D12RootSignature) return "IID_ID3D12RootSignature"; + if (iid == IID_ID3D12RootSignatureDeserializer) return "IID_ID3D12RootSignatureDeserializer"; + if (iid == IID_ID3D12VersionedRootSignatureDeserializer) return "IID_ID3D12VersionedRootSignatureDeserializer"; + if (iid == IID_ID3D12Pageable) return "IID_ID3D12Pageable"; + if (iid == IID_ID3D12Heap) return "IID_ID3D12Heap"; + if (iid == IID_ID3D12Resource) return "IID_ID3D12Resource"; + if (iid == IID_ID3D12CommandAllocator) return "IID_ID3D12CommandAllocator"; + if (iid == IID_ID3D12Fence) return "IID_ID3D12Fence"; + if (iid == IID_ID3D12Fence1) return "IID_ID3D12Fence1"; + if (iid == IID_ID3D12PipelineState) return "IID_ID3D12PipelineState"; + if (iid == IID_ID3D12DescriptorHeap) return "IID_ID3D12DescriptorHeap"; + if (iid == IID_ID3D12QueryHeap) return "IID_ID3D12QueryHeap"; + if (iid == IID_ID3D12CommandSignature) return "IID_ID3D12CommandSignature"; + if (iid == IID_ID3D12CommandList) return "IID_ID3D12CommandList"; + if (iid == IID_ID3D12GraphicsCommandList) return "IID_ID3D12GraphicsCommandList"; + if (iid == IID_ID3D12GraphicsCommandList1) return "IID_ID3D12GraphicsCommandList1"; + if (iid == IID_ID3D12GraphicsCommandList2) return "IID_ID3D12GraphicsCommandList2"; + if (iid == IID_ID3D12CommandQueue) return "IID_ID3D12CommandQueue"; + if (iid == IID_ID3D12Device) return "IID_ID3D12Device"; + if (iid == IID_ID3D12PipelineLibrary) return "IID_ID3D12PipelineLibrary"; + if (iid == IID_ID3D12PipelineLibrary1) return "IID_ID3D12PipelineLibrary1"; + if (iid == IID_ID3D12Device1) return "IID_ID3D12Device1"; + if (iid == IID_ID3D12Device2) return "IID_ID3D12Device2"; + if (iid == IID_ID3D12Device3) return "IID_ID3D12Device3"; + if (iid == IID_ID3D12ProtectedSession) return "IID_ID3D12ProtectedSession"; + if (iid == IID_ID3D12ProtectedResourceSession) return "IID_ID3D12ProtectedResourceSession"; + if (iid == IID_ID3D12Device4) return "IID_ID3D12Device4"; + if (iid == IID_ID3D12LifetimeOwner) return "IID_ID3D12LifetimeOwner"; + if (iid == IID_ID3D12SwapChainAssistant) return "IID_ID3D12SwapChainAssistant"; + if (iid == IID_ID3D12LifetimeTracker) return "IID_ID3D12LifetimeTracker"; + if (iid == IID_ID3D12StateObject) return "IID_ID3D12StateObject"; + if (iid == IID_ID3D12StateObjectProperties) return "IID_ID3D12StateObjectProperties"; + if (iid == IID_ID3D12Device5) return "IID_ID3D12Device5"; + if (iid == IID_ID3D12DeviceRemovedExtendedDataSettings) return "IID_ID3D12DeviceRemovedExtendedDataSettings"; + if (iid == IID_ID3D12DeviceRemovedExtendedDataSettings1) return "IID_ID3D12DeviceRemovedExtendedDataSettings1"; + if (iid == IID_ID3D12DeviceRemovedExtendedDataSettings2) return "IID_ID3D12DeviceRemovedExtendedDataSettings2"; + if (iid == IID_ID3D12DeviceRemovedExtendedData) return "IID_ID3D12DeviceRemovedExtendedData"; + if (iid == IID_ID3D12DeviceRemovedExtendedData1) return "IID_ID3D12DeviceRemovedExtendedData1"; + if (iid == IID_ID3D12DeviceRemovedExtendedData2) return "IID_ID3D12DeviceRemovedExtendedData2"; + if (iid == IID_ID3D12Device6) return "IID_ID3D12Device6"; + if (iid == IID_ID3D12ProtectedResourceSession1) return "IID_ID3D12ProtectedResourceSession1"; + if (iid == IID_ID3D12Device7) return "IID_ID3D12Device7"; + if (iid == IID_ID3D12Device8) return "IID_ID3D12Device8"; + if (iid == IID_ID3D12Resource1) return "IID_ID3D12Resource1"; + if (iid == IID_ID3D12Resource2) return "IID_ID3D12Resource2"; + if (iid == IID_ID3D12Heap1) return "IID_ID3D12Heap1"; + if (iid == IID_ID3D12GraphicsCommandList3) return "IID_ID3D12GraphicsCommandList3"; + if (iid == IID_ID3D12MetaCommand) return "IID_ID3D12MetaCommand"; + if (iid == IID_ID3D12GraphicsCommandList4) return "IID_ID3D12GraphicsCommandList4"; + if (iid == IID_ID3D12ShaderCacheSession) return "IID_ID3D12ShaderCacheSession"; + if (iid == IID_ID3D12Device9) return "IID_ID3D12Device9"; + if (iid == IID_ID3D12Device10) return "IID_ID3D12Device10"; + if (iid == IID_ID3D12Device11) return "IID_ID3D12Device11"; + if (iid == IID_ID3D12Device12) return "IID_ID3D12Device12"; + if (iid == IID_ID3D12VirtualizationGuestDevice) return "IID_ID3D12VirtualizationGuestDevice"; + if (iid == IID_ID3D12Tools) return "IID_ID3D12Tools"; + if (iid == IID_ID3D12SDKConfiguration) return "IID_ID3D12SDKConfiguration"; + if (iid == IID_ID3D12SDKConfiguration1) return "IID_ID3D12SDKConfiguration1"; + if (iid == IID_ID3D12DeviceFactory) return "IID_ID3D12DeviceFactory"; + if (iid == IID_ID3D12DeviceConfiguration) return "IID_ID3D12DeviceConfiguration"; + if (iid == IID_ID3D12GraphicsCommandList5) return "IID_ID3D12GraphicsCommandList5"; + if (iid == IID_ID3D12GraphicsCommandList6) return "IID_ID3D12GraphicsCommandList6"; + if (iid == IID_ID3D12GraphicsCommandList7) return "IID_ID3D12GraphicsCommandList7"; + if (iid == IID_ID3D12GraphicsCommandList8) return "IID_ID3D12GraphicsCommandList8"; + if (iid == IID_ID3D12GraphicsCommandList9) return "IID_ID3D12GraphicsCommandList9"; + if (iid == IID_ID3D12DSRDeviceFactory) return "IID_ID3D12DSRDeviceFactory"; + if (iid == IID_ID3D10Blob) return "IID_ID3D10Blob"; + if (iid == WKPDID_D3DDebugObjectName) return "WKPDID_D3DDebugObjectName"; + if (iid == WKPDID_D3DDebugObjectNameW) return "WKPDID_D3DDebugObjectNameW"; + if (iid == WKPDID_CommentStringW) return "WKPDID_CommentStringW"; + if (iid == WKPDID_D3D12UniqueObjectId) return "WKPDID_D3D12UniqueObjectId"; + if (iid == D3D_TEXTURE_LAYOUT_ROW_MAJOR) return "D3D_TEXTURE_LAYOUT_ROW_MAJOR"; + if (iid == D3D_TEXTURE_LAYOUT_64KB_STANDARD_SWIZZLE) return "D3D_TEXTURE_LAYOUT_64KB_STANDARD_SWIZZLE"; + if (iid == WKPDID_D3DAutoDebugObjectNameW) return "WKPDID_D3DAutoDebugObjectNameW"; + if (iid == DXGI_DEBUG_D3D12) return "DXGI_DEBUG_D3D12"; + if (iid == IID_ID3D12Debug) return "IID_ID3D12Debug"; + if (iid == IID_ID3D12Debug1) return "IID_ID3D12Debug1"; + if (iid == IID_ID3D12Debug2) return "IID_ID3D12Debug2"; + if (iid == IID_ID3D12Debug3) return "IID_ID3D12Debug3"; + if (iid == IID_ID3D12Debug4) return "IID_ID3D12Debug4"; + if (iid == IID_ID3D12Debug5) return "IID_ID3D12Debug5"; + if (iid == IID_ID3D12Debug6) return "IID_ID3D12Debug6"; + if (iid == IID_ID3D12DebugDevice1) return "IID_ID3D12DebugDevice1"; + if (iid == IID_ID3D12DebugDevice) return "IID_ID3D12DebugDevice"; + if (iid == IID_ID3D12DebugDevice2) return "IID_ID3D12DebugDevice2"; + if (iid == IID_ID3D12DebugCommandQueue) return "IID_ID3D12DebugCommandQueue"; + if (iid == IID_ID3D12DebugCommandQueue1) return "IID_ID3D12DebugCommandQueue1"; + if (iid == IID_ID3D12DebugCommandList1) return "IID_ID3D12DebugCommandList1"; + if (iid == IID_ID3D12DebugCommandList) return "IID_ID3D12DebugCommandList"; + if (iid == IID_ID3D12DebugCommandList2) return "IID_ID3D12DebugCommandList2"; + if (iid == IID_ID3D12DebugCommandList3) return "IID_ID3D12DebugCommandList3"; + if (iid == IID_ID3D12SharingContract) return "IID_ID3D12SharingContract"; + if (iid == IID_ID3D12ManualWriteTrackingResource) return "IID_ID3D12ManualWriteTrackingResource"; + if (iid == IID_ID3D12InfoQueue) return "IID_ID3D12InfoQueue"; + if (iid == IID_ID3D12InfoQueue1) return "IID_ID3D12InfoQueue1"; + if (iid == IID_IUnknown) return "IID_IUnknown"; + return "Invalid IID"; } diff --git a/framework/generated/generated_dx12_enum_to_string.h b/framework/generated/generated_dx12_enum_to_string.h index 52ce754ec8..883477b76c 100644 --- a/framework/generated/generated_dx12_enum_to_string.h +++ b/framework/generated/generated_dx12_enum_to_string.h @@ -48,288 +48,289 @@ #include "util/defines.h" #include "util/to_string.h" + GFXRECON_BEGIN_NAMESPACE(gfxrecon) GFXRECON_BEGIN_NAMESPACE(util) -std::string ToString(const DXGI_RESIDENCY& value); -std::string ToString(const DXGI_SWAP_EFFECT& value); -std::string ToString(const DXGI_SWAP_CHAIN_FLAG& value); -std::string ToString(const DXGI_ADAPTER_FLAG& value); -std::string ToString(const DXGI_OUTDUPL_POINTER_SHAPE_TYPE& value); -std::string ToString(const DXGI_ALPHA_MODE& value); -std::string ToString(const DXGI_OFFER_RESOURCE_PRIORITY& value); -std::string ToString(const DXGI_SCALING& value); -std::string ToString(const DXGI_GRAPHICS_PREEMPTION_GRANULARITY& value); -std::string ToString(const DXGI_COMPUTE_PREEMPTION_GRANULARITY& value); -std::string ToString(const DXGI_MULTIPLANE_OVERLAY_YCbCr_FLAGS& value); +std::string ToString(DXGI_RESIDENCY value); +std::string ToString(DXGI_SWAP_EFFECT value); +std::string ToString(DXGI_SWAP_CHAIN_FLAG value); +std::string ToString(DXGI_ADAPTER_FLAG value); +std::string ToString(DXGI_OUTDUPL_POINTER_SHAPE_TYPE value); +std::string ToString(DXGI_ALPHA_MODE value); +std::string ToString(DXGI_OFFER_RESOURCE_PRIORITY value); +std::string ToString(DXGI_SCALING value); +std::string ToString(DXGI_GRAPHICS_PREEMPTION_GRANULARITY value); +std::string ToString(DXGI_COMPUTE_PREEMPTION_GRANULARITY value); +std::string ToString(DXGI_MULTIPLANE_OVERLAY_YCbCr_FLAGS value); std::string ToString_DXGI_MULTIPLANE_OVERLAY_YCbCr_FLAGS(uint32_t flags); -std::string ToString(const DXGI_FRAME_PRESENTATION_MODE& value); -std::string ToString(const DXGI_OVERLAY_SUPPORT_FLAG& value); -std::string ToString(const DXGI_SWAP_CHAIN_COLOR_SPACE_SUPPORT_FLAG& value); -std::string ToString(const DXGI_OVERLAY_COLOR_SPACE_SUPPORT_FLAG& value); -std::string ToString(const DXGI_MEMORY_SEGMENT_GROUP& value); -std::string ToString(const DXGI_OUTDUPL_FLAG& value); -std::string ToString(const DXGI_HDR_METADATA_TYPE& value); -std::string ToString(const DXGI_OFFER_RESOURCE_FLAGS& value); +std::string ToString(DXGI_FRAME_PRESENTATION_MODE value); +std::string ToString(DXGI_OVERLAY_SUPPORT_FLAG value); +std::string ToString(DXGI_SWAP_CHAIN_COLOR_SPACE_SUPPORT_FLAG value); +std::string ToString(DXGI_OVERLAY_COLOR_SPACE_SUPPORT_FLAG value); +std::string ToString(DXGI_MEMORY_SEGMENT_GROUP value); +std::string ToString(DXGI_OUTDUPL_FLAG value); +std::string ToString(DXGI_HDR_METADATA_TYPE value); +std::string ToString(DXGI_OFFER_RESOURCE_FLAGS value); std::string ToString_DXGI_OFFER_RESOURCE_FLAGS(uint32_t flags); -std::string ToString(const DXGI_RECLAIM_RESOURCE_RESULTS& value); -std::string ToString(const DXGI_FEATURE& value); -std::string ToString(const DXGI_ADAPTER_FLAG3& value); -std::string ToString(const DXGI_HARDWARE_COMPOSITION_SUPPORT_FLAGS& value); +std::string ToString(DXGI_RECLAIM_RESOURCE_RESULTS value); +std::string ToString(DXGI_FEATURE value); +std::string ToString(DXGI_ADAPTER_FLAG3 value); +std::string ToString(DXGI_HARDWARE_COMPOSITION_SUPPORT_FLAGS value); std::string ToString_DXGI_HARDWARE_COMPOSITION_SUPPORT_FLAGS(uint32_t flags); -std::string ToString(const DXGI_GPU_PREFERENCE& value); -std::string ToString(const DXGI_COLOR_SPACE_TYPE& value); -std::string ToString(const DXGI_FORMAT& value); -std::string ToString(const DXGI_MODE_SCANLINE_ORDER& value); -std::string ToString(const DXGI_MODE_SCALING& value); -std::string ToString(const DXGI_MODE_ROTATION& value); -std::string ToString(const D3D12_COMMAND_LIST_TYPE& value); -std::string ToString(const D3D12_COMMAND_QUEUE_FLAGS& value); +std::string ToString(DXGI_GPU_PREFERENCE value); +std::string ToString(DXGI_COLOR_SPACE_TYPE value); +std::string ToString(DXGI_FORMAT value); +std::string ToString(DXGI_MODE_SCANLINE_ORDER value); +std::string ToString(DXGI_MODE_SCALING value); +std::string ToString(DXGI_MODE_ROTATION value); +std::string ToString(D3D12_COMMAND_LIST_TYPE value); +std::string ToString(D3D12_COMMAND_QUEUE_FLAGS value); std::string ToString_D3D12_COMMAND_QUEUE_FLAGS(uint32_t flags); -std::string ToString(const D3D12_COMMAND_QUEUE_PRIORITY& value); -std::string ToString(const D3D12_PRIMITIVE_TOPOLOGY_TYPE& value); -std::string ToString(const D3D12_INPUT_CLASSIFICATION& value); -std::string ToString(const D3D12_FILL_MODE& value); -std::string ToString(const D3D12_CULL_MODE& value); -std::string ToString(const D3D12_COMPARISON_FUNC& value); -std::string ToString(const D3D12_DEPTH_WRITE_MASK& value); -std::string ToString(const D3D12_STENCIL_OP& value); -std::string ToString(const D3D12_BLEND& value); -std::string ToString(const D3D12_BLEND_OP& value); -std::string ToString(const D3D12_COLOR_WRITE_ENABLE& value); -std::string ToString(const D3D12_LOGIC_OP& value); -std::string ToString(const D3D12_CONSERVATIVE_RASTERIZATION_MODE& value); -std::string ToString(const D3D12_LINE_RASTERIZATION_MODE& value); -std::string ToString(const D3D12_INDEX_BUFFER_STRIP_CUT_VALUE& value); -std::string ToString(const D3D12_PIPELINE_STATE_FLAGS& value); +std::string ToString(D3D12_COMMAND_QUEUE_PRIORITY value); +std::string ToString(D3D12_PRIMITIVE_TOPOLOGY_TYPE value); +std::string ToString(D3D12_INPUT_CLASSIFICATION value); +std::string ToString(D3D12_FILL_MODE value); +std::string ToString(D3D12_CULL_MODE value); +std::string ToString(D3D12_COMPARISON_FUNC value); +std::string ToString(D3D12_DEPTH_WRITE_MASK value); +std::string ToString(D3D12_STENCIL_OP value); +std::string ToString(D3D12_BLEND value); +std::string ToString(D3D12_BLEND_OP value); +std::string ToString(D3D12_COLOR_WRITE_ENABLE value); +std::string ToString(D3D12_LOGIC_OP value); +std::string ToString(D3D12_CONSERVATIVE_RASTERIZATION_MODE value); +std::string ToString(D3D12_LINE_RASTERIZATION_MODE value); +std::string ToString(D3D12_INDEX_BUFFER_STRIP_CUT_VALUE value); +std::string ToString(D3D12_PIPELINE_STATE_FLAGS value); std::string ToString_D3D12_PIPELINE_STATE_FLAGS(uint32_t flags); -std::string ToString(const D3D12_PIPELINE_STATE_SUBOBJECT_TYPE& value); -std::string ToString(const D3D12_FEATURE& value); -std::string ToString(const D3D12_SHADER_MIN_PRECISION_SUPPORT& value); +std::string ToString(D3D12_PIPELINE_STATE_SUBOBJECT_TYPE value); +std::string ToString(D3D12_FEATURE value); +std::string ToString(D3D12_SHADER_MIN_PRECISION_SUPPORT value); std::string ToString_D3D12_SHADER_MIN_PRECISION_SUPPORT(uint32_t flags); -std::string ToString(const D3D12_TILED_RESOURCES_TIER& value); -std::string ToString(const D3D12_RESOURCE_BINDING_TIER& value); -std::string ToString(const D3D12_CONSERVATIVE_RASTERIZATION_TIER& value); -std::string ToString(const D3D12_FORMAT_SUPPORT1& value); +std::string ToString(D3D12_TILED_RESOURCES_TIER value); +std::string ToString(D3D12_RESOURCE_BINDING_TIER value); +std::string ToString(D3D12_CONSERVATIVE_RASTERIZATION_TIER value); +std::string ToString(D3D12_FORMAT_SUPPORT1 value); std::string ToString_D3D12_FORMAT_SUPPORT1(uint32_t flags); -std::string ToString(const D3D12_FORMAT_SUPPORT2& value); +std::string ToString(D3D12_FORMAT_SUPPORT2 value); std::string ToString_D3D12_FORMAT_SUPPORT2(uint32_t flags); -std::string ToString(const D3D12_MULTISAMPLE_QUALITY_LEVEL_FLAGS& value); +std::string ToString(D3D12_MULTISAMPLE_QUALITY_LEVEL_FLAGS value); std::string ToString_D3D12_MULTISAMPLE_QUALITY_LEVEL_FLAGS(uint32_t flags); -std::string ToString(const D3D12_CROSS_NODE_SHARING_TIER& value); -std::string ToString(const D3D12_RESOURCE_HEAP_TIER& value); -std::string ToString(const D3D12_PROGRAMMABLE_SAMPLE_POSITIONS_TIER& value); -std::string ToString(const D3D12_VIEW_INSTANCING_TIER& value); -std::string ToString(const D3D_ROOT_SIGNATURE_VERSION& value); -std::string ToString(const D3D_SHADER_MODEL& value); -std::string ToString(const D3D12_SHADER_CACHE_SUPPORT_FLAGS& value); +std::string ToString(D3D12_CROSS_NODE_SHARING_TIER value); +std::string ToString(D3D12_RESOURCE_HEAP_TIER value); +std::string ToString(D3D12_PROGRAMMABLE_SAMPLE_POSITIONS_TIER value); +std::string ToString(D3D12_VIEW_INSTANCING_TIER value); +std::string ToString(D3D_ROOT_SIGNATURE_VERSION value); +std::string ToString(D3D_SHADER_MODEL value); +std::string ToString(D3D12_SHADER_CACHE_SUPPORT_FLAGS value); std::string ToString_D3D12_SHADER_CACHE_SUPPORT_FLAGS(uint32_t flags); -std::string ToString(const D3D12_COMMAND_LIST_SUPPORT_FLAGS& value); +std::string ToString(D3D12_COMMAND_LIST_SUPPORT_FLAGS value); std::string ToString_D3D12_COMMAND_LIST_SUPPORT_FLAGS(uint32_t flags); -std::string ToString(const D3D12_SHARED_RESOURCE_COMPATIBILITY_TIER& value); -std::string ToString(const D3D12_HEAP_SERIALIZATION_TIER& value); -std::string ToString(const D3D12_RENDER_PASS_TIER& value); -std::string ToString(const D3D12_RAYTRACING_TIER& value); -std::string ToString(const D3D12_VARIABLE_SHADING_RATE_TIER& value); -std::string ToString(const D3D12_MESH_SHADER_TIER& value); -std::string ToString(const D3D12_SAMPLER_FEEDBACK_TIER& value); -std::string ToString(const D3D12_WAVE_MMA_TIER& value); -std::string ToString(const D3D12_TRI_STATE& value); -std::string ToString(const D3D12_HEAP_TYPE& value); -std::string ToString(const D3D12_CPU_PAGE_PROPERTY& value); -std::string ToString(const D3D12_MEMORY_POOL& value); -std::string ToString(const D3D12_HEAP_FLAGS& value); +std::string ToString(D3D12_SHARED_RESOURCE_COMPATIBILITY_TIER value); +std::string ToString(D3D12_HEAP_SERIALIZATION_TIER value); +std::string ToString(D3D12_RENDER_PASS_TIER value); +std::string ToString(D3D12_RAYTRACING_TIER value); +std::string ToString(D3D12_VARIABLE_SHADING_RATE_TIER value); +std::string ToString(D3D12_MESH_SHADER_TIER value); +std::string ToString(D3D12_SAMPLER_FEEDBACK_TIER value); +std::string ToString(D3D12_WAVE_MMA_TIER value); +std::string ToString(D3D12_TRI_STATE value); +std::string ToString(D3D12_HEAP_TYPE value); +std::string ToString(D3D12_CPU_PAGE_PROPERTY value); +std::string ToString(D3D12_MEMORY_POOL value); +std::string ToString(D3D12_HEAP_FLAGS value); std::string ToString_D3D12_HEAP_FLAGS(uint32_t flags); -std::string ToString(const D3D12_RESOURCE_DIMENSION& value); -std::string ToString(const D3D12_TEXTURE_LAYOUT& value); -std::string ToString(const D3D12_RESOURCE_FLAGS& value); +std::string ToString(D3D12_RESOURCE_DIMENSION value); +std::string ToString(D3D12_TEXTURE_LAYOUT value); +std::string ToString(D3D12_RESOURCE_FLAGS value); std::string ToString_D3D12_RESOURCE_FLAGS(uint32_t flags); -std::string ToString(const D3D12_TILE_RANGE_FLAGS& value); +std::string ToString(D3D12_TILE_RANGE_FLAGS value); std::string ToString_D3D12_TILE_RANGE_FLAGS(uint32_t flags); -std::string ToString(const D3D12_TILE_MAPPING_FLAGS& value); +std::string ToString(D3D12_TILE_MAPPING_FLAGS value); std::string ToString_D3D12_TILE_MAPPING_FLAGS(uint32_t flags); -std::string ToString(const D3D12_TILE_COPY_FLAGS& value); +std::string ToString(D3D12_TILE_COPY_FLAGS value); std::string ToString_D3D12_TILE_COPY_FLAGS(uint32_t flags); -std::string ToString(const D3D12_RESOURCE_STATES& value); +std::string ToString(D3D12_RESOURCE_STATES value); std::string ToString_D3D12_RESOURCE_STATES(uint32_t flags); -std::string ToString(const D3D12_RESOURCE_BARRIER_TYPE& value); -std::string ToString(const D3D12_RESOURCE_BARRIER_FLAGS& value); +std::string ToString(D3D12_RESOURCE_BARRIER_TYPE value); +std::string ToString(D3D12_RESOURCE_BARRIER_FLAGS value); std::string ToString_D3D12_RESOURCE_BARRIER_FLAGS(uint32_t flags); -std::string ToString(const D3D12_TEXTURE_COPY_TYPE& value); -std::string ToString(const D3D12_RESOLVE_MODE& value); -std::string ToString(const D3D12_VIEW_INSTANCING_FLAGS& value); +std::string ToString(D3D12_TEXTURE_COPY_TYPE value); +std::string ToString(D3D12_RESOLVE_MODE value); +std::string ToString(D3D12_VIEW_INSTANCING_FLAGS value); std::string ToString_D3D12_VIEW_INSTANCING_FLAGS(uint32_t flags); -std::string ToString(const D3D12_SHADER_COMPONENT_MAPPING& value); -std::string ToString(const D3D12_BUFFER_SRV_FLAGS& value); +std::string ToString(D3D12_SHADER_COMPONENT_MAPPING value); +std::string ToString(D3D12_BUFFER_SRV_FLAGS value); std::string ToString_D3D12_BUFFER_SRV_FLAGS(uint32_t flags); -std::string ToString(const D3D12_SRV_DIMENSION& value); -std::string ToString(const D3D12_FILTER& value); -std::string ToString(const D3D12_FILTER_TYPE& value); -std::string ToString(const D3D12_FILTER_REDUCTION_TYPE& value); -std::string ToString(const D3D12_TEXTURE_ADDRESS_MODE& value); -std::string ToString(const D3D12_SAMPLER_FLAGS& value); +std::string ToString(D3D12_SRV_DIMENSION value); +std::string ToString(D3D12_FILTER value); +std::string ToString(D3D12_FILTER_TYPE value); +std::string ToString(D3D12_FILTER_REDUCTION_TYPE value); +std::string ToString(D3D12_TEXTURE_ADDRESS_MODE value); +std::string ToString(D3D12_SAMPLER_FLAGS value); std::string ToString_D3D12_SAMPLER_FLAGS(uint32_t flags); -std::string ToString(const D3D12_BUFFER_UAV_FLAGS& value); +std::string ToString(D3D12_BUFFER_UAV_FLAGS value); std::string ToString_D3D12_BUFFER_UAV_FLAGS(uint32_t flags); -std::string ToString(const D3D12_UAV_DIMENSION& value); -std::string ToString(const D3D12_RTV_DIMENSION& value); -std::string ToString(const D3D12_DSV_FLAGS& value); +std::string ToString(D3D12_UAV_DIMENSION value); +std::string ToString(D3D12_RTV_DIMENSION value); +std::string ToString(D3D12_DSV_FLAGS value); std::string ToString_D3D12_DSV_FLAGS(uint32_t flags); -std::string ToString(const D3D12_DSV_DIMENSION& value); -std::string ToString(const D3D12_CLEAR_FLAGS& value); +std::string ToString(D3D12_DSV_DIMENSION value); +std::string ToString(D3D12_CLEAR_FLAGS value); std::string ToString_D3D12_CLEAR_FLAGS(uint32_t flags); -std::string ToString(const D3D12_FENCE_FLAGS& value); +std::string ToString(D3D12_FENCE_FLAGS value); std::string ToString_D3D12_FENCE_FLAGS(uint32_t flags); -std::string ToString(const D3D12_DESCRIPTOR_HEAP_TYPE& value); -std::string ToString(const D3D12_DESCRIPTOR_HEAP_FLAGS& value); +std::string ToString(D3D12_DESCRIPTOR_HEAP_TYPE value); +std::string ToString(D3D12_DESCRIPTOR_HEAP_FLAGS value); std::string ToString_D3D12_DESCRIPTOR_HEAP_FLAGS(uint32_t flags); -std::string ToString(const D3D12_DESCRIPTOR_RANGE_TYPE& value); -std::string ToString(const D3D12_SHADER_VISIBILITY& value); -std::string ToString(const D3D12_ROOT_PARAMETER_TYPE& value); -std::string ToString(const D3D12_ROOT_SIGNATURE_FLAGS& value); +std::string ToString(D3D12_DESCRIPTOR_RANGE_TYPE value); +std::string ToString(D3D12_SHADER_VISIBILITY value); +std::string ToString(D3D12_ROOT_PARAMETER_TYPE value); +std::string ToString(D3D12_ROOT_SIGNATURE_FLAGS value); std::string ToString_D3D12_ROOT_SIGNATURE_FLAGS(uint32_t flags); -std::string ToString(const D3D12_STATIC_BORDER_COLOR& value); -std::string ToString(const D3D12_DESCRIPTOR_RANGE_FLAGS& value); +std::string ToString(D3D12_STATIC_BORDER_COLOR value); +std::string ToString(D3D12_DESCRIPTOR_RANGE_FLAGS value); std::string ToString_D3D12_DESCRIPTOR_RANGE_FLAGS(uint32_t flags); -std::string ToString(const D3D12_ROOT_DESCRIPTOR_FLAGS& value); +std::string ToString(D3D12_ROOT_DESCRIPTOR_FLAGS value); std::string ToString_D3D12_ROOT_DESCRIPTOR_FLAGS(uint32_t flags); -std::string ToString(const D3D12_QUERY_HEAP_TYPE& value); -std::string ToString(const D3D12_QUERY_TYPE& value); -std::string ToString(const D3D12_PREDICATION_OP& value); -std::string ToString(const D3D12_INDIRECT_ARGUMENT_TYPE& value); -std::string ToString(const D3D12_WRITEBUFFERIMMEDIATE_MODE& value); -std::string ToString(const D3D12_MULTIPLE_FENCE_WAIT_FLAGS& value); +std::string ToString(D3D12_QUERY_HEAP_TYPE value); +std::string ToString(D3D12_QUERY_TYPE value); +std::string ToString(D3D12_PREDICATION_OP value); +std::string ToString(D3D12_INDIRECT_ARGUMENT_TYPE value); +std::string ToString(D3D12_WRITEBUFFERIMMEDIATE_MODE value); +std::string ToString(D3D12_MULTIPLE_FENCE_WAIT_FLAGS value); std::string ToString_D3D12_MULTIPLE_FENCE_WAIT_FLAGS(uint32_t flags); -std::string ToString(const D3D12_RESIDENCY_PRIORITY& value); -std::string ToString(const D3D12_RESIDENCY_FLAGS& value); +std::string ToString(D3D12_RESIDENCY_PRIORITY value); +std::string ToString(D3D12_RESIDENCY_FLAGS value); std::string ToString_D3D12_RESIDENCY_FLAGS(uint32_t flags); -std::string ToString(const D3D12_COMMAND_LIST_FLAGS& value); +std::string ToString(D3D12_COMMAND_LIST_FLAGS value); std::string ToString_D3D12_COMMAND_LIST_FLAGS(uint32_t flags); -std::string ToString(const D3D12_COMMAND_POOL_FLAGS& value); +std::string ToString(D3D12_COMMAND_POOL_FLAGS value); std::string ToString_D3D12_COMMAND_POOL_FLAGS(uint32_t flags); -std::string ToString(const D3D12_COMMAND_RECORDER_FLAGS& value); +std::string ToString(D3D12_COMMAND_RECORDER_FLAGS value); std::string ToString_D3D12_COMMAND_RECORDER_FLAGS(uint32_t flags); -std::string ToString(const D3D12_PROTECTED_SESSION_STATUS& value); +std::string ToString(D3D12_PROTECTED_SESSION_STATUS value); std::string ToString_D3D12_PROTECTED_SESSION_STATUS(uint32_t flags); -std::string ToString(const D3D12_PROTECTED_RESOURCE_SESSION_SUPPORT_FLAGS& value); +std::string ToString(D3D12_PROTECTED_RESOURCE_SESSION_SUPPORT_FLAGS value); std::string ToString_D3D12_PROTECTED_RESOURCE_SESSION_SUPPORT_FLAGS(uint32_t flags); -std::string ToString(const D3D12_PROTECTED_RESOURCE_SESSION_FLAGS& value); +std::string ToString(D3D12_PROTECTED_RESOURCE_SESSION_FLAGS value); std::string ToString_D3D12_PROTECTED_RESOURCE_SESSION_FLAGS(uint32_t flags); -std::string ToString(const D3D12_LIFETIME_STATE& value); -std::string ToString(const D3D12_META_COMMAND_PARAMETER_TYPE& value); -std::string ToString(const D3D12_META_COMMAND_PARAMETER_FLAGS& value); +std::string ToString(D3D12_LIFETIME_STATE value); +std::string ToString(D3D12_META_COMMAND_PARAMETER_TYPE value); +std::string ToString(D3D12_META_COMMAND_PARAMETER_FLAGS value); std::string ToString_D3D12_META_COMMAND_PARAMETER_FLAGS(uint32_t flags); -std::string ToString(const D3D12_META_COMMAND_PARAMETER_STAGE& value); -std::string ToString(const D3D12_GRAPHICS_STATES& value); +std::string ToString(D3D12_META_COMMAND_PARAMETER_STAGE value); +std::string ToString(D3D12_GRAPHICS_STATES value); std::string ToString_D3D12_GRAPHICS_STATES(uint32_t flags); -std::string ToString(const D3D12_STATE_SUBOBJECT_TYPE& value); -std::string ToString(const D3D12_STATE_OBJECT_FLAGS& value); +std::string ToString(D3D12_STATE_SUBOBJECT_TYPE value); +std::string ToString(D3D12_STATE_OBJECT_FLAGS value); std::string ToString_D3D12_STATE_OBJECT_FLAGS(uint32_t flags); -std::string ToString(const D3D12_EXPORT_FLAGS& value); +std::string ToString(D3D12_EXPORT_FLAGS value); std::string ToString_D3D12_EXPORT_FLAGS(uint32_t flags); -std::string ToString(const D3D12_HIT_GROUP_TYPE& value); -std::string ToString(const D3D12_RAYTRACING_PIPELINE_FLAGS& value); +std::string ToString(D3D12_HIT_GROUP_TYPE value); +std::string ToString(D3D12_RAYTRACING_PIPELINE_FLAGS value); std::string ToString_D3D12_RAYTRACING_PIPELINE_FLAGS(uint32_t flags); -std::string ToString(const D3D12_STATE_OBJECT_TYPE& value); -std::string ToString(const D3D12_RAYTRACING_GEOMETRY_FLAGS& value); +std::string ToString(D3D12_STATE_OBJECT_TYPE value); +std::string ToString(D3D12_RAYTRACING_GEOMETRY_FLAGS value); std::string ToString_D3D12_RAYTRACING_GEOMETRY_FLAGS(uint32_t flags); -std::string ToString(const D3D12_RAYTRACING_GEOMETRY_TYPE& value); -std::string ToString(const D3D12_RAYTRACING_INSTANCE_FLAGS& value); +std::string ToString(D3D12_RAYTRACING_GEOMETRY_TYPE value); +std::string ToString(D3D12_RAYTRACING_INSTANCE_FLAGS value); std::string ToString_D3D12_RAYTRACING_INSTANCE_FLAGS(uint32_t flags); -std::string ToString(const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAGS& value); +std::string ToString(D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAGS value); std::string ToString_D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAGS(uint32_t flags); -std::string ToString(const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE& value); -std::string ToString(const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_TYPE& value); -std::string ToString(const D3D12_ELEMENTS_LAYOUT& value); -std::string ToString(const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_TYPE& value); -std::string ToString(const D3D12_SERIALIZED_DATA_TYPE& value); -std::string ToString(const D3D12_DRIVER_MATCHING_IDENTIFIER_STATUS& value); +std::string ToString(D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE value); +std::string ToString(D3D12_RAYTRACING_ACCELERATION_STRUCTURE_TYPE value); +std::string ToString(D3D12_ELEMENTS_LAYOUT value); +std::string ToString(D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_TYPE value); +std::string ToString(D3D12_SERIALIZED_DATA_TYPE value); +std::string ToString(D3D12_DRIVER_MATCHING_IDENTIFIER_STATUS value); std::string ToString_D3D12_DRIVER_MATCHING_IDENTIFIER_STATUS(uint32_t flags); -std::string ToString(const D3D12_RAY_FLAGS& value); +std::string ToString(D3D12_RAY_FLAGS value); std::string ToString_D3D12_RAY_FLAGS(uint32_t flags); -std::string ToString(const D3D12_HIT_KIND& value); -std::string ToString(const D3D12_AUTO_BREADCRUMB_OP& value); -std::string ToString(const D3D12_DRED_VERSION& value); -std::string ToString(const D3D12_DRED_FLAGS& value); +std::string ToString(D3D12_HIT_KIND value); +std::string ToString(D3D12_AUTO_BREADCRUMB_OP value); +std::string ToString(D3D12_DRED_VERSION value); +std::string ToString(D3D12_DRED_FLAGS value); std::string ToString_D3D12_DRED_FLAGS(uint32_t flags); -std::string ToString(const D3D12_DRED_ENABLEMENT& value); -std::string ToString(const D3D12_DRED_ALLOCATION_TYPE& value); -std::string ToString(const D3D12_DRED_PAGE_FAULT_FLAGS& value); +std::string ToString(D3D12_DRED_ENABLEMENT value); +std::string ToString(D3D12_DRED_ALLOCATION_TYPE value); +std::string ToString(D3D12_DRED_PAGE_FAULT_FLAGS value); std::string ToString_D3D12_DRED_PAGE_FAULT_FLAGS(uint32_t flags); -std::string ToString(const D3D12_DRED_DEVICE_STATE& value); -std::string ToString(const D3D12_BACKGROUND_PROCESSING_MODE& value); -std::string ToString(const D3D12_MEASUREMENTS_ACTION& value); -std::string ToString(const D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE& value); -std::string ToString(const D3D12_RENDER_PASS_ENDING_ACCESS_TYPE& value); -std::string ToString(const D3D12_RENDER_PASS_FLAGS& value); +std::string ToString(D3D12_DRED_DEVICE_STATE value); +std::string ToString(D3D12_BACKGROUND_PROCESSING_MODE value); +std::string ToString(D3D12_MEASUREMENTS_ACTION value); +std::string ToString(D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE value); +std::string ToString(D3D12_RENDER_PASS_ENDING_ACCESS_TYPE value); +std::string ToString(D3D12_RENDER_PASS_FLAGS value); std::string ToString_D3D12_RENDER_PASS_FLAGS(uint32_t flags); -std::string ToString(const D3D12_SHADER_CACHE_MODE& value); -std::string ToString(const D3D12_SHADER_CACHE_FLAGS& value); +std::string ToString(D3D12_SHADER_CACHE_MODE value); +std::string ToString(D3D12_SHADER_CACHE_FLAGS value); std::string ToString_D3D12_SHADER_CACHE_FLAGS(uint32_t flags); -std::string ToString(const D3D12_BARRIER_LAYOUT& value); -std::string ToString(const D3D12_BARRIER_SYNC& value); -std::string ToString(const D3D12_BARRIER_ACCESS& value); -std::string ToString(const D3D12_BARRIER_TYPE& value); -std::string ToString(const D3D12_TEXTURE_BARRIER_FLAGS& value); +std::string ToString(D3D12_BARRIER_LAYOUT value); +std::string ToString(D3D12_BARRIER_SYNC value); +std::string ToString(D3D12_BARRIER_ACCESS value); +std::string ToString(D3D12_BARRIER_TYPE value); +std::string ToString(D3D12_TEXTURE_BARRIER_FLAGS value); std::string ToString_D3D12_TEXTURE_BARRIER_FLAGS(uint32_t flags); -std::string ToString(const D3D12_SHADER_CACHE_KIND_FLAGS& value); +std::string ToString(D3D12_SHADER_CACHE_KIND_FLAGS value); std::string ToString_D3D12_SHADER_CACHE_KIND_FLAGS(uint32_t flags); -std::string ToString(const D3D12_SHADER_CACHE_CONTROL_FLAGS& value); +std::string ToString(D3D12_SHADER_CACHE_CONTROL_FLAGS value); std::string ToString_D3D12_SHADER_CACHE_CONTROL_FLAGS(uint32_t flags); -std::string ToString(const D3D12_DEVICE_FACTORY_FLAGS& value); +std::string ToString(D3D12_DEVICE_FACTORY_FLAGS value); std::string ToString_D3D12_DEVICE_FACTORY_FLAGS(uint32_t flags); -std::string ToString(const D3D12_DEVICE_FLAGS& value); +std::string ToString(D3D12_DEVICE_FLAGS value); std::string ToString_D3D12_DEVICE_FLAGS(uint32_t flags); -std::string ToString(const D3D12_AXIS_SHADING_RATE& value); -std::string ToString(const D3D12_SHADING_RATE& value); -std::string ToString(const D3D12_SHADING_RATE_COMBINER& value); -std::string ToString(const D3D_DRIVER_TYPE& value); -std::string ToString(const D3D_FEATURE_LEVEL& value); -std::string ToString(const D3D_PRIMITIVE_TOPOLOGY& value); -std::string ToString(const D3D_PRIMITIVE& value); -std::string ToString(const D3D_SRV_DIMENSION& value); -std::string ToString(const D3D_INCLUDE_TYPE& value); -std::string ToString(const D3D_SHADER_VARIABLE_CLASS& value); -std::string ToString(const D3D_SHADER_VARIABLE_FLAGS& value); +std::string ToString(D3D12_AXIS_SHADING_RATE value); +std::string ToString(D3D12_SHADING_RATE value); +std::string ToString(D3D12_SHADING_RATE_COMBINER value); +std::string ToString(D3D_DRIVER_TYPE value); +std::string ToString(D3D_FEATURE_LEVEL value); +std::string ToString(D3D_PRIMITIVE_TOPOLOGY value); +std::string ToString(D3D_PRIMITIVE value); +std::string ToString(D3D_SRV_DIMENSION value); +std::string ToString(D3D_INCLUDE_TYPE value); +std::string ToString(D3D_SHADER_VARIABLE_CLASS value); +std::string ToString(D3D_SHADER_VARIABLE_FLAGS value); std::string ToString_D3D_SHADER_VARIABLE_FLAGS(uint32_t flags); -std::string ToString(const D3D_SHADER_VARIABLE_TYPE& value); -std::string ToString(const D3D_SHADER_INPUT_FLAGS& value); +std::string ToString(D3D_SHADER_VARIABLE_TYPE value); +std::string ToString(D3D_SHADER_INPUT_FLAGS value); std::string ToString_D3D_SHADER_INPUT_FLAGS(uint32_t flags); -std::string ToString(const D3D_SHADER_INPUT_TYPE& value); -std::string ToString(const D3D_SHADER_CBUFFER_FLAGS& value); +std::string ToString(D3D_SHADER_INPUT_TYPE value); +std::string ToString(D3D_SHADER_CBUFFER_FLAGS value); std::string ToString_D3D_SHADER_CBUFFER_FLAGS(uint32_t flags); -std::string ToString(const D3D_CBUFFER_TYPE& value); -std::string ToString(const D3D_NAME& value); -std::string ToString(const D3D_RESOURCE_RETURN_TYPE& value); -std::string ToString(const D3D_REGISTER_COMPONENT_TYPE& value); -std::string ToString(const D3D_TESSELLATOR_DOMAIN& value); -std::string ToString(const D3D_TESSELLATOR_PARTITIONING& value); -std::string ToString(const D3D_TESSELLATOR_OUTPUT_PRIMITIVE& value); -std::string ToString(const D3D_MIN_PRECISION& value); -std::string ToString(const D3D_INTERPOLATION_MODE& value); -std::string ToString(const D3D_PARAMETER_FLAGS& value); +std::string ToString(D3D_CBUFFER_TYPE value); +std::string ToString(D3D_NAME value); +std::string ToString(D3D_RESOURCE_RETURN_TYPE value); +std::string ToString(D3D_REGISTER_COMPONENT_TYPE value); +std::string ToString(D3D_TESSELLATOR_DOMAIN value); +std::string ToString(D3D_TESSELLATOR_PARTITIONING value); +std::string ToString(D3D_TESSELLATOR_OUTPUT_PRIMITIVE value); +std::string ToString(D3D_MIN_PRECISION value); +std::string ToString(D3D_INTERPOLATION_MODE value); +std::string ToString(D3D_PARAMETER_FLAGS value); std::string ToString_D3D_PARAMETER_FLAGS(uint32_t flags); -std::string ToString(const D3D_FORMAT_LAYOUT& value); -std::string ToString(const D3D_FORMAT_TYPE_LEVEL& value); -std::string ToString(const D3D_FORMAT_COMPONENT_NAME& value); -std::string ToString(const D3D_FORMAT_COMPONENT_INTERPRETATION& value); -std::string ToString(const D3D12_GPU_BASED_VALIDATION_FLAGS& value); +std::string ToString(D3D_FORMAT_LAYOUT value); +std::string ToString(D3D_FORMAT_TYPE_LEVEL value); +std::string ToString(D3D_FORMAT_COMPONENT_NAME value); +std::string ToString(D3D_FORMAT_COMPONENT_INTERPRETATION value); +std::string ToString(D3D12_GPU_BASED_VALIDATION_FLAGS value); std::string ToString_D3D12_GPU_BASED_VALIDATION_FLAGS(uint32_t flags); -std::string ToString(const D3D12_RLDO_FLAGS& value); +std::string ToString(D3D12_RLDO_FLAGS value); std::string ToString_D3D12_RLDO_FLAGS(uint32_t flags); -std::string ToString(const D3D12_DEBUG_DEVICE_PARAMETER_TYPE& value); -std::string ToString(const D3D12_DEBUG_FEATURE& value); -std::string ToString(const D3D12_GPU_BASED_VALIDATION_SHADER_PATCH_MODE& value); -std::string ToString(const D3D12_GPU_BASED_VALIDATION_PIPELINE_STATE_CREATE_FLAGS& value); +std::string ToString(D3D12_DEBUG_DEVICE_PARAMETER_TYPE value); +std::string ToString(D3D12_DEBUG_FEATURE value); +std::string ToString(D3D12_GPU_BASED_VALIDATION_SHADER_PATCH_MODE value); +std::string ToString(D3D12_GPU_BASED_VALIDATION_PIPELINE_STATE_CREATE_FLAGS value); std::string ToString_D3D12_GPU_BASED_VALIDATION_PIPELINE_STATE_CREATE_FLAGS(uint32_t flags); -std::string ToString(const D3D12_DEBUG_COMMAND_LIST_PARAMETER_TYPE& value); -std::string ToString(const D3D12_MESSAGE_CATEGORY& value); -std::string ToString(const D3D12_MESSAGE_SEVERITY& value); -std::string ToString(const D3D12_MESSAGE_ID& value); -std::string ToString(const D3D12_MESSAGE_CALLBACK_FLAGS& value); +std::string ToString(D3D12_DEBUG_COMMAND_LIST_PARAMETER_TYPE value); +std::string ToString(D3D12_MESSAGE_CATEGORY value); +std::string ToString(D3D12_MESSAGE_SEVERITY value); +std::string ToString(D3D12_MESSAGE_ID value); +std::string ToString(D3D12_MESSAGE_CALLBACK_FLAGS value); std::string ToString_D3D12_MESSAGE_CALLBACK_FLAGS(uint32_t flags); std::string ToString(const IID& riid); -template <> std::string ToString(const GUID& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize); +inline std::string ToString(const GUID& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize){ return ToString(obj); } GFXRECON_END_NAMESPACE(util) GFXRECON_END_NAMESPACE(gfxrecon) diff --git a/framework/generated/generated_dx12_json_consumer.cpp b/framework/generated/generated_dx12_json_consumer.cpp new file mode 100644 index 0000000000..001c2c0abf --- /dev/null +++ b/framework/generated/generated_dx12_json_consumer.cpp @@ -0,0 +1,9425 @@ +/* +** Copyright (c) 2021-2023 LunarG, Inc. +** +** Permission is hereby granted, free of charge, to any person obtaining a copy +** of this software and associated documentation files (the "Software"), to +** deal in the Software without restriction, including without limitation the +** rights to use, copy, modify, merge, publish, distribute, sublicense, and/or +** sell copies of the Software, and to permit persons to whom the Software is +** furnished to do so, subject to the following conditions: +** +** The above copyright notice and this permission notice shall be included in +** all copies or substantial portions of the Software. +** +** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +** IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +** FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +** AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +** LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +** FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS +** IN THE SOFTWARE. +*/ + +/* +** This file is generated from dx12_json_consumer_body_generator.py. +** +*/ + +#include "generated_dx12_json_consumer.h" +#include "generated_dx12_enum_to_json.h" +#include "generated_dx12_struct_decoders_to_json.h" +#include "decode/dx12_enum_util.h" +#include "decode/decode_json_util.h" +#include "decode/json_writer.h" +#include "util/to_string.h" +#include "format/format_json.h" + +GFXRECON_BEGIN_NAMESPACE(gfxrecon) +GFXRECON_BEGIN_NAMESPACE(decode) + +/* +** This part is generated from dxgi.h in Windows SDK: 10.0.20348.0 +** +*/ +void Dx12JsonConsumer::Process_CreateDXGIFactory( + const ApiCallInfo& call_info, + HRESULT return_value, + Decoded_GUID riid, + HandlePointerDecoder* ppFactory) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& function = writer_->WriteApiCallStart(call_info, "CreateDXGIFactory"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(function[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = function[format::kNameArgs]; + { + FieldToJson(args["riid"], riid, options); + FieldToJson(args["ppFactory"], ppFactory, options); + } + writer_->WriteBlockEnd(); + +} + +void Dx12JsonConsumer::Process_CreateDXGIFactory1( + const ApiCallInfo& call_info, + HRESULT return_value, + Decoded_GUID riid, + HandlePointerDecoder* ppFactory) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& function = writer_->WriteApiCallStart(call_info, "CreateDXGIFactory1"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(function[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = function[format::kNameArgs]; + { + FieldToJson(args["riid"], riid, options); + FieldToJson(args["ppFactory"], ppFactory, options); + } + writer_->WriteBlockEnd(); + +} + +void Dx12JsonConsumer::Process_IDXGIObject_SetPrivateData( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value, + Decoded_GUID Name, + UINT DataSize, + PointerDecoder* pData) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "IDXGIObject", object_id, "SetPrivateData"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["Name"], Name, options); + FieldToJson(args["DataSize"], DataSize, options); + FieldToJson(args["pData"], pData, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_IDXGIObject_SetPrivateDataInterface( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value, + Decoded_GUID Name, + format::HandleId pUnknown) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "IDXGIObject", object_id, "SetPrivateDataInterface"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["Name"], Name, options); + FieldToJson(args["pUnknown"], pUnknown, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_IDXGIObject_GetPrivateData( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value, + Decoded_GUID Name, + PointerDecoder* pDataSize, + PointerDecoder* pData) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "IDXGIObject", object_id, "GetPrivateData"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["Name"], Name, options); + FieldToJson(args["pDataSize"], pDataSize, options); + FieldToJson(args["pData"], pData, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_IDXGIObject_GetParent( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value, + Decoded_GUID riid, + HandlePointerDecoder* ppParent) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "IDXGIObject", object_id, "GetParent"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["riid"], riid, options); + FieldToJson(args["ppParent"], ppParent, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_IDXGIDeviceSubObject_GetDevice( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value, + Decoded_GUID riid, + HandlePointerDecoder* ppDevice) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "IDXGIDeviceSubObject", object_id, "GetDevice"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["riid"], riid, options); + FieldToJson(args["ppDevice"], ppDevice, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_IDXGIResource_GetSharedHandle( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value, + PointerDecoder* pSharedHandle) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "IDXGIResource", object_id, "GetSharedHandle"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["pSharedHandle"], pSharedHandle, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_IDXGIResource_GetUsage( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value, + PointerDecoder* pUsage) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "IDXGIResource", object_id, "GetUsage"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["pUsage"], pUsage, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_IDXGIResource_SetEvictionPriority( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value, + UINT EvictionPriority) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "IDXGIResource", object_id, "SetEvictionPriority"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["EvictionPriority"], EvictionPriority, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_IDXGIResource_GetEvictionPriority( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value, + PointerDecoder* pEvictionPriority) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "IDXGIResource", object_id, "GetEvictionPriority"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["pEvictionPriority"], pEvictionPriority, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_IDXGIKeyedMutex_AcquireSync( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value, + UINT64 Key, + DWORD dwMilliseconds) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "IDXGIKeyedMutex", object_id, "AcquireSync"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["Key"], Key, options); + FieldToJson(args["dwMilliseconds"], dwMilliseconds, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_IDXGIKeyedMutex_ReleaseSync( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value, + UINT64 Key) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "IDXGIKeyedMutex", object_id, "ReleaseSync"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["Key"], Key, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_IDXGISurface_GetDesc( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value, + StructPointerDecoder* pDesc) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "IDXGISurface", object_id, "GetDesc"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["pDesc"], pDesc, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_IDXGISurface_Map( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value, + StructPointerDecoder* pLockedRect, + UINT MapFlags) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "IDXGISurface", object_id, "Map"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["pLockedRect"], pLockedRect, options); + FieldToJson(args["MapFlags"], MapFlags, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_IDXGISurface_Unmap( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "IDXGISurface", object_id, "Unmap"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_IDXGISurface1_GetDC( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value, + BOOL Discard, + PointerDecoder* phdc) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "IDXGISurface1", object_id, "GetDC"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + Bool32ToJson(args["Discard"], Discard, options); + FieldToJson(args["phdc"], phdc, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_IDXGISurface1_ReleaseDC( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value, + StructPointerDecoder* pDirtyRect) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "IDXGISurface1", object_id, "ReleaseDC"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["pDirtyRect"], pDirtyRect, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_IDXGIAdapter_EnumOutputs( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value, + UINT Output, + HandlePointerDecoder* ppOutput) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "IDXGIAdapter", object_id, "EnumOutputs"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["Output"], Output, options); + FieldToJson(args["ppOutput"], ppOutput, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_IDXGIAdapter_GetDesc( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value, + StructPointerDecoder* pDesc) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "IDXGIAdapter", object_id, "GetDesc"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["pDesc"], pDesc, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_IDXGIAdapter_CheckInterfaceSupport( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value, + Decoded_GUID InterfaceName, + StructPointerDecoder* pUMDVersion) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "IDXGIAdapter", object_id, "CheckInterfaceSupport"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["InterfaceName"], InterfaceName, options); + FieldToJson(args["pUMDVersion"], pUMDVersion, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_IDXGIOutput_GetDesc( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value, + StructPointerDecoder* pDesc) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "IDXGIOutput", object_id, "GetDesc"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["pDesc"], pDesc, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_IDXGIOutput_GetDisplayModeList( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value, + DXGI_FORMAT EnumFormat, + UINT Flags, + PointerDecoder* pNumModes, + StructPointerDecoder* pDesc) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "IDXGIOutput", object_id, "GetDisplayModeList"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["EnumFormat"], EnumFormat, options); + FieldToJson(args["Flags"], Flags, options); + FieldToJson(args["pNumModes"], pNumModes, options); + FieldToJson(args["pDesc"], pDesc, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_IDXGIOutput_FindClosestMatchingMode( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value, + StructPointerDecoder* pModeToMatch, + StructPointerDecoder* pClosestMatch, + format::HandleId pConcernedDevice) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "IDXGIOutput", object_id, "FindClosestMatchingMode"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["pModeToMatch"], pModeToMatch, options); + FieldToJson(args["pClosestMatch"], pClosestMatch, options); + FieldToJson(args["pConcernedDevice"], pConcernedDevice, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_IDXGIOutput_WaitForVBlank( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "IDXGIOutput", object_id, "WaitForVBlank"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_IDXGIOutput_TakeOwnership( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value, + format::HandleId pDevice, + BOOL Exclusive) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "IDXGIOutput", object_id, "TakeOwnership"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["pDevice"], pDevice, options); + Bool32ToJson(args["Exclusive"], Exclusive, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_IDXGIOutput_ReleaseOwnership( + const ApiCallInfo& call_info, + format::HandleId object_id) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "IDXGIOutput", object_id, "ReleaseOwnership"); + const JsonOptions& options = writer_->GetOptions(); + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_IDXGIOutput_GetGammaControlCapabilities( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value, + StructPointerDecoder* pGammaCaps) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "IDXGIOutput", object_id, "GetGammaControlCapabilities"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["pGammaCaps"], pGammaCaps, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_IDXGIOutput_SetGammaControl( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value, + StructPointerDecoder* pArray) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "IDXGIOutput", object_id, "SetGammaControl"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["pArray"], pArray, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_IDXGIOutput_GetGammaControl( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value, + StructPointerDecoder* pArray) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "IDXGIOutput", object_id, "GetGammaControl"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["pArray"], pArray, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_IDXGIOutput_SetDisplaySurface( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value, + format::HandleId pScanoutSurface) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "IDXGIOutput", object_id, "SetDisplaySurface"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["pScanoutSurface"], pScanoutSurface, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_IDXGIOutput_GetDisplaySurfaceData( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value, + format::HandleId pDestination) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "IDXGIOutput", object_id, "GetDisplaySurfaceData"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["pDestination"], pDestination, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_IDXGIOutput_GetFrameStatistics( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value, + StructPointerDecoder* pStats) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "IDXGIOutput", object_id, "GetFrameStatistics"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["pStats"], pStats, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_IDXGISwapChain_Present( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value, + UINT SyncInterval, + UINT Flags) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "IDXGISwapChain", object_id, "Present"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["SyncInterval"], SyncInterval, options); + FieldToJson(args["Flags"], Flags, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_IDXGISwapChain_GetBuffer( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value, + UINT Buffer, + Decoded_GUID riid, + HandlePointerDecoder* ppSurface) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "IDXGISwapChain", object_id, "GetBuffer"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["Buffer"], Buffer, options); + FieldToJson(args["riid"], riid, options); + FieldToJson(args["ppSurface"], ppSurface, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_IDXGISwapChain_SetFullscreenState( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value, + BOOL Fullscreen, + format::HandleId pTarget) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "IDXGISwapChain", object_id, "SetFullscreenState"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + Bool32ToJson(args["Fullscreen"], Fullscreen, options); + FieldToJson(args["pTarget"], pTarget, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_IDXGISwapChain_GetFullscreenState( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value, + PointerDecoder* pFullscreen, + HandlePointerDecoder* ppTarget) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "IDXGISwapChain", object_id, "GetFullscreenState"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + Bool32ToJson(args["pFullscreen"], pFullscreen, options); + FieldToJson(args["ppTarget"], ppTarget, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_IDXGISwapChain_GetDesc( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value, + StructPointerDecoder* pDesc) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "IDXGISwapChain", object_id, "GetDesc"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["pDesc"], pDesc, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_IDXGISwapChain_ResizeBuffers( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value, + UINT BufferCount, + UINT Width, + UINT Height, + DXGI_FORMAT NewFormat, + UINT SwapChainFlags) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "IDXGISwapChain", object_id, "ResizeBuffers"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["BufferCount"], BufferCount, options); + FieldToJson(args["Width"], Width, options); + FieldToJson(args["Height"], Height, options); + FieldToJson(args["NewFormat"], NewFormat, options); + FieldToJson(args["SwapChainFlags"], SwapChainFlags, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_IDXGISwapChain_ResizeTarget( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value, + StructPointerDecoder* pNewTargetParameters) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "IDXGISwapChain", object_id, "ResizeTarget"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["pNewTargetParameters"], pNewTargetParameters, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_IDXGISwapChain_GetContainingOutput( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value, + HandlePointerDecoder* ppOutput) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "IDXGISwapChain", object_id, "GetContainingOutput"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["ppOutput"], ppOutput, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_IDXGISwapChain_GetFrameStatistics( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value, + StructPointerDecoder* pStats) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "IDXGISwapChain", object_id, "GetFrameStatistics"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["pStats"], pStats, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_IDXGISwapChain_GetLastPresentCount( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value, + PointerDecoder* pLastPresentCount) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "IDXGISwapChain", object_id, "GetLastPresentCount"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["pLastPresentCount"], pLastPresentCount, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_IDXGIFactory_EnumAdapters( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value, + UINT Adapter, + HandlePointerDecoder* ppAdapter) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "IDXGIFactory", object_id, "EnumAdapters"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["Adapter"], Adapter, options); + FieldToJson(args["ppAdapter"], ppAdapter, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_IDXGIFactory_MakeWindowAssociation( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value, + uint64_t WindowHandle, + UINT Flags) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "IDXGIFactory", object_id, "MakeWindowAssociation"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["WindowHandle"], WindowHandle, options); + FieldToJson(args["Flags"], Flags, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_IDXGIFactory_GetWindowAssociation( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value, + PointerDecoder* pWindowHandle) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "IDXGIFactory", object_id, "GetWindowAssociation"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["pWindowHandle"], pWindowHandle, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_IDXGIFactory_CreateSwapChain( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value, + format::HandleId pDevice, + StructPointerDecoder* pDesc, + HandlePointerDecoder* ppSwapChain) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "IDXGIFactory", object_id, "CreateSwapChain"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["pDevice"], pDevice, options); + FieldToJson(args["pDesc"], pDesc, options); + FieldToJson(args["ppSwapChain"], ppSwapChain, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_IDXGIFactory_CreateSoftwareAdapter( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value, + uint64_t Module, + HandlePointerDecoder* ppAdapter) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "IDXGIFactory", object_id, "CreateSoftwareAdapter"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["Module"], Module, options); + FieldToJson(args["ppAdapter"], ppAdapter, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_IDXGIDevice_GetAdapter( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value, + HandlePointerDecoder* pAdapter) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "IDXGIDevice", object_id, "GetAdapter"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["pAdapter"], pAdapter, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_IDXGIDevice_CreateSurface( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value, + StructPointerDecoder* pDesc, + UINT NumSurfaces, + DXGI_USAGE Usage, + StructPointerDecoder* pSharedResource, + HandlePointerDecoder* ppSurface) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "IDXGIDevice", object_id, "CreateSurface"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["pDesc"], pDesc, options); + FieldToJson(args["NumSurfaces"], NumSurfaces, options); + FieldToJson(args["Usage"], Usage, options); + FieldToJson(args["pSharedResource"], pSharedResource, options); + FieldToJson(args["ppSurface"], ppSurface, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_IDXGIDevice_QueryResourceResidency( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value, + HandlePointerDecoder* ppResources, + PointerDecoder* pResidencyStatus, + UINT NumResources) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "IDXGIDevice", object_id, "QueryResourceResidency"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["ppResources"], ppResources, options); + FieldToJson(args["pResidencyStatus"], pResidencyStatus, options); + FieldToJson(args["NumResources"], NumResources, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_IDXGIDevice_SetGPUThreadPriority( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value, + INT Priority) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "IDXGIDevice", object_id, "SetGPUThreadPriority"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["Priority"], Priority, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_IDXGIDevice_GetGPUThreadPriority( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value, + PointerDecoder* pPriority) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "IDXGIDevice", object_id, "GetGPUThreadPriority"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["pPriority"], pPriority, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_IDXGIFactory1_EnumAdapters1( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value, + UINT Adapter, + HandlePointerDecoder* ppAdapter) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "IDXGIFactory1", object_id, "EnumAdapters1"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["Adapter"], Adapter, options); + FieldToJson(args["ppAdapter"], ppAdapter, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_IDXGIFactory1_IsCurrent( + const ApiCallInfo& call_info, + format::HandleId object_id, + BOOL return_value) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "IDXGIFactory1", object_id, "IsCurrent"); + const JsonOptions& options = writer_->GetOptions(); + Bool32ToJson(method[format::kNameReturn], return_value, options); + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_IDXGIAdapter1_GetDesc1( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value, + StructPointerDecoder* pDesc) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "IDXGIAdapter1", object_id, "GetDesc1"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["pDesc"], pDesc, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_IDXGIDevice1_SetMaximumFrameLatency( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value, + UINT MaxLatency) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "IDXGIDevice1", object_id, "SetMaximumFrameLatency"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["MaxLatency"], MaxLatency, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_IDXGIDevice1_GetMaximumFrameLatency( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value, + PointerDecoder* pMaxLatency) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "IDXGIDevice1", object_id, "GetMaximumFrameLatency"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["pMaxLatency"], pMaxLatency, options); + } + writer_->WriteBlockEnd(); +} + +/* +** This part is generated from dxgi1_2.h in Windows SDK: 10.0.20348.0 +** +*/ +void Dx12JsonConsumer::Process_IDXGIDisplayControl_IsStereoEnabled( + const ApiCallInfo& call_info, + format::HandleId object_id, + BOOL return_value) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "IDXGIDisplayControl", object_id, "IsStereoEnabled"); + const JsonOptions& options = writer_->GetOptions(); + Bool32ToJson(method[format::kNameReturn], return_value, options); + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_IDXGIDisplayControl_SetStereoEnabled( + const ApiCallInfo& call_info, + format::HandleId object_id, + BOOL enabled) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "IDXGIDisplayControl", object_id, "SetStereoEnabled"); + const JsonOptions& options = writer_->GetOptions(); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + Bool32ToJson(args["enabled"], enabled, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_IDXGIOutputDuplication_GetDesc( + const ApiCallInfo& call_info, + format::HandleId object_id, + StructPointerDecoder* pDesc) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "IDXGIOutputDuplication", object_id, "GetDesc"); + const JsonOptions& options = writer_->GetOptions(); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["pDesc"], pDesc, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_IDXGIOutputDuplication_AcquireNextFrame( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value, + UINT TimeoutInMilliseconds, + StructPointerDecoder* pFrameInfo, + HandlePointerDecoder* ppDesktopResource) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "IDXGIOutputDuplication", object_id, "AcquireNextFrame"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["TimeoutInMilliseconds"], TimeoutInMilliseconds, options); + FieldToJson(args["pFrameInfo"], pFrameInfo, options); + FieldToJson(args["ppDesktopResource"], ppDesktopResource, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_IDXGIOutputDuplication_GetFrameDirtyRects( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value, + UINT DirtyRectsBufferSize, + StructPointerDecoder* pDirtyRectsBuffer, + PointerDecoder* pDirtyRectsBufferSizeRequired) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "IDXGIOutputDuplication", object_id, "GetFrameDirtyRects"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["DirtyRectsBufferSize"], DirtyRectsBufferSize, options); + FieldToJson(args["pDirtyRectsBuffer"], pDirtyRectsBuffer, options); + FieldToJson(args["pDirtyRectsBufferSizeRequired"], pDirtyRectsBufferSizeRequired, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_IDXGIOutputDuplication_GetFrameMoveRects( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value, + UINT MoveRectsBufferSize, + StructPointerDecoder* pMoveRectBuffer, + PointerDecoder* pMoveRectsBufferSizeRequired) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "IDXGIOutputDuplication", object_id, "GetFrameMoveRects"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["MoveRectsBufferSize"], MoveRectsBufferSize, options); + FieldToJson(args["pMoveRectBuffer"], pMoveRectBuffer, options); + FieldToJson(args["pMoveRectsBufferSizeRequired"], pMoveRectsBufferSizeRequired, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_IDXGIOutputDuplication_GetFramePointerShape( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value, + UINT PointerShapeBufferSize, + PointerDecoder* pPointerShapeBuffer, + PointerDecoder* pPointerShapeBufferSizeRequired, + StructPointerDecoder* pPointerShapeInfo) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "IDXGIOutputDuplication", object_id, "GetFramePointerShape"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["PointerShapeBufferSize"], PointerShapeBufferSize, options); + FieldToJson(args["pPointerShapeBuffer"], pPointerShapeBuffer, options); + FieldToJson(args["pPointerShapeBufferSizeRequired"], pPointerShapeBufferSizeRequired, options); + FieldToJson(args["pPointerShapeInfo"], pPointerShapeInfo, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_IDXGIOutputDuplication_MapDesktopSurface( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value, + StructPointerDecoder* pLockedRect) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "IDXGIOutputDuplication", object_id, "MapDesktopSurface"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["pLockedRect"], pLockedRect, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_IDXGIOutputDuplication_UnMapDesktopSurface( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "IDXGIOutputDuplication", object_id, "UnMapDesktopSurface"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_IDXGIOutputDuplication_ReleaseFrame( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "IDXGIOutputDuplication", object_id, "ReleaseFrame"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_IDXGISurface2_GetResource( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value, + Decoded_GUID riid, + HandlePointerDecoder* ppParentResource, + PointerDecoder* pSubresourceIndex) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "IDXGISurface2", object_id, "GetResource"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["riid"], riid, options); + FieldToJson(args["ppParentResource"], ppParentResource, options); + FieldToJson(args["pSubresourceIndex"], pSubresourceIndex, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_IDXGIResource1_CreateSubresourceSurface( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value, + UINT index, + HandlePointerDecoder* ppSurface) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "IDXGIResource1", object_id, "CreateSubresourceSurface"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["index"], index, options); + FieldToJson(args["ppSurface"], ppSurface, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_IDXGIResource1_CreateSharedHandle( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value, + StructPointerDecoder* pAttributes, + DWORD dwAccess, + WStringDecoder* lpName, + PointerDecoder* pHandle) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "IDXGIResource1", object_id, "CreateSharedHandle"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["pAttributes"], pAttributes, options); + FieldToJson(args["dwAccess"], dwAccess, options); + FieldToJson(args["lpName"], lpName, options); + FieldToJson(args["pHandle"], pHandle, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_IDXGIDevice2_OfferResources( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value, + UINT NumResources, + HandlePointerDecoder* ppResources, + DXGI_OFFER_RESOURCE_PRIORITY Priority) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "IDXGIDevice2", object_id, "OfferResources"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["NumResources"], NumResources, options); + FieldToJson(args["ppResources"], ppResources, options); + FieldToJson(args["Priority"], Priority, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_IDXGIDevice2_ReclaimResources( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value, + UINT NumResources, + HandlePointerDecoder* ppResources, + PointerDecoder* pDiscarded) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "IDXGIDevice2", object_id, "ReclaimResources"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["NumResources"], NumResources, options); + FieldToJson(args["ppResources"], ppResources, options); + Bool32ToJson(args["pDiscarded"], pDiscarded, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_IDXGIDevice2_EnqueueSetEvent( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value, + uint64_t hEvent) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "IDXGIDevice2", object_id, "EnqueueSetEvent"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["hEvent"], hEvent, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_IDXGISwapChain1_GetDesc1( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value, + StructPointerDecoder* pDesc) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "IDXGISwapChain1", object_id, "GetDesc1"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["pDesc"], pDesc, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_IDXGISwapChain1_GetFullscreenDesc( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value, + StructPointerDecoder* pDesc) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "IDXGISwapChain1", object_id, "GetFullscreenDesc"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["pDesc"], pDesc, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_IDXGISwapChain1_GetHwnd( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value, + PointerDecoder* pHwnd) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "IDXGISwapChain1", object_id, "GetHwnd"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["pHwnd"], pHwnd, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_IDXGISwapChain1_GetCoreWindow( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value, + Decoded_GUID refiid, + HandlePointerDecoder* ppUnk) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "IDXGISwapChain1", object_id, "GetCoreWindow"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["refiid"], refiid, options); + FieldToJson(args["ppUnk"], ppUnk, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_IDXGISwapChain1_Present1( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value, + UINT SyncInterval, + UINT PresentFlags, + StructPointerDecoder* pPresentParameters) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "IDXGISwapChain1", object_id, "Present1"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["SyncInterval"], SyncInterval, options); + FieldToJson(args["PresentFlags"], PresentFlags, options); + FieldToJson(args["pPresentParameters"], pPresentParameters, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_IDXGISwapChain1_IsTemporaryMonoSupported( + const ApiCallInfo& call_info, + format::HandleId object_id, + BOOL return_value) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "IDXGISwapChain1", object_id, "IsTemporaryMonoSupported"); + const JsonOptions& options = writer_->GetOptions(); + Bool32ToJson(method[format::kNameReturn], return_value, options); + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_IDXGISwapChain1_GetRestrictToOutput( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value, + HandlePointerDecoder* ppRestrictToOutput) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "IDXGISwapChain1", object_id, "GetRestrictToOutput"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["ppRestrictToOutput"], ppRestrictToOutput, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_IDXGISwapChain1_SetBackgroundColor( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value, + StructPointerDecoder* pColor) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "IDXGISwapChain1", object_id, "SetBackgroundColor"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["pColor"], pColor, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_IDXGISwapChain1_GetBackgroundColor( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value, + StructPointerDecoder* pColor) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "IDXGISwapChain1", object_id, "GetBackgroundColor"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["pColor"], pColor, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_IDXGISwapChain1_SetRotation( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value, + DXGI_MODE_ROTATION Rotation) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "IDXGISwapChain1", object_id, "SetRotation"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["Rotation"], Rotation, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_IDXGISwapChain1_GetRotation( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value, + PointerDecoder* pRotation) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "IDXGISwapChain1", object_id, "GetRotation"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["pRotation"], pRotation, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_IDXGIFactory2_IsWindowedStereoEnabled( + const ApiCallInfo& call_info, + format::HandleId object_id, + BOOL return_value) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "IDXGIFactory2", object_id, "IsWindowedStereoEnabled"); + const JsonOptions& options = writer_->GetOptions(); + Bool32ToJson(method[format::kNameReturn], return_value, options); + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_IDXGIFactory2_CreateSwapChainForHwnd( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value, + format::HandleId pDevice, + uint64_t hWnd, + StructPointerDecoder* pDesc, + StructPointerDecoder* pFullscreenDesc, + format::HandleId pRestrictToOutput, + HandlePointerDecoder* ppSwapChain) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "IDXGIFactory2", object_id, "CreateSwapChainForHwnd"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["pDevice"], pDevice, options); + FieldToJson(args["hWnd"], hWnd, options); + FieldToJson(args["pDesc"], pDesc, options); + FieldToJson(args["pFullscreenDesc"], pFullscreenDesc, options); + FieldToJson(args["pRestrictToOutput"], pRestrictToOutput, options); + FieldToJson(args["ppSwapChain"], ppSwapChain, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_IDXGIFactory2_CreateSwapChainForCoreWindow( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value, + format::HandleId pDevice, + format::HandleId pWindow, + StructPointerDecoder* pDesc, + format::HandleId pRestrictToOutput, + HandlePointerDecoder* ppSwapChain) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "IDXGIFactory2", object_id, "CreateSwapChainForCoreWindow"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["pDevice"], pDevice, options); + FieldToJson(args["pWindow"], pWindow, options); + FieldToJson(args["pDesc"], pDesc, options); + FieldToJson(args["pRestrictToOutput"], pRestrictToOutput, options); + FieldToJson(args["ppSwapChain"], ppSwapChain, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_IDXGIFactory2_GetSharedResourceAdapterLuid( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value, + uint64_t hResource, + StructPointerDecoder* pLuid) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "IDXGIFactory2", object_id, "GetSharedResourceAdapterLuid"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["hResource"], hResource, options); + FieldToJson(args["pLuid"], pLuid, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_IDXGIFactory2_RegisterStereoStatusWindow( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value, + uint64_t WindowHandle, + UINT wMsg, + PointerDecoder* pdwCookie) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "IDXGIFactory2", object_id, "RegisterStereoStatusWindow"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["WindowHandle"], WindowHandle, options); + FieldToJson(args["wMsg"], wMsg, options); + FieldToJson(args["pdwCookie"], pdwCookie, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_IDXGIFactory2_RegisterStereoStatusEvent( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value, + uint64_t hEvent, + PointerDecoder* pdwCookie) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "IDXGIFactory2", object_id, "RegisterStereoStatusEvent"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["hEvent"], hEvent, options); + FieldToJson(args["pdwCookie"], pdwCookie, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_IDXGIFactory2_UnregisterStereoStatus( + const ApiCallInfo& call_info, + format::HandleId object_id, + DWORD dwCookie) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "IDXGIFactory2", object_id, "UnregisterStereoStatus"); + const JsonOptions& options = writer_->GetOptions(); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["dwCookie"], dwCookie, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_IDXGIFactory2_RegisterOcclusionStatusWindow( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value, + uint64_t WindowHandle, + UINT wMsg, + PointerDecoder* pdwCookie) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "IDXGIFactory2", object_id, "RegisterOcclusionStatusWindow"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["WindowHandle"], WindowHandle, options); + FieldToJson(args["wMsg"], wMsg, options); + FieldToJson(args["pdwCookie"], pdwCookie, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_IDXGIFactory2_RegisterOcclusionStatusEvent( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value, + uint64_t hEvent, + PointerDecoder* pdwCookie) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "IDXGIFactory2", object_id, "RegisterOcclusionStatusEvent"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["hEvent"], hEvent, options); + FieldToJson(args["pdwCookie"], pdwCookie, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_IDXGIFactory2_UnregisterOcclusionStatus( + const ApiCallInfo& call_info, + format::HandleId object_id, + DWORD dwCookie) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "IDXGIFactory2", object_id, "UnregisterOcclusionStatus"); + const JsonOptions& options = writer_->GetOptions(); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["dwCookie"], dwCookie, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_IDXGIFactory2_CreateSwapChainForComposition( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value, + format::HandleId pDevice, + StructPointerDecoder* pDesc, + format::HandleId pRestrictToOutput, + HandlePointerDecoder* ppSwapChain) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "IDXGIFactory2", object_id, "CreateSwapChainForComposition"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["pDevice"], pDevice, options); + FieldToJson(args["pDesc"], pDesc, options); + FieldToJson(args["pRestrictToOutput"], pRestrictToOutput, options); + FieldToJson(args["ppSwapChain"], ppSwapChain, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_IDXGIAdapter2_GetDesc2( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value, + StructPointerDecoder* pDesc) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "IDXGIAdapter2", object_id, "GetDesc2"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["pDesc"], pDesc, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_IDXGIOutput1_GetDisplayModeList1( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value, + DXGI_FORMAT EnumFormat, + UINT Flags, + PointerDecoder* pNumModes, + StructPointerDecoder* pDesc) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "IDXGIOutput1", object_id, "GetDisplayModeList1"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["EnumFormat"], EnumFormat, options); + FieldToJson(args["Flags"], Flags, options); + FieldToJson(args["pNumModes"], pNumModes, options); + FieldToJson(args["pDesc"], pDesc, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_IDXGIOutput1_FindClosestMatchingMode1( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value, + StructPointerDecoder* pModeToMatch, + StructPointerDecoder* pClosestMatch, + format::HandleId pConcernedDevice) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "IDXGIOutput1", object_id, "FindClosestMatchingMode1"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["pModeToMatch"], pModeToMatch, options); + FieldToJson(args["pClosestMatch"], pClosestMatch, options); + FieldToJson(args["pConcernedDevice"], pConcernedDevice, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_IDXGIOutput1_GetDisplaySurfaceData1( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value, + format::HandleId pDestination) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "IDXGIOutput1", object_id, "GetDisplaySurfaceData1"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["pDestination"], pDestination, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_IDXGIOutput1_DuplicateOutput( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value, + format::HandleId pDevice, + HandlePointerDecoder* ppOutputDuplication) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "IDXGIOutput1", object_id, "DuplicateOutput"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["pDevice"], pDevice, options); + FieldToJson(args["ppOutputDuplication"], ppOutputDuplication, options); + } + writer_->WriteBlockEnd(); +} + +/* +** This part is generated from dxgi1_3.h in Windows SDK: 10.0.20348.0 +** +*/ +void Dx12JsonConsumer::Process_CreateDXGIFactory2( + const ApiCallInfo& call_info, + HRESULT return_value, + UINT Flags, + Decoded_GUID riid, + HandlePointerDecoder* ppFactory) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& function = writer_->WriteApiCallStart(call_info, "CreateDXGIFactory2"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(function[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = function[format::kNameArgs]; + { + FieldToJson(args["Flags"], Flags, options); + FieldToJson(args["riid"], riid, options); + FieldToJson(args["ppFactory"], ppFactory, options); + } + writer_->WriteBlockEnd(); + +} + +void Dx12JsonConsumer::Process_DXGIGetDebugInterface1( + const ApiCallInfo& call_info, + HRESULT return_value, + UINT Flags, + Decoded_GUID riid, + HandlePointerDecoder* pDebug) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& function = writer_->WriteApiCallStart(call_info, "DXGIGetDebugInterface1"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(function[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = function[format::kNameArgs]; + { + FieldToJson(args["Flags"], Flags, options); + FieldToJson(args["riid"], riid, options); + FieldToJson(args["pDebug"], pDebug, options); + } + writer_->WriteBlockEnd(); + +} + +void Dx12JsonConsumer::Process_IDXGIDevice3_Trim( + const ApiCallInfo& call_info, + format::HandleId object_id) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "IDXGIDevice3", object_id, "Trim"); + const JsonOptions& options = writer_->GetOptions(); + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_IDXGISwapChain2_SetSourceSize( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value, + UINT Width, + UINT Height) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "IDXGISwapChain2", object_id, "SetSourceSize"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["Width"], Width, options); + FieldToJson(args["Height"], Height, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_IDXGISwapChain2_GetSourceSize( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value, + PointerDecoder* pWidth, + PointerDecoder* pHeight) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "IDXGISwapChain2", object_id, "GetSourceSize"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["pWidth"], pWidth, options); + FieldToJson(args["pHeight"], pHeight, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_IDXGISwapChain2_SetMaximumFrameLatency( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value, + UINT MaxLatency) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "IDXGISwapChain2", object_id, "SetMaximumFrameLatency"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["MaxLatency"], MaxLatency, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_IDXGISwapChain2_GetMaximumFrameLatency( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value, + PointerDecoder* pMaxLatency) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "IDXGISwapChain2", object_id, "GetMaximumFrameLatency"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["pMaxLatency"], pMaxLatency, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_IDXGISwapChain2_GetFrameLatencyWaitableObject( + const ApiCallInfo& call_info, + format::HandleId object_id, + uint64_t return_value) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "IDXGISwapChain2", object_id, "GetFrameLatencyWaitableObject"); + const JsonOptions& options = writer_->GetOptions(); + FieldToJson(method[format::kNameReturn], return_value, options); + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_IDXGISwapChain2_SetMatrixTransform( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value, + StructPointerDecoder* pMatrix) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "IDXGISwapChain2", object_id, "SetMatrixTransform"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["pMatrix"], pMatrix, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_IDXGISwapChain2_GetMatrixTransform( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value, + StructPointerDecoder* pMatrix) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "IDXGISwapChain2", object_id, "GetMatrixTransform"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["pMatrix"], pMatrix, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_IDXGIOutput2_SupportsOverlays( + const ApiCallInfo& call_info, + format::HandleId object_id, + BOOL return_value) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "IDXGIOutput2", object_id, "SupportsOverlays"); + const JsonOptions& options = writer_->GetOptions(); + Bool32ToJson(method[format::kNameReturn], return_value, options); + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_IDXGIFactory3_GetCreationFlags( + const ApiCallInfo& call_info, + format::HandleId object_id, + UINT return_value) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "IDXGIFactory3", object_id, "GetCreationFlags"); + const JsonOptions& options = writer_->GetOptions(); + FieldToJson(method[format::kNameReturn], return_value, options); + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_IDXGIDecodeSwapChain_PresentBuffer( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value, + UINT BufferToPresent, + UINT SyncInterval, + UINT Flags) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "IDXGIDecodeSwapChain", object_id, "PresentBuffer"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["BufferToPresent"], BufferToPresent, options); + FieldToJson(args["SyncInterval"], SyncInterval, options); + FieldToJson(args["Flags"], Flags, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_IDXGIDecodeSwapChain_SetSourceRect( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value, + StructPointerDecoder* pRect) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "IDXGIDecodeSwapChain", object_id, "SetSourceRect"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["pRect"], pRect, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_IDXGIDecodeSwapChain_SetTargetRect( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value, + StructPointerDecoder* pRect) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "IDXGIDecodeSwapChain", object_id, "SetTargetRect"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["pRect"], pRect, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_IDXGIDecodeSwapChain_SetDestSize( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value, + UINT Width, + UINT Height) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "IDXGIDecodeSwapChain", object_id, "SetDestSize"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["Width"], Width, options); + FieldToJson(args["Height"], Height, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_IDXGIDecodeSwapChain_GetSourceRect( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value, + StructPointerDecoder* pRect) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "IDXGIDecodeSwapChain", object_id, "GetSourceRect"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["pRect"], pRect, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_IDXGIDecodeSwapChain_GetTargetRect( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value, + StructPointerDecoder* pRect) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "IDXGIDecodeSwapChain", object_id, "GetTargetRect"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["pRect"], pRect, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_IDXGIDecodeSwapChain_GetDestSize( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value, + PointerDecoder* pWidth, + PointerDecoder* pHeight) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "IDXGIDecodeSwapChain", object_id, "GetDestSize"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["pWidth"], pWidth, options); + FieldToJson(args["pHeight"], pHeight, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_IDXGIDecodeSwapChain_SetColorSpace( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value, + DXGI_MULTIPLANE_OVERLAY_YCbCr_FLAGS ColorSpace) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "IDXGIDecodeSwapChain", object_id, "SetColorSpace"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson_DXGI_MULTIPLANE_OVERLAY_YCbCr_FLAGS(args["ColorSpace"], ColorSpace, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_IDXGIDecodeSwapChain_GetColorSpace( + const ApiCallInfo& call_info, + format::HandleId object_id, + DXGI_MULTIPLANE_OVERLAY_YCbCr_FLAGS return_value) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "IDXGIDecodeSwapChain", object_id, "GetColorSpace"); + const JsonOptions& options = writer_->GetOptions(); + FieldToJson_DXGI_MULTIPLANE_OVERLAY_YCbCr_FLAGS(method[format::kNameReturn], return_value, options); + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_IDXGIFactoryMedia_CreateSwapChainForCompositionSurfaceHandle( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value, + format::HandleId pDevice, + uint64_t hSurface, + StructPointerDecoder* pDesc, + format::HandleId pRestrictToOutput, + HandlePointerDecoder* ppSwapChain) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "IDXGIFactoryMedia", object_id, "CreateSwapChainForCompositionSurfaceHandle"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["pDevice"], pDevice, options); + FieldToJson(args["hSurface"], hSurface, options); + FieldToJson(args["pDesc"], pDesc, options); + FieldToJson(args["pRestrictToOutput"], pRestrictToOutput, options); + FieldToJson(args["ppSwapChain"], ppSwapChain, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_IDXGIFactoryMedia_CreateDecodeSwapChainForCompositionSurfaceHandle( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value, + format::HandleId pDevice, + uint64_t hSurface, + StructPointerDecoder* pDesc, + format::HandleId pYuvDecodeBuffers, + format::HandleId pRestrictToOutput, + HandlePointerDecoder* ppSwapChain) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "IDXGIFactoryMedia", object_id, "CreateDecodeSwapChainForCompositionSurfaceHandle"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["pDevice"], pDevice, options); + FieldToJson(args["hSurface"], hSurface, options); + FieldToJson(args["pDesc"], pDesc, options); + FieldToJson(args["pYuvDecodeBuffers"], pYuvDecodeBuffers, options); + FieldToJson(args["pRestrictToOutput"], pRestrictToOutput, options); + FieldToJson(args["ppSwapChain"], ppSwapChain, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_IDXGISwapChainMedia_GetFrameStatisticsMedia( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value, + StructPointerDecoder* pStats) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "IDXGISwapChainMedia", object_id, "GetFrameStatisticsMedia"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["pStats"], pStats, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_IDXGISwapChainMedia_SetPresentDuration( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value, + UINT Duration) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "IDXGISwapChainMedia", object_id, "SetPresentDuration"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["Duration"], Duration, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_IDXGISwapChainMedia_CheckPresentDurationSupport( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value, + UINT DesiredPresentDuration, + PointerDecoder* pClosestSmallerPresentDuration, + PointerDecoder* pClosestLargerPresentDuration) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "IDXGISwapChainMedia", object_id, "CheckPresentDurationSupport"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["DesiredPresentDuration"], DesiredPresentDuration, options); + FieldToJson(args["pClosestSmallerPresentDuration"], pClosestSmallerPresentDuration, options); + FieldToJson(args["pClosestLargerPresentDuration"], pClosestLargerPresentDuration, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_IDXGIOutput3_CheckOverlaySupport( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value, + DXGI_FORMAT EnumFormat, + format::HandleId pConcernedDevice, + PointerDecoder* pFlags) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "IDXGIOutput3", object_id, "CheckOverlaySupport"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["EnumFormat"], EnumFormat, options); + FieldToJson(args["pConcernedDevice"], pConcernedDevice, options); + FieldToJson(args["pFlags"], pFlags, options); + } + writer_->WriteBlockEnd(); +} + +/* +** This part is generated from dxgi1_4.h in Windows SDK: 10.0.20348.0 +** +*/ +void Dx12JsonConsumer::Process_IDXGISwapChain3_GetCurrentBackBufferIndex( + const ApiCallInfo& call_info, + format::HandleId object_id, + UINT return_value) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "IDXGISwapChain3", object_id, "GetCurrentBackBufferIndex"); + const JsonOptions& options = writer_->GetOptions(); + FieldToJson(method[format::kNameReturn], return_value, options); + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_IDXGISwapChain3_CheckColorSpaceSupport( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value, + DXGI_COLOR_SPACE_TYPE ColorSpace, + PointerDecoder* pColorSpaceSupport) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "IDXGISwapChain3", object_id, "CheckColorSpaceSupport"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["ColorSpace"], ColorSpace, options); + FieldToJson(args["pColorSpaceSupport"], pColorSpaceSupport, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_IDXGISwapChain3_SetColorSpace1( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value, + DXGI_COLOR_SPACE_TYPE ColorSpace) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "IDXGISwapChain3", object_id, "SetColorSpace1"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["ColorSpace"], ColorSpace, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_IDXGISwapChain3_ResizeBuffers1( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value, + UINT BufferCount, + UINT Width, + UINT Height, + DXGI_FORMAT Format, + UINT SwapChainFlags, + PointerDecoder* pCreationNodeMask, + HandlePointerDecoder* ppPresentQueue) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "IDXGISwapChain3", object_id, "ResizeBuffers1"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["BufferCount"], BufferCount, options); + FieldToJson(args["Width"], Width, options); + FieldToJson(args["Height"], Height, options); + FieldToJson(args["Format"], Format, options); + FieldToJson(args["SwapChainFlags"], SwapChainFlags, options); + FieldToJsonAsFixedWidthBinary(args["pCreationNodeMask"], pCreationNodeMask, options); + FieldToJson(args["ppPresentQueue"], ppPresentQueue, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_IDXGIOutput4_CheckOverlayColorSpaceSupport( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value, + DXGI_FORMAT Format, + DXGI_COLOR_SPACE_TYPE ColorSpace, + format::HandleId pConcernedDevice, + PointerDecoder* pFlags) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "IDXGIOutput4", object_id, "CheckOverlayColorSpaceSupport"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["Format"], Format, options); + FieldToJson(args["ColorSpace"], ColorSpace, options); + FieldToJson(args["pConcernedDevice"], pConcernedDevice, options); + FieldToJson(args["pFlags"], pFlags, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_IDXGIFactory4_EnumAdapterByLuid( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value, + Decoded_LUID AdapterLuid, + Decoded_GUID riid, + HandlePointerDecoder* ppvAdapter) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "IDXGIFactory4", object_id, "EnumAdapterByLuid"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["AdapterLuid"], AdapterLuid, options); + FieldToJson(args["riid"], riid, options); + FieldToJson(args["ppvAdapter"], ppvAdapter, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_IDXGIFactory4_EnumWarpAdapter( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value, + Decoded_GUID riid, + HandlePointerDecoder* ppvAdapter) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "IDXGIFactory4", object_id, "EnumWarpAdapter"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["riid"], riid, options); + FieldToJson(args["ppvAdapter"], ppvAdapter, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_IDXGIAdapter3_RegisterHardwareContentProtectionTeardownStatusEvent( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value, + uint64_t hEvent, + PointerDecoder* pdwCookie) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "IDXGIAdapter3", object_id, "RegisterHardwareContentProtectionTeardownStatusEvent"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["hEvent"], hEvent, options); + FieldToJson(args["pdwCookie"], pdwCookie, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_IDXGIAdapter3_UnregisterHardwareContentProtectionTeardownStatus( + const ApiCallInfo& call_info, + format::HandleId object_id, + DWORD dwCookie) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "IDXGIAdapter3", object_id, "UnregisterHardwareContentProtectionTeardownStatus"); + const JsonOptions& options = writer_->GetOptions(); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["dwCookie"], dwCookie, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_IDXGIAdapter3_QueryVideoMemoryInfo( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value, + UINT NodeIndex, + DXGI_MEMORY_SEGMENT_GROUP MemorySegmentGroup, + StructPointerDecoder* pVideoMemoryInfo) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "IDXGIAdapter3", object_id, "QueryVideoMemoryInfo"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["NodeIndex"], NodeIndex, options); + FieldToJson(args["MemorySegmentGroup"], MemorySegmentGroup, options); + FieldToJson(args["pVideoMemoryInfo"], pVideoMemoryInfo, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_IDXGIAdapter3_SetVideoMemoryReservation( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value, + UINT NodeIndex, + DXGI_MEMORY_SEGMENT_GROUP MemorySegmentGroup, + UINT64 Reservation) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "IDXGIAdapter3", object_id, "SetVideoMemoryReservation"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["NodeIndex"], NodeIndex, options); + FieldToJson(args["MemorySegmentGroup"], MemorySegmentGroup, options); + FieldToJson(args["Reservation"], Reservation, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_IDXGIAdapter3_RegisterVideoMemoryBudgetChangeNotificationEvent( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value, + uint64_t hEvent, + PointerDecoder* pdwCookie) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "IDXGIAdapter3", object_id, "RegisterVideoMemoryBudgetChangeNotificationEvent"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["hEvent"], hEvent, options); + FieldToJson(args["pdwCookie"], pdwCookie, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_IDXGIAdapter3_UnregisterVideoMemoryBudgetChangeNotification( + const ApiCallInfo& call_info, + format::HandleId object_id, + DWORD dwCookie) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "IDXGIAdapter3", object_id, "UnregisterVideoMemoryBudgetChangeNotification"); + const JsonOptions& options = writer_->GetOptions(); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["dwCookie"], dwCookie, options); + } + writer_->WriteBlockEnd(); +} + +/* +** This part is generated from dxgi1_5.h in Windows SDK: 10.0.20348.0 +** +*/ +void Dx12JsonConsumer::Process_IDXGIOutput5_DuplicateOutput1( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value, + format::HandleId pDevice, + UINT Flags, + UINT SupportedFormatsCount, + PointerDecoder* pSupportedFormats, + HandlePointerDecoder* ppOutputDuplication) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "IDXGIOutput5", object_id, "DuplicateOutput1"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["pDevice"], pDevice, options); + FieldToJson(args["Flags"], Flags, options); + FieldToJson(args["SupportedFormatsCount"], SupportedFormatsCount, options); + FieldToJson(args["pSupportedFormats"], pSupportedFormats, options); + FieldToJson(args["ppOutputDuplication"], ppOutputDuplication, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_IDXGISwapChain4_SetHDRMetaData( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value, + DXGI_HDR_METADATA_TYPE Type, + UINT Size, + PointerDecoder* pMetaData) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "IDXGISwapChain4", object_id, "SetHDRMetaData"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["Type"], Type, options); + FieldToJson(args["Size"], Size, options); + FieldToJson(args["pMetaData"], pMetaData, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_IDXGIDevice4_OfferResources1( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value, + UINT NumResources, + HandlePointerDecoder* ppResources, + DXGI_OFFER_RESOURCE_PRIORITY Priority, + UINT Flags) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "IDXGIDevice4", object_id, "OfferResources1"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["NumResources"], NumResources, options); + FieldToJson(args["ppResources"], ppResources, options); + FieldToJson(args["Priority"], Priority, options); + FieldToJson(args["Flags"], Flags, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_IDXGIDevice4_ReclaimResources1( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value, + UINT NumResources, + HandlePointerDecoder* ppResources, + PointerDecoder* pResults) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "IDXGIDevice4", object_id, "ReclaimResources1"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["NumResources"], NumResources, options); + FieldToJson(args["ppResources"], ppResources, options); + FieldToJson(args["pResults"], pResults, options); + } + writer_->WriteBlockEnd(); +} + +/* +** This part is generated from dxgi1_6.h in Windows SDK: 10.0.20348.0 +** +*/ +void Dx12JsonConsumer::Process_DXGIDeclareAdapterRemovalSupport( + const ApiCallInfo& call_info, + HRESULT return_value) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& function = writer_->WriteApiCallStart(call_info, "DXGIDeclareAdapterRemovalSupport"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(function[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = function[format::kNameArgs]; + { + } + writer_->WriteBlockEnd(); + +} + +void Dx12JsonConsumer::Process_IDXGIAdapter4_GetDesc3( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value, + StructPointerDecoder* pDesc) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "IDXGIAdapter4", object_id, "GetDesc3"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["pDesc"], pDesc, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_IDXGIOutput6_GetDesc1( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value, + StructPointerDecoder* pDesc) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "IDXGIOutput6", object_id, "GetDesc1"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["pDesc"], pDesc, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_IDXGIOutput6_CheckHardwareCompositionSupport( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value, + PointerDecoder* pFlags) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "IDXGIOutput6", object_id, "CheckHardwareCompositionSupport"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["pFlags"], pFlags, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_IDXGIFactory6_EnumAdapterByGpuPreference( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value, + UINT Adapter, + DXGI_GPU_PREFERENCE GpuPreference, + Decoded_GUID riid, + HandlePointerDecoder* ppvAdapter) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "IDXGIFactory6", object_id, "EnumAdapterByGpuPreference"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["Adapter"], Adapter, options); + FieldToJson(args["GpuPreference"], GpuPreference, options); + FieldToJson(args["riid"], riid, options); + FieldToJson(args["ppvAdapter"], ppvAdapter, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_IDXGIFactory7_RegisterAdaptersChangedEvent( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value, + uint64_t hEvent, + PointerDecoder* pdwCookie) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "IDXGIFactory7", object_id, "RegisterAdaptersChangedEvent"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["hEvent"], hEvent, options); + FieldToJson(args["pdwCookie"], pdwCookie, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_IDXGIFactory7_UnregisterAdaptersChangedEvent( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value, + DWORD dwCookie) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "IDXGIFactory7", object_id, "UnregisterAdaptersChangedEvent"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["dwCookie"], dwCookie, options); + } + writer_->WriteBlockEnd(); +} + +/* +** This part is generated from d3d12.h in Windows SDK: 10.0.20348.0 +** +*/ +void Dx12JsonConsumer::Process_D3D12SerializeRootSignature( + const ApiCallInfo& call_info, + HRESULT return_value, + StructPointerDecoder* pRootSignature, + D3D_ROOT_SIGNATURE_VERSION Version, + HandlePointerDecoder* ppBlob, + HandlePointerDecoder* ppErrorBlob) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& function = writer_->WriteApiCallStart(call_info, "D3D12SerializeRootSignature"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(function[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = function[format::kNameArgs]; + { + FieldToJson(args["pRootSignature"], pRootSignature, options); + FieldToJson(args["Version"], Version, options); + FieldToJson(args["ppBlob"], ppBlob, options); + FieldToJson(args["ppErrorBlob"], ppErrorBlob, options); + } + writer_->WriteBlockEnd(); + +} + +void Dx12JsonConsumer::Process_D3D12CreateRootSignatureDeserializer( + const ApiCallInfo& call_info, + HRESULT return_value, + PointerDecoder* pSrcData, + SIZE_T SrcDataSizeInBytes, + Decoded_GUID pRootSignatureDeserializerInterface, + HandlePointerDecoder* ppRootSignatureDeserializer) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& function = writer_->WriteApiCallStart(call_info, "D3D12CreateRootSignatureDeserializer"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(function[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = function[format::kNameArgs]; + { + FieldToJson(args["pSrcData"], pSrcData, options); + FieldToJson(args["SrcDataSizeInBytes"], SrcDataSizeInBytes, options); + FieldToJson(args["pRootSignatureDeserializerInterface"], pRootSignatureDeserializerInterface, options); + FieldToJson(args["ppRootSignatureDeserializer"], ppRootSignatureDeserializer, options); + } + writer_->WriteBlockEnd(); + +} + +void Dx12JsonConsumer::Process_D3D12SerializeVersionedRootSignature( + const ApiCallInfo& call_info, + HRESULT return_value, + StructPointerDecoder* pRootSignature, + HandlePointerDecoder* ppBlob, + HandlePointerDecoder* ppErrorBlob) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& function = writer_->WriteApiCallStart(call_info, "D3D12SerializeVersionedRootSignature"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(function[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = function[format::kNameArgs]; + { + FieldToJson(args["pRootSignature"], pRootSignature, options); + FieldToJson(args["ppBlob"], ppBlob, options); + FieldToJson(args["ppErrorBlob"], ppErrorBlob, options); + } + writer_->WriteBlockEnd(); + +} + +void Dx12JsonConsumer::Process_D3D12CreateVersionedRootSignatureDeserializer( + const ApiCallInfo& call_info, + HRESULT return_value, + PointerDecoder* pSrcData, + SIZE_T SrcDataSizeInBytes, + Decoded_GUID pRootSignatureDeserializerInterface, + HandlePointerDecoder* ppRootSignatureDeserializer) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& function = writer_->WriteApiCallStart(call_info, "D3D12CreateVersionedRootSignatureDeserializer"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(function[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = function[format::kNameArgs]; + { + FieldToJson(args["pSrcData"], pSrcData, options); + FieldToJson(args["SrcDataSizeInBytes"], SrcDataSizeInBytes, options); + FieldToJson(args["pRootSignatureDeserializerInterface"], pRootSignatureDeserializerInterface, options); + FieldToJson(args["ppRootSignatureDeserializer"], ppRootSignatureDeserializer, options); + } + writer_->WriteBlockEnd(); + +} + +void Dx12JsonConsumer::Process_D3D12CreateDevice( + const ApiCallInfo& call_info, + HRESULT return_value, + format::HandleId pAdapter, + D3D_FEATURE_LEVEL MinimumFeatureLevel, + Decoded_GUID riid, + HandlePointerDecoder* ppDevice) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& function = writer_->WriteApiCallStart(call_info, "D3D12CreateDevice"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(function[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = function[format::kNameArgs]; + { + FieldToJson(args["pAdapter"], pAdapter, options); + FieldToJson(args["MinimumFeatureLevel"], MinimumFeatureLevel, options); + FieldToJson(args["riid"], riid, options); + FieldToJson(args["ppDevice"], ppDevice, options); + } + writer_->WriteBlockEnd(); + +} + +void Dx12JsonConsumer::Process_D3D12GetDebugInterface( + const ApiCallInfo& call_info, + HRESULT return_value, + Decoded_GUID riid, + HandlePointerDecoder* ppvDebug) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& function = writer_->WriteApiCallStart(call_info, "D3D12GetDebugInterface"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(function[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = function[format::kNameArgs]; + { + FieldToJson(args["riid"], riid, options); + FieldToJson(args["ppvDebug"], ppvDebug, options); + } + writer_->WriteBlockEnd(); + +} + +void Dx12JsonConsumer::Process_D3D12EnableExperimentalFeatures( + const ApiCallInfo& call_info, + HRESULT return_value, + UINT NumFeatures, + StructPointerDecoder* pIIDs, + PointerDecoder* pConfigurationStructs, + PointerDecoder* pConfigurationStructSizes) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& function = writer_->WriteApiCallStart(call_info, "D3D12EnableExperimentalFeatures"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(function[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = function[format::kNameArgs]; + { + FieldToJson(args["NumFeatures"], NumFeatures, options); + FieldToJson(args["pIIDs"], pIIDs, options); + FieldToJson(args["pConfigurationStructs"], pConfigurationStructs, options); + FieldToJson(args["pConfigurationStructSizes"], pConfigurationStructSizes, options); + } + writer_->WriteBlockEnd(); + +} + +void Dx12JsonConsumer::Process_D3D12GetInterface( + const ApiCallInfo& call_info, + HRESULT return_value, + Decoded_GUID rclsid, + Decoded_GUID riid, + HandlePointerDecoder* ppvDebug) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& function = writer_->WriteApiCallStart(call_info, "D3D12GetInterface"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(function[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = function[format::kNameArgs]; + { + FieldToJson(args["rclsid"], rclsid, options); + FieldToJson(args["riid"], riid, options); + FieldToJson(args["ppvDebug"], ppvDebug, options); + } + writer_->WriteBlockEnd(); + +} + +void Dx12JsonConsumer::Process_ID3D12Object_GetPrivateData( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value, + Decoded_GUID guid, + PointerDecoder* pDataSize, + PointerDecoder* pData) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12Object", object_id, "GetPrivateData"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["guid"], guid, options); + FieldToJson(args["pDataSize"], pDataSize, options); + FieldToJson(args["pData"], pData, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12Object_SetPrivateData( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value, + Decoded_GUID guid, + UINT DataSize, + PointerDecoder* pData) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12Object", object_id, "SetPrivateData"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["guid"], guid, options); + FieldToJson(args["DataSize"], DataSize, options); + FieldToJson(args["pData"], pData, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12Object_SetPrivateDataInterface( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value, + Decoded_GUID guid, + format::HandleId pData) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12Object", object_id, "SetPrivateDataInterface"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["guid"], guid, options); + FieldToJson(args["pData"], pData, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12Object_SetName( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value, + WStringDecoder* Name) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12Object", object_id, "SetName"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["Name"], Name, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12DeviceChild_GetDevice( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value, + Decoded_GUID riid, + HandlePointerDecoder* ppvDevice) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12DeviceChild", object_id, "GetDevice"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["riid"], riid, options); + FieldToJson(args["ppvDevice"], ppvDevice, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12RootSignatureDeserializer_GetRootSignatureDesc( + const ApiCallInfo& call_info, + format::HandleId object_id, + StructPointerDecoder* return_value) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12RootSignatureDeserializer", object_id, "GetRootSignatureDesc"); + const JsonOptions& options = writer_->GetOptions(); + FieldToJson(method[format::kNameReturn], return_value, options); + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12VersionedRootSignatureDeserializer_GetRootSignatureDescAtVersion( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value, + D3D_ROOT_SIGNATURE_VERSION convertToVersion, + StructPointerDecoder* ppDesc) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12VersionedRootSignatureDeserializer", object_id, "GetRootSignatureDescAtVersion"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["convertToVersion"], convertToVersion, options); + FieldToJson(args["ppDesc"], ppDesc, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12VersionedRootSignatureDeserializer_GetUnconvertedRootSignatureDesc( + const ApiCallInfo& call_info, + format::HandleId object_id, + StructPointerDecoder* return_value) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12VersionedRootSignatureDeserializer", object_id, "GetUnconvertedRootSignatureDesc"); + const JsonOptions& options = writer_->GetOptions(); + FieldToJson(method[format::kNameReturn], return_value, options); + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12Heap_GetDesc( + const ApiCallInfo& call_info, + format::HandleId object_id, + Decoded_D3D12_HEAP_DESC return_value) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12Heap", object_id, "GetDesc"); + const JsonOptions& options = writer_->GetOptions(); + FieldToJson(method[format::kNameReturn], return_value, options); + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12Resource_Map( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value, + UINT Subresource, + StructPointerDecoder* pReadRange, + PointerDecoder* ppData) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12Resource", object_id, "Map"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["Subresource"], Subresource, options); + FieldToJson(args["pReadRange"], pReadRange, options); + FieldToJson(args["ppData"], ppData, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12Resource_Unmap( + const ApiCallInfo& call_info, + format::HandleId object_id, + UINT Subresource, + StructPointerDecoder* pWrittenRange) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12Resource", object_id, "Unmap"); + const JsonOptions& options = writer_->GetOptions(); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["Subresource"], Subresource, options); + FieldToJson(args["pWrittenRange"], pWrittenRange, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12Resource_GetDesc( + const ApiCallInfo& call_info, + format::HandleId object_id, + Decoded_D3D12_RESOURCE_DESC return_value) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12Resource", object_id, "GetDesc"); + const JsonOptions& options = writer_->GetOptions(); + FieldToJson(method[format::kNameReturn], return_value, options); + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12Resource_GetGPUVirtualAddress( + const ApiCallInfo& call_info, + format::HandleId object_id, + D3D12_GPU_VIRTUAL_ADDRESS return_value) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12Resource", object_id, "GetGPUVirtualAddress"); + const JsonOptions& options = writer_->GetOptions(); + FieldToJsonAsHex(method[format::kNameReturn], return_value, options); + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12Resource_ReadFromSubresource( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value, + uint64_t pDstData, + UINT DstRowPitch, + UINT DstDepthPitch, + UINT SrcSubresource, + StructPointerDecoder* pSrcBox) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12Resource", object_id, "ReadFromSubresource"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["pDstData"], pDstData, options); + FieldToJson(args["DstRowPitch"], DstRowPitch, options); + FieldToJson(args["DstDepthPitch"], DstDepthPitch, options); + FieldToJson(args["SrcSubresource"], SrcSubresource, options); + FieldToJson(args["pSrcBox"], pSrcBox, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12Resource_GetHeapProperties( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value, + StructPointerDecoder* pHeapProperties, + PointerDecoder* pHeapFlags) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12Resource", object_id, "GetHeapProperties"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["pHeapProperties"], pHeapProperties, options); + FieldToJson_D3D12_HEAP_FLAGS(args["pHeapFlags"], *pHeapFlags->GetPointer(), options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12CommandAllocator_Reset( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12CommandAllocator", object_id, "Reset"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12Fence_GetCompletedValue( + const ApiCallInfo& call_info, + format::HandleId object_id, + UINT64 return_value) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12Fence", object_id, "GetCompletedValue"); + const JsonOptions& options = writer_->GetOptions(); + FieldToJson(method[format::kNameReturn], return_value, options); + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12Fence_SetEventOnCompletion( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value, + UINT64 Value, + uint64_t hEvent) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12Fence", object_id, "SetEventOnCompletion"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["Value"], Value, options); + FieldToJson(args["hEvent"], hEvent, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12Fence_Signal( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value, + UINT64 Value) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12Fence", object_id, "Signal"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["Value"], Value, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12Fence1_GetCreationFlags( + const ApiCallInfo& call_info, + format::HandleId object_id, + D3D12_FENCE_FLAGS return_value) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12Fence1", object_id, "GetCreationFlags"); + const JsonOptions& options = writer_->GetOptions(); + FieldToJson_D3D12_FENCE_FLAGS(method[format::kNameReturn], return_value, options); + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12PipelineState_GetCachedBlob( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value, + HandlePointerDecoder* ppBlob) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12PipelineState", object_id, "GetCachedBlob"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["ppBlob"], ppBlob, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12DescriptorHeap_GetDesc( + const ApiCallInfo& call_info, + format::HandleId object_id, + Decoded_D3D12_DESCRIPTOR_HEAP_DESC return_value) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12DescriptorHeap", object_id, "GetDesc"); + const JsonOptions& options = writer_->GetOptions(); + FieldToJson(method[format::kNameReturn], return_value, options); + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12DescriptorHeap_GetCPUDescriptorHandleForHeapStart( + const ApiCallInfo& call_info, + format::HandleId object_id, + Decoded_D3D12_CPU_DESCRIPTOR_HANDLE return_value) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12DescriptorHeap", object_id, "GetCPUDescriptorHandleForHeapStart"); + const JsonOptions& options = writer_->GetOptions(); + FieldToJson(method[format::kNameReturn], return_value, options); + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12DescriptorHeap_GetGPUDescriptorHandleForHeapStart( + const ApiCallInfo& call_info, + format::HandleId object_id, + Decoded_D3D12_GPU_DESCRIPTOR_HANDLE return_value) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12DescriptorHeap", object_id, "GetGPUDescriptorHandleForHeapStart"); + const JsonOptions& options = writer_->GetOptions(); + FieldToJson(method[format::kNameReturn], return_value, options); + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12CommandList_GetType( + const ApiCallInfo& call_info, + format::HandleId object_id, + D3D12_COMMAND_LIST_TYPE return_value) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12CommandList", object_id, "GetType"); + const JsonOptions& options = writer_->GetOptions(); + FieldToJson(method[format::kNameReturn], return_value, options); + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12GraphicsCommandList_Close( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12GraphicsCommandList", object_id, "Close"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12GraphicsCommandList_Reset( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value, + format::HandleId pAllocator, + format::HandleId pInitialState) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12GraphicsCommandList", object_id, "Reset"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["pAllocator"], pAllocator, options); + FieldToJson(args["pInitialState"], pInitialState, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12GraphicsCommandList_ClearState( + const ApiCallInfo& call_info, + format::HandleId object_id, + format::HandleId pPipelineState) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12GraphicsCommandList", object_id, "ClearState"); + const JsonOptions& options = writer_->GetOptions(); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["pPipelineState"], pPipelineState, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12GraphicsCommandList_DrawInstanced( + const ApiCallInfo& call_info, + format::HandleId object_id, + UINT VertexCountPerInstance, + UINT InstanceCount, + UINT StartVertexLocation, + UINT StartInstanceLocation) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12GraphicsCommandList", object_id, "DrawInstanced"); + const JsonOptions& options = writer_->GetOptions(); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["VertexCountPerInstance"], VertexCountPerInstance, options); + FieldToJson(args["InstanceCount"], InstanceCount, options); + FieldToJson(args["StartVertexLocation"], StartVertexLocation, options); + FieldToJson(args["StartInstanceLocation"], StartInstanceLocation, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12GraphicsCommandList_DrawIndexedInstanced( + const ApiCallInfo& call_info, + format::HandleId object_id, + UINT IndexCountPerInstance, + UINT InstanceCount, + UINT StartIndexLocation, + INT BaseVertexLocation, + UINT StartInstanceLocation) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12GraphicsCommandList", object_id, "DrawIndexedInstanced"); + const JsonOptions& options = writer_->GetOptions(); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["IndexCountPerInstance"], IndexCountPerInstance, options); + FieldToJson(args["InstanceCount"], InstanceCount, options); + FieldToJson(args["StartIndexLocation"], StartIndexLocation, options); + FieldToJson(args["BaseVertexLocation"], BaseVertexLocation, options); + FieldToJson(args["StartInstanceLocation"], StartInstanceLocation, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12GraphicsCommandList_Dispatch( + const ApiCallInfo& call_info, + format::HandleId object_id, + UINT ThreadGroupCountX, + UINT ThreadGroupCountY, + UINT ThreadGroupCountZ) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12GraphicsCommandList", object_id, "Dispatch"); + const JsonOptions& options = writer_->GetOptions(); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["ThreadGroupCountX"], ThreadGroupCountX, options); + FieldToJson(args["ThreadGroupCountY"], ThreadGroupCountY, options); + FieldToJson(args["ThreadGroupCountZ"], ThreadGroupCountZ, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12GraphicsCommandList_CopyBufferRegion( + const ApiCallInfo& call_info, + format::HandleId object_id, + format::HandleId pDstBuffer, + UINT64 DstOffset, + format::HandleId pSrcBuffer, + UINT64 SrcOffset, + UINT64 NumBytes) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12GraphicsCommandList", object_id, "CopyBufferRegion"); + const JsonOptions& options = writer_->GetOptions(); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["pDstBuffer"], pDstBuffer, options); + FieldToJson(args["DstOffset"], DstOffset, options); + FieldToJson(args["pSrcBuffer"], pSrcBuffer, options); + FieldToJson(args["SrcOffset"], SrcOffset, options); + FieldToJson(args["NumBytes"], NumBytes, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12GraphicsCommandList_CopyTextureRegion( + const ApiCallInfo& call_info, + format::HandleId object_id, + StructPointerDecoder* pDst, + UINT DstX, + UINT DstY, + UINT DstZ, + StructPointerDecoder* pSrc, + StructPointerDecoder* pSrcBox) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12GraphicsCommandList", object_id, "CopyTextureRegion"); + const JsonOptions& options = writer_->GetOptions(); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["pDst"], pDst, options); + FieldToJson(args["DstX"], DstX, options); + FieldToJson(args["DstY"], DstY, options); + FieldToJson(args["DstZ"], DstZ, options); + FieldToJson(args["pSrc"], pSrc, options); + FieldToJson(args["pSrcBox"], pSrcBox, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12GraphicsCommandList_CopyResource( + const ApiCallInfo& call_info, + format::HandleId object_id, + format::HandleId pDstResource, + format::HandleId pSrcResource) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12GraphicsCommandList", object_id, "CopyResource"); + const JsonOptions& options = writer_->GetOptions(); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["pDstResource"], pDstResource, options); + FieldToJson(args["pSrcResource"], pSrcResource, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12GraphicsCommandList_CopyTiles( + const ApiCallInfo& call_info, + format::HandleId object_id, + format::HandleId pTiledResource, + StructPointerDecoder* pTileRegionStartCoordinate, + StructPointerDecoder* pTileRegionSize, + format::HandleId pBuffer, + UINT64 BufferStartOffsetInBytes, + D3D12_TILE_COPY_FLAGS Flags) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12GraphicsCommandList", object_id, "CopyTiles"); + const JsonOptions& options = writer_->GetOptions(); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["pTiledResource"], pTiledResource, options); + FieldToJson(args["pTileRegionStartCoordinate"], pTileRegionStartCoordinate, options); + FieldToJson(args["pTileRegionSize"], pTileRegionSize, options); + FieldToJson(args["pBuffer"], pBuffer, options); + FieldToJson(args["BufferStartOffsetInBytes"], BufferStartOffsetInBytes, options); + FieldToJson_D3D12_TILE_COPY_FLAGS(args["Flags"], Flags, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12GraphicsCommandList_ResolveSubresource( + const ApiCallInfo& call_info, + format::HandleId object_id, + format::HandleId pDstResource, + UINT DstSubresource, + format::HandleId pSrcResource, + UINT SrcSubresource, + DXGI_FORMAT Format) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12GraphicsCommandList", object_id, "ResolveSubresource"); + const JsonOptions& options = writer_->GetOptions(); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["pDstResource"], pDstResource, options); + FieldToJson(args["DstSubresource"], DstSubresource, options); + FieldToJson(args["pSrcResource"], pSrcResource, options); + FieldToJson(args["SrcSubresource"], SrcSubresource, options); + FieldToJson(args["Format"], Format, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12GraphicsCommandList_IASetPrimitiveTopology( + const ApiCallInfo& call_info, + format::HandleId object_id, + D3D_PRIMITIVE_TOPOLOGY PrimitiveTopology) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12GraphicsCommandList", object_id, "IASetPrimitiveTopology"); + const JsonOptions& options = writer_->GetOptions(); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["PrimitiveTopology"], PrimitiveTopology, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12GraphicsCommandList_RSSetViewports( + const ApiCallInfo& call_info, + format::HandleId object_id, + UINT NumViewports, + StructPointerDecoder* pViewports) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12GraphicsCommandList", object_id, "RSSetViewports"); + const JsonOptions& options = writer_->GetOptions(); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["NumViewports"], NumViewports, options); + FieldToJson(args["pViewports"], pViewports, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12GraphicsCommandList_RSSetScissorRects( + const ApiCallInfo& call_info, + format::HandleId object_id, + UINT NumRects, + StructPointerDecoder* pRects) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12GraphicsCommandList", object_id, "RSSetScissorRects"); + const JsonOptions& options = writer_->GetOptions(); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["NumRects"], NumRects, options); + FieldToJson(args["pRects"], pRects, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12GraphicsCommandList_OMSetBlendFactor( + const ApiCallInfo& call_info, + format::HandleId object_id, + PointerDecoder BlendFactor [4]) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12GraphicsCommandList", object_id, "OMSetBlendFactor"); + const JsonOptions& options = writer_->GetOptions(); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["BlendFactor"], BlendFactor, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12GraphicsCommandList_OMSetStencilRef( + const ApiCallInfo& call_info, + format::HandleId object_id, + UINT StencilRef) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12GraphicsCommandList", object_id, "OMSetStencilRef"); + const JsonOptions& options = writer_->GetOptions(); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["StencilRef"], StencilRef, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12GraphicsCommandList_SetPipelineState( + const ApiCallInfo& call_info, + format::HandleId object_id, + format::HandleId pPipelineState) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12GraphicsCommandList", object_id, "SetPipelineState"); + const JsonOptions& options = writer_->GetOptions(); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["pPipelineState"], pPipelineState, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12GraphicsCommandList_ResourceBarrier( + const ApiCallInfo& call_info, + format::HandleId object_id, + UINT NumBarriers, + StructPointerDecoder* pBarriers) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12GraphicsCommandList", object_id, "ResourceBarrier"); + const JsonOptions& options = writer_->GetOptions(); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["NumBarriers"], NumBarriers, options); + FieldToJson(args["pBarriers"], pBarriers, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12GraphicsCommandList_ExecuteBundle( + const ApiCallInfo& call_info, + format::HandleId object_id, + format::HandleId pCommandList) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12GraphicsCommandList", object_id, "ExecuteBundle"); + const JsonOptions& options = writer_->GetOptions(); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["pCommandList"], pCommandList, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12GraphicsCommandList_SetDescriptorHeaps( + const ApiCallInfo& call_info, + format::HandleId object_id, + UINT NumDescriptorHeaps, + HandlePointerDecoder* ppDescriptorHeaps) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12GraphicsCommandList", object_id, "SetDescriptorHeaps"); + const JsonOptions& options = writer_->GetOptions(); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["NumDescriptorHeaps"], NumDescriptorHeaps, options); + FieldToJson(args["ppDescriptorHeaps"], ppDescriptorHeaps, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12GraphicsCommandList_SetComputeRootSignature( + const ApiCallInfo& call_info, + format::HandleId object_id, + format::HandleId pRootSignature) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12GraphicsCommandList", object_id, "SetComputeRootSignature"); + const JsonOptions& options = writer_->GetOptions(); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["pRootSignature"], pRootSignature, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12GraphicsCommandList_SetGraphicsRootSignature( + const ApiCallInfo& call_info, + format::HandleId object_id, + format::HandleId pRootSignature) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12GraphicsCommandList", object_id, "SetGraphicsRootSignature"); + const JsonOptions& options = writer_->GetOptions(); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["pRootSignature"], pRootSignature, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12GraphicsCommandList_SetComputeRootDescriptorTable( + const ApiCallInfo& call_info, + format::HandleId object_id, + UINT RootParameterIndex, + Decoded_D3D12_GPU_DESCRIPTOR_HANDLE BaseDescriptor) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12GraphicsCommandList", object_id, "SetComputeRootDescriptorTable"); + const JsonOptions& options = writer_->GetOptions(); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["RootParameterIndex"], RootParameterIndex, options); + FieldToJson(args["BaseDescriptor"], BaseDescriptor, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12GraphicsCommandList_SetGraphicsRootDescriptorTable( + const ApiCallInfo& call_info, + format::HandleId object_id, + UINT RootParameterIndex, + Decoded_D3D12_GPU_DESCRIPTOR_HANDLE BaseDescriptor) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12GraphicsCommandList", object_id, "SetGraphicsRootDescriptorTable"); + const JsonOptions& options = writer_->GetOptions(); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["RootParameterIndex"], RootParameterIndex, options); + FieldToJson(args["BaseDescriptor"], BaseDescriptor, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12GraphicsCommandList_SetComputeRoot32BitConstant( + const ApiCallInfo& call_info, + format::HandleId object_id, + UINT RootParameterIndex, + UINT SrcData, + UINT DestOffsetIn32BitValues) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12GraphicsCommandList", object_id, "SetComputeRoot32BitConstant"); + const JsonOptions& options = writer_->GetOptions(); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["RootParameterIndex"], RootParameterIndex, options); + FieldToJson(args["SrcData"], SrcData, options); + FieldToJson(args["DestOffsetIn32BitValues"], DestOffsetIn32BitValues, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12GraphicsCommandList_SetGraphicsRoot32BitConstant( + const ApiCallInfo& call_info, + format::HandleId object_id, + UINT RootParameterIndex, + UINT SrcData, + UINT DestOffsetIn32BitValues) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12GraphicsCommandList", object_id, "SetGraphicsRoot32BitConstant"); + const JsonOptions& options = writer_->GetOptions(); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["RootParameterIndex"], RootParameterIndex, options); + FieldToJson(args["SrcData"], SrcData, options); + FieldToJson(args["DestOffsetIn32BitValues"], DestOffsetIn32BitValues, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12GraphicsCommandList_SetComputeRoot32BitConstants( + const ApiCallInfo& call_info, + format::HandleId object_id, + UINT RootParameterIndex, + UINT Num32BitValuesToSet, + PointerDecoder* pSrcData, + UINT DestOffsetIn32BitValues) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12GraphicsCommandList", object_id, "SetComputeRoot32BitConstants"); + const JsonOptions& options = writer_->GetOptions(); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["RootParameterIndex"], RootParameterIndex, options); + FieldToJson(args["Num32BitValuesToSet"], Num32BitValuesToSet, options); + FieldToJson(args["pSrcData"], pSrcData, options); + FieldToJson(args["DestOffsetIn32BitValues"], DestOffsetIn32BitValues, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12GraphicsCommandList_SetGraphicsRoot32BitConstants( + const ApiCallInfo& call_info, + format::HandleId object_id, + UINT RootParameterIndex, + UINT Num32BitValuesToSet, + PointerDecoder* pSrcData, + UINT DestOffsetIn32BitValues) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12GraphicsCommandList", object_id, "SetGraphicsRoot32BitConstants"); + const JsonOptions& options = writer_->GetOptions(); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["RootParameterIndex"], RootParameterIndex, options); + FieldToJson(args["Num32BitValuesToSet"], Num32BitValuesToSet, options); + FieldToJson(args["pSrcData"], pSrcData, options); + FieldToJson(args["DestOffsetIn32BitValues"], DestOffsetIn32BitValues, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12GraphicsCommandList_SetComputeRootConstantBufferView( + const ApiCallInfo& call_info, + format::HandleId object_id, + UINT RootParameterIndex, + D3D12_GPU_VIRTUAL_ADDRESS BufferLocation) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12GraphicsCommandList", object_id, "SetComputeRootConstantBufferView"); + const JsonOptions& options = writer_->GetOptions(); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["RootParameterIndex"], RootParameterIndex, options); + FieldToJsonAsHex(args["BufferLocation"], BufferLocation, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12GraphicsCommandList_SetGraphicsRootConstantBufferView( + const ApiCallInfo& call_info, + format::HandleId object_id, + UINT RootParameterIndex, + D3D12_GPU_VIRTUAL_ADDRESS BufferLocation) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12GraphicsCommandList", object_id, "SetGraphicsRootConstantBufferView"); + const JsonOptions& options = writer_->GetOptions(); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["RootParameterIndex"], RootParameterIndex, options); + FieldToJsonAsHex(args["BufferLocation"], BufferLocation, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12GraphicsCommandList_SetComputeRootShaderResourceView( + const ApiCallInfo& call_info, + format::HandleId object_id, + UINT RootParameterIndex, + D3D12_GPU_VIRTUAL_ADDRESS BufferLocation) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12GraphicsCommandList", object_id, "SetComputeRootShaderResourceView"); + const JsonOptions& options = writer_->GetOptions(); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["RootParameterIndex"], RootParameterIndex, options); + FieldToJsonAsHex(args["BufferLocation"], BufferLocation, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12GraphicsCommandList_SetGraphicsRootShaderResourceView( + const ApiCallInfo& call_info, + format::HandleId object_id, + UINT RootParameterIndex, + D3D12_GPU_VIRTUAL_ADDRESS BufferLocation) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12GraphicsCommandList", object_id, "SetGraphicsRootShaderResourceView"); + const JsonOptions& options = writer_->GetOptions(); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["RootParameterIndex"], RootParameterIndex, options); + FieldToJsonAsHex(args["BufferLocation"], BufferLocation, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12GraphicsCommandList_SetComputeRootUnorderedAccessView( + const ApiCallInfo& call_info, + format::HandleId object_id, + UINT RootParameterIndex, + D3D12_GPU_VIRTUAL_ADDRESS BufferLocation) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12GraphicsCommandList", object_id, "SetComputeRootUnorderedAccessView"); + const JsonOptions& options = writer_->GetOptions(); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["RootParameterIndex"], RootParameterIndex, options); + FieldToJsonAsHex(args["BufferLocation"], BufferLocation, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12GraphicsCommandList_SetGraphicsRootUnorderedAccessView( + const ApiCallInfo& call_info, + format::HandleId object_id, + UINT RootParameterIndex, + D3D12_GPU_VIRTUAL_ADDRESS BufferLocation) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12GraphicsCommandList", object_id, "SetGraphicsRootUnorderedAccessView"); + const JsonOptions& options = writer_->GetOptions(); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["RootParameterIndex"], RootParameterIndex, options); + FieldToJsonAsHex(args["BufferLocation"], BufferLocation, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12GraphicsCommandList_IASetIndexBuffer( + const ApiCallInfo& call_info, + format::HandleId object_id, + StructPointerDecoder* pView) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12GraphicsCommandList", object_id, "IASetIndexBuffer"); + const JsonOptions& options = writer_->GetOptions(); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["pView"], pView, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12GraphicsCommandList_IASetVertexBuffers( + const ApiCallInfo& call_info, + format::HandleId object_id, + UINT StartSlot, + UINT NumViews, + StructPointerDecoder* pViews) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12GraphicsCommandList", object_id, "IASetVertexBuffers"); + const JsonOptions& options = writer_->GetOptions(); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["StartSlot"], StartSlot, options); + FieldToJson(args["NumViews"], NumViews, options); + FieldToJson(args["pViews"], pViews, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12GraphicsCommandList_SOSetTargets( + const ApiCallInfo& call_info, + format::HandleId object_id, + UINT StartSlot, + UINT NumViews, + StructPointerDecoder* pViews) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12GraphicsCommandList", object_id, "SOSetTargets"); + const JsonOptions& options = writer_->GetOptions(); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["StartSlot"], StartSlot, options); + FieldToJson(args["NumViews"], NumViews, options); + FieldToJson(args["pViews"], pViews, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12GraphicsCommandList_OMSetRenderTargets( + const ApiCallInfo& call_info, + format::HandleId object_id, + UINT NumRenderTargetDescriptors, + StructPointerDecoder* pRenderTargetDescriptors, + BOOL RTsSingleHandleToDescriptorRange, + StructPointerDecoder* pDepthStencilDescriptor) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12GraphicsCommandList", object_id, "OMSetRenderTargets"); + const JsonOptions& options = writer_->GetOptions(); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["NumRenderTargetDescriptors"], NumRenderTargetDescriptors, options); + FieldToJson(args["pRenderTargetDescriptors"], pRenderTargetDescriptors, options); + Bool32ToJson(args["RTsSingleHandleToDescriptorRange"], RTsSingleHandleToDescriptorRange, options); + FieldToJson(args["pDepthStencilDescriptor"], pDepthStencilDescriptor, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12GraphicsCommandList_ClearDepthStencilView( + const ApiCallInfo& call_info, + format::HandleId object_id, + Decoded_D3D12_CPU_DESCRIPTOR_HANDLE DepthStencilView, + D3D12_CLEAR_FLAGS ClearFlags, + FLOAT Depth, + UINT8 Stencil, + UINT NumRects, + StructPointerDecoder* pRects) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12GraphicsCommandList", object_id, "ClearDepthStencilView"); + const JsonOptions& options = writer_->GetOptions(); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["DepthStencilView"], DepthStencilView, options); + FieldToJson_D3D12_CLEAR_FLAGS(args["ClearFlags"], ClearFlags, options); + FieldToJson(args["Depth"], Depth, options); + FieldToJson(args["Stencil"], Stencil, options); + FieldToJson(args["NumRects"], NumRects, options); + FieldToJson(args["pRects"], pRects, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12GraphicsCommandList_ClearRenderTargetView( + const ApiCallInfo& call_info, + format::HandleId object_id, + Decoded_D3D12_CPU_DESCRIPTOR_HANDLE RenderTargetView, + PointerDecoder ColorRGBA [4], + UINT NumRects, + StructPointerDecoder* pRects) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12GraphicsCommandList", object_id, "ClearRenderTargetView"); + const JsonOptions& options = writer_->GetOptions(); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["RenderTargetView"], RenderTargetView, options); + FieldToJson(args["ColorRGBA"], ColorRGBA, options); + FieldToJson(args["NumRects"], NumRects, options); + FieldToJson(args["pRects"], pRects, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12GraphicsCommandList_ClearUnorderedAccessViewUint( + const ApiCallInfo& call_info, + format::HandleId object_id, + Decoded_D3D12_GPU_DESCRIPTOR_HANDLE ViewGPUHandleInCurrentHeap, + Decoded_D3D12_CPU_DESCRIPTOR_HANDLE ViewCPUHandle, + format::HandleId pResource, + PointerDecoder Values [4], + UINT NumRects, + StructPointerDecoder* pRects) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12GraphicsCommandList", object_id, "ClearUnorderedAccessViewUint"); + const JsonOptions& options = writer_->GetOptions(); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["ViewGPUHandleInCurrentHeap"], ViewGPUHandleInCurrentHeap, options); + FieldToJson(args["ViewCPUHandle"], ViewCPUHandle, options); + FieldToJson(args["pResource"], pResource, options); + FieldToJson(args["Values"], Values, options); + FieldToJson(args["NumRects"], NumRects, options); + FieldToJson(args["pRects"], pRects, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12GraphicsCommandList_ClearUnorderedAccessViewFloat( + const ApiCallInfo& call_info, + format::HandleId object_id, + Decoded_D3D12_GPU_DESCRIPTOR_HANDLE ViewGPUHandleInCurrentHeap, + Decoded_D3D12_CPU_DESCRIPTOR_HANDLE ViewCPUHandle, + format::HandleId pResource, + PointerDecoder Values [4], + UINT NumRects, + StructPointerDecoder* pRects) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12GraphicsCommandList", object_id, "ClearUnorderedAccessViewFloat"); + const JsonOptions& options = writer_->GetOptions(); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["ViewGPUHandleInCurrentHeap"], ViewGPUHandleInCurrentHeap, options); + FieldToJson(args["ViewCPUHandle"], ViewCPUHandle, options); + FieldToJson(args["pResource"], pResource, options); + FieldToJson(args["Values"], Values, options); + FieldToJson(args["NumRects"], NumRects, options); + FieldToJson(args["pRects"], pRects, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12GraphicsCommandList_DiscardResource( + const ApiCallInfo& call_info, + format::HandleId object_id, + format::HandleId pResource, + StructPointerDecoder* pRegion) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12GraphicsCommandList", object_id, "DiscardResource"); + const JsonOptions& options = writer_->GetOptions(); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["pResource"], pResource, options); + FieldToJson(args["pRegion"], pRegion, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12GraphicsCommandList_BeginQuery( + const ApiCallInfo& call_info, + format::HandleId object_id, + format::HandleId pQueryHeap, + D3D12_QUERY_TYPE Type, + UINT Index) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12GraphicsCommandList", object_id, "BeginQuery"); + const JsonOptions& options = writer_->GetOptions(); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["pQueryHeap"], pQueryHeap, options); + FieldToJson(args["Type"], Type, options); + FieldToJson(args["Index"], Index, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12GraphicsCommandList_EndQuery( + const ApiCallInfo& call_info, + format::HandleId object_id, + format::HandleId pQueryHeap, + D3D12_QUERY_TYPE Type, + UINT Index) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12GraphicsCommandList", object_id, "EndQuery"); + const JsonOptions& options = writer_->GetOptions(); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["pQueryHeap"], pQueryHeap, options); + FieldToJson(args["Type"], Type, options); + FieldToJson(args["Index"], Index, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12GraphicsCommandList_ResolveQueryData( + const ApiCallInfo& call_info, + format::HandleId object_id, + format::HandleId pQueryHeap, + D3D12_QUERY_TYPE Type, + UINT StartIndex, + UINT NumQueries, + format::HandleId pDestinationBuffer, + UINT64 AlignedDestinationBufferOffset) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12GraphicsCommandList", object_id, "ResolveQueryData"); + const JsonOptions& options = writer_->GetOptions(); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["pQueryHeap"], pQueryHeap, options); + FieldToJson(args["Type"], Type, options); + FieldToJson(args["StartIndex"], StartIndex, options); + FieldToJson(args["NumQueries"], NumQueries, options); + FieldToJson(args["pDestinationBuffer"], pDestinationBuffer, options); + FieldToJson(args["AlignedDestinationBufferOffset"], AlignedDestinationBufferOffset, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12GraphicsCommandList_SetPredication( + const ApiCallInfo& call_info, + format::HandleId object_id, + format::HandleId pBuffer, + UINT64 AlignedBufferOffset, + D3D12_PREDICATION_OP Operation) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12GraphicsCommandList", object_id, "SetPredication"); + const JsonOptions& options = writer_->GetOptions(); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["pBuffer"], pBuffer, options); + FieldToJson(args["AlignedBufferOffset"], AlignedBufferOffset, options); + FieldToJson(args["Operation"], Operation, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12GraphicsCommandList_SetMarker( + const ApiCallInfo& call_info, + format::HandleId object_id, + UINT Metadata, + PointerDecoder* pData, + UINT Size) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12GraphicsCommandList", object_id, "SetMarker"); + const JsonOptions& options = writer_->GetOptions(); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["Metadata"], Metadata, options); + FieldToJson(args["pData"], pData, options); + FieldToJson(args["Size"], Size, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12GraphicsCommandList_BeginEvent( + const ApiCallInfo& call_info, + format::HandleId object_id, + UINT Metadata, + PointerDecoder* pData, + UINT Size) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12GraphicsCommandList", object_id, "BeginEvent"); + const JsonOptions& options = writer_->GetOptions(); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["Metadata"], Metadata, options); + FieldToJson(args["pData"], pData, options); + FieldToJson(args["Size"], Size, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12GraphicsCommandList_EndEvent( + const ApiCallInfo& call_info, + format::HandleId object_id) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12GraphicsCommandList", object_id, "EndEvent"); + const JsonOptions& options = writer_->GetOptions(); + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12GraphicsCommandList_ExecuteIndirect( + const ApiCallInfo& call_info, + format::HandleId object_id, + format::HandleId pCommandSignature, + UINT MaxCommandCount, + format::HandleId pArgumentBuffer, + UINT64 ArgumentBufferOffset, + format::HandleId pCountBuffer, + UINT64 CountBufferOffset) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12GraphicsCommandList", object_id, "ExecuteIndirect"); + const JsonOptions& options = writer_->GetOptions(); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["pCommandSignature"], pCommandSignature, options); + FieldToJson(args["MaxCommandCount"], MaxCommandCount, options); + FieldToJson(args["pArgumentBuffer"], pArgumentBuffer, options); + FieldToJson(args["ArgumentBufferOffset"], ArgumentBufferOffset, options); + FieldToJson(args["pCountBuffer"], pCountBuffer, options); + FieldToJson(args["CountBufferOffset"], CountBufferOffset, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12GraphicsCommandList1_AtomicCopyBufferUINT( + const ApiCallInfo& call_info, + format::HandleId object_id, + format::HandleId pDstBuffer, + UINT64 DstOffset, + format::HandleId pSrcBuffer, + UINT64 SrcOffset, + UINT Dependencies, + HandlePointerDecoder* ppDependentResources, + StructPointerDecoder* pDependentSubresourceRanges) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12GraphicsCommandList1", object_id, "AtomicCopyBufferUINT"); + const JsonOptions& options = writer_->GetOptions(); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["pDstBuffer"], pDstBuffer, options); + FieldToJson(args["DstOffset"], DstOffset, options); + FieldToJson(args["pSrcBuffer"], pSrcBuffer, options); + FieldToJson(args["SrcOffset"], SrcOffset, options); + FieldToJson(args["Dependencies"], Dependencies, options); + FieldToJson(args["ppDependentResources"], ppDependentResources, options); + FieldToJson(args["pDependentSubresourceRanges"], pDependentSubresourceRanges, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12GraphicsCommandList1_AtomicCopyBufferUINT64( + const ApiCallInfo& call_info, + format::HandleId object_id, + format::HandleId pDstBuffer, + UINT64 DstOffset, + format::HandleId pSrcBuffer, + UINT64 SrcOffset, + UINT Dependencies, + HandlePointerDecoder* ppDependentResources, + StructPointerDecoder* pDependentSubresourceRanges) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12GraphicsCommandList1", object_id, "AtomicCopyBufferUINT64"); + const JsonOptions& options = writer_->GetOptions(); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["pDstBuffer"], pDstBuffer, options); + FieldToJson(args["DstOffset"], DstOffset, options); + FieldToJson(args["pSrcBuffer"], pSrcBuffer, options); + FieldToJson(args["SrcOffset"], SrcOffset, options); + FieldToJson(args["Dependencies"], Dependencies, options); + FieldToJson(args["ppDependentResources"], ppDependentResources, options); + FieldToJson(args["pDependentSubresourceRanges"], pDependentSubresourceRanges, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12GraphicsCommandList1_OMSetDepthBounds( + const ApiCallInfo& call_info, + format::HandleId object_id, + FLOAT Min, + FLOAT Max) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12GraphicsCommandList1", object_id, "OMSetDepthBounds"); + const JsonOptions& options = writer_->GetOptions(); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["Min"], Min, options); + FieldToJson(args["Max"], Max, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12GraphicsCommandList1_SetSamplePositions( + const ApiCallInfo& call_info, + format::HandleId object_id, + UINT NumSamplesPerPixel, + UINT NumPixels, + StructPointerDecoder* pSamplePositions) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12GraphicsCommandList1", object_id, "SetSamplePositions"); + const JsonOptions& options = writer_->GetOptions(); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["NumSamplesPerPixel"], NumSamplesPerPixel, options); + FieldToJson(args["NumPixels"], NumPixels, options); + FieldToJson(args["pSamplePositions"], pSamplePositions, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12GraphicsCommandList1_ResolveSubresourceRegion( + const ApiCallInfo& call_info, + format::HandleId object_id, + format::HandleId pDstResource, + UINT DstSubresource, + UINT DstX, + UINT DstY, + format::HandleId pSrcResource, + UINT SrcSubresource, + StructPointerDecoder* pSrcRect, + DXGI_FORMAT Format, + D3D12_RESOLVE_MODE ResolveMode) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12GraphicsCommandList1", object_id, "ResolveSubresourceRegion"); + const JsonOptions& options = writer_->GetOptions(); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["pDstResource"], pDstResource, options); + FieldToJson(args["DstSubresource"], DstSubresource, options); + FieldToJson(args["DstX"], DstX, options); + FieldToJson(args["DstY"], DstY, options); + FieldToJson(args["pSrcResource"], pSrcResource, options); + FieldToJson(args["SrcSubresource"], SrcSubresource, options); + FieldToJson(args["pSrcRect"], pSrcRect, options); + FieldToJson(args["Format"], Format, options); + FieldToJson(args["ResolveMode"], ResolveMode, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12GraphicsCommandList1_SetViewInstanceMask( + const ApiCallInfo& call_info, + format::HandleId object_id, + UINT Mask) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12GraphicsCommandList1", object_id, "SetViewInstanceMask"); + const JsonOptions& options = writer_->GetOptions(); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJsonAsFixedWidthBinary(args["Mask"], Mask, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12GraphicsCommandList2_WriteBufferImmediate( + const ApiCallInfo& call_info, + format::HandleId object_id, + UINT Count, + StructPointerDecoder* pParams, + PointerDecoder* pModes) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12GraphicsCommandList2", object_id, "WriteBufferImmediate"); + const JsonOptions& options = writer_->GetOptions(); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["Count"], Count, options); + FieldToJson(args["pParams"], pParams, options); + FieldToJson(args["pModes"], pModes, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12CommandQueue_UpdateTileMappings( + const ApiCallInfo& call_info, + format::HandleId object_id, + format::HandleId pResource, + UINT NumResourceRegions, + StructPointerDecoder* pResourceRegionStartCoordinates, + StructPointerDecoder* pResourceRegionSizes, + format::HandleId pHeap, + UINT NumRanges, + PointerDecoder* pRangeFlags, + PointerDecoder* pHeapRangeStartOffsets, + PointerDecoder* pRangeTileCounts, + D3D12_TILE_MAPPING_FLAGS Flags) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12CommandQueue", object_id, "UpdateTileMappings"); + const JsonOptions& options = writer_->GetOptions(); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["pResource"], pResource, options); + FieldToJson(args["NumResourceRegions"], NumResourceRegions, options); + FieldToJson(args["pResourceRegionStartCoordinates"], pResourceRegionStartCoordinates, options); + FieldToJson(args["pResourceRegionSizes"], pResourceRegionSizes, options); + FieldToJson(args["pHeap"], pHeap, options); + FieldToJson(args["NumRanges"], NumRanges, options); + FieldToJson_D3D12_TILE_RANGE_FLAGS(args["pRangeFlags"], *pRangeFlags->GetPointer(), options); + FieldToJson(args["pHeapRangeStartOffsets"], pHeapRangeStartOffsets, options); + FieldToJson(args["pRangeTileCounts"], pRangeTileCounts, options); + FieldToJson_D3D12_TILE_MAPPING_FLAGS(args["Flags"], Flags, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12CommandQueue_CopyTileMappings( + const ApiCallInfo& call_info, + format::HandleId object_id, + format::HandleId pDstResource, + StructPointerDecoder* pDstRegionStartCoordinate, + format::HandleId pSrcResource, + StructPointerDecoder* pSrcRegionStartCoordinate, + StructPointerDecoder* pRegionSize, + D3D12_TILE_MAPPING_FLAGS Flags) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12CommandQueue", object_id, "CopyTileMappings"); + const JsonOptions& options = writer_->GetOptions(); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["pDstResource"], pDstResource, options); + FieldToJson(args["pDstRegionStartCoordinate"], pDstRegionStartCoordinate, options); + FieldToJson(args["pSrcResource"], pSrcResource, options); + FieldToJson(args["pSrcRegionStartCoordinate"], pSrcRegionStartCoordinate, options); + FieldToJson(args["pRegionSize"], pRegionSize, options); + FieldToJson_D3D12_TILE_MAPPING_FLAGS(args["Flags"], Flags, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12CommandQueue_ExecuteCommandLists( + const ApiCallInfo& call_info, + format::HandleId object_id, + UINT NumCommandLists, + HandlePointerDecoder* ppCommandLists) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12CommandQueue", object_id, "ExecuteCommandLists"); + const JsonOptions& options = writer_->GetOptions(); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["NumCommandLists"], NumCommandLists, options); + FieldToJson(args["ppCommandLists"], ppCommandLists, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12CommandQueue_SetMarker( + const ApiCallInfo& call_info, + format::HandleId object_id, + UINT Metadata, + PointerDecoder* pData, + UINT Size) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12CommandQueue", object_id, "SetMarker"); + const JsonOptions& options = writer_->GetOptions(); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["Metadata"], Metadata, options); + FieldToJson(args["pData"], pData, options); + FieldToJson(args["Size"], Size, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12CommandQueue_BeginEvent( + const ApiCallInfo& call_info, + format::HandleId object_id, + UINT Metadata, + PointerDecoder* pData, + UINT Size) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12CommandQueue", object_id, "BeginEvent"); + const JsonOptions& options = writer_->GetOptions(); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["Metadata"], Metadata, options); + FieldToJson(args["pData"], pData, options); + FieldToJson(args["Size"], Size, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12CommandQueue_EndEvent( + const ApiCallInfo& call_info, + format::HandleId object_id) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12CommandQueue", object_id, "EndEvent"); + const JsonOptions& options = writer_->GetOptions(); + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12CommandQueue_Signal( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value, + format::HandleId pFence, + UINT64 Value) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12CommandQueue", object_id, "Signal"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["pFence"], pFence, options); + FieldToJson(args["Value"], Value, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12CommandQueue_Wait( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value, + format::HandleId pFence, + UINT64 Value) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12CommandQueue", object_id, "Wait"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["pFence"], pFence, options); + FieldToJson(args["Value"], Value, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12CommandQueue_GetTimestampFrequency( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value, + PointerDecoder* pFrequency) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12CommandQueue", object_id, "GetTimestampFrequency"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["pFrequency"], pFrequency, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12CommandQueue_GetClockCalibration( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value, + PointerDecoder* pGpuTimestamp, + PointerDecoder* pCpuTimestamp) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12CommandQueue", object_id, "GetClockCalibration"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["pGpuTimestamp"], pGpuTimestamp, options); + FieldToJson(args["pCpuTimestamp"], pCpuTimestamp, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12CommandQueue_GetDesc( + const ApiCallInfo& call_info, + format::HandleId object_id, + Decoded_D3D12_COMMAND_QUEUE_DESC return_value) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12CommandQueue", object_id, "GetDesc"); + const JsonOptions& options = writer_->GetOptions(); + FieldToJson(method[format::kNameReturn], return_value, options); + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12Device_GetNodeCount( + const ApiCallInfo& call_info, + format::HandleId object_id, + UINT return_value) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12Device", object_id, "GetNodeCount"); + const JsonOptions& options = writer_->GetOptions(); + FieldToJson(method[format::kNameReturn], return_value, options); + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12Device_CreateCommandQueue( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value, + StructPointerDecoder* pDesc, + Decoded_GUID riid, + HandlePointerDecoder* ppCommandQueue) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12Device", object_id, "CreateCommandQueue"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["pDesc"], pDesc, options); + FieldToJson(args["riid"], riid, options); + FieldToJson(args["ppCommandQueue"], ppCommandQueue, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12Device_CreateCommandAllocator( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value, + D3D12_COMMAND_LIST_TYPE type, + Decoded_GUID riid, + HandlePointerDecoder* ppCommandAllocator) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12Device", object_id, "CreateCommandAllocator"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["type"], type, options); + FieldToJson(args["riid"], riid, options); + FieldToJson(args["ppCommandAllocator"], ppCommandAllocator, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12Device_CreateGraphicsPipelineState( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value, + StructPointerDecoder* pDesc, + Decoded_GUID riid, + HandlePointerDecoder* ppPipelineState) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12Device", object_id, "CreateGraphicsPipelineState"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["pDesc"], pDesc, options); + FieldToJson(args["riid"], riid, options); + FieldToJson(args["ppPipelineState"], ppPipelineState, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12Device_CreateComputePipelineState( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value, + StructPointerDecoder* pDesc, + Decoded_GUID riid, + HandlePointerDecoder* ppPipelineState) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12Device", object_id, "CreateComputePipelineState"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["pDesc"], pDesc, options); + FieldToJson(args["riid"], riid, options); + FieldToJson(args["ppPipelineState"], ppPipelineState, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12Device_CreateCommandList( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value, + UINT nodeMask, + D3D12_COMMAND_LIST_TYPE type, + format::HandleId pCommandAllocator, + format::HandleId pInitialState, + Decoded_GUID riid, + HandlePointerDecoder* ppCommandList) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12Device", object_id, "CreateCommandList"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJsonAsFixedWidthBinary(args["nodeMask"], nodeMask, options); + FieldToJson(args["type"], type, options); + FieldToJson(args["pCommandAllocator"], pCommandAllocator, options); + FieldToJson(args["pInitialState"], pInitialState, options); + FieldToJson(args["riid"], riid, options); + FieldToJson(args["ppCommandList"], ppCommandList, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12Device_CreateDescriptorHeap( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value, + StructPointerDecoder* pDescriptorHeapDesc, + Decoded_GUID riid, + HandlePointerDecoder* ppvHeap) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12Device", object_id, "CreateDescriptorHeap"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["pDescriptorHeapDesc"], pDescriptorHeapDesc, options); + FieldToJson(args["riid"], riid, options); + FieldToJson(args["ppvHeap"], ppvHeap, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12Device_GetDescriptorHandleIncrementSize( + const ApiCallInfo& call_info, + format::HandleId object_id, + UINT return_value, + D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapType) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12Device", object_id, "GetDescriptorHandleIncrementSize"); + const JsonOptions& options = writer_->GetOptions(); + FieldToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["DescriptorHeapType"], DescriptorHeapType, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12Device_CreateRootSignature( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value, + UINT nodeMask, + PointerDecoder* pBlobWithRootSignature, + SIZE_T blobLengthInBytes, + Decoded_GUID riid, + HandlePointerDecoder* ppvRootSignature) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12Device", object_id, "CreateRootSignature"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJsonAsFixedWidthBinary(args["nodeMask"], nodeMask, options); + FieldToJson(args["pBlobWithRootSignature"], pBlobWithRootSignature, options); + FieldToJson(args["blobLengthInBytes"], blobLengthInBytes, options); + FieldToJson(args["riid"], riid, options); + FieldToJson(args["ppvRootSignature"], ppvRootSignature, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12Device_CreateConstantBufferView( + const ApiCallInfo& call_info, + format::HandleId object_id, + StructPointerDecoder* pDesc, + Decoded_D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12Device", object_id, "CreateConstantBufferView"); + const JsonOptions& options = writer_->GetOptions(); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["pDesc"], pDesc, options); + FieldToJson(args["DestDescriptor"], DestDescriptor, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12Device_CreateShaderResourceView( + const ApiCallInfo& call_info, + format::HandleId object_id, + format::HandleId pResource, + StructPointerDecoder* pDesc, + Decoded_D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12Device", object_id, "CreateShaderResourceView"); + const JsonOptions& options = writer_->GetOptions(); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["pResource"], pResource, options); + FieldToJson(args["pDesc"], pDesc, options); + FieldToJson(args["DestDescriptor"], DestDescriptor, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12Device_CreateUnorderedAccessView( + const ApiCallInfo& call_info, + format::HandleId object_id, + format::HandleId pResource, + format::HandleId pCounterResource, + StructPointerDecoder* pDesc, + Decoded_D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12Device", object_id, "CreateUnorderedAccessView"); + const JsonOptions& options = writer_->GetOptions(); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["pResource"], pResource, options); + FieldToJson(args["pCounterResource"], pCounterResource, options); + FieldToJson(args["pDesc"], pDesc, options); + FieldToJson(args["DestDescriptor"], DestDescriptor, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12Device_CreateRenderTargetView( + const ApiCallInfo& call_info, + format::HandleId object_id, + format::HandleId pResource, + StructPointerDecoder* pDesc, + Decoded_D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12Device", object_id, "CreateRenderTargetView"); + const JsonOptions& options = writer_->GetOptions(); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["pResource"], pResource, options); + FieldToJson(args["pDesc"], pDesc, options); + FieldToJson(args["DestDescriptor"], DestDescriptor, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12Device_CreateDepthStencilView( + const ApiCallInfo& call_info, + format::HandleId object_id, + format::HandleId pResource, + StructPointerDecoder* pDesc, + Decoded_D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12Device", object_id, "CreateDepthStencilView"); + const JsonOptions& options = writer_->GetOptions(); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["pResource"], pResource, options); + FieldToJson(args["pDesc"], pDesc, options); + FieldToJson(args["DestDescriptor"], DestDescriptor, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12Device_CreateSampler( + const ApiCallInfo& call_info, + format::HandleId object_id, + StructPointerDecoder* pDesc, + Decoded_D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12Device", object_id, "CreateSampler"); + const JsonOptions& options = writer_->GetOptions(); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["pDesc"], pDesc, options); + FieldToJson(args["DestDescriptor"], DestDescriptor, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12Device_CopyDescriptors( + const ApiCallInfo& call_info, + format::HandleId object_id, + UINT NumDestDescriptorRanges, + StructPointerDecoder* pDestDescriptorRangeStarts, + PointerDecoder* pDestDescriptorRangeSizes, + UINT NumSrcDescriptorRanges, + StructPointerDecoder* pSrcDescriptorRangeStarts, + PointerDecoder* pSrcDescriptorRangeSizes, + D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12Device", object_id, "CopyDescriptors"); + const JsonOptions& options = writer_->GetOptions(); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["NumDestDescriptorRanges"], NumDestDescriptorRanges, options); + FieldToJson(args["pDestDescriptorRangeStarts"], pDestDescriptorRangeStarts, options); + FieldToJson(args["pDestDescriptorRangeSizes"], pDestDescriptorRangeSizes, options); + FieldToJson(args["NumSrcDescriptorRanges"], NumSrcDescriptorRanges, options); + FieldToJson(args["pSrcDescriptorRangeStarts"], pSrcDescriptorRangeStarts, options); + FieldToJson(args["pSrcDescriptorRangeSizes"], pSrcDescriptorRangeSizes, options); + FieldToJson(args["DescriptorHeapsType"], DescriptorHeapsType, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12Device_CopyDescriptorsSimple( + const ApiCallInfo& call_info, + format::HandleId object_id, + UINT NumDescriptors, + Decoded_D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptorRangeStart, + Decoded_D3D12_CPU_DESCRIPTOR_HANDLE SrcDescriptorRangeStart, + D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12Device", object_id, "CopyDescriptorsSimple"); + const JsonOptions& options = writer_->GetOptions(); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["NumDescriptors"], NumDescriptors, options); + FieldToJson(args["DestDescriptorRangeStart"], DestDescriptorRangeStart, options); + FieldToJson(args["SrcDescriptorRangeStart"], SrcDescriptorRangeStart, options); + FieldToJson(args["DescriptorHeapsType"], DescriptorHeapsType, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12Device_GetResourceAllocationInfo( + const ApiCallInfo& call_info, + format::HandleId object_id, + Decoded_D3D12_RESOURCE_ALLOCATION_INFO return_value, + UINT visibleMask, + UINT numResourceDescs, + StructPointerDecoder* pResourceDescs) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12Device", object_id, "GetResourceAllocationInfo"); + const JsonOptions& options = writer_->GetOptions(); + FieldToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJsonAsFixedWidthBinary(args["visibleMask"], visibleMask, options); + FieldToJson(args["numResourceDescs"], numResourceDescs, options); + FieldToJson(args["pResourceDescs"], pResourceDescs, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12Device_GetCustomHeapProperties( + const ApiCallInfo& call_info, + format::HandleId object_id, + Decoded_D3D12_HEAP_PROPERTIES return_value, + UINT nodeMask, + D3D12_HEAP_TYPE heapType) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12Device", object_id, "GetCustomHeapProperties"); + const JsonOptions& options = writer_->GetOptions(); + FieldToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJsonAsFixedWidthBinary(args["nodeMask"], nodeMask, options); + FieldToJson(args["heapType"], heapType, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12Device_CreateCommittedResource( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value, + StructPointerDecoder* pHeapProperties, + D3D12_HEAP_FLAGS HeapFlags, + StructPointerDecoder* pDesc, + D3D12_RESOURCE_STATES InitialResourceState, + StructPointerDecoder* pOptimizedClearValue, + Decoded_GUID riidResource, + HandlePointerDecoder* ppvResource) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12Device", object_id, "CreateCommittedResource"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["pHeapProperties"], pHeapProperties, options); + FieldToJson_D3D12_HEAP_FLAGS(args["HeapFlags"], HeapFlags, options); + FieldToJson(args["pDesc"], pDesc, options); + FieldToJson_D3D12_RESOURCE_STATES(args["InitialResourceState"], InitialResourceState, options); + FieldToJson(args["pOptimizedClearValue"], pOptimizedClearValue, options); + FieldToJson(args["riidResource"], riidResource, options); + FieldToJson(args["ppvResource"], ppvResource, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12Device_CreateHeap( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value, + StructPointerDecoder* pDesc, + Decoded_GUID riid, + HandlePointerDecoder* ppvHeap) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12Device", object_id, "CreateHeap"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["pDesc"], pDesc, options); + FieldToJson(args["riid"], riid, options); + FieldToJson(args["ppvHeap"], ppvHeap, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12Device_CreatePlacedResource( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value, + format::HandleId pHeap, + UINT64 HeapOffset, + StructPointerDecoder* pDesc, + D3D12_RESOURCE_STATES InitialState, + StructPointerDecoder* pOptimizedClearValue, + Decoded_GUID riid, + HandlePointerDecoder* ppvResource) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12Device", object_id, "CreatePlacedResource"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["pHeap"], pHeap, options); + FieldToJson(args["HeapOffset"], HeapOffset, options); + FieldToJson(args["pDesc"], pDesc, options); + FieldToJson_D3D12_RESOURCE_STATES(args["InitialState"], InitialState, options); + FieldToJson(args["pOptimizedClearValue"], pOptimizedClearValue, options); + FieldToJson(args["riid"], riid, options); + FieldToJson(args["ppvResource"], ppvResource, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12Device_CreateReservedResource( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value, + StructPointerDecoder* pDesc, + D3D12_RESOURCE_STATES InitialState, + StructPointerDecoder* pOptimizedClearValue, + Decoded_GUID riid, + HandlePointerDecoder* ppvResource) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12Device", object_id, "CreateReservedResource"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["pDesc"], pDesc, options); + FieldToJson_D3D12_RESOURCE_STATES(args["InitialState"], InitialState, options); + FieldToJson(args["pOptimizedClearValue"], pOptimizedClearValue, options); + FieldToJson(args["riid"], riid, options); + FieldToJson(args["ppvResource"], ppvResource, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12Device_CreateSharedHandle( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value, + format::HandleId pObject, + StructPointerDecoder* pAttributes, + DWORD Access, + WStringDecoder* Name, + PointerDecoder* pHandle) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12Device", object_id, "CreateSharedHandle"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["pObject"], pObject, options); + FieldToJson(args["pAttributes"], pAttributes, options); + FieldToJson(args["Access"], Access, options); + FieldToJson(args["Name"], Name, options); + FieldToJson(args["pHandle"], pHandle, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12Device_OpenSharedHandle( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value, + uint64_t NTHandle, + Decoded_GUID riid, + HandlePointerDecoder* ppvObj) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12Device", object_id, "OpenSharedHandle"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["NTHandle"], NTHandle, options); + FieldToJson(args["riid"], riid, options); + FieldToJson(args["ppvObj"], ppvObj, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12Device_OpenSharedHandleByName( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value, + WStringDecoder* Name, + DWORD Access, + PointerDecoder* pNTHandle) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12Device", object_id, "OpenSharedHandleByName"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["Name"], Name, options); + FieldToJson(args["Access"], Access, options); + FieldToJson(args["pNTHandle"], pNTHandle, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12Device_MakeResident( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value, + UINT NumObjects, + HandlePointerDecoder* ppObjects) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12Device", object_id, "MakeResident"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["NumObjects"], NumObjects, options); + FieldToJson(args["ppObjects"], ppObjects, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12Device_Evict( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value, + UINT NumObjects, + HandlePointerDecoder* ppObjects) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12Device", object_id, "Evict"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["NumObjects"], NumObjects, options); + FieldToJson(args["ppObjects"], ppObjects, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12Device_CreateFence( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value, + UINT64 InitialValue, + D3D12_FENCE_FLAGS Flags, + Decoded_GUID riid, + HandlePointerDecoder* ppFence) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12Device", object_id, "CreateFence"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["InitialValue"], InitialValue, options); + FieldToJson_D3D12_FENCE_FLAGS(args["Flags"], Flags, options); + FieldToJson(args["riid"], riid, options); + FieldToJson(args["ppFence"], ppFence, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12Device_GetDeviceRemovedReason( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12Device", object_id, "GetDeviceRemovedReason"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12Device_GetCopyableFootprints( + const ApiCallInfo& call_info, + format::HandleId object_id, + StructPointerDecoder* pResourceDesc, + UINT FirstSubresource, + UINT NumSubresources, + UINT64 BaseOffset, + StructPointerDecoder* pLayouts, + PointerDecoder* pNumRows, + PointerDecoder* pRowSizeInBytes, + PointerDecoder* pTotalBytes) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12Device", object_id, "GetCopyableFootprints"); + const JsonOptions& options = writer_->GetOptions(); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["pResourceDesc"], pResourceDesc, options); + FieldToJson(args["FirstSubresource"], FirstSubresource, options); + FieldToJson(args["NumSubresources"], NumSubresources, options); + FieldToJson(args["BaseOffset"], BaseOffset, options); + FieldToJson(args["pLayouts"], pLayouts, options); + FieldToJson(args["pNumRows"], pNumRows, options); + FieldToJson(args["pRowSizeInBytes"], pRowSizeInBytes, options); + FieldToJson(args["pTotalBytes"], pTotalBytes, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12Device_CreateQueryHeap( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value, + StructPointerDecoder* pDesc, + Decoded_GUID riid, + HandlePointerDecoder* ppvHeap) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12Device", object_id, "CreateQueryHeap"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["pDesc"], pDesc, options); + FieldToJson(args["riid"], riid, options); + FieldToJson(args["ppvHeap"], ppvHeap, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12Device_SetStablePowerState( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value, + BOOL Enable) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12Device", object_id, "SetStablePowerState"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + Bool32ToJson(args["Enable"], Enable, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12Device_CreateCommandSignature( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value, + StructPointerDecoder* pDesc, + format::HandleId pRootSignature, + Decoded_GUID riid, + HandlePointerDecoder* ppvCommandSignature) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12Device", object_id, "CreateCommandSignature"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["pDesc"], pDesc, options); + FieldToJson(args["pRootSignature"], pRootSignature, options); + FieldToJson(args["riid"], riid, options); + FieldToJson(args["ppvCommandSignature"], ppvCommandSignature, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12Device_GetResourceTiling( + const ApiCallInfo& call_info, + format::HandleId object_id, + format::HandleId pTiledResource, + PointerDecoder* pNumTilesForEntireResource, + StructPointerDecoder* pPackedMipDesc, + StructPointerDecoder* pStandardTileShapeForNonPackedMips, + PointerDecoder* pNumSubresourceTilings, + UINT FirstSubresourceTilingToGet, + StructPointerDecoder* pSubresourceTilingsForNonPackedMips) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12Device", object_id, "GetResourceTiling"); + const JsonOptions& options = writer_->GetOptions(); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["pTiledResource"], pTiledResource, options); + FieldToJson(args["pNumTilesForEntireResource"], pNumTilesForEntireResource, options); + FieldToJson(args["pPackedMipDesc"], pPackedMipDesc, options); + FieldToJson(args["pStandardTileShapeForNonPackedMips"], pStandardTileShapeForNonPackedMips, options); + FieldToJson(args["pNumSubresourceTilings"], pNumSubresourceTilings, options); + FieldToJson(args["FirstSubresourceTilingToGet"], FirstSubresourceTilingToGet, options); + FieldToJson(args["pSubresourceTilingsForNonPackedMips"], pSubresourceTilingsForNonPackedMips, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12Device_GetAdapterLuid( + const ApiCallInfo& call_info, + format::HandleId object_id, + Decoded_LUID return_value) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12Device", object_id, "GetAdapterLuid"); + const JsonOptions& options = writer_->GetOptions(); + FieldToJson(method[format::kNameReturn], return_value, options); + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12PipelineLibrary_StorePipeline( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value, + WStringDecoder* pName, + format::HandleId pPipeline) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12PipelineLibrary", object_id, "StorePipeline"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["pName"], pName, options); + FieldToJson(args["pPipeline"], pPipeline, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12PipelineLibrary_LoadGraphicsPipeline( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value, + WStringDecoder* pName, + StructPointerDecoder* pDesc, + Decoded_GUID riid, + HandlePointerDecoder* ppPipelineState) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12PipelineLibrary", object_id, "LoadGraphicsPipeline"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["pName"], pName, options); + FieldToJson(args["pDesc"], pDesc, options); + FieldToJson(args["riid"], riid, options); + FieldToJson(args["ppPipelineState"], ppPipelineState, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12PipelineLibrary_LoadComputePipeline( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value, + WStringDecoder* pName, + StructPointerDecoder* pDesc, + Decoded_GUID riid, + HandlePointerDecoder* ppPipelineState) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12PipelineLibrary", object_id, "LoadComputePipeline"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["pName"], pName, options); + FieldToJson(args["pDesc"], pDesc, options); + FieldToJson(args["riid"], riid, options); + FieldToJson(args["ppPipelineState"], ppPipelineState, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12PipelineLibrary_GetSerializedSize( + const ApiCallInfo& call_info, + format::HandleId object_id, + SIZE_T return_value) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12PipelineLibrary", object_id, "GetSerializedSize"); + const JsonOptions& options = writer_->GetOptions(); + FieldToJson(method[format::kNameReturn], return_value, options); + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12PipelineLibrary_Serialize( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value, + PointerDecoder* pData, + SIZE_T DataSizeInBytes) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12PipelineLibrary", object_id, "Serialize"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["pData"], pData, options); + FieldToJson(args["DataSizeInBytes"], DataSizeInBytes, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12PipelineLibrary1_LoadPipeline( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value, + WStringDecoder* pName, + StructPointerDecoder* pDesc, + Decoded_GUID riid, + HandlePointerDecoder* ppPipelineState) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12PipelineLibrary1", object_id, "LoadPipeline"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["pName"], pName, options); + FieldToJson(args["pDesc"], pDesc, options); + FieldToJson(args["riid"], riid, options); + FieldToJson(args["ppPipelineState"], ppPipelineState, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12Device1_CreatePipelineLibrary( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value, + PointerDecoder* pLibraryBlob, + SIZE_T BlobLength, + Decoded_GUID riid, + HandlePointerDecoder* ppPipelineLibrary) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12Device1", object_id, "CreatePipelineLibrary"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["pLibraryBlob"], pLibraryBlob, options); + FieldToJson(args["BlobLength"], BlobLength, options); + FieldToJson(args["riid"], riid, options); + FieldToJson(args["ppPipelineLibrary"], ppPipelineLibrary, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12Device1_SetEventOnMultipleFenceCompletion( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value, + HandlePointerDecoder* ppFences, + PointerDecoder* pFenceValues, + UINT NumFences, + D3D12_MULTIPLE_FENCE_WAIT_FLAGS Flags, + uint64_t hEvent) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12Device1", object_id, "SetEventOnMultipleFenceCompletion"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["ppFences"], ppFences, options); + FieldToJson(args["pFenceValues"], pFenceValues, options); + FieldToJson(args["NumFences"], NumFences, options); + FieldToJson_D3D12_MULTIPLE_FENCE_WAIT_FLAGS(args["Flags"], Flags, options); + FieldToJson(args["hEvent"], hEvent, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12Device1_SetResidencyPriority( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value, + UINT NumObjects, + HandlePointerDecoder* ppObjects, + PointerDecoder* pPriorities) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12Device1", object_id, "SetResidencyPriority"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["NumObjects"], NumObjects, options); + FieldToJson(args["ppObjects"], ppObjects, options); + FieldToJson(args["pPriorities"], pPriorities, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12Device2_CreatePipelineState( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value, + StructPointerDecoder* pDesc, + Decoded_GUID riid, + HandlePointerDecoder* ppPipelineState) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12Device2", object_id, "CreatePipelineState"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["pDesc"], pDesc, options); + FieldToJson(args["riid"], riid, options); + FieldToJson(args["ppPipelineState"], ppPipelineState, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12Device3_OpenExistingHeapFromAddress( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value, + uint64_t pAddress, + Decoded_GUID riid, + HandlePointerDecoder* ppvHeap) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12Device3", object_id, "OpenExistingHeapFromAddress"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["pAddress"], pAddress, options); + FieldToJson(args["riid"], riid, options); + FieldToJson(args["ppvHeap"], ppvHeap, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12Device3_OpenExistingHeapFromFileMapping( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value, + uint64_t hFileMapping, + Decoded_GUID riid, + HandlePointerDecoder* ppvHeap) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12Device3", object_id, "OpenExistingHeapFromFileMapping"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["hFileMapping"], hFileMapping, options); + FieldToJson(args["riid"], riid, options); + FieldToJson(args["ppvHeap"], ppvHeap, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12Device3_EnqueueMakeResident( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value, + D3D12_RESIDENCY_FLAGS Flags, + UINT NumObjects, + HandlePointerDecoder* ppObjects, + format::HandleId pFenceToSignal, + UINT64 FenceValueToSignal) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12Device3", object_id, "EnqueueMakeResident"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson_D3D12_RESIDENCY_FLAGS(args["Flags"], Flags, options); + FieldToJson(args["NumObjects"], NumObjects, options); + FieldToJson(args["ppObjects"], ppObjects, options); + FieldToJson(args["pFenceToSignal"], pFenceToSignal, options); + FieldToJson(args["FenceValueToSignal"], FenceValueToSignal, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12ProtectedSession_GetStatusFence( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value, + Decoded_GUID riid, + HandlePointerDecoder* ppFence) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12ProtectedSession", object_id, "GetStatusFence"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["riid"], riid, options); + FieldToJson(args["ppFence"], ppFence, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12ProtectedSession_GetSessionStatus( + const ApiCallInfo& call_info, + format::HandleId object_id, + D3D12_PROTECTED_SESSION_STATUS return_value) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12ProtectedSession", object_id, "GetSessionStatus"); + const JsonOptions& options = writer_->GetOptions(); + FieldToJson_D3D12_PROTECTED_SESSION_STATUS(method[format::kNameReturn], return_value, options); + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12ProtectedResourceSession_GetDesc( + const ApiCallInfo& call_info, + format::HandleId object_id, + Decoded_D3D12_PROTECTED_RESOURCE_SESSION_DESC return_value) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12ProtectedResourceSession", object_id, "GetDesc"); + const JsonOptions& options = writer_->GetOptions(); + FieldToJson(method[format::kNameReturn], return_value, options); + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12Device4_CreateCommandList1( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value, + UINT nodeMask, + D3D12_COMMAND_LIST_TYPE type, + D3D12_COMMAND_LIST_FLAGS flags, + Decoded_GUID riid, + HandlePointerDecoder* ppCommandList) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12Device4", object_id, "CreateCommandList1"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJsonAsFixedWidthBinary(args["nodeMask"], nodeMask, options); + FieldToJson(args["type"], type, options); + FieldToJson_D3D12_COMMAND_LIST_FLAGS(args["flags"], flags, options); + FieldToJson(args["riid"], riid, options); + FieldToJson(args["ppCommandList"], ppCommandList, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12Device4_CreateProtectedResourceSession( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value, + StructPointerDecoder* pDesc, + Decoded_GUID riid, + HandlePointerDecoder* ppSession) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12Device4", object_id, "CreateProtectedResourceSession"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["pDesc"], pDesc, options); + FieldToJson(args["riid"], riid, options); + FieldToJson(args["ppSession"], ppSession, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12Device4_CreateCommittedResource1( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value, + StructPointerDecoder* pHeapProperties, + D3D12_HEAP_FLAGS HeapFlags, + StructPointerDecoder* pDesc, + D3D12_RESOURCE_STATES InitialResourceState, + StructPointerDecoder* pOptimizedClearValue, + format::HandleId pProtectedSession, + Decoded_GUID riidResource, + HandlePointerDecoder* ppvResource) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12Device4", object_id, "CreateCommittedResource1"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["pHeapProperties"], pHeapProperties, options); + FieldToJson_D3D12_HEAP_FLAGS(args["HeapFlags"], HeapFlags, options); + FieldToJson(args["pDesc"], pDesc, options); + FieldToJson_D3D12_RESOURCE_STATES(args["InitialResourceState"], InitialResourceState, options); + FieldToJson(args["pOptimizedClearValue"], pOptimizedClearValue, options); + FieldToJson(args["pProtectedSession"], pProtectedSession, options); + FieldToJson(args["riidResource"], riidResource, options); + FieldToJson(args["ppvResource"], ppvResource, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12Device4_CreateHeap1( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value, + StructPointerDecoder* pDesc, + format::HandleId pProtectedSession, + Decoded_GUID riid, + HandlePointerDecoder* ppvHeap) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12Device4", object_id, "CreateHeap1"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["pDesc"], pDesc, options); + FieldToJson(args["pProtectedSession"], pProtectedSession, options); + FieldToJson(args["riid"], riid, options); + FieldToJson(args["ppvHeap"], ppvHeap, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12Device4_CreateReservedResource1( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value, + StructPointerDecoder* pDesc, + D3D12_RESOURCE_STATES InitialState, + StructPointerDecoder* pOptimizedClearValue, + format::HandleId pProtectedSession, + Decoded_GUID riid, + HandlePointerDecoder* ppvResource) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12Device4", object_id, "CreateReservedResource1"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["pDesc"], pDesc, options); + FieldToJson_D3D12_RESOURCE_STATES(args["InitialState"], InitialState, options); + FieldToJson(args["pOptimizedClearValue"], pOptimizedClearValue, options); + FieldToJson(args["pProtectedSession"], pProtectedSession, options); + FieldToJson(args["riid"], riid, options); + FieldToJson(args["ppvResource"], ppvResource, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12Device4_GetResourceAllocationInfo1( + const ApiCallInfo& call_info, + format::HandleId object_id, + Decoded_D3D12_RESOURCE_ALLOCATION_INFO return_value, + UINT visibleMask, + UINT numResourceDescs, + StructPointerDecoder* pResourceDescs, + StructPointerDecoder* pResourceAllocationInfo1) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12Device4", object_id, "GetResourceAllocationInfo1"); + const JsonOptions& options = writer_->GetOptions(); + FieldToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJsonAsFixedWidthBinary(args["visibleMask"], visibleMask, options); + FieldToJson(args["numResourceDescs"], numResourceDescs, options); + FieldToJson(args["pResourceDescs"], pResourceDescs, options); + FieldToJson(args["pResourceAllocationInfo1"], pResourceAllocationInfo1, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12LifetimeOwner_LifetimeStateUpdated( + const ApiCallInfo& call_info, + format::HandleId object_id, + D3D12_LIFETIME_STATE NewState) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12LifetimeOwner", object_id, "LifetimeStateUpdated"); + const JsonOptions& options = writer_->GetOptions(); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["NewState"], NewState, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12SwapChainAssistant_GetLUID( + const ApiCallInfo& call_info, + format::HandleId object_id, + Decoded_LUID return_value) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12SwapChainAssistant", object_id, "GetLUID"); + const JsonOptions& options = writer_->GetOptions(); + FieldToJson(method[format::kNameReturn], return_value, options); + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12SwapChainAssistant_GetSwapChainObject( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value, + Decoded_GUID riid, + HandlePointerDecoder* ppv) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12SwapChainAssistant", object_id, "GetSwapChainObject"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["riid"], riid, options); + FieldToJson(args["ppv"], ppv, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12SwapChainAssistant_GetCurrentResourceAndCommandQueue( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value, + Decoded_GUID riidResource, + HandlePointerDecoder* ppvResource, + Decoded_GUID riidQueue, + HandlePointerDecoder* ppvQueue) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12SwapChainAssistant", object_id, "GetCurrentResourceAndCommandQueue"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["riidResource"], riidResource, options); + FieldToJson(args["ppvResource"], ppvResource, options); + FieldToJson(args["riidQueue"], riidQueue, options); + FieldToJson(args["ppvQueue"], ppvQueue, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12SwapChainAssistant_InsertImplicitSync( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12SwapChainAssistant", object_id, "InsertImplicitSync"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12LifetimeTracker_DestroyOwnedObject( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value, + format::HandleId pObject) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12LifetimeTracker", object_id, "DestroyOwnedObject"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["pObject"], pObject, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12StateObjectProperties_GetShaderIdentifier( + const ApiCallInfo& call_info, + format::HandleId object_id, + PointerDecoder* return_value, + WStringDecoder* pExportName) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12StateObjectProperties", object_id, "GetShaderIdentifier"); + const JsonOptions& options = writer_->GetOptions(); + FieldToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["pExportName"], pExportName, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12StateObjectProperties_GetShaderStackSize( + const ApiCallInfo& call_info, + format::HandleId object_id, + UINT64 return_value, + WStringDecoder* pExportName) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12StateObjectProperties", object_id, "GetShaderStackSize"); + const JsonOptions& options = writer_->GetOptions(); + FieldToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["pExportName"], pExportName, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12StateObjectProperties_GetPipelineStackSize( + const ApiCallInfo& call_info, + format::HandleId object_id, + UINT64 return_value) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12StateObjectProperties", object_id, "GetPipelineStackSize"); + const JsonOptions& options = writer_->GetOptions(); + FieldToJson(method[format::kNameReturn], return_value, options); + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12StateObjectProperties_SetPipelineStackSize( + const ApiCallInfo& call_info, + format::HandleId object_id, + UINT64 PipelineStackSizeInBytes) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12StateObjectProperties", object_id, "SetPipelineStackSize"); + const JsonOptions& options = writer_->GetOptions(); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["PipelineStackSizeInBytes"], PipelineStackSizeInBytes, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12Device5_CreateLifetimeTracker( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value, + format::HandleId pOwner, + Decoded_GUID riid, + HandlePointerDecoder* ppvTracker) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12Device5", object_id, "CreateLifetimeTracker"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["pOwner"], pOwner, options); + FieldToJson(args["riid"], riid, options); + FieldToJson(args["ppvTracker"], ppvTracker, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12Device5_RemoveDevice( + const ApiCallInfo& call_info, + format::HandleId object_id) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12Device5", object_id, "RemoveDevice"); + const JsonOptions& options = writer_->GetOptions(); + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12Device5_EnumerateMetaCommands( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value, + PointerDecoder* pNumMetaCommands, + StructPointerDecoder* pDescs) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12Device5", object_id, "EnumerateMetaCommands"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["pNumMetaCommands"], pNumMetaCommands, options); + FieldToJson(args["pDescs"], pDescs, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12Device5_EnumerateMetaCommandParameters( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value, + Decoded_GUID CommandId, + D3D12_META_COMMAND_PARAMETER_STAGE Stage, + PointerDecoder* pTotalStructureSizeInBytes, + PointerDecoder* pParameterCount, + StructPointerDecoder* pParameterDescs) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12Device5", object_id, "EnumerateMetaCommandParameters"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["CommandId"], CommandId, options); + FieldToJson(args["Stage"], Stage, options); + FieldToJson(args["pTotalStructureSizeInBytes"], pTotalStructureSizeInBytes, options); + FieldToJson(args["pParameterCount"], pParameterCount, options); + FieldToJson(args["pParameterDescs"], pParameterDescs, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12Device5_CreateMetaCommand( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value, + Decoded_GUID CommandId, + UINT NodeMask, + PointerDecoder* pCreationParametersData, + SIZE_T CreationParametersDataSizeInBytes, + Decoded_GUID riid, + HandlePointerDecoder* ppMetaCommand) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12Device5", object_id, "CreateMetaCommand"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["CommandId"], CommandId, options); + FieldToJsonAsFixedWidthBinary(args["NodeMask"], NodeMask, options); + FieldToJson(args["pCreationParametersData"], pCreationParametersData, options); + FieldToJson(args["CreationParametersDataSizeInBytes"], CreationParametersDataSizeInBytes, options); + FieldToJson(args["riid"], riid, options); + FieldToJson(args["ppMetaCommand"], ppMetaCommand, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12Device5_CreateStateObject( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value, + StructPointerDecoder* pDesc, + Decoded_GUID riid, + HandlePointerDecoder* ppStateObject) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12Device5", object_id, "CreateStateObject"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["pDesc"], pDesc, options); + FieldToJson(args["riid"], riid, options); + FieldToJson(args["ppStateObject"], ppStateObject, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12Device5_GetRaytracingAccelerationStructurePrebuildInfo( + const ApiCallInfo& call_info, + format::HandleId object_id, + StructPointerDecoder* pDesc, + StructPointerDecoder* pInfo) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12Device5", object_id, "GetRaytracingAccelerationStructurePrebuildInfo"); + const JsonOptions& options = writer_->GetOptions(); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["pDesc"], pDesc, options); + FieldToJson(args["pInfo"], pInfo, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12Device5_CheckDriverMatchingIdentifier( + const ApiCallInfo& call_info, + format::HandleId object_id, + D3D12_DRIVER_MATCHING_IDENTIFIER_STATUS return_value, + D3D12_SERIALIZED_DATA_TYPE SerializedDataType, + StructPointerDecoder* pIdentifierToCheck) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12Device5", object_id, "CheckDriverMatchingIdentifier"); + const JsonOptions& options = writer_->GetOptions(); + FieldToJson_D3D12_DRIVER_MATCHING_IDENTIFIER_STATUS(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["SerializedDataType"], SerializedDataType, options); + FieldToJson(args["pIdentifierToCheck"], pIdentifierToCheck, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12DeviceRemovedExtendedDataSettings_SetAutoBreadcrumbsEnablement( + const ApiCallInfo& call_info, + format::HandleId object_id, + D3D12_DRED_ENABLEMENT Enablement) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12DeviceRemovedExtendedDataSettings", object_id, "SetAutoBreadcrumbsEnablement"); + const JsonOptions& options = writer_->GetOptions(); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["Enablement"], Enablement, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12DeviceRemovedExtendedDataSettings_SetPageFaultEnablement( + const ApiCallInfo& call_info, + format::HandleId object_id, + D3D12_DRED_ENABLEMENT Enablement) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12DeviceRemovedExtendedDataSettings", object_id, "SetPageFaultEnablement"); + const JsonOptions& options = writer_->GetOptions(); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["Enablement"], Enablement, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12DeviceRemovedExtendedDataSettings_SetWatsonDumpEnablement( + const ApiCallInfo& call_info, + format::HandleId object_id, + D3D12_DRED_ENABLEMENT Enablement) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12DeviceRemovedExtendedDataSettings", object_id, "SetWatsonDumpEnablement"); + const JsonOptions& options = writer_->GetOptions(); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["Enablement"], Enablement, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12DeviceRemovedExtendedDataSettings1_SetBreadcrumbContextEnablement( + const ApiCallInfo& call_info, + format::HandleId object_id, + D3D12_DRED_ENABLEMENT Enablement) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12DeviceRemovedExtendedDataSettings1", object_id, "SetBreadcrumbContextEnablement"); + const JsonOptions& options = writer_->GetOptions(); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["Enablement"], Enablement, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12DeviceRemovedExtendedDataSettings2_UseMarkersOnlyAutoBreadcrumbs( + const ApiCallInfo& call_info, + format::HandleId object_id, + BOOL MarkersOnly) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12DeviceRemovedExtendedDataSettings2", object_id, "UseMarkersOnlyAutoBreadcrumbs"); + const JsonOptions& options = writer_->GetOptions(); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + Bool32ToJson(args["MarkersOnly"], MarkersOnly, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12DeviceRemovedExtendedData_GetAutoBreadcrumbsOutput( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value, + StructPointerDecoder* pOutput) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12DeviceRemovedExtendedData", object_id, "GetAutoBreadcrumbsOutput"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["pOutput"], pOutput, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12DeviceRemovedExtendedData_GetPageFaultAllocationOutput( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value, + StructPointerDecoder* pOutput) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12DeviceRemovedExtendedData", object_id, "GetPageFaultAllocationOutput"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["pOutput"], pOutput, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12DeviceRemovedExtendedData1_GetAutoBreadcrumbsOutput1( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value, + StructPointerDecoder* pOutput) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12DeviceRemovedExtendedData1", object_id, "GetAutoBreadcrumbsOutput1"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["pOutput"], pOutput, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12DeviceRemovedExtendedData1_GetPageFaultAllocationOutput1( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value, + StructPointerDecoder* pOutput) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12DeviceRemovedExtendedData1", object_id, "GetPageFaultAllocationOutput1"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["pOutput"], pOutput, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12DeviceRemovedExtendedData2_GetPageFaultAllocationOutput2( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value, + StructPointerDecoder* pOutput) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12DeviceRemovedExtendedData2", object_id, "GetPageFaultAllocationOutput2"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["pOutput"], pOutput, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12DeviceRemovedExtendedData2_GetDeviceState( + const ApiCallInfo& call_info, + format::HandleId object_id, + D3D12_DRED_DEVICE_STATE return_value) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12DeviceRemovedExtendedData2", object_id, "GetDeviceState"); + const JsonOptions& options = writer_->GetOptions(); + FieldToJson(method[format::kNameReturn], return_value, options); + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12Device6_SetBackgroundProcessingMode( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value, + D3D12_BACKGROUND_PROCESSING_MODE Mode, + D3D12_MEASUREMENTS_ACTION MeasurementsAction, + uint64_t hEventToSignalUponCompletion, + PointerDecoder* pbFurtherMeasurementsDesired) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12Device6", object_id, "SetBackgroundProcessingMode"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["Mode"], Mode, options); + FieldToJson(args["MeasurementsAction"], MeasurementsAction, options); + FieldToJson(args["hEventToSignalUponCompletion"], hEventToSignalUponCompletion, options); + Bool32ToJson(args["pbFurtherMeasurementsDesired"], pbFurtherMeasurementsDesired, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12ProtectedResourceSession1_GetDesc1( + const ApiCallInfo& call_info, + format::HandleId object_id, + Decoded_D3D12_PROTECTED_RESOURCE_SESSION_DESC1 return_value) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12ProtectedResourceSession1", object_id, "GetDesc1"); + const JsonOptions& options = writer_->GetOptions(); + FieldToJson(method[format::kNameReturn], return_value, options); + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12Device7_AddToStateObject( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value, + StructPointerDecoder* pAddition, + format::HandleId pStateObjectToGrowFrom, + Decoded_GUID riid, + HandlePointerDecoder* ppNewStateObject) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12Device7", object_id, "AddToStateObject"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["pAddition"], pAddition, options); + FieldToJson(args["pStateObjectToGrowFrom"], pStateObjectToGrowFrom, options); + FieldToJson(args["riid"], riid, options); + FieldToJson(args["ppNewStateObject"], ppNewStateObject, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12Device7_CreateProtectedResourceSession1( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value, + StructPointerDecoder* pDesc, + Decoded_GUID riid, + HandlePointerDecoder* ppSession) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12Device7", object_id, "CreateProtectedResourceSession1"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["pDesc"], pDesc, options); + FieldToJson(args["riid"], riid, options); + FieldToJson(args["ppSession"], ppSession, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12Device8_GetResourceAllocationInfo2( + const ApiCallInfo& call_info, + format::HandleId object_id, + Decoded_D3D12_RESOURCE_ALLOCATION_INFO return_value, + UINT visibleMask, + UINT numResourceDescs, + StructPointerDecoder* pResourceDescs, + StructPointerDecoder* pResourceAllocationInfo1) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12Device8", object_id, "GetResourceAllocationInfo2"); + const JsonOptions& options = writer_->GetOptions(); + FieldToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJsonAsFixedWidthBinary(args["visibleMask"], visibleMask, options); + FieldToJson(args["numResourceDescs"], numResourceDescs, options); + FieldToJson(args["pResourceDescs"], pResourceDescs, options); + FieldToJson(args["pResourceAllocationInfo1"], pResourceAllocationInfo1, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12Device8_CreateCommittedResource2( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value, + StructPointerDecoder* pHeapProperties, + D3D12_HEAP_FLAGS HeapFlags, + StructPointerDecoder* pDesc, + D3D12_RESOURCE_STATES InitialResourceState, + StructPointerDecoder* pOptimizedClearValue, + format::HandleId pProtectedSession, + Decoded_GUID riidResource, + HandlePointerDecoder* ppvResource) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12Device8", object_id, "CreateCommittedResource2"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["pHeapProperties"], pHeapProperties, options); + FieldToJson_D3D12_HEAP_FLAGS(args["HeapFlags"], HeapFlags, options); + FieldToJson(args["pDesc"], pDesc, options); + FieldToJson_D3D12_RESOURCE_STATES(args["InitialResourceState"], InitialResourceState, options); + FieldToJson(args["pOptimizedClearValue"], pOptimizedClearValue, options); + FieldToJson(args["pProtectedSession"], pProtectedSession, options); + FieldToJson(args["riidResource"], riidResource, options); + FieldToJson(args["ppvResource"], ppvResource, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12Device8_CreatePlacedResource1( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value, + format::HandleId pHeap, + UINT64 HeapOffset, + StructPointerDecoder* pDesc, + D3D12_RESOURCE_STATES InitialState, + StructPointerDecoder* pOptimizedClearValue, + Decoded_GUID riid, + HandlePointerDecoder* ppvResource) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12Device8", object_id, "CreatePlacedResource1"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["pHeap"], pHeap, options); + FieldToJson(args["HeapOffset"], HeapOffset, options); + FieldToJson(args["pDesc"], pDesc, options); + FieldToJson_D3D12_RESOURCE_STATES(args["InitialState"], InitialState, options); + FieldToJson(args["pOptimizedClearValue"], pOptimizedClearValue, options); + FieldToJson(args["riid"], riid, options); + FieldToJson(args["ppvResource"], ppvResource, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12Device8_CreateSamplerFeedbackUnorderedAccessView( + const ApiCallInfo& call_info, + format::HandleId object_id, + format::HandleId pTargetedResource, + format::HandleId pFeedbackResource, + Decoded_D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12Device8", object_id, "CreateSamplerFeedbackUnorderedAccessView"); + const JsonOptions& options = writer_->GetOptions(); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["pTargetedResource"], pTargetedResource, options); + FieldToJson(args["pFeedbackResource"], pFeedbackResource, options); + FieldToJson(args["DestDescriptor"], DestDescriptor, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12Device8_GetCopyableFootprints1( + const ApiCallInfo& call_info, + format::HandleId object_id, + StructPointerDecoder* pResourceDesc, + UINT FirstSubresource, + UINT NumSubresources, + UINT64 BaseOffset, + StructPointerDecoder* pLayouts, + PointerDecoder* pNumRows, + PointerDecoder* pRowSizeInBytes, + PointerDecoder* pTotalBytes) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12Device8", object_id, "GetCopyableFootprints1"); + const JsonOptions& options = writer_->GetOptions(); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["pResourceDesc"], pResourceDesc, options); + FieldToJson(args["FirstSubresource"], FirstSubresource, options); + FieldToJson(args["NumSubresources"], NumSubresources, options); + FieldToJson(args["BaseOffset"], BaseOffset, options); + FieldToJson(args["pLayouts"], pLayouts, options); + FieldToJson(args["pNumRows"], pNumRows, options); + FieldToJson(args["pRowSizeInBytes"], pRowSizeInBytes, options); + FieldToJson(args["pTotalBytes"], pTotalBytes, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12Resource1_GetProtectedResourceSession( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value, + Decoded_GUID riid, + HandlePointerDecoder* ppProtectedSession) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12Resource1", object_id, "GetProtectedResourceSession"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["riid"], riid, options); + FieldToJson(args["ppProtectedSession"], ppProtectedSession, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12Resource2_GetDesc1( + const ApiCallInfo& call_info, + format::HandleId object_id, + Decoded_D3D12_RESOURCE_DESC1 return_value) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12Resource2", object_id, "GetDesc1"); + const JsonOptions& options = writer_->GetOptions(); + FieldToJson(method[format::kNameReturn], return_value, options); + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12Heap1_GetProtectedResourceSession( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value, + Decoded_GUID riid, + HandlePointerDecoder* ppProtectedSession) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12Heap1", object_id, "GetProtectedResourceSession"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["riid"], riid, options); + FieldToJson(args["ppProtectedSession"], ppProtectedSession, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12GraphicsCommandList3_SetProtectedResourceSession( + const ApiCallInfo& call_info, + format::HandleId object_id, + format::HandleId pProtectedResourceSession) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12GraphicsCommandList3", object_id, "SetProtectedResourceSession"); + const JsonOptions& options = writer_->GetOptions(); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["pProtectedResourceSession"], pProtectedResourceSession, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12MetaCommand_GetRequiredParameterResourceSize( + const ApiCallInfo& call_info, + format::HandleId object_id, + UINT64 return_value, + D3D12_META_COMMAND_PARAMETER_STAGE Stage, + UINT ParameterIndex) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12MetaCommand", object_id, "GetRequiredParameterResourceSize"); + const JsonOptions& options = writer_->GetOptions(); + FieldToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["Stage"], Stage, options); + FieldToJson(args["ParameterIndex"], ParameterIndex, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12GraphicsCommandList4_BeginRenderPass( + const ApiCallInfo& call_info, + format::HandleId object_id, + UINT NumRenderTargets, + StructPointerDecoder* pRenderTargets, + StructPointerDecoder* pDepthStencil, + D3D12_RENDER_PASS_FLAGS Flags) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12GraphicsCommandList4", object_id, "BeginRenderPass"); + const JsonOptions& options = writer_->GetOptions(); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["NumRenderTargets"], NumRenderTargets, options); + FieldToJson(args["pRenderTargets"], pRenderTargets, options); + FieldToJson(args["pDepthStencil"], pDepthStencil, options); + FieldToJson_D3D12_RENDER_PASS_FLAGS(args["Flags"], Flags, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12GraphicsCommandList4_EndRenderPass( + const ApiCallInfo& call_info, + format::HandleId object_id) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12GraphicsCommandList4", object_id, "EndRenderPass"); + const JsonOptions& options = writer_->GetOptions(); + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12GraphicsCommandList4_InitializeMetaCommand( + const ApiCallInfo& call_info, + format::HandleId object_id, + format::HandleId pMetaCommand, + PointerDecoder* pInitializationParametersData, + SIZE_T InitializationParametersDataSizeInBytes) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12GraphicsCommandList4", object_id, "InitializeMetaCommand"); + const JsonOptions& options = writer_->GetOptions(); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["pMetaCommand"], pMetaCommand, options); + FieldToJson(args["pInitializationParametersData"], pInitializationParametersData, options); + FieldToJson(args["InitializationParametersDataSizeInBytes"], InitializationParametersDataSizeInBytes, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12GraphicsCommandList4_ExecuteMetaCommand( + const ApiCallInfo& call_info, + format::HandleId object_id, + format::HandleId pMetaCommand, + PointerDecoder* pExecutionParametersData, + SIZE_T ExecutionParametersDataSizeInBytes) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12GraphicsCommandList4", object_id, "ExecuteMetaCommand"); + const JsonOptions& options = writer_->GetOptions(); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["pMetaCommand"], pMetaCommand, options); + FieldToJson(args["pExecutionParametersData"], pExecutionParametersData, options); + FieldToJson(args["ExecutionParametersDataSizeInBytes"], ExecutionParametersDataSizeInBytes, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12GraphicsCommandList4_BuildRaytracingAccelerationStructure( + const ApiCallInfo& call_info, + format::HandleId object_id, + StructPointerDecoder* pDesc, + UINT NumPostbuildInfoDescs, + StructPointerDecoder* pPostbuildInfoDescs) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12GraphicsCommandList4", object_id, "BuildRaytracingAccelerationStructure"); + const JsonOptions& options = writer_->GetOptions(); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["pDesc"], pDesc, options); + FieldToJson(args["NumPostbuildInfoDescs"], NumPostbuildInfoDescs, options); + FieldToJson(args["pPostbuildInfoDescs"], pPostbuildInfoDescs, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12GraphicsCommandList4_EmitRaytracingAccelerationStructurePostbuildInfo( + const ApiCallInfo& call_info, + format::HandleId object_id, + StructPointerDecoder* pDesc, + UINT NumSourceAccelerationStructures, + PointerDecoder* pSourceAccelerationStructureData) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12GraphicsCommandList4", object_id, "EmitRaytracingAccelerationStructurePostbuildInfo"); + const JsonOptions& options = writer_->GetOptions(); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["pDesc"], pDesc, options); + FieldToJson(args["NumSourceAccelerationStructures"], NumSourceAccelerationStructures, options); + FieldToJsonAsHex(args["pSourceAccelerationStructureData"], pSourceAccelerationStructureData, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12GraphicsCommandList4_CopyRaytracingAccelerationStructure( + const ApiCallInfo& call_info, + format::HandleId object_id, + D3D12_GPU_VIRTUAL_ADDRESS DestAccelerationStructureData, + D3D12_GPU_VIRTUAL_ADDRESS SourceAccelerationStructureData, + D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE Mode) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12GraphicsCommandList4", object_id, "CopyRaytracingAccelerationStructure"); + const JsonOptions& options = writer_->GetOptions(); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJsonAsHex(args["DestAccelerationStructureData"], DestAccelerationStructureData, options); + FieldToJsonAsHex(args["SourceAccelerationStructureData"], SourceAccelerationStructureData, options); + FieldToJson(args["Mode"], Mode, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12GraphicsCommandList4_SetPipelineState1( + const ApiCallInfo& call_info, + format::HandleId object_id, + format::HandleId pStateObject) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12GraphicsCommandList4", object_id, "SetPipelineState1"); + const JsonOptions& options = writer_->GetOptions(); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["pStateObject"], pStateObject, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12GraphicsCommandList4_DispatchRays( + const ApiCallInfo& call_info, + format::HandleId object_id, + StructPointerDecoder* pDesc) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12GraphicsCommandList4", object_id, "DispatchRays"); + const JsonOptions& options = writer_->GetOptions(); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["pDesc"], pDesc, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12ShaderCacheSession_FindValue( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value, + PointerDecoder* pKey, + UINT KeySize, + PointerDecoder* pValue, + PointerDecoder* pValueSize) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12ShaderCacheSession", object_id, "FindValue"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["pKey"], pKey, options); + FieldToJson(args["KeySize"], KeySize, options); + FieldToJson(args["pValue"], pValue, options); + FieldToJson(args["pValueSize"], pValueSize, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12ShaderCacheSession_StoreValue( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value, + PointerDecoder* pKey, + UINT KeySize, + PointerDecoder* pValue, + UINT ValueSize) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12ShaderCacheSession", object_id, "StoreValue"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["pKey"], pKey, options); + FieldToJson(args["KeySize"], KeySize, options); + FieldToJson(args["pValue"], pValue, options); + FieldToJson(args["ValueSize"], ValueSize, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12ShaderCacheSession_SetDeleteOnDestroy( + const ApiCallInfo& call_info, + format::HandleId object_id) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12ShaderCacheSession", object_id, "SetDeleteOnDestroy"); + const JsonOptions& options = writer_->GetOptions(); + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12ShaderCacheSession_GetDesc( + const ApiCallInfo& call_info, + format::HandleId object_id, + Decoded_D3D12_SHADER_CACHE_SESSION_DESC return_value) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12ShaderCacheSession", object_id, "GetDesc"); + const JsonOptions& options = writer_->GetOptions(); + FieldToJson(method[format::kNameReturn], return_value, options); + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12Device9_CreateShaderCacheSession( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value, + StructPointerDecoder* pDesc, + Decoded_GUID riid, + HandlePointerDecoder* ppvSession) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12Device9", object_id, "CreateShaderCacheSession"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["pDesc"], pDesc, options); + FieldToJson(args["riid"], riid, options); + FieldToJson(args["ppvSession"], ppvSession, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12Device9_ShaderCacheControl( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value, + D3D12_SHADER_CACHE_KIND_FLAGS Kinds, + D3D12_SHADER_CACHE_CONTROL_FLAGS Control) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12Device9", object_id, "ShaderCacheControl"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson_D3D12_SHADER_CACHE_KIND_FLAGS(args["Kinds"], Kinds, options); + FieldToJson_D3D12_SHADER_CACHE_CONTROL_FLAGS(args["Control"], Control, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12Device9_CreateCommandQueue1( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value, + StructPointerDecoder* pDesc, + Decoded_GUID CreatorID, + Decoded_GUID riid, + HandlePointerDecoder* ppCommandQueue) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12Device9", object_id, "CreateCommandQueue1"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["pDesc"], pDesc, options); + FieldToJson(args["CreatorID"], CreatorID, options); + FieldToJson(args["riid"], riid, options); + FieldToJson(args["ppCommandQueue"], ppCommandQueue, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12Device10_CreateCommittedResource3( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value, + StructPointerDecoder* pHeapProperties, + D3D12_HEAP_FLAGS HeapFlags, + StructPointerDecoder* pDesc, + D3D12_BARRIER_LAYOUT InitialLayout, + StructPointerDecoder* pOptimizedClearValue, + format::HandleId pProtectedSession, + UINT32 NumCastableFormats, + PointerDecoder* pCastableFormats, + Decoded_GUID riidResource, + HandlePointerDecoder* ppvResource) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12Device10", object_id, "CreateCommittedResource3"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["pHeapProperties"], pHeapProperties, options); + FieldToJson_D3D12_HEAP_FLAGS(args["HeapFlags"], HeapFlags, options); + FieldToJson(args["pDesc"], pDesc, options); + FieldToJson(args["InitialLayout"], InitialLayout, options); + FieldToJson(args["pOptimizedClearValue"], pOptimizedClearValue, options); + FieldToJson(args["pProtectedSession"], pProtectedSession, options); + FieldToJson(args["NumCastableFormats"], NumCastableFormats, options); + FieldToJson(args["pCastableFormats"], pCastableFormats, options); + FieldToJson(args["riidResource"], riidResource, options); + FieldToJson(args["ppvResource"], ppvResource, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12Device10_CreatePlacedResource2( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value, + format::HandleId pHeap, + UINT64 HeapOffset, + StructPointerDecoder* pDesc, + D3D12_BARRIER_LAYOUT InitialLayout, + StructPointerDecoder* pOptimizedClearValue, + UINT32 NumCastableFormats, + PointerDecoder* pCastableFormats, + Decoded_GUID riid, + HandlePointerDecoder* ppvResource) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12Device10", object_id, "CreatePlacedResource2"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["pHeap"], pHeap, options); + FieldToJson(args["HeapOffset"], HeapOffset, options); + FieldToJson(args["pDesc"], pDesc, options); + FieldToJson(args["InitialLayout"], InitialLayout, options); + FieldToJson(args["pOptimizedClearValue"], pOptimizedClearValue, options); + FieldToJson(args["NumCastableFormats"], NumCastableFormats, options); + FieldToJson(args["pCastableFormats"], pCastableFormats, options); + FieldToJson(args["riid"], riid, options); + FieldToJson(args["ppvResource"], ppvResource, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12Device10_CreateReservedResource2( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value, + StructPointerDecoder* pDesc, + D3D12_BARRIER_LAYOUT InitialLayout, + StructPointerDecoder* pOptimizedClearValue, + format::HandleId pProtectedSession, + UINT32 NumCastableFormats, + PointerDecoder* pCastableFormats, + Decoded_GUID riid, + HandlePointerDecoder* ppvResource) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12Device10", object_id, "CreateReservedResource2"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["pDesc"], pDesc, options); + FieldToJson(args["InitialLayout"], InitialLayout, options); + FieldToJson(args["pOptimizedClearValue"], pOptimizedClearValue, options); + FieldToJson(args["pProtectedSession"], pProtectedSession, options); + FieldToJson(args["NumCastableFormats"], NumCastableFormats, options); + FieldToJson(args["pCastableFormats"], pCastableFormats, options); + FieldToJson(args["riid"], riid, options); + FieldToJson(args["ppvResource"], ppvResource, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12Device11_CreateSampler2( + const ApiCallInfo& call_info, + format::HandleId object_id, + StructPointerDecoder* pDesc, + Decoded_D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12Device11", object_id, "CreateSampler2"); + const JsonOptions& options = writer_->GetOptions(); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["pDesc"], pDesc, options); + FieldToJson(args["DestDescriptor"], DestDescriptor, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12Device12_GetResourceAllocationInfo3( + const ApiCallInfo& call_info, + format::HandleId object_id, + Decoded_D3D12_RESOURCE_ALLOCATION_INFO return_value, + UINT visibleMask, + UINT numResourceDescs, + StructPointerDecoder* pResourceDescs, + PointerDecoder* pNumCastableFormats, + PointerDecoder* ppCastableFormats, + StructPointerDecoder* pResourceAllocationInfo1) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12Device12", object_id, "GetResourceAllocationInfo3"); + const JsonOptions& options = writer_->GetOptions(); + FieldToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJsonAsFixedWidthBinary(args["visibleMask"], visibleMask, options); + FieldToJson(args["numResourceDescs"], numResourceDescs, options); + FieldToJson(args["pResourceDescs"], pResourceDescs, options); + FieldToJson(args["pNumCastableFormats"], pNumCastableFormats, options); + FieldToJson(args["ppCastableFormats"], ppCastableFormats, options); + FieldToJson(args["pResourceAllocationInfo1"], pResourceAllocationInfo1, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12VirtualizationGuestDevice_ShareWithHost( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value, + format::HandleId pObject, + PointerDecoder* pHandle) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12VirtualizationGuestDevice", object_id, "ShareWithHost"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["pObject"], pObject, options); + FieldToJson(args["pHandle"], pHandle, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12VirtualizationGuestDevice_CreateFenceFd( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value, + format::HandleId pFence, + UINT64 FenceValue, + PointerDecoder* pFenceFd) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12VirtualizationGuestDevice", object_id, "CreateFenceFd"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["pFence"], pFence, options); + FieldToJson(args["FenceValue"], FenceValue, options); + FieldToJson(args["pFenceFd"], pFenceFd, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12Tools_EnableShaderInstrumentation( + const ApiCallInfo& call_info, + format::HandleId object_id, + BOOL bEnable) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12Tools", object_id, "EnableShaderInstrumentation"); + const JsonOptions& options = writer_->GetOptions(); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + Bool32ToJson(args["bEnable"], bEnable, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12Tools_ShaderInstrumentationEnabled( + const ApiCallInfo& call_info, + format::HandleId object_id, + BOOL return_value) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12Tools", object_id, "ShaderInstrumentationEnabled"); + const JsonOptions& options = writer_->GetOptions(); + Bool32ToJson(method[format::kNameReturn], return_value, options); + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12SDKConfiguration_SetSDKVersion( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value, + UINT SDKVersion, + StringDecoder* SDKPath) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12SDKConfiguration", object_id, "SetSDKVersion"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["SDKVersion"], SDKVersion, options); + FieldToJson(args["SDKPath"], SDKPath, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12SDKConfiguration1_CreateDeviceFactory( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value, + UINT SDKVersion, + StringDecoder* SDKPath, + Decoded_GUID riid, + HandlePointerDecoder* ppvFactory) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12SDKConfiguration1", object_id, "CreateDeviceFactory"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["SDKVersion"], SDKVersion, options); + FieldToJson(args["SDKPath"], SDKPath, options); + FieldToJson(args["riid"], riid, options); + FieldToJson(args["ppvFactory"], ppvFactory, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12SDKConfiguration1_FreeUnusedSDKs( + const ApiCallInfo& call_info, + format::HandleId object_id) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12SDKConfiguration1", object_id, "FreeUnusedSDKs"); + const JsonOptions& options = writer_->GetOptions(); + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12DeviceFactory_InitializeFromGlobalState( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12DeviceFactory", object_id, "InitializeFromGlobalState"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12DeviceFactory_ApplyToGlobalState( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12DeviceFactory", object_id, "ApplyToGlobalState"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12DeviceFactory_SetFlags( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value, + D3D12_DEVICE_FACTORY_FLAGS flags) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12DeviceFactory", object_id, "SetFlags"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson_D3D12_DEVICE_FACTORY_FLAGS(args["flags"], flags, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12DeviceFactory_GetFlags( + const ApiCallInfo& call_info, + format::HandleId object_id, + D3D12_DEVICE_FACTORY_FLAGS return_value) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12DeviceFactory", object_id, "GetFlags"); + const JsonOptions& options = writer_->GetOptions(); + FieldToJson_D3D12_DEVICE_FACTORY_FLAGS(method[format::kNameReturn], return_value, options); + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12DeviceFactory_GetConfigurationInterface( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value, + Decoded_GUID clsid, + Decoded_GUID iid, + HandlePointerDecoder* ppv) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12DeviceFactory", object_id, "GetConfigurationInterface"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["clsid"], clsid, options); + FieldToJson(args["iid"], iid, options); + FieldToJson(args["ppv"], ppv, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12DeviceFactory_EnableExperimentalFeatures( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value, + UINT NumFeatures, + StructPointerDecoder* pIIDs, + PointerDecoder* pConfigurationStructs, + PointerDecoder* pConfigurationStructSizes) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12DeviceFactory", object_id, "EnableExperimentalFeatures"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["NumFeatures"], NumFeatures, options); + FieldToJson(args["pIIDs"], pIIDs, options); + FieldToJson(args["pConfigurationStructs"], pConfigurationStructs, options); + FieldToJson(args["pConfigurationStructSizes"], pConfigurationStructSizes, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12DeviceFactory_CreateDevice( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value, + format::HandleId adapter, + D3D_FEATURE_LEVEL FeatureLevel, + Decoded_GUID riid, + HandlePointerDecoder* ppvDevice) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12DeviceFactory", object_id, "CreateDevice"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["adapter"], adapter, options); + FieldToJson(args["FeatureLevel"], FeatureLevel, options); + FieldToJson(args["riid"], riid, options); + FieldToJson(args["ppvDevice"], ppvDevice, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12DeviceConfiguration_GetDesc( + const ApiCallInfo& call_info, + format::HandleId object_id, + Decoded_D3D12_DEVICE_CONFIGURATION_DESC return_value) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12DeviceConfiguration", object_id, "GetDesc"); + const JsonOptions& options = writer_->GetOptions(); + FieldToJson(method[format::kNameReturn], return_value, options); + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12DeviceConfiguration_GetEnabledExperimentalFeatures( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value, + StructPointerDecoder* pGuids, + UINT NumGuids) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12DeviceConfiguration", object_id, "GetEnabledExperimentalFeatures"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["pGuids"], pGuids, options); + FieldToJson(args["NumGuids"], NumGuids, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12DeviceConfiguration_SerializeVersionedRootSignature( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value, + StructPointerDecoder* pDesc, + HandlePointerDecoder* ppResult, + HandlePointerDecoder* ppError) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12DeviceConfiguration", object_id, "SerializeVersionedRootSignature"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["pDesc"], pDesc, options); + FieldToJson(args["ppResult"], ppResult, options); + FieldToJson(args["ppError"], ppError, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12DeviceConfiguration_CreateVersionedRootSignatureDeserializer( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value, + PointerDecoder* pBlob, + SIZE_T Size, + Decoded_GUID riid, + HandlePointerDecoder* ppvDeserializer) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12DeviceConfiguration", object_id, "CreateVersionedRootSignatureDeserializer"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["pBlob"], pBlob, options); + FieldToJson(args["Size"], Size, options); + FieldToJson(args["riid"], riid, options); + FieldToJson(args["ppvDeserializer"], ppvDeserializer, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12GraphicsCommandList5_RSSetShadingRate( + const ApiCallInfo& call_info, + format::HandleId object_id, + D3D12_SHADING_RATE baseShadingRate, + PointerDecoder* combiners) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12GraphicsCommandList5", object_id, "RSSetShadingRate"); + const JsonOptions& options = writer_->GetOptions(); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["baseShadingRate"], baseShadingRate, options); + FieldToJson(args["combiners"], combiners, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12GraphicsCommandList5_RSSetShadingRateImage( + const ApiCallInfo& call_info, + format::HandleId object_id, + format::HandleId shadingRateImage) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12GraphicsCommandList5", object_id, "RSSetShadingRateImage"); + const JsonOptions& options = writer_->GetOptions(); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["shadingRateImage"], shadingRateImage, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12GraphicsCommandList6_DispatchMesh( + const ApiCallInfo& call_info, + format::HandleId object_id, + UINT ThreadGroupCountX, + UINT ThreadGroupCountY, + UINT ThreadGroupCountZ) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12GraphicsCommandList6", object_id, "DispatchMesh"); + const JsonOptions& options = writer_->GetOptions(); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["ThreadGroupCountX"], ThreadGroupCountX, options); + FieldToJson(args["ThreadGroupCountY"], ThreadGroupCountY, options); + FieldToJson(args["ThreadGroupCountZ"], ThreadGroupCountZ, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12GraphicsCommandList7_Barrier( + const ApiCallInfo& call_info, + format::HandleId object_id, + UINT32 NumBarrierGroups, + StructPointerDecoder* pBarrierGroups) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12GraphicsCommandList7", object_id, "Barrier"); + const JsonOptions& options = writer_->GetOptions(); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["NumBarrierGroups"], NumBarrierGroups, options); + FieldToJson(args["pBarrierGroups"], pBarrierGroups, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12GraphicsCommandList8_OMSetFrontAndBackStencilRef( + const ApiCallInfo& call_info, + format::HandleId object_id, + UINT FrontStencilRef, + UINT BackStencilRef) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12GraphicsCommandList8", object_id, "OMSetFrontAndBackStencilRef"); + const JsonOptions& options = writer_->GetOptions(); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["FrontStencilRef"], FrontStencilRef, options); + FieldToJson(args["BackStencilRef"], BackStencilRef, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12GraphicsCommandList9_RSSetDepthBias( + const ApiCallInfo& call_info, + format::HandleId object_id, + FLOAT DepthBias, + FLOAT DepthBiasClamp, + FLOAT SlopeScaledDepthBias) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12GraphicsCommandList9", object_id, "RSSetDepthBias"); + const JsonOptions& options = writer_->GetOptions(); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["DepthBias"], DepthBias, options); + FieldToJson(args["DepthBiasClamp"], DepthBiasClamp, options); + FieldToJson(args["SlopeScaledDepthBias"], SlopeScaledDepthBias, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12GraphicsCommandList9_IASetIndexBufferStripCutValue( + const ApiCallInfo& call_info, + format::HandleId object_id, + D3D12_INDEX_BUFFER_STRIP_CUT_VALUE IBStripCutValue) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12GraphicsCommandList9", object_id, "IASetIndexBufferStripCutValue"); + const JsonOptions& options = writer_->GetOptions(); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["IBStripCutValue"], IBStripCutValue, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12DSRDeviceFactory_CreateDSRDevice( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value, + format::HandleId pD3D12Device, + UINT NodeMask, + Decoded_GUID riid, + HandlePointerDecoder* ppvDSRDevice) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12DSRDeviceFactory", object_id, "CreateDSRDevice"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["pD3D12Device"], pD3D12Device, options); + FieldToJsonAsFixedWidthBinary(args["NodeMask"], NodeMask, options); + FieldToJson(args["riid"], riid, options); + FieldToJson(args["ppvDSRDevice"], ppvDSRDevice, options); + } + writer_->WriteBlockEnd(); +} + +/* +** This part is generated from d3dcommon.h in Windows SDK: 10.0.20348.0 +** +*/ +void Dx12JsonConsumer::Process_ID3D10Blob_GetBufferPointer( + const ApiCallInfo& call_info, + format::HandleId object_id, + uint64_t return_value) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D10Blob", object_id, "GetBufferPointer"); + const JsonOptions& options = writer_->GetOptions(); + FieldToJson(method[format::kNameReturn], return_value, options); + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D10Blob_GetBufferSize( + const ApiCallInfo& call_info, + format::HandleId object_id, + SIZE_T return_value) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D10Blob", object_id, "GetBufferSize"); + const JsonOptions& options = writer_->GetOptions(); + FieldToJson(method[format::kNameReturn], return_value, options); + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3DDestructionNotifier_RegisterDestructionCallback( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value, + uint64_t callbackFn, + uint64_t pData, + PointerDecoder* pCallbackID) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3DDestructionNotifier", object_id, "RegisterDestructionCallback"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["callbackFn"], callbackFn, options); + FieldToJson(args["pData"], pData, options); + FieldToJson(args["pCallbackID"], pCallbackID, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3DDestructionNotifier_UnregisterDestructionCallback( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value, + UINT callbackID) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3DDestructionNotifier", object_id, "UnregisterDestructionCallback"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["callbackID"], callbackID, options); + } + writer_->WriteBlockEnd(); +} + +/* +** This part is generated from d3d12sdklayers.h in Windows SDK: 10.0.20348.0 +** +*/ +void Dx12JsonConsumer::Process_ID3D12Debug_EnableDebugLayer( + const ApiCallInfo& call_info, + format::HandleId object_id) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12Debug", object_id, "EnableDebugLayer"); + const JsonOptions& options = writer_->GetOptions(); + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12Debug1_EnableDebugLayer( + const ApiCallInfo& call_info, + format::HandleId object_id) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12Debug1", object_id, "EnableDebugLayer"); + const JsonOptions& options = writer_->GetOptions(); + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12Debug1_SetEnableGPUBasedValidation( + const ApiCallInfo& call_info, + format::HandleId object_id, + BOOL Enable) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12Debug1", object_id, "SetEnableGPUBasedValidation"); + const JsonOptions& options = writer_->GetOptions(); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + Bool32ToJson(args["Enable"], Enable, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12Debug1_SetEnableSynchronizedCommandQueueValidation( + const ApiCallInfo& call_info, + format::HandleId object_id, + BOOL Enable) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12Debug1", object_id, "SetEnableSynchronizedCommandQueueValidation"); + const JsonOptions& options = writer_->GetOptions(); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + Bool32ToJson(args["Enable"], Enable, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12Debug2_SetGPUBasedValidationFlags( + const ApiCallInfo& call_info, + format::HandleId object_id, + D3D12_GPU_BASED_VALIDATION_FLAGS Flags) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12Debug2", object_id, "SetGPUBasedValidationFlags"); + const JsonOptions& options = writer_->GetOptions(); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson_D3D12_GPU_BASED_VALIDATION_FLAGS(args["Flags"], Flags, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12Debug3_SetEnableGPUBasedValidation( + const ApiCallInfo& call_info, + format::HandleId object_id, + BOOL Enable) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12Debug3", object_id, "SetEnableGPUBasedValidation"); + const JsonOptions& options = writer_->GetOptions(); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + Bool32ToJson(args["Enable"], Enable, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12Debug3_SetEnableSynchronizedCommandQueueValidation( + const ApiCallInfo& call_info, + format::HandleId object_id, + BOOL Enable) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12Debug3", object_id, "SetEnableSynchronizedCommandQueueValidation"); + const JsonOptions& options = writer_->GetOptions(); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + Bool32ToJson(args["Enable"], Enable, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12Debug3_SetGPUBasedValidationFlags( + const ApiCallInfo& call_info, + format::HandleId object_id, + D3D12_GPU_BASED_VALIDATION_FLAGS Flags) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12Debug3", object_id, "SetGPUBasedValidationFlags"); + const JsonOptions& options = writer_->GetOptions(); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson_D3D12_GPU_BASED_VALIDATION_FLAGS(args["Flags"], Flags, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12Debug4_DisableDebugLayer( + const ApiCallInfo& call_info, + format::HandleId object_id) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12Debug4", object_id, "DisableDebugLayer"); + const JsonOptions& options = writer_->GetOptions(); + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12Debug5_SetEnableAutoName( + const ApiCallInfo& call_info, + format::HandleId object_id, + BOOL Enable) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12Debug5", object_id, "SetEnableAutoName"); + const JsonOptions& options = writer_->GetOptions(); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + Bool32ToJson(args["Enable"], Enable, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12Debug6_SetForceLegacyBarrierValidation( + const ApiCallInfo& call_info, + format::HandleId object_id, + BOOL Enable) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12Debug6", object_id, "SetForceLegacyBarrierValidation"); + const JsonOptions& options = writer_->GetOptions(); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + Bool32ToJson(args["Enable"], Enable, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12DebugDevice1_SetDebugParameter( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value, + D3D12_DEBUG_DEVICE_PARAMETER_TYPE Type, + PointerDecoder* pData, + UINT DataSize) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12DebugDevice1", object_id, "SetDebugParameter"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["Type"], Type, options); + FieldToJson(args["pData"], pData, options); + FieldToJson(args["DataSize"], DataSize, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12DebugDevice1_GetDebugParameter( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value, + D3D12_DEBUG_DEVICE_PARAMETER_TYPE Type, + PointerDecoder* pData, + UINT DataSize) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12DebugDevice1", object_id, "GetDebugParameter"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["Type"], Type, options); + FieldToJson(args["pData"], pData, options); + FieldToJson(args["DataSize"], DataSize, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12DebugDevice1_ReportLiveDeviceObjects( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value, + D3D12_RLDO_FLAGS Flags) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12DebugDevice1", object_id, "ReportLiveDeviceObjects"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson_D3D12_RLDO_FLAGS(args["Flags"], Flags, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12DebugDevice_SetFeatureMask( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value, + D3D12_DEBUG_FEATURE Mask) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12DebugDevice", object_id, "SetFeatureMask"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["Mask"], Mask, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12DebugDevice_GetFeatureMask( + const ApiCallInfo& call_info, + format::HandleId object_id, + D3D12_DEBUG_FEATURE return_value) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12DebugDevice", object_id, "GetFeatureMask"); + const JsonOptions& options = writer_->GetOptions(); + FieldToJson(method[format::kNameReturn], return_value, options); + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12DebugDevice_ReportLiveDeviceObjects( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value, + D3D12_RLDO_FLAGS Flags) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12DebugDevice", object_id, "ReportLiveDeviceObjects"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson_D3D12_RLDO_FLAGS(args["Flags"], Flags, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12DebugDevice2_SetDebugParameter( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value, + D3D12_DEBUG_DEVICE_PARAMETER_TYPE Type, + PointerDecoder* pData, + UINT DataSize) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12DebugDevice2", object_id, "SetDebugParameter"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["Type"], Type, options); + FieldToJson(args["pData"], pData, options); + FieldToJson(args["DataSize"], DataSize, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12DebugDevice2_GetDebugParameter( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value, + D3D12_DEBUG_DEVICE_PARAMETER_TYPE Type, + PointerDecoder* pData, + UINT DataSize) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12DebugDevice2", object_id, "GetDebugParameter"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["Type"], Type, options); + FieldToJson(args["pData"], pData, options); + FieldToJson(args["DataSize"], DataSize, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12DebugCommandQueue_AssertResourceState( + const ApiCallInfo& call_info, + format::HandleId object_id, + BOOL return_value, + format::HandleId pResource, + UINT Subresource, + UINT State) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12DebugCommandQueue", object_id, "AssertResourceState"); + const JsonOptions& options = writer_->GetOptions(); + Bool32ToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["pResource"], pResource, options); + FieldToJson(args["Subresource"], Subresource, options); + FieldToJson(args["State"], State, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12DebugCommandQueue1_AssertResourceAccess( + const ApiCallInfo& call_info, + format::HandleId object_id, + format::HandleId pResource, + UINT Subresource, + D3D12_BARRIER_ACCESS Access) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12DebugCommandQueue1", object_id, "AssertResourceAccess"); + const JsonOptions& options = writer_->GetOptions(); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["pResource"], pResource, options); + FieldToJson(args["Subresource"], Subresource, options); + FieldToJson(args["Access"], Access, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12DebugCommandQueue1_AssertTextureLayout( + const ApiCallInfo& call_info, + format::HandleId object_id, + format::HandleId pResource, + UINT Subresource, + D3D12_BARRIER_LAYOUT Layout) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12DebugCommandQueue1", object_id, "AssertTextureLayout"); + const JsonOptions& options = writer_->GetOptions(); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["pResource"], pResource, options); + FieldToJson(args["Subresource"], Subresource, options); + FieldToJson(args["Layout"], Layout, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12DebugCommandList1_AssertResourceState( + const ApiCallInfo& call_info, + format::HandleId object_id, + BOOL return_value, + format::HandleId pResource, + UINT Subresource, + UINT State) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12DebugCommandList1", object_id, "AssertResourceState"); + const JsonOptions& options = writer_->GetOptions(); + Bool32ToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["pResource"], pResource, options); + FieldToJson(args["Subresource"], Subresource, options); + FieldToJson(args["State"], State, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12DebugCommandList1_SetDebugParameter( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value, + D3D12_DEBUG_COMMAND_LIST_PARAMETER_TYPE Type, + PointerDecoder* pData, + UINT DataSize) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12DebugCommandList1", object_id, "SetDebugParameter"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["Type"], Type, options); + FieldToJson(args["pData"], pData, options); + FieldToJson(args["DataSize"], DataSize, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12DebugCommandList1_GetDebugParameter( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value, + D3D12_DEBUG_COMMAND_LIST_PARAMETER_TYPE Type, + PointerDecoder* pData, + UINT DataSize) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12DebugCommandList1", object_id, "GetDebugParameter"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["Type"], Type, options); + FieldToJson(args["pData"], pData, options); + FieldToJson(args["DataSize"], DataSize, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12DebugCommandList_AssertResourceState( + const ApiCallInfo& call_info, + format::HandleId object_id, + BOOL return_value, + format::HandleId pResource, + UINT Subresource, + UINT State) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12DebugCommandList", object_id, "AssertResourceState"); + const JsonOptions& options = writer_->GetOptions(); + Bool32ToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["pResource"], pResource, options); + FieldToJson(args["Subresource"], Subresource, options); + FieldToJson(args["State"], State, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12DebugCommandList_SetFeatureMask( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value, + D3D12_DEBUG_FEATURE Mask) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12DebugCommandList", object_id, "SetFeatureMask"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["Mask"], Mask, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12DebugCommandList_GetFeatureMask( + const ApiCallInfo& call_info, + format::HandleId object_id, + D3D12_DEBUG_FEATURE return_value) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12DebugCommandList", object_id, "GetFeatureMask"); + const JsonOptions& options = writer_->GetOptions(); + FieldToJson(method[format::kNameReturn], return_value, options); + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12DebugCommandList2_SetDebugParameter( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value, + D3D12_DEBUG_COMMAND_LIST_PARAMETER_TYPE Type, + PointerDecoder* pData, + UINT DataSize) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12DebugCommandList2", object_id, "SetDebugParameter"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["Type"], Type, options); + FieldToJson(args["pData"], pData, options); + FieldToJson(args["DataSize"], DataSize, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12DebugCommandList2_GetDebugParameter( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value, + D3D12_DEBUG_COMMAND_LIST_PARAMETER_TYPE Type, + PointerDecoder* pData, + UINT DataSize) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12DebugCommandList2", object_id, "GetDebugParameter"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["Type"], Type, options); + FieldToJson(args["pData"], pData, options); + FieldToJson(args["DataSize"], DataSize, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12DebugCommandList3_AssertResourceAccess( + const ApiCallInfo& call_info, + format::HandleId object_id, + format::HandleId pResource, + UINT Subresource, + D3D12_BARRIER_ACCESS Access) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12DebugCommandList3", object_id, "AssertResourceAccess"); + const JsonOptions& options = writer_->GetOptions(); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["pResource"], pResource, options); + FieldToJson(args["Subresource"], Subresource, options); + FieldToJson(args["Access"], Access, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12DebugCommandList3_AssertTextureLayout( + const ApiCallInfo& call_info, + format::HandleId object_id, + format::HandleId pResource, + UINT Subresource, + D3D12_BARRIER_LAYOUT Layout) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12DebugCommandList3", object_id, "AssertTextureLayout"); + const JsonOptions& options = writer_->GetOptions(); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["pResource"], pResource, options); + FieldToJson(args["Subresource"], Subresource, options); + FieldToJson(args["Layout"], Layout, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12SharingContract_Present( + const ApiCallInfo& call_info, + format::HandleId object_id, + format::HandleId pResource, + UINT Subresource, + uint64_t window) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12SharingContract", object_id, "Present"); + const JsonOptions& options = writer_->GetOptions(); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["pResource"], pResource, options); + FieldToJson(args["Subresource"], Subresource, options); + FieldToJson(args["window"], window, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12SharingContract_SharedFenceSignal( + const ApiCallInfo& call_info, + format::HandleId object_id, + format::HandleId pFence, + UINT64 FenceValue) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12SharingContract", object_id, "SharedFenceSignal"); + const JsonOptions& options = writer_->GetOptions(); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["pFence"], pFence, options); + FieldToJson(args["FenceValue"], FenceValue, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12SharingContract_BeginCapturableWork( + const ApiCallInfo& call_info, + format::HandleId object_id, + Decoded_GUID guid) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12SharingContract", object_id, "BeginCapturableWork"); + const JsonOptions& options = writer_->GetOptions(); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["guid"], guid, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12SharingContract_EndCapturableWork( + const ApiCallInfo& call_info, + format::HandleId object_id, + Decoded_GUID guid) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12SharingContract", object_id, "EndCapturableWork"); + const JsonOptions& options = writer_->GetOptions(); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["guid"], guid, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12ManualWriteTrackingResource_TrackWrite( + const ApiCallInfo& call_info, + format::HandleId object_id, + UINT Subresource, + StructPointerDecoder* pWrittenRange) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12ManualWriteTrackingResource", object_id, "TrackWrite"); + const JsonOptions& options = writer_->GetOptions(); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["Subresource"], Subresource, options); + FieldToJson(args["pWrittenRange"], pWrittenRange, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12InfoQueue_SetMessageCountLimit( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value, + UINT64 MessageCountLimit) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12InfoQueue", object_id, "SetMessageCountLimit"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["MessageCountLimit"], MessageCountLimit, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12InfoQueue_ClearStoredMessages( + const ApiCallInfo& call_info, + format::HandleId object_id) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12InfoQueue", object_id, "ClearStoredMessages"); + const JsonOptions& options = writer_->GetOptions(); + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12InfoQueue_GetMessage( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value, + UINT64 MessageIndex, + StructPointerDecoder* pMessage, + PointerDecoder* pMessageByteLength) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12InfoQueue", object_id, "GetMessage"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["MessageIndex"], MessageIndex, options); + FieldToJson(args["pMessage"], pMessage, options); + FieldToJson(args["pMessageByteLength"], pMessageByteLength, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12InfoQueue_GetNumMessagesAllowedByStorageFilter( + const ApiCallInfo& call_info, + format::HandleId object_id, + UINT64 return_value) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12InfoQueue", object_id, "GetNumMessagesAllowedByStorageFilter"); + const JsonOptions& options = writer_->GetOptions(); + FieldToJson(method[format::kNameReturn], return_value, options); + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12InfoQueue_GetNumMessagesDeniedByStorageFilter( + const ApiCallInfo& call_info, + format::HandleId object_id, + UINT64 return_value) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12InfoQueue", object_id, "GetNumMessagesDeniedByStorageFilter"); + const JsonOptions& options = writer_->GetOptions(); + FieldToJson(method[format::kNameReturn], return_value, options); + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12InfoQueue_GetNumStoredMessages( + const ApiCallInfo& call_info, + format::HandleId object_id, + UINT64 return_value) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12InfoQueue", object_id, "GetNumStoredMessages"); + const JsonOptions& options = writer_->GetOptions(); + FieldToJson(method[format::kNameReturn], return_value, options); + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12InfoQueue_GetNumStoredMessagesAllowedByRetrievalFilter( + const ApiCallInfo& call_info, + format::HandleId object_id, + UINT64 return_value) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12InfoQueue", object_id, "GetNumStoredMessagesAllowedByRetrievalFilter"); + const JsonOptions& options = writer_->GetOptions(); + FieldToJson(method[format::kNameReturn], return_value, options); + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12InfoQueue_GetNumMessagesDiscardedByMessageCountLimit( + const ApiCallInfo& call_info, + format::HandleId object_id, + UINT64 return_value) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12InfoQueue", object_id, "GetNumMessagesDiscardedByMessageCountLimit"); + const JsonOptions& options = writer_->GetOptions(); + FieldToJson(method[format::kNameReturn], return_value, options); + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12InfoQueue_GetMessageCountLimit( + const ApiCallInfo& call_info, + format::HandleId object_id, + UINT64 return_value) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12InfoQueue", object_id, "GetMessageCountLimit"); + const JsonOptions& options = writer_->GetOptions(); + FieldToJson(method[format::kNameReturn], return_value, options); + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12InfoQueue_AddStorageFilterEntries( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value, + StructPointerDecoder* pFilter) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12InfoQueue", object_id, "AddStorageFilterEntries"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["pFilter"], pFilter, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12InfoQueue_GetStorageFilter( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value, + StructPointerDecoder* pFilter, + PointerDecoder* pFilterByteLength) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12InfoQueue", object_id, "GetStorageFilter"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["pFilter"], pFilter, options); + FieldToJson(args["pFilterByteLength"], pFilterByteLength, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12InfoQueue_ClearStorageFilter( + const ApiCallInfo& call_info, + format::HandleId object_id) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12InfoQueue", object_id, "ClearStorageFilter"); + const JsonOptions& options = writer_->GetOptions(); + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12InfoQueue_PushEmptyStorageFilter( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12InfoQueue", object_id, "PushEmptyStorageFilter"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12InfoQueue_PushCopyOfStorageFilter( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12InfoQueue", object_id, "PushCopyOfStorageFilter"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12InfoQueue_PushStorageFilter( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value, + StructPointerDecoder* pFilter) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12InfoQueue", object_id, "PushStorageFilter"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["pFilter"], pFilter, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12InfoQueue_PopStorageFilter( + const ApiCallInfo& call_info, + format::HandleId object_id) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12InfoQueue", object_id, "PopStorageFilter"); + const JsonOptions& options = writer_->GetOptions(); + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12InfoQueue_GetStorageFilterStackSize( + const ApiCallInfo& call_info, + format::HandleId object_id, + UINT return_value) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12InfoQueue", object_id, "GetStorageFilterStackSize"); + const JsonOptions& options = writer_->GetOptions(); + FieldToJson(method[format::kNameReturn], return_value, options); + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12InfoQueue_AddRetrievalFilterEntries( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value, + StructPointerDecoder* pFilter) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12InfoQueue", object_id, "AddRetrievalFilterEntries"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["pFilter"], pFilter, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12InfoQueue_GetRetrievalFilter( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value, + StructPointerDecoder* pFilter, + PointerDecoder* pFilterByteLength) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12InfoQueue", object_id, "GetRetrievalFilter"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["pFilter"], pFilter, options); + FieldToJson(args["pFilterByteLength"], pFilterByteLength, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12InfoQueue_ClearRetrievalFilter( + const ApiCallInfo& call_info, + format::HandleId object_id) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12InfoQueue", object_id, "ClearRetrievalFilter"); + const JsonOptions& options = writer_->GetOptions(); + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12InfoQueue_PushEmptyRetrievalFilter( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12InfoQueue", object_id, "PushEmptyRetrievalFilter"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12InfoQueue_PushCopyOfRetrievalFilter( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12InfoQueue", object_id, "PushCopyOfRetrievalFilter"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12InfoQueue_PushRetrievalFilter( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value, + StructPointerDecoder* pFilter) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12InfoQueue", object_id, "PushRetrievalFilter"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["pFilter"], pFilter, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12InfoQueue_PopRetrievalFilter( + const ApiCallInfo& call_info, + format::HandleId object_id) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12InfoQueue", object_id, "PopRetrievalFilter"); + const JsonOptions& options = writer_->GetOptions(); + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12InfoQueue_GetRetrievalFilterStackSize( + const ApiCallInfo& call_info, + format::HandleId object_id, + UINT return_value) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12InfoQueue", object_id, "GetRetrievalFilterStackSize"); + const JsonOptions& options = writer_->GetOptions(); + FieldToJson(method[format::kNameReturn], return_value, options); + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12InfoQueue_AddMessage( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value, + D3D12_MESSAGE_CATEGORY Category, + D3D12_MESSAGE_SEVERITY Severity, + D3D12_MESSAGE_ID ID, + StringDecoder* pDescription) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12InfoQueue", object_id, "AddMessage"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["Category"], Category, options); + FieldToJson(args["Severity"], Severity, options); + FieldToJson(args["ID"], ID, options); + FieldToJson(args["pDescription"], pDescription, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12InfoQueue_AddApplicationMessage( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value, + D3D12_MESSAGE_SEVERITY Severity, + StringDecoder* pDescription) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12InfoQueue", object_id, "AddApplicationMessage"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["Severity"], Severity, options); + FieldToJson(args["pDescription"], pDescription, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12InfoQueue_SetBreakOnCategory( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value, + D3D12_MESSAGE_CATEGORY Category, + BOOL bEnable) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12InfoQueue", object_id, "SetBreakOnCategory"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["Category"], Category, options); + Bool32ToJson(args["bEnable"], bEnable, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12InfoQueue_SetBreakOnSeverity( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value, + D3D12_MESSAGE_SEVERITY Severity, + BOOL bEnable) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12InfoQueue", object_id, "SetBreakOnSeverity"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["Severity"], Severity, options); + Bool32ToJson(args["bEnable"], bEnable, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12InfoQueue_SetBreakOnID( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value, + D3D12_MESSAGE_ID ID, + BOOL bEnable) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12InfoQueue", object_id, "SetBreakOnID"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["ID"], ID, options); + Bool32ToJson(args["bEnable"], bEnable, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12InfoQueue_GetBreakOnCategory( + const ApiCallInfo& call_info, + format::HandleId object_id, + BOOL return_value, + D3D12_MESSAGE_CATEGORY Category) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12InfoQueue", object_id, "GetBreakOnCategory"); + const JsonOptions& options = writer_->GetOptions(); + Bool32ToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["Category"], Category, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12InfoQueue_GetBreakOnSeverity( + const ApiCallInfo& call_info, + format::HandleId object_id, + BOOL return_value, + D3D12_MESSAGE_SEVERITY Severity) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12InfoQueue", object_id, "GetBreakOnSeverity"); + const JsonOptions& options = writer_->GetOptions(); + Bool32ToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["Severity"], Severity, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12InfoQueue_GetBreakOnID( + const ApiCallInfo& call_info, + format::HandleId object_id, + BOOL return_value, + D3D12_MESSAGE_ID ID) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12InfoQueue", object_id, "GetBreakOnID"); + const JsonOptions& options = writer_->GetOptions(); + Bool32ToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["ID"], ID, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12InfoQueue_SetMuteDebugOutput( + const ApiCallInfo& call_info, + format::HandleId object_id, + BOOL bMute) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12InfoQueue", object_id, "SetMuteDebugOutput"); + const JsonOptions& options = writer_->GetOptions(); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + Bool32ToJson(args["bMute"], bMute, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12InfoQueue_GetMuteDebugOutput( + const ApiCallInfo& call_info, + format::HandleId object_id, + BOOL return_value) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12InfoQueue", object_id, "GetMuteDebugOutput"); + const JsonOptions& options = writer_->GetOptions(); + Bool32ToJson(method[format::kNameReturn], return_value, options); + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12InfoQueue1_RegisterMessageCallback( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value, + uint64_t CallbackFunc, + D3D12_MESSAGE_CALLBACK_FLAGS CallbackFilterFlags, + uint64_t pContext, + PointerDecoder* pCallbackCookie) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12InfoQueue1", object_id, "RegisterMessageCallback"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["CallbackFunc"], CallbackFunc, options); + FieldToJson_D3D12_MESSAGE_CALLBACK_FLAGS(args["CallbackFilterFlags"], CallbackFilterFlags, options); + FieldToJson(args["pContext"], pContext, options); + FieldToJson(args["pCallbackCookie"], pCallbackCookie, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_ID3D12InfoQueue1_UnregisterMessageCallback( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value, + DWORD CallbackCookie) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "ID3D12InfoQueue1", object_id, "UnregisterMessageCallback"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["CallbackCookie"], CallbackCookie, options); + } + writer_->WriteBlockEnd(); +} + +/* +** This part is generated from Unknwnbase.h in Windows SDK: 10.0.20348.0 +** +*/ +void Dx12JsonConsumer::Process_IUnknown_QueryInterface( + const ApiCallInfo& call_info, + format::HandleId object_id, + HRESULT return_value, + Decoded_GUID riid, + HandlePointerDecoder* ppvObject) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "IUnknown", object_id, "QueryInterface"); + const JsonOptions& options = writer_->GetOptions(); + HresultToJson(method[format::kNameReturn], return_value, options); + nlohmann::ordered_json& args = method[format::kNameArgs]; + { + FieldToJson(args["riid"], riid, options); + FieldToJson(args["ppvObject"], ppvObject, options); + } + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_IUnknown_AddRef( + const ApiCallInfo& call_info, + format::HandleId object_id, + ULONG return_value) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "IUnknown", object_id, "AddRef"); + const JsonOptions& options = writer_->GetOptions(); + FieldToJson(method[format::kNameReturn], return_value, options); + writer_->WriteBlockEnd(); +} + +void Dx12JsonConsumer::Process_IUnknown_Release( + const ApiCallInfo& call_info, + format::HandleId object_id, + ULONG return_value) +{ + using namespace gfxrecon::util; + + nlohmann::ordered_json& method = writer_->WriteApiCallStart(call_info, "IUnknown", object_id, "Release"); + const JsonOptions& options = writer_->GetOptions(); + FieldToJson(method[format::kNameReturn], return_value, options); + writer_->WriteBlockEnd(); +} + + + +GFXRECON_END_NAMESPACE(decode) +GFXRECON_END_NAMESPACE(gfxrecon) diff --git a/framework/generated/generated_dx12_ascii_consumer.h b/framework/generated/generated_dx12_json_consumer.h similarity index 82% rename from framework/generated/generated_dx12_ascii_consumer.h rename to framework/generated/generated_dx12_json_consumer.h index 5fb9233fd6..6c552ce28f 100644 --- a/framework/generated/generated_dx12_ascii_consumer.h +++ b/framework/generated/generated_dx12_json_consumer.h @@ -21,25 +21,25 @@ */ /* -** This file is generated from dx12_ascii_consumer_header_generator.py. +** This file is generated from dx12_json_consumer_header_generator.py. ** */ -#ifndef GFXRECON_GENERATED_DX12_ASCII_CONSUMER_H -#define GFXRECON_GENERATED_DX12_ASCII_CONSUMER_H +#ifndef GFXRECON_GENERATED_DX12_JSON_CONSUMER_H +#define GFXRECON_GENERATED_DX12_JSON_CONSUMER_H -#include "decode/dx12_ascii_consumer_base.h" +#include "decode/dx12_json_consumer_base.h" GFXRECON_BEGIN_NAMESPACE(gfxrecon) GFXRECON_BEGIN_NAMESPACE(decode) -class Dx12AsciiConsumer : public Dx12AsciiConsumerBase +class Dx12JsonConsumer : public Dx12JsonConsumerBase { public: - Dx12AsciiConsumer(){} - virtual ~Dx12AsciiConsumer() override {} + Dx12JsonConsumer(){} + virtual ~Dx12JsonConsumer() override {} /* ** This part is generated from dxgi.h in Windows SDK: 10.0.20348.0 ** @@ -48,13 +48,13 @@ class Dx12AsciiConsumer : public Dx12AsciiConsumerBase const ApiCallInfo& call_info, HRESULT return_value, Decoded_GUID riid, - HandlePointerDecoder* ppFactory); + HandlePointerDecoder* ppFactory) override; virtual void Process_CreateDXGIFactory1( const ApiCallInfo& call_info, HRESULT return_value, Decoded_GUID riid, - HandlePointerDecoder* ppFactory); + HandlePointerDecoder* ppFactory) override; virtual void Process_IDXGIObject_SetPrivateData( const ApiCallInfo& call_info, @@ -62,14 +62,14 @@ class Dx12AsciiConsumer : public Dx12AsciiConsumerBase HRESULT return_value, Decoded_GUID Name, UINT DataSize, - PointerDecoder* pData); + PointerDecoder* pData) override; virtual void Process_IDXGIObject_SetPrivateDataInterface( const ApiCallInfo& call_info, format::HandleId object_id, HRESULT return_value, Decoded_GUID Name, - format::HandleId pUnknown); + format::HandleId pUnknown) override; virtual void Process_IDXGIObject_GetPrivateData( const ApiCallInfo& call_info, @@ -77,115 +77,115 @@ class Dx12AsciiConsumer : public Dx12AsciiConsumerBase HRESULT return_value, Decoded_GUID Name, PointerDecoder* pDataSize, - PointerDecoder* pData); + PointerDecoder* pData) override; virtual void Process_IDXGIObject_GetParent( const ApiCallInfo& call_info, format::HandleId object_id, HRESULT return_value, Decoded_GUID riid, - HandlePointerDecoder* ppParent); + HandlePointerDecoder* ppParent) override; virtual void Process_IDXGIDeviceSubObject_GetDevice( const ApiCallInfo& call_info, format::HandleId object_id, HRESULT return_value, Decoded_GUID riid, - HandlePointerDecoder* ppDevice); + HandlePointerDecoder* ppDevice) override; virtual void Process_IDXGIResource_GetSharedHandle( const ApiCallInfo& call_info, format::HandleId object_id, HRESULT return_value, - PointerDecoder* pSharedHandle); + PointerDecoder* pSharedHandle) override; virtual void Process_IDXGIResource_GetUsage( const ApiCallInfo& call_info, format::HandleId object_id, HRESULT return_value, - PointerDecoder* pUsage); + PointerDecoder* pUsage) override; virtual void Process_IDXGIResource_SetEvictionPriority( const ApiCallInfo& call_info, format::HandleId object_id, HRESULT return_value, - UINT EvictionPriority); + UINT EvictionPriority) override; virtual void Process_IDXGIResource_GetEvictionPriority( const ApiCallInfo& call_info, format::HandleId object_id, HRESULT return_value, - PointerDecoder* pEvictionPriority); + PointerDecoder* pEvictionPriority) override; virtual void Process_IDXGIKeyedMutex_AcquireSync( const ApiCallInfo& call_info, format::HandleId object_id, HRESULT return_value, UINT64 Key, - DWORD dwMilliseconds); + DWORD dwMilliseconds) override; virtual void Process_IDXGIKeyedMutex_ReleaseSync( const ApiCallInfo& call_info, format::HandleId object_id, HRESULT return_value, - UINT64 Key); + UINT64 Key) override; virtual void Process_IDXGISurface_GetDesc( const ApiCallInfo& call_info, format::HandleId object_id, HRESULT return_value, - StructPointerDecoder* pDesc); + StructPointerDecoder* pDesc) override; virtual void Process_IDXGISurface_Map( const ApiCallInfo& call_info, format::HandleId object_id, HRESULT return_value, StructPointerDecoder* pLockedRect, - UINT MapFlags); + UINT MapFlags) override; virtual void Process_IDXGISurface_Unmap( const ApiCallInfo& call_info, format::HandleId object_id, - HRESULT return_value); + HRESULT return_value) override; virtual void Process_IDXGISurface1_GetDC( const ApiCallInfo& call_info, format::HandleId object_id, HRESULT return_value, BOOL Discard, - PointerDecoder* phdc); + PointerDecoder* phdc) override; virtual void Process_IDXGISurface1_ReleaseDC( const ApiCallInfo& call_info, format::HandleId object_id, HRESULT return_value, - StructPointerDecoder* pDirtyRect); + StructPointerDecoder* pDirtyRect) override; virtual void Process_IDXGIAdapter_EnumOutputs( const ApiCallInfo& call_info, format::HandleId object_id, HRESULT return_value, UINT Output, - HandlePointerDecoder* ppOutput); + HandlePointerDecoder* ppOutput) override; virtual void Process_IDXGIAdapter_GetDesc( const ApiCallInfo& call_info, format::HandleId object_id, HRESULT return_value, - StructPointerDecoder* pDesc); + StructPointerDecoder* pDesc) override; virtual void Process_IDXGIAdapter_CheckInterfaceSupport( const ApiCallInfo& call_info, format::HandleId object_id, HRESULT return_value, Decoded_GUID InterfaceName, - StructPointerDecoder* pUMDVersion); + StructPointerDecoder* pUMDVersion) override; virtual void Process_IDXGIOutput_GetDesc( const ApiCallInfo& call_info, format::HandleId object_id, HRESULT return_value, - StructPointerDecoder* pDesc); + StructPointerDecoder* pDesc) override; virtual void Process_IDXGIOutput_GetDisplayModeList( const ApiCallInfo& call_info, @@ -194,7 +194,7 @@ class Dx12AsciiConsumer : public Dx12AsciiConsumerBase DXGI_FORMAT EnumFormat, UINT Flags, PointerDecoder* pNumModes, - StructPointerDecoder* pDesc); + StructPointerDecoder* pDesc) override; virtual void Process_IDXGIOutput_FindClosestMatchingMode( const ApiCallInfo& call_info, @@ -202,66 +202,66 @@ class Dx12AsciiConsumer : public Dx12AsciiConsumerBase HRESULT return_value, StructPointerDecoder* pModeToMatch, StructPointerDecoder* pClosestMatch, - format::HandleId pConcernedDevice); + format::HandleId pConcernedDevice) override; virtual void Process_IDXGIOutput_WaitForVBlank( const ApiCallInfo& call_info, format::HandleId object_id, - HRESULT return_value); + HRESULT return_value) override; virtual void Process_IDXGIOutput_TakeOwnership( const ApiCallInfo& call_info, format::HandleId object_id, HRESULT return_value, format::HandleId pDevice, - BOOL Exclusive); + BOOL Exclusive) override; virtual void Process_IDXGIOutput_ReleaseOwnership( const ApiCallInfo& call_info, - format::HandleId object_id); + format::HandleId object_id) override; virtual void Process_IDXGIOutput_GetGammaControlCapabilities( const ApiCallInfo& call_info, format::HandleId object_id, HRESULT return_value, - StructPointerDecoder* pGammaCaps); + StructPointerDecoder* pGammaCaps) override; virtual void Process_IDXGIOutput_SetGammaControl( const ApiCallInfo& call_info, format::HandleId object_id, HRESULT return_value, - StructPointerDecoder* pArray); + StructPointerDecoder* pArray) override; virtual void Process_IDXGIOutput_GetGammaControl( const ApiCallInfo& call_info, format::HandleId object_id, HRESULT return_value, - StructPointerDecoder* pArray); + StructPointerDecoder* pArray) override; virtual void Process_IDXGIOutput_SetDisplaySurface( const ApiCallInfo& call_info, format::HandleId object_id, HRESULT return_value, - format::HandleId pScanoutSurface); + format::HandleId pScanoutSurface) override; virtual void Process_IDXGIOutput_GetDisplaySurfaceData( const ApiCallInfo& call_info, format::HandleId object_id, HRESULT return_value, - format::HandleId pDestination); + format::HandleId pDestination) override; virtual void Process_IDXGIOutput_GetFrameStatistics( const ApiCallInfo& call_info, format::HandleId object_id, HRESULT return_value, - StructPointerDecoder* pStats); + StructPointerDecoder* pStats) override; virtual void Process_IDXGISwapChain_Present( const ApiCallInfo& call_info, format::HandleId object_id, HRESULT return_value, UINT SyncInterval, - UINT Flags); + UINT Flags) override; virtual void Process_IDXGISwapChain_GetBuffer( const ApiCallInfo& call_info, @@ -269,27 +269,27 @@ class Dx12AsciiConsumer : public Dx12AsciiConsumerBase HRESULT return_value, UINT Buffer, Decoded_GUID riid, - HandlePointerDecoder* ppSurface); + HandlePointerDecoder* ppSurface) override; virtual void Process_IDXGISwapChain_SetFullscreenState( const ApiCallInfo& call_info, format::HandleId object_id, HRESULT return_value, BOOL Fullscreen, - format::HandleId pTarget); + format::HandleId pTarget) override; virtual void Process_IDXGISwapChain_GetFullscreenState( const ApiCallInfo& call_info, format::HandleId object_id, HRESULT return_value, PointerDecoder* pFullscreen, - HandlePointerDecoder* ppTarget); + HandlePointerDecoder* ppTarget) override; virtual void Process_IDXGISwapChain_GetDesc( const ApiCallInfo& call_info, format::HandleId object_id, HRESULT return_value, - StructPointerDecoder* pDesc); + StructPointerDecoder* pDesc) override; virtual void Process_IDXGISwapChain_ResizeBuffers( const ApiCallInfo& call_info, @@ -299,51 +299,51 @@ class Dx12AsciiConsumer : public Dx12AsciiConsumerBase UINT Width, UINT Height, DXGI_FORMAT NewFormat, - UINT SwapChainFlags); + UINT SwapChainFlags) override; virtual void Process_IDXGISwapChain_ResizeTarget( const ApiCallInfo& call_info, format::HandleId object_id, HRESULT return_value, - StructPointerDecoder* pNewTargetParameters); + StructPointerDecoder* pNewTargetParameters) override; virtual void Process_IDXGISwapChain_GetContainingOutput( const ApiCallInfo& call_info, format::HandleId object_id, HRESULT return_value, - HandlePointerDecoder* ppOutput); + HandlePointerDecoder* ppOutput) override; virtual void Process_IDXGISwapChain_GetFrameStatistics( const ApiCallInfo& call_info, format::HandleId object_id, HRESULT return_value, - StructPointerDecoder* pStats); + StructPointerDecoder* pStats) override; virtual void Process_IDXGISwapChain_GetLastPresentCount( const ApiCallInfo& call_info, format::HandleId object_id, HRESULT return_value, - PointerDecoder* pLastPresentCount); + PointerDecoder* pLastPresentCount) override; virtual void Process_IDXGIFactory_EnumAdapters( const ApiCallInfo& call_info, format::HandleId object_id, HRESULT return_value, UINT Adapter, - HandlePointerDecoder* ppAdapter); + HandlePointerDecoder* ppAdapter) override; virtual void Process_IDXGIFactory_MakeWindowAssociation( const ApiCallInfo& call_info, format::HandleId object_id, HRESULT return_value, uint64_t WindowHandle, - UINT Flags); + UINT Flags) override; virtual void Process_IDXGIFactory_GetWindowAssociation( const ApiCallInfo& call_info, format::HandleId object_id, HRESULT return_value, - PointerDecoder* pWindowHandle); + PointerDecoder* pWindowHandle) override; virtual void Process_IDXGIFactory_CreateSwapChain( const ApiCallInfo& call_info, @@ -351,20 +351,20 @@ class Dx12AsciiConsumer : public Dx12AsciiConsumerBase HRESULT return_value, format::HandleId pDevice, StructPointerDecoder* pDesc, - HandlePointerDecoder* ppSwapChain); + HandlePointerDecoder* ppSwapChain) override; virtual void Process_IDXGIFactory_CreateSoftwareAdapter( const ApiCallInfo& call_info, format::HandleId object_id, HRESULT return_value, uint64_t Module, - HandlePointerDecoder* ppAdapter); + HandlePointerDecoder* ppAdapter) override; virtual void Process_IDXGIDevice_GetAdapter( const ApiCallInfo& call_info, format::HandleId object_id, HRESULT return_value, - HandlePointerDecoder* pAdapter); + HandlePointerDecoder* pAdapter) override; virtual void Process_IDXGIDevice_CreateSurface( const ApiCallInfo& call_info, @@ -374,7 +374,7 @@ class Dx12AsciiConsumer : public Dx12AsciiConsumerBase UINT NumSurfaces, DXGI_USAGE Usage, StructPointerDecoder* pSharedResource, - HandlePointerDecoder* ppSurface); + HandlePointerDecoder* ppSurface) override; virtual void Process_IDXGIDevice_QueryResourceResidency( const ApiCallInfo& call_info, @@ -382,49 +382,49 @@ class Dx12AsciiConsumer : public Dx12AsciiConsumerBase HRESULT return_value, HandlePointerDecoder* ppResources, PointerDecoder* pResidencyStatus, - UINT NumResources); + UINT NumResources) override; virtual void Process_IDXGIDevice_SetGPUThreadPriority( const ApiCallInfo& call_info, format::HandleId object_id, HRESULT return_value, - INT Priority); + INT Priority) override; virtual void Process_IDXGIDevice_GetGPUThreadPriority( const ApiCallInfo& call_info, format::HandleId object_id, HRESULT return_value, - PointerDecoder* pPriority); + PointerDecoder* pPriority) override; virtual void Process_IDXGIFactory1_EnumAdapters1( const ApiCallInfo& call_info, format::HandleId object_id, HRESULT return_value, UINT Adapter, - HandlePointerDecoder* ppAdapter); + HandlePointerDecoder* ppAdapter) override; virtual void Process_IDXGIFactory1_IsCurrent( const ApiCallInfo& call_info, format::HandleId object_id, - BOOL return_value); + BOOL return_value) override; virtual void Process_IDXGIAdapter1_GetDesc1( const ApiCallInfo& call_info, format::HandleId object_id, HRESULT return_value, - StructPointerDecoder* pDesc); + StructPointerDecoder* pDesc) override; virtual void Process_IDXGIDevice1_SetMaximumFrameLatency( const ApiCallInfo& call_info, format::HandleId object_id, HRESULT return_value, - UINT MaxLatency); + UINT MaxLatency) override; virtual void Process_IDXGIDevice1_GetMaximumFrameLatency( const ApiCallInfo& call_info, format::HandleId object_id, HRESULT return_value, - PointerDecoder* pMaxLatency); + PointerDecoder* pMaxLatency) override; /* ** This part is generated from dxgi1_2.h in Windows SDK: 10.0.20348.0 @@ -433,17 +433,17 @@ class Dx12AsciiConsumer : public Dx12AsciiConsumerBase virtual void Process_IDXGIDisplayControl_IsStereoEnabled( const ApiCallInfo& call_info, format::HandleId object_id, - BOOL return_value); + BOOL return_value) override; virtual void Process_IDXGIDisplayControl_SetStereoEnabled( const ApiCallInfo& call_info, format::HandleId object_id, - BOOL enabled); + BOOL enabled) override; virtual void Process_IDXGIOutputDuplication_GetDesc( const ApiCallInfo& call_info, format::HandleId object_id, - StructPointerDecoder* pDesc); + StructPointerDecoder* pDesc) override; virtual void Process_IDXGIOutputDuplication_AcquireNextFrame( const ApiCallInfo& call_info, @@ -451,7 +451,7 @@ class Dx12AsciiConsumer : public Dx12AsciiConsumerBase HRESULT return_value, UINT TimeoutInMilliseconds, StructPointerDecoder* pFrameInfo, - HandlePointerDecoder* ppDesktopResource); + HandlePointerDecoder* ppDesktopResource) override; virtual void Process_IDXGIOutputDuplication_GetFrameDirtyRects( const ApiCallInfo& call_info, @@ -459,7 +459,7 @@ class Dx12AsciiConsumer : public Dx12AsciiConsumerBase HRESULT return_value, UINT DirtyRectsBufferSize, StructPointerDecoder* pDirtyRectsBuffer, - PointerDecoder* pDirtyRectsBufferSizeRequired); + PointerDecoder* pDirtyRectsBufferSizeRequired) override; virtual void Process_IDXGIOutputDuplication_GetFrameMoveRects( const ApiCallInfo& call_info, @@ -467,7 +467,7 @@ class Dx12AsciiConsumer : public Dx12AsciiConsumerBase HRESULT return_value, UINT MoveRectsBufferSize, StructPointerDecoder* pMoveRectBuffer, - PointerDecoder* pMoveRectsBufferSizeRequired); + PointerDecoder* pMoveRectsBufferSizeRequired) override; virtual void Process_IDXGIOutputDuplication_GetFramePointerShape( const ApiCallInfo& call_info, @@ -476,23 +476,23 @@ class Dx12AsciiConsumer : public Dx12AsciiConsumerBase UINT PointerShapeBufferSize, PointerDecoder* pPointerShapeBuffer, PointerDecoder* pPointerShapeBufferSizeRequired, - StructPointerDecoder* pPointerShapeInfo); + StructPointerDecoder* pPointerShapeInfo) override; virtual void Process_IDXGIOutputDuplication_MapDesktopSurface( const ApiCallInfo& call_info, format::HandleId object_id, HRESULT return_value, - StructPointerDecoder* pLockedRect); + StructPointerDecoder* pLockedRect) override; virtual void Process_IDXGIOutputDuplication_UnMapDesktopSurface( const ApiCallInfo& call_info, format::HandleId object_id, - HRESULT return_value); + HRESULT return_value) override; virtual void Process_IDXGIOutputDuplication_ReleaseFrame( const ApiCallInfo& call_info, format::HandleId object_id, - HRESULT return_value); + HRESULT return_value) override; virtual void Process_IDXGISurface2_GetResource( const ApiCallInfo& call_info, @@ -500,14 +500,14 @@ class Dx12AsciiConsumer : public Dx12AsciiConsumerBase HRESULT return_value, Decoded_GUID riid, HandlePointerDecoder* ppParentResource, - PointerDecoder* pSubresourceIndex); + PointerDecoder* pSubresourceIndex) override; virtual void Process_IDXGIResource1_CreateSubresourceSurface( const ApiCallInfo& call_info, format::HandleId object_id, HRESULT return_value, UINT index, - HandlePointerDecoder* ppSurface); + HandlePointerDecoder* ppSurface) override; virtual void Process_IDXGIResource1_CreateSharedHandle( const ApiCallInfo& call_info, @@ -516,7 +516,7 @@ class Dx12AsciiConsumer : public Dx12AsciiConsumerBase StructPointerDecoder* pAttributes, DWORD dwAccess, WStringDecoder* lpName, - PointerDecoder* pHandle); + PointerDecoder* pHandle) override; virtual void Process_IDXGIDevice2_OfferResources( const ApiCallInfo& call_info, @@ -524,7 +524,7 @@ class Dx12AsciiConsumer : public Dx12AsciiConsumerBase HRESULT return_value, UINT NumResources, HandlePointerDecoder* ppResources, - DXGI_OFFER_RESOURCE_PRIORITY Priority); + DXGI_OFFER_RESOURCE_PRIORITY Priority) override; virtual void Process_IDXGIDevice2_ReclaimResources( const ApiCallInfo& call_info, @@ -532,38 +532,38 @@ class Dx12AsciiConsumer : public Dx12AsciiConsumerBase HRESULT return_value, UINT NumResources, HandlePointerDecoder* ppResources, - PointerDecoder* pDiscarded); + PointerDecoder* pDiscarded) override; virtual void Process_IDXGIDevice2_EnqueueSetEvent( const ApiCallInfo& call_info, format::HandleId object_id, HRESULT return_value, - uint64_t hEvent); + uint64_t hEvent) override; virtual void Process_IDXGISwapChain1_GetDesc1( const ApiCallInfo& call_info, format::HandleId object_id, HRESULT return_value, - StructPointerDecoder* pDesc); + StructPointerDecoder* pDesc) override; virtual void Process_IDXGISwapChain1_GetFullscreenDesc( const ApiCallInfo& call_info, format::HandleId object_id, HRESULT return_value, - StructPointerDecoder* pDesc); + StructPointerDecoder* pDesc) override; virtual void Process_IDXGISwapChain1_GetHwnd( const ApiCallInfo& call_info, format::HandleId object_id, HRESULT return_value, - PointerDecoder* pHwnd); + PointerDecoder* pHwnd) override; virtual void Process_IDXGISwapChain1_GetCoreWindow( const ApiCallInfo& call_info, format::HandleId object_id, HRESULT return_value, Decoded_GUID refiid, - HandlePointerDecoder* ppUnk); + HandlePointerDecoder* ppUnk) override; virtual void Process_IDXGISwapChain1_Present1( const ApiCallInfo& call_info, @@ -571,47 +571,47 @@ class Dx12AsciiConsumer : public Dx12AsciiConsumerBase HRESULT return_value, UINT SyncInterval, UINT PresentFlags, - StructPointerDecoder* pPresentParameters); + StructPointerDecoder* pPresentParameters) override; virtual void Process_IDXGISwapChain1_IsTemporaryMonoSupported( const ApiCallInfo& call_info, format::HandleId object_id, - BOOL return_value); + BOOL return_value) override; virtual void Process_IDXGISwapChain1_GetRestrictToOutput( const ApiCallInfo& call_info, format::HandleId object_id, HRESULT return_value, - HandlePointerDecoder* ppRestrictToOutput); + HandlePointerDecoder* ppRestrictToOutput) override; virtual void Process_IDXGISwapChain1_SetBackgroundColor( const ApiCallInfo& call_info, format::HandleId object_id, HRESULT return_value, - StructPointerDecoder* pColor); + StructPointerDecoder* pColor) override; virtual void Process_IDXGISwapChain1_GetBackgroundColor( const ApiCallInfo& call_info, format::HandleId object_id, HRESULT return_value, - StructPointerDecoder* pColor); + StructPointerDecoder* pColor) override; virtual void Process_IDXGISwapChain1_SetRotation( const ApiCallInfo& call_info, format::HandleId object_id, HRESULT return_value, - DXGI_MODE_ROTATION Rotation); + DXGI_MODE_ROTATION Rotation) override; virtual void Process_IDXGISwapChain1_GetRotation( const ApiCallInfo& call_info, format::HandleId object_id, HRESULT return_value, - PointerDecoder* pRotation); + PointerDecoder* pRotation) override; virtual void Process_IDXGIFactory2_IsWindowedStereoEnabled( const ApiCallInfo& call_info, format::HandleId object_id, - BOOL return_value); + BOOL return_value) override; virtual void Process_IDXGIFactory2_CreateSwapChainForHwnd( const ApiCallInfo& call_info, @@ -622,7 +622,7 @@ class Dx12AsciiConsumer : public Dx12AsciiConsumerBase StructPointerDecoder* pDesc, StructPointerDecoder* pFullscreenDesc, format::HandleId pRestrictToOutput, - HandlePointerDecoder* ppSwapChain); + HandlePointerDecoder* ppSwapChain) override; virtual void Process_IDXGIFactory2_CreateSwapChainForCoreWindow( const ApiCallInfo& call_info, @@ -632,14 +632,14 @@ class Dx12AsciiConsumer : public Dx12AsciiConsumerBase format::HandleId pWindow, StructPointerDecoder* pDesc, format::HandleId pRestrictToOutput, - HandlePointerDecoder* ppSwapChain); + HandlePointerDecoder* ppSwapChain) override; virtual void Process_IDXGIFactory2_GetSharedResourceAdapterLuid( const ApiCallInfo& call_info, format::HandleId object_id, HRESULT return_value, uint64_t hResource, - StructPointerDecoder* pLuid); + StructPointerDecoder* pLuid) override; virtual void Process_IDXGIFactory2_RegisterStereoStatusWindow( const ApiCallInfo& call_info, @@ -647,19 +647,19 @@ class Dx12AsciiConsumer : public Dx12AsciiConsumerBase HRESULT return_value, uint64_t WindowHandle, UINT wMsg, - PointerDecoder* pdwCookie); + PointerDecoder* pdwCookie) override; virtual void Process_IDXGIFactory2_RegisterStereoStatusEvent( const ApiCallInfo& call_info, format::HandleId object_id, HRESULT return_value, uint64_t hEvent, - PointerDecoder* pdwCookie); + PointerDecoder* pdwCookie) override; virtual void Process_IDXGIFactory2_UnregisterStereoStatus( const ApiCallInfo& call_info, format::HandleId object_id, - DWORD dwCookie); + DWORD dwCookie) override; virtual void Process_IDXGIFactory2_RegisterOcclusionStatusWindow( const ApiCallInfo& call_info, @@ -667,19 +667,19 @@ class Dx12AsciiConsumer : public Dx12AsciiConsumerBase HRESULT return_value, uint64_t WindowHandle, UINT wMsg, - PointerDecoder* pdwCookie); + PointerDecoder* pdwCookie) override; virtual void Process_IDXGIFactory2_RegisterOcclusionStatusEvent( const ApiCallInfo& call_info, format::HandleId object_id, HRESULT return_value, uint64_t hEvent, - PointerDecoder* pdwCookie); + PointerDecoder* pdwCookie) override; virtual void Process_IDXGIFactory2_UnregisterOcclusionStatus( const ApiCallInfo& call_info, format::HandleId object_id, - DWORD dwCookie); + DWORD dwCookie) override; virtual void Process_IDXGIFactory2_CreateSwapChainForComposition( const ApiCallInfo& call_info, @@ -688,13 +688,13 @@ class Dx12AsciiConsumer : public Dx12AsciiConsumerBase format::HandleId pDevice, StructPointerDecoder* pDesc, format::HandleId pRestrictToOutput, - HandlePointerDecoder* ppSwapChain); + HandlePointerDecoder* ppSwapChain) override; virtual void Process_IDXGIAdapter2_GetDesc2( const ApiCallInfo& call_info, format::HandleId object_id, HRESULT return_value, - StructPointerDecoder* pDesc); + StructPointerDecoder* pDesc) override; virtual void Process_IDXGIOutput1_GetDisplayModeList1( const ApiCallInfo& call_info, @@ -703,7 +703,7 @@ class Dx12AsciiConsumer : public Dx12AsciiConsumerBase DXGI_FORMAT EnumFormat, UINT Flags, PointerDecoder* pNumModes, - StructPointerDecoder* pDesc); + StructPointerDecoder* pDesc) override; virtual void Process_IDXGIOutput1_FindClosestMatchingMode1( const ApiCallInfo& call_info, @@ -711,20 +711,20 @@ class Dx12AsciiConsumer : public Dx12AsciiConsumerBase HRESULT return_value, StructPointerDecoder* pModeToMatch, StructPointerDecoder* pClosestMatch, - format::HandleId pConcernedDevice); + format::HandleId pConcernedDevice) override; virtual void Process_IDXGIOutput1_GetDisplaySurfaceData1( const ApiCallInfo& call_info, format::HandleId object_id, HRESULT return_value, - format::HandleId pDestination); + format::HandleId pDestination) override; virtual void Process_IDXGIOutput1_DuplicateOutput( const ApiCallInfo& call_info, format::HandleId object_id, HRESULT return_value, format::HandleId pDevice, - HandlePointerDecoder* ppOutputDuplication); + HandlePointerDecoder* ppOutputDuplication) override; /* ** This part is generated from dxgi1_3.h in Windows SDK: 10.0.20348.0 @@ -735,71 +735,71 @@ class Dx12AsciiConsumer : public Dx12AsciiConsumerBase HRESULT return_value, UINT Flags, Decoded_GUID riid, - HandlePointerDecoder* ppFactory); + HandlePointerDecoder* ppFactory) override; virtual void Process_DXGIGetDebugInterface1( const ApiCallInfo& call_info, HRESULT return_value, UINT Flags, Decoded_GUID riid, - HandlePointerDecoder* pDebug); + HandlePointerDecoder* pDebug) override; virtual void Process_IDXGIDevice3_Trim( const ApiCallInfo& call_info, - format::HandleId object_id); + format::HandleId object_id) override; virtual void Process_IDXGISwapChain2_SetSourceSize( const ApiCallInfo& call_info, format::HandleId object_id, HRESULT return_value, UINT Width, - UINT Height); + UINT Height) override; virtual void Process_IDXGISwapChain2_GetSourceSize( const ApiCallInfo& call_info, format::HandleId object_id, HRESULT return_value, PointerDecoder* pWidth, - PointerDecoder* pHeight); + PointerDecoder* pHeight) override; virtual void Process_IDXGISwapChain2_SetMaximumFrameLatency( const ApiCallInfo& call_info, format::HandleId object_id, HRESULT return_value, - UINT MaxLatency); + UINT MaxLatency) override; virtual void Process_IDXGISwapChain2_GetMaximumFrameLatency( const ApiCallInfo& call_info, format::HandleId object_id, HRESULT return_value, - PointerDecoder* pMaxLatency); + PointerDecoder* pMaxLatency) override; virtual void Process_IDXGISwapChain2_GetFrameLatencyWaitableObject( const ApiCallInfo& call_info, format::HandleId object_id, - uint64_t return_value); + uint64_t return_value) override; virtual void Process_IDXGISwapChain2_SetMatrixTransform( const ApiCallInfo& call_info, format::HandleId object_id, HRESULT return_value, - StructPointerDecoder* pMatrix); + StructPointerDecoder* pMatrix) override; virtual void Process_IDXGISwapChain2_GetMatrixTransform( const ApiCallInfo& call_info, format::HandleId object_id, HRESULT return_value, - StructPointerDecoder* pMatrix); + StructPointerDecoder* pMatrix) override; virtual void Process_IDXGIOutput2_SupportsOverlays( const ApiCallInfo& call_info, format::HandleId object_id, - BOOL return_value); + BOOL return_value) override; virtual void Process_IDXGIFactory3_GetCreationFlags( const ApiCallInfo& call_info, format::HandleId object_id, - UINT return_value); + UINT return_value) override; virtual void Process_IDXGIDecodeSwapChain_PresentBuffer( const ApiCallInfo& call_info, @@ -807,56 +807,56 @@ class Dx12AsciiConsumer : public Dx12AsciiConsumerBase HRESULT return_value, UINT BufferToPresent, UINT SyncInterval, - UINT Flags); + UINT Flags) override; virtual void Process_IDXGIDecodeSwapChain_SetSourceRect( const ApiCallInfo& call_info, format::HandleId object_id, HRESULT return_value, - StructPointerDecoder* pRect); + StructPointerDecoder* pRect) override; virtual void Process_IDXGIDecodeSwapChain_SetTargetRect( const ApiCallInfo& call_info, format::HandleId object_id, HRESULT return_value, - StructPointerDecoder* pRect); + StructPointerDecoder* pRect) override; virtual void Process_IDXGIDecodeSwapChain_SetDestSize( const ApiCallInfo& call_info, format::HandleId object_id, HRESULT return_value, UINT Width, - UINT Height); + UINT Height) override; virtual void Process_IDXGIDecodeSwapChain_GetSourceRect( const ApiCallInfo& call_info, format::HandleId object_id, HRESULT return_value, - StructPointerDecoder* pRect); + StructPointerDecoder* pRect) override; virtual void Process_IDXGIDecodeSwapChain_GetTargetRect( const ApiCallInfo& call_info, format::HandleId object_id, HRESULT return_value, - StructPointerDecoder* pRect); + StructPointerDecoder* pRect) override; virtual void Process_IDXGIDecodeSwapChain_GetDestSize( const ApiCallInfo& call_info, format::HandleId object_id, HRESULT return_value, PointerDecoder* pWidth, - PointerDecoder* pHeight); + PointerDecoder* pHeight) override; virtual void Process_IDXGIDecodeSwapChain_SetColorSpace( const ApiCallInfo& call_info, format::HandleId object_id, HRESULT return_value, - DXGI_MULTIPLANE_OVERLAY_YCbCr_FLAGS ColorSpace); + DXGI_MULTIPLANE_OVERLAY_YCbCr_FLAGS ColorSpace) override; virtual void Process_IDXGIDecodeSwapChain_GetColorSpace( const ApiCallInfo& call_info, format::HandleId object_id, - DXGI_MULTIPLANE_OVERLAY_YCbCr_FLAGS return_value); + DXGI_MULTIPLANE_OVERLAY_YCbCr_FLAGS return_value) override; virtual void Process_IDXGIFactoryMedia_CreateSwapChainForCompositionSurfaceHandle( const ApiCallInfo& call_info, @@ -866,7 +866,7 @@ class Dx12AsciiConsumer : public Dx12AsciiConsumerBase uint64_t hSurface, StructPointerDecoder* pDesc, format::HandleId pRestrictToOutput, - HandlePointerDecoder* ppSwapChain); + HandlePointerDecoder* ppSwapChain) override; virtual void Process_IDXGIFactoryMedia_CreateDecodeSwapChainForCompositionSurfaceHandle( const ApiCallInfo& call_info, @@ -877,19 +877,19 @@ class Dx12AsciiConsumer : public Dx12AsciiConsumerBase StructPointerDecoder* pDesc, format::HandleId pYuvDecodeBuffers, format::HandleId pRestrictToOutput, - HandlePointerDecoder* ppSwapChain); + HandlePointerDecoder* ppSwapChain) override; virtual void Process_IDXGISwapChainMedia_GetFrameStatisticsMedia( const ApiCallInfo& call_info, format::HandleId object_id, HRESULT return_value, - StructPointerDecoder* pStats); + StructPointerDecoder* pStats) override; virtual void Process_IDXGISwapChainMedia_SetPresentDuration( const ApiCallInfo& call_info, format::HandleId object_id, HRESULT return_value, - UINT Duration); + UINT Duration) override; virtual void Process_IDXGISwapChainMedia_CheckPresentDurationSupport( const ApiCallInfo& call_info, @@ -897,7 +897,7 @@ class Dx12AsciiConsumer : public Dx12AsciiConsumerBase HRESULT return_value, UINT DesiredPresentDuration, PointerDecoder* pClosestSmallerPresentDuration, - PointerDecoder* pClosestLargerPresentDuration); + PointerDecoder* pClosestLargerPresentDuration) override; virtual void Process_IDXGIOutput3_CheckOverlaySupport( const ApiCallInfo& call_info, @@ -905,7 +905,7 @@ class Dx12AsciiConsumer : public Dx12AsciiConsumerBase HRESULT return_value, DXGI_FORMAT EnumFormat, format::HandleId pConcernedDevice, - PointerDecoder* pFlags); + PointerDecoder* pFlags) override; /* ** This part is generated from dxgi1_4.h in Windows SDK: 10.0.20348.0 @@ -914,20 +914,20 @@ class Dx12AsciiConsumer : public Dx12AsciiConsumerBase virtual void Process_IDXGISwapChain3_GetCurrentBackBufferIndex( const ApiCallInfo& call_info, format::HandleId object_id, - UINT return_value); + UINT return_value) override; virtual void Process_IDXGISwapChain3_CheckColorSpaceSupport( const ApiCallInfo& call_info, format::HandleId object_id, HRESULT return_value, DXGI_COLOR_SPACE_TYPE ColorSpace, - PointerDecoder* pColorSpaceSupport); + PointerDecoder* pColorSpaceSupport) override; virtual void Process_IDXGISwapChain3_SetColorSpace1( const ApiCallInfo& call_info, format::HandleId object_id, HRESULT return_value, - DXGI_COLOR_SPACE_TYPE ColorSpace); + DXGI_COLOR_SPACE_TYPE ColorSpace) override; virtual void Process_IDXGISwapChain3_ResizeBuffers1( const ApiCallInfo& call_info, @@ -939,7 +939,7 @@ class Dx12AsciiConsumer : public Dx12AsciiConsumerBase DXGI_FORMAT Format, UINT SwapChainFlags, PointerDecoder* pCreationNodeMask, - HandlePointerDecoder* ppPresentQueue); + HandlePointerDecoder* ppPresentQueue) override; virtual void Process_IDXGIOutput4_CheckOverlayColorSpaceSupport( const ApiCallInfo& call_info, @@ -948,7 +948,7 @@ class Dx12AsciiConsumer : public Dx12AsciiConsumerBase DXGI_FORMAT Format, DXGI_COLOR_SPACE_TYPE ColorSpace, format::HandleId pConcernedDevice, - PointerDecoder* pFlags); + PointerDecoder* pFlags) override; virtual void Process_IDXGIFactory4_EnumAdapterByLuid( const ApiCallInfo& call_info, @@ -956,26 +956,26 @@ class Dx12AsciiConsumer : public Dx12AsciiConsumerBase HRESULT return_value, Decoded_LUID AdapterLuid, Decoded_GUID riid, - HandlePointerDecoder* ppvAdapter); + HandlePointerDecoder* ppvAdapter) override; virtual void Process_IDXGIFactory4_EnumWarpAdapter( const ApiCallInfo& call_info, format::HandleId object_id, HRESULT return_value, Decoded_GUID riid, - HandlePointerDecoder* ppvAdapter); + HandlePointerDecoder* ppvAdapter) override; virtual void Process_IDXGIAdapter3_RegisterHardwareContentProtectionTeardownStatusEvent( const ApiCallInfo& call_info, format::HandleId object_id, HRESULT return_value, uint64_t hEvent, - PointerDecoder* pdwCookie); + PointerDecoder* pdwCookie) override; virtual void Process_IDXGIAdapter3_UnregisterHardwareContentProtectionTeardownStatus( const ApiCallInfo& call_info, format::HandleId object_id, - DWORD dwCookie); + DWORD dwCookie) override; virtual void Process_IDXGIAdapter3_QueryVideoMemoryInfo( const ApiCallInfo& call_info, @@ -983,7 +983,7 @@ class Dx12AsciiConsumer : public Dx12AsciiConsumerBase HRESULT return_value, UINT NodeIndex, DXGI_MEMORY_SEGMENT_GROUP MemorySegmentGroup, - StructPointerDecoder* pVideoMemoryInfo); + StructPointerDecoder* pVideoMemoryInfo) override; virtual void Process_IDXGIAdapter3_SetVideoMemoryReservation( const ApiCallInfo& call_info, @@ -991,19 +991,19 @@ class Dx12AsciiConsumer : public Dx12AsciiConsumerBase HRESULT return_value, UINT NodeIndex, DXGI_MEMORY_SEGMENT_GROUP MemorySegmentGroup, - UINT64 Reservation); + UINT64 Reservation) override; virtual void Process_IDXGIAdapter3_RegisterVideoMemoryBudgetChangeNotificationEvent( const ApiCallInfo& call_info, format::HandleId object_id, HRESULT return_value, uint64_t hEvent, - PointerDecoder* pdwCookie); + PointerDecoder* pdwCookie) override; virtual void Process_IDXGIAdapter3_UnregisterVideoMemoryBudgetChangeNotification( const ApiCallInfo& call_info, format::HandleId object_id, - DWORD dwCookie); + DWORD dwCookie) override; /* ** This part is generated from dxgi1_5.h in Windows SDK: 10.0.20348.0 @@ -1017,7 +1017,7 @@ class Dx12AsciiConsumer : public Dx12AsciiConsumerBase UINT Flags, UINT SupportedFormatsCount, PointerDecoder* pSupportedFormats, - HandlePointerDecoder* ppOutputDuplication); + HandlePointerDecoder* ppOutputDuplication) override; virtual void Process_IDXGISwapChain4_SetHDRMetaData( const ApiCallInfo& call_info, @@ -1025,7 +1025,7 @@ class Dx12AsciiConsumer : public Dx12AsciiConsumerBase HRESULT return_value, DXGI_HDR_METADATA_TYPE Type, UINT Size, - PointerDecoder* pMetaData); + PointerDecoder* pMetaData) override; virtual void Process_IDXGIDevice4_OfferResources1( const ApiCallInfo& call_info, @@ -1034,7 +1034,7 @@ class Dx12AsciiConsumer : public Dx12AsciiConsumerBase UINT NumResources, HandlePointerDecoder* ppResources, DXGI_OFFER_RESOURCE_PRIORITY Priority, - UINT Flags); + UINT Flags) override; virtual void Process_IDXGIDevice4_ReclaimResources1( const ApiCallInfo& call_info, @@ -1042,7 +1042,7 @@ class Dx12AsciiConsumer : public Dx12AsciiConsumerBase HRESULT return_value, UINT NumResources, HandlePointerDecoder* ppResources, - PointerDecoder* pResults); + PointerDecoder* pResults) override; /* ** This part is generated from dxgi1_6.h in Windows SDK: 10.0.20348.0 @@ -1050,25 +1050,25 @@ class Dx12AsciiConsumer : public Dx12AsciiConsumerBase */ virtual void Process_DXGIDeclareAdapterRemovalSupport( const ApiCallInfo& call_info, - HRESULT return_value); + HRESULT return_value) override; virtual void Process_IDXGIAdapter4_GetDesc3( const ApiCallInfo& call_info, format::HandleId object_id, HRESULT return_value, - StructPointerDecoder* pDesc); + StructPointerDecoder* pDesc) override; virtual void Process_IDXGIOutput6_GetDesc1( const ApiCallInfo& call_info, format::HandleId object_id, HRESULT return_value, - StructPointerDecoder* pDesc); + StructPointerDecoder* pDesc) override; virtual void Process_IDXGIOutput6_CheckHardwareCompositionSupport( const ApiCallInfo& call_info, format::HandleId object_id, HRESULT return_value, - PointerDecoder* pFlags); + PointerDecoder* pFlags) override; virtual void Process_IDXGIFactory6_EnumAdapterByGpuPreference( const ApiCallInfo& call_info, @@ -1077,20 +1077,20 @@ class Dx12AsciiConsumer : public Dx12AsciiConsumerBase UINT Adapter, DXGI_GPU_PREFERENCE GpuPreference, Decoded_GUID riid, - HandlePointerDecoder* ppvAdapter); + HandlePointerDecoder* ppvAdapter) override; virtual void Process_IDXGIFactory7_RegisterAdaptersChangedEvent( const ApiCallInfo& call_info, format::HandleId object_id, HRESULT return_value, uint64_t hEvent, - PointerDecoder* pdwCookie); + PointerDecoder* pdwCookie) override; virtual void Process_IDXGIFactory7_UnregisterAdaptersChangedEvent( const ApiCallInfo& call_info, format::HandleId object_id, HRESULT return_value, - DWORD dwCookie); + DWORD dwCookie) override; /* ** This part is generated from d3d12.h in Windows SDK: 10.0.20348.0 @@ -1102,7 +1102,7 @@ class Dx12AsciiConsumer : public Dx12AsciiConsumerBase StructPointerDecoder* pRootSignature, D3D_ROOT_SIGNATURE_VERSION Version, HandlePointerDecoder* ppBlob, - HandlePointerDecoder* ppErrorBlob); + HandlePointerDecoder* ppErrorBlob) override; virtual void Process_D3D12CreateRootSignatureDeserializer( const ApiCallInfo& call_info, @@ -1110,14 +1110,14 @@ class Dx12AsciiConsumer : public Dx12AsciiConsumerBase PointerDecoder* pSrcData, SIZE_T SrcDataSizeInBytes, Decoded_GUID pRootSignatureDeserializerInterface, - HandlePointerDecoder* ppRootSignatureDeserializer); + HandlePointerDecoder* ppRootSignatureDeserializer) override; virtual void Process_D3D12SerializeVersionedRootSignature( const ApiCallInfo& call_info, HRESULT return_value, StructPointerDecoder* pRootSignature, HandlePointerDecoder* ppBlob, - HandlePointerDecoder* ppErrorBlob); + HandlePointerDecoder* ppErrorBlob) override; virtual void Process_D3D12CreateVersionedRootSignatureDeserializer( const ApiCallInfo& call_info, @@ -1125,7 +1125,7 @@ class Dx12AsciiConsumer : public Dx12AsciiConsumerBase PointerDecoder* pSrcData, SIZE_T SrcDataSizeInBytes, Decoded_GUID pRootSignatureDeserializerInterface, - HandlePointerDecoder* ppRootSignatureDeserializer); + HandlePointerDecoder* ppRootSignatureDeserializer) override; virtual void Process_D3D12CreateDevice( const ApiCallInfo& call_info, @@ -1133,13 +1133,13 @@ class Dx12AsciiConsumer : public Dx12AsciiConsumerBase format::HandleId pAdapter, D3D_FEATURE_LEVEL MinimumFeatureLevel, Decoded_GUID riid, - HandlePointerDecoder* ppDevice); + HandlePointerDecoder* ppDevice) override; virtual void Process_D3D12GetDebugInterface( const ApiCallInfo& call_info, HRESULT return_value, Decoded_GUID riid, - HandlePointerDecoder* ppvDebug); + HandlePointerDecoder* ppvDebug) override; virtual void Process_D3D12EnableExperimentalFeatures( const ApiCallInfo& call_info, @@ -1147,14 +1147,14 @@ class Dx12AsciiConsumer : public Dx12AsciiConsumerBase UINT NumFeatures, StructPointerDecoder* pIIDs, PointerDecoder* pConfigurationStructs, - PointerDecoder* pConfigurationStructSizes); + PointerDecoder* pConfigurationStructSizes) override; virtual void Process_D3D12GetInterface( const ApiCallInfo& call_info, HRESULT return_value, Decoded_GUID rclsid, Decoded_GUID riid, - HandlePointerDecoder* ppvDebug); + HandlePointerDecoder* ppvDebug) override; virtual void Process_ID3D12Object_GetPrivateData( const ApiCallInfo& call_info, @@ -1162,7 +1162,7 @@ class Dx12AsciiConsumer : public Dx12AsciiConsumerBase HRESULT return_value, Decoded_GUID guid, PointerDecoder* pDataSize, - PointerDecoder* pData); + PointerDecoder* pData) override; virtual void Process_ID3D12Object_SetPrivateData( const ApiCallInfo& call_info, @@ -1170,49 +1170,49 @@ class Dx12AsciiConsumer : public Dx12AsciiConsumerBase HRESULT return_value, Decoded_GUID guid, UINT DataSize, - PointerDecoder* pData); + PointerDecoder* pData) override; virtual void Process_ID3D12Object_SetPrivateDataInterface( const ApiCallInfo& call_info, format::HandleId object_id, HRESULT return_value, Decoded_GUID guid, - format::HandleId pData); + format::HandleId pData) override; virtual void Process_ID3D12Object_SetName( const ApiCallInfo& call_info, format::HandleId object_id, HRESULT return_value, - WStringDecoder* Name); + WStringDecoder* Name) override; virtual void Process_ID3D12DeviceChild_GetDevice( const ApiCallInfo& call_info, format::HandleId object_id, HRESULT return_value, Decoded_GUID riid, - HandlePointerDecoder* ppvDevice); + HandlePointerDecoder* ppvDevice) override; virtual void Process_ID3D12RootSignatureDeserializer_GetRootSignatureDesc( const ApiCallInfo& call_info, format::HandleId object_id, - StructPointerDecoder* return_value); + StructPointerDecoder* return_value) override; virtual void Process_ID3D12VersionedRootSignatureDeserializer_GetRootSignatureDescAtVersion( const ApiCallInfo& call_info, format::HandleId object_id, HRESULT return_value, D3D_ROOT_SIGNATURE_VERSION convertToVersion, - StructPointerDecoder* ppDesc); + StructPointerDecoder* ppDesc) override; virtual void Process_ID3D12VersionedRootSignatureDeserializer_GetUnconvertedRootSignatureDesc( const ApiCallInfo& call_info, format::HandleId object_id, - StructPointerDecoder* return_value); + StructPointerDecoder* return_value) override; virtual void Process_ID3D12Heap_GetDesc( const ApiCallInfo& call_info, format::HandleId object_id, - Decoded_D3D12_HEAP_DESC return_value); + Decoded_D3D12_HEAP_DESC return_value) override; virtual void Process_ID3D12Resource_Map( const ApiCallInfo& call_info, @@ -1220,23 +1220,23 @@ class Dx12AsciiConsumer : public Dx12AsciiConsumerBase HRESULT return_value, UINT Subresource, StructPointerDecoder* pReadRange, - PointerDecoder* ppData); + PointerDecoder* ppData) override; virtual void Process_ID3D12Resource_Unmap( const ApiCallInfo& call_info, format::HandleId object_id, UINT Subresource, - StructPointerDecoder* pWrittenRange); + StructPointerDecoder* pWrittenRange) override; virtual void Process_ID3D12Resource_GetDesc( const ApiCallInfo& call_info, format::HandleId object_id, - Decoded_D3D12_RESOURCE_DESC return_value); + Decoded_D3D12_RESOURCE_DESC return_value) override; virtual void Process_ID3D12Resource_GetGPUVirtualAddress( const ApiCallInfo& call_info, format::HandleId object_id, - D3D12_GPU_VIRTUAL_ADDRESS return_value); + D3D12_GPU_VIRTUAL_ADDRESS return_value) override; virtual void Process_ID3D12Resource_ReadFromSubresource( const ApiCallInfo& call_info, @@ -1246,85 +1246,85 @@ class Dx12AsciiConsumer : public Dx12AsciiConsumerBase UINT DstRowPitch, UINT DstDepthPitch, UINT SrcSubresource, - StructPointerDecoder* pSrcBox); + StructPointerDecoder* pSrcBox) override; virtual void Process_ID3D12Resource_GetHeapProperties( const ApiCallInfo& call_info, format::HandleId object_id, HRESULT return_value, StructPointerDecoder* pHeapProperties, - PointerDecoder* pHeapFlags); + PointerDecoder* pHeapFlags) override; virtual void Process_ID3D12CommandAllocator_Reset( const ApiCallInfo& call_info, format::HandleId object_id, - HRESULT return_value); + HRESULT return_value) override; virtual void Process_ID3D12Fence_GetCompletedValue( const ApiCallInfo& call_info, format::HandleId object_id, - UINT64 return_value); + UINT64 return_value) override; virtual void Process_ID3D12Fence_SetEventOnCompletion( const ApiCallInfo& call_info, format::HandleId object_id, HRESULT return_value, UINT64 Value, - uint64_t hEvent); + uint64_t hEvent) override; virtual void Process_ID3D12Fence_Signal( const ApiCallInfo& call_info, format::HandleId object_id, HRESULT return_value, - UINT64 Value); + UINT64 Value) override; virtual void Process_ID3D12Fence1_GetCreationFlags( const ApiCallInfo& call_info, format::HandleId object_id, - D3D12_FENCE_FLAGS return_value); + D3D12_FENCE_FLAGS return_value) override; virtual void Process_ID3D12PipelineState_GetCachedBlob( const ApiCallInfo& call_info, format::HandleId object_id, HRESULT return_value, - HandlePointerDecoder* ppBlob); + HandlePointerDecoder* ppBlob) override; virtual void Process_ID3D12DescriptorHeap_GetDesc( const ApiCallInfo& call_info, format::HandleId object_id, - Decoded_D3D12_DESCRIPTOR_HEAP_DESC return_value); + Decoded_D3D12_DESCRIPTOR_HEAP_DESC return_value) override; virtual void Process_ID3D12DescriptorHeap_GetCPUDescriptorHandleForHeapStart( const ApiCallInfo& call_info, format::HandleId object_id, - Decoded_D3D12_CPU_DESCRIPTOR_HANDLE return_value); + Decoded_D3D12_CPU_DESCRIPTOR_HANDLE return_value) override; virtual void Process_ID3D12DescriptorHeap_GetGPUDescriptorHandleForHeapStart( const ApiCallInfo& call_info, format::HandleId object_id, - Decoded_D3D12_GPU_DESCRIPTOR_HANDLE return_value); + Decoded_D3D12_GPU_DESCRIPTOR_HANDLE return_value) override; virtual void Process_ID3D12CommandList_GetType( const ApiCallInfo& call_info, format::HandleId object_id, - D3D12_COMMAND_LIST_TYPE return_value); + D3D12_COMMAND_LIST_TYPE return_value) override; virtual void Process_ID3D12GraphicsCommandList_Close( const ApiCallInfo& call_info, format::HandleId object_id, - HRESULT return_value); + HRESULT return_value) override; virtual void Process_ID3D12GraphicsCommandList_Reset( const ApiCallInfo& call_info, format::HandleId object_id, HRESULT return_value, format::HandleId pAllocator, - format::HandleId pInitialState); + format::HandleId pInitialState) override; virtual void Process_ID3D12GraphicsCommandList_ClearState( const ApiCallInfo& call_info, format::HandleId object_id, - format::HandleId pPipelineState); + format::HandleId pPipelineState) override; virtual void Process_ID3D12GraphicsCommandList_DrawInstanced( const ApiCallInfo& call_info, @@ -1332,7 +1332,7 @@ class Dx12AsciiConsumer : public Dx12AsciiConsumerBase UINT VertexCountPerInstance, UINT InstanceCount, UINT StartVertexLocation, - UINT StartInstanceLocation); + UINT StartInstanceLocation) override; virtual void Process_ID3D12GraphicsCommandList_DrawIndexedInstanced( const ApiCallInfo& call_info, @@ -1341,14 +1341,14 @@ class Dx12AsciiConsumer : public Dx12AsciiConsumerBase UINT InstanceCount, UINT StartIndexLocation, INT BaseVertexLocation, - UINT StartInstanceLocation); + UINT StartInstanceLocation) override; virtual void Process_ID3D12GraphicsCommandList_Dispatch( const ApiCallInfo& call_info, format::HandleId object_id, UINT ThreadGroupCountX, UINT ThreadGroupCountY, - UINT ThreadGroupCountZ); + UINT ThreadGroupCountZ) override; virtual void Process_ID3D12GraphicsCommandList_CopyBufferRegion( const ApiCallInfo& call_info, @@ -1357,7 +1357,7 @@ class Dx12AsciiConsumer : public Dx12AsciiConsumerBase UINT64 DstOffset, format::HandleId pSrcBuffer, UINT64 SrcOffset, - UINT64 NumBytes); + UINT64 NumBytes) override; virtual void Process_ID3D12GraphicsCommandList_CopyTextureRegion( const ApiCallInfo& call_info, @@ -1367,13 +1367,13 @@ class Dx12AsciiConsumer : public Dx12AsciiConsumerBase UINT DstY, UINT DstZ, StructPointerDecoder* pSrc, - StructPointerDecoder* pSrcBox); + StructPointerDecoder* pSrcBox) override; virtual void Process_ID3D12GraphicsCommandList_CopyResource( const ApiCallInfo& call_info, format::HandleId object_id, format::HandleId pDstResource, - format::HandleId pSrcResource); + format::HandleId pSrcResource) override; virtual void Process_ID3D12GraphicsCommandList_CopyTiles( const ApiCallInfo& call_info, @@ -1383,7 +1383,7 @@ class Dx12AsciiConsumer : public Dx12AsciiConsumerBase StructPointerDecoder* pTileRegionSize, format::HandleId pBuffer, UINT64 BufferStartOffsetInBytes, - D3D12_TILE_COPY_FLAGS Flags); + D3D12_TILE_COPY_FLAGS Flags) override; virtual void Process_ID3D12GraphicsCommandList_ResolveSubresource( const ApiCallInfo& call_info, @@ -1392,92 +1392,92 @@ class Dx12AsciiConsumer : public Dx12AsciiConsumerBase UINT DstSubresource, format::HandleId pSrcResource, UINT SrcSubresource, - DXGI_FORMAT Format); + DXGI_FORMAT Format) override; virtual void Process_ID3D12GraphicsCommandList_IASetPrimitiveTopology( const ApiCallInfo& call_info, format::HandleId object_id, - D3D_PRIMITIVE_TOPOLOGY PrimitiveTopology); + D3D_PRIMITIVE_TOPOLOGY PrimitiveTopology) override; virtual void Process_ID3D12GraphicsCommandList_RSSetViewports( const ApiCallInfo& call_info, format::HandleId object_id, UINT NumViewports, - StructPointerDecoder* pViewports); + StructPointerDecoder* pViewports) override; virtual void Process_ID3D12GraphicsCommandList_RSSetScissorRects( const ApiCallInfo& call_info, format::HandleId object_id, UINT NumRects, - StructPointerDecoder* pRects); + StructPointerDecoder* pRects) override; virtual void Process_ID3D12GraphicsCommandList_OMSetBlendFactor( const ApiCallInfo& call_info, format::HandleId object_id, - PointerDecoder BlendFactor [4]); + PointerDecoder BlendFactor [4]) override; virtual void Process_ID3D12GraphicsCommandList_OMSetStencilRef( const ApiCallInfo& call_info, format::HandleId object_id, - UINT StencilRef); + UINT StencilRef) override; virtual void Process_ID3D12GraphicsCommandList_SetPipelineState( const ApiCallInfo& call_info, format::HandleId object_id, - format::HandleId pPipelineState); + format::HandleId pPipelineState) override; virtual void Process_ID3D12GraphicsCommandList_ResourceBarrier( const ApiCallInfo& call_info, format::HandleId object_id, UINT NumBarriers, - StructPointerDecoder* pBarriers); + StructPointerDecoder* pBarriers) override; virtual void Process_ID3D12GraphicsCommandList_ExecuteBundle( const ApiCallInfo& call_info, format::HandleId object_id, - format::HandleId pCommandList); + format::HandleId pCommandList) override; virtual void Process_ID3D12GraphicsCommandList_SetDescriptorHeaps( const ApiCallInfo& call_info, format::HandleId object_id, UINT NumDescriptorHeaps, - HandlePointerDecoder* ppDescriptorHeaps); + HandlePointerDecoder* ppDescriptorHeaps) override; virtual void Process_ID3D12GraphicsCommandList_SetComputeRootSignature( const ApiCallInfo& call_info, format::HandleId object_id, - format::HandleId pRootSignature); + format::HandleId pRootSignature) override; virtual void Process_ID3D12GraphicsCommandList_SetGraphicsRootSignature( const ApiCallInfo& call_info, format::HandleId object_id, - format::HandleId pRootSignature); + format::HandleId pRootSignature) override; virtual void Process_ID3D12GraphicsCommandList_SetComputeRootDescriptorTable( const ApiCallInfo& call_info, format::HandleId object_id, UINT RootParameterIndex, - Decoded_D3D12_GPU_DESCRIPTOR_HANDLE BaseDescriptor); + Decoded_D3D12_GPU_DESCRIPTOR_HANDLE BaseDescriptor) override; virtual void Process_ID3D12GraphicsCommandList_SetGraphicsRootDescriptorTable( const ApiCallInfo& call_info, format::HandleId object_id, UINT RootParameterIndex, - Decoded_D3D12_GPU_DESCRIPTOR_HANDLE BaseDescriptor); + Decoded_D3D12_GPU_DESCRIPTOR_HANDLE BaseDescriptor) override; virtual void Process_ID3D12GraphicsCommandList_SetComputeRoot32BitConstant( const ApiCallInfo& call_info, format::HandleId object_id, UINT RootParameterIndex, UINT SrcData, - UINT DestOffsetIn32BitValues); + UINT DestOffsetIn32BitValues) override; virtual void Process_ID3D12GraphicsCommandList_SetGraphicsRoot32BitConstant( const ApiCallInfo& call_info, format::HandleId object_id, UINT RootParameterIndex, UINT SrcData, - UINT DestOffsetIn32BitValues); + UINT DestOffsetIn32BitValues) override; virtual void Process_ID3D12GraphicsCommandList_SetComputeRoot32BitConstants( const ApiCallInfo& call_info, @@ -1485,7 +1485,7 @@ class Dx12AsciiConsumer : public Dx12AsciiConsumerBase UINT RootParameterIndex, UINT Num32BitValuesToSet, PointerDecoder* pSrcData, - UINT DestOffsetIn32BitValues); + UINT DestOffsetIn32BitValues) override; virtual void Process_ID3D12GraphicsCommandList_SetGraphicsRoot32BitConstants( const ApiCallInfo& call_info, @@ -1493,62 +1493,62 @@ class Dx12AsciiConsumer : public Dx12AsciiConsumerBase UINT RootParameterIndex, UINT Num32BitValuesToSet, PointerDecoder* pSrcData, - UINT DestOffsetIn32BitValues); + UINT DestOffsetIn32BitValues) override; virtual void Process_ID3D12GraphicsCommandList_SetComputeRootConstantBufferView( const ApiCallInfo& call_info, format::HandleId object_id, UINT RootParameterIndex, - D3D12_GPU_VIRTUAL_ADDRESS BufferLocation); + D3D12_GPU_VIRTUAL_ADDRESS BufferLocation) override; virtual void Process_ID3D12GraphicsCommandList_SetGraphicsRootConstantBufferView( const ApiCallInfo& call_info, format::HandleId object_id, UINT RootParameterIndex, - D3D12_GPU_VIRTUAL_ADDRESS BufferLocation); + D3D12_GPU_VIRTUAL_ADDRESS BufferLocation) override; virtual void Process_ID3D12GraphicsCommandList_SetComputeRootShaderResourceView( const ApiCallInfo& call_info, format::HandleId object_id, UINT RootParameterIndex, - D3D12_GPU_VIRTUAL_ADDRESS BufferLocation); + D3D12_GPU_VIRTUAL_ADDRESS BufferLocation) override; virtual void Process_ID3D12GraphicsCommandList_SetGraphicsRootShaderResourceView( const ApiCallInfo& call_info, format::HandleId object_id, UINT RootParameterIndex, - D3D12_GPU_VIRTUAL_ADDRESS BufferLocation); + D3D12_GPU_VIRTUAL_ADDRESS BufferLocation) override; virtual void Process_ID3D12GraphicsCommandList_SetComputeRootUnorderedAccessView( const ApiCallInfo& call_info, format::HandleId object_id, UINT RootParameterIndex, - D3D12_GPU_VIRTUAL_ADDRESS BufferLocation); + D3D12_GPU_VIRTUAL_ADDRESS BufferLocation) override; virtual void Process_ID3D12GraphicsCommandList_SetGraphicsRootUnorderedAccessView( const ApiCallInfo& call_info, format::HandleId object_id, UINT RootParameterIndex, - D3D12_GPU_VIRTUAL_ADDRESS BufferLocation); + D3D12_GPU_VIRTUAL_ADDRESS BufferLocation) override; virtual void Process_ID3D12GraphicsCommandList_IASetIndexBuffer( const ApiCallInfo& call_info, format::HandleId object_id, - StructPointerDecoder* pView); + StructPointerDecoder* pView) override; virtual void Process_ID3D12GraphicsCommandList_IASetVertexBuffers( const ApiCallInfo& call_info, format::HandleId object_id, UINT StartSlot, UINT NumViews, - StructPointerDecoder* pViews); + StructPointerDecoder* pViews) override; virtual void Process_ID3D12GraphicsCommandList_SOSetTargets( const ApiCallInfo& call_info, format::HandleId object_id, UINT StartSlot, UINT NumViews, - StructPointerDecoder* pViews); + StructPointerDecoder* pViews) override; virtual void Process_ID3D12GraphicsCommandList_OMSetRenderTargets( const ApiCallInfo& call_info, @@ -1556,7 +1556,7 @@ class Dx12AsciiConsumer : public Dx12AsciiConsumerBase UINT NumRenderTargetDescriptors, StructPointerDecoder* pRenderTargetDescriptors, BOOL RTsSingleHandleToDescriptorRange, - StructPointerDecoder* pDepthStencilDescriptor); + StructPointerDecoder* pDepthStencilDescriptor) override; virtual void Process_ID3D12GraphicsCommandList_ClearDepthStencilView( const ApiCallInfo& call_info, @@ -1566,7 +1566,7 @@ class Dx12AsciiConsumer : public Dx12AsciiConsumerBase FLOAT Depth, UINT8 Stencil, UINT NumRects, - StructPointerDecoder* pRects); + StructPointerDecoder* pRects) override; virtual void Process_ID3D12GraphicsCommandList_ClearRenderTargetView( const ApiCallInfo& call_info, @@ -1574,7 +1574,7 @@ class Dx12AsciiConsumer : public Dx12AsciiConsumerBase Decoded_D3D12_CPU_DESCRIPTOR_HANDLE RenderTargetView, PointerDecoder ColorRGBA [4], UINT NumRects, - StructPointerDecoder* pRects); + StructPointerDecoder* pRects) override; virtual void Process_ID3D12GraphicsCommandList_ClearUnorderedAccessViewUint( const ApiCallInfo& call_info, @@ -1584,7 +1584,7 @@ class Dx12AsciiConsumer : public Dx12AsciiConsumerBase format::HandleId pResource, PointerDecoder Values [4], UINT NumRects, - StructPointerDecoder* pRects); + StructPointerDecoder* pRects) override; virtual void Process_ID3D12GraphicsCommandList_ClearUnorderedAccessViewFloat( const ApiCallInfo& call_info, @@ -1594,27 +1594,27 @@ class Dx12AsciiConsumer : public Dx12AsciiConsumerBase format::HandleId pResource, PointerDecoder Values [4], UINT NumRects, - StructPointerDecoder* pRects); + StructPointerDecoder* pRects) override; virtual void Process_ID3D12GraphicsCommandList_DiscardResource( const ApiCallInfo& call_info, format::HandleId object_id, format::HandleId pResource, - StructPointerDecoder* pRegion); + StructPointerDecoder* pRegion) override; virtual void Process_ID3D12GraphicsCommandList_BeginQuery( const ApiCallInfo& call_info, format::HandleId object_id, format::HandleId pQueryHeap, D3D12_QUERY_TYPE Type, - UINT Index); + UINT Index) override; virtual void Process_ID3D12GraphicsCommandList_EndQuery( const ApiCallInfo& call_info, format::HandleId object_id, format::HandleId pQueryHeap, D3D12_QUERY_TYPE Type, - UINT Index); + UINT Index) override; virtual void Process_ID3D12GraphicsCommandList_ResolveQueryData( const ApiCallInfo& call_info, @@ -1624,32 +1624,32 @@ class Dx12AsciiConsumer : public Dx12AsciiConsumerBase UINT StartIndex, UINT NumQueries, format::HandleId pDestinationBuffer, - UINT64 AlignedDestinationBufferOffset); + UINT64 AlignedDestinationBufferOffset) override; virtual void Process_ID3D12GraphicsCommandList_SetPredication( const ApiCallInfo& call_info, format::HandleId object_id, format::HandleId pBuffer, UINT64 AlignedBufferOffset, - D3D12_PREDICATION_OP Operation); + D3D12_PREDICATION_OP Operation) override; virtual void Process_ID3D12GraphicsCommandList_SetMarker( const ApiCallInfo& call_info, format::HandleId object_id, UINT Metadata, PointerDecoder* pData, - UINT Size); + UINT Size) override; virtual void Process_ID3D12GraphicsCommandList_BeginEvent( const ApiCallInfo& call_info, format::HandleId object_id, UINT Metadata, PointerDecoder* pData, - UINT Size); + UINT Size) override; virtual void Process_ID3D12GraphicsCommandList_EndEvent( const ApiCallInfo& call_info, - format::HandleId object_id); + format::HandleId object_id) override; virtual void Process_ID3D12GraphicsCommandList_ExecuteIndirect( const ApiCallInfo& call_info, @@ -1659,7 +1659,7 @@ class Dx12AsciiConsumer : public Dx12AsciiConsumerBase format::HandleId pArgumentBuffer, UINT64 ArgumentBufferOffset, format::HandleId pCountBuffer, - UINT64 CountBufferOffset); + UINT64 CountBufferOffset) override; virtual void Process_ID3D12GraphicsCommandList1_AtomicCopyBufferUINT( const ApiCallInfo& call_info, @@ -1670,7 +1670,7 @@ class Dx12AsciiConsumer : public Dx12AsciiConsumerBase UINT64 SrcOffset, UINT Dependencies, HandlePointerDecoder* ppDependentResources, - StructPointerDecoder* pDependentSubresourceRanges); + StructPointerDecoder* pDependentSubresourceRanges) override; virtual void Process_ID3D12GraphicsCommandList1_AtomicCopyBufferUINT64( const ApiCallInfo& call_info, @@ -1681,20 +1681,20 @@ class Dx12AsciiConsumer : public Dx12AsciiConsumerBase UINT64 SrcOffset, UINT Dependencies, HandlePointerDecoder* ppDependentResources, - StructPointerDecoder* pDependentSubresourceRanges); + StructPointerDecoder* pDependentSubresourceRanges) override; virtual void Process_ID3D12GraphicsCommandList1_OMSetDepthBounds( const ApiCallInfo& call_info, format::HandleId object_id, FLOAT Min, - FLOAT Max); + FLOAT Max) override; virtual void Process_ID3D12GraphicsCommandList1_SetSamplePositions( const ApiCallInfo& call_info, format::HandleId object_id, UINT NumSamplesPerPixel, UINT NumPixels, - StructPointerDecoder* pSamplePositions); + StructPointerDecoder* pSamplePositions) override; virtual void Process_ID3D12GraphicsCommandList1_ResolveSubresourceRegion( const ApiCallInfo& call_info, @@ -1707,19 +1707,19 @@ class Dx12AsciiConsumer : public Dx12AsciiConsumerBase UINT SrcSubresource, StructPointerDecoder* pSrcRect, DXGI_FORMAT Format, - D3D12_RESOLVE_MODE ResolveMode); + D3D12_RESOLVE_MODE ResolveMode) override; virtual void Process_ID3D12GraphicsCommandList1_SetViewInstanceMask( const ApiCallInfo& call_info, format::HandleId object_id, - UINT Mask); + UINT Mask) override; virtual void Process_ID3D12GraphicsCommandList2_WriteBufferImmediate( const ApiCallInfo& call_info, format::HandleId object_id, UINT Count, StructPointerDecoder* pParams, - PointerDecoder* pModes); + PointerDecoder* pModes) override; virtual void Process_ID3D12CommandQueue_UpdateTileMappings( const ApiCallInfo& call_info, @@ -1733,7 +1733,7 @@ class Dx12AsciiConsumer : public Dx12AsciiConsumerBase PointerDecoder* pRangeFlags, PointerDecoder* pHeapRangeStartOffsets, PointerDecoder* pRangeTileCounts, - D3D12_TILE_MAPPING_FLAGS Flags); + D3D12_TILE_MAPPING_FLAGS Flags) override; virtual void Process_ID3D12CommandQueue_CopyTileMappings( const ApiCallInfo& call_info, @@ -1743,68 +1743,68 @@ class Dx12AsciiConsumer : public Dx12AsciiConsumerBase format::HandleId pSrcResource, StructPointerDecoder* pSrcRegionStartCoordinate, StructPointerDecoder* pRegionSize, - D3D12_TILE_MAPPING_FLAGS Flags); + D3D12_TILE_MAPPING_FLAGS Flags) override; virtual void Process_ID3D12CommandQueue_ExecuteCommandLists( const ApiCallInfo& call_info, format::HandleId object_id, UINT NumCommandLists, - HandlePointerDecoder* ppCommandLists); + HandlePointerDecoder* ppCommandLists) override; virtual void Process_ID3D12CommandQueue_SetMarker( const ApiCallInfo& call_info, format::HandleId object_id, UINT Metadata, PointerDecoder* pData, - UINT Size); + UINT Size) override; virtual void Process_ID3D12CommandQueue_BeginEvent( const ApiCallInfo& call_info, format::HandleId object_id, UINT Metadata, PointerDecoder* pData, - UINT Size); + UINT Size) override; virtual void Process_ID3D12CommandQueue_EndEvent( const ApiCallInfo& call_info, - format::HandleId object_id); + format::HandleId object_id) override; virtual void Process_ID3D12CommandQueue_Signal( const ApiCallInfo& call_info, format::HandleId object_id, HRESULT return_value, format::HandleId pFence, - UINT64 Value); + UINT64 Value) override; virtual void Process_ID3D12CommandQueue_Wait( const ApiCallInfo& call_info, format::HandleId object_id, HRESULT return_value, format::HandleId pFence, - UINT64 Value); + UINT64 Value) override; virtual void Process_ID3D12CommandQueue_GetTimestampFrequency( const ApiCallInfo& call_info, format::HandleId object_id, HRESULT return_value, - PointerDecoder* pFrequency); + PointerDecoder* pFrequency) override; virtual void Process_ID3D12CommandQueue_GetClockCalibration( const ApiCallInfo& call_info, format::HandleId object_id, HRESULT return_value, PointerDecoder* pGpuTimestamp, - PointerDecoder* pCpuTimestamp); + PointerDecoder* pCpuTimestamp) override; virtual void Process_ID3D12CommandQueue_GetDesc( const ApiCallInfo& call_info, format::HandleId object_id, - Decoded_D3D12_COMMAND_QUEUE_DESC return_value); + Decoded_D3D12_COMMAND_QUEUE_DESC return_value) override; virtual void Process_ID3D12Device_GetNodeCount( const ApiCallInfo& call_info, format::HandleId object_id, - UINT return_value); + UINT return_value) override; virtual void Process_ID3D12Device_CreateCommandQueue( const ApiCallInfo& call_info, @@ -1812,7 +1812,7 @@ class Dx12AsciiConsumer : public Dx12AsciiConsumerBase HRESULT return_value, StructPointerDecoder* pDesc, Decoded_GUID riid, - HandlePointerDecoder* ppCommandQueue); + HandlePointerDecoder* ppCommandQueue) override; virtual void Process_ID3D12Device_CreateCommandAllocator( const ApiCallInfo& call_info, @@ -1820,7 +1820,7 @@ class Dx12AsciiConsumer : public Dx12AsciiConsumerBase HRESULT return_value, D3D12_COMMAND_LIST_TYPE type, Decoded_GUID riid, - HandlePointerDecoder* ppCommandAllocator); + HandlePointerDecoder* ppCommandAllocator) override; virtual void Process_ID3D12Device_CreateGraphicsPipelineState( const ApiCallInfo& call_info, @@ -1828,7 +1828,7 @@ class Dx12AsciiConsumer : public Dx12AsciiConsumerBase HRESULT return_value, StructPointerDecoder* pDesc, Decoded_GUID riid, - HandlePointerDecoder* ppPipelineState); + HandlePointerDecoder* ppPipelineState) override; virtual void Process_ID3D12Device_CreateComputePipelineState( const ApiCallInfo& call_info, @@ -1836,7 +1836,7 @@ class Dx12AsciiConsumer : public Dx12AsciiConsumerBase HRESULT return_value, StructPointerDecoder* pDesc, Decoded_GUID riid, - HandlePointerDecoder* ppPipelineState); + HandlePointerDecoder* ppPipelineState) override; virtual void Process_ID3D12Device_CreateCommandList( const ApiCallInfo& call_info, @@ -1847,7 +1847,7 @@ class Dx12AsciiConsumer : public Dx12AsciiConsumerBase format::HandleId pCommandAllocator, format::HandleId pInitialState, Decoded_GUID riid, - HandlePointerDecoder* ppCommandList); + HandlePointerDecoder* ppCommandList) override; virtual void Process_ID3D12Device_CreateDescriptorHeap( const ApiCallInfo& call_info, @@ -1855,13 +1855,13 @@ class Dx12AsciiConsumer : public Dx12AsciiConsumerBase HRESULT return_value, StructPointerDecoder* pDescriptorHeapDesc, Decoded_GUID riid, - HandlePointerDecoder* ppvHeap); + HandlePointerDecoder* ppvHeap) override; virtual void Process_ID3D12Device_GetDescriptorHandleIncrementSize( const ApiCallInfo& call_info, format::HandleId object_id, UINT return_value, - D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapType); + D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapType) override; virtual void Process_ID3D12Device_CreateRootSignature( const ApiCallInfo& call_info, @@ -1871,20 +1871,20 @@ class Dx12AsciiConsumer : public Dx12AsciiConsumerBase PointerDecoder* pBlobWithRootSignature, SIZE_T blobLengthInBytes, Decoded_GUID riid, - HandlePointerDecoder* ppvRootSignature); + HandlePointerDecoder* ppvRootSignature) override; virtual void Process_ID3D12Device_CreateConstantBufferView( const ApiCallInfo& call_info, format::HandleId object_id, StructPointerDecoder* pDesc, - Decoded_D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); + Decoded_D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor) override; virtual void Process_ID3D12Device_CreateShaderResourceView( const ApiCallInfo& call_info, format::HandleId object_id, format::HandleId pResource, StructPointerDecoder* pDesc, - Decoded_D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); + Decoded_D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor) override; virtual void Process_ID3D12Device_CreateUnorderedAccessView( const ApiCallInfo& call_info, @@ -1892,27 +1892,27 @@ class Dx12AsciiConsumer : public Dx12AsciiConsumerBase format::HandleId pResource, format::HandleId pCounterResource, StructPointerDecoder* pDesc, - Decoded_D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); + Decoded_D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor) override; virtual void Process_ID3D12Device_CreateRenderTargetView( const ApiCallInfo& call_info, format::HandleId object_id, format::HandleId pResource, StructPointerDecoder* pDesc, - Decoded_D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); + Decoded_D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor) override; virtual void Process_ID3D12Device_CreateDepthStencilView( const ApiCallInfo& call_info, format::HandleId object_id, format::HandleId pResource, StructPointerDecoder* pDesc, - Decoded_D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); + Decoded_D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor) override; virtual void Process_ID3D12Device_CreateSampler( const ApiCallInfo& call_info, format::HandleId object_id, StructPointerDecoder* pDesc, - Decoded_D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); + Decoded_D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor) override; virtual void Process_ID3D12Device_CopyDescriptors( const ApiCallInfo& call_info, @@ -1923,7 +1923,7 @@ class Dx12AsciiConsumer : public Dx12AsciiConsumerBase UINT NumSrcDescriptorRanges, StructPointerDecoder* pSrcDescriptorRangeStarts, PointerDecoder* pSrcDescriptorRangeSizes, - D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType); + D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType) override; virtual void Process_ID3D12Device_CopyDescriptorsSimple( const ApiCallInfo& call_info, @@ -1931,7 +1931,7 @@ class Dx12AsciiConsumer : public Dx12AsciiConsumerBase UINT NumDescriptors, Decoded_D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptorRangeStart, Decoded_D3D12_CPU_DESCRIPTOR_HANDLE SrcDescriptorRangeStart, - D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType); + D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType) override; virtual void Process_ID3D12Device_GetResourceAllocationInfo( const ApiCallInfo& call_info, @@ -1939,14 +1939,14 @@ class Dx12AsciiConsumer : public Dx12AsciiConsumerBase Decoded_D3D12_RESOURCE_ALLOCATION_INFO return_value, UINT visibleMask, UINT numResourceDescs, - StructPointerDecoder* pResourceDescs); + StructPointerDecoder* pResourceDescs) override; virtual void Process_ID3D12Device_GetCustomHeapProperties( const ApiCallInfo& call_info, format::HandleId object_id, Decoded_D3D12_HEAP_PROPERTIES return_value, UINT nodeMask, - D3D12_HEAP_TYPE heapType); + D3D12_HEAP_TYPE heapType) override; virtual void Process_ID3D12Device_CreateCommittedResource( const ApiCallInfo& call_info, @@ -1958,7 +1958,7 @@ class Dx12AsciiConsumer : public Dx12AsciiConsumerBase D3D12_RESOURCE_STATES InitialResourceState, StructPointerDecoder* pOptimizedClearValue, Decoded_GUID riidResource, - HandlePointerDecoder* ppvResource); + HandlePointerDecoder* ppvResource) override; virtual void Process_ID3D12Device_CreateHeap( const ApiCallInfo& call_info, @@ -1966,7 +1966,7 @@ class Dx12AsciiConsumer : public Dx12AsciiConsumerBase HRESULT return_value, StructPointerDecoder* pDesc, Decoded_GUID riid, - HandlePointerDecoder* ppvHeap); + HandlePointerDecoder* ppvHeap) override; virtual void Process_ID3D12Device_CreatePlacedResource( const ApiCallInfo& call_info, @@ -1978,7 +1978,7 @@ class Dx12AsciiConsumer : public Dx12AsciiConsumerBase D3D12_RESOURCE_STATES InitialState, StructPointerDecoder* pOptimizedClearValue, Decoded_GUID riid, - HandlePointerDecoder* ppvResource); + HandlePointerDecoder* ppvResource) override; virtual void Process_ID3D12Device_CreateReservedResource( const ApiCallInfo& call_info, @@ -1988,7 +1988,7 @@ class Dx12AsciiConsumer : public Dx12AsciiConsumerBase D3D12_RESOURCE_STATES InitialState, StructPointerDecoder* pOptimizedClearValue, Decoded_GUID riid, - HandlePointerDecoder* ppvResource); + HandlePointerDecoder* ppvResource) override; virtual void Process_ID3D12Device_CreateSharedHandle( const ApiCallInfo& call_info, @@ -1998,7 +1998,7 @@ class Dx12AsciiConsumer : public Dx12AsciiConsumerBase StructPointerDecoder* pAttributes, DWORD Access, WStringDecoder* Name, - PointerDecoder* pHandle); + PointerDecoder* pHandle) override; virtual void Process_ID3D12Device_OpenSharedHandle( const ApiCallInfo& call_info, @@ -2006,7 +2006,7 @@ class Dx12AsciiConsumer : public Dx12AsciiConsumerBase HRESULT return_value, uint64_t NTHandle, Decoded_GUID riid, - HandlePointerDecoder* ppvObj); + HandlePointerDecoder* ppvObj) override; virtual void Process_ID3D12Device_OpenSharedHandleByName( const ApiCallInfo& call_info, @@ -2014,21 +2014,21 @@ class Dx12AsciiConsumer : public Dx12AsciiConsumerBase HRESULT return_value, WStringDecoder* Name, DWORD Access, - PointerDecoder* pNTHandle); + PointerDecoder* pNTHandle) override; virtual void Process_ID3D12Device_MakeResident( const ApiCallInfo& call_info, format::HandleId object_id, HRESULT return_value, UINT NumObjects, - HandlePointerDecoder* ppObjects); + HandlePointerDecoder* ppObjects) override; virtual void Process_ID3D12Device_Evict( const ApiCallInfo& call_info, format::HandleId object_id, HRESULT return_value, UINT NumObjects, - HandlePointerDecoder* ppObjects); + HandlePointerDecoder* ppObjects) override; virtual void Process_ID3D12Device_CreateFence( const ApiCallInfo& call_info, @@ -2037,12 +2037,12 @@ class Dx12AsciiConsumer : public Dx12AsciiConsumerBase UINT64 InitialValue, D3D12_FENCE_FLAGS Flags, Decoded_GUID riid, - HandlePointerDecoder* ppFence); + HandlePointerDecoder* ppFence) override; virtual void Process_ID3D12Device_GetDeviceRemovedReason( const ApiCallInfo& call_info, format::HandleId object_id, - HRESULT return_value); + HRESULT return_value) override; virtual void Process_ID3D12Device_GetCopyableFootprints( const ApiCallInfo& call_info, @@ -2054,7 +2054,7 @@ class Dx12AsciiConsumer : public Dx12AsciiConsumerBase StructPointerDecoder* pLayouts, PointerDecoder* pNumRows, PointerDecoder* pRowSizeInBytes, - PointerDecoder* pTotalBytes); + PointerDecoder* pTotalBytes) override; virtual void Process_ID3D12Device_CreateQueryHeap( const ApiCallInfo& call_info, @@ -2062,13 +2062,13 @@ class Dx12AsciiConsumer : public Dx12AsciiConsumerBase HRESULT return_value, StructPointerDecoder* pDesc, Decoded_GUID riid, - HandlePointerDecoder* ppvHeap); + HandlePointerDecoder* ppvHeap) override; virtual void Process_ID3D12Device_SetStablePowerState( const ApiCallInfo& call_info, format::HandleId object_id, HRESULT return_value, - BOOL Enable); + BOOL Enable) override; virtual void Process_ID3D12Device_CreateCommandSignature( const ApiCallInfo& call_info, @@ -2077,7 +2077,7 @@ class Dx12AsciiConsumer : public Dx12AsciiConsumerBase StructPointerDecoder* pDesc, format::HandleId pRootSignature, Decoded_GUID riid, - HandlePointerDecoder* ppvCommandSignature); + HandlePointerDecoder* ppvCommandSignature) override; virtual void Process_ID3D12Device_GetResourceTiling( const ApiCallInfo& call_info, @@ -2088,19 +2088,19 @@ class Dx12AsciiConsumer : public Dx12AsciiConsumerBase StructPointerDecoder* pStandardTileShapeForNonPackedMips, PointerDecoder* pNumSubresourceTilings, UINT FirstSubresourceTilingToGet, - StructPointerDecoder* pSubresourceTilingsForNonPackedMips); + StructPointerDecoder* pSubresourceTilingsForNonPackedMips) override; virtual void Process_ID3D12Device_GetAdapterLuid( const ApiCallInfo& call_info, format::HandleId object_id, - Decoded_LUID return_value); + Decoded_LUID return_value) override; virtual void Process_ID3D12PipelineLibrary_StorePipeline( const ApiCallInfo& call_info, format::HandleId object_id, HRESULT return_value, WStringDecoder* pName, - format::HandleId pPipeline); + format::HandleId pPipeline) override; virtual void Process_ID3D12PipelineLibrary_LoadGraphicsPipeline( const ApiCallInfo& call_info, @@ -2109,7 +2109,7 @@ class Dx12AsciiConsumer : public Dx12AsciiConsumerBase WStringDecoder* pName, StructPointerDecoder* pDesc, Decoded_GUID riid, - HandlePointerDecoder* ppPipelineState); + HandlePointerDecoder* ppPipelineState) override; virtual void Process_ID3D12PipelineLibrary_LoadComputePipeline( const ApiCallInfo& call_info, @@ -2118,19 +2118,19 @@ class Dx12AsciiConsumer : public Dx12AsciiConsumerBase WStringDecoder* pName, StructPointerDecoder* pDesc, Decoded_GUID riid, - HandlePointerDecoder* ppPipelineState); + HandlePointerDecoder* ppPipelineState) override; virtual void Process_ID3D12PipelineLibrary_GetSerializedSize( const ApiCallInfo& call_info, format::HandleId object_id, - SIZE_T return_value); + SIZE_T return_value) override; virtual void Process_ID3D12PipelineLibrary_Serialize( const ApiCallInfo& call_info, format::HandleId object_id, HRESULT return_value, PointerDecoder* pData, - SIZE_T DataSizeInBytes); + SIZE_T DataSizeInBytes) override; virtual void Process_ID3D12PipelineLibrary1_LoadPipeline( const ApiCallInfo& call_info, @@ -2139,7 +2139,7 @@ class Dx12AsciiConsumer : public Dx12AsciiConsumerBase WStringDecoder* pName, StructPointerDecoder* pDesc, Decoded_GUID riid, - HandlePointerDecoder* ppPipelineState); + HandlePointerDecoder* ppPipelineState) override; virtual void Process_ID3D12Device1_CreatePipelineLibrary( const ApiCallInfo& call_info, @@ -2148,7 +2148,7 @@ class Dx12AsciiConsumer : public Dx12AsciiConsumerBase PointerDecoder* pLibraryBlob, SIZE_T BlobLength, Decoded_GUID riid, - HandlePointerDecoder* ppPipelineLibrary); + HandlePointerDecoder* ppPipelineLibrary) override; virtual void Process_ID3D12Device1_SetEventOnMultipleFenceCompletion( const ApiCallInfo& call_info, @@ -2158,7 +2158,7 @@ class Dx12AsciiConsumer : public Dx12AsciiConsumerBase PointerDecoder* pFenceValues, UINT NumFences, D3D12_MULTIPLE_FENCE_WAIT_FLAGS Flags, - uint64_t hEvent); + uint64_t hEvent) override; virtual void Process_ID3D12Device1_SetResidencyPriority( const ApiCallInfo& call_info, @@ -2166,7 +2166,7 @@ class Dx12AsciiConsumer : public Dx12AsciiConsumerBase HRESULT return_value, UINT NumObjects, HandlePointerDecoder* ppObjects, - PointerDecoder* pPriorities); + PointerDecoder* pPriorities) override; virtual void Process_ID3D12Device2_CreatePipelineState( const ApiCallInfo& call_info, @@ -2174,7 +2174,7 @@ class Dx12AsciiConsumer : public Dx12AsciiConsumerBase HRESULT return_value, StructPointerDecoder* pDesc, Decoded_GUID riid, - HandlePointerDecoder* ppPipelineState); + HandlePointerDecoder* ppPipelineState) override; virtual void Process_ID3D12Device3_OpenExistingHeapFromAddress( const ApiCallInfo& call_info, @@ -2182,7 +2182,7 @@ class Dx12AsciiConsumer : public Dx12AsciiConsumerBase HRESULT return_value, uint64_t pAddress, Decoded_GUID riid, - HandlePointerDecoder* ppvHeap); + HandlePointerDecoder* ppvHeap) override; virtual void Process_ID3D12Device3_OpenExistingHeapFromFileMapping( const ApiCallInfo& call_info, @@ -2190,7 +2190,7 @@ class Dx12AsciiConsumer : public Dx12AsciiConsumerBase HRESULT return_value, uint64_t hFileMapping, Decoded_GUID riid, - HandlePointerDecoder* ppvHeap); + HandlePointerDecoder* ppvHeap) override; virtual void Process_ID3D12Device3_EnqueueMakeResident( const ApiCallInfo& call_info, @@ -2200,24 +2200,24 @@ class Dx12AsciiConsumer : public Dx12AsciiConsumerBase UINT NumObjects, HandlePointerDecoder* ppObjects, format::HandleId pFenceToSignal, - UINT64 FenceValueToSignal); + UINT64 FenceValueToSignal) override; virtual void Process_ID3D12ProtectedSession_GetStatusFence( const ApiCallInfo& call_info, format::HandleId object_id, HRESULT return_value, Decoded_GUID riid, - HandlePointerDecoder* ppFence); + HandlePointerDecoder* ppFence) override; virtual void Process_ID3D12ProtectedSession_GetSessionStatus( const ApiCallInfo& call_info, format::HandleId object_id, - D3D12_PROTECTED_SESSION_STATUS return_value); + D3D12_PROTECTED_SESSION_STATUS return_value) override; virtual void Process_ID3D12ProtectedResourceSession_GetDesc( const ApiCallInfo& call_info, format::HandleId object_id, - Decoded_D3D12_PROTECTED_RESOURCE_SESSION_DESC return_value); + Decoded_D3D12_PROTECTED_RESOURCE_SESSION_DESC return_value) override; virtual void Process_ID3D12Device4_CreateCommandList1( const ApiCallInfo& call_info, @@ -2227,7 +2227,7 @@ class Dx12AsciiConsumer : public Dx12AsciiConsumerBase D3D12_COMMAND_LIST_TYPE type, D3D12_COMMAND_LIST_FLAGS flags, Decoded_GUID riid, - HandlePointerDecoder* ppCommandList); + HandlePointerDecoder* ppCommandList) override; virtual void Process_ID3D12Device4_CreateProtectedResourceSession( const ApiCallInfo& call_info, @@ -2235,7 +2235,7 @@ class Dx12AsciiConsumer : public Dx12AsciiConsumerBase HRESULT return_value, StructPointerDecoder* pDesc, Decoded_GUID riid, - HandlePointerDecoder* ppSession); + HandlePointerDecoder* ppSession) override; virtual void Process_ID3D12Device4_CreateCommittedResource1( const ApiCallInfo& call_info, @@ -2248,7 +2248,7 @@ class Dx12AsciiConsumer : public Dx12AsciiConsumerBase StructPointerDecoder* pOptimizedClearValue, format::HandleId pProtectedSession, Decoded_GUID riidResource, - HandlePointerDecoder* ppvResource); + HandlePointerDecoder* ppvResource) override; virtual void Process_ID3D12Device4_CreateHeap1( const ApiCallInfo& call_info, @@ -2257,7 +2257,7 @@ class Dx12AsciiConsumer : public Dx12AsciiConsumerBase StructPointerDecoder* pDesc, format::HandleId pProtectedSession, Decoded_GUID riid, - HandlePointerDecoder* ppvHeap); + HandlePointerDecoder* ppvHeap) override; virtual void Process_ID3D12Device4_CreateReservedResource1( const ApiCallInfo& call_info, @@ -2268,7 +2268,7 @@ class Dx12AsciiConsumer : public Dx12AsciiConsumerBase StructPointerDecoder* pOptimizedClearValue, format::HandleId pProtectedSession, Decoded_GUID riid, - HandlePointerDecoder* ppvResource); + HandlePointerDecoder* ppvResource) override; virtual void Process_ID3D12Device4_GetResourceAllocationInfo1( const ApiCallInfo& call_info, @@ -2277,24 +2277,24 @@ class Dx12AsciiConsumer : public Dx12AsciiConsumerBase UINT visibleMask, UINT numResourceDescs, StructPointerDecoder* pResourceDescs, - StructPointerDecoder* pResourceAllocationInfo1); + StructPointerDecoder* pResourceAllocationInfo1) override; virtual void Process_ID3D12LifetimeOwner_LifetimeStateUpdated( const ApiCallInfo& call_info, format::HandleId object_id, - D3D12_LIFETIME_STATE NewState); + D3D12_LIFETIME_STATE NewState) override; virtual void Process_ID3D12SwapChainAssistant_GetLUID( const ApiCallInfo& call_info, format::HandleId object_id, - Decoded_LUID return_value); + Decoded_LUID return_value) override; virtual void Process_ID3D12SwapChainAssistant_GetSwapChainObject( const ApiCallInfo& call_info, format::HandleId object_id, HRESULT return_value, Decoded_GUID riid, - HandlePointerDecoder* ppv); + HandlePointerDecoder* ppv) override; virtual void Process_ID3D12SwapChainAssistant_GetCurrentResourceAndCommandQueue( const ApiCallInfo& call_info, @@ -2303,40 +2303,40 @@ class Dx12AsciiConsumer : public Dx12AsciiConsumerBase Decoded_GUID riidResource, HandlePointerDecoder* ppvResource, Decoded_GUID riidQueue, - HandlePointerDecoder* ppvQueue); + HandlePointerDecoder* ppvQueue) override; virtual void Process_ID3D12SwapChainAssistant_InsertImplicitSync( const ApiCallInfo& call_info, format::HandleId object_id, - HRESULT return_value); + HRESULT return_value) override; virtual void Process_ID3D12LifetimeTracker_DestroyOwnedObject( const ApiCallInfo& call_info, format::HandleId object_id, HRESULT return_value, - format::HandleId pObject); + format::HandleId pObject) override; virtual void Process_ID3D12StateObjectProperties_GetShaderIdentifier( const ApiCallInfo& call_info, format::HandleId object_id, PointerDecoder* return_value, - WStringDecoder* pExportName); + WStringDecoder* pExportName) override; virtual void Process_ID3D12StateObjectProperties_GetShaderStackSize( const ApiCallInfo& call_info, format::HandleId object_id, UINT64 return_value, - WStringDecoder* pExportName); + WStringDecoder* pExportName) override; virtual void Process_ID3D12StateObjectProperties_GetPipelineStackSize( const ApiCallInfo& call_info, format::HandleId object_id, - UINT64 return_value); + UINT64 return_value) override; virtual void Process_ID3D12StateObjectProperties_SetPipelineStackSize( const ApiCallInfo& call_info, format::HandleId object_id, - UINT64 PipelineStackSizeInBytes); + UINT64 PipelineStackSizeInBytes) override; virtual void Process_ID3D12Device5_CreateLifetimeTracker( const ApiCallInfo& call_info, @@ -2344,18 +2344,18 @@ class Dx12AsciiConsumer : public Dx12AsciiConsumerBase HRESULT return_value, format::HandleId pOwner, Decoded_GUID riid, - HandlePointerDecoder* ppvTracker); + HandlePointerDecoder* ppvTracker) override; virtual void Process_ID3D12Device5_RemoveDevice( const ApiCallInfo& call_info, - format::HandleId object_id); + format::HandleId object_id) override; virtual void Process_ID3D12Device5_EnumerateMetaCommands( const ApiCallInfo& call_info, format::HandleId object_id, HRESULT return_value, PointerDecoder* pNumMetaCommands, - StructPointerDecoder* pDescs); + StructPointerDecoder* pDescs) override; virtual void Process_ID3D12Device5_EnumerateMetaCommandParameters( const ApiCallInfo& call_info, @@ -2365,7 +2365,7 @@ class Dx12AsciiConsumer : public Dx12AsciiConsumerBase D3D12_META_COMMAND_PARAMETER_STAGE Stage, PointerDecoder* pTotalStructureSizeInBytes, PointerDecoder* pParameterCount, - StructPointerDecoder* pParameterDescs); + StructPointerDecoder* pParameterDescs) override; virtual void Process_ID3D12Device5_CreateMetaCommand( const ApiCallInfo& call_info, @@ -2376,7 +2376,7 @@ class Dx12AsciiConsumer : public Dx12AsciiConsumerBase PointerDecoder* pCreationParametersData, SIZE_T CreationParametersDataSizeInBytes, Decoded_GUID riid, - HandlePointerDecoder* ppMetaCommand); + HandlePointerDecoder* ppMetaCommand) override; virtual void Process_ID3D12Device5_CreateStateObject( const ApiCallInfo& call_info, @@ -2384,80 +2384,80 @@ class Dx12AsciiConsumer : public Dx12AsciiConsumerBase HRESULT return_value, StructPointerDecoder* pDesc, Decoded_GUID riid, - HandlePointerDecoder* ppStateObject); + HandlePointerDecoder* ppStateObject) override; virtual void Process_ID3D12Device5_GetRaytracingAccelerationStructurePrebuildInfo( const ApiCallInfo& call_info, format::HandleId object_id, StructPointerDecoder* pDesc, - StructPointerDecoder* pInfo); + StructPointerDecoder* pInfo) override; virtual void Process_ID3D12Device5_CheckDriverMatchingIdentifier( const ApiCallInfo& call_info, format::HandleId object_id, D3D12_DRIVER_MATCHING_IDENTIFIER_STATUS return_value, D3D12_SERIALIZED_DATA_TYPE SerializedDataType, - StructPointerDecoder* pIdentifierToCheck); + StructPointerDecoder* pIdentifierToCheck) override; virtual void Process_ID3D12DeviceRemovedExtendedDataSettings_SetAutoBreadcrumbsEnablement( const ApiCallInfo& call_info, format::HandleId object_id, - D3D12_DRED_ENABLEMENT Enablement); + D3D12_DRED_ENABLEMENT Enablement) override; virtual void Process_ID3D12DeviceRemovedExtendedDataSettings_SetPageFaultEnablement( const ApiCallInfo& call_info, format::HandleId object_id, - D3D12_DRED_ENABLEMENT Enablement); + D3D12_DRED_ENABLEMENT Enablement) override; virtual void Process_ID3D12DeviceRemovedExtendedDataSettings_SetWatsonDumpEnablement( const ApiCallInfo& call_info, format::HandleId object_id, - D3D12_DRED_ENABLEMENT Enablement); + D3D12_DRED_ENABLEMENT Enablement) override; virtual void Process_ID3D12DeviceRemovedExtendedDataSettings1_SetBreadcrumbContextEnablement( const ApiCallInfo& call_info, format::HandleId object_id, - D3D12_DRED_ENABLEMENT Enablement); + D3D12_DRED_ENABLEMENT Enablement) override; virtual void Process_ID3D12DeviceRemovedExtendedDataSettings2_UseMarkersOnlyAutoBreadcrumbs( const ApiCallInfo& call_info, format::HandleId object_id, - BOOL MarkersOnly); + BOOL MarkersOnly) override; virtual void Process_ID3D12DeviceRemovedExtendedData_GetAutoBreadcrumbsOutput( const ApiCallInfo& call_info, format::HandleId object_id, HRESULT return_value, - StructPointerDecoder* pOutput); + StructPointerDecoder* pOutput) override; virtual void Process_ID3D12DeviceRemovedExtendedData_GetPageFaultAllocationOutput( const ApiCallInfo& call_info, format::HandleId object_id, HRESULT return_value, - StructPointerDecoder* pOutput); + StructPointerDecoder* pOutput) override; virtual void Process_ID3D12DeviceRemovedExtendedData1_GetAutoBreadcrumbsOutput1( const ApiCallInfo& call_info, format::HandleId object_id, HRESULT return_value, - StructPointerDecoder* pOutput); + StructPointerDecoder* pOutput) override; virtual void Process_ID3D12DeviceRemovedExtendedData1_GetPageFaultAllocationOutput1( const ApiCallInfo& call_info, format::HandleId object_id, HRESULT return_value, - StructPointerDecoder* pOutput); + StructPointerDecoder* pOutput) override; virtual void Process_ID3D12DeviceRemovedExtendedData2_GetPageFaultAllocationOutput2( const ApiCallInfo& call_info, format::HandleId object_id, HRESULT return_value, - StructPointerDecoder* pOutput); + StructPointerDecoder* pOutput) override; virtual void Process_ID3D12DeviceRemovedExtendedData2_GetDeviceState( const ApiCallInfo& call_info, format::HandleId object_id, - D3D12_DRED_DEVICE_STATE return_value); + D3D12_DRED_DEVICE_STATE return_value) override; virtual void Process_ID3D12Device6_SetBackgroundProcessingMode( const ApiCallInfo& call_info, @@ -2466,12 +2466,12 @@ class Dx12AsciiConsumer : public Dx12AsciiConsumerBase D3D12_BACKGROUND_PROCESSING_MODE Mode, D3D12_MEASUREMENTS_ACTION MeasurementsAction, uint64_t hEventToSignalUponCompletion, - PointerDecoder* pbFurtherMeasurementsDesired); + PointerDecoder* pbFurtherMeasurementsDesired) override; virtual void Process_ID3D12ProtectedResourceSession1_GetDesc1( const ApiCallInfo& call_info, format::HandleId object_id, - Decoded_D3D12_PROTECTED_RESOURCE_SESSION_DESC1 return_value); + Decoded_D3D12_PROTECTED_RESOURCE_SESSION_DESC1 return_value) override; virtual void Process_ID3D12Device7_AddToStateObject( const ApiCallInfo& call_info, @@ -2480,7 +2480,7 @@ class Dx12AsciiConsumer : public Dx12AsciiConsumerBase StructPointerDecoder* pAddition, format::HandleId pStateObjectToGrowFrom, Decoded_GUID riid, - HandlePointerDecoder* ppNewStateObject); + HandlePointerDecoder* ppNewStateObject) override; virtual void Process_ID3D12Device7_CreateProtectedResourceSession1( const ApiCallInfo& call_info, @@ -2488,7 +2488,7 @@ class Dx12AsciiConsumer : public Dx12AsciiConsumerBase HRESULT return_value, StructPointerDecoder* pDesc, Decoded_GUID riid, - HandlePointerDecoder* ppSession); + HandlePointerDecoder* ppSession) override; virtual void Process_ID3D12Device8_GetResourceAllocationInfo2( const ApiCallInfo& call_info, @@ -2497,7 +2497,7 @@ class Dx12AsciiConsumer : public Dx12AsciiConsumerBase UINT visibleMask, UINT numResourceDescs, StructPointerDecoder* pResourceDescs, - StructPointerDecoder* pResourceAllocationInfo1); + StructPointerDecoder* pResourceAllocationInfo1) override; virtual void Process_ID3D12Device8_CreateCommittedResource2( const ApiCallInfo& call_info, @@ -2510,7 +2510,7 @@ class Dx12AsciiConsumer : public Dx12AsciiConsumerBase StructPointerDecoder* pOptimizedClearValue, format::HandleId pProtectedSession, Decoded_GUID riidResource, - HandlePointerDecoder* ppvResource); + HandlePointerDecoder* ppvResource) override; virtual void Process_ID3D12Device8_CreatePlacedResource1( const ApiCallInfo& call_info, @@ -2522,14 +2522,14 @@ class Dx12AsciiConsumer : public Dx12AsciiConsumerBase D3D12_RESOURCE_STATES InitialState, StructPointerDecoder* pOptimizedClearValue, Decoded_GUID riid, - HandlePointerDecoder* ppvResource); + HandlePointerDecoder* ppvResource) override; virtual void Process_ID3D12Device8_CreateSamplerFeedbackUnorderedAccessView( const ApiCallInfo& call_info, format::HandleId object_id, format::HandleId pTargetedResource, format::HandleId pFeedbackResource, - Decoded_D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); + Decoded_D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor) override; virtual void Process_ID3D12Device8_GetCopyableFootprints1( const ApiCallInfo& call_info, @@ -2541,38 +2541,38 @@ class Dx12AsciiConsumer : public Dx12AsciiConsumerBase StructPointerDecoder* pLayouts, PointerDecoder* pNumRows, PointerDecoder* pRowSizeInBytes, - PointerDecoder* pTotalBytes); + PointerDecoder* pTotalBytes) override; virtual void Process_ID3D12Resource1_GetProtectedResourceSession( const ApiCallInfo& call_info, format::HandleId object_id, HRESULT return_value, Decoded_GUID riid, - HandlePointerDecoder* ppProtectedSession); + HandlePointerDecoder* ppProtectedSession) override; virtual void Process_ID3D12Resource2_GetDesc1( const ApiCallInfo& call_info, format::HandleId object_id, - Decoded_D3D12_RESOURCE_DESC1 return_value); + Decoded_D3D12_RESOURCE_DESC1 return_value) override; virtual void Process_ID3D12Heap1_GetProtectedResourceSession( const ApiCallInfo& call_info, format::HandleId object_id, HRESULT return_value, Decoded_GUID riid, - HandlePointerDecoder* ppProtectedSession); + HandlePointerDecoder* ppProtectedSession) override; virtual void Process_ID3D12GraphicsCommandList3_SetProtectedResourceSession( const ApiCallInfo& call_info, format::HandleId object_id, - format::HandleId pProtectedResourceSession); + format::HandleId pProtectedResourceSession) override; virtual void Process_ID3D12MetaCommand_GetRequiredParameterResourceSize( const ApiCallInfo& call_info, format::HandleId object_id, UINT64 return_value, D3D12_META_COMMAND_PARAMETER_STAGE Stage, - UINT ParameterIndex); + UINT ParameterIndex) override; virtual void Process_ID3D12GraphicsCommandList4_BeginRenderPass( const ApiCallInfo& call_info, @@ -2580,56 +2580,56 @@ class Dx12AsciiConsumer : public Dx12AsciiConsumerBase UINT NumRenderTargets, StructPointerDecoder* pRenderTargets, StructPointerDecoder* pDepthStencil, - D3D12_RENDER_PASS_FLAGS Flags); + D3D12_RENDER_PASS_FLAGS Flags) override; virtual void Process_ID3D12GraphicsCommandList4_EndRenderPass( const ApiCallInfo& call_info, - format::HandleId object_id); + format::HandleId object_id) override; virtual void Process_ID3D12GraphicsCommandList4_InitializeMetaCommand( const ApiCallInfo& call_info, format::HandleId object_id, format::HandleId pMetaCommand, PointerDecoder* pInitializationParametersData, - SIZE_T InitializationParametersDataSizeInBytes); + SIZE_T InitializationParametersDataSizeInBytes) override; virtual void Process_ID3D12GraphicsCommandList4_ExecuteMetaCommand( const ApiCallInfo& call_info, format::HandleId object_id, format::HandleId pMetaCommand, PointerDecoder* pExecutionParametersData, - SIZE_T ExecutionParametersDataSizeInBytes); + SIZE_T ExecutionParametersDataSizeInBytes) override; virtual void Process_ID3D12GraphicsCommandList4_BuildRaytracingAccelerationStructure( const ApiCallInfo& call_info, format::HandleId object_id, StructPointerDecoder* pDesc, UINT NumPostbuildInfoDescs, - StructPointerDecoder* pPostbuildInfoDescs); + StructPointerDecoder* pPostbuildInfoDescs) override; virtual void Process_ID3D12GraphicsCommandList4_EmitRaytracingAccelerationStructurePostbuildInfo( const ApiCallInfo& call_info, format::HandleId object_id, StructPointerDecoder* pDesc, UINT NumSourceAccelerationStructures, - PointerDecoder* pSourceAccelerationStructureData); + PointerDecoder* pSourceAccelerationStructureData) override; virtual void Process_ID3D12GraphicsCommandList4_CopyRaytracingAccelerationStructure( const ApiCallInfo& call_info, format::HandleId object_id, D3D12_GPU_VIRTUAL_ADDRESS DestAccelerationStructureData, D3D12_GPU_VIRTUAL_ADDRESS SourceAccelerationStructureData, - D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE Mode); + D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE Mode) override; virtual void Process_ID3D12GraphicsCommandList4_SetPipelineState1( const ApiCallInfo& call_info, format::HandleId object_id, - format::HandleId pStateObject); + format::HandleId pStateObject) override; virtual void Process_ID3D12GraphicsCommandList4_DispatchRays( const ApiCallInfo& call_info, format::HandleId object_id, - StructPointerDecoder* pDesc); + StructPointerDecoder* pDesc) override; virtual void Process_ID3D12ShaderCacheSession_FindValue( const ApiCallInfo& call_info, @@ -2638,7 +2638,7 @@ class Dx12AsciiConsumer : public Dx12AsciiConsumerBase PointerDecoder* pKey, UINT KeySize, PointerDecoder* pValue, - PointerDecoder* pValueSize); + PointerDecoder* pValueSize) override; virtual void Process_ID3D12ShaderCacheSession_StoreValue( const ApiCallInfo& call_info, @@ -2647,16 +2647,16 @@ class Dx12AsciiConsumer : public Dx12AsciiConsumerBase PointerDecoder* pKey, UINT KeySize, PointerDecoder* pValue, - UINT ValueSize); + UINT ValueSize) override; virtual void Process_ID3D12ShaderCacheSession_SetDeleteOnDestroy( const ApiCallInfo& call_info, - format::HandleId object_id); + format::HandleId object_id) override; virtual void Process_ID3D12ShaderCacheSession_GetDesc( const ApiCallInfo& call_info, format::HandleId object_id, - Decoded_D3D12_SHADER_CACHE_SESSION_DESC return_value); + Decoded_D3D12_SHADER_CACHE_SESSION_DESC return_value) override; virtual void Process_ID3D12Device9_CreateShaderCacheSession( const ApiCallInfo& call_info, @@ -2664,14 +2664,14 @@ class Dx12AsciiConsumer : public Dx12AsciiConsumerBase HRESULT return_value, StructPointerDecoder* pDesc, Decoded_GUID riid, - HandlePointerDecoder* ppvSession); + HandlePointerDecoder* ppvSession) override; virtual void Process_ID3D12Device9_ShaderCacheControl( const ApiCallInfo& call_info, format::HandleId object_id, HRESULT return_value, D3D12_SHADER_CACHE_KIND_FLAGS Kinds, - D3D12_SHADER_CACHE_CONTROL_FLAGS Control); + D3D12_SHADER_CACHE_CONTROL_FLAGS Control) override; virtual void Process_ID3D12Device9_CreateCommandQueue1( const ApiCallInfo& call_info, @@ -2680,7 +2680,7 @@ class Dx12AsciiConsumer : public Dx12AsciiConsumerBase StructPointerDecoder* pDesc, Decoded_GUID CreatorID, Decoded_GUID riid, - HandlePointerDecoder* ppCommandQueue); + HandlePointerDecoder* ppCommandQueue) override; virtual void Process_ID3D12Device10_CreateCommittedResource3( const ApiCallInfo& call_info, @@ -2695,7 +2695,7 @@ class Dx12AsciiConsumer : public Dx12AsciiConsumerBase UINT32 NumCastableFormats, PointerDecoder* pCastableFormats, Decoded_GUID riidResource, - HandlePointerDecoder* ppvResource); + HandlePointerDecoder* ppvResource) override; virtual void Process_ID3D12Device10_CreatePlacedResource2( const ApiCallInfo& call_info, @@ -2709,7 +2709,7 @@ class Dx12AsciiConsumer : public Dx12AsciiConsumerBase UINT32 NumCastableFormats, PointerDecoder* pCastableFormats, Decoded_GUID riid, - HandlePointerDecoder* ppvResource); + HandlePointerDecoder* ppvResource) override; virtual void Process_ID3D12Device10_CreateReservedResource2( const ApiCallInfo& call_info, @@ -2722,13 +2722,13 @@ class Dx12AsciiConsumer : public Dx12AsciiConsumerBase UINT32 NumCastableFormats, PointerDecoder* pCastableFormats, Decoded_GUID riid, - HandlePointerDecoder* ppvResource); + HandlePointerDecoder* ppvResource) override; virtual void Process_ID3D12Device11_CreateSampler2( const ApiCallInfo& call_info, format::HandleId object_id, StructPointerDecoder* pDesc, - Decoded_D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); + Decoded_D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor) override; virtual void Process_ID3D12Device12_GetResourceAllocationInfo3( const ApiCallInfo& call_info, @@ -2739,14 +2739,14 @@ class Dx12AsciiConsumer : public Dx12AsciiConsumerBase StructPointerDecoder* pResourceDescs, PointerDecoder* pNumCastableFormats, PointerDecoder* ppCastableFormats, - StructPointerDecoder* pResourceAllocationInfo1); + StructPointerDecoder* pResourceAllocationInfo1) override; virtual void Process_ID3D12VirtualizationGuestDevice_ShareWithHost( const ApiCallInfo& call_info, format::HandleId object_id, HRESULT return_value, format::HandleId pObject, - PointerDecoder* pHandle); + PointerDecoder* pHandle) override; virtual void Process_ID3D12VirtualizationGuestDevice_CreateFenceFd( const ApiCallInfo& call_info, @@ -2754,24 +2754,24 @@ class Dx12AsciiConsumer : public Dx12AsciiConsumerBase HRESULT return_value, format::HandleId pFence, UINT64 FenceValue, - PointerDecoder* pFenceFd); + PointerDecoder* pFenceFd) override; virtual void Process_ID3D12Tools_EnableShaderInstrumentation( const ApiCallInfo& call_info, format::HandleId object_id, - BOOL bEnable); + BOOL bEnable) override; virtual void Process_ID3D12Tools_ShaderInstrumentationEnabled( const ApiCallInfo& call_info, format::HandleId object_id, - BOOL return_value); + BOOL return_value) override; virtual void Process_ID3D12SDKConfiguration_SetSDKVersion( const ApiCallInfo& call_info, format::HandleId object_id, HRESULT return_value, UINT SDKVersion, - StringDecoder* SDKPath); + StringDecoder* SDKPath) override; virtual void Process_ID3D12SDKConfiguration1_CreateDeviceFactory( const ApiCallInfo& call_info, @@ -2780,32 +2780,32 @@ class Dx12AsciiConsumer : public Dx12AsciiConsumerBase UINT SDKVersion, StringDecoder* SDKPath, Decoded_GUID riid, - HandlePointerDecoder* ppvFactory); + HandlePointerDecoder* ppvFactory) override; virtual void Process_ID3D12SDKConfiguration1_FreeUnusedSDKs( const ApiCallInfo& call_info, - format::HandleId object_id); + format::HandleId object_id) override; virtual void Process_ID3D12DeviceFactory_InitializeFromGlobalState( const ApiCallInfo& call_info, format::HandleId object_id, - HRESULT return_value); + HRESULT return_value) override; virtual void Process_ID3D12DeviceFactory_ApplyToGlobalState( const ApiCallInfo& call_info, format::HandleId object_id, - HRESULT return_value); + HRESULT return_value) override; virtual void Process_ID3D12DeviceFactory_SetFlags( const ApiCallInfo& call_info, format::HandleId object_id, HRESULT return_value, - D3D12_DEVICE_FACTORY_FLAGS flags); + D3D12_DEVICE_FACTORY_FLAGS flags) override; virtual void Process_ID3D12DeviceFactory_GetFlags( const ApiCallInfo& call_info, format::HandleId object_id, - D3D12_DEVICE_FACTORY_FLAGS return_value); + D3D12_DEVICE_FACTORY_FLAGS return_value) override; virtual void Process_ID3D12DeviceFactory_GetConfigurationInterface( const ApiCallInfo& call_info, @@ -2813,7 +2813,7 @@ class Dx12AsciiConsumer : public Dx12AsciiConsumerBase HRESULT return_value, Decoded_GUID clsid, Decoded_GUID iid, - HandlePointerDecoder* ppv); + HandlePointerDecoder* ppv) override; virtual void Process_ID3D12DeviceFactory_EnableExperimentalFeatures( const ApiCallInfo& call_info, @@ -2822,7 +2822,7 @@ class Dx12AsciiConsumer : public Dx12AsciiConsumerBase UINT NumFeatures, StructPointerDecoder* pIIDs, PointerDecoder* pConfigurationStructs, - PointerDecoder* pConfigurationStructSizes); + PointerDecoder* pConfigurationStructSizes) override; virtual void Process_ID3D12DeviceFactory_CreateDevice( const ApiCallInfo& call_info, @@ -2831,19 +2831,19 @@ class Dx12AsciiConsumer : public Dx12AsciiConsumerBase format::HandleId adapter, D3D_FEATURE_LEVEL FeatureLevel, Decoded_GUID riid, - HandlePointerDecoder* ppvDevice); + HandlePointerDecoder* ppvDevice) override; virtual void Process_ID3D12DeviceConfiguration_GetDesc( const ApiCallInfo& call_info, format::HandleId object_id, - Decoded_D3D12_DEVICE_CONFIGURATION_DESC return_value); + Decoded_D3D12_DEVICE_CONFIGURATION_DESC return_value) override; virtual void Process_ID3D12DeviceConfiguration_GetEnabledExperimentalFeatures( const ApiCallInfo& call_info, format::HandleId object_id, HRESULT return_value, StructPointerDecoder* pGuids, - UINT NumGuids); + UINT NumGuids) override; virtual void Process_ID3D12DeviceConfiguration_SerializeVersionedRootSignature( const ApiCallInfo& call_info, @@ -2851,7 +2851,7 @@ class Dx12AsciiConsumer : public Dx12AsciiConsumerBase HRESULT return_value, StructPointerDecoder* pDesc, HandlePointerDecoder* ppResult, - HandlePointerDecoder* ppError); + HandlePointerDecoder* ppError) override; virtual void Process_ID3D12DeviceConfiguration_CreateVersionedRootSignatureDeserializer( const ApiCallInfo& call_info, @@ -2860,49 +2860,49 @@ class Dx12AsciiConsumer : public Dx12AsciiConsumerBase PointerDecoder* pBlob, SIZE_T Size, Decoded_GUID riid, - HandlePointerDecoder* ppvDeserializer); + HandlePointerDecoder* ppvDeserializer) override; virtual void Process_ID3D12GraphicsCommandList5_RSSetShadingRate( const ApiCallInfo& call_info, format::HandleId object_id, D3D12_SHADING_RATE baseShadingRate, - PointerDecoder* combiners); + PointerDecoder* combiners) override; virtual void Process_ID3D12GraphicsCommandList5_RSSetShadingRateImage( const ApiCallInfo& call_info, format::HandleId object_id, - format::HandleId shadingRateImage); + format::HandleId shadingRateImage) override; virtual void Process_ID3D12GraphicsCommandList6_DispatchMesh( const ApiCallInfo& call_info, format::HandleId object_id, UINT ThreadGroupCountX, UINT ThreadGroupCountY, - UINT ThreadGroupCountZ); + UINT ThreadGroupCountZ) override; virtual void Process_ID3D12GraphicsCommandList7_Barrier( const ApiCallInfo& call_info, format::HandleId object_id, UINT32 NumBarrierGroups, - StructPointerDecoder* pBarrierGroups); + StructPointerDecoder* pBarrierGroups) override; virtual void Process_ID3D12GraphicsCommandList8_OMSetFrontAndBackStencilRef( const ApiCallInfo& call_info, format::HandleId object_id, UINT FrontStencilRef, - UINT BackStencilRef); + UINT BackStencilRef) override; virtual void Process_ID3D12GraphicsCommandList9_RSSetDepthBias( const ApiCallInfo& call_info, format::HandleId object_id, FLOAT DepthBias, FLOAT DepthBiasClamp, - FLOAT SlopeScaledDepthBias); + FLOAT SlopeScaledDepthBias) override; virtual void Process_ID3D12GraphicsCommandList9_IASetIndexBufferStripCutValue( const ApiCallInfo& call_info, format::HandleId object_id, - D3D12_INDEX_BUFFER_STRIP_CUT_VALUE IBStripCutValue); + D3D12_INDEX_BUFFER_STRIP_CUT_VALUE IBStripCutValue) override; virtual void Process_ID3D12DSRDeviceFactory_CreateDSRDevice( const ApiCallInfo& call_info, @@ -2911,7 +2911,7 @@ class Dx12AsciiConsumer : public Dx12AsciiConsumerBase format::HandleId pD3D12Device, UINT NodeMask, Decoded_GUID riid, - HandlePointerDecoder* ppvDSRDevice); + HandlePointerDecoder* ppvDSRDevice) override; /* ** This part is generated from d3dcommon.h in Windows SDK: 10.0.20348.0 @@ -2920,12 +2920,12 @@ class Dx12AsciiConsumer : public Dx12AsciiConsumerBase virtual void Process_ID3D10Blob_GetBufferPointer( const ApiCallInfo& call_info, format::HandleId object_id, - uint64_t return_value); + uint64_t return_value) override; virtual void Process_ID3D10Blob_GetBufferSize( const ApiCallInfo& call_info, format::HandleId object_id, - SIZE_T return_value); + SIZE_T return_value) override; virtual void Process_ID3DDestructionNotifier_RegisterDestructionCallback( const ApiCallInfo& call_info, @@ -2933,13 +2933,13 @@ class Dx12AsciiConsumer : public Dx12AsciiConsumerBase HRESULT return_value, uint64_t callbackFn, uint64_t pData, - PointerDecoder* pCallbackID); + PointerDecoder* pCallbackID) override; virtual void Process_ID3DDestructionNotifier_UnregisterDestructionCallback( const ApiCallInfo& call_info, format::HandleId object_id, HRESULT return_value, - UINT callbackID); + UINT callbackID) override; /* ** This part is generated from d3d12sdklayers.h in Windows SDK: 10.0.20348.0 @@ -2947,55 +2947,55 @@ class Dx12AsciiConsumer : public Dx12AsciiConsumerBase */ virtual void Process_ID3D12Debug_EnableDebugLayer( const ApiCallInfo& call_info, - format::HandleId object_id); + format::HandleId object_id) override; virtual void Process_ID3D12Debug1_EnableDebugLayer( const ApiCallInfo& call_info, - format::HandleId object_id); + format::HandleId object_id) override; virtual void Process_ID3D12Debug1_SetEnableGPUBasedValidation( const ApiCallInfo& call_info, format::HandleId object_id, - BOOL Enable); + BOOL Enable) override; virtual void Process_ID3D12Debug1_SetEnableSynchronizedCommandQueueValidation( const ApiCallInfo& call_info, format::HandleId object_id, - BOOL Enable); + BOOL Enable) override; virtual void Process_ID3D12Debug2_SetGPUBasedValidationFlags( const ApiCallInfo& call_info, format::HandleId object_id, - D3D12_GPU_BASED_VALIDATION_FLAGS Flags); + D3D12_GPU_BASED_VALIDATION_FLAGS Flags) override; virtual void Process_ID3D12Debug3_SetEnableGPUBasedValidation( const ApiCallInfo& call_info, format::HandleId object_id, - BOOL Enable); + BOOL Enable) override; virtual void Process_ID3D12Debug3_SetEnableSynchronizedCommandQueueValidation( const ApiCallInfo& call_info, format::HandleId object_id, - BOOL Enable); + BOOL Enable) override; virtual void Process_ID3D12Debug3_SetGPUBasedValidationFlags( const ApiCallInfo& call_info, format::HandleId object_id, - D3D12_GPU_BASED_VALIDATION_FLAGS Flags); + D3D12_GPU_BASED_VALIDATION_FLAGS Flags) override; virtual void Process_ID3D12Debug4_DisableDebugLayer( const ApiCallInfo& call_info, - format::HandleId object_id); + format::HandleId object_id) override; virtual void Process_ID3D12Debug5_SetEnableAutoName( const ApiCallInfo& call_info, format::HandleId object_id, - BOOL Enable); + BOOL Enable) override; virtual void Process_ID3D12Debug6_SetForceLegacyBarrierValidation( const ApiCallInfo& call_info, format::HandleId object_id, - BOOL Enable); + BOOL Enable) override; virtual void Process_ID3D12DebugDevice1_SetDebugParameter( const ApiCallInfo& call_info, @@ -3003,7 +3003,7 @@ class Dx12AsciiConsumer : public Dx12AsciiConsumerBase HRESULT return_value, D3D12_DEBUG_DEVICE_PARAMETER_TYPE Type, PointerDecoder* pData, - UINT DataSize); + UINT DataSize) override; virtual void Process_ID3D12DebugDevice1_GetDebugParameter( const ApiCallInfo& call_info, @@ -3011,30 +3011,30 @@ class Dx12AsciiConsumer : public Dx12AsciiConsumerBase HRESULT return_value, D3D12_DEBUG_DEVICE_PARAMETER_TYPE Type, PointerDecoder* pData, - UINT DataSize); + UINT DataSize) override; virtual void Process_ID3D12DebugDevice1_ReportLiveDeviceObjects( const ApiCallInfo& call_info, format::HandleId object_id, HRESULT return_value, - D3D12_RLDO_FLAGS Flags); + D3D12_RLDO_FLAGS Flags) override; virtual void Process_ID3D12DebugDevice_SetFeatureMask( const ApiCallInfo& call_info, format::HandleId object_id, HRESULT return_value, - D3D12_DEBUG_FEATURE Mask); + D3D12_DEBUG_FEATURE Mask) override; virtual void Process_ID3D12DebugDevice_GetFeatureMask( const ApiCallInfo& call_info, format::HandleId object_id, - D3D12_DEBUG_FEATURE return_value); + D3D12_DEBUG_FEATURE return_value) override; virtual void Process_ID3D12DebugDevice_ReportLiveDeviceObjects( const ApiCallInfo& call_info, format::HandleId object_id, HRESULT return_value, - D3D12_RLDO_FLAGS Flags); + D3D12_RLDO_FLAGS Flags) override; virtual void Process_ID3D12DebugDevice2_SetDebugParameter( const ApiCallInfo& call_info, @@ -3042,7 +3042,7 @@ class Dx12AsciiConsumer : public Dx12AsciiConsumerBase HRESULT return_value, D3D12_DEBUG_DEVICE_PARAMETER_TYPE Type, PointerDecoder* pData, - UINT DataSize); + UINT DataSize) override; virtual void Process_ID3D12DebugDevice2_GetDebugParameter( const ApiCallInfo& call_info, @@ -3050,7 +3050,7 @@ class Dx12AsciiConsumer : public Dx12AsciiConsumerBase HRESULT return_value, D3D12_DEBUG_DEVICE_PARAMETER_TYPE Type, PointerDecoder* pData, - UINT DataSize); + UINT DataSize) override; virtual void Process_ID3D12DebugCommandQueue_AssertResourceState( const ApiCallInfo& call_info, @@ -3058,21 +3058,21 @@ class Dx12AsciiConsumer : public Dx12AsciiConsumerBase BOOL return_value, format::HandleId pResource, UINT Subresource, - UINT State); + UINT State) override; virtual void Process_ID3D12DebugCommandQueue1_AssertResourceAccess( const ApiCallInfo& call_info, format::HandleId object_id, format::HandleId pResource, UINT Subresource, - D3D12_BARRIER_ACCESS Access); + D3D12_BARRIER_ACCESS Access) override; virtual void Process_ID3D12DebugCommandQueue1_AssertTextureLayout( const ApiCallInfo& call_info, format::HandleId object_id, format::HandleId pResource, UINT Subresource, - D3D12_BARRIER_LAYOUT Layout); + D3D12_BARRIER_LAYOUT Layout) override; virtual void Process_ID3D12DebugCommandList1_AssertResourceState( const ApiCallInfo& call_info, @@ -3080,7 +3080,7 @@ class Dx12AsciiConsumer : public Dx12AsciiConsumerBase BOOL return_value, format::HandleId pResource, UINT Subresource, - UINT State); + UINT State) override; virtual void Process_ID3D12DebugCommandList1_SetDebugParameter( const ApiCallInfo& call_info, @@ -3088,7 +3088,7 @@ class Dx12AsciiConsumer : public Dx12AsciiConsumerBase HRESULT return_value, D3D12_DEBUG_COMMAND_LIST_PARAMETER_TYPE Type, PointerDecoder* pData, - UINT DataSize); + UINT DataSize) override; virtual void Process_ID3D12DebugCommandList1_GetDebugParameter( const ApiCallInfo& call_info, @@ -3096,7 +3096,7 @@ class Dx12AsciiConsumer : public Dx12AsciiConsumerBase HRESULT return_value, D3D12_DEBUG_COMMAND_LIST_PARAMETER_TYPE Type, PointerDecoder* pData, - UINT DataSize); + UINT DataSize) override; virtual void Process_ID3D12DebugCommandList_AssertResourceState( const ApiCallInfo& call_info, @@ -3104,18 +3104,18 @@ class Dx12AsciiConsumer : public Dx12AsciiConsumerBase BOOL return_value, format::HandleId pResource, UINT Subresource, - UINT State); + UINT State) override; virtual void Process_ID3D12DebugCommandList_SetFeatureMask( const ApiCallInfo& call_info, format::HandleId object_id, HRESULT return_value, - D3D12_DEBUG_FEATURE Mask); + D3D12_DEBUG_FEATURE Mask) override; virtual void Process_ID3D12DebugCommandList_GetFeatureMask( const ApiCallInfo& call_info, format::HandleId object_id, - D3D12_DEBUG_FEATURE return_value); + D3D12_DEBUG_FEATURE return_value) override; virtual void Process_ID3D12DebugCommandList2_SetDebugParameter( const ApiCallInfo& call_info, @@ -3123,7 +3123,7 @@ class Dx12AsciiConsumer : public Dx12AsciiConsumerBase HRESULT return_value, D3D12_DEBUG_COMMAND_LIST_PARAMETER_TYPE Type, PointerDecoder* pData, - UINT DataSize); + UINT DataSize) override; virtual void Process_ID3D12DebugCommandList2_GetDebugParameter( const ApiCallInfo& call_info, @@ -3131,60 +3131,60 @@ class Dx12AsciiConsumer : public Dx12AsciiConsumerBase HRESULT return_value, D3D12_DEBUG_COMMAND_LIST_PARAMETER_TYPE Type, PointerDecoder* pData, - UINT DataSize); + UINT DataSize) override; virtual void Process_ID3D12DebugCommandList3_AssertResourceAccess( const ApiCallInfo& call_info, format::HandleId object_id, format::HandleId pResource, UINT Subresource, - D3D12_BARRIER_ACCESS Access); + D3D12_BARRIER_ACCESS Access) override; virtual void Process_ID3D12DebugCommandList3_AssertTextureLayout( const ApiCallInfo& call_info, format::HandleId object_id, format::HandleId pResource, UINT Subresource, - D3D12_BARRIER_LAYOUT Layout); + D3D12_BARRIER_LAYOUT Layout) override; virtual void Process_ID3D12SharingContract_Present( const ApiCallInfo& call_info, format::HandleId object_id, format::HandleId pResource, UINT Subresource, - uint64_t window); + uint64_t window) override; virtual void Process_ID3D12SharingContract_SharedFenceSignal( const ApiCallInfo& call_info, format::HandleId object_id, format::HandleId pFence, - UINT64 FenceValue); + UINT64 FenceValue) override; virtual void Process_ID3D12SharingContract_BeginCapturableWork( const ApiCallInfo& call_info, format::HandleId object_id, - Decoded_GUID guid); + Decoded_GUID guid) override; virtual void Process_ID3D12SharingContract_EndCapturableWork( const ApiCallInfo& call_info, format::HandleId object_id, - Decoded_GUID guid); + Decoded_GUID guid) override; virtual void Process_ID3D12ManualWriteTrackingResource_TrackWrite( const ApiCallInfo& call_info, format::HandleId object_id, UINT Subresource, - StructPointerDecoder* pWrittenRange); + StructPointerDecoder* pWrittenRange) override; virtual void Process_ID3D12InfoQueue_SetMessageCountLimit( const ApiCallInfo& call_info, format::HandleId object_id, HRESULT return_value, - UINT64 MessageCountLimit); + UINT64 MessageCountLimit) override; virtual void Process_ID3D12InfoQueue_ClearStoredMessages( const ApiCallInfo& call_info, - format::HandleId object_id); + format::HandleId object_id) override; virtual void Process_ID3D12InfoQueue_GetMessage( const ApiCallInfo& call_info, @@ -3192,121 +3192,121 @@ class Dx12AsciiConsumer : public Dx12AsciiConsumerBase HRESULT return_value, UINT64 MessageIndex, StructPointerDecoder* pMessage, - PointerDecoder* pMessageByteLength); + PointerDecoder* pMessageByteLength) override; virtual void Process_ID3D12InfoQueue_GetNumMessagesAllowedByStorageFilter( const ApiCallInfo& call_info, format::HandleId object_id, - UINT64 return_value); + UINT64 return_value) override; virtual void Process_ID3D12InfoQueue_GetNumMessagesDeniedByStorageFilter( const ApiCallInfo& call_info, format::HandleId object_id, - UINT64 return_value); + UINT64 return_value) override; virtual void Process_ID3D12InfoQueue_GetNumStoredMessages( const ApiCallInfo& call_info, format::HandleId object_id, - UINT64 return_value); + UINT64 return_value) override; virtual void Process_ID3D12InfoQueue_GetNumStoredMessagesAllowedByRetrievalFilter( const ApiCallInfo& call_info, format::HandleId object_id, - UINT64 return_value); + UINT64 return_value) override; virtual void Process_ID3D12InfoQueue_GetNumMessagesDiscardedByMessageCountLimit( const ApiCallInfo& call_info, format::HandleId object_id, - UINT64 return_value); + UINT64 return_value) override; virtual void Process_ID3D12InfoQueue_GetMessageCountLimit( const ApiCallInfo& call_info, format::HandleId object_id, - UINT64 return_value); + UINT64 return_value) override; virtual void Process_ID3D12InfoQueue_AddStorageFilterEntries( const ApiCallInfo& call_info, format::HandleId object_id, HRESULT return_value, - StructPointerDecoder* pFilter); + StructPointerDecoder* pFilter) override; virtual void Process_ID3D12InfoQueue_GetStorageFilter( const ApiCallInfo& call_info, format::HandleId object_id, HRESULT return_value, StructPointerDecoder* pFilter, - PointerDecoder* pFilterByteLength); + PointerDecoder* pFilterByteLength) override; virtual void Process_ID3D12InfoQueue_ClearStorageFilter( const ApiCallInfo& call_info, - format::HandleId object_id); + format::HandleId object_id) override; virtual void Process_ID3D12InfoQueue_PushEmptyStorageFilter( const ApiCallInfo& call_info, format::HandleId object_id, - HRESULT return_value); + HRESULT return_value) override; virtual void Process_ID3D12InfoQueue_PushCopyOfStorageFilter( const ApiCallInfo& call_info, format::HandleId object_id, - HRESULT return_value); + HRESULT return_value) override; virtual void Process_ID3D12InfoQueue_PushStorageFilter( const ApiCallInfo& call_info, format::HandleId object_id, HRESULT return_value, - StructPointerDecoder* pFilter); + StructPointerDecoder* pFilter) override; virtual void Process_ID3D12InfoQueue_PopStorageFilter( const ApiCallInfo& call_info, - format::HandleId object_id); + format::HandleId object_id) override; virtual void Process_ID3D12InfoQueue_GetStorageFilterStackSize( const ApiCallInfo& call_info, format::HandleId object_id, - UINT return_value); + UINT return_value) override; virtual void Process_ID3D12InfoQueue_AddRetrievalFilterEntries( const ApiCallInfo& call_info, format::HandleId object_id, HRESULT return_value, - StructPointerDecoder* pFilter); + StructPointerDecoder* pFilter) override; virtual void Process_ID3D12InfoQueue_GetRetrievalFilter( const ApiCallInfo& call_info, format::HandleId object_id, HRESULT return_value, StructPointerDecoder* pFilter, - PointerDecoder* pFilterByteLength); + PointerDecoder* pFilterByteLength) override; virtual void Process_ID3D12InfoQueue_ClearRetrievalFilter( const ApiCallInfo& call_info, - format::HandleId object_id); + format::HandleId object_id) override; virtual void Process_ID3D12InfoQueue_PushEmptyRetrievalFilter( const ApiCallInfo& call_info, format::HandleId object_id, - HRESULT return_value); + HRESULT return_value) override; virtual void Process_ID3D12InfoQueue_PushCopyOfRetrievalFilter( const ApiCallInfo& call_info, format::HandleId object_id, - HRESULT return_value); + HRESULT return_value) override; virtual void Process_ID3D12InfoQueue_PushRetrievalFilter( const ApiCallInfo& call_info, format::HandleId object_id, HRESULT return_value, - StructPointerDecoder* pFilter); + StructPointerDecoder* pFilter) override; virtual void Process_ID3D12InfoQueue_PopRetrievalFilter( const ApiCallInfo& call_info, - format::HandleId object_id); + format::HandleId object_id) override; virtual void Process_ID3D12InfoQueue_GetRetrievalFilterStackSize( const ApiCallInfo& call_info, format::HandleId object_id, - UINT return_value); + UINT return_value) override; virtual void Process_ID3D12InfoQueue_AddMessage( const ApiCallInfo& call_info, @@ -3315,63 +3315,63 @@ class Dx12AsciiConsumer : public Dx12AsciiConsumerBase D3D12_MESSAGE_CATEGORY Category, D3D12_MESSAGE_SEVERITY Severity, D3D12_MESSAGE_ID ID, - StringDecoder* pDescription); + StringDecoder* pDescription) override; virtual void Process_ID3D12InfoQueue_AddApplicationMessage( const ApiCallInfo& call_info, format::HandleId object_id, HRESULT return_value, D3D12_MESSAGE_SEVERITY Severity, - StringDecoder* pDescription); + StringDecoder* pDescription) override; virtual void Process_ID3D12InfoQueue_SetBreakOnCategory( const ApiCallInfo& call_info, format::HandleId object_id, HRESULT return_value, D3D12_MESSAGE_CATEGORY Category, - BOOL bEnable); + BOOL bEnable) override; virtual void Process_ID3D12InfoQueue_SetBreakOnSeverity( const ApiCallInfo& call_info, format::HandleId object_id, HRESULT return_value, D3D12_MESSAGE_SEVERITY Severity, - BOOL bEnable); + BOOL bEnable) override; virtual void Process_ID3D12InfoQueue_SetBreakOnID( const ApiCallInfo& call_info, format::HandleId object_id, HRESULT return_value, D3D12_MESSAGE_ID ID, - BOOL bEnable); + BOOL bEnable) override; virtual void Process_ID3D12InfoQueue_GetBreakOnCategory( const ApiCallInfo& call_info, format::HandleId object_id, BOOL return_value, - D3D12_MESSAGE_CATEGORY Category); + D3D12_MESSAGE_CATEGORY Category) override; virtual void Process_ID3D12InfoQueue_GetBreakOnSeverity( const ApiCallInfo& call_info, format::HandleId object_id, BOOL return_value, - D3D12_MESSAGE_SEVERITY Severity); + D3D12_MESSAGE_SEVERITY Severity) override; virtual void Process_ID3D12InfoQueue_GetBreakOnID( const ApiCallInfo& call_info, format::HandleId object_id, BOOL return_value, - D3D12_MESSAGE_ID ID); + D3D12_MESSAGE_ID ID) override; virtual void Process_ID3D12InfoQueue_SetMuteDebugOutput( const ApiCallInfo& call_info, format::HandleId object_id, - BOOL bMute); + BOOL bMute) override; virtual void Process_ID3D12InfoQueue_GetMuteDebugOutput( const ApiCallInfo& call_info, format::HandleId object_id, - BOOL return_value); + BOOL return_value) override; virtual void Process_ID3D12InfoQueue1_RegisterMessageCallback( const ApiCallInfo& call_info, @@ -3380,13 +3380,13 @@ class Dx12AsciiConsumer : public Dx12AsciiConsumerBase uint64_t CallbackFunc, D3D12_MESSAGE_CALLBACK_FLAGS CallbackFilterFlags, uint64_t pContext, - PointerDecoder* pCallbackCookie); + PointerDecoder* pCallbackCookie) override; virtual void Process_ID3D12InfoQueue1_UnregisterMessageCallback( const ApiCallInfo& call_info, format::HandleId object_id, HRESULT return_value, - DWORD CallbackCookie); + DWORD CallbackCookie) override; /* ** This part is generated from Unknwnbase.h in Windows SDK: 10.0.20348.0 @@ -3397,17 +3397,17 @@ class Dx12AsciiConsumer : public Dx12AsciiConsumerBase format::HandleId object_id, HRESULT return_value, Decoded_GUID riid, - HandlePointerDecoder* ppvObject); + HandlePointerDecoder* ppvObject) override; virtual void Process_IUnknown_AddRef( const ApiCallInfo& call_info, format::HandleId object_id, - ULONG return_value); + ULONG return_value) override; virtual void Process_IUnknown_Release( const ApiCallInfo& call_info, format::HandleId object_id, - ULONG return_value); + ULONG return_value) override; }; diff --git a/framework/generated/generated_dx12_struct_decoders_to_json.cpp b/framework/generated/generated_dx12_struct_decoders_to_json.cpp new file mode 100644 index 0000000000..84f07d5e2b --- /dev/null +++ b/framework/generated/generated_dx12_struct_decoders_to_json.cpp @@ -0,0 +1,4659 @@ +/* +** Copyright (c) 2021-2023 LunarG, Inc. +** +** Permission is hereby granted, free of charge, to any person obtaining a copy +** of this software and associated documentation files (the "Software"), to +** deal in the Software without restriction, including without limitation the +** rights to use, copy, modify, merge, publish, distribute, sublicense, and/or +** sell copies of the Software, and to permit persons to whom the Software is +** furnished to do so, subject to the following conditions: +** +** The above copyright notice and this permission notice shall be included in +** all copies or substantial portions of the Software. +** +** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +** IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +** FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +** AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +** LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +** FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS +** IN THE SOFTWARE. +*/ + +/* +** This file is generated from dx12_struct_decoders_to_json_body_generator.py. +** +*/ + +#include "generated_dx12_struct_decoders_to_json.h" +#include "generated_dx12_enum_to_json.h" +#include "decode/custom_dx12_struct_decoders.h" +#include "decode/decode_json_util.h" +#include "graphics/dx12_util.h" +#include "util/json_util.h" +#include "format/format_json.h" + +/// @file Implementations of functions for converting decoded D3D12 structs to JSON. + +GFXRECON_BEGIN_NAMESPACE(gfxrecon) +GFXRECON_BEGIN_NAMESPACE(decode) + +using util::JsonOptions; + +// TODO Move all these manual functions out of the generator and into a .cpp file. + +/// @defgroup ManualD3D12StructFieldToJsons Manual functions to convert raw structs. +/** @{ */ +static void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_RENDER_PASS_BEGINNING_ACCESS_PRESERVE_LOCAL_PARAMETERS& data, const JsonOptions& options) +{ + using namespace util; + FieldToJson(jdata["AdditionalWidth"], data.AdditionalWidth, options); + FieldToJson(jdata["AdditionalHeight"], data.AdditionalHeight, options); +} + +static void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_RENDER_PASS_ENDING_ACCESS_PRESERVE_LOCAL_PARAMETERS& data, const JsonOptions& options) +{ + using namespace util; + FieldToJson(jdata["AdditionalWidth"], data.AdditionalWidth, options); + FieldToJson(jdata["AdditionalHeight"], data.AdditionalHeight, options); +} + +/// Manual raw struct functon to be used for Decoded_D3D12_CLEAR_VALUE conversion. +void FieldToJson(nlohmann::ordered_json& jdata, const D3D12_DEPTH_STENCIL_VALUE& obj, const JsonOptions& options) +{ + FieldToJson(jdata["Depth"], obj.Depth, options); + FieldToJson(jdata["Stencil"], obj.Stencil, options); +} +/** @} */ + +inline bool RepresentBinaryFile(const util::JsonOptions& json_options, nlohmann::ordered_json& jdata, std::string_view filename_base, const uint64_t instance_counter, const PointerDecoder& data) +{ + return RepresentBinaryFile(json_options, jdata, filename_base, instance_counter, data.GetLength(), data.GetPointer()); +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_DXGI_FRAME_STATISTICS* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const DXGI_FRAME_STATISTICS& decoded_value = *data->decoded_value; + const Decoded_DXGI_FRAME_STATISTICS& meta_struct = *data; + FieldToJson(jdata["PresentCount"], decoded_value.PresentCount, options); + FieldToJson(jdata["PresentRefreshCount"], decoded_value.PresentRefreshCount, options); + FieldToJson(jdata["SyncRefreshCount"], decoded_value.SyncRefreshCount, options); + FieldToJson(jdata["SyncQPCTime"], meta_struct.SyncQPCTime, options); + FieldToJson(jdata["SyncGPUTime"], meta_struct.SyncGPUTime, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_DXGI_MAPPED_RECT* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const DXGI_MAPPED_RECT& decoded_value = *data->decoded_value; + const Decoded_DXGI_MAPPED_RECT& meta_struct = *data; + FieldToJson(jdata["Pitch"], decoded_value.Pitch, options); + FieldToJson(jdata["pBits"], meta_struct.pBits, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_LUID* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const LUID& decoded_value = *data->decoded_value; + const Decoded_LUID& meta_struct = *data; + FieldToJson(jdata["LowPart"], decoded_value.LowPart, options); + FieldToJson(jdata["HighPart"], decoded_value.HighPart, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_DXGI_ADAPTER_DESC* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const DXGI_ADAPTER_DESC& decoded_value = *data->decoded_value; + const Decoded_DXGI_ADAPTER_DESC& meta_struct = *data; + FieldToJson(jdata["Description"], meta_struct.Description, options); + FieldToJson(jdata["VendorId"], decoded_value.VendorId, options); + FieldToJson(jdata["DeviceId"], decoded_value.DeviceId, options); + FieldToJson(jdata["SubSysId"], decoded_value.SubSysId, options); + FieldToJson(jdata["Revision"], decoded_value.Revision, options); + FieldToJson(jdata["DedicatedVideoMemory"], decoded_value.DedicatedVideoMemory, options); + FieldToJson(jdata["DedicatedSystemMemory"], decoded_value.DedicatedSystemMemory, options); + FieldToJson(jdata["SharedSystemMemory"], decoded_value.SharedSystemMemory, options); + FieldToJson(jdata["AdapterLuid"], meta_struct.AdapterLuid, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_DXGI_OUTPUT_DESC* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const DXGI_OUTPUT_DESC& decoded_value = *data->decoded_value; + const Decoded_DXGI_OUTPUT_DESC& meta_struct = *data; + FieldToJson(jdata["DeviceName"], meta_struct.DeviceName, options); + FieldToJson(jdata["DesktopCoordinates"], meta_struct.DesktopCoordinates, options); + Bool32ToJson(jdata["AttachedToDesktop"], decoded_value.AttachedToDesktop, options); + FieldToJson(jdata["Rotation"], decoded_value.Rotation, options); + FieldToJson(jdata["Monitor"], meta_struct.Monitor, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_DXGI_SHARED_RESOURCE* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const DXGI_SHARED_RESOURCE& decoded_value = *data->decoded_value; + const Decoded_DXGI_SHARED_RESOURCE& meta_struct = *data; + FieldToJson(jdata["Handle"], meta_struct.Handle, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_DXGI_SURFACE_DESC* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const DXGI_SURFACE_DESC& decoded_value = *data->decoded_value; + const Decoded_DXGI_SURFACE_DESC& meta_struct = *data; + FieldToJson(jdata["Width"], decoded_value.Width, options); + FieldToJson(jdata["Height"], decoded_value.Height, options); + FieldToJson(jdata["Format"], decoded_value.Format, options); + FieldToJson(jdata["SampleDesc"], meta_struct.SampleDesc, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_DXGI_SWAP_CHAIN_DESC* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const DXGI_SWAP_CHAIN_DESC& decoded_value = *data->decoded_value; + const Decoded_DXGI_SWAP_CHAIN_DESC& meta_struct = *data; + FieldToJson(jdata["BufferDesc"], meta_struct.BufferDesc, options); + FieldToJson(jdata["SampleDesc"], meta_struct.SampleDesc, options); + FieldToJson(jdata["BufferUsage"], decoded_value.BufferUsage, options); + FieldToJson(jdata["BufferCount"], decoded_value.BufferCount, options); + FieldToJson(jdata["OutputWindow"], meta_struct.OutputWindow, options); + Bool32ToJson(jdata["Windowed"], decoded_value.Windowed, options); + FieldToJson(jdata["SwapEffect"], decoded_value.SwapEffect, options); + FieldToJson(jdata["Flags"], decoded_value.Flags, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_DXGI_ADAPTER_DESC1* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const DXGI_ADAPTER_DESC1& decoded_value = *data->decoded_value; + const Decoded_DXGI_ADAPTER_DESC1& meta_struct = *data; + FieldToJson(jdata["Description"], meta_struct.Description, options); + FieldToJson(jdata["VendorId"], decoded_value.VendorId, options); + FieldToJson(jdata["DeviceId"], decoded_value.DeviceId, options); + FieldToJson(jdata["SubSysId"], decoded_value.SubSysId, options); + FieldToJson(jdata["Revision"], decoded_value.Revision, options); + FieldToJson(jdata["DedicatedVideoMemory"], decoded_value.DedicatedVideoMemory, options); + FieldToJson(jdata["DedicatedSystemMemory"], decoded_value.DedicatedSystemMemory, options); + FieldToJson(jdata["SharedSystemMemory"], decoded_value.SharedSystemMemory, options); + FieldToJson(jdata["AdapterLuid"], meta_struct.AdapterLuid, options); + FieldToJson(jdata["Flags"], decoded_value.Flags, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_DXGI_DISPLAY_COLOR_SPACE* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const DXGI_DISPLAY_COLOR_SPACE& decoded_value = *data->decoded_value; + const Decoded_DXGI_DISPLAY_COLOR_SPACE& meta_struct = *data; + FieldToJson(jdata["PrimaryCoordinates"], meta_struct.PrimaryCoordinates, options); + FieldToJson(jdata["WhitePoints"], meta_struct.WhitePoints, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_DXGI_OUTDUPL_MOVE_RECT* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const DXGI_OUTDUPL_MOVE_RECT& decoded_value = *data->decoded_value; + const Decoded_DXGI_OUTDUPL_MOVE_RECT& meta_struct = *data; + FieldToJson(jdata["SourcePoint"], meta_struct.SourcePoint, options); + FieldToJson(jdata["DestinationRect"], meta_struct.DestinationRect, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_DXGI_OUTDUPL_DESC* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const DXGI_OUTDUPL_DESC& decoded_value = *data->decoded_value; + const Decoded_DXGI_OUTDUPL_DESC& meta_struct = *data; + FieldToJson(jdata["ModeDesc"], meta_struct.ModeDesc, options); + FieldToJson(jdata["Rotation"], decoded_value.Rotation, options); + Bool32ToJson(jdata["DesktopImageInSystemMemory"], decoded_value.DesktopImageInSystemMemory, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_DXGI_OUTDUPL_POINTER_POSITION* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const DXGI_OUTDUPL_POINTER_POSITION& decoded_value = *data->decoded_value; + const Decoded_DXGI_OUTDUPL_POINTER_POSITION& meta_struct = *data; + FieldToJson(jdata["Position"], meta_struct.Position, options); + Bool32ToJson(jdata["Visible"], decoded_value.Visible, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_DXGI_OUTDUPL_POINTER_SHAPE_INFO* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const DXGI_OUTDUPL_POINTER_SHAPE_INFO& decoded_value = *data->decoded_value; + const Decoded_DXGI_OUTDUPL_POINTER_SHAPE_INFO& meta_struct = *data; + FieldToJson(jdata["Type"], decoded_value.Type, options); + FieldToJson(jdata["Width"], decoded_value.Width, options); + FieldToJson(jdata["Height"], decoded_value.Height, options); + FieldToJson(jdata["Pitch"], decoded_value.Pitch, options); + FieldToJson(jdata["HotSpot"], meta_struct.HotSpot, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_DXGI_OUTDUPL_FRAME_INFO* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const DXGI_OUTDUPL_FRAME_INFO& decoded_value = *data->decoded_value; + const Decoded_DXGI_OUTDUPL_FRAME_INFO& meta_struct = *data; + FieldToJson(jdata["LastPresentTime"], meta_struct.LastPresentTime, options); + FieldToJson(jdata["LastMouseUpdateTime"], meta_struct.LastMouseUpdateTime, options); + FieldToJson(jdata["AccumulatedFrames"], decoded_value.AccumulatedFrames, options); + Bool32ToJson(jdata["RectsCoalesced"], decoded_value.RectsCoalesced, options); + Bool32ToJson(jdata["ProtectedContentMaskedOut"], decoded_value.ProtectedContentMaskedOut, options); + FieldToJson(jdata["PointerPosition"], meta_struct.PointerPosition, options); + FieldToJson(jdata["TotalMetadataBufferSize"], decoded_value.TotalMetadataBufferSize, options); + FieldToJson(jdata["PointerShapeBufferSize"], decoded_value.PointerShapeBufferSize, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_DXGI_MODE_DESC1* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const DXGI_MODE_DESC1& decoded_value = *data->decoded_value; + const Decoded_DXGI_MODE_DESC1& meta_struct = *data; + FieldToJson(jdata["Width"], decoded_value.Width, options); + FieldToJson(jdata["Height"], decoded_value.Height, options); + FieldToJson(jdata["RefreshRate"], meta_struct.RefreshRate, options); + FieldToJson(jdata["Format"], decoded_value.Format, options); + FieldToJson(jdata["ScanlineOrdering"], decoded_value.ScanlineOrdering, options); + FieldToJson(jdata["Scaling"], decoded_value.Scaling, options); + Bool32ToJson(jdata["Stereo"], decoded_value.Stereo, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_DXGI_SWAP_CHAIN_DESC1* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const DXGI_SWAP_CHAIN_DESC1& decoded_value = *data->decoded_value; + const Decoded_DXGI_SWAP_CHAIN_DESC1& meta_struct = *data; + FieldToJson(jdata["Width"], decoded_value.Width, options); + FieldToJson(jdata["Height"], decoded_value.Height, options); + FieldToJson(jdata["Format"], decoded_value.Format, options); + Bool32ToJson(jdata["Stereo"], decoded_value.Stereo, options); + FieldToJson(jdata["SampleDesc"], meta_struct.SampleDesc, options); + FieldToJson(jdata["BufferUsage"], decoded_value.BufferUsage, options); + FieldToJson(jdata["BufferCount"], decoded_value.BufferCount, options); + FieldToJson(jdata["Scaling"], decoded_value.Scaling, options); + FieldToJson(jdata["SwapEffect"], decoded_value.SwapEffect, options); + FieldToJson(jdata["AlphaMode"], decoded_value.AlphaMode, options); + FieldToJson(jdata["Flags"], decoded_value.Flags, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_DXGI_SWAP_CHAIN_FULLSCREEN_DESC* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const DXGI_SWAP_CHAIN_FULLSCREEN_DESC& decoded_value = *data->decoded_value; + const Decoded_DXGI_SWAP_CHAIN_FULLSCREEN_DESC& meta_struct = *data; + FieldToJson(jdata["RefreshRate"], meta_struct.RefreshRate, options); + FieldToJson(jdata["ScanlineOrdering"], decoded_value.ScanlineOrdering, options); + FieldToJson(jdata["Scaling"], decoded_value.Scaling, options); + Bool32ToJson(jdata["Windowed"], decoded_value.Windowed, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_DXGI_PRESENT_PARAMETERS* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const DXGI_PRESENT_PARAMETERS& decoded_value = *data->decoded_value; + const Decoded_DXGI_PRESENT_PARAMETERS& meta_struct = *data; + FieldToJson(jdata["DirtyRectsCount"], decoded_value.DirtyRectsCount, options); + FieldToJson(jdata["pDirtyRects"], meta_struct.pDirtyRects, options); + FieldToJson(jdata["pScrollRect"], meta_struct.pScrollRect, options); + FieldToJson(jdata["pScrollOffset"], meta_struct.pScrollOffset, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_DXGI_ADAPTER_DESC2* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const DXGI_ADAPTER_DESC2& decoded_value = *data->decoded_value; + const Decoded_DXGI_ADAPTER_DESC2& meta_struct = *data; + FieldToJson(jdata["Description"], meta_struct.Description, options); + FieldToJson(jdata["VendorId"], decoded_value.VendorId, options); + FieldToJson(jdata["DeviceId"], decoded_value.DeviceId, options); + FieldToJson(jdata["SubSysId"], decoded_value.SubSysId, options); + FieldToJson(jdata["Revision"], decoded_value.Revision, options); + FieldToJson(jdata["DedicatedVideoMemory"], decoded_value.DedicatedVideoMemory, options); + FieldToJson(jdata["DedicatedSystemMemory"], decoded_value.DedicatedSystemMemory, options); + FieldToJson(jdata["SharedSystemMemory"], decoded_value.SharedSystemMemory, options); + FieldToJson(jdata["AdapterLuid"], meta_struct.AdapterLuid, options); + FieldToJson(jdata["Flags"], decoded_value.Flags, options); + FieldToJson(jdata["GraphicsPreemptionGranularity"], decoded_value.GraphicsPreemptionGranularity, options); + FieldToJson(jdata["ComputePreemptionGranularity"], decoded_value.ComputePreemptionGranularity, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_DXGI_MATRIX_3X2_F* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const DXGI_MATRIX_3X2_F& decoded_value = *data->decoded_value; + const Decoded_DXGI_MATRIX_3X2_F& meta_struct = *data; + FieldToJson(jdata["_11"], decoded_value._11, options); + FieldToJson(jdata["_12"], decoded_value._12, options); + FieldToJson(jdata["_21"], decoded_value._21, options); + FieldToJson(jdata["_22"], decoded_value._22, options); + FieldToJson(jdata["_31"], decoded_value._31, options); + FieldToJson(jdata["_32"], decoded_value._32, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_DXGI_DECODE_SWAP_CHAIN_DESC* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const DXGI_DECODE_SWAP_CHAIN_DESC& decoded_value = *data->decoded_value; + const Decoded_DXGI_DECODE_SWAP_CHAIN_DESC& meta_struct = *data; + FieldToJson(jdata["Flags"], decoded_value.Flags, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_DXGI_FRAME_STATISTICS_MEDIA* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const DXGI_FRAME_STATISTICS_MEDIA& decoded_value = *data->decoded_value; + const Decoded_DXGI_FRAME_STATISTICS_MEDIA& meta_struct = *data; + FieldToJson(jdata["PresentCount"], decoded_value.PresentCount, options); + FieldToJson(jdata["PresentRefreshCount"], decoded_value.PresentRefreshCount, options); + FieldToJson(jdata["SyncRefreshCount"], decoded_value.SyncRefreshCount, options); + FieldToJson(jdata["SyncQPCTime"], meta_struct.SyncQPCTime, options); + FieldToJson(jdata["SyncGPUTime"], meta_struct.SyncGPUTime, options); + FieldToJson(jdata["CompositionMode"], decoded_value.CompositionMode, options); + FieldToJson(jdata["ApprovedPresentDuration"], decoded_value.ApprovedPresentDuration, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_DXGI_QUERY_VIDEO_MEMORY_INFO* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const DXGI_QUERY_VIDEO_MEMORY_INFO& decoded_value = *data->decoded_value; + const Decoded_DXGI_QUERY_VIDEO_MEMORY_INFO& meta_struct = *data; + FieldToJson(jdata["Budget"], decoded_value.Budget, options); + FieldToJson(jdata["CurrentUsage"], decoded_value.CurrentUsage, options); + FieldToJson(jdata["AvailableForReservation"], decoded_value.AvailableForReservation, options); + FieldToJson(jdata["CurrentReservation"], decoded_value.CurrentReservation, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_DXGI_HDR_METADATA_HDR10* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const DXGI_HDR_METADATA_HDR10& decoded_value = *data->decoded_value; + const Decoded_DXGI_HDR_METADATA_HDR10& meta_struct = *data; + FieldToJson(jdata["RedPrimary"], meta_struct.RedPrimary, options); + FieldToJson(jdata["GreenPrimary"], meta_struct.GreenPrimary, options); + FieldToJson(jdata["BluePrimary"], meta_struct.BluePrimary, options); + FieldToJson(jdata["WhitePoint"], meta_struct.WhitePoint, options); + FieldToJson(jdata["MaxMasteringLuminance"], decoded_value.MaxMasteringLuminance, options); + FieldToJson(jdata["MinMasteringLuminance"], decoded_value.MinMasteringLuminance, options); + FieldToJson(jdata["MaxContentLightLevel"], decoded_value.MaxContentLightLevel, options); + FieldToJson(jdata["MaxFrameAverageLightLevel"], decoded_value.MaxFrameAverageLightLevel, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_DXGI_HDR_METADATA_HDR10PLUS* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const DXGI_HDR_METADATA_HDR10PLUS& decoded_value = *data->decoded_value; + const Decoded_DXGI_HDR_METADATA_HDR10PLUS& meta_struct = *data; + FieldToJson(jdata["Data"], meta_struct.Data, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_DXGI_ADAPTER_DESC3* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const DXGI_ADAPTER_DESC3& decoded_value = *data->decoded_value; + const Decoded_DXGI_ADAPTER_DESC3& meta_struct = *data; + FieldToJson(jdata["Description"], meta_struct.Description, options); + FieldToJson(jdata["VendorId"], decoded_value.VendorId, options); + FieldToJson(jdata["DeviceId"], decoded_value.DeviceId, options); + FieldToJson(jdata["SubSysId"], decoded_value.SubSysId, options); + FieldToJson(jdata["Revision"], decoded_value.Revision, options); + FieldToJson(jdata["DedicatedVideoMemory"], decoded_value.DedicatedVideoMemory, options); + FieldToJson(jdata["DedicatedSystemMemory"], decoded_value.DedicatedSystemMemory, options); + FieldToJson(jdata["SharedSystemMemory"], decoded_value.SharedSystemMemory, options); + FieldToJson(jdata["AdapterLuid"], meta_struct.AdapterLuid, options); + FieldToJson(jdata["Flags"], decoded_value.Flags, options); + FieldToJson(jdata["GraphicsPreemptionGranularity"], decoded_value.GraphicsPreemptionGranularity, options); + FieldToJson(jdata["ComputePreemptionGranularity"], decoded_value.ComputePreemptionGranularity, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_DXGI_OUTPUT_DESC1* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const DXGI_OUTPUT_DESC1& decoded_value = *data->decoded_value; + const Decoded_DXGI_OUTPUT_DESC1& meta_struct = *data; + FieldToJson(jdata["DeviceName"], meta_struct.DeviceName, options); + FieldToJson(jdata["DesktopCoordinates"], meta_struct.DesktopCoordinates, options); + Bool32ToJson(jdata["AttachedToDesktop"], decoded_value.AttachedToDesktop, options); + FieldToJson(jdata["Rotation"], decoded_value.Rotation, options); + FieldToJson(jdata["Monitor"], meta_struct.Monitor, options); + FieldToJson(jdata["BitsPerColor"], decoded_value.BitsPerColor, options); + FieldToJson(jdata["ColorSpace"], decoded_value.ColorSpace, options); + FieldToJson(jdata["RedPrimary"], meta_struct.RedPrimary, options); + FieldToJson(jdata["GreenPrimary"], meta_struct.GreenPrimary, options); + FieldToJson(jdata["BluePrimary"], meta_struct.BluePrimary, options); + FieldToJson(jdata["WhitePoint"], meta_struct.WhitePoint, options); + FieldToJson(jdata["MinLuminance"], decoded_value.MinLuminance, options); + FieldToJson(jdata["MaxLuminance"], decoded_value.MaxLuminance, options); + FieldToJson(jdata["MaxFullFrameLuminance"], decoded_value.MaxFullFrameLuminance, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_DXGI_RATIONAL* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const DXGI_RATIONAL& decoded_value = *data->decoded_value; + const Decoded_DXGI_RATIONAL& meta_struct = *data; + FieldToJson(jdata["Numerator"], decoded_value.Numerator, options); + FieldToJson(jdata["Denominator"], decoded_value.Denominator, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_DXGI_SAMPLE_DESC* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const DXGI_SAMPLE_DESC& decoded_value = *data->decoded_value; + const Decoded_DXGI_SAMPLE_DESC& meta_struct = *data; + FieldToJson(jdata["Count"], decoded_value.Count, options); + FieldToJson(jdata["Quality"], decoded_value.Quality, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_DXGI_RGB* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const DXGI_RGB& decoded_value = *data->decoded_value; + const Decoded_DXGI_RGB& meta_struct = *data; + FieldToJson(jdata["Red"], decoded_value.Red, options); + FieldToJson(jdata["Green"], decoded_value.Green, options); + FieldToJson(jdata["Blue"], decoded_value.Blue, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3DCOLORVALUE* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const D3DCOLORVALUE& decoded_value = *data->decoded_value; + const Decoded_D3DCOLORVALUE& meta_struct = *data; + FieldToJson(jdata["r"], decoded_value.r, options); + FieldToJson(jdata["g"], decoded_value.g, options); + FieldToJson(jdata["b"], decoded_value.b, options); + FieldToJson(jdata["a"], decoded_value.a, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_DXGI_GAMMA_CONTROL* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const DXGI_GAMMA_CONTROL& decoded_value = *data->decoded_value; + const Decoded_DXGI_GAMMA_CONTROL& meta_struct = *data; + FieldToJson(jdata["Scale"], meta_struct.Scale, options); + FieldToJson(jdata["Offset"], meta_struct.Offset, options); + FieldToJson(jdata["GammaCurve"], meta_struct.GammaCurve, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_DXGI_GAMMA_CONTROL_CAPABILITIES* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const DXGI_GAMMA_CONTROL_CAPABILITIES& decoded_value = *data->decoded_value; + const Decoded_DXGI_GAMMA_CONTROL_CAPABILITIES& meta_struct = *data; + Bool32ToJson(jdata["ScaleAndOffsetSupported"], decoded_value.ScaleAndOffsetSupported, options); + FieldToJson(jdata["MaxConvertedValue"], decoded_value.MaxConvertedValue, options); + FieldToJson(jdata["MinConvertedValue"], decoded_value.MinConvertedValue, options); + FieldToJson(jdata["NumGammaControlPoints"], decoded_value.NumGammaControlPoints, options); + FieldToJson(jdata["ControlPointPositions"], meta_struct.ControlPointPositions, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_DXGI_MODE_DESC* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const DXGI_MODE_DESC& decoded_value = *data->decoded_value; + const Decoded_DXGI_MODE_DESC& meta_struct = *data; + FieldToJson(jdata["Width"], decoded_value.Width, options); + FieldToJson(jdata["Height"], decoded_value.Height, options); + FieldToJson(jdata["RefreshRate"], meta_struct.RefreshRate, options); + FieldToJson(jdata["Format"], decoded_value.Format, options); + FieldToJson(jdata["ScanlineOrdering"], decoded_value.ScanlineOrdering, options); + FieldToJson(jdata["Scaling"], decoded_value.Scaling, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_DXGI_JPEG_DC_HUFFMAN_TABLE* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const DXGI_JPEG_DC_HUFFMAN_TABLE& decoded_value = *data->decoded_value; + const Decoded_DXGI_JPEG_DC_HUFFMAN_TABLE& meta_struct = *data; + FieldToJson(jdata["CodeCounts"], meta_struct.CodeCounts, options); + FieldToJson(jdata["CodeValues"], meta_struct.CodeValues, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_DXGI_JPEG_AC_HUFFMAN_TABLE* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const DXGI_JPEG_AC_HUFFMAN_TABLE& decoded_value = *data->decoded_value; + const Decoded_DXGI_JPEG_AC_HUFFMAN_TABLE& meta_struct = *data; + FieldToJson(jdata["CodeCounts"], meta_struct.CodeCounts, options); + FieldToJson(jdata["CodeValues"], meta_struct.CodeValues, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_DXGI_JPEG_QUANTIZATION_TABLE* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const DXGI_JPEG_QUANTIZATION_TABLE& decoded_value = *data->decoded_value; + const Decoded_DXGI_JPEG_QUANTIZATION_TABLE& meta_struct = *data; + FieldToJson(jdata["Elements"], meta_struct.Elements, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_COMMAND_QUEUE_DESC* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const D3D12_COMMAND_QUEUE_DESC& decoded_value = *data->decoded_value; + const Decoded_D3D12_COMMAND_QUEUE_DESC& meta_struct = *data; + FieldToJson(jdata["Type"], decoded_value.Type, options); + FieldToJson(jdata["Priority"], decoded_value.Priority, options); + FieldToJson_D3D12_COMMAND_QUEUE_FLAGS(jdata["Flags"], decoded_value.Flags, options); + FieldToJsonAsFixedWidthBinary(jdata["NodeMask"], decoded_value.NodeMask, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_INPUT_ELEMENT_DESC* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const D3D12_INPUT_ELEMENT_DESC& decoded_value = *data->decoded_value; + const Decoded_D3D12_INPUT_ELEMENT_DESC& meta_struct = *data; + FieldToJson(jdata["SemanticName"], meta_struct.SemanticName, options); + FieldToJson(jdata["SemanticIndex"], decoded_value.SemanticIndex, options); + FieldToJson(jdata["Format"], decoded_value.Format, options); + FieldToJson(jdata["InputSlot"], decoded_value.InputSlot, options); + FieldToJson(jdata["AlignedByteOffset"], decoded_value.AlignedByteOffset, options); + FieldToJson(jdata["InputSlotClass"], decoded_value.InputSlotClass, options); + FieldToJson(jdata["InstanceDataStepRate"], decoded_value.InstanceDataStepRate, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_SO_DECLARATION_ENTRY* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const D3D12_SO_DECLARATION_ENTRY& decoded_value = *data->decoded_value; + const Decoded_D3D12_SO_DECLARATION_ENTRY& meta_struct = *data; + FieldToJson(jdata["Stream"], decoded_value.Stream, options); + FieldToJson(jdata["SemanticName"], meta_struct.SemanticName, options); + FieldToJson(jdata["SemanticIndex"], decoded_value.SemanticIndex, options); + FieldToJson(jdata["StartComponent"], decoded_value.StartComponent, options); + FieldToJson(jdata["ComponentCount"], decoded_value.ComponentCount, options); + FieldToJson(jdata["OutputSlot"], decoded_value.OutputSlot, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_VIEWPORT* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const D3D12_VIEWPORT& decoded_value = *data->decoded_value; + const Decoded_D3D12_VIEWPORT& meta_struct = *data; + FieldToJson(jdata["TopLeftX"], decoded_value.TopLeftX, options); + FieldToJson(jdata["TopLeftY"], decoded_value.TopLeftY, options); + FieldToJson(jdata["Width"], decoded_value.Width, options); + FieldToJson(jdata["Height"], decoded_value.Height, options); + FieldToJson(jdata["MinDepth"], decoded_value.MinDepth, options); + FieldToJson(jdata["MaxDepth"], decoded_value.MaxDepth, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_BOX* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const D3D12_BOX& decoded_value = *data->decoded_value; + const Decoded_D3D12_BOX& meta_struct = *data; + FieldToJson(jdata["left"], decoded_value.left, options); + FieldToJson(jdata["top"], decoded_value.top, options); + FieldToJson(jdata["front"], decoded_value.front, options); + FieldToJson(jdata["right"], decoded_value.right, options); + FieldToJson(jdata["bottom"], decoded_value.bottom, options); + FieldToJson(jdata["back"], decoded_value.back, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_DEPTH_STENCILOP_DESC* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const D3D12_DEPTH_STENCILOP_DESC& decoded_value = *data->decoded_value; + const Decoded_D3D12_DEPTH_STENCILOP_DESC& meta_struct = *data; + FieldToJson(jdata["StencilFailOp"], decoded_value.StencilFailOp, options); + FieldToJson(jdata["StencilDepthFailOp"], decoded_value.StencilDepthFailOp, options); + FieldToJson(jdata["StencilPassOp"], decoded_value.StencilPassOp, options); + FieldToJson(jdata["StencilFunc"], decoded_value.StencilFunc, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_DEPTH_STENCIL_DESC* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const D3D12_DEPTH_STENCIL_DESC& decoded_value = *data->decoded_value; + const Decoded_D3D12_DEPTH_STENCIL_DESC& meta_struct = *data; + Bool32ToJson(jdata["DepthEnable"], decoded_value.DepthEnable, options); + FieldToJson(jdata["DepthWriteMask"], decoded_value.DepthWriteMask, options); + FieldToJson(jdata["DepthFunc"], decoded_value.DepthFunc, options); + Bool32ToJson(jdata["StencilEnable"], decoded_value.StencilEnable, options); + FieldToJsonAsFixedWidthBinary(jdata["StencilReadMask"], decoded_value.StencilReadMask, options); + FieldToJsonAsFixedWidthBinary(jdata["StencilWriteMask"], decoded_value.StencilWriteMask, options); + FieldToJson(jdata["FrontFace"], meta_struct.FrontFace, options); + FieldToJson(jdata["BackFace"], meta_struct.BackFace, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_DEPTH_STENCIL_DESC1* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const D3D12_DEPTH_STENCIL_DESC1& decoded_value = *data->decoded_value; + const Decoded_D3D12_DEPTH_STENCIL_DESC1& meta_struct = *data; + Bool32ToJson(jdata["DepthEnable"], decoded_value.DepthEnable, options); + FieldToJson(jdata["DepthWriteMask"], decoded_value.DepthWriteMask, options); + FieldToJson(jdata["DepthFunc"], decoded_value.DepthFunc, options); + Bool32ToJson(jdata["StencilEnable"], decoded_value.StencilEnable, options); + FieldToJsonAsFixedWidthBinary(jdata["StencilReadMask"], decoded_value.StencilReadMask, options); + FieldToJsonAsFixedWidthBinary(jdata["StencilWriteMask"], decoded_value.StencilWriteMask, options); + FieldToJson(jdata["FrontFace"], meta_struct.FrontFace, options); + FieldToJson(jdata["BackFace"], meta_struct.BackFace, options); + Bool32ToJson(jdata["DepthBoundsTestEnable"], decoded_value.DepthBoundsTestEnable, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_DEPTH_STENCILOP_DESC1* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const D3D12_DEPTH_STENCILOP_DESC1& decoded_value = *data->decoded_value; + const Decoded_D3D12_DEPTH_STENCILOP_DESC1& meta_struct = *data; + FieldToJson(jdata["StencilFailOp"], decoded_value.StencilFailOp, options); + FieldToJson(jdata["StencilDepthFailOp"], decoded_value.StencilDepthFailOp, options); + FieldToJson(jdata["StencilPassOp"], decoded_value.StencilPassOp, options); + FieldToJson(jdata["StencilFunc"], decoded_value.StencilFunc, options); + FieldToJsonAsFixedWidthBinary(jdata["StencilReadMask"], decoded_value.StencilReadMask, options); + FieldToJsonAsFixedWidthBinary(jdata["StencilWriteMask"], decoded_value.StencilWriteMask, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_DEPTH_STENCIL_DESC2* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const D3D12_DEPTH_STENCIL_DESC2& decoded_value = *data->decoded_value; + const Decoded_D3D12_DEPTH_STENCIL_DESC2& meta_struct = *data; + Bool32ToJson(jdata["DepthEnable"], decoded_value.DepthEnable, options); + FieldToJson(jdata["DepthWriteMask"], decoded_value.DepthWriteMask, options); + FieldToJson(jdata["DepthFunc"], decoded_value.DepthFunc, options); + Bool32ToJson(jdata["StencilEnable"], decoded_value.StencilEnable, options); + FieldToJson(jdata["FrontFace"], meta_struct.FrontFace, options); + FieldToJson(jdata["BackFace"], meta_struct.BackFace, options); + Bool32ToJson(jdata["DepthBoundsTestEnable"], decoded_value.DepthBoundsTestEnable, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_RENDER_TARGET_BLEND_DESC* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const D3D12_RENDER_TARGET_BLEND_DESC& decoded_value = *data->decoded_value; + const Decoded_D3D12_RENDER_TARGET_BLEND_DESC& meta_struct = *data; + Bool32ToJson(jdata["BlendEnable"], decoded_value.BlendEnable, options); + Bool32ToJson(jdata["LogicOpEnable"], decoded_value.LogicOpEnable, options); + FieldToJson(jdata["SrcBlend"], decoded_value.SrcBlend, options); + FieldToJson(jdata["DestBlend"], decoded_value.DestBlend, options); + FieldToJson(jdata["BlendOp"], decoded_value.BlendOp, options); + FieldToJson(jdata["SrcBlendAlpha"], decoded_value.SrcBlendAlpha, options); + FieldToJson(jdata["DestBlendAlpha"], decoded_value.DestBlendAlpha, options); + FieldToJson(jdata["BlendOpAlpha"], decoded_value.BlendOpAlpha, options); + FieldToJson(jdata["LogicOp"], decoded_value.LogicOp, options); + FieldToJsonAsFixedWidthBinary(jdata["RenderTargetWriteMask"], decoded_value.RenderTargetWriteMask, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_BLEND_DESC* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const D3D12_BLEND_DESC& decoded_value = *data->decoded_value; + const Decoded_D3D12_BLEND_DESC& meta_struct = *data; + Bool32ToJson(jdata["AlphaToCoverageEnable"], decoded_value.AlphaToCoverageEnable, options); + Bool32ToJson(jdata["IndependentBlendEnable"], decoded_value.IndependentBlendEnable, options); + FieldToJson(jdata["RenderTarget"], meta_struct.RenderTarget, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_RASTERIZER_DESC* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const D3D12_RASTERIZER_DESC& decoded_value = *data->decoded_value; + const Decoded_D3D12_RASTERIZER_DESC& meta_struct = *data; + FieldToJson(jdata["FillMode"], decoded_value.FillMode, options); + FieldToJson(jdata["CullMode"], decoded_value.CullMode, options); + Bool32ToJson(jdata["FrontCounterClockwise"], decoded_value.FrontCounterClockwise, options); + FieldToJson(jdata["DepthBias"], decoded_value.DepthBias, options); + FieldToJson(jdata["DepthBiasClamp"], decoded_value.DepthBiasClamp, options); + FieldToJson(jdata["SlopeScaledDepthBias"], decoded_value.SlopeScaledDepthBias, options); + Bool32ToJson(jdata["DepthClipEnable"], decoded_value.DepthClipEnable, options); + Bool32ToJson(jdata["MultisampleEnable"], decoded_value.MultisampleEnable, options); + Bool32ToJson(jdata["AntialiasedLineEnable"], decoded_value.AntialiasedLineEnable, options); + FieldToJson(jdata["ForcedSampleCount"], decoded_value.ForcedSampleCount, options); + FieldToJson(jdata["ConservativeRaster"], decoded_value.ConservativeRaster, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_RASTERIZER_DESC1* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const D3D12_RASTERIZER_DESC1& decoded_value = *data->decoded_value; + const Decoded_D3D12_RASTERIZER_DESC1& meta_struct = *data; + FieldToJson(jdata["FillMode"], decoded_value.FillMode, options); + FieldToJson(jdata["CullMode"], decoded_value.CullMode, options); + Bool32ToJson(jdata["FrontCounterClockwise"], decoded_value.FrontCounterClockwise, options); + FieldToJson(jdata["DepthBias"], decoded_value.DepthBias, options); + FieldToJson(jdata["DepthBiasClamp"], decoded_value.DepthBiasClamp, options); + FieldToJson(jdata["SlopeScaledDepthBias"], decoded_value.SlopeScaledDepthBias, options); + Bool32ToJson(jdata["DepthClipEnable"], decoded_value.DepthClipEnable, options); + Bool32ToJson(jdata["MultisampleEnable"], decoded_value.MultisampleEnable, options); + Bool32ToJson(jdata["AntialiasedLineEnable"], decoded_value.AntialiasedLineEnable, options); + FieldToJson(jdata["ForcedSampleCount"], decoded_value.ForcedSampleCount, options); + FieldToJson(jdata["ConservativeRaster"], decoded_value.ConservativeRaster, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_RASTERIZER_DESC2* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const D3D12_RASTERIZER_DESC2& decoded_value = *data->decoded_value; + const Decoded_D3D12_RASTERIZER_DESC2& meta_struct = *data; + FieldToJson(jdata["FillMode"], decoded_value.FillMode, options); + FieldToJson(jdata["CullMode"], decoded_value.CullMode, options); + Bool32ToJson(jdata["FrontCounterClockwise"], decoded_value.FrontCounterClockwise, options); + FieldToJson(jdata["DepthBias"], decoded_value.DepthBias, options); + FieldToJson(jdata["DepthBiasClamp"], decoded_value.DepthBiasClamp, options); + FieldToJson(jdata["SlopeScaledDepthBias"], decoded_value.SlopeScaledDepthBias, options); + Bool32ToJson(jdata["DepthClipEnable"], decoded_value.DepthClipEnable, options); + FieldToJson(jdata["LineRasterizationMode"], decoded_value.LineRasterizationMode, options); + FieldToJson(jdata["ForcedSampleCount"], decoded_value.ForcedSampleCount, options); + FieldToJson(jdata["ConservativeRaster"], decoded_value.ConservativeRaster, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_SHADER_BYTECODE* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const D3D12_SHADER_BYTECODE& decoded_value = *data->decoded_value; + const Decoded_D3D12_SHADER_BYTECODE& meta_struct = *data; + static thread_local uint64_t D3D12_SHADER_BYTECODE_pShaderBytecode_counter{ 0 }; + const bool written = RepresentBinaryFile(options, jdata["pShaderBytecode"], "D3D12_SHADER_BYTECODE.pShaderBytecode", D3D12_SHADER_BYTECODE_pShaderBytecode_counter, meta_struct.pShaderBytecode); + D3D12_SHADER_BYTECODE_pShaderBytecode_counter += written; + + FieldToJson(jdata["BytecodeLength"], decoded_value.BytecodeLength, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_STREAM_OUTPUT_DESC* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const D3D12_STREAM_OUTPUT_DESC& decoded_value = *data->decoded_value; + const Decoded_D3D12_STREAM_OUTPUT_DESC& meta_struct = *data; + FieldToJson(jdata["pSODeclaration"], meta_struct.pSODeclaration, options); + FieldToJson(jdata["NumEntries"], decoded_value.NumEntries, options); + FieldToJson(jdata["pBufferStrides"], meta_struct.pBufferStrides, options); + FieldToJson(jdata["NumStrides"], decoded_value.NumStrides, options); + FieldToJson(jdata["RasterizedStream"], decoded_value.RasterizedStream, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_INPUT_LAYOUT_DESC* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const D3D12_INPUT_LAYOUT_DESC& decoded_value = *data->decoded_value; + const Decoded_D3D12_INPUT_LAYOUT_DESC& meta_struct = *data; + FieldToJson(jdata["pInputElementDescs"], meta_struct.pInputElementDescs, options); + FieldToJson(jdata["NumElements"], decoded_value.NumElements, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_CACHED_PIPELINE_STATE* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const D3D12_CACHED_PIPELINE_STATE& decoded_value = *data->decoded_value; + const Decoded_D3D12_CACHED_PIPELINE_STATE& meta_struct = *data; + FieldToJson(jdata["pCachedBlob"], meta_struct.pCachedBlob, options); + FieldToJson(jdata["CachedBlobSizeInBytes"], decoded_value.CachedBlobSizeInBytes, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_GRAPHICS_PIPELINE_STATE_DESC* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const D3D12_GRAPHICS_PIPELINE_STATE_DESC& decoded_value = *data->decoded_value; + const Decoded_D3D12_GRAPHICS_PIPELINE_STATE_DESC& meta_struct = *data; + FieldToJson(jdata["pRootSignature"], meta_struct.pRootSignature, options); + FieldToJson(jdata["VS"], meta_struct.VS, options); + FieldToJson(jdata["PS"], meta_struct.PS, options); + FieldToJson(jdata["DS"], meta_struct.DS, options); + FieldToJson(jdata["HS"], meta_struct.HS, options); + FieldToJson(jdata["GS"], meta_struct.GS, options); + FieldToJson(jdata["StreamOutput"], meta_struct.StreamOutput, options); + FieldToJson(jdata["BlendState"], meta_struct.BlendState, options); + FieldToJsonAsFixedWidthBinary(jdata["SampleMask"], decoded_value.SampleMask, options); + FieldToJson(jdata["RasterizerState"], meta_struct.RasterizerState, options); + FieldToJson(jdata["DepthStencilState"], meta_struct.DepthStencilState, options); + FieldToJson(jdata["InputLayout"], meta_struct.InputLayout, options); + FieldToJson(jdata["IBStripCutValue"], decoded_value.IBStripCutValue, options); + FieldToJson(jdata["PrimitiveTopologyType"], decoded_value.PrimitiveTopologyType, options); + FieldToJson(jdata["NumRenderTargets"], decoded_value.NumRenderTargets, options); + FieldToJson(jdata["RTVFormats"], meta_struct.RTVFormats, options); + FieldToJson(jdata["DSVFormat"], decoded_value.DSVFormat, options); + FieldToJson(jdata["SampleDesc"], meta_struct.SampleDesc, options); + FieldToJsonAsFixedWidthBinary(jdata["NodeMask"], decoded_value.NodeMask, options); + FieldToJson(jdata["CachedPSO"], meta_struct.CachedPSO, options); + FieldToJson_D3D12_PIPELINE_STATE_FLAGS(jdata["Flags"], decoded_value.Flags, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_COMPUTE_PIPELINE_STATE_DESC* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const D3D12_COMPUTE_PIPELINE_STATE_DESC& decoded_value = *data->decoded_value; + const Decoded_D3D12_COMPUTE_PIPELINE_STATE_DESC& meta_struct = *data; + FieldToJson(jdata["pRootSignature"], meta_struct.pRootSignature, options); + FieldToJson(jdata["CS"], meta_struct.CS, options); + FieldToJsonAsFixedWidthBinary(jdata["NodeMask"], decoded_value.NodeMask, options); + FieldToJson(jdata["CachedPSO"], meta_struct.CachedPSO, options); + FieldToJson_D3D12_PIPELINE_STATE_FLAGS(jdata["Flags"], decoded_value.Flags, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_RT_FORMAT_ARRAY* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const D3D12_RT_FORMAT_ARRAY& decoded_value = *data->decoded_value; + const Decoded_D3D12_RT_FORMAT_ARRAY& meta_struct = *data; + FieldToJson(jdata["RTFormats"], meta_struct.RTFormats, options); + FieldToJson(jdata["NumRenderTargets"], decoded_value.NumRenderTargets, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_FEATURE_DATA_D3D12_OPTIONS* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const D3D12_FEATURE_DATA_D3D12_OPTIONS& decoded_value = *data->decoded_value; + const Decoded_D3D12_FEATURE_DATA_D3D12_OPTIONS& meta_struct = *data; + Bool32ToJson(jdata["DoublePrecisionFloatShaderOps"], decoded_value.DoublePrecisionFloatShaderOps, options); + Bool32ToJson(jdata["OutputMergerLogicOp"], decoded_value.OutputMergerLogicOp, options); + FieldToJson_D3D12_SHADER_MIN_PRECISION_SUPPORT(jdata["MinPrecisionSupport"], decoded_value.MinPrecisionSupport, options); + FieldToJson(jdata["TiledResourcesTier"], decoded_value.TiledResourcesTier, options); + FieldToJson(jdata["ResourceBindingTier"], decoded_value.ResourceBindingTier, options); + Bool32ToJson(jdata["PSSpecifiedStencilRefSupported"], decoded_value.PSSpecifiedStencilRefSupported, options); + Bool32ToJson(jdata["TypedUAVLoadAdditionalFormats"], decoded_value.TypedUAVLoadAdditionalFormats, options); + Bool32ToJson(jdata["ROVsSupported"], decoded_value.ROVsSupported, options); + FieldToJson(jdata["ConservativeRasterizationTier"], decoded_value.ConservativeRasterizationTier, options); + FieldToJson(jdata["MaxGPUVirtualAddressBitsPerResource"], decoded_value.MaxGPUVirtualAddressBitsPerResource, options); + Bool32ToJson(jdata["StandardSwizzle64KBSupported"], decoded_value.StandardSwizzle64KBSupported, options); + FieldToJson(jdata["CrossNodeSharingTier"], decoded_value.CrossNodeSharingTier, options); + Bool32ToJson(jdata["CrossAdapterRowMajorTextureSupported"], decoded_value.CrossAdapterRowMajorTextureSupported, options); + Bool32ToJson(jdata["VPAndRTArrayIndexFromAnyShaderFeedingRasterizerSupportedWithoutGSEmulation"], decoded_value.VPAndRTArrayIndexFromAnyShaderFeedingRasterizerSupportedWithoutGSEmulation, options); + FieldToJson(jdata["ResourceHeapTier"], decoded_value.ResourceHeapTier, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_FEATURE_DATA_D3D12_OPTIONS1* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const D3D12_FEATURE_DATA_D3D12_OPTIONS1& decoded_value = *data->decoded_value; + const Decoded_D3D12_FEATURE_DATA_D3D12_OPTIONS1& meta_struct = *data; + Bool32ToJson(jdata["WaveOps"], decoded_value.WaveOps, options); + FieldToJson(jdata["WaveLaneCountMin"], decoded_value.WaveLaneCountMin, options); + FieldToJson(jdata["WaveLaneCountMax"], decoded_value.WaveLaneCountMax, options); + FieldToJson(jdata["TotalLaneCount"], decoded_value.TotalLaneCount, options); + Bool32ToJson(jdata["ExpandedComputeResourceStates"], decoded_value.ExpandedComputeResourceStates, options); + Bool32ToJson(jdata["Int64ShaderOps"], decoded_value.Int64ShaderOps, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_FEATURE_DATA_D3D12_OPTIONS2* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const D3D12_FEATURE_DATA_D3D12_OPTIONS2& decoded_value = *data->decoded_value; + const Decoded_D3D12_FEATURE_DATA_D3D12_OPTIONS2& meta_struct = *data; + Bool32ToJson(jdata["DepthBoundsTestSupported"], decoded_value.DepthBoundsTestSupported, options); + FieldToJson(jdata["ProgrammableSamplePositionsTier"], decoded_value.ProgrammableSamplePositionsTier, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_FEATURE_DATA_ROOT_SIGNATURE* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const D3D12_FEATURE_DATA_ROOT_SIGNATURE& decoded_value = *data->decoded_value; + const Decoded_D3D12_FEATURE_DATA_ROOT_SIGNATURE& meta_struct = *data; + FieldToJson(jdata["HighestVersion"], decoded_value.HighestVersion, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_FEATURE_DATA_ARCHITECTURE* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const D3D12_FEATURE_DATA_ARCHITECTURE& decoded_value = *data->decoded_value; + const Decoded_D3D12_FEATURE_DATA_ARCHITECTURE& meta_struct = *data; + FieldToJson(jdata["NodeIndex"], decoded_value.NodeIndex, options); + Bool32ToJson(jdata["TileBasedRenderer"], decoded_value.TileBasedRenderer, options); + Bool32ToJson(jdata["UMA"], decoded_value.UMA, options); + Bool32ToJson(jdata["CacheCoherentUMA"], decoded_value.CacheCoherentUMA, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_FEATURE_DATA_ARCHITECTURE1* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const D3D12_FEATURE_DATA_ARCHITECTURE1& decoded_value = *data->decoded_value; + const Decoded_D3D12_FEATURE_DATA_ARCHITECTURE1& meta_struct = *data; + FieldToJson(jdata["NodeIndex"], decoded_value.NodeIndex, options); + Bool32ToJson(jdata["TileBasedRenderer"], decoded_value.TileBasedRenderer, options); + Bool32ToJson(jdata["UMA"], decoded_value.UMA, options); + Bool32ToJson(jdata["CacheCoherentUMA"], decoded_value.CacheCoherentUMA, options); + Bool32ToJson(jdata["IsolatedMMU"], decoded_value.IsolatedMMU, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_FEATURE_DATA_FEATURE_LEVELS* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const D3D12_FEATURE_DATA_FEATURE_LEVELS& decoded_value = *data->decoded_value; + const Decoded_D3D12_FEATURE_DATA_FEATURE_LEVELS& meta_struct = *data; + FieldToJson(jdata["NumFeatureLevels"], decoded_value.NumFeatureLevels, options); + FieldToJson(jdata["pFeatureLevelsRequested"], meta_struct.pFeatureLevelsRequested, options); + FieldToJson(jdata["MaxSupportedFeatureLevel"], decoded_value.MaxSupportedFeatureLevel, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_FEATURE_DATA_SHADER_MODEL* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const D3D12_FEATURE_DATA_SHADER_MODEL& decoded_value = *data->decoded_value; + const Decoded_D3D12_FEATURE_DATA_SHADER_MODEL& meta_struct = *data; + FieldToJson(jdata["HighestShaderModel"], decoded_value.HighestShaderModel, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_FEATURE_DATA_FORMAT_SUPPORT* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const D3D12_FEATURE_DATA_FORMAT_SUPPORT& decoded_value = *data->decoded_value; + const Decoded_D3D12_FEATURE_DATA_FORMAT_SUPPORT& meta_struct = *data; + FieldToJson(jdata["Format"], decoded_value.Format, options); + FieldToJson_D3D12_FORMAT_SUPPORT1(jdata["Support1"], decoded_value.Support1, options); + FieldToJson_D3D12_FORMAT_SUPPORT2(jdata["Support2"], decoded_value.Support2, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_FEATURE_DATA_MULTISAMPLE_QUALITY_LEVELS* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const D3D12_FEATURE_DATA_MULTISAMPLE_QUALITY_LEVELS& decoded_value = *data->decoded_value; + const Decoded_D3D12_FEATURE_DATA_MULTISAMPLE_QUALITY_LEVELS& meta_struct = *data; + FieldToJson(jdata["Format"], decoded_value.Format, options); + FieldToJson(jdata["SampleCount"], decoded_value.SampleCount, options); + FieldToJson_D3D12_MULTISAMPLE_QUALITY_LEVEL_FLAGS(jdata["Flags"], decoded_value.Flags, options); + FieldToJson(jdata["NumQualityLevels"], decoded_value.NumQualityLevels, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_FEATURE_DATA_FORMAT_INFO* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const D3D12_FEATURE_DATA_FORMAT_INFO& decoded_value = *data->decoded_value; + const Decoded_D3D12_FEATURE_DATA_FORMAT_INFO& meta_struct = *data; + FieldToJson(jdata["Format"], decoded_value.Format, options); + FieldToJson(jdata["PlaneCount"], decoded_value.PlaneCount, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_FEATURE_DATA_GPU_VIRTUAL_ADDRESS_SUPPORT* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const D3D12_FEATURE_DATA_GPU_VIRTUAL_ADDRESS_SUPPORT& decoded_value = *data->decoded_value; + const Decoded_D3D12_FEATURE_DATA_GPU_VIRTUAL_ADDRESS_SUPPORT& meta_struct = *data; + FieldToJson(jdata["MaxGPUVirtualAddressBitsPerResource"], decoded_value.MaxGPUVirtualAddressBitsPerResource, options); + FieldToJson(jdata["MaxGPUVirtualAddressBitsPerProcess"], decoded_value.MaxGPUVirtualAddressBitsPerProcess, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_FEATURE_DATA_SHADER_CACHE* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const D3D12_FEATURE_DATA_SHADER_CACHE& decoded_value = *data->decoded_value; + const Decoded_D3D12_FEATURE_DATA_SHADER_CACHE& meta_struct = *data; + FieldToJson_D3D12_SHADER_CACHE_SUPPORT_FLAGS(jdata["SupportFlags"], decoded_value.SupportFlags, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_FEATURE_DATA_COMMAND_QUEUE_PRIORITY* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const D3D12_FEATURE_DATA_COMMAND_QUEUE_PRIORITY& decoded_value = *data->decoded_value; + const Decoded_D3D12_FEATURE_DATA_COMMAND_QUEUE_PRIORITY& meta_struct = *data; + FieldToJson(jdata["CommandListType"], decoded_value.CommandListType, options); + FieldToJson(jdata["Priority"], decoded_value.Priority, options); + Bool32ToJson(jdata["PriorityForTypeIsSupported"], decoded_value.PriorityForTypeIsSupported, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_FEATURE_DATA_D3D12_OPTIONS3* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const D3D12_FEATURE_DATA_D3D12_OPTIONS3& decoded_value = *data->decoded_value; + const Decoded_D3D12_FEATURE_DATA_D3D12_OPTIONS3& meta_struct = *data; + Bool32ToJson(jdata["CopyQueueTimestampQueriesSupported"], decoded_value.CopyQueueTimestampQueriesSupported, options); + Bool32ToJson(jdata["CastingFullyTypedFormatSupported"], decoded_value.CastingFullyTypedFormatSupported, options); + FieldToJson_D3D12_COMMAND_LIST_SUPPORT_FLAGS(jdata["WriteBufferImmediateSupportFlags"], decoded_value.WriteBufferImmediateSupportFlags, options); + FieldToJson(jdata["ViewInstancingTier"], decoded_value.ViewInstancingTier, options); + Bool32ToJson(jdata["BarycentricsSupported"], decoded_value.BarycentricsSupported, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_FEATURE_DATA_EXISTING_HEAPS* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const D3D12_FEATURE_DATA_EXISTING_HEAPS& decoded_value = *data->decoded_value; + const Decoded_D3D12_FEATURE_DATA_EXISTING_HEAPS& meta_struct = *data; + Bool32ToJson(jdata["Supported"], decoded_value.Supported, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_FEATURE_DATA_DISPLAYABLE* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const D3D12_FEATURE_DATA_DISPLAYABLE& decoded_value = *data->decoded_value; + const Decoded_D3D12_FEATURE_DATA_DISPLAYABLE& meta_struct = *data; + Bool32ToJson(jdata["DisplayableTexture"], decoded_value.DisplayableTexture, options); + FieldToJson(jdata["SharedResourceCompatibilityTier"], decoded_value.SharedResourceCompatibilityTier, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_FEATURE_DATA_D3D12_OPTIONS4* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const D3D12_FEATURE_DATA_D3D12_OPTIONS4& decoded_value = *data->decoded_value; + const Decoded_D3D12_FEATURE_DATA_D3D12_OPTIONS4& meta_struct = *data; + Bool32ToJson(jdata["MSAA64KBAlignedTextureSupported"], decoded_value.MSAA64KBAlignedTextureSupported, options); + FieldToJson(jdata["SharedResourceCompatibilityTier"], decoded_value.SharedResourceCompatibilityTier, options); + Bool32ToJson(jdata["Native16BitShaderOpsSupported"], decoded_value.Native16BitShaderOpsSupported, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_FEATURE_DATA_SERIALIZATION* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const D3D12_FEATURE_DATA_SERIALIZATION& decoded_value = *data->decoded_value; + const Decoded_D3D12_FEATURE_DATA_SERIALIZATION& meta_struct = *data; + FieldToJson(jdata["NodeIndex"], decoded_value.NodeIndex, options); + FieldToJson(jdata["HeapSerializationTier"], decoded_value.HeapSerializationTier, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_FEATURE_DATA_CROSS_NODE* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const D3D12_FEATURE_DATA_CROSS_NODE& decoded_value = *data->decoded_value; + const Decoded_D3D12_FEATURE_DATA_CROSS_NODE& meta_struct = *data; + FieldToJson(jdata["SharingTier"], decoded_value.SharingTier, options); + Bool32ToJson(jdata["AtomicShaderInstructions"], decoded_value.AtomicShaderInstructions, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_FEATURE_DATA_D3D12_OPTIONS5* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const D3D12_FEATURE_DATA_D3D12_OPTIONS5& decoded_value = *data->decoded_value; + const Decoded_D3D12_FEATURE_DATA_D3D12_OPTIONS5& meta_struct = *data; + Bool32ToJson(jdata["SRVOnlyTiledResourceTier3"], decoded_value.SRVOnlyTiledResourceTier3, options); + FieldToJson(jdata["RenderPassesTier"], decoded_value.RenderPassesTier, options); + FieldToJson(jdata["RaytracingTier"], decoded_value.RaytracingTier, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_FEATURE_DATA_D3D12_OPTIONS6* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const D3D12_FEATURE_DATA_D3D12_OPTIONS6& decoded_value = *data->decoded_value; + const Decoded_D3D12_FEATURE_DATA_D3D12_OPTIONS6& meta_struct = *data; + Bool32ToJson(jdata["AdditionalShadingRatesSupported"], decoded_value.AdditionalShadingRatesSupported, options); + Bool32ToJson(jdata["PerPrimitiveShadingRateSupportedWithViewportIndexing"], decoded_value.PerPrimitiveShadingRateSupportedWithViewportIndexing, options); + FieldToJson(jdata["VariableShadingRateTier"], decoded_value.VariableShadingRateTier, options); + FieldToJson(jdata["ShadingRateImageTileSize"], decoded_value.ShadingRateImageTileSize, options); + Bool32ToJson(jdata["BackgroundProcessingSupported"], decoded_value.BackgroundProcessingSupported, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_FEATURE_DATA_D3D12_OPTIONS7* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const D3D12_FEATURE_DATA_D3D12_OPTIONS7& decoded_value = *data->decoded_value; + const Decoded_D3D12_FEATURE_DATA_D3D12_OPTIONS7& meta_struct = *data; + FieldToJson(jdata["MeshShaderTier"], decoded_value.MeshShaderTier, options); + FieldToJson(jdata["SamplerFeedbackTier"], decoded_value.SamplerFeedbackTier, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_FEATURE_DATA_QUERY_META_COMMAND* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const D3D12_FEATURE_DATA_QUERY_META_COMMAND& decoded_value = *data->decoded_value; + const Decoded_D3D12_FEATURE_DATA_QUERY_META_COMMAND& meta_struct = *data; + FieldToJson(jdata["CommandId"], meta_struct.CommandId, options); + FieldToJsonAsFixedWidthBinary(jdata["NodeMask"], decoded_value.NodeMask, options); + FieldToJson(jdata["pQueryInputData"], meta_struct.pQueryInputData, options); + FieldToJson(jdata["QueryInputDataSizeInBytes"], decoded_value.QueryInputDataSizeInBytes, options); + FieldToJson(jdata["pQueryOutputData"], meta_struct.pQueryOutputData, options); + FieldToJson(jdata["QueryOutputDataSizeInBytes"], decoded_value.QueryOutputDataSizeInBytes, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_FEATURE_DATA_D3D12_OPTIONS8* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const D3D12_FEATURE_DATA_D3D12_OPTIONS8& decoded_value = *data->decoded_value; + const Decoded_D3D12_FEATURE_DATA_D3D12_OPTIONS8& meta_struct = *data; + Bool32ToJson(jdata["UnalignedBlockTexturesSupported"], decoded_value.UnalignedBlockTexturesSupported, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_FEATURE_DATA_D3D12_OPTIONS9* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const D3D12_FEATURE_DATA_D3D12_OPTIONS9& decoded_value = *data->decoded_value; + const Decoded_D3D12_FEATURE_DATA_D3D12_OPTIONS9& meta_struct = *data; + Bool32ToJson(jdata["MeshShaderPipelineStatsSupported"], decoded_value.MeshShaderPipelineStatsSupported, options); + Bool32ToJson(jdata["MeshShaderSupportsFullRangeRenderTargetArrayIndex"], decoded_value.MeshShaderSupportsFullRangeRenderTargetArrayIndex, options); + Bool32ToJson(jdata["AtomicInt64OnTypedResourceSupported"], decoded_value.AtomicInt64OnTypedResourceSupported, options); + Bool32ToJson(jdata["AtomicInt64OnGroupSharedSupported"], decoded_value.AtomicInt64OnGroupSharedSupported, options); + Bool32ToJson(jdata["DerivativesInMeshAndAmplificationShadersSupported"], decoded_value.DerivativesInMeshAndAmplificationShadersSupported, options); + FieldToJson(jdata["WaveMMATier"], decoded_value.WaveMMATier, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_FEATURE_DATA_D3D12_OPTIONS10* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const D3D12_FEATURE_DATA_D3D12_OPTIONS10& decoded_value = *data->decoded_value; + const Decoded_D3D12_FEATURE_DATA_D3D12_OPTIONS10& meta_struct = *data; + Bool32ToJson(jdata["VariableRateShadingSumCombinerSupported"], decoded_value.VariableRateShadingSumCombinerSupported, options); + Bool32ToJson(jdata["MeshShaderPerPrimitiveShadingRateSupported"], decoded_value.MeshShaderPerPrimitiveShadingRateSupported, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_FEATURE_DATA_D3D12_OPTIONS11* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const D3D12_FEATURE_DATA_D3D12_OPTIONS11& decoded_value = *data->decoded_value; + const Decoded_D3D12_FEATURE_DATA_D3D12_OPTIONS11& meta_struct = *data; + Bool32ToJson(jdata["AtomicInt64OnDescriptorHeapResourceSupported"], decoded_value.AtomicInt64OnDescriptorHeapResourceSupported, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_FEATURE_DATA_D3D12_OPTIONS12* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const D3D12_FEATURE_DATA_D3D12_OPTIONS12& decoded_value = *data->decoded_value; + const Decoded_D3D12_FEATURE_DATA_D3D12_OPTIONS12& meta_struct = *data; + FieldToJson(jdata["MSPrimitivesPipelineStatisticIncludesCulledPrimitives"], decoded_value.MSPrimitivesPipelineStatisticIncludesCulledPrimitives, options); + Bool32ToJson(jdata["EnhancedBarriersSupported"], decoded_value.EnhancedBarriersSupported, options); + Bool32ToJson(jdata["RelaxedFormatCastingSupported"], decoded_value.RelaxedFormatCastingSupported, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_FEATURE_DATA_D3D12_OPTIONS13* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const D3D12_FEATURE_DATA_D3D12_OPTIONS13& decoded_value = *data->decoded_value; + const Decoded_D3D12_FEATURE_DATA_D3D12_OPTIONS13& meta_struct = *data; + Bool32ToJson(jdata["UnrestrictedBufferTextureCopyPitchSupported"], decoded_value.UnrestrictedBufferTextureCopyPitchSupported, options); + Bool32ToJson(jdata["UnrestrictedVertexElementAlignmentSupported"], decoded_value.UnrestrictedVertexElementAlignmentSupported, options); + Bool32ToJson(jdata["InvertedViewportHeightFlipsYSupported"], decoded_value.InvertedViewportHeightFlipsYSupported, options); + Bool32ToJson(jdata["InvertedViewportDepthFlipsZSupported"], decoded_value.InvertedViewportDepthFlipsZSupported, options); + Bool32ToJson(jdata["TextureCopyBetweenDimensionsSupported"], decoded_value.TextureCopyBetweenDimensionsSupported, options); + Bool32ToJson(jdata["AlphaBlendFactorSupported"], decoded_value.AlphaBlendFactorSupported, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_FEATURE_DATA_D3D12_OPTIONS14* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const D3D12_FEATURE_DATA_D3D12_OPTIONS14& decoded_value = *data->decoded_value; + const Decoded_D3D12_FEATURE_DATA_D3D12_OPTIONS14& meta_struct = *data; + Bool32ToJson(jdata["AdvancedTextureOpsSupported"], decoded_value.AdvancedTextureOpsSupported, options); + Bool32ToJson(jdata["WriteableMSAATexturesSupported"], decoded_value.WriteableMSAATexturesSupported, options); + Bool32ToJson(jdata["IndependentFrontAndBackStencilRefMaskSupported"], decoded_value.IndependentFrontAndBackStencilRefMaskSupported, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_FEATURE_DATA_D3D12_OPTIONS15* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const D3D12_FEATURE_DATA_D3D12_OPTIONS15& decoded_value = *data->decoded_value; + const Decoded_D3D12_FEATURE_DATA_D3D12_OPTIONS15& meta_struct = *data; + Bool32ToJson(jdata["TriangleFanSupported"], decoded_value.TriangleFanSupported, options); + Bool32ToJson(jdata["DynamicIndexBufferStripCutSupported"], decoded_value.DynamicIndexBufferStripCutSupported, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_FEATURE_DATA_D3D12_OPTIONS16* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const D3D12_FEATURE_DATA_D3D12_OPTIONS16& decoded_value = *data->decoded_value; + const Decoded_D3D12_FEATURE_DATA_D3D12_OPTIONS16& meta_struct = *data; + Bool32ToJson(jdata["DynamicDepthBiasSupported"], decoded_value.DynamicDepthBiasSupported, options); + Bool32ToJson(jdata["GPUUploadHeapSupported"], decoded_value.GPUUploadHeapSupported, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_FEATURE_DATA_D3D12_OPTIONS17* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const D3D12_FEATURE_DATA_D3D12_OPTIONS17& decoded_value = *data->decoded_value; + const Decoded_D3D12_FEATURE_DATA_D3D12_OPTIONS17& meta_struct = *data; + Bool32ToJson(jdata["NonNormalizedCoordinateSamplersSupported"], decoded_value.NonNormalizedCoordinateSamplersSupported, options); + Bool32ToJson(jdata["ManualWriteTrackingResourceSupported"], decoded_value.ManualWriteTrackingResourceSupported, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_FEATURE_DATA_D3D12_OPTIONS18* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const D3D12_FEATURE_DATA_D3D12_OPTIONS18& decoded_value = *data->decoded_value; + const Decoded_D3D12_FEATURE_DATA_D3D12_OPTIONS18& meta_struct = *data; + Bool32ToJson(jdata["RenderPassesValid"], decoded_value.RenderPassesValid, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_FEATURE_DATA_D3D12_OPTIONS19* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const D3D12_FEATURE_DATA_D3D12_OPTIONS19& decoded_value = *data->decoded_value; + const Decoded_D3D12_FEATURE_DATA_D3D12_OPTIONS19& meta_struct = *data; + Bool32ToJson(jdata["MismatchingOutputDimensionsSupported"], decoded_value.MismatchingOutputDimensionsSupported, options); + FieldToJson(jdata["SupportedSampleCountsWithNoOutputs"], decoded_value.SupportedSampleCountsWithNoOutputs, options); + Bool32ToJson(jdata["PointSamplingAddressesNeverRoundUp"], decoded_value.PointSamplingAddressesNeverRoundUp, options); + Bool32ToJson(jdata["RasterizerDesc2Supported"], decoded_value.RasterizerDesc2Supported, options); + Bool32ToJson(jdata["NarrowQuadrilateralLinesSupported"], decoded_value.NarrowQuadrilateralLinesSupported, options); + Bool32ToJson(jdata["AnisoFilterWithPointMipSupported"], decoded_value.AnisoFilterWithPointMipSupported, options); + FieldToJson(jdata["MaxSamplerDescriptorHeapSize"], decoded_value.MaxSamplerDescriptorHeapSize, options); + FieldToJson(jdata["MaxSamplerDescriptorHeapSizeWithStaticSamplers"], decoded_value.MaxSamplerDescriptorHeapSizeWithStaticSamplers, options); + FieldToJson(jdata["MaxViewDescriptorHeapSize"], decoded_value.MaxViewDescriptorHeapSize, options); + Bool32ToJson(jdata["ComputeOnlyCustomHeapSupported"], decoded_value.ComputeOnlyCustomHeapSupported, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_RESOURCE_ALLOCATION_INFO* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const D3D12_RESOURCE_ALLOCATION_INFO& decoded_value = *data->decoded_value; + const Decoded_D3D12_RESOURCE_ALLOCATION_INFO& meta_struct = *data; + FieldToJson(jdata["SizeInBytes"], decoded_value.SizeInBytes, options); + FieldToJson(jdata["Alignment"], decoded_value.Alignment, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_RESOURCE_ALLOCATION_INFO1* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const D3D12_RESOURCE_ALLOCATION_INFO1& decoded_value = *data->decoded_value; + const Decoded_D3D12_RESOURCE_ALLOCATION_INFO1& meta_struct = *data; + FieldToJson(jdata["Offset"], decoded_value.Offset, options); + FieldToJson(jdata["Alignment"], decoded_value.Alignment, options); + FieldToJson(jdata["SizeInBytes"], decoded_value.SizeInBytes, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_HEAP_PROPERTIES* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const D3D12_HEAP_PROPERTIES& decoded_value = *data->decoded_value; + const Decoded_D3D12_HEAP_PROPERTIES& meta_struct = *data; + FieldToJson(jdata["Type"], decoded_value.Type, options); + FieldToJson(jdata["CPUPageProperty"], decoded_value.CPUPageProperty, options); + FieldToJson(jdata["MemoryPoolPreference"], decoded_value.MemoryPoolPreference, options); + FieldToJsonAsFixedWidthBinary(jdata["CreationNodeMask"], decoded_value.CreationNodeMask, options); + FieldToJsonAsFixedWidthBinary(jdata["VisibleNodeMask"], decoded_value.VisibleNodeMask, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_HEAP_DESC* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const D3D12_HEAP_DESC& decoded_value = *data->decoded_value; + const Decoded_D3D12_HEAP_DESC& meta_struct = *data; + FieldToJson(jdata["SizeInBytes"], decoded_value.SizeInBytes, options); + FieldToJson(jdata["Properties"], meta_struct.Properties, options); + FieldToJson(jdata["Alignment"], decoded_value.Alignment, options); + FieldToJson_D3D12_HEAP_FLAGS(jdata["Flags"], decoded_value.Flags, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_MIP_REGION* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const D3D12_MIP_REGION& decoded_value = *data->decoded_value; + const Decoded_D3D12_MIP_REGION& meta_struct = *data; + FieldToJson(jdata["Width"], decoded_value.Width, options); + FieldToJson(jdata["Height"], decoded_value.Height, options); + FieldToJson(jdata["Depth"], decoded_value.Depth, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_RESOURCE_DESC* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const D3D12_RESOURCE_DESC& decoded_value = *data->decoded_value; + const Decoded_D3D12_RESOURCE_DESC& meta_struct = *data; + FieldToJson(jdata["Dimension"], decoded_value.Dimension, options); + FieldToJson(jdata["Alignment"], decoded_value.Alignment, options); + FieldToJson(jdata["Width"], decoded_value.Width, options); + FieldToJson(jdata["Height"], decoded_value.Height, options); + FieldToJson(jdata["DepthOrArraySize"], decoded_value.DepthOrArraySize, options); + FieldToJson(jdata["MipLevels"], decoded_value.MipLevels, options); + FieldToJson(jdata["Format"], decoded_value.Format, options); + FieldToJson(jdata["SampleDesc"], meta_struct.SampleDesc, options); + FieldToJson(jdata["Layout"], decoded_value.Layout, options); + FieldToJson_D3D12_RESOURCE_FLAGS(jdata["Flags"], decoded_value.Flags, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_RESOURCE_DESC1* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const D3D12_RESOURCE_DESC1& decoded_value = *data->decoded_value; + const Decoded_D3D12_RESOURCE_DESC1& meta_struct = *data; + FieldToJson(jdata["Dimension"], decoded_value.Dimension, options); + FieldToJson(jdata["Alignment"], decoded_value.Alignment, options); + FieldToJson(jdata["Width"], decoded_value.Width, options); + FieldToJson(jdata["Height"], decoded_value.Height, options); + FieldToJson(jdata["DepthOrArraySize"], decoded_value.DepthOrArraySize, options); + FieldToJson(jdata["MipLevels"], decoded_value.MipLevels, options); + FieldToJson(jdata["Format"], decoded_value.Format, options); + FieldToJson(jdata["SampleDesc"], meta_struct.SampleDesc, options); + FieldToJson(jdata["Layout"], decoded_value.Layout, options); + FieldToJson_D3D12_RESOURCE_FLAGS(jdata["Flags"], decoded_value.Flags, options); + FieldToJson(jdata["SamplerFeedbackMipRegion"], meta_struct.SamplerFeedbackMipRegion, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_DEPTH_STENCIL_VALUE* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const D3D12_DEPTH_STENCIL_VALUE& decoded_value = *data->decoded_value; + const Decoded_D3D12_DEPTH_STENCIL_VALUE& meta_struct = *data; + FieldToJson(jdata["Depth"], decoded_value.Depth, options); + FieldToJson(jdata["Stencil"], decoded_value.Stencil, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_CLEAR_VALUE* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const D3D12_CLEAR_VALUE& decoded_value = *data->decoded_value; + const Decoded_D3D12_CLEAR_VALUE& meta_struct = *data; + FieldToJson(jdata["Format"], decoded_value.Format, options); + if(graphics::dx12::IsDepthStencilFormat(decoded_value.Format)) + { + FieldToJson(jdata["DepthStencil"], decoded_value.DepthStencil, options); + } + else + { + FieldToJson(jdata["Color"], decoded_value.Color, options); + } + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_RANGE* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const D3D12_RANGE& decoded_value = *data->decoded_value; + const Decoded_D3D12_RANGE& meta_struct = *data; + FieldToJson(jdata["Begin"], decoded_value.Begin, options); + FieldToJson(jdata["End"], decoded_value.End, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_RANGE_UINT64* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const D3D12_RANGE_UINT64& decoded_value = *data->decoded_value; + const Decoded_D3D12_RANGE_UINT64& meta_struct = *data; + FieldToJson(jdata["Begin"], decoded_value.Begin, options); + FieldToJson(jdata["End"], decoded_value.End, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_SUBRESOURCE_RANGE_UINT64* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const D3D12_SUBRESOURCE_RANGE_UINT64& decoded_value = *data->decoded_value; + const Decoded_D3D12_SUBRESOURCE_RANGE_UINT64& meta_struct = *data; + FieldToJson(jdata["Subresource"], decoded_value.Subresource, options); + FieldToJson(jdata["Range"], meta_struct.Range, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_SUBRESOURCE_INFO* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const D3D12_SUBRESOURCE_INFO& decoded_value = *data->decoded_value; + const Decoded_D3D12_SUBRESOURCE_INFO& meta_struct = *data; + FieldToJson(jdata["Offset"], decoded_value.Offset, options); + FieldToJson(jdata["RowPitch"], decoded_value.RowPitch, options); + FieldToJson(jdata["DepthPitch"], decoded_value.DepthPitch, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_TILED_RESOURCE_COORDINATE* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const D3D12_TILED_RESOURCE_COORDINATE& decoded_value = *data->decoded_value; + const Decoded_D3D12_TILED_RESOURCE_COORDINATE& meta_struct = *data; + FieldToJson(jdata["X"], decoded_value.X, options); + FieldToJson(jdata["Y"], decoded_value.Y, options); + FieldToJson(jdata["Z"], decoded_value.Z, options); + FieldToJson(jdata["Subresource"], decoded_value.Subresource, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_TILE_REGION_SIZE* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const D3D12_TILE_REGION_SIZE& decoded_value = *data->decoded_value; + const Decoded_D3D12_TILE_REGION_SIZE& meta_struct = *data; + FieldToJson(jdata["NumTiles"], decoded_value.NumTiles, options); + Bool32ToJson(jdata["UseBox"], decoded_value.UseBox, options); + FieldToJson(jdata["Width"], decoded_value.Width, options); + FieldToJson(jdata["Height"], decoded_value.Height, options); + FieldToJson(jdata["Depth"], decoded_value.Depth, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_SUBRESOURCE_TILING* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const D3D12_SUBRESOURCE_TILING& decoded_value = *data->decoded_value; + const Decoded_D3D12_SUBRESOURCE_TILING& meta_struct = *data; + FieldToJson(jdata["WidthInTiles"], decoded_value.WidthInTiles, options); + FieldToJson(jdata["HeightInTiles"], decoded_value.HeightInTiles, options); + FieldToJson(jdata["DepthInTiles"], decoded_value.DepthInTiles, options); + FieldToJson(jdata["StartTileIndexInOverallResource"], decoded_value.StartTileIndexInOverallResource, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_TILE_SHAPE* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const D3D12_TILE_SHAPE& decoded_value = *data->decoded_value; + const Decoded_D3D12_TILE_SHAPE& meta_struct = *data; + FieldToJson(jdata["WidthInTexels"], decoded_value.WidthInTexels, options); + FieldToJson(jdata["HeightInTexels"], decoded_value.HeightInTexels, options); + FieldToJson(jdata["DepthInTexels"], decoded_value.DepthInTexels, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_PACKED_MIP_INFO* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const D3D12_PACKED_MIP_INFO& decoded_value = *data->decoded_value; + const Decoded_D3D12_PACKED_MIP_INFO& meta_struct = *data; + FieldToJson(jdata["NumStandardMips"], decoded_value.NumStandardMips, options); + FieldToJson(jdata["NumPackedMips"], decoded_value.NumPackedMips, options); + FieldToJson(jdata["NumTilesForPackedMips"], decoded_value.NumTilesForPackedMips, options); + FieldToJson(jdata["StartTileIndexInOverallResource"], decoded_value.StartTileIndexInOverallResource, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_RESOURCE_TRANSITION_BARRIER* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const D3D12_RESOURCE_TRANSITION_BARRIER& decoded_value = *data->decoded_value; + const Decoded_D3D12_RESOURCE_TRANSITION_BARRIER& meta_struct = *data; + FieldToJson(jdata["pResource"], meta_struct.pResource, options); + FieldToJson(jdata["Subresource"], decoded_value.Subresource, options); + FieldToJson_D3D12_RESOURCE_STATES(jdata["StateBefore"], decoded_value.StateBefore, options); + FieldToJson_D3D12_RESOURCE_STATES(jdata["StateAfter"], decoded_value.StateAfter, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_RESOURCE_ALIASING_BARRIER* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const D3D12_RESOURCE_ALIASING_BARRIER& decoded_value = *data->decoded_value; + const Decoded_D3D12_RESOURCE_ALIASING_BARRIER& meta_struct = *data; + FieldToJson(jdata["pResourceBefore"], meta_struct.pResourceBefore, options); + FieldToJson(jdata["pResourceAfter"], meta_struct.pResourceAfter, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_RESOURCE_UAV_BARRIER* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const D3D12_RESOURCE_UAV_BARRIER& decoded_value = *data->decoded_value; + const Decoded_D3D12_RESOURCE_UAV_BARRIER& meta_struct = *data; + FieldToJson(jdata["pResource"], meta_struct.pResource, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_RESOURCE_BARRIER* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const D3D12_RESOURCE_BARRIER& decoded_value = *data->decoded_value; + const Decoded_D3D12_RESOURCE_BARRIER& meta_struct = *data; + FieldToJson(jdata["Type"], decoded_value.Type, options); + FieldToJson_D3D12_RESOURCE_BARRIER_FLAGS(jdata["Flags"], decoded_value.Flags, options); + switch(decoded_value.Type) + { + case D3D12_RESOURCE_BARRIER_TYPE_TRANSITION: + { + FieldToJson(jdata["Transition"], meta_struct.Transition, options); + break; + } + case D3D12_RESOURCE_BARRIER_TYPE_ALIASING: + { + FieldToJson(jdata["Aliasing"], meta_struct.Aliasing, options); + break; + } + case D3D12_RESOURCE_BARRIER_TYPE_UAV: + { + FieldToJson(jdata["UAV"], meta_struct.UAV, options); + break; + } + default: + { + FieldToJson(jdata[format::kNameWarning], "Unknown D3D12_RESOURCE_BARRIER_TYPE in D3D12_RESOURCE_BARRIER.", options); + break; + } + } + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_SUBRESOURCE_FOOTPRINT* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const D3D12_SUBRESOURCE_FOOTPRINT& decoded_value = *data->decoded_value; + const Decoded_D3D12_SUBRESOURCE_FOOTPRINT& meta_struct = *data; + FieldToJson(jdata["Format"], decoded_value.Format, options); + FieldToJson(jdata["Width"], decoded_value.Width, options); + FieldToJson(jdata["Height"], decoded_value.Height, options); + FieldToJson(jdata["Depth"], decoded_value.Depth, options); + FieldToJson(jdata["RowPitch"], decoded_value.RowPitch, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_PLACED_SUBRESOURCE_FOOTPRINT* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const D3D12_PLACED_SUBRESOURCE_FOOTPRINT& decoded_value = *data->decoded_value; + const Decoded_D3D12_PLACED_SUBRESOURCE_FOOTPRINT& meta_struct = *data; + FieldToJson(jdata["Offset"], decoded_value.Offset, options); + FieldToJson(jdata["Footprint"], meta_struct.Footprint, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_TEXTURE_COPY_LOCATION* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const D3D12_TEXTURE_COPY_LOCATION& decoded_value = *data->decoded_value; + const Decoded_D3D12_TEXTURE_COPY_LOCATION& meta_struct = *data; + FieldToJson(jdata["pResource"], meta_struct.pResource, options); + FieldToJson(jdata["Type"], decoded_value.Type, options); + switch(decoded_value.Type) + { + case D3D12_TEXTURE_COPY_TYPE_SUBRESOURCE_INDEX: + { + FieldToJson(jdata["SubresourceIndex"], decoded_value.SubresourceIndex, options); + break; + } + case D3D12_TEXTURE_COPY_TYPE_PLACED_FOOTPRINT: + { + FieldToJson(jdata["PlacedFootprint"], meta_struct.PlacedFootprint, options); + break; + } + default: + { + FieldToJson(jdata[format::kNameWarning], "Unknown D3D12_TEXTURE_COPY_TYPE in D3D12_TEXTURE_COPY_LOCATION.", options); + break; + } + } + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_SAMPLE_POSITION* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const D3D12_SAMPLE_POSITION& decoded_value = *data->decoded_value; + const Decoded_D3D12_SAMPLE_POSITION& meta_struct = *data; + FieldToJson(jdata["X"], decoded_value.X, options); + FieldToJson(jdata["Y"], decoded_value.Y, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_VIEW_INSTANCE_LOCATION* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const D3D12_VIEW_INSTANCE_LOCATION& decoded_value = *data->decoded_value; + const Decoded_D3D12_VIEW_INSTANCE_LOCATION& meta_struct = *data; + FieldToJson(jdata["ViewportArrayIndex"], decoded_value.ViewportArrayIndex, options); + FieldToJson(jdata["RenderTargetArrayIndex"], decoded_value.RenderTargetArrayIndex, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_VIEW_INSTANCING_DESC* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const D3D12_VIEW_INSTANCING_DESC& decoded_value = *data->decoded_value; + const Decoded_D3D12_VIEW_INSTANCING_DESC& meta_struct = *data; + FieldToJson(jdata["ViewInstanceCount"], decoded_value.ViewInstanceCount, options); + FieldToJson(jdata["pViewInstanceLocations"], meta_struct.pViewInstanceLocations, options); + FieldToJson_D3D12_VIEW_INSTANCING_FLAGS(jdata["Flags"], decoded_value.Flags, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_BUFFER_SRV* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const D3D12_BUFFER_SRV& decoded_value = *data->decoded_value; + const Decoded_D3D12_BUFFER_SRV& meta_struct = *data; + FieldToJson(jdata["FirstElement"], decoded_value.FirstElement, options); + FieldToJson(jdata["NumElements"], decoded_value.NumElements, options); + FieldToJson(jdata["StructureByteStride"], decoded_value.StructureByteStride, options); + FieldToJson_D3D12_BUFFER_SRV_FLAGS(jdata["Flags"], decoded_value.Flags, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_TEX1D_SRV* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const D3D12_TEX1D_SRV& decoded_value = *data->decoded_value; + const Decoded_D3D12_TEX1D_SRV& meta_struct = *data; + FieldToJson(jdata["MostDetailedMip"], decoded_value.MostDetailedMip, options); + FieldToJson(jdata["MipLevels"], decoded_value.MipLevels, options); + FieldToJson(jdata["ResourceMinLODClamp"], decoded_value.ResourceMinLODClamp, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_TEX1D_ARRAY_SRV* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const D3D12_TEX1D_ARRAY_SRV& decoded_value = *data->decoded_value; + const Decoded_D3D12_TEX1D_ARRAY_SRV& meta_struct = *data; + FieldToJson(jdata["MostDetailedMip"], decoded_value.MostDetailedMip, options); + FieldToJson(jdata["MipLevels"], decoded_value.MipLevels, options); + FieldToJson(jdata["FirstArraySlice"], decoded_value.FirstArraySlice, options); + FieldToJson(jdata["ArraySize"], decoded_value.ArraySize, options); + FieldToJson(jdata["ResourceMinLODClamp"], decoded_value.ResourceMinLODClamp, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_TEX2D_SRV* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const D3D12_TEX2D_SRV& decoded_value = *data->decoded_value; + const Decoded_D3D12_TEX2D_SRV& meta_struct = *data; + FieldToJson(jdata["MostDetailedMip"], decoded_value.MostDetailedMip, options); + FieldToJson(jdata["MipLevels"], decoded_value.MipLevels, options); + FieldToJson(jdata["PlaneSlice"], decoded_value.PlaneSlice, options); + FieldToJson(jdata["ResourceMinLODClamp"], decoded_value.ResourceMinLODClamp, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_TEX2D_ARRAY_SRV* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const D3D12_TEX2D_ARRAY_SRV& decoded_value = *data->decoded_value; + const Decoded_D3D12_TEX2D_ARRAY_SRV& meta_struct = *data; + FieldToJson(jdata["MostDetailedMip"], decoded_value.MostDetailedMip, options); + FieldToJson(jdata["MipLevels"], decoded_value.MipLevels, options); + FieldToJson(jdata["FirstArraySlice"], decoded_value.FirstArraySlice, options); + FieldToJson(jdata["ArraySize"], decoded_value.ArraySize, options); + FieldToJson(jdata["PlaneSlice"], decoded_value.PlaneSlice, options); + FieldToJson(jdata["ResourceMinLODClamp"], decoded_value.ResourceMinLODClamp, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_TEX3D_SRV* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const D3D12_TEX3D_SRV& decoded_value = *data->decoded_value; + const Decoded_D3D12_TEX3D_SRV& meta_struct = *data; + FieldToJson(jdata["MostDetailedMip"], decoded_value.MostDetailedMip, options); + FieldToJson(jdata["MipLevels"], decoded_value.MipLevels, options); + FieldToJson(jdata["ResourceMinLODClamp"], decoded_value.ResourceMinLODClamp, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_TEXCUBE_SRV* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const D3D12_TEXCUBE_SRV& decoded_value = *data->decoded_value; + const Decoded_D3D12_TEXCUBE_SRV& meta_struct = *data; + FieldToJson(jdata["MostDetailedMip"], decoded_value.MostDetailedMip, options); + FieldToJson(jdata["MipLevels"], decoded_value.MipLevels, options); + FieldToJson(jdata["ResourceMinLODClamp"], decoded_value.ResourceMinLODClamp, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_TEXCUBE_ARRAY_SRV* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const D3D12_TEXCUBE_ARRAY_SRV& decoded_value = *data->decoded_value; + const Decoded_D3D12_TEXCUBE_ARRAY_SRV& meta_struct = *data; + FieldToJson(jdata["MostDetailedMip"], decoded_value.MostDetailedMip, options); + FieldToJson(jdata["MipLevels"], decoded_value.MipLevels, options); + FieldToJson(jdata["First2DArrayFace"], decoded_value.First2DArrayFace, options); + FieldToJson(jdata["NumCubes"], decoded_value.NumCubes, options); + FieldToJson(jdata["ResourceMinLODClamp"], decoded_value.ResourceMinLODClamp, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_TEX2DMS_SRV* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const D3D12_TEX2DMS_SRV& decoded_value = *data->decoded_value; + const Decoded_D3D12_TEX2DMS_SRV& meta_struct = *data; + FieldToJson(jdata["UnusedField_NothingToDefine"], decoded_value.UnusedField_NothingToDefine, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_TEX2DMS_ARRAY_SRV* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const D3D12_TEX2DMS_ARRAY_SRV& decoded_value = *data->decoded_value; + const Decoded_D3D12_TEX2DMS_ARRAY_SRV& meta_struct = *data; + FieldToJson(jdata["FirstArraySlice"], decoded_value.FirstArraySlice, options); + FieldToJson(jdata["ArraySize"], decoded_value.ArraySize, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_RAYTRACING_ACCELERATION_STRUCTURE_SRV* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_SRV& decoded_value = *data->decoded_value; + const Decoded_D3D12_RAYTRACING_ACCELERATION_STRUCTURE_SRV& meta_struct = *data; + FieldToJsonAsHex(jdata["Location"], decoded_value.Location, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_SHADER_RESOURCE_VIEW_DESC* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const D3D12_SHADER_RESOURCE_VIEW_DESC& decoded_value = *data->decoded_value; + const Decoded_D3D12_SHADER_RESOURCE_VIEW_DESC& meta_struct = *data; + FieldToJson(jdata["Format"], decoded_value.Format, options); + FieldToJson(jdata["ViewDimension"], decoded_value.ViewDimension, options); + FieldToJson(jdata["Shader4ComponentMapping"], decoded_value.Shader4ComponentMapping, options); + switch(decoded_value.ViewDimension) + { + case D3D12_SRV_DIMENSION_BUFFER: + { + FieldToJson(jdata["Buffer"], meta_struct.Buffer, options); + break; + } + case D3D12_SRV_DIMENSION_TEXTURE1D: + { + FieldToJson(jdata["Texture1D"], meta_struct.Texture1D, options); + break; + } + case D3D12_SRV_DIMENSION_TEXTURE1DARRAY: + { + FieldToJson(jdata["Texture1DArray"], meta_struct.Texture1DArray, options); + break; + } + case D3D12_SRV_DIMENSION_TEXTURE2D: + { + FieldToJson(jdata["Texture2D"], meta_struct.Texture2D, options); + break; + } + case D3D12_SRV_DIMENSION_TEXTURE2DARRAY: + { + FieldToJson(jdata["Texture2DArray"], meta_struct.Texture2DArray, options); + break; + } + case D3D12_SRV_DIMENSION_TEXTURE2DMS: + { + FieldToJson(jdata["Texture2DMS"], meta_struct.Texture2DMS, options); + break; + } + case D3D12_SRV_DIMENSION_TEXTURE2DMSARRAY: + { + FieldToJson(jdata["Texture2DMSArray"], meta_struct.Texture2DMSArray, options); + break; + } + case D3D12_SRV_DIMENSION_TEXTURE3D: + { + FieldToJson(jdata["Texture3D"], meta_struct.Texture3D, options); + break; + } + case D3D12_SRV_DIMENSION_TEXTURECUBE: + { + FieldToJson(jdata["TextureCube"], meta_struct.TextureCube, options); + break; + } + case D3D12_SRV_DIMENSION_TEXTURECUBEARRAY: + { + FieldToJson(jdata["TextureCubeArray"], meta_struct.TextureCubeArray, options); + break; + } + case D3D12_SRV_DIMENSION_RAYTRACING_ACCELERATION_STRUCTURE: + { + FieldToJson(jdata["RaytracingAccelerationStructure"], meta_struct.RaytracingAccelerationStructure, options); + break; + } + } + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_CONSTANT_BUFFER_VIEW_DESC* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const D3D12_CONSTANT_BUFFER_VIEW_DESC& decoded_value = *data->decoded_value; + const Decoded_D3D12_CONSTANT_BUFFER_VIEW_DESC& meta_struct = *data; + FieldToJsonAsHex(jdata["BufferLocation"], decoded_value.BufferLocation, options); + FieldToJson(jdata["SizeInBytes"], decoded_value.SizeInBytes, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_SAMPLER_DESC* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const D3D12_SAMPLER_DESC& decoded_value = *data->decoded_value; + const Decoded_D3D12_SAMPLER_DESC& meta_struct = *data; + FieldToJson(jdata["Filter"], decoded_value.Filter, options); + FieldToJson(jdata["AddressU"], decoded_value.AddressU, options); + FieldToJson(jdata["AddressV"], decoded_value.AddressV, options); + FieldToJson(jdata["AddressW"], decoded_value.AddressW, options); + FieldToJson(jdata["MipLODBias"], decoded_value.MipLODBias, options); + FieldToJson(jdata["MaxAnisotropy"], decoded_value.MaxAnisotropy, options); + FieldToJson(jdata["ComparisonFunc"], decoded_value.ComparisonFunc, options); + FieldToJson(jdata["BorderColor"], meta_struct.BorderColor, options); + FieldToJson(jdata["MinLOD"], decoded_value.MinLOD, options); + FieldToJson(jdata["MaxLOD"], decoded_value.MaxLOD, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_SAMPLER_DESC2* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const D3D12_SAMPLER_DESC2& decoded_value = *data->decoded_value; + const Decoded_D3D12_SAMPLER_DESC2& meta_struct = *data; + FieldToJson(jdata["Filter"], decoded_value.Filter, options); + FieldToJson(jdata["AddressU"], decoded_value.AddressU, options); + FieldToJson(jdata["AddressV"], decoded_value.AddressV, options); + FieldToJson(jdata["AddressW"], decoded_value.AddressW, options); + FieldToJson(jdata["MipLODBias"], decoded_value.MipLODBias, options); + FieldToJson(jdata["MaxAnisotropy"], decoded_value.MaxAnisotropy, options); + FieldToJson(jdata["ComparisonFunc"], decoded_value.ComparisonFunc, options); + if(decoded_value.Flags & D3D12_SAMPLER_FLAG_UINT_BORDER_COLOR) + { + FieldToJson(jdata["UintBorderColor"], decoded_value.UintBorderColor, options); + } + else + { + FieldToJson(jdata["FloatBorderColor"], decoded_value.FloatBorderColor, options); + } + FieldToJson(jdata["MinLOD"], decoded_value.MinLOD, options); + FieldToJson(jdata["MaxLOD"], decoded_value.MaxLOD, options); + FieldToJson_D3D12_SAMPLER_FLAGS(jdata["Flags"], decoded_value.Flags, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_BUFFER_UAV* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const D3D12_BUFFER_UAV& decoded_value = *data->decoded_value; + const Decoded_D3D12_BUFFER_UAV& meta_struct = *data; + FieldToJson(jdata["FirstElement"], decoded_value.FirstElement, options); + FieldToJson(jdata["NumElements"], decoded_value.NumElements, options); + FieldToJson(jdata["StructureByteStride"], decoded_value.StructureByteStride, options); + FieldToJson(jdata["CounterOffsetInBytes"], decoded_value.CounterOffsetInBytes, options); + FieldToJson_D3D12_BUFFER_UAV_FLAGS(jdata["Flags"], decoded_value.Flags, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_TEX1D_UAV* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const D3D12_TEX1D_UAV& decoded_value = *data->decoded_value; + const Decoded_D3D12_TEX1D_UAV& meta_struct = *data; + FieldToJson(jdata["MipSlice"], decoded_value.MipSlice, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_TEX1D_ARRAY_UAV* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const D3D12_TEX1D_ARRAY_UAV& decoded_value = *data->decoded_value; + const Decoded_D3D12_TEX1D_ARRAY_UAV& meta_struct = *data; + FieldToJson(jdata["MipSlice"], decoded_value.MipSlice, options); + FieldToJson(jdata["FirstArraySlice"], decoded_value.FirstArraySlice, options); + FieldToJson(jdata["ArraySize"], decoded_value.ArraySize, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_TEX2D_UAV* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const D3D12_TEX2D_UAV& decoded_value = *data->decoded_value; + const Decoded_D3D12_TEX2D_UAV& meta_struct = *data; + FieldToJson(jdata["MipSlice"], decoded_value.MipSlice, options); + FieldToJson(jdata["PlaneSlice"], decoded_value.PlaneSlice, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_TEX2D_ARRAY_UAV* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const D3D12_TEX2D_ARRAY_UAV& decoded_value = *data->decoded_value; + const Decoded_D3D12_TEX2D_ARRAY_UAV& meta_struct = *data; + FieldToJson(jdata["MipSlice"], decoded_value.MipSlice, options); + FieldToJson(jdata["FirstArraySlice"], decoded_value.FirstArraySlice, options); + FieldToJson(jdata["ArraySize"], decoded_value.ArraySize, options); + FieldToJson(jdata["PlaneSlice"], decoded_value.PlaneSlice, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_TEX2DMS_UAV* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const D3D12_TEX2DMS_UAV& decoded_value = *data->decoded_value; + const Decoded_D3D12_TEX2DMS_UAV& meta_struct = *data; + FieldToJson(jdata["UnusedField_NothingToDefine"], decoded_value.UnusedField_NothingToDefine, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_TEX2DMS_ARRAY_UAV* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const D3D12_TEX2DMS_ARRAY_UAV& decoded_value = *data->decoded_value; + const Decoded_D3D12_TEX2DMS_ARRAY_UAV& meta_struct = *data; + FieldToJson(jdata["FirstArraySlice"], decoded_value.FirstArraySlice, options); + FieldToJson(jdata["ArraySize"], decoded_value.ArraySize, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_TEX3D_UAV* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const D3D12_TEX3D_UAV& decoded_value = *data->decoded_value; + const Decoded_D3D12_TEX3D_UAV& meta_struct = *data; + FieldToJson(jdata["MipSlice"], decoded_value.MipSlice, options); + FieldToJson(jdata["FirstWSlice"], decoded_value.FirstWSlice, options); + FieldToJson(jdata["WSize"], decoded_value.WSize, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_UNORDERED_ACCESS_VIEW_DESC* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const D3D12_UNORDERED_ACCESS_VIEW_DESC& decoded_value = *data->decoded_value; + const Decoded_D3D12_UNORDERED_ACCESS_VIEW_DESC& meta_struct = *data; + FieldToJson(jdata["Format"], decoded_value.Format, options); + FieldToJson(jdata["ViewDimension"], decoded_value.ViewDimension, options); + switch(decoded_value.ViewDimension) + { + case D3D12_UAV_DIMENSION_UNKNOWN: + { + FieldToJson(jdata[format::kNameWarning], "Zero-valued ViewDimension is meaningless. Is struct corrupted?", options); + break; + } + case D3D12_UAV_DIMENSION_BUFFER: + { + FieldToJson(jdata["Buffer"], meta_struct.Buffer, options); + break; + } + case D3D12_UAV_DIMENSION_TEXTURE1D: + { + FieldToJson(jdata["Texture1D"], meta_struct.Texture1D, options); + break; + } + case D3D12_UAV_DIMENSION_TEXTURE1DARRAY: + { + FieldToJson(jdata["Texture1DArray"], meta_struct.Texture1DArray, options); + break; + } + case D3D12_UAV_DIMENSION_TEXTURE2D: + { + FieldToJson(jdata["Texture2D"], meta_struct.Texture2D, options); + break; + } + case D3D12_UAV_DIMENSION_TEXTURE2DARRAY: + { + FieldToJson(jdata["Texture2DArray"], meta_struct.Texture2DArray, options); + break; + } + case D3D12_UAV_DIMENSION_TEXTURE2DMS: + { + FieldToJson(jdata["Texture2DMS"], "Field missing from Decoded_D3D12_UNORDERED_ACCESS_VIEW_DESC.", options); + break; + } + case D3D12_UAV_DIMENSION_TEXTURE2DMSARRAY: + { + FieldToJson(jdata["Texture2DMSArray"], "Field missing from Decoded_D3D12_UNORDERED_ACCESS_VIEW_DESC.", options); + break; + } + case D3D12_UAV_DIMENSION_TEXTURE3D: + { + FieldToJson(jdata["Texture3D"], meta_struct.Texture3D, options); + break; + } + default: + { + FieldToJson(jdata[format::kNameWarning], "ViewDimension with unknown value. Is struct corrupted?", options); + FieldToJson(jdata["Unknown value"], uint32_t(decoded_value.ViewDimension), options); + break; + } + } + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_BUFFER_RTV* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const D3D12_BUFFER_RTV& decoded_value = *data->decoded_value; + const Decoded_D3D12_BUFFER_RTV& meta_struct = *data; + FieldToJson(jdata["FirstElement"], decoded_value.FirstElement, options); + FieldToJson(jdata["NumElements"], decoded_value.NumElements, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_TEX1D_RTV* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const D3D12_TEX1D_RTV& decoded_value = *data->decoded_value; + const Decoded_D3D12_TEX1D_RTV& meta_struct = *data; + FieldToJson(jdata["MipSlice"], decoded_value.MipSlice, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_TEX1D_ARRAY_RTV* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const D3D12_TEX1D_ARRAY_RTV& decoded_value = *data->decoded_value; + const Decoded_D3D12_TEX1D_ARRAY_RTV& meta_struct = *data; + FieldToJson(jdata["MipSlice"], decoded_value.MipSlice, options); + FieldToJson(jdata["FirstArraySlice"], decoded_value.FirstArraySlice, options); + FieldToJson(jdata["ArraySize"], decoded_value.ArraySize, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_TEX2D_RTV* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const D3D12_TEX2D_RTV& decoded_value = *data->decoded_value; + const Decoded_D3D12_TEX2D_RTV& meta_struct = *data; + FieldToJson(jdata["MipSlice"], decoded_value.MipSlice, options); + FieldToJson(jdata["PlaneSlice"], decoded_value.PlaneSlice, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_TEX2DMS_RTV* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const D3D12_TEX2DMS_RTV& decoded_value = *data->decoded_value; + const Decoded_D3D12_TEX2DMS_RTV& meta_struct = *data; + FieldToJson(jdata["UnusedField_NothingToDefine"], decoded_value.UnusedField_NothingToDefine, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_TEX2D_ARRAY_RTV* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const D3D12_TEX2D_ARRAY_RTV& decoded_value = *data->decoded_value; + const Decoded_D3D12_TEX2D_ARRAY_RTV& meta_struct = *data; + FieldToJson(jdata["MipSlice"], decoded_value.MipSlice, options); + FieldToJson(jdata["FirstArraySlice"], decoded_value.FirstArraySlice, options); + FieldToJson(jdata["ArraySize"], decoded_value.ArraySize, options); + FieldToJson(jdata["PlaneSlice"], decoded_value.PlaneSlice, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_TEX2DMS_ARRAY_RTV* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const D3D12_TEX2DMS_ARRAY_RTV& decoded_value = *data->decoded_value; + const Decoded_D3D12_TEX2DMS_ARRAY_RTV& meta_struct = *data; + FieldToJson(jdata["FirstArraySlice"], decoded_value.FirstArraySlice, options); + FieldToJson(jdata["ArraySize"], decoded_value.ArraySize, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_TEX3D_RTV* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const D3D12_TEX3D_RTV& decoded_value = *data->decoded_value; + const Decoded_D3D12_TEX3D_RTV& meta_struct = *data; + FieldToJson(jdata["MipSlice"], decoded_value.MipSlice, options); + FieldToJson(jdata["FirstWSlice"], decoded_value.FirstWSlice, options); + FieldToJson(jdata["WSize"], decoded_value.WSize, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_RENDER_TARGET_VIEW_DESC* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const D3D12_RENDER_TARGET_VIEW_DESC& decoded_value = *data->decoded_value; + const Decoded_D3D12_RENDER_TARGET_VIEW_DESC& meta_struct = *data; + FieldToJson(jdata["Format"], decoded_value.Format, options); + FieldToJson(jdata["ViewDimension"], decoded_value.ViewDimension, options); + switch(decoded_value.ViewDimension) + { + case D3D12_RTV_DIMENSION_UNKNOWN: + { + FieldToJson(jdata[format::kNameWarning], "Zero D3D12_RTV_DIMENSION in D3D12_RENDER_TARGET_VIEW_DESC.", options); + break; + } + case D3D12_RTV_DIMENSION_BUFFER: + { + FieldToJson(jdata["Buffer"], meta_struct.Buffer, options); + break; + } + case D3D12_RTV_DIMENSION_TEXTURE1D: + { + FieldToJson(jdata["Texture1D"], meta_struct.Texture1D, options); + break; + } + case D3D12_RTV_DIMENSION_TEXTURE1DARRAY: + { + FieldToJson(jdata["Texture1DArray"], meta_struct.Texture1DArray, options); + break; + } + case D3D12_RTV_DIMENSION_TEXTURE2D: + { + FieldToJson(jdata["Texture2D"], meta_struct.Texture2D, options); + break; + } + case D3D12_RTV_DIMENSION_TEXTURE2DARRAY: + { + FieldToJson(jdata["Texture2DArray"], meta_struct.Texture2DArray, options); + break; + } + case D3D12_RTV_DIMENSION_TEXTURE2DMS: + { + FieldToJson(jdata["Texture2DMS"], meta_struct.Texture2DMS, options); + break; + } + case D3D12_RTV_DIMENSION_TEXTURE2DMSARRAY: + { + FieldToJson(jdata["Texture2DMSArray"], meta_struct.Texture2DMSArray, options); + break; + } + case D3D12_RTV_DIMENSION_TEXTURE3D: + { + FieldToJson(jdata["Texture3D"], meta_struct.Texture3D, options); + break; + } + default: + { + FieldToJson(jdata[format::kNameWarning], "Unknown D3D12_RTV_DIMENSION in D3D12_RENDER_TARGET_VIEW_DESC. Corrupt struct?", options); + FieldToJson(jdata["Unknown value"], uint32_t(decoded_value.ViewDimension), options); + break; + } + } + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_TEX1D_DSV* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const D3D12_TEX1D_DSV& decoded_value = *data->decoded_value; + const Decoded_D3D12_TEX1D_DSV& meta_struct = *data; + FieldToJson(jdata["MipSlice"], decoded_value.MipSlice, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_TEX1D_ARRAY_DSV* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const D3D12_TEX1D_ARRAY_DSV& decoded_value = *data->decoded_value; + const Decoded_D3D12_TEX1D_ARRAY_DSV& meta_struct = *data; + FieldToJson(jdata["MipSlice"], decoded_value.MipSlice, options); + FieldToJson(jdata["FirstArraySlice"], decoded_value.FirstArraySlice, options); + FieldToJson(jdata["ArraySize"], decoded_value.ArraySize, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_TEX2D_DSV* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const D3D12_TEX2D_DSV& decoded_value = *data->decoded_value; + const Decoded_D3D12_TEX2D_DSV& meta_struct = *data; + FieldToJson(jdata["MipSlice"], decoded_value.MipSlice, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_TEX2D_ARRAY_DSV* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const D3D12_TEX2D_ARRAY_DSV& decoded_value = *data->decoded_value; + const Decoded_D3D12_TEX2D_ARRAY_DSV& meta_struct = *data; + FieldToJson(jdata["MipSlice"], decoded_value.MipSlice, options); + FieldToJson(jdata["FirstArraySlice"], decoded_value.FirstArraySlice, options); + FieldToJson(jdata["ArraySize"], decoded_value.ArraySize, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_TEX2DMS_DSV* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const D3D12_TEX2DMS_DSV& decoded_value = *data->decoded_value; + const Decoded_D3D12_TEX2DMS_DSV& meta_struct = *data; + FieldToJson(jdata["UnusedField_NothingToDefine"], decoded_value.UnusedField_NothingToDefine, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_TEX2DMS_ARRAY_DSV* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const D3D12_TEX2DMS_ARRAY_DSV& decoded_value = *data->decoded_value; + const Decoded_D3D12_TEX2DMS_ARRAY_DSV& meta_struct = *data; + FieldToJson(jdata["FirstArraySlice"], decoded_value.FirstArraySlice, options); + FieldToJson(jdata["ArraySize"], decoded_value.ArraySize, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_DEPTH_STENCIL_VIEW_DESC* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const D3D12_DEPTH_STENCIL_VIEW_DESC& decoded_value = *data->decoded_value; + const Decoded_D3D12_DEPTH_STENCIL_VIEW_DESC& meta_struct = *data; + FieldToJson(jdata["Format"], decoded_value.Format, options); + FieldToJson(jdata["ViewDimension"], decoded_value.ViewDimension, options); + FieldToJson_D3D12_DSV_FLAGS(jdata["Flags"], decoded_value.Flags, options); + switch(decoded_value.ViewDimension) + { + case D3D12_DSV_DIMENSION_UNKNOWN: + { + FieldToJson(jdata[format::kNameWarning], "Zero D3D12_DSV_DIMENSION in D3D12_DEPTH_STENCIL_VIEW_DESC.", options); + break; + } + case D3D12_DSV_DIMENSION_TEXTURE1D: + { + FieldToJson(jdata["Texture1D"], meta_struct.Texture1D, options); + break; + } + case D3D12_DSV_DIMENSION_TEXTURE1DARRAY: + { + FieldToJson(jdata["Texture1DArray"], meta_struct.Texture1DArray, options); + break; + } + case D3D12_DSV_DIMENSION_TEXTURE2D: + { + FieldToJson(jdata["Texture2D"], meta_struct.Texture2D, options); + break; + } + case D3D12_DSV_DIMENSION_TEXTURE2DARRAY: + { + FieldToJson(jdata["Texture2DArray"], meta_struct.Texture2DArray, options); + break; + } + case D3D12_DSV_DIMENSION_TEXTURE2DMS: + { + FieldToJson(jdata["Texture2DMS"], meta_struct.Texture2DMS, options); + break; + } + case D3D12_DSV_DIMENSION_TEXTURE2DMSARRAY: + { + FieldToJson(jdata["Texture2DMSArray"], meta_struct.Texture2DMSArray, options); + break; + } + default: + { + FieldToJson(jdata[format::kNameWarning], "Unknown D3D12_DSV_DIMENSION in D3D12_DEPTH_STENCIL_VIEW_DESC. Corrupt struct?", options); + FieldToJson(jdata["Unknown value"], uint32_t(decoded_value.ViewDimension), options); + break; + } + } + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_DESCRIPTOR_HEAP_DESC* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const D3D12_DESCRIPTOR_HEAP_DESC& decoded_value = *data->decoded_value; + const Decoded_D3D12_DESCRIPTOR_HEAP_DESC& meta_struct = *data; + FieldToJson(jdata["Type"], decoded_value.Type, options); + FieldToJson(jdata["NumDescriptors"], decoded_value.NumDescriptors, options); + FieldToJson_D3D12_DESCRIPTOR_HEAP_FLAGS(jdata["Flags"], decoded_value.Flags, options); + FieldToJsonAsFixedWidthBinary(jdata["NodeMask"], decoded_value.NodeMask, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_DESCRIPTOR_RANGE* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const D3D12_DESCRIPTOR_RANGE& decoded_value = *data->decoded_value; + const Decoded_D3D12_DESCRIPTOR_RANGE& meta_struct = *data; + FieldToJson(jdata["RangeType"], decoded_value.RangeType, options); + FieldToJson(jdata["NumDescriptors"], decoded_value.NumDescriptors, options); + FieldToJson(jdata["BaseShaderRegister"], decoded_value.BaseShaderRegister, options); + FieldToJson(jdata["RegisterSpace"], decoded_value.RegisterSpace, options); + FieldToJson(jdata["OffsetInDescriptorsFromTableStart"], decoded_value.OffsetInDescriptorsFromTableStart, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_ROOT_DESCRIPTOR_TABLE* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const D3D12_ROOT_DESCRIPTOR_TABLE& decoded_value = *data->decoded_value; + const Decoded_D3D12_ROOT_DESCRIPTOR_TABLE& meta_struct = *data; + FieldToJson(jdata["NumDescriptorRanges"], decoded_value.NumDescriptorRanges, options); + FieldToJson(jdata["pDescriptorRanges"], meta_struct.pDescriptorRanges, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_ROOT_CONSTANTS* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const D3D12_ROOT_CONSTANTS& decoded_value = *data->decoded_value; + const Decoded_D3D12_ROOT_CONSTANTS& meta_struct = *data; + FieldToJson(jdata["ShaderRegister"], decoded_value.ShaderRegister, options); + FieldToJson(jdata["RegisterSpace"], decoded_value.RegisterSpace, options); + FieldToJson(jdata["Num32BitValues"], decoded_value.Num32BitValues, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_ROOT_DESCRIPTOR* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const D3D12_ROOT_DESCRIPTOR& decoded_value = *data->decoded_value; + const Decoded_D3D12_ROOT_DESCRIPTOR& meta_struct = *data; + FieldToJson(jdata["ShaderRegister"], decoded_value.ShaderRegister, options); + FieldToJson(jdata["RegisterSpace"], decoded_value.RegisterSpace, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_ROOT_PARAMETER* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const D3D12_ROOT_PARAMETER& decoded_value = *data->decoded_value; + const Decoded_D3D12_ROOT_PARAMETER& meta_struct = *data; + FieldToJson(jdata["ParameterType"], decoded_value.ParameterType, options); + switch(decoded_value.ParameterType) + { + case D3D12_ROOT_PARAMETER_TYPE_DESCRIPTOR_TABLE: + { + FieldToJson(jdata["DescriptorTable"], meta_struct.DescriptorTable, options); + break; + } + case D3D12_ROOT_PARAMETER_TYPE_32BIT_CONSTANTS: + { + FieldToJson(jdata["Constants"], meta_struct.Constants, options); + break; + } + case D3D12_ROOT_PARAMETER_TYPE_CBV: + case D3D12_ROOT_PARAMETER_TYPE_SRV: + case D3D12_ROOT_PARAMETER_TYPE_UAV: + { + FieldToJson(jdata["Descriptor"], meta_struct.Descriptor, options); + break; + } + } + FieldToJson(jdata["ShaderVisibility"], decoded_value.ShaderVisibility, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_STATIC_SAMPLER_DESC* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const D3D12_STATIC_SAMPLER_DESC& decoded_value = *data->decoded_value; + const Decoded_D3D12_STATIC_SAMPLER_DESC& meta_struct = *data; + FieldToJson(jdata["Filter"], decoded_value.Filter, options); + FieldToJson(jdata["AddressU"], decoded_value.AddressU, options); + FieldToJson(jdata["AddressV"], decoded_value.AddressV, options); + FieldToJson(jdata["AddressW"], decoded_value.AddressW, options); + FieldToJson(jdata["MipLODBias"], decoded_value.MipLODBias, options); + FieldToJson(jdata["MaxAnisotropy"], decoded_value.MaxAnisotropy, options); + FieldToJson(jdata["ComparisonFunc"], decoded_value.ComparisonFunc, options); + FieldToJson(jdata["BorderColor"], decoded_value.BorderColor, options); + FieldToJson(jdata["MinLOD"], decoded_value.MinLOD, options); + FieldToJson(jdata["MaxLOD"], decoded_value.MaxLOD, options); + FieldToJson(jdata["ShaderRegister"], decoded_value.ShaderRegister, options); + FieldToJson(jdata["RegisterSpace"], decoded_value.RegisterSpace, options); + FieldToJson(jdata["ShaderVisibility"], decoded_value.ShaderVisibility, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_STATIC_SAMPLER_DESC1* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const D3D12_STATIC_SAMPLER_DESC1& decoded_value = *data->decoded_value; + const Decoded_D3D12_STATIC_SAMPLER_DESC1& meta_struct = *data; + FieldToJson(jdata["Filter"], decoded_value.Filter, options); + FieldToJson(jdata["AddressU"], decoded_value.AddressU, options); + FieldToJson(jdata["AddressV"], decoded_value.AddressV, options); + FieldToJson(jdata["AddressW"], decoded_value.AddressW, options); + FieldToJson(jdata["MipLODBias"], decoded_value.MipLODBias, options); + FieldToJson(jdata["MaxAnisotropy"], decoded_value.MaxAnisotropy, options); + FieldToJson(jdata["ComparisonFunc"], decoded_value.ComparisonFunc, options); + FieldToJson(jdata["BorderColor"], decoded_value.BorderColor, options); + FieldToJson(jdata["MinLOD"], decoded_value.MinLOD, options); + FieldToJson(jdata["MaxLOD"], decoded_value.MaxLOD, options); + FieldToJson(jdata["ShaderRegister"], decoded_value.ShaderRegister, options); + FieldToJson(jdata["RegisterSpace"], decoded_value.RegisterSpace, options); + FieldToJson(jdata["ShaderVisibility"], decoded_value.ShaderVisibility, options); + FieldToJson_D3D12_SAMPLER_FLAGS(jdata["Flags"], decoded_value.Flags, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_ROOT_SIGNATURE_DESC* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const D3D12_ROOT_SIGNATURE_DESC& decoded_value = *data->decoded_value; + const Decoded_D3D12_ROOT_SIGNATURE_DESC& meta_struct = *data; + FieldToJson(jdata["NumParameters"], decoded_value.NumParameters, options); + FieldToJson(jdata["pParameters"], meta_struct.pParameters, options); + FieldToJson(jdata["NumStaticSamplers"], decoded_value.NumStaticSamplers, options); + FieldToJson(jdata["pStaticSamplers"], meta_struct.pStaticSamplers, options); + FieldToJson_D3D12_ROOT_SIGNATURE_FLAGS(jdata["Flags"], decoded_value.Flags, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_DESCRIPTOR_RANGE1* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const D3D12_DESCRIPTOR_RANGE1& decoded_value = *data->decoded_value; + const Decoded_D3D12_DESCRIPTOR_RANGE1& meta_struct = *data; + FieldToJson(jdata["RangeType"], decoded_value.RangeType, options); + FieldToJson(jdata["NumDescriptors"], decoded_value.NumDescriptors, options); + FieldToJson(jdata["BaseShaderRegister"], decoded_value.BaseShaderRegister, options); + FieldToJson(jdata["RegisterSpace"], decoded_value.RegisterSpace, options); + FieldToJson_D3D12_DESCRIPTOR_RANGE_FLAGS(jdata["Flags"], decoded_value.Flags, options); + FieldToJson(jdata["OffsetInDescriptorsFromTableStart"], decoded_value.OffsetInDescriptorsFromTableStart, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_ROOT_DESCRIPTOR_TABLE1* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const D3D12_ROOT_DESCRIPTOR_TABLE1& decoded_value = *data->decoded_value; + const Decoded_D3D12_ROOT_DESCRIPTOR_TABLE1& meta_struct = *data; + FieldToJson(jdata["NumDescriptorRanges"], decoded_value.NumDescriptorRanges, options); + FieldToJson(jdata["pDescriptorRanges"], meta_struct.pDescriptorRanges, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_ROOT_DESCRIPTOR1* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const D3D12_ROOT_DESCRIPTOR1& decoded_value = *data->decoded_value; + const Decoded_D3D12_ROOT_DESCRIPTOR1& meta_struct = *data; + FieldToJson(jdata["ShaderRegister"], decoded_value.ShaderRegister, options); + FieldToJson(jdata["RegisterSpace"], decoded_value.RegisterSpace, options); + FieldToJson_D3D12_ROOT_DESCRIPTOR_FLAGS(jdata["Flags"], decoded_value.Flags, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_ROOT_PARAMETER1* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const D3D12_ROOT_PARAMETER1& decoded_value = *data->decoded_value; + const Decoded_D3D12_ROOT_PARAMETER1& meta_struct = *data; + FieldToJson(jdata["ParameterType"], decoded_value.ParameterType, options); + switch (decoded_value.ParameterType) + { + case D3D12_ROOT_PARAMETER_TYPE_DESCRIPTOR_TABLE: + { + FieldToJson(jdata["DescriptorTable"], meta_struct.DescriptorTable, options); + break; + } + case D3D12_ROOT_PARAMETER_TYPE_32BIT_CONSTANTS: + { + FieldToJson(jdata["Constants"], meta_struct.Constants, options); + break; + } + case D3D12_ROOT_PARAMETER_TYPE_CBV: + case D3D12_ROOT_PARAMETER_TYPE_SRV: + case D3D12_ROOT_PARAMETER_TYPE_UAV: + { + FieldToJson(jdata["Descriptor"], meta_struct.Descriptor, options); + break; + } + default: + { + FieldToJson(jdata[format::kNameWarning], "Unknown D3D12_ROOT_PARAMETER_TYPE in D3D12_ROOT_PARAMETER1.", options); + FieldToJson(jdata["Unknown value"], uint32_t(decoded_value.ParameterType), options); + break; + } + } + FieldToJson(jdata["ShaderVisibility"], decoded_value.ShaderVisibility, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_ROOT_SIGNATURE_DESC1* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const D3D12_ROOT_SIGNATURE_DESC1& decoded_value = *data->decoded_value; + const Decoded_D3D12_ROOT_SIGNATURE_DESC1& meta_struct = *data; + FieldToJson(jdata["NumParameters"], decoded_value.NumParameters, options); + FieldToJson(jdata["pParameters"], meta_struct.pParameters, options); + FieldToJson(jdata["NumStaticSamplers"], decoded_value.NumStaticSamplers, options); + FieldToJson(jdata["pStaticSamplers"], meta_struct.pStaticSamplers, options); + FieldToJson_D3D12_ROOT_SIGNATURE_FLAGS(jdata["Flags"], decoded_value.Flags, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_ROOT_SIGNATURE_DESC2* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const D3D12_ROOT_SIGNATURE_DESC2& decoded_value = *data->decoded_value; + const Decoded_D3D12_ROOT_SIGNATURE_DESC2& meta_struct = *data; + FieldToJson(jdata["NumParameters"], decoded_value.NumParameters, options); + FieldToJson(jdata["pParameters"], meta_struct.pParameters, options); + FieldToJson(jdata["NumStaticSamplers"], decoded_value.NumStaticSamplers, options); + FieldToJson(jdata["pStaticSamplers"], meta_struct.pStaticSamplers, options); + FieldToJson_D3D12_ROOT_SIGNATURE_FLAGS(jdata["Flags"], decoded_value.Flags, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_VERSIONED_ROOT_SIGNATURE_DESC* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const D3D12_VERSIONED_ROOT_SIGNATURE_DESC& decoded_value = *data->decoded_value; + const Decoded_D3D12_VERSIONED_ROOT_SIGNATURE_DESC& meta_struct = *data; + FieldToJson(jdata["Version"], decoded_value.Version, options); + switch (decoded_value.Version) + { + case D3D_ROOT_SIGNATURE_VERSION_1_0: + { + FieldToJson(jdata["Desc_1_0"], meta_struct.Desc_1_0, options); + break; + } + case D3D_ROOT_SIGNATURE_VERSION_1_1: + { + FieldToJson(jdata["Desc_1_1"], meta_struct.Desc_1_1, options); + break; + } + case D3D_ROOT_SIGNATURE_VERSION_1_2: + { + /// @todo Uncomment this once the union member is added to the decoded struct: FieldToJson(jdata["Desc_1_2"], meta_struct.Desc_1_2, options); + GFXRECON_LOG_ERROR("Unknown D3D_ROOT_SIGNATURE_VERSION_1_2 in D3D12_VERSIONED_ROOT_SIGNATURE_DESC."); + break; + } + default: + { + FieldToJson(jdata[format::kNameWarning], "Unknown D3D_ROOT_SIGNATURE_VERSION in D3D12_VERSIONED_ROOT_SIGNATURE_DESC.", options); + break; + } + } + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_GPU_DESCRIPTOR_HANDLE* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const D3D12_GPU_DESCRIPTOR_HANDLE& decoded_value = *data->decoded_value; + const Decoded_D3D12_GPU_DESCRIPTOR_HANDLE& meta_struct = *data; + FieldToJson(jdata["ptr"], decoded_value.ptr, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_DISCARD_REGION* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const D3D12_DISCARD_REGION& decoded_value = *data->decoded_value; + const Decoded_D3D12_DISCARD_REGION& meta_struct = *data; + FieldToJson(jdata["NumRects"], decoded_value.NumRects, options); + FieldToJson(jdata["pRects"], meta_struct.pRects, options); + FieldToJson(jdata["FirstSubresource"], decoded_value.FirstSubresource, options); + FieldToJson(jdata["NumSubresources"], decoded_value.NumSubresources, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_QUERY_HEAP_DESC* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const D3D12_QUERY_HEAP_DESC& decoded_value = *data->decoded_value; + const Decoded_D3D12_QUERY_HEAP_DESC& meta_struct = *data; + FieldToJson(jdata["Type"], decoded_value.Type, options); + FieldToJson(jdata["Count"], decoded_value.Count, options); + FieldToJsonAsFixedWidthBinary(jdata["NodeMask"], decoded_value.NodeMask, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_QUERY_DATA_PIPELINE_STATISTICS* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const D3D12_QUERY_DATA_PIPELINE_STATISTICS& decoded_value = *data->decoded_value; + const Decoded_D3D12_QUERY_DATA_PIPELINE_STATISTICS& meta_struct = *data; + FieldToJson(jdata["IAVertices"], decoded_value.IAVertices, options); + FieldToJson(jdata["IAPrimitives"], decoded_value.IAPrimitives, options); + FieldToJson(jdata["VSInvocations"], decoded_value.VSInvocations, options); + FieldToJson(jdata["GSInvocations"], decoded_value.GSInvocations, options); + FieldToJson(jdata["GSPrimitives"], decoded_value.GSPrimitives, options); + FieldToJson(jdata["CInvocations"], decoded_value.CInvocations, options); + FieldToJson(jdata["CPrimitives"], decoded_value.CPrimitives, options); + FieldToJson(jdata["PSInvocations"], decoded_value.PSInvocations, options); + FieldToJson(jdata["HSInvocations"], decoded_value.HSInvocations, options); + FieldToJson(jdata["DSInvocations"], decoded_value.DSInvocations, options); + FieldToJson(jdata["CSInvocations"], decoded_value.CSInvocations, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_QUERY_DATA_PIPELINE_STATISTICS1* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const D3D12_QUERY_DATA_PIPELINE_STATISTICS1& decoded_value = *data->decoded_value; + const Decoded_D3D12_QUERY_DATA_PIPELINE_STATISTICS1& meta_struct = *data; + FieldToJson(jdata["IAVertices"], decoded_value.IAVertices, options); + FieldToJson(jdata["IAPrimitives"], decoded_value.IAPrimitives, options); + FieldToJson(jdata["VSInvocations"], decoded_value.VSInvocations, options); + FieldToJson(jdata["GSInvocations"], decoded_value.GSInvocations, options); + FieldToJson(jdata["GSPrimitives"], decoded_value.GSPrimitives, options); + FieldToJson(jdata["CInvocations"], decoded_value.CInvocations, options); + FieldToJson(jdata["CPrimitives"], decoded_value.CPrimitives, options); + FieldToJson(jdata["PSInvocations"], decoded_value.PSInvocations, options); + FieldToJson(jdata["HSInvocations"], decoded_value.HSInvocations, options); + FieldToJson(jdata["DSInvocations"], decoded_value.DSInvocations, options); + FieldToJson(jdata["CSInvocations"], decoded_value.CSInvocations, options); + FieldToJson(jdata["ASInvocations"], decoded_value.ASInvocations, options); + FieldToJson(jdata["MSInvocations"], decoded_value.MSInvocations, options); + FieldToJson(jdata["MSPrimitives"], decoded_value.MSPrimitives, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_QUERY_DATA_SO_STATISTICS* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const D3D12_QUERY_DATA_SO_STATISTICS& decoded_value = *data->decoded_value; + const Decoded_D3D12_QUERY_DATA_SO_STATISTICS& meta_struct = *data; + FieldToJson(jdata["NumPrimitivesWritten"], decoded_value.NumPrimitivesWritten, options); + FieldToJson(jdata["PrimitivesStorageNeeded"], decoded_value.PrimitivesStorageNeeded, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_STREAM_OUTPUT_BUFFER_VIEW* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const D3D12_STREAM_OUTPUT_BUFFER_VIEW& decoded_value = *data->decoded_value; + const Decoded_D3D12_STREAM_OUTPUT_BUFFER_VIEW& meta_struct = *data; + FieldToJsonAsHex(jdata["BufferLocation"], decoded_value.BufferLocation, options); + FieldToJson(jdata["SizeInBytes"], decoded_value.SizeInBytes, options); + FieldToJsonAsHex(jdata["BufferFilledSizeLocation"], decoded_value.BufferFilledSizeLocation, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_DRAW_ARGUMENTS* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const D3D12_DRAW_ARGUMENTS& decoded_value = *data->decoded_value; + const Decoded_D3D12_DRAW_ARGUMENTS& meta_struct = *data; + FieldToJson(jdata["VertexCountPerInstance"], decoded_value.VertexCountPerInstance, options); + FieldToJson(jdata["InstanceCount"], decoded_value.InstanceCount, options); + FieldToJson(jdata["StartVertexLocation"], decoded_value.StartVertexLocation, options); + FieldToJson(jdata["StartInstanceLocation"], decoded_value.StartInstanceLocation, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_DRAW_INDEXED_ARGUMENTS* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const D3D12_DRAW_INDEXED_ARGUMENTS& decoded_value = *data->decoded_value; + const Decoded_D3D12_DRAW_INDEXED_ARGUMENTS& meta_struct = *data; + FieldToJson(jdata["IndexCountPerInstance"], decoded_value.IndexCountPerInstance, options); + FieldToJson(jdata["InstanceCount"], decoded_value.InstanceCount, options); + FieldToJson(jdata["StartIndexLocation"], decoded_value.StartIndexLocation, options); + FieldToJson(jdata["BaseVertexLocation"], decoded_value.BaseVertexLocation, options); + FieldToJson(jdata["StartInstanceLocation"], decoded_value.StartInstanceLocation, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_DISPATCH_ARGUMENTS* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const D3D12_DISPATCH_ARGUMENTS& decoded_value = *data->decoded_value; + const Decoded_D3D12_DISPATCH_ARGUMENTS& meta_struct = *data; + FieldToJson(jdata["ThreadGroupCountX"], decoded_value.ThreadGroupCountX, options); + FieldToJson(jdata["ThreadGroupCountY"], decoded_value.ThreadGroupCountY, options); + FieldToJson(jdata["ThreadGroupCountZ"], decoded_value.ThreadGroupCountZ, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_VERTEX_BUFFER_VIEW* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const D3D12_VERTEX_BUFFER_VIEW& decoded_value = *data->decoded_value; + const Decoded_D3D12_VERTEX_BUFFER_VIEW& meta_struct = *data; + FieldToJsonAsHex(jdata["BufferLocation"], decoded_value.BufferLocation, options); + FieldToJson(jdata["SizeInBytes"], decoded_value.SizeInBytes, options); + FieldToJson(jdata["StrideInBytes"], decoded_value.StrideInBytes, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_INDEX_BUFFER_VIEW* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const D3D12_INDEX_BUFFER_VIEW& decoded_value = *data->decoded_value; + const Decoded_D3D12_INDEX_BUFFER_VIEW& meta_struct = *data; + FieldToJsonAsHex(jdata["BufferLocation"], decoded_value.BufferLocation, options); + FieldToJson(jdata["SizeInBytes"], decoded_value.SizeInBytes, options); + FieldToJson(jdata["Format"], decoded_value.Format, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_INDIRECT_ARGUMENT_DESC* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const D3D12_INDIRECT_ARGUMENT_DESC& decoded_value = *data->decoded_value; + const Decoded_D3D12_INDIRECT_ARGUMENT_DESC& meta_struct = *data; + FieldToJson(jdata["Type"], decoded_value.Type, options); + switch (decoded_value.Type) + { + case D3D12_INDIRECT_ARGUMENT_TYPE_DRAW: + case D3D12_INDIRECT_ARGUMENT_TYPE_DRAW_INDEXED: + case D3D12_INDIRECT_ARGUMENT_TYPE_DISPATCH: + { + // No data to output for draws and dispatches, they are parameterless tags. + break; + } + case D3D12_INDIRECT_ARGUMENT_TYPE_VERTEX_BUFFER_VIEW: + { + auto& vb = jdata["VertexBuffer"]; + FieldToJson(vb["Slot"], decoded_value.VertexBuffer.Slot, options); + break; + } + case D3D12_INDIRECT_ARGUMENT_TYPE_INDEX_BUFFER_VIEW: + { + // No parameters to output. + FieldToJson(jdata["comment"], "There must be a D3D12_INDIRECT_ARGUMENT_TYPE_DRAW_INDEXED in the same sequence.", options); + break; + } + case D3D12_INDIRECT_ARGUMENT_TYPE_CONSTANT: + { + auto& c = jdata["Constant"]; + FieldToJson(c["RootParameterIndex"], decoded_value.Constant.RootParameterIndex, options); + FieldToJson(c["DestOffsetIn32BitValues"], decoded_value.Constant.DestOffsetIn32BitValues, options); + FieldToJson(c["Num32BitValuesToSet"], decoded_value.Constant.Num32BitValuesToSet, options); + break; + } + case D3D12_INDIRECT_ARGUMENT_TYPE_CONSTANT_BUFFER_VIEW: + { + auto& cbv = jdata["ConstantBufferView"]; + FieldToJson(cbv["RootParameterIndex"], decoded_value.ConstantBufferView.RootParameterIndex, options); + break; + } + case D3D12_INDIRECT_ARGUMENT_TYPE_SHADER_RESOURCE_VIEW: + { + auto& srv = jdata["ShaderResourceView"]; + FieldToJson(srv["RootParameterIndex"], decoded_value.ShaderResourceView.RootParameterIndex, options); + break; + } + case D3D12_INDIRECT_ARGUMENT_TYPE_UNORDERED_ACCESS_VIEW: + { + auto& uav = jdata["UnorderedAccessView"]; + FieldToJson(uav["RootParameterIndex"], decoded_value.UnorderedAccessView.RootParameterIndex, options); + break; + } + case D3D12_INDIRECT_ARGUMENT_TYPE_DISPATCH_RAYS: + case D3D12_INDIRECT_ARGUMENT_TYPE_DISPATCH_MESH: + { + // No data to output for draws and dispatches, they are parameterless tags. + break; + } + default: + { + FieldToJson(jdata[format::kNameWarning], "Unknown D3D12_INDIRECT_ARGUMENT_TYPE in D3D12_INDIRECT_ARGUMENT_DESC.", options); + break; + } + } + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_COMMAND_SIGNATURE_DESC* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const D3D12_COMMAND_SIGNATURE_DESC& decoded_value = *data->decoded_value; + const Decoded_D3D12_COMMAND_SIGNATURE_DESC& meta_struct = *data; + FieldToJson(jdata["ByteStride"], decoded_value.ByteStride, options); + FieldToJson(jdata["NumArgumentDescs"], decoded_value.NumArgumentDescs, options); + FieldToJson(jdata["pArgumentDescs"], meta_struct.pArgumentDescs, options); + FieldToJsonAsFixedWidthBinary(jdata["NodeMask"], decoded_value.NodeMask, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_WRITEBUFFERIMMEDIATE_PARAMETER* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER& decoded_value = *data->decoded_value; + const Decoded_D3D12_WRITEBUFFERIMMEDIATE_PARAMETER& meta_struct = *data; + FieldToJsonAsHex(jdata["Dest"], decoded_value.Dest, options); + FieldToJson(jdata["Value"], decoded_value.Value, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_FEATURE_DATA_PROTECTED_RESOURCE_SESSION_SUPPORT* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const D3D12_FEATURE_DATA_PROTECTED_RESOURCE_SESSION_SUPPORT& decoded_value = *data->decoded_value; + const Decoded_D3D12_FEATURE_DATA_PROTECTED_RESOURCE_SESSION_SUPPORT& meta_struct = *data; + FieldToJson(jdata["NodeIndex"], decoded_value.NodeIndex, options); + FieldToJson_D3D12_PROTECTED_RESOURCE_SESSION_SUPPORT_FLAGS(jdata["Support"], decoded_value.Support, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_PROTECTED_RESOURCE_SESSION_DESC* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const D3D12_PROTECTED_RESOURCE_SESSION_DESC& decoded_value = *data->decoded_value; + const Decoded_D3D12_PROTECTED_RESOURCE_SESSION_DESC& meta_struct = *data; + FieldToJsonAsFixedWidthBinary(jdata["NodeMask"], decoded_value.NodeMask, options); + FieldToJson_D3D12_PROTECTED_RESOURCE_SESSION_FLAGS(jdata["Flags"], decoded_value.Flags, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_META_COMMAND_PARAMETER_DESC* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const D3D12_META_COMMAND_PARAMETER_DESC& decoded_value = *data->decoded_value; + const Decoded_D3D12_META_COMMAND_PARAMETER_DESC& meta_struct = *data; + FieldToJson(jdata["Name"], meta_struct.Name, options); + FieldToJson(jdata["Type"], decoded_value.Type, options); + FieldToJson_D3D12_META_COMMAND_PARAMETER_FLAGS(jdata["Flags"], decoded_value.Flags, options); + FieldToJson_D3D12_RESOURCE_STATES(jdata["RequiredResourceState"], decoded_value.RequiredResourceState, options); + FieldToJson(jdata["StructureOffset"], decoded_value.StructureOffset, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_META_COMMAND_DESC* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const D3D12_META_COMMAND_DESC& decoded_value = *data->decoded_value; + const Decoded_D3D12_META_COMMAND_DESC& meta_struct = *data; + FieldToJson(jdata["Id"], meta_struct.Id, options); + FieldToJson(jdata["Name"], meta_struct.Name, options); + FieldToJson_D3D12_GRAPHICS_STATES(jdata["InitializationDirtyState"], decoded_value.InitializationDirtyState, options); + FieldToJson_D3D12_GRAPHICS_STATES(jdata["ExecutionDirtyState"], decoded_value.ExecutionDirtyState, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_STATE_OBJECT_CONFIG* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const D3D12_STATE_OBJECT_CONFIG& decoded_value = *data->decoded_value; + const Decoded_D3D12_STATE_OBJECT_CONFIG& meta_struct = *data; + FieldToJson_D3D12_STATE_OBJECT_FLAGS(jdata["Flags"], decoded_value.Flags, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_GLOBAL_ROOT_SIGNATURE* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const D3D12_GLOBAL_ROOT_SIGNATURE& decoded_value = *data->decoded_value; + const Decoded_D3D12_GLOBAL_ROOT_SIGNATURE& meta_struct = *data; + FieldToJson(jdata["pGlobalRootSignature"], meta_struct.pGlobalRootSignature, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_LOCAL_ROOT_SIGNATURE* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const D3D12_LOCAL_ROOT_SIGNATURE& decoded_value = *data->decoded_value; + const Decoded_D3D12_LOCAL_ROOT_SIGNATURE& meta_struct = *data; + FieldToJson(jdata["pLocalRootSignature"], meta_struct.pLocalRootSignature, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_NODE_MASK* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const D3D12_NODE_MASK& decoded_value = *data->decoded_value; + const Decoded_D3D12_NODE_MASK& meta_struct = *data; + FieldToJsonAsFixedWidthBinary(jdata["NodeMask"], decoded_value.NodeMask, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_EXPORT_DESC* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const D3D12_EXPORT_DESC& decoded_value = *data->decoded_value; + const Decoded_D3D12_EXPORT_DESC& meta_struct = *data; + FieldToJson(jdata["Name"], meta_struct.Name, options); + FieldToJson(jdata["ExportToRename"], meta_struct.ExportToRename, options); + FieldToJson_D3D12_EXPORT_FLAGS(jdata["Flags"], decoded_value.Flags, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_DXIL_LIBRARY_DESC* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const D3D12_DXIL_LIBRARY_DESC& decoded_value = *data->decoded_value; + const Decoded_D3D12_DXIL_LIBRARY_DESC& meta_struct = *data; + FieldToJson(jdata["DXILLibrary"], meta_struct.DXILLibrary, options); + FieldToJson(jdata["NumExports"], decoded_value.NumExports, options); + FieldToJson(jdata["pExports"], meta_struct.pExports, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_EXISTING_COLLECTION_DESC* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const D3D12_EXISTING_COLLECTION_DESC& decoded_value = *data->decoded_value; + const Decoded_D3D12_EXISTING_COLLECTION_DESC& meta_struct = *data; + FieldToJson(jdata["pExistingCollection"], meta_struct.pExistingCollection, options); + FieldToJson(jdata["NumExports"], decoded_value.NumExports, options); + FieldToJson(jdata["pExports"], meta_struct.pExports, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_SUBOBJECT_TO_EXPORTS_ASSOCIATION* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const D3D12_SUBOBJECT_TO_EXPORTS_ASSOCIATION& decoded_value = *data->decoded_value; + const Decoded_D3D12_SUBOBJECT_TO_EXPORTS_ASSOCIATION& meta_struct = *data; + FieldToJson(jdata["pSubobjectToAssociate"], meta_struct.pSubobjectToAssociate, options); + FieldToJson(jdata["NumExports"], decoded_value.NumExports, options); + FieldToJson(jdata["pExports"], meta_struct.pExports, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_DXIL_SUBOBJECT_TO_EXPORTS_ASSOCIATION* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const D3D12_DXIL_SUBOBJECT_TO_EXPORTS_ASSOCIATION& decoded_value = *data->decoded_value; + const Decoded_D3D12_DXIL_SUBOBJECT_TO_EXPORTS_ASSOCIATION& meta_struct = *data; + FieldToJson(jdata["SubobjectToAssociate"], meta_struct.SubobjectToAssociate, options); + FieldToJson(jdata["NumExports"], decoded_value.NumExports, options); + FieldToJson(jdata["pExports"], meta_struct.pExports, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_HIT_GROUP_DESC* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const D3D12_HIT_GROUP_DESC& decoded_value = *data->decoded_value; + const Decoded_D3D12_HIT_GROUP_DESC& meta_struct = *data; + FieldToJson(jdata["HitGroupExport"], meta_struct.HitGroupExport, options); + FieldToJson(jdata["Type"], decoded_value.Type, options); + FieldToJson(jdata["AnyHitShaderImport"], meta_struct.AnyHitShaderImport, options); + FieldToJson(jdata["ClosestHitShaderImport"], meta_struct.ClosestHitShaderImport, options); + FieldToJson(jdata["IntersectionShaderImport"], meta_struct.IntersectionShaderImport, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_RAYTRACING_SHADER_CONFIG* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const D3D12_RAYTRACING_SHADER_CONFIG& decoded_value = *data->decoded_value; + const Decoded_D3D12_RAYTRACING_SHADER_CONFIG& meta_struct = *data; + FieldToJson(jdata["MaxPayloadSizeInBytes"], decoded_value.MaxPayloadSizeInBytes, options); + FieldToJson(jdata["MaxAttributeSizeInBytes"], decoded_value.MaxAttributeSizeInBytes, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_RAYTRACING_PIPELINE_CONFIG* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const D3D12_RAYTRACING_PIPELINE_CONFIG& decoded_value = *data->decoded_value; + const Decoded_D3D12_RAYTRACING_PIPELINE_CONFIG& meta_struct = *data; + FieldToJson(jdata["MaxTraceRecursionDepth"], decoded_value.MaxTraceRecursionDepth, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_RAYTRACING_PIPELINE_CONFIG1* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const D3D12_RAYTRACING_PIPELINE_CONFIG1& decoded_value = *data->decoded_value; + const Decoded_D3D12_RAYTRACING_PIPELINE_CONFIG1& meta_struct = *data; + FieldToJson(jdata["MaxTraceRecursionDepth"], decoded_value.MaxTraceRecursionDepth, options); + FieldToJson_D3D12_RAYTRACING_PIPELINE_FLAGS(jdata["Flags"], decoded_value.Flags, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_STATE_OBJECT_DESC* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const D3D12_STATE_OBJECT_DESC& decoded_value = *data->decoded_value; + const Decoded_D3D12_STATE_OBJECT_DESC& meta_struct = *data; + FieldToJson(jdata["Type"], decoded_value.Type, options); + FieldToJson(jdata["NumSubobjects"], decoded_value.NumSubobjects, options); + FieldToJson(jdata["pSubobjects"], meta_struct.pSubobjects, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_GPU_VIRTUAL_ADDRESS_AND_STRIDE* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const D3D12_GPU_VIRTUAL_ADDRESS_AND_STRIDE& decoded_value = *data->decoded_value; + const Decoded_D3D12_GPU_VIRTUAL_ADDRESS_AND_STRIDE& meta_struct = *data; + FieldToJsonAsHex(jdata["StartAddress"], decoded_value.StartAddress, options); + FieldToJson(jdata["StrideInBytes"], decoded_value.StrideInBytes, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_GPU_VIRTUAL_ADDRESS_RANGE* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const D3D12_GPU_VIRTUAL_ADDRESS_RANGE& decoded_value = *data->decoded_value; + const Decoded_D3D12_GPU_VIRTUAL_ADDRESS_RANGE& meta_struct = *data; + FieldToJsonAsHex(jdata["StartAddress"], decoded_value.StartAddress, options); + FieldToJson(jdata["SizeInBytes"], decoded_value.SizeInBytes, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_GPU_VIRTUAL_ADDRESS_RANGE_AND_STRIDE* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const D3D12_GPU_VIRTUAL_ADDRESS_RANGE_AND_STRIDE& decoded_value = *data->decoded_value; + const Decoded_D3D12_GPU_VIRTUAL_ADDRESS_RANGE_AND_STRIDE& meta_struct = *data; + FieldToJsonAsHex(jdata["StartAddress"], decoded_value.StartAddress, options); + FieldToJson(jdata["SizeInBytes"], decoded_value.SizeInBytes, options); + FieldToJson(jdata["StrideInBytes"], decoded_value.StrideInBytes, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_RAYTRACING_GEOMETRY_TRIANGLES_DESC* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const D3D12_RAYTRACING_GEOMETRY_TRIANGLES_DESC& decoded_value = *data->decoded_value; + const Decoded_D3D12_RAYTRACING_GEOMETRY_TRIANGLES_DESC& meta_struct = *data; + FieldToJsonAsHex(jdata["Transform3x4"], decoded_value.Transform3x4, options); + FieldToJson(jdata["IndexFormat"], decoded_value.IndexFormat, options); + FieldToJson(jdata["VertexFormat"], decoded_value.VertexFormat, options); + FieldToJson(jdata["IndexCount"], decoded_value.IndexCount, options); + FieldToJson(jdata["VertexCount"], decoded_value.VertexCount, options); + FieldToJsonAsHex(jdata["IndexBuffer"], decoded_value.IndexBuffer, options); + FieldToJson(jdata["VertexBuffer"], meta_struct.VertexBuffer, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_RAYTRACING_AABB* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const D3D12_RAYTRACING_AABB& decoded_value = *data->decoded_value; + const Decoded_D3D12_RAYTRACING_AABB& meta_struct = *data; + FieldToJson(jdata["MinX"], decoded_value.MinX, options); + FieldToJson(jdata["MinY"], decoded_value.MinY, options); + FieldToJson(jdata["MinZ"], decoded_value.MinZ, options); + FieldToJson(jdata["MaxX"], decoded_value.MaxX, options); + FieldToJson(jdata["MaxY"], decoded_value.MaxY, options); + FieldToJson(jdata["MaxZ"], decoded_value.MaxZ, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_RAYTRACING_GEOMETRY_AABBS_DESC* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const D3D12_RAYTRACING_GEOMETRY_AABBS_DESC& decoded_value = *data->decoded_value; + const Decoded_D3D12_RAYTRACING_GEOMETRY_AABBS_DESC& meta_struct = *data; + FieldToJson(jdata["AABBCount"], decoded_value.AABBCount, options); + FieldToJson(jdata["AABBs"], meta_struct.AABBs, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC& decoded_value = *data->decoded_value; + const Decoded_D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC& meta_struct = *data; + FieldToJsonAsHex(jdata["DestBuffer"], decoded_value.DestBuffer, options); + FieldToJson(jdata["InfoType"], decoded_value.InfoType, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_COMPACTED_SIZE_DESC* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_COMPACTED_SIZE_DESC& decoded_value = *data->decoded_value; + const Decoded_D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_COMPACTED_SIZE_DESC& meta_struct = *data; + FieldToJson(jdata["CompactedSizeInBytes"], decoded_value.CompactedSizeInBytes, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_TOOLS_VISUALIZATION_DESC* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_TOOLS_VISUALIZATION_DESC& decoded_value = *data->decoded_value; + const Decoded_D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_TOOLS_VISUALIZATION_DESC& meta_struct = *data; + FieldToJson(jdata["DecodedSizeInBytes"], decoded_value.DecodedSizeInBytes, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_TOOLS_VISUALIZATION_HEADER* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_TOOLS_VISUALIZATION_HEADER& decoded_value = *data->decoded_value; + const Decoded_D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_TOOLS_VISUALIZATION_HEADER& meta_struct = *data; + FieldToJson(jdata["Type"], decoded_value.Type, options); + FieldToJson(jdata["NumDescs"], decoded_value.NumDescs, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_SERIALIZATION_DESC* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_SERIALIZATION_DESC& decoded_value = *data->decoded_value; + const Decoded_D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_SERIALIZATION_DESC& meta_struct = *data; + FieldToJson(jdata["SerializedSizeInBytes"], decoded_value.SerializedSizeInBytes, options); + FieldToJson(jdata["NumBottomLevelAccelerationStructurePointers"], decoded_value.NumBottomLevelAccelerationStructurePointers, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_SERIALIZED_DATA_DRIVER_MATCHING_IDENTIFIER* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const D3D12_SERIALIZED_DATA_DRIVER_MATCHING_IDENTIFIER& decoded_value = *data->decoded_value; + const Decoded_D3D12_SERIALIZED_DATA_DRIVER_MATCHING_IDENTIFIER& meta_struct = *data; + FieldToJson(jdata["DriverOpaqueGUID"], meta_struct.DriverOpaqueGUID, options); + FieldToJson(jdata["DriverOpaqueVersioningData"], meta_struct.DriverOpaqueVersioningData, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_SERIALIZED_RAYTRACING_ACCELERATION_STRUCTURE_HEADER* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const D3D12_SERIALIZED_RAYTRACING_ACCELERATION_STRUCTURE_HEADER& decoded_value = *data->decoded_value; + const Decoded_D3D12_SERIALIZED_RAYTRACING_ACCELERATION_STRUCTURE_HEADER& meta_struct = *data; + FieldToJson(jdata["DriverMatchingIdentifier"], meta_struct.DriverMatchingIdentifier, options); + FieldToJson(jdata["SerializedSizeInBytesIncludingHeader"], decoded_value.SerializedSizeInBytesIncludingHeader, options); + FieldToJson(jdata["DeserializedSizeInBytes"], decoded_value.DeserializedSizeInBytes, options); + FieldToJson(jdata["NumBottomLevelAccelerationStructurePointersAfterHeader"], decoded_value.NumBottomLevelAccelerationStructurePointersAfterHeader, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_CURRENT_SIZE_DESC* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_CURRENT_SIZE_DESC& decoded_value = *data->decoded_value; + const Decoded_D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_CURRENT_SIZE_DESC& meta_struct = *data; + FieldToJson(jdata["CurrentSizeInBytes"], decoded_value.CurrentSizeInBytes, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_RAYTRACING_INSTANCE_DESC* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const D3D12_RAYTRACING_INSTANCE_DESC& decoded_value = *data->decoded_value; + const Decoded_D3D12_RAYTRACING_INSTANCE_DESC& meta_struct = *data; + FieldToJson(jdata["Transform"], meta_struct.Transform, options); + FieldToJson(jdata["InstanceID"], decoded_value.InstanceID, options); + FieldToJsonAsFixedWidthBinary(jdata["InstanceMask"], decoded_value.InstanceMask, options); + FieldToJson(jdata["InstanceContributionToHitGroupIndex"], decoded_value.InstanceContributionToHitGroupIndex, options); + FieldToJson(jdata["Flags"], decoded_value.Flags, options); + FieldToJsonAsHex(jdata["AccelerationStructure"], decoded_value.AccelerationStructure, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_RAYTRACING_GEOMETRY_DESC* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const D3D12_RAYTRACING_GEOMETRY_DESC& decoded_value = *data->decoded_value; + const Decoded_D3D12_RAYTRACING_GEOMETRY_DESC& meta_struct = *data; + FieldToJson(jdata["Type"], decoded_value.Type, options); + FieldToJson_D3D12_RAYTRACING_GEOMETRY_FLAGS(jdata["Flags"], decoded_value.Flags, options); + switch(decoded_value.Type) + { + case D3D12_RAYTRACING_GEOMETRY_TYPE_TRIANGLES: + { + FieldToJson(jdata["Triangles"], meta_struct.Triangles, options); + break; + } + case D3D12_RAYTRACING_GEOMETRY_TYPE_PROCEDURAL_PRIMITIVE_AABBS: + { + FieldToJson(jdata["AABBs"], meta_struct.AABBs, options); + break; + } + default: + { + FieldToJson(jdata[format::kNameWarning], "Unknown D3D12_RAYTRACING_GEOMETRY_TYPE in D3D12_RAYTRACING_GEOMETRY_DESC.", options); + break; + } + } + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS& decoded_value = *data->decoded_value; + const Decoded_D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS& meta_struct = *data; + FieldToJson(jdata["Type"], decoded_value.Type, options); + FieldToJson_D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAGS(jdata["Flags"], decoded_value.Flags, options); + FieldToJson(jdata["NumDescs"], decoded_value.NumDescs, options); + FieldToJson(jdata["DescsLayout"], decoded_value.DescsLayout, options); + switch(decoded_value.Type) + { + case D3D12_RAYTRACING_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL: + { + FieldToJsonAsHex(jdata["InstanceDescs"], decoded_value.InstanceDescs, options); + break; + } + case D3D12_RAYTRACING_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL: + { + switch(decoded_value.DescsLayout) + { + case D3D12_ELEMENTS_LAYOUT_ARRAY: + { + FieldToJson(jdata["pGeometryDescs"], meta_struct.pGeometryDescs, options); + break; + } + case D3D12_ELEMENTS_LAYOUT_ARRAY_OF_POINTERS: + { + FieldToJson(jdata["ppGeometryDescs"], meta_struct.ppGeometryDescs, options); + break; + } + } + break; + } + default: + { + FieldToJson(jdata[format::kNameWarning], "Unknown D3D12_RAYTRACING_ACCELERATION_STRUCTURE_TYPE in D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS.", options); + break; + } + } + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_DESC* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_DESC& decoded_value = *data->decoded_value; + const Decoded_D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_DESC& meta_struct = *data; + FieldToJsonAsHex(jdata["DestAccelerationStructureData"], decoded_value.DestAccelerationStructureData, options); + FieldToJson(jdata["Inputs"], meta_struct.Inputs, options); + FieldToJsonAsHex(jdata["SourceAccelerationStructureData"], decoded_value.SourceAccelerationStructureData, options); + FieldToJsonAsHex(jdata["ScratchAccelerationStructureData"], decoded_value.ScratchAccelerationStructureData, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_RAYTRACING_ACCELERATION_STRUCTURE_PREBUILD_INFO* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_PREBUILD_INFO& decoded_value = *data->decoded_value; + const Decoded_D3D12_RAYTRACING_ACCELERATION_STRUCTURE_PREBUILD_INFO& meta_struct = *data; + FieldToJson(jdata["ResultDataMaxSizeInBytes"], decoded_value.ResultDataMaxSizeInBytes, options); + FieldToJson(jdata["ScratchDataSizeInBytes"], decoded_value.ScratchDataSizeInBytes, options); + FieldToJson(jdata["UpdateScratchDataSizeInBytes"], decoded_value.UpdateScratchDataSizeInBytes, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_AUTO_BREADCRUMB_NODE* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const D3D12_AUTO_BREADCRUMB_NODE& decoded_value = *data->decoded_value; + const Decoded_D3D12_AUTO_BREADCRUMB_NODE& meta_struct = *data; + FieldToJson(jdata["pCommandListDebugNameA"], meta_struct.pCommandListDebugNameA, options); + FieldToJson(jdata["pCommandListDebugNameW"], meta_struct.pCommandListDebugNameW, options); + FieldToJson(jdata["pCommandQueueDebugNameA"], meta_struct.pCommandQueueDebugNameA, options); + FieldToJson(jdata["pCommandQueueDebugNameW"], meta_struct.pCommandQueueDebugNameW, options); + FieldToJson(jdata["pCommandList"], meta_struct.pCommandList, options); + FieldToJson(jdata["pCommandQueue"], meta_struct.pCommandQueue, options); + FieldToJson(jdata["BreadcrumbCount"], decoded_value.BreadcrumbCount, options); + FieldToJson(jdata["pLastBreadcrumbValue"], meta_struct.pLastBreadcrumbValue, options); + FieldToJson(jdata["pCommandHistory"], meta_struct.pCommandHistory, options); + FieldToJson(jdata["pNext"], meta_struct.pNext, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_DRED_BREADCRUMB_CONTEXT* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const D3D12_DRED_BREADCRUMB_CONTEXT& decoded_value = *data->decoded_value; + const Decoded_D3D12_DRED_BREADCRUMB_CONTEXT& meta_struct = *data; + FieldToJson(jdata["BreadcrumbIndex"], decoded_value.BreadcrumbIndex, options); + FieldToJson(jdata["pContextString"], meta_struct.pContextString, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_AUTO_BREADCRUMB_NODE1* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const D3D12_AUTO_BREADCRUMB_NODE1& decoded_value = *data->decoded_value; + const Decoded_D3D12_AUTO_BREADCRUMB_NODE1& meta_struct = *data; + FieldToJson(jdata["pCommandListDebugNameA"], meta_struct.pCommandListDebugNameA, options); + FieldToJson(jdata["pCommandListDebugNameW"], meta_struct.pCommandListDebugNameW, options); + FieldToJson(jdata["pCommandQueueDebugNameA"], meta_struct.pCommandQueueDebugNameA, options); + FieldToJson(jdata["pCommandQueueDebugNameW"], meta_struct.pCommandQueueDebugNameW, options); + FieldToJson(jdata["pCommandList"], meta_struct.pCommandList, options); + FieldToJson(jdata["pCommandQueue"], meta_struct.pCommandQueue, options); + FieldToJson(jdata["BreadcrumbCount"], decoded_value.BreadcrumbCount, options); + FieldToJson(jdata["pLastBreadcrumbValue"], meta_struct.pLastBreadcrumbValue, options); + FieldToJson(jdata["pCommandHistory"], meta_struct.pCommandHistory, options); + FieldToJson(jdata["pNext"], meta_struct.pNext, options); + FieldToJson(jdata["BreadcrumbContextsCount"], decoded_value.BreadcrumbContextsCount, options); + FieldToJson(jdata["pBreadcrumbContexts"], meta_struct.pBreadcrumbContexts, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_DEVICE_REMOVED_EXTENDED_DATA* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const D3D12_DEVICE_REMOVED_EXTENDED_DATA& decoded_value = *data->decoded_value; + const Decoded_D3D12_DEVICE_REMOVED_EXTENDED_DATA& meta_struct = *data; + FieldToJson_D3D12_DRED_FLAGS(jdata["Flags"], decoded_value.Flags, options); + FieldToJson(jdata["pHeadAutoBreadcrumbNode"], meta_struct.pHeadAutoBreadcrumbNode, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_DRED_ALLOCATION_NODE* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const D3D12_DRED_ALLOCATION_NODE& decoded_value = *data->decoded_value; + const Decoded_D3D12_DRED_ALLOCATION_NODE& meta_struct = *data; + FieldToJson(jdata["ObjectNameA"], meta_struct.ObjectNameA, options); + FieldToJson(jdata["ObjectNameW"], meta_struct.ObjectNameW, options); + FieldToJson(jdata["AllocationType"], decoded_value.AllocationType, options); + FieldToJson(jdata["pNext"], meta_struct.pNext, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_DRED_ALLOCATION_NODE1* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const D3D12_DRED_ALLOCATION_NODE1& decoded_value = *data->decoded_value; + const Decoded_D3D12_DRED_ALLOCATION_NODE1& meta_struct = *data; + FieldToJson(jdata["ObjectNameA"], meta_struct.ObjectNameA, options); + FieldToJson(jdata["ObjectNameW"], meta_struct.ObjectNameW, options); + FieldToJson(jdata["AllocationType"], decoded_value.AllocationType, options); + FieldToJson(jdata["pNext"], meta_struct.pNext, options); + FieldToJson(jdata["pObject"], meta_struct.pObject, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT& decoded_value = *data->decoded_value; + const Decoded_D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT& meta_struct = *data; + FieldToJson(jdata["pHeadAutoBreadcrumbNode"], meta_struct.pHeadAutoBreadcrumbNode, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT1* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT1& decoded_value = *data->decoded_value; + const Decoded_D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT1& meta_struct = *data; + FieldToJson(jdata["pHeadAutoBreadcrumbNode"], meta_struct.pHeadAutoBreadcrumbNode, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_DRED_PAGE_FAULT_OUTPUT* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const D3D12_DRED_PAGE_FAULT_OUTPUT& decoded_value = *data->decoded_value; + const Decoded_D3D12_DRED_PAGE_FAULT_OUTPUT& meta_struct = *data; + FieldToJsonAsHex(jdata["PageFaultVA"], decoded_value.PageFaultVA, options); + FieldToJson(jdata["pHeadExistingAllocationNode"], meta_struct.pHeadExistingAllocationNode, options); + FieldToJson(jdata["pHeadRecentFreedAllocationNode"], meta_struct.pHeadRecentFreedAllocationNode, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_DRED_PAGE_FAULT_OUTPUT1* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const D3D12_DRED_PAGE_FAULT_OUTPUT1& decoded_value = *data->decoded_value; + const Decoded_D3D12_DRED_PAGE_FAULT_OUTPUT1& meta_struct = *data; + FieldToJsonAsHex(jdata["PageFaultVA"], decoded_value.PageFaultVA, options); + FieldToJson(jdata["pHeadExistingAllocationNode"], meta_struct.pHeadExistingAllocationNode, options); + FieldToJson(jdata["pHeadRecentFreedAllocationNode"], meta_struct.pHeadRecentFreedAllocationNode, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_DRED_PAGE_FAULT_OUTPUT2* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const D3D12_DRED_PAGE_FAULT_OUTPUT2& decoded_value = *data->decoded_value; + const Decoded_D3D12_DRED_PAGE_FAULT_OUTPUT2& meta_struct = *data; + FieldToJsonAsHex(jdata["PageFaultVA"], decoded_value.PageFaultVA, options); + FieldToJson(jdata["pHeadExistingAllocationNode"], meta_struct.pHeadExistingAllocationNode, options); + FieldToJson(jdata["pHeadRecentFreedAllocationNode"], meta_struct.pHeadRecentFreedAllocationNode, options); + FieldToJson_D3D12_DRED_PAGE_FAULT_FLAGS(jdata["PageFaultFlags"], decoded_value.PageFaultFlags, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_DEVICE_REMOVED_EXTENDED_DATA1* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const D3D12_DEVICE_REMOVED_EXTENDED_DATA1& decoded_value = *data->decoded_value; + const Decoded_D3D12_DEVICE_REMOVED_EXTENDED_DATA1& meta_struct = *data; + HresultToJson(jdata["DeviceRemovedReason"], decoded_value.DeviceRemovedReason, options); + FieldToJson(jdata["AutoBreadcrumbsOutput"], meta_struct.AutoBreadcrumbsOutput, options); + FieldToJson(jdata["PageFaultOutput"], meta_struct.PageFaultOutput, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_DEVICE_REMOVED_EXTENDED_DATA2* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const D3D12_DEVICE_REMOVED_EXTENDED_DATA2& decoded_value = *data->decoded_value; + const Decoded_D3D12_DEVICE_REMOVED_EXTENDED_DATA2& meta_struct = *data; + HresultToJson(jdata["DeviceRemovedReason"], decoded_value.DeviceRemovedReason, options); + FieldToJson(jdata["AutoBreadcrumbsOutput"], meta_struct.AutoBreadcrumbsOutput, options); + FieldToJson(jdata["PageFaultOutput"], meta_struct.PageFaultOutput, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_DEVICE_REMOVED_EXTENDED_DATA3* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const D3D12_DEVICE_REMOVED_EXTENDED_DATA3& decoded_value = *data->decoded_value; + const Decoded_D3D12_DEVICE_REMOVED_EXTENDED_DATA3& meta_struct = *data; + HresultToJson(jdata["DeviceRemovedReason"], decoded_value.DeviceRemovedReason, options); + FieldToJson(jdata["AutoBreadcrumbsOutput"], meta_struct.AutoBreadcrumbsOutput, options); + FieldToJson(jdata["PageFaultOutput"], meta_struct.PageFaultOutput, options); + FieldToJson(jdata["DeviceState"], decoded_value.DeviceState, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_VERSIONED_DEVICE_REMOVED_EXTENDED_DATA* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const D3D12_VERSIONED_DEVICE_REMOVED_EXTENDED_DATA& decoded_value = *data->decoded_value; + const Decoded_D3D12_VERSIONED_DEVICE_REMOVED_EXTENDED_DATA& meta_struct = *data; + FieldToJson(jdata["Version"], decoded_value.Version, options); + switch(decoded_value.Version) + { + case D3D12_DRED_VERSION_1_0: + { + FieldToJson(jdata["Dred_1_0"], meta_struct.Dred_1_0, options); + break; + } + case D3D12_DRED_VERSION_1_1: + { + FieldToJson(jdata["Dred_1_1"], meta_struct.Dred_1_1, options); + break; + } + case D3D12_DRED_VERSION_1_2: + { + FieldToJson(jdata["Dred_1_2"], meta_struct.Dred_1_2, options); + break; + } + case D3D12_DRED_VERSION_1_3: + { + // This field was missing in the custom struct at time of writing. + // See issue and revise this codegen by uncommenting line below when the issue + // is fixed + // FieldToJson(jdata["Dred_1_3"], meta_struct.Dred_1_3, options); + FieldToJson(jdata[format::kNameWarning], "Dred_1_3 is not supported by GFXR at this time. Please file an issue quoting this text if this is a blocker for you.", options); + break; + } + default: + { + FieldToJson(jdata[format::kNameWarning], "Unknown D3D12_DRED_VERSION in D3D12_VERSIONED_DEVICE_REMOVED_EXTENDED_DATA.", options); + break; + } + } + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_FEATURE_DATA_PROTECTED_RESOURCE_SESSION_TYPE_COUNT* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const D3D12_FEATURE_DATA_PROTECTED_RESOURCE_SESSION_TYPE_COUNT& decoded_value = *data->decoded_value; + const Decoded_D3D12_FEATURE_DATA_PROTECTED_RESOURCE_SESSION_TYPE_COUNT& meta_struct = *data; + FieldToJson(jdata["NodeIndex"], decoded_value.NodeIndex, options); + FieldToJson(jdata["Count"], decoded_value.Count, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_FEATURE_DATA_PROTECTED_RESOURCE_SESSION_TYPES* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const D3D12_FEATURE_DATA_PROTECTED_RESOURCE_SESSION_TYPES& decoded_value = *data->decoded_value; + const Decoded_D3D12_FEATURE_DATA_PROTECTED_RESOURCE_SESSION_TYPES& meta_struct = *data; + FieldToJson(jdata["NodeIndex"], decoded_value.NodeIndex, options); + FieldToJson(jdata["Count"], decoded_value.Count, options); + FieldToJson(jdata["pTypes"], meta_struct.pTypes, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_PROTECTED_RESOURCE_SESSION_DESC1* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const D3D12_PROTECTED_RESOURCE_SESSION_DESC1& decoded_value = *data->decoded_value; + const Decoded_D3D12_PROTECTED_RESOURCE_SESSION_DESC1& meta_struct = *data; + FieldToJsonAsFixedWidthBinary(jdata["NodeMask"], decoded_value.NodeMask, options); + FieldToJson_D3D12_PROTECTED_RESOURCE_SESSION_FLAGS(jdata["Flags"], decoded_value.Flags, options); + FieldToJson(jdata["ProtectionType"], meta_struct.ProtectionType, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_RENDER_PASS_BEGINNING_ACCESS_CLEAR_PARAMETERS* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const D3D12_RENDER_PASS_BEGINNING_ACCESS_CLEAR_PARAMETERS& decoded_value = *data->decoded_value; + const Decoded_D3D12_RENDER_PASS_BEGINNING_ACCESS_CLEAR_PARAMETERS& meta_struct = *data; + FieldToJson(jdata["ClearValue"], meta_struct.ClearValue, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_RENDER_PASS_BEGINNING_ACCESS_PRESERVE_LOCAL_PARAMETERS* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const D3D12_RENDER_PASS_BEGINNING_ACCESS_PRESERVE_LOCAL_PARAMETERS& decoded_value = *data->decoded_value; + const Decoded_D3D12_RENDER_PASS_BEGINNING_ACCESS_PRESERVE_LOCAL_PARAMETERS& meta_struct = *data; + FieldToJson(jdata["AdditionalWidth"], decoded_value.AdditionalWidth, options); + FieldToJson(jdata["AdditionalHeight"], decoded_value.AdditionalHeight, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_RENDER_PASS_BEGINNING_ACCESS* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const D3D12_RENDER_PASS_BEGINNING_ACCESS& decoded_value = *data->decoded_value; + const Decoded_D3D12_RENDER_PASS_BEGINNING_ACCESS& meta_struct = *data; + FieldToJson(jdata["Type"], decoded_value.Type, options); + switch(decoded_value.Type) + { + case D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE_CLEAR: + { + FieldToJson(jdata["Clear"], meta_struct.Clear, options); + break; + } + case D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE_PRESERVE_LOCAL_RENDER: + if(decoded_value.PreserveLocal.AdditionalWidth != 0U || decoded_value.PreserveLocal.AdditionalHeight != 0U) + { + FieldToJson(jdata[format::kNameWarning], "Additional width and height should be zero (see DirectX Specs).", options); + } + case D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE_PRESERVE_LOCAL_SRV: + case D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE_PRESERVE_LOCAL_UAV: + { + FieldToJson(jdata["PreserveLocal"], decoded_value.PreserveLocal, options); + break; + } + case D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE_DISCARD: + case D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE_PRESERVE: + case D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE_NO_ACCESS: + // No parameters to these cases. + break; + + default: + { + FieldToJson(jdata[format::kNameWarning], "Unknown D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE in D3D12_RENDER_PASS_BEGINNING_ACCESS.", options); + break; + } + } + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_RENDER_PASS_ENDING_ACCESS_RESOLVE_SUBRESOURCE_PARAMETERS* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const D3D12_RENDER_PASS_ENDING_ACCESS_RESOLVE_SUBRESOURCE_PARAMETERS& decoded_value = *data->decoded_value; + const Decoded_D3D12_RENDER_PASS_ENDING_ACCESS_RESOLVE_SUBRESOURCE_PARAMETERS& meta_struct = *data; + FieldToJson(jdata["SrcSubresource"], decoded_value.SrcSubresource, options); + FieldToJson(jdata["DstSubresource"], decoded_value.DstSubresource, options); + FieldToJson(jdata["DstX"], decoded_value.DstX, options); + FieldToJson(jdata["DstY"], decoded_value.DstY, options); + FieldToJson(jdata["SrcRect"], meta_struct.SrcRect, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_RENDER_PASS_ENDING_ACCESS_RESOLVE_PARAMETERS* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const D3D12_RENDER_PASS_ENDING_ACCESS_RESOLVE_PARAMETERS& decoded_value = *data->decoded_value; + const Decoded_D3D12_RENDER_PASS_ENDING_ACCESS_RESOLVE_PARAMETERS& meta_struct = *data; + FieldToJson(jdata["pSrcResource"], meta_struct.pSrcResource, options); + FieldToJson(jdata["pDstResource"], meta_struct.pDstResource, options); + FieldToJson(jdata["SubresourceCount"], decoded_value.SubresourceCount, options); + FieldToJson(jdata["pSubresourceParameters"], meta_struct.pSubresourceParameters, options); + FieldToJson(jdata["Format"], decoded_value.Format, options); + FieldToJson(jdata["ResolveMode"], decoded_value.ResolveMode, options); + Bool32ToJson(jdata["PreserveResolveSource"], decoded_value.PreserveResolveSource, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_RENDER_PASS_ENDING_ACCESS_PRESERVE_LOCAL_PARAMETERS* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const D3D12_RENDER_PASS_ENDING_ACCESS_PRESERVE_LOCAL_PARAMETERS& decoded_value = *data->decoded_value; + const Decoded_D3D12_RENDER_PASS_ENDING_ACCESS_PRESERVE_LOCAL_PARAMETERS& meta_struct = *data; + FieldToJson(jdata["AdditionalWidth"], decoded_value.AdditionalWidth, options); + FieldToJson(jdata["AdditionalHeight"], decoded_value.AdditionalHeight, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_RENDER_PASS_ENDING_ACCESS* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const D3D12_RENDER_PASS_ENDING_ACCESS& decoded_value = *data->decoded_value; + const Decoded_D3D12_RENDER_PASS_ENDING_ACCESS& meta_struct = *data; + FieldToJson(jdata["Type"], decoded_value.Type, options); + switch(decoded_value.Type) + { + case D3D12_RENDER_PASS_ENDING_ACCESS_TYPE_DISCARD: + case D3D12_RENDER_PASS_ENDING_ACCESS_TYPE_PRESERVE: + case D3D12_RENDER_PASS_ENDING_ACCESS_TYPE_NO_ACCESS: + // No parameters to these cases. + break; + + case D3D12_RENDER_PASS_ENDING_ACCESS_TYPE_RESOLVE: + { + FieldToJson(jdata["Resolve"], meta_struct.Resolve, options); + break; + } + case D3D12_RENDER_PASS_ENDING_ACCESS_TYPE_PRESERVE_LOCAL_RENDER: + case D3D12_RENDER_PASS_ENDING_ACCESS_TYPE_PRESERVE_LOCAL_SRV: + case D3D12_RENDER_PASS_ENDING_ACCESS_TYPE_PRESERVE_LOCAL_UAV: + { + FieldToJson(jdata["PreserveLocal"], decoded_value.PreserveLocal, options); + break; + } + + default: + { + FieldToJson(jdata[format::kNameWarning], "Unknown D3D12_RENDER_PASS_ENDING_ACCESS_TYPE in D3D12_RENDER_PASS_ENDING_ACCESS.", options); + break; + } + } + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_RENDER_PASS_RENDER_TARGET_DESC* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const D3D12_RENDER_PASS_RENDER_TARGET_DESC& decoded_value = *data->decoded_value; + const Decoded_D3D12_RENDER_PASS_RENDER_TARGET_DESC& meta_struct = *data; + FieldToJson(jdata["cpuDescriptor"], meta_struct.cpuDescriptor, options); + FieldToJson(jdata["BeginningAccess"], meta_struct.BeginningAccess, options); + FieldToJson(jdata["EndingAccess"], meta_struct.EndingAccess, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_RENDER_PASS_DEPTH_STENCIL_DESC* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const D3D12_RENDER_PASS_DEPTH_STENCIL_DESC& decoded_value = *data->decoded_value; + const Decoded_D3D12_RENDER_PASS_DEPTH_STENCIL_DESC& meta_struct = *data; + FieldToJson(jdata["cpuDescriptor"], meta_struct.cpuDescriptor, options); + FieldToJson(jdata["DepthBeginningAccess"], meta_struct.DepthBeginningAccess, options); + FieldToJson(jdata["StencilBeginningAccess"], meta_struct.StencilBeginningAccess, options); + FieldToJson(jdata["DepthEndingAccess"], meta_struct.DepthEndingAccess, options); + FieldToJson(jdata["StencilEndingAccess"], meta_struct.StencilEndingAccess, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_DISPATCH_RAYS_DESC* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const D3D12_DISPATCH_RAYS_DESC& decoded_value = *data->decoded_value; + const Decoded_D3D12_DISPATCH_RAYS_DESC& meta_struct = *data; + FieldToJson(jdata["RayGenerationShaderRecord"], meta_struct.RayGenerationShaderRecord, options); + FieldToJson(jdata["MissShaderTable"], meta_struct.MissShaderTable, options); + FieldToJson(jdata["HitGroupTable"], meta_struct.HitGroupTable, options); + FieldToJson(jdata["CallableShaderTable"], meta_struct.CallableShaderTable, options); + FieldToJson(jdata["Width"], decoded_value.Width, options); + FieldToJson(jdata["Height"], decoded_value.Height, options); + FieldToJson(jdata["Depth"], decoded_value.Depth, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_SHADER_CACHE_SESSION_DESC* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const D3D12_SHADER_CACHE_SESSION_DESC& decoded_value = *data->decoded_value; + const Decoded_D3D12_SHADER_CACHE_SESSION_DESC& meta_struct = *data; + FieldToJson(jdata["Identifier"], meta_struct.Identifier, options); + FieldToJson(jdata["Mode"], decoded_value.Mode, options); + FieldToJson_D3D12_SHADER_CACHE_FLAGS(jdata["Flags"], decoded_value.Flags, options); + FieldToJson(jdata["MaximumInMemoryCacheSizeBytes"], decoded_value.MaximumInMemoryCacheSizeBytes, options); + FieldToJson(jdata["MaximumInMemoryCacheEntries"], decoded_value.MaximumInMemoryCacheEntries, options); + FieldToJson(jdata["MaximumValueFileSizeBytes"], decoded_value.MaximumValueFileSizeBytes, options); + FieldToJson(jdata["Version"], decoded_value.Version, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_BARRIER_SUBRESOURCE_RANGE* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const D3D12_BARRIER_SUBRESOURCE_RANGE& decoded_value = *data->decoded_value; + const Decoded_D3D12_BARRIER_SUBRESOURCE_RANGE& meta_struct = *data; + FieldToJson(jdata["IndexOrFirstMipLevel"], decoded_value.IndexOrFirstMipLevel, options); + FieldToJson(jdata["NumMipLevels"], decoded_value.NumMipLevels, options); + FieldToJson(jdata["FirstArraySlice"], decoded_value.FirstArraySlice, options); + FieldToJson(jdata["NumArraySlices"], decoded_value.NumArraySlices, options); + FieldToJson(jdata["FirstPlane"], decoded_value.FirstPlane, options); + FieldToJson(jdata["NumPlanes"], decoded_value.NumPlanes, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_GLOBAL_BARRIER* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const D3D12_GLOBAL_BARRIER& decoded_value = *data->decoded_value; + const Decoded_D3D12_GLOBAL_BARRIER& meta_struct = *data; + FieldToJson(jdata["SyncBefore"], decoded_value.SyncBefore, options); + FieldToJson(jdata["SyncAfter"], decoded_value.SyncAfter, options); + FieldToJson(jdata["AccessBefore"], decoded_value.AccessBefore, options); + FieldToJson(jdata["AccessAfter"], decoded_value.AccessAfter, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_TEXTURE_BARRIER* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const D3D12_TEXTURE_BARRIER& decoded_value = *data->decoded_value; + const Decoded_D3D12_TEXTURE_BARRIER& meta_struct = *data; + FieldToJson(jdata["SyncBefore"], decoded_value.SyncBefore, options); + FieldToJson(jdata["SyncAfter"], decoded_value.SyncAfter, options); + FieldToJson(jdata["AccessBefore"], decoded_value.AccessBefore, options); + FieldToJson(jdata["AccessAfter"], decoded_value.AccessAfter, options); + FieldToJson(jdata["LayoutBefore"], decoded_value.LayoutBefore, options); + FieldToJson(jdata["LayoutAfter"], decoded_value.LayoutAfter, options); + FieldToJson(jdata["pResource"], meta_struct.pResource, options); + FieldToJson(jdata["Subresources"], meta_struct.Subresources, options); + FieldToJson_D3D12_TEXTURE_BARRIER_FLAGS(jdata["Flags"], decoded_value.Flags, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_BUFFER_BARRIER* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const D3D12_BUFFER_BARRIER& decoded_value = *data->decoded_value; + const Decoded_D3D12_BUFFER_BARRIER& meta_struct = *data; + FieldToJson(jdata["SyncBefore"], decoded_value.SyncBefore, options); + FieldToJson(jdata["SyncAfter"], decoded_value.SyncAfter, options); + FieldToJson(jdata["AccessBefore"], decoded_value.AccessBefore, options); + FieldToJson(jdata["AccessAfter"], decoded_value.AccessAfter, options); + FieldToJson(jdata["pResource"], meta_struct.pResource, options); + FieldToJson(jdata["Offset"], decoded_value.Offset, options); + FieldToJson(jdata["Size"], decoded_value.Size, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_BARRIER_GROUP* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const D3D12_BARRIER_GROUP& decoded_value = *data->decoded_value; + const Decoded_D3D12_BARRIER_GROUP& meta_struct = *data; + FieldToJson(jdata["Type"], decoded_value.Type, options); + FieldToJson(jdata["NumBarriers"], decoded_value.NumBarriers, options); + switch(decoded_value.Type) + { + case D3D12_BARRIER_TYPE_GLOBAL: + { + FieldToJson(jdata["pGlobalBarriers"], meta_struct.global_barriers, options); + break; + } + case D3D12_BARRIER_TYPE_TEXTURE: + { + FieldToJson(jdata["pTextureBarriers"], meta_struct.texture_barriers, options); + break; + } + case D3D12_BARRIER_TYPE_BUFFER: + { + FieldToJson(jdata["pBufferBarriers"], meta_struct.buffer_barriers, options); + break; + } + default: + { + FieldToJson(jdata[format::kNameWarning], "Unknown D3D12_BARRIER_TYPE in D3D12_BARRIER_GROUP.", options); + break; + } + } + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_SUBRESOURCE_DATA* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const D3D12_SUBRESOURCE_DATA& decoded_value = *data->decoded_value; + const Decoded_D3D12_SUBRESOURCE_DATA& meta_struct = *data; + FieldToJson(jdata["pData"], meta_struct.pData, options); + FieldToJson(jdata["RowPitch"], decoded_value.RowPitch, options); + FieldToJson(jdata["SlicePitch"], decoded_value.SlicePitch, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_MEMCPY_DEST* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const D3D12_MEMCPY_DEST& decoded_value = *data->decoded_value; + const Decoded_D3D12_MEMCPY_DEST& meta_struct = *data; + FieldToJson(jdata["pData"], meta_struct.pData, options); + FieldToJson(jdata["RowPitch"], decoded_value.RowPitch, options); + FieldToJson(jdata["SlicePitch"], decoded_value.SlicePitch, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_DEVICE_CONFIGURATION_DESC* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const D3D12_DEVICE_CONFIGURATION_DESC& decoded_value = *data->decoded_value; + const Decoded_D3D12_DEVICE_CONFIGURATION_DESC& meta_struct = *data; + FieldToJson_D3D12_DEVICE_FLAGS(jdata["Flags"], decoded_value.Flags, options); + FieldToJson(jdata["GpuBasedValidationFlags"], decoded_value.GpuBasedValidationFlags, options); + FieldToJson(jdata["SDKVersion"], decoded_value.SDKVersion, options); + FieldToJson(jdata["NumEnabledExperimentalFeatures"], decoded_value.NumEnabledExperimentalFeatures, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_DISPATCH_MESH_ARGUMENTS* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const D3D12_DISPATCH_MESH_ARGUMENTS& decoded_value = *data->decoded_value; + const Decoded_D3D12_DISPATCH_MESH_ARGUMENTS& meta_struct = *data; + FieldToJson(jdata["ThreadGroupCountX"], decoded_value.ThreadGroupCountX, options); + FieldToJson(jdata["ThreadGroupCountY"], decoded_value.ThreadGroupCountY, options); + FieldToJson(jdata["ThreadGroupCountZ"], decoded_value.ThreadGroupCountZ, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D_SHADER_MACRO* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const D3D_SHADER_MACRO& decoded_value = *data->decoded_value; + const Decoded_D3D_SHADER_MACRO& meta_struct = *data; + FieldToJson(jdata["Name"], meta_struct.Name, options); + FieldToJson(jdata["Definition"], meta_struct.Definition, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_DEBUG_DEVICE_GPU_BASED_VALIDATION_SETTINGS* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const D3D12_DEBUG_DEVICE_GPU_BASED_VALIDATION_SETTINGS& decoded_value = *data->decoded_value; + const Decoded_D3D12_DEBUG_DEVICE_GPU_BASED_VALIDATION_SETTINGS& meta_struct = *data; + FieldToJson(jdata["MaxMessagesPerCommandList"], decoded_value.MaxMessagesPerCommandList, options); + FieldToJson(jdata["DefaultShaderPatchMode"], decoded_value.DefaultShaderPatchMode, options); + FieldToJson_D3D12_GPU_BASED_VALIDATION_PIPELINE_STATE_CREATE_FLAGS(jdata["PipelineStateCreateFlags"], decoded_value.PipelineStateCreateFlags, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_DEBUG_DEVICE_GPU_SLOWDOWN_PERFORMANCE_FACTOR* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const D3D12_DEBUG_DEVICE_GPU_SLOWDOWN_PERFORMANCE_FACTOR& decoded_value = *data->decoded_value; + const Decoded_D3D12_DEBUG_DEVICE_GPU_SLOWDOWN_PERFORMANCE_FACTOR& meta_struct = *data; + FieldToJson(jdata["SlowdownFactor"], decoded_value.SlowdownFactor, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_DEBUG_COMMAND_LIST_GPU_BASED_VALIDATION_SETTINGS* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const D3D12_DEBUG_COMMAND_LIST_GPU_BASED_VALIDATION_SETTINGS& decoded_value = *data->decoded_value; + const Decoded_D3D12_DEBUG_COMMAND_LIST_GPU_BASED_VALIDATION_SETTINGS& meta_struct = *data; + FieldToJson(jdata["ShaderPatchMode"], decoded_value.ShaderPatchMode, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_MESSAGE* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const D3D12_MESSAGE& decoded_value = *data->decoded_value; + const Decoded_D3D12_MESSAGE& meta_struct = *data; + FieldToJson(jdata["Category"], decoded_value.Category, options); + FieldToJson(jdata["Severity"], decoded_value.Severity, options); + FieldToJson(jdata["ID"], decoded_value.ID, options); + FieldToJson(jdata["pDescription"], meta_struct.pDescription, options); + FieldToJson(jdata["DescriptionByteLength"], decoded_value.DescriptionByteLength, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_INFO_QUEUE_FILTER_DESC* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const D3D12_INFO_QUEUE_FILTER_DESC& decoded_value = *data->decoded_value; + const Decoded_D3D12_INFO_QUEUE_FILTER_DESC& meta_struct = *data; + FieldToJson(jdata["NumCategories"], decoded_value.NumCategories, options); + FieldToJson(jdata["pCategoryList"], meta_struct.pCategoryList, options); + FieldToJson(jdata["NumSeverities"], decoded_value.NumSeverities, options); + FieldToJson(jdata["pSeverityList"], meta_struct.pSeverityList, options); + FieldToJson(jdata["NumIDs"], decoded_value.NumIDs, options); + FieldToJson(jdata["pIDList"], meta_struct.pIDList, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_INFO_QUEUE_FILTER* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const D3D12_INFO_QUEUE_FILTER& decoded_value = *data->decoded_value; + const Decoded_D3D12_INFO_QUEUE_FILTER& meta_struct = *data; + FieldToJson(jdata["AllowList"], meta_struct.AllowList, options); + FieldToJson(jdata["DenyList"], meta_struct.DenyList, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_tagRECT* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const tagRECT& decoded_value = *data->decoded_value; + const Decoded_tagRECT& meta_struct = *data; + FieldToJson(jdata["left"], decoded_value.left, options); + FieldToJson(jdata["top"], decoded_value.top, options); + FieldToJson(jdata["right"], decoded_value.right, options); + FieldToJson(jdata["bottom"], decoded_value.bottom, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_tagPOINT* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const tagPOINT& decoded_value = *data->decoded_value; + const Decoded_tagPOINT& meta_struct = *data; + FieldToJson(jdata["x"], decoded_value.x, options); + FieldToJson(jdata["y"], decoded_value.y, options); + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded__SECURITY_ATTRIBUTES* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const _SECURITY_ATTRIBUTES& decoded_value = *data->decoded_value; + const Decoded__SECURITY_ATTRIBUTES& meta_struct = *data; + FieldToJson(jdata["nLength"], decoded_value.nLength, options); + FieldToJson(jdata["lpSecurityDescriptor"], meta_struct.lpSecurityDescriptor, options); + Bool32ToJson(jdata["bInheritHandle"], decoded_value.bInheritHandle, options); + } +} + +// TODO Move all these manual functions out of the generator and into a .cpp file. + +/// @defgroup custom_dx12_struct_decoders_to_json_bodies Custom implementations for +/// troublesome structs. +/// We put the custom implementations in the generator Python rather than +/// creating a whole new compilation unit for them. +/** @{*/ + +// Decoded_LARGE_INTEGER won't be generated as it is a struct rather than D3D12. +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_LARGE_INTEGER* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const LARGE_INTEGER& decoded_value = *data->decoded_value; + FieldToJson(jdata, decoded_value.QuadPart, options); + } +} + +// Generated version tries to read the struct members rather than doing the "fake enum" thing. +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_GUID* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const GUID& decoded_value = *data->decoded_value; + FieldToJson(jdata, decoded_value, options); + } +} + +/// Dump all the fields of the custom struct, even though not all need be populated. +/// @note D3D12 doesn't define names for these: the underlying struct is just a void pointer +/// and a byte count with the structure defined in documentation. See: +/// +/// See also: framework\decode\custom_dx12_struct_decoders.cpp +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_PIPELINE_STATE_STREAM_DESC* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const D3D12_PIPELINE_STATE_STREAM_DESC& decoded_value = *data->decoded_value; + const Decoded_D3D12_PIPELINE_STATE_STREAM_DESC& meta_struct = *data; + FieldToJson(jdata["SizeInBytes"], decoded_value.SizeInBytes, options); // Basic data plumbs to raw struct. + //FieldToJson(jdata["root_signature_ptr"], meta_struct.root_signature_ptr, options); + FieldToJson(jdata[format::kNameWarning], "D3D12_PIPELINE_STATE_STREAM_DESC.root_signature_ptr is not supported.", options); + FieldToJson(jdata["root_signature_ptr"], "@todo Get this field to convert cleanly.", options); + FieldToJson(jdata["vs_bytecode"], meta_struct.vs_bytecode, options); + FieldToJson(jdata["ps_bytecode"], meta_struct.ps_bytecode, options); + FieldToJson(jdata["ds_bytecode"], meta_struct.ds_bytecode, options); + FieldToJson(jdata["hs_bytecode"], meta_struct.hs_bytecode, options); + FieldToJson(jdata["gs_bytecode"], meta_struct.gs_bytecode, options); + FieldToJson(jdata["cs_bytecode"], meta_struct.cs_bytecode, options); + FieldToJson(jdata["as_bytecode"], meta_struct.as_bytecode, options); + FieldToJson(jdata["ms_bytecode"], meta_struct.ms_bytecode, options); + FieldToJson(jdata["stream_output"], meta_struct.stream_output, options); + FieldToJson(jdata["blend"], meta_struct.blend, options); + FieldToJson(jdata["rasterizer"], meta_struct.rasterizer, options); + FieldToJson(jdata["depth_stencil"], meta_struct.depth_stencil, options); + FieldToJson(jdata["input_layout"], meta_struct.input_layout, options); + FieldToJson(jdata["render_target_formats"], meta_struct.render_target_formats, options); + FieldToJson(jdata["sample_desc"], meta_struct.sample_desc, options); + FieldToJson(jdata["cached_pso"], meta_struct.cached_pso, options); + FieldToJson(jdata["depth_stencil1"], meta_struct.depth_stencil1, options); + FieldToJson(jdata["view_instancing"], meta_struct.view_instancing, options); + } +} + +// The decoded struct has a custom implementation. +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_STATE_SUBOBJECT* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const D3D12_STATE_SUBOBJECT& decoded_value = *data->decoded_value; + const Decoded_D3D12_STATE_SUBOBJECT& meta_struct = *data; + FieldToJson(jdata["Type"], decoded_value.Type, options); + switch(decoded_value.Type) + { + case D3D12_STATE_SUBOBJECT_TYPE_STATE_OBJECT_CONFIG: + FieldToJson(jdata["state_object_config"], meta_struct.state_object_config, options); + break; + case D3D12_STATE_SUBOBJECT_TYPE_GLOBAL_ROOT_SIGNATURE: + FieldToJson(jdata["global_root_signature"], meta_struct.global_root_signature, options); + break; + case D3D12_STATE_SUBOBJECT_TYPE_LOCAL_ROOT_SIGNATURE: + FieldToJson(jdata["local_root_signature"], meta_struct.local_root_signature, options); + break; + case D3D12_STATE_SUBOBJECT_TYPE_NODE_MASK: + FieldToJson(jdata["node_mask"], meta_struct.node_mask, options); + break; + case D3D12_STATE_SUBOBJECT_TYPE_DXIL_LIBRARY: + FieldToJson(jdata["dxil_library_desc"], meta_struct.dxil_library_desc, options); + break; + case D3D12_STATE_SUBOBJECT_TYPE_EXISTING_COLLECTION: + FieldToJson(jdata["existing_collection_desc"], meta_struct.existing_collection_desc, options); + break; + case D3D12_STATE_SUBOBJECT_TYPE_SUBOBJECT_TO_EXPORTS_ASSOCIATION: + FieldToJson(jdata["subobject_to_exports_association"], meta_struct.subobject_to_exports_association, options); + break; + case D3D12_STATE_SUBOBJECT_TYPE_DXIL_SUBOBJECT_TO_EXPORTS_ASSOCIATION: + FieldToJson(jdata["dxil_subobject_to_exports_association"], meta_struct.dxil_subobject_to_exports_association, options); + break; + case D3D12_STATE_SUBOBJECT_TYPE_RAYTRACING_SHADER_CONFIG: + FieldToJson(jdata["raytracing_shader_config"], meta_struct.raytracing_shader_config, options); + break; + case D3D12_STATE_SUBOBJECT_TYPE_RAYTRACING_PIPELINE_CONFIG: + FieldToJson(jdata["raytracing_pipeline_config"], meta_struct.raytracing_pipeline_config, options); + break; + case D3D12_STATE_SUBOBJECT_TYPE_HIT_GROUP: + FieldToJson(jdata["hit_group_desc"], meta_struct.hit_group_desc, options); + break; + case D3D12_STATE_SUBOBJECT_TYPE_RAYTRACING_PIPELINE_CONFIG1: + FieldToJson(jdata["raytracing_pipeline_config1"], meta_struct.raytracing_pipeline_config1, options); + break; + default: + { + FieldToJson(jdata[format::kNameWarning], "Unknown D3D12_STATE_SUBOBJECT_TYPE in D3D12_STATE_SUBOBJECT.", options); + break; + } + } + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_CPU_DESCRIPTOR_HANDLE* data, const JsonOptions& options) +{ + using namespace util; + if (data && data->decoded_value) + { + const D3D12_CPU_DESCRIPTOR_HANDLE& decoded_value = *data->decoded_value; + const Decoded_D3D12_CPU_DESCRIPTOR_HANDLE& meta_struct = *data; + // FieldToJson(jdata[format::kNameInfo], "heap_id and index were copied out of ptr by a custom encoder at capture time, and ptr was never stored in the capture file.", options); + FieldToJson(jdata["heap_id"], meta_struct.heap_id, options); + FieldToJson(jdata["index"], meta_struct.index, options); + } +} + +/** @} */ + +GFXRECON_END_NAMESPACE(decode) +GFXRECON_END_NAMESPACE(gfxrecon) diff --git a/framework/generated/generated_dx12_struct_decoders_to_json.h b/framework/generated/generated_dx12_struct_decoders_to_json.h new file mode 100644 index 0000000000..234909eebc --- /dev/null +++ b/framework/generated/generated_dx12_struct_decoders_to_json.h @@ -0,0 +1,629 @@ +/* +** Copyright (c) 2021-2023 LunarG, Inc. +** +** Permission is hereby granted, free of charge, to any person obtaining a copy +** of this software and associated documentation files (the "Software"), to +** deal in the Software without restriction, including without limitation the +** rights to use, copy, modify, merge, publish, distribute, sublicense, and/or +** sell copies of the Software, and to permit persons to whom the Software is +** furnished to do so, subject to the following conditions: +** +** The above copyright notice and this permission notice shall be included in +** all copies or substantial portions of the Software. +** +** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +** IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +** FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +** AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +** LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +** FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS +** IN THE SOFTWARE. +*/ + +/* +** This file is generated from dx12_struct_decoders_to_json_header_generator.py. +** +*/ + +#ifndef GFXRECON_GENERATED_DX12_STRUCT_DECODERS_TO_JSON_H +#define GFXRECON_GENERATED_DX12_STRUCT_DECODERS_TO_JSON_H + +/// @file Functions to convert decoded structs to JSON. +/// Note these Decoded_StructX versions have the pointer tree linking the +/// structs set-up during decode, unlike the raw structs, which is why they +/// should be used when dumping a JSON representation while following the +/// pointers. + +#include "generated/generated_dx12_struct_decoders_forward.h" +#include "decode/custom_dx12_struct_decoders_forward.h" +#include "generated_dx12_enum_to_json.h" +#include "util/defines.h" +#include "nlohmann/json.hpp" + +GFXRECON_BEGIN_NAMESPACE(gfxrecon) +GFXRECON_BEGIN_NAMESPACE(util) +struct JsonOptions; +GFXRECON_END_NAMESPACE(util) +GFXRECON_BEGIN_NAMESPACE(decode) + +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_DXGI_FRAME_STATISTICS* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_DXGI_MAPPED_RECT* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_LUID* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_DXGI_ADAPTER_DESC* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_DXGI_OUTPUT_DESC* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_DXGI_SHARED_RESOURCE* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_DXGI_SURFACE_DESC* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_DXGI_SWAP_CHAIN_DESC* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_DXGI_ADAPTER_DESC1* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_DXGI_DISPLAY_COLOR_SPACE* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_DXGI_OUTDUPL_MOVE_RECT* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_DXGI_OUTDUPL_DESC* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_DXGI_OUTDUPL_POINTER_POSITION* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_DXGI_OUTDUPL_POINTER_SHAPE_INFO* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_DXGI_OUTDUPL_FRAME_INFO* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_DXGI_MODE_DESC1* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_DXGI_SWAP_CHAIN_DESC1* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_DXGI_SWAP_CHAIN_FULLSCREEN_DESC* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_DXGI_PRESENT_PARAMETERS* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_DXGI_ADAPTER_DESC2* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_DXGI_MATRIX_3X2_F* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_DXGI_DECODE_SWAP_CHAIN_DESC* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_DXGI_FRAME_STATISTICS_MEDIA* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_DXGI_QUERY_VIDEO_MEMORY_INFO* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_DXGI_HDR_METADATA_HDR10* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_DXGI_HDR_METADATA_HDR10PLUS* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_DXGI_ADAPTER_DESC3* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_DXGI_OUTPUT_DESC1* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_DXGI_RATIONAL* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_DXGI_SAMPLE_DESC* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_DXGI_RGB* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3DCOLORVALUE* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_DXGI_GAMMA_CONTROL* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_DXGI_GAMMA_CONTROL_CAPABILITIES* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_DXGI_MODE_DESC* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_DXGI_JPEG_DC_HUFFMAN_TABLE* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_DXGI_JPEG_AC_HUFFMAN_TABLE* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_DXGI_JPEG_QUANTIZATION_TABLE* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_COMMAND_QUEUE_DESC* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_INPUT_ELEMENT_DESC* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_SO_DECLARATION_ENTRY* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_VIEWPORT* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_BOX* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_DEPTH_STENCILOP_DESC* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_DEPTH_STENCIL_DESC* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_DEPTH_STENCIL_DESC1* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_DEPTH_STENCILOP_DESC1* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_DEPTH_STENCIL_DESC2* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_RENDER_TARGET_BLEND_DESC* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_BLEND_DESC* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_RASTERIZER_DESC* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_RASTERIZER_DESC1* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_RASTERIZER_DESC2* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_SHADER_BYTECODE* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_STREAM_OUTPUT_DESC* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_INPUT_LAYOUT_DESC* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_CACHED_PIPELINE_STATE* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_GRAPHICS_PIPELINE_STATE_DESC* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_COMPUTE_PIPELINE_STATE_DESC* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_RT_FORMAT_ARRAY* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_PIPELINE_STATE_STREAM_DESC* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_FEATURE_DATA_D3D12_OPTIONS* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_FEATURE_DATA_D3D12_OPTIONS1* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_FEATURE_DATA_D3D12_OPTIONS2* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_FEATURE_DATA_ROOT_SIGNATURE* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_FEATURE_DATA_ARCHITECTURE* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_FEATURE_DATA_ARCHITECTURE1* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_FEATURE_DATA_FEATURE_LEVELS* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_FEATURE_DATA_SHADER_MODEL* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_FEATURE_DATA_FORMAT_SUPPORT* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_FEATURE_DATA_MULTISAMPLE_QUALITY_LEVELS* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_FEATURE_DATA_FORMAT_INFO* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_FEATURE_DATA_GPU_VIRTUAL_ADDRESS_SUPPORT* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_FEATURE_DATA_SHADER_CACHE* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_FEATURE_DATA_COMMAND_QUEUE_PRIORITY* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_FEATURE_DATA_D3D12_OPTIONS3* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_FEATURE_DATA_EXISTING_HEAPS* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_FEATURE_DATA_DISPLAYABLE* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_FEATURE_DATA_D3D12_OPTIONS4* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_FEATURE_DATA_SERIALIZATION* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_FEATURE_DATA_CROSS_NODE* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_FEATURE_DATA_D3D12_OPTIONS5* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_FEATURE_DATA_D3D12_OPTIONS6* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_FEATURE_DATA_D3D12_OPTIONS7* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_FEATURE_DATA_QUERY_META_COMMAND* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_FEATURE_DATA_D3D12_OPTIONS8* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_FEATURE_DATA_D3D12_OPTIONS9* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_FEATURE_DATA_D3D12_OPTIONS10* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_FEATURE_DATA_D3D12_OPTIONS11* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_FEATURE_DATA_D3D12_OPTIONS12* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_FEATURE_DATA_D3D12_OPTIONS13* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_FEATURE_DATA_D3D12_OPTIONS14* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_FEATURE_DATA_D3D12_OPTIONS15* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_FEATURE_DATA_D3D12_OPTIONS16* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_FEATURE_DATA_D3D12_OPTIONS17* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_FEATURE_DATA_D3D12_OPTIONS18* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_FEATURE_DATA_D3D12_OPTIONS19* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_RESOURCE_ALLOCATION_INFO* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_RESOURCE_ALLOCATION_INFO1* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_HEAP_PROPERTIES* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_HEAP_DESC* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_MIP_REGION* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_RESOURCE_DESC* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_RESOURCE_DESC1* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_DEPTH_STENCIL_VALUE* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_CLEAR_VALUE* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_RANGE* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_RANGE_UINT64* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_SUBRESOURCE_RANGE_UINT64* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_SUBRESOURCE_INFO* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_TILED_RESOURCE_COORDINATE* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_TILE_REGION_SIZE* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_SUBRESOURCE_TILING* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_TILE_SHAPE* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_PACKED_MIP_INFO* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_RESOURCE_TRANSITION_BARRIER* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_RESOURCE_ALIASING_BARRIER* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_RESOURCE_UAV_BARRIER* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_RESOURCE_BARRIER* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_SUBRESOURCE_FOOTPRINT* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_PLACED_SUBRESOURCE_FOOTPRINT* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_TEXTURE_COPY_LOCATION* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_SAMPLE_POSITION* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_VIEW_INSTANCE_LOCATION* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_VIEW_INSTANCING_DESC* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_BUFFER_SRV* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_TEX1D_SRV* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_TEX1D_ARRAY_SRV* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_TEX2D_SRV* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_TEX2D_ARRAY_SRV* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_TEX3D_SRV* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_TEXCUBE_SRV* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_TEXCUBE_ARRAY_SRV* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_TEX2DMS_SRV* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_TEX2DMS_ARRAY_SRV* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_RAYTRACING_ACCELERATION_STRUCTURE_SRV* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_SHADER_RESOURCE_VIEW_DESC* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_CONSTANT_BUFFER_VIEW_DESC* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_SAMPLER_DESC* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_SAMPLER_DESC2* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_BUFFER_UAV* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_TEX1D_UAV* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_TEX1D_ARRAY_UAV* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_TEX2D_UAV* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_TEX2D_ARRAY_UAV* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_TEX2DMS_UAV* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_TEX2DMS_ARRAY_UAV* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_TEX3D_UAV* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_UNORDERED_ACCESS_VIEW_DESC* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_BUFFER_RTV* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_TEX1D_RTV* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_TEX1D_ARRAY_RTV* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_TEX2D_RTV* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_TEX2DMS_RTV* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_TEX2D_ARRAY_RTV* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_TEX2DMS_ARRAY_RTV* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_TEX3D_RTV* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_RENDER_TARGET_VIEW_DESC* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_TEX1D_DSV* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_TEX1D_ARRAY_DSV* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_TEX2D_DSV* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_TEX2D_ARRAY_DSV* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_TEX2DMS_DSV* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_TEX2DMS_ARRAY_DSV* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_DEPTH_STENCIL_VIEW_DESC* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_DESCRIPTOR_HEAP_DESC* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_DESCRIPTOR_RANGE* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_ROOT_DESCRIPTOR_TABLE* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_ROOT_CONSTANTS* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_ROOT_DESCRIPTOR* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_ROOT_PARAMETER* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_STATIC_SAMPLER_DESC* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_STATIC_SAMPLER_DESC1* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_ROOT_SIGNATURE_DESC* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_DESCRIPTOR_RANGE1* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_ROOT_DESCRIPTOR_TABLE1* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_ROOT_DESCRIPTOR1* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_ROOT_PARAMETER1* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_ROOT_SIGNATURE_DESC1* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_ROOT_SIGNATURE_DESC2* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_VERSIONED_ROOT_SIGNATURE_DESC* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_CPU_DESCRIPTOR_HANDLE* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_GPU_DESCRIPTOR_HANDLE* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_DISCARD_REGION* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_QUERY_HEAP_DESC* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_QUERY_DATA_PIPELINE_STATISTICS* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_QUERY_DATA_PIPELINE_STATISTICS1* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_QUERY_DATA_SO_STATISTICS* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_STREAM_OUTPUT_BUFFER_VIEW* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_DRAW_ARGUMENTS* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_DRAW_INDEXED_ARGUMENTS* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_DISPATCH_ARGUMENTS* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_VERTEX_BUFFER_VIEW* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_INDEX_BUFFER_VIEW* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_INDIRECT_ARGUMENT_DESC* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_COMMAND_SIGNATURE_DESC* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_WRITEBUFFERIMMEDIATE_PARAMETER* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_FEATURE_DATA_PROTECTED_RESOURCE_SESSION_SUPPORT* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_PROTECTED_RESOURCE_SESSION_DESC* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_META_COMMAND_PARAMETER_DESC* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_META_COMMAND_DESC* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_STATE_SUBOBJECT* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_STATE_OBJECT_CONFIG* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_GLOBAL_ROOT_SIGNATURE* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_LOCAL_ROOT_SIGNATURE* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_NODE_MASK* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_EXPORT_DESC* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_DXIL_LIBRARY_DESC* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_EXISTING_COLLECTION_DESC* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_SUBOBJECT_TO_EXPORTS_ASSOCIATION* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_DXIL_SUBOBJECT_TO_EXPORTS_ASSOCIATION* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_HIT_GROUP_DESC* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_RAYTRACING_SHADER_CONFIG* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_RAYTRACING_PIPELINE_CONFIG* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_RAYTRACING_PIPELINE_CONFIG1* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_STATE_OBJECT_DESC* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_GPU_VIRTUAL_ADDRESS_AND_STRIDE* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_GPU_VIRTUAL_ADDRESS_RANGE* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_GPU_VIRTUAL_ADDRESS_RANGE_AND_STRIDE* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_RAYTRACING_GEOMETRY_TRIANGLES_DESC* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_RAYTRACING_AABB* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_RAYTRACING_GEOMETRY_AABBS_DESC* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_COMPACTED_SIZE_DESC* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_TOOLS_VISUALIZATION_DESC* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_TOOLS_VISUALIZATION_HEADER* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_SERIALIZATION_DESC* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_SERIALIZED_DATA_DRIVER_MATCHING_IDENTIFIER* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_SERIALIZED_RAYTRACING_ACCELERATION_STRUCTURE_HEADER* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_CURRENT_SIZE_DESC* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_RAYTRACING_INSTANCE_DESC* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_RAYTRACING_GEOMETRY_DESC* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_DESC* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_RAYTRACING_ACCELERATION_STRUCTURE_PREBUILD_INFO* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_AUTO_BREADCRUMB_NODE* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_DRED_BREADCRUMB_CONTEXT* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_AUTO_BREADCRUMB_NODE1* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_DEVICE_REMOVED_EXTENDED_DATA* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_DRED_ALLOCATION_NODE* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_DRED_ALLOCATION_NODE1* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT1* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_DRED_PAGE_FAULT_OUTPUT* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_DRED_PAGE_FAULT_OUTPUT1* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_DRED_PAGE_FAULT_OUTPUT2* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_DEVICE_REMOVED_EXTENDED_DATA1* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_DEVICE_REMOVED_EXTENDED_DATA2* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_DEVICE_REMOVED_EXTENDED_DATA3* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_VERSIONED_DEVICE_REMOVED_EXTENDED_DATA* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_FEATURE_DATA_PROTECTED_RESOURCE_SESSION_TYPE_COUNT* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_FEATURE_DATA_PROTECTED_RESOURCE_SESSION_TYPES* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_PROTECTED_RESOURCE_SESSION_DESC1* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_RENDER_PASS_BEGINNING_ACCESS_CLEAR_PARAMETERS* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_RENDER_PASS_BEGINNING_ACCESS_PRESERVE_LOCAL_PARAMETERS* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_RENDER_PASS_BEGINNING_ACCESS* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_RENDER_PASS_ENDING_ACCESS_RESOLVE_SUBRESOURCE_PARAMETERS* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_RENDER_PASS_ENDING_ACCESS_RESOLVE_PARAMETERS* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_RENDER_PASS_ENDING_ACCESS_PRESERVE_LOCAL_PARAMETERS* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_RENDER_PASS_ENDING_ACCESS* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_RENDER_PASS_RENDER_TARGET_DESC* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_RENDER_PASS_DEPTH_STENCIL_DESC* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_DISPATCH_RAYS_DESC* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_SHADER_CACHE_SESSION_DESC* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_BARRIER_SUBRESOURCE_RANGE* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_GLOBAL_BARRIER* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_TEXTURE_BARRIER* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_BUFFER_BARRIER* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_BARRIER_GROUP* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_SUBRESOURCE_DATA* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_MEMCPY_DEST* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_DEVICE_CONFIGURATION_DESC* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_DISPATCH_MESH_ARGUMENTS* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D_SHADER_MACRO* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_DEBUG_DEVICE_GPU_BASED_VALIDATION_SETTINGS* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_DEBUG_DEVICE_GPU_SLOWDOWN_PERFORMANCE_FACTOR* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_DEBUG_COMMAND_LIST_GPU_BASED_VALIDATION_SETTINGS* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_MESSAGE* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_INFO_QUEUE_FILTER_DESC* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_INFO_QUEUE_FILTER* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_GUID* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_tagRECT* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_tagPOINT* pObj, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded__SECURITY_ATTRIBUTES* pObj, const util::JsonOptions& options); + +// Reference versions of above which simply pipe through to the pointer versions. +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_DXGI_FRAME_STATISTICS& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_DXGI_MAPPED_RECT& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_LUID& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_DXGI_ADAPTER_DESC& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_DXGI_OUTPUT_DESC& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_DXGI_SHARED_RESOURCE& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_DXGI_SURFACE_DESC& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_DXGI_SWAP_CHAIN_DESC& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_DXGI_ADAPTER_DESC1& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_DXGI_DISPLAY_COLOR_SPACE& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_DXGI_OUTDUPL_MOVE_RECT& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_DXGI_OUTDUPL_DESC& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_DXGI_OUTDUPL_POINTER_POSITION& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_DXGI_OUTDUPL_POINTER_SHAPE_INFO& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_DXGI_OUTDUPL_FRAME_INFO& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_DXGI_MODE_DESC1& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_DXGI_SWAP_CHAIN_DESC1& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_DXGI_SWAP_CHAIN_FULLSCREEN_DESC& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_DXGI_PRESENT_PARAMETERS& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_DXGI_ADAPTER_DESC2& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_DXGI_MATRIX_3X2_F& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_DXGI_DECODE_SWAP_CHAIN_DESC& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_DXGI_FRAME_STATISTICS_MEDIA& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_DXGI_QUERY_VIDEO_MEMORY_INFO& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_DXGI_HDR_METADATA_HDR10& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_DXGI_HDR_METADATA_HDR10PLUS& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_DXGI_ADAPTER_DESC3& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_DXGI_OUTPUT_DESC1& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_DXGI_RATIONAL& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_DXGI_SAMPLE_DESC& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_DXGI_RGB& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3DCOLORVALUE& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_DXGI_GAMMA_CONTROL& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_DXGI_GAMMA_CONTROL_CAPABILITIES& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_DXGI_MODE_DESC& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_DXGI_JPEG_DC_HUFFMAN_TABLE& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_DXGI_JPEG_AC_HUFFMAN_TABLE& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_DXGI_JPEG_QUANTIZATION_TABLE& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_COMMAND_QUEUE_DESC& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_INPUT_ELEMENT_DESC& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_SO_DECLARATION_ENTRY& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_VIEWPORT& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_BOX& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_DEPTH_STENCILOP_DESC& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_DEPTH_STENCIL_DESC& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_DEPTH_STENCIL_DESC1& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_DEPTH_STENCILOP_DESC1& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_DEPTH_STENCIL_DESC2& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_RENDER_TARGET_BLEND_DESC& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_BLEND_DESC& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_RASTERIZER_DESC& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_RASTERIZER_DESC1& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_RASTERIZER_DESC2& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_SHADER_BYTECODE& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_STREAM_OUTPUT_DESC& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_INPUT_LAYOUT_DESC& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_CACHED_PIPELINE_STATE& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_GRAPHICS_PIPELINE_STATE_DESC& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_COMPUTE_PIPELINE_STATE_DESC& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_RT_FORMAT_ARRAY& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_PIPELINE_STATE_STREAM_DESC& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_FEATURE_DATA_D3D12_OPTIONS& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_FEATURE_DATA_D3D12_OPTIONS1& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_FEATURE_DATA_D3D12_OPTIONS2& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_FEATURE_DATA_ROOT_SIGNATURE& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_FEATURE_DATA_ARCHITECTURE& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_FEATURE_DATA_ARCHITECTURE1& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_FEATURE_DATA_FEATURE_LEVELS& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_FEATURE_DATA_SHADER_MODEL& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_FEATURE_DATA_FORMAT_SUPPORT& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_FEATURE_DATA_MULTISAMPLE_QUALITY_LEVELS& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_FEATURE_DATA_FORMAT_INFO& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_FEATURE_DATA_GPU_VIRTUAL_ADDRESS_SUPPORT& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_FEATURE_DATA_SHADER_CACHE& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_FEATURE_DATA_COMMAND_QUEUE_PRIORITY& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_FEATURE_DATA_D3D12_OPTIONS3& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_FEATURE_DATA_EXISTING_HEAPS& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_FEATURE_DATA_DISPLAYABLE& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_FEATURE_DATA_D3D12_OPTIONS4& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_FEATURE_DATA_SERIALIZATION& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_FEATURE_DATA_CROSS_NODE& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_FEATURE_DATA_D3D12_OPTIONS5& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_FEATURE_DATA_D3D12_OPTIONS6& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_FEATURE_DATA_D3D12_OPTIONS7& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_FEATURE_DATA_QUERY_META_COMMAND& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_FEATURE_DATA_D3D12_OPTIONS8& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_FEATURE_DATA_D3D12_OPTIONS9& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_FEATURE_DATA_D3D12_OPTIONS10& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_FEATURE_DATA_D3D12_OPTIONS11& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_FEATURE_DATA_D3D12_OPTIONS12& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_FEATURE_DATA_D3D12_OPTIONS13& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_FEATURE_DATA_D3D12_OPTIONS14& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_FEATURE_DATA_D3D12_OPTIONS15& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_FEATURE_DATA_D3D12_OPTIONS16& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_FEATURE_DATA_D3D12_OPTIONS17& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_FEATURE_DATA_D3D12_OPTIONS18& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_FEATURE_DATA_D3D12_OPTIONS19& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_RESOURCE_ALLOCATION_INFO& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_RESOURCE_ALLOCATION_INFO1& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_HEAP_PROPERTIES& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_HEAP_DESC& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_MIP_REGION& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_RESOURCE_DESC& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_RESOURCE_DESC1& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_DEPTH_STENCIL_VALUE& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_CLEAR_VALUE& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_RANGE& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_RANGE_UINT64& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_SUBRESOURCE_RANGE_UINT64& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_SUBRESOURCE_INFO& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_TILED_RESOURCE_COORDINATE& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_TILE_REGION_SIZE& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_SUBRESOURCE_TILING& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_TILE_SHAPE& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_PACKED_MIP_INFO& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_RESOURCE_TRANSITION_BARRIER& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_RESOURCE_ALIASING_BARRIER& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_RESOURCE_UAV_BARRIER& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_RESOURCE_BARRIER& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_SUBRESOURCE_FOOTPRINT& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_PLACED_SUBRESOURCE_FOOTPRINT& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_TEXTURE_COPY_LOCATION& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_SAMPLE_POSITION& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_VIEW_INSTANCE_LOCATION& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_VIEW_INSTANCING_DESC& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_BUFFER_SRV& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_TEX1D_SRV& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_TEX1D_ARRAY_SRV& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_TEX2D_SRV& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_TEX2D_ARRAY_SRV& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_TEX3D_SRV& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_TEXCUBE_SRV& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_TEXCUBE_ARRAY_SRV& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_TEX2DMS_SRV& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_TEX2DMS_ARRAY_SRV& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_RAYTRACING_ACCELERATION_STRUCTURE_SRV& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_SHADER_RESOURCE_VIEW_DESC& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_CONSTANT_BUFFER_VIEW_DESC& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_SAMPLER_DESC& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_SAMPLER_DESC2& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_BUFFER_UAV& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_TEX1D_UAV& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_TEX1D_ARRAY_UAV& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_TEX2D_UAV& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_TEX2D_ARRAY_UAV& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_TEX2DMS_UAV& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_TEX2DMS_ARRAY_UAV& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_TEX3D_UAV& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_UNORDERED_ACCESS_VIEW_DESC& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_BUFFER_RTV& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_TEX1D_RTV& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_TEX1D_ARRAY_RTV& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_TEX2D_RTV& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_TEX2DMS_RTV& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_TEX2D_ARRAY_RTV& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_TEX2DMS_ARRAY_RTV& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_TEX3D_RTV& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_RENDER_TARGET_VIEW_DESC& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_TEX1D_DSV& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_TEX1D_ARRAY_DSV& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_TEX2D_DSV& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_TEX2D_ARRAY_DSV& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_TEX2DMS_DSV& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_TEX2DMS_ARRAY_DSV& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_DEPTH_STENCIL_VIEW_DESC& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_DESCRIPTOR_HEAP_DESC& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_DESCRIPTOR_RANGE& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_ROOT_DESCRIPTOR_TABLE& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_ROOT_CONSTANTS& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_ROOT_DESCRIPTOR& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_ROOT_PARAMETER& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_STATIC_SAMPLER_DESC& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_STATIC_SAMPLER_DESC1& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_ROOT_SIGNATURE_DESC& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_DESCRIPTOR_RANGE1& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_ROOT_DESCRIPTOR_TABLE1& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_ROOT_DESCRIPTOR1& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_ROOT_PARAMETER1& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_ROOT_SIGNATURE_DESC1& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_ROOT_SIGNATURE_DESC2& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_VERSIONED_ROOT_SIGNATURE_DESC& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_CPU_DESCRIPTOR_HANDLE& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_GPU_DESCRIPTOR_HANDLE& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_DISCARD_REGION& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_QUERY_HEAP_DESC& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_QUERY_DATA_PIPELINE_STATISTICS& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_QUERY_DATA_PIPELINE_STATISTICS1& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_QUERY_DATA_SO_STATISTICS& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_STREAM_OUTPUT_BUFFER_VIEW& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_DRAW_ARGUMENTS& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_DRAW_INDEXED_ARGUMENTS& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_DISPATCH_ARGUMENTS& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_VERTEX_BUFFER_VIEW& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_INDEX_BUFFER_VIEW& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_INDIRECT_ARGUMENT_DESC& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_COMMAND_SIGNATURE_DESC& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_WRITEBUFFERIMMEDIATE_PARAMETER& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_FEATURE_DATA_PROTECTED_RESOURCE_SESSION_SUPPORT& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_PROTECTED_RESOURCE_SESSION_DESC& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_META_COMMAND_PARAMETER_DESC& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_META_COMMAND_DESC& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_STATE_SUBOBJECT& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_STATE_OBJECT_CONFIG& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_GLOBAL_ROOT_SIGNATURE& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_LOCAL_ROOT_SIGNATURE& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_NODE_MASK& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_EXPORT_DESC& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_DXIL_LIBRARY_DESC& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_EXISTING_COLLECTION_DESC& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_SUBOBJECT_TO_EXPORTS_ASSOCIATION& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_DXIL_SUBOBJECT_TO_EXPORTS_ASSOCIATION& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_HIT_GROUP_DESC& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_RAYTRACING_SHADER_CONFIG& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_RAYTRACING_PIPELINE_CONFIG& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_RAYTRACING_PIPELINE_CONFIG1& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_STATE_OBJECT_DESC& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_GPU_VIRTUAL_ADDRESS_AND_STRIDE& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_GPU_VIRTUAL_ADDRESS_RANGE& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_GPU_VIRTUAL_ADDRESS_RANGE_AND_STRIDE& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_RAYTRACING_GEOMETRY_TRIANGLES_DESC& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_RAYTRACING_AABB& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_RAYTRACING_GEOMETRY_AABBS_DESC& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_COMPACTED_SIZE_DESC& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_TOOLS_VISUALIZATION_DESC& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_TOOLS_VISUALIZATION_HEADER& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_SERIALIZATION_DESC& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_SERIALIZED_DATA_DRIVER_MATCHING_IDENTIFIER& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_SERIALIZED_RAYTRACING_ACCELERATION_STRUCTURE_HEADER& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_CURRENT_SIZE_DESC& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_RAYTRACING_INSTANCE_DESC& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_RAYTRACING_GEOMETRY_DESC& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_DESC& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_RAYTRACING_ACCELERATION_STRUCTURE_PREBUILD_INFO& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_AUTO_BREADCRUMB_NODE& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_DRED_BREADCRUMB_CONTEXT& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_AUTO_BREADCRUMB_NODE1& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_DEVICE_REMOVED_EXTENDED_DATA& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_DRED_ALLOCATION_NODE& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_DRED_ALLOCATION_NODE1& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT1& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_DRED_PAGE_FAULT_OUTPUT& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_DRED_PAGE_FAULT_OUTPUT1& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_DRED_PAGE_FAULT_OUTPUT2& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_DEVICE_REMOVED_EXTENDED_DATA1& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_DEVICE_REMOVED_EXTENDED_DATA2& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_DEVICE_REMOVED_EXTENDED_DATA3& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_VERSIONED_DEVICE_REMOVED_EXTENDED_DATA& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_FEATURE_DATA_PROTECTED_RESOURCE_SESSION_TYPE_COUNT& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_FEATURE_DATA_PROTECTED_RESOURCE_SESSION_TYPES& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_PROTECTED_RESOURCE_SESSION_DESC1& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_RENDER_PASS_BEGINNING_ACCESS_CLEAR_PARAMETERS& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_RENDER_PASS_BEGINNING_ACCESS_PRESERVE_LOCAL_PARAMETERS& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_RENDER_PASS_BEGINNING_ACCESS& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_RENDER_PASS_ENDING_ACCESS_RESOLVE_SUBRESOURCE_PARAMETERS& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_RENDER_PASS_ENDING_ACCESS_RESOLVE_PARAMETERS& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_RENDER_PASS_ENDING_ACCESS_PRESERVE_LOCAL_PARAMETERS& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_RENDER_PASS_ENDING_ACCESS& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_RENDER_PASS_RENDER_TARGET_DESC& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_RENDER_PASS_DEPTH_STENCIL_DESC& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_DISPATCH_RAYS_DESC& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_SHADER_CACHE_SESSION_DESC& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_BARRIER_SUBRESOURCE_RANGE& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_GLOBAL_BARRIER& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_TEXTURE_BARRIER& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_BUFFER_BARRIER& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_BARRIER_GROUP& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_SUBRESOURCE_DATA& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_MEMCPY_DEST& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_DEVICE_CONFIGURATION_DESC& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_DISPATCH_MESH_ARGUMENTS& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D_SHADER_MACRO& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_DEBUG_DEVICE_GPU_BASED_VALIDATION_SETTINGS& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_DEBUG_DEVICE_GPU_SLOWDOWN_PERFORMANCE_FACTOR& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_DEBUG_COMMAND_LIST_GPU_BASED_VALIDATION_SETTINGS& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_MESSAGE& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_INFO_QUEUE_FILTER_DESC& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_D3D12_INFO_QUEUE_FILTER& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_GUID& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_tagRECT& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_tagPOINT& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded__SECURITY_ATTRIBUTES& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } + +// Custom, manually written implementations whose prototypes haven't been generated above: + +/// Named union type with two structs and a uint64_t inside. +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_LARGE_INTEGER* pObj, const util::JsonOptions& options); +inline void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_LARGE_INTEGER& obj, const util::JsonOptions& options){ FieldToJson(jdata, &obj, options); } + +GFXRECON_END_NAMESPACE(decode) +GFXRECON_END_NAMESPACE(gfxrecon) + +#endif diff --git a/framework/generated/generated_dx12_struct_to_string.cpp b/framework/generated/generated_dx12_struct_to_string.cpp deleted file mode 100644 index 214a24202d..0000000000 --- a/framework/generated/generated_dx12_struct_to_string.cpp +++ /dev/null @@ -1,3357 +0,0 @@ -/* -** Copyright (c) 2021-2023 LunarG, Inc. -** -** Permission is hereby granted, free of charge, to any person obtaining a copy -** of this software and associated documentation files (the "Software"), to -** deal in the Software without restriction, including without limitation the -** rights to use, copy, modify, merge, publish, distribute, sublicense, and/or -** sell copies of the Software, and to permit persons to whom the Software is -** furnished to do so, subject to the following conditions: -** -** The above copyright notice and this permission notice shall be included in -** all copies or substantial portions of the Software. -** -** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -** IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -** FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -** AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -** LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -** FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS -** IN THE SOFTWARE. -*/ - -/* -** This file is generated from dx12_struct_to_string_body_generator.py. -** -*/ - -#include "generated_dx12_struct_to_string.h" -#include "decode/custom_dx12_ascii_consumer.h" -#include "decode/custom_dx12_to_string.h" -#include "generated_dx12_enum_to_string.h" - -GFXRECON_BEGIN_NAMESPACE(gfxrecon) -GFXRECON_BEGIN_NAMESPACE(util) - -std::string ToString(const DXGI_FRAME_STATISTICS& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "PresentCount", toStringFlags, tabCount, tabSize, ToString(obj.PresentCount, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "PresentRefreshCount", toStringFlags, tabCount, tabSize, ToString(obj.PresentRefreshCount, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "SyncRefreshCount", toStringFlags, tabCount, tabSize, ToString(obj.SyncRefreshCount, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "SyncQPCTime", toStringFlags, tabCount, tabSize, ToString(obj.SyncQPCTime, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "SyncGPUTime", toStringFlags, tabCount, tabSize, ToString(obj.SyncGPUTime, toStringFlags, tabCount, tabSize)); - } - ); -} - -std::string ToString(const DXGI_MAPPED_RECT& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "Pitch", toStringFlags, tabCount, tabSize, ToString(obj.Pitch, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "pBits", toStringFlags, tabCount, tabSize, (obj.pBits ? ToString(*obj.pBits, toStringFlags, tabCount, tabSize) : "null")); - } - ); -} - -std::string ToString(const LUID& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "LowPart", toStringFlags, tabCount, tabSize, ToString(obj.LowPart, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "HighPart", toStringFlags, tabCount, tabSize, ToString(obj.HighPart, toStringFlags, tabCount, tabSize)); - } - ); -} - -std::string ToString(const DXGI_ADAPTER_DESC& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "Description", toStringFlags, tabCount, tabSize, Quote(WCharArrayToString(obj.Description))); - FieldToString(strStrm, false, "VendorId", toStringFlags, tabCount, tabSize, ToString(obj.VendorId, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "DeviceId", toStringFlags, tabCount, tabSize, ToString(obj.DeviceId, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "SubSysId", toStringFlags, tabCount, tabSize, ToString(obj.SubSysId, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "Revision", toStringFlags, tabCount, tabSize, ToString(obj.Revision, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "DedicatedVideoMemory", toStringFlags, tabCount, tabSize, ToString(obj.DedicatedVideoMemory, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "DedicatedSystemMemory", toStringFlags, tabCount, tabSize, ToString(obj.DedicatedSystemMemory, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "SharedSystemMemory", toStringFlags, tabCount, tabSize, ToString(obj.SharedSystemMemory, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "AdapterLuid", toStringFlags, tabCount, tabSize, ToString(obj.AdapterLuid, toStringFlags, tabCount, tabSize)); - } - ); -} - -std::string ToString(const DXGI_OUTPUT_DESC& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "DeviceName", toStringFlags, tabCount, tabSize, Quote(WCharArrayToString(obj.DeviceName))); - FieldToString(strStrm, false, "DesktopCoordinates", toStringFlags, tabCount, tabSize, ToString(obj.DesktopCoordinates, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "AttachedToDesktop", toStringFlags, tabCount, tabSize, ToString(obj.AttachedToDesktop, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "Rotation", toStringFlags, tabCount, tabSize, Quote(ToString(obj.Rotation))); - FieldToString(strStrm, false, "Monitor", toStringFlags, tabCount, tabSize, HandleIdToString(obj.Monitor)); - } - ); -} - -std::string ToString(const DXGI_SHARED_RESOURCE& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "Handle", toStringFlags, tabCount, tabSize, HandleIdToString(obj.Handle)); - } - ); -} - -std::string ToString(const DXGI_SURFACE_DESC& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "Width", toStringFlags, tabCount, tabSize, ToString(obj.Width, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "Height", toStringFlags, tabCount, tabSize, ToString(obj.Height, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "Format", toStringFlags, tabCount, tabSize, Quote(ToString(obj.Format))); - FieldToString(strStrm, false, "SampleDesc", toStringFlags, tabCount, tabSize, ToString(obj.SampleDesc, toStringFlags, tabCount, tabSize)); - } - ); -} - -std::string ToString(const DXGI_SWAP_CHAIN_DESC& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "BufferDesc", toStringFlags, tabCount, tabSize, ToString(obj.BufferDesc, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "SampleDesc", toStringFlags, tabCount, tabSize, ToString(obj.SampleDesc, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "BufferUsage", toStringFlags, tabCount, tabSize, ToString(obj.BufferUsage, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "BufferCount", toStringFlags, tabCount, tabSize, ToString(obj.BufferCount, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "OutputWindow", toStringFlags, tabCount, tabSize, HandleIdToString(obj.OutputWindow)); - FieldToString(strStrm, false, "Windowed", toStringFlags, tabCount, tabSize, ToString(obj.Windowed, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "SwapEffect", toStringFlags, tabCount, tabSize, Quote(ToString(obj.SwapEffect))); - FieldToString(strStrm, false, "Flags", toStringFlags, tabCount, tabSize, ToString(obj.Flags, toStringFlags, tabCount, tabSize)); - } - ); -} - -std::string ToString(const DXGI_ADAPTER_DESC1& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "Description", toStringFlags, tabCount, tabSize, Quote(WCharArrayToString(obj.Description))); - FieldToString(strStrm, false, "VendorId", toStringFlags, tabCount, tabSize, ToString(obj.VendorId, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "DeviceId", toStringFlags, tabCount, tabSize, ToString(obj.DeviceId, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "SubSysId", toStringFlags, tabCount, tabSize, ToString(obj.SubSysId, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "Revision", toStringFlags, tabCount, tabSize, ToString(obj.Revision, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "DedicatedVideoMemory", toStringFlags, tabCount, tabSize, ToString(obj.DedicatedVideoMemory, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "DedicatedSystemMemory", toStringFlags, tabCount, tabSize, ToString(obj.DedicatedSystemMemory, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "SharedSystemMemory", toStringFlags, tabCount, tabSize, ToString(obj.SharedSystemMemory, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "AdapterLuid", toStringFlags, tabCount, tabSize, ToString(obj.AdapterLuid, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "Flags", toStringFlags, tabCount, tabSize, ToString(obj.Flags, toStringFlags, tabCount, tabSize)); - } - ); -} - -std::string ToString(const DXGI_OUTDUPL_MOVE_RECT& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "SourcePoint", toStringFlags, tabCount, tabSize, ToString(obj.SourcePoint, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "DestinationRect", toStringFlags, tabCount, tabSize, ToString(obj.DestinationRect, toStringFlags, tabCount, tabSize)); - } - ); -} - -std::string ToString(const DXGI_OUTDUPL_DESC& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "ModeDesc", toStringFlags, tabCount, tabSize, ToString(obj.ModeDesc, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "Rotation", toStringFlags, tabCount, tabSize, Quote(ToString(obj.Rotation))); - FieldToString(strStrm, false, "DesktopImageInSystemMemory", toStringFlags, tabCount, tabSize, ToString(obj.DesktopImageInSystemMemory, toStringFlags, tabCount, tabSize)); - } - ); -} - -std::string ToString(const DXGI_OUTDUPL_POINTER_POSITION& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "Position", toStringFlags, tabCount, tabSize, ToString(obj.Position, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "Visible", toStringFlags, tabCount, tabSize, ToString(obj.Visible, toStringFlags, tabCount, tabSize)); - } - ); -} - -std::string ToString(const DXGI_OUTDUPL_POINTER_SHAPE_INFO& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "Type", toStringFlags, tabCount, tabSize, ToString(obj.Type, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "Width", toStringFlags, tabCount, tabSize, ToString(obj.Width, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "Height", toStringFlags, tabCount, tabSize, ToString(obj.Height, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "Pitch", toStringFlags, tabCount, tabSize, ToString(obj.Pitch, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "HotSpot", toStringFlags, tabCount, tabSize, ToString(obj.HotSpot, toStringFlags, tabCount, tabSize)); - } - ); -} - -std::string ToString(const DXGI_OUTDUPL_FRAME_INFO& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "LastPresentTime", toStringFlags, tabCount, tabSize, ToString(obj.LastPresentTime, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "LastMouseUpdateTime", toStringFlags, tabCount, tabSize, ToString(obj.LastMouseUpdateTime, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "AccumulatedFrames", toStringFlags, tabCount, tabSize, ToString(obj.AccumulatedFrames, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "RectsCoalesced", toStringFlags, tabCount, tabSize, ToString(obj.RectsCoalesced, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "ProtectedContentMaskedOut", toStringFlags, tabCount, tabSize, ToString(obj.ProtectedContentMaskedOut, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "PointerPosition", toStringFlags, tabCount, tabSize, ToString(obj.PointerPosition, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "TotalMetadataBufferSize", toStringFlags, tabCount, tabSize, ToString(obj.TotalMetadataBufferSize, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "PointerShapeBufferSize", toStringFlags, tabCount, tabSize, ToString(obj.PointerShapeBufferSize, toStringFlags, tabCount, tabSize)); - } - ); -} - -std::string ToString(const DXGI_MODE_DESC1& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "Width", toStringFlags, tabCount, tabSize, ToString(obj.Width, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "Height", toStringFlags, tabCount, tabSize, ToString(obj.Height, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "RefreshRate", toStringFlags, tabCount, tabSize, ToString(obj.RefreshRate, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "Format", toStringFlags, tabCount, tabSize, Quote(ToString(obj.Format))); - FieldToString(strStrm, false, "ScanlineOrdering", toStringFlags, tabCount, tabSize, Quote(ToString(obj.ScanlineOrdering))); - FieldToString(strStrm, false, "Scaling", toStringFlags, tabCount, tabSize, Quote(ToString(obj.Scaling))); - FieldToString(strStrm, false, "Stereo", toStringFlags, tabCount, tabSize, ToString(obj.Stereo, toStringFlags, tabCount, tabSize)); - } - ); -} - -std::string ToString(const DXGI_SWAP_CHAIN_DESC1& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "Width", toStringFlags, tabCount, tabSize, ToString(obj.Width, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "Height", toStringFlags, tabCount, tabSize, ToString(obj.Height, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "Format", toStringFlags, tabCount, tabSize, Quote(ToString(obj.Format))); - FieldToString(strStrm, false, "Stereo", toStringFlags, tabCount, tabSize, ToString(obj.Stereo, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "SampleDesc", toStringFlags, tabCount, tabSize, ToString(obj.SampleDesc, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "BufferUsage", toStringFlags, tabCount, tabSize, ToString(obj.BufferUsage, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "BufferCount", toStringFlags, tabCount, tabSize, ToString(obj.BufferCount, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "Scaling", toStringFlags, tabCount, tabSize, Quote(ToString(obj.Scaling))); - FieldToString(strStrm, false, "SwapEffect", toStringFlags, tabCount, tabSize, Quote(ToString(obj.SwapEffect))); - FieldToString(strStrm, false, "AlphaMode", toStringFlags, tabCount, tabSize, Quote(ToString(obj.AlphaMode))); - FieldToString(strStrm, false, "Flags", toStringFlags, tabCount, tabSize, ToString(obj.Flags, toStringFlags, tabCount, tabSize)); - } - ); -} - -std::string ToString(const DXGI_SWAP_CHAIN_FULLSCREEN_DESC& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "RefreshRate", toStringFlags, tabCount, tabSize, ToString(obj.RefreshRate, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "ScanlineOrdering", toStringFlags, tabCount, tabSize, Quote(ToString(obj.ScanlineOrdering))); - FieldToString(strStrm, false, "Scaling", toStringFlags, tabCount, tabSize, Quote(ToString(obj.Scaling))); - FieldToString(strStrm, false, "Windowed", toStringFlags, tabCount, tabSize, ToString(obj.Windowed, toStringFlags, tabCount, tabSize)); - } - ); -} - -std::string ToString(const DXGI_PRESENT_PARAMETERS& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "DirtyRectsCount", toStringFlags, tabCount, tabSize, ToString(obj.DirtyRectsCount, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "pDirtyRects", toStringFlags, tabCount, tabSize, ArrayToString(obj.DirtyRectsCount, obj.pDirtyRects, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "pScrollRect", toStringFlags, tabCount, tabSize, (obj.pScrollRect ? ToString(*obj.pScrollRect, toStringFlags, tabCount, tabSize) : "null")); - FieldToString(strStrm, false, "pScrollOffset", toStringFlags, tabCount, tabSize, (obj.pScrollOffset ? ToString(*obj.pScrollOffset, toStringFlags, tabCount, tabSize) : "null")); - } - ); -} - -std::string ToString(const DXGI_ADAPTER_DESC2& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "Description", toStringFlags, tabCount, tabSize, Quote(WCharArrayToString(obj.Description))); - FieldToString(strStrm, false, "VendorId", toStringFlags, tabCount, tabSize, ToString(obj.VendorId, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "DeviceId", toStringFlags, tabCount, tabSize, ToString(obj.DeviceId, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "SubSysId", toStringFlags, tabCount, tabSize, ToString(obj.SubSysId, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "Revision", toStringFlags, tabCount, tabSize, ToString(obj.Revision, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "DedicatedVideoMemory", toStringFlags, tabCount, tabSize, ToString(obj.DedicatedVideoMemory, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "DedicatedSystemMemory", toStringFlags, tabCount, tabSize, ToString(obj.DedicatedSystemMemory, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "SharedSystemMemory", toStringFlags, tabCount, tabSize, ToString(obj.SharedSystemMemory, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "AdapterLuid", toStringFlags, tabCount, tabSize, ToString(obj.AdapterLuid, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "Flags", toStringFlags, tabCount, tabSize, ToString(obj.Flags, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "GraphicsPreemptionGranularity", toStringFlags, tabCount, tabSize, Quote(ToString(obj.GraphicsPreemptionGranularity))); - FieldToString(strStrm, false, "ComputePreemptionGranularity", toStringFlags, tabCount, tabSize, Quote(ToString(obj.ComputePreemptionGranularity))); - } - ); -} - -std::string ToString(const DXGI_MATRIX_3X2_F& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "_11", toStringFlags, tabCount, tabSize, ToString(obj._11, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "_12", toStringFlags, tabCount, tabSize, ToString(obj._12, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "_21", toStringFlags, tabCount, tabSize, ToString(obj._21, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "_22", toStringFlags, tabCount, tabSize, ToString(obj._22, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "_31", toStringFlags, tabCount, tabSize, ToString(obj._31, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "_32", toStringFlags, tabCount, tabSize, ToString(obj._32, toStringFlags, tabCount, tabSize)); - } - ); -} - -std::string ToString(const DXGI_DECODE_SWAP_CHAIN_DESC& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "Flags", toStringFlags, tabCount, tabSize, ToString(obj.Flags, toStringFlags, tabCount, tabSize)); - } - ); -} - -std::string ToString(const DXGI_FRAME_STATISTICS_MEDIA& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "PresentCount", toStringFlags, tabCount, tabSize, ToString(obj.PresentCount, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "PresentRefreshCount", toStringFlags, tabCount, tabSize, ToString(obj.PresentRefreshCount, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "SyncRefreshCount", toStringFlags, tabCount, tabSize, ToString(obj.SyncRefreshCount, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "SyncQPCTime", toStringFlags, tabCount, tabSize, ToString(obj.SyncQPCTime, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "SyncGPUTime", toStringFlags, tabCount, tabSize, ToString(obj.SyncGPUTime, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "CompositionMode", toStringFlags, tabCount, tabSize, Quote(ToString(obj.CompositionMode))); - FieldToString(strStrm, false, "ApprovedPresentDuration", toStringFlags, tabCount, tabSize, ToString(obj.ApprovedPresentDuration, toStringFlags, tabCount, tabSize)); - } - ); -} - -std::string ToString(const DXGI_QUERY_VIDEO_MEMORY_INFO& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "Budget", toStringFlags, tabCount, tabSize, ToString(obj.Budget, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "CurrentUsage", toStringFlags, tabCount, tabSize, ToString(obj.CurrentUsage, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "AvailableForReservation", toStringFlags, tabCount, tabSize, ToString(obj.AvailableForReservation, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "CurrentReservation", toStringFlags, tabCount, tabSize, ToString(obj.CurrentReservation, toStringFlags, tabCount, tabSize)); - } - ); -} - -std::string ToString(const DXGI_HDR_METADATA_HDR10& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "RedPrimary", toStringFlags, tabCount, tabSize, ArrayToString(2, obj.RedPrimary, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "GreenPrimary", toStringFlags, tabCount, tabSize, ArrayToString(2, obj.GreenPrimary, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "BluePrimary", toStringFlags, tabCount, tabSize, ArrayToString(2, obj.BluePrimary, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "WhitePoint", toStringFlags, tabCount, tabSize, ArrayToString(2, obj.WhitePoint, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "MaxMasteringLuminance", toStringFlags, tabCount, tabSize, ToString(obj.MaxMasteringLuminance, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "MinMasteringLuminance", toStringFlags, tabCount, tabSize, ToString(obj.MinMasteringLuminance, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "MaxContentLightLevel", toStringFlags, tabCount, tabSize, ToString(obj.MaxContentLightLevel, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "MaxFrameAverageLightLevel", toStringFlags, tabCount, tabSize, ToString(obj.MaxFrameAverageLightLevel, toStringFlags, tabCount, tabSize)); - } - ); -} - -std::string ToString(const DXGI_HDR_METADATA_HDR10PLUS& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "Data", toStringFlags, tabCount, tabSize, ArrayToString(72, obj.Data, toStringFlags, tabCount, tabSize)); - } - ); -} - -std::string ToString(const DXGI_ADAPTER_DESC3& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "Description", toStringFlags, tabCount, tabSize, Quote(WCharArrayToString(obj.Description))); - FieldToString(strStrm, false, "VendorId", toStringFlags, tabCount, tabSize, ToString(obj.VendorId, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "DeviceId", toStringFlags, tabCount, tabSize, ToString(obj.DeviceId, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "SubSysId", toStringFlags, tabCount, tabSize, ToString(obj.SubSysId, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "Revision", toStringFlags, tabCount, tabSize, ToString(obj.Revision, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "DedicatedVideoMemory", toStringFlags, tabCount, tabSize, ToString(obj.DedicatedVideoMemory, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "DedicatedSystemMemory", toStringFlags, tabCount, tabSize, ToString(obj.DedicatedSystemMemory, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "SharedSystemMemory", toStringFlags, tabCount, tabSize, ToString(obj.SharedSystemMemory, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "AdapterLuid", toStringFlags, tabCount, tabSize, ToString(obj.AdapterLuid, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "Flags", toStringFlags, tabCount, tabSize, Quote(ToString(obj.Flags))); - FieldToString(strStrm, false, "GraphicsPreemptionGranularity", toStringFlags, tabCount, tabSize, Quote(ToString(obj.GraphicsPreemptionGranularity))); - FieldToString(strStrm, false, "ComputePreemptionGranularity", toStringFlags, tabCount, tabSize, Quote(ToString(obj.ComputePreemptionGranularity))); - } - ); -} - -std::string ToString(const DXGI_OUTPUT_DESC1& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "DeviceName", toStringFlags, tabCount, tabSize, Quote(WCharArrayToString(obj.DeviceName))); - FieldToString(strStrm, false, "DesktopCoordinates", toStringFlags, tabCount, tabSize, ToString(obj.DesktopCoordinates, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "AttachedToDesktop", toStringFlags, tabCount, tabSize, ToString(obj.AttachedToDesktop, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "Rotation", toStringFlags, tabCount, tabSize, Quote(ToString(obj.Rotation))); - FieldToString(strStrm, false, "Monitor", toStringFlags, tabCount, tabSize, HandleIdToString(obj.Monitor)); - FieldToString(strStrm, false, "BitsPerColor", toStringFlags, tabCount, tabSize, ToString(obj.BitsPerColor, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "ColorSpace", toStringFlags, tabCount, tabSize, Quote(ToString(obj.ColorSpace))); - FieldToString(strStrm, false, "RedPrimary", toStringFlags, tabCount, tabSize, ArrayToString(2, obj.RedPrimary, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "GreenPrimary", toStringFlags, tabCount, tabSize, ArrayToString(2, obj.GreenPrimary, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "BluePrimary", toStringFlags, tabCount, tabSize, ArrayToString(2, obj.BluePrimary, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "WhitePoint", toStringFlags, tabCount, tabSize, ArrayToString(2, obj.WhitePoint, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "MinLuminance", toStringFlags, tabCount, tabSize, ToString(obj.MinLuminance, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "MaxLuminance", toStringFlags, tabCount, tabSize, ToString(obj.MaxLuminance, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "MaxFullFrameLuminance", toStringFlags, tabCount, tabSize, ToString(obj.MaxFullFrameLuminance, toStringFlags, tabCount, tabSize)); - } - ); -} - -std::string ToString(const DXGI_RATIONAL& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "Numerator", toStringFlags, tabCount, tabSize, ToString(obj.Numerator, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "Denominator", toStringFlags, tabCount, tabSize, ToString(obj.Denominator, toStringFlags, tabCount, tabSize)); - } - ); -} - -std::string ToString(const DXGI_SAMPLE_DESC& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "Count", toStringFlags, tabCount, tabSize, ToString(obj.Count, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "Quality", toStringFlags, tabCount, tabSize, ToString(obj.Quality, toStringFlags, tabCount, tabSize)); - } - ); -} - -std::string ToString(const DXGI_RGB& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "Red", toStringFlags, tabCount, tabSize, ToString(obj.Red, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "Green", toStringFlags, tabCount, tabSize, ToString(obj.Green, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "Blue", toStringFlags, tabCount, tabSize, ToString(obj.Blue, toStringFlags, tabCount, tabSize)); - } - ); -} - -std::string ToString(const D3DCOLORVALUE& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "r", toStringFlags, tabCount, tabSize, ToString(obj.r, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "g", toStringFlags, tabCount, tabSize, ToString(obj.g, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "b", toStringFlags, tabCount, tabSize, ToString(obj.b, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "a", toStringFlags, tabCount, tabSize, ToString(obj.a, toStringFlags, tabCount, tabSize)); - } - ); -} - -std::string ToString(const DXGI_GAMMA_CONTROL& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "Scale", toStringFlags, tabCount, tabSize, ToString(obj.Scale, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "Offset", toStringFlags, tabCount, tabSize, ToString(obj.Offset, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "GammaCurve", toStringFlags, tabCount, tabSize, ArrayToString(1025, obj.GammaCurve, toStringFlags, tabCount, tabSize)); - } - ); -} - -std::string ToString(const DXGI_GAMMA_CONTROL_CAPABILITIES& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "ScaleAndOffsetSupported", toStringFlags, tabCount, tabSize, ToString(obj.ScaleAndOffsetSupported, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "MaxConvertedValue", toStringFlags, tabCount, tabSize, ToString(obj.MaxConvertedValue, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "MinConvertedValue", toStringFlags, tabCount, tabSize, ToString(obj.MinConvertedValue, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "NumGammaControlPoints", toStringFlags, tabCount, tabSize, ToString(obj.NumGammaControlPoints, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "ControlPointPositions", toStringFlags, tabCount, tabSize, ArrayToString(1025, obj.ControlPointPositions, toStringFlags, tabCount, tabSize)); - } - ); -} - -std::string ToString(const DXGI_MODE_DESC& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "Width", toStringFlags, tabCount, tabSize, ToString(obj.Width, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "Height", toStringFlags, tabCount, tabSize, ToString(obj.Height, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "RefreshRate", toStringFlags, tabCount, tabSize, ToString(obj.RefreshRate, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "Format", toStringFlags, tabCount, tabSize, Quote(ToString(obj.Format))); - FieldToString(strStrm, false, "ScanlineOrdering", toStringFlags, tabCount, tabSize, Quote(ToString(obj.ScanlineOrdering))); - FieldToString(strStrm, false, "Scaling", toStringFlags, tabCount, tabSize, Quote(ToString(obj.Scaling))); - } - ); -} - -std::string ToString(const DXGI_JPEG_DC_HUFFMAN_TABLE& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "CodeCounts", toStringFlags, tabCount, tabSize, ArrayToString(12, obj.CodeCounts, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "CodeValues", toStringFlags, tabCount, tabSize, ArrayToString(12, obj.CodeValues, toStringFlags, tabCount, tabSize)); - } - ); -} - -std::string ToString(const DXGI_JPEG_AC_HUFFMAN_TABLE& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "CodeCounts", toStringFlags, tabCount, tabSize, ArrayToString(16, obj.CodeCounts, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "CodeValues", toStringFlags, tabCount, tabSize, ArrayToString(162, obj.CodeValues, toStringFlags, tabCount, tabSize)); - } - ); -} - -std::string ToString(const DXGI_JPEG_QUANTIZATION_TABLE& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "Elements", toStringFlags, tabCount, tabSize, ArrayToString(64, obj.Elements, toStringFlags, tabCount, tabSize)); - } - ); -} - -std::string ToString(const D3D12_COMMAND_QUEUE_DESC& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "Type", toStringFlags, tabCount, tabSize, Quote(ToString(obj.Type))); - FieldToString(strStrm, false, "Priority", toStringFlags, tabCount, tabSize, ToString(obj.Priority, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "Flags", toStringFlags, tabCount, tabSize, Quote(ToString(obj.Flags))); - FieldToString(strStrm, false, "NodeMask", toStringFlags, tabCount, tabSize, ToString(obj.NodeMask, toStringFlags, tabCount, tabSize)); - } - ); -} - -std::string ToString(const D3D12_INPUT_ELEMENT_DESC& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "SemanticName", toStringFlags, tabCount, tabSize, (obj.SemanticName ? ToString(*obj.SemanticName, toStringFlags, tabCount, tabSize) : "null")); - FieldToString(strStrm, false, "SemanticIndex", toStringFlags, tabCount, tabSize, ToString(obj.SemanticIndex, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "Format", toStringFlags, tabCount, tabSize, Quote(ToString(obj.Format))); - FieldToString(strStrm, false, "InputSlot", toStringFlags, tabCount, tabSize, ToString(obj.InputSlot, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "AlignedByteOffset", toStringFlags, tabCount, tabSize, ToString(obj.AlignedByteOffset, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "InputSlotClass", toStringFlags, tabCount, tabSize, Quote(ToString(obj.InputSlotClass))); - FieldToString(strStrm, false, "InstanceDataStepRate", toStringFlags, tabCount, tabSize, ToString(obj.InstanceDataStepRate, toStringFlags, tabCount, tabSize)); - } - ); -} - -std::string ToString(const D3D12_SO_DECLARATION_ENTRY& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "Stream", toStringFlags, tabCount, tabSize, ToString(obj.Stream, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "SemanticName", toStringFlags, tabCount, tabSize, (obj.SemanticName ? ToString(*obj.SemanticName, toStringFlags, tabCount, tabSize) : "null")); - FieldToString(strStrm, false, "SemanticIndex", toStringFlags, tabCount, tabSize, ToString(obj.SemanticIndex, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "StartComponent", toStringFlags, tabCount, tabSize, ToString(obj.StartComponent, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "ComponentCount", toStringFlags, tabCount, tabSize, ToString(obj.ComponentCount, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "OutputSlot", toStringFlags, tabCount, tabSize, ToString(obj.OutputSlot, toStringFlags, tabCount, tabSize)); - } - ); -} - -std::string ToString(const D3D12_VIEWPORT& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "TopLeftX", toStringFlags, tabCount, tabSize, ToString(obj.TopLeftX, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "TopLeftY", toStringFlags, tabCount, tabSize, ToString(obj.TopLeftY, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "Width", toStringFlags, tabCount, tabSize, ToString(obj.Width, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "Height", toStringFlags, tabCount, tabSize, ToString(obj.Height, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "MinDepth", toStringFlags, tabCount, tabSize, ToString(obj.MinDepth, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "MaxDepth", toStringFlags, tabCount, tabSize, ToString(obj.MaxDepth, toStringFlags, tabCount, tabSize)); - } - ); -} - -std::string ToString(const D3D12_BOX& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "left", toStringFlags, tabCount, tabSize, ToString(obj.left, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "top", toStringFlags, tabCount, tabSize, ToString(obj.top, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "front", toStringFlags, tabCount, tabSize, ToString(obj.front, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "right", toStringFlags, tabCount, tabSize, ToString(obj.right, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "bottom", toStringFlags, tabCount, tabSize, ToString(obj.bottom, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "back", toStringFlags, tabCount, tabSize, ToString(obj.back, toStringFlags, tabCount, tabSize)); - } - ); -} - -std::string ToString(const D3D12_DEPTH_STENCILOP_DESC& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "StencilFailOp", toStringFlags, tabCount, tabSize, Quote(ToString(obj.StencilFailOp))); - FieldToString(strStrm, false, "StencilDepthFailOp", toStringFlags, tabCount, tabSize, Quote(ToString(obj.StencilDepthFailOp))); - FieldToString(strStrm, false, "StencilPassOp", toStringFlags, tabCount, tabSize, Quote(ToString(obj.StencilPassOp))); - FieldToString(strStrm, false, "StencilFunc", toStringFlags, tabCount, tabSize, Quote(ToString(obj.StencilFunc))); - } - ); -} - -std::string ToString(const D3D12_DEPTH_STENCIL_DESC& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "DepthEnable", toStringFlags, tabCount, tabSize, ToString(obj.DepthEnable, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "DepthWriteMask", toStringFlags, tabCount, tabSize, Quote(ToString(obj.DepthWriteMask))); - FieldToString(strStrm, false, "DepthFunc", toStringFlags, tabCount, tabSize, Quote(ToString(obj.DepthFunc))); - FieldToString(strStrm, false, "StencilEnable", toStringFlags, tabCount, tabSize, ToString(obj.StencilEnable, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "StencilReadMask", toStringFlags, tabCount, tabSize, ToString(obj.StencilReadMask, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "StencilWriteMask", toStringFlags, tabCount, tabSize, ToString(obj.StencilWriteMask, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "FrontFace", toStringFlags, tabCount, tabSize, ToString(obj.FrontFace, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "BackFace", toStringFlags, tabCount, tabSize, ToString(obj.BackFace, toStringFlags, tabCount, tabSize)); - } - ); -} - -std::string ToString(const D3D12_DEPTH_STENCIL_DESC1& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "DepthEnable", toStringFlags, tabCount, tabSize, ToString(obj.DepthEnable, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "DepthWriteMask", toStringFlags, tabCount, tabSize, Quote(ToString(obj.DepthWriteMask))); - FieldToString(strStrm, false, "DepthFunc", toStringFlags, tabCount, tabSize, Quote(ToString(obj.DepthFunc))); - FieldToString(strStrm, false, "StencilEnable", toStringFlags, tabCount, tabSize, ToString(obj.StencilEnable, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "StencilReadMask", toStringFlags, tabCount, tabSize, ToString(obj.StencilReadMask, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "StencilWriteMask", toStringFlags, tabCount, tabSize, ToString(obj.StencilWriteMask, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "FrontFace", toStringFlags, tabCount, tabSize, ToString(obj.FrontFace, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "BackFace", toStringFlags, tabCount, tabSize, ToString(obj.BackFace, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "DepthBoundsTestEnable", toStringFlags, tabCount, tabSize, ToString(obj.DepthBoundsTestEnable, toStringFlags, tabCount, tabSize)); - } - ); -} - -std::string ToString(const D3D12_DEPTH_STENCILOP_DESC1& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "StencilFailOp", toStringFlags, tabCount, tabSize, Quote(ToString(obj.StencilFailOp))); - FieldToString(strStrm, false, "StencilDepthFailOp", toStringFlags, tabCount, tabSize, Quote(ToString(obj.StencilDepthFailOp))); - FieldToString(strStrm, false, "StencilPassOp", toStringFlags, tabCount, tabSize, Quote(ToString(obj.StencilPassOp))); - FieldToString(strStrm, false, "StencilFunc", toStringFlags, tabCount, tabSize, Quote(ToString(obj.StencilFunc))); - FieldToString(strStrm, false, "StencilReadMask", toStringFlags, tabCount, tabSize, ToString(obj.StencilReadMask, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "StencilWriteMask", toStringFlags, tabCount, tabSize, ToString(obj.StencilWriteMask, toStringFlags, tabCount, tabSize)); - } - ); -} - -std::string ToString(const D3D12_DEPTH_STENCIL_DESC2& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "DepthEnable", toStringFlags, tabCount, tabSize, ToString(obj.DepthEnable, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "DepthWriteMask", toStringFlags, tabCount, tabSize, Quote(ToString(obj.DepthWriteMask))); - FieldToString(strStrm, false, "DepthFunc", toStringFlags, tabCount, tabSize, Quote(ToString(obj.DepthFunc))); - FieldToString(strStrm, false, "StencilEnable", toStringFlags, tabCount, tabSize, ToString(obj.StencilEnable, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "FrontFace", toStringFlags, tabCount, tabSize, ToString(obj.FrontFace, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "BackFace", toStringFlags, tabCount, tabSize, ToString(obj.BackFace, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "DepthBoundsTestEnable", toStringFlags, tabCount, tabSize, ToString(obj.DepthBoundsTestEnable, toStringFlags, tabCount, tabSize)); - } - ); -} - -std::string ToString(const D3D12_RENDER_TARGET_BLEND_DESC& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "BlendEnable", toStringFlags, tabCount, tabSize, ToString(obj.BlendEnable, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "LogicOpEnable", toStringFlags, tabCount, tabSize, ToString(obj.LogicOpEnable, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "SrcBlend", toStringFlags, tabCount, tabSize, Quote(ToString(obj.SrcBlend))); - FieldToString(strStrm, false, "DestBlend", toStringFlags, tabCount, tabSize, Quote(ToString(obj.DestBlend))); - FieldToString(strStrm, false, "BlendOp", toStringFlags, tabCount, tabSize, Quote(ToString(obj.BlendOp))); - FieldToString(strStrm, false, "SrcBlendAlpha", toStringFlags, tabCount, tabSize, Quote(ToString(obj.SrcBlendAlpha))); - FieldToString(strStrm, false, "DestBlendAlpha", toStringFlags, tabCount, tabSize, Quote(ToString(obj.DestBlendAlpha))); - FieldToString(strStrm, false, "BlendOpAlpha", toStringFlags, tabCount, tabSize, Quote(ToString(obj.BlendOpAlpha))); - FieldToString(strStrm, false, "LogicOp", toStringFlags, tabCount, tabSize, Quote(ToString(obj.LogicOp))); - FieldToString(strStrm, false, "RenderTargetWriteMask", toStringFlags, tabCount, tabSize, ToString(obj.RenderTargetWriteMask, toStringFlags, tabCount, tabSize)); - } - ); -} - -std::string ToString(const D3D12_BLEND_DESC& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "AlphaToCoverageEnable", toStringFlags, tabCount, tabSize, ToString(obj.AlphaToCoverageEnable, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "IndependentBlendEnable", toStringFlags, tabCount, tabSize, ToString(obj.IndependentBlendEnable, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "RenderTarget", toStringFlags, tabCount, tabSize, ArrayToString(8, obj.RenderTarget, toStringFlags, tabCount, tabSize)); - } - ); -} - -std::string ToString(const D3D12_RASTERIZER_DESC& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "FillMode", toStringFlags, tabCount, tabSize, Quote(ToString(obj.FillMode))); - FieldToString(strStrm, false, "CullMode", toStringFlags, tabCount, tabSize, Quote(ToString(obj.CullMode))); - FieldToString(strStrm, false, "FrontCounterClockwise", toStringFlags, tabCount, tabSize, ToString(obj.FrontCounterClockwise, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "DepthBias", toStringFlags, tabCount, tabSize, ToString(obj.DepthBias, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "DepthBiasClamp", toStringFlags, tabCount, tabSize, ToString(obj.DepthBiasClamp, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "SlopeScaledDepthBias", toStringFlags, tabCount, tabSize, ToString(obj.SlopeScaledDepthBias, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "DepthClipEnable", toStringFlags, tabCount, tabSize, ToString(obj.DepthClipEnable, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "MultisampleEnable", toStringFlags, tabCount, tabSize, ToString(obj.MultisampleEnable, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "AntialiasedLineEnable", toStringFlags, tabCount, tabSize, ToString(obj.AntialiasedLineEnable, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "ForcedSampleCount", toStringFlags, tabCount, tabSize, ToString(obj.ForcedSampleCount, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "ConservativeRaster", toStringFlags, tabCount, tabSize, Quote(ToString(obj.ConservativeRaster))); - } - ); -} - -std::string ToString(const D3D12_RASTERIZER_DESC1& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "FillMode", toStringFlags, tabCount, tabSize, Quote(ToString(obj.FillMode))); - FieldToString(strStrm, false, "CullMode", toStringFlags, tabCount, tabSize, Quote(ToString(obj.CullMode))); - FieldToString(strStrm, false, "FrontCounterClockwise", toStringFlags, tabCount, tabSize, ToString(obj.FrontCounterClockwise, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "DepthBias", toStringFlags, tabCount, tabSize, ToString(obj.DepthBias, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "DepthBiasClamp", toStringFlags, tabCount, tabSize, ToString(obj.DepthBiasClamp, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "SlopeScaledDepthBias", toStringFlags, tabCount, tabSize, ToString(obj.SlopeScaledDepthBias, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "DepthClipEnable", toStringFlags, tabCount, tabSize, ToString(obj.DepthClipEnable, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "MultisampleEnable", toStringFlags, tabCount, tabSize, ToString(obj.MultisampleEnable, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "AntialiasedLineEnable", toStringFlags, tabCount, tabSize, ToString(obj.AntialiasedLineEnable, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "ForcedSampleCount", toStringFlags, tabCount, tabSize, ToString(obj.ForcedSampleCount, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "ConservativeRaster", toStringFlags, tabCount, tabSize, Quote(ToString(obj.ConservativeRaster))); - } - ); -} - -std::string ToString(const D3D12_RASTERIZER_DESC2& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "FillMode", toStringFlags, tabCount, tabSize, Quote(ToString(obj.FillMode))); - FieldToString(strStrm, false, "CullMode", toStringFlags, tabCount, tabSize, Quote(ToString(obj.CullMode))); - FieldToString(strStrm, false, "FrontCounterClockwise", toStringFlags, tabCount, tabSize, ToString(obj.FrontCounterClockwise, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "DepthBias", toStringFlags, tabCount, tabSize, ToString(obj.DepthBias, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "DepthBiasClamp", toStringFlags, tabCount, tabSize, ToString(obj.DepthBiasClamp, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "SlopeScaledDepthBias", toStringFlags, tabCount, tabSize, ToString(obj.SlopeScaledDepthBias, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "DepthClipEnable", toStringFlags, tabCount, tabSize, ToString(obj.DepthClipEnable, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "LineRasterizationMode", toStringFlags, tabCount, tabSize, Quote(ToString(obj.LineRasterizationMode))); - FieldToString(strStrm, false, "ForcedSampleCount", toStringFlags, tabCount, tabSize, ToString(obj.ForcedSampleCount, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "ConservativeRaster", toStringFlags, tabCount, tabSize, Quote(ToString(obj.ConservativeRaster))); - } - ); -} - -std::string ToString(const D3D12_SHADER_BYTECODE& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "pShaderBytecode", toStringFlags, tabCount, tabSize, HandleIdToString(obj.pShaderBytecode)); - FieldToString(strStrm, false, "BytecodeLength", toStringFlags, tabCount, tabSize, ToString(obj.BytecodeLength, toStringFlags, tabCount, tabSize)); - } - ); -} - -std::string ToString(const D3D12_STREAM_OUTPUT_DESC& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "pSODeclaration", toStringFlags, tabCount, tabSize, ArrayToString(obj.NumEntries, obj.pSODeclaration, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "NumEntries", toStringFlags, tabCount, tabSize, ToString(obj.NumEntries, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "pBufferStrides", toStringFlags, tabCount, tabSize, ArrayToString(obj.NumStrides, obj.pBufferStrides, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "NumStrides", toStringFlags, tabCount, tabSize, ToString(obj.NumStrides, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "RasterizedStream", toStringFlags, tabCount, tabSize, ToString(obj.RasterizedStream, toStringFlags, tabCount, tabSize)); - } - ); -} - -std::string ToString(const D3D12_INPUT_LAYOUT_DESC& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "pInputElementDescs", toStringFlags, tabCount, tabSize, ArrayToString(obj.NumElements, obj.pInputElementDescs, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "NumElements", toStringFlags, tabCount, tabSize, ToString(obj.NumElements, toStringFlags, tabCount, tabSize)); - } - ); -} - -std::string ToString(const D3D12_CACHED_PIPELINE_STATE& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "pCachedBlob", toStringFlags, tabCount, tabSize, HandleIdToString(obj.pCachedBlob)); - FieldToString(strStrm, false, "CachedBlobSizeInBytes", toStringFlags, tabCount, tabSize, ToString(obj.CachedBlobSizeInBytes, toStringFlags, tabCount, tabSize)); - } - ); -} - -std::string ToString(const D3D12_GRAPHICS_PIPELINE_STATE_DESC& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "pRootSignature", toStringFlags, tabCount, tabSize, HandleIdToString(obj.pRootSignature)); - FieldToString(strStrm, false, "VS", toStringFlags, tabCount, tabSize, ToString(obj.VS, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "PS", toStringFlags, tabCount, tabSize, ToString(obj.PS, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "DS", toStringFlags, tabCount, tabSize, ToString(obj.DS, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "HS", toStringFlags, tabCount, tabSize, ToString(obj.HS, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "GS", toStringFlags, tabCount, tabSize, ToString(obj.GS, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "StreamOutput", toStringFlags, tabCount, tabSize, ToString(obj.StreamOutput, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "BlendState", toStringFlags, tabCount, tabSize, ToString(obj.BlendState, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "SampleMask", toStringFlags, tabCount, tabSize, ToString(obj.SampleMask, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "RasterizerState", toStringFlags, tabCount, tabSize, ToString(obj.RasterizerState, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "DepthStencilState", toStringFlags, tabCount, tabSize, ToString(obj.DepthStencilState, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "InputLayout", toStringFlags, tabCount, tabSize, ToString(obj.InputLayout, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "IBStripCutValue", toStringFlags, tabCount, tabSize, Quote(ToString(obj.IBStripCutValue))); - FieldToString(strStrm, false, "PrimitiveTopologyType", toStringFlags, tabCount, tabSize, Quote(ToString(obj.PrimitiveTopologyType))); - FieldToString(strStrm, false, "NumRenderTargets", toStringFlags, tabCount, tabSize, ToString(obj.NumRenderTargets, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "RTVFormats", toStringFlags, tabCount, tabSize, EnumArrayToString(8, obj.RTVFormats, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "DSVFormat", toStringFlags, tabCount, tabSize, Quote(ToString(obj.DSVFormat))); - FieldToString(strStrm, false, "SampleDesc", toStringFlags, tabCount, tabSize, ToString(obj.SampleDesc, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "NodeMask", toStringFlags, tabCount, tabSize, ToString(obj.NodeMask, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "CachedPSO", toStringFlags, tabCount, tabSize, ToString(obj.CachedPSO, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "Flags", toStringFlags, tabCount, tabSize, Quote(ToString(obj.Flags))); - } - ); -} - -std::string ToString(const D3D12_COMPUTE_PIPELINE_STATE_DESC& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "pRootSignature", toStringFlags, tabCount, tabSize, HandleIdToString(obj.pRootSignature)); - FieldToString(strStrm, false, "CS", toStringFlags, tabCount, tabSize, ToString(obj.CS, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "NodeMask", toStringFlags, tabCount, tabSize, ToString(obj.NodeMask, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "CachedPSO", toStringFlags, tabCount, tabSize, ToString(obj.CachedPSO, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "Flags", toStringFlags, tabCount, tabSize, Quote(ToString(obj.Flags))); - } - ); -} - -std::string ToString(const D3D12_RT_FORMAT_ARRAY& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "RTFormats", toStringFlags, tabCount, tabSize, EnumArrayToString(8, obj.RTFormats, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "NumRenderTargets", toStringFlags, tabCount, tabSize, ToString(obj.NumRenderTargets, toStringFlags, tabCount, tabSize)); - } - ); -} - -std::string ToString(const D3D12_FEATURE_DATA_D3D12_OPTIONS& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "DoublePrecisionFloatShaderOps", toStringFlags, tabCount, tabSize, ToString(obj.DoublePrecisionFloatShaderOps, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "OutputMergerLogicOp", toStringFlags, tabCount, tabSize, ToString(obj.OutputMergerLogicOp, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "MinPrecisionSupport", toStringFlags, tabCount, tabSize, Quote(ToString(obj.MinPrecisionSupport))); - FieldToString(strStrm, false, "TiledResourcesTier", toStringFlags, tabCount, tabSize, Quote(ToString(obj.TiledResourcesTier))); - FieldToString(strStrm, false, "ResourceBindingTier", toStringFlags, tabCount, tabSize, Quote(ToString(obj.ResourceBindingTier))); - FieldToString(strStrm, false, "PSSpecifiedStencilRefSupported", toStringFlags, tabCount, tabSize, ToString(obj.PSSpecifiedStencilRefSupported, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "TypedUAVLoadAdditionalFormats", toStringFlags, tabCount, tabSize, ToString(obj.TypedUAVLoadAdditionalFormats, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "ROVsSupported", toStringFlags, tabCount, tabSize, ToString(obj.ROVsSupported, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "ConservativeRasterizationTier", toStringFlags, tabCount, tabSize, Quote(ToString(obj.ConservativeRasterizationTier))); - FieldToString(strStrm, false, "MaxGPUVirtualAddressBitsPerResource", toStringFlags, tabCount, tabSize, ToString(obj.MaxGPUVirtualAddressBitsPerResource, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "StandardSwizzle64KBSupported", toStringFlags, tabCount, tabSize, ToString(obj.StandardSwizzle64KBSupported, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "CrossNodeSharingTier", toStringFlags, tabCount, tabSize, Quote(ToString(obj.CrossNodeSharingTier))); - FieldToString(strStrm, false, "CrossAdapterRowMajorTextureSupported", toStringFlags, tabCount, tabSize, ToString(obj.CrossAdapterRowMajorTextureSupported, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "VPAndRTArrayIndexFromAnyShaderFeedingRasterizerSupportedWithoutGSEmulation", toStringFlags, tabCount, tabSize, ToString(obj.VPAndRTArrayIndexFromAnyShaderFeedingRasterizerSupportedWithoutGSEmulation, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "ResourceHeapTier", toStringFlags, tabCount, tabSize, Quote(ToString(obj.ResourceHeapTier))); - } - ); -} - -std::string ToString(const D3D12_FEATURE_DATA_D3D12_OPTIONS1& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "WaveOps", toStringFlags, tabCount, tabSize, ToString(obj.WaveOps, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "WaveLaneCountMin", toStringFlags, tabCount, tabSize, ToString(obj.WaveLaneCountMin, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "WaveLaneCountMax", toStringFlags, tabCount, tabSize, ToString(obj.WaveLaneCountMax, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "TotalLaneCount", toStringFlags, tabCount, tabSize, ToString(obj.TotalLaneCount, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "ExpandedComputeResourceStates", toStringFlags, tabCount, tabSize, ToString(obj.ExpandedComputeResourceStates, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "Int64ShaderOps", toStringFlags, tabCount, tabSize, ToString(obj.Int64ShaderOps, toStringFlags, tabCount, tabSize)); - } - ); -} - -std::string ToString(const D3D12_FEATURE_DATA_D3D12_OPTIONS2& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "DepthBoundsTestSupported", toStringFlags, tabCount, tabSize, ToString(obj.DepthBoundsTestSupported, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "ProgrammableSamplePositionsTier", toStringFlags, tabCount, tabSize, Quote(ToString(obj.ProgrammableSamplePositionsTier))); - } - ); -} - -std::string ToString(const D3D12_FEATURE_DATA_ROOT_SIGNATURE& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "HighestVersion", toStringFlags, tabCount, tabSize, Quote(ToString(obj.HighestVersion))); - } - ); -} - -std::string ToString(const D3D12_FEATURE_DATA_ARCHITECTURE& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "NodeIndex", toStringFlags, tabCount, tabSize, ToString(obj.NodeIndex, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "TileBasedRenderer", toStringFlags, tabCount, tabSize, ToString(obj.TileBasedRenderer, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "UMA", toStringFlags, tabCount, tabSize, ToString(obj.UMA, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "CacheCoherentUMA", toStringFlags, tabCount, tabSize, ToString(obj.CacheCoherentUMA, toStringFlags, tabCount, tabSize)); - } - ); -} - -std::string ToString(const D3D12_FEATURE_DATA_ARCHITECTURE1& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "NodeIndex", toStringFlags, tabCount, tabSize, ToString(obj.NodeIndex, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "TileBasedRenderer", toStringFlags, tabCount, tabSize, ToString(obj.TileBasedRenderer, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "UMA", toStringFlags, tabCount, tabSize, ToString(obj.UMA, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "CacheCoherentUMA", toStringFlags, tabCount, tabSize, ToString(obj.CacheCoherentUMA, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "IsolatedMMU", toStringFlags, tabCount, tabSize, ToString(obj.IsolatedMMU, toStringFlags, tabCount, tabSize)); - } - ); -} - -std::string ToString(const D3D12_FEATURE_DATA_FEATURE_LEVELS& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "NumFeatureLevels", toStringFlags, tabCount, tabSize, ToString(obj.NumFeatureLevels, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "pFeatureLevelsRequested", toStringFlags, tabCount, tabSize, EnumArrayToString(obj.NumFeatureLevels, obj.pFeatureLevelsRequested, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "MaxSupportedFeatureLevel", toStringFlags, tabCount, tabSize, Quote(ToString(obj.MaxSupportedFeatureLevel))); - } - ); -} - -std::string ToString(const D3D12_FEATURE_DATA_SHADER_MODEL& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "HighestShaderModel", toStringFlags, tabCount, tabSize, Quote(ToString(obj.HighestShaderModel))); - } - ); -} - -std::string ToString(const D3D12_FEATURE_DATA_FORMAT_SUPPORT& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "Format", toStringFlags, tabCount, tabSize, Quote(ToString(obj.Format))); - FieldToString(strStrm, false, "Support1", toStringFlags, tabCount, tabSize, Quote(ToString(obj.Support1))); - FieldToString(strStrm, false, "Support2", toStringFlags, tabCount, tabSize, Quote(ToString(obj.Support2))); - } - ); -} - -std::string ToString(const D3D12_FEATURE_DATA_MULTISAMPLE_QUALITY_LEVELS& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "Format", toStringFlags, tabCount, tabSize, Quote(ToString(obj.Format))); - FieldToString(strStrm, false, "SampleCount", toStringFlags, tabCount, tabSize, ToString(obj.SampleCount, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "Flags", toStringFlags, tabCount, tabSize, Quote(ToString(obj.Flags))); - FieldToString(strStrm, false, "NumQualityLevels", toStringFlags, tabCount, tabSize, ToString(obj.NumQualityLevels, toStringFlags, tabCount, tabSize)); - } - ); -} - -std::string ToString(const D3D12_FEATURE_DATA_FORMAT_INFO& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "Format", toStringFlags, tabCount, tabSize, Quote(ToString(obj.Format))); - FieldToString(strStrm, false, "PlaneCount", toStringFlags, tabCount, tabSize, ToString(obj.PlaneCount, toStringFlags, tabCount, tabSize)); - } - ); -} - -std::string ToString(const D3D12_FEATURE_DATA_GPU_VIRTUAL_ADDRESS_SUPPORT& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "MaxGPUVirtualAddressBitsPerResource", toStringFlags, tabCount, tabSize, ToString(obj.MaxGPUVirtualAddressBitsPerResource, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "MaxGPUVirtualAddressBitsPerProcess", toStringFlags, tabCount, tabSize, ToString(obj.MaxGPUVirtualAddressBitsPerProcess, toStringFlags, tabCount, tabSize)); - } - ); -} - -std::string ToString(const D3D12_FEATURE_DATA_SHADER_CACHE& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "SupportFlags", toStringFlags, tabCount, tabSize, Quote(ToString(obj.SupportFlags))); - } - ); -} - -std::string ToString(const D3D12_FEATURE_DATA_COMMAND_QUEUE_PRIORITY& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "CommandListType", toStringFlags, tabCount, tabSize, Quote(ToString(obj.CommandListType))); - FieldToString(strStrm, false, "Priority", toStringFlags, tabCount, tabSize, ToString(obj.Priority, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "PriorityForTypeIsSupported", toStringFlags, tabCount, tabSize, ToString(obj.PriorityForTypeIsSupported, toStringFlags, tabCount, tabSize)); - } - ); -} - -std::string ToString(const D3D12_FEATURE_DATA_D3D12_OPTIONS3& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "CopyQueueTimestampQueriesSupported", toStringFlags, tabCount, tabSize, ToString(obj.CopyQueueTimestampQueriesSupported, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "CastingFullyTypedFormatSupported", toStringFlags, tabCount, tabSize, ToString(obj.CastingFullyTypedFormatSupported, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "WriteBufferImmediateSupportFlags", toStringFlags, tabCount, tabSize, Quote(ToString(obj.WriteBufferImmediateSupportFlags))); - FieldToString(strStrm, false, "ViewInstancingTier", toStringFlags, tabCount, tabSize, Quote(ToString(obj.ViewInstancingTier))); - FieldToString(strStrm, false, "BarycentricsSupported", toStringFlags, tabCount, tabSize, ToString(obj.BarycentricsSupported, toStringFlags, tabCount, tabSize)); - } - ); -} - -std::string ToString(const D3D12_FEATURE_DATA_EXISTING_HEAPS& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "Supported", toStringFlags, tabCount, tabSize, ToString(obj.Supported, toStringFlags, tabCount, tabSize)); - } - ); -} - -std::string ToString(const D3D12_FEATURE_DATA_DISPLAYABLE& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "DisplayableTexture", toStringFlags, tabCount, tabSize, ToString(obj.DisplayableTexture, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "SharedResourceCompatibilityTier", toStringFlags, tabCount, tabSize, Quote(ToString(obj.SharedResourceCompatibilityTier))); - } - ); -} - -std::string ToString(const D3D12_FEATURE_DATA_D3D12_OPTIONS4& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "MSAA64KBAlignedTextureSupported", toStringFlags, tabCount, tabSize, ToString(obj.MSAA64KBAlignedTextureSupported, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "SharedResourceCompatibilityTier", toStringFlags, tabCount, tabSize, Quote(ToString(obj.SharedResourceCompatibilityTier))); - FieldToString(strStrm, false, "Native16BitShaderOpsSupported", toStringFlags, tabCount, tabSize, ToString(obj.Native16BitShaderOpsSupported, toStringFlags, tabCount, tabSize)); - } - ); -} - -std::string ToString(const D3D12_FEATURE_DATA_SERIALIZATION& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "NodeIndex", toStringFlags, tabCount, tabSize, ToString(obj.NodeIndex, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "HeapSerializationTier", toStringFlags, tabCount, tabSize, Quote(ToString(obj.HeapSerializationTier))); - } - ); -} - -std::string ToString(const D3D12_FEATURE_DATA_CROSS_NODE& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "SharingTier", toStringFlags, tabCount, tabSize, Quote(ToString(obj.SharingTier))); - FieldToString(strStrm, false, "AtomicShaderInstructions", toStringFlags, tabCount, tabSize, ToString(obj.AtomicShaderInstructions, toStringFlags, tabCount, tabSize)); - } - ); -} - -std::string ToString(const D3D12_FEATURE_DATA_D3D12_OPTIONS5& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "SRVOnlyTiledResourceTier3", toStringFlags, tabCount, tabSize, ToString(obj.SRVOnlyTiledResourceTier3, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "RenderPassesTier", toStringFlags, tabCount, tabSize, Quote(ToString(obj.RenderPassesTier))); - FieldToString(strStrm, false, "RaytracingTier", toStringFlags, tabCount, tabSize, Quote(ToString(obj.RaytracingTier))); - } - ); -} - -std::string ToString(const D3D12_FEATURE_DATA_D3D12_OPTIONS6& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "AdditionalShadingRatesSupported", toStringFlags, tabCount, tabSize, ToString(obj.AdditionalShadingRatesSupported, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "PerPrimitiveShadingRateSupportedWithViewportIndexing", toStringFlags, tabCount, tabSize, ToString(obj.PerPrimitiveShadingRateSupportedWithViewportIndexing, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "VariableShadingRateTier", toStringFlags, tabCount, tabSize, Quote(ToString(obj.VariableShadingRateTier))); - FieldToString(strStrm, false, "ShadingRateImageTileSize", toStringFlags, tabCount, tabSize, ToString(obj.ShadingRateImageTileSize, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "BackgroundProcessingSupported", toStringFlags, tabCount, tabSize, ToString(obj.BackgroundProcessingSupported, toStringFlags, tabCount, tabSize)); - } - ); -} - -std::string ToString(const D3D12_FEATURE_DATA_D3D12_OPTIONS7& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "MeshShaderTier", toStringFlags, tabCount, tabSize, Quote(ToString(obj.MeshShaderTier))); - FieldToString(strStrm, false, "SamplerFeedbackTier", toStringFlags, tabCount, tabSize, Quote(ToString(obj.SamplerFeedbackTier))); - } - ); -} - -std::string ToString(const D3D12_FEATURE_DATA_QUERY_META_COMMAND& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "CommandId", toStringFlags, tabCount, tabSize, ToString(obj.CommandId, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "NodeMask", toStringFlags, tabCount, tabSize, ToString(obj.NodeMask, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "pQueryInputData", toStringFlags, tabCount, tabSize, HandleIdToString(obj.pQueryInputData)); - FieldToString(strStrm, false, "QueryInputDataSizeInBytes", toStringFlags, tabCount, tabSize, ToString(obj.QueryInputDataSizeInBytes, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "pQueryOutputData", toStringFlags, tabCount, tabSize, HandleIdToString(obj.pQueryOutputData)); - FieldToString(strStrm, false, "QueryOutputDataSizeInBytes", toStringFlags, tabCount, tabSize, ToString(obj.QueryOutputDataSizeInBytes, toStringFlags, tabCount, tabSize)); - } - ); -} - -std::string ToString(const D3D12_FEATURE_DATA_D3D12_OPTIONS8& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "UnalignedBlockTexturesSupported", toStringFlags, tabCount, tabSize, ToString(obj.UnalignedBlockTexturesSupported, toStringFlags, tabCount, tabSize)); - } - ); -} - -std::string ToString(const D3D12_FEATURE_DATA_D3D12_OPTIONS9& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "MeshShaderPipelineStatsSupported", toStringFlags, tabCount, tabSize, ToString(obj.MeshShaderPipelineStatsSupported, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "MeshShaderSupportsFullRangeRenderTargetArrayIndex", toStringFlags, tabCount, tabSize, ToString(obj.MeshShaderSupportsFullRangeRenderTargetArrayIndex, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "AtomicInt64OnTypedResourceSupported", toStringFlags, tabCount, tabSize, ToString(obj.AtomicInt64OnTypedResourceSupported, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "AtomicInt64OnGroupSharedSupported", toStringFlags, tabCount, tabSize, ToString(obj.AtomicInt64OnGroupSharedSupported, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "DerivativesInMeshAndAmplificationShadersSupported", toStringFlags, tabCount, tabSize, ToString(obj.DerivativesInMeshAndAmplificationShadersSupported, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "WaveMMATier", toStringFlags, tabCount, tabSize, Quote(ToString(obj.WaveMMATier))); - } - ); -} - -std::string ToString(const D3D12_FEATURE_DATA_D3D12_OPTIONS10& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "VariableRateShadingSumCombinerSupported", toStringFlags, tabCount, tabSize, ToString(obj.VariableRateShadingSumCombinerSupported, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "MeshShaderPerPrimitiveShadingRateSupported", toStringFlags, tabCount, tabSize, ToString(obj.MeshShaderPerPrimitiveShadingRateSupported, toStringFlags, tabCount, tabSize)); - } - ); -} - -std::string ToString(const D3D12_FEATURE_DATA_D3D12_OPTIONS11& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "AtomicInt64OnDescriptorHeapResourceSupported", toStringFlags, tabCount, tabSize, ToString(obj.AtomicInt64OnDescriptorHeapResourceSupported, toStringFlags, tabCount, tabSize)); - } - ); -} - -std::string ToString(const D3D12_FEATURE_DATA_D3D12_OPTIONS12& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "MSPrimitivesPipelineStatisticIncludesCulledPrimitives", toStringFlags, tabCount, tabSize, Quote(ToString(obj.MSPrimitivesPipelineStatisticIncludesCulledPrimitives))); - FieldToString(strStrm, false, "EnhancedBarriersSupported", toStringFlags, tabCount, tabSize, ToString(obj.EnhancedBarriersSupported, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "RelaxedFormatCastingSupported", toStringFlags, tabCount, tabSize, ToString(obj.RelaxedFormatCastingSupported, toStringFlags, tabCount, tabSize)); - } - ); -} - -std::string ToString(const D3D12_FEATURE_DATA_D3D12_OPTIONS13& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "UnrestrictedBufferTextureCopyPitchSupported", toStringFlags, tabCount, tabSize, ToString(obj.UnrestrictedBufferTextureCopyPitchSupported, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "UnrestrictedVertexElementAlignmentSupported", toStringFlags, tabCount, tabSize, ToString(obj.UnrestrictedVertexElementAlignmentSupported, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "InvertedViewportHeightFlipsYSupported", toStringFlags, tabCount, tabSize, ToString(obj.InvertedViewportHeightFlipsYSupported, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "InvertedViewportDepthFlipsZSupported", toStringFlags, tabCount, tabSize, ToString(obj.InvertedViewportDepthFlipsZSupported, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "TextureCopyBetweenDimensionsSupported", toStringFlags, tabCount, tabSize, ToString(obj.TextureCopyBetweenDimensionsSupported, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "AlphaBlendFactorSupported", toStringFlags, tabCount, tabSize, ToString(obj.AlphaBlendFactorSupported, toStringFlags, tabCount, tabSize)); - } - ); -} - -std::string ToString(const D3D12_FEATURE_DATA_D3D12_OPTIONS14& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "AdvancedTextureOpsSupported", toStringFlags, tabCount, tabSize, ToString(obj.AdvancedTextureOpsSupported, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "WriteableMSAATexturesSupported", toStringFlags, tabCount, tabSize, ToString(obj.WriteableMSAATexturesSupported, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "IndependentFrontAndBackStencilRefMaskSupported", toStringFlags, tabCount, tabSize, ToString(obj.IndependentFrontAndBackStencilRefMaskSupported, toStringFlags, tabCount, tabSize)); - } - ); -} - -std::string ToString(const D3D12_FEATURE_DATA_D3D12_OPTIONS15& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "TriangleFanSupported", toStringFlags, tabCount, tabSize, ToString(obj.TriangleFanSupported, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "DynamicIndexBufferStripCutSupported", toStringFlags, tabCount, tabSize, ToString(obj.DynamicIndexBufferStripCutSupported, toStringFlags, tabCount, tabSize)); - } - ); -} - -std::string ToString(const D3D12_FEATURE_DATA_D3D12_OPTIONS16& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "DynamicDepthBiasSupported", toStringFlags, tabCount, tabSize, ToString(obj.DynamicDepthBiasSupported, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "GPUUploadHeapSupported", toStringFlags, tabCount, tabSize, ToString(obj.GPUUploadHeapSupported, toStringFlags, tabCount, tabSize)); - } - ); -} - -std::string ToString(const D3D12_FEATURE_DATA_D3D12_OPTIONS17& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "NonNormalizedCoordinateSamplersSupported", toStringFlags, tabCount, tabSize, ToString(obj.NonNormalizedCoordinateSamplersSupported, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "ManualWriteTrackingResourceSupported", toStringFlags, tabCount, tabSize, ToString(obj.ManualWriteTrackingResourceSupported, toStringFlags, tabCount, tabSize)); - } - ); -} - -std::string ToString(const D3D12_FEATURE_DATA_D3D12_OPTIONS18& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "RenderPassesValid", toStringFlags, tabCount, tabSize, ToString(obj.RenderPassesValid, toStringFlags, tabCount, tabSize)); - } - ); -} - -std::string ToString(const D3D12_FEATURE_DATA_D3D12_OPTIONS19& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "MismatchingOutputDimensionsSupported", toStringFlags, tabCount, tabSize, ToString(obj.MismatchingOutputDimensionsSupported, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "SupportedSampleCountsWithNoOutputs", toStringFlags, tabCount, tabSize, ToString(obj.SupportedSampleCountsWithNoOutputs, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "PointSamplingAddressesNeverRoundUp", toStringFlags, tabCount, tabSize, ToString(obj.PointSamplingAddressesNeverRoundUp, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "RasterizerDesc2Supported", toStringFlags, tabCount, tabSize, ToString(obj.RasterizerDesc2Supported, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "NarrowQuadrilateralLinesSupported", toStringFlags, tabCount, tabSize, ToString(obj.NarrowQuadrilateralLinesSupported, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "AnisoFilterWithPointMipSupported", toStringFlags, tabCount, tabSize, ToString(obj.AnisoFilterWithPointMipSupported, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "MaxSamplerDescriptorHeapSize", toStringFlags, tabCount, tabSize, ToString(obj.MaxSamplerDescriptorHeapSize, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "MaxSamplerDescriptorHeapSizeWithStaticSamplers", toStringFlags, tabCount, tabSize, ToString(obj.MaxSamplerDescriptorHeapSizeWithStaticSamplers, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "MaxViewDescriptorHeapSize", toStringFlags, tabCount, tabSize, ToString(obj.MaxViewDescriptorHeapSize, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "ComputeOnlyCustomHeapSupported", toStringFlags, tabCount, tabSize, ToString(obj.ComputeOnlyCustomHeapSupported, toStringFlags, tabCount, tabSize)); - } - ); -} - -std::string ToString(const D3D12_RESOURCE_ALLOCATION_INFO& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "SizeInBytes", toStringFlags, tabCount, tabSize, ToString(obj.SizeInBytes, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "Alignment", toStringFlags, tabCount, tabSize, ToString(obj.Alignment, toStringFlags, tabCount, tabSize)); - } - ); -} - -std::string ToString(const D3D12_RESOURCE_ALLOCATION_INFO1& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "Offset", toStringFlags, tabCount, tabSize, ToString(obj.Offset, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "Alignment", toStringFlags, tabCount, tabSize, ToString(obj.Alignment, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "SizeInBytes", toStringFlags, tabCount, tabSize, ToString(obj.SizeInBytes, toStringFlags, tabCount, tabSize)); - } - ); -} - -std::string ToString(const D3D12_HEAP_PROPERTIES& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "Type", toStringFlags, tabCount, tabSize, Quote(ToString(obj.Type))); - FieldToString(strStrm, false, "CPUPageProperty", toStringFlags, tabCount, tabSize, Quote(ToString(obj.CPUPageProperty))); - FieldToString(strStrm, false, "MemoryPoolPreference", toStringFlags, tabCount, tabSize, Quote(ToString(obj.MemoryPoolPreference))); - FieldToString(strStrm, false, "CreationNodeMask", toStringFlags, tabCount, tabSize, ToString(obj.CreationNodeMask, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "VisibleNodeMask", toStringFlags, tabCount, tabSize, ToString(obj.VisibleNodeMask, toStringFlags, tabCount, tabSize)); - } - ); -} - -std::string ToString(const D3D12_HEAP_DESC& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "SizeInBytes", toStringFlags, tabCount, tabSize, ToString(obj.SizeInBytes, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "Properties", toStringFlags, tabCount, tabSize, ToString(obj.Properties, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "Alignment", toStringFlags, tabCount, tabSize, ToString(obj.Alignment, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "Flags", toStringFlags, tabCount, tabSize, Quote(ToString(obj.Flags))); - } - ); -} - -std::string ToString(const D3D12_MIP_REGION& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "Width", toStringFlags, tabCount, tabSize, ToString(obj.Width, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "Height", toStringFlags, tabCount, tabSize, ToString(obj.Height, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "Depth", toStringFlags, tabCount, tabSize, ToString(obj.Depth, toStringFlags, tabCount, tabSize)); - } - ); -} - -std::string ToString(const D3D12_RESOURCE_DESC& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "Dimension", toStringFlags, tabCount, tabSize, Quote(ToString(obj.Dimension))); - FieldToString(strStrm, false, "Alignment", toStringFlags, tabCount, tabSize, ToString(obj.Alignment, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "Width", toStringFlags, tabCount, tabSize, ToString(obj.Width, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "Height", toStringFlags, tabCount, tabSize, ToString(obj.Height, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "DepthOrArraySize", toStringFlags, tabCount, tabSize, ToString(obj.DepthOrArraySize, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "MipLevels", toStringFlags, tabCount, tabSize, ToString(obj.MipLevels, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "Format", toStringFlags, tabCount, tabSize, Quote(ToString(obj.Format))); - FieldToString(strStrm, false, "SampleDesc", toStringFlags, tabCount, tabSize, ToString(obj.SampleDesc, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "Layout", toStringFlags, tabCount, tabSize, Quote(ToString(obj.Layout))); - FieldToString(strStrm, false, "Flags", toStringFlags, tabCount, tabSize, Quote(ToString(obj.Flags))); - } - ); -} - -std::string ToString(const D3D12_RESOURCE_DESC1& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "Dimension", toStringFlags, tabCount, tabSize, Quote(ToString(obj.Dimension))); - FieldToString(strStrm, false, "Alignment", toStringFlags, tabCount, tabSize, ToString(obj.Alignment, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "Width", toStringFlags, tabCount, tabSize, ToString(obj.Width, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "Height", toStringFlags, tabCount, tabSize, ToString(obj.Height, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "DepthOrArraySize", toStringFlags, tabCount, tabSize, ToString(obj.DepthOrArraySize, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "MipLevels", toStringFlags, tabCount, tabSize, ToString(obj.MipLevels, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "Format", toStringFlags, tabCount, tabSize, Quote(ToString(obj.Format))); - FieldToString(strStrm, false, "SampleDesc", toStringFlags, tabCount, tabSize, ToString(obj.SampleDesc, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "Layout", toStringFlags, tabCount, tabSize, Quote(ToString(obj.Layout))); - FieldToString(strStrm, false, "Flags", toStringFlags, tabCount, tabSize, Quote(ToString(obj.Flags))); - FieldToString(strStrm, false, "SamplerFeedbackMipRegion", toStringFlags, tabCount, tabSize, ToString(obj.SamplerFeedbackMipRegion, toStringFlags, tabCount, tabSize)); - } - ); -} - -std::string ToString(const D3D12_DEPTH_STENCIL_VALUE& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "Depth", toStringFlags, tabCount, tabSize, ToString(obj.Depth, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "Stencil", toStringFlags, tabCount, tabSize, ToString(obj.Stencil, toStringFlags, tabCount, tabSize)); - } - ); -} - -std::string ToString(const D3D12_RANGE& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "Begin", toStringFlags, tabCount, tabSize, ToString(obj.Begin, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "End", toStringFlags, tabCount, tabSize, ToString(obj.End, toStringFlags, tabCount, tabSize)); - } - ); -} - -std::string ToString(const D3D12_RANGE_UINT64& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "Begin", toStringFlags, tabCount, tabSize, ToString(obj.Begin, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "End", toStringFlags, tabCount, tabSize, ToString(obj.End, toStringFlags, tabCount, tabSize)); - } - ); -} - -std::string ToString(const D3D12_SUBRESOURCE_RANGE_UINT64& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "Subresource", toStringFlags, tabCount, tabSize, ToString(obj.Subresource, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "Range", toStringFlags, tabCount, tabSize, ToString(obj.Range, toStringFlags, tabCount, tabSize)); - } - ); -} - -std::string ToString(const D3D12_SUBRESOURCE_INFO& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "Offset", toStringFlags, tabCount, tabSize, ToString(obj.Offset, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "RowPitch", toStringFlags, tabCount, tabSize, ToString(obj.RowPitch, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "DepthPitch", toStringFlags, tabCount, tabSize, ToString(obj.DepthPitch, toStringFlags, tabCount, tabSize)); - } - ); -} - -std::string ToString(const D3D12_TILED_RESOURCE_COORDINATE& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "X", toStringFlags, tabCount, tabSize, ToString(obj.X, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "Y", toStringFlags, tabCount, tabSize, ToString(obj.Y, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "Z", toStringFlags, tabCount, tabSize, ToString(obj.Z, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "Subresource", toStringFlags, tabCount, tabSize, ToString(obj.Subresource, toStringFlags, tabCount, tabSize)); - } - ); -} - -std::string ToString(const D3D12_TILE_REGION_SIZE& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "NumTiles", toStringFlags, tabCount, tabSize, ToString(obj.NumTiles, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "UseBox", toStringFlags, tabCount, tabSize, ToString(obj.UseBox, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "Width", toStringFlags, tabCount, tabSize, ToString(obj.Width, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "Height", toStringFlags, tabCount, tabSize, ToString(obj.Height, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "Depth", toStringFlags, tabCount, tabSize, ToString(obj.Depth, toStringFlags, tabCount, tabSize)); - } - ); -} - -std::string ToString(const D3D12_SUBRESOURCE_TILING& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "WidthInTiles", toStringFlags, tabCount, tabSize, ToString(obj.WidthInTiles, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "HeightInTiles", toStringFlags, tabCount, tabSize, ToString(obj.HeightInTiles, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "DepthInTiles", toStringFlags, tabCount, tabSize, ToString(obj.DepthInTiles, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "StartTileIndexInOverallResource", toStringFlags, tabCount, tabSize, ToString(obj.StartTileIndexInOverallResource, toStringFlags, tabCount, tabSize)); - } - ); -} - -std::string ToString(const D3D12_TILE_SHAPE& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "WidthInTexels", toStringFlags, tabCount, tabSize, ToString(obj.WidthInTexels, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "HeightInTexels", toStringFlags, tabCount, tabSize, ToString(obj.HeightInTexels, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "DepthInTexels", toStringFlags, tabCount, tabSize, ToString(obj.DepthInTexels, toStringFlags, tabCount, tabSize)); - } - ); -} - -std::string ToString(const D3D12_PACKED_MIP_INFO& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "NumStandardMips", toStringFlags, tabCount, tabSize, ToString(obj.NumStandardMips, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "NumPackedMips", toStringFlags, tabCount, tabSize, ToString(obj.NumPackedMips, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "NumTilesForPackedMips", toStringFlags, tabCount, tabSize, ToString(obj.NumTilesForPackedMips, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "StartTileIndexInOverallResource", toStringFlags, tabCount, tabSize, ToString(obj.StartTileIndexInOverallResource, toStringFlags, tabCount, tabSize)); - } - ); -} - -std::string ToString(const D3D12_RESOURCE_TRANSITION_BARRIER& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "pResource", toStringFlags, tabCount, tabSize, HandleIdToString(obj.pResource)); - FieldToString(strStrm, false, "Subresource", toStringFlags, tabCount, tabSize, ToString(obj.Subresource, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "StateBefore", toStringFlags, tabCount, tabSize, Quote(ToString(obj.StateBefore))); - FieldToString(strStrm, false, "StateAfter", toStringFlags, tabCount, tabSize, Quote(ToString(obj.StateAfter))); - } - ); -} - -std::string ToString(const D3D12_RESOURCE_ALIASING_BARRIER& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "pResourceBefore", toStringFlags, tabCount, tabSize, HandleIdToString(obj.pResourceBefore)); - FieldToString(strStrm, false, "pResourceAfter", toStringFlags, tabCount, tabSize, HandleIdToString(obj.pResourceAfter)); - } - ); -} - -std::string ToString(const D3D12_RESOURCE_UAV_BARRIER& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "pResource", toStringFlags, tabCount, tabSize, HandleIdToString(obj.pResource)); - } - ); -} - -std::string ToString(const D3D12_SUBRESOURCE_FOOTPRINT& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "Format", toStringFlags, tabCount, tabSize, Quote(ToString(obj.Format))); - FieldToString(strStrm, false, "Width", toStringFlags, tabCount, tabSize, ToString(obj.Width, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "Height", toStringFlags, tabCount, tabSize, ToString(obj.Height, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "Depth", toStringFlags, tabCount, tabSize, ToString(obj.Depth, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "RowPitch", toStringFlags, tabCount, tabSize, ToString(obj.RowPitch, toStringFlags, tabCount, tabSize)); - } - ); -} - -std::string ToString(const D3D12_PLACED_SUBRESOURCE_FOOTPRINT& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "Offset", toStringFlags, tabCount, tabSize, ToString(obj.Offset, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "Footprint", toStringFlags, tabCount, tabSize, ToString(obj.Footprint, toStringFlags, tabCount, tabSize)); - } - ); -} - -std::string ToString(const D3D12_SAMPLE_POSITION& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "X", toStringFlags, tabCount, tabSize, ToString(obj.X, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "Y", toStringFlags, tabCount, tabSize, ToString(obj.Y, toStringFlags, tabCount, tabSize)); - } - ); -} - -std::string ToString(const D3D12_VIEW_INSTANCE_LOCATION& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "ViewportArrayIndex", toStringFlags, tabCount, tabSize, ToString(obj.ViewportArrayIndex, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "RenderTargetArrayIndex", toStringFlags, tabCount, tabSize, ToString(obj.RenderTargetArrayIndex, toStringFlags, tabCount, tabSize)); - } - ); -} - -std::string ToString(const D3D12_VIEW_INSTANCING_DESC& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "ViewInstanceCount", toStringFlags, tabCount, tabSize, ToString(obj.ViewInstanceCount, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "pViewInstanceLocations", toStringFlags, tabCount, tabSize, ArrayToString(obj.ViewInstanceCount, obj.pViewInstanceLocations, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "Flags", toStringFlags, tabCount, tabSize, Quote(ToString(obj.Flags))); - } - ); -} - -std::string ToString(const D3D12_BUFFER_SRV& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "FirstElement", toStringFlags, tabCount, tabSize, ToString(obj.FirstElement, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "NumElements", toStringFlags, tabCount, tabSize, ToString(obj.NumElements, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "StructureByteStride", toStringFlags, tabCount, tabSize, ToString(obj.StructureByteStride, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "Flags", toStringFlags, tabCount, tabSize, Quote(ToString(obj.Flags))); - } - ); -} - -std::string ToString(const D3D12_TEX1D_SRV& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "MostDetailedMip", toStringFlags, tabCount, tabSize, ToString(obj.MostDetailedMip, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "MipLevels", toStringFlags, tabCount, tabSize, ToString(obj.MipLevels, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "ResourceMinLODClamp", toStringFlags, tabCount, tabSize, ToString(obj.ResourceMinLODClamp, toStringFlags, tabCount, tabSize)); - } - ); -} - -std::string ToString(const D3D12_TEX1D_ARRAY_SRV& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "MostDetailedMip", toStringFlags, tabCount, tabSize, ToString(obj.MostDetailedMip, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "MipLevels", toStringFlags, tabCount, tabSize, ToString(obj.MipLevels, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "FirstArraySlice", toStringFlags, tabCount, tabSize, ToString(obj.FirstArraySlice, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "ArraySize", toStringFlags, tabCount, tabSize, ToString(obj.ArraySize, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "ResourceMinLODClamp", toStringFlags, tabCount, tabSize, ToString(obj.ResourceMinLODClamp, toStringFlags, tabCount, tabSize)); - } - ); -} - -std::string ToString(const D3D12_TEX2D_SRV& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "MostDetailedMip", toStringFlags, tabCount, tabSize, ToString(obj.MostDetailedMip, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "MipLevels", toStringFlags, tabCount, tabSize, ToString(obj.MipLevels, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "PlaneSlice", toStringFlags, tabCount, tabSize, ToString(obj.PlaneSlice, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "ResourceMinLODClamp", toStringFlags, tabCount, tabSize, ToString(obj.ResourceMinLODClamp, toStringFlags, tabCount, tabSize)); - } - ); -} - -std::string ToString(const D3D12_TEX2D_ARRAY_SRV& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "MostDetailedMip", toStringFlags, tabCount, tabSize, ToString(obj.MostDetailedMip, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "MipLevels", toStringFlags, tabCount, tabSize, ToString(obj.MipLevels, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "FirstArraySlice", toStringFlags, tabCount, tabSize, ToString(obj.FirstArraySlice, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "ArraySize", toStringFlags, tabCount, tabSize, ToString(obj.ArraySize, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "PlaneSlice", toStringFlags, tabCount, tabSize, ToString(obj.PlaneSlice, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "ResourceMinLODClamp", toStringFlags, tabCount, tabSize, ToString(obj.ResourceMinLODClamp, toStringFlags, tabCount, tabSize)); - } - ); -} - -std::string ToString(const D3D12_TEX3D_SRV& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "MostDetailedMip", toStringFlags, tabCount, tabSize, ToString(obj.MostDetailedMip, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "MipLevels", toStringFlags, tabCount, tabSize, ToString(obj.MipLevels, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "ResourceMinLODClamp", toStringFlags, tabCount, tabSize, ToString(obj.ResourceMinLODClamp, toStringFlags, tabCount, tabSize)); - } - ); -} - -std::string ToString(const D3D12_TEXCUBE_SRV& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "MostDetailedMip", toStringFlags, tabCount, tabSize, ToString(obj.MostDetailedMip, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "MipLevels", toStringFlags, tabCount, tabSize, ToString(obj.MipLevels, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "ResourceMinLODClamp", toStringFlags, tabCount, tabSize, ToString(obj.ResourceMinLODClamp, toStringFlags, tabCount, tabSize)); - } - ); -} - -std::string ToString(const D3D12_TEXCUBE_ARRAY_SRV& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "MostDetailedMip", toStringFlags, tabCount, tabSize, ToString(obj.MostDetailedMip, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "MipLevels", toStringFlags, tabCount, tabSize, ToString(obj.MipLevels, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "First2DArrayFace", toStringFlags, tabCount, tabSize, ToString(obj.First2DArrayFace, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "NumCubes", toStringFlags, tabCount, tabSize, ToString(obj.NumCubes, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "ResourceMinLODClamp", toStringFlags, tabCount, tabSize, ToString(obj.ResourceMinLODClamp, toStringFlags, tabCount, tabSize)); - } - ); -} - -std::string ToString(const D3D12_TEX2DMS_SRV& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "UnusedField_NothingToDefine", toStringFlags, tabCount, tabSize, ToString(obj.UnusedField_NothingToDefine, toStringFlags, tabCount, tabSize)); - } - ); -} - -std::string ToString(const D3D12_TEX2DMS_ARRAY_SRV& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "FirstArraySlice", toStringFlags, tabCount, tabSize, ToString(obj.FirstArraySlice, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "ArraySize", toStringFlags, tabCount, tabSize, ToString(obj.ArraySize, toStringFlags, tabCount, tabSize)); - } - ); -} - -std::string ToString(const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_SRV& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "Location", toStringFlags, tabCount, tabSize, ToString(obj.Location, toStringFlags, tabCount, tabSize)); - } - ); -} - -std::string ToString(const D3D12_CONSTANT_BUFFER_VIEW_DESC& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "BufferLocation", toStringFlags, tabCount, tabSize, ToString(obj.BufferLocation, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "SizeInBytes", toStringFlags, tabCount, tabSize, ToString(obj.SizeInBytes, toStringFlags, tabCount, tabSize)); - } - ); -} - -std::string ToString(const D3D12_SAMPLER_DESC& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "Filter", toStringFlags, tabCount, tabSize, Quote(ToString(obj.Filter))); - FieldToString(strStrm, false, "AddressU", toStringFlags, tabCount, tabSize, Quote(ToString(obj.AddressU))); - FieldToString(strStrm, false, "AddressV", toStringFlags, tabCount, tabSize, Quote(ToString(obj.AddressV))); - FieldToString(strStrm, false, "AddressW", toStringFlags, tabCount, tabSize, Quote(ToString(obj.AddressW))); - FieldToString(strStrm, false, "MipLODBias", toStringFlags, tabCount, tabSize, ToString(obj.MipLODBias, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "MaxAnisotropy", toStringFlags, tabCount, tabSize, ToString(obj.MaxAnisotropy, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "ComparisonFunc", toStringFlags, tabCount, tabSize, Quote(ToString(obj.ComparisonFunc))); - FieldToString(strStrm, false, "BorderColor", toStringFlags, tabCount, tabSize, ArrayToString(4, obj.BorderColor, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "MinLOD", toStringFlags, tabCount, tabSize, ToString(obj.MinLOD, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "MaxLOD", toStringFlags, tabCount, tabSize, ToString(obj.MaxLOD, toStringFlags, tabCount, tabSize)); - } - ); -} - -std::string ToString(const D3D12_BUFFER_UAV& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "FirstElement", toStringFlags, tabCount, tabSize, ToString(obj.FirstElement, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "NumElements", toStringFlags, tabCount, tabSize, ToString(obj.NumElements, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "StructureByteStride", toStringFlags, tabCount, tabSize, ToString(obj.StructureByteStride, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "CounterOffsetInBytes", toStringFlags, tabCount, tabSize, ToString(obj.CounterOffsetInBytes, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "Flags", toStringFlags, tabCount, tabSize, Quote(ToString(obj.Flags))); - } - ); -} - -std::string ToString(const D3D12_TEX1D_UAV& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "MipSlice", toStringFlags, tabCount, tabSize, ToString(obj.MipSlice, toStringFlags, tabCount, tabSize)); - } - ); -} - -std::string ToString(const D3D12_TEX1D_ARRAY_UAV& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "MipSlice", toStringFlags, tabCount, tabSize, ToString(obj.MipSlice, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "FirstArraySlice", toStringFlags, tabCount, tabSize, ToString(obj.FirstArraySlice, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "ArraySize", toStringFlags, tabCount, tabSize, ToString(obj.ArraySize, toStringFlags, tabCount, tabSize)); - } - ); -} - -std::string ToString(const D3D12_TEX2D_UAV& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "MipSlice", toStringFlags, tabCount, tabSize, ToString(obj.MipSlice, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "PlaneSlice", toStringFlags, tabCount, tabSize, ToString(obj.PlaneSlice, toStringFlags, tabCount, tabSize)); - } - ); -} - -std::string ToString(const D3D12_TEX2D_ARRAY_UAV& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "MipSlice", toStringFlags, tabCount, tabSize, ToString(obj.MipSlice, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "FirstArraySlice", toStringFlags, tabCount, tabSize, ToString(obj.FirstArraySlice, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "ArraySize", toStringFlags, tabCount, tabSize, ToString(obj.ArraySize, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "PlaneSlice", toStringFlags, tabCount, tabSize, ToString(obj.PlaneSlice, toStringFlags, tabCount, tabSize)); - } - ); -} - -std::string ToString(const D3D12_TEX2DMS_UAV& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "UnusedField_NothingToDefine", toStringFlags, tabCount, tabSize, ToString(obj.UnusedField_NothingToDefine, toStringFlags, tabCount, tabSize)); - } - ); -} - -std::string ToString(const D3D12_TEX2DMS_ARRAY_UAV& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "FirstArraySlice", toStringFlags, tabCount, tabSize, ToString(obj.FirstArraySlice, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "ArraySize", toStringFlags, tabCount, tabSize, ToString(obj.ArraySize, toStringFlags, tabCount, tabSize)); - } - ); -} - -std::string ToString(const D3D12_TEX3D_UAV& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "MipSlice", toStringFlags, tabCount, tabSize, ToString(obj.MipSlice, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "FirstWSlice", toStringFlags, tabCount, tabSize, ToString(obj.FirstWSlice, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "WSize", toStringFlags, tabCount, tabSize, ToString(obj.WSize, toStringFlags, tabCount, tabSize)); - } - ); -} - -std::string ToString(const D3D12_BUFFER_RTV& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "FirstElement", toStringFlags, tabCount, tabSize, ToString(obj.FirstElement, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "NumElements", toStringFlags, tabCount, tabSize, ToString(obj.NumElements, toStringFlags, tabCount, tabSize)); - } - ); -} - -std::string ToString(const D3D12_TEX1D_RTV& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "MipSlice", toStringFlags, tabCount, tabSize, ToString(obj.MipSlice, toStringFlags, tabCount, tabSize)); - } - ); -} - -std::string ToString(const D3D12_TEX1D_ARRAY_RTV& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "MipSlice", toStringFlags, tabCount, tabSize, ToString(obj.MipSlice, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "FirstArraySlice", toStringFlags, tabCount, tabSize, ToString(obj.FirstArraySlice, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "ArraySize", toStringFlags, tabCount, tabSize, ToString(obj.ArraySize, toStringFlags, tabCount, tabSize)); - } - ); -} - -std::string ToString(const D3D12_TEX2D_RTV& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "MipSlice", toStringFlags, tabCount, tabSize, ToString(obj.MipSlice, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "PlaneSlice", toStringFlags, tabCount, tabSize, ToString(obj.PlaneSlice, toStringFlags, tabCount, tabSize)); - } - ); -} - -std::string ToString(const D3D12_TEX2DMS_RTV& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "UnusedField_NothingToDefine", toStringFlags, tabCount, tabSize, ToString(obj.UnusedField_NothingToDefine, toStringFlags, tabCount, tabSize)); - } - ); -} - -std::string ToString(const D3D12_TEX2D_ARRAY_RTV& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "MipSlice", toStringFlags, tabCount, tabSize, ToString(obj.MipSlice, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "FirstArraySlice", toStringFlags, tabCount, tabSize, ToString(obj.FirstArraySlice, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "ArraySize", toStringFlags, tabCount, tabSize, ToString(obj.ArraySize, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "PlaneSlice", toStringFlags, tabCount, tabSize, ToString(obj.PlaneSlice, toStringFlags, tabCount, tabSize)); - } - ); -} - -std::string ToString(const D3D12_TEX2DMS_ARRAY_RTV& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "FirstArraySlice", toStringFlags, tabCount, tabSize, ToString(obj.FirstArraySlice, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "ArraySize", toStringFlags, tabCount, tabSize, ToString(obj.ArraySize, toStringFlags, tabCount, tabSize)); - } - ); -} - -std::string ToString(const D3D12_TEX3D_RTV& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "MipSlice", toStringFlags, tabCount, tabSize, ToString(obj.MipSlice, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "FirstWSlice", toStringFlags, tabCount, tabSize, ToString(obj.FirstWSlice, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "WSize", toStringFlags, tabCount, tabSize, ToString(obj.WSize, toStringFlags, tabCount, tabSize)); - } - ); -} - -std::string ToString(const D3D12_TEX1D_DSV& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "MipSlice", toStringFlags, tabCount, tabSize, ToString(obj.MipSlice, toStringFlags, tabCount, tabSize)); - } - ); -} - -std::string ToString(const D3D12_TEX1D_ARRAY_DSV& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "MipSlice", toStringFlags, tabCount, tabSize, ToString(obj.MipSlice, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "FirstArraySlice", toStringFlags, tabCount, tabSize, ToString(obj.FirstArraySlice, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "ArraySize", toStringFlags, tabCount, tabSize, ToString(obj.ArraySize, toStringFlags, tabCount, tabSize)); - } - ); -} - -std::string ToString(const D3D12_TEX2D_DSV& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "MipSlice", toStringFlags, tabCount, tabSize, ToString(obj.MipSlice, toStringFlags, tabCount, tabSize)); - } - ); -} - -std::string ToString(const D3D12_TEX2D_ARRAY_DSV& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "MipSlice", toStringFlags, tabCount, tabSize, ToString(obj.MipSlice, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "FirstArraySlice", toStringFlags, tabCount, tabSize, ToString(obj.FirstArraySlice, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "ArraySize", toStringFlags, tabCount, tabSize, ToString(obj.ArraySize, toStringFlags, tabCount, tabSize)); - } - ); -} - -std::string ToString(const D3D12_TEX2DMS_DSV& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "UnusedField_NothingToDefine", toStringFlags, tabCount, tabSize, ToString(obj.UnusedField_NothingToDefine, toStringFlags, tabCount, tabSize)); - } - ); -} - -std::string ToString(const D3D12_TEX2DMS_ARRAY_DSV& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "FirstArraySlice", toStringFlags, tabCount, tabSize, ToString(obj.FirstArraySlice, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "ArraySize", toStringFlags, tabCount, tabSize, ToString(obj.ArraySize, toStringFlags, tabCount, tabSize)); - } - ); -} - -std::string ToString(const D3D12_DESCRIPTOR_HEAP_DESC& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "Type", toStringFlags, tabCount, tabSize, Quote(ToString(obj.Type))); - FieldToString(strStrm, false, "NumDescriptors", toStringFlags, tabCount, tabSize, ToString(obj.NumDescriptors, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "Flags", toStringFlags, tabCount, tabSize, Quote(ToString(obj.Flags))); - FieldToString(strStrm, false, "NodeMask", toStringFlags, tabCount, tabSize, ToString(obj.NodeMask, toStringFlags, tabCount, tabSize)); - } - ); -} - -std::string ToString(const D3D12_DESCRIPTOR_RANGE& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "RangeType", toStringFlags, tabCount, tabSize, Quote(ToString(obj.RangeType))); - FieldToString(strStrm, false, "NumDescriptors", toStringFlags, tabCount, tabSize, ToString(obj.NumDescriptors, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "BaseShaderRegister", toStringFlags, tabCount, tabSize, ToString(obj.BaseShaderRegister, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "RegisterSpace", toStringFlags, tabCount, tabSize, ToString(obj.RegisterSpace, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "OffsetInDescriptorsFromTableStart", toStringFlags, tabCount, tabSize, ToString(obj.OffsetInDescriptorsFromTableStart, toStringFlags, tabCount, tabSize)); - } - ); -} - -std::string ToString(const D3D12_ROOT_DESCRIPTOR_TABLE& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "NumDescriptorRanges", toStringFlags, tabCount, tabSize, ToString(obj.NumDescriptorRanges, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "pDescriptorRanges", toStringFlags, tabCount, tabSize, ArrayToString(obj.NumDescriptorRanges, obj.pDescriptorRanges, toStringFlags, tabCount, tabSize)); - } - ); -} - -std::string ToString(const D3D12_ROOT_CONSTANTS& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "ShaderRegister", toStringFlags, tabCount, tabSize, ToString(obj.ShaderRegister, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "RegisterSpace", toStringFlags, tabCount, tabSize, ToString(obj.RegisterSpace, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "Num32BitValues", toStringFlags, tabCount, tabSize, ToString(obj.Num32BitValues, toStringFlags, tabCount, tabSize)); - } - ); -} - -std::string ToString(const D3D12_ROOT_DESCRIPTOR& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "ShaderRegister", toStringFlags, tabCount, tabSize, ToString(obj.ShaderRegister, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "RegisterSpace", toStringFlags, tabCount, tabSize, ToString(obj.RegisterSpace, toStringFlags, tabCount, tabSize)); - } - ); -} - -std::string ToString(const D3D12_STATIC_SAMPLER_DESC& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "Filter", toStringFlags, tabCount, tabSize, Quote(ToString(obj.Filter))); - FieldToString(strStrm, false, "AddressU", toStringFlags, tabCount, tabSize, Quote(ToString(obj.AddressU))); - FieldToString(strStrm, false, "AddressV", toStringFlags, tabCount, tabSize, Quote(ToString(obj.AddressV))); - FieldToString(strStrm, false, "AddressW", toStringFlags, tabCount, tabSize, Quote(ToString(obj.AddressW))); - FieldToString(strStrm, false, "MipLODBias", toStringFlags, tabCount, tabSize, ToString(obj.MipLODBias, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "MaxAnisotropy", toStringFlags, tabCount, tabSize, ToString(obj.MaxAnisotropy, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "ComparisonFunc", toStringFlags, tabCount, tabSize, Quote(ToString(obj.ComparisonFunc))); - FieldToString(strStrm, false, "BorderColor", toStringFlags, tabCount, tabSize, Quote(ToString(obj.BorderColor))); - FieldToString(strStrm, false, "MinLOD", toStringFlags, tabCount, tabSize, ToString(obj.MinLOD, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "MaxLOD", toStringFlags, tabCount, tabSize, ToString(obj.MaxLOD, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "ShaderRegister", toStringFlags, tabCount, tabSize, ToString(obj.ShaderRegister, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "RegisterSpace", toStringFlags, tabCount, tabSize, ToString(obj.RegisterSpace, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "ShaderVisibility", toStringFlags, tabCount, tabSize, Quote(ToString(obj.ShaderVisibility))); - } - ); -} - -std::string ToString(const D3D12_STATIC_SAMPLER_DESC1& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "Filter", toStringFlags, tabCount, tabSize, Quote(ToString(obj.Filter))); - FieldToString(strStrm, false, "AddressU", toStringFlags, tabCount, tabSize, Quote(ToString(obj.AddressU))); - FieldToString(strStrm, false, "AddressV", toStringFlags, tabCount, tabSize, Quote(ToString(obj.AddressV))); - FieldToString(strStrm, false, "AddressW", toStringFlags, tabCount, tabSize, Quote(ToString(obj.AddressW))); - FieldToString(strStrm, false, "MipLODBias", toStringFlags, tabCount, tabSize, ToString(obj.MipLODBias, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "MaxAnisotropy", toStringFlags, tabCount, tabSize, ToString(obj.MaxAnisotropy, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "ComparisonFunc", toStringFlags, tabCount, tabSize, Quote(ToString(obj.ComparisonFunc))); - FieldToString(strStrm, false, "BorderColor", toStringFlags, tabCount, tabSize, Quote(ToString(obj.BorderColor))); - FieldToString(strStrm, false, "MinLOD", toStringFlags, tabCount, tabSize, ToString(obj.MinLOD, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "MaxLOD", toStringFlags, tabCount, tabSize, ToString(obj.MaxLOD, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "ShaderRegister", toStringFlags, tabCount, tabSize, ToString(obj.ShaderRegister, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "RegisterSpace", toStringFlags, tabCount, tabSize, ToString(obj.RegisterSpace, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "ShaderVisibility", toStringFlags, tabCount, tabSize, Quote(ToString(obj.ShaderVisibility))); - FieldToString(strStrm, false, "Flags", toStringFlags, tabCount, tabSize, Quote(ToString(obj.Flags))); - } - ); -} - -std::string ToString(const D3D12_ROOT_SIGNATURE_DESC& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "NumParameters", toStringFlags, tabCount, tabSize, ToString(obj.NumParameters, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "pParameters", toStringFlags, tabCount, tabSize, ArrayToString(obj.NumParameters, obj.pParameters, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "NumStaticSamplers", toStringFlags, tabCount, tabSize, ToString(obj.NumStaticSamplers, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "pStaticSamplers", toStringFlags, tabCount, tabSize, ArrayToString(obj.NumStaticSamplers, obj.pStaticSamplers, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "Flags", toStringFlags, tabCount, tabSize, Quote(ToString(obj.Flags))); - } - ); -} - -std::string ToString(const D3D12_DESCRIPTOR_RANGE1& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "RangeType", toStringFlags, tabCount, tabSize, Quote(ToString(obj.RangeType))); - FieldToString(strStrm, false, "NumDescriptors", toStringFlags, tabCount, tabSize, ToString(obj.NumDescriptors, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "BaseShaderRegister", toStringFlags, tabCount, tabSize, ToString(obj.BaseShaderRegister, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "RegisterSpace", toStringFlags, tabCount, tabSize, ToString(obj.RegisterSpace, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "Flags", toStringFlags, tabCount, tabSize, Quote(ToString(obj.Flags))); - FieldToString(strStrm, false, "OffsetInDescriptorsFromTableStart", toStringFlags, tabCount, tabSize, ToString(obj.OffsetInDescriptorsFromTableStart, toStringFlags, tabCount, tabSize)); - } - ); -} - -std::string ToString(const D3D12_ROOT_DESCRIPTOR_TABLE1& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "NumDescriptorRanges", toStringFlags, tabCount, tabSize, ToString(obj.NumDescriptorRanges, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "pDescriptorRanges", toStringFlags, tabCount, tabSize, ArrayToString(obj.NumDescriptorRanges, obj.pDescriptorRanges, toStringFlags, tabCount, tabSize)); - } - ); -} - -std::string ToString(const D3D12_ROOT_DESCRIPTOR1& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "ShaderRegister", toStringFlags, tabCount, tabSize, ToString(obj.ShaderRegister, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "RegisterSpace", toStringFlags, tabCount, tabSize, ToString(obj.RegisterSpace, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "Flags", toStringFlags, tabCount, tabSize, Quote(ToString(obj.Flags))); - } - ); -} - -std::string ToString(const D3D12_ROOT_SIGNATURE_DESC1& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "NumParameters", toStringFlags, tabCount, tabSize, ToString(obj.NumParameters, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "pParameters", toStringFlags, tabCount, tabSize, ArrayToString(obj.NumParameters, obj.pParameters, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "NumStaticSamplers", toStringFlags, tabCount, tabSize, ToString(obj.NumStaticSamplers, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "pStaticSamplers", toStringFlags, tabCount, tabSize, ArrayToString(obj.NumStaticSamplers, obj.pStaticSamplers, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "Flags", toStringFlags, tabCount, tabSize, Quote(ToString(obj.Flags))); - } - ); -} - -std::string ToString(const D3D12_ROOT_SIGNATURE_DESC2& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "NumParameters", toStringFlags, tabCount, tabSize, ToString(obj.NumParameters, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "pParameters", toStringFlags, tabCount, tabSize, ArrayToString(obj.NumParameters, obj.pParameters, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "NumStaticSamplers", toStringFlags, tabCount, tabSize, ToString(obj.NumStaticSamplers, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "pStaticSamplers", toStringFlags, tabCount, tabSize, ArrayToString(obj.NumStaticSamplers, obj.pStaticSamplers, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "Flags", toStringFlags, tabCount, tabSize, Quote(ToString(obj.Flags))); - } - ); -} - -std::string ToString(const D3D12_DISCARD_REGION& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "NumRects", toStringFlags, tabCount, tabSize, ToString(obj.NumRects, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "pRects", toStringFlags, tabCount, tabSize, ArrayToString(obj.NumRects, obj.pRects, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "FirstSubresource", toStringFlags, tabCount, tabSize, ToString(obj.FirstSubresource, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "NumSubresources", toStringFlags, tabCount, tabSize, ToString(obj.NumSubresources, toStringFlags, tabCount, tabSize)); - } - ); -} - -std::string ToString(const D3D12_QUERY_HEAP_DESC& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "Type", toStringFlags, tabCount, tabSize, Quote(ToString(obj.Type))); - FieldToString(strStrm, false, "Count", toStringFlags, tabCount, tabSize, ToString(obj.Count, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "NodeMask", toStringFlags, tabCount, tabSize, ToString(obj.NodeMask, toStringFlags, tabCount, tabSize)); - } - ); -} - -std::string ToString(const D3D12_QUERY_DATA_PIPELINE_STATISTICS& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "IAVertices", toStringFlags, tabCount, tabSize, ToString(obj.IAVertices, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "IAPrimitives", toStringFlags, tabCount, tabSize, ToString(obj.IAPrimitives, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "VSInvocations", toStringFlags, tabCount, tabSize, ToString(obj.VSInvocations, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "GSInvocations", toStringFlags, tabCount, tabSize, ToString(obj.GSInvocations, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "GSPrimitives", toStringFlags, tabCount, tabSize, ToString(obj.GSPrimitives, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "CInvocations", toStringFlags, tabCount, tabSize, ToString(obj.CInvocations, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "CPrimitives", toStringFlags, tabCount, tabSize, ToString(obj.CPrimitives, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "PSInvocations", toStringFlags, tabCount, tabSize, ToString(obj.PSInvocations, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "HSInvocations", toStringFlags, tabCount, tabSize, ToString(obj.HSInvocations, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "DSInvocations", toStringFlags, tabCount, tabSize, ToString(obj.DSInvocations, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "CSInvocations", toStringFlags, tabCount, tabSize, ToString(obj.CSInvocations, toStringFlags, tabCount, tabSize)); - } - ); -} - -std::string ToString(const D3D12_QUERY_DATA_PIPELINE_STATISTICS1& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "IAVertices", toStringFlags, tabCount, tabSize, ToString(obj.IAVertices, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "IAPrimitives", toStringFlags, tabCount, tabSize, ToString(obj.IAPrimitives, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "VSInvocations", toStringFlags, tabCount, tabSize, ToString(obj.VSInvocations, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "GSInvocations", toStringFlags, tabCount, tabSize, ToString(obj.GSInvocations, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "GSPrimitives", toStringFlags, tabCount, tabSize, ToString(obj.GSPrimitives, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "CInvocations", toStringFlags, tabCount, tabSize, ToString(obj.CInvocations, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "CPrimitives", toStringFlags, tabCount, tabSize, ToString(obj.CPrimitives, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "PSInvocations", toStringFlags, tabCount, tabSize, ToString(obj.PSInvocations, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "HSInvocations", toStringFlags, tabCount, tabSize, ToString(obj.HSInvocations, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "DSInvocations", toStringFlags, tabCount, tabSize, ToString(obj.DSInvocations, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "CSInvocations", toStringFlags, tabCount, tabSize, ToString(obj.CSInvocations, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "ASInvocations", toStringFlags, tabCount, tabSize, ToString(obj.ASInvocations, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "MSInvocations", toStringFlags, tabCount, tabSize, ToString(obj.MSInvocations, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "MSPrimitives", toStringFlags, tabCount, tabSize, ToString(obj.MSPrimitives, toStringFlags, tabCount, tabSize)); - } - ); -} - -std::string ToString(const D3D12_QUERY_DATA_SO_STATISTICS& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "NumPrimitivesWritten", toStringFlags, tabCount, tabSize, ToString(obj.NumPrimitivesWritten, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "PrimitivesStorageNeeded", toStringFlags, tabCount, tabSize, ToString(obj.PrimitivesStorageNeeded, toStringFlags, tabCount, tabSize)); - } - ); -} - -std::string ToString(const D3D12_STREAM_OUTPUT_BUFFER_VIEW& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "BufferLocation", toStringFlags, tabCount, tabSize, ToString(obj.BufferLocation, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "SizeInBytes", toStringFlags, tabCount, tabSize, ToString(obj.SizeInBytes, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "BufferFilledSizeLocation", toStringFlags, tabCount, tabSize, ToString(obj.BufferFilledSizeLocation, toStringFlags, tabCount, tabSize)); - } - ); -} - -std::string ToString(const D3D12_DRAW_ARGUMENTS& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "VertexCountPerInstance", toStringFlags, tabCount, tabSize, ToString(obj.VertexCountPerInstance, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "InstanceCount", toStringFlags, tabCount, tabSize, ToString(obj.InstanceCount, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "StartVertexLocation", toStringFlags, tabCount, tabSize, ToString(obj.StartVertexLocation, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "StartInstanceLocation", toStringFlags, tabCount, tabSize, ToString(obj.StartInstanceLocation, toStringFlags, tabCount, tabSize)); - } - ); -} - -std::string ToString(const D3D12_DRAW_INDEXED_ARGUMENTS& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "IndexCountPerInstance", toStringFlags, tabCount, tabSize, ToString(obj.IndexCountPerInstance, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "InstanceCount", toStringFlags, tabCount, tabSize, ToString(obj.InstanceCount, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "StartIndexLocation", toStringFlags, tabCount, tabSize, ToString(obj.StartIndexLocation, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "BaseVertexLocation", toStringFlags, tabCount, tabSize, ToString(obj.BaseVertexLocation, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "StartInstanceLocation", toStringFlags, tabCount, tabSize, ToString(obj.StartInstanceLocation, toStringFlags, tabCount, tabSize)); - } - ); -} - -std::string ToString(const D3D12_DISPATCH_ARGUMENTS& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "ThreadGroupCountX", toStringFlags, tabCount, tabSize, ToString(obj.ThreadGroupCountX, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "ThreadGroupCountY", toStringFlags, tabCount, tabSize, ToString(obj.ThreadGroupCountY, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "ThreadGroupCountZ", toStringFlags, tabCount, tabSize, ToString(obj.ThreadGroupCountZ, toStringFlags, tabCount, tabSize)); - } - ); -} - -std::string ToString(const D3D12_VERTEX_BUFFER_VIEW& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "BufferLocation", toStringFlags, tabCount, tabSize, ToString(obj.BufferLocation, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "SizeInBytes", toStringFlags, tabCount, tabSize, ToString(obj.SizeInBytes, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "StrideInBytes", toStringFlags, tabCount, tabSize, ToString(obj.StrideInBytes, toStringFlags, tabCount, tabSize)); - } - ); -} - -std::string ToString(const D3D12_INDEX_BUFFER_VIEW& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "BufferLocation", toStringFlags, tabCount, tabSize, ToString(obj.BufferLocation, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "SizeInBytes", toStringFlags, tabCount, tabSize, ToString(obj.SizeInBytes, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "Format", toStringFlags, tabCount, tabSize, Quote(ToString(obj.Format))); - } - ); -} - -std::string ToString(const D3D12_COMMAND_SIGNATURE_DESC& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "ByteStride", toStringFlags, tabCount, tabSize, ToString(obj.ByteStride, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "NumArgumentDescs", toStringFlags, tabCount, tabSize, ToString(obj.NumArgumentDescs, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "pArgumentDescs", toStringFlags, tabCount, tabSize, ArrayToString(obj.NumArgumentDescs, obj.pArgumentDescs, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "NodeMask", toStringFlags, tabCount, tabSize, ToString(obj.NodeMask, toStringFlags, tabCount, tabSize)); - } - ); -} - -std::string ToString(const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "Dest", toStringFlags, tabCount, tabSize, ToString(obj.Dest, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "Value", toStringFlags, tabCount, tabSize, ToString(obj.Value, toStringFlags, tabCount, tabSize)); - } - ); -} - -std::string ToString(const D3D12_FEATURE_DATA_PROTECTED_RESOURCE_SESSION_SUPPORT& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "NodeIndex", toStringFlags, tabCount, tabSize, ToString(obj.NodeIndex, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "Support", toStringFlags, tabCount, tabSize, Quote(ToString(obj.Support))); - } - ); -} - -std::string ToString(const D3D12_PROTECTED_RESOURCE_SESSION_DESC& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "NodeMask", toStringFlags, tabCount, tabSize, ToString(obj.NodeMask, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "Flags", toStringFlags, tabCount, tabSize, Quote(ToString(obj.Flags))); - } - ); -} - -std::string ToString(const D3D12_META_COMMAND_PARAMETER_DESC& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "Name", toStringFlags, tabCount, tabSize, (obj.Name ? ToString(*obj.Name, toStringFlags, tabCount, tabSize) : "null")); - FieldToString(strStrm, false, "Type", toStringFlags, tabCount, tabSize, Quote(ToString(obj.Type))); - FieldToString(strStrm, false, "Flags", toStringFlags, tabCount, tabSize, Quote(ToString(obj.Flags))); - FieldToString(strStrm, false, "RequiredResourceState", toStringFlags, tabCount, tabSize, Quote(ToString(obj.RequiredResourceState))); - FieldToString(strStrm, false, "StructureOffset", toStringFlags, tabCount, tabSize, ToString(obj.StructureOffset, toStringFlags, tabCount, tabSize)); - } - ); -} - -std::string ToString(const D3D12_META_COMMAND_DESC& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "Id", toStringFlags, tabCount, tabSize, ToString(obj.Id, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "Name", toStringFlags, tabCount, tabSize, (obj.Name ? ToString(*obj.Name, toStringFlags, tabCount, tabSize) : "null")); - FieldToString(strStrm, false, "InitializationDirtyState", toStringFlags, tabCount, tabSize, Quote(ToString(obj.InitializationDirtyState))); - FieldToString(strStrm, false, "ExecutionDirtyState", toStringFlags, tabCount, tabSize, Quote(ToString(obj.ExecutionDirtyState))); - } - ); -} - -std::string ToString(const D3D12_STATE_OBJECT_CONFIG& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "Flags", toStringFlags, tabCount, tabSize, Quote(ToString(obj.Flags))); - } - ); -} - -std::string ToString(const D3D12_GLOBAL_ROOT_SIGNATURE& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "pGlobalRootSignature", toStringFlags, tabCount, tabSize, HandleIdToString(obj.pGlobalRootSignature)); - } - ); -} - -std::string ToString(const D3D12_LOCAL_ROOT_SIGNATURE& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "pLocalRootSignature", toStringFlags, tabCount, tabSize, HandleIdToString(obj.pLocalRootSignature)); - } - ); -} - -std::string ToString(const D3D12_NODE_MASK& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "NodeMask", toStringFlags, tabCount, tabSize, ToString(obj.NodeMask, toStringFlags, tabCount, tabSize)); - } - ); -} - -std::string ToString(const D3D12_EXPORT_DESC& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "Name", toStringFlags, tabCount, tabSize, (obj.Name ? ToString(*obj.Name, toStringFlags, tabCount, tabSize) : "null")); - FieldToString(strStrm, false, "ExportToRename", toStringFlags, tabCount, tabSize, (obj.ExportToRename ? ToString(*obj.ExportToRename, toStringFlags, tabCount, tabSize) : "null")); - FieldToString(strStrm, false, "Flags", toStringFlags, tabCount, tabSize, Quote(ToString(obj.Flags))); - } - ); -} - -std::string ToString(const D3D12_DXIL_LIBRARY_DESC& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "DXILLibrary", toStringFlags, tabCount, tabSize, ToString(obj.DXILLibrary, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "NumExports", toStringFlags, tabCount, tabSize, ToString(obj.NumExports, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "pExports", toStringFlags, tabCount, tabSize, ArrayToString(obj.NumExports, obj.pExports, toStringFlags, tabCount, tabSize)); - } - ); -} - -std::string ToString(const D3D12_EXISTING_COLLECTION_DESC& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "pExistingCollection", toStringFlags, tabCount, tabSize, HandleIdToString(obj.pExistingCollection)); - FieldToString(strStrm, false, "NumExports", toStringFlags, tabCount, tabSize, ToString(obj.NumExports, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "pExports", toStringFlags, tabCount, tabSize, ArrayToString(obj.NumExports, obj.pExports, toStringFlags, tabCount, tabSize)); - } - ); -} - -std::string ToString(const D3D12_HIT_GROUP_DESC& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "HitGroupExport", toStringFlags, tabCount, tabSize, (obj.HitGroupExport ? ToString(*obj.HitGroupExport, toStringFlags, tabCount, tabSize) : "null")); - FieldToString(strStrm, false, "Type", toStringFlags, tabCount, tabSize, Quote(ToString(obj.Type))); - FieldToString(strStrm, false, "AnyHitShaderImport", toStringFlags, tabCount, tabSize, (obj.AnyHitShaderImport ? ToString(*obj.AnyHitShaderImport, toStringFlags, tabCount, tabSize) : "null")); - FieldToString(strStrm, false, "ClosestHitShaderImport", toStringFlags, tabCount, tabSize, (obj.ClosestHitShaderImport ? ToString(*obj.ClosestHitShaderImport, toStringFlags, tabCount, tabSize) : "null")); - FieldToString(strStrm, false, "IntersectionShaderImport", toStringFlags, tabCount, tabSize, (obj.IntersectionShaderImport ? ToString(*obj.IntersectionShaderImport, toStringFlags, tabCount, tabSize) : "null")); - } - ); -} - -std::string ToString(const D3D12_RAYTRACING_SHADER_CONFIG& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "MaxPayloadSizeInBytes", toStringFlags, tabCount, tabSize, ToString(obj.MaxPayloadSizeInBytes, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "MaxAttributeSizeInBytes", toStringFlags, tabCount, tabSize, ToString(obj.MaxAttributeSizeInBytes, toStringFlags, tabCount, tabSize)); - } - ); -} - -std::string ToString(const D3D12_RAYTRACING_PIPELINE_CONFIG& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "MaxTraceRecursionDepth", toStringFlags, tabCount, tabSize, ToString(obj.MaxTraceRecursionDepth, toStringFlags, tabCount, tabSize)); - } - ); -} - -std::string ToString(const D3D12_RAYTRACING_PIPELINE_CONFIG1& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "MaxTraceRecursionDepth", toStringFlags, tabCount, tabSize, ToString(obj.MaxTraceRecursionDepth, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "Flags", toStringFlags, tabCount, tabSize, Quote(ToString(obj.Flags))); - } - ); -} - -std::string ToString(const D3D12_GPU_VIRTUAL_ADDRESS_AND_STRIDE& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "StartAddress", toStringFlags, tabCount, tabSize, ToString(obj.StartAddress, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "StrideInBytes", toStringFlags, tabCount, tabSize, ToString(obj.StrideInBytes, toStringFlags, tabCount, tabSize)); - } - ); -} - -std::string ToString(const D3D12_GPU_VIRTUAL_ADDRESS_RANGE& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "StartAddress", toStringFlags, tabCount, tabSize, ToString(obj.StartAddress, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "SizeInBytes", toStringFlags, tabCount, tabSize, ToString(obj.SizeInBytes, toStringFlags, tabCount, tabSize)); - } - ); -} - -std::string ToString(const D3D12_GPU_VIRTUAL_ADDRESS_RANGE_AND_STRIDE& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "StartAddress", toStringFlags, tabCount, tabSize, ToString(obj.StartAddress, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "SizeInBytes", toStringFlags, tabCount, tabSize, ToString(obj.SizeInBytes, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "StrideInBytes", toStringFlags, tabCount, tabSize, ToString(obj.StrideInBytes, toStringFlags, tabCount, tabSize)); - } - ); -} - -std::string ToString(const D3D12_RAYTRACING_GEOMETRY_TRIANGLES_DESC& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "Transform3x4", toStringFlags, tabCount, tabSize, ToString(obj.Transform3x4, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "IndexFormat", toStringFlags, tabCount, tabSize, Quote(ToString(obj.IndexFormat))); - FieldToString(strStrm, false, "VertexFormat", toStringFlags, tabCount, tabSize, Quote(ToString(obj.VertexFormat))); - FieldToString(strStrm, false, "IndexCount", toStringFlags, tabCount, tabSize, ToString(obj.IndexCount, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "VertexCount", toStringFlags, tabCount, tabSize, ToString(obj.VertexCount, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "IndexBuffer", toStringFlags, tabCount, tabSize, ToString(obj.IndexBuffer, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "VertexBuffer", toStringFlags, tabCount, tabSize, ToString(obj.VertexBuffer, toStringFlags, tabCount, tabSize)); - } - ); -} - -std::string ToString(const D3D12_RAYTRACING_AABB& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "MinX", toStringFlags, tabCount, tabSize, ToString(obj.MinX, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "MinY", toStringFlags, tabCount, tabSize, ToString(obj.MinY, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "MinZ", toStringFlags, tabCount, tabSize, ToString(obj.MinZ, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "MaxX", toStringFlags, tabCount, tabSize, ToString(obj.MaxX, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "MaxY", toStringFlags, tabCount, tabSize, ToString(obj.MaxY, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "MaxZ", toStringFlags, tabCount, tabSize, ToString(obj.MaxZ, toStringFlags, tabCount, tabSize)); - } - ); -} - -std::string ToString(const D3D12_RAYTRACING_GEOMETRY_AABBS_DESC& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "AABBCount", toStringFlags, tabCount, tabSize, ToString(obj.AABBCount, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "AABBs", toStringFlags, tabCount, tabSize, ToString(obj.AABBs, toStringFlags, tabCount, tabSize)); - } - ); -} - -std::string ToString(const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "DestBuffer", toStringFlags, tabCount, tabSize, ToString(obj.DestBuffer, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "InfoType", toStringFlags, tabCount, tabSize, Quote(ToString(obj.InfoType))); - } - ); -} - -std::string ToString(const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_COMPACTED_SIZE_DESC& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "CompactedSizeInBytes", toStringFlags, tabCount, tabSize, ToString(obj.CompactedSizeInBytes, toStringFlags, tabCount, tabSize)); - } - ); -} - -std::string ToString(const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_TOOLS_VISUALIZATION_DESC& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "DecodedSizeInBytes", toStringFlags, tabCount, tabSize, ToString(obj.DecodedSizeInBytes, toStringFlags, tabCount, tabSize)); - } - ); -} - -std::string ToString(const D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_TOOLS_VISUALIZATION_HEADER& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "Type", toStringFlags, tabCount, tabSize, Quote(ToString(obj.Type))); - FieldToString(strStrm, false, "NumDescs", toStringFlags, tabCount, tabSize, ToString(obj.NumDescs, toStringFlags, tabCount, tabSize)); - } - ); -} - -std::string ToString(const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_SERIALIZATION_DESC& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "SerializedSizeInBytes", toStringFlags, tabCount, tabSize, ToString(obj.SerializedSizeInBytes, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "NumBottomLevelAccelerationStructurePointers", toStringFlags, tabCount, tabSize, ToString(obj.NumBottomLevelAccelerationStructurePointers, toStringFlags, tabCount, tabSize)); - } - ); -} - -std::string ToString(const D3D12_SERIALIZED_DATA_DRIVER_MATCHING_IDENTIFIER& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "DriverOpaqueGUID", toStringFlags, tabCount, tabSize, ToString(obj.DriverOpaqueGUID, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "DriverOpaqueVersioningData", toStringFlags, tabCount, tabSize, ArrayToString(16, obj.DriverOpaqueVersioningData, toStringFlags, tabCount, tabSize)); - } - ); -} - -std::string ToString(const D3D12_SERIALIZED_RAYTRACING_ACCELERATION_STRUCTURE_HEADER& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "DriverMatchingIdentifier", toStringFlags, tabCount, tabSize, ToString(obj.DriverMatchingIdentifier, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "SerializedSizeInBytesIncludingHeader", toStringFlags, tabCount, tabSize, ToString(obj.SerializedSizeInBytesIncludingHeader, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "DeserializedSizeInBytes", toStringFlags, tabCount, tabSize, ToString(obj.DeserializedSizeInBytes, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "NumBottomLevelAccelerationStructurePointersAfterHeader", toStringFlags, tabCount, tabSize, ToString(obj.NumBottomLevelAccelerationStructurePointersAfterHeader, toStringFlags, tabCount, tabSize)); - } - ); -} - -std::string ToString(const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_CURRENT_SIZE_DESC& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "CurrentSizeInBytes", toStringFlags, tabCount, tabSize, ToString(obj.CurrentSizeInBytes, toStringFlags, tabCount, tabSize)); - } - ); -} - -std::string ToString(const D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_DESC& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "DestAccelerationStructureData", toStringFlags, tabCount, tabSize, ToString(obj.DestAccelerationStructureData, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "Inputs", toStringFlags, tabCount, tabSize, ToString(obj.Inputs, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "SourceAccelerationStructureData", toStringFlags, tabCount, tabSize, ToString(obj.SourceAccelerationStructureData, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "ScratchAccelerationStructureData", toStringFlags, tabCount, tabSize, ToString(obj.ScratchAccelerationStructureData, toStringFlags, tabCount, tabSize)); - } - ); -} - -std::string ToString(const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_PREBUILD_INFO& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "ResultDataMaxSizeInBytes", toStringFlags, tabCount, tabSize, ToString(obj.ResultDataMaxSizeInBytes, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "ScratchDataSizeInBytes", toStringFlags, tabCount, tabSize, ToString(obj.ScratchDataSizeInBytes, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "UpdateScratchDataSizeInBytes", toStringFlags, tabCount, tabSize, ToString(obj.UpdateScratchDataSizeInBytes, toStringFlags, tabCount, tabSize)); - } - ); -} - -std::string ToString(const D3D12_AUTO_BREADCRUMB_NODE& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "pCommandListDebugNameA", toStringFlags, tabCount, tabSize, (obj.pCommandListDebugNameA ? ToString(*obj.pCommandListDebugNameA, toStringFlags, tabCount, tabSize) : "null")); - FieldToString(strStrm, false, "pCommandListDebugNameW", toStringFlags, tabCount, tabSize, (obj.pCommandListDebugNameW ? ToString(*obj.pCommandListDebugNameW, toStringFlags, tabCount, tabSize) : "null")); - FieldToString(strStrm, false, "pCommandQueueDebugNameA", toStringFlags, tabCount, tabSize, (obj.pCommandQueueDebugNameA ? ToString(*obj.pCommandQueueDebugNameA, toStringFlags, tabCount, tabSize) : "null")); - FieldToString(strStrm, false, "pCommandQueueDebugNameW", toStringFlags, tabCount, tabSize, (obj.pCommandQueueDebugNameW ? ToString(*obj.pCommandQueueDebugNameW, toStringFlags, tabCount, tabSize) : "null")); - FieldToString(strStrm, false, "pCommandList", toStringFlags, tabCount, tabSize, HandleIdToString(obj.pCommandList)); - FieldToString(strStrm, false, "pCommandQueue", toStringFlags, tabCount, tabSize, HandleIdToString(obj.pCommandQueue)); - FieldToString(strStrm, false, "BreadcrumbCount", toStringFlags, tabCount, tabSize, ToString(obj.BreadcrumbCount, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "pLastBreadcrumbValue", toStringFlags, tabCount, tabSize, (obj.pLastBreadcrumbValue ? ToString(*obj.pLastBreadcrumbValue, toStringFlags, tabCount, tabSize) : "null")); - FieldToString(strStrm, false, "pCommandHistory", toStringFlags, tabCount, tabSize, EnumArrayToString(obj.BreadcrumbCount, obj.pCommandHistory, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "pNext", toStringFlags, tabCount, tabSize, (obj.pNext ? ToString(*obj.pNext, toStringFlags, tabCount, tabSize) : "null")); - } - ); -} - -std::string ToString(const D3D12_DRED_BREADCRUMB_CONTEXT& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "BreadcrumbIndex", toStringFlags, tabCount, tabSize, ToString(obj.BreadcrumbIndex, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "pContextString", toStringFlags, tabCount, tabSize, (obj.pContextString ? ToString(*obj.pContextString, toStringFlags, tabCount, tabSize) : "null")); - } - ); -} - -std::string ToString(const D3D12_AUTO_BREADCRUMB_NODE1& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "pCommandListDebugNameA", toStringFlags, tabCount, tabSize, (obj.pCommandListDebugNameA ? ToString(*obj.pCommandListDebugNameA, toStringFlags, tabCount, tabSize) : "null")); - FieldToString(strStrm, false, "pCommandListDebugNameW", toStringFlags, tabCount, tabSize, (obj.pCommandListDebugNameW ? ToString(*obj.pCommandListDebugNameW, toStringFlags, tabCount, tabSize) : "null")); - FieldToString(strStrm, false, "pCommandQueueDebugNameA", toStringFlags, tabCount, tabSize, (obj.pCommandQueueDebugNameA ? ToString(*obj.pCommandQueueDebugNameA, toStringFlags, tabCount, tabSize) : "null")); - FieldToString(strStrm, false, "pCommandQueueDebugNameW", toStringFlags, tabCount, tabSize, (obj.pCommandQueueDebugNameW ? ToString(*obj.pCommandQueueDebugNameW, toStringFlags, tabCount, tabSize) : "null")); - FieldToString(strStrm, false, "pCommandList", toStringFlags, tabCount, tabSize, HandleIdToString(obj.pCommandList)); - FieldToString(strStrm, false, "pCommandQueue", toStringFlags, tabCount, tabSize, HandleIdToString(obj.pCommandQueue)); - FieldToString(strStrm, false, "BreadcrumbCount", toStringFlags, tabCount, tabSize, ToString(obj.BreadcrumbCount, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "pLastBreadcrumbValue", toStringFlags, tabCount, tabSize, (obj.pLastBreadcrumbValue ? ToString(*obj.pLastBreadcrumbValue, toStringFlags, tabCount, tabSize) : "null")); - FieldToString(strStrm, false, "pCommandHistory", toStringFlags, tabCount, tabSize, EnumArrayToString(obj.BreadcrumbCount, obj.pCommandHistory, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "pNext", toStringFlags, tabCount, tabSize, (obj.pNext ? ToString(*obj.pNext, toStringFlags, tabCount, tabSize) : "null")); - FieldToString(strStrm, false, "BreadcrumbContextsCount", toStringFlags, tabCount, tabSize, ToString(obj.BreadcrumbContextsCount, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "pBreadcrumbContexts", toStringFlags, tabCount, tabSize, ArrayToString(obj.BreadcrumbContextsCount, obj.pBreadcrumbContexts, toStringFlags, tabCount, tabSize)); - } - ); -} - -std::string ToString(const D3D12_DEVICE_REMOVED_EXTENDED_DATA& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "Flags", toStringFlags, tabCount, tabSize, Quote(ToString(obj.Flags))); - FieldToString(strStrm, false, "pHeadAutoBreadcrumbNode", toStringFlags, tabCount, tabSize, (obj.pHeadAutoBreadcrumbNode ? ToString(*obj.pHeadAutoBreadcrumbNode, toStringFlags, tabCount, tabSize) : "null")); - } - ); -} - -std::string ToString(const D3D12_DRED_ALLOCATION_NODE& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "ObjectNameA", toStringFlags, tabCount, tabSize, (obj.ObjectNameA ? ToString(*obj.ObjectNameA, toStringFlags, tabCount, tabSize) : "null")); - FieldToString(strStrm, false, "ObjectNameW", toStringFlags, tabCount, tabSize, (obj.ObjectNameW ? ToString(*obj.ObjectNameW, toStringFlags, tabCount, tabSize) : "null")); - FieldToString(strStrm, false, "AllocationType", toStringFlags, tabCount, tabSize, Quote(ToString(obj.AllocationType))); - FieldToString(strStrm, false, "pNext", toStringFlags, tabCount, tabSize, (obj.pNext ? ToString(*obj.pNext, toStringFlags, tabCount, tabSize) : "null")); - } - ); -} - -std::string ToString(const D3D12_DRED_ALLOCATION_NODE1& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "ObjectNameA", toStringFlags, tabCount, tabSize, (obj.ObjectNameA ? ToString(*obj.ObjectNameA, toStringFlags, tabCount, tabSize) : "null")); - FieldToString(strStrm, false, "ObjectNameW", toStringFlags, tabCount, tabSize, (obj.ObjectNameW ? ToString(*obj.ObjectNameW, toStringFlags, tabCount, tabSize) : "null")); - FieldToString(strStrm, false, "AllocationType", toStringFlags, tabCount, tabSize, Quote(ToString(obj.AllocationType))); - FieldToString(strStrm, false, "pNext", toStringFlags, tabCount, tabSize, (obj.pNext ? ToString(*obj.pNext, toStringFlags, tabCount, tabSize) : "null")); - FieldToString(strStrm, false, "pObject", toStringFlags, tabCount, tabSize, HandleIdToString(obj.pObject)); - } - ); -} - -std::string ToString(const D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "pHeadAutoBreadcrumbNode", toStringFlags, tabCount, tabSize, (obj.pHeadAutoBreadcrumbNode ? ToString(*obj.pHeadAutoBreadcrumbNode, toStringFlags, tabCount, tabSize) : "null")); - } - ); -} - -std::string ToString(const D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT1& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "pHeadAutoBreadcrumbNode", toStringFlags, tabCount, tabSize, (obj.pHeadAutoBreadcrumbNode ? ToString(*obj.pHeadAutoBreadcrumbNode, toStringFlags, tabCount, tabSize) : "null")); - } - ); -} - -std::string ToString(const D3D12_DRED_PAGE_FAULT_OUTPUT& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "PageFaultVA", toStringFlags, tabCount, tabSize, ToString(obj.PageFaultVA, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "pHeadExistingAllocationNode", toStringFlags, tabCount, tabSize, (obj.pHeadExistingAllocationNode ? ToString(*obj.pHeadExistingAllocationNode, toStringFlags, tabCount, tabSize) : "null")); - FieldToString(strStrm, false, "pHeadRecentFreedAllocationNode", toStringFlags, tabCount, tabSize, (obj.pHeadRecentFreedAllocationNode ? ToString(*obj.pHeadRecentFreedAllocationNode, toStringFlags, tabCount, tabSize) : "null")); - } - ); -} - -std::string ToString(const D3D12_DRED_PAGE_FAULT_OUTPUT1& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "PageFaultVA", toStringFlags, tabCount, tabSize, ToString(obj.PageFaultVA, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "pHeadExistingAllocationNode", toStringFlags, tabCount, tabSize, (obj.pHeadExistingAllocationNode ? ToString(*obj.pHeadExistingAllocationNode, toStringFlags, tabCount, tabSize) : "null")); - FieldToString(strStrm, false, "pHeadRecentFreedAllocationNode", toStringFlags, tabCount, tabSize, (obj.pHeadRecentFreedAllocationNode ? ToString(*obj.pHeadRecentFreedAllocationNode, toStringFlags, tabCount, tabSize) : "null")); - } - ); -} - -std::string ToString(const D3D12_DRED_PAGE_FAULT_OUTPUT2& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "PageFaultVA", toStringFlags, tabCount, tabSize, ToString(obj.PageFaultVA, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "pHeadExistingAllocationNode", toStringFlags, tabCount, tabSize, (obj.pHeadExistingAllocationNode ? ToString(*obj.pHeadExistingAllocationNode, toStringFlags, tabCount, tabSize) : "null")); - FieldToString(strStrm, false, "pHeadRecentFreedAllocationNode", toStringFlags, tabCount, tabSize, (obj.pHeadRecentFreedAllocationNode ? ToString(*obj.pHeadRecentFreedAllocationNode, toStringFlags, tabCount, tabSize) : "null")); - FieldToString(strStrm, false, "PageFaultFlags", toStringFlags, tabCount, tabSize, Quote(ToString(obj.PageFaultFlags))); - } - ); -} - -std::string ToString(const D3D12_DEVICE_REMOVED_EXTENDED_DATA1& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "DeviceRemovedReason", toStringFlags, tabCount, tabSize, ToString(obj.DeviceRemovedReason, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "AutoBreadcrumbsOutput", toStringFlags, tabCount, tabSize, ToString(obj.AutoBreadcrumbsOutput, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "PageFaultOutput", toStringFlags, tabCount, tabSize, ToString(obj.PageFaultOutput, toStringFlags, tabCount, tabSize)); - } - ); -} - -std::string ToString(const D3D12_DEVICE_REMOVED_EXTENDED_DATA2& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "DeviceRemovedReason", toStringFlags, tabCount, tabSize, ToString(obj.DeviceRemovedReason, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "AutoBreadcrumbsOutput", toStringFlags, tabCount, tabSize, ToString(obj.AutoBreadcrumbsOutput, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "PageFaultOutput", toStringFlags, tabCount, tabSize, ToString(obj.PageFaultOutput, toStringFlags, tabCount, tabSize)); - } - ); -} - -std::string ToString(const D3D12_DEVICE_REMOVED_EXTENDED_DATA3& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "DeviceRemovedReason", toStringFlags, tabCount, tabSize, ToString(obj.DeviceRemovedReason, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "AutoBreadcrumbsOutput", toStringFlags, tabCount, tabSize, ToString(obj.AutoBreadcrumbsOutput, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "PageFaultOutput", toStringFlags, tabCount, tabSize, ToString(obj.PageFaultOutput, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "DeviceState", toStringFlags, tabCount, tabSize, Quote(ToString(obj.DeviceState))); - } - ); -} - -std::string ToString(const D3D12_FEATURE_DATA_PROTECTED_RESOURCE_SESSION_TYPE_COUNT& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "NodeIndex", toStringFlags, tabCount, tabSize, ToString(obj.NodeIndex, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "Count", toStringFlags, tabCount, tabSize, ToString(obj.Count, toStringFlags, tabCount, tabSize)); - } - ); -} - -std::string ToString(const D3D12_FEATURE_DATA_PROTECTED_RESOURCE_SESSION_TYPES& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "NodeIndex", toStringFlags, tabCount, tabSize, ToString(obj.NodeIndex, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "Count", toStringFlags, tabCount, tabSize, ToString(obj.Count, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "pTypes", toStringFlags, tabCount, tabSize, ArrayToString(obj.Count, obj.pTypes, toStringFlags, tabCount, tabSize)); - } - ); -} - -std::string ToString(const D3D12_PROTECTED_RESOURCE_SESSION_DESC1& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "NodeMask", toStringFlags, tabCount, tabSize, ToString(obj.NodeMask, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "Flags", toStringFlags, tabCount, tabSize, Quote(ToString(obj.Flags))); - FieldToString(strStrm, false, "ProtectionType", toStringFlags, tabCount, tabSize, ToString(obj.ProtectionType, toStringFlags, tabCount, tabSize)); - } - ); -} - -std::string ToString(const D3D12_RENDER_PASS_BEGINNING_ACCESS_CLEAR_PARAMETERS& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "ClearValue", toStringFlags, tabCount, tabSize, ToString(obj.ClearValue, toStringFlags, tabCount, tabSize)); - } - ); -} - -std::string ToString(const D3D12_RENDER_PASS_BEGINNING_ACCESS_PRESERVE_LOCAL_PARAMETERS& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "AdditionalWidth", toStringFlags, tabCount, tabSize, ToString(obj.AdditionalWidth, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "AdditionalHeight", toStringFlags, tabCount, tabSize, ToString(obj.AdditionalHeight, toStringFlags, tabCount, tabSize)); - } - ); -} - -std::string ToString(const D3D12_RENDER_PASS_ENDING_ACCESS_RESOLVE_SUBRESOURCE_PARAMETERS& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "SrcSubresource", toStringFlags, tabCount, tabSize, ToString(obj.SrcSubresource, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "DstSubresource", toStringFlags, tabCount, tabSize, ToString(obj.DstSubresource, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "DstX", toStringFlags, tabCount, tabSize, ToString(obj.DstX, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "DstY", toStringFlags, tabCount, tabSize, ToString(obj.DstY, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "SrcRect", toStringFlags, tabCount, tabSize, ToString(obj.SrcRect, toStringFlags, tabCount, tabSize)); - } - ); -} - -std::string ToString(const D3D12_RENDER_PASS_ENDING_ACCESS_RESOLVE_PARAMETERS& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "pSrcResource", toStringFlags, tabCount, tabSize, HandleIdToString(obj.pSrcResource)); - FieldToString(strStrm, false, "pDstResource", toStringFlags, tabCount, tabSize, HandleIdToString(obj.pDstResource)); - FieldToString(strStrm, false, "SubresourceCount", toStringFlags, tabCount, tabSize, ToString(obj.SubresourceCount, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "pSubresourceParameters", toStringFlags, tabCount, tabSize, ArrayToString(obj.SubresourceCount, obj.pSubresourceParameters, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "Format", toStringFlags, tabCount, tabSize, Quote(ToString(obj.Format))); - FieldToString(strStrm, false, "ResolveMode", toStringFlags, tabCount, tabSize, Quote(ToString(obj.ResolveMode))); - FieldToString(strStrm, false, "PreserveResolveSource", toStringFlags, tabCount, tabSize, ToString(obj.PreserveResolveSource, toStringFlags, tabCount, tabSize)); - } - ); -} - -std::string ToString(const D3D12_RENDER_PASS_ENDING_ACCESS_PRESERVE_LOCAL_PARAMETERS& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "AdditionalWidth", toStringFlags, tabCount, tabSize, ToString(obj.AdditionalWidth, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "AdditionalHeight", toStringFlags, tabCount, tabSize, ToString(obj.AdditionalHeight, toStringFlags, tabCount, tabSize)); - } - ); -} - -std::string ToString(const D3D12_RENDER_PASS_RENDER_TARGET_DESC& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "cpuDescriptor", toStringFlags, tabCount, tabSize, ToString(obj.cpuDescriptor, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "BeginningAccess", toStringFlags, tabCount, tabSize, ToString(obj.BeginningAccess, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "EndingAccess", toStringFlags, tabCount, tabSize, ToString(obj.EndingAccess, toStringFlags, tabCount, tabSize)); - } - ); -} - -std::string ToString(const D3D12_RENDER_PASS_DEPTH_STENCIL_DESC& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "cpuDescriptor", toStringFlags, tabCount, tabSize, ToString(obj.cpuDescriptor, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "DepthBeginningAccess", toStringFlags, tabCount, tabSize, ToString(obj.DepthBeginningAccess, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "StencilBeginningAccess", toStringFlags, tabCount, tabSize, ToString(obj.StencilBeginningAccess, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "DepthEndingAccess", toStringFlags, tabCount, tabSize, ToString(obj.DepthEndingAccess, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "StencilEndingAccess", toStringFlags, tabCount, tabSize, ToString(obj.StencilEndingAccess, toStringFlags, tabCount, tabSize)); - } - ); -} - -std::string ToString(const D3D12_DISPATCH_RAYS_DESC& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "RayGenerationShaderRecord", toStringFlags, tabCount, tabSize, ToString(obj.RayGenerationShaderRecord, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "MissShaderTable", toStringFlags, tabCount, tabSize, ToString(obj.MissShaderTable, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "HitGroupTable", toStringFlags, tabCount, tabSize, ToString(obj.HitGroupTable, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "CallableShaderTable", toStringFlags, tabCount, tabSize, ToString(obj.CallableShaderTable, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "Width", toStringFlags, tabCount, tabSize, ToString(obj.Width, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "Height", toStringFlags, tabCount, tabSize, ToString(obj.Height, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "Depth", toStringFlags, tabCount, tabSize, ToString(obj.Depth, toStringFlags, tabCount, tabSize)); - } - ); -} - -std::string ToString(const D3D12_SHADER_CACHE_SESSION_DESC& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "Identifier", toStringFlags, tabCount, tabSize, ToString(obj.Identifier, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "Mode", toStringFlags, tabCount, tabSize, Quote(ToString(obj.Mode))); - FieldToString(strStrm, false, "Flags", toStringFlags, tabCount, tabSize, Quote(ToString(obj.Flags))); - FieldToString(strStrm, false, "MaximumInMemoryCacheSizeBytes", toStringFlags, tabCount, tabSize, ToString(obj.MaximumInMemoryCacheSizeBytes, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "MaximumInMemoryCacheEntries", toStringFlags, tabCount, tabSize, ToString(obj.MaximumInMemoryCacheEntries, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "MaximumValueFileSizeBytes", toStringFlags, tabCount, tabSize, ToString(obj.MaximumValueFileSizeBytes, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "Version", toStringFlags, tabCount, tabSize, ToString(obj.Version, toStringFlags, tabCount, tabSize)); - } - ); -} - -std::string ToString(const D3D12_BARRIER_SUBRESOURCE_RANGE& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "IndexOrFirstMipLevel", toStringFlags, tabCount, tabSize, ToString(obj.IndexOrFirstMipLevel, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "NumMipLevels", toStringFlags, tabCount, tabSize, ToString(obj.NumMipLevels, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "FirstArraySlice", toStringFlags, tabCount, tabSize, ToString(obj.FirstArraySlice, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "NumArraySlices", toStringFlags, tabCount, tabSize, ToString(obj.NumArraySlices, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "FirstPlane", toStringFlags, tabCount, tabSize, ToString(obj.FirstPlane, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "NumPlanes", toStringFlags, tabCount, tabSize, ToString(obj.NumPlanes, toStringFlags, tabCount, tabSize)); - } - ); -} - -std::string ToString(const D3D12_GLOBAL_BARRIER& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "SyncBefore", toStringFlags, tabCount, tabSize, Quote(ToString(obj.SyncBefore))); - FieldToString(strStrm, false, "SyncAfter", toStringFlags, tabCount, tabSize, Quote(ToString(obj.SyncAfter))); - FieldToString(strStrm, false, "AccessBefore", toStringFlags, tabCount, tabSize, Quote(ToString(obj.AccessBefore))); - FieldToString(strStrm, false, "AccessAfter", toStringFlags, tabCount, tabSize, Quote(ToString(obj.AccessAfter))); - } - ); -} - -std::string ToString(const D3D12_TEXTURE_BARRIER& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "SyncBefore", toStringFlags, tabCount, tabSize, Quote(ToString(obj.SyncBefore))); - FieldToString(strStrm, false, "SyncAfter", toStringFlags, tabCount, tabSize, Quote(ToString(obj.SyncAfter))); - FieldToString(strStrm, false, "AccessBefore", toStringFlags, tabCount, tabSize, Quote(ToString(obj.AccessBefore))); - FieldToString(strStrm, false, "AccessAfter", toStringFlags, tabCount, tabSize, Quote(ToString(obj.AccessAfter))); - FieldToString(strStrm, false, "LayoutBefore", toStringFlags, tabCount, tabSize, Quote(ToString(obj.LayoutBefore))); - FieldToString(strStrm, false, "LayoutAfter", toStringFlags, tabCount, tabSize, Quote(ToString(obj.LayoutAfter))); - FieldToString(strStrm, false, "pResource", toStringFlags, tabCount, tabSize, HandleIdToString(obj.pResource)); - FieldToString(strStrm, false, "Subresources", toStringFlags, tabCount, tabSize, ToString(obj.Subresources, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "Flags", toStringFlags, tabCount, tabSize, Quote(ToString(obj.Flags))); - } - ); -} - -std::string ToString(const D3D12_BUFFER_BARRIER& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "SyncBefore", toStringFlags, tabCount, tabSize, Quote(ToString(obj.SyncBefore))); - FieldToString(strStrm, false, "SyncAfter", toStringFlags, tabCount, tabSize, Quote(ToString(obj.SyncAfter))); - FieldToString(strStrm, false, "AccessBefore", toStringFlags, tabCount, tabSize, Quote(ToString(obj.AccessBefore))); - FieldToString(strStrm, false, "AccessAfter", toStringFlags, tabCount, tabSize, Quote(ToString(obj.AccessAfter))); - FieldToString(strStrm, false, "pResource", toStringFlags, tabCount, tabSize, HandleIdToString(obj.pResource)); - FieldToString(strStrm, false, "Offset", toStringFlags, tabCount, tabSize, ToString(obj.Offset, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "Size", toStringFlags, tabCount, tabSize, ToString(obj.Size, toStringFlags, tabCount, tabSize)); - } - ); -} - -std::string ToString(const D3D12_SUBRESOURCE_DATA& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "pData", toStringFlags, tabCount, tabSize, HandleIdToString(obj.pData)); - FieldToString(strStrm, false, "RowPitch", toStringFlags, tabCount, tabSize, ToString(obj.RowPitch, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "SlicePitch", toStringFlags, tabCount, tabSize, ToString(obj.SlicePitch, toStringFlags, tabCount, tabSize)); - } - ); -} - -std::string ToString(const D3D12_MEMCPY_DEST& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "pData", toStringFlags, tabCount, tabSize, HandleIdToString(obj.pData)); - FieldToString(strStrm, false, "RowPitch", toStringFlags, tabCount, tabSize, ToString(obj.RowPitch, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "SlicePitch", toStringFlags, tabCount, tabSize, ToString(obj.SlicePitch, toStringFlags, tabCount, tabSize)); - } - ); -} - -std::string ToString(const D3D12_DEVICE_CONFIGURATION_DESC& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "Flags", toStringFlags, tabCount, tabSize, Quote(ToString(obj.Flags))); - FieldToString(strStrm, false, "GpuBasedValidationFlags", toStringFlags, tabCount, tabSize, ToString(obj.GpuBasedValidationFlags, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "SDKVersion", toStringFlags, tabCount, tabSize, ToString(obj.SDKVersion, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "NumEnabledExperimentalFeatures", toStringFlags, tabCount, tabSize, ToString(obj.NumEnabledExperimentalFeatures, toStringFlags, tabCount, tabSize)); - } - ); -} - -std::string ToString(const D3D12_DISPATCH_MESH_ARGUMENTS& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "ThreadGroupCountX", toStringFlags, tabCount, tabSize, ToString(obj.ThreadGroupCountX, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "ThreadGroupCountY", toStringFlags, tabCount, tabSize, ToString(obj.ThreadGroupCountY, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "ThreadGroupCountZ", toStringFlags, tabCount, tabSize, ToString(obj.ThreadGroupCountZ, toStringFlags, tabCount, tabSize)); - } - ); -} - -std::string ToString(const D3D_SHADER_MACRO& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "Name", toStringFlags, tabCount, tabSize, (obj.Name ? ToString(*obj.Name, toStringFlags, tabCount, tabSize) : "null")); - FieldToString(strStrm, false, "Definition", toStringFlags, tabCount, tabSize, (obj.Definition ? ToString(*obj.Definition, toStringFlags, tabCount, tabSize) : "null")); - } - ); -} - -std::string ToString(const D3D12_DEBUG_DEVICE_GPU_BASED_VALIDATION_SETTINGS& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "MaxMessagesPerCommandList", toStringFlags, tabCount, tabSize, ToString(obj.MaxMessagesPerCommandList, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "DefaultShaderPatchMode", toStringFlags, tabCount, tabSize, Quote(ToString(obj.DefaultShaderPatchMode))); - FieldToString(strStrm, false, "PipelineStateCreateFlags", toStringFlags, tabCount, tabSize, Quote(ToString(obj.PipelineStateCreateFlags))); - } - ); -} - -std::string ToString(const D3D12_DEBUG_DEVICE_GPU_SLOWDOWN_PERFORMANCE_FACTOR& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "SlowdownFactor", toStringFlags, tabCount, tabSize, ToString(obj.SlowdownFactor, toStringFlags, tabCount, tabSize)); - } - ); -} - -std::string ToString(const D3D12_DEBUG_COMMAND_LIST_GPU_BASED_VALIDATION_SETTINGS& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "ShaderPatchMode", toStringFlags, tabCount, tabSize, Quote(ToString(obj.ShaderPatchMode))); - } - ); -} - -std::string ToString(const D3D12_MESSAGE& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "Category", toStringFlags, tabCount, tabSize, Quote(ToString(obj.Category))); - FieldToString(strStrm, false, "Severity", toStringFlags, tabCount, tabSize, Quote(ToString(obj.Severity))); - FieldToString(strStrm, false, "ID", toStringFlags, tabCount, tabSize, Quote(ToString(obj.ID))); - FieldToString(strStrm, false, "pDescription", toStringFlags, tabCount, tabSize, (obj.pDescription ? ToString(*obj.pDescription, toStringFlags, tabCount, tabSize) : "null")); - FieldToString(strStrm, false, "DescriptionByteLength", toStringFlags, tabCount, tabSize, ToString(obj.DescriptionByteLength, toStringFlags, tabCount, tabSize)); - } - ); -} - -std::string ToString(const D3D12_INFO_QUEUE_FILTER_DESC& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "NumCategories", toStringFlags, tabCount, tabSize, ToString(obj.NumCategories, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "pCategoryList", toStringFlags, tabCount, tabSize, EnumArrayToString(obj.NumCategories, obj.pCategoryList, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "NumSeverities", toStringFlags, tabCount, tabSize, ToString(obj.NumSeverities, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "pSeverityList", toStringFlags, tabCount, tabSize, EnumArrayToString(obj.NumSeverities, obj.pSeverityList, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "NumIDs", toStringFlags, tabCount, tabSize, ToString(obj.NumIDs, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "pIDList", toStringFlags, tabCount, tabSize, EnumArrayToString(obj.NumIDs, obj.pIDList, toStringFlags, tabCount, tabSize)); - } - ); -} - -std::string ToString(const D3D12_INFO_QUEUE_FILTER& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "AllowList", toStringFlags, tabCount, tabSize, ToString(obj.AllowList, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "DenyList", toStringFlags, tabCount, tabSize, ToString(obj.DenyList, toStringFlags, tabCount, tabSize)); - } - ); -} - -std::string ToString(const tagRECT& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "left", toStringFlags, tabCount, tabSize, ToString(obj.left, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "top", toStringFlags, tabCount, tabSize, ToString(obj.top, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "right", toStringFlags, tabCount, tabSize, ToString(obj.right, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "bottom", toStringFlags, tabCount, tabSize, ToString(obj.bottom, toStringFlags, tabCount, tabSize)); - } - ); -} - -std::string ToString(const tagPOINT& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) -{ - return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) - { - FieldToString(strStrm, true, "x", toStringFlags, tabCount, tabSize, ToString(obj.x, toStringFlags, tabCount, tabSize)); - FieldToString(strStrm, false, "y", toStringFlags, tabCount, tabSize, ToString(obj.y, toStringFlags, tabCount, tabSize)); - } - ); -} - - -GFXRECON_END_NAMESPACE(util) -GFXRECON_END_NAMESPACE(gfxrecon) diff --git a/framework/generated/generated_dx12_struct_to_string.h b/framework/generated/generated_dx12_struct_to_string.h deleted file mode 100644 index 684260b508..0000000000 --- a/framework/generated/generated_dx12_struct_to_string.h +++ /dev/null @@ -1,313 +0,0 @@ -/* -** Copyright (c) 2021-2023 LunarG, Inc. -** -** Permission is hereby granted, free of charge, to any person obtaining a copy -** of this software and associated documentation files (the "Software"), to -** deal in the Software without restriction, including without limitation the -** rights to use, copy, modify, merge, publish, distribute, sublicense, and/or -** sell copies of the Software, and to permit persons to whom the Software is -** furnished to do so, subject to the following conditions: -** -** The above copyright notice and this permission notice shall be included in -** all copies or substantial portions of the Software. -** -** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -** IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -** FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -** AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -** LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -** FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS -** IN THE SOFTWARE. -*/ - -/* -** This file is generated from dx12_struct_to_string_header_generator.py. -** -*/ - -#ifndef GFXRECON_GENERATED_DX12_STRUCT_TO_STRING_H -#define GFXRECON_GENERATED_DX12_STRUCT_TO_STRING_H - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include "format/platform_types.h" -#include "util/defines.h" -#include "util/to_string.h" - -GFXRECON_BEGIN_NAMESPACE(gfxrecon) -GFXRECON_BEGIN_NAMESPACE(util) - -std::string ToString(const DXGI_FRAME_STATISTICS& obj, ToStringFlags toStringFlags = kToString_Default, uint32_t tabCount = kToStringDefaultTabCount, uint32_t tabSize = kToStringDefaultTabSize); -std::string ToString(const DXGI_MAPPED_RECT& obj, ToStringFlags toStringFlags = kToString_Default, uint32_t tabCount = kToStringDefaultTabCount, uint32_t tabSize = kToStringDefaultTabSize); -std::string ToString(const LUID& obj, ToStringFlags toStringFlags = kToString_Default, uint32_t tabCount = kToStringDefaultTabCount, uint32_t tabSize = kToStringDefaultTabSize); -std::string ToString(const DXGI_ADAPTER_DESC& obj, ToStringFlags toStringFlags = kToString_Default, uint32_t tabCount = kToStringDefaultTabCount, uint32_t tabSize = kToStringDefaultTabSize); -std::string ToString(const DXGI_OUTPUT_DESC& obj, ToStringFlags toStringFlags = kToString_Default, uint32_t tabCount = kToStringDefaultTabCount, uint32_t tabSize = kToStringDefaultTabSize); -std::string ToString(const DXGI_SHARED_RESOURCE& obj, ToStringFlags toStringFlags = kToString_Default, uint32_t tabCount = kToStringDefaultTabCount, uint32_t tabSize = kToStringDefaultTabSize); -std::string ToString(const DXGI_SURFACE_DESC& obj, ToStringFlags toStringFlags = kToString_Default, uint32_t tabCount = kToStringDefaultTabCount, uint32_t tabSize = kToStringDefaultTabSize); -std::string ToString(const DXGI_SWAP_CHAIN_DESC& obj, ToStringFlags toStringFlags = kToString_Default, uint32_t tabCount = kToStringDefaultTabCount, uint32_t tabSize = kToStringDefaultTabSize); -std::string ToString(const DXGI_ADAPTER_DESC1& obj, ToStringFlags toStringFlags = kToString_Default, uint32_t tabCount = kToStringDefaultTabCount, uint32_t tabSize = kToStringDefaultTabSize); -std::string ToString(const DXGI_OUTDUPL_MOVE_RECT& obj, ToStringFlags toStringFlags = kToString_Default, uint32_t tabCount = kToStringDefaultTabCount, uint32_t tabSize = kToStringDefaultTabSize); -std::string ToString(const DXGI_OUTDUPL_DESC& obj, ToStringFlags toStringFlags = kToString_Default, uint32_t tabCount = kToStringDefaultTabCount, uint32_t tabSize = kToStringDefaultTabSize); -std::string ToString(const DXGI_OUTDUPL_POINTER_POSITION& obj, ToStringFlags toStringFlags = kToString_Default, uint32_t tabCount = kToStringDefaultTabCount, uint32_t tabSize = kToStringDefaultTabSize); -std::string ToString(const DXGI_OUTDUPL_POINTER_SHAPE_INFO& obj, ToStringFlags toStringFlags = kToString_Default, uint32_t tabCount = kToStringDefaultTabCount, uint32_t tabSize = kToStringDefaultTabSize); -std::string ToString(const DXGI_OUTDUPL_FRAME_INFO& obj, ToStringFlags toStringFlags = kToString_Default, uint32_t tabCount = kToStringDefaultTabCount, uint32_t tabSize = kToStringDefaultTabSize); -std::string ToString(const DXGI_MODE_DESC1& obj, ToStringFlags toStringFlags = kToString_Default, uint32_t tabCount = kToStringDefaultTabCount, uint32_t tabSize = kToStringDefaultTabSize); -std::string ToString(const DXGI_SWAP_CHAIN_DESC1& obj, ToStringFlags toStringFlags = kToString_Default, uint32_t tabCount = kToStringDefaultTabCount, uint32_t tabSize = kToStringDefaultTabSize); -std::string ToString(const DXGI_SWAP_CHAIN_FULLSCREEN_DESC& obj, ToStringFlags toStringFlags = kToString_Default, uint32_t tabCount = kToStringDefaultTabCount, uint32_t tabSize = kToStringDefaultTabSize); -std::string ToString(const DXGI_PRESENT_PARAMETERS& obj, ToStringFlags toStringFlags = kToString_Default, uint32_t tabCount = kToStringDefaultTabCount, uint32_t tabSize = kToStringDefaultTabSize); -std::string ToString(const DXGI_ADAPTER_DESC2& obj, ToStringFlags toStringFlags = kToString_Default, uint32_t tabCount = kToStringDefaultTabCount, uint32_t tabSize = kToStringDefaultTabSize); -std::string ToString(const DXGI_MATRIX_3X2_F& obj, ToStringFlags toStringFlags = kToString_Default, uint32_t tabCount = kToStringDefaultTabCount, uint32_t tabSize = kToStringDefaultTabSize); -std::string ToString(const DXGI_DECODE_SWAP_CHAIN_DESC& obj, ToStringFlags toStringFlags = kToString_Default, uint32_t tabCount = kToStringDefaultTabCount, uint32_t tabSize = kToStringDefaultTabSize); -std::string ToString(const DXGI_FRAME_STATISTICS_MEDIA& obj, ToStringFlags toStringFlags = kToString_Default, uint32_t tabCount = kToStringDefaultTabCount, uint32_t tabSize = kToStringDefaultTabSize); -std::string ToString(const DXGI_QUERY_VIDEO_MEMORY_INFO& obj, ToStringFlags toStringFlags = kToString_Default, uint32_t tabCount = kToStringDefaultTabCount, uint32_t tabSize = kToStringDefaultTabSize); -std::string ToString(const DXGI_HDR_METADATA_HDR10& obj, ToStringFlags toStringFlags = kToString_Default, uint32_t tabCount = kToStringDefaultTabCount, uint32_t tabSize = kToStringDefaultTabSize); -std::string ToString(const DXGI_HDR_METADATA_HDR10PLUS& obj, ToStringFlags toStringFlags = kToString_Default, uint32_t tabCount = kToStringDefaultTabCount, uint32_t tabSize = kToStringDefaultTabSize); -std::string ToString(const DXGI_ADAPTER_DESC3& obj, ToStringFlags toStringFlags = kToString_Default, uint32_t tabCount = kToStringDefaultTabCount, uint32_t tabSize = kToStringDefaultTabSize); -std::string ToString(const DXGI_OUTPUT_DESC1& obj, ToStringFlags toStringFlags = kToString_Default, uint32_t tabCount = kToStringDefaultTabCount, uint32_t tabSize = kToStringDefaultTabSize); -std::string ToString(const DXGI_RATIONAL& obj, ToStringFlags toStringFlags = kToString_Default, uint32_t tabCount = kToStringDefaultTabCount, uint32_t tabSize = kToStringDefaultTabSize); -std::string ToString(const DXGI_SAMPLE_DESC& obj, ToStringFlags toStringFlags = kToString_Default, uint32_t tabCount = kToStringDefaultTabCount, uint32_t tabSize = kToStringDefaultTabSize); -std::string ToString(const DXGI_RGB& obj, ToStringFlags toStringFlags = kToString_Default, uint32_t tabCount = kToStringDefaultTabCount, uint32_t tabSize = kToStringDefaultTabSize); -std::string ToString(const D3DCOLORVALUE& obj, ToStringFlags toStringFlags = kToString_Default, uint32_t tabCount = kToStringDefaultTabCount, uint32_t tabSize = kToStringDefaultTabSize); -std::string ToString(const DXGI_GAMMA_CONTROL& obj, ToStringFlags toStringFlags = kToString_Default, uint32_t tabCount = kToStringDefaultTabCount, uint32_t tabSize = kToStringDefaultTabSize); -std::string ToString(const DXGI_GAMMA_CONTROL_CAPABILITIES& obj, ToStringFlags toStringFlags = kToString_Default, uint32_t tabCount = kToStringDefaultTabCount, uint32_t tabSize = kToStringDefaultTabSize); -std::string ToString(const DXGI_MODE_DESC& obj, ToStringFlags toStringFlags = kToString_Default, uint32_t tabCount = kToStringDefaultTabCount, uint32_t tabSize = kToStringDefaultTabSize); -std::string ToString(const DXGI_JPEG_DC_HUFFMAN_TABLE& obj, ToStringFlags toStringFlags = kToString_Default, uint32_t tabCount = kToStringDefaultTabCount, uint32_t tabSize = kToStringDefaultTabSize); -std::string ToString(const DXGI_JPEG_AC_HUFFMAN_TABLE& obj, ToStringFlags toStringFlags = kToString_Default, uint32_t tabCount = kToStringDefaultTabCount, uint32_t tabSize = kToStringDefaultTabSize); -std::string ToString(const DXGI_JPEG_QUANTIZATION_TABLE& obj, ToStringFlags toStringFlags = kToString_Default, uint32_t tabCount = kToStringDefaultTabCount, uint32_t tabSize = kToStringDefaultTabSize); -std::string ToString(const D3D12_COMMAND_QUEUE_DESC& obj, ToStringFlags toStringFlags = kToString_Default, uint32_t tabCount = kToStringDefaultTabCount, uint32_t tabSize = kToStringDefaultTabSize); -std::string ToString(const D3D12_INPUT_ELEMENT_DESC& obj, ToStringFlags toStringFlags = kToString_Default, uint32_t tabCount = kToStringDefaultTabCount, uint32_t tabSize = kToStringDefaultTabSize); -std::string ToString(const D3D12_SO_DECLARATION_ENTRY& obj, ToStringFlags toStringFlags = kToString_Default, uint32_t tabCount = kToStringDefaultTabCount, uint32_t tabSize = kToStringDefaultTabSize); -std::string ToString(const D3D12_VIEWPORT& obj, ToStringFlags toStringFlags = kToString_Default, uint32_t tabCount = kToStringDefaultTabCount, uint32_t tabSize = kToStringDefaultTabSize); -std::string ToString(const D3D12_BOX& obj, ToStringFlags toStringFlags = kToString_Default, uint32_t tabCount = kToStringDefaultTabCount, uint32_t tabSize = kToStringDefaultTabSize); -std::string ToString(const D3D12_DEPTH_STENCILOP_DESC& obj, ToStringFlags toStringFlags = kToString_Default, uint32_t tabCount = kToStringDefaultTabCount, uint32_t tabSize = kToStringDefaultTabSize); -std::string ToString(const D3D12_DEPTH_STENCIL_DESC& obj, ToStringFlags toStringFlags = kToString_Default, uint32_t tabCount = kToStringDefaultTabCount, uint32_t tabSize = kToStringDefaultTabSize); -std::string ToString(const D3D12_DEPTH_STENCIL_DESC1& obj, ToStringFlags toStringFlags = kToString_Default, uint32_t tabCount = kToStringDefaultTabCount, uint32_t tabSize = kToStringDefaultTabSize); -std::string ToString(const D3D12_DEPTH_STENCILOP_DESC1& obj, ToStringFlags toStringFlags = kToString_Default, uint32_t tabCount = kToStringDefaultTabCount, uint32_t tabSize = kToStringDefaultTabSize); -std::string ToString(const D3D12_DEPTH_STENCIL_DESC2& obj, ToStringFlags toStringFlags = kToString_Default, uint32_t tabCount = kToStringDefaultTabCount, uint32_t tabSize = kToStringDefaultTabSize); -std::string ToString(const D3D12_RENDER_TARGET_BLEND_DESC& obj, ToStringFlags toStringFlags = kToString_Default, uint32_t tabCount = kToStringDefaultTabCount, uint32_t tabSize = kToStringDefaultTabSize); -std::string ToString(const D3D12_BLEND_DESC& obj, ToStringFlags toStringFlags = kToString_Default, uint32_t tabCount = kToStringDefaultTabCount, uint32_t tabSize = kToStringDefaultTabSize); -std::string ToString(const D3D12_RASTERIZER_DESC& obj, ToStringFlags toStringFlags = kToString_Default, uint32_t tabCount = kToStringDefaultTabCount, uint32_t tabSize = kToStringDefaultTabSize); -std::string ToString(const D3D12_RASTERIZER_DESC1& obj, ToStringFlags toStringFlags = kToString_Default, uint32_t tabCount = kToStringDefaultTabCount, uint32_t tabSize = kToStringDefaultTabSize); -std::string ToString(const D3D12_RASTERIZER_DESC2& obj, ToStringFlags toStringFlags = kToString_Default, uint32_t tabCount = kToStringDefaultTabCount, uint32_t tabSize = kToStringDefaultTabSize); -std::string ToString(const D3D12_SHADER_BYTECODE& obj, ToStringFlags toStringFlags = kToString_Default, uint32_t tabCount = kToStringDefaultTabCount, uint32_t tabSize = kToStringDefaultTabSize); -std::string ToString(const D3D12_STREAM_OUTPUT_DESC& obj, ToStringFlags toStringFlags = kToString_Default, uint32_t tabCount = kToStringDefaultTabCount, uint32_t tabSize = kToStringDefaultTabSize); -std::string ToString(const D3D12_INPUT_LAYOUT_DESC& obj, ToStringFlags toStringFlags = kToString_Default, uint32_t tabCount = kToStringDefaultTabCount, uint32_t tabSize = kToStringDefaultTabSize); -std::string ToString(const D3D12_CACHED_PIPELINE_STATE& obj, ToStringFlags toStringFlags = kToString_Default, uint32_t tabCount = kToStringDefaultTabCount, uint32_t tabSize = kToStringDefaultTabSize); -std::string ToString(const D3D12_GRAPHICS_PIPELINE_STATE_DESC& obj, ToStringFlags toStringFlags = kToString_Default, uint32_t tabCount = kToStringDefaultTabCount, uint32_t tabSize = kToStringDefaultTabSize); -std::string ToString(const D3D12_COMPUTE_PIPELINE_STATE_DESC& obj, ToStringFlags toStringFlags = kToString_Default, uint32_t tabCount = kToStringDefaultTabCount, uint32_t tabSize = kToStringDefaultTabSize); -std::string ToString(const D3D12_RT_FORMAT_ARRAY& obj, ToStringFlags toStringFlags = kToString_Default, uint32_t tabCount = kToStringDefaultTabCount, uint32_t tabSize = kToStringDefaultTabSize); -std::string ToString(const D3D12_FEATURE_DATA_D3D12_OPTIONS& obj, ToStringFlags toStringFlags = kToString_Default, uint32_t tabCount = kToStringDefaultTabCount, uint32_t tabSize = kToStringDefaultTabSize); -std::string ToString(const D3D12_FEATURE_DATA_D3D12_OPTIONS1& obj, ToStringFlags toStringFlags = kToString_Default, uint32_t tabCount = kToStringDefaultTabCount, uint32_t tabSize = kToStringDefaultTabSize); -std::string ToString(const D3D12_FEATURE_DATA_D3D12_OPTIONS2& obj, ToStringFlags toStringFlags = kToString_Default, uint32_t tabCount = kToStringDefaultTabCount, uint32_t tabSize = kToStringDefaultTabSize); -std::string ToString(const D3D12_FEATURE_DATA_ROOT_SIGNATURE& obj, ToStringFlags toStringFlags = kToString_Default, uint32_t tabCount = kToStringDefaultTabCount, uint32_t tabSize = kToStringDefaultTabSize); -std::string ToString(const D3D12_FEATURE_DATA_ARCHITECTURE& obj, ToStringFlags toStringFlags = kToString_Default, uint32_t tabCount = kToStringDefaultTabCount, uint32_t tabSize = kToStringDefaultTabSize); -std::string ToString(const D3D12_FEATURE_DATA_ARCHITECTURE1& obj, ToStringFlags toStringFlags = kToString_Default, uint32_t tabCount = kToStringDefaultTabCount, uint32_t tabSize = kToStringDefaultTabSize); -std::string ToString(const D3D12_FEATURE_DATA_FEATURE_LEVELS& obj, ToStringFlags toStringFlags = kToString_Default, uint32_t tabCount = kToStringDefaultTabCount, uint32_t tabSize = kToStringDefaultTabSize); -std::string ToString(const D3D12_FEATURE_DATA_SHADER_MODEL& obj, ToStringFlags toStringFlags = kToString_Default, uint32_t tabCount = kToStringDefaultTabCount, uint32_t tabSize = kToStringDefaultTabSize); -std::string ToString(const D3D12_FEATURE_DATA_FORMAT_SUPPORT& obj, ToStringFlags toStringFlags = kToString_Default, uint32_t tabCount = kToStringDefaultTabCount, uint32_t tabSize = kToStringDefaultTabSize); -std::string ToString(const D3D12_FEATURE_DATA_MULTISAMPLE_QUALITY_LEVELS& obj, ToStringFlags toStringFlags = kToString_Default, uint32_t tabCount = kToStringDefaultTabCount, uint32_t tabSize = kToStringDefaultTabSize); -std::string ToString(const D3D12_FEATURE_DATA_FORMAT_INFO& obj, ToStringFlags toStringFlags = kToString_Default, uint32_t tabCount = kToStringDefaultTabCount, uint32_t tabSize = kToStringDefaultTabSize); -std::string ToString(const D3D12_FEATURE_DATA_GPU_VIRTUAL_ADDRESS_SUPPORT& obj, ToStringFlags toStringFlags = kToString_Default, uint32_t tabCount = kToStringDefaultTabCount, uint32_t tabSize = kToStringDefaultTabSize); -std::string ToString(const D3D12_FEATURE_DATA_SHADER_CACHE& obj, ToStringFlags toStringFlags = kToString_Default, uint32_t tabCount = kToStringDefaultTabCount, uint32_t tabSize = kToStringDefaultTabSize); -std::string ToString(const D3D12_FEATURE_DATA_COMMAND_QUEUE_PRIORITY& obj, ToStringFlags toStringFlags = kToString_Default, uint32_t tabCount = kToStringDefaultTabCount, uint32_t tabSize = kToStringDefaultTabSize); -std::string ToString(const D3D12_FEATURE_DATA_D3D12_OPTIONS3& obj, ToStringFlags toStringFlags = kToString_Default, uint32_t tabCount = kToStringDefaultTabCount, uint32_t tabSize = kToStringDefaultTabSize); -std::string ToString(const D3D12_FEATURE_DATA_EXISTING_HEAPS& obj, ToStringFlags toStringFlags = kToString_Default, uint32_t tabCount = kToStringDefaultTabCount, uint32_t tabSize = kToStringDefaultTabSize); -std::string ToString(const D3D12_FEATURE_DATA_DISPLAYABLE& obj, ToStringFlags toStringFlags = kToString_Default, uint32_t tabCount = kToStringDefaultTabCount, uint32_t tabSize = kToStringDefaultTabSize); -std::string ToString(const D3D12_FEATURE_DATA_D3D12_OPTIONS4& obj, ToStringFlags toStringFlags = kToString_Default, uint32_t tabCount = kToStringDefaultTabCount, uint32_t tabSize = kToStringDefaultTabSize); -std::string ToString(const D3D12_FEATURE_DATA_SERIALIZATION& obj, ToStringFlags toStringFlags = kToString_Default, uint32_t tabCount = kToStringDefaultTabCount, uint32_t tabSize = kToStringDefaultTabSize); -std::string ToString(const D3D12_FEATURE_DATA_CROSS_NODE& obj, ToStringFlags toStringFlags = kToString_Default, uint32_t tabCount = kToStringDefaultTabCount, uint32_t tabSize = kToStringDefaultTabSize); -std::string ToString(const D3D12_FEATURE_DATA_D3D12_OPTIONS5& obj, ToStringFlags toStringFlags = kToString_Default, uint32_t tabCount = kToStringDefaultTabCount, uint32_t tabSize = kToStringDefaultTabSize); -std::string ToString(const D3D12_FEATURE_DATA_D3D12_OPTIONS6& obj, ToStringFlags toStringFlags = kToString_Default, uint32_t tabCount = kToStringDefaultTabCount, uint32_t tabSize = kToStringDefaultTabSize); -std::string ToString(const D3D12_FEATURE_DATA_D3D12_OPTIONS7& obj, ToStringFlags toStringFlags = kToString_Default, uint32_t tabCount = kToStringDefaultTabCount, uint32_t tabSize = kToStringDefaultTabSize); -std::string ToString(const D3D12_FEATURE_DATA_QUERY_META_COMMAND& obj, ToStringFlags toStringFlags = kToString_Default, uint32_t tabCount = kToStringDefaultTabCount, uint32_t tabSize = kToStringDefaultTabSize); -std::string ToString(const D3D12_FEATURE_DATA_D3D12_OPTIONS8& obj, ToStringFlags toStringFlags = kToString_Default, uint32_t tabCount = kToStringDefaultTabCount, uint32_t tabSize = kToStringDefaultTabSize); -std::string ToString(const D3D12_FEATURE_DATA_D3D12_OPTIONS9& obj, ToStringFlags toStringFlags = kToString_Default, uint32_t tabCount = kToStringDefaultTabCount, uint32_t tabSize = kToStringDefaultTabSize); -std::string ToString(const D3D12_FEATURE_DATA_D3D12_OPTIONS10& obj, ToStringFlags toStringFlags = kToString_Default, uint32_t tabCount = kToStringDefaultTabCount, uint32_t tabSize = kToStringDefaultTabSize); -std::string ToString(const D3D12_FEATURE_DATA_D3D12_OPTIONS11& obj, ToStringFlags toStringFlags = kToString_Default, uint32_t tabCount = kToStringDefaultTabCount, uint32_t tabSize = kToStringDefaultTabSize); -std::string ToString(const D3D12_FEATURE_DATA_D3D12_OPTIONS12& obj, ToStringFlags toStringFlags = kToString_Default, uint32_t tabCount = kToStringDefaultTabCount, uint32_t tabSize = kToStringDefaultTabSize); -std::string ToString(const D3D12_FEATURE_DATA_D3D12_OPTIONS13& obj, ToStringFlags toStringFlags = kToString_Default, uint32_t tabCount = kToStringDefaultTabCount, uint32_t tabSize = kToStringDefaultTabSize); -std::string ToString(const D3D12_FEATURE_DATA_D3D12_OPTIONS14& obj, ToStringFlags toStringFlags = kToString_Default, uint32_t tabCount = kToStringDefaultTabCount, uint32_t tabSize = kToStringDefaultTabSize); -std::string ToString(const D3D12_FEATURE_DATA_D3D12_OPTIONS15& obj, ToStringFlags toStringFlags = kToString_Default, uint32_t tabCount = kToStringDefaultTabCount, uint32_t tabSize = kToStringDefaultTabSize); -std::string ToString(const D3D12_FEATURE_DATA_D3D12_OPTIONS16& obj, ToStringFlags toStringFlags = kToString_Default, uint32_t tabCount = kToStringDefaultTabCount, uint32_t tabSize = kToStringDefaultTabSize); -std::string ToString(const D3D12_FEATURE_DATA_D3D12_OPTIONS17& obj, ToStringFlags toStringFlags = kToString_Default, uint32_t tabCount = kToStringDefaultTabCount, uint32_t tabSize = kToStringDefaultTabSize); -std::string ToString(const D3D12_FEATURE_DATA_D3D12_OPTIONS18& obj, ToStringFlags toStringFlags = kToString_Default, uint32_t tabCount = kToStringDefaultTabCount, uint32_t tabSize = kToStringDefaultTabSize); -std::string ToString(const D3D12_FEATURE_DATA_D3D12_OPTIONS19& obj, ToStringFlags toStringFlags = kToString_Default, uint32_t tabCount = kToStringDefaultTabCount, uint32_t tabSize = kToStringDefaultTabSize); -std::string ToString(const D3D12_RESOURCE_ALLOCATION_INFO& obj, ToStringFlags toStringFlags = kToString_Default, uint32_t tabCount = kToStringDefaultTabCount, uint32_t tabSize = kToStringDefaultTabSize); -std::string ToString(const D3D12_RESOURCE_ALLOCATION_INFO1& obj, ToStringFlags toStringFlags = kToString_Default, uint32_t tabCount = kToStringDefaultTabCount, uint32_t tabSize = kToStringDefaultTabSize); -std::string ToString(const D3D12_HEAP_PROPERTIES& obj, ToStringFlags toStringFlags = kToString_Default, uint32_t tabCount = kToStringDefaultTabCount, uint32_t tabSize = kToStringDefaultTabSize); -std::string ToString(const D3D12_HEAP_DESC& obj, ToStringFlags toStringFlags = kToString_Default, uint32_t tabCount = kToStringDefaultTabCount, uint32_t tabSize = kToStringDefaultTabSize); -std::string ToString(const D3D12_MIP_REGION& obj, ToStringFlags toStringFlags = kToString_Default, uint32_t tabCount = kToStringDefaultTabCount, uint32_t tabSize = kToStringDefaultTabSize); -std::string ToString(const D3D12_RESOURCE_DESC& obj, ToStringFlags toStringFlags = kToString_Default, uint32_t tabCount = kToStringDefaultTabCount, uint32_t tabSize = kToStringDefaultTabSize); -std::string ToString(const D3D12_RESOURCE_DESC1& obj, ToStringFlags toStringFlags = kToString_Default, uint32_t tabCount = kToStringDefaultTabCount, uint32_t tabSize = kToStringDefaultTabSize); -std::string ToString(const D3D12_DEPTH_STENCIL_VALUE& obj, ToStringFlags toStringFlags = kToString_Default, uint32_t tabCount = kToStringDefaultTabCount, uint32_t tabSize = kToStringDefaultTabSize); -std::string ToString(const D3D12_RANGE& obj, ToStringFlags toStringFlags = kToString_Default, uint32_t tabCount = kToStringDefaultTabCount, uint32_t tabSize = kToStringDefaultTabSize); -std::string ToString(const D3D12_RANGE_UINT64& obj, ToStringFlags toStringFlags = kToString_Default, uint32_t tabCount = kToStringDefaultTabCount, uint32_t tabSize = kToStringDefaultTabSize); -std::string ToString(const D3D12_SUBRESOURCE_RANGE_UINT64& obj, ToStringFlags toStringFlags = kToString_Default, uint32_t tabCount = kToStringDefaultTabCount, uint32_t tabSize = kToStringDefaultTabSize); -std::string ToString(const D3D12_SUBRESOURCE_INFO& obj, ToStringFlags toStringFlags = kToString_Default, uint32_t tabCount = kToStringDefaultTabCount, uint32_t tabSize = kToStringDefaultTabSize); -std::string ToString(const D3D12_TILED_RESOURCE_COORDINATE& obj, ToStringFlags toStringFlags = kToString_Default, uint32_t tabCount = kToStringDefaultTabCount, uint32_t tabSize = kToStringDefaultTabSize); -std::string ToString(const D3D12_TILE_REGION_SIZE& obj, ToStringFlags toStringFlags = kToString_Default, uint32_t tabCount = kToStringDefaultTabCount, uint32_t tabSize = kToStringDefaultTabSize); -std::string ToString(const D3D12_SUBRESOURCE_TILING& obj, ToStringFlags toStringFlags = kToString_Default, uint32_t tabCount = kToStringDefaultTabCount, uint32_t tabSize = kToStringDefaultTabSize); -std::string ToString(const D3D12_TILE_SHAPE& obj, ToStringFlags toStringFlags = kToString_Default, uint32_t tabCount = kToStringDefaultTabCount, uint32_t tabSize = kToStringDefaultTabSize); -std::string ToString(const D3D12_PACKED_MIP_INFO& obj, ToStringFlags toStringFlags = kToString_Default, uint32_t tabCount = kToStringDefaultTabCount, uint32_t tabSize = kToStringDefaultTabSize); -std::string ToString(const D3D12_RESOURCE_TRANSITION_BARRIER& obj, ToStringFlags toStringFlags = kToString_Default, uint32_t tabCount = kToStringDefaultTabCount, uint32_t tabSize = kToStringDefaultTabSize); -std::string ToString(const D3D12_RESOURCE_ALIASING_BARRIER& obj, ToStringFlags toStringFlags = kToString_Default, uint32_t tabCount = kToStringDefaultTabCount, uint32_t tabSize = kToStringDefaultTabSize); -std::string ToString(const D3D12_RESOURCE_UAV_BARRIER& obj, ToStringFlags toStringFlags = kToString_Default, uint32_t tabCount = kToStringDefaultTabCount, uint32_t tabSize = kToStringDefaultTabSize); -std::string ToString(const D3D12_SUBRESOURCE_FOOTPRINT& obj, ToStringFlags toStringFlags = kToString_Default, uint32_t tabCount = kToStringDefaultTabCount, uint32_t tabSize = kToStringDefaultTabSize); -std::string ToString(const D3D12_PLACED_SUBRESOURCE_FOOTPRINT& obj, ToStringFlags toStringFlags = kToString_Default, uint32_t tabCount = kToStringDefaultTabCount, uint32_t tabSize = kToStringDefaultTabSize); -std::string ToString(const D3D12_SAMPLE_POSITION& obj, ToStringFlags toStringFlags = kToString_Default, uint32_t tabCount = kToStringDefaultTabCount, uint32_t tabSize = kToStringDefaultTabSize); -std::string ToString(const D3D12_VIEW_INSTANCE_LOCATION& obj, ToStringFlags toStringFlags = kToString_Default, uint32_t tabCount = kToStringDefaultTabCount, uint32_t tabSize = kToStringDefaultTabSize); -std::string ToString(const D3D12_VIEW_INSTANCING_DESC& obj, ToStringFlags toStringFlags = kToString_Default, uint32_t tabCount = kToStringDefaultTabCount, uint32_t tabSize = kToStringDefaultTabSize); -std::string ToString(const D3D12_BUFFER_SRV& obj, ToStringFlags toStringFlags = kToString_Default, uint32_t tabCount = kToStringDefaultTabCount, uint32_t tabSize = kToStringDefaultTabSize); -std::string ToString(const D3D12_TEX1D_SRV& obj, ToStringFlags toStringFlags = kToString_Default, uint32_t tabCount = kToStringDefaultTabCount, uint32_t tabSize = kToStringDefaultTabSize); -std::string ToString(const D3D12_TEX1D_ARRAY_SRV& obj, ToStringFlags toStringFlags = kToString_Default, uint32_t tabCount = kToStringDefaultTabCount, uint32_t tabSize = kToStringDefaultTabSize); -std::string ToString(const D3D12_TEX2D_SRV& obj, ToStringFlags toStringFlags = kToString_Default, uint32_t tabCount = kToStringDefaultTabCount, uint32_t tabSize = kToStringDefaultTabSize); -std::string ToString(const D3D12_TEX2D_ARRAY_SRV& obj, ToStringFlags toStringFlags = kToString_Default, uint32_t tabCount = kToStringDefaultTabCount, uint32_t tabSize = kToStringDefaultTabSize); -std::string ToString(const D3D12_TEX3D_SRV& obj, ToStringFlags toStringFlags = kToString_Default, uint32_t tabCount = kToStringDefaultTabCount, uint32_t tabSize = kToStringDefaultTabSize); -std::string ToString(const D3D12_TEXCUBE_SRV& obj, ToStringFlags toStringFlags = kToString_Default, uint32_t tabCount = kToStringDefaultTabCount, uint32_t tabSize = kToStringDefaultTabSize); -std::string ToString(const D3D12_TEXCUBE_ARRAY_SRV& obj, ToStringFlags toStringFlags = kToString_Default, uint32_t tabCount = kToStringDefaultTabCount, uint32_t tabSize = kToStringDefaultTabSize); -std::string ToString(const D3D12_TEX2DMS_SRV& obj, ToStringFlags toStringFlags = kToString_Default, uint32_t tabCount = kToStringDefaultTabCount, uint32_t tabSize = kToStringDefaultTabSize); -std::string ToString(const D3D12_TEX2DMS_ARRAY_SRV& obj, ToStringFlags toStringFlags = kToString_Default, uint32_t tabCount = kToStringDefaultTabCount, uint32_t tabSize = kToStringDefaultTabSize); -std::string ToString(const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_SRV& obj, ToStringFlags toStringFlags = kToString_Default, uint32_t tabCount = kToStringDefaultTabCount, uint32_t tabSize = kToStringDefaultTabSize); -std::string ToString(const D3D12_CONSTANT_BUFFER_VIEW_DESC& obj, ToStringFlags toStringFlags = kToString_Default, uint32_t tabCount = kToStringDefaultTabCount, uint32_t tabSize = kToStringDefaultTabSize); -std::string ToString(const D3D12_SAMPLER_DESC& obj, ToStringFlags toStringFlags = kToString_Default, uint32_t tabCount = kToStringDefaultTabCount, uint32_t tabSize = kToStringDefaultTabSize); -std::string ToString(const D3D12_BUFFER_UAV& obj, ToStringFlags toStringFlags = kToString_Default, uint32_t tabCount = kToStringDefaultTabCount, uint32_t tabSize = kToStringDefaultTabSize); -std::string ToString(const D3D12_TEX1D_UAV& obj, ToStringFlags toStringFlags = kToString_Default, uint32_t tabCount = kToStringDefaultTabCount, uint32_t tabSize = kToStringDefaultTabSize); -std::string ToString(const D3D12_TEX1D_ARRAY_UAV& obj, ToStringFlags toStringFlags = kToString_Default, uint32_t tabCount = kToStringDefaultTabCount, uint32_t tabSize = kToStringDefaultTabSize); -std::string ToString(const D3D12_TEX2D_UAV& obj, ToStringFlags toStringFlags = kToString_Default, uint32_t tabCount = kToStringDefaultTabCount, uint32_t tabSize = kToStringDefaultTabSize); -std::string ToString(const D3D12_TEX2D_ARRAY_UAV& obj, ToStringFlags toStringFlags = kToString_Default, uint32_t tabCount = kToStringDefaultTabCount, uint32_t tabSize = kToStringDefaultTabSize); -std::string ToString(const D3D12_TEX2DMS_UAV& obj, ToStringFlags toStringFlags = kToString_Default, uint32_t tabCount = kToStringDefaultTabCount, uint32_t tabSize = kToStringDefaultTabSize); -std::string ToString(const D3D12_TEX2DMS_ARRAY_UAV& obj, ToStringFlags toStringFlags = kToString_Default, uint32_t tabCount = kToStringDefaultTabCount, uint32_t tabSize = kToStringDefaultTabSize); -std::string ToString(const D3D12_TEX3D_UAV& obj, ToStringFlags toStringFlags = kToString_Default, uint32_t tabCount = kToStringDefaultTabCount, uint32_t tabSize = kToStringDefaultTabSize); -std::string ToString(const D3D12_BUFFER_RTV& obj, ToStringFlags toStringFlags = kToString_Default, uint32_t tabCount = kToStringDefaultTabCount, uint32_t tabSize = kToStringDefaultTabSize); -std::string ToString(const D3D12_TEX1D_RTV& obj, ToStringFlags toStringFlags = kToString_Default, uint32_t tabCount = kToStringDefaultTabCount, uint32_t tabSize = kToStringDefaultTabSize); -std::string ToString(const D3D12_TEX1D_ARRAY_RTV& obj, ToStringFlags toStringFlags = kToString_Default, uint32_t tabCount = kToStringDefaultTabCount, uint32_t tabSize = kToStringDefaultTabSize); -std::string ToString(const D3D12_TEX2D_RTV& obj, ToStringFlags toStringFlags = kToString_Default, uint32_t tabCount = kToStringDefaultTabCount, uint32_t tabSize = kToStringDefaultTabSize); -std::string ToString(const D3D12_TEX2DMS_RTV& obj, ToStringFlags toStringFlags = kToString_Default, uint32_t tabCount = kToStringDefaultTabCount, uint32_t tabSize = kToStringDefaultTabSize); -std::string ToString(const D3D12_TEX2D_ARRAY_RTV& obj, ToStringFlags toStringFlags = kToString_Default, uint32_t tabCount = kToStringDefaultTabCount, uint32_t tabSize = kToStringDefaultTabSize); -std::string ToString(const D3D12_TEX2DMS_ARRAY_RTV& obj, ToStringFlags toStringFlags = kToString_Default, uint32_t tabCount = kToStringDefaultTabCount, uint32_t tabSize = kToStringDefaultTabSize); -std::string ToString(const D3D12_TEX3D_RTV& obj, ToStringFlags toStringFlags = kToString_Default, uint32_t tabCount = kToStringDefaultTabCount, uint32_t tabSize = kToStringDefaultTabSize); -std::string ToString(const D3D12_TEX1D_DSV& obj, ToStringFlags toStringFlags = kToString_Default, uint32_t tabCount = kToStringDefaultTabCount, uint32_t tabSize = kToStringDefaultTabSize); -std::string ToString(const D3D12_TEX1D_ARRAY_DSV& obj, ToStringFlags toStringFlags = kToString_Default, uint32_t tabCount = kToStringDefaultTabCount, uint32_t tabSize = kToStringDefaultTabSize); -std::string ToString(const D3D12_TEX2D_DSV& obj, ToStringFlags toStringFlags = kToString_Default, uint32_t tabCount = kToStringDefaultTabCount, uint32_t tabSize = kToStringDefaultTabSize); -std::string ToString(const D3D12_TEX2D_ARRAY_DSV& obj, ToStringFlags toStringFlags = kToString_Default, uint32_t tabCount = kToStringDefaultTabCount, uint32_t tabSize = kToStringDefaultTabSize); -std::string ToString(const D3D12_TEX2DMS_DSV& obj, ToStringFlags toStringFlags = kToString_Default, uint32_t tabCount = kToStringDefaultTabCount, uint32_t tabSize = kToStringDefaultTabSize); -std::string ToString(const D3D12_TEX2DMS_ARRAY_DSV& obj, ToStringFlags toStringFlags = kToString_Default, uint32_t tabCount = kToStringDefaultTabCount, uint32_t tabSize = kToStringDefaultTabSize); -std::string ToString(const D3D12_DESCRIPTOR_HEAP_DESC& obj, ToStringFlags toStringFlags = kToString_Default, uint32_t tabCount = kToStringDefaultTabCount, uint32_t tabSize = kToStringDefaultTabSize); -std::string ToString(const D3D12_DESCRIPTOR_RANGE& obj, ToStringFlags toStringFlags = kToString_Default, uint32_t tabCount = kToStringDefaultTabCount, uint32_t tabSize = kToStringDefaultTabSize); -std::string ToString(const D3D12_ROOT_DESCRIPTOR_TABLE& obj, ToStringFlags toStringFlags = kToString_Default, uint32_t tabCount = kToStringDefaultTabCount, uint32_t tabSize = kToStringDefaultTabSize); -std::string ToString(const D3D12_ROOT_CONSTANTS& obj, ToStringFlags toStringFlags = kToString_Default, uint32_t tabCount = kToStringDefaultTabCount, uint32_t tabSize = kToStringDefaultTabSize); -std::string ToString(const D3D12_ROOT_DESCRIPTOR& obj, ToStringFlags toStringFlags = kToString_Default, uint32_t tabCount = kToStringDefaultTabCount, uint32_t tabSize = kToStringDefaultTabSize); -std::string ToString(const D3D12_STATIC_SAMPLER_DESC& obj, ToStringFlags toStringFlags = kToString_Default, uint32_t tabCount = kToStringDefaultTabCount, uint32_t tabSize = kToStringDefaultTabSize); -std::string ToString(const D3D12_STATIC_SAMPLER_DESC1& obj, ToStringFlags toStringFlags = kToString_Default, uint32_t tabCount = kToStringDefaultTabCount, uint32_t tabSize = kToStringDefaultTabSize); -std::string ToString(const D3D12_ROOT_SIGNATURE_DESC& obj, ToStringFlags toStringFlags = kToString_Default, uint32_t tabCount = kToStringDefaultTabCount, uint32_t tabSize = kToStringDefaultTabSize); -std::string ToString(const D3D12_DESCRIPTOR_RANGE1& obj, ToStringFlags toStringFlags = kToString_Default, uint32_t tabCount = kToStringDefaultTabCount, uint32_t tabSize = kToStringDefaultTabSize); -std::string ToString(const D3D12_ROOT_DESCRIPTOR_TABLE1& obj, ToStringFlags toStringFlags = kToString_Default, uint32_t tabCount = kToStringDefaultTabCount, uint32_t tabSize = kToStringDefaultTabSize); -std::string ToString(const D3D12_ROOT_DESCRIPTOR1& obj, ToStringFlags toStringFlags = kToString_Default, uint32_t tabCount = kToStringDefaultTabCount, uint32_t tabSize = kToStringDefaultTabSize); -std::string ToString(const D3D12_ROOT_SIGNATURE_DESC1& obj, ToStringFlags toStringFlags = kToString_Default, uint32_t tabCount = kToStringDefaultTabCount, uint32_t tabSize = kToStringDefaultTabSize); -std::string ToString(const D3D12_ROOT_SIGNATURE_DESC2& obj, ToStringFlags toStringFlags = kToString_Default, uint32_t tabCount = kToStringDefaultTabCount, uint32_t tabSize = kToStringDefaultTabSize); -std::string ToString(const D3D12_DISCARD_REGION& obj, ToStringFlags toStringFlags = kToString_Default, uint32_t tabCount = kToStringDefaultTabCount, uint32_t tabSize = kToStringDefaultTabSize); -std::string ToString(const D3D12_QUERY_HEAP_DESC& obj, ToStringFlags toStringFlags = kToString_Default, uint32_t tabCount = kToStringDefaultTabCount, uint32_t tabSize = kToStringDefaultTabSize); -std::string ToString(const D3D12_QUERY_DATA_PIPELINE_STATISTICS& obj, ToStringFlags toStringFlags = kToString_Default, uint32_t tabCount = kToStringDefaultTabCount, uint32_t tabSize = kToStringDefaultTabSize); -std::string ToString(const D3D12_QUERY_DATA_PIPELINE_STATISTICS1& obj, ToStringFlags toStringFlags = kToString_Default, uint32_t tabCount = kToStringDefaultTabCount, uint32_t tabSize = kToStringDefaultTabSize); -std::string ToString(const D3D12_QUERY_DATA_SO_STATISTICS& obj, ToStringFlags toStringFlags = kToString_Default, uint32_t tabCount = kToStringDefaultTabCount, uint32_t tabSize = kToStringDefaultTabSize); -std::string ToString(const D3D12_STREAM_OUTPUT_BUFFER_VIEW& obj, ToStringFlags toStringFlags = kToString_Default, uint32_t tabCount = kToStringDefaultTabCount, uint32_t tabSize = kToStringDefaultTabSize); -std::string ToString(const D3D12_DRAW_ARGUMENTS& obj, ToStringFlags toStringFlags = kToString_Default, uint32_t tabCount = kToStringDefaultTabCount, uint32_t tabSize = kToStringDefaultTabSize); -std::string ToString(const D3D12_DRAW_INDEXED_ARGUMENTS& obj, ToStringFlags toStringFlags = kToString_Default, uint32_t tabCount = kToStringDefaultTabCount, uint32_t tabSize = kToStringDefaultTabSize); -std::string ToString(const D3D12_DISPATCH_ARGUMENTS& obj, ToStringFlags toStringFlags = kToString_Default, uint32_t tabCount = kToStringDefaultTabCount, uint32_t tabSize = kToStringDefaultTabSize); -std::string ToString(const D3D12_VERTEX_BUFFER_VIEW& obj, ToStringFlags toStringFlags = kToString_Default, uint32_t tabCount = kToStringDefaultTabCount, uint32_t tabSize = kToStringDefaultTabSize); -std::string ToString(const D3D12_INDEX_BUFFER_VIEW& obj, ToStringFlags toStringFlags = kToString_Default, uint32_t tabCount = kToStringDefaultTabCount, uint32_t tabSize = kToStringDefaultTabSize); -std::string ToString(const D3D12_COMMAND_SIGNATURE_DESC& obj, ToStringFlags toStringFlags = kToString_Default, uint32_t tabCount = kToStringDefaultTabCount, uint32_t tabSize = kToStringDefaultTabSize); -std::string ToString(const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER& obj, ToStringFlags toStringFlags = kToString_Default, uint32_t tabCount = kToStringDefaultTabCount, uint32_t tabSize = kToStringDefaultTabSize); -std::string ToString(const D3D12_FEATURE_DATA_PROTECTED_RESOURCE_SESSION_SUPPORT& obj, ToStringFlags toStringFlags = kToString_Default, uint32_t tabCount = kToStringDefaultTabCount, uint32_t tabSize = kToStringDefaultTabSize); -std::string ToString(const D3D12_PROTECTED_RESOURCE_SESSION_DESC& obj, ToStringFlags toStringFlags = kToString_Default, uint32_t tabCount = kToStringDefaultTabCount, uint32_t tabSize = kToStringDefaultTabSize); -std::string ToString(const D3D12_META_COMMAND_PARAMETER_DESC& obj, ToStringFlags toStringFlags = kToString_Default, uint32_t tabCount = kToStringDefaultTabCount, uint32_t tabSize = kToStringDefaultTabSize); -std::string ToString(const D3D12_META_COMMAND_DESC& obj, ToStringFlags toStringFlags = kToString_Default, uint32_t tabCount = kToStringDefaultTabCount, uint32_t tabSize = kToStringDefaultTabSize); -std::string ToString(const D3D12_STATE_OBJECT_CONFIG& obj, ToStringFlags toStringFlags = kToString_Default, uint32_t tabCount = kToStringDefaultTabCount, uint32_t tabSize = kToStringDefaultTabSize); -std::string ToString(const D3D12_GLOBAL_ROOT_SIGNATURE& obj, ToStringFlags toStringFlags = kToString_Default, uint32_t tabCount = kToStringDefaultTabCount, uint32_t tabSize = kToStringDefaultTabSize); -std::string ToString(const D3D12_LOCAL_ROOT_SIGNATURE& obj, ToStringFlags toStringFlags = kToString_Default, uint32_t tabCount = kToStringDefaultTabCount, uint32_t tabSize = kToStringDefaultTabSize); -std::string ToString(const D3D12_NODE_MASK& obj, ToStringFlags toStringFlags = kToString_Default, uint32_t tabCount = kToStringDefaultTabCount, uint32_t tabSize = kToStringDefaultTabSize); -std::string ToString(const D3D12_EXPORT_DESC& obj, ToStringFlags toStringFlags = kToString_Default, uint32_t tabCount = kToStringDefaultTabCount, uint32_t tabSize = kToStringDefaultTabSize); -std::string ToString(const D3D12_DXIL_LIBRARY_DESC& obj, ToStringFlags toStringFlags = kToString_Default, uint32_t tabCount = kToStringDefaultTabCount, uint32_t tabSize = kToStringDefaultTabSize); -std::string ToString(const D3D12_EXISTING_COLLECTION_DESC& obj, ToStringFlags toStringFlags = kToString_Default, uint32_t tabCount = kToStringDefaultTabCount, uint32_t tabSize = kToStringDefaultTabSize); -std::string ToString(const D3D12_HIT_GROUP_DESC& obj, ToStringFlags toStringFlags = kToString_Default, uint32_t tabCount = kToStringDefaultTabCount, uint32_t tabSize = kToStringDefaultTabSize); -std::string ToString(const D3D12_RAYTRACING_SHADER_CONFIG& obj, ToStringFlags toStringFlags = kToString_Default, uint32_t tabCount = kToStringDefaultTabCount, uint32_t tabSize = kToStringDefaultTabSize); -std::string ToString(const D3D12_RAYTRACING_PIPELINE_CONFIG& obj, ToStringFlags toStringFlags = kToString_Default, uint32_t tabCount = kToStringDefaultTabCount, uint32_t tabSize = kToStringDefaultTabSize); -std::string ToString(const D3D12_RAYTRACING_PIPELINE_CONFIG1& obj, ToStringFlags toStringFlags = kToString_Default, uint32_t tabCount = kToStringDefaultTabCount, uint32_t tabSize = kToStringDefaultTabSize); -std::string ToString(const D3D12_GPU_VIRTUAL_ADDRESS_AND_STRIDE& obj, ToStringFlags toStringFlags = kToString_Default, uint32_t tabCount = kToStringDefaultTabCount, uint32_t tabSize = kToStringDefaultTabSize); -std::string ToString(const D3D12_GPU_VIRTUAL_ADDRESS_RANGE& obj, ToStringFlags toStringFlags = kToString_Default, uint32_t tabCount = kToStringDefaultTabCount, uint32_t tabSize = kToStringDefaultTabSize); -std::string ToString(const D3D12_GPU_VIRTUAL_ADDRESS_RANGE_AND_STRIDE& obj, ToStringFlags toStringFlags = kToString_Default, uint32_t tabCount = kToStringDefaultTabCount, uint32_t tabSize = kToStringDefaultTabSize); -std::string ToString(const D3D12_RAYTRACING_GEOMETRY_TRIANGLES_DESC& obj, ToStringFlags toStringFlags = kToString_Default, uint32_t tabCount = kToStringDefaultTabCount, uint32_t tabSize = kToStringDefaultTabSize); -std::string ToString(const D3D12_RAYTRACING_AABB& obj, ToStringFlags toStringFlags = kToString_Default, uint32_t tabCount = kToStringDefaultTabCount, uint32_t tabSize = kToStringDefaultTabSize); -std::string ToString(const D3D12_RAYTRACING_GEOMETRY_AABBS_DESC& obj, ToStringFlags toStringFlags = kToString_Default, uint32_t tabCount = kToStringDefaultTabCount, uint32_t tabSize = kToStringDefaultTabSize); -std::string ToString(const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC& obj, ToStringFlags toStringFlags = kToString_Default, uint32_t tabCount = kToStringDefaultTabCount, uint32_t tabSize = kToStringDefaultTabSize); -std::string ToString(const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_COMPACTED_SIZE_DESC& obj, ToStringFlags toStringFlags = kToString_Default, uint32_t tabCount = kToStringDefaultTabCount, uint32_t tabSize = kToStringDefaultTabSize); -std::string ToString(const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_TOOLS_VISUALIZATION_DESC& obj, ToStringFlags toStringFlags = kToString_Default, uint32_t tabCount = kToStringDefaultTabCount, uint32_t tabSize = kToStringDefaultTabSize); -std::string ToString(const D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_TOOLS_VISUALIZATION_HEADER& obj, ToStringFlags toStringFlags = kToString_Default, uint32_t tabCount = kToStringDefaultTabCount, uint32_t tabSize = kToStringDefaultTabSize); -std::string ToString(const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_SERIALIZATION_DESC& obj, ToStringFlags toStringFlags = kToString_Default, uint32_t tabCount = kToStringDefaultTabCount, uint32_t tabSize = kToStringDefaultTabSize); -std::string ToString(const D3D12_SERIALIZED_DATA_DRIVER_MATCHING_IDENTIFIER& obj, ToStringFlags toStringFlags = kToString_Default, uint32_t tabCount = kToStringDefaultTabCount, uint32_t tabSize = kToStringDefaultTabSize); -std::string ToString(const D3D12_SERIALIZED_RAYTRACING_ACCELERATION_STRUCTURE_HEADER& obj, ToStringFlags toStringFlags = kToString_Default, uint32_t tabCount = kToStringDefaultTabCount, uint32_t tabSize = kToStringDefaultTabSize); -std::string ToString(const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_CURRENT_SIZE_DESC& obj, ToStringFlags toStringFlags = kToString_Default, uint32_t tabCount = kToStringDefaultTabCount, uint32_t tabSize = kToStringDefaultTabSize); -std::string ToString(const D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_DESC& obj, ToStringFlags toStringFlags = kToString_Default, uint32_t tabCount = kToStringDefaultTabCount, uint32_t tabSize = kToStringDefaultTabSize); -std::string ToString(const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_PREBUILD_INFO& obj, ToStringFlags toStringFlags = kToString_Default, uint32_t tabCount = kToStringDefaultTabCount, uint32_t tabSize = kToStringDefaultTabSize); -std::string ToString(const D3D12_AUTO_BREADCRUMB_NODE& obj, ToStringFlags toStringFlags = kToString_Default, uint32_t tabCount = kToStringDefaultTabCount, uint32_t tabSize = kToStringDefaultTabSize); -std::string ToString(const D3D12_DRED_BREADCRUMB_CONTEXT& obj, ToStringFlags toStringFlags = kToString_Default, uint32_t tabCount = kToStringDefaultTabCount, uint32_t tabSize = kToStringDefaultTabSize); -std::string ToString(const D3D12_AUTO_BREADCRUMB_NODE1& obj, ToStringFlags toStringFlags = kToString_Default, uint32_t tabCount = kToStringDefaultTabCount, uint32_t tabSize = kToStringDefaultTabSize); -std::string ToString(const D3D12_DEVICE_REMOVED_EXTENDED_DATA& obj, ToStringFlags toStringFlags = kToString_Default, uint32_t tabCount = kToStringDefaultTabCount, uint32_t tabSize = kToStringDefaultTabSize); -std::string ToString(const D3D12_DRED_ALLOCATION_NODE& obj, ToStringFlags toStringFlags = kToString_Default, uint32_t tabCount = kToStringDefaultTabCount, uint32_t tabSize = kToStringDefaultTabSize); -std::string ToString(const D3D12_DRED_ALLOCATION_NODE1& obj, ToStringFlags toStringFlags = kToString_Default, uint32_t tabCount = kToStringDefaultTabCount, uint32_t tabSize = kToStringDefaultTabSize); -std::string ToString(const D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT& obj, ToStringFlags toStringFlags = kToString_Default, uint32_t tabCount = kToStringDefaultTabCount, uint32_t tabSize = kToStringDefaultTabSize); -std::string ToString(const D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT1& obj, ToStringFlags toStringFlags = kToString_Default, uint32_t tabCount = kToStringDefaultTabCount, uint32_t tabSize = kToStringDefaultTabSize); -std::string ToString(const D3D12_DRED_PAGE_FAULT_OUTPUT& obj, ToStringFlags toStringFlags = kToString_Default, uint32_t tabCount = kToStringDefaultTabCount, uint32_t tabSize = kToStringDefaultTabSize); -std::string ToString(const D3D12_DRED_PAGE_FAULT_OUTPUT1& obj, ToStringFlags toStringFlags = kToString_Default, uint32_t tabCount = kToStringDefaultTabCount, uint32_t tabSize = kToStringDefaultTabSize); -std::string ToString(const D3D12_DRED_PAGE_FAULT_OUTPUT2& obj, ToStringFlags toStringFlags = kToString_Default, uint32_t tabCount = kToStringDefaultTabCount, uint32_t tabSize = kToStringDefaultTabSize); -std::string ToString(const D3D12_DEVICE_REMOVED_EXTENDED_DATA1& obj, ToStringFlags toStringFlags = kToString_Default, uint32_t tabCount = kToStringDefaultTabCount, uint32_t tabSize = kToStringDefaultTabSize); -std::string ToString(const D3D12_DEVICE_REMOVED_EXTENDED_DATA2& obj, ToStringFlags toStringFlags = kToString_Default, uint32_t tabCount = kToStringDefaultTabCount, uint32_t tabSize = kToStringDefaultTabSize); -std::string ToString(const D3D12_DEVICE_REMOVED_EXTENDED_DATA3& obj, ToStringFlags toStringFlags = kToString_Default, uint32_t tabCount = kToStringDefaultTabCount, uint32_t tabSize = kToStringDefaultTabSize); -std::string ToString(const D3D12_FEATURE_DATA_PROTECTED_RESOURCE_SESSION_TYPE_COUNT& obj, ToStringFlags toStringFlags = kToString_Default, uint32_t tabCount = kToStringDefaultTabCount, uint32_t tabSize = kToStringDefaultTabSize); -std::string ToString(const D3D12_FEATURE_DATA_PROTECTED_RESOURCE_SESSION_TYPES& obj, ToStringFlags toStringFlags = kToString_Default, uint32_t tabCount = kToStringDefaultTabCount, uint32_t tabSize = kToStringDefaultTabSize); -std::string ToString(const D3D12_PROTECTED_RESOURCE_SESSION_DESC1& obj, ToStringFlags toStringFlags = kToString_Default, uint32_t tabCount = kToStringDefaultTabCount, uint32_t tabSize = kToStringDefaultTabSize); -std::string ToString(const D3D12_RENDER_PASS_BEGINNING_ACCESS_CLEAR_PARAMETERS& obj, ToStringFlags toStringFlags = kToString_Default, uint32_t tabCount = kToStringDefaultTabCount, uint32_t tabSize = kToStringDefaultTabSize); -std::string ToString(const D3D12_RENDER_PASS_BEGINNING_ACCESS_PRESERVE_LOCAL_PARAMETERS& obj, ToStringFlags toStringFlags = kToString_Default, uint32_t tabCount = kToStringDefaultTabCount, uint32_t tabSize = kToStringDefaultTabSize); -std::string ToString(const D3D12_RENDER_PASS_ENDING_ACCESS_RESOLVE_SUBRESOURCE_PARAMETERS& obj, ToStringFlags toStringFlags = kToString_Default, uint32_t tabCount = kToStringDefaultTabCount, uint32_t tabSize = kToStringDefaultTabSize); -std::string ToString(const D3D12_RENDER_PASS_ENDING_ACCESS_RESOLVE_PARAMETERS& obj, ToStringFlags toStringFlags = kToString_Default, uint32_t tabCount = kToStringDefaultTabCount, uint32_t tabSize = kToStringDefaultTabSize); -std::string ToString(const D3D12_RENDER_PASS_ENDING_ACCESS_PRESERVE_LOCAL_PARAMETERS& obj, ToStringFlags toStringFlags = kToString_Default, uint32_t tabCount = kToStringDefaultTabCount, uint32_t tabSize = kToStringDefaultTabSize); -std::string ToString(const D3D12_RENDER_PASS_RENDER_TARGET_DESC& obj, ToStringFlags toStringFlags = kToString_Default, uint32_t tabCount = kToStringDefaultTabCount, uint32_t tabSize = kToStringDefaultTabSize); -std::string ToString(const D3D12_RENDER_PASS_DEPTH_STENCIL_DESC& obj, ToStringFlags toStringFlags = kToString_Default, uint32_t tabCount = kToStringDefaultTabCount, uint32_t tabSize = kToStringDefaultTabSize); -std::string ToString(const D3D12_DISPATCH_RAYS_DESC& obj, ToStringFlags toStringFlags = kToString_Default, uint32_t tabCount = kToStringDefaultTabCount, uint32_t tabSize = kToStringDefaultTabSize); -std::string ToString(const D3D12_SHADER_CACHE_SESSION_DESC& obj, ToStringFlags toStringFlags = kToString_Default, uint32_t tabCount = kToStringDefaultTabCount, uint32_t tabSize = kToStringDefaultTabSize); -std::string ToString(const D3D12_BARRIER_SUBRESOURCE_RANGE& obj, ToStringFlags toStringFlags = kToString_Default, uint32_t tabCount = kToStringDefaultTabCount, uint32_t tabSize = kToStringDefaultTabSize); -std::string ToString(const D3D12_GLOBAL_BARRIER& obj, ToStringFlags toStringFlags = kToString_Default, uint32_t tabCount = kToStringDefaultTabCount, uint32_t tabSize = kToStringDefaultTabSize); -std::string ToString(const D3D12_TEXTURE_BARRIER& obj, ToStringFlags toStringFlags = kToString_Default, uint32_t tabCount = kToStringDefaultTabCount, uint32_t tabSize = kToStringDefaultTabSize); -std::string ToString(const D3D12_BUFFER_BARRIER& obj, ToStringFlags toStringFlags = kToString_Default, uint32_t tabCount = kToStringDefaultTabCount, uint32_t tabSize = kToStringDefaultTabSize); -std::string ToString(const D3D12_SUBRESOURCE_DATA& obj, ToStringFlags toStringFlags = kToString_Default, uint32_t tabCount = kToStringDefaultTabCount, uint32_t tabSize = kToStringDefaultTabSize); -std::string ToString(const D3D12_MEMCPY_DEST& obj, ToStringFlags toStringFlags = kToString_Default, uint32_t tabCount = kToStringDefaultTabCount, uint32_t tabSize = kToStringDefaultTabSize); -std::string ToString(const D3D12_DEVICE_CONFIGURATION_DESC& obj, ToStringFlags toStringFlags = kToString_Default, uint32_t tabCount = kToStringDefaultTabCount, uint32_t tabSize = kToStringDefaultTabSize); -std::string ToString(const D3D12_DISPATCH_MESH_ARGUMENTS& obj, ToStringFlags toStringFlags = kToString_Default, uint32_t tabCount = kToStringDefaultTabCount, uint32_t tabSize = kToStringDefaultTabSize); -std::string ToString(const D3D_SHADER_MACRO& obj, ToStringFlags toStringFlags = kToString_Default, uint32_t tabCount = kToStringDefaultTabCount, uint32_t tabSize = kToStringDefaultTabSize); -std::string ToString(const D3D12_DEBUG_DEVICE_GPU_BASED_VALIDATION_SETTINGS& obj, ToStringFlags toStringFlags = kToString_Default, uint32_t tabCount = kToStringDefaultTabCount, uint32_t tabSize = kToStringDefaultTabSize); -std::string ToString(const D3D12_DEBUG_DEVICE_GPU_SLOWDOWN_PERFORMANCE_FACTOR& obj, ToStringFlags toStringFlags = kToString_Default, uint32_t tabCount = kToStringDefaultTabCount, uint32_t tabSize = kToStringDefaultTabSize); -std::string ToString(const D3D12_DEBUG_COMMAND_LIST_GPU_BASED_VALIDATION_SETTINGS& obj, ToStringFlags toStringFlags = kToString_Default, uint32_t tabCount = kToStringDefaultTabCount, uint32_t tabSize = kToStringDefaultTabSize); -std::string ToString(const D3D12_MESSAGE& obj, ToStringFlags toStringFlags = kToString_Default, uint32_t tabCount = kToStringDefaultTabCount, uint32_t tabSize = kToStringDefaultTabSize); -std::string ToString(const D3D12_INFO_QUEUE_FILTER_DESC& obj, ToStringFlags toStringFlags = kToString_Default, uint32_t tabCount = kToStringDefaultTabCount, uint32_t tabSize = kToStringDefaultTabSize); -std::string ToString(const D3D12_INFO_QUEUE_FILTER& obj, ToStringFlags toStringFlags = kToString_Default, uint32_t tabCount = kToStringDefaultTabCount, uint32_t tabSize = kToStringDefaultTabSize); -std::string ToString(const tagRECT& obj, ToStringFlags toStringFlags = kToString_Default, uint32_t tabCount = kToStringDefaultTabCount, uint32_t tabSize = kToStringDefaultTabSize); -std::string ToString(const tagPOINT& obj, ToStringFlags toStringFlags = kToString_Default, uint32_t tabCount = kToStringDefaultTabCount, uint32_t tabSize = kToStringDefaultTabSize); - -GFXRECON_END_NAMESPACE(util) -GFXRECON_END_NAMESPACE(gfxrecon) - -#endif diff --git a/framework/generated/generated_vulkan_enum_to_json.cpp b/framework/generated/generated_vulkan_enum_to_json.cpp index 683788eb14..4daee95d28 100644 --- a/framework/generated/generated_vulkan_enum_to_json.cpp +++ b/framework/generated/generated_vulkan_enum_to_json.cpp @@ -27,10 +27,14 @@ */ #include "generated_vulkan_enum_to_json.h" +#include "util/to_string.h" GFXRECON_BEGIN_NAMESPACE(gfxrecon) GFXRECON_BEGIN_NAMESPACE(decode) +using util::JsonOptions; +using util::to_hex_fixed_width; + template std::string ExpandFlags(TFlags flags, ToStringFunctionType toString) { diff --git a/framework/generated/generated_vulkan_enum_to_json.h b/framework/generated/generated_vulkan_enum_to_json.h index 5e6473ed57..8cc717d33a 100644 --- a/framework/generated/generated_vulkan_enum_to_json.h +++ b/framework/generated/generated_vulkan_enum_to_json.h @@ -30,7 +30,7 @@ #define GFXRECON_GENERATED_VULKAN_ENUM_TO_JSON_H #include "format/platform_types.h" -#include "decode/vulkan_json_util.h" +#include "util/json_util.h" #include "vulkan/vulkan.h" #include "vk_video/vulkan_video_codec_h264std.h" #include "vk_video/vulkan_video_codec_h264std_decode.h" @@ -231,457 +231,457 @@ struct VkFormatFeatureFlagBits2_t { }; struct VkPipelineCreateFlagBits2KHR_t { }; struct VkPipelineStageFlagBits2_t { }; -void FieldToJson(nlohmann::ordered_json& jdata, const StdVideoDecodeH264FieldOrderCount& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const StdVideoH264AspectRatioIdc& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const StdVideoH264CabacInitIdc& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const StdVideoH264ChromaFormatIdc& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const StdVideoH264DisableDeblockingFilterIdc& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const StdVideoH264LevelIdc& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const StdVideoH264MemMgmtControlOp& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const StdVideoH264ModificationOfPicNumsIdc& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const StdVideoH264NonVclNaluType& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const StdVideoH264PictureType& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const StdVideoH264PocType& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const StdVideoH264ProfileIdc& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const StdVideoH264SliceType& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const StdVideoH264WeightedBipredIdc& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const StdVideoH265AspectRatioIdc& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const StdVideoH265ChromaFormatIdc& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const StdVideoH265LevelIdc& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const StdVideoH265PictureType& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const StdVideoH265ProfileIdc& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const StdVideoH265SliceType& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const VkAccelerationStructureBuildTypeKHR& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const VkAccelerationStructureCompatibilityKHR& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const VkAccelerationStructureCreateFlagBitsKHR& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const VkAccelerationStructureMemoryRequirementsTypeNV& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const VkAccelerationStructureMotionInstanceTypeNV& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const VkAccelerationStructureTypeKHR& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const VkAccessFlagBits& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(VkAccessFlagBits2_t, nlohmann::ordered_json& jdata, const VkAccessFlagBits2& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const VkAcquireProfilingLockFlagBitsKHR& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const VkAttachmentDescriptionFlagBits& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const VkAttachmentLoadOp& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const VkAttachmentStoreOp& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const VkBlendFactor& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const VkBlendOp& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const VkBlendOverlapEXT& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const VkBlockMatchWindowCompareModeQCOM& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const VkBorderColor& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const VkBufferCreateFlagBits& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const VkBufferUsageFlagBits& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(VkBufferUsageFlagBits2KHR_t, nlohmann::ordered_json& jdata, const VkBufferUsageFlagBits2KHR& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const VkBuildAccelerationStructureFlagBitsKHR& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const VkBuildAccelerationStructureModeKHR& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const VkBuildMicromapFlagBitsEXT& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const VkBuildMicromapModeEXT& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const VkChromaLocation& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const VkCoarseSampleOrderTypeNV& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const VkColorComponentFlagBits& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const VkColorSpaceKHR& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const VkCommandBufferLevel& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const VkCommandBufferResetFlagBits& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const VkCommandBufferUsageFlagBits& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const VkCommandPoolCreateFlagBits& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const VkCommandPoolResetFlagBits& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const VkCompareOp& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const VkComponentSwizzle& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const VkComponentTypeKHR& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const VkCompositeAlphaFlagBitsKHR& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const VkConditionalRenderingFlagBitsEXT& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const VkConservativeRasterizationModeEXT& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const VkCopyAccelerationStructureModeKHR& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const VkCopyMicromapModeEXT& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const VkCoverageModulationModeNV& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const VkCoverageReductionModeNV& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const VkCubicFilterWeightsQCOM& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const VkCullModeFlagBits& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const VkDebugReportFlagBitsEXT& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const VkDebugReportObjectTypeEXT& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const VkDebugUtilsMessageSeverityFlagBitsEXT& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const VkDebugUtilsMessageTypeFlagBitsEXT& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const VkDependencyFlagBits& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const VkDepthBiasRepresentationEXT& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const VkDescriptorBindingFlagBits& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const VkDescriptorPoolCreateFlagBits& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const VkDescriptorSetLayoutCreateFlagBits& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const VkDescriptorType& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const VkDescriptorUpdateTemplateType& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const VkDeviceAddressBindingFlagBitsEXT& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const VkDeviceAddressBindingTypeEXT& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const VkDeviceDiagnosticsConfigFlagBitsNV& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const VkDeviceEventTypeEXT& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const VkDeviceFaultAddressTypeEXT& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const VkDeviceFaultVendorBinaryHeaderVersionEXT& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const VkDeviceGroupPresentModeFlagBitsKHR& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const VkDeviceMemoryReportEventTypeEXT& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const VkDeviceQueueCreateFlagBits& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const VkDirectDriverLoadingModeLUNARG& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const VkDiscardRectangleModeEXT& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const VkDisplacementMicromapFormatNV& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const VkDisplayEventTypeEXT& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const VkDisplayPlaneAlphaFlagBitsKHR& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const VkDisplayPowerStateEXT& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const VkDriverId& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const VkDynamicState& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const VkEventCreateFlagBits& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const VkExternalFenceFeatureFlagBits& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const VkExternalFenceHandleTypeFlagBits& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const VkExternalMemoryFeatureFlagBits& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const VkExternalMemoryFeatureFlagBitsNV& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const VkExternalMemoryHandleTypeFlagBits& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const VkExternalMemoryHandleTypeFlagBitsNV& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const VkExternalSemaphoreFeatureFlagBits& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const VkExternalSemaphoreHandleTypeFlagBits& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const VkFenceCreateFlagBits& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const VkFenceImportFlagBits& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const VkFilter& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const VkFormat& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const VkFormatFeatureFlagBits& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(VkFormatFeatureFlagBits2_t, nlohmann::ordered_json& jdata, const VkFormatFeatureFlagBits2& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const VkFragmentShadingRateCombinerOpKHR& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const VkFragmentShadingRateNV& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const VkFragmentShadingRateTypeNV& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const VkFrameBoundaryFlagBitsEXT& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const VkFramebufferCreateFlagBits& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const VkFrontFace& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const VkFullScreenExclusiveEXT& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const VkGeometryFlagBitsKHR& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const VkGeometryInstanceFlagBitsKHR& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const VkGeometryTypeKHR& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const VkGraphicsPipelineLibraryFlagBitsEXT& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const VkHostImageCopyFlagBitsEXT& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const VkImageAspectFlagBits& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const VkImageCompressionFixedRateFlagBitsEXT& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const VkImageCompressionFlagBitsEXT& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const VkImageCreateFlagBits& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const VkImageLayout& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const VkImageTiling& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const VkImageType& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const VkImageUsageFlagBits& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const VkImageViewCreateFlagBits& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const VkImageViewType& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const VkIndexType& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const VkIndirectCommandsLayoutUsageFlagBitsNV& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const VkIndirectCommandsTokenTypeNV& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const VkIndirectStateFlagBitsNV& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const VkInstanceCreateFlagBits& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const VkInternalAllocationType& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const VkLayeredDriverUnderlyingApiMSFT& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const VkLineRasterizationModeEXT& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const VkLogicOp& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const VkMemoryAllocateFlagBits& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const VkMemoryHeapFlagBits& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const VkMemoryOverallocationBehaviorAMD& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const VkMemoryPropertyFlagBits& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const VkMicromapCreateFlagBitsEXT& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const VkMicromapTypeEXT& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const VkObjectType& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const VkOpacityMicromapFormatEXT& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const VkOpacityMicromapSpecialIndexEXT& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const VkOpticalFlowExecuteFlagBitsNV& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const VkOpticalFlowGridSizeFlagBitsNV& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const VkOpticalFlowPerformanceLevelNV& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const VkOpticalFlowSessionBindingPointNV& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const VkOpticalFlowSessionCreateFlagBitsNV& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const VkOpticalFlowUsageFlagBitsNV& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const VkPeerMemoryFeatureFlagBits& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const VkPerformanceConfigurationTypeINTEL& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const VkPerformanceCounterDescriptionFlagBitsKHR& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const VkPerformanceCounterScopeKHR& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const VkPerformanceCounterStorageKHR& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const VkPerformanceCounterUnitKHR& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const VkPerformanceOverrideTypeINTEL& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const VkPerformanceParameterTypeINTEL& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const VkPerformanceValueTypeINTEL& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const VkPhysicalDeviceType& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const VkPipelineBindPoint& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const VkPipelineCacheCreateFlagBits& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const VkPipelineCacheHeaderVersion& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const VkPipelineColorBlendStateCreateFlagBits& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const VkPipelineCompilerControlFlagBitsAMD& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const VkPipelineCreateFlagBits& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(VkPipelineCreateFlagBits2KHR_t, nlohmann::ordered_json& jdata, const VkPipelineCreateFlagBits2KHR& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const VkPipelineCreationFeedbackFlagBits& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const VkPipelineDepthStencilStateCreateFlagBits& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const VkPipelineExecutableStatisticFormatKHR& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const VkPipelineLayoutCreateFlagBits& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const VkPipelineRobustnessBufferBehaviorEXT& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const VkPipelineRobustnessImageBehaviorEXT& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const VkPipelineShaderStageCreateFlagBits& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const VkPipelineStageFlagBits& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(VkPipelineStageFlagBits2_t, nlohmann::ordered_json& jdata, const VkPipelineStageFlagBits2& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const VkPointClippingBehavior& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const VkPolygonMode& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const VkPresentGravityFlagBitsEXT& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const VkPresentModeKHR& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const VkPresentScalingFlagBitsEXT& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const VkPrimitiveTopology& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const VkProvokingVertexModeEXT& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const VkQueryControlFlagBits& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const VkQueryPipelineStatisticFlagBits& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const VkQueryPoolSamplingModeINTEL& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const VkQueryResultFlagBits& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const VkQueryResultStatusKHR& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const VkQueryType& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const VkQueueFlagBits& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const VkQueueGlobalPriorityKHR& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const VkRasterizationOrderAMD& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const VkRayTracingInvocationReorderModeNV& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const VkRayTracingShaderGroupTypeKHR& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const VkRenderPassCreateFlagBits& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const VkRenderingFlagBits& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const VkResolveModeFlagBits& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const VkResult& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const VkSampleCountFlagBits& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const VkSamplerAddressMode& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const VkSamplerCreateFlagBits& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const VkSamplerMipmapMode& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const VkSamplerReductionMode& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const VkSamplerYcbcrModelConversion& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const VkSamplerYcbcrRange& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const VkScopeKHR& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const VkSemaphoreImportFlagBits& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const VkSemaphoreType& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const VkSemaphoreWaitFlagBits& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const VkShaderCodeTypeEXT& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const VkShaderCorePropertiesFlagBitsAMD& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const VkShaderCreateFlagBitsEXT& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const VkShaderFloatControlsIndependence& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const VkShaderGroupShaderKHR& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const VkShaderInfoTypeAMD& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const VkShaderStageFlagBits& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const VkShadingRatePaletteEntryNV& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const VkSharingMode& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const VkSparseImageFormatFlagBits& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const VkSparseMemoryBindFlagBits& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const VkStencilFaceFlagBits& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const VkStencilOp& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const VkStructureType& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const VkSubgroupFeatureFlagBits& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const VkSubmitFlagBits& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const VkSubpassContents& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const VkSubpassDescriptionFlagBits& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const VkSubpassMergeStatusEXT& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const VkSurfaceCounterFlagBitsEXT& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const VkSurfaceTransformFlagBitsKHR& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const VkSwapchainCreateFlagBitsKHR& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const VkSystemAllocationScope& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const VkTessellationDomainOrigin& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const VkTimeDomainEXT& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const VkToolPurposeFlagBits& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const VkValidationCacheHeaderVersionEXT& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const VkValidationCheckEXT& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const VkValidationFeatureDisableEXT& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const VkValidationFeatureEnableEXT& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const VkVendorId& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const VkVertexInputRate& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const VkVideoCapabilityFlagBitsKHR& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const VkVideoChromaSubsamplingFlagBitsKHR& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const VkVideoCodecOperationFlagBitsKHR& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const VkVideoCodingControlFlagBitsKHR& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const VkVideoComponentBitDepthFlagBitsKHR& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const VkVideoDecodeCapabilityFlagBitsKHR& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const VkVideoDecodeH264PictureLayoutFlagBitsKHR& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const VkVideoDecodeUsageFlagBitsKHR& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const VkVideoEncodeCapabilityFlagBitsKHR& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const VkVideoEncodeContentFlagBitsKHR& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const VkVideoEncodeFeedbackFlagBitsKHR& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const VkVideoEncodeH264CapabilityFlagBitsEXT& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const VkVideoEncodeH264RateControlFlagBitsEXT& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const VkVideoEncodeH264StdFlagBitsEXT& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const VkVideoEncodeH265CapabilityFlagBitsEXT& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const VkVideoEncodeH265CtbSizeFlagBitsEXT& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const VkVideoEncodeH265RateControlFlagBitsEXT& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const VkVideoEncodeH265StdFlagBitsEXT& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const VkVideoEncodeH265TransformBlockSizeFlagBitsEXT& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const VkVideoEncodeRateControlModeFlagBitsKHR& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const VkVideoEncodeTuningModeKHR& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const VkVideoEncodeUsageFlagBitsKHR& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const VkVideoSessionCreateFlagBitsKHR& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const VkViewportCoordinateSwizzleNV& value, const JsonOptions& options = JsonOptions()); -void FieldToJson(VkAccelerationStructureCreateFlagsKHR_t, nlohmann::ordered_json& jdata, const VkFlags flags, const JsonOptions& options = JsonOptions()); -void FieldToJson(VkAccelerationStructureMotionInfoFlagsNV_t, nlohmann::ordered_json& jdata, const VkFlags flags, const JsonOptions& options = JsonOptions()); -void FieldToJson(VkAccelerationStructureMotionInstanceFlagsNV_t, nlohmann::ordered_json& jdata, const VkFlags flags, const JsonOptions& options = JsonOptions()); -void FieldToJson(VkAccessFlags_t, nlohmann::ordered_json& jdata, const VkFlags flags, const JsonOptions& options = JsonOptions()); -void FieldToJson(VkAccessFlags2_t, nlohmann::ordered_json& jdata, const VkFlags64 flags, const JsonOptions& options = JsonOptions()); -void FieldToJson(VkAcquireProfilingLockFlagsKHR_t, nlohmann::ordered_json& jdata, const VkFlags flags, const JsonOptions& options = JsonOptions()); -void FieldToJson(VkAndroidSurfaceCreateFlagsKHR_t, nlohmann::ordered_json& jdata, const VkFlags flags, const JsonOptions& options = JsonOptions()); -void FieldToJson(VkAttachmentDescriptionFlags_t, nlohmann::ordered_json& jdata, const VkFlags flags, const JsonOptions& options = JsonOptions()); -void FieldToJson(VkBufferCreateFlags_t, nlohmann::ordered_json& jdata, const VkFlags flags, const JsonOptions& options = JsonOptions()); -void FieldToJson(VkBufferUsageFlags_t, nlohmann::ordered_json& jdata, const VkFlags flags, const JsonOptions& options = JsonOptions()); -void FieldToJson(VkBufferUsageFlags2KHR_t, nlohmann::ordered_json& jdata, const VkFlags64 flags, const JsonOptions& options = JsonOptions()); -void FieldToJson(VkBufferViewCreateFlags_t, nlohmann::ordered_json& jdata, const VkFlags flags, const JsonOptions& options = JsonOptions()); -void FieldToJson(VkBuildAccelerationStructureFlagsKHR_t, nlohmann::ordered_json& jdata, const VkFlags flags, const JsonOptions& options = JsonOptions()); -void FieldToJson(VkBuildMicromapFlagsEXT_t, nlohmann::ordered_json& jdata, const VkFlags flags, const JsonOptions& options = JsonOptions()); -void FieldToJson(VkColorComponentFlags_t, nlohmann::ordered_json& jdata, const VkFlags flags, const JsonOptions& options = JsonOptions()); -void FieldToJson(VkCommandBufferResetFlags_t, nlohmann::ordered_json& jdata, const VkFlags flags, const JsonOptions& options = JsonOptions()); -void FieldToJson(VkCommandBufferUsageFlags_t, nlohmann::ordered_json& jdata, const VkFlags flags, const JsonOptions& options = JsonOptions()); -void FieldToJson(VkCommandPoolCreateFlags_t, nlohmann::ordered_json& jdata, const VkFlags flags, const JsonOptions& options = JsonOptions()); -void FieldToJson(VkCommandPoolResetFlags_t, nlohmann::ordered_json& jdata, const VkFlags flags, const JsonOptions& options = JsonOptions()); -void FieldToJson(VkCommandPoolTrimFlags_t, nlohmann::ordered_json& jdata, const VkFlags flags, const JsonOptions& options = JsonOptions()); -void FieldToJson(VkCompositeAlphaFlagsKHR_t, nlohmann::ordered_json& jdata, const VkFlags flags, const JsonOptions& options = JsonOptions()); -void FieldToJson(VkConditionalRenderingFlagsEXT_t, nlohmann::ordered_json& jdata, const VkFlags flags, const JsonOptions& options = JsonOptions()); -void FieldToJson(VkCullModeFlags_t, nlohmann::ordered_json& jdata, const VkFlags flags, const JsonOptions& options = JsonOptions()); -void FieldToJson(VkDebugReportFlagsEXT_t, nlohmann::ordered_json& jdata, const VkFlags flags, const JsonOptions& options = JsonOptions()); -void FieldToJson(VkDebugUtilsMessageSeverityFlagsEXT_t, nlohmann::ordered_json& jdata, const VkFlags flags, const JsonOptions& options = JsonOptions()); -void FieldToJson(VkDebugUtilsMessageTypeFlagsEXT_t, nlohmann::ordered_json& jdata, const VkFlags flags, const JsonOptions& options = JsonOptions()); -void FieldToJson(VkDebugUtilsMessengerCallbackDataFlagsEXT_t, nlohmann::ordered_json& jdata, const VkFlags flags, const JsonOptions& options = JsonOptions()); -void FieldToJson(VkDebugUtilsMessengerCreateFlagsEXT_t, nlohmann::ordered_json& jdata, const VkFlags flags, const JsonOptions& options = JsonOptions()); -void FieldToJson(VkDependencyFlags_t, nlohmann::ordered_json& jdata, const VkFlags flags, const JsonOptions& options = JsonOptions()); -void FieldToJson(VkDescriptorBindingFlags_t, nlohmann::ordered_json& jdata, const VkFlags flags, const JsonOptions& options = JsonOptions()); -void FieldToJson(VkDescriptorPoolCreateFlags_t, nlohmann::ordered_json& jdata, const VkFlags flags, const JsonOptions& options = JsonOptions()); -void FieldToJson(VkDescriptorPoolResetFlags_t, nlohmann::ordered_json& jdata, const VkFlags flags, const JsonOptions& options = JsonOptions()); -void FieldToJson(VkDescriptorSetLayoutCreateFlags_t, nlohmann::ordered_json& jdata, const VkFlags flags, const JsonOptions& options = JsonOptions()); -void FieldToJson(VkDescriptorUpdateTemplateCreateFlags_t, nlohmann::ordered_json& jdata, const VkFlags flags, const JsonOptions& options = JsonOptions()); -void FieldToJson(VkDeviceAddressBindingFlagsEXT_t, nlohmann::ordered_json& jdata, const VkFlags flags, const JsonOptions& options = JsonOptions()); -void FieldToJson(VkDeviceCreateFlags_t, nlohmann::ordered_json& jdata, const VkFlags flags, const JsonOptions& options = JsonOptions()); -void FieldToJson(VkDeviceDiagnosticsConfigFlagsNV_t, nlohmann::ordered_json& jdata, const VkFlags flags, const JsonOptions& options = JsonOptions()); -void FieldToJson(VkDeviceGroupPresentModeFlagsKHR_t, nlohmann::ordered_json& jdata, const VkFlags flags, const JsonOptions& options = JsonOptions()); -void FieldToJson(VkDeviceMemoryReportFlagsEXT_t, nlohmann::ordered_json& jdata, const VkFlags flags, const JsonOptions& options = JsonOptions()); -void FieldToJson(VkDeviceQueueCreateFlags_t, nlohmann::ordered_json& jdata, const VkFlags flags, const JsonOptions& options = JsonOptions()); -void FieldToJson(VkDirectDriverLoadingFlagsLUNARG_t, nlohmann::ordered_json& jdata, const VkFlags flags, const JsonOptions& options = JsonOptions()); -void FieldToJson(VkDirectFBSurfaceCreateFlagsEXT_t, nlohmann::ordered_json& jdata, const VkFlags flags, const JsonOptions& options = JsonOptions()); -void FieldToJson(VkDisplayModeCreateFlagsKHR_t, nlohmann::ordered_json& jdata, const VkFlags flags, const JsonOptions& options = JsonOptions()); -void FieldToJson(VkDisplayPlaneAlphaFlagsKHR_t, nlohmann::ordered_json& jdata, const VkFlags flags, const JsonOptions& options = JsonOptions()); -void FieldToJson(VkDisplaySurfaceCreateFlagsKHR_t, nlohmann::ordered_json& jdata, const VkFlags flags, const JsonOptions& options = JsonOptions()); -void FieldToJson(VkEventCreateFlags_t, nlohmann::ordered_json& jdata, const VkFlags flags, const JsonOptions& options = JsonOptions()); -void FieldToJson(VkExternalFenceFeatureFlags_t, nlohmann::ordered_json& jdata, const VkFlags flags, const JsonOptions& options = JsonOptions()); -void FieldToJson(VkExternalFenceHandleTypeFlags_t, nlohmann::ordered_json& jdata, const VkFlags flags, const JsonOptions& options = JsonOptions()); -void FieldToJson(VkExternalMemoryFeatureFlags_t, nlohmann::ordered_json& jdata, const VkFlags flags, const JsonOptions& options = JsonOptions()); -void FieldToJson(VkExternalMemoryFeatureFlagsNV_t, nlohmann::ordered_json& jdata, const VkFlags flags, const JsonOptions& options = JsonOptions()); -void FieldToJson(VkExternalMemoryHandleTypeFlags_t, nlohmann::ordered_json& jdata, const VkFlags flags, const JsonOptions& options = JsonOptions()); -void FieldToJson(VkExternalMemoryHandleTypeFlagsNV_t, nlohmann::ordered_json& jdata, const VkFlags flags, const JsonOptions& options = JsonOptions()); -void FieldToJson(VkExternalSemaphoreFeatureFlags_t, nlohmann::ordered_json& jdata, const VkFlags flags, const JsonOptions& options = JsonOptions()); -void FieldToJson(VkExternalSemaphoreHandleTypeFlags_t, nlohmann::ordered_json& jdata, const VkFlags flags, const JsonOptions& options = JsonOptions()); -void FieldToJson(VkFenceCreateFlags_t, nlohmann::ordered_json& jdata, const VkFlags flags, const JsonOptions& options = JsonOptions()); -void FieldToJson(VkFenceImportFlags_t, nlohmann::ordered_json& jdata, const VkFlags flags, const JsonOptions& options = JsonOptions()); -void FieldToJson(VkFormatFeatureFlags_t, nlohmann::ordered_json& jdata, const VkFlags flags, const JsonOptions& options = JsonOptions()); -void FieldToJson(VkFormatFeatureFlags2_t, nlohmann::ordered_json& jdata, const VkFlags64 flags, const JsonOptions& options = JsonOptions()); -void FieldToJson(VkFrameBoundaryFlagsEXT_t, nlohmann::ordered_json& jdata, const VkFlags flags, const JsonOptions& options = JsonOptions()); -void FieldToJson(VkFramebufferCreateFlags_t, nlohmann::ordered_json& jdata, const VkFlags flags, const JsonOptions& options = JsonOptions()); -void FieldToJson(VkGeometryFlagsKHR_t, nlohmann::ordered_json& jdata, const VkFlags flags, const JsonOptions& options = JsonOptions()); -void FieldToJson(VkGeometryInstanceFlagsKHR_t, nlohmann::ordered_json& jdata, const VkFlags flags, const JsonOptions& options = JsonOptions()); -void FieldToJson(VkGraphicsPipelineLibraryFlagsEXT_t, nlohmann::ordered_json& jdata, const VkFlags flags, const JsonOptions& options = JsonOptions()); -void FieldToJson(VkHeadlessSurfaceCreateFlagsEXT_t, nlohmann::ordered_json& jdata, const VkFlags flags, const JsonOptions& options = JsonOptions()); -void FieldToJson(VkHostImageCopyFlagsEXT_t, nlohmann::ordered_json& jdata, const VkFlags flags, const JsonOptions& options = JsonOptions()); -void FieldToJson(VkIOSSurfaceCreateFlagsMVK_t, nlohmann::ordered_json& jdata, const VkFlags flags, const JsonOptions& options = JsonOptions()); -void FieldToJson(VkImageAspectFlags_t, nlohmann::ordered_json& jdata, const VkFlags flags, const JsonOptions& options = JsonOptions()); -void FieldToJson(VkImageCompressionFixedRateFlagsEXT_t, nlohmann::ordered_json& jdata, const VkFlags flags, const JsonOptions& options = JsonOptions()); -void FieldToJson(VkImageCompressionFlagsEXT_t, nlohmann::ordered_json& jdata, const VkFlags flags, const JsonOptions& options = JsonOptions()); -void FieldToJson(VkImageCreateFlags_t, nlohmann::ordered_json& jdata, const VkFlags flags, const JsonOptions& options = JsonOptions()); -void FieldToJson(VkImagePipeSurfaceCreateFlagsFUCHSIA_t, nlohmann::ordered_json& jdata, const VkFlags flags, const JsonOptions& options = JsonOptions()); -void FieldToJson(VkImageUsageFlags_t, nlohmann::ordered_json& jdata, const VkFlags flags, const JsonOptions& options = JsonOptions()); -void FieldToJson(VkImageViewCreateFlags_t, nlohmann::ordered_json& jdata, const VkFlags flags, const JsonOptions& options = JsonOptions()); -void FieldToJson(VkIndirectCommandsLayoutUsageFlagsNV_t, nlohmann::ordered_json& jdata, const VkFlags flags, const JsonOptions& options = JsonOptions()); -void FieldToJson(VkIndirectStateFlagsNV_t, nlohmann::ordered_json& jdata, const VkFlags flags, const JsonOptions& options = JsonOptions()); -void FieldToJson(VkInstanceCreateFlags_t, nlohmann::ordered_json& jdata, const VkFlags flags, const JsonOptions& options = JsonOptions()); -void FieldToJson(VkMacOSSurfaceCreateFlagsMVK_t, nlohmann::ordered_json& jdata, const VkFlags flags, const JsonOptions& options = JsonOptions()); -void FieldToJson(VkMemoryAllocateFlags_t, nlohmann::ordered_json& jdata, const VkFlags flags, const JsonOptions& options = JsonOptions()); -void FieldToJson(VkMemoryHeapFlags_t, nlohmann::ordered_json& jdata, const VkFlags flags, const JsonOptions& options = JsonOptions()); -void FieldToJson(VkMemoryMapFlags_t, nlohmann::ordered_json& jdata, const VkFlags flags, const JsonOptions& options = JsonOptions()); -void FieldToJson(VkMemoryPropertyFlags_t, nlohmann::ordered_json& jdata, const VkFlags flags, const JsonOptions& options = JsonOptions()); -void FieldToJson(VkMemoryUnmapFlagsKHR_t, nlohmann::ordered_json& jdata, const VkFlags flags, const JsonOptions& options = JsonOptions()); -void FieldToJson(VkMetalSurfaceCreateFlagsEXT_t, nlohmann::ordered_json& jdata, const VkFlags flags, const JsonOptions& options = JsonOptions()); -void FieldToJson(VkMicromapCreateFlagsEXT_t, nlohmann::ordered_json& jdata, const VkFlags flags, const JsonOptions& options = JsonOptions()); -void FieldToJson(VkOpticalFlowExecuteFlagsNV_t, nlohmann::ordered_json& jdata, const VkFlags flags, const JsonOptions& options = JsonOptions()); -void FieldToJson(VkOpticalFlowGridSizeFlagsNV_t, nlohmann::ordered_json& jdata, const VkFlags flags, const JsonOptions& options = JsonOptions()); -void FieldToJson(VkOpticalFlowSessionCreateFlagsNV_t, nlohmann::ordered_json& jdata, const VkFlags flags, const JsonOptions& options = JsonOptions()); -void FieldToJson(VkOpticalFlowUsageFlagsNV_t, nlohmann::ordered_json& jdata, const VkFlags flags, const JsonOptions& options = JsonOptions()); -void FieldToJson(VkPeerMemoryFeatureFlags_t, nlohmann::ordered_json& jdata, const VkFlags flags, const JsonOptions& options = JsonOptions()); -void FieldToJson(VkPerformanceCounterDescriptionFlagsKHR_t, nlohmann::ordered_json& jdata, const VkFlags flags, const JsonOptions& options = JsonOptions()); -void FieldToJson(VkPipelineCacheCreateFlags_t, nlohmann::ordered_json& jdata, const VkFlags flags, const JsonOptions& options = JsonOptions()); -void FieldToJson(VkPipelineColorBlendStateCreateFlags_t, nlohmann::ordered_json& jdata, const VkFlags flags, const JsonOptions& options = JsonOptions()); -void FieldToJson(VkPipelineCompilerControlFlagsAMD_t, nlohmann::ordered_json& jdata, const VkFlags flags, const JsonOptions& options = JsonOptions()); -void FieldToJson(VkPipelineCoverageModulationStateCreateFlagsNV_t, nlohmann::ordered_json& jdata, const VkFlags flags, const JsonOptions& options = JsonOptions()); -void FieldToJson(VkPipelineCoverageReductionStateCreateFlagsNV_t, nlohmann::ordered_json& jdata, const VkFlags flags, const JsonOptions& options = JsonOptions()); -void FieldToJson(VkPipelineCoverageToColorStateCreateFlagsNV_t, nlohmann::ordered_json& jdata, const VkFlags flags, const JsonOptions& options = JsonOptions()); -void FieldToJson(VkPipelineCreateFlags_t, nlohmann::ordered_json& jdata, const VkFlags flags, const JsonOptions& options = JsonOptions()); -void FieldToJson(VkPipelineCreateFlags2KHR_t, nlohmann::ordered_json& jdata, const VkFlags64 flags, const JsonOptions& options = JsonOptions()); -void FieldToJson(VkPipelineCreationFeedbackFlags_t, nlohmann::ordered_json& jdata, const VkFlags flags, const JsonOptions& options = JsonOptions()); -void FieldToJson(VkPipelineDepthStencilStateCreateFlags_t, nlohmann::ordered_json& jdata, const VkFlags flags, const JsonOptions& options = JsonOptions()); -void FieldToJson(VkPipelineDiscardRectangleStateCreateFlagsEXT_t, nlohmann::ordered_json& jdata, const VkFlags flags, const JsonOptions& options = JsonOptions()); -void FieldToJson(VkPipelineDynamicStateCreateFlags_t, nlohmann::ordered_json& jdata, const VkFlags flags, const JsonOptions& options = JsonOptions()); -void FieldToJson(VkPipelineInputAssemblyStateCreateFlags_t, nlohmann::ordered_json& jdata, const VkFlags flags, const JsonOptions& options = JsonOptions()); -void FieldToJson(VkPipelineLayoutCreateFlags_t, nlohmann::ordered_json& jdata, const VkFlags flags, const JsonOptions& options = JsonOptions()); -void FieldToJson(VkPipelineMultisampleStateCreateFlags_t, nlohmann::ordered_json& jdata, const VkFlags flags, const JsonOptions& options = JsonOptions()); -void FieldToJson(VkPipelineRasterizationConservativeStateCreateFlagsEXT_t, nlohmann::ordered_json& jdata, const VkFlags flags, const JsonOptions& options = JsonOptions()); -void FieldToJson(VkPipelineRasterizationDepthClipStateCreateFlagsEXT_t, nlohmann::ordered_json& jdata, const VkFlags flags, const JsonOptions& options = JsonOptions()); -void FieldToJson(VkPipelineRasterizationStateCreateFlags_t, nlohmann::ordered_json& jdata, const VkFlags flags, const JsonOptions& options = JsonOptions()); -void FieldToJson(VkPipelineRasterizationStateStreamCreateFlagsEXT_t, nlohmann::ordered_json& jdata, const VkFlags flags, const JsonOptions& options = JsonOptions()); -void FieldToJson(VkPipelineShaderStageCreateFlags_t, nlohmann::ordered_json& jdata, const VkFlags flags, const JsonOptions& options = JsonOptions()); -void FieldToJson(VkPipelineStageFlags_t, nlohmann::ordered_json& jdata, const VkFlags flags, const JsonOptions& options = JsonOptions()); -void FieldToJson(VkPipelineStageFlags2_t, nlohmann::ordered_json& jdata, const VkFlags64 flags, const JsonOptions& options = JsonOptions()); -void FieldToJson(VkPipelineTessellationStateCreateFlags_t, nlohmann::ordered_json& jdata, const VkFlags flags, const JsonOptions& options = JsonOptions()); -void FieldToJson(VkPipelineVertexInputStateCreateFlags_t, nlohmann::ordered_json& jdata, const VkFlags flags, const JsonOptions& options = JsonOptions()); -void FieldToJson(VkPipelineViewportStateCreateFlags_t, nlohmann::ordered_json& jdata, const VkFlags flags, const JsonOptions& options = JsonOptions()); -void FieldToJson(VkPipelineViewportSwizzleStateCreateFlagsNV_t, nlohmann::ordered_json& jdata, const VkFlags flags, const JsonOptions& options = JsonOptions()); -void FieldToJson(VkPresentGravityFlagsEXT_t, nlohmann::ordered_json& jdata, const VkFlags flags, const JsonOptions& options = JsonOptions()); -void FieldToJson(VkPresentScalingFlagsEXT_t, nlohmann::ordered_json& jdata, const VkFlags flags, const JsonOptions& options = JsonOptions()); -void FieldToJson(VkPrivateDataSlotCreateFlags_t, nlohmann::ordered_json& jdata, const VkFlags flags, const JsonOptions& options = JsonOptions()); -void FieldToJson(VkQueryControlFlags_t, nlohmann::ordered_json& jdata, const VkFlags flags, const JsonOptions& options = JsonOptions()); -void FieldToJson(VkQueryPipelineStatisticFlags_t, nlohmann::ordered_json& jdata, const VkFlags flags, const JsonOptions& options = JsonOptions()); -void FieldToJson(VkQueryPoolCreateFlags_t, nlohmann::ordered_json& jdata, const VkFlags flags, const JsonOptions& options = JsonOptions()); -void FieldToJson(VkQueryResultFlags_t, nlohmann::ordered_json& jdata, const VkFlags flags, const JsonOptions& options = JsonOptions()); -void FieldToJson(VkQueueFlags_t, nlohmann::ordered_json& jdata, const VkFlags flags, const JsonOptions& options = JsonOptions()); -void FieldToJson(VkRenderPassCreateFlags_t, nlohmann::ordered_json& jdata, const VkFlags flags, const JsonOptions& options = JsonOptions()); -void FieldToJson(VkRenderingFlags_t, nlohmann::ordered_json& jdata, const VkFlags flags, const JsonOptions& options = JsonOptions()); -void FieldToJson(VkResolveModeFlags_t, nlohmann::ordered_json& jdata, const VkFlags flags, const JsonOptions& options = JsonOptions()); -void FieldToJson(VkSampleCountFlags_t, nlohmann::ordered_json& jdata, const VkFlags flags, const JsonOptions& options = JsonOptions()); -void FieldToJson(VkSamplerCreateFlags_t, nlohmann::ordered_json& jdata, const VkFlags flags, const JsonOptions& options = JsonOptions()); -void FieldToJson(VkScreenSurfaceCreateFlagsQNX_t, nlohmann::ordered_json& jdata, const VkFlags flags, const JsonOptions& options = JsonOptions()); -void FieldToJson(VkSemaphoreCreateFlags_t, nlohmann::ordered_json& jdata, const VkFlags flags, const JsonOptions& options = JsonOptions()); -void FieldToJson(VkSemaphoreImportFlags_t, nlohmann::ordered_json& jdata, const VkFlags flags, const JsonOptions& options = JsonOptions()); -void FieldToJson(VkSemaphoreWaitFlags_t, nlohmann::ordered_json& jdata, const VkFlags flags, const JsonOptions& options = JsonOptions()); -void FieldToJson(VkShaderCorePropertiesFlagsAMD_t, nlohmann::ordered_json& jdata, const VkFlags flags, const JsonOptions& options = JsonOptions()); -void FieldToJson(VkShaderCreateFlagsEXT_t, nlohmann::ordered_json& jdata, const VkFlags flags, const JsonOptions& options = JsonOptions()); -void FieldToJson(VkShaderModuleCreateFlags_t, nlohmann::ordered_json& jdata, const VkFlags flags, const JsonOptions& options = JsonOptions()); -void FieldToJson(VkShaderStageFlags_t, nlohmann::ordered_json& jdata, const VkFlags flags, const JsonOptions& options = JsonOptions()); -void FieldToJson(VkSparseImageFormatFlags_t, nlohmann::ordered_json& jdata, const VkFlags flags, const JsonOptions& options = JsonOptions()); -void FieldToJson(VkSparseMemoryBindFlags_t, nlohmann::ordered_json& jdata, const VkFlags flags, const JsonOptions& options = JsonOptions()); -void FieldToJson(VkStencilFaceFlags_t, nlohmann::ordered_json& jdata, const VkFlags flags, const JsonOptions& options = JsonOptions()); -void FieldToJson(VkStreamDescriptorSurfaceCreateFlagsGGP_t, nlohmann::ordered_json& jdata, const VkFlags flags, const JsonOptions& options = JsonOptions()); -void FieldToJson(VkSubgroupFeatureFlags_t, nlohmann::ordered_json& jdata, const VkFlags flags, const JsonOptions& options = JsonOptions()); -void FieldToJson(VkSubmitFlags_t, nlohmann::ordered_json& jdata, const VkFlags flags, const JsonOptions& options = JsonOptions()); -void FieldToJson(VkSubpassDescriptionFlags_t, nlohmann::ordered_json& jdata, const VkFlags flags, const JsonOptions& options = JsonOptions()); -void FieldToJson(VkSurfaceCounterFlagsEXT_t, nlohmann::ordered_json& jdata, const VkFlags flags, const JsonOptions& options = JsonOptions()); -void FieldToJson(VkSurfaceTransformFlagsKHR_t, nlohmann::ordered_json& jdata, const VkFlags flags, const JsonOptions& options = JsonOptions()); -void FieldToJson(VkSwapchainCreateFlagsKHR_t, nlohmann::ordered_json& jdata, const VkFlags flags, const JsonOptions& options = JsonOptions()); -void FieldToJson(VkToolPurposeFlags_t, nlohmann::ordered_json& jdata, const VkFlags flags, const JsonOptions& options = JsonOptions()); -void FieldToJson(VkValidationCacheCreateFlagsEXT_t, nlohmann::ordered_json& jdata, const VkFlags flags, const JsonOptions& options = JsonOptions()); -void FieldToJson(VkViSurfaceCreateFlagsNN_t, nlohmann::ordered_json& jdata, const VkFlags flags, const JsonOptions& options = JsonOptions()); -void FieldToJson(VkVideoBeginCodingFlagsKHR_t, nlohmann::ordered_json& jdata, const VkFlags flags, const JsonOptions& options = JsonOptions()); -void FieldToJson(VkVideoCapabilityFlagsKHR_t, nlohmann::ordered_json& jdata, const VkFlags flags, const JsonOptions& options = JsonOptions()); -void FieldToJson(VkVideoChromaSubsamplingFlagsKHR_t, nlohmann::ordered_json& jdata, const VkFlags flags, const JsonOptions& options = JsonOptions()); -void FieldToJson(VkVideoCodecOperationFlagsKHR_t, nlohmann::ordered_json& jdata, const VkFlags flags, const JsonOptions& options = JsonOptions()); -void FieldToJson(VkVideoCodingControlFlagsKHR_t, nlohmann::ordered_json& jdata, const VkFlags flags, const JsonOptions& options = JsonOptions()); -void FieldToJson(VkVideoComponentBitDepthFlagsKHR_t, nlohmann::ordered_json& jdata, const VkFlags flags, const JsonOptions& options = JsonOptions()); -void FieldToJson(VkVideoDecodeCapabilityFlagsKHR_t, nlohmann::ordered_json& jdata, const VkFlags flags, const JsonOptions& options = JsonOptions()); -void FieldToJson(VkVideoDecodeFlagsKHR_t, nlohmann::ordered_json& jdata, const VkFlags flags, const JsonOptions& options = JsonOptions()); -void FieldToJson(VkVideoDecodeH264PictureLayoutFlagsKHR_t, nlohmann::ordered_json& jdata, const VkFlags flags, const JsonOptions& options = JsonOptions()); -void FieldToJson(VkVideoDecodeUsageFlagsKHR_t, nlohmann::ordered_json& jdata, const VkFlags flags, const JsonOptions& options = JsonOptions()); -void FieldToJson(VkVideoEncodeCapabilityFlagsKHR_t, nlohmann::ordered_json& jdata, const VkFlags flags, const JsonOptions& options = JsonOptions()); -void FieldToJson(VkVideoEncodeContentFlagsKHR_t, nlohmann::ordered_json& jdata, const VkFlags flags, const JsonOptions& options = JsonOptions()); -void FieldToJson(VkVideoEncodeFeedbackFlagsKHR_t, nlohmann::ordered_json& jdata, const VkFlags flags, const JsonOptions& options = JsonOptions()); -void FieldToJson(VkVideoEncodeFlagsKHR_t, nlohmann::ordered_json& jdata, const VkFlags flags, const JsonOptions& options = JsonOptions()); -void FieldToJson(VkVideoEncodeH264CapabilityFlagsEXT_t, nlohmann::ordered_json& jdata, const VkFlags flags, const JsonOptions& options = JsonOptions()); -void FieldToJson(VkVideoEncodeH264RateControlFlagsEXT_t, nlohmann::ordered_json& jdata, const VkFlags flags, const JsonOptions& options = JsonOptions()); -void FieldToJson(VkVideoEncodeH264StdFlagsEXT_t, nlohmann::ordered_json& jdata, const VkFlags flags, const JsonOptions& options = JsonOptions()); -void FieldToJson(VkVideoEncodeH265CapabilityFlagsEXT_t, nlohmann::ordered_json& jdata, const VkFlags flags, const JsonOptions& options = JsonOptions()); -void FieldToJson(VkVideoEncodeH265CtbSizeFlagsEXT_t, nlohmann::ordered_json& jdata, const VkFlags flags, const JsonOptions& options = JsonOptions()); -void FieldToJson(VkVideoEncodeH265RateControlFlagsEXT_t, nlohmann::ordered_json& jdata, const VkFlags flags, const JsonOptions& options = JsonOptions()); -void FieldToJson(VkVideoEncodeH265StdFlagsEXT_t, nlohmann::ordered_json& jdata, const VkFlags flags, const JsonOptions& options = JsonOptions()); -void FieldToJson(VkVideoEncodeH265TransformBlockSizeFlagsEXT_t, nlohmann::ordered_json& jdata, const VkFlags flags, const JsonOptions& options = JsonOptions()); -void FieldToJson(VkVideoEncodeRateControlFlagsKHR_t, nlohmann::ordered_json& jdata, const VkFlags flags, const JsonOptions& options = JsonOptions()); -void FieldToJson(VkVideoEncodeRateControlModeFlagsKHR_t, nlohmann::ordered_json& jdata, const VkFlags flags, const JsonOptions& options = JsonOptions()); -void FieldToJson(VkVideoEncodeUsageFlagsKHR_t, nlohmann::ordered_json& jdata, const VkFlags flags, const JsonOptions& options = JsonOptions()); -void FieldToJson(VkVideoEndCodingFlagsKHR_t, nlohmann::ordered_json& jdata, const VkFlags flags, const JsonOptions& options = JsonOptions()); -void FieldToJson(VkVideoSessionCreateFlagsKHR_t, nlohmann::ordered_json& jdata, const VkFlags flags, const JsonOptions& options = JsonOptions()); -void FieldToJson(VkVideoSessionParametersCreateFlagsKHR_t, nlohmann::ordered_json& jdata, const VkFlags flags, const JsonOptions& options = JsonOptions()); -void FieldToJson(VkWaylandSurfaceCreateFlagsKHR_t, nlohmann::ordered_json& jdata, const VkFlags flags, const JsonOptions& options = JsonOptions()); -void FieldToJson(VkWin32SurfaceCreateFlagsKHR_t, nlohmann::ordered_json& jdata, const VkFlags flags, const JsonOptions& options = JsonOptions()); -void FieldToJson(VkXcbSurfaceCreateFlagsKHR_t, nlohmann::ordered_json& jdata, const VkFlags flags, const JsonOptions& options = JsonOptions()); -void FieldToJson(VkXlibSurfaceCreateFlagsKHR_t, nlohmann::ordered_json& jdata, const VkFlags flags, const JsonOptions& options = JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const StdVideoDecodeH264FieldOrderCount& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const StdVideoH264AspectRatioIdc& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const StdVideoH264CabacInitIdc& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const StdVideoH264ChromaFormatIdc& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const StdVideoH264DisableDeblockingFilterIdc& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const StdVideoH264LevelIdc& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const StdVideoH264MemMgmtControlOp& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const StdVideoH264ModificationOfPicNumsIdc& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const StdVideoH264NonVclNaluType& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const StdVideoH264PictureType& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const StdVideoH264PocType& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const StdVideoH264ProfileIdc& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const StdVideoH264SliceType& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const StdVideoH264WeightedBipredIdc& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const StdVideoH265AspectRatioIdc& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const StdVideoH265ChromaFormatIdc& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const StdVideoH265LevelIdc& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const StdVideoH265PictureType& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const StdVideoH265ProfileIdc& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const StdVideoH265SliceType& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const VkAccelerationStructureBuildTypeKHR& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const VkAccelerationStructureCompatibilityKHR& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const VkAccelerationStructureCreateFlagBitsKHR& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const VkAccelerationStructureMemoryRequirementsTypeNV& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const VkAccelerationStructureMotionInstanceTypeNV& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const VkAccelerationStructureTypeKHR& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const VkAccessFlagBits& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(VkAccessFlagBits2_t, nlohmann::ordered_json& jdata, const VkAccessFlagBits2& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const VkAcquireProfilingLockFlagBitsKHR& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const VkAttachmentDescriptionFlagBits& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const VkAttachmentLoadOp& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const VkAttachmentStoreOp& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const VkBlendFactor& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const VkBlendOp& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const VkBlendOverlapEXT& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const VkBlockMatchWindowCompareModeQCOM& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const VkBorderColor& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const VkBufferCreateFlagBits& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const VkBufferUsageFlagBits& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(VkBufferUsageFlagBits2KHR_t, nlohmann::ordered_json& jdata, const VkBufferUsageFlagBits2KHR& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const VkBuildAccelerationStructureFlagBitsKHR& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const VkBuildAccelerationStructureModeKHR& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const VkBuildMicromapFlagBitsEXT& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const VkBuildMicromapModeEXT& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const VkChromaLocation& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const VkCoarseSampleOrderTypeNV& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const VkColorComponentFlagBits& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const VkColorSpaceKHR& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const VkCommandBufferLevel& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const VkCommandBufferResetFlagBits& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const VkCommandBufferUsageFlagBits& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const VkCommandPoolCreateFlagBits& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const VkCommandPoolResetFlagBits& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const VkCompareOp& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const VkComponentSwizzle& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const VkComponentTypeKHR& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const VkCompositeAlphaFlagBitsKHR& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const VkConditionalRenderingFlagBitsEXT& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const VkConservativeRasterizationModeEXT& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const VkCopyAccelerationStructureModeKHR& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const VkCopyMicromapModeEXT& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const VkCoverageModulationModeNV& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const VkCoverageReductionModeNV& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const VkCubicFilterWeightsQCOM& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const VkCullModeFlagBits& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const VkDebugReportFlagBitsEXT& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const VkDebugReportObjectTypeEXT& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const VkDebugUtilsMessageSeverityFlagBitsEXT& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const VkDebugUtilsMessageTypeFlagBitsEXT& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const VkDependencyFlagBits& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const VkDepthBiasRepresentationEXT& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const VkDescriptorBindingFlagBits& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const VkDescriptorPoolCreateFlagBits& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const VkDescriptorSetLayoutCreateFlagBits& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const VkDescriptorType& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const VkDescriptorUpdateTemplateType& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const VkDeviceAddressBindingFlagBitsEXT& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const VkDeviceAddressBindingTypeEXT& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const VkDeviceDiagnosticsConfigFlagBitsNV& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const VkDeviceEventTypeEXT& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const VkDeviceFaultAddressTypeEXT& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const VkDeviceFaultVendorBinaryHeaderVersionEXT& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const VkDeviceGroupPresentModeFlagBitsKHR& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const VkDeviceMemoryReportEventTypeEXT& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const VkDeviceQueueCreateFlagBits& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const VkDirectDriverLoadingModeLUNARG& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const VkDiscardRectangleModeEXT& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const VkDisplacementMicromapFormatNV& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const VkDisplayEventTypeEXT& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const VkDisplayPlaneAlphaFlagBitsKHR& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const VkDisplayPowerStateEXT& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const VkDriverId& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const VkDynamicState& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const VkEventCreateFlagBits& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const VkExternalFenceFeatureFlagBits& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const VkExternalFenceHandleTypeFlagBits& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const VkExternalMemoryFeatureFlagBits& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const VkExternalMemoryFeatureFlagBitsNV& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const VkExternalMemoryHandleTypeFlagBits& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const VkExternalMemoryHandleTypeFlagBitsNV& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const VkExternalSemaphoreFeatureFlagBits& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const VkExternalSemaphoreHandleTypeFlagBits& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const VkFenceCreateFlagBits& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const VkFenceImportFlagBits& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const VkFilter& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const VkFormat& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const VkFormatFeatureFlagBits& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(VkFormatFeatureFlagBits2_t, nlohmann::ordered_json& jdata, const VkFormatFeatureFlagBits2& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const VkFragmentShadingRateCombinerOpKHR& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const VkFragmentShadingRateNV& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const VkFragmentShadingRateTypeNV& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const VkFrameBoundaryFlagBitsEXT& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const VkFramebufferCreateFlagBits& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const VkFrontFace& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const VkFullScreenExclusiveEXT& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const VkGeometryFlagBitsKHR& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const VkGeometryInstanceFlagBitsKHR& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const VkGeometryTypeKHR& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const VkGraphicsPipelineLibraryFlagBitsEXT& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const VkHostImageCopyFlagBitsEXT& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const VkImageAspectFlagBits& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const VkImageCompressionFixedRateFlagBitsEXT& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const VkImageCompressionFlagBitsEXT& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const VkImageCreateFlagBits& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const VkImageLayout& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const VkImageTiling& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const VkImageType& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const VkImageUsageFlagBits& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const VkImageViewCreateFlagBits& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const VkImageViewType& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const VkIndexType& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const VkIndirectCommandsLayoutUsageFlagBitsNV& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const VkIndirectCommandsTokenTypeNV& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const VkIndirectStateFlagBitsNV& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const VkInstanceCreateFlagBits& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const VkInternalAllocationType& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const VkLayeredDriverUnderlyingApiMSFT& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const VkLineRasterizationModeEXT& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const VkLogicOp& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const VkMemoryAllocateFlagBits& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const VkMemoryHeapFlagBits& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const VkMemoryOverallocationBehaviorAMD& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const VkMemoryPropertyFlagBits& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const VkMicromapCreateFlagBitsEXT& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const VkMicromapTypeEXT& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const VkObjectType& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const VkOpacityMicromapFormatEXT& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const VkOpacityMicromapSpecialIndexEXT& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const VkOpticalFlowExecuteFlagBitsNV& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const VkOpticalFlowGridSizeFlagBitsNV& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const VkOpticalFlowPerformanceLevelNV& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const VkOpticalFlowSessionBindingPointNV& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const VkOpticalFlowSessionCreateFlagBitsNV& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const VkOpticalFlowUsageFlagBitsNV& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const VkPeerMemoryFeatureFlagBits& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const VkPerformanceConfigurationTypeINTEL& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const VkPerformanceCounterDescriptionFlagBitsKHR& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const VkPerformanceCounterScopeKHR& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const VkPerformanceCounterStorageKHR& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const VkPerformanceCounterUnitKHR& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const VkPerformanceOverrideTypeINTEL& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const VkPerformanceParameterTypeINTEL& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const VkPerformanceValueTypeINTEL& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const VkPhysicalDeviceType& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const VkPipelineBindPoint& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const VkPipelineCacheCreateFlagBits& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const VkPipelineCacheHeaderVersion& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const VkPipelineColorBlendStateCreateFlagBits& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const VkPipelineCompilerControlFlagBitsAMD& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const VkPipelineCreateFlagBits& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(VkPipelineCreateFlagBits2KHR_t, nlohmann::ordered_json& jdata, const VkPipelineCreateFlagBits2KHR& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const VkPipelineCreationFeedbackFlagBits& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const VkPipelineDepthStencilStateCreateFlagBits& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const VkPipelineExecutableStatisticFormatKHR& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const VkPipelineLayoutCreateFlagBits& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const VkPipelineRobustnessBufferBehaviorEXT& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const VkPipelineRobustnessImageBehaviorEXT& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const VkPipelineShaderStageCreateFlagBits& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const VkPipelineStageFlagBits& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(VkPipelineStageFlagBits2_t, nlohmann::ordered_json& jdata, const VkPipelineStageFlagBits2& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const VkPointClippingBehavior& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const VkPolygonMode& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const VkPresentGravityFlagBitsEXT& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const VkPresentModeKHR& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const VkPresentScalingFlagBitsEXT& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const VkPrimitiveTopology& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const VkProvokingVertexModeEXT& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const VkQueryControlFlagBits& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const VkQueryPipelineStatisticFlagBits& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const VkQueryPoolSamplingModeINTEL& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const VkQueryResultFlagBits& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const VkQueryResultStatusKHR& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const VkQueryType& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const VkQueueFlagBits& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const VkQueueGlobalPriorityKHR& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const VkRasterizationOrderAMD& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const VkRayTracingInvocationReorderModeNV& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const VkRayTracingShaderGroupTypeKHR& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const VkRenderPassCreateFlagBits& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const VkRenderingFlagBits& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const VkResolveModeFlagBits& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const VkResult& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const VkSampleCountFlagBits& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const VkSamplerAddressMode& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const VkSamplerCreateFlagBits& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const VkSamplerMipmapMode& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const VkSamplerReductionMode& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const VkSamplerYcbcrModelConversion& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const VkSamplerYcbcrRange& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const VkScopeKHR& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const VkSemaphoreImportFlagBits& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const VkSemaphoreType& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const VkSemaphoreWaitFlagBits& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const VkShaderCodeTypeEXT& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const VkShaderCorePropertiesFlagBitsAMD& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const VkShaderCreateFlagBitsEXT& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const VkShaderFloatControlsIndependence& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const VkShaderGroupShaderKHR& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const VkShaderInfoTypeAMD& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const VkShaderStageFlagBits& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const VkShadingRatePaletteEntryNV& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const VkSharingMode& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const VkSparseImageFormatFlagBits& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const VkSparseMemoryBindFlagBits& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const VkStencilFaceFlagBits& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const VkStencilOp& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const VkStructureType& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const VkSubgroupFeatureFlagBits& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const VkSubmitFlagBits& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const VkSubpassContents& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const VkSubpassDescriptionFlagBits& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const VkSubpassMergeStatusEXT& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const VkSurfaceCounterFlagBitsEXT& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const VkSurfaceTransformFlagBitsKHR& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const VkSwapchainCreateFlagBitsKHR& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const VkSystemAllocationScope& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const VkTessellationDomainOrigin& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const VkTimeDomainEXT& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const VkToolPurposeFlagBits& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const VkValidationCacheHeaderVersionEXT& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const VkValidationCheckEXT& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const VkValidationFeatureDisableEXT& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const VkValidationFeatureEnableEXT& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const VkVendorId& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const VkVertexInputRate& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const VkVideoCapabilityFlagBitsKHR& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const VkVideoChromaSubsamplingFlagBitsKHR& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const VkVideoCodecOperationFlagBitsKHR& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const VkVideoCodingControlFlagBitsKHR& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const VkVideoComponentBitDepthFlagBitsKHR& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const VkVideoDecodeCapabilityFlagBitsKHR& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const VkVideoDecodeH264PictureLayoutFlagBitsKHR& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const VkVideoDecodeUsageFlagBitsKHR& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const VkVideoEncodeCapabilityFlagBitsKHR& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const VkVideoEncodeContentFlagBitsKHR& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const VkVideoEncodeFeedbackFlagBitsKHR& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const VkVideoEncodeH264CapabilityFlagBitsEXT& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const VkVideoEncodeH264RateControlFlagBitsEXT& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const VkVideoEncodeH264StdFlagBitsEXT& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const VkVideoEncodeH265CapabilityFlagBitsEXT& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const VkVideoEncodeH265CtbSizeFlagBitsEXT& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const VkVideoEncodeH265RateControlFlagBitsEXT& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const VkVideoEncodeH265StdFlagBitsEXT& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const VkVideoEncodeH265TransformBlockSizeFlagBitsEXT& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const VkVideoEncodeRateControlModeFlagBitsKHR& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const VkVideoEncodeTuningModeKHR& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const VkVideoEncodeUsageFlagBitsKHR& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const VkVideoSessionCreateFlagBitsKHR& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const VkViewportCoordinateSwizzleNV& value, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(VkAccelerationStructureCreateFlagsKHR_t, nlohmann::ordered_json& jdata, const VkFlags flags, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(VkAccelerationStructureMotionInfoFlagsNV_t, nlohmann::ordered_json& jdata, const VkFlags flags, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(VkAccelerationStructureMotionInstanceFlagsNV_t, nlohmann::ordered_json& jdata, const VkFlags flags, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(VkAccessFlags_t, nlohmann::ordered_json& jdata, const VkFlags flags, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(VkAccessFlags2_t, nlohmann::ordered_json& jdata, const VkFlags64 flags, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(VkAcquireProfilingLockFlagsKHR_t, nlohmann::ordered_json& jdata, const VkFlags flags, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(VkAndroidSurfaceCreateFlagsKHR_t, nlohmann::ordered_json& jdata, const VkFlags flags, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(VkAttachmentDescriptionFlags_t, nlohmann::ordered_json& jdata, const VkFlags flags, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(VkBufferCreateFlags_t, nlohmann::ordered_json& jdata, const VkFlags flags, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(VkBufferUsageFlags_t, nlohmann::ordered_json& jdata, const VkFlags flags, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(VkBufferUsageFlags2KHR_t, nlohmann::ordered_json& jdata, const VkFlags64 flags, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(VkBufferViewCreateFlags_t, nlohmann::ordered_json& jdata, const VkFlags flags, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(VkBuildAccelerationStructureFlagsKHR_t, nlohmann::ordered_json& jdata, const VkFlags flags, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(VkBuildMicromapFlagsEXT_t, nlohmann::ordered_json& jdata, const VkFlags flags, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(VkColorComponentFlags_t, nlohmann::ordered_json& jdata, const VkFlags flags, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(VkCommandBufferResetFlags_t, nlohmann::ordered_json& jdata, const VkFlags flags, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(VkCommandBufferUsageFlags_t, nlohmann::ordered_json& jdata, const VkFlags flags, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(VkCommandPoolCreateFlags_t, nlohmann::ordered_json& jdata, const VkFlags flags, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(VkCommandPoolResetFlags_t, nlohmann::ordered_json& jdata, const VkFlags flags, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(VkCommandPoolTrimFlags_t, nlohmann::ordered_json& jdata, const VkFlags flags, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(VkCompositeAlphaFlagsKHR_t, nlohmann::ordered_json& jdata, const VkFlags flags, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(VkConditionalRenderingFlagsEXT_t, nlohmann::ordered_json& jdata, const VkFlags flags, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(VkCullModeFlags_t, nlohmann::ordered_json& jdata, const VkFlags flags, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(VkDebugReportFlagsEXT_t, nlohmann::ordered_json& jdata, const VkFlags flags, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(VkDebugUtilsMessageSeverityFlagsEXT_t, nlohmann::ordered_json& jdata, const VkFlags flags, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(VkDebugUtilsMessageTypeFlagsEXT_t, nlohmann::ordered_json& jdata, const VkFlags flags, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(VkDebugUtilsMessengerCallbackDataFlagsEXT_t, nlohmann::ordered_json& jdata, const VkFlags flags, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(VkDebugUtilsMessengerCreateFlagsEXT_t, nlohmann::ordered_json& jdata, const VkFlags flags, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(VkDependencyFlags_t, nlohmann::ordered_json& jdata, const VkFlags flags, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(VkDescriptorBindingFlags_t, nlohmann::ordered_json& jdata, const VkFlags flags, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(VkDescriptorPoolCreateFlags_t, nlohmann::ordered_json& jdata, const VkFlags flags, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(VkDescriptorPoolResetFlags_t, nlohmann::ordered_json& jdata, const VkFlags flags, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(VkDescriptorSetLayoutCreateFlags_t, nlohmann::ordered_json& jdata, const VkFlags flags, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(VkDescriptorUpdateTemplateCreateFlags_t, nlohmann::ordered_json& jdata, const VkFlags flags, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(VkDeviceAddressBindingFlagsEXT_t, nlohmann::ordered_json& jdata, const VkFlags flags, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(VkDeviceCreateFlags_t, nlohmann::ordered_json& jdata, const VkFlags flags, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(VkDeviceDiagnosticsConfigFlagsNV_t, nlohmann::ordered_json& jdata, const VkFlags flags, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(VkDeviceGroupPresentModeFlagsKHR_t, nlohmann::ordered_json& jdata, const VkFlags flags, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(VkDeviceMemoryReportFlagsEXT_t, nlohmann::ordered_json& jdata, const VkFlags flags, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(VkDeviceQueueCreateFlags_t, nlohmann::ordered_json& jdata, const VkFlags flags, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(VkDirectDriverLoadingFlagsLUNARG_t, nlohmann::ordered_json& jdata, const VkFlags flags, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(VkDirectFBSurfaceCreateFlagsEXT_t, nlohmann::ordered_json& jdata, const VkFlags flags, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(VkDisplayModeCreateFlagsKHR_t, nlohmann::ordered_json& jdata, const VkFlags flags, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(VkDisplayPlaneAlphaFlagsKHR_t, nlohmann::ordered_json& jdata, const VkFlags flags, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(VkDisplaySurfaceCreateFlagsKHR_t, nlohmann::ordered_json& jdata, const VkFlags flags, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(VkEventCreateFlags_t, nlohmann::ordered_json& jdata, const VkFlags flags, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(VkExternalFenceFeatureFlags_t, nlohmann::ordered_json& jdata, const VkFlags flags, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(VkExternalFenceHandleTypeFlags_t, nlohmann::ordered_json& jdata, const VkFlags flags, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(VkExternalMemoryFeatureFlags_t, nlohmann::ordered_json& jdata, const VkFlags flags, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(VkExternalMemoryFeatureFlagsNV_t, nlohmann::ordered_json& jdata, const VkFlags flags, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(VkExternalMemoryHandleTypeFlags_t, nlohmann::ordered_json& jdata, const VkFlags flags, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(VkExternalMemoryHandleTypeFlagsNV_t, nlohmann::ordered_json& jdata, const VkFlags flags, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(VkExternalSemaphoreFeatureFlags_t, nlohmann::ordered_json& jdata, const VkFlags flags, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(VkExternalSemaphoreHandleTypeFlags_t, nlohmann::ordered_json& jdata, const VkFlags flags, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(VkFenceCreateFlags_t, nlohmann::ordered_json& jdata, const VkFlags flags, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(VkFenceImportFlags_t, nlohmann::ordered_json& jdata, const VkFlags flags, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(VkFormatFeatureFlags_t, nlohmann::ordered_json& jdata, const VkFlags flags, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(VkFormatFeatureFlags2_t, nlohmann::ordered_json& jdata, const VkFlags64 flags, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(VkFrameBoundaryFlagsEXT_t, nlohmann::ordered_json& jdata, const VkFlags flags, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(VkFramebufferCreateFlags_t, nlohmann::ordered_json& jdata, const VkFlags flags, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(VkGeometryFlagsKHR_t, nlohmann::ordered_json& jdata, const VkFlags flags, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(VkGeometryInstanceFlagsKHR_t, nlohmann::ordered_json& jdata, const VkFlags flags, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(VkGraphicsPipelineLibraryFlagsEXT_t, nlohmann::ordered_json& jdata, const VkFlags flags, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(VkHeadlessSurfaceCreateFlagsEXT_t, nlohmann::ordered_json& jdata, const VkFlags flags, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(VkHostImageCopyFlagsEXT_t, nlohmann::ordered_json& jdata, const VkFlags flags, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(VkIOSSurfaceCreateFlagsMVK_t, nlohmann::ordered_json& jdata, const VkFlags flags, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(VkImageAspectFlags_t, nlohmann::ordered_json& jdata, const VkFlags flags, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(VkImageCompressionFixedRateFlagsEXT_t, nlohmann::ordered_json& jdata, const VkFlags flags, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(VkImageCompressionFlagsEXT_t, nlohmann::ordered_json& jdata, const VkFlags flags, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(VkImageCreateFlags_t, nlohmann::ordered_json& jdata, const VkFlags flags, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(VkImagePipeSurfaceCreateFlagsFUCHSIA_t, nlohmann::ordered_json& jdata, const VkFlags flags, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(VkImageUsageFlags_t, nlohmann::ordered_json& jdata, const VkFlags flags, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(VkImageViewCreateFlags_t, nlohmann::ordered_json& jdata, const VkFlags flags, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(VkIndirectCommandsLayoutUsageFlagsNV_t, nlohmann::ordered_json& jdata, const VkFlags flags, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(VkIndirectStateFlagsNV_t, nlohmann::ordered_json& jdata, const VkFlags flags, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(VkInstanceCreateFlags_t, nlohmann::ordered_json& jdata, const VkFlags flags, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(VkMacOSSurfaceCreateFlagsMVK_t, nlohmann::ordered_json& jdata, const VkFlags flags, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(VkMemoryAllocateFlags_t, nlohmann::ordered_json& jdata, const VkFlags flags, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(VkMemoryHeapFlags_t, nlohmann::ordered_json& jdata, const VkFlags flags, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(VkMemoryMapFlags_t, nlohmann::ordered_json& jdata, const VkFlags flags, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(VkMemoryPropertyFlags_t, nlohmann::ordered_json& jdata, const VkFlags flags, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(VkMemoryUnmapFlagsKHR_t, nlohmann::ordered_json& jdata, const VkFlags flags, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(VkMetalSurfaceCreateFlagsEXT_t, nlohmann::ordered_json& jdata, const VkFlags flags, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(VkMicromapCreateFlagsEXT_t, nlohmann::ordered_json& jdata, const VkFlags flags, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(VkOpticalFlowExecuteFlagsNV_t, nlohmann::ordered_json& jdata, const VkFlags flags, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(VkOpticalFlowGridSizeFlagsNV_t, nlohmann::ordered_json& jdata, const VkFlags flags, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(VkOpticalFlowSessionCreateFlagsNV_t, nlohmann::ordered_json& jdata, const VkFlags flags, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(VkOpticalFlowUsageFlagsNV_t, nlohmann::ordered_json& jdata, const VkFlags flags, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(VkPeerMemoryFeatureFlags_t, nlohmann::ordered_json& jdata, const VkFlags flags, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(VkPerformanceCounterDescriptionFlagsKHR_t, nlohmann::ordered_json& jdata, const VkFlags flags, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(VkPipelineCacheCreateFlags_t, nlohmann::ordered_json& jdata, const VkFlags flags, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(VkPipelineColorBlendStateCreateFlags_t, nlohmann::ordered_json& jdata, const VkFlags flags, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(VkPipelineCompilerControlFlagsAMD_t, nlohmann::ordered_json& jdata, const VkFlags flags, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(VkPipelineCoverageModulationStateCreateFlagsNV_t, nlohmann::ordered_json& jdata, const VkFlags flags, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(VkPipelineCoverageReductionStateCreateFlagsNV_t, nlohmann::ordered_json& jdata, const VkFlags flags, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(VkPipelineCoverageToColorStateCreateFlagsNV_t, nlohmann::ordered_json& jdata, const VkFlags flags, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(VkPipelineCreateFlags_t, nlohmann::ordered_json& jdata, const VkFlags flags, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(VkPipelineCreateFlags2KHR_t, nlohmann::ordered_json& jdata, const VkFlags64 flags, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(VkPipelineCreationFeedbackFlags_t, nlohmann::ordered_json& jdata, const VkFlags flags, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(VkPipelineDepthStencilStateCreateFlags_t, nlohmann::ordered_json& jdata, const VkFlags flags, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(VkPipelineDiscardRectangleStateCreateFlagsEXT_t, nlohmann::ordered_json& jdata, const VkFlags flags, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(VkPipelineDynamicStateCreateFlags_t, nlohmann::ordered_json& jdata, const VkFlags flags, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(VkPipelineInputAssemblyStateCreateFlags_t, nlohmann::ordered_json& jdata, const VkFlags flags, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(VkPipelineLayoutCreateFlags_t, nlohmann::ordered_json& jdata, const VkFlags flags, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(VkPipelineMultisampleStateCreateFlags_t, nlohmann::ordered_json& jdata, const VkFlags flags, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(VkPipelineRasterizationConservativeStateCreateFlagsEXT_t, nlohmann::ordered_json& jdata, const VkFlags flags, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(VkPipelineRasterizationDepthClipStateCreateFlagsEXT_t, nlohmann::ordered_json& jdata, const VkFlags flags, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(VkPipelineRasterizationStateCreateFlags_t, nlohmann::ordered_json& jdata, const VkFlags flags, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(VkPipelineRasterizationStateStreamCreateFlagsEXT_t, nlohmann::ordered_json& jdata, const VkFlags flags, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(VkPipelineShaderStageCreateFlags_t, nlohmann::ordered_json& jdata, const VkFlags flags, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(VkPipelineStageFlags_t, nlohmann::ordered_json& jdata, const VkFlags flags, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(VkPipelineStageFlags2_t, nlohmann::ordered_json& jdata, const VkFlags64 flags, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(VkPipelineTessellationStateCreateFlags_t, nlohmann::ordered_json& jdata, const VkFlags flags, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(VkPipelineVertexInputStateCreateFlags_t, nlohmann::ordered_json& jdata, const VkFlags flags, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(VkPipelineViewportStateCreateFlags_t, nlohmann::ordered_json& jdata, const VkFlags flags, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(VkPipelineViewportSwizzleStateCreateFlagsNV_t, nlohmann::ordered_json& jdata, const VkFlags flags, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(VkPresentGravityFlagsEXT_t, nlohmann::ordered_json& jdata, const VkFlags flags, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(VkPresentScalingFlagsEXT_t, nlohmann::ordered_json& jdata, const VkFlags flags, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(VkPrivateDataSlotCreateFlags_t, nlohmann::ordered_json& jdata, const VkFlags flags, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(VkQueryControlFlags_t, nlohmann::ordered_json& jdata, const VkFlags flags, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(VkQueryPipelineStatisticFlags_t, nlohmann::ordered_json& jdata, const VkFlags flags, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(VkQueryPoolCreateFlags_t, nlohmann::ordered_json& jdata, const VkFlags flags, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(VkQueryResultFlags_t, nlohmann::ordered_json& jdata, const VkFlags flags, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(VkQueueFlags_t, nlohmann::ordered_json& jdata, const VkFlags flags, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(VkRenderPassCreateFlags_t, nlohmann::ordered_json& jdata, const VkFlags flags, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(VkRenderingFlags_t, nlohmann::ordered_json& jdata, const VkFlags flags, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(VkResolveModeFlags_t, nlohmann::ordered_json& jdata, const VkFlags flags, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(VkSampleCountFlags_t, nlohmann::ordered_json& jdata, const VkFlags flags, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(VkSamplerCreateFlags_t, nlohmann::ordered_json& jdata, const VkFlags flags, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(VkScreenSurfaceCreateFlagsQNX_t, nlohmann::ordered_json& jdata, const VkFlags flags, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(VkSemaphoreCreateFlags_t, nlohmann::ordered_json& jdata, const VkFlags flags, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(VkSemaphoreImportFlags_t, nlohmann::ordered_json& jdata, const VkFlags flags, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(VkSemaphoreWaitFlags_t, nlohmann::ordered_json& jdata, const VkFlags flags, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(VkShaderCorePropertiesFlagsAMD_t, nlohmann::ordered_json& jdata, const VkFlags flags, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(VkShaderCreateFlagsEXT_t, nlohmann::ordered_json& jdata, const VkFlags flags, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(VkShaderModuleCreateFlags_t, nlohmann::ordered_json& jdata, const VkFlags flags, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(VkShaderStageFlags_t, nlohmann::ordered_json& jdata, const VkFlags flags, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(VkSparseImageFormatFlags_t, nlohmann::ordered_json& jdata, const VkFlags flags, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(VkSparseMemoryBindFlags_t, nlohmann::ordered_json& jdata, const VkFlags flags, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(VkStencilFaceFlags_t, nlohmann::ordered_json& jdata, const VkFlags flags, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(VkStreamDescriptorSurfaceCreateFlagsGGP_t, nlohmann::ordered_json& jdata, const VkFlags flags, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(VkSubgroupFeatureFlags_t, nlohmann::ordered_json& jdata, const VkFlags flags, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(VkSubmitFlags_t, nlohmann::ordered_json& jdata, const VkFlags flags, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(VkSubpassDescriptionFlags_t, nlohmann::ordered_json& jdata, const VkFlags flags, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(VkSurfaceCounterFlagsEXT_t, nlohmann::ordered_json& jdata, const VkFlags flags, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(VkSurfaceTransformFlagsKHR_t, nlohmann::ordered_json& jdata, const VkFlags flags, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(VkSwapchainCreateFlagsKHR_t, nlohmann::ordered_json& jdata, const VkFlags flags, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(VkToolPurposeFlags_t, nlohmann::ordered_json& jdata, const VkFlags flags, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(VkValidationCacheCreateFlagsEXT_t, nlohmann::ordered_json& jdata, const VkFlags flags, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(VkViSurfaceCreateFlagsNN_t, nlohmann::ordered_json& jdata, const VkFlags flags, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(VkVideoBeginCodingFlagsKHR_t, nlohmann::ordered_json& jdata, const VkFlags flags, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(VkVideoCapabilityFlagsKHR_t, nlohmann::ordered_json& jdata, const VkFlags flags, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(VkVideoChromaSubsamplingFlagsKHR_t, nlohmann::ordered_json& jdata, const VkFlags flags, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(VkVideoCodecOperationFlagsKHR_t, nlohmann::ordered_json& jdata, const VkFlags flags, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(VkVideoCodingControlFlagsKHR_t, nlohmann::ordered_json& jdata, const VkFlags flags, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(VkVideoComponentBitDepthFlagsKHR_t, nlohmann::ordered_json& jdata, const VkFlags flags, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(VkVideoDecodeCapabilityFlagsKHR_t, nlohmann::ordered_json& jdata, const VkFlags flags, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(VkVideoDecodeFlagsKHR_t, nlohmann::ordered_json& jdata, const VkFlags flags, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(VkVideoDecodeH264PictureLayoutFlagsKHR_t, nlohmann::ordered_json& jdata, const VkFlags flags, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(VkVideoDecodeUsageFlagsKHR_t, nlohmann::ordered_json& jdata, const VkFlags flags, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(VkVideoEncodeCapabilityFlagsKHR_t, nlohmann::ordered_json& jdata, const VkFlags flags, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(VkVideoEncodeContentFlagsKHR_t, nlohmann::ordered_json& jdata, const VkFlags flags, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(VkVideoEncodeFeedbackFlagsKHR_t, nlohmann::ordered_json& jdata, const VkFlags flags, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(VkVideoEncodeFlagsKHR_t, nlohmann::ordered_json& jdata, const VkFlags flags, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(VkVideoEncodeH264CapabilityFlagsEXT_t, nlohmann::ordered_json& jdata, const VkFlags flags, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(VkVideoEncodeH264RateControlFlagsEXT_t, nlohmann::ordered_json& jdata, const VkFlags flags, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(VkVideoEncodeH264StdFlagsEXT_t, nlohmann::ordered_json& jdata, const VkFlags flags, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(VkVideoEncodeH265CapabilityFlagsEXT_t, nlohmann::ordered_json& jdata, const VkFlags flags, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(VkVideoEncodeH265CtbSizeFlagsEXT_t, nlohmann::ordered_json& jdata, const VkFlags flags, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(VkVideoEncodeH265RateControlFlagsEXT_t, nlohmann::ordered_json& jdata, const VkFlags flags, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(VkVideoEncodeH265StdFlagsEXT_t, nlohmann::ordered_json& jdata, const VkFlags flags, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(VkVideoEncodeH265TransformBlockSizeFlagsEXT_t, nlohmann::ordered_json& jdata, const VkFlags flags, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(VkVideoEncodeRateControlFlagsKHR_t, nlohmann::ordered_json& jdata, const VkFlags flags, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(VkVideoEncodeRateControlModeFlagsKHR_t, nlohmann::ordered_json& jdata, const VkFlags flags, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(VkVideoEncodeUsageFlagsKHR_t, nlohmann::ordered_json& jdata, const VkFlags flags, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(VkVideoEndCodingFlagsKHR_t, nlohmann::ordered_json& jdata, const VkFlags flags, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(VkVideoSessionCreateFlagsKHR_t, nlohmann::ordered_json& jdata, const VkFlags flags, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(VkVideoSessionParametersCreateFlagsKHR_t, nlohmann::ordered_json& jdata, const VkFlags flags, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(VkWaylandSurfaceCreateFlagsKHR_t, nlohmann::ordered_json& jdata, const VkFlags flags, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(VkWin32SurfaceCreateFlagsKHR_t, nlohmann::ordered_json& jdata, const VkFlags flags, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(VkXcbSurfaceCreateFlagsKHR_t, nlohmann::ordered_json& jdata, const VkFlags flags, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(VkXlibSurfaceCreateFlagsKHR_t, nlohmann::ordered_json& jdata, const VkFlags flags, const util::JsonOptions& options = util::JsonOptions()); GFXRECON_END_NAMESPACE(decode) GFXRECON_END_NAMESPACE(gfxrecon) diff --git a/framework/generated/generated_vulkan_export_json_consumer.cpp b/framework/generated/generated_vulkan_json_consumer.cpp similarity index 77% rename from framework/generated/generated_vulkan_export_json_consumer.cpp rename to framework/generated/generated_vulkan_json_consumer.cpp index 3ed7084e10..e85d05cf2f 100644 --- a/framework/generated/generated_vulkan_export_json_consumer.cpp +++ b/framework/generated/generated_vulkan_json_consumer.cpp @@ -27,7 +27,7 @@ */ #include "util/defines.h" -#include "generated/generated_vulkan_export_json_consumer.h" +#include "generated/generated_vulkan_json_consumer.h" #include "decode/custom_vulkan_struct_to_json.h" #include "vulkan/vulkan.h" #include "vk_video/vulkan_video_codec_h264std.h" @@ -41,6 +41,8 @@ GFXRECON_BEGIN_NAMESPACE(gfxrecon) GFXRECON_BEGIN_NAMESPACE(decode) +using util::JsonOptions; + void VulkanExportJsonConsumer::Process_vkCreateInstance( const ApiCallInfo& call_info, VkResult returnValue, @@ -49,11 +51,12 @@ void VulkanExportJsonConsumer::Process_vkCreateInstance( HandlePointerDecoder* pInstance) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCreateInstance"); - FieldToJson(jdata[NameReturn()], returnValue, json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameReturn()], returnValue, json_options); auto& args = jdata[NameArgs()]; - FieldToJson(args["pCreateInfo"], pCreateInfo, json_options_); - FieldToJson(args["pAllocator"], pAllocator, json_options_); - HandleToJson(args["pInstance"], pInstance, json_options_); + FieldToJson(args["pCreateInfo"], pCreateInfo, json_options); + FieldToJson(args["pAllocator"], pAllocator, json_options); + HandleToJson(args["pInstance"], pInstance, json_options); WriteBlockEnd(); } @@ -63,9 +66,10 @@ void VulkanExportJsonConsumer::Process_vkDestroyInstance( StructPointerDecoder* pAllocator) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkDestroyInstance"); + const JsonOptions& json_options = GetJsonOptions(); auto& args = jdata[NameArgs()]; - HandleToJson(args["instance"], instance, json_options_); - FieldToJson(args["pAllocator"], pAllocator, json_options_); + HandleToJson(args["instance"], instance, json_options); + FieldToJson(args["pAllocator"], pAllocator, json_options); WriteBlockEnd(); } @@ -77,11 +81,12 @@ void VulkanExportJsonConsumer::Process_vkEnumeratePhysicalDevices( HandlePointerDecoder* pPhysicalDevices) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkEnumeratePhysicalDevices"); - FieldToJson(jdata[NameReturn()], returnValue, json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameReturn()], returnValue, json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["instance"], instance, json_options_); - FieldToJson(args["pPhysicalDeviceCount"], pPhysicalDeviceCount, json_options_); - HandleToJson(args["pPhysicalDevices"], pPhysicalDevices, json_options_); + HandleToJson(args["instance"], instance, json_options); + FieldToJson(args["pPhysicalDeviceCount"], pPhysicalDeviceCount, json_options); + HandleToJson(args["pPhysicalDevices"], pPhysicalDevices, json_options); WriteBlockEnd(); } @@ -91,9 +96,10 @@ void VulkanExportJsonConsumer::Process_vkGetPhysicalDeviceFeatures( StructPointerDecoder* pFeatures) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkGetPhysicalDeviceFeatures"); + const JsonOptions& json_options = GetJsonOptions(); auto& args = jdata[NameArgs()]; - HandleToJson(args["physicalDevice"], physicalDevice, json_options_); - FieldToJson(args["pFeatures"], pFeatures, json_options_); + HandleToJson(args["physicalDevice"], physicalDevice, json_options); + FieldToJson(args["pFeatures"], pFeatures, json_options); WriteBlockEnd(); } @@ -104,10 +110,11 @@ void VulkanExportJsonConsumer::Process_vkGetPhysicalDeviceFormatProperties( StructPointerDecoder* pFormatProperties) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkGetPhysicalDeviceFormatProperties"); + const JsonOptions& json_options = GetJsonOptions(); auto& args = jdata[NameArgs()]; - HandleToJson(args["physicalDevice"], physicalDevice, json_options_); - FieldToJson(args["format"], format, json_options_); - FieldToJson(args["pFormatProperties"], pFormatProperties, json_options_); + HandleToJson(args["physicalDevice"], physicalDevice, json_options); + FieldToJson(args["format"], format, json_options); + FieldToJson(args["pFormatProperties"], pFormatProperties, json_options); WriteBlockEnd(); } @@ -123,15 +130,16 @@ void VulkanExportJsonConsumer::Process_vkGetPhysicalDeviceImageFormatProperties( StructPointerDecoder* pImageFormatProperties) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkGetPhysicalDeviceImageFormatProperties"); - FieldToJson(jdata[NameReturn()], returnValue, json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameReturn()], returnValue, json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["physicalDevice"], physicalDevice, json_options_); - FieldToJson(args["format"], format, json_options_); - FieldToJson(args["type"], type, json_options_); - FieldToJson(args["tiling"], tiling, json_options_); - FieldToJson(VkImageUsageFlags_t(), args["usage"], usage, json_options_); - FieldToJson(VkImageCreateFlags_t(), args["flags"], flags, json_options_); - FieldToJson(args["pImageFormatProperties"], pImageFormatProperties, json_options_); + HandleToJson(args["physicalDevice"], physicalDevice, json_options); + FieldToJson(args["format"], format, json_options); + FieldToJson(args["type"], type, json_options); + FieldToJson(args["tiling"], tiling, json_options); + FieldToJson(VkImageUsageFlags_t(), args["usage"], usage, json_options); + FieldToJson(VkImageCreateFlags_t(), args["flags"], flags, json_options); + FieldToJson(args["pImageFormatProperties"], pImageFormatProperties, json_options); WriteBlockEnd(); } @@ -141,9 +149,10 @@ void VulkanExportJsonConsumer::Process_vkGetPhysicalDeviceProperties( StructPointerDecoder* pProperties) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkGetPhysicalDeviceProperties"); + const JsonOptions& json_options = GetJsonOptions(); auto& args = jdata[NameArgs()]; - HandleToJson(args["physicalDevice"], physicalDevice, json_options_); - FieldToJson(args["pProperties"], pProperties, json_options_); + HandleToJson(args["physicalDevice"], physicalDevice, json_options); + FieldToJson(args["pProperties"], pProperties, json_options); WriteBlockEnd(); } @@ -154,10 +163,11 @@ void VulkanExportJsonConsumer::Process_vkGetPhysicalDeviceQueueFamilyProperties( StructPointerDecoder* pQueueFamilyProperties) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkGetPhysicalDeviceQueueFamilyProperties"); + const JsonOptions& json_options = GetJsonOptions(); auto& args = jdata[NameArgs()]; - HandleToJson(args["physicalDevice"], physicalDevice, json_options_); - FieldToJson(args["pQueueFamilyPropertyCount"], pQueueFamilyPropertyCount, json_options_); - FieldToJson(args["pQueueFamilyProperties"], pQueueFamilyProperties, json_options_); + HandleToJson(args["physicalDevice"], physicalDevice, json_options); + FieldToJson(args["pQueueFamilyPropertyCount"], pQueueFamilyPropertyCount, json_options); + FieldToJson(args["pQueueFamilyProperties"], pQueueFamilyProperties, json_options); WriteBlockEnd(); } @@ -167,9 +177,10 @@ void VulkanExportJsonConsumer::Process_vkGetPhysicalDeviceMemoryProperties( StructPointerDecoder* pMemoryProperties) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkGetPhysicalDeviceMemoryProperties"); + const JsonOptions& json_options = GetJsonOptions(); auto& args = jdata[NameArgs()]; - HandleToJson(args["physicalDevice"], physicalDevice, json_options_); - FieldToJson(args["pMemoryProperties"], pMemoryProperties, json_options_); + HandleToJson(args["physicalDevice"], physicalDevice, json_options); + FieldToJson(args["pMemoryProperties"], pMemoryProperties, json_options); WriteBlockEnd(); } @@ -182,12 +193,13 @@ void VulkanExportJsonConsumer::Process_vkCreateDevice( HandlePointerDecoder* pDevice) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCreateDevice"); - FieldToJson(jdata[NameReturn()], returnValue, json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameReturn()], returnValue, json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["physicalDevice"], physicalDevice, json_options_); - FieldToJson(args["pCreateInfo"], pCreateInfo, json_options_); - FieldToJson(args["pAllocator"], pAllocator, json_options_); - HandleToJson(args["pDevice"], pDevice, json_options_); + HandleToJson(args["physicalDevice"], physicalDevice, json_options); + FieldToJson(args["pCreateInfo"], pCreateInfo, json_options); + FieldToJson(args["pAllocator"], pAllocator, json_options); + HandleToJson(args["pDevice"], pDevice, json_options); WriteBlockEnd(); } @@ -197,9 +209,10 @@ void VulkanExportJsonConsumer::Process_vkDestroyDevice( StructPointerDecoder* pAllocator) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkDestroyDevice"); + const JsonOptions& json_options = GetJsonOptions(); auto& args = jdata[NameArgs()]; - HandleToJson(args["device"], device, json_options_); - FieldToJson(args["pAllocator"], pAllocator, json_options_); + HandleToJson(args["device"], device, json_options); + FieldToJson(args["pAllocator"], pAllocator, json_options); WriteBlockEnd(); } @@ -211,11 +224,12 @@ void VulkanExportJsonConsumer::Process_vkGetDeviceQueue( HandlePointerDecoder* pQueue) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkGetDeviceQueue"); + const JsonOptions& json_options = GetJsonOptions(); auto& args = jdata[NameArgs()]; - HandleToJson(args["device"], device, json_options_); - FieldToJson(args["queueFamilyIndex"], queueFamilyIndex, json_options_); - FieldToJson(args["queueIndex"], queueIndex, json_options_); - HandleToJson(args["pQueue"], pQueue, json_options_); + HandleToJson(args["device"], device, json_options); + FieldToJson(args["queueFamilyIndex"], queueFamilyIndex, json_options); + FieldToJson(args["queueIndex"], queueIndex, json_options); + HandleToJson(args["pQueue"], pQueue, json_options); WriteBlockEnd(); } @@ -228,13 +242,14 @@ void VulkanExportJsonConsumer::Process_vkQueueSubmit( format::HandleId fence) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkQueueSubmit"); - FieldToJson(jdata[NameSubmitIndex()], ++submit_index_, json_options_); - FieldToJson(jdata[NameReturn()], returnValue, json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameSubmitIndex()], ++submit_index_, json_options); + FieldToJson(jdata[NameReturn()], returnValue, json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["queue"], queue, json_options_); - FieldToJson(args["submitCount"], submitCount, json_options_); - FieldToJson(args["pSubmits"], pSubmits, json_options_); - HandleToJson(args["fence"], fence, json_options_); + HandleToJson(args["queue"], queue, json_options); + FieldToJson(args["submitCount"], submitCount, json_options); + FieldToJson(args["pSubmits"], pSubmits, json_options); + HandleToJson(args["fence"], fence, json_options); WriteBlockEnd(); } @@ -244,9 +259,10 @@ void VulkanExportJsonConsumer::Process_vkQueueWaitIdle( format::HandleId queue) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkQueueWaitIdle"); - FieldToJson(jdata[NameReturn()], returnValue, json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameReturn()], returnValue, json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["queue"], queue, json_options_); + HandleToJson(args["queue"], queue, json_options); WriteBlockEnd(); } @@ -256,9 +272,10 @@ void VulkanExportJsonConsumer::Process_vkDeviceWaitIdle( format::HandleId device) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkDeviceWaitIdle"); - FieldToJson(jdata[NameReturn()], returnValue, json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameReturn()], returnValue, json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["device"], device, json_options_); + HandleToJson(args["device"], device, json_options); WriteBlockEnd(); } @@ -271,12 +288,13 @@ void VulkanExportJsonConsumer::Process_vkAllocateMemory( HandlePointerDecoder* pMemory) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkAllocateMemory"); - FieldToJson(jdata[NameReturn()], returnValue, json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameReturn()], returnValue, json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["device"], device, json_options_); - FieldToJson(args["pAllocateInfo"], pAllocateInfo, json_options_); - FieldToJson(args["pAllocator"], pAllocator, json_options_); - HandleToJson(args["pMemory"], pMemory, json_options_); + HandleToJson(args["device"], device, json_options); + FieldToJson(args["pAllocateInfo"], pAllocateInfo, json_options); + FieldToJson(args["pAllocator"], pAllocator, json_options); + HandleToJson(args["pMemory"], pMemory, json_options); WriteBlockEnd(); } @@ -287,10 +305,11 @@ void VulkanExportJsonConsumer::Process_vkFreeMemory( StructPointerDecoder* pAllocator) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkFreeMemory"); + const JsonOptions& json_options = GetJsonOptions(); auto& args = jdata[NameArgs()]; - HandleToJson(args["device"], device, json_options_); - HandleToJson(args["memory"], memory, json_options_); - FieldToJson(args["pAllocator"], pAllocator, json_options_); + HandleToJson(args["device"], device, json_options); + HandleToJson(args["memory"], memory, json_options); + FieldToJson(args["pAllocator"], pAllocator, json_options); WriteBlockEnd(); } @@ -305,14 +324,15 @@ void VulkanExportJsonConsumer::Process_vkMapMemory( PointerDecoder* ppData) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkMapMemory"); - FieldToJson(jdata[NameReturn()], returnValue, json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameReturn()], returnValue, json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["device"], device, json_options_); - HandleToJson(args["memory"], memory, json_options_); - FieldToJson(args["offset"], offset, json_options_); - FieldToJson(args["size"], size, json_options_); - FieldToJson(VkMemoryMapFlags_t(), args["flags"], flags, json_options_); - FieldToJsonAsHex(args["ppData"], ppData, json_options_); + HandleToJson(args["device"], device, json_options); + HandleToJson(args["memory"], memory, json_options); + FieldToJson(args["offset"], offset, json_options); + FieldToJson(args["size"], size, json_options); + FieldToJson(VkMemoryMapFlags_t(), args["flags"], flags, json_options); + FieldToJsonAsHex(args["ppData"], ppData, json_options); WriteBlockEnd(); } @@ -322,9 +342,10 @@ void VulkanExportJsonConsumer::Process_vkUnmapMemory( format::HandleId memory) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkUnmapMemory"); + const JsonOptions& json_options = GetJsonOptions(); auto& args = jdata[NameArgs()]; - HandleToJson(args["device"], device, json_options_); - HandleToJson(args["memory"], memory, json_options_); + HandleToJson(args["device"], device, json_options); + HandleToJson(args["memory"], memory, json_options); WriteBlockEnd(); } @@ -336,11 +357,12 @@ void VulkanExportJsonConsumer::Process_vkFlushMappedMemoryRanges( StructPointerDecoder* pMemoryRanges) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkFlushMappedMemoryRanges"); - FieldToJson(jdata[NameReturn()], returnValue, json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameReturn()], returnValue, json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["device"], device, json_options_); - FieldToJson(args["memoryRangeCount"], memoryRangeCount, json_options_); - FieldToJson(args["pMemoryRanges"], pMemoryRanges, json_options_); + HandleToJson(args["device"], device, json_options); + FieldToJson(args["memoryRangeCount"], memoryRangeCount, json_options); + FieldToJson(args["pMemoryRanges"], pMemoryRanges, json_options); WriteBlockEnd(); } @@ -352,11 +374,12 @@ void VulkanExportJsonConsumer::Process_vkInvalidateMappedMemoryRanges( StructPointerDecoder* pMemoryRanges) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkInvalidateMappedMemoryRanges"); - FieldToJson(jdata[NameReturn()], returnValue, json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameReturn()], returnValue, json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["device"], device, json_options_); - FieldToJson(args["memoryRangeCount"], memoryRangeCount, json_options_); - FieldToJson(args["pMemoryRanges"], pMemoryRanges, json_options_); + HandleToJson(args["device"], device, json_options); + FieldToJson(args["memoryRangeCount"], memoryRangeCount, json_options); + FieldToJson(args["pMemoryRanges"], pMemoryRanges, json_options); WriteBlockEnd(); } @@ -367,10 +390,11 @@ void VulkanExportJsonConsumer::Process_vkGetDeviceMemoryCommitment( PointerDecoder* pCommittedMemoryInBytes) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkGetDeviceMemoryCommitment"); + const JsonOptions& json_options = GetJsonOptions(); auto& args = jdata[NameArgs()]; - HandleToJson(args["device"], device, json_options_); - HandleToJson(args["memory"], memory, json_options_); - FieldToJson(args["pCommittedMemoryInBytes"], pCommittedMemoryInBytes, json_options_); + HandleToJson(args["device"], device, json_options); + HandleToJson(args["memory"], memory, json_options); + FieldToJson(args["pCommittedMemoryInBytes"], pCommittedMemoryInBytes, json_options); WriteBlockEnd(); } @@ -383,12 +407,13 @@ void VulkanExportJsonConsumer::Process_vkBindBufferMemory( VkDeviceSize memoryOffset) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkBindBufferMemory"); - FieldToJson(jdata[NameReturn()], returnValue, json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameReturn()], returnValue, json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["device"], device, json_options_); - HandleToJson(args["buffer"], buffer, json_options_); - HandleToJson(args["memory"], memory, json_options_); - FieldToJson(args["memoryOffset"], memoryOffset, json_options_); + HandleToJson(args["device"], device, json_options); + HandleToJson(args["buffer"], buffer, json_options); + HandleToJson(args["memory"], memory, json_options); + FieldToJson(args["memoryOffset"], memoryOffset, json_options); WriteBlockEnd(); } @@ -401,12 +426,13 @@ void VulkanExportJsonConsumer::Process_vkBindImageMemory( VkDeviceSize memoryOffset) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkBindImageMemory"); - FieldToJson(jdata[NameReturn()], returnValue, json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameReturn()], returnValue, json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["device"], device, json_options_); - HandleToJson(args["image"], image, json_options_); - HandleToJson(args["memory"], memory, json_options_); - FieldToJson(args["memoryOffset"], memoryOffset, json_options_); + HandleToJson(args["device"], device, json_options); + HandleToJson(args["image"], image, json_options); + HandleToJson(args["memory"], memory, json_options); + FieldToJson(args["memoryOffset"], memoryOffset, json_options); WriteBlockEnd(); } @@ -417,10 +443,11 @@ void VulkanExportJsonConsumer::Process_vkGetBufferMemoryRequirements( StructPointerDecoder* pMemoryRequirements) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkGetBufferMemoryRequirements"); + const JsonOptions& json_options = GetJsonOptions(); auto& args = jdata[NameArgs()]; - HandleToJson(args["device"], device, json_options_); - HandleToJson(args["buffer"], buffer, json_options_); - FieldToJson(args["pMemoryRequirements"], pMemoryRequirements, json_options_); + HandleToJson(args["device"], device, json_options); + HandleToJson(args["buffer"], buffer, json_options); + FieldToJson(args["pMemoryRequirements"], pMemoryRequirements, json_options); WriteBlockEnd(); } @@ -431,10 +458,11 @@ void VulkanExportJsonConsumer::Process_vkGetImageMemoryRequirements( StructPointerDecoder* pMemoryRequirements) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkGetImageMemoryRequirements"); + const JsonOptions& json_options = GetJsonOptions(); auto& args = jdata[NameArgs()]; - HandleToJson(args["device"], device, json_options_); - HandleToJson(args["image"], image, json_options_); - FieldToJson(args["pMemoryRequirements"], pMemoryRequirements, json_options_); + HandleToJson(args["device"], device, json_options); + HandleToJson(args["image"], image, json_options); + FieldToJson(args["pMemoryRequirements"], pMemoryRequirements, json_options); WriteBlockEnd(); } @@ -446,11 +474,12 @@ void VulkanExportJsonConsumer::Process_vkGetImageSparseMemoryRequirements( StructPointerDecoder* pSparseMemoryRequirements) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkGetImageSparseMemoryRequirements"); + const JsonOptions& json_options = GetJsonOptions(); auto& args = jdata[NameArgs()]; - HandleToJson(args["device"], device, json_options_); - HandleToJson(args["image"], image, json_options_); - FieldToJson(args["pSparseMemoryRequirementCount"], pSparseMemoryRequirementCount, json_options_); - FieldToJson(args["pSparseMemoryRequirements"], pSparseMemoryRequirements, json_options_); + HandleToJson(args["device"], device, json_options); + HandleToJson(args["image"], image, json_options); + FieldToJson(args["pSparseMemoryRequirementCount"], pSparseMemoryRequirementCount, json_options); + FieldToJson(args["pSparseMemoryRequirements"], pSparseMemoryRequirements, json_options); WriteBlockEnd(); } @@ -466,15 +495,16 @@ void VulkanExportJsonConsumer::Process_vkGetPhysicalDeviceSparseImageFormatPrope StructPointerDecoder* pProperties) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkGetPhysicalDeviceSparseImageFormatProperties"); + const JsonOptions& json_options = GetJsonOptions(); auto& args = jdata[NameArgs()]; - HandleToJson(args["physicalDevice"], physicalDevice, json_options_); - FieldToJson(args["format"], format, json_options_); - FieldToJson(args["type"], type, json_options_); - FieldToJson(args["samples"], samples, json_options_); - FieldToJson(VkImageUsageFlags_t(), args["usage"], usage, json_options_); - FieldToJson(args["tiling"], tiling, json_options_); - FieldToJson(args["pPropertyCount"], pPropertyCount, json_options_); - FieldToJson(args["pProperties"], pProperties, json_options_); + HandleToJson(args["physicalDevice"], physicalDevice, json_options); + FieldToJson(args["format"], format, json_options); + FieldToJson(args["type"], type, json_options); + FieldToJson(args["samples"], samples, json_options); + FieldToJson(VkImageUsageFlags_t(), args["usage"], usage, json_options); + FieldToJson(args["tiling"], tiling, json_options); + FieldToJson(args["pPropertyCount"], pPropertyCount, json_options); + FieldToJson(args["pProperties"], pProperties, json_options); WriteBlockEnd(); } @@ -487,12 +517,13 @@ void VulkanExportJsonConsumer::Process_vkQueueBindSparse( format::HandleId fence) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkQueueBindSparse"); - FieldToJson(jdata[NameReturn()], returnValue, json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameReturn()], returnValue, json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["queue"], queue, json_options_); - FieldToJson(args["bindInfoCount"], bindInfoCount, json_options_); - FieldToJson(args["pBindInfo"], pBindInfo, json_options_); - HandleToJson(args["fence"], fence, json_options_); + HandleToJson(args["queue"], queue, json_options); + FieldToJson(args["bindInfoCount"], bindInfoCount, json_options); + FieldToJson(args["pBindInfo"], pBindInfo, json_options); + HandleToJson(args["fence"], fence, json_options); WriteBlockEnd(); } @@ -505,12 +536,13 @@ void VulkanExportJsonConsumer::Process_vkCreateFence( HandlePointerDecoder* pFence) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCreateFence"); - FieldToJson(jdata[NameReturn()], returnValue, json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameReturn()], returnValue, json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["device"], device, json_options_); - FieldToJson(args["pCreateInfo"], pCreateInfo, json_options_); - FieldToJson(args["pAllocator"], pAllocator, json_options_); - HandleToJson(args["pFence"], pFence, json_options_); + HandleToJson(args["device"], device, json_options); + FieldToJson(args["pCreateInfo"], pCreateInfo, json_options); + FieldToJson(args["pAllocator"], pAllocator, json_options); + HandleToJson(args["pFence"], pFence, json_options); WriteBlockEnd(); } @@ -521,10 +553,11 @@ void VulkanExportJsonConsumer::Process_vkDestroyFence( StructPointerDecoder* pAllocator) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkDestroyFence"); + const JsonOptions& json_options = GetJsonOptions(); auto& args = jdata[NameArgs()]; - HandleToJson(args["device"], device, json_options_); - HandleToJson(args["fence"], fence, json_options_); - FieldToJson(args["pAllocator"], pAllocator, json_options_); + HandleToJson(args["device"], device, json_options); + HandleToJson(args["fence"], fence, json_options); + FieldToJson(args["pAllocator"], pAllocator, json_options); WriteBlockEnd(); } @@ -536,11 +569,12 @@ void VulkanExportJsonConsumer::Process_vkResetFences( HandlePointerDecoder* pFences) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkResetFences"); - FieldToJson(jdata[NameReturn()], returnValue, json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameReturn()], returnValue, json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["device"], device, json_options_); - FieldToJson(args["fenceCount"], fenceCount, json_options_); - HandleToJson(args["pFences"], pFences, json_options_); + HandleToJson(args["device"], device, json_options); + FieldToJson(args["fenceCount"], fenceCount, json_options); + HandleToJson(args["pFences"], pFences, json_options); WriteBlockEnd(); } @@ -551,10 +585,11 @@ void VulkanExportJsonConsumer::Process_vkGetFenceStatus( format::HandleId fence) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkGetFenceStatus"); - FieldToJson(jdata[NameReturn()], returnValue, json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameReturn()], returnValue, json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["device"], device, json_options_); - HandleToJson(args["fence"], fence, json_options_); + HandleToJson(args["device"], device, json_options); + HandleToJson(args["fence"], fence, json_options); WriteBlockEnd(); } @@ -568,13 +603,14 @@ void VulkanExportJsonConsumer::Process_vkWaitForFences( uint64_t timeout) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkWaitForFences"); - FieldToJson(jdata[NameReturn()], returnValue, json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameReturn()], returnValue, json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["device"], device, json_options_); - FieldToJson(args["fenceCount"], fenceCount, json_options_); - HandleToJson(args["pFences"], pFences, json_options_); - VkBool32ToJson(args["waitAll"], waitAll, json_options_); - FieldToJson(args["timeout"], timeout, json_options_); + HandleToJson(args["device"], device, json_options); + FieldToJson(args["fenceCount"], fenceCount, json_options); + HandleToJson(args["pFences"], pFences, json_options); + Bool32ToJson(args["waitAll"], waitAll, json_options); + FieldToJson(args["timeout"], timeout, json_options); WriteBlockEnd(); } @@ -587,12 +623,13 @@ void VulkanExportJsonConsumer::Process_vkCreateSemaphore( HandlePointerDecoder* pSemaphore) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCreateSemaphore"); - FieldToJson(jdata[NameReturn()], returnValue, json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameReturn()], returnValue, json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["device"], device, json_options_); - FieldToJson(args["pCreateInfo"], pCreateInfo, json_options_); - FieldToJson(args["pAllocator"], pAllocator, json_options_); - HandleToJson(args["pSemaphore"], pSemaphore, json_options_); + HandleToJson(args["device"], device, json_options); + FieldToJson(args["pCreateInfo"], pCreateInfo, json_options); + FieldToJson(args["pAllocator"], pAllocator, json_options); + HandleToJson(args["pSemaphore"], pSemaphore, json_options); WriteBlockEnd(); } @@ -603,10 +640,11 @@ void VulkanExportJsonConsumer::Process_vkDestroySemaphore( StructPointerDecoder* pAllocator) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkDestroySemaphore"); + const JsonOptions& json_options = GetJsonOptions(); auto& args = jdata[NameArgs()]; - HandleToJson(args["device"], device, json_options_); - HandleToJson(args["semaphore"], semaphore, json_options_); - FieldToJson(args["pAllocator"], pAllocator, json_options_); + HandleToJson(args["device"], device, json_options); + HandleToJson(args["semaphore"], semaphore, json_options); + FieldToJson(args["pAllocator"], pAllocator, json_options); WriteBlockEnd(); } @@ -619,12 +657,13 @@ void VulkanExportJsonConsumer::Process_vkCreateEvent( HandlePointerDecoder* pEvent) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCreateEvent"); - FieldToJson(jdata[NameReturn()], returnValue, json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameReturn()], returnValue, json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["device"], device, json_options_); - FieldToJson(args["pCreateInfo"], pCreateInfo, json_options_); - FieldToJson(args["pAllocator"], pAllocator, json_options_); - HandleToJson(args["pEvent"], pEvent, json_options_); + HandleToJson(args["device"], device, json_options); + FieldToJson(args["pCreateInfo"], pCreateInfo, json_options); + FieldToJson(args["pAllocator"], pAllocator, json_options); + HandleToJson(args["pEvent"], pEvent, json_options); WriteBlockEnd(); } @@ -635,10 +674,11 @@ void VulkanExportJsonConsumer::Process_vkDestroyEvent( StructPointerDecoder* pAllocator) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkDestroyEvent"); + const JsonOptions& json_options = GetJsonOptions(); auto& args = jdata[NameArgs()]; - HandleToJson(args["device"], device, json_options_); - HandleToJson(args["event"], event, json_options_); - FieldToJson(args["pAllocator"], pAllocator, json_options_); + HandleToJson(args["device"], device, json_options); + HandleToJson(args["event"], event, json_options); + FieldToJson(args["pAllocator"], pAllocator, json_options); WriteBlockEnd(); } @@ -649,10 +689,11 @@ void VulkanExportJsonConsumer::Process_vkGetEventStatus( format::HandleId event) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkGetEventStatus"); - FieldToJson(jdata[NameReturn()], returnValue, json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameReturn()], returnValue, json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["device"], device, json_options_); - HandleToJson(args["event"], event, json_options_); + HandleToJson(args["device"], device, json_options); + HandleToJson(args["event"], event, json_options); WriteBlockEnd(); } @@ -663,10 +704,11 @@ void VulkanExportJsonConsumer::Process_vkSetEvent( format::HandleId event) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkSetEvent"); - FieldToJson(jdata[NameReturn()], returnValue, json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameReturn()], returnValue, json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["device"], device, json_options_); - HandleToJson(args["event"], event, json_options_); + HandleToJson(args["device"], device, json_options); + HandleToJson(args["event"], event, json_options); WriteBlockEnd(); } @@ -677,10 +719,11 @@ void VulkanExportJsonConsumer::Process_vkResetEvent( format::HandleId event) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkResetEvent"); - FieldToJson(jdata[NameReturn()], returnValue, json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameReturn()], returnValue, json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["device"], device, json_options_); - HandleToJson(args["event"], event, json_options_); + HandleToJson(args["device"], device, json_options); + HandleToJson(args["event"], event, json_options); WriteBlockEnd(); } @@ -693,12 +736,13 @@ void VulkanExportJsonConsumer::Process_vkCreateQueryPool( HandlePointerDecoder* pQueryPool) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCreateQueryPool"); - FieldToJson(jdata[NameReturn()], returnValue, json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameReturn()], returnValue, json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["device"], device, json_options_); - FieldToJson(args["pCreateInfo"], pCreateInfo, json_options_); - FieldToJson(args["pAllocator"], pAllocator, json_options_); - HandleToJson(args["pQueryPool"], pQueryPool, json_options_); + HandleToJson(args["device"], device, json_options); + FieldToJson(args["pCreateInfo"], pCreateInfo, json_options); + FieldToJson(args["pAllocator"], pAllocator, json_options); + HandleToJson(args["pQueryPool"], pQueryPool, json_options); WriteBlockEnd(); } @@ -709,10 +753,11 @@ void VulkanExportJsonConsumer::Process_vkDestroyQueryPool( StructPointerDecoder* pAllocator) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkDestroyQueryPool"); + const JsonOptions& json_options = GetJsonOptions(); auto& args = jdata[NameArgs()]; - HandleToJson(args["device"], device, json_options_); - HandleToJson(args["queryPool"], queryPool, json_options_); - FieldToJson(args["pAllocator"], pAllocator, json_options_); + HandleToJson(args["device"], device, json_options); + HandleToJson(args["queryPool"], queryPool, json_options); + FieldToJson(args["pAllocator"], pAllocator, json_options); WriteBlockEnd(); } @@ -729,16 +774,17 @@ void VulkanExportJsonConsumer::Process_vkGetQueryPoolResults( VkQueryResultFlags flags) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkGetQueryPoolResults"); - FieldToJson(jdata[NameReturn()], returnValue, json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameReturn()], returnValue, json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["device"], device, json_options_); - HandleToJson(args["queryPool"], queryPool, json_options_); - FieldToJson(args["firstQuery"], firstQuery, json_options_); - FieldToJson(args["queryCount"], queryCount, json_options_); - FieldToJson(args["dataSize"], dataSize, json_options_); - FieldToJson(args["pData"], pData, json_options_); - FieldToJson(args["stride"], stride, json_options_); - FieldToJson(VkQueryResultFlags_t(), args["flags"], flags, json_options_); + HandleToJson(args["device"], device, json_options); + HandleToJson(args["queryPool"], queryPool, json_options); + FieldToJson(args["firstQuery"], firstQuery, json_options); + FieldToJson(args["queryCount"], queryCount, json_options); + FieldToJson(args["dataSize"], dataSize, json_options); + FieldToJson(args["pData"], pData, json_options); + FieldToJson(args["stride"], stride, json_options); + FieldToJson(VkQueryResultFlags_t(), args["flags"], flags, json_options); WriteBlockEnd(); } @@ -751,12 +797,13 @@ void VulkanExportJsonConsumer::Process_vkCreateBuffer( HandlePointerDecoder* pBuffer) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCreateBuffer"); - FieldToJson(jdata[NameReturn()], returnValue, json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameReturn()], returnValue, json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["device"], device, json_options_); - FieldToJson(args["pCreateInfo"], pCreateInfo, json_options_); - FieldToJson(args["pAllocator"], pAllocator, json_options_); - HandleToJson(args["pBuffer"], pBuffer, json_options_); + HandleToJson(args["device"], device, json_options); + FieldToJson(args["pCreateInfo"], pCreateInfo, json_options); + FieldToJson(args["pAllocator"], pAllocator, json_options); + HandleToJson(args["pBuffer"], pBuffer, json_options); WriteBlockEnd(); } @@ -767,10 +814,11 @@ void VulkanExportJsonConsumer::Process_vkDestroyBuffer( StructPointerDecoder* pAllocator) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkDestroyBuffer"); + const JsonOptions& json_options = GetJsonOptions(); auto& args = jdata[NameArgs()]; - HandleToJson(args["device"], device, json_options_); - HandleToJson(args["buffer"], buffer, json_options_); - FieldToJson(args["pAllocator"], pAllocator, json_options_); + HandleToJson(args["device"], device, json_options); + HandleToJson(args["buffer"], buffer, json_options); + FieldToJson(args["pAllocator"], pAllocator, json_options); WriteBlockEnd(); } @@ -783,12 +831,13 @@ void VulkanExportJsonConsumer::Process_vkCreateBufferView( HandlePointerDecoder* pView) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCreateBufferView"); - FieldToJson(jdata[NameReturn()], returnValue, json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameReturn()], returnValue, json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["device"], device, json_options_); - FieldToJson(args["pCreateInfo"], pCreateInfo, json_options_); - FieldToJson(args["pAllocator"], pAllocator, json_options_); - HandleToJson(args["pView"], pView, json_options_); + HandleToJson(args["device"], device, json_options); + FieldToJson(args["pCreateInfo"], pCreateInfo, json_options); + FieldToJson(args["pAllocator"], pAllocator, json_options); + HandleToJson(args["pView"], pView, json_options); WriteBlockEnd(); } @@ -799,10 +848,11 @@ void VulkanExportJsonConsumer::Process_vkDestroyBufferView( StructPointerDecoder* pAllocator) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkDestroyBufferView"); + const JsonOptions& json_options = GetJsonOptions(); auto& args = jdata[NameArgs()]; - HandleToJson(args["device"], device, json_options_); - HandleToJson(args["bufferView"], bufferView, json_options_); - FieldToJson(args["pAllocator"], pAllocator, json_options_); + HandleToJson(args["device"], device, json_options); + HandleToJson(args["bufferView"], bufferView, json_options); + FieldToJson(args["pAllocator"], pAllocator, json_options); WriteBlockEnd(); } @@ -815,12 +865,13 @@ void VulkanExportJsonConsumer::Process_vkCreateImage( HandlePointerDecoder* pImage) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCreateImage"); - FieldToJson(jdata[NameReturn()], returnValue, json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameReturn()], returnValue, json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["device"], device, json_options_); - FieldToJson(args["pCreateInfo"], pCreateInfo, json_options_); - FieldToJson(args["pAllocator"], pAllocator, json_options_); - HandleToJson(args["pImage"], pImage, json_options_); + HandleToJson(args["device"], device, json_options); + FieldToJson(args["pCreateInfo"], pCreateInfo, json_options); + FieldToJson(args["pAllocator"], pAllocator, json_options); + HandleToJson(args["pImage"], pImage, json_options); WriteBlockEnd(); } @@ -831,10 +882,11 @@ void VulkanExportJsonConsumer::Process_vkDestroyImage( StructPointerDecoder* pAllocator) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkDestroyImage"); + const JsonOptions& json_options = GetJsonOptions(); auto& args = jdata[NameArgs()]; - HandleToJson(args["device"], device, json_options_); - HandleToJson(args["image"], image, json_options_); - FieldToJson(args["pAllocator"], pAllocator, json_options_); + HandleToJson(args["device"], device, json_options); + HandleToJson(args["image"], image, json_options); + FieldToJson(args["pAllocator"], pAllocator, json_options); WriteBlockEnd(); } @@ -846,11 +898,12 @@ void VulkanExportJsonConsumer::Process_vkGetImageSubresourceLayout( StructPointerDecoder* pLayout) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkGetImageSubresourceLayout"); + const JsonOptions& json_options = GetJsonOptions(); auto& args = jdata[NameArgs()]; - HandleToJson(args["device"], device, json_options_); - HandleToJson(args["image"], image, json_options_); - FieldToJson(args["pSubresource"], pSubresource, json_options_); - FieldToJson(args["pLayout"], pLayout, json_options_); + HandleToJson(args["device"], device, json_options); + HandleToJson(args["image"], image, json_options); + FieldToJson(args["pSubresource"], pSubresource, json_options); + FieldToJson(args["pLayout"], pLayout, json_options); WriteBlockEnd(); } @@ -863,12 +916,13 @@ void VulkanExportJsonConsumer::Process_vkCreateImageView( HandlePointerDecoder* pView) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCreateImageView"); - FieldToJson(jdata[NameReturn()], returnValue, json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameReturn()], returnValue, json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["device"], device, json_options_); - FieldToJson(args["pCreateInfo"], pCreateInfo, json_options_); - FieldToJson(args["pAllocator"], pAllocator, json_options_); - HandleToJson(args["pView"], pView, json_options_); + HandleToJson(args["device"], device, json_options); + FieldToJson(args["pCreateInfo"], pCreateInfo, json_options); + FieldToJson(args["pAllocator"], pAllocator, json_options); + HandleToJson(args["pView"], pView, json_options); WriteBlockEnd(); } @@ -879,10 +933,11 @@ void VulkanExportJsonConsumer::Process_vkDestroyImageView( StructPointerDecoder* pAllocator) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkDestroyImageView"); + const JsonOptions& json_options = GetJsonOptions(); auto& args = jdata[NameArgs()]; - HandleToJson(args["device"], device, json_options_); - HandleToJson(args["imageView"], imageView, json_options_); - FieldToJson(args["pAllocator"], pAllocator, json_options_); + HandleToJson(args["device"], device, json_options); + HandleToJson(args["imageView"], imageView, json_options); + FieldToJson(args["pAllocator"], pAllocator, json_options); WriteBlockEnd(); } @@ -893,10 +948,11 @@ void VulkanExportJsonConsumer::Process_vkDestroyShaderModule( StructPointerDecoder* pAllocator) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkDestroyShaderModule"); + const JsonOptions& json_options = GetJsonOptions(); auto& args = jdata[NameArgs()]; - HandleToJson(args["device"], device, json_options_); - HandleToJson(args["shaderModule"], shaderModule, json_options_); - FieldToJson(args["pAllocator"], pAllocator, json_options_); + HandleToJson(args["device"], device, json_options); + HandleToJson(args["shaderModule"], shaderModule, json_options); + FieldToJson(args["pAllocator"], pAllocator, json_options); WriteBlockEnd(); } @@ -907,10 +963,11 @@ void VulkanExportJsonConsumer::Process_vkDestroyPipelineCache( StructPointerDecoder* pAllocator) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkDestroyPipelineCache"); + const JsonOptions& json_options = GetJsonOptions(); auto& args = jdata[NameArgs()]; - HandleToJson(args["device"], device, json_options_); - HandleToJson(args["pipelineCache"], pipelineCache, json_options_); - FieldToJson(args["pAllocator"], pAllocator, json_options_); + HandleToJson(args["device"], device, json_options); + HandleToJson(args["pipelineCache"], pipelineCache, json_options); + FieldToJson(args["pAllocator"], pAllocator, json_options); WriteBlockEnd(); } @@ -923,12 +980,13 @@ void VulkanExportJsonConsumer::Process_vkMergePipelineCaches( HandlePointerDecoder* pSrcCaches) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkMergePipelineCaches"); - FieldToJson(jdata[NameReturn()], returnValue, json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameReturn()], returnValue, json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["device"], device, json_options_); - HandleToJson(args["dstCache"], dstCache, json_options_); - FieldToJson(args["srcCacheCount"], srcCacheCount, json_options_); - HandleToJson(args["pSrcCaches"], pSrcCaches, json_options_); + HandleToJson(args["device"], device, json_options); + HandleToJson(args["dstCache"], dstCache, json_options); + FieldToJson(args["srcCacheCount"], srcCacheCount, json_options); + HandleToJson(args["pSrcCaches"], pSrcCaches, json_options); WriteBlockEnd(); } @@ -943,14 +1001,15 @@ void VulkanExportJsonConsumer::Process_vkCreateGraphicsPipelines( HandlePointerDecoder* pPipelines) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCreateGraphicsPipelines"); - FieldToJson(jdata[NameReturn()], returnValue, json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameReturn()], returnValue, json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["device"], device, json_options_); - HandleToJson(args["pipelineCache"], pipelineCache, json_options_); - FieldToJson(args["createInfoCount"], createInfoCount, json_options_); - FieldToJson(args["pCreateInfos"], pCreateInfos, json_options_); - FieldToJson(args["pAllocator"], pAllocator, json_options_); - HandleToJson(args["pPipelines"], pPipelines, json_options_); + HandleToJson(args["device"], device, json_options); + HandleToJson(args["pipelineCache"], pipelineCache, json_options); + FieldToJson(args["createInfoCount"], createInfoCount, json_options); + FieldToJson(args["pCreateInfos"], pCreateInfos, json_options); + FieldToJson(args["pAllocator"], pAllocator, json_options); + HandleToJson(args["pPipelines"], pPipelines, json_options); WriteBlockEnd(); } @@ -965,14 +1024,15 @@ void VulkanExportJsonConsumer::Process_vkCreateComputePipelines( HandlePointerDecoder* pPipelines) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCreateComputePipelines"); - FieldToJson(jdata[NameReturn()], returnValue, json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameReturn()], returnValue, json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["device"], device, json_options_); - HandleToJson(args["pipelineCache"], pipelineCache, json_options_); - FieldToJson(args["createInfoCount"], createInfoCount, json_options_); - FieldToJson(args["pCreateInfos"], pCreateInfos, json_options_); - FieldToJson(args["pAllocator"], pAllocator, json_options_); - HandleToJson(args["pPipelines"], pPipelines, json_options_); + HandleToJson(args["device"], device, json_options); + HandleToJson(args["pipelineCache"], pipelineCache, json_options); + FieldToJson(args["createInfoCount"], createInfoCount, json_options); + FieldToJson(args["pCreateInfos"], pCreateInfos, json_options); + FieldToJson(args["pAllocator"], pAllocator, json_options); + HandleToJson(args["pPipelines"], pPipelines, json_options); WriteBlockEnd(); } @@ -983,10 +1043,11 @@ void VulkanExportJsonConsumer::Process_vkDestroyPipeline( StructPointerDecoder* pAllocator) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkDestroyPipeline"); + const JsonOptions& json_options = GetJsonOptions(); auto& args = jdata[NameArgs()]; - HandleToJson(args["device"], device, json_options_); - HandleToJson(args["pipeline"], pipeline, json_options_); - FieldToJson(args["pAllocator"], pAllocator, json_options_); + HandleToJson(args["device"], device, json_options); + HandleToJson(args["pipeline"], pipeline, json_options); + FieldToJson(args["pAllocator"], pAllocator, json_options); WriteBlockEnd(); } @@ -999,12 +1060,13 @@ void VulkanExportJsonConsumer::Process_vkCreatePipelineLayout( HandlePointerDecoder* pPipelineLayout) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCreatePipelineLayout"); - FieldToJson(jdata[NameReturn()], returnValue, json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameReturn()], returnValue, json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["device"], device, json_options_); - FieldToJson(args["pCreateInfo"], pCreateInfo, json_options_); - FieldToJson(args["pAllocator"], pAllocator, json_options_); - HandleToJson(args["pPipelineLayout"], pPipelineLayout, json_options_); + HandleToJson(args["device"], device, json_options); + FieldToJson(args["pCreateInfo"], pCreateInfo, json_options); + FieldToJson(args["pAllocator"], pAllocator, json_options); + HandleToJson(args["pPipelineLayout"], pPipelineLayout, json_options); WriteBlockEnd(); } @@ -1015,10 +1077,11 @@ void VulkanExportJsonConsumer::Process_vkDestroyPipelineLayout( StructPointerDecoder* pAllocator) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkDestroyPipelineLayout"); + const JsonOptions& json_options = GetJsonOptions(); auto& args = jdata[NameArgs()]; - HandleToJson(args["device"], device, json_options_); - HandleToJson(args["pipelineLayout"], pipelineLayout, json_options_); - FieldToJson(args["pAllocator"], pAllocator, json_options_); + HandleToJson(args["device"], device, json_options); + HandleToJson(args["pipelineLayout"], pipelineLayout, json_options); + FieldToJson(args["pAllocator"], pAllocator, json_options); WriteBlockEnd(); } @@ -1031,12 +1094,13 @@ void VulkanExportJsonConsumer::Process_vkCreateSampler( HandlePointerDecoder* pSampler) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCreateSampler"); - FieldToJson(jdata[NameReturn()], returnValue, json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameReturn()], returnValue, json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["device"], device, json_options_); - FieldToJson(args["pCreateInfo"], pCreateInfo, json_options_); - FieldToJson(args["pAllocator"], pAllocator, json_options_); - HandleToJson(args["pSampler"], pSampler, json_options_); + HandleToJson(args["device"], device, json_options); + FieldToJson(args["pCreateInfo"], pCreateInfo, json_options); + FieldToJson(args["pAllocator"], pAllocator, json_options); + HandleToJson(args["pSampler"], pSampler, json_options); WriteBlockEnd(); } @@ -1047,10 +1111,11 @@ void VulkanExportJsonConsumer::Process_vkDestroySampler( StructPointerDecoder* pAllocator) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkDestroySampler"); + const JsonOptions& json_options = GetJsonOptions(); auto& args = jdata[NameArgs()]; - HandleToJson(args["device"], device, json_options_); - HandleToJson(args["sampler"], sampler, json_options_); - FieldToJson(args["pAllocator"], pAllocator, json_options_); + HandleToJson(args["device"], device, json_options); + HandleToJson(args["sampler"], sampler, json_options); + FieldToJson(args["pAllocator"], pAllocator, json_options); WriteBlockEnd(); } @@ -1063,12 +1128,13 @@ void VulkanExportJsonConsumer::Process_vkCreateDescriptorSetLayout( HandlePointerDecoder* pSetLayout) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCreateDescriptorSetLayout"); - FieldToJson(jdata[NameReturn()], returnValue, json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameReturn()], returnValue, json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["device"], device, json_options_); - FieldToJson(args["pCreateInfo"], pCreateInfo, json_options_); - FieldToJson(args["pAllocator"], pAllocator, json_options_); - HandleToJson(args["pSetLayout"], pSetLayout, json_options_); + HandleToJson(args["device"], device, json_options); + FieldToJson(args["pCreateInfo"], pCreateInfo, json_options); + FieldToJson(args["pAllocator"], pAllocator, json_options); + HandleToJson(args["pSetLayout"], pSetLayout, json_options); WriteBlockEnd(); } @@ -1079,10 +1145,11 @@ void VulkanExportJsonConsumer::Process_vkDestroyDescriptorSetLayout( StructPointerDecoder* pAllocator) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkDestroyDescriptorSetLayout"); + const JsonOptions& json_options = GetJsonOptions(); auto& args = jdata[NameArgs()]; - HandleToJson(args["device"], device, json_options_); - HandleToJson(args["descriptorSetLayout"], descriptorSetLayout, json_options_); - FieldToJson(args["pAllocator"], pAllocator, json_options_); + HandleToJson(args["device"], device, json_options); + HandleToJson(args["descriptorSetLayout"], descriptorSetLayout, json_options); + FieldToJson(args["pAllocator"], pAllocator, json_options); WriteBlockEnd(); } @@ -1095,12 +1162,13 @@ void VulkanExportJsonConsumer::Process_vkCreateDescriptorPool( HandlePointerDecoder* pDescriptorPool) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCreateDescriptorPool"); - FieldToJson(jdata[NameReturn()], returnValue, json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameReturn()], returnValue, json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["device"], device, json_options_); - FieldToJson(args["pCreateInfo"], pCreateInfo, json_options_); - FieldToJson(args["pAllocator"], pAllocator, json_options_); - HandleToJson(args["pDescriptorPool"], pDescriptorPool, json_options_); + HandleToJson(args["device"], device, json_options); + FieldToJson(args["pCreateInfo"], pCreateInfo, json_options); + FieldToJson(args["pAllocator"], pAllocator, json_options); + HandleToJson(args["pDescriptorPool"], pDescriptorPool, json_options); WriteBlockEnd(); } @@ -1111,10 +1179,11 @@ void VulkanExportJsonConsumer::Process_vkDestroyDescriptorPool( StructPointerDecoder* pAllocator) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkDestroyDescriptorPool"); + const JsonOptions& json_options = GetJsonOptions(); auto& args = jdata[NameArgs()]; - HandleToJson(args["device"], device, json_options_); - HandleToJson(args["descriptorPool"], descriptorPool, json_options_); - FieldToJson(args["pAllocator"], pAllocator, json_options_); + HandleToJson(args["device"], device, json_options); + HandleToJson(args["descriptorPool"], descriptorPool, json_options); + FieldToJson(args["pAllocator"], pAllocator, json_options); WriteBlockEnd(); } @@ -1126,11 +1195,12 @@ void VulkanExportJsonConsumer::Process_vkResetDescriptorPool( VkDescriptorPoolResetFlags flags) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkResetDescriptorPool"); - FieldToJson(jdata[NameReturn()], returnValue, json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameReturn()], returnValue, json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["device"], device, json_options_); - HandleToJson(args["descriptorPool"], descriptorPool, json_options_); - FieldToJson(VkDescriptorPoolResetFlags_t(), args["flags"], flags, json_options_); + HandleToJson(args["device"], device, json_options); + HandleToJson(args["descriptorPool"], descriptorPool, json_options); + FieldToJson(VkDescriptorPoolResetFlags_t(), args["flags"], flags, json_options); WriteBlockEnd(); } @@ -1142,11 +1212,12 @@ void VulkanExportJsonConsumer::Process_vkAllocateDescriptorSets( HandlePointerDecoder* pDescriptorSets) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkAllocateDescriptorSets"); - FieldToJson(jdata[NameReturn()], returnValue, json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameReturn()], returnValue, json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["device"], device, json_options_); - FieldToJson(args["pAllocateInfo"], pAllocateInfo, json_options_); - HandleToJson(args["pDescriptorSets"], pDescriptorSets, json_options_); + HandleToJson(args["device"], device, json_options); + FieldToJson(args["pAllocateInfo"], pAllocateInfo, json_options); + HandleToJson(args["pDescriptorSets"], pDescriptorSets, json_options); WriteBlockEnd(); } @@ -1159,12 +1230,13 @@ void VulkanExportJsonConsumer::Process_vkFreeDescriptorSets( HandlePointerDecoder* pDescriptorSets) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkFreeDescriptorSets"); - FieldToJson(jdata[NameReturn()], returnValue, json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameReturn()], returnValue, json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["device"], device, json_options_); - HandleToJson(args["descriptorPool"], descriptorPool, json_options_); - FieldToJson(args["descriptorSetCount"], descriptorSetCount, json_options_); - HandleToJson(args["pDescriptorSets"], pDescriptorSets, json_options_); + HandleToJson(args["device"], device, json_options); + HandleToJson(args["descriptorPool"], descriptorPool, json_options); + FieldToJson(args["descriptorSetCount"], descriptorSetCount, json_options); + HandleToJson(args["pDescriptorSets"], pDescriptorSets, json_options); WriteBlockEnd(); } @@ -1177,12 +1249,13 @@ void VulkanExportJsonConsumer::Process_vkUpdateDescriptorSets( StructPointerDecoder* pDescriptorCopies) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkUpdateDescriptorSets"); + const JsonOptions& json_options = GetJsonOptions(); auto& args = jdata[NameArgs()]; - HandleToJson(args["device"], device, json_options_); - FieldToJson(args["descriptorWriteCount"], descriptorWriteCount, json_options_); - FieldToJson(args["pDescriptorWrites"], pDescriptorWrites, json_options_); - FieldToJson(args["descriptorCopyCount"], descriptorCopyCount, json_options_); - FieldToJson(args["pDescriptorCopies"], pDescriptorCopies, json_options_); + HandleToJson(args["device"], device, json_options); + FieldToJson(args["descriptorWriteCount"], descriptorWriteCount, json_options); + FieldToJson(args["pDescriptorWrites"], pDescriptorWrites, json_options); + FieldToJson(args["descriptorCopyCount"], descriptorCopyCount, json_options); + FieldToJson(args["pDescriptorCopies"], pDescriptorCopies, json_options); WriteBlockEnd(); } @@ -1195,12 +1268,13 @@ void VulkanExportJsonConsumer::Process_vkCreateFramebuffer( HandlePointerDecoder* pFramebuffer) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCreateFramebuffer"); - FieldToJson(jdata[NameReturn()], returnValue, json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameReturn()], returnValue, json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["device"], device, json_options_); - FieldToJson(args["pCreateInfo"], pCreateInfo, json_options_); - FieldToJson(args["pAllocator"], pAllocator, json_options_); - HandleToJson(args["pFramebuffer"], pFramebuffer, json_options_); + HandleToJson(args["device"], device, json_options); + FieldToJson(args["pCreateInfo"], pCreateInfo, json_options); + FieldToJson(args["pAllocator"], pAllocator, json_options); + HandleToJson(args["pFramebuffer"], pFramebuffer, json_options); WriteBlockEnd(); } @@ -1211,10 +1285,11 @@ void VulkanExportJsonConsumer::Process_vkDestroyFramebuffer( StructPointerDecoder* pAllocator) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkDestroyFramebuffer"); + const JsonOptions& json_options = GetJsonOptions(); auto& args = jdata[NameArgs()]; - HandleToJson(args["device"], device, json_options_); - HandleToJson(args["framebuffer"], framebuffer, json_options_); - FieldToJson(args["pAllocator"], pAllocator, json_options_); + HandleToJson(args["device"], device, json_options); + HandleToJson(args["framebuffer"], framebuffer, json_options); + FieldToJson(args["pAllocator"], pAllocator, json_options); WriteBlockEnd(); } @@ -1227,12 +1302,13 @@ void VulkanExportJsonConsumer::Process_vkCreateRenderPass( HandlePointerDecoder* pRenderPass) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCreateRenderPass"); - FieldToJson(jdata[NameReturn()], returnValue, json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameReturn()], returnValue, json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["device"], device, json_options_); - FieldToJson(args["pCreateInfo"], pCreateInfo, json_options_); - FieldToJson(args["pAllocator"], pAllocator, json_options_); - HandleToJson(args["pRenderPass"], pRenderPass, json_options_); + HandleToJson(args["device"], device, json_options); + FieldToJson(args["pCreateInfo"], pCreateInfo, json_options); + FieldToJson(args["pAllocator"], pAllocator, json_options); + HandleToJson(args["pRenderPass"], pRenderPass, json_options); WriteBlockEnd(); } @@ -1243,10 +1319,11 @@ void VulkanExportJsonConsumer::Process_vkDestroyRenderPass( StructPointerDecoder* pAllocator) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkDestroyRenderPass"); + const JsonOptions& json_options = GetJsonOptions(); auto& args = jdata[NameArgs()]; - HandleToJson(args["device"], device, json_options_); - HandleToJson(args["renderPass"], renderPass, json_options_); - FieldToJson(args["pAllocator"], pAllocator, json_options_); + HandleToJson(args["device"], device, json_options); + HandleToJson(args["renderPass"], renderPass, json_options); + FieldToJson(args["pAllocator"], pAllocator, json_options); WriteBlockEnd(); } @@ -1257,10 +1334,11 @@ void VulkanExportJsonConsumer::Process_vkGetRenderAreaGranularity( StructPointerDecoder* pGranularity) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkGetRenderAreaGranularity"); + const JsonOptions& json_options = GetJsonOptions(); auto& args = jdata[NameArgs()]; - HandleToJson(args["device"], device, json_options_); - HandleToJson(args["renderPass"], renderPass, json_options_); - FieldToJson(args["pGranularity"], pGranularity, json_options_); + HandleToJson(args["device"], device, json_options); + HandleToJson(args["renderPass"], renderPass, json_options); + FieldToJson(args["pGranularity"], pGranularity, json_options); WriteBlockEnd(); } @@ -1273,12 +1351,13 @@ void VulkanExportJsonConsumer::Process_vkCreateCommandPool( HandlePointerDecoder* pCommandPool) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCreateCommandPool"); - FieldToJson(jdata[NameReturn()], returnValue, json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameReturn()], returnValue, json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["device"], device, json_options_); - FieldToJson(args["pCreateInfo"], pCreateInfo, json_options_); - FieldToJson(args["pAllocator"], pAllocator, json_options_); - HandleToJson(args["pCommandPool"], pCommandPool, json_options_); + HandleToJson(args["device"], device, json_options); + FieldToJson(args["pCreateInfo"], pCreateInfo, json_options); + FieldToJson(args["pAllocator"], pAllocator, json_options); + HandleToJson(args["pCommandPool"], pCommandPool, json_options); WriteBlockEnd(); } @@ -1289,10 +1368,11 @@ void VulkanExportJsonConsumer::Process_vkDestroyCommandPool( StructPointerDecoder* pAllocator) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkDestroyCommandPool"); + const JsonOptions& json_options = GetJsonOptions(); auto& args = jdata[NameArgs()]; - HandleToJson(args["device"], device, json_options_); - HandleToJson(args["commandPool"], commandPool, json_options_); - FieldToJson(args["pAllocator"], pAllocator, json_options_); + HandleToJson(args["device"], device, json_options); + HandleToJson(args["commandPool"], commandPool, json_options); + FieldToJson(args["pAllocator"], pAllocator, json_options); WriteBlockEnd(); } @@ -1304,11 +1384,12 @@ void VulkanExportJsonConsumer::Process_vkResetCommandPool( VkCommandPoolResetFlags flags) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkResetCommandPool"); - FieldToJson(jdata[NameReturn()], returnValue, json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameReturn()], returnValue, json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["device"], device, json_options_); - HandleToJson(args["commandPool"], commandPool, json_options_); - FieldToJson(VkCommandPoolResetFlags_t(), args["flags"], flags, json_options_); + HandleToJson(args["device"], device, json_options); + HandleToJson(args["commandPool"], commandPool, json_options); + FieldToJson(VkCommandPoolResetFlags_t(), args["flags"], flags, json_options); WriteBlockEnd(); } @@ -1320,11 +1401,12 @@ void VulkanExportJsonConsumer::Process_vkAllocateCommandBuffers( HandlePointerDecoder* pCommandBuffers) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkAllocateCommandBuffers"); - FieldToJson(jdata[NameReturn()], returnValue, json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameReturn()], returnValue, json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["device"], device, json_options_); - FieldToJson(args["pAllocateInfo"], pAllocateInfo, json_options_); - HandleToJson(args["pCommandBuffers"], pCommandBuffers, json_options_); + HandleToJson(args["device"], device, json_options); + FieldToJson(args["pAllocateInfo"], pAllocateInfo, json_options); + HandleToJson(args["pCommandBuffers"], pCommandBuffers, json_options); WriteBlockEnd(); } @@ -1336,11 +1418,12 @@ void VulkanExportJsonConsumer::Process_vkFreeCommandBuffers( HandlePointerDecoder* pCommandBuffers) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkFreeCommandBuffers"); + const JsonOptions& json_options = GetJsonOptions(); auto& args = jdata[NameArgs()]; - HandleToJson(args["device"], device, json_options_); - HandleToJson(args["commandPool"], commandPool, json_options_); - FieldToJson(args["commandBufferCount"], commandBufferCount, json_options_); - HandleToJson(args["pCommandBuffers"], pCommandBuffers, json_options_); + HandleToJson(args["device"], device, json_options); + HandleToJson(args["commandPool"], commandPool, json_options); + FieldToJson(args["commandBufferCount"], commandBufferCount, json_options); + HandleToJson(args["pCommandBuffers"], pCommandBuffers, json_options); WriteBlockEnd(); } @@ -1351,10 +1434,11 @@ void VulkanExportJsonConsumer::Process_vkBeginCommandBuffer( StructPointerDecoder* pBeginInfo) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkBeginCommandBuffer"); - FieldToJson(jdata[NameReturn()], returnValue, json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameReturn()], returnValue, json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["commandBuffer"], commandBuffer, json_options_); - FieldToJson(args["pBeginInfo"], pBeginInfo, json_options_); + HandleToJson(args["commandBuffer"], commandBuffer, json_options); + FieldToJson(args["pBeginInfo"], pBeginInfo, json_options); WriteBlockEnd(); } @@ -1364,9 +1448,10 @@ void VulkanExportJsonConsumer::Process_vkEndCommandBuffer( format::HandleId commandBuffer) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkEndCommandBuffer"); - FieldToJson(jdata[NameReturn()], returnValue, json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameReturn()], returnValue, json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["commandBuffer"], commandBuffer, json_options_); + HandleToJson(args["commandBuffer"], commandBuffer, json_options); WriteBlockEnd(); } @@ -1377,10 +1462,11 @@ void VulkanExportJsonConsumer::Process_vkResetCommandBuffer( VkCommandBufferResetFlags flags) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkResetCommandBuffer"); - FieldToJson(jdata[NameReturn()], returnValue, json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameReturn()], returnValue, json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["commandBuffer"], commandBuffer, json_options_); - FieldToJson(VkCommandBufferResetFlags_t(), args["flags"], flags, json_options_); + HandleToJson(args["commandBuffer"], commandBuffer, json_options); + FieldToJson(VkCommandBufferResetFlags_t(), args["flags"], flags, json_options); WriteBlockEnd(); } @@ -1391,11 +1477,12 @@ void VulkanExportJsonConsumer::Process_vkCmdBindPipeline( format::HandleId pipeline) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCmdBindPipeline"); - FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["commandBuffer"], commandBuffer, json_options_); - FieldToJson(args["pipelineBindPoint"], pipelineBindPoint, json_options_); - HandleToJson(args["pipeline"], pipeline, json_options_); + HandleToJson(args["commandBuffer"], commandBuffer, json_options); + FieldToJson(args["pipelineBindPoint"], pipelineBindPoint, json_options); + HandleToJson(args["pipeline"], pipeline, json_options); WriteBlockEnd(); } @@ -1407,12 +1494,13 @@ void VulkanExportJsonConsumer::Process_vkCmdSetViewport( StructPointerDecoder* pViewports) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCmdSetViewport"); - FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["commandBuffer"], commandBuffer, json_options_); - FieldToJson(args["firstViewport"], firstViewport, json_options_); - FieldToJson(args["viewportCount"], viewportCount, json_options_); - FieldToJson(args["pViewports"], pViewports, json_options_); + HandleToJson(args["commandBuffer"], commandBuffer, json_options); + FieldToJson(args["firstViewport"], firstViewport, json_options); + FieldToJson(args["viewportCount"], viewportCount, json_options); + FieldToJson(args["pViewports"], pViewports, json_options); WriteBlockEnd(); } @@ -1424,12 +1512,13 @@ void VulkanExportJsonConsumer::Process_vkCmdSetScissor( StructPointerDecoder* pScissors) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCmdSetScissor"); - FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["commandBuffer"], commandBuffer, json_options_); - FieldToJson(args["firstScissor"], firstScissor, json_options_); - FieldToJson(args["scissorCount"], scissorCount, json_options_); - FieldToJson(args["pScissors"], pScissors, json_options_); + HandleToJson(args["commandBuffer"], commandBuffer, json_options); + FieldToJson(args["firstScissor"], firstScissor, json_options); + FieldToJson(args["scissorCount"], scissorCount, json_options); + FieldToJson(args["pScissors"], pScissors, json_options); WriteBlockEnd(); } @@ -1439,10 +1528,11 @@ void VulkanExportJsonConsumer::Process_vkCmdSetLineWidth( float lineWidth) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCmdSetLineWidth"); - FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["commandBuffer"], commandBuffer, json_options_); - FieldToJson(args["lineWidth"], lineWidth, json_options_); + HandleToJson(args["commandBuffer"], commandBuffer, json_options); + FieldToJson(args["lineWidth"], lineWidth, json_options); WriteBlockEnd(); } @@ -1454,12 +1544,13 @@ void VulkanExportJsonConsumer::Process_vkCmdSetDepthBias( float depthBiasSlopeFactor) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCmdSetDepthBias"); - FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["commandBuffer"], commandBuffer, json_options_); - FieldToJson(args["depthBiasConstantFactor"], depthBiasConstantFactor, json_options_); - FieldToJson(args["depthBiasClamp"], depthBiasClamp, json_options_); - FieldToJson(args["depthBiasSlopeFactor"], depthBiasSlopeFactor, json_options_); + HandleToJson(args["commandBuffer"], commandBuffer, json_options); + FieldToJson(args["depthBiasConstantFactor"], depthBiasConstantFactor, json_options); + FieldToJson(args["depthBiasClamp"], depthBiasClamp, json_options); + FieldToJson(args["depthBiasSlopeFactor"], depthBiasSlopeFactor, json_options); WriteBlockEnd(); } @@ -1469,10 +1560,11 @@ void VulkanExportJsonConsumer::Process_vkCmdSetBlendConstants( PointerDecoder* blendConstants) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCmdSetBlendConstants"); - FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["commandBuffer"], commandBuffer, json_options_); - FieldToJson(args["blendConstants"], blendConstants, json_options_); + HandleToJson(args["commandBuffer"], commandBuffer, json_options); + FieldToJson(args["blendConstants"], blendConstants, json_options); WriteBlockEnd(); } @@ -1483,11 +1575,12 @@ void VulkanExportJsonConsumer::Process_vkCmdSetDepthBounds( float maxDepthBounds) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCmdSetDepthBounds"); - FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["commandBuffer"], commandBuffer, json_options_); - FieldToJson(args["minDepthBounds"], minDepthBounds, json_options_); - FieldToJson(args["maxDepthBounds"], maxDepthBounds, json_options_); + HandleToJson(args["commandBuffer"], commandBuffer, json_options); + FieldToJson(args["minDepthBounds"], minDepthBounds, json_options); + FieldToJson(args["maxDepthBounds"], maxDepthBounds, json_options); WriteBlockEnd(); } @@ -1498,11 +1591,12 @@ void VulkanExportJsonConsumer::Process_vkCmdSetStencilCompareMask( uint32_t compareMask) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCmdSetStencilCompareMask"); - FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["commandBuffer"], commandBuffer, json_options_); - FieldToJson(VkStencilFaceFlags_t(), args["faceMask"], faceMask, json_options_); - FieldToJson(args["compareMask"], compareMask, json_options_); + HandleToJson(args["commandBuffer"], commandBuffer, json_options); + FieldToJson(VkStencilFaceFlags_t(), args["faceMask"], faceMask, json_options); + FieldToJson(args["compareMask"], compareMask, json_options); WriteBlockEnd(); } @@ -1513,11 +1607,12 @@ void VulkanExportJsonConsumer::Process_vkCmdSetStencilWriteMask( uint32_t writeMask) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCmdSetStencilWriteMask"); - FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["commandBuffer"], commandBuffer, json_options_); - FieldToJson(VkStencilFaceFlags_t(), args["faceMask"], faceMask, json_options_); - FieldToJson(args["writeMask"], writeMask, json_options_); + HandleToJson(args["commandBuffer"], commandBuffer, json_options); + FieldToJson(VkStencilFaceFlags_t(), args["faceMask"], faceMask, json_options); + FieldToJson(args["writeMask"], writeMask, json_options); WriteBlockEnd(); } @@ -1528,11 +1623,12 @@ void VulkanExportJsonConsumer::Process_vkCmdSetStencilReference( uint32_t reference) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCmdSetStencilReference"); - FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["commandBuffer"], commandBuffer, json_options_); - FieldToJson(VkStencilFaceFlags_t(), args["faceMask"], faceMask, json_options_); - FieldToJson(args["reference"], reference, json_options_); + HandleToJson(args["commandBuffer"], commandBuffer, json_options); + FieldToJson(VkStencilFaceFlags_t(), args["faceMask"], faceMask, json_options); + FieldToJson(args["reference"], reference, json_options); WriteBlockEnd(); } @@ -1548,16 +1644,17 @@ void VulkanExportJsonConsumer::Process_vkCmdBindDescriptorSets( PointerDecoder* pDynamicOffsets) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCmdBindDescriptorSets"); - FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["commandBuffer"], commandBuffer, json_options_); - FieldToJson(args["pipelineBindPoint"], pipelineBindPoint, json_options_); - HandleToJson(args["layout"], layout, json_options_); - FieldToJson(args["firstSet"], firstSet, json_options_); - FieldToJson(args["descriptorSetCount"], descriptorSetCount, json_options_); - HandleToJson(args["pDescriptorSets"], pDescriptorSets, json_options_); - FieldToJson(args["dynamicOffsetCount"], dynamicOffsetCount, json_options_); - FieldToJson(args["pDynamicOffsets"], pDynamicOffsets, json_options_); + HandleToJson(args["commandBuffer"], commandBuffer, json_options); + FieldToJson(args["pipelineBindPoint"], pipelineBindPoint, json_options); + HandleToJson(args["layout"], layout, json_options); + FieldToJson(args["firstSet"], firstSet, json_options); + FieldToJson(args["descriptorSetCount"], descriptorSetCount, json_options); + HandleToJson(args["pDescriptorSets"], pDescriptorSets, json_options); + FieldToJson(args["dynamicOffsetCount"], dynamicOffsetCount, json_options); + FieldToJson(args["pDynamicOffsets"], pDynamicOffsets, json_options); WriteBlockEnd(); } @@ -1569,12 +1666,13 @@ void VulkanExportJsonConsumer::Process_vkCmdBindIndexBuffer( VkIndexType indexType) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCmdBindIndexBuffer"); - FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["commandBuffer"], commandBuffer, json_options_); - HandleToJson(args["buffer"], buffer, json_options_); - FieldToJson(args["offset"], offset, json_options_); - FieldToJson(args["indexType"], indexType, json_options_); + HandleToJson(args["commandBuffer"], commandBuffer, json_options); + HandleToJson(args["buffer"], buffer, json_options); + FieldToJson(args["offset"], offset, json_options); + FieldToJson(args["indexType"], indexType, json_options); WriteBlockEnd(); } @@ -1587,13 +1685,14 @@ void VulkanExportJsonConsumer::Process_vkCmdBindVertexBuffers( PointerDecoder* pOffsets) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCmdBindVertexBuffers"); - FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["commandBuffer"], commandBuffer, json_options_); - FieldToJson(args["firstBinding"], firstBinding, json_options_); - FieldToJson(args["bindingCount"], bindingCount, json_options_); - HandleToJson(args["pBuffers"], pBuffers, json_options_); - FieldToJson(args["pOffsets"], pOffsets, json_options_); + HandleToJson(args["commandBuffer"], commandBuffer, json_options); + FieldToJson(args["firstBinding"], firstBinding, json_options); + FieldToJson(args["bindingCount"], bindingCount, json_options); + HandleToJson(args["pBuffers"], pBuffers, json_options); + FieldToJson(args["pOffsets"], pOffsets, json_options); WriteBlockEnd(); } @@ -1606,13 +1705,14 @@ void VulkanExportJsonConsumer::Process_vkCmdDraw( uint32_t firstInstance) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCmdDraw"); - FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["commandBuffer"], commandBuffer, json_options_); - FieldToJson(args["vertexCount"], vertexCount, json_options_); - FieldToJson(args["instanceCount"], instanceCount, json_options_); - FieldToJson(args["firstVertex"], firstVertex, json_options_); - FieldToJson(args["firstInstance"], firstInstance, json_options_); + HandleToJson(args["commandBuffer"], commandBuffer, json_options); + FieldToJson(args["vertexCount"], vertexCount, json_options); + FieldToJson(args["instanceCount"], instanceCount, json_options); + FieldToJson(args["firstVertex"], firstVertex, json_options); + FieldToJson(args["firstInstance"], firstInstance, json_options); WriteBlockEnd(); } @@ -1626,14 +1726,15 @@ void VulkanExportJsonConsumer::Process_vkCmdDrawIndexed( uint32_t firstInstance) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCmdDrawIndexed"); - FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["commandBuffer"], commandBuffer, json_options_); - FieldToJson(args["indexCount"], indexCount, json_options_); - FieldToJson(args["instanceCount"], instanceCount, json_options_); - FieldToJson(args["firstIndex"], firstIndex, json_options_); - FieldToJson(args["vertexOffset"], vertexOffset, json_options_); - FieldToJson(args["firstInstance"], firstInstance, json_options_); + HandleToJson(args["commandBuffer"], commandBuffer, json_options); + FieldToJson(args["indexCount"], indexCount, json_options); + FieldToJson(args["instanceCount"], instanceCount, json_options); + FieldToJson(args["firstIndex"], firstIndex, json_options); + FieldToJson(args["vertexOffset"], vertexOffset, json_options); + FieldToJson(args["firstInstance"], firstInstance, json_options); WriteBlockEnd(); } @@ -1646,13 +1747,14 @@ void VulkanExportJsonConsumer::Process_vkCmdDrawIndirect( uint32_t stride) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCmdDrawIndirect"); - FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["commandBuffer"], commandBuffer, json_options_); - HandleToJson(args["buffer"], buffer, json_options_); - FieldToJson(args["offset"], offset, json_options_); - FieldToJson(args["drawCount"], drawCount, json_options_); - FieldToJson(args["stride"], stride, json_options_); + HandleToJson(args["commandBuffer"], commandBuffer, json_options); + HandleToJson(args["buffer"], buffer, json_options); + FieldToJson(args["offset"], offset, json_options); + FieldToJson(args["drawCount"], drawCount, json_options); + FieldToJson(args["stride"], stride, json_options); WriteBlockEnd(); } @@ -1665,13 +1767,14 @@ void VulkanExportJsonConsumer::Process_vkCmdDrawIndexedIndirect( uint32_t stride) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCmdDrawIndexedIndirect"); - FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["commandBuffer"], commandBuffer, json_options_); - HandleToJson(args["buffer"], buffer, json_options_); - FieldToJson(args["offset"], offset, json_options_); - FieldToJson(args["drawCount"], drawCount, json_options_); - FieldToJson(args["stride"], stride, json_options_); + HandleToJson(args["commandBuffer"], commandBuffer, json_options); + HandleToJson(args["buffer"], buffer, json_options); + FieldToJson(args["offset"], offset, json_options); + FieldToJson(args["drawCount"], drawCount, json_options); + FieldToJson(args["stride"], stride, json_options); WriteBlockEnd(); } @@ -1683,12 +1786,13 @@ void VulkanExportJsonConsumer::Process_vkCmdDispatch( uint32_t groupCountZ) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCmdDispatch"); - FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["commandBuffer"], commandBuffer, json_options_); - FieldToJson(args["groupCountX"], groupCountX, json_options_); - FieldToJson(args["groupCountY"], groupCountY, json_options_); - FieldToJson(args["groupCountZ"], groupCountZ, json_options_); + HandleToJson(args["commandBuffer"], commandBuffer, json_options); + FieldToJson(args["groupCountX"], groupCountX, json_options); + FieldToJson(args["groupCountY"], groupCountY, json_options); + FieldToJson(args["groupCountZ"], groupCountZ, json_options); WriteBlockEnd(); } @@ -1699,11 +1803,12 @@ void VulkanExportJsonConsumer::Process_vkCmdDispatchIndirect( VkDeviceSize offset) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCmdDispatchIndirect"); - FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["commandBuffer"], commandBuffer, json_options_); - HandleToJson(args["buffer"], buffer, json_options_); - FieldToJson(args["offset"], offset, json_options_); + HandleToJson(args["commandBuffer"], commandBuffer, json_options); + HandleToJson(args["buffer"], buffer, json_options); + FieldToJson(args["offset"], offset, json_options); WriteBlockEnd(); } @@ -1716,13 +1821,14 @@ void VulkanExportJsonConsumer::Process_vkCmdCopyBuffer( StructPointerDecoder* pRegions) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCmdCopyBuffer"); - FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["commandBuffer"], commandBuffer, json_options_); - HandleToJson(args["srcBuffer"], srcBuffer, json_options_); - HandleToJson(args["dstBuffer"], dstBuffer, json_options_); - FieldToJson(args["regionCount"], regionCount, json_options_); - FieldToJson(args["pRegions"], pRegions, json_options_); + HandleToJson(args["commandBuffer"], commandBuffer, json_options); + HandleToJson(args["srcBuffer"], srcBuffer, json_options); + HandleToJson(args["dstBuffer"], dstBuffer, json_options); + FieldToJson(args["regionCount"], regionCount, json_options); + FieldToJson(args["pRegions"], pRegions, json_options); WriteBlockEnd(); } @@ -1737,15 +1843,16 @@ void VulkanExportJsonConsumer::Process_vkCmdCopyImage( StructPointerDecoder* pRegions) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCmdCopyImage"); - FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["commandBuffer"], commandBuffer, json_options_); - HandleToJson(args["srcImage"], srcImage, json_options_); - FieldToJson(args["srcImageLayout"], srcImageLayout, json_options_); - HandleToJson(args["dstImage"], dstImage, json_options_); - FieldToJson(args["dstImageLayout"], dstImageLayout, json_options_); - FieldToJson(args["regionCount"], regionCount, json_options_); - FieldToJson(args["pRegions"], pRegions, json_options_); + HandleToJson(args["commandBuffer"], commandBuffer, json_options); + HandleToJson(args["srcImage"], srcImage, json_options); + FieldToJson(args["srcImageLayout"], srcImageLayout, json_options); + HandleToJson(args["dstImage"], dstImage, json_options); + FieldToJson(args["dstImageLayout"], dstImageLayout, json_options); + FieldToJson(args["regionCount"], regionCount, json_options); + FieldToJson(args["pRegions"], pRegions, json_options); WriteBlockEnd(); } @@ -1761,16 +1868,17 @@ void VulkanExportJsonConsumer::Process_vkCmdBlitImage( VkFilter filter) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCmdBlitImage"); - FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["commandBuffer"], commandBuffer, json_options_); - HandleToJson(args["srcImage"], srcImage, json_options_); - FieldToJson(args["srcImageLayout"], srcImageLayout, json_options_); - HandleToJson(args["dstImage"], dstImage, json_options_); - FieldToJson(args["dstImageLayout"], dstImageLayout, json_options_); - FieldToJson(args["regionCount"], regionCount, json_options_); - FieldToJson(args["pRegions"], pRegions, json_options_); - FieldToJson(args["filter"], filter, json_options_); + HandleToJson(args["commandBuffer"], commandBuffer, json_options); + HandleToJson(args["srcImage"], srcImage, json_options); + FieldToJson(args["srcImageLayout"], srcImageLayout, json_options); + HandleToJson(args["dstImage"], dstImage, json_options); + FieldToJson(args["dstImageLayout"], dstImageLayout, json_options); + FieldToJson(args["regionCount"], regionCount, json_options); + FieldToJson(args["pRegions"], pRegions, json_options); + FieldToJson(args["filter"], filter, json_options); WriteBlockEnd(); } @@ -1784,14 +1892,15 @@ void VulkanExportJsonConsumer::Process_vkCmdCopyBufferToImage( StructPointerDecoder* pRegions) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCmdCopyBufferToImage"); - FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["commandBuffer"], commandBuffer, json_options_); - HandleToJson(args["srcBuffer"], srcBuffer, json_options_); - HandleToJson(args["dstImage"], dstImage, json_options_); - FieldToJson(args["dstImageLayout"], dstImageLayout, json_options_); - FieldToJson(args["regionCount"], regionCount, json_options_); - FieldToJson(args["pRegions"], pRegions, json_options_); + HandleToJson(args["commandBuffer"], commandBuffer, json_options); + HandleToJson(args["srcBuffer"], srcBuffer, json_options); + HandleToJson(args["dstImage"], dstImage, json_options); + FieldToJson(args["dstImageLayout"], dstImageLayout, json_options); + FieldToJson(args["regionCount"], regionCount, json_options); + FieldToJson(args["pRegions"], pRegions, json_options); WriteBlockEnd(); } @@ -1805,14 +1914,15 @@ void VulkanExportJsonConsumer::Process_vkCmdCopyImageToBuffer( StructPointerDecoder* pRegions) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCmdCopyImageToBuffer"); - FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["commandBuffer"], commandBuffer, json_options_); - HandleToJson(args["srcImage"], srcImage, json_options_); - FieldToJson(args["srcImageLayout"], srcImageLayout, json_options_); - HandleToJson(args["dstBuffer"], dstBuffer, json_options_); - FieldToJson(args["regionCount"], regionCount, json_options_); - FieldToJson(args["pRegions"], pRegions, json_options_); + HandleToJson(args["commandBuffer"], commandBuffer, json_options); + HandleToJson(args["srcImage"], srcImage, json_options); + FieldToJson(args["srcImageLayout"], srcImageLayout, json_options); + HandleToJson(args["dstBuffer"], dstBuffer, json_options); + FieldToJson(args["regionCount"], regionCount, json_options); + FieldToJson(args["pRegions"], pRegions, json_options); WriteBlockEnd(); } @@ -1825,13 +1935,14 @@ void VulkanExportJsonConsumer::Process_vkCmdUpdateBuffer( PointerDecoder* pData) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCmdUpdateBuffer"); - FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["commandBuffer"], commandBuffer, json_options_); - HandleToJson(args["dstBuffer"], dstBuffer, json_options_); - FieldToJson(args["dstOffset"], dstOffset, json_options_); - FieldToJson(args["dataSize"], dataSize, json_options_); - FieldToJson(args["pData"], pData, json_options_); + HandleToJson(args["commandBuffer"], commandBuffer, json_options); + HandleToJson(args["dstBuffer"], dstBuffer, json_options); + FieldToJson(args["dstOffset"], dstOffset, json_options); + FieldToJson(args["dataSize"], dataSize, json_options); + FieldToJson(args["pData"], pData, json_options); WriteBlockEnd(); } @@ -1844,13 +1955,14 @@ void VulkanExportJsonConsumer::Process_vkCmdFillBuffer( uint32_t data) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCmdFillBuffer"); - FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["commandBuffer"], commandBuffer, json_options_); - HandleToJson(args["dstBuffer"], dstBuffer, json_options_); - FieldToJson(args["dstOffset"], dstOffset, json_options_); - FieldToJson(args["size"], size, json_options_); - FieldToJson(args["data"], data, json_options_); + HandleToJson(args["commandBuffer"], commandBuffer, json_options); + HandleToJson(args["dstBuffer"], dstBuffer, json_options); + FieldToJson(args["dstOffset"], dstOffset, json_options); + FieldToJson(args["size"], size, json_options); + FieldToJson(args["data"], data, json_options); WriteBlockEnd(); } @@ -1864,14 +1976,15 @@ void VulkanExportJsonConsumer::Process_vkCmdClearColorImage( StructPointerDecoder* pRanges) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCmdClearColorImage"); - FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["commandBuffer"], commandBuffer, json_options_); - HandleToJson(args["image"], image, json_options_); - FieldToJson(args["imageLayout"], imageLayout, json_options_); - FieldToJson(args["pColor"], pColor, json_options_); - FieldToJson(args["rangeCount"], rangeCount, json_options_); - FieldToJson(args["pRanges"], pRanges, json_options_); + HandleToJson(args["commandBuffer"], commandBuffer, json_options); + HandleToJson(args["image"], image, json_options); + FieldToJson(args["imageLayout"], imageLayout, json_options); + FieldToJson(args["pColor"], pColor, json_options); + FieldToJson(args["rangeCount"], rangeCount, json_options); + FieldToJson(args["pRanges"], pRanges, json_options); WriteBlockEnd(); } @@ -1885,14 +1998,15 @@ void VulkanExportJsonConsumer::Process_vkCmdClearDepthStencilImage( StructPointerDecoder* pRanges) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCmdClearDepthStencilImage"); - FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["commandBuffer"], commandBuffer, json_options_); - HandleToJson(args["image"], image, json_options_); - FieldToJson(args["imageLayout"], imageLayout, json_options_); - FieldToJson(args["pDepthStencil"], pDepthStencil, json_options_); - FieldToJson(args["rangeCount"], rangeCount, json_options_); - FieldToJson(args["pRanges"], pRanges, json_options_); + HandleToJson(args["commandBuffer"], commandBuffer, json_options); + HandleToJson(args["image"], image, json_options); + FieldToJson(args["imageLayout"], imageLayout, json_options); + FieldToJson(args["pDepthStencil"], pDepthStencil, json_options); + FieldToJson(args["rangeCount"], rangeCount, json_options); + FieldToJson(args["pRanges"], pRanges, json_options); WriteBlockEnd(); } @@ -1905,13 +2019,14 @@ void VulkanExportJsonConsumer::Process_vkCmdClearAttachments( StructPointerDecoder* pRects) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCmdClearAttachments"); - FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["commandBuffer"], commandBuffer, json_options_); - FieldToJson(args["attachmentCount"], attachmentCount, json_options_); - FieldToJson(args["pAttachments"], pAttachments, json_options_); - FieldToJson(args["rectCount"], rectCount, json_options_); - FieldToJson(args["pRects"], pRects, json_options_); + HandleToJson(args["commandBuffer"], commandBuffer, json_options); + FieldToJson(args["attachmentCount"], attachmentCount, json_options); + FieldToJson(args["pAttachments"], pAttachments, json_options); + FieldToJson(args["rectCount"], rectCount, json_options); + FieldToJson(args["pRects"], pRects, json_options); WriteBlockEnd(); } @@ -1926,15 +2041,16 @@ void VulkanExportJsonConsumer::Process_vkCmdResolveImage( StructPointerDecoder* pRegions) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCmdResolveImage"); - FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["commandBuffer"], commandBuffer, json_options_); - HandleToJson(args["srcImage"], srcImage, json_options_); - FieldToJson(args["srcImageLayout"], srcImageLayout, json_options_); - HandleToJson(args["dstImage"], dstImage, json_options_); - FieldToJson(args["dstImageLayout"], dstImageLayout, json_options_); - FieldToJson(args["regionCount"], regionCount, json_options_); - FieldToJson(args["pRegions"], pRegions, json_options_); + HandleToJson(args["commandBuffer"], commandBuffer, json_options); + HandleToJson(args["srcImage"], srcImage, json_options); + FieldToJson(args["srcImageLayout"], srcImageLayout, json_options); + HandleToJson(args["dstImage"], dstImage, json_options); + FieldToJson(args["dstImageLayout"], dstImageLayout, json_options); + FieldToJson(args["regionCount"], regionCount, json_options); + FieldToJson(args["pRegions"], pRegions, json_options); WriteBlockEnd(); } @@ -1945,11 +2061,12 @@ void VulkanExportJsonConsumer::Process_vkCmdSetEvent( VkPipelineStageFlags stageMask) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCmdSetEvent"); - FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["commandBuffer"], commandBuffer, json_options_); - HandleToJson(args["event"], event, json_options_); - FieldToJson(VkPipelineStageFlags_t(), args["stageMask"], stageMask, json_options_); + HandleToJson(args["commandBuffer"], commandBuffer, json_options); + HandleToJson(args["event"], event, json_options); + FieldToJson(VkPipelineStageFlags_t(), args["stageMask"], stageMask, json_options); WriteBlockEnd(); } @@ -1960,11 +2077,12 @@ void VulkanExportJsonConsumer::Process_vkCmdResetEvent( VkPipelineStageFlags stageMask) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCmdResetEvent"); - FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["commandBuffer"], commandBuffer, json_options_); - HandleToJson(args["event"], event, json_options_); - FieldToJson(VkPipelineStageFlags_t(), args["stageMask"], stageMask, json_options_); + HandleToJson(args["commandBuffer"], commandBuffer, json_options); + HandleToJson(args["event"], event, json_options); + FieldToJson(VkPipelineStageFlags_t(), args["stageMask"], stageMask, json_options); WriteBlockEnd(); } @@ -1983,19 +2101,20 @@ void VulkanExportJsonConsumer::Process_vkCmdWaitEvents( StructPointerDecoder* pImageMemoryBarriers) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCmdWaitEvents"); - FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["commandBuffer"], commandBuffer, json_options_); - FieldToJson(args["eventCount"], eventCount, json_options_); - HandleToJson(args["pEvents"], pEvents, json_options_); - FieldToJson(VkPipelineStageFlags_t(), args["srcStageMask"], srcStageMask, json_options_); - FieldToJson(VkPipelineStageFlags_t(), args["dstStageMask"], dstStageMask, json_options_); - FieldToJson(args["memoryBarrierCount"], memoryBarrierCount, json_options_); - FieldToJson(args["pMemoryBarriers"], pMemoryBarriers, json_options_); - FieldToJson(args["bufferMemoryBarrierCount"], bufferMemoryBarrierCount, json_options_); - FieldToJson(args["pBufferMemoryBarriers"], pBufferMemoryBarriers, json_options_); - FieldToJson(args["imageMemoryBarrierCount"], imageMemoryBarrierCount, json_options_); - FieldToJson(args["pImageMemoryBarriers"], pImageMemoryBarriers, json_options_); + HandleToJson(args["commandBuffer"], commandBuffer, json_options); + FieldToJson(args["eventCount"], eventCount, json_options); + HandleToJson(args["pEvents"], pEvents, json_options); + FieldToJson(VkPipelineStageFlags_t(), args["srcStageMask"], srcStageMask, json_options); + FieldToJson(VkPipelineStageFlags_t(), args["dstStageMask"], dstStageMask, json_options); + FieldToJson(args["memoryBarrierCount"], memoryBarrierCount, json_options); + FieldToJson(args["pMemoryBarriers"], pMemoryBarriers, json_options); + FieldToJson(args["bufferMemoryBarrierCount"], bufferMemoryBarrierCount, json_options); + FieldToJson(args["pBufferMemoryBarriers"], pBufferMemoryBarriers, json_options); + FieldToJson(args["imageMemoryBarrierCount"], imageMemoryBarrierCount, json_options); + FieldToJson(args["pImageMemoryBarriers"], pImageMemoryBarriers, json_options); WriteBlockEnd(); } @@ -2013,18 +2132,19 @@ void VulkanExportJsonConsumer::Process_vkCmdPipelineBarrier( StructPointerDecoder* pImageMemoryBarriers) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCmdPipelineBarrier"); - FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["commandBuffer"], commandBuffer, json_options_); - FieldToJson(VkPipelineStageFlags_t(), args["srcStageMask"], srcStageMask, json_options_); - FieldToJson(VkPipelineStageFlags_t(), args["dstStageMask"], dstStageMask, json_options_); - FieldToJson(VkDependencyFlags_t(), args["dependencyFlags"], dependencyFlags, json_options_); - FieldToJson(args["memoryBarrierCount"], memoryBarrierCount, json_options_); - FieldToJson(args["pMemoryBarriers"], pMemoryBarriers, json_options_); - FieldToJson(args["bufferMemoryBarrierCount"], bufferMemoryBarrierCount, json_options_); - FieldToJson(args["pBufferMemoryBarriers"], pBufferMemoryBarriers, json_options_); - FieldToJson(args["imageMemoryBarrierCount"], imageMemoryBarrierCount, json_options_); - FieldToJson(args["pImageMemoryBarriers"], pImageMemoryBarriers, json_options_); + HandleToJson(args["commandBuffer"], commandBuffer, json_options); + FieldToJson(VkPipelineStageFlags_t(), args["srcStageMask"], srcStageMask, json_options); + FieldToJson(VkPipelineStageFlags_t(), args["dstStageMask"], dstStageMask, json_options); + FieldToJson(VkDependencyFlags_t(), args["dependencyFlags"], dependencyFlags, json_options); + FieldToJson(args["memoryBarrierCount"], memoryBarrierCount, json_options); + FieldToJson(args["pMemoryBarriers"], pMemoryBarriers, json_options); + FieldToJson(args["bufferMemoryBarrierCount"], bufferMemoryBarrierCount, json_options); + FieldToJson(args["pBufferMemoryBarriers"], pBufferMemoryBarriers, json_options); + FieldToJson(args["imageMemoryBarrierCount"], imageMemoryBarrierCount, json_options); + FieldToJson(args["pImageMemoryBarriers"], pImageMemoryBarriers, json_options); WriteBlockEnd(); } @@ -2036,12 +2156,13 @@ void VulkanExportJsonConsumer::Process_vkCmdBeginQuery( VkQueryControlFlags flags) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCmdBeginQuery"); - FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["commandBuffer"], commandBuffer, json_options_); - HandleToJson(args["queryPool"], queryPool, json_options_); - FieldToJson(args["query"], query, json_options_); - FieldToJson(VkQueryControlFlags_t(), args["flags"], flags, json_options_); + HandleToJson(args["commandBuffer"], commandBuffer, json_options); + HandleToJson(args["queryPool"], queryPool, json_options); + FieldToJson(args["query"], query, json_options); + FieldToJson(VkQueryControlFlags_t(), args["flags"], flags, json_options); WriteBlockEnd(); } @@ -2052,11 +2173,12 @@ void VulkanExportJsonConsumer::Process_vkCmdEndQuery( uint32_t query) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCmdEndQuery"); - FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["commandBuffer"], commandBuffer, json_options_); - HandleToJson(args["queryPool"], queryPool, json_options_); - FieldToJson(args["query"], query, json_options_); + HandleToJson(args["commandBuffer"], commandBuffer, json_options); + HandleToJson(args["queryPool"], queryPool, json_options); + FieldToJson(args["query"], query, json_options); WriteBlockEnd(); } @@ -2068,12 +2190,13 @@ void VulkanExportJsonConsumer::Process_vkCmdResetQueryPool( uint32_t queryCount) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCmdResetQueryPool"); - FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["commandBuffer"], commandBuffer, json_options_); - HandleToJson(args["queryPool"], queryPool, json_options_); - FieldToJson(args["firstQuery"], firstQuery, json_options_); - FieldToJson(args["queryCount"], queryCount, json_options_); + HandleToJson(args["commandBuffer"], commandBuffer, json_options); + HandleToJson(args["queryPool"], queryPool, json_options); + FieldToJson(args["firstQuery"], firstQuery, json_options); + FieldToJson(args["queryCount"], queryCount, json_options); WriteBlockEnd(); } @@ -2085,12 +2208,13 @@ void VulkanExportJsonConsumer::Process_vkCmdWriteTimestamp( uint32_t query) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCmdWriteTimestamp"); - FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["commandBuffer"], commandBuffer, json_options_); - FieldToJson(args["pipelineStage"], pipelineStage, json_options_); - HandleToJson(args["queryPool"], queryPool, json_options_); - FieldToJson(args["query"], query, json_options_); + HandleToJson(args["commandBuffer"], commandBuffer, json_options); + FieldToJson(args["pipelineStage"], pipelineStage, json_options); + HandleToJson(args["queryPool"], queryPool, json_options); + FieldToJson(args["query"], query, json_options); WriteBlockEnd(); } @@ -2106,16 +2230,17 @@ void VulkanExportJsonConsumer::Process_vkCmdCopyQueryPoolResults( VkQueryResultFlags flags) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCmdCopyQueryPoolResults"); - FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["commandBuffer"], commandBuffer, json_options_); - HandleToJson(args["queryPool"], queryPool, json_options_); - FieldToJson(args["firstQuery"], firstQuery, json_options_); - FieldToJson(args["queryCount"], queryCount, json_options_); - HandleToJson(args["dstBuffer"], dstBuffer, json_options_); - FieldToJson(args["dstOffset"], dstOffset, json_options_); - FieldToJson(args["stride"], stride, json_options_); - FieldToJson(VkQueryResultFlags_t(), args["flags"], flags, json_options_); + HandleToJson(args["commandBuffer"], commandBuffer, json_options); + HandleToJson(args["queryPool"], queryPool, json_options); + FieldToJson(args["firstQuery"], firstQuery, json_options); + FieldToJson(args["queryCount"], queryCount, json_options); + HandleToJson(args["dstBuffer"], dstBuffer, json_options); + FieldToJson(args["dstOffset"], dstOffset, json_options); + FieldToJson(args["stride"], stride, json_options); + FieldToJson(VkQueryResultFlags_t(), args["flags"], flags, json_options); WriteBlockEnd(); } @@ -2126,11 +2251,12 @@ void VulkanExportJsonConsumer::Process_vkCmdBeginRenderPass( VkSubpassContents contents) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCmdBeginRenderPass"); - FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["commandBuffer"], commandBuffer, json_options_); - FieldToJson(args["pRenderPassBegin"], pRenderPassBegin, json_options_); - FieldToJson(args["contents"], contents, json_options_); + HandleToJson(args["commandBuffer"], commandBuffer, json_options); + FieldToJson(args["pRenderPassBegin"], pRenderPassBegin, json_options); + FieldToJson(args["contents"], contents, json_options); WriteBlockEnd(); } @@ -2140,10 +2266,11 @@ void VulkanExportJsonConsumer::Process_vkCmdNextSubpass( VkSubpassContents contents) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCmdNextSubpass"); - FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["commandBuffer"], commandBuffer, json_options_); - FieldToJson(args["contents"], contents, json_options_); + HandleToJson(args["commandBuffer"], commandBuffer, json_options); + FieldToJson(args["contents"], contents, json_options); WriteBlockEnd(); } @@ -2152,9 +2279,10 @@ void VulkanExportJsonConsumer::Process_vkCmdEndRenderPass( format::HandleId commandBuffer) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCmdEndRenderPass"); - FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["commandBuffer"], commandBuffer, json_options_); + HandleToJson(args["commandBuffer"], commandBuffer, json_options); WriteBlockEnd(); } @@ -2165,11 +2293,12 @@ void VulkanExportJsonConsumer::Process_vkCmdExecuteCommands( HandlePointerDecoder* pCommandBuffers) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCmdExecuteCommands"); - FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["commandBuffer"], commandBuffer, json_options_); - FieldToJson(args["commandBufferCount"], commandBufferCount, json_options_); - HandleToJson(args["pCommandBuffers"], pCommandBuffers, json_options_); + HandleToJson(args["commandBuffer"], commandBuffer, json_options); + FieldToJson(args["commandBufferCount"], commandBufferCount, json_options); + HandleToJson(args["pCommandBuffers"], pCommandBuffers, json_options); WriteBlockEnd(); } @@ -2181,11 +2310,12 @@ void VulkanExportJsonConsumer::Process_vkBindBufferMemory2( StructPointerDecoder* pBindInfos) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkBindBufferMemory2"); - FieldToJson(jdata[NameReturn()], returnValue, json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameReturn()], returnValue, json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["device"], device, json_options_); - FieldToJson(args["bindInfoCount"], bindInfoCount, json_options_); - FieldToJson(args["pBindInfos"], pBindInfos, json_options_); + HandleToJson(args["device"], device, json_options); + FieldToJson(args["bindInfoCount"], bindInfoCount, json_options); + FieldToJson(args["pBindInfos"], pBindInfos, json_options); WriteBlockEnd(); } @@ -2197,11 +2327,12 @@ void VulkanExportJsonConsumer::Process_vkBindImageMemory2( StructPointerDecoder* pBindInfos) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkBindImageMemory2"); - FieldToJson(jdata[NameReturn()], returnValue, json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameReturn()], returnValue, json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["device"], device, json_options_); - FieldToJson(args["bindInfoCount"], bindInfoCount, json_options_); - FieldToJson(args["pBindInfos"], pBindInfos, json_options_); + HandleToJson(args["device"], device, json_options); + FieldToJson(args["bindInfoCount"], bindInfoCount, json_options); + FieldToJson(args["pBindInfos"], pBindInfos, json_options); WriteBlockEnd(); } @@ -2214,12 +2345,13 @@ void VulkanExportJsonConsumer::Process_vkGetDeviceGroupPeerMemoryFeatures( PointerDecoder* pPeerMemoryFeatures) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkGetDeviceGroupPeerMemoryFeatures"); + const JsonOptions& json_options = GetJsonOptions(); auto& args = jdata[NameArgs()]; - HandleToJson(args["device"], device, json_options_); - FieldToJson(args["heapIndex"], heapIndex, json_options_); - FieldToJson(args["localDeviceIndex"], localDeviceIndex, json_options_); - FieldToJson(args["remoteDeviceIndex"], remoteDeviceIndex, json_options_); - FieldToJson(args["pPeerMemoryFeatures"], pPeerMemoryFeatures, json_options_); + HandleToJson(args["device"], device, json_options); + FieldToJson(args["heapIndex"], heapIndex, json_options); + FieldToJson(args["localDeviceIndex"], localDeviceIndex, json_options); + FieldToJson(args["remoteDeviceIndex"], remoteDeviceIndex, json_options); + FieldToJson(args["pPeerMemoryFeatures"], pPeerMemoryFeatures, json_options); WriteBlockEnd(); } @@ -2229,10 +2361,11 @@ void VulkanExportJsonConsumer::Process_vkCmdSetDeviceMask( uint32_t deviceMask) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCmdSetDeviceMask"); - FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["commandBuffer"], commandBuffer, json_options_); - FieldToJson(args["deviceMask"], deviceMask, json_options_); + HandleToJson(args["commandBuffer"], commandBuffer, json_options); + FieldToJson(args["deviceMask"], deviceMask, json_options); WriteBlockEnd(); } @@ -2247,15 +2380,16 @@ void VulkanExportJsonConsumer::Process_vkCmdDispatchBase( uint32_t groupCountZ) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCmdDispatchBase"); - FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["commandBuffer"], commandBuffer, json_options_); - FieldToJson(args["baseGroupX"], baseGroupX, json_options_); - FieldToJson(args["baseGroupY"], baseGroupY, json_options_); - FieldToJson(args["baseGroupZ"], baseGroupZ, json_options_); - FieldToJson(args["groupCountX"], groupCountX, json_options_); - FieldToJson(args["groupCountY"], groupCountY, json_options_); - FieldToJson(args["groupCountZ"], groupCountZ, json_options_); + HandleToJson(args["commandBuffer"], commandBuffer, json_options); + FieldToJson(args["baseGroupX"], baseGroupX, json_options); + FieldToJson(args["baseGroupY"], baseGroupY, json_options); + FieldToJson(args["baseGroupZ"], baseGroupZ, json_options); + FieldToJson(args["groupCountX"], groupCountX, json_options); + FieldToJson(args["groupCountY"], groupCountY, json_options); + FieldToJson(args["groupCountZ"], groupCountZ, json_options); WriteBlockEnd(); } @@ -2267,11 +2401,12 @@ void VulkanExportJsonConsumer::Process_vkEnumeratePhysicalDeviceGroups( StructPointerDecoder* pPhysicalDeviceGroupProperties) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkEnumeratePhysicalDeviceGroups"); - FieldToJson(jdata[NameReturn()], returnValue, json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameReturn()], returnValue, json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["instance"], instance, json_options_); - FieldToJson(args["pPhysicalDeviceGroupCount"], pPhysicalDeviceGroupCount, json_options_); - FieldToJson(args["pPhysicalDeviceGroupProperties"], pPhysicalDeviceGroupProperties, json_options_); + HandleToJson(args["instance"], instance, json_options); + FieldToJson(args["pPhysicalDeviceGroupCount"], pPhysicalDeviceGroupCount, json_options); + FieldToJson(args["pPhysicalDeviceGroupProperties"], pPhysicalDeviceGroupProperties, json_options); WriteBlockEnd(); } @@ -2282,10 +2417,11 @@ void VulkanExportJsonConsumer::Process_vkGetImageMemoryRequirements2( StructPointerDecoder* pMemoryRequirements) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkGetImageMemoryRequirements2"); + const JsonOptions& json_options = GetJsonOptions(); auto& args = jdata[NameArgs()]; - HandleToJson(args["device"], device, json_options_); - FieldToJson(args["pInfo"], pInfo, json_options_); - FieldToJson(args["pMemoryRequirements"], pMemoryRequirements, json_options_); + HandleToJson(args["device"], device, json_options); + FieldToJson(args["pInfo"], pInfo, json_options); + FieldToJson(args["pMemoryRequirements"], pMemoryRequirements, json_options); WriteBlockEnd(); } @@ -2296,10 +2432,11 @@ void VulkanExportJsonConsumer::Process_vkGetBufferMemoryRequirements2( StructPointerDecoder* pMemoryRequirements) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkGetBufferMemoryRequirements2"); + const JsonOptions& json_options = GetJsonOptions(); auto& args = jdata[NameArgs()]; - HandleToJson(args["device"], device, json_options_); - FieldToJson(args["pInfo"], pInfo, json_options_); - FieldToJson(args["pMemoryRequirements"], pMemoryRequirements, json_options_); + HandleToJson(args["device"], device, json_options); + FieldToJson(args["pInfo"], pInfo, json_options); + FieldToJson(args["pMemoryRequirements"], pMemoryRequirements, json_options); WriteBlockEnd(); } @@ -2311,11 +2448,12 @@ void VulkanExportJsonConsumer::Process_vkGetImageSparseMemoryRequirements2( StructPointerDecoder* pSparseMemoryRequirements) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkGetImageSparseMemoryRequirements2"); + const JsonOptions& json_options = GetJsonOptions(); auto& args = jdata[NameArgs()]; - HandleToJson(args["device"], device, json_options_); - FieldToJson(args["pInfo"], pInfo, json_options_); - FieldToJson(args["pSparseMemoryRequirementCount"], pSparseMemoryRequirementCount, json_options_); - FieldToJson(args["pSparseMemoryRequirements"], pSparseMemoryRequirements, json_options_); + HandleToJson(args["device"], device, json_options); + FieldToJson(args["pInfo"], pInfo, json_options); + FieldToJson(args["pSparseMemoryRequirementCount"], pSparseMemoryRequirementCount, json_options); + FieldToJson(args["pSparseMemoryRequirements"], pSparseMemoryRequirements, json_options); WriteBlockEnd(); } @@ -2325,9 +2463,10 @@ void VulkanExportJsonConsumer::Process_vkGetPhysicalDeviceFeatures2( StructPointerDecoder* pFeatures) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkGetPhysicalDeviceFeatures2"); + const JsonOptions& json_options = GetJsonOptions(); auto& args = jdata[NameArgs()]; - HandleToJson(args["physicalDevice"], physicalDevice, json_options_); - FieldToJson(args["pFeatures"], pFeatures, json_options_); + HandleToJson(args["physicalDevice"], physicalDevice, json_options); + FieldToJson(args["pFeatures"], pFeatures, json_options); WriteBlockEnd(); } @@ -2337,9 +2476,10 @@ void VulkanExportJsonConsumer::Process_vkGetPhysicalDeviceProperties2( StructPointerDecoder* pProperties) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkGetPhysicalDeviceProperties2"); + const JsonOptions& json_options = GetJsonOptions(); auto& args = jdata[NameArgs()]; - HandleToJson(args["physicalDevice"], physicalDevice, json_options_); - FieldToJson(args["pProperties"], pProperties, json_options_); + HandleToJson(args["physicalDevice"], physicalDevice, json_options); + FieldToJson(args["pProperties"], pProperties, json_options); WriteBlockEnd(); } @@ -2350,10 +2490,11 @@ void VulkanExportJsonConsumer::Process_vkGetPhysicalDeviceFormatProperties2( StructPointerDecoder* pFormatProperties) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkGetPhysicalDeviceFormatProperties2"); + const JsonOptions& json_options = GetJsonOptions(); auto& args = jdata[NameArgs()]; - HandleToJson(args["physicalDevice"], physicalDevice, json_options_); - FieldToJson(args["format"], format, json_options_); - FieldToJson(args["pFormatProperties"], pFormatProperties, json_options_); + HandleToJson(args["physicalDevice"], physicalDevice, json_options); + FieldToJson(args["format"], format, json_options); + FieldToJson(args["pFormatProperties"], pFormatProperties, json_options); WriteBlockEnd(); } @@ -2365,11 +2506,12 @@ void VulkanExportJsonConsumer::Process_vkGetPhysicalDeviceImageFormatProperties2 StructPointerDecoder* pImageFormatProperties) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkGetPhysicalDeviceImageFormatProperties2"); - FieldToJson(jdata[NameReturn()], returnValue, json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameReturn()], returnValue, json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["physicalDevice"], physicalDevice, json_options_); - FieldToJson(args["pImageFormatInfo"], pImageFormatInfo, json_options_); - FieldToJson(args["pImageFormatProperties"], pImageFormatProperties, json_options_); + HandleToJson(args["physicalDevice"], physicalDevice, json_options); + FieldToJson(args["pImageFormatInfo"], pImageFormatInfo, json_options); + FieldToJson(args["pImageFormatProperties"], pImageFormatProperties, json_options); WriteBlockEnd(); } @@ -2380,10 +2522,11 @@ void VulkanExportJsonConsumer::Process_vkGetPhysicalDeviceQueueFamilyProperties2 StructPointerDecoder* pQueueFamilyProperties) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkGetPhysicalDeviceQueueFamilyProperties2"); + const JsonOptions& json_options = GetJsonOptions(); auto& args = jdata[NameArgs()]; - HandleToJson(args["physicalDevice"], physicalDevice, json_options_); - FieldToJson(args["pQueueFamilyPropertyCount"], pQueueFamilyPropertyCount, json_options_); - FieldToJson(args["pQueueFamilyProperties"], pQueueFamilyProperties, json_options_); + HandleToJson(args["physicalDevice"], physicalDevice, json_options); + FieldToJson(args["pQueueFamilyPropertyCount"], pQueueFamilyPropertyCount, json_options); + FieldToJson(args["pQueueFamilyProperties"], pQueueFamilyProperties, json_options); WriteBlockEnd(); } @@ -2393,9 +2536,10 @@ void VulkanExportJsonConsumer::Process_vkGetPhysicalDeviceMemoryProperties2( StructPointerDecoder* pMemoryProperties) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkGetPhysicalDeviceMemoryProperties2"); + const JsonOptions& json_options = GetJsonOptions(); auto& args = jdata[NameArgs()]; - HandleToJson(args["physicalDevice"], physicalDevice, json_options_); - FieldToJson(args["pMemoryProperties"], pMemoryProperties, json_options_); + HandleToJson(args["physicalDevice"], physicalDevice, json_options); + FieldToJson(args["pMemoryProperties"], pMemoryProperties, json_options); WriteBlockEnd(); } @@ -2407,11 +2551,12 @@ void VulkanExportJsonConsumer::Process_vkGetPhysicalDeviceSparseImageFormatPrope StructPointerDecoder* pProperties) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkGetPhysicalDeviceSparseImageFormatProperties2"); + const JsonOptions& json_options = GetJsonOptions(); auto& args = jdata[NameArgs()]; - HandleToJson(args["physicalDevice"], physicalDevice, json_options_); - FieldToJson(args["pFormatInfo"], pFormatInfo, json_options_); - FieldToJson(args["pPropertyCount"], pPropertyCount, json_options_); - FieldToJson(args["pProperties"], pProperties, json_options_); + HandleToJson(args["physicalDevice"], physicalDevice, json_options); + FieldToJson(args["pFormatInfo"], pFormatInfo, json_options); + FieldToJson(args["pPropertyCount"], pPropertyCount, json_options); + FieldToJson(args["pProperties"], pProperties, json_options); WriteBlockEnd(); } @@ -2422,10 +2567,11 @@ void VulkanExportJsonConsumer::Process_vkTrimCommandPool( VkCommandPoolTrimFlags flags) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkTrimCommandPool"); + const JsonOptions& json_options = GetJsonOptions(); auto& args = jdata[NameArgs()]; - HandleToJson(args["device"], device, json_options_); - HandleToJson(args["commandPool"], commandPool, json_options_); - FieldToJson(VkCommandPoolTrimFlags_t(), args["flags"], flags, json_options_); + HandleToJson(args["device"], device, json_options); + HandleToJson(args["commandPool"], commandPool, json_options); + FieldToJson(VkCommandPoolTrimFlags_t(), args["flags"], flags, json_options); WriteBlockEnd(); } @@ -2436,10 +2582,11 @@ void VulkanExportJsonConsumer::Process_vkGetDeviceQueue2( HandlePointerDecoder* pQueue) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkGetDeviceQueue2"); + const JsonOptions& json_options = GetJsonOptions(); auto& args = jdata[NameArgs()]; - HandleToJson(args["device"], device, json_options_); - FieldToJson(args["pQueueInfo"], pQueueInfo, json_options_); - HandleToJson(args["pQueue"], pQueue, json_options_); + HandleToJson(args["device"], device, json_options); + FieldToJson(args["pQueueInfo"], pQueueInfo, json_options); + HandleToJson(args["pQueue"], pQueue, json_options); WriteBlockEnd(); } @@ -2452,12 +2599,13 @@ void VulkanExportJsonConsumer::Process_vkCreateSamplerYcbcrConversion( HandlePointerDecoder* pYcbcrConversion) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCreateSamplerYcbcrConversion"); - FieldToJson(jdata[NameReturn()], returnValue, json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameReturn()], returnValue, json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["device"], device, json_options_); - FieldToJson(args["pCreateInfo"], pCreateInfo, json_options_); - FieldToJson(args["pAllocator"], pAllocator, json_options_); - HandleToJson(args["pYcbcrConversion"], pYcbcrConversion, json_options_); + HandleToJson(args["device"], device, json_options); + FieldToJson(args["pCreateInfo"], pCreateInfo, json_options); + FieldToJson(args["pAllocator"], pAllocator, json_options); + HandleToJson(args["pYcbcrConversion"], pYcbcrConversion, json_options); WriteBlockEnd(); } @@ -2468,10 +2616,11 @@ void VulkanExportJsonConsumer::Process_vkDestroySamplerYcbcrConversion( StructPointerDecoder* pAllocator) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkDestroySamplerYcbcrConversion"); + const JsonOptions& json_options = GetJsonOptions(); auto& args = jdata[NameArgs()]; - HandleToJson(args["device"], device, json_options_); - HandleToJson(args["ycbcrConversion"], ycbcrConversion, json_options_); - FieldToJson(args["pAllocator"], pAllocator, json_options_); + HandleToJson(args["device"], device, json_options); + HandleToJson(args["ycbcrConversion"], ycbcrConversion, json_options); + FieldToJson(args["pAllocator"], pAllocator, json_options); WriteBlockEnd(); } @@ -2484,12 +2633,13 @@ void VulkanExportJsonConsumer::Process_vkCreateDescriptorUpdateTemplate( HandlePointerDecoder* pDescriptorUpdateTemplate) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCreateDescriptorUpdateTemplate"); - FieldToJson(jdata[NameReturn()], returnValue, json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameReturn()], returnValue, json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["device"], device, json_options_); - FieldToJson(args["pCreateInfo"], pCreateInfo, json_options_); - FieldToJson(args["pAllocator"], pAllocator, json_options_); - HandleToJson(args["pDescriptorUpdateTemplate"], pDescriptorUpdateTemplate, json_options_); + HandleToJson(args["device"], device, json_options); + FieldToJson(args["pCreateInfo"], pCreateInfo, json_options); + FieldToJson(args["pAllocator"], pAllocator, json_options); + HandleToJson(args["pDescriptorUpdateTemplate"], pDescriptorUpdateTemplate, json_options); WriteBlockEnd(); } @@ -2500,10 +2650,11 @@ void VulkanExportJsonConsumer::Process_vkDestroyDescriptorUpdateTemplate( StructPointerDecoder* pAllocator) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkDestroyDescriptorUpdateTemplate"); + const JsonOptions& json_options = GetJsonOptions(); auto& args = jdata[NameArgs()]; - HandleToJson(args["device"], device, json_options_); - HandleToJson(args["descriptorUpdateTemplate"], descriptorUpdateTemplate, json_options_); - FieldToJson(args["pAllocator"], pAllocator, json_options_); + HandleToJson(args["device"], device, json_options); + HandleToJson(args["descriptorUpdateTemplate"], descriptorUpdateTemplate, json_options); + FieldToJson(args["pAllocator"], pAllocator, json_options); WriteBlockEnd(); } @@ -2514,10 +2665,11 @@ void VulkanExportJsonConsumer::Process_vkGetPhysicalDeviceExternalBufferProperti StructPointerDecoder* pExternalBufferProperties) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkGetPhysicalDeviceExternalBufferProperties"); + const JsonOptions& json_options = GetJsonOptions(); auto& args = jdata[NameArgs()]; - HandleToJson(args["physicalDevice"], physicalDevice, json_options_); - FieldToJson(args["pExternalBufferInfo"], pExternalBufferInfo, json_options_); - FieldToJson(args["pExternalBufferProperties"], pExternalBufferProperties, json_options_); + HandleToJson(args["physicalDevice"], physicalDevice, json_options); + FieldToJson(args["pExternalBufferInfo"], pExternalBufferInfo, json_options); + FieldToJson(args["pExternalBufferProperties"], pExternalBufferProperties, json_options); WriteBlockEnd(); } @@ -2528,10 +2680,11 @@ void VulkanExportJsonConsumer::Process_vkGetPhysicalDeviceExternalFencePropertie StructPointerDecoder* pExternalFenceProperties) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkGetPhysicalDeviceExternalFenceProperties"); + const JsonOptions& json_options = GetJsonOptions(); auto& args = jdata[NameArgs()]; - HandleToJson(args["physicalDevice"], physicalDevice, json_options_); - FieldToJson(args["pExternalFenceInfo"], pExternalFenceInfo, json_options_); - FieldToJson(args["pExternalFenceProperties"], pExternalFenceProperties, json_options_); + HandleToJson(args["physicalDevice"], physicalDevice, json_options); + FieldToJson(args["pExternalFenceInfo"], pExternalFenceInfo, json_options); + FieldToJson(args["pExternalFenceProperties"], pExternalFenceProperties, json_options); WriteBlockEnd(); } @@ -2542,10 +2695,11 @@ void VulkanExportJsonConsumer::Process_vkGetPhysicalDeviceExternalSemaphorePrope StructPointerDecoder* pExternalSemaphoreProperties) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkGetPhysicalDeviceExternalSemaphoreProperties"); + const JsonOptions& json_options = GetJsonOptions(); auto& args = jdata[NameArgs()]; - HandleToJson(args["physicalDevice"], physicalDevice, json_options_); - FieldToJson(args["pExternalSemaphoreInfo"], pExternalSemaphoreInfo, json_options_); - FieldToJson(args["pExternalSemaphoreProperties"], pExternalSemaphoreProperties, json_options_); + HandleToJson(args["physicalDevice"], physicalDevice, json_options); + FieldToJson(args["pExternalSemaphoreInfo"], pExternalSemaphoreInfo, json_options); + FieldToJson(args["pExternalSemaphoreProperties"], pExternalSemaphoreProperties, json_options); WriteBlockEnd(); } @@ -2556,10 +2710,11 @@ void VulkanExportJsonConsumer::Process_vkGetDescriptorSetLayoutSupport( StructPointerDecoder* pSupport) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkGetDescriptorSetLayoutSupport"); + const JsonOptions& json_options = GetJsonOptions(); auto& args = jdata[NameArgs()]; - HandleToJson(args["device"], device, json_options_); - FieldToJson(args["pCreateInfo"], pCreateInfo, json_options_); - FieldToJson(args["pSupport"], pSupport, json_options_); + HandleToJson(args["device"], device, json_options); + FieldToJson(args["pCreateInfo"], pCreateInfo, json_options); + FieldToJson(args["pSupport"], pSupport, json_options); WriteBlockEnd(); } @@ -2574,15 +2729,16 @@ void VulkanExportJsonConsumer::Process_vkCmdDrawIndirectCount( uint32_t stride) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCmdDrawIndirectCount"); - FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["commandBuffer"], commandBuffer, json_options_); - HandleToJson(args["buffer"], buffer, json_options_); - FieldToJson(args["offset"], offset, json_options_); - HandleToJson(args["countBuffer"], countBuffer, json_options_); - FieldToJson(args["countBufferOffset"], countBufferOffset, json_options_); - FieldToJson(args["maxDrawCount"], maxDrawCount, json_options_); - FieldToJson(args["stride"], stride, json_options_); + HandleToJson(args["commandBuffer"], commandBuffer, json_options); + HandleToJson(args["buffer"], buffer, json_options); + FieldToJson(args["offset"], offset, json_options); + HandleToJson(args["countBuffer"], countBuffer, json_options); + FieldToJson(args["countBufferOffset"], countBufferOffset, json_options); + FieldToJson(args["maxDrawCount"], maxDrawCount, json_options); + FieldToJson(args["stride"], stride, json_options); WriteBlockEnd(); } @@ -2597,15 +2753,16 @@ void VulkanExportJsonConsumer::Process_vkCmdDrawIndexedIndirectCount( uint32_t stride) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCmdDrawIndexedIndirectCount"); - FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["commandBuffer"], commandBuffer, json_options_); - HandleToJson(args["buffer"], buffer, json_options_); - FieldToJson(args["offset"], offset, json_options_); - HandleToJson(args["countBuffer"], countBuffer, json_options_); - FieldToJson(args["countBufferOffset"], countBufferOffset, json_options_); - FieldToJson(args["maxDrawCount"], maxDrawCount, json_options_); - FieldToJson(args["stride"], stride, json_options_); + HandleToJson(args["commandBuffer"], commandBuffer, json_options); + HandleToJson(args["buffer"], buffer, json_options); + FieldToJson(args["offset"], offset, json_options); + HandleToJson(args["countBuffer"], countBuffer, json_options); + FieldToJson(args["countBufferOffset"], countBufferOffset, json_options); + FieldToJson(args["maxDrawCount"], maxDrawCount, json_options); + FieldToJson(args["stride"], stride, json_options); WriteBlockEnd(); } @@ -2618,12 +2775,13 @@ void VulkanExportJsonConsumer::Process_vkCreateRenderPass2( HandlePointerDecoder* pRenderPass) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCreateRenderPass2"); - FieldToJson(jdata[NameReturn()], returnValue, json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameReturn()], returnValue, json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["device"], device, json_options_); - FieldToJson(args["pCreateInfo"], pCreateInfo, json_options_); - FieldToJson(args["pAllocator"], pAllocator, json_options_); - HandleToJson(args["pRenderPass"], pRenderPass, json_options_); + HandleToJson(args["device"], device, json_options); + FieldToJson(args["pCreateInfo"], pCreateInfo, json_options); + FieldToJson(args["pAllocator"], pAllocator, json_options); + HandleToJson(args["pRenderPass"], pRenderPass, json_options); WriteBlockEnd(); } @@ -2634,11 +2792,12 @@ void VulkanExportJsonConsumer::Process_vkCmdBeginRenderPass2( StructPointerDecoder* pSubpassBeginInfo) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCmdBeginRenderPass2"); - FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["commandBuffer"], commandBuffer, json_options_); - FieldToJson(args["pRenderPassBegin"], pRenderPassBegin, json_options_); - FieldToJson(args["pSubpassBeginInfo"], pSubpassBeginInfo, json_options_); + HandleToJson(args["commandBuffer"], commandBuffer, json_options); + FieldToJson(args["pRenderPassBegin"], pRenderPassBegin, json_options); + FieldToJson(args["pSubpassBeginInfo"], pSubpassBeginInfo, json_options); WriteBlockEnd(); } @@ -2649,11 +2808,12 @@ void VulkanExportJsonConsumer::Process_vkCmdNextSubpass2( StructPointerDecoder* pSubpassEndInfo) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCmdNextSubpass2"); - FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["commandBuffer"], commandBuffer, json_options_); - FieldToJson(args["pSubpassBeginInfo"], pSubpassBeginInfo, json_options_); - FieldToJson(args["pSubpassEndInfo"], pSubpassEndInfo, json_options_); + HandleToJson(args["commandBuffer"], commandBuffer, json_options); + FieldToJson(args["pSubpassBeginInfo"], pSubpassBeginInfo, json_options); + FieldToJson(args["pSubpassEndInfo"], pSubpassEndInfo, json_options); WriteBlockEnd(); } @@ -2663,10 +2823,11 @@ void VulkanExportJsonConsumer::Process_vkCmdEndRenderPass2( StructPointerDecoder* pSubpassEndInfo) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCmdEndRenderPass2"); - FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["commandBuffer"], commandBuffer, json_options_); - FieldToJson(args["pSubpassEndInfo"], pSubpassEndInfo, json_options_); + HandleToJson(args["commandBuffer"], commandBuffer, json_options); + FieldToJson(args["pSubpassEndInfo"], pSubpassEndInfo, json_options); WriteBlockEnd(); } @@ -2678,11 +2839,12 @@ void VulkanExportJsonConsumer::Process_vkResetQueryPool( uint32_t queryCount) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkResetQueryPool"); + const JsonOptions& json_options = GetJsonOptions(); auto& args = jdata[NameArgs()]; - HandleToJson(args["device"], device, json_options_); - HandleToJson(args["queryPool"], queryPool, json_options_); - FieldToJson(args["firstQuery"], firstQuery, json_options_); - FieldToJson(args["queryCount"], queryCount, json_options_); + HandleToJson(args["device"], device, json_options); + HandleToJson(args["queryPool"], queryPool, json_options); + FieldToJson(args["firstQuery"], firstQuery, json_options); + FieldToJson(args["queryCount"], queryCount, json_options); WriteBlockEnd(); } @@ -2694,11 +2856,12 @@ void VulkanExportJsonConsumer::Process_vkGetSemaphoreCounterValue( PointerDecoder* pValue) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkGetSemaphoreCounterValue"); - FieldToJson(jdata[NameReturn()], returnValue, json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameReturn()], returnValue, json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["device"], device, json_options_); - HandleToJson(args["semaphore"], semaphore, json_options_); - FieldToJson(args["pValue"], pValue, json_options_); + HandleToJson(args["device"], device, json_options); + HandleToJson(args["semaphore"], semaphore, json_options); + FieldToJson(args["pValue"], pValue, json_options); WriteBlockEnd(); } @@ -2710,11 +2873,12 @@ void VulkanExportJsonConsumer::Process_vkWaitSemaphores( uint64_t timeout) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkWaitSemaphores"); - FieldToJson(jdata[NameReturn()], returnValue, json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameReturn()], returnValue, json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["device"], device, json_options_); - FieldToJson(args["pWaitInfo"], pWaitInfo, json_options_); - FieldToJson(args["timeout"], timeout, json_options_); + HandleToJson(args["device"], device, json_options); + FieldToJson(args["pWaitInfo"], pWaitInfo, json_options); + FieldToJson(args["timeout"], timeout, json_options); WriteBlockEnd(); } @@ -2725,10 +2889,11 @@ void VulkanExportJsonConsumer::Process_vkSignalSemaphore( StructPointerDecoder* pSignalInfo) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkSignalSemaphore"); - FieldToJson(jdata[NameReturn()], returnValue, json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameReturn()], returnValue, json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["device"], device, json_options_); - FieldToJson(args["pSignalInfo"], pSignalInfo, json_options_); + HandleToJson(args["device"], device, json_options); + FieldToJson(args["pSignalInfo"], pSignalInfo, json_options); WriteBlockEnd(); } @@ -2739,10 +2904,11 @@ void VulkanExportJsonConsumer::Process_vkGetBufferDeviceAddress( StructPointerDecoder* pInfo) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkGetBufferDeviceAddress"); - FieldToJsonAsHex(jdata[NameReturn()], returnValue, json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJsonAsHex(jdata[NameReturn()], returnValue, json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["device"], device, json_options_); - FieldToJson(args["pInfo"], pInfo, json_options_); + HandleToJson(args["device"], device, json_options); + FieldToJson(args["pInfo"], pInfo, json_options); WriteBlockEnd(); } @@ -2753,10 +2919,11 @@ void VulkanExportJsonConsumer::Process_vkGetBufferOpaqueCaptureAddress( StructPointerDecoder* pInfo) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkGetBufferOpaqueCaptureAddress"); - FieldToJson(jdata[NameReturn()], returnValue, json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameReturn()], returnValue, json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["device"], device, json_options_); - FieldToJson(args["pInfo"], pInfo, json_options_); + HandleToJson(args["device"], device, json_options); + FieldToJson(args["pInfo"], pInfo, json_options); WriteBlockEnd(); } @@ -2767,10 +2934,11 @@ void VulkanExportJsonConsumer::Process_vkGetDeviceMemoryOpaqueCaptureAddress( StructPointerDecoder* pInfo) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkGetDeviceMemoryOpaqueCaptureAddress"); - FieldToJson(jdata[NameReturn()], returnValue, json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameReturn()], returnValue, json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["device"], device, json_options_); - FieldToJson(args["pInfo"], pInfo, json_options_); + HandleToJson(args["device"], device, json_options); + FieldToJson(args["pInfo"], pInfo, json_options); WriteBlockEnd(); } @@ -2782,11 +2950,12 @@ void VulkanExportJsonConsumer::Process_vkGetPhysicalDeviceToolProperties( StructPointerDecoder* pToolProperties) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkGetPhysicalDeviceToolProperties"); - FieldToJson(jdata[NameReturn()], returnValue, json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameReturn()], returnValue, json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["physicalDevice"], physicalDevice, json_options_); - FieldToJson(args["pToolCount"], pToolCount, json_options_); - FieldToJson(args["pToolProperties"], pToolProperties, json_options_); + HandleToJson(args["physicalDevice"], physicalDevice, json_options); + FieldToJson(args["pToolCount"], pToolCount, json_options); + FieldToJson(args["pToolProperties"], pToolProperties, json_options); WriteBlockEnd(); } @@ -2799,12 +2968,13 @@ void VulkanExportJsonConsumer::Process_vkCreatePrivateDataSlot( HandlePointerDecoder* pPrivateDataSlot) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCreatePrivateDataSlot"); - FieldToJson(jdata[NameReturn()], returnValue, json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameReturn()], returnValue, json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["device"], device, json_options_); - FieldToJson(args["pCreateInfo"], pCreateInfo, json_options_); - FieldToJson(args["pAllocator"], pAllocator, json_options_); - HandleToJson(args["pPrivateDataSlot"], pPrivateDataSlot, json_options_); + HandleToJson(args["device"], device, json_options); + FieldToJson(args["pCreateInfo"], pCreateInfo, json_options); + FieldToJson(args["pAllocator"], pAllocator, json_options); + HandleToJson(args["pPrivateDataSlot"], pPrivateDataSlot, json_options); WriteBlockEnd(); } @@ -2815,10 +2985,11 @@ void VulkanExportJsonConsumer::Process_vkDestroyPrivateDataSlot( StructPointerDecoder* pAllocator) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkDestroyPrivateDataSlot"); + const JsonOptions& json_options = GetJsonOptions(); auto& args = jdata[NameArgs()]; - HandleToJson(args["device"], device, json_options_); - HandleToJson(args["privateDataSlot"], privateDataSlot, json_options_); - FieldToJson(args["pAllocator"], pAllocator, json_options_); + HandleToJson(args["device"], device, json_options); + HandleToJson(args["privateDataSlot"], privateDataSlot, json_options); + FieldToJson(args["pAllocator"], pAllocator, json_options); WriteBlockEnd(); } @@ -2832,13 +3003,14 @@ void VulkanExportJsonConsumer::Process_vkSetPrivateData( uint64_t data) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkSetPrivateData"); - FieldToJson(jdata[NameReturn()], returnValue, json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameReturn()], returnValue, json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["device"], device, json_options_); - FieldToJson(args["objectType"], objectType, json_options_); - HandleToJson(args["objectHandle"], objectHandle, json_options_); - HandleToJson(args["privateDataSlot"], privateDataSlot, json_options_); - FieldToJson(args["data"], data, json_options_); + HandleToJson(args["device"], device, json_options); + FieldToJson(args["objectType"], objectType, json_options); + HandleToJson(args["objectHandle"], objectHandle, json_options); + HandleToJson(args["privateDataSlot"], privateDataSlot, json_options); + FieldToJson(args["data"], data, json_options); WriteBlockEnd(); } @@ -2851,12 +3023,13 @@ void VulkanExportJsonConsumer::Process_vkGetPrivateData( PointerDecoder* pData) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkGetPrivateData"); + const JsonOptions& json_options = GetJsonOptions(); auto& args = jdata[NameArgs()]; - HandleToJson(args["device"], device, json_options_); - FieldToJson(args["objectType"], objectType, json_options_); - HandleToJson(args["objectHandle"], objectHandle, json_options_); - HandleToJson(args["privateDataSlot"], privateDataSlot, json_options_); - FieldToJson(args["pData"], pData, json_options_); + HandleToJson(args["device"], device, json_options); + FieldToJson(args["objectType"], objectType, json_options); + HandleToJson(args["objectHandle"], objectHandle, json_options); + HandleToJson(args["privateDataSlot"], privateDataSlot, json_options); + FieldToJson(args["pData"], pData, json_options); WriteBlockEnd(); } @@ -2867,11 +3040,12 @@ void VulkanExportJsonConsumer::Process_vkCmdSetEvent2( StructPointerDecoder* pDependencyInfo) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCmdSetEvent2"); - FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["commandBuffer"], commandBuffer, json_options_); - HandleToJson(args["event"], event, json_options_); - FieldToJson(args["pDependencyInfo"], pDependencyInfo, json_options_); + HandleToJson(args["commandBuffer"], commandBuffer, json_options); + HandleToJson(args["event"], event, json_options); + FieldToJson(args["pDependencyInfo"], pDependencyInfo, json_options); WriteBlockEnd(); } @@ -2882,11 +3056,12 @@ void VulkanExportJsonConsumer::Process_vkCmdResetEvent2( VkPipelineStageFlags2 stageMask) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCmdResetEvent2"); - FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["commandBuffer"], commandBuffer, json_options_); - HandleToJson(args["event"], event, json_options_); - FieldToJson(VkPipelineStageFlags2_t(), args["stageMask"], stageMask, json_options_); + HandleToJson(args["commandBuffer"], commandBuffer, json_options); + HandleToJson(args["event"], event, json_options); + FieldToJson(VkPipelineStageFlags2_t(), args["stageMask"], stageMask, json_options); WriteBlockEnd(); } @@ -2898,12 +3073,13 @@ void VulkanExportJsonConsumer::Process_vkCmdWaitEvents2( StructPointerDecoder* pDependencyInfos) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCmdWaitEvents2"); - FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["commandBuffer"], commandBuffer, json_options_); - FieldToJson(args["eventCount"], eventCount, json_options_); - HandleToJson(args["pEvents"], pEvents, json_options_); - FieldToJson(args["pDependencyInfos"], pDependencyInfos, json_options_); + HandleToJson(args["commandBuffer"], commandBuffer, json_options); + FieldToJson(args["eventCount"], eventCount, json_options); + HandleToJson(args["pEvents"], pEvents, json_options); + FieldToJson(args["pDependencyInfos"], pDependencyInfos, json_options); WriteBlockEnd(); } @@ -2913,10 +3089,11 @@ void VulkanExportJsonConsumer::Process_vkCmdPipelineBarrier2( StructPointerDecoder* pDependencyInfo) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCmdPipelineBarrier2"); - FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["commandBuffer"], commandBuffer, json_options_); - FieldToJson(args["pDependencyInfo"], pDependencyInfo, json_options_); + HandleToJson(args["commandBuffer"], commandBuffer, json_options); + FieldToJson(args["pDependencyInfo"], pDependencyInfo, json_options); WriteBlockEnd(); } @@ -2928,12 +3105,13 @@ void VulkanExportJsonConsumer::Process_vkCmdWriteTimestamp2( uint32_t query) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCmdWriteTimestamp2"); - FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["commandBuffer"], commandBuffer, json_options_); - FieldToJson(VkPipelineStageFlags2_t(), args["stage"], stage, json_options_); - HandleToJson(args["queryPool"], queryPool, json_options_); - FieldToJson(args["query"], query, json_options_); + HandleToJson(args["commandBuffer"], commandBuffer, json_options); + FieldToJson(VkPipelineStageFlags2_t(), args["stage"], stage, json_options); + HandleToJson(args["queryPool"], queryPool, json_options); + FieldToJson(args["query"], query, json_options); WriteBlockEnd(); } @@ -2946,13 +3124,14 @@ void VulkanExportJsonConsumer::Process_vkQueueSubmit2( format::HandleId fence) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkQueueSubmit2"); - FieldToJson(jdata[NameSubmitIndex()], ++submit_index_, json_options_); - FieldToJson(jdata[NameReturn()], returnValue, json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameSubmitIndex()], ++submit_index_, json_options); + FieldToJson(jdata[NameReturn()], returnValue, json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["queue"], queue, json_options_); - FieldToJson(args["submitCount"], submitCount, json_options_); - FieldToJson(args["pSubmits"], pSubmits, json_options_); - HandleToJson(args["fence"], fence, json_options_); + HandleToJson(args["queue"], queue, json_options); + FieldToJson(args["submitCount"], submitCount, json_options); + FieldToJson(args["pSubmits"], pSubmits, json_options); + HandleToJson(args["fence"], fence, json_options); WriteBlockEnd(); } @@ -2962,10 +3141,11 @@ void VulkanExportJsonConsumer::Process_vkCmdCopyBuffer2( StructPointerDecoder* pCopyBufferInfo) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCmdCopyBuffer2"); - FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["commandBuffer"], commandBuffer, json_options_); - FieldToJson(args["pCopyBufferInfo"], pCopyBufferInfo, json_options_); + HandleToJson(args["commandBuffer"], commandBuffer, json_options); + FieldToJson(args["pCopyBufferInfo"], pCopyBufferInfo, json_options); WriteBlockEnd(); } @@ -2975,10 +3155,11 @@ void VulkanExportJsonConsumer::Process_vkCmdCopyImage2( StructPointerDecoder* pCopyImageInfo) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCmdCopyImage2"); - FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["commandBuffer"], commandBuffer, json_options_); - FieldToJson(args["pCopyImageInfo"], pCopyImageInfo, json_options_); + HandleToJson(args["commandBuffer"], commandBuffer, json_options); + FieldToJson(args["pCopyImageInfo"], pCopyImageInfo, json_options); WriteBlockEnd(); } @@ -2988,10 +3169,11 @@ void VulkanExportJsonConsumer::Process_vkCmdCopyBufferToImage2( StructPointerDecoder* pCopyBufferToImageInfo) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCmdCopyBufferToImage2"); - FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["commandBuffer"], commandBuffer, json_options_); - FieldToJson(args["pCopyBufferToImageInfo"], pCopyBufferToImageInfo, json_options_); + HandleToJson(args["commandBuffer"], commandBuffer, json_options); + FieldToJson(args["pCopyBufferToImageInfo"], pCopyBufferToImageInfo, json_options); WriteBlockEnd(); } @@ -3001,10 +3183,11 @@ void VulkanExportJsonConsumer::Process_vkCmdCopyImageToBuffer2( StructPointerDecoder* pCopyImageToBufferInfo) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCmdCopyImageToBuffer2"); - FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["commandBuffer"], commandBuffer, json_options_); - FieldToJson(args["pCopyImageToBufferInfo"], pCopyImageToBufferInfo, json_options_); + HandleToJson(args["commandBuffer"], commandBuffer, json_options); + FieldToJson(args["pCopyImageToBufferInfo"], pCopyImageToBufferInfo, json_options); WriteBlockEnd(); } @@ -3014,10 +3197,11 @@ void VulkanExportJsonConsumer::Process_vkCmdBlitImage2( StructPointerDecoder* pBlitImageInfo) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCmdBlitImage2"); - FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["commandBuffer"], commandBuffer, json_options_); - FieldToJson(args["pBlitImageInfo"], pBlitImageInfo, json_options_); + HandleToJson(args["commandBuffer"], commandBuffer, json_options); + FieldToJson(args["pBlitImageInfo"], pBlitImageInfo, json_options); WriteBlockEnd(); } @@ -3027,10 +3211,11 @@ void VulkanExportJsonConsumer::Process_vkCmdResolveImage2( StructPointerDecoder* pResolveImageInfo) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCmdResolveImage2"); - FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["commandBuffer"], commandBuffer, json_options_); - FieldToJson(args["pResolveImageInfo"], pResolveImageInfo, json_options_); + HandleToJson(args["commandBuffer"], commandBuffer, json_options); + FieldToJson(args["pResolveImageInfo"], pResolveImageInfo, json_options); WriteBlockEnd(); } @@ -3040,10 +3225,11 @@ void VulkanExportJsonConsumer::Process_vkCmdBeginRendering( StructPointerDecoder* pRenderingInfo) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCmdBeginRendering"); - FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["commandBuffer"], commandBuffer, json_options_); - FieldToJson(args["pRenderingInfo"], pRenderingInfo, json_options_); + HandleToJson(args["commandBuffer"], commandBuffer, json_options); + FieldToJson(args["pRenderingInfo"], pRenderingInfo, json_options); WriteBlockEnd(); } @@ -3052,9 +3238,10 @@ void VulkanExportJsonConsumer::Process_vkCmdEndRendering( format::HandleId commandBuffer) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCmdEndRendering"); - FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["commandBuffer"], commandBuffer, json_options_); + HandleToJson(args["commandBuffer"], commandBuffer, json_options); WriteBlockEnd(); } @@ -3064,10 +3251,11 @@ void VulkanExportJsonConsumer::Process_vkCmdSetCullMode( VkCullModeFlags cullMode) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCmdSetCullMode"); - FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["commandBuffer"], commandBuffer, json_options_); - FieldToJson(VkCullModeFlags_t(), args["cullMode"], cullMode, json_options_); + HandleToJson(args["commandBuffer"], commandBuffer, json_options); + FieldToJson(VkCullModeFlags_t(), args["cullMode"], cullMode, json_options); WriteBlockEnd(); } @@ -3077,10 +3265,11 @@ void VulkanExportJsonConsumer::Process_vkCmdSetFrontFace( VkFrontFace frontFace) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCmdSetFrontFace"); - FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["commandBuffer"], commandBuffer, json_options_); - FieldToJson(args["frontFace"], frontFace, json_options_); + HandleToJson(args["commandBuffer"], commandBuffer, json_options); + FieldToJson(args["frontFace"], frontFace, json_options); WriteBlockEnd(); } @@ -3090,10 +3279,11 @@ void VulkanExportJsonConsumer::Process_vkCmdSetPrimitiveTopology( VkPrimitiveTopology primitiveTopology) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCmdSetPrimitiveTopology"); - FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["commandBuffer"], commandBuffer, json_options_); - FieldToJson(args["primitiveTopology"], primitiveTopology, json_options_); + HandleToJson(args["commandBuffer"], commandBuffer, json_options); + FieldToJson(args["primitiveTopology"], primitiveTopology, json_options); WriteBlockEnd(); } @@ -3104,11 +3294,12 @@ void VulkanExportJsonConsumer::Process_vkCmdSetViewportWithCount( StructPointerDecoder* pViewports) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCmdSetViewportWithCount"); - FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["commandBuffer"], commandBuffer, json_options_); - FieldToJson(args["viewportCount"], viewportCount, json_options_); - FieldToJson(args["pViewports"], pViewports, json_options_); + HandleToJson(args["commandBuffer"], commandBuffer, json_options); + FieldToJson(args["viewportCount"], viewportCount, json_options); + FieldToJson(args["pViewports"], pViewports, json_options); WriteBlockEnd(); } @@ -3119,11 +3310,12 @@ void VulkanExportJsonConsumer::Process_vkCmdSetScissorWithCount( StructPointerDecoder* pScissors) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCmdSetScissorWithCount"); - FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["commandBuffer"], commandBuffer, json_options_); - FieldToJson(args["scissorCount"], scissorCount, json_options_); - FieldToJson(args["pScissors"], pScissors, json_options_); + HandleToJson(args["commandBuffer"], commandBuffer, json_options); + FieldToJson(args["scissorCount"], scissorCount, json_options); + FieldToJson(args["pScissors"], pScissors, json_options); WriteBlockEnd(); } @@ -3138,15 +3330,16 @@ void VulkanExportJsonConsumer::Process_vkCmdBindVertexBuffers2( PointerDecoder* pStrides) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCmdBindVertexBuffers2"); - FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["commandBuffer"], commandBuffer, json_options_); - FieldToJson(args["firstBinding"], firstBinding, json_options_); - FieldToJson(args["bindingCount"], bindingCount, json_options_); - HandleToJson(args["pBuffers"], pBuffers, json_options_); - FieldToJson(args["pOffsets"], pOffsets, json_options_); - FieldToJson(args["pSizes"], pSizes, json_options_); - FieldToJson(args["pStrides"], pStrides, json_options_); + HandleToJson(args["commandBuffer"], commandBuffer, json_options); + FieldToJson(args["firstBinding"], firstBinding, json_options); + FieldToJson(args["bindingCount"], bindingCount, json_options); + HandleToJson(args["pBuffers"], pBuffers, json_options); + FieldToJson(args["pOffsets"], pOffsets, json_options); + FieldToJson(args["pSizes"], pSizes, json_options); + FieldToJson(args["pStrides"], pStrides, json_options); WriteBlockEnd(); } @@ -3156,10 +3349,11 @@ void VulkanExportJsonConsumer::Process_vkCmdSetDepthTestEnable( VkBool32 depthTestEnable) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCmdSetDepthTestEnable"); - FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["commandBuffer"], commandBuffer, json_options_); - VkBool32ToJson(args["depthTestEnable"], depthTestEnable, json_options_); + HandleToJson(args["commandBuffer"], commandBuffer, json_options); + Bool32ToJson(args["depthTestEnable"], depthTestEnable, json_options); WriteBlockEnd(); } @@ -3169,10 +3363,11 @@ void VulkanExportJsonConsumer::Process_vkCmdSetDepthWriteEnable( VkBool32 depthWriteEnable) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCmdSetDepthWriteEnable"); - FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["commandBuffer"], commandBuffer, json_options_); - VkBool32ToJson(args["depthWriteEnable"], depthWriteEnable, json_options_); + HandleToJson(args["commandBuffer"], commandBuffer, json_options); + Bool32ToJson(args["depthWriteEnable"], depthWriteEnable, json_options); WriteBlockEnd(); } @@ -3182,10 +3377,11 @@ void VulkanExportJsonConsumer::Process_vkCmdSetDepthCompareOp( VkCompareOp depthCompareOp) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCmdSetDepthCompareOp"); - FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["commandBuffer"], commandBuffer, json_options_); - FieldToJson(args["depthCompareOp"], depthCompareOp, json_options_); + HandleToJson(args["commandBuffer"], commandBuffer, json_options); + FieldToJson(args["depthCompareOp"], depthCompareOp, json_options); WriteBlockEnd(); } @@ -3195,10 +3391,11 @@ void VulkanExportJsonConsumer::Process_vkCmdSetDepthBoundsTestEnable( VkBool32 depthBoundsTestEnable) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCmdSetDepthBoundsTestEnable"); - FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["commandBuffer"], commandBuffer, json_options_); - VkBool32ToJson(args["depthBoundsTestEnable"], depthBoundsTestEnable, json_options_); + HandleToJson(args["commandBuffer"], commandBuffer, json_options); + Bool32ToJson(args["depthBoundsTestEnable"], depthBoundsTestEnable, json_options); WriteBlockEnd(); } @@ -3208,10 +3405,11 @@ void VulkanExportJsonConsumer::Process_vkCmdSetStencilTestEnable( VkBool32 stencilTestEnable) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCmdSetStencilTestEnable"); - FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["commandBuffer"], commandBuffer, json_options_); - VkBool32ToJson(args["stencilTestEnable"], stencilTestEnable, json_options_); + HandleToJson(args["commandBuffer"], commandBuffer, json_options); + Bool32ToJson(args["stencilTestEnable"], stencilTestEnable, json_options); WriteBlockEnd(); } @@ -3225,14 +3423,15 @@ void VulkanExportJsonConsumer::Process_vkCmdSetStencilOp( VkCompareOp compareOp) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCmdSetStencilOp"); - FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["commandBuffer"], commandBuffer, json_options_); - FieldToJson(VkStencilFaceFlags_t(), args["faceMask"], faceMask, json_options_); - FieldToJson(args["failOp"], failOp, json_options_); - FieldToJson(args["passOp"], passOp, json_options_); - FieldToJson(args["depthFailOp"], depthFailOp, json_options_); - FieldToJson(args["compareOp"], compareOp, json_options_); + HandleToJson(args["commandBuffer"], commandBuffer, json_options); + FieldToJson(VkStencilFaceFlags_t(), args["faceMask"], faceMask, json_options); + FieldToJson(args["failOp"], failOp, json_options); + FieldToJson(args["passOp"], passOp, json_options); + FieldToJson(args["depthFailOp"], depthFailOp, json_options); + FieldToJson(args["compareOp"], compareOp, json_options); WriteBlockEnd(); } @@ -3242,10 +3441,11 @@ void VulkanExportJsonConsumer::Process_vkCmdSetRasterizerDiscardEnable( VkBool32 rasterizerDiscardEnable) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCmdSetRasterizerDiscardEnable"); - FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["commandBuffer"], commandBuffer, json_options_); - VkBool32ToJson(args["rasterizerDiscardEnable"], rasterizerDiscardEnable, json_options_); + HandleToJson(args["commandBuffer"], commandBuffer, json_options); + Bool32ToJson(args["rasterizerDiscardEnable"], rasterizerDiscardEnable, json_options); WriteBlockEnd(); } @@ -3255,10 +3455,11 @@ void VulkanExportJsonConsumer::Process_vkCmdSetDepthBiasEnable( VkBool32 depthBiasEnable) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCmdSetDepthBiasEnable"); - FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["commandBuffer"], commandBuffer, json_options_); - VkBool32ToJson(args["depthBiasEnable"], depthBiasEnable, json_options_); + HandleToJson(args["commandBuffer"], commandBuffer, json_options); + Bool32ToJson(args["depthBiasEnable"], depthBiasEnable, json_options); WriteBlockEnd(); } @@ -3268,10 +3469,11 @@ void VulkanExportJsonConsumer::Process_vkCmdSetPrimitiveRestartEnable( VkBool32 primitiveRestartEnable) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCmdSetPrimitiveRestartEnable"); - FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["commandBuffer"], commandBuffer, json_options_); - VkBool32ToJson(args["primitiveRestartEnable"], primitiveRestartEnable, json_options_); + HandleToJson(args["commandBuffer"], commandBuffer, json_options); + Bool32ToJson(args["primitiveRestartEnable"], primitiveRestartEnable, json_options); WriteBlockEnd(); } @@ -3282,10 +3484,11 @@ void VulkanExportJsonConsumer::Process_vkGetDeviceBufferMemoryRequirements( StructPointerDecoder* pMemoryRequirements) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkGetDeviceBufferMemoryRequirements"); + const JsonOptions& json_options = GetJsonOptions(); auto& args = jdata[NameArgs()]; - HandleToJson(args["device"], device, json_options_); - FieldToJson(args["pInfo"], pInfo, json_options_); - FieldToJson(args["pMemoryRequirements"], pMemoryRequirements, json_options_); + HandleToJson(args["device"], device, json_options); + FieldToJson(args["pInfo"], pInfo, json_options); + FieldToJson(args["pMemoryRequirements"], pMemoryRequirements, json_options); WriteBlockEnd(); } @@ -3296,10 +3499,11 @@ void VulkanExportJsonConsumer::Process_vkGetDeviceImageMemoryRequirements( StructPointerDecoder* pMemoryRequirements) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkGetDeviceImageMemoryRequirements"); + const JsonOptions& json_options = GetJsonOptions(); auto& args = jdata[NameArgs()]; - HandleToJson(args["device"], device, json_options_); - FieldToJson(args["pInfo"], pInfo, json_options_); - FieldToJson(args["pMemoryRequirements"], pMemoryRequirements, json_options_); + HandleToJson(args["device"], device, json_options); + FieldToJson(args["pInfo"], pInfo, json_options); + FieldToJson(args["pMemoryRequirements"], pMemoryRequirements, json_options); WriteBlockEnd(); } @@ -3311,11 +3515,12 @@ void VulkanExportJsonConsumer::Process_vkGetDeviceImageSparseMemoryRequirements( StructPointerDecoder* pSparseMemoryRequirements) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkGetDeviceImageSparseMemoryRequirements"); + const JsonOptions& json_options = GetJsonOptions(); auto& args = jdata[NameArgs()]; - HandleToJson(args["device"], device, json_options_); - FieldToJson(args["pInfo"], pInfo, json_options_); - FieldToJson(args["pSparseMemoryRequirementCount"], pSparseMemoryRequirementCount, json_options_); - FieldToJson(args["pSparseMemoryRequirements"], pSparseMemoryRequirements, json_options_); + HandleToJson(args["device"], device, json_options); + FieldToJson(args["pInfo"], pInfo, json_options); + FieldToJson(args["pSparseMemoryRequirementCount"], pSparseMemoryRequirementCount, json_options); + FieldToJson(args["pSparseMemoryRequirements"], pSparseMemoryRequirements, json_options); WriteBlockEnd(); } @@ -3326,10 +3531,11 @@ void VulkanExportJsonConsumer::Process_vkDestroySurfaceKHR( StructPointerDecoder* pAllocator) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkDestroySurfaceKHR"); + const JsonOptions& json_options = GetJsonOptions(); auto& args = jdata[NameArgs()]; - HandleToJson(args["instance"], instance, json_options_); - HandleToJson(args["surface"], surface, json_options_); - FieldToJson(args["pAllocator"], pAllocator, json_options_); + HandleToJson(args["instance"], instance, json_options); + HandleToJson(args["surface"], surface, json_options); + FieldToJson(args["pAllocator"], pAllocator, json_options); WriteBlockEnd(); } @@ -3342,12 +3548,13 @@ void VulkanExportJsonConsumer::Process_vkGetPhysicalDeviceSurfaceSupportKHR( PointerDecoder* pSupported) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkGetPhysicalDeviceSurfaceSupportKHR"); - FieldToJson(jdata[NameReturn()], returnValue, json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameReturn()], returnValue, json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["physicalDevice"], physicalDevice, json_options_); - FieldToJson(args["queueFamilyIndex"], queueFamilyIndex, json_options_); - HandleToJson(args["surface"], surface, json_options_); - VkBool32ToJson(args["pSupported"], pSupported, json_options_); + HandleToJson(args["physicalDevice"], physicalDevice, json_options); + FieldToJson(args["queueFamilyIndex"], queueFamilyIndex, json_options); + HandleToJson(args["surface"], surface, json_options); + Bool32ToJson(args["pSupported"], pSupported, json_options); WriteBlockEnd(); } @@ -3359,11 +3566,12 @@ void VulkanExportJsonConsumer::Process_vkGetPhysicalDeviceSurfaceCapabilitiesKHR StructPointerDecoder* pSurfaceCapabilities) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkGetPhysicalDeviceSurfaceCapabilitiesKHR"); - FieldToJson(jdata[NameReturn()], returnValue, json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameReturn()], returnValue, json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["physicalDevice"], physicalDevice, json_options_); - HandleToJson(args["surface"], surface, json_options_); - FieldToJson(args["pSurfaceCapabilities"], pSurfaceCapabilities, json_options_); + HandleToJson(args["physicalDevice"], physicalDevice, json_options); + HandleToJson(args["surface"], surface, json_options); + FieldToJson(args["pSurfaceCapabilities"], pSurfaceCapabilities, json_options); WriteBlockEnd(); } @@ -3376,12 +3584,13 @@ void VulkanExportJsonConsumer::Process_vkGetPhysicalDeviceSurfaceFormatsKHR( StructPointerDecoder* pSurfaceFormats) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkGetPhysicalDeviceSurfaceFormatsKHR"); - FieldToJson(jdata[NameReturn()], returnValue, json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameReturn()], returnValue, json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["physicalDevice"], physicalDevice, json_options_); - HandleToJson(args["surface"], surface, json_options_); - FieldToJson(args["pSurfaceFormatCount"], pSurfaceFormatCount, json_options_); - FieldToJson(args["pSurfaceFormats"], pSurfaceFormats, json_options_); + HandleToJson(args["physicalDevice"], physicalDevice, json_options); + HandleToJson(args["surface"], surface, json_options); + FieldToJson(args["pSurfaceFormatCount"], pSurfaceFormatCount, json_options); + FieldToJson(args["pSurfaceFormats"], pSurfaceFormats, json_options); WriteBlockEnd(); } @@ -3394,12 +3603,13 @@ void VulkanExportJsonConsumer::Process_vkGetPhysicalDeviceSurfacePresentModesKHR PointerDecoder* pPresentModes) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkGetPhysicalDeviceSurfacePresentModesKHR"); - FieldToJson(jdata[NameReturn()], returnValue, json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameReturn()], returnValue, json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["physicalDevice"], physicalDevice, json_options_); - HandleToJson(args["surface"], surface, json_options_); - FieldToJson(args["pPresentModeCount"], pPresentModeCount, json_options_); - FieldToJson(args["pPresentModes"], pPresentModes, json_options_); + HandleToJson(args["physicalDevice"], physicalDevice, json_options); + HandleToJson(args["surface"], surface, json_options); + FieldToJson(args["pPresentModeCount"], pPresentModeCount, json_options); + FieldToJson(args["pPresentModes"], pPresentModes, json_options); WriteBlockEnd(); } @@ -3412,12 +3622,13 @@ void VulkanExportJsonConsumer::Process_vkCreateSwapchainKHR( HandlePointerDecoder* pSwapchain) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCreateSwapchainKHR"); - FieldToJson(jdata[NameReturn()], returnValue, json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameReturn()], returnValue, json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["device"], device, json_options_); - FieldToJson(args["pCreateInfo"], pCreateInfo, json_options_); - FieldToJson(args["pAllocator"], pAllocator, json_options_); - HandleToJson(args["pSwapchain"], pSwapchain, json_options_); + HandleToJson(args["device"], device, json_options); + FieldToJson(args["pCreateInfo"], pCreateInfo, json_options); + FieldToJson(args["pAllocator"], pAllocator, json_options); + HandleToJson(args["pSwapchain"], pSwapchain, json_options); WriteBlockEnd(); } @@ -3428,10 +3639,11 @@ void VulkanExportJsonConsumer::Process_vkDestroySwapchainKHR( StructPointerDecoder* pAllocator) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkDestroySwapchainKHR"); + const JsonOptions& json_options = GetJsonOptions(); auto& args = jdata[NameArgs()]; - HandleToJson(args["device"], device, json_options_); - HandleToJson(args["swapchain"], swapchain, json_options_); - FieldToJson(args["pAllocator"], pAllocator, json_options_); + HandleToJson(args["device"], device, json_options); + HandleToJson(args["swapchain"], swapchain, json_options); + FieldToJson(args["pAllocator"], pAllocator, json_options); WriteBlockEnd(); } @@ -3444,12 +3656,13 @@ void VulkanExportJsonConsumer::Process_vkGetSwapchainImagesKHR( HandlePointerDecoder* pSwapchainImages) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkGetSwapchainImagesKHR"); - FieldToJson(jdata[NameReturn()], returnValue, json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameReturn()], returnValue, json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["device"], device, json_options_); - HandleToJson(args["swapchain"], swapchain, json_options_); - FieldToJson(args["pSwapchainImageCount"], pSwapchainImageCount, json_options_); - HandleToJson(args["pSwapchainImages"], pSwapchainImages, json_options_); + HandleToJson(args["device"], device, json_options); + HandleToJson(args["swapchain"], swapchain, json_options); + FieldToJson(args["pSwapchainImageCount"], pSwapchainImageCount, json_options); + HandleToJson(args["pSwapchainImages"], pSwapchainImages, json_options); WriteBlockEnd(); } @@ -3464,14 +3677,15 @@ void VulkanExportJsonConsumer::Process_vkAcquireNextImageKHR( PointerDecoder* pImageIndex) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkAcquireNextImageKHR"); - FieldToJson(jdata[NameReturn()], returnValue, json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameReturn()], returnValue, json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["device"], device, json_options_); - HandleToJson(args["swapchain"], swapchain, json_options_); - FieldToJson(args["timeout"], timeout, json_options_); - HandleToJson(args["semaphore"], semaphore, json_options_); - HandleToJson(args["fence"], fence, json_options_); - FieldToJson(args["pImageIndex"], pImageIndex, json_options_); + HandleToJson(args["device"], device, json_options); + HandleToJson(args["swapchain"], swapchain, json_options); + FieldToJson(args["timeout"], timeout, json_options); + HandleToJson(args["semaphore"], semaphore, json_options); + HandleToJson(args["fence"], fence, json_options); + FieldToJson(args["pImageIndex"], pImageIndex, json_options); WriteBlockEnd(); } @@ -3482,11 +3696,12 @@ void VulkanExportJsonConsumer::Process_vkQueuePresentKHR( StructPointerDecoder* pPresentInfo) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkQueuePresentKHR"); - FieldToJson(jdata[NameSubmitIndex()], ++submit_index_, json_options_); - FieldToJson(jdata[NameReturn()], returnValue, json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameSubmitIndex()], ++submit_index_, json_options); + FieldToJson(jdata[NameReturn()], returnValue, json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["queue"], queue, json_options_); - FieldToJson(args["pPresentInfo"], pPresentInfo, json_options_); + HandleToJson(args["queue"], queue, json_options); + FieldToJson(args["pPresentInfo"], pPresentInfo, json_options); WriteBlockEnd(); } @@ -3497,10 +3712,11 @@ void VulkanExportJsonConsumer::Process_vkGetDeviceGroupPresentCapabilitiesKHR( StructPointerDecoder* pDeviceGroupPresentCapabilities) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkGetDeviceGroupPresentCapabilitiesKHR"); - FieldToJson(jdata[NameReturn()], returnValue, json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameReturn()], returnValue, json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["device"], device, json_options_); - FieldToJson(args["pDeviceGroupPresentCapabilities"], pDeviceGroupPresentCapabilities, json_options_); + HandleToJson(args["device"], device, json_options); + FieldToJson(args["pDeviceGroupPresentCapabilities"], pDeviceGroupPresentCapabilities, json_options); WriteBlockEnd(); } @@ -3512,11 +3728,12 @@ void VulkanExportJsonConsumer::Process_vkGetDeviceGroupSurfacePresentModesKHR( PointerDecoder* pModes) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkGetDeviceGroupSurfacePresentModesKHR"); - FieldToJson(jdata[NameReturn()], returnValue, json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameReturn()], returnValue, json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["device"], device, json_options_); - HandleToJson(args["surface"], surface, json_options_); - FieldToJson(args["pModes"], pModes, json_options_); + HandleToJson(args["device"], device, json_options); + HandleToJson(args["surface"], surface, json_options); + FieldToJson(args["pModes"], pModes, json_options); WriteBlockEnd(); } @@ -3529,12 +3746,13 @@ void VulkanExportJsonConsumer::Process_vkGetPhysicalDevicePresentRectanglesKHR( StructPointerDecoder* pRects) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkGetPhysicalDevicePresentRectanglesKHR"); - FieldToJson(jdata[NameReturn()], returnValue, json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameReturn()], returnValue, json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["physicalDevice"], physicalDevice, json_options_); - HandleToJson(args["surface"], surface, json_options_); - FieldToJson(args["pRectCount"], pRectCount, json_options_); - FieldToJson(args["pRects"], pRects, json_options_); + HandleToJson(args["physicalDevice"], physicalDevice, json_options); + HandleToJson(args["surface"], surface, json_options); + FieldToJson(args["pRectCount"], pRectCount, json_options); + FieldToJson(args["pRects"], pRects, json_options); WriteBlockEnd(); } @@ -3546,11 +3764,12 @@ void VulkanExportJsonConsumer::Process_vkAcquireNextImage2KHR( PointerDecoder* pImageIndex) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkAcquireNextImage2KHR"); - FieldToJson(jdata[NameReturn()], returnValue, json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameReturn()], returnValue, json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["device"], device, json_options_); - FieldToJson(args["pAcquireInfo"], pAcquireInfo, json_options_); - FieldToJson(args["pImageIndex"], pImageIndex, json_options_); + HandleToJson(args["device"], device, json_options); + FieldToJson(args["pAcquireInfo"], pAcquireInfo, json_options); + FieldToJson(args["pImageIndex"], pImageIndex, json_options); WriteBlockEnd(); } @@ -3562,11 +3781,12 @@ void VulkanExportJsonConsumer::Process_vkGetPhysicalDeviceDisplayPropertiesKHR( StructPointerDecoder* pProperties) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkGetPhysicalDeviceDisplayPropertiesKHR"); - FieldToJson(jdata[NameReturn()], returnValue, json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameReturn()], returnValue, json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["physicalDevice"], physicalDevice, json_options_); - FieldToJson(args["pPropertyCount"], pPropertyCount, json_options_); - FieldToJson(args["pProperties"], pProperties, json_options_); + HandleToJson(args["physicalDevice"], physicalDevice, json_options); + FieldToJson(args["pPropertyCount"], pPropertyCount, json_options); + FieldToJson(args["pProperties"], pProperties, json_options); WriteBlockEnd(); } @@ -3578,11 +3798,12 @@ void VulkanExportJsonConsumer::Process_vkGetPhysicalDeviceDisplayPlaneProperties StructPointerDecoder* pProperties) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkGetPhysicalDeviceDisplayPlanePropertiesKHR"); - FieldToJson(jdata[NameReturn()], returnValue, json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameReturn()], returnValue, json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["physicalDevice"], physicalDevice, json_options_); - FieldToJson(args["pPropertyCount"], pPropertyCount, json_options_); - FieldToJson(args["pProperties"], pProperties, json_options_); + HandleToJson(args["physicalDevice"], physicalDevice, json_options); + FieldToJson(args["pPropertyCount"], pPropertyCount, json_options); + FieldToJson(args["pProperties"], pProperties, json_options); WriteBlockEnd(); } @@ -3595,12 +3816,13 @@ void VulkanExportJsonConsumer::Process_vkGetDisplayPlaneSupportedDisplaysKHR( HandlePointerDecoder* pDisplays) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkGetDisplayPlaneSupportedDisplaysKHR"); - FieldToJson(jdata[NameReturn()], returnValue, json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameReturn()], returnValue, json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["physicalDevice"], physicalDevice, json_options_); - FieldToJson(args["planeIndex"], planeIndex, json_options_); - FieldToJson(args["pDisplayCount"], pDisplayCount, json_options_); - HandleToJson(args["pDisplays"], pDisplays, json_options_); + HandleToJson(args["physicalDevice"], physicalDevice, json_options); + FieldToJson(args["planeIndex"], planeIndex, json_options); + FieldToJson(args["pDisplayCount"], pDisplayCount, json_options); + HandleToJson(args["pDisplays"], pDisplays, json_options); WriteBlockEnd(); } @@ -3613,12 +3835,13 @@ void VulkanExportJsonConsumer::Process_vkGetDisplayModePropertiesKHR( StructPointerDecoder* pProperties) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkGetDisplayModePropertiesKHR"); - FieldToJson(jdata[NameReturn()], returnValue, json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameReturn()], returnValue, json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["physicalDevice"], physicalDevice, json_options_); - HandleToJson(args["display"], display, json_options_); - FieldToJson(args["pPropertyCount"], pPropertyCount, json_options_); - FieldToJson(args["pProperties"], pProperties, json_options_); + HandleToJson(args["physicalDevice"], physicalDevice, json_options); + HandleToJson(args["display"], display, json_options); + FieldToJson(args["pPropertyCount"], pPropertyCount, json_options); + FieldToJson(args["pProperties"], pProperties, json_options); WriteBlockEnd(); } @@ -3632,13 +3855,14 @@ void VulkanExportJsonConsumer::Process_vkCreateDisplayModeKHR( HandlePointerDecoder* pMode) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCreateDisplayModeKHR"); - FieldToJson(jdata[NameReturn()], returnValue, json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameReturn()], returnValue, json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["physicalDevice"], physicalDevice, json_options_); - HandleToJson(args["display"], display, json_options_); - FieldToJson(args["pCreateInfo"], pCreateInfo, json_options_); - FieldToJson(args["pAllocator"], pAllocator, json_options_); - HandleToJson(args["pMode"], pMode, json_options_); + HandleToJson(args["physicalDevice"], physicalDevice, json_options); + HandleToJson(args["display"], display, json_options); + FieldToJson(args["pCreateInfo"], pCreateInfo, json_options); + FieldToJson(args["pAllocator"], pAllocator, json_options); + HandleToJson(args["pMode"], pMode, json_options); WriteBlockEnd(); } @@ -3651,12 +3875,13 @@ void VulkanExportJsonConsumer::Process_vkGetDisplayPlaneCapabilitiesKHR( StructPointerDecoder* pCapabilities) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkGetDisplayPlaneCapabilitiesKHR"); - FieldToJson(jdata[NameReturn()], returnValue, json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameReturn()], returnValue, json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["physicalDevice"], physicalDevice, json_options_); - HandleToJson(args["mode"], mode, json_options_); - FieldToJson(args["planeIndex"], planeIndex, json_options_); - FieldToJson(args["pCapabilities"], pCapabilities, json_options_); + HandleToJson(args["physicalDevice"], physicalDevice, json_options); + HandleToJson(args["mode"], mode, json_options); + FieldToJson(args["planeIndex"], planeIndex, json_options); + FieldToJson(args["pCapabilities"], pCapabilities, json_options); WriteBlockEnd(); } @@ -3669,12 +3894,13 @@ void VulkanExportJsonConsumer::Process_vkCreateDisplayPlaneSurfaceKHR( HandlePointerDecoder* pSurface) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCreateDisplayPlaneSurfaceKHR"); - FieldToJson(jdata[NameReturn()], returnValue, json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameReturn()], returnValue, json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["instance"], instance, json_options_); - FieldToJson(args["pCreateInfo"], pCreateInfo, json_options_); - FieldToJson(args["pAllocator"], pAllocator, json_options_); - HandleToJson(args["pSurface"], pSurface, json_options_); + HandleToJson(args["instance"], instance, json_options); + FieldToJson(args["pCreateInfo"], pCreateInfo, json_options); + FieldToJson(args["pAllocator"], pAllocator, json_options); + HandleToJson(args["pSurface"], pSurface, json_options); WriteBlockEnd(); } @@ -3688,13 +3914,14 @@ void VulkanExportJsonConsumer::Process_vkCreateSharedSwapchainsKHR( HandlePointerDecoder* pSwapchains) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCreateSharedSwapchainsKHR"); - FieldToJson(jdata[NameReturn()], returnValue, json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameReturn()], returnValue, json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["device"], device, json_options_); - FieldToJson(args["swapchainCount"], swapchainCount, json_options_); - FieldToJson(args["pCreateInfos"], pCreateInfos, json_options_); - FieldToJson(args["pAllocator"], pAllocator, json_options_); - HandleToJson(args["pSwapchains"], pSwapchains, json_options_); + HandleToJson(args["device"], device, json_options); + FieldToJson(args["swapchainCount"], swapchainCount, json_options); + FieldToJson(args["pCreateInfos"], pCreateInfos, json_options); + FieldToJson(args["pAllocator"], pAllocator, json_options); + HandleToJson(args["pSwapchains"], pSwapchains, json_options); WriteBlockEnd(); } @@ -3707,12 +3934,13 @@ void VulkanExportJsonConsumer::Process_vkCreateXlibSurfaceKHR( HandlePointerDecoder* pSurface) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCreateXlibSurfaceKHR"); - FieldToJson(jdata[NameReturn()], returnValue, json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameReturn()], returnValue, json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["instance"], instance, json_options_); - FieldToJson(args["pCreateInfo"], pCreateInfo, json_options_); - FieldToJson(args["pAllocator"], pAllocator, json_options_); - HandleToJson(args["pSurface"], pSurface, json_options_); + HandleToJson(args["instance"], instance, json_options); + FieldToJson(args["pCreateInfo"], pCreateInfo, json_options); + FieldToJson(args["pAllocator"], pAllocator, json_options); + HandleToJson(args["pSurface"], pSurface, json_options); WriteBlockEnd(); } @@ -3725,12 +3953,13 @@ void VulkanExportJsonConsumer::Process_vkGetPhysicalDeviceXlibPresentationSuppor size_t visualID) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkGetPhysicalDeviceXlibPresentationSupportKHR"); - VkBool32ToJson(jdata[NameReturn()], returnValue, json_options_); + const JsonOptions& json_options = GetJsonOptions(); + Bool32ToJson(jdata[NameReturn()], returnValue, json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["physicalDevice"], physicalDevice, json_options_); - FieldToJson(args["queueFamilyIndex"], queueFamilyIndex, json_options_); - FieldToJson(args["dpy"], dpy, json_options_); - FieldToJson(args["visualID"], visualID, json_options_); + HandleToJson(args["physicalDevice"], physicalDevice, json_options); + FieldToJson(args["queueFamilyIndex"], queueFamilyIndex, json_options); + FieldToJson(args["dpy"], dpy, json_options); + FieldToJson(args["visualID"], visualID, json_options); WriteBlockEnd(); } @@ -3743,12 +3972,13 @@ void VulkanExportJsonConsumer::Process_vkCreateXcbSurfaceKHR( HandlePointerDecoder* pSurface) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCreateXcbSurfaceKHR"); - FieldToJson(jdata[NameReturn()], returnValue, json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameReturn()], returnValue, json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["instance"], instance, json_options_); - FieldToJson(args["pCreateInfo"], pCreateInfo, json_options_); - FieldToJson(args["pAllocator"], pAllocator, json_options_); - HandleToJson(args["pSurface"], pSurface, json_options_); + HandleToJson(args["instance"], instance, json_options); + FieldToJson(args["pCreateInfo"], pCreateInfo, json_options); + FieldToJson(args["pAllocator"], pAllocator, json_options); + HandleToJson(args["pSurface"], pSurface, json_options); WriteBlockEnd(); } @@ -3761,12 +3991,13 @@ void VulkanExportJsonConsumer::Process_vkGetPhysicalDeviceXcbPresentationSupport uint32_t visual_id) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkGetPhysicalDeviceXcbPresentationSupportKHR"); - VkBool32ToJson(jdata[NameReturn()], returnValue, json_options_); + const JsonOptions& json_options = GetJsonOptions(); + Bool32ToJson(jdata[NameReturn()], returnValue, json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["physicalDevice"], physicalDevice, json_options_); - FieldToJson(args["queueFamilyIndex"], queueFamilyIndex, json_options_); - FieldToJson(args["connection"], connection, json_options_); - FieldToJson(args["visual_id"], visual_id, json_options_); + HandleToJson(args["physicalDevice"], physicalDevice, json_options); + FieldToJson(args["queueFamilyIndex"], queueFamilyIndex, json_options); + FieldToJson(args["connection"], connection, json_options); + FieldToJson(args["visual_id"], visual_id, json_options); WriteBlockEnd(); } @@ -3779,12 +4010,13 @@ void VulkanExportJsonConsumer::Process_vkCreateWaylandSurfaceKHR( HandlePointerDecoder* pSurface) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCreateWaylandSurfaceKHR"); - FieldToJson(jdata[NameReturn()], returnValue, json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameReturn()], returnValue, json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["instance"], instance, json_options_); - FieldToJson(args["pCreateInfo"], pCreateInfo, json_options_); - FieldToJson(args["pAllocator"], pAllocator, json_options_); - HandleToJson(args["pSurface"], pSurface, json_options_); + HandleToJson(args["instance"], instance, json_options); + FieldToJson(args["pCreateInfo"], pCreateInfo, json_options); + FieldToJson(args["pAllocator"], pAllocator, json_options); + HandleToJson(args["pSurface"], pSurface, json_options); WriteBlockEnd(); } @@ -3796,11 +4028,12 @@ void VulkanExportJsonConsumer::Process_vkGetPhysicalDeviceWaylandPresentationSup uint64_t display) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkGetPhysicalDeviceWaylandPresentationSupportKHR"); - VkBool32ToJson(jdata[NameReturn()], returnValue, json_options_); + const JsonOptions& json_options = GetJsonOptions(); + Bool32ToJson(jdata[NameReturn()], returnValue, json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["physicalDevice"], physicalDevice, json_options_); - FieldToJson(args["queueFamilyIndex"], queueFamilyIndex, json_options_); - FieldToJson(args["display"], display, json_options_); + HandleToJson(args["physicalDevice"], physicalDevice, json_options); + FieldToJson(args["queueFamilyIndex"], queueFamilyIndex, json_options); + FieldToJson(args["display"], display, json_options); WriteBlockEnd(); } @@ -3813,12 +4046,13 @@ void VulkanExportJsonConsumer::Process_vkCreateAndroidSurfaceKHR( HandlePointerDecoder* pSurface) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCreateAndroidSurfaceKHR"); - FieldToJson(jdata[NameReturn()], returnValue, json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameReturn()], returnValue, json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["instance"], instance, json_options_); - FieldToJson(args["pCreateInfo"], pCreateInfo, json_options_); - FieldToJson(args["pAllocator"], pAllocator, json_options_); - HandleToJson(args["pSurface"], pSurface, json_options_); + HandleToJson(args["instance"], instance, json_options); + FieldToJson(args["pCreateInfo"], pCreateInfo, json_options); + FieldToJson(args["pAllocator"], pAllocator, json_options); + HandleToJson(args["pSurface"], pSurface, json_options); WriteBlockEnd(); } @@ -3831,12 +4065,13 @@ void VulkanExportJsonConsumer::Process_vkCreateWin32SurfaceKHR( HandlePointerDecoder* pSurface) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCreateWin32SurfaceKHR"); - FieldToJson(jdata[NameReturn()], returnValue, json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameReturn()], returnValue, json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["instance"], instance, json_options_); - FieldToJson(args["pCreateInfo"], pCreateInfo, json_options_); - FieldToJson(args["pAllocator"], pAllocator, json_options_); - HandleToJson(args["pSurface"], pSurface, json_options_); + HandleToJson(args["instance"], instance, json_options); + FieldToJson(args["pCreateInfo"], pCreateInfo, json_options); + FieldToJson(args["pAllocator"], pAllocator, json_options); + HandleToJson(args["pSurface"], pSurface, json_options); WriteBlockEnd(); } @@ -3847,10 +4082,11 @@ void VulkanExportJsonConsumer::Process_vkGetPhysicalDeviceWin32PresentationSuppo uint32_t queueFamilyIndex) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkGetPhysicalDeviceWin32PresentationSupportKHR"); - VkBool32ToJson(jdata[NameReturn()], returnValue, json_options_); + const JsonOptions& json_options = GetJsonOptions(); + Bool32ToJson(jdata[NameReturn()], returnValue, json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["physicalDevice"], physicalDevice, json_options_); - FieldToJson(args["queueFamilyIndex"], queueFamilyIndex, json_options_); + HandleToJson(args["physicalDevice"], physicalDevice, json_options); + FieldToJson(args["queueFamilyIndex"], queueFamilyIndex, json_options); WriteBlockEnd(); } @@ -3862,11 +4098,12 @@ void VulkanExportJsonConsumer::Process_vkGetPhysicalDeviceVideoCapabilitiesKHR( StructPointerDecoder* pCapabilities) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkGetPhysicalDeviceVideoCapabilitiesKHR"); - FieldToJson(jdata[NameReturn()], returnValue, json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameReturn()], returnValue, json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["physicalDevice"], physicalDevice, json_options_); - FieldToJson(args["pVideoProfile"], pVideoProfile, json_options_); - FieldToJson(args["pCapabilities"], pCapabilities, json_options_); + HandleToJson(args["physicalDevice"], physicalDevice, json_options); + FieldToJson(args["pVideoProfile"], pVideoProfile, json_options); + FieldToJson(args["pCapabilities"], pCapabilities, json_options); WriteBlockEnd(); } @@ -3879,12 +4116,13 @@ void VulkanExportJsonConsumer::Process_vkGetPhysicalDeviceVideoFormatPropertiesK StructPointerDecoder* pVideoFormatProperties) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkGetPhysicalDeviceVideoFormatPropertiesKHR"); - FieldToJson(jdata[NameReturn()], returnValue, json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameReturn()], returnValue, json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["physicalDevice"], physicalDevice, json_options_); - FieldToJson(args["pVideoFormatInfo"], pVideoFormatInfo, json_options_); - FieldToJson(args["pVideoFormatPropertyCount"], pVideoFormatPropertyCount, json_options_); - FieldToJson(args["pVideoFormatProperties"], pVideoFormatProperties, json_options_); + HandleToJson(args["physicalDevice"], physicalDevice, json_options); + FieldToJson(args["pVideoFormatInfo"], pVideoFormatInfo, json_options); + FieldToJson(args["pVideoFormatPropertyCount"], pVideoFormatPropertyCount, json_options); + FieldToJson(args["pVideoFormatProperties"], pVideoFormatProperties, json_options); WriteBlockEnd(); } @@ -3897,12 +4135,13 @@ void VulkanExportJsonConsumer::Process_vkCreateVideoSessionKHR( HandlePointerDecoder* pVideoSession) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCreateVideoSessionKHR"); - FieldToJson(jdata[NameReturn()], returnValue, json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameReturn()], returnValue, json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["device"], device, json_options_); - FieldToJson(args["pCreateInfo"], pCreateInfo, json_options_); - FieldToJson(args["pAllocator"], pAllocator, json_options_); - HandleToJson(args["pVideoSession"], pVideoSession, json_options_); + HandleToJson(args["device"], device, json_options); + FieldToJson(args["pCreateInfo"], pCreateInfo, json_options); + FieldToJson(args["pAllocator"], pAllocator, json_options); + HandleToJson(args["pVideoSession"], pVideoSession, json_options); WriteBlockEnd(); } @@ -3913,10 +4152,11 @@ void VulkanExportJsonConsumer::Process_vkDestroyVideoSessionKHR( StructPointerDecoder* pAllocator) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkDestroyVideoSessionKHR"); + const JsonOptions& json_options = GetJsonOptions(); auto& args = jdata[NameArgs()]; - HandleToJson(args["device"], device, json_options_); - HandleToJson(args["videoSession"], videoSession, json_options_); - FieldToJson(args["pAllocator"], pAllocator, json_options_); + HandleToJson(args["device"], device, json_options); + HandleToJson(args["videoSession"], videoSession, json_options); + FieldToJson(args["pAllocator"], pAllocator, json_options); WriteBlockEnd(); } @@ -3929,12 +4169,13 @@ void VulkanExportJsonConsumer::Process_vkGetVideoSessionMemoryRequirementsKHR( StructPointerDecoder* pMemoryRequirements) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkGetVideoSessionMemoryRequirementsKHR"); - FieldToJson(jdata[NameReturn()], returnValue, json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameReturn()], returnValue, json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["device"], device, json_options_); - HandleToJson(args["videoSession"], videoSession, json_options_); - FieldToJson(args["pMemoryRequirementsCount"], pMemoryRequirementsCount, json_options_); - FieldToJson(args["pMemoryRequirements"], pMemoryRequirements, json_options_); + HandleToJson(args["device"], device, json_options); + HandleToJson(args["videoSession"], videoSession, json_options); + FieldToJson(args["pMemoryRequirementsCount"], pMemoryRequirementsCount, json_options); + FieldToJson(args["pMemoryRequirements"], pMemoryRequirements, json_options); WriteBlockEnd(); } @@ -3947,12 +4188,13 @@ void VulkanExportJsonConsumer::Process_vkBindVideoSessionMemoryKHR( StructPointerDecoder* pBindSessionMemoryInfos) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkBindVideoSessionMemoryKHR"); - FieldToJson(jdata[NameReturn()], returnValue, json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameReturn()], returnValue, json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["device"], device, json_options_); - HandleToJson(args["videoSession"], videoSession, json_options_); - FieldToJson(args["bindSessionMemoryInfoCount"], bindSessionMemoryInfoCount, json_options_); - FieldToJson(args["pBindSessionMemoryInfos"], pBindSessionMemoryInfos, json_options_); + HandleToJson(args["device"], device, json_options); + HandleToJson(args["videoSession"], videoSession, json_options); + FieldToJson(args["bindSessionMemoryInfoCount"], bindSessionMemoryInfoCount, json_options); + FieldToJson(args["pBindSessionMemoryInfos"], pBindSessionMemoryInfos, json_options); WriteBlockEnd(); } @@ -3965,12 +4207,13 @@ void VulkanExportJsonConsumer::Process_vkCreateVideoSessionParametersKHR( HandlePointerDecoder* pVideoSessionParameters) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCreateVideoSessionParametersKHR"); - FieldToJson(jdata[NameReturn()], returnValue, json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameReturn()], returnValue, json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["device"], device, json_options_); - FieldToJson(args["pCreateInfo"], pCreateInfo, json_options_); - FieldToJson(args["pAllocator"], pAllocator, json_options_); - HandleToJson(args["pVideoSessionParameters"], pVideoSessionParameters, json_options_); + HandleToJson(args["device"], device, json_options); + FieldToJson(args["pCreateInfo"], pCreateInfo, json_options); + FieldToJson(args["pAllocator"], pAllocator, json_options); + HandleToJson(args["pVideoSessionParameters"], pVideoSessionParameters, json_options); WriteBlockEnd(); } @@ -3982,11 +4225,12 @@ void VulkanExportJsonConsumer::Process_vkUpdateVideoSessionParametersKHR( StructPointerDecoder* pUpdateInfo) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkUpdateVideoSessionParametersKHR"); - FieldToJson(jdata[NameReturn()], returnValue, json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameReturn()], returnValue, json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["device"], device, json_options_); - HandleToJson(args["videoSessionParameters"], videoSessionParameters, json_options_); - FieldToJson(args["pUpdateInfo"], pUpdateInfo, json_options_); + HandleToJson(args["device"], device, json_options); + HandleToJson(args["videoSessionParameters"], videoSessionParameters, json_options); + FieldToJson(args["pUpdateInfo"], pUpdateInfo, json_options); WriteBlockEnd(); } @@ -3997,10 +4241,11 @@ void VulkanExportJsonConsumer::Process_vkDestroyVideoSessionParametersKHR( StructPointerDecoder* pAllocator) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkDestroyVideoSessionParametersKHR"); + const JsonOptions& json_options = GetJsonOptions(); auto& args = jdata[NameArgs()]; - HandleToJson(args["device"], device, json_options_); - HandleToJson(args["videoSessionParameters"], videoSessionParameters, json_options_); - FieldToJson(args["pAllocator"], pAllocator, json_options_); + HandleToJson(args["device"], device, json_options); + HandleToJson(args["videoSessionParameters"], videoSessionParameters, json_options); + FieldToJson(args["pAllocator"], pAllocator, json_options); WriteBlockEnd(); } @@ -4010,10 +4255,11 @@ void VulkanExportJsonConsumer::Process_vkCmdBeginVideoCodingKHR( StructPointerDecoder* pBeginInfo) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCmdBeginVideoCodingKHR"); - FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["commandBuffer"], commandBuffer, json_options_); - FieldToJson(args["pBeginInfo"], pBeginInfo, json_options_); + HandleToJson(args["commandBuffer"], commandBuffer, json_options); + FieldToJson(args["pBeginInfo"], pBeginInfo, json_options); WriteBlockEnd(); } @@ -4023,10 +4269,11 @@ void VulkanExportJsonConsumer::Process_vkCmdEndVideoCodingKHR( StructPointerDecoder* pEndCodingInfo) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCmdEndVideoCodingKHR"); - FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["commandBuffer"], commandBuffer, json_options_); - FieldToJson(args["pEndCodingInfo"], pEndCodingInfo, json_options_); + HandleToJson(args["commandBuffer"], commandBuffer, json_options); + FieldToJson(args["pEndCodingInfo"], pEndCodingInfo, json_options); WriteBlockEnd(); } @@ -4036,10 +4283,11 @@ void VulkanExportJsonConsumer::Process_vkCmdControlVideoCodingKHR( StructPointerDecoder* pCodingControlInfo) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCmdControlVideoCodingKHR"); - FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["commandBuffer"], commandBuffer, json_options_); - FieldToJson(args["pCodingControlInfo"], pCodingControlInfo, json_options_); + HandleToJson(args["commandBuffer"], commandBuffer, json_options); + FieldToJson(args["pCodingControlInfo"], pCodingControlInfo, json_options); WriteBlockEnd(); } @@ -4049,10 +4297,11 @@ void VulkanExportJsonConsumer::Process_vkCmdDecodeVideoKHR( StructPointerDecoder* pDecodeInfo) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCmdDecodeVideoKHR"); - FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["commandBuffer"], commandBuffer, json_options_); - FieldToJson(args["pDecodeInfo"], pDecodeInfo, json_options_); + HandleToJson(args["commandBuffer"], commandBuffer, json_options); + FieldToJson(args["pDecodeInfo"], pDecodeInfo, json_options); WriteBlockEnd(); } @@ -4062,10 +4311,11 @@ void VulkanExportJsonConsumer::Process_vkCmdBeginRenderingKHR( StructPointerDecoder* pRenderingInfo) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCmdBeginRenderingKHR"); - FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["commandBuffer"], commandBuffer, json_options_); - FieldToJson(args["pRenderingInfo"], pRenderingInfo, json_options_); + HandleToJson(args["commandBuffer"], commandBuffer, json_options); + FieldToJson(args["pRenderingInfo"], pRenderingInfo, json_options); WriteBlockEnd(); } @@ -4074,9 +4324,10 @@ void VulkanExportJsonConsumer::Process_vkCmdEndRenderingKHR( format::HandleId commandBuffer) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCmdEndRenderingKHR"); - FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["commandBuffer"], commandBuffer, json_options_); + HandleToJson(args["commandBuffer"], commandBuffer, json_options); WriteBlockEnd(); } @@ -4086,9 +4337,10 @@ void VulkanExportJsonConsumer::Process_vkGetPhysicalDeviceFeatures2KHR( StructPointerDecoder* pFeatures) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkGetPhysicalDeviceFeatures2KHR"); + const JsonOptions& json_options = GetJsonOptions(); auto& args = jdata[NameArgs()]; - HandleToJson(args["physicalDevice"], physicalDevice, json_options_); - FieldToJson(args["pFeatures"], pFeatures, json_options_); + HandleToJson(args["physicalDevice"], physicalDevice, json_options); + FieldToJson(args["pFeatures"], pFeatures, json_options); WriteBlockEnd(); } @@ -4098,9 +4350,10 @@ void VulkanExportJsonConsumer::Process_vkGetPhysicalDeviceProperties2KHR( StructPointerDecoder* pProperties) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkGetPhysicalDeviceProperties2KHR"); + const JsonOptions& json_options = GetJsonOptions(); auto& args = jdata[NameArgs()]; - HandleToJson(args["physicalDevice"], physicalDevice, json_options_); - FieldToJson(args["pProperties"], pProperties, json_options_); + HandleToJson(args["physicalDevice"], physicalDevice, json_options); + FieldToJson(args["pProperties"], pProperties, json_options); WriteBlockEnd(); } @@ -4111,10 +4364,11 @@ void VulkanExportJsonConsumer::Process_vkGetPhysicalDeviceFormatProperties2KHR( StructPointerDecoder* pFormatProperties) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkGetPhysicalDeviceFormatProperties2KHR"); + const JsonOptions& json_options = GetJsonOptions(); auto& args = jdata[NameArgs()]; - HandleToJson(args["physicalDevice"], physicalDevice, json_options_); - FieldToJson(args["format"], format, json_options_); - FieldToJson(args["pFormatProperties"], pFormatProperties, json_options_); + HandleToJson(args["physicalDevice"], physicalDevice, json_options); + FieldToJson(args["format"], format, json_options); + FieldToJson(args["pFormatProperties"], pFormatProperties, json_options); WriteBlockEnd(); } @@ -4126,11 +4380,12 @@ void VulkanExportJsonConsumer::Process_vkGetPhysicalDeviceImageFormatProperties2 StructPointerDecoder* pImageFormatProperties) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkGetPhysicalDeviceImageFormatProperties2KHR"); - FieldToJson(jdata[NameReturn()], returnValue, json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameReturn()], returnValue, json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["physicalDevice"], physicalDevice, json_options_); - FieldToJson(args["pImageFormatInfo"], pImageFormatInfo, json_options_); - FieldToJson(args["pImageFormatProperties"], pImageFormatProperties, json_options_); + HandleToJson(args["physicalDevice"], physicalDevice, json_options); + FieldToJson(args["pImageFormatInfo"], pImageFormatInfo, json_options); + FieldToJson(args["pImageFormatProperties"], pImageFormatProperties, json_options); WriteBlockEnd(); } @@ -4141,10 +4396,11 @@ void VulkanExportJsonConsumer::Process_vkGetPhysicalDeviceQueueFamilyProperties2 StructPointerDecoder* pQueueFamilyProperties) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkGetPhysicalDeviceQueueFamilyProperties2KHR"); + const JsonOptions& json_options = GetJsonOptions(); auto& args = jdata[NameArgs()]; - HandleToJson(args["physicalDevice"], physicalDevice, json_options_); - FieldToJson(args["pQueueFamilyPropertyCount"], pQueueFamilyPropertyCount, json_options_); - FieldToJson(args["pQueueFamilyProperties"], pQueueFamilyProperties, json_options_); + HandleToJson(args["physicalDevice"], physicalDevice, json_options); + FieldToJson(args["pQueueFamilyPropertyCount"], pQueueFamilyPropertyCount, json_options); + FieldToJson(args["pQueueFamilyProperties"], pQueueFamilyProperties, json_options); WriteBlockEnd(); } @@ -4154,9 +4410,10 @@ void VulkanExportJsonConsumer::Process_vkGetPhysicalDeviceMemoryProperties2KHR( StructPointerDecoder* pMemoryProperties) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkGetPhysicalDeviceMemoryProperties2KHR"); + const JsonOptions& json_options = GetJsonOptions(); auto& args = jdata[NameArgs()]; - HandleToJson(args["physicalDevice"], physicalDevice, json_options_); - FieldToJson(args["pMemoryProperties"], pMemoryProperties, json_options_); + HandleToJson(args["physicalDevice"], physicalDevice, json_options); + FieldToJson(args["pMemoryProperties"], pMemoryProperties, json_options); WriteBlockEnd(); } @@ -4168,11 +4425,12 @@ void VulkanExportJsonConsumer::Process_vkGetPhysicalDeviceSparseImageFormatPrope StructPointerDecoder* pProperties) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkGetPhysicalDeviceSparseImageFormatProperties2KHR"); + const JsonOptions& json_options = GetJsonOptions(); auto& args = jdata[NameArgs()]; - HandleToJson(args["physicalDevice"], physicalDevice, json_options_); - FieldToJson(args["pFormatInfo"], pFormatInfo, json_options_); - FieldToJson(args["pPropertyCount"], pPropertyCount, json_options_); - FieldToJson(args["pProperties"], pProperties, json_options_); + HandleToJson(args["physicalDevice"], physicalDevice, json_options); + FieldToJson(args["pFormatInfo"], pFormatInfo, json_options); + FieldToJson(args["pPropertyCount"], pPropertyCount, json_options); + FieldToJson(args["pProperties"], pProperties, json_options); WriteBlockEnd(); } @@ -4185,12 +4443,13 @@ void VulkanExportJsonConsumer::Process_vkGetDeviceGroupPeerMemoryFeaturesKHR( PointerDecoder* pPeerMemoryFeatures) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkGetDeviceGroupPeerMemoryFeaturesKHR"); + const JsonOptions& json_options = GetJsonOptions(); auto& args = jdata[NameArgs()]; - HandleToJson(args["device"], device, json_options_); - FieldToJson(args["heapIndex"], heapIndex, json_options_); - FieldToJson(args["localDeviceIndex"], localDeviceIndex, json_options_); - FieldToJson(args["remoteDeviceIndex"], remoteDeviceIndex, json_options_); - FieldToJson(args["pPeerMemoryFeatures"], pPeerMemoryFeatures, json_options_); + HandleToJson(args["device"], device, json_options); + FieldToJson(args["heapIndex"], heapIndex, json_options); + FieldToJson(args["localDeviceIndex"], localDeviceIndex, json_options); + FieldToJson(args["remoteDeviceIndex"], remoteDeviceIndex, json_options); + FieldToJson(args["pPeerMemoryFeatures"], pPeerMemoryFeatures, json_options); WriteBlockEnd(); } @@ -4200,10 +4459,11 @@ void VulkanExportJsonConsumer::Process_vkCmdSetDeviceMaskKHR( uint32_t deviceMask) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCmdSetDeviceMaskKHR"); - FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["commandBuffer"], commandBuffer, json_options_); - FieldToJson(args["deviceMask"], deviceMask, json_options_); + HandleToJson(args["commandBuffer"], commandBuffer, json_options); + FieldToJson(args["deviceMask"], deviceMask, json_options); WriteBlockEnd(); } @@ -4218,15 +4478,16 @@ void VulkanExportJsonConsumer::Process_vkCmdDispatchBaseKHR( uint32_t groupCountZ) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCmdDispatchBaseKHR"); - FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["commandBuffer"], commandBuffer, json_options_); - FieldToJson(args["baseGroupX"], baseGroupX, json_options_); - FieldToJson(args["baseGroupY"], baseGroupY, json_options_); - FieldToJson(args["baseGroupZ"], baseGroupZ, json_options_); - FieldToJson(args["groupCountX"], groupCountX, json_options_); - FieldToJson(args["groupCountY"], groupCountY, json_options_); - FieldToJson(args["groupCountZ"], groupCountZ, json_options_); + HandleToJson(args["commandBuffer"], commandBuffer, json_options); + FieldToJson(args["baseGroupX"], baseGroupX, json_options); + FieldToJson(args["baseGroupY"], baseGroupY, json_options); + FieldToJson(args["baseGroupZ"], baseGroupZ, json_options); + FieldToJson(args["groupCountX"], groupCountX, json_options); + FieldToJson(args["groupCountY"], groupCountY, json_options); + FieldToJson(args["groupCountZ"], groupCountZ, json_options); WriteBlockEnd(); } @@ -4237,10 +4498,11 @@ void VulkanExportJsonConsumer::Process_vkTrimCommandPoolKHR( VkCommandPoolTrimFlags flags) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkTrimCommandPoolKHR"); + const JsonOptions& json_options = GetJsonOptions(); auto& args = jdata[NameArgs()]; - HandleToJson(args["device"], device, json_options_); - HandleToJson(args["commandPool"], commandPool, json_options_); - FieldToJson(VkCommandPoolTrimFlags_t(), args["flags"], flags, json_options_); + HandleToJson(args["device"], device, json_options); + HandleToJson(args["commandPool"], commandPool, json_options); + FieldToJson(VkCommandPoolTrimFlags_t(), args["flags"], flags, json_options); WriteBlockEnd(); } @@ -4252,11 +4514,12 @@ void VulkanExportJsonConsumer::Process_vkEnumeratePhysicalDeviceGroupsKHR( StructPointerDecoder* pPhysicalDeviceGroupProperties) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkEnumeratePhysicalDeviceGroupsKHR"); - FieldToJson(jdata[NameReturn()], returnValue, json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameReturn()], returnValue, json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["instance"], instance, json_options_); - FieldToJson(args["pPhysicalDeviceGroupCount"], pPhysicalDeviceGroupCount, json_options_); - FieldToJson(args["pPhysicalDeviceGroupProperties"], pPhysicalDeviceGroupProperties, json_options_); + HandleToJson(args["instance"], instance, json_options); + FieldToJson(args["pPhysicalDeviceGroupCount"], pPhysicalDeviceGroupCount, json_options); + FieldToJson(args["pPhysicalDeviceGroupProperties"], pPhysicalDeviceGroupProperties, json_options); WriteBlockEnd(); } @@ -4267,10 +4530,11 @@ void VulkanExportJsonConsumer::Process_vkGetPhysicalDeviceExternalBufferProperti StructPointerDecoder* pExternalBufferProperties) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkGetPhysicalDeviceExternalBufferPropertiesKHR"); + const JsonOptions& json_options = GetJsonOptions(); auto& args = jdata[NameArgs()]; - HandleToJson(args["physicalDevice"], physicalDevice, json_options_); - FieldToJson(args["pExternalBufferInfo"], pExternalBufferInfo, json_options_); - FieldToJson(args["pExternalBufferProperties"], pExternalBufferProperties, json_options_); + HandleToJson(args["physicalDevice"], physicalDevice, json_options); + FieldToJson(args["pExternalBufferInfo"], pExternalBufferInfo, json_options); + FieldToJson(args["pExternalBufferProperties"], pExternalBufferProperties, json_options); WriteBlockEnd(); } @@ -4282,11 +4546,12 @@ void VulkanExportJsonConsumer::Process_vkGetMemoryWin32HandleKHR( PointerDecoder* pHandle) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkGetMemoryWin32HandleKHR"); - FieldToJson(jdata[NameReturn()], returnValue, json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameReturn()], returnValue, json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["device"], device, json_options_); - FieldToJson(args["pGetWin32HandleInfo"], pGetWin32HandleInfo, json_options_); - FieldToJson(args["pHandle"], pHandle, json_options_); + HandleToJson(args["device"], device, json_options); + FieldToJson(args["pGetWin32HandleInfo"], pGetWin32HandleInfo, json_options); + FieldToJson(args["pHandle"], pHandle, json_options); WriteBlockEnd(); } @@ -4299,12 +4564,13 @@ void VulkanExportJsonConsumer::Process_vkGetMemoryWin32HandlePropertiesKHR( StructPointerDecoder* pMemoryWin32HandleProperties) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkGetMemoryWin32HandlePropertiesKHR"); - FieldToJson(jdata[NameReturn()], returnValue, json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameReturn()], returnValue, json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["device"], device, json_options_); - FieldToJson(args["handleType"], handleType, json_options_); - FieldToJson(args["handle"], handle, json_options_); - FieldToJson(args["pMemoryWin32HandleProperties"], pMemoryWin32HandleProperties, json_options_); + HandleToJson(args["device"], device, json_options); + FieldToJson(args["handleType"], handleType, json_options); + FieldToJson(args["handle"], handle, json_options); + FieldToJson(args["pMemoryWin32HandleProperties"], pMemoryWin32HandleProperties, json_options); WriteBlockEnd(); } @@ -4316,11 +4582,12 @@ void VulkanExportJsonConsumer::Process_vkGetMemoryFdKHR( PointerDecoder* pFd) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkGetMemoryFdKHR"); - FieldToJson(jdata[NameReturn()], returnValue, json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameReturn()], returnValue, json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["device"], device, json_options_); - FieldToJson(args["pGetFdInfo"], pGetFdInfo, json_options_); - FieldToJson(args["pFd"], pFd, json_options_); + HandleToJson(args["device"], device, json_options); + FieldToJson(args["pGetFdInfo"], pGetFdInfo, json_options); + FieldToJson(args["pFd"], pFd, json_options); WriteBlockEnd(); } @@ -4333,12 +4600,13 @@ void VulkanExportJsonConsumer::Process_vkGetMemoryFdPropertiesKHR( StructPointerDecoder* pMemoryFdProperties) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkGetMemoryFdPropertiesKHR"); - FieldToJson(jdata[NameReturn()], returnValue, json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameReturn()], returnValue, json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["device"], device, json_options_); - FieldToJson(args["handleType"], handleType, json_options_); - FieldToJson(args["fd"], fd, json_options_); - FieldToJson(args["pMemoryFdProperties"], pMemoryFdProperties, json_options_); + HandleToJson(args["device"], device, json_options); + FieldToJson(args["handleType"], handleType, json_options); + FieldToJson(args["fd"], fd, json_options); + FieldToJson(args["pMemoryFdProperties"], pMemoryFdProperties, json_options); WriteBlockEnd(); } @@ -4349,10 +4617,11 @@ void VulkanExportJsonConsumer::Process_vkGetPhysicalDeviceExternalSemaphorePrope StructPointerDecoder* pExternalSemaphoreProperties) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkGetPhysicalDeviceExternalSemaphorePropertiesKHR"); + const JsonOptions& json_options = GetJsonOptions(); auto& args = jdata[NameArgs()]; - HandleToJson(args["physicalDevice"], physicalDevice, json_options_); - FieldToJson(args["pExternalSemaphoreInfo"], pExternalSemaphoreInfo, json_options_); - FieldToJson(args["pExternalSemaphoreProperties"], pExternalSemaphoreProperties, json_options_); + HandleToJson(args["physicalDevice"], physicalDevice, json_options); + FieldToJson(args["pExternalSemaphoreInfo"], pExternalSemaphoreInfo, json_options); + FieldToJson(args["pExternalSemaphoreProperties"], pExternalSemaphoreProperties, json_options); WriteBlockEnd(); } @@ -4363,10 +4632,11 @@ void VulkanExportJsonConsumer::Process_vkImportSemaphoreWin32HandleKHR( StructPointerDecoder* pImportSemaphoreWin32HandleInfo) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkImportSemaphoreWin32HandleKHR"); - FieldToJson(jdata[NameReturn()], returnValue, json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameReturn()], returnValue, json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["device"], device, json_options_); - FieldToJson(args["pImportSemaphoreWin32HandleInfo"], pImportSemaphoreWin32HandleInfo, json_options_); + HandleToJson(args["device"], device, json_options); + FieldToJson(args["pImportSemaphoreWin32HandleInfo"], pImportSemaphoreWin32HandleInfo, json_options); WriteBlockEnd(); } @@ -4378,11 +4648,12 @@ void VulkanExportJsonConsumer::Process_vkGetSemaphoreWin32HandleKHR( PointerDecoder* pHandle) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkGetSemaphoreWin32HandleKHR"); - FieldToJson(jdata[NameReturn()], returnValue, json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameReturn()], returnValue, json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["device"], device, json_options_); - FieldToJson(args["pGetWin32HandleInfo"], pGetWin32HandleInfo, json_options_); - FieldToJson(args["pHandle"], pHandle, json_options_); + HandleToJson(args["device"], device, json_options); + FieldToJson(args["pGetWin32HandleInfo"], pGetWin32HandleInfo, json_options); + FieldToJson(args["pHandle"], pHandle, json_options); WriteBlockEnd(); } @@ -4393,10 +4664,11 @@ void VulkanExportJsonConsumer::Process_vkImportSemaphoreFdKHR( StructPointerDecoder* pImportSemaphoreFdInfo) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkImportSemaphoreFdKHR"); - FieldToJson(jdata[NameReturn()], returnValue, json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameReturn()], returnValue, json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["device"], device, json_options_); - FieldToJson(args["pImportSemaphoreFdInfo"], pImportSemaphoreFdInfo, json_options_); + HandleToJson(args["device"], device, json_options); + FieldToJson(args["pImportSemaphoreFdInfo"], pImportSemaphoreFdInfo, json_options); WriteBlockEnd(); } @@ -4408,11 +4680,12 @@ void VulkanExportJsonConsumer::Process_vkGetSemaphoreFdKHR( PointerDecoder* pFd) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkGetSemaphoreFdKHR"); - FieldToJson(jdata[NameReturn()], returnValue, json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameReturn()], returnValue, json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["device"], device, json_options_); - FieldToJson(args["pGetFdInfo"], pGetFdInfo, json_options_); - FieldToJson(args["pFd"], pFd, json_options_); + HandleToJson(args["device"], device, json_options); + FieldToJson(args["pGetFdInfo"], pGetFdInfo, json_options); + FieldToJson(args["pFd"], pFd, json_options); WriteBlockEnd(); } @@ -4426,14 +4699,15 @@ void VulkanExportJsonConsumer::Process_vkCmdPushDescriptorSetKHR( StructPointerDecoder* pDescriptorWrites) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCmdPushDescriptorSetKHR"); - FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["commandBuffer"], commandBuffer, json_options_); - FieldToJson(args["pipelineBindPoint"], pipelineBindPoint, json_options_); - HandleToJson(args["layout"], layout, json_options_); - FieldToJson(args["set"], set, json_options_); - FieldToJson(args["descriptorWriteCount"], descriptorWriteCount, json_options_); - FieldToJson(args["pDescriptorWrites"], pDescriptorWrites, json_options_); + HandleToJson(args["commandBuffer"], commandBuffer, json_options); + FieldToJson(args["pipelineBindPoint"], pipelineBindPoint, json_options); + HandleToJson(args["layout"], layout, json_options); + FieldToJson(args["set"], set, json_options); + FieldToJson(args["descriptorWriteCount"], descriptorWriteCount, json_options); + FieldToJson(args["pDescriptorWrites"], pDescriptorWrites, json_options); WriteBlockEnd(); } @@ -4446,12 +4720,13 @@ void VulkanExportJsonConsumer::Process_vkCreateDescriptorUpdateTemplateKHR( HandlePointerDecoder* pDescriptorUpdateTemplate) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCreateDescriptorUpdateTemplateKHR"); - FieldToJson(jdata[NameReturn()], returnValue, json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameReturn()], returnValue, json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["device"], device, json_options_); - FieldToJson(args["pCreateInfo"], pCreateInfo, json_options_); - FieldToJson(args["pAllocator"], pAllocator, json_options_); - HandleToJson(args["pDescriptorUpdateTemplate"], pDescriptorUpdateTemplate, json_options_); + HandleToJson(args["device"], device, json_options); + FieldToJson(args["pCreateInfo"], pCreateInfo, json_options); + FieldToJson(args["pAllocator"], pAllocator, json_options); + HandleToJson(args["pDescriptorUpdateTemplate"], pDescriptorUpdateTemplate, json_options); WriteBlockEnd(); } @@ -4462,10 +4737,11 @@ void VulkanExportJsonConsumer::Process_vkDestroyDescriptorUpdateTemplateKHR( StructPointerDecoder* pAllocator) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkDestroyDescriptorUpdateTemplateKHR"); + const JsonOptions& json_options = GetJsonOptions(); auto& args = jdata[NameArgs()]; - HandleToJson(args["device"], device, json_options_); - HandleToJson(args["descriptorUpdateTemplate"], descriptorUpdateTemplate, json_options_); - FieldToJson(args["pAllocator"], pAllocator, json_options_); + HandleToJson(args["device"], device, json_options); + HandleToJson(args["descriptorUpdateTemplate"], descriptorUpdateTemplate, json_options); + FieldToJson(args["pAllocator"], pAllocator, json_options); WriteBlockEnd(); } @@ -4478,12 +4754,13 @@ void VulkanExportJsonConsumer::Process_vkCreateRenderPass2KHR( HandlePointerDecoder* pRenderPass) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCreateRenderPass2KHR"); - FieldToJson(jdata[NameReturn()], returnValue, json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameReturn()], returnValue, json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["device"], device, json_options_); - FieldToJson(args["pCreateInfo"], pCreateInfo, json_options_); - FieldToJson(args["pAllocator"], pAllocator, json_options_); - HandleToJson(args["pRenderPass"], pRenderPass, json_options_); + HandleToJson(args["device"], device, json_options); + FieldToJson(args["pCreateInfo"], pCreateInfo, json_options); + FieldToJson(args["pAllocator"], pAllocator, json_options); + HandleToJson(args["pRenderPass"], pRenderPass, json_options); WriteBlockEnd(); } @@ -4494,11 +4771,12 @@ void VulkanExportJsonConsumer::Process_vkCmdBeginRenderPass2KHR( StructPointerDecoder* pSubpassBeginInfo) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCmdBeginRenderPass2KHR"); - FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["commandBuffer"], commandBuffer, json_options_); - FieldToJson(args["pRenderPassBegin"], pRenderPassBegin, json_options_); - FieldToJson(args["pSubpassBeginInfo"], pSubpassBeginInfo, json_options_); + HandleToJson(args["commandBuffer"], commandBuffer, json_options); + FieldToJson(args["pRenderPassBegin"], pRenderPassBegin, json_options); + FieldToJson(args["pSubpassBeginInfo"], pSubpassBeginInfo, json_options); WriteBlockEnd(); } @@ -4509,11 +4787,12 @@ void VulkanExportJsonConsumer::Process_vkCmdNextSubpass2KHR( StructPointerDecoder* pSubpassEndInfo) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCmdNextSubpass2KHR"); - FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["commandBuffer"], commandBuffer, json_options_); - FieldToJson(args["pSubpassBeginInfo"], pSubpassBeginInfo, json_options_); - FieldToJson(args["pSubpassEndInfo"], pSubpassEndInfo, json_options_); + HandleToJson(args["commandBuffer"], commandBuffer, json_options); + FieldToJson(args["pSubpassBeginInfo"], pSubpassBeginInfo, json_options); + FieldToJson(args["pSubpassEndInfo"], pSubpassEndInfo, json_options); WriteBlockEnd(); } @@ -4523,10 +4802,11 @@ void VulkanExportJsonConsumer::Process_vkCmdEndRenderPass2KHR( StructPointerDecoder* pSubpassEndInfo) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCmdEndRenderPass2KHR"); - FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["commandBuffer"], commandBuffer, json_options_); - FieldToJson(args["pSubpassEndInfo"], pSubpassEndInfo, json_options_); + HandleToJson(args["commandBuffer"], commandBuffer, json_options); + FieldToJson(args["pSubpassEndInfo"], pSubpassEndInfo, json_options); WriteBlockEnd(); } @@ -4537,10 +4817,11 @@ void VulkanExportJsonConsumer::Process_vkGetSwapchainStatusKHR( format::HandleId swapchain) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkGetSwapchainStatusKHR"); - FieldToJson(jdata[NameReturn()], returnValue, json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameReturn()], returnValue, json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["device"], device, json_options_); - HandleToJson(args["swapchain"], swapchain, json_options_); + HandleToJson(args["device"], device, json_options); + HandleToJson(args["swapchain"], swapchain, json_options); WriteBlockEnd(); } @@ -4551,10 +4832,11 @@ void VulkanExportJsonConsumer::Process_vkGetPhysicalDeviceExternalFencePropertie StructPointerDecoder* pExternalFenceProperties) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkGetPhysicalDeviceExternalFencePropertiesKHR"); + const JsonOptions& json_options = GetJsonOptions(); auto& args = jdata[NameArgs()]; - HandleToJson(args["physicalDevice"], physicalDevice, json_options_); - FieldToJson(args["pExternalFenceInfo"], pExternalFenceInfo, json_options_); - FieldToJson(args["pExternalFenceProperties"], pExternalFenceProperties, json_options_); + HandleToJson(args["physicalDevice"], physicalDevice, json_options); + FieldToJson(args["pExternalFenceInfo"], pExternalFenceInfo, json_options); + FieldToJson(args["pExternalFenceProperties"], pExternalFenceProperties, json_options); WriteBlockEnd(); } @@ -4565,10 +4847,11 @@ void VulkanExportJsonConsumer::Process_vkImportFenceWin32HandleKHR( StructPointerDecoder* pImportFenceWin32HandleInfo) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkImportFenceWin32HandleKHR"); - FieldToJson(jdata[NameReturn()], returnValue, json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameReturn()], returnValue, json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["device"], device, json_options_); - FieldToJson(args["pImportFenceWin32HandleInfo"], pImportFenceWin32HandleInfo, json_options_); + HandleToJson(args["device"], device, json_options); + FieldToJson(args["pImportFenceWin32HandleInfo"], pImportFenceWin32HandleInfo, json_options); WriteBlockEnd(); } @@ -4580,11 +4863,12 @@ void VulkanExportJsonConsumer::Process_vkGetFenceWin32HandleKHR( PointerDecoder* pHandle) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkGetFenceWin32HandleKHR"); - FieldToJson(jdata[NameReturn()], returnValue, json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameReturn()], returnValue, json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["device"], device, json_options_); - FieldToJson(args["pGetWin32HandleInfo"], pGetWin32HandleInfo, json_options_); - FieldToJson(args["pHandle"], pHandle, json_options_); + HandleToJson(args["device"], device, json_options); + FieldToJson(args["pGetWin32HandleInfo"], pGetWin32HandleInfo, json_options); + FieldToJson(args["pHandle"], pHandle, json_options); WriteBlockEnd(); } @@ -4595,10 +4879,11 @@ void VulkanExportJsonConsumer::Process_vkImportFenceFdKHR( StructPointerDecoder* pImportFenceFdInfo) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkImportFenceFdKHR"); - FieldToJson(jdata[NameReturn()], returnValue, json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameReturn()], returnValue, json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["device"], device, json_options_); - FieldToJson(args["pImportFenceFdInfo"], pImportFenceFdInfo, json_options_); + HandleToJson(args["device"], device, json_options); + FieldToJson(args["pImportFenceFdInfo"], pImportFenceFdInfo, json_options); WriteBlockEnd(); } @@ -4610,11 +4895,12 @@ void VulkanExportJsonConsumer::Process_vkGetFenceFdKHR( PointerDecoder* pFd) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkGetFenceFdKHR"); - FieldToJson(jdata[NameReturn()], returnValue, json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameReturn()], returnValue, json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["device"], device, json_options_); - FieldToJson(args["pGetFdInfo"], pGetFdInfo, json_options_); - FieldToJson(args["pFd"], pFd, json_options_); + HandleToJson(args["device"], device, json_options); + FieldToJson(args["pGetFdInfo"], pGetFdInfo, json_options); + FieldToJson(args["pFd"], pFd, json_options); WriteBlockEnd(); } @@ -4628,13 +4914,14 @@ void VulkanExportJsonConsumer::Process_vkEnumeratePhysicalDeviceQueueFamilyPerfo StructPointerDecoder* pCounterDescriptions) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR"); - FieldToJson(jdata[NameReturn()], returnValue, json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameReturn()], returnValue, json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["physicalDevice"], physicalDevice, json_options_); - FieldToJson(args["queueFamilyIndex"], queueFamilyIndex, json_options_); - FieldToJson(args["pCounterCount"], pCounterCount, json_options_); - FieldToJson(args["pCounters"], pCounters, json_options_); - FieldToJson(args["pCounterDescriptions"], pCounterDescriptions, json_options_); + HandleToJson(args["physicalDevice"], physicalDevice, json_options); + FieldToJson(args["queueFamilyIndex"], queueFamilyIndex, json_options); + FieldToJson(args["pCounterCount"], pCounterCount, json_options); + FieldToJson(args["pCounters"], pCounters, json_options); + FieldToJson(args["pCounterDescriptions"], pCounterDescriptions, json_options); WriteBlockEnd(); } @@ -4645,10 +4932,11 @@ void VulkanExportJsonConsumer::Process_vkGetPhysicalDeviceQueueFamilyPerformance PointerDecoder* pNumPasses) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR"); + const JsonOptions& json_options = GetJsonOptions(); auto& args = jdata[NameArgs()]; - HandleToJson(args["physicalDevice"], physicalDevice, json_options_); - FieldToJson(args["pPerformanceQueryCreateInfo"], pPerformanceQueryCreateInfo, json_options_); - FieldToJson(args["pNumPasses"], pNumPasses, json_options_); + HandleToJson(args["physicalDevice"], physicalDevice, json_options); + FieldToJson(args["pPerformanceQueryCreateInfo"], pPerformanceQueryCreateInfo, json_options); + FieldToJson(args["pNumPasses"], pNumPasses, json_options); WriteBlockEnd(); } @@ -4659,10 +4947,11 @@ void VulkanExportJsonConsumer::Process_vkAcquireProfilingLockKHR( StructPointerDecoder* pInfo) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkAcquireProfilingLockKHR"); - FieldToJson(jdata[NameReturn()], returnValue, json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameReturn()], returnValue, json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["device"], device, json_options_); - FieldToJson(args["pInfo"], pInfo, json_options_); + HandleToJson(args["device"], device, json_options); + FieldToJson(args["pInfo"], pInfo, json_options); WriteBlockEnd(); } @@ -4671,8 +4960,9 @@ void VulkanExportJsonConsumer::Process_vkReleaseProfilingLockKHR( format::HandleId device) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkReleaseProfilingLockKHR"); + const JsonOptions& json_options = GetJsonOptions(); auto& args = jdata[NameArgs()]; - HandleToJson(args["device"], device, json_options_); + HandleToJson(args["device"], device, json_options); WriteBlockEnd(); } @@ -4684,11 +4974,12 @@ void VulkanExportJsonConsumer::Process_vkGetPhysicalDeviceSurfaceCapabilities2KH StructPointerDecoder* pSurfaceCapabilities) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkGetPhysicalDeviceSurfaceCapabilities2KHR"); - FieldToJson(jdata[NameReturn()], returnValue, json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameReturn()], returnValue, json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["physicalDevice"], physicalDevice, json_options_); - FieldToJson(args["pSurfaceInfo"], pSurfaceInfo, json_options_); - FieldToJson(args["pSurfaceCapabilities"], pSurfaceCapabilities, json_options_); + HandleToJson(args["physicalDevice"], physicalDevice, json_options); + FieldToJson(args["pSurfaceInfo"], pSurfaceInfo, json_options); + FieldToJson(args["pSurfaceCapabilities"], pSurfaceCapabilities, json_options); WriteBlockEnd(); } @@ -4701,12 +4992,13 @@ void VulkanExportJsonConsumer::Process_vkGetPhysicalDeviceSurfaceFormats2KHR( StructPointerDecoder* pSurfaceFormats) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkGetPhysicalDeviceSurfaceFormats2KHR"); - FieldToJson(jdata[NameReturn()], returnValue, json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameReturn()], returnValue, json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["physicalDevice"], physicalDevice, json_options_); - FieldToJson(args["pSurfaceInfo"], pSurfaceInfo, json_options_); - FieldToJson(args["pSurfaceFormatCount"], pSurfaceFormatCount, json_options_); - FieldToJson(args["pSurfaceFormats"], pSurfaceFormats, json_options_); + HandleToJson(args["physicalDevice"], physicalDevice, json_options); + FieldToJson(args["pSurfaceInfo"], pSurfaceInfo, json_options); + FieldToJson(args["pSurfaceFormatCount"], pSurfaceFormatCount, json_options); + FieldToJson(args["pSurfaceFormats"], pSurfaceFormats, json_options); WriteBlockEnd(); } @@ -4718,11 +5010,12 @@ void VulkanExportJsonConsumer::Process_vkGetPhysicalDeviceDisplayProperties2KHR( StructPointerDecoder* pProperties) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkGetPhysicalDeviceDisplayProperties2KHR"); - FieldToJson(jdata[NameReturn()], returnValue, json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameReturn()], returnValue, json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["physicalDevice"], physicalDevice, json_options_); - FieldToJson(args["pPropertyCount"], pPropertyCount, json_options_); - FieldToJson(args["pProperties"], pProperties, json_options_); + HandleToJson(args["physicalDevice"], physicalDevice, json_options); + FieldToJson(args["pPropertyCount"], pPropertyCount, json_options); + FieldToJson(args["pProperties"], pProperties, json_options); WriteBlockEnd(); } @@ -4734,11 +5027,12 @@ void VulkanExportJsonConsumer::Process_vkGetPhysicalDeviceDisplayPlaneProperties StructPointerDecoder* pProperties) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkGetPhysicalDeviceDisplayPlaneProperties2KHR"); - FieldToJson(jdata[NameReturn()], returnValue, json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameReturn()], returnValue, json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["physicalDevice"], physicalDevice, json_options_); - FieldToJson(args["pPropertyCount"], pPropertyCount, json_options_); - FieldToJson(args["pProperties"], pProperties, json_options_); + HandleToJson(args["physicalDevice"], physicalDevice, json_options); + FieldToJson(args["pPropertyCount"], pPropertyCount, json_options); + FieldToJson(args["pProperties"], pProperties, json_options); WriteBlockEnd(); } @@ -4751,12 +5045,13 @@ void VulkanExportJsonConsumer::Process_vkGetDisplayModeProperties2KHR( StructPointerDecoder* pProperties) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkGetDisplayModeProperties2KHR"); - FieldToJson(jdata[NameReturn()], returnValue, json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameReturn()], returnValue, json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["physicalDevice"], physicalDevice, json_options_); - HandleToJson(args["display"], display, json_options_); - FieldToJson(args["pPropertyCount"], pPropertyCount, json_options_); - FieldToJson(args["pProperties"], pProperties, json_options_); + HandleToJson(args["physicalDevice"], physicalDevice, json_options); + HandleToJson(args["display"], display, json_options); + FieldToJson(args["pPropertyCount"], pPropertyCount, json_options); + FieldToJson(args["pProperties"], pProperties, json_options); WriteBlockEnd(); } @@ -4768,11 +5063,12 @@ void VulkanExportJsonConsumer::Process_vkGetDisplayPlaneCapabilities2KHR( StructPointerDecoder* pCapabilities) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkGetDisplayPlaneCapabilities2KHR"); - FieldToJson(jdata[NameReturn()], returnValue, json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameReturn()], returnValue, json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["physicalDevice"], physicalDevice, json_options_); - FieldToJson(args["pDisplayPlaneInfo"], pDisplayPlaneInfo, json_options_); - FieldToJson(args["pCapabilities"], pCapabilities, json_options_); + HandleToJson(args["physicalDevice"], physicalDevice, json_options); + FieldToJson(args["pDisplayPlaneInfo"], pDisplayPlaneInfo, json_options); + FieldToJson(args["pCapabilities"], pCapabilities, json_options); WriteBlockEnd(); } @@ -4783,10 +5079,11 @@ void VulkanExportJsonConsumer::Process_vkGetImageMemoryRequirements2KHR( StructPointerDecoder* pMemoryRequirements) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkGetImageMemoryRequirements2KHR"); + const JsonOptions& json_options = GetJsonOptions(); auto& args = jdata[NameArgs()]; - HandleToJson(args["device"], device, json_options_); - FieldToJson(args["pInfo"], pInfo, json_options_); - FieldToJson(args["pMemoryRequirements"], pMemoryRequirements, json_options_); + HandleToJson(args["device"], device, json_options); + FieldToJson(args["pInfo"], pInfo, json_options); + FieldToJson(args["pMemoryRequirements"], pMemoryRequirements, json_options); WriteBlockEnd(); } @@ -4797,10 +5094,11 @@ void VulkanExportJsonConsumer::Process_vkGetBufferMemoryRequirements2KHR( StructPointerDecoder* pMemoryRequirements) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkGetBufferMemoryRequirements2KHR"); + const JsonOptions& json_options = GetJsonOptions(); auto& args = jdata[NameArgs()]; - HandleToJson(args["device"], device, json_options_); - FieldToJson(args["pInfo"], pInfo, json_options_); - FieldToJson(args["pMemoryRequirements"], pMemoryRequirements, json_options_); + HandleToJson(args["device"], device, json_options); + FieldToJson(args["pInfo"], pInfo, json_options); + FieldToJson(args["pMemoryRequirements"], pMemoryRequirements, json_options); WriteBlockEnd(); } @@ -4812,11 +5110,12 @@ void VulkanExportJsonConsumer::Process_vkGetImageSparseMemoryRequirements2KHR( StructPointerDecoder* pSparseMemoryRequirements) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkGetImageSparseMemoryRequirements2KHR"); + const JsonOptions& json_options = GetJsonOptions(); auto& args = jdata[NameArgs()]; - HandleToJson(args["device"], device, json_options_); - FieldToJson(args["pInfo"], pInfo, json_options_); - FieldToJson(args["pSparseMemoryRequirementCount"], pSparseMemoryRequirementCount, json_options_); - FieldToJson(args["pSparseMemoryRequirements"], pSparseMemoryRequirements, json_options_); + HandleToJson(args["device"], device, json_options); + FieldToJson(args["pInfo"], pInfo, json_options); + FieldToJson(args["pSparseMemoryRequirementCount"], pSparseMemoryRequirementCount, json_options); + FieldToJson(args["pSparseMemoryRequirements"], pSparseMemoryRequirements, json_options); WriteBlockEnd(); } @@ -4829,12 +5128,13 @@ void VulkanExportJsonConsumer::Process_vkCreateSamplerYcbcrConversionKHR( HandlePointerDecoder* pYcbcrConversion) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCreateSamplerYcbcrConversionKHR"); - FieldToJson(jdata[NameReturn()], returnValue, json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameReturn()], returnValue, json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["device"], device, json_options_); - FieldToJson(args["pCreateInfo"], pCreateInfo, json_options_); - FieldToJson(args["pAllocator"], pAllocator, json_options_); - HandleToJson(args["pYcbcrConversion"], pYcbcrConversion, json_options_); + HandleToJson(args["device"], device, json_options); + FieldToJson(args["pCreateInfo"], pCreateInfo, json_options); + FieldToJson(args["pAllocator"], pAllocator, json_options); + HandleToJson(args["pYcbcrConversion"], pYcbcrConversion, json_options); WriteBlockEnd(); } @@ -4845,10 +5145,11 @@ void VulkanExportJsonConsumer::Process_vkDestroySamplerYcbcrConversionKHR( StructPointerDecoder* pAllocator) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkDestroySamplerYcbcrConversionKHR"); + const JsonOptions& json_options = GetJsonOptions(); auto& args = jdata[NameArgs()]; - HandleToJson(args["device"], device, json_options_); - HandleToJson(args["ycbcrConversion"], ycbcrConversion, json_options_); - FieldToJson(args["pAllocator"], pAllocator, json_options_); + HandleToJson(args["device"], device, json_options); + HandleToJson(args["ycbcrConversion"], ycbcrConversion, json_options); + FieldToJson(args["pAllocator"], pAllocator, json_options); WriteBlockEnd(); } @@ -4860,11 +5161,12 @@ void VulkanExportJsonConsumer::Process_vkBindBufferMemory2KHR( StructPointerDecoder* pBindInfos) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkBindBufferMemory2KHR"); - FieldToJson(jdata[NameReturn()], returnValue, json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameReturn()], returnValue, json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["device"], device, json_options_); - FieldToJson(args["bindInfoCount"], bindInfoCount, json_options_); - FieldToJson(args["pBindInfos"], pBindInfos, json_options_); + HandleToJson(args["device"], device, json_options); + FieldToJson(args["bindInfoCount"], bindInfoCount, json_options); + FieldToJson(args["pBindInfos"], pBindInfos, json_options); WriteBlockEnd(); } @@ -4876,11 +5178,12 @@ void VulkanExportJsonConsumer::Process_vkBindImageMemory2KHR( StructPointerDecoder* pBindInfos) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkBindImageMemory2KHR"); - FieldToJson(jdata[NameReturn()], returnValue, json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameReturn()], returnValue, json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["device"], device, json_options_); - FieldToJson(args["bindInfoCount"], bindInfoCount, json_options_); - FieldToJson(args["pBindInfos"], pBindInfos, json_options_); + HandleToJson(args["device"], device, json_options); + FieldToJson(args["bindInfoCount"], bindInfoCount, json_options); + FieldToJson(args["pBindInfos"], pBindInfos, json_options); WriteBlockEnd(); } @@ -4891,10 +5194,11 @@ void VulkanExportJsonConsumer::Process_vkGetDescriptorSetLayoutSupportKHR( StructPointerDecoder* pSupport) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkGetDescriptorSetLayoutSupportKHR"); + const JsonOptions& json_options = GetJsonOptions(); auto& args = jdata[NameArgs()]; - HandleToJson(args["device"], device, json_options_); - FieldToJson(args["pCreateInfo"], pCreateInfo, json_options_); - FieldToJson(args["pSupport"], pSupport, json_options_); + HandleToJson(args["device"], device, json_options); + FieldToJson(args["pCreateInfo"], pCreateInfo, json_options); + FieldToJson(args["pSupport"], pSupport, json_options); WriteBlockEnd(); } @@ -4909,15 +5213,16 @@ void VulkanExportJsonConsumer::Process_vkCmdDrawIndirectCountKHR( uint32_t stride) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCmdDrawIndirectCountKHR"); - FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["commandBuffer"], commandBuffer, json_options_); - HandleToJson(args["buffer"], buffer, json_options_); - FieldToJson(args["offset"], offset, json_options_); - HandleToJson(args["countBuffer"], countBuffer, json_options_); - FieldToJson(args["countBufferOffset"], countBufferOffset, json_options_); - FieldToJson(args["maxDrawCount"], maxDrawCount, json_options_); - FieldToJson(args["stride"], stride, json_options_); + HandleToJson(args["commandBuffer"], commandBuffer, json_options); + HandleToJson(args["buffer"], buffer, json_options); + FieldToJson(args["offset"], offset, json_options); + HandleToJson(args["countBuffer"], countBuffer, json_options); + FieldToJson(args["countBufferOffset"], countBufferOffset, json_options); + FieldToJson(args["maxDrawCount"], maxDrawCount, json_options); + FieldToJson(args["stride"], stride, json_options); WriteBlockEnd(); } @@ -4932,15 +5237,16 @@ void VulkanExportJsonConsumer::Process_vkCmdDrawIndexedIndirectCountKHR( uint32_t stride) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCmdDrawIndexedIndirectCountKHR"); - FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["commandBuffer"], commandBuffer, json_options_); - HandleToJson(args["buffer"], buffer, json_options_); - FieldToJson(args["offset"], offset, json_options_); - HandleToJson(args["countBuffer"], countBuffer, json_options_); - FieldToJson(args["countBufferOffset"], countBufferOffset, json_options_); - FieldToJson(args["maxDrawCount"], maxDrawCount, json_options_); - FieldToJson(args["stride"], stride, json_options_); + HandleToJson(args["commandBuffer"], commandBuffer, json_options); + HandleToJson(args["buffer"], buffer, json_options); + FieldToJson(args["offset"], offset, json_options); + HandleToJson(args["countBuffer"], countBuffer, json_options); + FieldToJson(args["countBufferOffset"], countBufferOffset, json_options); + FieldToJson(args["maxDrawCount"], maxDrawCount, json_options); + FieldToJson(args["stride"], stride, json_options); WriteBlockEnd(); } @@ -4952,11 +5258,12 @@ void VulkanExportJsonConsumer::Process_vkGetSemaphoreCounterValueKHR( PointerDecoder* pValue) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkGetSemaphoreCounterValueKHR"); - FieldToJson(jdata[NameReturn()], returnValue, json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameReturn()], returnValue, json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["device"], device, json_options_); - HandleToJson(args["semaphore"], semaphore, json_options_); - FieldToJson(args["pValue"], pValue, json_options_); + HandleToJson(args["device"], device, json_options); + HandleToJson(args["semaphore"], semaphore, json_options); + FieldToJson(args["pValue"], pValue, json_options); WriteBlockEnd(); } @@ -4968,11 +5275,12 @@ void VulkanExportJsonConsumer::Process_vkWaitSemaphoresKHR( uint64_t timeout) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkWaitSemaphoresKHR"); - FieldToJson(jdata[NameReturn()], returnValue, json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameReturn()], returnValue, json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["device"], device, json_options_); - FieldToJson(args["pWaitInfo"], pWaitInfo, json_options_); - FieldToJson(args["timeout"], timeout, json_options_); + HandleToJson(args["device"], device, json_options); + FieldToJson(args["pWaitInfo"], pWaitInfo, json_options); + FieldToJson(args["timeout"], timeout, json_options); WriteBlockEnd(); } @@ -4983,10 +5291,11 @@ void VulkanExportJsonConsumer::Process_vkSignalSemaphoreKHR( StructPointerDecoder* pSignalInfo) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkSignalSemaphoreKHR"); - FieldToJson(jdata[NameReturn()], returnValue, json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameReturn()], returnValue, json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["device"], device, json_options_); - FieldToJson(args["pSignalInfo"], pSignalInfo, json_options_); + HandleToJson(args["device"], device, json_options); + FieldToJson(args["pSignalInfo"], pSignalInfo, json_options); WriteBlockEnd(); } @@ -4998,11 +5307,12 @@ void VulkanExportJsonConsumer::Process_vkGetPhysicalDeviceFragmentShadingRatesKH StructPointerDecoder* pFragmentShadingRates) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkGetPhysicalDeviceFragmentShadingRatesKHR"); - FieldToJson(jdata[NameReturn()], returnValue, json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameReturn()], returnValue, json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["physicalDevice"], physicalDevice, json_options_); - FieldToJson(args["pFragmentShadingRateCount"], pFragmentShadingRateCount, json_options_); - FieldToJson(args["pFragmentShadingRates"], pFragmentShadingRates, json_options_); + HandleToJson(args["physicalDevice"], physicalDevice, json_options); + FieldToJson(args["pFragmentShadingRateCount"], pFragmentShadingRateCount, json_options); + FieldToJson(args["pFragmentShadingRates"], pFragmentShadingRates, json_options); WriteBlockEnd(); } @@ -5013,11 +5323,12 @@ void VulkanExportJsonConsumer::Process_vkCmdSetFragmentShadingRateKHR( PointerDecoder* combinerOps) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCmdSetFragmentShadingRateKHR"); - FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["commandBuffer"], commandBuffer, json_options_); - FieldToJson(args["pFragmentSize"], pFragmentSize, json_options_); - FieldToJson(args["combinerOps"], combinerOps, json_options_); + HandleToJson(args["commandBuffer"], commandBuffer, json_options); + FieldToJson(args["pFragmentSize"], pFragmentSize, json_options); + FieldToJson(args["combinerOps"], combinerOps, json_options); WriteBlockEnd(); } @@ -5030,12 +5341,13 @@ void VulkanExportJsonConsumer::Process_vkWaitForPresentKHR( uint64_t timeout) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkWaitForPresentKHR"); - FieldToJson(jdata[NameReturn()], returnValue, json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameReturn()], returnValue, json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["device"], device, json_options_); - HandleToJson(args["swapchain"], swapchain, json_options_); - FieldToJson(args["presentId"], presentId, json_options_); - FieldToJson(args["timeout"], timeout, json_options_); + HandleToJson(args["device"], device, json_options); + HandleToJson(args["swapchain"], swapchain, json_options); + FieldToJson(args["presentId"], presentId, json_options); + FieldToJson(args["timeout"], timeout, json_options); WriteBlockEnd(); } @@ -5046,10 +5358,11 @@ void VulkanExportJsonConsumer::Process_vkGetBufferDeviceAddressKHR( StructPointerDecoder* pInfo) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkGetBufferDeviceAddressKHR"); - FieldToJsonAsHex(jdata[NameReturn()], returnValue, json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJsonAsHex(jdata[NameReturn()], returnValue, json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["device"], device, json_options_); - FieldToJson(args["pInfo"], pInfo, json_options_); + HandleToJson(args["device"], device, json_options); + FieldToJson(args["pInfo"], pInfo, json_options); WriteBlockEnd(); } @@ -5060,10 +5373,11 @@ void VulkanExportJsonConsumer::Process_vkGetBufferOpaqueCaptureAddressKHR( StructPointerDecoder* pInfo) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkGetBufferOpaqueCaptureAddressKHR"); - FieldToJson(jdata[NameReturn()], returnValue, json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameReturn()], returnValue, json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["device"], device, json_options_); - FieldToJson(args["pInfo"], pInfo, json_options_); + HandleToJson(args["device"], device, json_options); + FieldToJson(args["pInfo"], pInfo, json_options); WriteBlockEnd(); } @@ -5074,10 +5388,11 @@ void VulkanExportJsonConsumer::Process_vkGetDeviceMemoryOpaqueCaptureAddressKHR( StructPointerDecoder* pInfo) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkGetDeviceMemoryOpaqueCaptureAddressKHR"); - FieldToJson(jdata[NameReturn()], returnValue, json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameReturn()], returnValue, json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["device"], device, json_options_); - FieldToJson(args["pInfo"], pInfo, json_options_); + HandleToJson(args["device"], device, json_options); + FieldToJson(args["pInfo"], pInfo, json_options); WriteBlockEnd(); } @@ -5089,11 +5404,12 @@ void VulkanExportJsonConsumer::Process_vkCreateDeferredOperationKHR( HandlePointerDecoder* pDeferredOperation) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCreateDeferredOperationKHR"); - FieldToJson(jdata[NameReturn()], returnValue, json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameReturn()], returnValue, json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["device"], device, json_options_); - FieldToJson(args["pAllocator"], pAllocator, json_options_); - HandleToJson(args["pDeferredOperation"], pDeferredOperation, json_options_); + HandleToJson(args["device"], device, json_options); + FieldToJson(args["pAllocator"], pAllocator, json_options); + HandleToJson(args["pDeferredOperation"], pDeferredOperation, json_options); WriteBlockEnd(); } @@ -5104,10 +5420,11 @@ void VulkanExportJsonConsumer::Process_vkDestroyDeferredOperationKHR( StructPointerDecoder* pAllocator) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkDestroyDeferredOperationKHR"); + const JsonOptions& json_options = GetJsonOptions(); auto& args = jdata[NameArgs()]; - HandleToJson(args["device"], device, json_options_); - HandleToJson(args["operation"], operation, json_options_); - FieldToJson(args["pAllocator"], pAllocator, json_options_); + HandleToJson(args["device"], device, json_options); + HandleToJson(args["operation"], operation, json_options); + FieldToJson(args["pAllocator"], pAllocator, json_options); WriteBlockEnd(); } @@ -5118,10 +5435,11 @@ void VulkanExportJsonConsumer::Process_vkGetDeferredOperationMaxConcurrencyKHR( format::HandleId operation) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkGetDeferredOperationMaxConcurrencyKHR"); - FieldToJson(jdata[NameReturn()], returnValue, json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameReturn()], returnValue, json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["device"], device, json_options_); - HandleToJson(args["operation"], operation, json_options_); + HandleToJson(args["device"], device, json_options); + HandleToJson(args["operation"], operation, json_options); WriteBlockEnd(); } @@ -5132,10 +5450,11 @@ void VulkanExportJsonConsumer::Process_vkGetDeferredOperationResultKHR( format::HandleId operation) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkGetDeferredOperationResultKHR"); - FieldToJson(jdata[NameReturn()], returnValue, json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameReturn()], returnValue, json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["device"], device, json_options_); - HandleToJson(args["operation"], operation, json_options_); + HandleToJson(args["device"], device, json_options); + HandleToJson(args["operation"], operation, json_options); WriteBlockEnd(); } @@ -5146,10 +5465,11 @@ void VulkanExportJsonConsumer::Process_vkDeferredOperationJoinKHR( format::HandleId operation) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkDeferredOperationJoinKHR"); - FieldToJson(jdata[NameReturn()], returnValue, json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameReturn()], returnValue, json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["device"], device, json_options_); - HandleToJson(args["operation"], operation, json_options_); + HandleToJson(args["device"], device, json_options); + HandleToJson(args["operation"], operation, json_options); WriteBlockEnd(); } @@ -5162,12 +5482,13 @@ void VulkanExportJsonConsumer::Process_vkGetPipelineExecutablePropertiesKHR( StructPointerDecoder* pProperties) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkGetPipelineExecutablePropertiesKHR"); - FieldToJson(jdata[NameReturn()], returnValue, json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameReturn()], returnValue, json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["device"], device, json_options_); - FieldToJson(args["pPipelineInfo"], pPipelineInfo, json_options_); - FieldToJson(args["pExecutableCount"], pExecutableCount, json_options_); - FieldToJson(args["pProperties"], pProperties, json_options_); + HandleToJson(args["device"], device, json_options); + FieldToJson(args["pPipelineInfo"], pPipelineInfo, json_options); + FieldToJson(args["pExecutableCount"], pExecutableCount, json_options); + FieldToJson(args["pProperties"], pProperties, json_options); WriteBlockEnd(); } @@ -5180,12 +5501,13 @@ void VulkanExportJsonConsumer::Process_vkGetPipelineExecutableStatisticsKHR( StructPointerDecoder* pStatistics) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkGetPipelineExecutableStatisticsKHR"); - FieldToJson(jdata[NameReturn()], returnValue, json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameReturn()], returnValue, json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["device"], device, json_options_); - FieldToJson(args["pExecutableInfo"], pExecutableInfo, json_options_); - FieldToJson(args["pStatisticCount"], pStatisticCount, json_options_); - FieldToJson(args["pStatistics"], pStatistics, json_options_); + HandleToJson(args["device"], device, json_options); + FieldToJson(args["pExecutableInfo"], pExecutableInfo, json_options); + FieldToJson(args["pStatisticCount"], pStatisticCount, json_options); + FieldToJson(args["pStatistics"], pStatistics, json_options); WriteBlockEnd(); } @@ -5198,12 +5520,13 @@ void VulkanExportJsonConsumer::Process_vkGetPipelineExecutableInternalRepresenta StructPointerDecoder* pInternalRepresentations) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkGetPipelineExecutableInternalRepresentationsKHR"); - FieldToJson(jdata[NameReturn()], returnValue, json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameReturn()], returnValue, json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["device"], device, json_options_); - FieldToJson(args["pExecutableInfo"], pExecutableInfo, json_options_); - FieldToJson(args["pInternalRepresentationCount"], pInternalRepresentationCount, json_options_); - FieldToJson(args["pInternalRepresentations"], pInternalRepresentations, json_options_); + HandleToJson(args["device"], device, json_options); + FieldToJson(args["pExecutableInfo"], pExecutableInfo, json_options); + FieldToJson(args["pInternalRepresentationCount"], pInternalRepresentationCount, json_options); + FieldToJson(args["pInternalRepresentations"], pInternalRepresentations, json_options); WriteBlockEnd(); } @@ -5215,11 +5538,12 @@ void VulkanExportJsonConsumer::Process_vkMapMemory2KHR( PointerDecoder* ppData) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkMapMemory2KHR"); - FieldToJson(jdata[NameReturn()], returnValue, json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameReturn()], returnValue, json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["device"], device, json_options_); - FieldToJson(args["pMemoryMapInfo"], pMemoryMapInfo, json_options_); - FieldToJsonAsHex(args["ppData"], ppData, json_options_); + HandleToJson(args["device"], device, json_options); + FieldToJson(args["pMemoryMapInfo"], pMemoryMapInfo, json_options); + FieldToJsonAsHex(args["ppData"], ppData, json_options); WriteBlockEnd(); } @@ -5230,10 +5554,11 @@ void VulkanExportJsonConsumer::Process_vkUnmapMemory2KHR( StructPointerDecoder* pMemoryUnmapInfo) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkUnmapMemory2KHR"); - FieldToJson(jdata[NameReturn()], returnValue, json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameReturn()], returnValue, json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["device"], device, json_options_); - FieldToJson(args["pMemoryUnmapInfo"], pMemoryUnmapInfo, json_options_); + HandleToJson(args["device"], device, json_options); + FieldToJson(args["pMemoryUnmapInfo"], pMemoryUnmapInfo, json_options); WriteBlockEnd(); } @@ -5245,11 +5570,12 @@ void VulkanExportJsonConsumer::Process_vkGetPhysicalDeviceVideoEncodeQualityLeve StructPointerDecoder* pQualityLevelProperties) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkGetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR"); - FieldToJson(jdata[NameReturn()], returnValue, json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameReturn()], returnValue, json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["physicalDevice"], physicalDevice, json_options_); - FieldToJson(args["pQualityLevelInfo"], pQualityLevelInfo, json_options_); - FieldToJson(args["pQualityLevelProperties"], pQualityLevelProperties, json_options_); + HandleToJson(args["physicalDevice"], physicalDevice, json_options); + FieldToJson(args["pQualityLevelInfo"], pQualityLevelInfo, json_options); + FieldToJson(args["pQualityLevelProperties"], pQualityLevelProperties, json_options); WriteBlockEnd(); } @@ -5263,13 +5589,14 @@ void VulkanExportJsonConsumer::Process_vkGetEncodedVideoSessionParametersKHR( PointerDecoder* pData) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkGetEncodedVideoSessionParametersKHR"); - FieldToJson(jdata[NameReturn()], returnValue, json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameReturn()], returnValue, json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["device"], device, json_options_); - FieldToJson(args["pVideoSessionParametersInfo"], pVideoSessionParametersInfo, json_options_); - FieldToJson(args["pFeedbackInfo"], pFeedbackInfo, json_options_); - FieldToJson(args["pDataSize"], pDataSize, json_options_); - FieldToJson(args["pData"], pData, json_options_); + HandleToJson(args["device"], device, json_options); + FieldToJson(args["pVideoSessionParametersInfo"], pVideoSessionParametersInfo, json_options); + FieldToJson(args["pFeedbackInfo"], pFeedbackInfo, json_options); + FieldToJson(args["pDataSize"], pDataSize, json_options); + FieldToJson(args["pData"], pData, json_options); WriteBlockEnd(); } @@ -5279,10 +5606,11 @@ void VulkanExportJsonConsumer::Process_vkCmdEncodeVideoKHR( StructPointerDecoder* pEncodeInfo) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCmdEncodeVideoKHR"); - FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["commandBuffer"], commandBuffer, json_options_); - FieldToJson(args["pEncodeInfo"], pEncodeInfo, json_options_); + HandleToJson(args["commandBuffer"], commandBuffer, json_options); + FieldToJson(args["pEncodeInfo"], pEncodeInfo, json_options); WriteBlockEnd(); } @@ -5293,11 +5621,12 @@ void VulkanExportJsonConsumer::Process_vkCmdSetEvent2KHR( StructPointerDecoder* pDependencyInfo) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCmdSetEvent2KHR"); - FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["commandBuffer"], commandBuffer, json_options_); - HandleToJson(args["event"], event, json_options_); - FieldToJson(args["pDependencyInfo"], pDependencyInfo, json_options_); + HandleToJson(args["commandBuffer"], commandBuffer, json_options); + HandleToJson(args["event"], event, json_options); + FieldToJson(args["pDependencyInfo"], pDependencyInfo, json_options); WriteBlockEnd(); } @@ -5308,11 +5637,12 @@ void VulkanExportJsonConsumer::Process_vkCmdResetEvent2KHR( VkPipelineStageFlags2 stageMask) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCmdResetEvent2KHR"); - FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["commandBuffer"], commandBuffer, json_options_); - HandleToJson(args["event"], event, json_options_); - FieldToJson(VkPipelineStageFlags2_t(), args["stageMask"], stageMask, json_options_); + HandleToJson(args["commandBuffer"], commandBuffer, json_options); + HandleToJson(args["event"], event, json_options); + FieldToJson(VkPipelineStageFlags2_t(), args["stageMask"], stageMask, json_options); WriteBlockEnd(); } @@ -5324,12 +5654,13 @@ void VulkanExportJsonConsumer::Process_vkCmdWaitEvents2KHR( StructPointerDecoder* pDependencyInfos) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCmdWaitEvents2KHR"); - FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["commandBuffer"], commandBuffer, json_options_); - FieldToJson(args["eventCount"], eventCount, json_options_); - HandleToJson(args["pEvents"], pEvents, json_options_); - FieldToJson(args["pDependencyInfos"], pDependencyInfos, json_options_); + HandleToJson(args["commandBuffer"], commandBuffer, json_options); + FieldToJson(args["eventCount"], eventCount, json_options); + HandleToJson(args["pEvents"], pEvents, json_options); + FieldToJson(args["pDependencyInfos"], pDependencyInfos, json_options); WriteBlockEnd(); } @@ -5339,10 +5670,11 @@ void VulkanExportJsonConsumer::Process_vkCmdPipelineBarrier2KHR( StructPointerDecoder* pDependencyInfo) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCmdPipelineBarrier2KHR"); - FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["commandBuffer"], commandBuffer, json_options_); - FieldToJson(args["pDependencyInfo"], pDependencyInfo, json_options_); + HandleToJson(args["commandBuffer"], commandBuffer, json_options); + FieldToJson(args["pDependencyInfo"], pDependencyInfo, json_options); WriteBlockEnd(); } @@ -5354,12 +5686,13 @@ void VulkanExportJsonConsumer::Process_vkCmdWriteTimestamp2KHR( uint32_t query) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCmdWriteTimestamp2KHR"); - FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["commandBuffer"], commandBuffer, json_options_); - FieldToJson(VkPipelineStageFlags2_t(), args["stage"], stage, json_options_); - HandleToJson(args["queryPool"], queryPool, json_options_); - FieldToJson(args["query"], query, json_options_); + HandleToJson(args["commandBuffer"], commandBuffer, json_options); + FieldToJson(VkPipelineStageFlags2_t(), args["stage"], stage, json_options); + HandleToJson(args["queryPool"], queryPool, json_options); + FieldToJson(args["query"], query, json_options); WriteBlockEnd(); } @@ -5372,13 +5705,14 @@ void VulkanExportJsonConsumer::Process_vkQueueSubmit2KHR( format::HandleId fence) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkQueueSubmit2KHR"); - FieldToJson(jdata[NameSubmitIndex()], ++submit_index_, json_options_); - FieldToJson(jdata[NameReturn()], returnValue, json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameSubmitIndex()], ++submit_index_, json_options); + FieldToJson(jdata[NameReturn()], returnValue, json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["queue"], queue, json_options_); - FieldToJson(args["submitCount"], submitCount, json_options_); - FieldToJson(args["pSubmits"], pSubmits, json_options_); - HandleToJson(args["fence"], fence, json_options_); + HandleToJson(args["queue"], queue, json_options); + FieldToJson(args["submitCount"], submitCount, json_options); + FieldToJson(args["pSubmits"], pSubmits, json_options); + HandleToJson(args["fence"], fence, json_options); WriteBlockEnd(); } @@ -5391,13 +5725,14 @@ void VulkanExportJsonConsumer::Process_vkCmdWriteBufferMarker2AMD( uint32_t marker) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCmdWriteBufferMarker2AMD"); - FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["commandBuffer"], commandBuffer, json_options_); - FieldToJson(VkPipelineStageFlags2_t(), args["stage"], stage, json_options_); - HandleToJson(args["dstBuffer"], dstBuffer, json_options_); - FieldToJson(args["dstOffset"], dstOffset, json_options_); - FieldToJson(args["marker"], marker, json_options_); + HandleToJson(args["commandBuffer"], commandBuffer, json_options); + FieldToJson(VkPipelineStageFlags2_t(), args["stage"], stage, json_options); + HandleToJson(args["dstBuffer"], dstBuffer, json_options); + FieldToJson(args["dstOffset"], dstOffset, json_options); + FieldToJson(args["marker"], marker, json_options); WriteBlockEnd(); } @@ -5408,10 +5743,11 @@ void VulkanExportJsonConsumer::Process_vkGetQueueCheckpointData2NV( StructPointerDecoder* pCheckpointData) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkGetQueueCheckpointData2NV"); + const JsonOptions& json_options = GetJsonOptions(); auto& args = jdata[NameArgs()]; - HandleToJson(args["queue"], queue, json_options_); - FieldToJson(args["pCheckpointDataCount"], pCheckpointDataCount, json_options_); - FieldToJson(args["pCheckpointData"], pCheckpointData, json_options_); + HandleToJson(args["queue"], queue, json_options); + FieldToJson(args["pCheckpointDataCount"], pCheckpointDataCount, json_options); + FieldToJson(args["pCheckpointData"], pCheckpointData, json_options); WriteBlockEnd(); } @@ -5421,10 +5757,11 @@ void VulkanExportJsonConsumer::Process_vkCmdCopyBuffer2KHR( StructPointerDecoder* pCopyBufferInfo) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCmdCopyBuffer2KHR"); - FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["commandBuffer"], commandBuffer, json_options_); - FieldToJson(args["pCopyBufferInfo"], pCopyBufferInfo, json_options_); + HandleToJson(args["commandBuffer"], commandBuffer, json_options); + FieldToJson(args["pCopyBufferInfo"], pCopyBufferInfo, json_options); WriteBlockEnd(); } @@ -5434,10 +5771,11 @@ void VulkanExportJsonConsumer::Process_vkCmdCopyImage2KHR( StructPointerDecoder* pCopyImageInfo) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCmdCopyImage2KHR"); - FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["commandBuffer"], commandBuffer, json_options_); - FieldToJson(args["pCopyImageInfo"], pCopyImageInfo, json_options_); + HandleToJson(args["commandBuffer"], commandBuffer, json_options); + FieldToJson(args["pCopyImageInfo"], pCopyImageInfo, json_options); WriteBlockEnd(); } @@ -5447,10 +5785,11 @@ void VulkanExportJsonConsumer::Process_vkCmdCopyBufferToImage2KHR( StructPointerDecoder* pCopyBufferToImageInfo) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCmdCopyBufferToImage2KHR"); - FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["commandBuffer"], commandBuffer, json_options_); - FieldToJson(args["pCopyBufferToImageInfo"], pCopyBufferToImageInfo, json_options_); + HandleToJson(args["commandBuffer"], commandBuffer, json_options); + FieldToJson(args["pCopyBufferToImageInfo"], pCopyBufferToImageInfo, json_options); WriteBlockEnd(); } @@ -5460,10 +5799,11 @@ void VulkanExportJsonConsumer::Process_vkCmdCopyImageToBuffer2KHR( StructPointerDecoder* pCopyImageToBufferInfo) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCmdCopyImageToBuffer2KHR"); - FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["commandBuffer"], commandBuffer, json_options_); - FieldToJson(args["pCopyImageToBufferInfo"], pCopyImageToBufferInfo, json_options_); + HandleToJson(args["commandBuffer"], commandBuffer, json_options); + FieldToJson(args["pCopyImageToBufferInfo"], pCopyImageToBufferInfo, json_options); WriteBlockEnd(); } @@ -5473,10 +5813,11 @@ void VulkanExportJsonConsumer::Process_vkCmdBlitImage2KHR( StructPointerDecoder* pBlitImageInfo) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCmdBlitImage2KHR"); - FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["commandBuffer"], commandBuffer, json_options_); - FieldToJson(args["pBlitImageInfo"], pBlitImageInfo, json_options_); + HandleToJson(args["commandBuffer"], commandBuffer, json_options); + FieldToJson(args["pBlitImageInfo"], pBlitImageInfo, json_options); WriteBlockEnd(); } @@ -5486,10 +5827,11 @@ void VulkanExportJsonConsumer::Process_vkCmdResolveImage2KHR( StructPointerDecoder* pResolveImageInfo) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCmdResolveImage2KHR"); - FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["commandBuffer"], commandBuffer, json_options_); - FieldToJson(args["pResolveImageInfo"], pResolveImageInfo, json_options_); + HandleToJson(args["commandBuffer"], commandBuffer, json_options); + FieldToJson(args["pResolveImageInfo"], pResolveImageInfo, json_options); WriteBlockEnd(); } @@ -5499,10 +5841,11 @@ void VulkanExportJsonConsumer::Process_vkCmdTraceRaysIndirect2KHR( VkDeviceAddress indirectDeviceAddress) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCmdTraceRaysIndirect2KHR"); - FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["commandBuffer"], commandBuffer, json_options_); - FieldToJsonAsHex(args["indirectDeviceAddress"], indirectDeviceAddress, json_options_); + HandleToJson(args["commandBuffer"], commandBuffer, json_options); + FieldToJsonAsHex(args["indirectDeviceAddress"], indirectDeviceAddress, json_options); WriteBlockEnd(); } @@ -5513,10 +5856,11 @@ void VulkanExportJsonConsumer::Process_vkGetDeviceBufferMemoryRequirementsKHR( StructPointerDecoder* pMemoryRequirements) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkGetDeviceBufferMemoryRequirementsKHR"); + const JsonOptions& json_options = GetJsonOptions(); auto& args = jdata[NameArgs()]; - HandleToJson(args["device"], device, json_options_); - FieldToJson(args["pInfo"], pInfo, json_options_); - FieldToJson(args["pMemoryRequirements"], pMemoryRequirements, json_options_); + HandleToJson(args["device"], device, json_options); + FieldToJson(args["pInfo"], pInfo, json_options); + FieldToJson(args["pMemoryRequirements"], pMemoryRequirements, json_options); WriteBlockEnd(); } @@ -5527,10 +5871,11 @@ void VulkanExportJsonConsumer::Process_vkGetDeviceImageMemoryRequirementsKHR( StructPointerDecoder* pMemoryRequirements) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkGetDeviceImageMemoryRequirementsKHR"); + const JsonOptions& json_options = GetJsonOptions(); auto& args = jdata[NameArgs()]; - HandleToJson(args["device"], device, json_options_); - FieldToJson(args["pInfo"], pInfo, json_options_); - FieldToJson(args["pMemoryRequirements"], pMemoryRequirements, json_options_); + HandleToJson(args["device"], device, json_options); + FieldToJson(args["pInfo"], pInfo, json_options); + FieldToJson(args["pMemoryRequirements"], pMemoryRequirements, json_options); WriteBlockEnd(); } @@ -5542,11 +5887,12 @@ void VulkanExportJsonConsumer::Process_vkGetDeviceImageSparseMemoryRequirementsK StructPointerDecoder* pSparseMemoryRequirements) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkGetDeviceImageSparseMemoryRequirementsKHR"); + const JsonOptions& json_options = GetJsonOptions(); auto& args = jdata[NameArgs()]; - HandleToJson(args["device"], device, json_options_); - FieldToJson(args["pInfo"], pInfo, json_options_); - FieldToJson(args["pSparseMemoryRequirementCount"], pSparseMemoryRequirementCount, json_options_); - FieldToJson(args["pSparseMemoryRequirements"], pSparseMemoryRequirements, json_options_); + HandleToJson(args["device"], device, json_options); + FieldToJson(args["pInfo"], pInfo, json_options); + FieldToJson(args["pSparseMemoryRequirementCount"], pSparseMemoryRequirementCount, json_options); + FieldToJson(args["pSparseMemoryRequirements"], pSparseMemoryRequirements, json_options); WriteBlockEnd(); } @@ -5559,13 +5905,14 @@ void VulkanExportJsonConsumer::Process_vkCmdBindIndexBuffer2KHR( VkIndexType indexType) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCmdBindIndexBuffer2KHR"); - FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["commandBuffer"], commandBuffer, json_options_); - HandleToJson(args["buffer"], buffer, json_options_); - FieldToJson(args["offset"], offset, json_options_); - FieldToJson(args["size"], size, json_options_); - FieldToJson(args["indexType"], indexType, json_options_); + HandleToJson(args["commandBuffer"], commandBuffer, json_options); + HandleToJson(args["buffer"], buffer, json_options); + FieldToJson(args["offset"], offset, json_options); + FieldToJson(args["size"], size, json_options); + FieldToJson(args["indexType"], indexType, json_options); WriteBlockEnd(); } @@ -5576,10 +5923,11 @@ void VulkanExportJsonConsumer::Process_vkGetRenderingAreaGranularityKHR( StructPointerDecoder* pGranularity) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkGetRenderingAreaGranularityKHR"); + const JsonOptions& json_options = GetJsonOptions(); auto& args = jdata[NameArgs()]; - HandleToJson(args["device"], device, json_options_); - FieldToJson(args["pRenderingAreaInfo"], pRenderingAreaInfo, json_options_); - FieldToJson(args["pGranularity"], pGranularity, json_options_); + HandleToJson(args["device"], device, json_options); + FieldToJson(args["pRenderingAreaInfo"], pRenderingAreaInfo, json_options); + FieldToJson(args["pGranularity"], pGranularity, json_options); WriteBlockEnd(); } @@ -5590,10 +5938,11 @@ void VulkanExportJsonConsumer::Process_vkGetDeviceImageSubresourceLayoutKHR( StructPointerDecoder* pLayout) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkGetDeviceImageSubresourceLayoutKHR"); + const JsonOptions& json_options = GetJsonOptions(); auto& args = jdata[NameArgs()]; - HandleToJson(args["device"], device, json_options_); - FieldToJson(args["pInfo"], pInfo, json_options_); - FieldToJson(args["pLayout"], pLayout, json_options_); + HandleToJson(args["device"], device, json_options); + FieldToJson(args["pInfo"], pInfo, json_options); + FieldToJson(args["pLayout"], pLayout, json_options); WriteBlockEnd(); } @@ -5605,11 +5954,12 @@ void VulkanExportJsonConsumer::Process_vkGetImageSubresourceLayout2KHR( StructPointerDecoder* pLayout) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkGetImageSubresourceLayout2KHR"); + const JsonOptions& json_options = GetJsonOptions(); auto& args = jdata[NameArgs()]; - HandleToJson(args["device"], device, json_options_); - HandleToJson(args["image"], image, json_options_); - FieldToJson(args["pSubresource"], pSubresource, json_options_); - FieldToJson(args["pLayout"], pLayout, json_options_); + HandleToJson(args["device"], device, json_options); + HandleToJson(args["image"], image, json_options); + FieldToJson(args["pSubresource"], pSubresource, json_options); + FieldToJson(args["pLayout"], pLayout, json_options); WriteBlockEnd(); } @@ -5621,11 +5971,12 @@ void VulkanExportJsonConsumer::Process_vkGetPhysicalDeviceCooperativeMatrixPrope StructPointerDecoder* pProperties) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR"); - FieldToJson(jdata[NameReturn()], returnValue, json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameReturn()], returnValue, json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["physicalDevice"], physicalDevice, json_options_); - FieldToJson(args["pPropertyCount"], pPropertyCount, json_options_); - FieldToJson(args["pProperties"], pProperties, json_options_); + HandleToJson(args["physicalDevice"], physicalDevice, json_options); + FieldToJson(args["pPropertyCount"], pPropertyCount, json_options); + FieldToJson(args["pProperties"], pProperties, json_options); WriteBlockEnd(); } @@ -5636,10 +5987,11 @@ void VulkanExportJsonConsumer::Process_vkFrameBoundaryANDROID( format::HandleId image) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkFrameBoundaryANDROID"); + const JsonOptions& json_options = GetJsonOptions(); auto& args = jdata[NameArgs()]; - HandleToJson(args["device"], device, json_options_); - HandleToJson(args["semaphore"], semaphore, json_options_); - HandleToJson(args["image"], image, json_options_); + HandleToJson(args["device"], device, json_options); + HandleToJson(args["semaphore"], semaphore, json_options); + HandleToJson(args["image"], image, json_options); WriteBlockEnd(); } @@ -5652,12 +6004,13 @@ void VulkanExportJsonConsumer::Process_vkCreateDebugReportCallbackEXT( HandlePointerDecoder* pCallback) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCreateDebugReportCallbackEXT"); - FieldToJson(jdata[NameReturn()], returnValue, json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameReturn()], returnValue, json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["instance"], instance, json_options_); - FieldToJson(args["pCreateInfo"], pCreateInfo, json_options_); - FieldToJson(args["pAllocator"], pAllocator, json_options_); - HandleToJson(args["pCallback"], pCallback, json_options_); + HandleToJson(args["instance"], instance, json_options); + FieldToJson(args["pCreateInfo"], pCreateInfo, json_options); + FieldToJson(args["pAllocator"], pAllocator, json_options); + HandleToJson(args["pCallback"], pCallback, json_options); WriteBlockEnd(); } @@ -5668,10 +6021,11 @@ void VulkanExportJsonConsumer::Process_vkDestroyDebugReportCallbackEXT( StructPointerDecoder* pAllocator) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkDestroyDebugReportCallbackEXT"); + const JsonOptions& json_options = GetJsonOptions(); auto& args = jdata[NameArgs()]; - HandleToJson(args["instance"], instance, json_options_); - HandleToJson(args["callback"], callback, json_options_); - FieldToJson(args["pAllocator"], pAllocator, json_options_); + HandleToJson(args["instance"], instance, json_options); + HandleToJson(args["callback"], callback, json_options); + FieldToJson(args["pAllocator"], pAllocator, json_options); WriteBlockEnd(); } @@ -5687,15 +6041,16 @@ void VulkanExportJsonConsumer::Process_vkDebugReportMessageEXT( StringDecoder* pMessage) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkDebugReportMessageEXT"); + const JsonOptions& json_options = GetJsonOptions(); auto& args = jdata[NameArgs()]; - HandleToJson(args["instance"], instance, json_options_); - FieldToJson(VkDebugReportFlagsEXT_t(), args["flags"], flags, json_options_); - FieldToJson(args["objectType"], objectType, json_options_); - FieldToJson(args["object"], object, json_options_); - FieldToJson(args["location"], location, json_options_); - FieldToJson(args["messageCode"], messageCode, json_options_); - FieldToJson(args["pLayerPrefix"], pLayerPrefix, json_options_); - FieldToJson(args["pMessage"], pMessage, json_options_); + HandleToJson(args["instance"], instance, json_options); + FieldToJson(VkDebugReportFlagsEXT_t(), args["flags"], flags, json_options); + FieldToJson(args["objectType"], objectType, json_options); + FieldToJson(args["object"], object, json_options); + FieldToJson(args["location"], location, json_options); + FieldToJson(args["messageCode"], messageCode, json_options); + FieldToJson(args["pLayerPrefix"], pLayerPrefix, json_options); + FieldToJson(args["pMessage"], pMessage, json_options); WriteBlockEnd(); } @@ -5706,10 +6061,11 @@ void VulkanExportJsonConsumer::Process_vkDebugMarkerSetObjectTagEXT( StructPointerDecoder* pTagInfo) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkDebugMarkerSetObjectTagEXT"); - FieldToJson(jdata[NameReturn()], returnValue, json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameReturn()], returnValue, json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["device"], device, json_options_); - FieldToJson(args["pTagInfo"], pTagInfo, json_options_); + HandleToJson(args["device"], device, json_options); + FieldToJson(args["pTagInfo"], pTagInfo, json_options); WriteBlockEnd(); } @@ -5720,10 +6076,11 @@ void VulkanExportJsonConsumer::Process_vkDebugMarkerSetObjectNameEXT( StructPointerDecoder* pNameInfo) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkDebugMarkerSetObjectNameEXT"); - FieldToJson(jdata[NameReturn()], returnValue, json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameReturn()], returnValue, json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["device"], device, json_options_); - FieldToJson(args["pNameInfo"], pNameInfo, json_options_); + HandleToJson(args["device"], device, json_options); + FieldToJson(args["pNameInfo"], pNameInfo, json_options); WriteBlockEnd(); } @@ -5733,10 +6090,11 @@ void VulkanExportJsonConsumer::Process_vkCmdDebugMarkerBeginEXT( StructPointerDecoder* pMarkerInfo) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCmdDebugMarkerBeginEXT"); - FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["commandBuffer"], commandBuffer, json_options_); - FieldToJson(args["pMarkerInfo"], pMarkerInfo, json_options_); + HandleToJson(args["commandBuffer"], commandBuffer, json_options); + FieldToJson(args["pMarkerInfo"], pMarkerInfo, json_options); WriteBlockEnd(); } @@ -5745,9 +6103,10 @@ void VulkanExportJsonConsumer::Process_vkCmdDebugMarkerEndEXT( format::HandleId commandBuffer) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCmdDebugMarkerEndEXT"); - FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["commandBuffer"], commandBuffer, json_options_); + HandleToJson(args["commandBuffer"], commandBuffer, json_options); WriteBlockEnd(); } @@ -5757,10 +6116,11 @@ void VulkanExportJsonConsumer::Process_vkCmdDebugMarkerInsertEXT( StructPointerDecoder* pMarkerInfo) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCmdDebugMarkerInsertEXT"); - FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["commandBuffer"], commandBuffer, json_options_); - FieldToJson(args["pMarkerInfo"], pMarkerInfo, json_options_); + HandleToJson(args["commandBuffer"], commandBuffer, json_options); + FieldToJson(args["pMarkerInfo"], pMarkerInfo, json_options); WriteBlockEnd(); } @@ -5774,14 +6134,15 @@ void VulkanExportJsonConsumer::Process_vkCmdBindTransformFeedbackBuffersEXT( PointerDecoder* pSizes) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCmdBindTransformFeedbackBuffersEXT"); - FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["commandBuffer"], commandBuffer, json_options_); - FieldToJson(args["firstBinding"], firstBinding, json_options_); - FieldToJson(args["bindingCount"], bindingCount, json_options_); - HandleToJson(args["pBuffers"], pBuffers, json_options_); - FieldToJson(args["pOffsets"], pOffsets, json_options_); - FieldToJson(args["pSizes"], pSizes, json_options_); + HandleToJson(args["commandBuffer"], commandBuffer, json_options); + FieldToJson(args["firstBinding"], firstBinding, json_options); + FieldToJson(args["bindingCount"], bindingCount, json_options); + HandleToJson(args["pBuffers"], pBuffers, json_options); + FieldToJson(args["pOffsets"], pOffsets, json_options); + FieldToJson(args["pSizes"], pSizes, json_options); WriteBlockEnd(); } @@ -5794,13 +6155,14 @@ void VulkanExportJsonConsumer::Process_vkCmdBeginTransformFeedbackEXT( PointerDecoder* pCounterBufferOffsets) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCmdBeginTransformFeedbackEXT"); - FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["commandBuffer"], commandBuffer, json_options_); - FieldToJson(args["firstCounterBuffer"], firstCounterBuffer, json_options_); - FieldToJson(args["counterBufferCount"], counterBufferCount, json_options_); - HandleToJson(args["pCounterBuffers"], pCounterBuffers, json_options_); - FieldToJson(args["pCounterBufferOffsets"], pCounterBufferOffsets, json_options_); + HandleToJson(args["commandBuffer"], commandBuffer, json_options); + FieldToJson(args["firstCounterBuffer"], firstCounterBuffer, json_options); + FieldToJson(args["counterBufferCount"], counterBufferCount, json_options); + HandleToJson(args["pCounterBuffers"], pCounterBuffers, json_options); + FieldToJson(args["pCounterBufferOffsets"], pCounterBufferOffsets, json_options); WriteBlockEnd(); } @@ -5813,13 +6175,14 @@ void VulkanExportJsonConsumer::Process_vkCmdEndTransformFeedbackEXT( PointerDecoder* pCounterBufferOffsets) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCmdEndTransformFeedbackEXT"); - FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["commandBuffer"], commandBuffer, json_options_); - FieldToJson(args["firstCounterBuffer"], firstCounterBuffer, json_options_); - FieldToJson(args["counterBufferCount"], counterBufferCount, json_options_); - HandleToJson(args["pCounterBuffers"], pCounterBuffers, json_options_); - FieldToJson(args["pCounterBufferOffsets"], pCounterBufferOffsets, json_options_); + HandleToJson(args["commandBuffer"], commandBuffer, json_options); + FieldToJson(args["firstCounterBuffer"], firstCounterBuffer, json_options); + FieldToJson(args["counterBufferCount"], counterBufferCount, json_options); + HandleToJson(args["pCounterBuffers"], pCounterBuffers, json_options); + FieldToJson(args["pCounterBufferOffsets"], pCounterBufferOffsets, json_options); WriteBlockEnd(); } @@ -5832,13 +6195,14 @@ void VulkanExportJsonConsumer::Process_vkCmdBeginQueryIndexedEXT( uint32_t index) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCmdBeginQueryIndexedEXT"); - FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["commandBuffer"], commandBuffer, json_options_); - HandleToJson(args["queryPool"], queryPool, json_options_); - FieldToJson(args["query"], query, json_options_); - FieldToJson(VkQueryControlFlags_t(), args["flags"], flags, json_options_); - FieldToJson(args["index"], index, json_options_); + HandleToJson(args["commandBuffer"], commandBuffer, json_options); + HandleToJson(args["queryPool"], queryPool, json_options); + FieldToJson(args["query"], query, json_options); + FieldToJson(VkQueryControlFlags_t(), args["flags"], flags, json_options); + FieldToJson(args["index"], index, json_options); WriteBlockEnd(); } @@ -5850,12 +6214,13 @@ void VulkanExportJsonConsumer::Process_vkCmdEndQueryIndexedEXT( uint32_t index) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCmdEndQueryIndexedEXT"); - FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["commandBuffer"], commandBuffer, json_options_); - HandleToJson(args["queryPool"], queryPool, json_options_); - FieldToJson(args["query"], query, json_options_); - FieldToJson(args["index"], index, json_options_); + HandleToJson(args["commandBuffer"], commandBuffer, json_options); + HandleToJson(args["queryPool"], queryPool, json_options); + FieldToJson(args["query"], query, json_options); + FieldToJson(args["index"], index, json_options); WriteBlockEnd(); } @@ -5870,15 +6235,16 @@ void VulkanExportJsonConsumer::Process_vkCmdDrawIndirectByteCountEXT( uint32_t vertexStride) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCmdDrawIndirectByteCountEXT"); - FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["commandBuffer"], commandBuffer, json_options_); - FieldToJson(args["instanceCount"], instanceCount, json_options_); - FieldToJson(args["firstInstance"], firstInstance, json_options_); - HandleToJson(args["counterBuffer"], counterBuffer, json_options_); - FieldToJson(args["counterBufferOffset"], counterBufferOffset, json_options_); - FieldToJson(args["counterOffset"], counterOffset, json_options_); - FieldToJson(args["vertexStride"], vertexStride, json_options_); + HandleToJson(args["commandBuffer"], commandBuffer, json_options); + FieldToJson(args["instanceCount"], instanceCount, json_options); + FieldToJson(args["firstInstance"], firstInstance, json_options); + HandleToJson(args["counterBuffer"], counterBuffer, json_options); + FieldToJson(args["counterBufferOffset"], counterBufferOffset, json_options); + FieldToJson(args["counterOffset"], counterOffset, json_options); + FieldToJson(args["vertexStride"], vertexStride, json_options); WriteBlockEnd(); } @@ -5889,10 +6255,11 @@ void VulkanExportJsonConsumer::Process_vkGetImageViewHandleNVX( StructPointerDecoder* pInfo) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkGetImageViewHandleNVX"); - FieldToJson(jdata[NameReturn()], returnValue, json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameReturn()], returnValue, json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["device"], device, json_options_); - FieldToJson(args["pInfo"], pInfo, json_options_); + HandleToJson(args["device"], device, json_options); + FieldToJson(args["pInfo"], pInfo, json_options); WriteBlockEnd(); } @@ -5904,11 +6271,12 @@ void VulkanExportJsonConsumer::Process_vkGetImageViewAddressNVX( StructPointerDecoder* pProperties) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkGetImageViewAddressNVX"); - FieldToJson(jdata[NameReturn()], returnValue, json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameReturn()], returnValue, json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["device"], device, json_options_); - HandleToJson(args["imageView"], imageView, json_options_); - FieldToJson(args["pProperties"], pProperties, json_options_); + HandleToJson(args["device"], device, json_options); + HandleToJson(args["imageView"], imageView, json_options); + FieldToJson(args["pProperties"], pProperties, json_options); WriteBlockEnd(); } @@ -5923,15 +6291,16 @@ void VulkanExportJsonConsumer::Process_vkCmdDrawIndirectCountAMD( uint32_t stride) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCmdDrawIndirectCountAMD"); - FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["commandBuffer"], commandBuffer, json_options_); - HandleToJson(args["buffer"], buffer, json_options_); - FieldToJson(args["offset"], offset, json_options_); - HandleToJson(args["countBuffer"], countBuffer, json_options_); - FieldToJson(args["countBufferOffset"], countBufferOffset, json_options_); - FieldToJson(args["maxDrawCount"], maxDrawCount, json_options_); - FieldToJson(args["stride"], stride, json_options_); + HandleToJson(args["commandBuffer"], commandBuffer, json_options); + HandleToJson(args["buffer"], buffer, json_options); + FieldToJson(args["offset"], offset, json_options); + HandleToJson(args["countBuffer"], countBuffer, json_options); + FieldToJson(args["countBufferOffset"], countBufferOffset, json_options); + FieldToJson(args["maxDrawCount"], maxDrawCount, json_options); + FieldToJson(args["stride"], stride, json_options); WriteBlockEnd(); } @@ -5946,15 +6315,16 @@ void VulkanExportJsonConsumer::Process_vkCmdDrawIndexedIndirectCountAMD( uint32_t stride) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCmdDrawIndexedIndirectCountAMD"); - FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["commandBuffer"], commandBuffer, json_options_); - HandleToJson(args["buffer"], buffer, json_options_); - FieldToJson(args["offset"], offset, json_options_); - HandleToJson(args["countBuffer"], countBuffer, json_options_); - FieldToJson(args["countBufferOffset"], countBufferOffset, json_options_); - FieldToJson(args["maxDrawCount"], maxDrawCount, json_options_); - FieldToJson(args["stride"], stride, json_options_); + HandleToJson(args["commandBuffer"], commandBuffer, json_options); + HandleToJson(args["buffer"], buffer, json_options); + FieldToJson(args["offset"], offset, json_options); + HandleToJson(args["countBuffer"], countBuffer, json_options); + FieldToJson(args["countBufferOffset"], countBufferOffset, json_options); + FieldToJson(args["maxDrawCount"], maxDrawCount, json_options); + FieldToJson(args["stride"], stride, json_options); WriteBlockEnd(); } @@ -5969,14 +6339,15 @@ void VulkanExportJsonConsumer::Process_vkGetShaderInfoAMD( PointerDecoder* pInfo) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkGetShaderInfoAMD"); - FieldToJson(jdata[NameReturn()], returnValue, json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameReturn()], returnValue, json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["device"], device, json_options_); - HandleToJson(args["pipeline"], pipeline, json_options_); - FieldToJson(args["shaderStage"], shaderStage, json_options_); - FieldToJson(args["infoType"], infoType, json_options_); - FieldToJson(args["pInfoSize"], pInfoSize, json_options_); - FieldToJson(args["pInfo"], pInfo, json_options_); + HandleToJson(args["device"], device, json_options); + HandleToJson(args["pipeline"], pipeline, json_options); + FieldToJson(args["shaderStage"], shaderStage, json_options); + FieldToJson(args["infoType"], infoType, json_options); + FieldToJson(args["pInfoSize"], pInfoSize, json_options); + FieldToJson(args["pInfo"], pInfo, json_options); WriteBlockEnd(); } @@ -5989,12 +6360,13 @@ void VulkanExportJsonConsumer::Process_vkCreateStreamDescriptorSurfaceGGP( HandlePointerDecoder* pSurface) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCreateStreamDescriptorSurfaceGGP"); - FieldToJson(jdata[NameReturn()], returnValue, json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameReturn()], returnValue, json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["instance"], instance, json_options_); - FieldToJson(args["pCreateInfo"], pCreateInfo, json_options_); - FieldToJson(args["pAllocator"], pAllocator, json_options_); - HandleToJson(args["pSurface"], pSurface, json_options_); + HandleToJson(args["instance"], instance, json_options); + FieldToJson(args["pCreateInfo"], pCreateInfo, json_options); + FieldToJson(args["pAllocator"], pAllocator, json_options); + HandleToJson(args["pSurface"], pSurface, json_options); WriteBlockEnd(); } @@ -6011,16 +6383,17 @@ void VulkanExportJsonConsumer::Process_vkGetPhysicalDeviceExternalImageFormatPro StructPointerDecoder* pExternalImageFormatProperties) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkGetPhysicalDeviceExternalImageFormatPropertiesNV"); - FieldToJson(jdata[NameReturn()], returnValue, json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameReturn()], returnValue, json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["physicalDevice"], physicalDevice, json_options_); - FieldToJson(args["format"], format, json_options_); - FieldToJson(args["type"], type, json_options_); - FieldToJson(args["tiling"], tiling, json_options_); - FieldToJson(VkImageUsageFlags_t(), args["usage"], usage, json_options_); - FieldToJson(VkImageCreateFlags_t(), args["flags"], flags, json_options_); - FieldToJson(VkExternalMemoryHandleTypeFlagsNV_t(), args["externalHandleType"], externalHandleType, json_options_); - FieldToJson(args["pExternalImageFormatProperties"], pExternalImageFormatProperties, json_options_); + HandleToJson(args["physicalDevice"], physicalDevice, json_options); + FieldToJson(args["format"], format, json_options); + FieldToJson(args["type"], type, json_options); + FieldToJson(args["tiling"], tiling, json_options); + FieldToJson(VkImageUsageFlags_t(), args["usage"], usage, json_options); + FieldToJson(VkImageCreateFlags_t(), args["flags"], flags, json_options); + FieldToJson(VkExternalMemoryHandleTypeFlagsNV_t(), args["externalHandleType"], externalHandleType, json_options); + FieldToJson(args["pExternalImageFormatProperties"], pExternalImageFormatProperties, json_options); WriteBlockEnd(); } @@ -6033,12 +6406,13 @@ void VulkanExportJsonConsumer::Process_vkGetMemoryWin32HandleNV( PointerDecoder* pHandle) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkGetMemoryWin32HandleNV"); - FieldToJson(jdata[NameReturn()], returnValue, json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameReturn()], returnValue, json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["device"], device, json_options_); - HandleToJson(args["memory"], memory, json_options_); - FieldToJson(VkExternalMemoryHandleTypeFlagsNV_t(), args["handleType"], handleType, json_options_); - FieldToJson(args["pHandle"], pHandle, json_options_); + HandleToJson(args["device"], device, json_options); + HandleToJson(args["memory"], memory, json_options); + FieldToJson(VkExternalMemoryHandleTypeFlagsNV_t(), args["handleType"], handleType, json_options); + FieldToJson(args["pHandle"], pHandle, json_options); WriteBlockEnd(); } @@ -6051,12 +6425,13 @@ void VulkanExportJsonConsumer::Process_vkCreateViSurfaceNN( HandlePointerDecoder* pSurface) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCreateViSurfaceNN"); - FieldToJson(jdata[NameReturn()], returnValue, json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameReturn()], returnValue, json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["instance"], instance, json_options_); - FieldToJson(args["pCreateInfo"], pCreateInfo, json_options_); - FieldToJson(args["pAllocator"], pAllocator, json_options_); - HandleToJson(args["pSurface"], pSurface, json_options_); + HandleToJson(args["instance"], instance, json_options); + FieldToJson(args["pCreateInfo"], pCreateInfo, json_options); + FieldToJson(args["pAllocator"], pAllocator, json_options); + HandleToJson(args["pSurface"], pSurface, json_options); WriteBlockEnd(); } @@ -6066,10 +6441,11 @@ void VulkanExportJsonConsumer::Process_vkCmdBeginConditionalRenderingEXT( StructPointerDecoder* pConditionalRenderingBegin) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCmdBeginConditionalRenderingEXT"); - FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["commandBuffer"], commandBuffer, json_options_); - FieldToJson(args["pConditionalRenderingBegin"], pConditionalRenderingBegin, json_options_); + HandleToJson(args["commandBuffer"], commandBuffer, json_options); + FieldToJson(args["pConditionalRenderingBegin"], pConditionalRenderingBegin, json_options); WriteBlockEnd(); } @@ -6078,9 +6454,10 @@ void VulkanExportJsonConsumer::Process_vkCmdEndConditionalRenderingEXT( format::HandleId commandBuffer) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCmdEndConditionalRenderingEXT"); - FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["commandBuffer"], commandBuffer, json_options_); + HandleToJson(args["commandBuffer"], commandBuffer, json_options); WriteBlockEnd(); } @@ -6092,12 +6469,13 @@ void VulkanExportJsonConsumer::Process_vkCmdSetViewportWScalingNV( StructPointerDecoder* pViewportWScalings) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCmdSetViewportWScalingNV"); - FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["commandBuffer"], commandBuffer, json_options_); - FieldToJson(args["firstViewport"], firstViewport, json_options_); - FieldToJson(args["viewportCount"], viewportCount, json_options_); - FieldToJson(args["pViewportWScalings"], pViewportWScalings, json_options_); + HandleToJson(args["commandBuffer"], commandBuffer, json_options); + FieldToJson(args["firstViewport"], firstViewport, json_options); + FieldToJson(args["viewportCount"], viewportCount, json_options); + FieldToJson(args["pViewportWScalings"], pViewportWScalings, json_options); WriteBlockEnd(); } @@ -6108,10 +6486,11 @@ void VulkanExportJsonConsumer::Process_vkReleaseDisplayEXT( format::HandleId display) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkReleaseDisplayEXT"); - FieldToJson(jdata[NameReturn()], returnValue, json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameReturn()], returnValue, json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["physicalDevice"], physicalDevice, json_options_); - HandleToJson(args["display"], display, json_options_); + HandleToJson(args["physicalDevice"], physicalDevice, json_options); + HandleToJson(args["display"], display, json_options); WriteBlockEnd(); } @@ -6123,11 +6502,12 @@ void VulkanExportJsonConsumer::Process_vkAcquireXlibDisplayEXT( format::HandleId display) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkAcquireXlibDisplayEXT"); - FieldToJson(jdata[NameReturn()], returnValue, json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameReturn()], returnValue, json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["physicalDevice"], physicalDevice, json_options_); - FieldToJson(args["dpy"], dpy, json_options_); - HandleToJson(args["display"], display, json_options_); + HandleToJson(args["physicalDevice"], physicalDevice, json_options); + FieldToJson(args["dpy"], dpy, json_options); + HandleToJson(args["display"], display, json_options); WriteBlockEnd(); } @@ -6140,12 +6520,13 @@ void VulkanExportJsonConsumer::Process_vkGetRandROutputDisplayEXT( HandlePointerDecoder* pDisplay) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkGetRandROutputDisplayEXT"); - FieldToJson(jdata[NameReturn()], returnValue, json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameReturn()], returnValue, json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["physicalDevice"], physicalDevice, json_options_); - FieldToJson(args["dpy"], dpy, json_options_); - FieldToJson(args["rrOutput"], rrOutput, json_options_); - HandleToJson(args["pDisplay"], pDisplay, json_options_); + HandleToJson(args["physicalDevice"], physicalDevice, json_options); + FieldToJson(args["dpy"], dpy, json_options); + FieldToJson(args["rrOutput"], rrOutput, json_options); + HandleToJson(args["pDisplay"], pDisplay, json_options); WriteBlockEnd(); } @@ -6157,11 +6538,12 @@ void VulkanExportJsonConsumer::Process_vkGetPhysicalDeviceSurfaceCapabilities2EX StructPointerDecoder* pSurfaceCapabilities) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkGetPhysicalDeviceSurfaceCapabilities2EXT"); - FieldToJson(jdata[NameReturn()], returnValue, json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameReturn()], returnValue, json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["physicalDevice"], physicalDevice, json_options_); - HandleToJson(args["surface"], surface, json_options_); - FieldToJson(args["pSurfaceCapabilities"], pSurfaceCapabilities, json_options_); + HandleToJson(args["physicalDevice"], physicalDevice, json_options); + HandleToJson(args["surface"], surface, json_options); + FieldToJson(args["pSurfaceCapabilities"], pSurfaceCapabilities, json_options); WriteBlockEnd(); } @@ -6173,11 +6555,12 @@ void VulkanExportJsonConsumer::Process_vkDisplayPowerControlEXT( StructPointerDecoder* pDisplayPowerInfo) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkDisplayPowerControlEXT"); - FieldToJson(jdata[NameReturn()], returnValue, json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameReturn()], returnValue, json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["device"], device, json_options_); - HandleToJson(args["display"], display, json_options_); - FieldToJson(args["pDisplayPowerInfo"], pDisplayPowerInfo, json_options_); + HandleToJson(args["device"], device, json_options); + HandleToJson(args["display"], display, json_options); + FieldToJson(args["pDisplayPowerInfo"], pDisplayPowerInfo, json_options); WriteBlockEnd(); } @@ -6190,12 +6573,13 @@ void VulkanExportJsonConsumer::Process_vkRegisterDeviceEventEXT( HandlePointerDecoder* pFence) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkRegisterDeviceEventEXT"); - FieldToJson(jdata[NameReturn()], returnValue, json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameReturn()], returnValue, json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["device"], device, json_options_); - FieldToJson(args["pDeviceEventInfo"], pDeviceEventInfo, json_options_); - FieldToJson(args["pAllocator"], pAllocator, json_options_); - HandleToJson(args["pFence"], pFence, json_options_); + HandleToJson(args["device"], device, json_options); + FieldToJson(args["pDeviceEventInfo"], pDeviceEventInfo, json_options); + FieldToJson(args["pAllocator"], pAllocator, json_options); + HandleToJson(args["pFence"], pFence, json_options); WriteBlockEnd(); } @@ -6209,13 +6593,14 @@ void VulkanExportJsonConsumer::Process_vkRegisterDisplayEventEXT( HandlePointerDecoder* pFence) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkRegisterDisplayEventEXT"); - FieldToJson(jdata[NameReturn()], returnValue, json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameReturn()], returnValue, json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["device"], device, json_options_); - HandleToJson(args["display"], display, json_options_); - FieldToJson(args["pDisplayEventInfo"], pDisplayEventInfo, json_options_); - FieldToJson(args["pAllocator"], pAllocator, json_options_); - HandleToJson(args["pFence"], pFence, json_options_); + HandleToJson(args["device"], device, json_options); + HandleToJson(args["display"], display, json_options); + FieldToJson(args["pDisplayEventInfo"], pDisplayEventInfo, json_options); + FieldToJson(args["pAllocator"], pAllocator, json_options); + HandleToJson(args["pFence"], pFence, json_options); WriteBlockEnd(); } @@ -6228,12 +6613,13 @@ void VulkanExportJsonConsumer::Process_vkGetSwapchainCounterEXT( PointerDecoder* pCounterValue) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkGetSwapchainCounterEXT"); - FieldToJson(jdata[NameReturn()], returnValue, json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameReturn()], returnValue, json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["device"], device, json_options_); - HandleToJson(args["swapchain"], swapchain, json_options_); - FieldToJson(args["counter"], counter, json_options_); - FieldToJson(args["pCounterValue"], pCounterValue, json_options_); + HandleToJson(args["device"], device, json_options); + HandleToJson(args["swapchain"], swapchain, json_options); + FieldToJson(args["counter"], counter, json_options); + FieldToJson(args["pCounterValue"], pCounterValue, json_options); WriteBlockEnd(); } @@ -6245,11 +6631,12 @@ void VulkanExportJsonConsumer::Process_vkGetRefreshCycleDurationGOOGLE( StructPointerDecoder* pDisplayTimingProperties) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkGetRefreshCycleDurationGOOGLE"); - FieldToJson(jdata[NameReturn()], returnValue, json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameReturn()], returnValue, json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["device"], device, json_options_); - HandleToJson(args["swapchain"], swapchain, json_options_); - FieldToJson(args["pDisplayTimingProperties"], pDisplayTimingProperties, json_options_); + HandleToJson(args["device"], device, json_options); + HandleToJson(args["swapchain"], swapchain, json_options); + FieldToJson(args["pDisplayTimingProperties"], pDisplayTimingProperties, json_options); WriteBlockEnd(); } @@ -6262,12 +6649,13 @@ void VulkanExportJsonConsumer::Process_vkGetPastPresentationTimingGOOGLE( StructPointerDecoder* pPresentationTimings) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkGetPastPresentationTimingGOOGLE"); - FieldToJson(jdata[NameReturn()], returnValue, json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameReturn()], returnValue, json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["device"], device, json_options_); - HandleToJson(args["swapchain"], swapchain, json_options_); - FieldToJson(args["pPresentationTimingCount"], pPresentationTimingCount, json_options_); - FieldToJson(args["pPresentationTimings"], pPresentationTimings, json_options_); + HandleToJson(args["device"], device, json_options); + HandleToJson(args["swapchain"], swapchain, json_options); + FieldToJson(args["pPresentationTimingCount"], pPresentationTimingCount, json_options); + FieldToJson(args["pPresentationTimings"], pPresentationTimings, json_options); WriteBlockEnd(); } @@ -6279,12 +6667,13 @@ void VulkanExportJsonConsumer::Process_vkCmdSetDiscardRectangleEXT( StructPointerDecoder* pDiscardRectangles) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCmdSetDiscardRectangleEXT"); - FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["commandBuffer"], commandBuffer, json_options_); - FieldToJson(args["firstDiscardRectangle"], firstDiscardRectangle, json_options_); - FieldToJson(args["discardRectangleCount"], discardRectangleCount, json_options_); - FieldToJson(args["pDiscardRectangles"], pDiscardRectangles, json_options_); + HandleToJson(args["commandBuffer"], commandBuffer, json_options); + FieldToJson(args["firstDiscardRectangle"], firstDiscardRectangle, json_options); + FieldToJson(args["discardRectangleCount"], discardRectangleCount, json_options); + FieldToJson(args["pDiscardRectangles"], pDiscardRectangles, json_options); WriteBlockEnd(); } @@ -6294,10 +6683,11 @@ void VulkanExportJsonConsumer::Process_vkCmdSetDiscardRectangleEnableEXT( VkBool32 discardRectangleEnable) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCmdSetDiscardRectangleEnableEXT"); - FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["commandBuffer"], commandBuffer, json_options_); - VkBool32ToJson(args["discardRectangleEnable"], discardRectangleEnable, json_options_); + HandleToJson(args["commandBuffer"], commandBuffer, json_options); + Bool32ToJson(args["discardRectangleEnable"], discardRectangleEnable, json_options); WriteBlockEnd(); } @@ -6307,10 +6697,11 @@ void VulkanExportJsonConsumer::Process_vkCmdSetDiscardRectangleModeEXT( VkDiscardRectangleModeEXT discardRectangleMode) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCmdSetDiscardRectangleModeEXT"); - FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["commandBuffer"], commandBuffer, json_options_); - FieldToJson(args["discardRectangleMode"], discardRectangleMode, json_options_); + HandleToJson(args["commandBuffer"], commandBuffer, json_options); + FieldToJson(args["discardRectangleMode"], discardRectangleMode, json_options); WriteBlockEnd(); } @@ -6322,11 +6713,12 @@ void VulkanExportJsonConsumer::Process_vkSetHdrMetadataEXT( StructPointerDecoder* pMetadata) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkSetHdrMetadataEXT"); + const JsonOptions& json_options = GetJsonOptions(); auto& args = jdata[NameArgs()]; - HandleToJson(args["device"], device, json_options_); - FieldToJson(args["swapchainCount"], swapchainCount, json_options_); - HandleToJson(args["pSwapchains"], pSwapchains, json_options_); - FieldToJson(args["pMetadata"], pMetadata, json_options_); + HandleToJson(args["device"], device, json_options); + FieldToJson(args["swapchainCount"], swapchainCount, json_options); + HandleToJson(args["pSwapchains"], pSwapchains, json_options); + FieldToJson(args["pMetadata"], pMetadata, json_options); WriteBlockEnd(); } @@ -6339,12 +6731,13 @@ void VulkanExportJsonConsumer::Process_vkCreateIOSSurfaceMVK( HandlePointerDecoder* pSurface) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCreateIOSSurfaceMVK"); - FieldToJson(jdata[NameReturn()], returnValue, json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameReturn()], returnValue, json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["instance"], instance, json_options_); - FieldToJson(args["pCreateInfo"], pCreateInfo, json_options_); - FieldToJson(args["pAllocator"], pAllocator, json_options_); - HandleToJson(args["pSurface"], pSurface, json_options_); + HandleToJson(args["instance"], instance, json_options); + FieldToJson(args["pCreateInfo"], pCreateInfo, json_options); + FieldToJson(args["pAllocator"], pAllocator, json_options); + HandleToJson(args["pSurface"], pSurface, json_options); WriteBlockEnd(); } @@ -6357,12 +6750,13 @@ void VulkanExportJsonConsumer::Process_vkCreateMacOSSurfaceMVK( HandlePointerDecoder* pSurface) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCreateMacOSSurfaceMVK"); - FieldToJson(jdata[NameReturn()], returnValue, json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameReturn()], returnValue, json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["instance"], instance, json_options_); - FieldToJson(args["pCreateInfo"], pCreateInfo, json_options_); - FieldToJson(args["pAllocator"], pAllocator, json_options_); - HandleToJson(args["pSurface"], pSurface, json_options_); + HandleToJson(args["instance"], instance, json_options); + FieldToJson(args["pCreateInfo"], pCreateInfo, json_options); + FieldToJson(args["pAllocator"], pAllocator, json_options); + HandleToJson(args["pSurface"], pSurface, json_options); WriteBlockEnd(); } @@ -6373,10 +6767,11 @@ void VulkanExportJsonConsumer::Process_vkSetDebugUtilsObjectNameEXT( StructPointerDecoder* pNameInfo) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkSetDebugUtilsObjectNameEXT"); - FieldToJson(jdata[NameReturn()], returnValue, json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameReturn()], returnValue, json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["device"], device, json_options_); - FieldToJson(args["pNameInfo"], pNameInfo, json_options_); + HandleToJson(args["device"], device, json_options); + FieldToJson(args["pNameInfo"], pNameInfo, json_options); WriteBlockEnd(); } @@ -6387,10 +6782,11 @@ void VulkanExportJsonConsumer::Process_vkSetDebugUtilsObjectTagEXT( StructPointerDecoder* pTagInfo) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkSetDebugUtilsObjectTagEXT"); - FieldToJson(jdata[NameReturn()], returnValue, json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameReturn()], returnValue, json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["device"], device, json_options_); - FieldToJson(args["pTagInfo"], pTagInfo, json_options_); + HandleToJson(args["device"], device, json_options); + FieldToJson(args["pTagInfo"], pTagInfo, json_options); WriteBlockEnd(); } @@ -6400,9 +6796,10 @@ void VulkanExportJsonConsumer::Process_vkQueueBeginDebugUtilsLabelEXT( StructPointerDecoder* pLabelInfo) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkQueueBeginDebugUtilsLabelEXT"); + const JsonOptions& json_options = GetJsonOptions(); auto& args = jdata[NameArgs()]; - HandleToJson(args["queue"], queue, json_options_); - FieldToJson(args["pLabelInfo"], pLabelInfo, json_options_); + HandleToJson(args["queue"], queue, json_options); + FieldToJson(args["pLabelInfo"], pLabelInfo, json_options); WriteBlockEnd(); } @@ -6411,8 +6808,9 @@ void VulkanExportJsonConsumer::Process_vkQueueEndDebugUtilsLabelEXT( format::HandleId queue) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkQueueEndDebugUtilsLabelEXT"); + const JsonOptions& json_options = GetJsonOptions(); auto& args = jdata[NameArgs()]; - HandleToJson(args["queue"], queue, json_options_); + HandleToJson(args["queue"], queue, json_options); WriteBlockEnd(); } @@ -6422,9 +6820,10 @@ void VulkanExportJsonConsumer::Process_vkQueueInsertDebugUtilsLabelEXT( StructPointerDecoder* pLabelInfo) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkQueueInsertDebugUtilsLabelEXT"); + const JsonOptions& json_options = GetJsonOptions(); auto& args = jdata[NameArgs()]; - HandleToJson(args["queue"], queue, json_options_); - FieldToJson(args["pLabelInfo"], pLabelInfo, json_options_); + HandleToJson(args["queue"], queue, json_options); + FieldToJson(args["pLabelInfo"], pLabelInfo, json_options); WriteBlockEnd(); } @@ -6434,10 +6833,11 @@ void VulkanExportJsonConsumer::Process_vkCmdBeginDebugUtilsLabelEXT( StructPointerDecoder* pLabelInfo) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCmdBeginDebugUtilsLabelEXT"); - FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["commandBuffer"], commandBuffer, json_options_); - FieldToJson(args["pLabelInfo"], pLabelInfo, json_options_); + HandleToJson(args["commandBuffer"], commandBuffer, json_options); + FieldToJson(args["pLabelInfo"], pLabelInfo, json_options); WriteBlockEnd(); } @@ -6446,9 +6846,10 @@ void VulkanExportJsonConsumer::Process_vkCmdEndDebugUtilsLabelEXT( format::HandleId commandBuffer) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCmdEndDebugUtilsLabelEXT"); - FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["commandBuffer"], commandBuffer, json_options_); + HandleToJson(args["commandBuffer"], commandBuffer, json_options); WriteBlockEnd(); } @@ -6458,10 +6859,11 @@ void VulkanExportJsonConsumer::Process_vkCmdInsertDebugUtilsLabelEXT( StructPointerDecoder* pLabelInfo) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCmdInsertDebugUtilsLabelEXT"); - FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["commandBuffer"], commandBuffer, json_options_); - FieldToJson(args["pLabelInfo"], pLabelInfo, json_options_); + HandleToJson(args["commandBuffer"], commandBuffer, json_options); + FieldToJson(args["pLabelInfo"], pLabelInfo, json_options); WriteBlockEnd(); } @@ -6474,12 +6876,13 @@ void VulkanExportJsonConsumer::Process_vkCreateDebugUtilsMessengerEXT( HandlePointerDecoder* pMessenger) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCreateDebugUtilsMessengerEXT"); - FieldToJson(jdata[NameReturn()], returnValue, json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameReturn()], returnValue, json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["instance"], instance, json_options_); - FieldToJson(args["pCreateInfo"], pCreateInfo, json_options_); - FieldToJson(args["pAllocator"], pAllocator, json_options_); - HandleToJson(args["pMessenger"], pMessenger, json_options_); + HandleToJson(args["instance"], instance, json_options); + FieldToJson(args["pCreateInfo"], pCreateInfo, json_options); + FieldToJson(args["pAllocator"], pAllocator, json_options); + HandleToJson(args["pMessenger"], pMessenger, json_options); WriteBlockEnd(); } @@ -6490,10 +6893,11 @@ void VulkanExportJsonConsumer::Process_vkDestroyDebugUtilsMessengerEXT( StructPointerDecoder* pAllocator) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkDestroyDebugUtilsMessengerEXT"); + const JsonOptions& json_options = GetJsonOptions(); auto& args = jdata[NameArgs()]; - HandleToJson(args["instance"], instance, json_options_); - HandleToJson(args["messenger"], messenger, json_options_); - FieldToJson(args["pAllocator"], pAllocator, json_options_); + HandleToJson(args["instance"], instance, json_options); + HandleToJson(args["messenger"], messenger, json_options); + FieldToJson(args["pAllocator"], pAllocator, json_options); WriteBlockEnd(); } @@ -6505,11 +6909,12 @@ void VulkanExportJsonConsumer::Process_vkSubmitDebugUtilsMessageEXT( StructPointerDecoder* pCallbackData) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkSubmitDebugUtilsMessageEXT"); + const JsonOptions& json_options = GetJsonOptions(); auto& args = jdata[NameArgs()]; - HandleToJson(args["instance"], instance, json_options_); - FieldToJson(args["messageSeverity"], messageSeverity, json_options_); - FieldToJson(VkDebugUtilsMessageTypeFlagsEXT_t(), args["messageTypes"], messageTypes, json_options_); - FieldToJson(args["pCallbackData"], pCallbackData, json_options_); + HandleToJson(args["instance"], instance, json_options); + FieldToJson(args["messageSeverity"], messageSeverity, json_options); + FieldToJson(VkDebugUtilsMessageTypeFlagsEXT_t(), args["messageTypes"], messageTypes, json_options); + FieldToJson(args["pCallbackData"], pCallbackData, json_options); WriteBlockEnd(); } @@ -6521,11 +6926,12 @@ void VulkanExportJsonConsumer::Process_vkGetAndroidHardwareBufferPropertiesANDRO StructPointerDecoder* pProperties) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkGetAndroidHardwareBufferPropertiesANDROID"); - FieldToJson(jdata[NameReturn()], returnValue, json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameReturn()], returnValue, json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["device"], device, json_options_); - FieldToJson(args["buffer"], buffer, json_options_); - FieldToJson(args["pProperties"], pProperties, json_options_); + HandleToJson(args["device"], device, json_options); + FieldToJson(args["buffer"], buffer, json_options); + FieldToJson(args["pProperties"], pProperties, json_options); WriteBlockEnd(); } @@ -6537,11 +6943,12 @@ void VulkanExportJsonConsumer::Process_vkGetMemoryAndroidHardwareBufferANDROID( PointerDecoder* pBuffer) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkGetMemoryAndroidHardwareBufferANDROID"); - FieldToJson(jdata[NameReturn()], returnValue, json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameReturn()], returnValue, json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["device"], device, json_options_); - FieldToJson(args["pInfo"], pInfo, json_options_); - FieldToJson(args["pBuffer"], pBuffer, json_options_); + HandleToJson(args["device"], device, json_options); + FieldToJson(args["pInfo"], pInfo, json_options); + FieldToJson(args["pBuffer"], pBuffer, json_options); WriteBlockEnd(); } @@ -6551,10 +6958,11 @@ void VulkanExportJsonConsumer::Process_vkCmdSetSampleLocationsEXT( StructPointerDecoder* pSampleLocationsInfo) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCmdSetSampleLocationsEXT"); - FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["commandBuffer"], commandBuffer, json_options_); - FieldToJson(args["pSampleLocationsInfo"], pSampleLocationsInfo, json_options_); + HandleToJson(args["commandBuffer"], commandBuffer, json_options); + FieldToJson(args["pSampleLocationsInfo"], pSampleLocationsInfo, json_options); WriteBlockEnd(); } @@ -6565,10 +6973,11 @@ void VulkanExportJsonConsumer::Process_vkGetPhysicalDeviceMultisamplePropertiesE StructPointerDecoder* pMultisampleProperties) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkGetPhysicalDeviceMultisamplePropertiesEXT"); + const JsonOptions& json_options = GetJsonOptions(); auto& args = jdata[NameArgs()]; - HandleToJson(args["physicalDevice"], physicalDevice, json_options_); - FieldToJson(args["samples"], samples, json_options_); - FieldToJson(args["pMultisampleProperties"], pMultisampleProperties, json_options_); + HandleToJson(args["physicalDevice"], physicalDevice, json_options); + FieldToJson(args["samples"], samples, json_options); + FieldToJson(args["pMultisampleProperties"], pMultisampleProperties, json_options); WriteBlockEnd(); } @@ -6580,11 +6989,12 @@ void VulkanExportJsonConsumer::Process_vkGetImageDrmFormatModifierPropertiesEXT( StructPointerDecoder* pProperties) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkGetImageDrmFormatModifierPropertiesEXT"); - FieldToJson(jdata[NameReturn()], returnValue, json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameReturn()], returnValue, json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["device"], device, json_options_); - HandleToJson(args["image"], image, json_options_); - FieldToJson(args["pProperties"], pProperties, json_options_); + HandleToJson(args["device"], device, json_options); + HandleToJson(args["image"], image, json_options); + FieldToJson(args["pProperties"], pProperties, json_options); WriteBlockEnd(); } @@ -6597,12 +7007,13 @@ void VulkanExportJsonConsumer::Process_vkCreateValidationCacheEXT( HandlePointerDecoder* pValidationCache) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCreateValidationCacheEXT"); - FieldToJson(jdata[NameReturn()], returnValue, json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameReturn()], returnValue, json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["device"], device, json_options_); - FieldToJson(args["pCreateInfo"], pCreateInfo, json_options_); - FieldToJson(args["pAllocator"], pAllocator, json_options_); - HandleToJson(args["pValidationCache"], pValidationCache, json_options_); + HandleToJson(args["device"], device, json_options); + FieldToJson(args["pCreateInfo"], pCreateInfo, json_options); + FieldToJson(args["pAllocator"], pAllocator, json_options); + HandleToJson(args["pValidationCache"], pValidationCache, json_options); WriteBlockEnd(); } @@ -6613,10 +7024,11 @@ void VulkanExportJsonConsumer::Process_vkDestroyValidationCacheEXT( StructPointerDecoder* pAllocator) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkDestroyValidationCacheEXT"); + const JsonOptions& json_options = GetJsonOptions(); auto& args = jdata[NameArgs()]; - HandleToJson(args["device"], device, json_options_); - HandleToJson(args["validationCache"], validationCache, json_options_); - FieldToJson(args["pAllocator"], pAllocator, json_options_); + HandleToJson(args["device"], device, json_options); + HandleToJson(args["validationCache"], validationCache, json_options); + FieldToJson(args["pAllocator"], pAllocator, json_options); WriteBlockEnd(); } @@ -6629,12 +7041,13 @@ void VulkanExportJsonConsumer::Process_vkMergeValidationCachesEXT( HandlePointerDecoder* pSrcCaches) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkMergeValidationCachesEXT"); - FieldToJson(jdata[NameReturn()], returnValue, json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameReturn()], returnValue, json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["device"], device, json_options_); - HandleToJson(args["dstCache"], dstCache, json_options_); - FieldToJson(args["srcCacheCount"], srcCacheCount, json_options_); - HandleToJson(args["pSrcCaches"], pSrcCaches, json_options_); + HandleToJson(args["device"], device, json_options); + HandleToJson(args["dstCache"], dstCache, json_options); + FieldToJson(args["srcCacheCount"], srcCacheCount, json_options); + HandleToJson(args["pSrcCaches"], pSrcCaches, json_options); WriteBlockEnd(); } @@ -6647,12 +7060,13 @@ void VulkanExportJsonConsumer::Process_vkGetValidationCacheDataEXT( PointerDecoder* pData) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkGetValidationCacheDataEXT"); - FieldToJson(jdata[NameReturn()], returnValue, json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameReturn()], returnValue, json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["device"], device, json_options_); - HandleToJson(args["validationCache"], validationCache, json_options_); - FieldToJson(args["pDataSize"], pDataSize, json_options_); - FieldToJson(args["pData"], pData, json_options_); + HandleToJson(args["device"], device, json_options); + HandleToJson(args["validationCache"], validationCache, json_options); + FieldToJson(args["pDataSize"], pDataSize, json_options); + FieldToJson(args["pData"], pData, json_options); WriteBlockEnd(); } @@ -6663,11 +7077,12 @@ void VulkanExportJsonConsumer::Process_vkCmdBindShadingRateImageNV( VkImageLayout imageLayout) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCmdBindShadingRateImageNV"); - FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["commandBuffer"], commandBuffer, json_options_); - HandleToJson(args["imageView"], imageView, json_options_); - FieldToJson(args["imageLayout"], imageLayout, json_options_); + HandleToJson(args["commandBuffer"], commandBuffer, json_options); + HandleToJson(args["imageView"], imageView, json_options); + FieldToJson(args["imageLayout"], imageLayout, json_options); WriteBlockEnd(); } @@ -6679,12 +7094,13 @@ void VulkanExportJsonConsumer::Process_vkCmdSetViewportShadingRatePaletteNV( StructPointerDecoder* pShadingRatePalettes) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCmdSetViewportShadingRatePaletteNV"); - FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["commandBuffer"], commandBuffer, json_options_); - FieldToJson(args["firstViewport"], firstViewport, json_options_); - FieldToJson(args["viewportCount"], viewportCount, json_options_); - FieldToJson(args["pShadingRatePalettes"], pShadingRatePalettes, json_options_); + HandleToJson(args["commandBuffer"], commandBuffer, json_options); + FieldToJson(args["firstViewport"], firstViewport, json_options); + FieldToJson(args["viewportCount"], viewportCount, json_options); + FieldToJson(args["pShadingRatePalettes"], pShadingRatePalettes, json_options); WriteBlockEnd(); } @@ -6696,12 +7112,13 @@ void VulkanExportJsonConsumer::Process_vkCmdSetCoarseSampleOrderNV( StructPointerDecoder* pCustomSampleOrders) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCmdSetCoarseSampleOrderNV"); - FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["commandBuffer"], commandBuffer, json_options_); - FieldToJson(args["sampleOrderType"], sampleOrderType, json_options_); - FieldToJson(args["customSampleOrderCount"], customSampleOrderCount, json_options_); - FieldToJson(args["pCustomSampleOrders"], pCustomSampleOrders, json_options_); + HandleToJson(args["commandBuffer"], commandBuffer, json_options); + FieldToJson(args["sampleOrderType"], sampleOrderType, json_options); + FieldToJson(args["customSampleOrderCount"], customSampleOrderCount, json_options); + FieldToJson(args["pCustomSampleOrders"], pCustomSampleOrders, json_options); WriteBlockEnd(); } @@ -6714,12 +7131,13 @@ void VulkanExportJsonConsumer::Process_vkCreateAccelerationStructureNV( HandlePointerDecoder* pAccelerationStructure) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCreateAccelerationStructureNV"); - FieldToJson(jdata[NameReturn()], returnValue, json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameReturn()], returnValue, json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["device"], device, json_options_); - FieldToJson(args["pCreateInfo"], pCreateInfo, json_options_); - FieldToJson(args["pAllocator"], pAllocator, json_options_); - HandleToJson(args["pAccelerationStructure"], pAccelerationStructure, json_options_); + HandleToJson(args["device"], device, json_options); + FieldToJson(args["pCreateInfo"], pCreateInfo, json_options); + FieldToJson(args["pAllocator"], pAllocator, json_options); + HandleToJson(args["pAccelerationStructure"], pAccelerationStructure, json_options); WriteBlockEnd(); } @@ -6730,10 +7148,11 @@ void VulkanExportJsonConsumer::Process_vkDestroyAccelerationStructureNV( StructPointerDecoder* pAllocator) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkDestroyAccelerationStructureNV"); + const JsonOptions& json_options = GetJsonOptions(); auto& args = jdata[NameArgs()]; - HandleToJson(args["device"], device, json_options_); - HandleToJson(args["accelerationStructure"], accelerationStructure, json_options_); - FieldToJson(args["pAllocator"], pAllocator, json_options_); + HandleToJson(args["device"], device, json_options); + HandleToJson(args["accelerationStructure"], accelerationStructure, json_options); + FieldToJson(args["pAllocator"], pAllocator, json_options); WriteBlockEnd(); } @@ -6744,10 +7163,11 @@ void VulkanExportJsonConsumer::Process_vkGetAccelerationStructureMemoryRequireme StructPointerDecoder* pMemoryRequirements) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkGetAccelerationStructureMemoryRequirementsNV"); + const JsonOptions& json_options = GetJsonOptions(); auto& args = jdata[NameArgs()]; - HandleToJson(args["device"], device, json_options_); - FieldToJson(args["pInfo"], pInfo, json_options_); - FieldToJson(args["pMemoryRequirements"], pMemoryRequirements, json_options_); + HandleToJson(args["device"], device, json_options); + FieldToJson(args["pInfo"], pInfo, json_options); + FieldToJson(args["pMemoryRequirements"], pMemoryRequirements, json_options); WriteBlockEnd(); } @@ -6759,11 +7179,12 @@ void VulkanExportJsonConsumer::Process_vkBindAccelerationStructureMemoryNV( StructPointerDecoder* pBindInfos) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkBindAccelerationStructureMemoryNV"); - FieldToJson(jdata[NameReturn()], returnValue, json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameReturn()], returnValue, json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["device"], device, json_options_); - FieldToJson(args["bindInfoCount"], bindInfoCount, json_options_); - FieldToJson(args["pBindInfos"], pBindInfos, json_options_); + HandleToJson(args["device"], device, json_options); + FieldToJson(args["bindInfoCount"], bindInfoCount, json_options); + FieldToJson(args["pBindInfos"], pBindInfos, json_options); WriteBlockEnd(); } @@ -6780,17 +7201,18 @@ void VulkanExportJsonConsumer::Process_vkCmdBuildAccelerationStructureNV( VkDeviceSize scratchOffset) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCmdBuildAccelerationStructureNV"); - FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["commandBuffer"], commandBuffer, json_options_); - FieldToJson(args["pInfo"], pInfo, json_options_); - HandleToJson(args["instanceData"], instanceData, json_options_); - FieldToJson(args["instanceOffset"], instanceOffset, json_options_); - VkBool32ToJson(args["update"], update, json_options_); - HandleToJson(args["dst"], dst, json_options_); - HandleToJson(args["src"], src, json_options_); - HandleToJson(args["scratch"], scratch, json_options_); - FieldToJson(args["scratchOffset"], scratchOffset, json_options_); + HandleToJson(args["commandBuffer"], commandBuffer, json_options); + FieldToJson(args["pInfo"], pInfo, json_options); + HandleToJson(args["instanceData"], instanceData, json_options); + FieldToJson(args["instanceOffset"], instanceOffset, json_options); + Bool32ToJson(args["update"], update, json_options); + HandleToJson(args["dst"], dst, json_options); + HandleToJson(args["src"], src, json_options); + HandleToJson(args["scratch"], scratch, json_options); + FieldToJson(args["scratchOffset"], scratchOffset, json_options); WriteBlockEnd(); } @@ -6802,12 +7224,13 @@ void VulkanExportJsonConsumer::Process_vkCmdCopyAccelerationStructureNV( VkCopyAccelerationStructureModeKHR mode) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCmdCopyAccelerationStructureNV"); - FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["commandBuffer"], commandBuffer, json_options_); - HandleToJson(args["dst"], dst, json_options_); - HandleToJson(args["src"], src, json_options_); - FieldToJson(args["mode"], mode, json_options_); + HandleToJson(args["commandBuffer"], commandBuffer, json_options); + HandleToJson(args["dst"], dst, json_options); + HandleToJson(args["src"], src, json_options); + FieldToJson(args["mode"], mode, json_options); WriteBlockEnd(); } @@ -6830,23 +7253,24 @@ void VulkanExportJsonConsumer::Process_vkCmdTraceRaysNV( uint32_t depth) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCmdTraceRaysNV"); - FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options_); - auto& args = jdata[NameArgs()]; - HandleToJson(args["commandBuffer"], commandBuffer, json_options_); - HandleToJson(args["raygenShaderBindingTableBuffer"], raygenShaderBindingTableBuffer, json_options_); - FieldToJson(args["raygenShaderBindingOffset"], raygenShaderBindingOffset, json_options_); - HandleToJson(args["missShaderBindingTableBuffer"], missShaderBindingTableBuffer, json_options_); - FieldToJson(args["missShaderBindingOffset"], missShaderBindingOffset, json_options_); - FieldToJson(args["missShaderBindingStride"], missShaderBindingStride, json_options_); - HandleToJson(args["hitShaderBindingTableBuffer"], hitShaderBindingTableBuffer, json_options_); - FieldToJson(args["hitShaderBindingOffset"], hitShaderBindingOffset, json_options_); - FieldToJson(args["hitShaderBindingStride"], hitShaderBindingStride, json_options_); - HandleToJson(args["callableShaderBindingTableBuffer"], callableShaderBindingTableBuffer, json_options_); - FieldToJson(args["callableShaderBindingOffset"], callableShaderBindingOffset, json_options_); - FieldToJson(args["callableShaderBindingStride"], callableShaderBindingStride, json_options_); - FieldToJson(args["width"], width, json_options_); - FieldToJson(args["height"], height, json_options_); - FieldToJson(args["depth"], depth, json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options); + auto& args = jdata[NameArgs()]; + HandleToJson(args["commandBuffer"], commandBuffer, json_options); + HandleToJson(args["raygenShaderBindingTableBuffer"], raygenShaderBindingTableBuffer, json_options); + FieldToJson(args["raygenShaderBindingOffset"], raygenShaderBindingOffset, json_options); + HandleToJson(args["missShaderBindingTableBuffer"], missShaderBindingTableBuffer, json_options); + FieldToJson(args["missShaderBindingOffset"], missShaderBindingOffset, json_options); + FieldToJson(args["missShaderBindingStride"], missShaderBindingStride, json_options); + HandleToJson(args["hitShaderBindingTableBuffer"], hitShaderBindingTableBuffer, json_options); + FieldToJson(args["hitShaderBindingOffset"], hitShaderBindingOffset, json_options); + FieldToJson(args["hitShaderBindingStride"], hitShaderBindingStride, json_options); + HandleToJson(args["callableShaderBindingTableBuffer"], callableShaderBindingTableBuffer, json_options); + FieldToJson(args["callableShaderBindingOffset"], callableShaderBindingOffset, json_options); + FieldToJson(args["callableShaderBindingStride"], callableShaderBindingStride, json_options); + FieldToJson(args["width"], width, json_options); + FieldToJson(args["height"], height, json_options); + FieldToJson(args["depth"], depth, json_options); WriteBlockEnd(); } @@ -6861,14 +7285,15 @@ void VulkanExportJsonConsumer::Process_vkCreateRayTracingPipelinesNV( HandlePointerDecoder* pPipelines) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCreateRayTracingPipelinesNV"); - FieldToJson(jdata[NameReturn()], returnValue, json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameReturn()], returnValue, json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["device"], device, json_options_); - HandleToJson(args["pipelineCache"], pipelineCache, json_options_); - FieldToJson(args["createInfoCount"], createInfoCount, json_options_); - FieldToJson(args["pCreateInfos"], pCreateInfos, json_options_); - FieldToJson(args["pAllocator"], pAllocator, json_options_); - HandleToJson(args["pPipelines"], pPipelines, json_options_); + HandleToJson(args["device"], device, json_options); + HandleToJson(args["pipelineCache"], pipelineCache, json_options); + FieldToJson(args["createInfoCount"], createInfoCount, json_options); + FieldToJson(args["pCreateInfos"], pCreateInfos, json_options); + FieldToJson(args["pAllocator"], pAllocator, json_options); + HandleToJson(args["pPipelines"], pPipelines, json_options); WriteBlockEnd(); } @@ -6883,14 +7308,15 @@ void VulkanExportJsonConsumer::Process_vkGetRayTracingShaderGroupHandlesKHR( PointerDecoder* pData) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkGetRayTracingShaderGroupHandlesKHR"); - FieldToJson(jdata[NameReturn()], returnValue, json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameReturn()], returnValue, json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["device"], device, json_options_); - HandleToJson(args["pipeline"], pipeline, json_options_); - FieldToJson(args["firstGroup"], firstGroup, json_options_); - FieldToJson(args["groupCount"], groupCount, json_options_); - FieldToJson(args["dataSize"], dataSize, json_options_); - FieldToJson(args["pData"], pData, json_options_); + HandleToJson(args["device"], device, json_options); + HandleToJson(args["pipeline"], pipeline, json_options); + FieldToJson(args["firstGroup"], firstGroup, json_options); + FieldToJson(args["groupCount"], groupCount, json_options); + FieldToJson(args["dataSize"], dataSize, json_options); + FieldToJson(args["pData"], pData, json_options); WriteBlockEnd(); } @@ -6905,14 +7331,15 @@ void VulkanExportJsonConsumer::Process_vkGetRayTracingShaderGroupHandlesNV( PointerDecoder* pData) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkGetRayTracingShaderGroupHandlesNV"); - FieldToJson(jdata[NameReturn()], returnValue, json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameReturn()], returnValue, json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["device"], device, json_options_); - HandleToJson(args["pipeline"], pipeline, json_options_); - FieldToJson(args["firstGroup"], firstGroup, json_options_); - FieldToJson(args["groupCount"], groupCount, json_options_); - FieldToJson(args["dataSize"], dataSize, json_options_); - FieldToJson(args["pData"], pData, json_options_); + HandleToJson(args["device"], device, json_options); + HandleToJson(args["pipeline"], pipeline, json_options); + FieldToJson(args["firstGroup"], firstGroup, json_options); + FieldToJson(args["groupCount"], groupCount, json_options); + FieldToJson(args["dataSize"], dataSize, json_options); + FieldToJson(args["pData"], pData, json_options); WriteBlockEnd(); } @@ -6925,12 +7352,13 @@ void VulkanExportJsonConsumer::Process_vkGetAccelerationStructureHandleNV( PointerDecoder* pData) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkGetAccelerationStructureHandleNV"); - FieldToJson(jdata[NameReturn()], returnValue, json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameReturn()], returnValue, json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["device"], device, json_options_); - HandleToJson(args["accelerationStructure"], accelerationStructure, json_options_); - FieldToJson(args["dataSize"], dataSize, json_options_); - FieldToJson(args["pData"], pData, json_options_); + HandleToJson(args["device"], device, json_options); + HandleToJson(args["accelerationStructure"], accelerationStructure, json_options); + FieldToJson(args["dataSize"], dataSize, json_options); + FieldToJson(args["pData"], pData, json_options); WriteBlockEnd(); } @@ -6944,14 +7372,15 @@ void VulkanExportJsonConsumer::Process_vkCmdWriteAccelerationStructuresPropertie uint32_t firstQuery) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCmdWriteAccelerationStructuresPropertiesNV"); - FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["commandBuffer"], commandBuffer, json_options_); - FieldToJson(args["accelerationStructureCount"], accelerationStructureCount, json_options_); - HandleToJson(args["pAccelerationStructures"], pAccelerationStructures, json_options_); - FieldToJson(args["queryType"], queryType, json_options_); - HandleToJson(args["queryPool"], queryPool, json_options_); - FieldToJson(args["firstQuery"], firstQuery, json_options_); + HandleToJson(args["commandBuffer"], commandBuffer, json_options); + FieldToJson(args["accelerationStructureCount"], accelerationStructureCount, json_options); + HandleToJson(args["pAccelerationStructures"], pAccelerationStructures, json_options); + FieldToJson(args["queryType"], queryType, json_options); + HandleToJson(args["queryPool"], queryPool, json_options); + FieldToJson(args["firstQuery"], firstQuery, json_options); WriteBlockEnd(); } @@ -6963,11 +7392,12 @@ void VulkanExportJsonConsumer::Process_vkCompileDeferredNV( uint32_t shader) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCompileDeferredNV"); - FieldToJson(jdata[NameReturn()], returnValue, json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameReturn()], returnValue, json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["device"], device, json_options_); - HandleToJson(args["pipeline"], pipeline, json_options_); - FieldToJson(args["shader"], shader, json_options_); + HandleToJson(args["device"], device, json_options); + HandleToJson(args["pipeline"], pipeline, json_options); + FieldToJson(args["shader"], shader, json_options); WriteBlockEnd(); } @@ -6980,12 +7410,13 @@ void VulkanExportJsonConsumer::Process_vkGetMemoryHostPointerPropertiesEXT( StructPointerDecoder* pMemoryHostPointerProperties) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkGetMemoryHostPointerPropertiesEXT"); - FieldToJson(jdata[NameReturn()], returnValue, json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameReturn()], returnValue, json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["device"], device, json_options_); - FieldToJson(args["handleType"], handleType, json_options_); - FieldToJson(args["pHostPointer"], pHostPointer, json_options_); - FieldToJson(args["pMemoryHostPointerProperties"], pMemoryHostPointerProperties, json_options_); + HandleToJson(args["device"], device, json_options); + FieldToJson(args["handleType"], handleType, json_options); + FieldToJson(args["pHostPointer"], pHostPointer, json_options); + FieldToJson(args["pMemoryHostPointerProperties"], pMemoryHostPointerProperties, json_options); WriteBlockEnd(); } @@ -6998,13 +7429,14 @@ void VulkanExportJsonConsumer::Process_vkCmdWriteBufferMarkerAMD( uint32_t marker) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCmdWriteBufferMarkerAMD"); - FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["commandBuffer"], commandBuffer, json_options_); - FieldToJson(args["pipelineStage"], pipelineStage, json_options_); - HandleToJson(args["dstBuffer"], dstBuffer, json_options_); - FieldToJson(args["dstOffset"], dstOffset, json_options_); - FieldToJson(args["marker"], marker, json_options_); + HandleToJson(args["commandBuffer"], commandBuffer, json_options); + FieldToJson(args["pipelineStage"], pipelineStage, json_options); + HandleToJson(args["dstBuffer"], dstBuffer, json_options); + FieldToJson(args["dstOffset"], dstOffset, json_options); + FieldToJson(args["marker"], marker, json_options); WriteBlockEnd(); } @@ -7016,11 +7448,12 @@ void VulkanExportJsonConsumer::Process_vkGetPhysicalDeviceCalibrateableTimeDomai PointerDecoder* pTimeDomains) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkGetPhysicalDeviceCalibrateableTimeDomainsEXT"); - FieldToJson(jdata[NameReturn()], returnValue, json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameReturn()], returnValue, json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["physicalDevice"], physicalDevice, json_options_); - FieldToJson(args["pTimeDomainCount"], pTimeDomainCount, json_options_); - FieldToJson(args["pTimeDomains"], pTimeDomains, json_options_); + HandleToJson(args["physicalDevice"], physicalDevice, json_options); + FieldToJson(args["pTimeDomainCount"], pTimeDomainCount, json_options); + FieldToJson(args["pTimeDomains"], pTimeDomains, json_options); WriteBlockEnd(); } @@ -7034,13 +7467,14 @@ void VulkanExportJsonConsumer::Process_vkGetCalibratedTimestampsEXT( PointerDecoder* pMaxDeviation) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkGetCalibratedTimestampsEXT"); - FieldToJson(jdata[NameReturn()], returnValue, json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameReturn()], returnValue, json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["device"], device, json_options_); - FieldToJson(args["timestampCount"], timestampCount, json_options_); - FieldToJson(args["pTimestampInfos"], pTimestampInfos, json_options_); - FieldToJson(args["pTimestamps"], pTimestamps, json_options_); - FieldToJson(args["pMaxDeviation"], pMaxDeviation, json_options_); + HandleToJson(args["device"], device, json_options); + FieldToJson(args["timestampCount"], timestampCount, json_options); + FieldToJson(args["pTimestampInfos"], pTimestampInfos, json_options); + FieldToJson(args["pTimestamps"], pTimestamps, json_options); + FieldToJson(args["pMaxDeviation"], pMaxDeviation, json_options); WriteBlockEnd(); } @@ -7051,11 +7485,12 @@ void VulkanExportJsonConsumer::Process_vkCmdDrawMeshTasksNV( uint32_t firstTask) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCmdDrawMeshTasksNV"); - FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["commandBuffer"], commandBuffer, json_options_); - FieldToJson(args["taskCount"], taskCount, json_options_); - FieldToJson(args["firstTask"], firstTask, json_options_); + HandleToJson(args["commandBuffer"], commandBuffer, json_options); + FieldToJson(args["taskCount"], taskCount, json_options); + FieldToJson(args["firstTask"], firstTask, json_options); WriteBlockEnd(); } @@ -7068,13 +7503,14 @@ void VulkanExportJsonConsumer::Process_vkCmdDrawMeshTasksIndirectNV( uint32_t stride) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCmdDrawMeshTasksIndirectNV"); - FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["commandBuffer"], commandBuffer, json_options_); - HandleToJson(args["buffer"], buffer, json_options_); - FieldToJson(args["offset"], offset, json_options_); - FieldToJson(args["drawCount"], drawCount, json_options_); - FieldToJson(args["stride"], stride, json_options_); + HandleToJson(args["commandBuffer"], commandBuffer, json_options); + HandleToJson(args["buffer"], buffer, json_options); + FieldToJson(args["offset"], offset, json_options); + FieldToJson(args["drawCount"], drawCount, json_options); + FieldToJson(args["stride"], stride, json_options); WriteBlockEnd(); } @@ -7089,15 +7525,16 @@ void VulkanExportJsonConsumer::Process_vkCmdDrawMeshTasksIndirectCountNV( uint32_t stride) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCmdDrawMeshTasksIndirectCountNV"); - FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["commandBuffer"], commandBuffer, json_options_); - HandleToJson(args["buffer"], buffer, json_options_); - FieldToJson(args["offset"], offset, json_options_); - HandleToJson(args["countBuffer"], countBuffer, json_options_); - FieldToJson(args["countBufferOffset"], countBufferOffset, json_options_); - FieldToJson(args["maxDrawCount"], maxDrawCount, json_options_); - FieldToJson(args["stride"], stride, json_options_); + HandleToJson(args["commandBuffer"], commandBuffer, json_options); + HandleToJson(args["buffer"], buffer, json_options); + FieldToJson(args["offset"], offset, json_options); + HandleToJson(args["countBuffer"], countBuffer, json_options); + FieldToJson(args["countBufferOffset"], countBufferOffset, json_options); + FieldToJson(args["maxDrawCount"], maxDrawCount, json_options); + FieldToJson(args["stride"], stride, json_options); WriteBlockEnd(); } @@ -7109,12 +7546,13 @@ void VulkanExportJsonConsumer::Process_vkCmdSetExclusiveScissorEnableNV( PointerDecoder* pExclusiveScissorEnables) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCmdSetExclusiveScissorEnableNV"); - FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["commandBuffer"], commandBuffer, json_options_); - FieldToJson(args["firstExclusiveScissor"], firstExclusiveScissor, json_options_); - FieldToJson(args["exclusiveScissorCount"], exclusiveScissorCount, json_options_); - VkBool32ToJson(args["pExclusiveScissorEnables"], pExclusiveScissorEnables, json_options_); + HandleToJson(args["commandBuffer"], commandBuffer, json_options); + FieldToJson(args["firstExclusiveScissor"], firstExclusiveScissor, json_options); + FieldToJson(args["exclusiveScissorCount"], exclusiveScissorCount, json_options); + Bool32ToJson(args["pExclusiveScissorEnables"], pExclusiveScissorEnables, json_options); WriteBlockEnd(); } @@ -7126,12 +7564,13 @@ void VulkanExportJsonConsumer::Process_vkCmdSetExclusiveScissorNV( StructPointerDecoder* pExclusiveScissors) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCmdSetExclusiveScissorNV"); - FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["commandBuffer"], commandBuffer, json_options_); - FieldToJson(args["firstExclusiveScissor"], firstExclusiveScissor, json_options_); - FieldToJson(args["exclusiveScissorCount"], exclusiveScissorCount, json_options_); - FieldToJson(args["pExclusiveScissors"], pExclusiveScissors, json_options_); + HandleToJson(args["commandBuffer"], commandBuffer, json_options); + FieldToJson(args["firstExclusiveScissor"], firstExclusiveScissor, json_options); + FieldToJson(args["exclusiveScissorCount"], exclusiveScissorCount, json_options); + FieldToJson(args["pExclusiveScissors"], pExclusiveScissors, json_options); WriteBlockEnd(); } @@ -7141,10 +7580,11 @@ void VulkanExportJsonConsumer::Process_vkCmdSetCheckpointNV( uint64_t pCheckpointMarker) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCmdSetCheckpointNV"); - FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["commandBuffer"], commandBuffer, json_options_); - FieldToJson(args["pCheckpointMarker"], pCheckpointMarker, json_options_); + HandleToJson(args["commandBuffer"], commandBuffer, json_options); + FieldToJson(args["pCheckpointMarker"], pCheckpointMarker, json_options); WriteBlockEnd(); } @@ -7155,10 +7595,11 @@ void VulkanExportJsonConsumer::Process_vkGetQueueCheckpointDataNV( StructPointerDecoder* pCheckpointData) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkGetQueueCheckpointDataNV"); + const JsonOptions& json_options = GetJsonOptions(); auto& args = jdata[NameArgs()]; - HandleToJson(args["queue"], queue, json_options_); - FieldToJson(args["pCheckpointDataCount"], pCheckpointDataCount, json_options_); - FieldToJson(args["pCheckpointData"], pCheckpointData, json_options_); + HandleToJson(args["queue"], queue, json_options); + FieldToJson(args["pCheckpointDataCount"], pCheckpointDataCount, json_options); + FieldToJson(args["pCheckpointData"], pCheckpointData, json_options); WriteBlockEnd(); } @@ -7169,10 +7610,11 @@ void VulkanExportJsonConsumer::Process_vkInitializePerformanceApiINTEL( StructPointerDecoder* pInitializeInfo) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkInitializePerformanceApiINTEL"); - FieldToJson(jdata[NameReturn()], returnValue, json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameReturn()], returnValue, json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["device"], device, json_options_); - FieldToJson(args["pInitializeInfo"], pInitializeInfo, json_options_); + HandleToJson(args["device"], device, json_options); + FieldToJson(args["pInitializeInfo"], pInitializeInfo, json_options); WriteBlockEnd(); } @@ -7181,8 +7623,9 @@ void VulkanExportJsonConsumer::Process_vkUninitializePerformanceApiINTEL( format::HandleId device) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkUninitializePerformanceApiINTEL"); + const JsonOptions& json_options = GetJsonOptions(); auto& args = jdata[NameArgs()]; - HandleToJson(args["device"], device, json_options_); + HandleToJson(args["device"], device, json_options); WriteBlockEnd(); } @@ -7193,11 +7636,12 @@ void VulkanExportJsonConsumer::Process_vkCmdSetPerformanceMarkerINTEL( StructPointerDecoder* pMarkerInfo) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCmdSetPerformanceMarkerINTEL"); - FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options_); - FieldToJson(jdata[NameReturn()], returnValue, json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options); + FieldToJson(jdata[NameReturn()], returnValue, json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["commandBuffer"], commandBuffer, json_options_); - FieldToJson(args["pMarkerInfo"], pMarkerInfo, json_options_); + HandleToJson(args["commandBuffer"], commandBuffer, json_options); + FieldToJson(args["pMarkerInfo"], pMarkerInfo, json_options); WriteBlockEnd(); } @@ -7208,11 +7652,12 @@ void VulkanExportJsonConsumer::Process_vkCmdSetPerformanceStreamMarkerINTEL( StructPointerDecoder* pMarkerInfo) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCmdSetPerformanceStreamMarkerINTEL"); - FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options_); - FieldToJson(jdata[NameReturn()], returnValue, json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options); + FieldToJson(jdata[NameReturn()], returnValue, json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["commandBuffer"], commandBuffer, json_options_); - FieldToJson(args["pMarkerInfo"], pMarkerInfo, json_options_); + HandleToJson(args["commandBuffer"], commandBuffer, json_options); + FieldToJson(args["pMarkerInfo"], pMarkerInfo, json_options); WriteBlockEnd(); } @@ -7223,11 +7668,12 @@ void VulkanExportJsonConsumer::Process_vkCmdSetPerformanceOverrideINTEL( StructPointerDecoder* pOverrideInfo) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCmdSetPerformanceOverrideINTEL"); - FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options_); - FieldToJson(jdata[NameReturn()], returnValue, json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options); + FieldToJson(jdata[NameReturn()], returnValue, json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["commandBuffer"], commandBuffer, json_options_); - FieldToJson(args["pOverrideInfo"], pOverrideInfo, json_options_); + HandleToJson(args["commandBuffer"], commandBuffer, json_options); + FieldToJson(args["pOverrideInfo"], pOverrideInfo, json_options); WriteBlockEnd(); } @@ -7239,11 +7685,12 @@ void VulkanExportJsonConsumer::Process_vkAcquirePerformanceConfigurationINTEL( HandlePointerDecoder* pConfiguration) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkAcquirePerformanceConfigurationINTEL"); - FieldToJson(jdata[NameReturn()], returnValue, json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameReturn()], returnValue, json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["device"], device, json_options_); - FieldToJson(args["pAcquireInfo"], pAcquireInfo, json_options_); - HandleToJson(args["pConfiguration"], pConfiguration, json_options_); + HandleToJson(args["device"], device, json_options); + FieldToJson(args["pAcquireInfo"], pAcquireInfo, json_options); + HandleToJson(args["pConfiguration"], pConfiguration, json_options); WriteBlockEnd(); } @@ -7254,10 +7701,11 @@ void VulkanExportJsonConsumer::Process_vkReleasePerformanceConfigurationINTEL( format::HandleId configuration) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkReleasePerformanceConfigurationINTEL"); - FieldToJson(jdata[NameReturn()], returnValue, json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameReturn()], returnValue, json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["device"], device, json_options_); - HandleToJson(args["configuration"], configuration, json_options_); + HandleToJson(args["device"], device, json_options); + HandleToJson(args["configuration"], configuration, json_options); WriteBlockEnd(); } @@ -7268,10 +7716,11 @@ void VulkanExportJsonConsumer::Process_vkQueueSetPerformanceConfigurationINTEL( format::HandleId configuration) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkQueueSetPerformanceConfigurationINTEL"); - FieldToJson(jdata[NameReturn()], returnValue, json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameReturn()], returnValue, json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["queue"], queue, json_options_); - HandleToJson(args["configuration"], configuration, json_options_); + HandleToJson(args["queue"], queue, json_options); + HandleToJson(args["configuration"], configuration, json_options); WriteBlockEnd(); } @@ -7283,11 +7732,12 @@ void VulkanExportJsonConsumer::Process_vkGetPerformanceParameterINTEL( StructPointerDecoder* pValue) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkGetPerformanceParameterINTEL"); - FieldToJson(jdata[NameReturn()], returnValue, json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameReturn()], returnValue, json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["device"], device, json_options_); - FieldToJson(args["parameter"], parameter, json_options_); - FieldToJson(args["pValue"], pValue, json_options_); + HandleToJson(args["device"], device, json_options); + FieldToJson(args["parameter"], parameter, json_options); + FieldToJson(args["pValue"], pValue, json_options); WriteBlockEnd(); } @@ -7298,10 +7748,11 @@ void VulkanExportJsonConsumer::Process_vkSetLocalDimmingAMD( VkBool32 localDimmingEnable) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkSetLocalDimmingAMD"); + const JsonOptions& json_options = GetJsonOptions(); auto& args = jdata[NameArgs()]; - HandleToJson(args["device"], device, json_options_); - HandleToJson(args["swapChain"], swapChain, json_options_); - VkBool32ToJson(args["localDimmingEnable"], localDimmingEnable, json_options_); + HandleToJson(args["device"], device, json_options); + HandleToJson(args["swapChain"], swapChain, json_options); + Bool32ToJson(args["localDimmingEnable"], localDimmingEnable, json_options); WriteBlockEnd(); } @@ -7314,12 +7765,13 @@ void VulkanExportJsonConsumer::Process_vkCreateImagePipeSurfaceFUCHSIA( HandlePointerDecoder* pSurface) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCreateImagePipeSurfaceFUCHSIA"); - FieldToJson(jdata[NameReturn()], returnValue, json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameReturn()], returnValue, json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["instance"], instance, json_options_); - FieldToJson(args["pCreateInfo"], pCreateInfo, json_options_); - FieldToJson(args["pAllocator"], pAllocator, json_options_); - HandleToJson(args["pSurface"], pSurface, json_options_); + HandleToJson(args["instance"], instance, json_options); + FieldToJson(args["pCreateInfo"], pCreateInfo, json_options); + FieldToJson(args["pAllocator"], pAllocator, json_options); + HandleToJson(args["pSurface"], pSurface, json_options); WriteBlockEnd(); } @@ -7332,12 +7784,13 @@ void VulkanExportJsonConsumer::Process_vkCreateMetalSurfaceEXT( HandlePointerDecoder* pSurface) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCreateMetalSurfaceEXT"); - FieldToJson(jdata[NameReturn()], returnValue, json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameReturn()], returnValue, json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["instance"], instance, json_options_); - FieldToJson(args["pCreateInfo"], pCreateInfo, json_options_); - FieldToJson(args["pAllocator"], pAllocator, json_options_); - HandleToJson(args["pSurface"], pSurface, json_options_); + HandleToJson(args["instance"], instance, json_options); + FieldToJson(args["pCreateInfo"], pCreateInfo, json_options); + FieldToJson(args["pAllocator"], pAllocator, json_options); + HandleToJson(args["pSurface"], pSurface, json_options); WriteBlockEnd(); } @@ -7348,10 +7801,11 @@ void VulkanExportJsonConsumer::Process_vkGetBufferDeviceAddressEXT( StructPointerDecoder* pInfo) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkGetBufferDeviceAddressEXT"); - FieldToJsonAsHex(jdata[NameReturn()], returnValue, json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJsonAsHex(jdata[NameReturn()], returnValue, json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["device"], device, json_options_); - FieldToJson(args["pInfo"], pInfo, json_options_); + HandleToJson(args["device"], device, json_options); + FieldToJson(args["pInfo"], pInfo, json_options); WriteBlockEnd(); } @@ -7363,11 +7817,12 @@ void VulkanExportJsonConsumer::Process_vkGetPhysicalDeviceToolPropertiesEXT( StructPointerDecoder* pToolProperties) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkGetPhysicalDeviceToolPropertiesEXT"); - FieldToJson(jdata[NameReturn()], returnValue, json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameReturn()], returnValue, json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["physicalDevice"], physicalDevice, json_options_); - FieldToJson(args["pToolCount"], pToolCount, json_options_); - FieldToJson(args["pToolProperties"], pToolProperties, json_options_); + HandleToJson(args["physicalDevice"], physicalDevice, json_options); + FieldToJson(args["pToolCount"], pToolCount, json_options); + FieldToJson(args["pToolProperties"], pToolProperties, json_options); WriteBlockEnd(); } @@ -7379,11 +7834,12 @@ void VulkanExportJsonConsumer::Process_vkGetPhysicalDeviceCooperativeMatrixPrope StructPointerDecoder* pProperties) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkGetPhysicalDeviceCooperativeMatrixPropertiesNV"); - FieldToJson(jdata[NameReturn()], returnValue, json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameReturn()], returnValue, json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["physicalDevice"], physicalDevice, json_options_); - FieldToJson(args["pPropertyCount"], pPropertyCount, json_options_); - FieldToJson(args["pProperties"], pProperties, json_options_); + HandleToJson(args["physicalDevice"], physicalDevice, json_options); + FieldToJson(args["pPropertyCount"], pPropertyCount, json_options); + FieldToJson(args["pProperties"], pProperties, json_options); WriteBlockEnd(); } @@ -7395,11 +7851,12 @@ void VulkanExportJsonConsumer::Process_vkGetPhysicalDeviceSupportedFramebufferMi StructPointerDecoder* pCombinations) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV"); - FieldToJson(jdata[NameReturn()], returnValue, json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameReturn()], returnValue, json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["physicalDevice"], physicalDevice, json_options_); - FieldToJson(args["pCombinationCount"], pCombinationCount, json_options_); - FieldToJson(args["pCombinations"], pCombinations, json_options_); + HandleToJson(args["physicalDevice"], physicalDevice, json_options); + FieldToJson(args["pCombinationCount"], pCombinationCount, json_options); + FieldToJson(args["pCombinations"], pCombinations, json_options); WriteBlockEnd(); } @@ -7412,12 +7869,13 @@ void VulkanExportJsonConsumer::Process_vkGetPhysicalDeviceSurfacePresentModes2EX PointerDecoder* pPresentModes) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkGetPhysicalDeviceSurfacePresentModes2EXT"); - FieldToJson(jdata[NameReturn()], returnValue, json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameReturn()], returnValue, json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["physicalDevice"], physicalDevice, json_options_); - FieldToJson(args["pSurfaceInfo"], pSurfaceInfo, json_options_); - FieldToJson(args["pPresentModeCount"], pPresentModeCount, json_options_); - FieldToJson(args["pPresentModes"], pPresentModes, json_options_); + HandleToJson(args["physicalDevice"], physicalDevice, json_options); + FieldToJson(args["pSurfaceInfo"], pSurfaceInfo, json_options); + FieldToJson(args["pPresentModeCount"], pPresentModeCount, json_options); + FieldToJson(args["pPresentModes"], pPresentModes, json_options); WriteBlockEnd(); } @@ -7428,10 +7886,11 @@ void VulkanExportJsonConsumer::Process_vkAcquireFullScreenExclusiveModeEXT( format::HandleId swapchain) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkAcquireFullScreenExclusiveModeEXT"); - FieldToJson(jdata[NameReturn()], returnValue, json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameReturn()], returnValue, json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["device"], device, json_options_); - HandleToJson(args["swapchain"], swapchain, json_options_); + HandleToJson(args["device"], device, json_options); + HandleToJson(args["swapchain"], swapchain, json_options); WriteBlockEnd(); } @@ -7442,10 +7901,11 @@ void VulkanExportJsonConsumer::Process_vkReleaseFullScreenExclusiveModeEXT( format::HandleId swapchain) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkReleaseFullScreenExclusiveModeEXT"); - FieldToJson(jdata[NameReturn()], returnValue, json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameReturn()], returnValue, json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["device"], device, json_options_); - HandleToJson(args["swapchain"], swapchain, json_options_); + HandleToJson(args["device"], device, json_options); + HandleToJson(args["swapchain"], swapchain, json_options); WriteBlockEnd(); } @@ -7457,11 +7917,12 @@ void VulkanExportJsonConsumer::Process_vkGetDeviceGroupSurfacePresentModes2EXT( PointerDecoder* pModes) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkGetDeviceGroupSurfacePresentModes2EXT"); - FieldToJson(jdata[NameReturn()], returnValue, json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameReturn()], returnValue, json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["device"], device, json_options_); - FieldToJson(args["pSurfaceInfo"], pSurfaceInfo, json_options_); - FieldToJson(args["pModes"], pModes, json_options_); + HandleToJson(args["device"], device, json_options); + FieldToJson(args["pSurfaceInfo"], pSurfaceInfo, json_options); + FieldToJson(args["pModes"], pModes, json_options); WriteBlockEnd(); } @@ -7474,12 +7935,13 @@ void VulkanExportJsonConsumer::Process_vkCreateHeadlessSurfaceEXT( HandlePointerDecoder* pSurface) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCreateHeadlessSurfaceEXT"); - FieldToJson(jdata[NameReturn()], returnValue, json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameReturn()], returnValue, json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["instance"], instance, json_options_); - FieldToJson(args["pCreateInfo"], pCreateInfo, json_options_); - FieldToJson(args["pAllocator"], pAllocator, json_options_); - HandleToJson(args["pSurface"], pSurface, json_options_); + HandleToJson(args["instance"], instance, json_options); + FieldToJson(args["pCreateInfo"], pCreateInfo, json_options); + FieldToJson(args["pAllocator"], pAllocator, json_options); + HandleToJson(args["pSurface"], pSurface, json_options); WriteBlockEnd(); } @@ -7490,11 +7952,12 @@ void VulkanExportJsonConsumer::Process_vkCmdSetLineStippleEXT( uint16_t lineStipplePattern) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCmdSetLineStippleEXT"); - FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["commandBuffer"], commandBuffer, json_options_); - FieldToJson(args["lineStippleFactor"], lineStippleFactor, json_options_); - FieldToJson(args["lineStipplePattern"], lineStipplePattern, json_options_); + HandleToJson(args["commandBuffer"], commandBuffer, json_options); + FieldToJson(args["lineStippleFactor"], lineStippleFactor, json_options); + FieldToJson(args["lineStipplePattern"], lineStipplePattern, json_options); WriteBlockEnd(); } @@ -7506,11 +7969,12 @@ void VulkanExportJsonConsumer::Process_vkResetQueryPoolEXT( uint32_t queryCount) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkResetQueryPoolEXT"); + const JsonOptions& json_options = GetJsonOptions(); auto& args = jdata[NameArgs()]; - HandleToJson(args["device"], device, json_options_); - HandleToJson(args["queryPool"], queryPool, json_options_); - FieldToJson(args["firstQuery"], firstQuery, json_options_); - FieldToJson(args["queryCount"], queryCount, json_options_); + HandleToJson(args["device"], device, json_options); + HandleToJson(args["queryPool"], queryPool, json_options); + FieldToJson(args["firstQuery"], firstQuery, json_options); + FieldToJson(args["queryCount"], queryCount, json_options); WriteBlockEnd(); } @@ -7520,10 +7984,11 @@ void VulkanExportJsonConsumer::Process_vkCmdSetCullModeEXT( VkCullModeFlags cullMode) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCmdSetCullModeEXT"); - FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["commandBuffer"], commandBuffer, json_options_); - FieldToJson(VkCullModeFlags_t(), args["cullMode"], cullMode, json_options_); + HandleToJson(args["commandBuffer"], commandBuffer, json_options); + FieldToJson(VkCullModeFlags_t(), args["cullMode"], cullMode, json_options); WriteBlockEnd(); } @@ -7533,10 +7998,11 @@ void VulkanExportJsonConsumer::Process_vkCmdSetFrontFaceEXT( VkFrontFace frontFace) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCmdSetFrontFaceEXT"); - FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["commandBuffer"], commandBuffer, json_options_); - FieldToJson(args["frontFace"], frontFace, json_options_); + HandleToJson(args["commandBuffer"], commandBuffer, json_options); + FieldToJson(args["frontFace"], frontFace, json_options); WriteBlockEnd(); } @@ -7546,10 +8012,11 @@ void VulkanExportJsonConsumer::Process_vkCmdSetPrimitiveTopologyEXT( VkPrimitiveTopology primitiveTopology) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCmdSetPrimitiveTopologyEXT"); - FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["commandBuffer"], commandBuffer, json_options_); - FieldToJson(args["primitiveTopology"], primitiveTopology, json_options_); + HandleToJson(args["commandBuffer"], commandBuffer, json_options); + FieldToJson(args["primitiveTopology"], primitiveTopology, json_options); WriteBlockEnd(); } @@ -7560,11 +8027,12 @@ void VulkanExportJsonConsumer::Process_vkCmdSetViewportWithCountEXT( StructPointerDecoder* pViewports) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCmdSetViewportWithCountEXT"); - FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["commandBuffer"], commandBuffer, json_options_); - FieldToJson(args["viewportCount"], viewportCount, json_options_); - FieldToJson(args["pViewports"], pViewports, json_options_); + HandleToJson(args["commandBuffer"], commandBuffer, json_options); + FieldToJson(args["viewportCount"], viewportCount, json_options); + FieldToJson(args["pViewports"], pViewports, json_options); WriteBlockEnd(); } @@ -7575,11 +8043,12 @@ void VulkanExportJsonConsumer::Process_vkCmdSetScissorWithCountEXT( StructPointerDecoder* pScissors) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCmdSetScissorWithCountEXT"); - FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["commandBuffer"], commandBuffer, json_options_); - FieldToJson(args["scissorCount"], scissorCount, json_options_); - FieldToJson(args["pScissors"], pScissors, json_options_); + HandleToJson(args["commandBuffer"], commandBuffer, json_options); + FieldToJson(args["scissorCount"], scissorCount, json_options); + FieldToJson(args["pScissors"], pScissors, json_options); WriteBlockEnd(); } @@ -7594,15 +8063,16 @@ void VulkanExportJsonConsumer::Process_vkCmdBindVertexBuffers2EXT( PointerDecoder* pStrides) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCmdBindVertexBuffers2EXT"); - FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["commandBuffer"], commandBuffer, json_options_); - FieldToJson(args["firstBinding"], firstBinding, json_options_); - FieldToJson(args["bindingCount"], bindingCount, json_options_); - HandleToJson(args["pBuffers"], pBuffers, json_options_); - FieldToJson(args["pOffsets"], pOffsets, json_options_); - FieldToJson(args["pSizes"], pSizes, json_options_); - FieldToJson(args["pStrides"], pStrides, json_options_); + HandleToJson(args["commandBuffer"], commandBuffer, json_options); + FieldToJson(args["firstBinding"], firstBinding, json_options); + FieldToJson(args["bindingCount"], bindingCount, json_options); + HandleToJson(args["pBuffers"], pBuffers, json_options); + FieldToJson(args["pOffsets"], pOffsets, json_options); + FieldToJson(args["pSizes"], pSizes, json_options); + FieldToJson(args["pStrides"], pStrides, json_options); WriteBlockEnd(); } @@ -7612,10 +8082,11 @@ void VulkanExportJsonConsumer::Process_vkCmdSetDepthTestEnableEXT( VkBool32 depthTestEnable) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCmdSetDepthTestEnableEXT"); - FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["commandBuffer"], commandBuffer, json_options_); - VkBool32ToJson(args["depthTestEnable"], depthTestEnable, json_options_); + HandleToJson(args["commandBuffer"], commandBuffer, json_options); + Bool32ToJson(args["depthTestEnable"], depthTestEnable, json_options); WriteBlockEnd(); } @@ -7625,10 +8096,11 @@ void VulkanExportJsonConsumer::Process_vkCmdSetDepthWriteEnableEXT( VkBool32 depthWriteEnable) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCmdSetDepthWriteEnableEXT"); - FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["commandBuffer"], commandBuffer, json_options_); - VkBool32ToJson(args["depthWriteEnable"], depthWriteEnable, json_options_); + HandleToJson(args["commandBuffer"], commandBuffer, json_options); + Bool32ToJson(args["depthWriteEnable"], depthWriteEnable, json_options); WriteBlockEnd(); } @@ -7638,10 +8110,11 @@ void VulkanExportJsonConsumer::Process_vkCmdSetDepthCompareOpEXT( VkCompareOp depthCompareOp) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCmdSetDepthCompareOpEXT"); - FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["commandBuffer"], commandBuffer, json_options_); - FieldToJson(args["depthCompareOp"], depthCompareOp, json_options_); + HandleToJson(args["commandBuffer"], commandBuffer, json_options); + FieldToJson(args["depthCompareOp"], depthCompareOp, json_options); WriteBlockEnd(); } @@ -7651,10 +8124,11 @@ void VulkanExportJsonConsumer::Process_vkCmdSetDepthBoundsTestEnableEXT( VkBool32 depthBoundsTestEnable) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCmdSetDepthBoundsTestEnableEXT"); - FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["commandBuffer"], commandBuffer, json_options_); - VkBool32ToJson(args["depthBoundsTestEnable"], depthBoundsTestEnable, json_options_); + HandleToJson(args["commandBuffer"], commandBuffer, json_options); + Bool32ToJson(args["depthBoundsTestEnable"], depthBoundsTestEnable, json_options); WriteBlockEnd(); } @@ -7664,10 +8138,11 @@ void VulkanExportJsonConsumer::Process_vkCmdSetStencilTestEnableEXT( VkBool32 stencilTestEnable) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCmdSetStencilTestEnableEXT"); - FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["commandBuffer"], commandBuffer, json_options_); - VkBool32ToJson(args["stencilTestEnable"], stencilTestEnable, json_options_); + HandleToJson(args["commandBuffer"], commandBuffer, json_options); + Bool32ToJson(args["stencilTestEnable"], stencilTestEnable, json_options); WriteBlockEnd(); } @@ -7681,14 +8156,15 @@ void VulkanExportJsonConsumer::Process_vkCmdSetStencilOpEXT( VkCompareOp compareOp) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCmdSetStencilOpEXT"); - FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["commandBuffer"], commandBuffer, json_options_); - FieldToJson(VkStencilFaceFlags_t(), args["faceMask"], faceMask, json_options_); - FieldToJson(args["failOp"], failOp, json_options_); - FieldToJson(args["passOp"], passOp, json_options_); - FieldToJson(args["depthFailOp"], depthFailOp, json_options_); - FieldToJson(args["compareOp"], compareOp, json_options_); + HandleToJson(args["commandBuffer"], commandBuffer, json_options); + FieldToJson(VkStencilFaceFlags_t(), args["faceMask"], faceMask, json_options); + FieldToJson(args["failOp"], failOp, json_options); + FieldToJson(args["passOp"], passOp, json_options); + FieldToJson(args["depthFailOp"], depthFailOp, json_options); + FieldToJson(args["compareOp"], compareOp, json_options); WriteBlockEnd(); } @@ -7699,10 +8175,11 @@ void VulkanExportJsonConsumer::Process_vkCopyMemoryToImageEXT( StructPointerDecoder* pCopyMemoryToImageInfo) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCopyMemoryToImageEXT"); - FieldToJson(jdata[NameReturn()], returnValue, json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameReturn()], returnValue, json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["device"], device, json_options_); - FieldToJson(args["pCopyMemoryToImageInfo"], pCopyMemoryToImageInfo, json_options_); + HandleToJson(args["device"], device, json_options); + FieldToJson(args["pCopyMemoryToImageInfo"], pCopyMemoryToImageInfo, json_options); WriteBlockEnd(); } @@ -7713,10 +8190,11 @@ void VulkanExportJsonConsumer::Process_vkCopyImageToMemoryEXT( StructPointerDecoder* pCopyImageToMemoryInfo) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCopyImageToMemoryEXT"); - FieldToJson(jdata[NameReturn()], returnValue, json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameReturn()], returnValue, json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["device"], device, json_options_); - FieldToJson(args["pCopyImageToMemoryInfo"], pCopyImageToMemoryInfo, json_options_); + HandleToJson(args["device"], device, json_options); + FieldToJson(args["pCopyImageToMemoryInfo"], pCopyImageToMemoryInfo, json_options); WriteBlockEnd(); } @@ -7727,10 +8205,11 @@ void VulkanExportJsonConsumer::Process_vkCopyImageToImageEXT( StructPointerDecoder* pCopyImageToImageInfo) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCopyImageToImageEXT"); - FieldToJson(jdata[NameReturn()], returnValue, json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameReturn()], returnValue, json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["device"], device, json_options_); - FieldToJson(args["pCopyImageToImageInfo"], pCopyImageToImageInfo, json_options_); + HandleToJson(args["device"], device, json_options); + FieldToJson(args["pCopyImageToImageInfo"], pCopyImageToImageInfo, json_options); WriteBlockEnd(); } @@ -7742,11 +8221,12 @@ void VulkanExportJsonConsumer::Process_vkTransitionImageLayoutEXT( StructPointerDecoder* pTransitions) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkTransitionImageLayoutEXT"); - FieldToJson(jdata[NameReturn()], returnValue, json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameReturn()], returnValue, json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["device"], device, json_options_); - FieldToJson(args["transitionCount"], transitionCount, json_options_); - FieldToJson(args["pTransitions"], pTransitions, json_options_); + HandleToJson(args["device"], device, json_options); + FieldToJson(args["transitionCount"], transitionCount, json_options); + FieldToJson(args["pTransitions"], pTransitions, json_options); WriteBlockEnd(); } @@ -7758,11 +8238,12 @@ void VulkanExportJsonConsumer::Process_vkGetImageSubresourceLayout2EXT( StructPointerDecoder* pLayout) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkGetImageSubresourceLayout2EXT"); + const JsonOptions& json_options = GetJsonOptions(); auto& args = jdata[NameArgs()]; - HandleToJson(args["device"], device, json_options_); - HandleToJson(args["image"], image, json_options_); - FieldToJson(args["pSubresource"], pSubresource, json_options_); - FieldToJson(args["pLayout"], pLayout, json_options_); + HandleToJson(args["device"], device, json_options); + HandleToJson(args["image"], image, json_options); + FieldToJson(args["pSubresource"], pSubresource, json_options); + FieldToJson(args["pLayout"], pLayout, json_options); WriteBlockEnd(); } @@ -7773,10 +8254,11 @@ void VulkanExportJsonConsumer::Process_vkReleaseSwapchainImagesEXT( StructPointerDecoder* pReleaseInfo) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkReleaseSwapchainImagesEXT"); - FieldToJson(jdata[NameReturn()], returnValue, json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameReturn()], returnValue, json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["device"], device, json_options_); - FieldToJson(args["pReleaseInfo"], pReleaseInfo, json_options_); + HandleToJson(args["device"], device, json_options); + FieldToJson(args["pReleaseInfo"], pReleaseInfo, json_options); WriteBlockEnd(); } @@ -7787,10 +8269,11 @@ void VulkanExportJsonConsumer::Process_vkGetGeneratedCommandsMemoryRequirementsN StructPointerDecoder* pMemoryRequirements) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkGetGeneratedCommandsMemoryRequirementsNV"); + const JsonOptions& json_options = GetJsonOptions(); auto& args = jdata[NameArgs()]; - HandleToJson(args["device"], device, json_options_); - FieldToJson(args["pInfo"], pInfo, json_options_); - FieldToJson(args["pMemoryRequirements"], pMemoryRequirements, json_options_); + HandleToJson(args["device"], device, json_options); + FieldToJson(args["pInfo"], pInfo, json_options); + FieldToJson(args["pMemoryRequirements"], pMemoryRequirements, json_options); WriteBlockEnd(); } @@ -7800,10 +8283,11 @@ void VulkanExportJsonConsumer::Process_vkCmdPreprocessGeneratedCommandsNV( StructPointerDecoder* pGeneratedCommandsInfo) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCmdPreprocessGeneratedCommandsNV"); - FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["commandBuffer"], commandBuffer, json_options_); - FieldToJson(args["pGeneratedCommandsInfo"], pGeneratedCommandsInfo, json_options_); + HandleToJson(args["commandBuffer"], commandBuffer, json_options); + FieldToJson(args["pGeneratedCommandsInfo"], pGeneratedCommandsInfo, json_options); WriteBlockEnd(); } @@ -7814,11 +8298,12 @@ void VulkanExportJsonConsumer::Process_vkCmdExecuteGeneratedCommandsNV( StructPointerDecoder* pGeneratedCommandsInfo) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCmdExecuteGeneratedCommandsNV"); - FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["commandBuffer"], commandBuffer, json_options_); - VkBool32ToJson(args["isPreprocessed"], isPreprocessed, json_options_); - FieldToJson(args["pGeneratedCommandsInfo"], pGeneratedCommandsInfo, json_options_); + HandleToJson(args["commandBuffer"], commandBuffer, json_options); + Bool32ToJson(args["isPreprocessed"], isPreprocessed, json_options); + FieldToJson(args["pGeneratedCommandsInfo"], pGeneratedCommandsInfo, json_options); WriteBlockEnd(); } @@ -7830,12 +8315,13 @@ void VulkanExportJsonConsumer::Process_vkCmdBindPipelineShaderGroupNV( uint32_t groupIndex) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCmdBindPipelineShaderGroupNV"); - FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["commandBuffer"], commandBuffer, json_options_); - FieldToJson(args["pipelineBindPoint"], pipelineBindPoint, json_options_); - HandleToJson(args["pipeline"], pipeline, json_options_); - FieldToJson(args["groupIndex"], groupIndex, json_options_); + HandleToJson(args["commandBuffer"], commandBuffer, json_options); + FieldToJson(args["pipelineBindPoint"], pipelineBindPoint, json_options); + HandleToJson(args["pipeline"], pipeline, json_options); + FieldToJson(args["groupIndex"], groupIndex, json_options); WriteBlockEnd(); } @@ -7848,12 +8334,13 @@ void VulkanExportJsonConsumer::Process_vkCreateIndirectCommandsLayoutNV( HandlePointerDecoder* pIndirectCommandsLayout) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCreateIndirectCommandsLayoutNV"); - FieldToJson(jdata[NameReturn()], returnValue, json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameReturn()], returnValue, json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["device"], device, json_options_); - FieldToJson(args["pCreateInfo"], pCreateInfo, json_options_); - FieldToJson(args["pAllocator"], pAllocator, json_options_); - HandleToJson(args["pIndirectCommandsLayout"], pIndirectCommandsLayout, json_options_); + HandleToJson(args["device"], device, json_options); + FieldToJson(args["pCreateInfo"], pCreateInfo, json_options); + FieldToJson(args["pAllocator"], pAllocator, json_options); + HandleToJson(args["pIndirectCommandsLayout"], pIndirectCommandsLayout, json_options); WriteBlockEnd(); } @@ -7864,10 +8351,11 @@ void VulkanExportJsonConsumer::Process_vkDestroyIndirectCommandsLayoutNV( StructPointerDecoder* pAllocator) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkDestroyIndirectCommandsLayoutNV"); + const JsonOptions& json_options = GetJsonOptions(); auto& args = jdata[NameArgs()]; - HandleToJson(args["device"], device, json_options_); - HandleToJson(args["indirectCommandsLayout"], indirectCommandsLayout, json_options_); - FieldToJson(args["pAllocator"], pAllocator, json_options_); + HandleToJson(args["device"], device, json_options); + HandleToJson(args["indirectCommandsLayout"], indirectCommandsLayout, json_options); + FieldToJson(args["pAllocator"], pAllocator, json_options); WriteBlockEnd(); } @@ -7877,10 +8365,11 @@ void VulkanExportJsonConsumer::Process_vkCmdSetDepthBias2EXT( StructPointerDecoder* pDepthBiasInfo) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCmdSetDepthBias2EXT"); - FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["commandBuffer"], commandBuffer, json_options_); - FieldToJson(args["pDepthBiasInfo"], pDepthBiasInfo, json_options_); + HandleToJson(args["commandBuffer"], commandBuffer, json_options); + FieldToJson(args["pDepthBiasInfo"], pDepthBiasInfo, json_options); WriteBlockEnd(); } @@ -7892,11 +8381,12 @@ void VulkanExportJsonConsumer::Process_vkAcquireDrmDisplayEXT( format::HandleId display) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkAcquireDrmDisplayEXT"); - FieldToJson(jdata[NameReturn()], returnValue, json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameReturn()], returnValue, json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["physicalDevice"], physicalDevice, json_options_); - FieldToJson(args["drmFd"], drmFd, json_options_); - HandleToJson(args["display"], display, json_options_); + HandleToJson(args["physicalDevice"], physicalDevice, json_options); + FieldToJson(args["drmFd"], drmFd, json_options); + HandleToJson(args["display"], display, json_options); WriteBlockEnd(); } @@ -7909,12 +8399,13 @@ void VulkanExportJsonConsumer::Process_vkGetDrmDisplayEXT( HandlePointerDecoder* display) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkGetDrmDisplayEXT"); - FieldToJson(jdata[NameReturn()], returnValue, json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameReturn()], returnValue, json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["physicalDevice"], physicalDevice, json_options_); - FieldToJson(args["drmFd"], drmFd, json_options_); - FieldToJson(args["connectorId"], connectorId, json_options_); - HandleToJson(args["display"], display, json_options_); + HandleToJson(args["physicalDevice"], physicalDevice, json_options); + FieldToJson(args["drmFd"], drmFd, json_options); + FieldToJson(args["connectorId"], connectorId, json_options); + HandleToJson(args["display"], display, json_options); WriteBlockEnd(); } @@ -7927,12 +8418,13 @@ void VulkanExportJsonConsumer::Process_vkCreatePrivateDataSlotEXT( HandlePointerDecoder* pPrivateDataSlot) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCreatePrivateDataSlotEXT"); - FieldToJson(jdata[NameReturn()], returnValue, json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameReturn()], returnValue, json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["device"], device, json_options_); - FieldToJson(args["pCreateInfo"], pCreateInfo, json_options_); - FieldToJson(args["pAllocator"], pAllocator, json_options_); - HandleToJson(args["pPrivateDataSlot"], pPrivateDataSlot, json_options_); + HandleToJson(args["device"], device, json_options); + FieldToJson(args["pCreateInfo"], pCreateInfo, json_options); + FieldToJson(args["pAllocator"], pAllocator, json_options); + HandleToJson(args["pPrivateDataSlot"], pPrivateDataSlot, json_options); WriteBlockEnd(); } @@ -7943,10 +8435,11 @@ void VulkanExportJsonConsumer::Process_vkDestroyPrivateDataSlotEXT( StructPointerDecoder* pAllocator) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkDestroyPrivateDataSlotEXT"); + const JsonOptions& json_options = GetJsonOptions(); auto& args = jdata[NameArgs()]; - HandleToJson(args["device"], device, json_options_); - HandleToJson(args["privateDataSlot"], privateDataSlot, json_options_); - FieldToJson(args["pAllocator"], pAllocator, json_options_); + HandleToJson(args["device"], device, json_options); + HandleToJson(args["privateDataSlot"], privateDataSlot, json_options); + FieldToJson(args["pAllocator"], pAllocator, json_options); WriteBlockEnd(); } @@ -7960,13 +8453,14 @@ void VulkanExportJsonConsumer::Process_vkSetPrivateDataEXT( uint64_t data) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkSetPrivateDataEXT"); - FieldToJson(jdata[NameReturn()], returnValue, json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameReturn()], returnValue, json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["device"], device, json_options_); - FieldToJson(args["objectType"], objectType, json_options_); - HandleToJson(args["objectHandle"], objectHandle, json_options_); - HandleToJson(args["privateDataSlot"], privateDataSlot, json_options_); - FieldToJson(args["data"], data, json_options_); + HandleToJson(args["device"], device, json_options); + FieldToJson(args["objectType"], objectType, json_options); + HandleToJson(args["objectHandle"], objectHandle, json_options); + HandleToJson(args["privateDataSlot"], privateDataSlot, json_options); + FieldToJson(args["data"], data, json_options); WriteBlockEnd(); } @@ -7979,12 +8473,13 @@ void VulkanExportJsonConsumer::Process_vkGetPrivateDataEXT( PointerDecoder* pData) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkGetPrivateDataEXT"); + const JsonOptions& json_options = GetJsonOptions(); auto& args = jdata[NameArgs()]; - HandleToJson(args["device"], device, json_options_); - FieldToJson(args["objectType"], objectType, json_options_); - HandleToJson(args["objectHandle"], objectHandle, json_options_); - HandleToJson(args["privateDataSlot"], privateDataSlot, json_options_); - FieldToJson(args["pData"], pData, json_options_); + HandleToJson(args["device"], device, json_options); + FieldToJson(args["objectType"], objectType, json_options); + HandleToJson(args["objectHandle"], objectHandle, json_options); + HandleToJson(args["privateDataSlot"], privateDataSlot, json_options); + FieldToJson(args["pData"], pData, json_options); WriteBlockEnd(); } @@ -7995,11 +8490,12 @@ void VulkanExportJsonConsumer::Process_vkCmdSetFragmentShadingRateEnumNV( PointerDecoder* combinerOps) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCmdSetFragmentShadingRateEnumNV"); - FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["commandBuffer"], commandBuffer, json_options_); - FieldToJson(args["shadingRate"], shadingRate, json_options_); - FieldToJson(args["combinerOps"], combinerOps, json_options_); + HandleToJson(args["commandBuffer"], commandBuffer, json_options); + FieldToJson(args["shadingRate"], shadingRate, json_options); + FieldToJson(args["combinerOps"], combinerOps, json_options); WriteBlockEnd(); } @@ -8011,11 +8507,12 @@ void VulkanExportJsonConsumer::Process_vkGetDeviceFaultInfoEXT( StructPointerDecoder* pFaultInfo) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkGetDeviceFaultInfoEXT"); - FieldToJson(jdata[NameReturn()], returnValue, json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameReturn()], returnValue, json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["device"], device, json_options_); - FieldToJson(args["pFaultCounts"], pFaultCounts, json_options_); - FieldToJson(args["pFaultInfo"], pFaultInfo, json_options_); + HandleToJson(args["device"], device, json_options); + FieldToJson(args["pFaultCounts"], pFaultCounts, json_options); + FieldToJson(args["pFaultInfo"], pFaultInfo, json_options); WriteBlockEnd(); } @@ -8026,10 +8523,11 @@ void VulkanExportJsonConsumer::Process_vkAcquireWinrtDisplayNV( format::HandleId display) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkAcquireWinrtDisplayNV"); - FieldToJson(jdata[NameReturn()], returnValue, json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameReturn()], returnValue, json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["physicalDevice"], physicalDevice, json_options_); - HandleToJson(args["display"], display, json_options_); + HandleToJson(args["physicalDevice"], physicalDevice, json_options); + HandleToJson(args["display"], display, json_options); WriteBlockEnd(); } @@ -8041,11 +8539,12 @@ void VulkanExportJsonConsumer::Process_vkGetWinrtDisplayNV( HandlePointerDecoder* pDisplay) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkGetWinrtDisplayNV"); - FieldToJson(jdata[NameReturn()], returnValue, json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameReturn()], returnValue, json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["physicalDevice"], physicalDevice, json_options_); - FieldToJson(args["deviceRelativeId"], deviceRelativeId, json_options_); - HandleToJson(args["pDisplay"], pDisplay, json_options_); + HandleToJson(args["physicalDevice"], physicalDevice, json_options); + FieldToJson(args["deviceRelativeId"], deviceRelativeId, json_options); + HandleToJson(args["pDisplay"], pDisplay, json_options); WriteBlockEnd(); } @@ -8058,12 +8557,13 @@ void VulkanExportJsonConsumer::Process_vkCreateDirectFBSurfaceEXT( HandlePointerDecoder* pSurface) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCreateDirectFBSurfaceEXT"); - FieldToJson(jdata[NameReturn()], returnValue, json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameReturn()], returnValue, json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["instance"], instance, json_options_); - FieldToJson(args["pCreateInfo"], pCreateInfo, json_options_); - FieldToJson(args["pAllocator"], pAllocator, json_options_); - HandleToJson(args["pSurface"], pSurface, json_options_); + HandleToJson(args["instance"], instance, json_options); + FieldToJson(args["pCreateInfo"], pCreateInfo, json_options); + FieldToJson(args["pAllocator"], pAllocator, json_options); + HandleToJson(args["pSurface"], pSurface, json_options); WriteBlockEnd(); } @@ -8075,11 +8575,12 @@ void VulkanExportJsonConsumer::Process_vkGetPhysicalDeviceDirectFBPresentationSu uint64_t dfb) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkGetPhysicalDeviceDirectFBPresentationSupportEXT"); - VkBool32ToJson(jdata[NameReturn()], returnValue, json_options_); + const JsonOptions& json_options = GetJsonOptions(); + Bool32ToJson(jdata[NameReturn()], returnValue, json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["physicalDevice"], physicalDevice, json_options_); - FieldToJson(args["queueFamilyIndex"], queueFamilyIndex, json_options_); - FieldToJson(args["dfb"], dfb, json_options_); + HandleToJson(args["physicalDevice"], physicalDevice, json_options); + FieldToJson(args["queueFamilyIndex"], queueFamilyIndex, json_options); + FieldToJson(args["dfb"], dfb, json_options); WriteBlockEnd(); } @@ -8092,13 +8593,14 @@ void VulkanExportJsonConsumer::Process_vkCmdSetVertexInputEXT( StructPointerDecoder* pVertexAttributeDescriptions) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCmdSetVertexInputEXT"); - FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["commandBuffer"], commandBuffer, json_options_); - FieldToJson(args["vertexBindingDescriptionCount"], vertexBindingDescriptionCount, json_options_); - FieldToJson(args["pVertexBindingDescriptions"], pVertexBindingDescriptions, json_options_); - FieldToJson(args["vertexAttributeDescriptionCount"], vertexAttributeDescriptionCount, json_options_); - FieldToJson(args["pVertexAttributeDescriptions"], pVertexAttributeDescriptions, json_options_); + HandleToJson(args["commandBuffer"], commandBuffer, json_options); + FieldToJson(args["vertexBindingDescriptionCount"], vertexBindingDescriptionCount, json_options); + FieldToJson(args["pVertexBindingDescriptions"], pVertexBindingDescriptions, json_options); + FieldToJson(args["vertexAttributeDescriptionCount"], vertexAttributeDescriptionCount, json_options); + FieldToJson(args["pVertexAttributeDescriptions"], pVertexAttributeDescriptions, json_options); WriteBlockEnd(); } @@ -8110,11 +8612,12 @@ void VulkanExportJsonConsumer::Process_vkGetMemoryZirconHandleFUCHSIA( PointerDecoder* pZirconHandle) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkGetMemoryZirconHandleFUCHSIA"); - FieldToJson(jdata[NameReturn()], returnValue, json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameReturn()], returnValue, json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["device"], device, json_options_); - FieldToJson(args["pGetZirconHandleInfo"], pGetZirconHandleInfo, json_options_); - FieldToJson(args["pZirconHandle"], pZirconHandle, json_options_); + HandleToJson(args["device"], device, json_options); + FieldToJson(args["pGetZirconHandleInfo"], pGetZirconHandleInfo, json_options); + FieldToJson(args["pZirconHandle"], pZirconHandle, json_options); WriteBlockEnd(); } @@ -8127,12 +8630,13 @@ void VulkanExportJsonConsumer::Process_vkGetMemoryZirconHandlePropertiesFUCHSIA( StructPointerDecoder* pMemoryZirconHandleProperties) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkGetMemoryZirconHandlePropertiesFUCHSIA"); - FieldToJson(jdata[NameReturn()], returnValue, json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameReturn()], returnValue, json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["device"], device, json_options_); - FieldToJson(args["handleType"], handleType, json_options_); - FieldToJson(args["zirconHandle"], zirconHandle, json_options_); - FieldToJson(args["pMemoryZirconHandleProperties"], pMemoryZirconHandleProperties, json_options_); + HandleToJson(args["device"], device, json_options); + FieldToJson(args["handleType"], handleType, json_options); + FieldToJson(args["zirconHandle"], zirconHandle, json_options); + FieldToJson(args["pMemoryZirconHandleProperties"], pMemoryZirconHandleProperties, json_options); WriteBlockEnd(); } @@ -8143,10 +8647,11 @@ void VulkanExportJsonConsumer::Process_vkImportSemaphoreZirconHandleFUCHSIA( StructPointerDecoder* pImportSemaphoreZirconHandleInfo) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkImportSemaphoreZirconHandleFUCHSIA"); - FieldToJson(jdata[NameReturn()], returnValue, json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameReturn()], returnValue, json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["device"], device, json_options_); - FieldToJson(args["pImportSemaphoreZirconHandleInfo"], pImportSemaphoreZirconHandleInfo, json_options_); + HandleToJson(args["device"], device, json_options); + FieldToJson(args["pImportSemaphoreZirconHandleInfo"], pImportSemaphoreZirconHandleInfo, json_options); WriteBlockEnd(); } @@ -8158,11 +8663,12 @@ void VulkanExportJsonConsumer::Process_vkGetSemaphoreZirconHandleFUCHSIA( PointerDecoder* pZirconHandle) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkGetSemaphoreZirconHandleFUCHSIA"); - FieldToJson(jdata[NameReturn()], returnValue, json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameReturn()], returnValue, json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["device"], device, json_options_); - FieldToJson(args["pGetZirconHandleInfo"], pGetZirconHandleInfo, json_options_); - FieldToJson(args["pZirconHandle"], pZirconHandle, json_options_); + HandleToJson(args["device"], device, json_options); + FieldToJson(args["pGetZirconHandleInfo"], pGetZirconHandleInfo, json_options); + FieldToJson(args["pZirconHandle"], pZirconHandle, json_options); WriteBlockEnd(); } @@ -8173,11 +8679,12 @@ void VulkanExportJsonConsumer::Process_vkCmdBindInvocationMaskHUAWEI( VkImageLayout imageLayout) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCmdBindInvocationMaskHUAWEI"); - FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["commandBuffer"], commandBuffer, json_options_); - HandleToJson(args["imageView"], imageView, json_options_); - FieldToJson(args["imageLayout"], imageLayout, json_options_); + HandleToJson(args["commandBuffer"], commandBuffer, json_options); + HandleToJson(args["imageView"], imageView, json_options); + FieldToJson(args["imageLayout"], imageLayout, json_options); WriteBlockEnd(); } @@ -8189,11 +8696,12 @@ void VulkanExportJsonConsumer::Process_vkGetMemoryRemoteAddressNV( PointerDecoder* pAddress) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkGetMemoryRemoteAddressNV"); - FieldToJson(jdata[NameReturn()], returnValue, json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameReturn()], returnValue, json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["device"], device, json_options_); - FieldToJson(args["pMemoryGetRemoteAddressInfo"], pMemoryGetRemoteAddressInfo, json_options_); - FieldToJson(args["pAddress"], pAddress, json_options_); + HandleToJson(args["device"], device, json_options); + FieldToJson(args["pMemoryGetRemoteAddressInfo"], pMemoryGetRemoteAddressInfo, json_options); + FieldToJson(args["pAddress"], pAddress, json_options); WriteBlockEnd(); } @@ -8203,10 +8711,11 @@ void VulkanExportJsonConsumer::Process_vkCmdSetPatchControlPointsEXT( uint32_t patchControlPoints) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCmdSetPatchControlPointsEXT"); - FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["commandBuffer"], commandBuffer, json_options_); - FieldToJson(args["patchControlPoints"], patchControlPoints, json_options_); + HandleToJson(args["commandBuffer"], commandBuffer, json_options); + FieldToJson(args["patchControlPoints"], patchControlPoints, json_options); WriteBlockEnd(); } @@ -8216,10 +8725,11 @@ void VulkanExportJsonConsumer::Process_vkCmdSetRasterizerDiscardEnableEXT( VkBool32 rasterizerDiscardEnable) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCmdSetRasterizerDiscardEnableEXT"); - FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["commandBuffer"], commandBuffer, json_options_); - VkBool32ToJson(args["rasterizerDiscardEnable"], rasterizerDiscardEnable, json_options_); + HandleToJson(args["commandBuffer"], commandBuffer, json_options); + Bool32ToJson(args["rasterizerDiscardEnable"], rasterizerDiscardEnable, json_options); WriteBlockEnd(); } @@ -8229,10 +8739,11 @@ void VulkanExportJsonConsumer::Process_vkCmdSetDepthBiasEnableEXT( VkBool32 depthBiasEnable) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCmdSetDepthBiasEnableEXT"); - FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["commandBuffer"], commandBuffer, json_options_); - VkBool32ToJson(args["depthBiasEnable"], depthBiasEnable, json_options_); + HandleToJson(args["commandBuffer"], commandBuffer, json_options); + Bool32ToJson(args["depthBiasEnable"], depthBiasEnable, json_options); WriteBlockEnd(); } @@ -8242,10 +8753,11 @@ void VulkanExportJsonConsumer::Process_vkCmdSetLogicOpEXT( VkLogicOp logicOp) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCmdSetLogicOpEXT"); - FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["commandBuffer"], commandBuffer, json_options_); - FieldToJson(args["logicOp"], logicOp, json_options_); + HandleToJson(args["commandBuffer"], commandBuffer, json_options); + FieldToJson(args["logicOp"], logicOp, json_options); WriteBlockEnd(); } @@ -8255,10 +8767,11 @@ void VulkanExportJsonConsumer::Process_vkCmdSetPrimitiveRestartEnableEXT( VkBool32 primitiveRestartEnable) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCmdSetPrimitiveRestartEnableEXT"); - FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["commandBuffer"], commandBuffer, json_options_); - VkBool32ToJson(args["primitiveRestartEnable"], primitiveRestartEnable, json_options_); + HandleToJson(args["commandBuffer"], commandBuffer, json_options); + Bool32ToJson(args["primitiveRestartEnable"], primitiveRestartEnable, json_options); WriteBlockEnd(); } @@ -8271,12 +8784,13 @@ void VulkanExportJsonConsumer::Process_vkCreateScreenSurfaceQNX( HandlePointerDecoder* pSurface) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCreateScreenSurfaceQNX"); - FieldToJson(jdata[NameReturn()], returnValue, json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameReturn()], returnValue, json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["instance"], instance, json_options_); - FieldToJson(args["pCreateInfo"], pCreateInfo, json_options_); - FieldToJson(args["pAllocator"], pAllocator, json_options_); - HandleToJson(args["pSurface"], pSurface, json_options_); + HandleToJson(args["instance"], instance, json_options); + FieldToJson(args["pCreateInfo"], pCreateInfo, json_options); + FieldToJson(args["pAllocator"], pAllocator, json_options); + HandleToJson(args["pSurface"], pSurface, json_options); WriteBlockEnd(); } @@ -8288,11 +8802,12 @@ void VulkanExportJsonConsumer::Process_vkGetPhysicalDeviceScreenPresentationSupp uint64_t window) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkGetPhysicalDeviceScreenPresentationSupportQNX"); - VkBool32ToJson(jdata[NameReturn()], returnValue, json_options_); + const JsonOptions& json_options = GetJsonOptions(); + Bool32ToJson(jdata[NameReturn()], returnValue, json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["physicalDevice"], physicalDevice, json_options_); - FieldToJson(args["queueFamilyIndex"], queueFamilyIndex, json_options_); - FieldToJson(args["window"], window, json_options_); + HandleToJson(args["physicalDevice"], physicalDevice, json_options); + FieldToJson(args["queueFamilyIndex"], queueFamilyIndex, json_options); + FieldToJson(args["window"], window, json_options); WriteBlockEnd(); } @@ -8303,11 +8818,12 @@ void VulkanExportJsonConsumer::Process_vkCmdSetColorWriteEnableEXT( PointerDecoder* pColorWriteEnables) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCmdSetColorWriteEnableEXT"); - FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["commandBuffer"], commandBuffer, json_options_); - FieldToJson(args["attachmentCount"], attachmentCount, json_options_); - VkBool32ToJson(args["pColorWriteEnables"], pColorWriteEnables, json_options_); + HandleToJson(args["commandBuffer"], commandBuffer, json_options); + FieldToJson(args["attachmentCount"], attachmentCount, json_options); + Bool32ToJson(args["pColorWriteEnables"], pColorWriteEnables, json_options); WriteBlockEnd(); } @@ -8321,14 +8837,15 @@ void VulkanExportJsonConsumer::Process_vkCmdDrawMultiEXT( uint32_t stride) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCmdDrawMultiEXT"); - FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["commandBuffer"], commandBuffer, json_options_); - FieldToJson(args["drawCount"], drawCount, json_options_); - FieldToJson(args["pVertexInfo"], pVertexInfo, json_options_); - FieldToJson(args["instanceCount"], instanceCount, json_options_); - FieldToJson(args["firstInstance"], firstInstance, json_options_); - FieldToJson(args["stride"], stride, json_options_); + HandleToJson(args["commandBuffer"], commandBuffer, json_options); + FieldToJson(args["drawCount"], drawCount, json_options); + FieldToJson(args["pVertexInfo"], pVertexInfo, json_options); + FieldToJson(args["instanceCount"], instanceCount, json_options); + FieldToJson(args["firstInstance"], firstInstance, json_options); + FieldToJson(args["stride"], stride, json_options); WriteBlockEnd(); } @@ -8343,15 +8860,16 @@ void VulkanExportJsonConsumer::Process_vkCmdDrawMultiIndexedEXT( PointerDecoder* pVertexOffset) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCmdDrawMultiIndexedEXT"); - FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["commandBuffer"], commandBuffer, json_options_); - FieldToJson(args["drawCount"], drawCount, json_options_); - FieldToJson(args["pIndexInfo"], pIndexInfo, json_options_); - FieldToJson(args["instanceCount"], instanceCount, json_options_); - FieldToJson(args["firstInstance"], firstInstance, json_options_); - FieldToJson(args["stride"], stride, json_options_); - FieldToJson(args["pVertexOffset"], pVertexOffset, json_options_); + HandleToJson(args["commandBuffer"], commandBuffer, json_options); + FieldToJson(args["drawCount"], drawCount, json_options); + FieldToJson(args["pIndexInfo"], pIndexInfo, json_options); + FieldToJson(args["instanceCount"], instanceCount, json_options); + FieldToJson(args["firstInstance"], firstInstance, json_options); + FieldToJson(args["stride"], stride, json_options); + FieldToJson(args["pVertexOffset"], pVertexOffset, json_options); WriteBlockEnd(); } @@ -8364,12 +8882,13 @@ void VulkanExportJsonConsumer::Process_vkCreateMicromapEXT( HandlePointerDecoder* pMicromap) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCreateMicromapEXT"); - FieldToJson(jdata[NameReturn()], returnValue, json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameReturn()], returnValue, json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["device"], device, json_options_); - FieldToJson(args["pCreateInfo"], pCreateInfo, json_options_); - FieldToJson(args["pAllocator"], pAllocator, json_options_); - HandleToJson(args["pMicromap"], pMicromap, json_options_); + HandleToJson(args["device"], device, json_options); + FieldToJson(args["pCreateInfo"], pCreateInfo, json_options); + FieldToJson(args["pAllocator"], pAllocator, json_options); + HandleToJson(args["pMicromap"], pMicromap, json_options); WriteBlockEnd(); } @@ -8380,10 +8899,11 @@ void VulkanExportJsonConsumer::Process_vkDestroyMicromapEXT( StructPointerDecoder* pAllocator) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkDestroyMicromapEXT"); + const JsonOptions& json_options = GetJsonOptions(); auto& args = jdata[NameArgs()]; - HandleToJson(args["device"], device, json_options_); - HandleToJson(args["micromap"], micromap, json_options_); - FieldToJson(args["pAllocator"], pAllocator, json_options_); + HandleToJson(args["device"], device, json_options); + HandleToJson(args["micromap"], micromap, json_options); + FieldToJson(args["pAllocator"], pAllocator, json_options); WriteBlockEnd(); } @@ -8394,11 +8914,12 @@ void VulkanExportJsonConsumer::Process_vkCmdBuildMicromapsEXT( StructPointerDecoder* pInfos) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCmdBuildMicromapsEXT"); - FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["commandBuffer"], commandBuffer, json_options_); - FieldToJson(args["infoCount"], infoCount, json_options_); - FieldToJson(args["pInfos"], pInfos, json_options_); + HandleToJson(args["commandBuffer"], commandBuffer, json_options); + FieldToJson(args["infoCount"], infoCount, json_options); + FieldToJson(args["pInfos"], pInfos, json_options); WriteBlockEnd(); } @@ -8411,12 +8932,13 @@ void VulkanExportJsonConsumer::Process_vkBuildMicromapsEXT( StructPointerDecoder* pInfos) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkBuildMicromapsEXT"); - FieldToJson(jdata[NameReturn()], returnValue, json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameReturn()], returnValue, json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["device"], device, json_options_); - HandleToJson(args["deferredOperation"], deferredOperation, json_options_); - FieldToJson(args["infoCount"], infoCount, json_options_); - FieldToJson(args["pInfos"], pInfos, json_options_); + HandleToJson(args["device"], device, json_options); + HandleToJson(args["deferredOperation"], deferredOperation, json_options); + FieldToJson(args["infoCount"], infoCount, json_options); + FieldToJson(args["pInfos"], pInfos, json_options); WriteBlockEnd(); } @@ -8428,11 +8950,12 @@ void VulkanExportJsonConsumer::Process_vkCopyMicromapEXT( StructPointerDecoder* pInfo) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCopyMicromapEXT"); - FieldToJson(jdata[NameReturn()], returnValue, json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameReturn()], returnValue, json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["device"], device, json_options_); - HandleToJson(args["deferredOperation"], deferredOperation, json_options_); - FieldToJson(args["pInfo"], pInfo, json_options_); + HandleToJson(args["device"], device, json_options); + HandleToJson(args["deferredOperation"], deferredOperation, json_options); + FieldToJson(args["pInfo"], pInfo, json_options); WriteBlockEnd(); } @@ -8444,11 +8967,12 @@ void VulkanExportJsonConsumer::Process_vkCopyMicromapToMemoryEXT( StructPointerDecoder* pInfo) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCopyMicromapToMemoryEXT"); - FieldToJson(jdata[NameReturn()], returnValue, json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameReturn()], returnValue, json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["device"], device, json_options_); - HandleToJson(args["deferredOperation"], deferredOperation, json_options_); - FieldToJson(args["pInfo"], pInfo, json_options_); + HandleToJson(args["device"], device, json_options); + HandleToJson(args["deferredOperation"], deferredOperation, json_options); + FieldToJson(args["pInfo"], pInfo, json_options); WriteBlockEnd(); } @@ -8460,11 +8984,12 @@ void VulkanExportJsonConsumer::Process_vkCopyMemoryToMicromapEXT( StructPointerDecoder* pInfo) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCopyMemoryToMicromapEXT"); - FieldToJson(jdata[NameReturn()], returnValue, json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameReturn()], returnValue, json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["device"], device, json_options_); - HandleToJson(args["deferredOperation"], deferredOperation, json_options_); - FieldToJson(args["pInfo"], pInfo, json_options_); + HandleToJson(args["device"], device, json_options); + HandleToJson(args["deferredOperation"], deferredOperation, json_options); + FieldToJson(args["pInfo"], pInfo, json_options); WriteBlockEnd(); } @@ -8480,15 +9005,16 @@ void VulkanExportJsonConsumer::Process_vkWriteMicromapsPropertiesEXT( size_t stride) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkWriteMicromapsPropertiesEXT"); - FieldToJson(jdata[NameReturn()], returnValue, json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameReturn()], returnValue, json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["device"], device, json_options_); - FieldToJson(args["micromapCount"], micromapCount, json_options_); - HandleToJson(args["pMicromaps"], pMicromaps, json_options_); - FieldToJson(args["queryType"], queryType, json_options_); - FieldToJson(args["dataSize"], dataSize, json_options_); - FieldToJson(args["pData"], pData, json_options_); - FieldToJson(args["stride"], stride, json_options_); + HandleToJson(args["device"], device, json_options); + FieldToJson(args["micromapCount"], micromapCount, json_options); + HandleToJson(args["pMicromaps"], pMicromaps, json_options); + FieldToJson(args["queryType"], queryType, json_options); + FieldToJson(args["dataSize"], dataSize, json_options); + FieldToJson(args["pData"], pData, json_options); + FieldToJson(args["stride"], stride, json_options); WriteBlockEnd(); } @@ -8498,10 +9024,11 @@ void VulkanExportJsonConsumer::Process_vkCmdCopyMicromapEXT( StructPointerDecoder* pInfo) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCmdCopyMicromapEXT"); - FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["commandBuffer"], commandBuffer, json_options_); - FieldToJson(args["pInfo"], pInfo, json_options_); + HandleToJson(args["commandBuffer"], commandBuffer, json_options); + FieldToJson(args["pInfo"], pInfo, json_options); WriteBlockEnd(); } @@ -8511,10 +9038,11 @@ void VulkanExportJsonConsumer::Process_vkCmdCopyMicromapToMemoryEXT( StructPointerDecoder* pInfo) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCmdCopyMicromapToMemoryEXT"); - FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["commandBuffer"], commandBuffer, json_options_); - FieldToJson(args["pInfo"], pInfo, json_options_); + HandleToJson(args["commandBuffer"], commandBuffer, json_options); + FieldToJson(args["pInfo"], pInfo, json_options); WriteBlockEnd(); } @@ -8524,10 +9052,11 @@ void VulkanExportJsonConsumer::Process_vkCmdCopyMemoryToMicromapEXT( StructPointerDecoder* pInfo) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCmdCopyMemoryToMicromapEXT"); - FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["commandBuffer"], commandBuffer, json_options_); - FieldToJson(args["pInfo"], pInfo, json_options_); + HandleToJson(args["commandBuffer"], commandBuffer, json_options); + FieldToJson(args["pInfo"], pInfo, json_options); WriteBlockEnd(); } @@ -8541,14 +9070,15 @@ void VulkanExportJsonConsumer::Process_vkCmdWriteMicromapsPropertiesEXT( uint32_t firstQuery) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCmdWriteMicromapsPropertiesEXT"); - FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["commandBuffer"], commandBuffer, json_options_); - FieldToJson(args["micromapCount"], micromapCount, json_options_); - HandleToJson(args["pMicromaps"], pMicromaps, json_options_); - FieldToJson(args["queryType"], queryType, json_options_); - HandleToJson(args["queryPool"], queryPool, json_options_); - FieldToJson(args["firstQuery"], firstQuery, json_options_); + HandleToJson(args["commandBuffer"], commandBuffer, json_options); + FieldToJson(args["micromapCount"], micromapCount, json_options); + HandleToJson(args["pMicromaps"], pMicromaps, json_options); + FieldToJson(args["queryType"], queryType, json_options); + HandleToJson(args["queryPool"], queryPool, json_options); + FieldToJson(args["firstQuery"], firstQuery, json_options); WriteBlockEnd(); } @@ -8559,10 +9089,11 @@ void VulkanExportJsonConsumer::Process_vkGetDeviceMicromapCompatibilityEXT( PointerDecoder* pCompatibility) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkGetDeviceMicromapCompatibilityEXT"); + const JsonOptions& json_options = GetJsonOptions(); auto& args = jdata[NameArgs()]; - HandleToJson(args["device"], device, json_options_); - FieldToJson(args["pVersionInfo"], pVersionInfo, json_options_); - FieldToJson(args["pCompatibility"], pCompatibility, json_options_); + HandleToJson(args["device"], device, json_options); + FieldToJson(args["pVersionInfo"], pVersionInfo, json_options); + FieldToJson(args["pCompatibility"], pCompatibility, json_options); WriteBlockEnd(); } @@ -8574,11 +9105,12 @@ void VulkanExportJsonConsumer::Process_vkGetMicromapBuildSizesEXT( StructPointerDecoder* pSizeInfo) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkGetMicromapBuildSizesEXT"); + const JsonOptions& json_options = GetJsonOptions(); auto& args = jdata[NameArgs()]; - HandleToJson(args["device"], device, json_options_); - FieldToJson(args["buildType"], buildType, json_options_); - FieldToJson(args["pBuildInfo"], pBuildInfo, json_options_); - FieldToJson(args["pSizeInfo"], pSizeInfo, json_options_); + HandleToJson(args["device"], device, json_options); + FieldToJson(args["buildType"], buildType, json_options); + FieldToJson(args["pBuildInfo"], pBuildInfo, json_options); + FieldToJson(args["pSizeInfo"], pSizeInfo, json_options); WriteBlockEnd(); } @@ -8590,12 +9122,13 @@ void VulkanExportJsonConsumer::Process_vkCmdDrawClusterHUAWEI( uint32_t groupCountZ) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCmdDrawClusterHUAWEI"); - FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["commandBuffer"], commandBuffer, json_options_); - FieldToJson(args["groupCountX"], groupCountX, json_options_); - FieldToJson(args["groupCountY"], groupCountY, json_options_); - FieldToJson(args["groupCountZ"], groupCountZ, json_options_); + HandleToJson(args["commandBuffer"], commandBuffer, json_options); + FieldToJson(args["groupCountX"], groupCountX, json_options); + FieldToJson(args["groupCountY"], groupCountY, json_options); + FieldToJson(args["groupCountZ"], groupCountZ, json_options); WriteBlockEnd(); } @@ -8606,11 +9139,12 @@ void VulkanExportJsonConsumer::Process_vkCmdDrawClusterIndirectHUAWEI( VkDeviceSize offset) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCmdDrawClusterIndirectHUAWEI"); - FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["commandBuffer"], commandBuffer, json_options_); - HandleToJson(args["buffer"], buffer, json_options_); - FieldToJson(args["offset"], offset, json_options_); + HandleToJson(args["commandBuffer"], commandBuffer, json_options); + HandleToJson(args["buffer"], buffer, json_options); + FieldToJson(args["offset"], offset, json_options); WriteBlockEnd(); } @@ -8621,10 +9155,11 @@ void VulkanExportJsonConsumer::Process_vkSetDeviceMemoryPriorityEXT( float priority) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkSetDeviceMemoryPriorityEXT"); + const JsonOptions& json_options = GetJsonOptions(); auto& args = jdata[NameArgs()]; - HandleToJson(args["device"], device, json_options_); - HandleToJson(args["memory"], memory, json_options_); - FieldToJson(args["priority"], priority, json_options_); + HandleToJson(args["device"], device, json_options); + HandleToJson(args["memory"], memory, json_options); + FieldToJson(args["priority"], priority, json_options); WriteBlockEnd(); } @@ -8635,10 +9170,11 @@ void VulkanExportJsonConsumer::Process_vkGetDescriptorSetLayoutHostMappingInfoVA StructPointerDecoder* pHostMapping) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkGetDescriptorSetLayoutHostMappingInfoVALVE"); + const JsonOptions& json_options = GetJsonOptions(); auto& args = jdata[NameArgs()]; - HandleToJson(args["device"], device, json_options_); - FieldToJson(args["pBindingReference"], pBindingReference, json_options_); - FieldToJson(args["pHostMapping"], pHostMapping, json_options_); + HandleToJson(args["device"], device, json_options); + FieldToJson(args["pBindingReference"], pBindingReference, json_options); + FieldToJson(args["pHostMapping"], pHostMapping, json_options); WriteBlockEnd(); } @@ -8649,10 +9185,11 @@ void VulkanExportJsonConsumer::Process_vkGetDescriptorSetHostMappingVALVE( PointerDecoder* ppData) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkGetDescriptorSetHostMappingVALVE"); + const JsonOptions& json_options = GetJsonOptions(); auto& args = jdata[NameArgs()]; - HandleToJson(args["device"], device, json_options_); - HandleToJson(args["descriptorSet"], descriptorSet, json_options_); - FieldToJsonAsHex(args["ppData"], ppData, json_options_); + HandleToJson(args["device"], device, json_options); + HandleToJson(args["descriptorSet"], descriptorSet, json_options); + FieldToJsonAsHex(args["ppData"], ppData, json_options); WriteBlockEnd(); } @@ -8663,10 +9200,11 @@ void VulkanExportJsonConsumer::Process_vkGetPipelineIndirectMemoryRequirementsNV StructPointerDecoder* pMemoryRequirements) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkGetPipelineIndirectMemoryRequirementsNV"); + const JsonOptions& json_options = GetJsonOptions(); auto& args = jdata[NameArgs()]; - HandleToJson(args["device"], device, json_options_); - FieldToJson(args["pCreateInfo"], pCreateInfo, json_options_); - FieldToJson(args["pMemoryRequirements"], pMemoryRequirements, json_options_); + HandleToJson(args["device"], device, json_options); + FieldToJson(args["pCreateInfo"], pCreateInfo, json_options); + FieldToJson(args["pMemoryRequirements"], pMemoryRequirements, json_options); WriteBlockEnd(); } @@ -8677,11 +9215,12 @@ void VulkanExportJsonConsumer::Process_vkCmdUpdatePipelineIndirectBufferNV( format::HandleId pipeline) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCmdUpdatePipelineIndirectBufferNV"); - FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["commandBuffer"], commandBuffer, json_options_); - FieldToJson(args["pipelineBindPoint"], pipelineBindPoint, json_options_); - HandleToJson(args["pipeline"], pipeline, json_options_); + HandleToJson(args["commandBuffer"], commandBuffer, json_options); + FieldToJson(args["pipelineBindPoint"], pipelineBindPoint, json_options); + HandleToJson(args["pipeline"], pipeline, json_options); WriteBlockEnd(); } @@ -8692,10 +9231,11 @@ void VulkanExportJsonConsumer::Process_vkGetPipelineIndirectDeviceAddressNV( StructPointerDecoder* pInfo) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkGetPipelineIndirectDeviceAddressNV"); - FieldToJsonAsHex(jdata[NameReturn()], returnValue, json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJsonAsHex(jdata[NameReturn()], returnValue, json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["device"], device, json_options_); - FieldToJson(args["pInfo"], pInfo, json_options_); + HandleToJson(args["device"], device, json_options); + FieldToJson(args["pInfo"], pInfo, json_options); WriteBlockEnd(); } @@ -8705,10 +9245,11 @@ void VulkanExportJsonConsumer::Process_vkCmdSetTessellationDomainOriginEXT( VkTessellationDomainOrigin domainOrigin) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCmdSetTessellationDomainOriginEXT"); - FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["commandBuffer"], commandBuffer, json_options_); - FieldToJson(args["domainOrigin"], domainOrigin, json_options_); + HandleToJson(args["commandBuffer"], commandBuffer, json_options); + FieldToJson(args["domainOrigin"], domainOrigin, json_options); WriteBlockEnd(); } @@ -8718,10 +9259,11 @@ void VulkanExportJsonConsumer::Process_vkCmdSetDepthClampEnableEXT( VkBool32 depthClampEnable) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCmdSetDepthClampEnableEXT"); - FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["commandBuffer"], commandBuffer, json_options_); - VkBool32ToJson(args["depthClampEnable"], depthClampEnable, json_options_); + HandleToJson(args["commandBuffer"], commandBuffer, json_options); + Bool32ToJson(args["depthClampEnable"], depthClampEnable, json_options); WriteBlockEnd(); } @@ -8731,10 +9273,11 @@ void VulkanExportJsonConsumer::Process_vkCmdSetPolygonModeEXT( VkPolygonMode polygonMode) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCmdSetPolygonModeEXT"); - FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["commandBuffer"], commandBuffer, json_options_); - FieldToJson(args["polygonMode"], polygonMode, json_options_); + HandleToJson(args["commandBuffer"], commandBuffer, json_options); + FieldToJson(args["polygonMode"], polygonMode, json_options); WriteBlockEnd(); } @@ -8744,10 +9287,11 @@ void VulkanExportJsonConsumer::Process_vkCmdSetRasterizationSamplesEXT( VkSampleCountFlagBits rasterizationSamples) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCmdSetRasterizationSamplesEXT"); - FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["commandBuffer"], commandBuffer, json_options_); - FieldToJson(args["rasterizationSamples"], rasterizationSamples, json_options_); + HandleToJson(args["commandBuffer"], commandBuffer, json_options); + FieldToJson(args["rasterizationSamples"], rasterizationSamples, json_options); WriteBlockEnd(); } @@ -8758,11 +9302,12 @@ void VulkanExportJsonConsumer::Process_vkCmdSetSampleMaskEXT( PointerDecoder* pSampleMask) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCmdSetSampleMaskEXT"); - FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["commandBuffer"], commandBuffer, json_options_); - FieldToJson(args["samples"], samples, json_options_); - FieldToJson(args["pSampleMask"], pSampleMask, json_options_); + HandleToJson(args["commandBuffer"], commandBuffer, json_options); + FieldToJson(args["samples"], samples, json_options); + FieldToJson(args["pSampleMask"], pSampleMask, json_options); WriteBlockEnd(); } @@ -8772,10 +9317,11 @@ void VulkanExportJsonConsumer::Process_vkCmdSetAlphaToCoverageEnableEXT( VkBool32 alphaToCoverageEnable) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCmdSetAlphaToCoverageEnableEXT"); - FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["commandBuffer"], commandBuffer, json_options_); - VkBool32ToJson(args["alphaToCoverageEnable"], alphaToCoverageEnable, json_options_); + HandleToJson(args["commandBuffer"], commandBuffer, json_options); + Bool32ToJson(args["alphaToCoverageEnable"], alphaToCoverageEnable, json_options); WriteBlockEnd(); } @@ -8785,10 +9331,11 @@ void VulkanExportJsonConsumer::Process_vkCmdSetAlphaToOneEnableEXT( VkBool32 alphaToOneEnable) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCmdSetAlphaToOneEnableEXT"); - FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["commandBuffer"], commandBuffer, json_options_); - VkBool32ToJson(args["alphaToOneEnable"], alphaToOneEnable, json_options_); + HandleToJson(args["commandBuffer"], commandBuffer, json_options); + Bool32ToJson(args["alphaToOneEnable"], alphaToOneEnable, json_options); WriteBlockEnd(); } @@ -8798,10 +9345,11 @@ void VulkanExportJsonConsumer::Process_vkCmdSetLogicOpEnableEXT( VkBool32 logicOpEnable) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCmdSetLogicOpEnableEXT"); - FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["commandBuffer"], commandBuffer, json_options_); - VkBool32ToJson(args["logicOpEnable"], logicOpEnable, json_options_); + HandleToJson(args["commandBuffer"], commandBuffer, json_options); + Bool32ToJson(args["logicOpEnable"], logicOpEnable, json_options); WriteBlockEnd(); } @@ -8813,12 +9361,13 @@ void VulkanExportJsonConsumer::Process_vkCmdSetColorBlendEnableEXT( PointerDecoder* pColorBlendEnables) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCmdSetColorBlendEnableEXT"); - FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["commandBuffer"], commandBuffer, json_options_); - FieldToJson(args["firstAttachment"], firstAttachment, json_options_); - FieldToJson(args["attachmentCount"], attachmentCount, json_options_); - VkBool32ToJson(args["pColorBlendEnables"], pColorBlendEnables, json_options_); + HandleToJson(args["commandBuffer"], commandBuffer, json_options); + FieldToJson(args["firstAttachment"], firstAttachment, json_options); + FieldToJson(args["attachmentCount"], attachmentCount, json_options); + Bool32ToJson(args["pColorBlendEnables"], pColorBlendEnables, json_options); WriteBlockEnd(); } @@ -8830,12 +9379,13 @@ void VulkanExportJsonConsumer::Process_vkCmdSetColorBlendEquationEXT( StructPointerDecoder* pColorBlendEquations) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCmdSetColorBlendEquationEXT"); - FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["commandBuffer"], commandBuffer, json_options_); - FieldToJson(args["firstAttachment"], firstAttachment, json_options_); - FieldToJson(args["attachmentCount"], attachmentCount, json_options_); - FieldToJson(args["pColorBlendEquations"], pColorBlendEquations, json_options_); + HandleToJson(args["commandBuffer"], commandBuffer, json_options); + FieldToJson(args["firstAttachment"], firstAttachment, json_options); + FieldToJson(args["attachmentCount"], attachmentCount, json_options); + FieldToJson(args["pColorBlendEquations"], pColorBlendEquations, json_options); WriteBlockEnd(); } @@ -8847,12 +9397,13 @@ void VulkanExportJsonConsumer::Process_vkCmdSetColorWriteMaskEXT( PointerDecoder* pColorWriteMasks) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCmdSetColorWriteMaskEXT"); - FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["commandBuffer"], commandBuffer, json_options_); - FieldToJson(args["firstAttachment"], firstAttachment, json_options_); - FieldToJson(args["attachmentCount"], attachmentCount, json_options_); - FieldToJson(args["pColorWriteMasks"], pColorWriteMasks, json_options_); + HandleToJson(args["commandBuffer"], commandBuffer, json_options); + FieldToJson(args["firstAttachment"], firstAttachment, json_options); + FieldToJson(args["attachmentCount"], attachmentCount, json_options); + FieldToJson(args["pColorWriteMasks"], pColorWriteMasks, json_options); WriteBlockEnd(); } @@ -8862,10 +9413,11 @@ void VulkanExportJsonConsumer::Process_vkCmdSetRasterizationStreamEXT( uint32_t rasterizationStream) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCmdSetRasterizationStreamEXT"); - FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["commandBuffer"], commandBuffer, json_options_); - FieldToJson(args["rasterizationStream"], rasterizationStream, json_options_); + HandleToJson(args["commandBuffer"], commandBuffer, json_options); + FieldToJson(args["rasterizationStream"], rasterizationStream, json_options); WriteBlockEnd(); } @@ -8875,10 +9427,11 @@ void VulkanExportJsonConsumer::Process_vkCmdSetConservativeRasterizationModeEXT( VkConservativeRasterizationModeEXT conservativeRasterizationMode) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCmdSetConservativeRasterizationModeEXT"); - FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["commandBuffer"], commandBuffer, json_options_); - FieldToJson(args["conservativeRasterizationMode"], conservativeRasterizationMode, json_options_); + HandleToJson(args["commandBuffer"], commandBuffer, json_options); + FieldToJson(args["conservativeRasterizationMode"], conservativeRasterizationMode, json_options); WriteBlockEnd(); } @@ -8888,10 +9441,11 @@ void VulkanExportJsonConsumer::Process_vkCmdSetExtraPrimitiveOverestimationSizeE float extraPrimitiveOverestimationSize) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCmdSetExtraPrimitiveOverestimationSizeEXT"); - FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["commandBuffer"], commandBuffer, json_options_); - FieldToJson(args["extraPrimitiveOverestimationSize"], extraPrimitiveOverestimationSize, json_options_); + HandleToJson(args["commandBuffer"], commandBuffer, json_options); + FieldToJson(args["extraPrimitiveOverestimationSize"], extraPrimitiveOverestimationSize, json_options); WriteBlockEnd(); } @@ -8901,10 +9455,11 @@ void VulkanExportJsonConsumer::Process_vkCmdSetDepthClipEnableEXT( VkBool32 depthClipEnable) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCmdSetDepthClipEnableEXT"); - FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["commandBuffer"], commandBuffer, json_options_); - VkBool32ToJson(args["depthClipEnable"], depthClipEnable, json_options_); + HandleToJson(args["commandBuffer"], commandBuffer, json_options); + Bool32ToJson(args["depthClipEnable"], depthClipEnable, json_options); WriteBlockEnd(); } @@ -8914,10 +9469,11 @@ void VulkanExportJsonConsumer::Process_vkCmdSetSampleLocationsEnableEXT( VkBool32 sampleLocationsEnable) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCmdSetSampleLocationsEnableEXT"); - FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["commandBuffer"], commandBuffer, json_options_); - VkBool32ToJson(args["sampleLocationsEnable"], sampleLocationsEnable, json_options_); + HandleToJson(args["commandBuffer"], commandBuffer, json_options); + Bool32ToJson(args["sampleLocationsEnable"], sampleLocationsEnable, json_options); WriteBlockEnd(); } @@ -8929,12 +9485,13 @@ void VulkanExportJsonConsumer::Process_vkCmdSetColorBlendAdvancedEXT( StructPointerDecoder* pColorBlendAdvanced) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCmdSetColorBlendAdvancedEXT"); - FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["commandBuffer"], commandBuffer, json_options_); - FieldToJson(args["firstAttachment"], firstAttachment, json_options_); - FieldToJson(args["attachmentCount"], attachmentCount, json_options_); - FieldToJson(args["pColorBlendAdvanced"], pColorBlendAdvanced, json_options_); + HandleToJson(args["commandBuffer"], commandBuffer, json_options); + FieldToJson(args["firstAttachment"], firstAttachment, json_options); + FieldToJson(args["attachmentCount"], attachmentCount, json_options); + FieldToJson(args["pColorBlendAdvanced"], pColorBlendAdvanced, json_options); WriteBlockEnd(); } @@ -8944,10 +9501,11 @@ void VulkanExportJsonConsumer::Process_vkCmdSetProvokingVertexModeEXT( VkProvokingVertexModeEXT provokingVertexMode) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCmdSetProvokingVertexModeEXT"); - FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["commandBuffer"], commandBuffer, json_options_); - FieldToJson(args["provokingVertexMode"], provokingVertexMode, json_options_); + HandleToJson(args["commandBuffer"], commandBuffer, json_options); + FieldToJson(args["provokingVertexMode"], provokingVertexMode, json_options); WriteBlockEnd(); } @@ -8957,10 +9515,11 @@ void VulkanExportJsonConsumer::Process_vkCmdSetLineRasterizationModeEXT( VkLineRasterizationModeEXT lineRasterizationMode) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCmdSetLineRasterizationModeEXT"); - FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["commandBuffer"], commandBuffer, json_options_); - FieldToJson(args["lineRasterizationMode"], lineRasterizationMode, json_options_); + HandleToJson(args["commandBuffer"], commandBuffer, json_options); + FieldToJson(args["lineRasterizationMode"], lineRasterizationMode, json_options); WriteBlockEnd(); } @@ -8970,10 +9529,11 @@ void VulkanExportJsonConsumer::Process_vkCmdSetLineStippleEnableEXT( VkBool32 stippledLineEnable) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCmdSetLineStippleEnableEXT"); - FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["commandBuffer"], commandBuffer, json_options_); - VkBool32ToJson(args["stippledLineEnable"], stippledLineEnable, json_options_); + HandleToJson(args["commandBuffer"], commandBuffer, json_options); + Bool32ToJson(args["stippledLineEnable"], stippledLineEnable, json_options); WriteBlockEnd(); } @@ -8983,10 +9543,11 @@ void VulkanExportJsonConsumer::Process_vkCmdSetDepthClipNegativeOneToOneEXT( VkBool32 negativeOneToOne) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCmdSetDepthClipNegativeOneToOneEXT"); - FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["commandBuffer"], commandBuffer, json_options_); - VkBool32ToJson(args["negativeOneToOne"], negativeOneToOne, json_options_); + HandleToJson(args["commandBuffer"], commandBuffer, json_options); + Bool32ToJson(args["negativeOneToOne"], negativeOneToOne, json_options); WriteBlockEnd(); } @@ -8996,10 +9557,11 @@ void VulkanExportJsonConsumer::Process_vkCmdSetViewportWScalingEnableNV( VkBool32 viewportWScalingEnable) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCmdSetViewportWScalingEnableNV"); - FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["commandBuffer"], commandBuffer, json_options_); - VkBool32ToJson(args["viewportWScalingEnable"], viewportWScalingEnable, json_options_); + HandleToJson(args["commandBuffer"], commandBuffer, json_options); + Bool32ToJson(args["viewportWScalingEnable"], viewportWScalingEnable, json_options); WriteBlockEnd(); } @@ -9011,12 +9573,13 @@ void VulkanExportJsonConsumer::Process_vkCmdSetViewportSwizzleNV( StructPointerDecoder* pViewportSwizzles) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCmdSetViewportSwizzleNV"); - FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["commandBuffer"], commandBuffer, json_options_); - FieldToJson(args["firstViewport"], firstViewport, json_options_); - FieldToJson(args["viewportCount"], viewportCount, json_options_); - FieldToJson(args["pViewportSwizzles"], pViewportSwizzles, json_options_); + HandleToJson(args["commandBuffer"], commandBuffer, json_options); + FieldToJson(args["firstViewport"], firstViewport, json_options); + FieldToJson(args["viewportCount"], viewportCount, json_options); + FieldToJson(args["pViewportSwizzles"], pViewportSwizzles, json_options); WriteBlockEnd(); } @@ -9026,10 +9589,11 @@ void VulkanExportJsonConsumer::Process_vkCmdSetCoverageToColorEnableNV( VkBool32 coverageToColorEnable) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCmdSetCoverageToColorEnableNV"); - FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["commandBuffer"], commandBuffer, json_options_); - VkBool32ToJson(args["coverageToColorEnable"], coverageToColorEnable, json_options_); + HandleToJson(args["commandBuffer"], commandBuffer, json_options); + Bool32ToJson(args["coverageToColorEnable"], coverageToColorEnable, json_options); WriteBlockEnd(); } @@ -9039,10 +9603,11 @@ void VulkanExportJsonConsumer::Process_vkCmdSetCoverageToColorLocationNV( uint32_t coverageToColorLocation) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCmdSetCoverageToColorLocationNV"); - FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["commandBuffer"], commandBuffer, json_options_); - FieldToJson(args["coverageToColorLocation"], coverageToColorLocation, json_options_); + HandleToJson(args["commandBuffer"], commandBuffer, json_options); + FieldToJson(args["coverageToColorLocation"], coverageToColorLocation, json_options); WriteBlockEnd(); } @@ -9052,10 +9617,11 @@ void VulkanExportJsonConsumer::Process_vkCmdSetCoverageModulationModeNV( VkCoverageModulationModeNV coverageModulationMode) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCmdSetCoverageModulationModeNV"); - FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["commandBuffer"], commandBuffer, json_options_); - FieldToJson(args["coverageModulationMode"], coverageModulationMode, json_options_); + HandleToJson(args["commandBuffer"], commandBuffer, json_options); + FieldToJson(args["coverageModulationMode"], coverageModulationMode, json_options); WriteBlockEnd(); } @@ -9065,10 +9631,11 @@ void VulkanExportJsonConsumer::Process_vkCmdSetCoverageModulationTableEnableNV( VkBool32 coverageModulationTableEnable) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCmdSetCoverageModulationTableEnableNV"); - FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["commandBuffer"], commandBuffer, json_options_); - VkBool32ToJson(args["coverageModulationTableEnable"], coverageModulationTableEnable, json_options_); + HandleToJson(args["commandBuffer"], commandBuffer, json_options); + Bool32ToJson(args["coverageModulationTableEnable"], coverageModulationTableEnable, json_options); WriteBlockEnd(); } @@ -9079,11 +9646,12 @@ void VulkanExportJsonConsumer::Process_vkCmdSetCoverageModulationTableNV( PointerDecoder* pCoverageModulationTable) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCmdSetCoverageModulationTableNV"); - FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["commandBuffer"], commandBuffer, json_options_); - FieldToJson(args["coverageModulationTableCount"], coverageModulationTableCount, json_options_); - FieldToJson(args["pCoverageModulationTable"], pCoverageModulationTable, json_options_); + HandleToJson(args["commandBuffer"], commandBuffer, json_options); + FieldToJson(args["coverageModulationTableCount"], coverageModulationTableCount, json_options); + FieldToJson(args["pCoverageModulationTable"], pCoverageModulationTable, json_options); WriteBlockEnd(); } @@ -9093,10 +9661,11 @@ void VulkanExportJsonConsumer::Process_vkCmdSetShadingRateImageEnableNV( VkBool32 shadingRateImageEnable) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCmdSetShadingRateImageEnableNV"); - FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["commandBuffer"], commandBuffer, json_options_); - VkBool32ToJson(args["shadingRateImageEnable"], shadingRateImageEnable, json_options_); + HandleToJson(args["commandBuffer"], commandBuffer, json_options); + Bool32ToJson(args["shadingRateImageEnable"], shadingRateImageEnable, json_options); WriteBlockEnd(); } @@ -9106,10 +9675,11 @@ void VulkanExportJsonConsumer::Process_vkCmdSetRepresentativeFragmentTestEnableN VkBool32 representativeFragmentTestEnable) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCmdSetRepresentativeFragmentTestEnableNV"); - FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["commandBuffer"], commandBuffer, json_options_); - VkBool32ToJson(args["representativeFragmentTestEnable"], representativeFragmentTestEnable, json_options_); + HandleToJson(args["commandBuffer"], commandBuffer, json_options); + Bool32ToJson(args["representativeFragmentTestEnable"], representativeFragmentTestEnable, json_options); WriteBlockEnd(); } @@ -9119,10 +9689,11 @@ void VulkanExportJsonConsumer::Process_vkCmdSetCoverageReductionModeNV( VkCoverageReductionModeNV coverageReductionMode) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCmdSetCoverageReductionModeNV"); - FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["commandBuffer"], commandBuffer, json_options_); - FieldToJson(args["coverageReductionMode"], coverageReductionMode, json_options_); + HandleToJson(args["commandBuffer"], commandBuffer, json_options); + FieldToJson(args["coverageReductionMode"], coverageReductionMode, json_options); WriteBlockEnd(); } @@ -9133,10 +9704,11 @@ void VulkanExportJsonConsumer::Process_vkGetShaderModuleIdentifierEXT( StructPointerDecoder* pIdentifier) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkGetShaderModuleIdentifierEXT"); + const JsonOptions& json_options = GetJsonOptions(); auto& args = jdata[NameArgs()]; - HandleToJson(args["device"], device, json_options_); - HandleToJson(args["shaderModule"], shaderModule, json_options_); - FieldToJson(args["pIdentifier"], pIdentifier, json_options_); + HandleToJson(args["device"], device, json_options); + HandleToJson(args["shaderModule"], shaderModule, json_options); + FieldToJson(args["pIdentifier"], pIdentifier, json_options); WriteBlockEnd(); } @@ -9147,10 +9719,11 @@ void VulkanExportJsonConsumer::Process_vkGetShaderModuleCreateInfoIdentifierEXT( StructPointerDecoder* pIdentifier) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkGetShaderModuleCreateInfoIdentifierEXT"); + const JsonOptions& json_options = GetJsonOptions(); auto& args = jdata[NameArgs()]; - HandleToJson(args["device"], device, json_options_); - FieldToJson(args["pCreateInfo"], pCreateInfo, json_options_); - FieldToJson(args["pIdentifier"], pIdentifier, json_options_); + HandleToJson(args["device"], device, json_options); + FieldToJson(args["pCreateInfo"], pCreateInfo, json_options); + FieldToJson(args["pIdentifier"], pIdentifier, json_options); WriteBlockEnd(); } @@ -9163,12 +9736,13 @@ void VulkanExportJsonConsumer::Process_vkGetPhysicalDeviceOpticalFlowImageFormat StructPointerDecoder* pImageFormatProperties) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkGetPhysicalDeviceOpticalFlowImageFormatsNV"); - FieldToJson(jdata[NameReturn()], returnValue, json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameReturn()], returnValue, json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["physicalDevice"], physicalDevice, json_options_); - FieldToJson(args["pOpticalFlowImageFormatInfo"], pOpticalFlowImageFormatInfo, json_options_); - FieldToJson(args["pFormatCount"], pFormatCount, json_options_); - FieldToJson(args["pImageFormatProperties"], pImageFormatProperties, json_options_); + HandleToJson(args["physicalDevice"], physicalDevice, json_options); + FieldToJson(args["pOpticalFlowImageFormatInfo"], pOpticalFlowImageFormatInfo, json_options); + FieldToJson(args["pFormatCount"], pFormatCount, json_options); + FieldToJson(args["pImageFormatProperties"], pImageFormatProperties, json_options); WriteBlockEnd(); } @@ -9181,12 +9755,13 @@ void VulkanExportJsonConsumer::Process_vkCreateOpticalFlowSessionNV( HandlePointerDecoder* pSession) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCreateOpticalFlowSessionNV"); - FieldToJson(jdata[NameReturn()], returnValue, json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameReturn()], returnValue, json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["device"], device, json_options_); - FieldToJson(args["pCreateInfo"], pCreateInfo, json_options_); - FieldToJson(args["pAllocator"], pAllocator, json_options_); - HandleToJson(args["pSession"], pSession, json_options_); + HandleToJson(args["device"], device, json_options); + FieldToJson(args["pCreateInfo"], pCreateInfo, json_options); + FieldToJson(args["pAllocator"], pAllocator, json_options); + HandleToJson(args["pSession"], pSession, json_options); WriteBlockEnd(); } @@ -9197,10 +9772,11 @@ void VulkanExportJsonConsumer::Process_vkDestroyOpticalFlowSessionNV( StructPointerDecoder* pAllocator) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkDestroyOpticalFlowSessionNV"); + const JsonOptions& json_options = GetJsonOptions(); auto& args = jdata[NameArgs()]; - HandleToJson(args["device"], device, json_options_); - HandleToJson(args["session"], session, json_options_); - FieldToJson(args["pAllocator"], pAllocator, json_options_); + HandleToJson(args["device"], device, json_options); + HandleToJson(args["session"], session, json_options); + FieldToJson(args["pAllocator"], pAllocator, json_options); WriteBlockEnd(); } @@ -9214,13 +9790,14 @@ void VulkanExportJsonConsumer::Process_vkBindOpticalFlowSessionImageNV( VkImageLayout layout) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkBindOpticalFlowSessionImageNV"); - FieldToJson(jdata[NameReturn()], returnValue, json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameReturn()], returnValue, json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["device"], device, json_options_); - HandleToJson(args["session"], session, json_options_); - FieldToJson(args["bindingPoint"], bindingPoint, json_options_); - HandleToJson(args["view"], view, json_options_); - FieldToJson(args["layout"], layout, json_options_); + HandleToJson(args["device"], device, json_options); + HandleToJson(args["session"], session, json_options); + FieldToJson(args["bindingPoint"], bindingPoint, json_options); + HandleToJson(args["view"], view, json_options); + FieldToJson(args["layout"], layout, json_options); WriteBlockEnd(); } @@ -9231,11 +9808,12 @@ void VulkanExportJsonConsumer::Process_vkCmdOpticalFlowExecuteNV( StructPointerDecoder* pExecuteInfo) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCmdOpticalFlowExecuteNV"); - FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["commandBuffer"], commandBuffer, json_options_); - HandleToJson(args["session"], session, json_options_); - FieldToJson(args["pExecuteInfo"], pExecuteInfo, json_options_); + HandleToJson(args["commandBuffer"], commandBuffer, json_options); + HandleToJson(args["session"], session, json_options); + FieldToJson(args["pExecuteInfo"], pExecuteInfo, json_options); WriteBlockEnd(); } @@ -9249,13 +9827,14 @@ void VulkanExportJsonConsumer::Process_vkCreateShadersEXT( HandlePointerDecoder* pShaders) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCreateShadersEXT"); - FieldToJson(jdata[NameReturn()], returnValue, json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameReturn()], returnValue, json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["device"], device, json_options_); - FieldToJson(args["createInfoCount"], createInfoCount, json_options_); - FieldToJson(args["pCreateInfos"], pCreateInfos, json_options_); - FieldToJson(args["pAllocator"], pAllocator, json_options_); - HandleToJson(args["pShaders"], pShaders, json_options_); + HandleToJson(args["device"], device, json_options); + FieldToJson(args["createInfoCount"], createInfoCount, json_options); + FieldToJson(args["pCreateInfos"], pCreateInfos, json_options); + FieldToJson(args["pAllocator"], pAllocator, json_options); + HandleToJson(args["pShaders"], pShaders, json_options); WriteBlockEnd(); } @@ -9266,10 +9845,11 @@ void VulkanExportJsonConsumer::Process_vkDestroyShaderEXT( StructPointerDecoder* pAllocator) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkDestroyShaderEXT"); + const JsonOptions& json_options = GetJsonOptions(); auto& args = jdata[NameArgs()]; - HandleToJson(args["device"], device, json_options_); - HandleToJson(args["shader"], shader, json_options_); - FieldToJson(args["pAllocator"], pAllocator, json_options_); + HandleToJson(args["device"], device, json_options); + HandleToJson(args["shader"], shader, json_options); + FieldToJson(args["pAllocator"], pAllocator, json_options); WriteBlockEnd(); } @@ -9282,12 +9862,13 @@ void VulkanExportJsonConsumer::Process_vkGetShaderBinaryDataEXT( PointerDecoder* pData) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkGetShaderBinaryDataEXT"); - FieldToJson(jdata[NameReturn()], returnValue, json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameReturn()], returnValue, json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["device"], device, json_options_); - HandleToJson(args["shader"], shader, json_options_); - FieldToJson(args["pDataSize"], pDataSize, json_options_); - FieldToJson(args["pData"], pData, json_options_); + HandleToJson(args["device"], device, json_options); + HandleToJson(args["shader"], shader, json_options); + FieldToJson(args["pDataSize"], pDataSize, json_options); + FieldToJson(args["pData"], pData, json_options); WriteBlockEnd(); } @@ -9299,12 +9880,13 @@ void VulkanExportJsonConsumer::Process_vkCmdBindShadersEXT( HandlePointerDecoder* pShaders) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCmdBindShadersEXT"); - FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["commandBuffer"], commandBuffer, json_options_); - FieldToJson(args["stageCount"], stageCount, json_options_); - FieldToJson(args["pStages"], pStages, json_options_); - HandleToJson(args["pShaders"], pShaders, json_options_); + HandleToJson(args["commandBuffer"], commandBuffer, json_options); + FieldToJson(args["stageCount"], stageCount, json_options); + FieldToJson(args["pStages"], pStages, json_options); + HandleToJson(args["pShaders"], pShaders, json_options); WriteBlockEnd(); } @@ -9317,12 +9899,13 @@ void VulkanExportJsonConsumer::Process_vkGetFramebufferTilePropertiesQCOM( StructPointerDecoder* pProperties) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkGetFramebufferTilePropertiesQCOM"); - FieldToJson(jdata[NameReturn()], returnValue, json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameReturn()], returnValue, json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["device"], device, json_options_); - HandleToJson(args["framebuffer"], framebuffer, json_options_); - FieldToJson(args["pPropertiesCount"], pPropertiesCount, json_options_); - FieldToJson(args["pProperties"], pProperties, json_options_); + HandleToJson(args["device"], device, json_options); + HandleToJson(args["framebuffer"], framebuffer, json_options); + FieldToJson(args["pPropertiesCount"], pPropertiesCount, json_options); + FieldToJson(args["pProperties"], pProperties, json_options); WriteBlockEnd(); } @@ -9334,11 +9917,12 @@ void VulkanExportJsonConsumer::Process_vkGetDynamicRenderingTilePropertiesQCOM( StructPointerDecoder* pProperties) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkGetDynamicRenderingTilePropertiesQCOM"); - FieldToJson(jdata[NameReturn()], returnValue, json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameReturn()], returnValue, json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["device"], device, json_options_); - FieldToJson(args["pRenderingInfo"], pRenderingInfo, json_options_); - FieldToJson(args["pProperties"], pProperties, json_options_); + HandleToJson(args["device"], device, json_options); + FieldToJson(args["pRenderingInfo"], pRenderingInfo, json_options); + FieldToJson(args["pProperties"], pProperties, json_options); WriteBlockEnd(); } @@ -9348,10 +9932,11 @@ void VulkanExportJsonConsumer::Process_vkCmdSetAttachmentFeedbackLoopEnableEXT( VkImageAspectFlags aspectMask) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCmdSetAttachmentFeedbackLoopEnableEXT"); - FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["commandBuffer"], commandBuffer, json_options_); - FieldToJson(VkImageAspectFlags_t(), args["aspectMask"], aspectMask, json_options_); + HandleToJson(args["commandBuffer"], commandBuffer, json_options); + FieldToJson(VkImageAspectFlags_t(), args["aspectMask"], aspectMask, json_options); WriteBlockEnd(); } @@ -9364,12 +9949,13 @@ void VulkanExportJsonConsumer::Process_vkCreateAccelerationStructureKHR( HandlePointerDecoder* pAccelerationStructure) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCreateAccelerationStructureKHR"); - FieldToJson(jdata[NameReturn()], returnValue, json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameReturn()], returnValue, json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["device"], device, json_options_); - FieldToJson(args["pCreateInfo"], pCreateInfo, json_options_); - FieldToJson(args["pAllocator"], pAllocator, json_options_); - HandleToJson(args["pAccelerationStructure"], pAccelerationStructure, json_options_); + HandleToJson(args["device"], device, json_options); + FieldToJson(args["pCreateInfo"], pCreateInfo, json_options); + FieldToJson(args["pAllocator"], pAllocator, json_options); + HandleToJson(args["pAccelerationStructure"], pAccelerationStructure, json_options); WriteBlockEnd(); } @@ -9380,10 +9966,11 @@ void VulkanExportJsonConsumer::Process_vkDestroyAccelerationStructureKHR( StructPointerDecoder* pAllocator) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkDestroyAccelerationStructureKHR"); + const JsonOptions& json_options = GetJsonOptions(); auto& args = jdata[NameArgs()]; - HandleToJson(args["device"], device, json_options_); - HandleToJson(args["accelerationStructure"], accelerationStructure, json_options_); - FieldToJson(args["pAllocator"], pAllocator, json_options_); + HandleToJson(args["device"], device, json_options); + HandleToJson(args["accelerationStructure"], accelerationStructure, json_options); + FieldToJson(args["pAllocator"], pAllocator, json_options); WriteBlockEnd(); } @@ -9395,12 +9982,13 @@ void VulkanExportJsonConsumer::Process_vkCmdBuildAccelerationStructuresKHR( StructPointerDecoder* ppBuildRangeInfos) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCmdBuildAccelerationStructuresKHR"); - FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["commandBuffer"], commandBuffer, json_options_); - FieldToJson(args["infoCount"], infoCount, json_options_); - FieldToJson(args["pInfos"], pInfos, json_options_); - FieldToJson(args["ppBuildRangeInfos"], ppBuildRangeInfos, json_options_); + HandleToJson(args["commandBuffer"], commandBuffer, json_options); + FieldToJson(args["infoCount"], infoCount, json_options); + FieldToJson(args["pInfos"], pInfos, json_options); + FieldToJson(args["ppBuildRangeInfos"], ppBuildRangeInfos, json_options); WriteBlockEnd(); } @@ -9412,11 +10000,12 @@ void VulkanExportJsonConsumer::Process_vkCopyAccelerationStructureToMemoryKHR( StructPointerDecoder* pInfo) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCopyAccelerationStructureToMemoryKHR"); - FieldToJson(jdata[NameReturn()], returnValue, json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameReturn()], returnValue, json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["device"], device, json_options_); - HandleToJson(args["deferredOperation"], deferredOperation, json_options_); - FieldToJson(args["pInfo"], pInfo, json_options_); + HandleToJson(args["device"], device, json_options); + HandleToJson(args["deferredOperation"], deferredOperation, json_options); + FieldToJson(args["pInfo"], pInfo, json_options); WriteBlockEnd(); } @@ -9428,11 +10017,12 @@ void VulkanExportJsonConsumer::Process_vkCopyMemoryToAccelerationStructureKHR( StructPointerDecoder* pInfo) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCopyMemoryToAccelerationStructureKHR"); - FieldToJson(jdata[NameReturn()], returnValue, json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameReturn()], returnValue, json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["device"], device, json_options_); - HandleToJson(args["deferredOperation"], deferredOperation, json_options_); - FieldToJson(args["pInfo"], pInfo, json_options_); + HandleToJson(args["device"], device, json_options); + HandleToJson(args["deferredOperation"], deferredOperation, json_options); + FieldToJson(args["pInfo"], pInfo, json_options); WriteBlockEnd(); } @@ -9448,15 +10038,16 @@ void VulkanExportJsonConsumer::Process_vkWriteAccelerationStructuresPropertiesKH size_t stride) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkWriteAccelerationStructuresPropertiesKHR"); - FieldToJson(jdata[NameReturn()], returnValue, json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameReturn()], returnValue, json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["device"], device, json_options_); - FieldToJson(args["accelerationStructureCount"], accelerationStructureCount, json_options_); - HandleToJson(args["pAccelerationStructures"], pAccelerationStructures, json_options_); - FieldToJson(args["queryType"], queryType, json_options_); - FieldToJson(args["dataSize"], dataSize, json_options_); - FieldToJson(args["pData"], pData, json_options_); - FieldToJson(args["stride"], stride, json_options_); + HandleToJson(args["device"], device, json_options); + FieldToJson(args["accelerationStructureCount"], accelerationStructureCount, json_options); + HandleToJson(args["pAccelerationStructures"], pAccelerationStructures, json_options); + FieldToJson(args["queryType"], queryType, json_options); + FieldToJson(args["dataSize"], dataSize, json_options); + FieldToJson(args["pData"], pData, json_options); + FieldToJson(args["stride"], stride, json_options); WriteBlockEnd(); } @@ -9466,10 +10057,11 @@ void VulkanExportJsonConsumer::Process_vkCmdCopyAccelerationStructureKHR( StructPointerDecoder* pInfo) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCmdCopyAccelerationStructureKHR"); - FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["commandBuffer"], commandBuffer, json_options_); - FieldToJson(args["pInfo"], pInfo, json_options_); + HandleToJson(args["commandBuffer"], commandBuffer, json_options); + FieldToJson(args["pInfo"], pInfo, json_options); WriteBlockEnd(); } @@ -9479,10 +10071,11 @@ void VulkanExportJsonConsumer::Process_vkCmdCopyAccelerationStructureToMemoryKHR StructPointerDecoder* pInfo) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCmdCopyAccelerationStructureToMemoryKHR"); - FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["commandBuffer"], commandBuffer, json_options_); - FieldToJson(args["pInfo"], pInfo, json_options_); + HandleToJson(args["commandBuffer"], commandBuffer, json_options); + FieldToJson(args["pInfo"], pInfo, json_options); WriteBlockEnd(); } @@ -9492,10 +10085,11 @@ void VulkanExportJsonConsumer::Process_vkCmdCopyMemoryToAccelerationStructureKHR StructPointerDecoder* pInfo) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCmdCopyMemoryToAccelerationStructureKHR"); - FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["commandBuffer"], commandBuffer, json_options_); - FieldToJson(args["pInfo"], pInfo, json_options_); + HandleToJson(args["commandBuffer"], commandBuffer, json_options); + FieldToJson(args["pInfo"], pInfo, json_options); WriteBlockEnd(); } @@ -9506,10 +10100,11 @@ void VulkanExportJsonConsumer::Process_vkGetAccelerationStructureDeviceAddressKH StructPointerDecoder* pInfo) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkGetAccelerationStructureDeviceAddressKHR"); - FieldToJsonAsHex(jdata[NameReturn()], returnValue, json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJsonAsHex(jdata[NameReturn()], returnValue, json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["device"], device, json_options_); - FieldToJson(args["pInfo"], pInfo, json_options_); + HandleToJson(args["device"], device, json_options); + FieldToJson(args["pInfo"], pInfo, json_options); WriteBlockEnd(); } @@ -9523,14 +10118,15 @@ void VulkanExportJsonConsumer::Process_vkCmdWriteAccelerationStructuresPropertie uint32_t firstQuery) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCmdWriteAccelerationStructuresPropertiesKHR"); - FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["commandBuffer"], commandBuffer, json_options_); - FieldToJson(args["accelerationStructureCount"], accelerationStructureCount, json_options_); - HandleToJson(args["pAccelerationStructures"], pAccelerationStructures, json_options_); - FieldToJson(args["queryType"], queryType, json_options_); - HandleToJson(args["queryPool"], queryPool, json_options_); - FieldToJson(args["firstQuery"], firstQuery, json_options_); + HandleToJson(args["commandBuffer"], commandBuffer, json_options); + FieldToJson(args["accelerationStructureCount"], accelerationStructureCount, json_options); + HandleToJson(args["pAccelerationStructures"], pAccelerationStructures, json_options); + FieldToJson(args["queryType"], queryType, json_options); + HandleToJson(args["queryPool"], queryPool, json_options); + FieldToJson(args["firstQuery"], firstQuery, json_options); WriteBlockEnd(); } @@ -9541,10 +10137,11 @@ void VulkanExportJsonConsumer::Process_vkGetDeviceAccelerationStructureCompatibi PointerDecoder* pCompatibility) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkGetDeviceAccelerationStructureCompatibilityKHR"); + const JsonOptions& json_options = GetJsonOptions(); auto& args = jdata[NameArgs()]; - HandleToJson(args["device"], device, json_options_); - FieldToJson(args["pVersionInfo"], pVersionInfo, json_options_); - FieldToJson(args["pCompatibility"], pCompatibility, json_options_); + HandleToJson(args["device"], device, json_options); + FieldToJson(args["pVersionInfo"], pVersionInfo, json_options); + FieldToJson(args["pCompatibility"], pCompatibility, json_options); WriteBlockEnd(); } @@ -9557,12 +10154,13 @@ void VulkanExportJsonConsumer::Process_vkGetAccelerationStructureBuildSizesKHR( StructPointerDecoder* pSizeInfo) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkGetAccelerationStructureBuildSizesKHR"); + const JsonOptions& json_options = GetJsonOptions(); auto& args = jdata[NameArgs()]; - HandleToJson(args["device"], device, json_options_); - FieldToJson(args["buildType"], buildType, json_options_); - FieldToJson(args["pBuildInfo"], pBuildInfo, json_options_); - FieldToJson(args["pMaxPrimitiveCounts"], pMaxPrimitiveCounts, json_options_); - FieldToJson(args["pSizeInfo"], pSizeInfo, json_options_); + HandleToJson(args["device"], device, json_options); + FieldToJson(args["buildType"], buildType, json_options); + FieldToJson(args["pBuildInfo"], pBuildInfo, json_options); + FieldToJson(args["pMaxPrimitiveCounts"], pMaxPrimitiveCounts, json_options); + FieldToJson(args["pSizeInfo"], pSizeInfo, json_options); WriteBlockEnd(); } @@ -9578,16 +10176,17 @@ void VulkanExportJsonConsumer::Process_vkCmdTraceRaysKHR( uint32_t depth) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCmdTraceRaysKHR"); - FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["commandBuffer"], commandBuffer, json_options_); - FieldToJson(args["pRaygenShaderBindingTable"], pRaygenShaderBindingTable, json_options_); - FieldToJson(args["pMissShaderBindingTable"], pMissShaderBindingTable, json_options_); - FieldToJson(args["pHitShaderBindingTable"], pHitShaderBindingTable, json_options_); - FieldToJson(args["pCallableShaderBindingTable"], pCallableShaderBindingTable, json_options_); - FieldToJson(args["width"], width, json_options_); - FieldToJson(args["height"], height, json_options_); - FieldToJson(args["depth"], depth, json_options_); + HandleToJson(args["commandBuffer"], commandBuffer, json_options); + FieldToJson(args["pRaygenShaderBindingTable"], pRaygenShaderBindingTable, json_options); + FieldToJson(args["pMissShaderBindingTable"], pMissShaderBindingTable, json_options); + FieldToJson(args["pHitShaderBindingTable"], pHitShaderBindingTable, json_options); + FieldToJson(args["pCallableShaderBindingTable"], pCallableShaderBindingTable, json_options); + FieldToJson(args["width"], width, json_options); + FieldToJson(args["height"], height, json_options); + FieldToJson(args["depth"], depth, json_options); WriteBlockEnd(); } @@ -9603,15 +10202,16 @@ void VulkanExportJsonConsumer::Process_vkCreateRayTracingPipelinesKHR( HandlePointerDecoder* pPipelines) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCreateRayTracingPipelinesKHR"); - FieldToJson(jdata[NameReturn()], returnValue, json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameReturn()], returnValue, json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["device"], device, json_options_); - HandleToJson(args["deferredOperation"], deferredOperation, json_options_); - HandleToJson(args["pipelineCache"], pipelineCache, json_options_); - FieldToJson(args["createInfoCount"], createInfoCount, json_options_); - FieldToJson(args["pCreateInfos"], pCreateInfos, json_options_); - FieldToJson(args["pAllocator"], pAllocator, json_options_); - HandleToJson(args["pPipelines"], pPipelines, json_options_); + HandleToJson(args["device"], device, json_options); + HandleToJson(args["deferredOperation"], deferredOperation, json_options); + HandleToJson(args["pipelineCache"], pipelineCache, json_options); + FieldToJson(args["createInfoCount"], createInfoCount, json_options); + FieldToJson(args["pCreateInfos"], pCreateInfos, json_options); + FieldToJson(args["pAllocator"], pAllocator, json_options); + HandleToJson(args["pPipelines"], pPipelines, json_options); WriteBlockEnd(); } @@ -9626,14 +10226,15 @@ void VulkanExportJsonConsumer::Process_vkGetRayTracingCaptureReplayShaderGroupHa PointerDecoder* pData) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkGetRayTracingCaptureReplayShaderGroupHandlesKHR"); - FieldToJson(jdata[NameReturn()], returnValue, json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameReturn()], returnValue, json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["device"], device, json_options_); - HandleToJson(args["pipeline"], pipeline, json_options_); - FieldToJson(args["firstGroup"], firstGroup, json_options_); - FieldToJson(args["groupCount"], groupCount, json_options_); - FieldToJson(args["dataSize"], dataSize, json_options_); - FieldToJson(args["pData"], pData, json_options_); + HandleToJson(args["device"], device, json_options); + HandleToJson(args["pipeline"], pipeline, json_options); + FieldToJson(args["firstGroup"], firstGroup, json_options); + FieldToJson(args["groupCount"], groupCount, json_options); + FieldToJson(args["dataSize"], dataSize, json_options); + FieldToJson(args["pData"], pData, json_options); WriteBlockEnd(); } @@ -9647,14 +10248,15 @@ void VulkanExportJsonConsumer::Process_vkCmdTraceRaysIndirectKHR( VkDeviceAddress indirectDeviceAddress) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCmdTraceRaysIndirectKHR"); - FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["commandBuffer"], commandBuffer, json_options_); - FieldToJson(args["pRaygenShaderBindingTable"], pRaygenShaderBindingTable, json_options_); - FieldToJson(args["pMissShaderBindingTable"], pMissShaderBindingTable, json_options_); - FieldToJson(args["pHitShaderBindingTable"], pHitShaderBindingTable, json_options_); - FieldToJson(args["pCallableShaderBindingTable"], pCallableShaderBindingTable, json_options_); - FieldToJsonAsHex(args["indirectDeviceAddress"], indirectDeviceAddress, json_options_); + HandleToJson(args["commandBuffer"], commandBuffer, json_options); + FieldToJson(args["pRaygenShaderBindingTable"], pRaygenShaderBindingTable, json_options); + FieldToJson(args["pMissShaderBindingTable"], pMissShaderBindingTable, json_options); + FieldToJson(args["pHitShaderBindingTable"], pHitShaderBindingTable, json_options); + FieldToJson(args["pCallableShaderBindingTable"], pCallableShaderBindingTable, json_options); + FieldToJsonAsHex(args["indirectDeviceAddress"], indirectDeviceAddress, json_options); WriteBlockEnd(); } @@ -9667,12 +10269,13 @@ void VulkanExportJsonConsumer::Process_vkGetRayTracingShaderGroupStackSizeKHR( VkShaderGroupShaderKHR groupShader) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkGetRayTracingShaderGroupStackSizeKHR"); - FieldToJson(jdata[NameReturn()], returnValue, json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameReturn()], returnValue, json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["device"], device, json_options_); - HandleToJson(args["pipeline"], pipeline, json_options_); - FieldToJson(args["group"], group, json_options_); - FieldToJson(args["groupShader"], groupShader, json_options_); + HandleToJson(args["device"], device, json_options); + HandleToJson(args["pipeline"], pipeline, json_options); + FieldToJson(args["group"], group, json_options); + FieldToJson(args["groupShader"], groupShader, json_options); WriteBlockEnd(); } @@ -9682,10 +10285,11 @@ void VulkanExportJsonConsumer::Process_vkCmdSetRayTracingPipelineStackSizeKHR( uint32_t pipelineStackSize) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCmdSetRayTracingPipelineStackSizeKHR"); - FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["commandBuffer"], commandBuffer, json_options_); - FieldToJson(args["pipelineStackSize"], pipelineStackSize, json_options_); + HandleToJson(args["commandBuffer"], commandBuffer, json_options); + FieldToJson(args["pipelineStackSize"], pipelineStackSize, json_options); WriteBlockEnd(); } @@ -9697,12 +10301,13 @@ void VulkanExportJsonConsumer::Process_vkCmdDrawMeshTasksEXT( uint32_t groupCountZ) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCmdDrawMeshTasksEXT"); - FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["commandBuffer"], commandBuffer, json_options_); - FieldToJson(args["groupCountX"], groupCountX, json_options_); - FieldToJson(args["groupCountY"], groupCountY, json_options_); - FieldToJson(args["groupCountZ"], groupCountZ, json_options_); + HandleToJson(args["commandBuffer"], commandBuffer, json_options); + FieldToJson(args["groupCountX"], groupCountX, json_options); + FieldToJson(args["groupCountY"], groupCountY, json_options); + FieldToJson(args["groupCountZ"], groupCountZ, json_options); WriteBlockEnd(); } @@ -9715,13 +10320,14 @@ void VulkanExportJsonConsumer::Process_vkCmdDrawMeshTasksIndirectEXT( uint32_t stride) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCmdDrawMeshTasksIndirectEXT"); - FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options); auto& args = jdata[NameArgs()]; - HandleToJson(args["commandBuffer"], commandBuffer, json_options_); - HandleToJson(args["buffer"], buffer, json_options_); - FieldToJson(args["offset"], offset, json_options_); - FieldToJson(args["drawCount"], drawCount, json_options_); - FieldToJson(args["stride"], stride, json_options_); + HandleToJson(args["commandBuffer"], commandBuffer, json_options); + HandleToJson(args["buffer"], buffer, json_options); + FieldToJson(args["offset"], offset, json_options); + FieldToJson(args["drawCount"], drawCount, json_options); + FieldToJson(args["stride"], stride, json_options); WriteBlockEnd(); } @@ -9736,15 +10342,16 @@ void VulkanExportJsonConsumer::Process_vkCmdDrawMeshTasksIndirectCountEXT( uint32_t stride) { nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "vkCmdDrawMeshTasksIndirectCountEXT"); - FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options_); - auto& args = jdata[NameArgs()]; - HandleToJson(args["commandBuffer"], commandBuffer, json_options_); - HandleToJson(args["buffer"], buffer, json_options_); - FieldToJson(args["offset"], offset, json_options_); - HandleToJson(args["countBuffer"], countBuffer, json_options_); - FieldToJson(args["countBufferOffset"], countBufferOffset, json_options_); - FieldToJson(args["maxDrawCount"], maxDrawCount, json_options_); - FieldToJson(args["stride"], stride, json_options_); + const JsonOptions& json_options = GetJsonOptions(); + FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options); + auto& args = jdata[NameArgs()]; + HandleToJson(args["commandBuffer"], commandBuffer, json_options); + HandleToJson(args["buffer"], buffer, json_options); + FieldToJson(args["offset"], offset, json_options); + HandleToJson(args["countBuffer"], countBuffer, json_options); + FieldToJson(args["countBufferOffset"], countBufferOffset, json_options); + FieldToJson(args["maxDrawCount"], maxDrawCount, json_options); + FieldToJson(args["stride"], stride, json_options); WriteBlockEnd(); } GFXRECON_END_NAMESPACE(decode) diff --git a/framework/generated/generated_vulkan_export_json_consumer.h b/framework/generated/generated_vulkan_json_consumer.h similarity index 99% rename from framework/generated/generated_vulkan_export_json_consumer.h rename to framework/generated/generated_vulkan_json_consumer.h index 0dbd2c1d34..6c97340289 100644 --- a/framework/generated/generated_vulkan_export_json_consumer.h +++ b/framework/generated/generated_vulkan_json_consumer.h @@ -26,10 +26,10 @@ ** */ -#ifndef GFXRECON_GENERATED_VULKAN_EXPORT_JSON_CONSUMER_H -#define GFXRECON_GENERATED_VULKAN_EXPORT_JSON_CONSUMER_H +#ifndef GFXRECON_GENERATED_VULKAN_JSON_CONSUMER_H +#define GFXRECON_GENERATED_VULKAN_JSON_CONSUMER_H -#include "decode/vulkan_export_json_consumer_base.h" +#include "decode/vulkan_json_consumer_base.h" #include "util/defines.h" #include "vulkan/vulkan.h" diff --git a/framework/generated/generated_vulkan_struct_to_json.cpp b/framework/generated/generated_vulkan_struct_to_json.cpp index b6fb7657d4..cb0ec6b3e5 100644 --- a/framework/generated/generated_vulkan_struct_to_json.cpp +++ b/framework/generated/generated_vulkan_struct_to_json.cpp @@ -28,9 +28,13 @@ #include "generated_vulkan_struct_to_json.h" #include "generated_vulkan_enum_to_json.h" +#include "util/to_string.h" GFXRECON_BEGIN_NAMESPACE(gfxrecon) GFXRECON_BEGIN_NAMESPACE(decode) +using util::JsonOptions; +using util::to_hex_variable_width; +using util::uuid_to_string; void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_StdVideoH264SpsVuiFlags* data, const JsonOptions& options) @@ -12927,7 +12931,7 @@ void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPipelineColorWri FieldToJson(jdata["sType"], decoded_value.sType, options); FieldToJson(jdata["attachmentCount"], decoded_value.attachmentCount, options); - VkBool32ToJson(jdata["pColorWriteEnables"], &meta_struct.pColorWriteEnables); + Bool32ToJson(jdata["pColorWriteEnables"], &meta_struct.pColorWriteEnables); FieldToJson(jdata["pNext"], meta_struct.pNext, options); } } diff --git a/framework/generated/generated_vulkan_struct_to_json.h b/framework/generated/generated_vulkan_struct_to_json.h index 7609f29eff..f3b56d50ea 100644 --- a/framework/generated/generated_vulkan_struct_to_json.h +++ b/framework/generated/generated_vulkan_struct_to_json.h @@ -34,966 +34,966 @@ GFXRECON_BEGIN_NAMESPACE(gfxrecon) GFXRECON_BEGIN_NAMESPACE(decode) -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_StdVideoH264SpsVuiFlags* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_StdVideoH264HrdParameters* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_StdVideoH264SequenceParameterSetVui* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_StdVideoH264SpsFlags* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_StdVideoH264ScalingLists* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_StdVideoH264SequenceParameterSet* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_StdVideoH264PpsFlags* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_StdVideoH264PictureParameterSet* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_StdVideoDecodeH264PictureInfoFlags* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_StdVideoDecodeH264PictureInfo* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_StdVideoDecodeH264ReferenceInfoFlags* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_StdVideoDecodeH264ReferenceInfo* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_StdVideoEncodeH264WeightTableFlags* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_StdVideoEncodeH264WeightTable* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_StdVideoEncodeH264SliceHeaderFlags* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_StdVideoEncodeH264PictureInfoFlags* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_StdVideoEncodeH264ReferenceInfoFlags* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_StdVideoEncodeH264ReferenceListsInfoFlags* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_StdVideoEncodeH264RefListModEntry* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_StdVideoEncodeH264RefPicMarkingEntry* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_StdVideoEncodeH264ReferenceListsInfo* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_StdVideoEncodeH264PictureInfo* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_StdVideoEncodeH264ReferenceInfo* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_StdVideoEncodeH264SliceHeader* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_StdVideoH265ProfileTierLevelFlags* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_StdVideoH265ProfileTierLevel* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_StdVideoH265DecPicBufMgr* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_StdVideoH265SubLayerHrdParameters* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_StdVideoH265HrdFlags* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_StdVideoH265HrdParameters* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_StdVideoH265VpsFlags* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_StdVideoH265VideoParameterSet* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_StdVideoH265ScalingLists* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_StdVideoH265ShortTermRefPicSetFlags* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_StdVideoH265ShortTermRefPicSet* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_StdVideoH265LongTermRefPicsSps* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_StdVideoH265SpsVuiFlags* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_StdVideoH265SequenceParameterSetVui* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_StdVideoH265PredictorPaletteEntries* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_StdVideoH265SpsFlags* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_StdVideoH265SequenceParameterSet* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_StdVideoH265PpsFlags* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_StdVideoH265PictureParameterSet* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_StdVideoDecodeH265PictureInfoFlags* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_StdVideoDecodeH265PictureInfo* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_StdVideoDecodeH265ReferenceInfoFlags* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_StdVideoDecodeH265ReferenceInfo* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_StdVideoEncodeH265WeightTableFlags* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_StdVideoEncodeH265WeightTable* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_StdVideoEncodeH265LongTermRefPics* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_StdVideoEncodeH265SliceSegmentHeaderFlags* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_StdVideoEncodeH265SliceSegmentHeader* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_StdVideoEncodeH265ReferenceListsInfoFlags* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_StdVideoEncodeH265ReferenceListsInfo* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_StdVideoEncodeH265PictureInfoFlags* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_StdVideoEncodeH265PictureInfo* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_StdVideoEncodeH265ReferenceInfoFlags* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_StdVideoEncodeH265ReferenceInfo* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkExtent2D* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkExtent3D* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkOffset2D* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkOffset3D* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkRect2D* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkBufferMemoryBarrier* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkDispatchIndirectCommand* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkDrawIndexedIndirectCommand* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkDrawIndirectCommand* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkImageSubresourceRange* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkImageMemoryBarrier* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkMemoryBarrier* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPipelineCacheHeaderVersionOne* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkAllocationCallbacks* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkApplicationInfo* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkFormatProperties* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkImageFormatProperties* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkInstanceCreateInfo* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkMemoryHeap* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkMemoryType* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceFeatures* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceLimits* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceMemoryProperties* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceSparseProperties* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceProperties* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkQueueFamilyProperties* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkDeviceQueueCreateInfo* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkDeviceCreateInfo* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkExtensionProperties* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkLayerProperties* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkSubmitInfo* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkMappedMemoryRange* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkMemoryAllocateInfo* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkMemoryRequirements* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkSparseMemoryBind* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkSparseBufferMemoryBindInfo* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkSparseImageOpaqueMemoryBindInfo* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkImageSubresource* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkSparseImageMemoryBind* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkSparseImageMemoryBindInfo* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkBindSparseInfo* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkSparseImageFormatProperties* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkSparseImageMemoryRequirements* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkFenceCreateInfo* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkSemaphoreCreateInfo* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkEventCreateInfo* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkQueryPoolCreateInfo* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkBufferCreateInfo* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkBufferViewCreateInfo* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkImageCreateInfo* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkSubresourceLayout* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkComponentMapping* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkImageViewCreateInfo* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkSpecializationMapEntry* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkSpecializationInfo* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPipelineShaderStageCreateInfo* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkComputePipelineCreateInfo* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkVertexInputBindingDescription* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkVertexInputAttributeDescription* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPipelineVertexInputStateCreateInfo* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPipelineInputAssemblyStateCreateInfo* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPipelineTessellationStateCreateInfo* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkViewport* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPipelineViewportStateCreateInfo* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPipelineRasterizationStateCreateInfo* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPipelineMultisampleStateCreateInfo* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkStencilOpState* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPipelineDepthStencilStateCreateInfo* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPipelineColorBlendAttachmentState* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPipelineColorBlendStateCreateInfo* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPipelineDynamicStateCreateInfo* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkGraphicsPipelineCreateInfo* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPushConstantRange* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPipelineLayoutCreateInfo* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkSamplerCreateInfo* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkCopyDescriptorSet* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkDescriptorBufferInfo* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkDescriptorPoolSize* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkDescriptorPoolCreateInfo* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkDescriptorSetAllocateInfo* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkDescriptorSetLayoutBinding* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkDescriptorSetLayoutCreateInfo* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkAttachmentDescription* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkAttachmentReference* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkFramebufferCreateInfo* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkSubpassDescription* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkSubpassDependency* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkRenderPassCreateInfo* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkCommandPoolCreateInfo* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkCommandBufferAllocateInfo* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkCommandBufferInheritanceInfo* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkCommandBufferBeginInfo* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkBufferCopy* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkImageSubresourceLayers* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkBufferImageCopy* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkClearDepthStencilValue* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkClearAttachment* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkClearRect* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkImageBlit* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkImageCopy* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkImageResolve* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkRenderPassBeginInfo* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceSubgroupProperties* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkBindBufferMemoryInfo* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkBindImageMemoryInfo* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDevice16BitStorageFeatures* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkMemoryDedicatedRequirements* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkMemoryDedicatedAllocateInfo* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkMemoryAllocateFlagsInfo* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkDeviceGroupRenderPassBeginInfo* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkDeviceGroupCommandBufferBeginInfo* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkDeviceGroupSubmitInfo* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkDeviceGroupBindSparseInfo* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkBindBufferMemoryDeviceGroupInfo* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkBindImageMemoryDeviceGroupInfo* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceGroupProperties* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkDeviceGroupDeviceCreateInfo* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkBufferMemoryRequirementsInfo2* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkImageMemoryRequirementsInfo2* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkImageSparseMemoryRequirementsInfo2* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkMemoryRequirements2* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkSparseImageMemoryRequirements2* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceFeatures2* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceProperties2* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkFormatProperties2* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkImageFormatProperties2* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceImageFormatInfo2* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkQueueFamilyProperties2* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceMemoryProperties2* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkSparseImageFormatProperties2* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceSparseImageFormatInfo2* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDevicePointClippingProperties* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkInputAttachmentAspectReference* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkRenderPassInputAttachmentAspectCreateInfo* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkImageViewUsageCreateInfo* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPipelineTessellationDomainOriginStateCreateInfo* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkRenderPassMultiviewCreateInfo* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceMultiviewFeatures* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceMultiviewProperties* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceVariablePointersFeatures* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceProtectedMemoryFeatures* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceProtectedMemoryProperties* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkDeviceQueueInfo2* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkProtectedSubmitInfo* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkSamplerYcbcrConversionCreateInfo* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkSamplerYcbcrConversionInfo* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkBindImagePlaneMemoryInfo* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkImagePlaneMemoryRequirementsInfo* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceSamplerYcbcrConversionFeatures* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkSamplerYcbcrConversionImageFormatProperties* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkDescriptorUpdateTemplateEntry* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkDescriptorUpdateTemplateCreateInfo* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkExternalMemoryProperties* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceExternalImageFormatInfo* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkExternalImageFormatProperties* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceExternalBufferInfo* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkExternalBufferProperties* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceIDProperties* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkExternalMemoryImageCreateInfo* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkExternalMemoryBufferCreateInfo* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkExportMemoryAllocateInfo* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceExternalFenceInfo* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkExternalFenceProperties* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkExportFenceCreateInfo* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkExportSemaphoreCreateInfo* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceExternalSemaphoreInfo* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkExternalSemaphoreProperties* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceMaintenance3Properties* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkDescriptorSetLayoutSupport* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceShaderDrawParametersFeatures* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceVulkan11Features* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceVulkan11Properties* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceVulkan12Features* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkConformanceVersion* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceVulkan12Properties* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkImageFormatListCreateInfo* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkAttachmentDescription2* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkAttachmentReference2* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkSubpassDescription2* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkSubpassDependency2* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkRenderPassCreateInfo2* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkSubpassBeginInfo* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkSubpassEndInfo* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDevice8BitStorageFeatures* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceDriverProperties* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceShaderAtomicInt64Features* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceShaderFloat16Int8Features* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceFloatControlsProperties* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkDescriptorSetLayoutBindingFlagsCreateInfo* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceDescriptorIndexingFeatures* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceDescriptorIndexingProperties* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkDescriptorSetVariableDescriptorCountAllocateInfo* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkDescriptorSetVariableDescriptorCountLayoutSupport* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkSubpassDescriptionDepthStencilResolve* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceDepthStencilResolveProperties* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceScalarBlockLayoutFeatures* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkImageStencilUsageCreateInfo* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkSamplerReductionModeCreateInfo* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceSamplerFilterMinmaxProperties* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceVulkanMemoryModelFeatures* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceImagelessFramebufferFeatures* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkFramebufferAttachmentImageInfo* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkFramebufferAttachmentsCreateInfo* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkRenderPassAttachmentBeginInfo* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceUniformBufferStandardLayoutFeatures* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkAttachmentReferenceStencilLayout* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkAttachmentDescriptionStencilLayout* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceHostQueryResetFeatures* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceTimelineSemaphoreFeatures* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceTimelineSemaphoreProperties* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkSemaphoreTypeCreateInfo* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkTimelineSemaphoreSubmitInfo* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkSemaphoreWaitInfo* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkSemaphoreSignalInfo* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceBufferDeviceAddressFeatures* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkBufferDeviceAddressInfo* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkBufferOpaqueCaptureAddressCreateInfo* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkMemoryOpaqueCaptureAddressAllocateInfo* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkDeviceMemoryOpaqueCaptureAddressInfo* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceVulkan13Features* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceVulkan13Properties* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPipelineCreationFeedback* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPipelineCreationFeedbackCreateInfo* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceShaderTerminateInvocationFeatures* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceToolProperties* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDevicePrivateDataFeatures* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkDevicePrivateDataCreateInfo* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPrivateDataSlotCreateInfo* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDevicePipelineCreationCacheControlFeatures* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkMemoryBarrier2* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkBufferMemoryBarrier2* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkImageMemoryBarrier2* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkDependencyInfo* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkSemaphoreSubmitInfo* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkCommandBufferSubmitInfo* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkSubmitInfo2* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceSynchronization2Features* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceImageRobustnessFeatures* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkBufferCopy2* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkCopyBufferInfo2* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkImageCopy2* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkCopyImageInfo2* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkBufferImageCopy2* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkCopyBufferToImageInfo2* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkCopyImageToBufferInfo2* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkImageBlit2* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkBlitImageInfo2* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkImageResolve2* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkResolveImageInfo2* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceSubgroupSizeControlFeatures* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceSubgroupSizeControlProperties* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPipelineShaderStageRequiredSubgroupSizeCreateInfo* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceInlineUniformBlockFeatures* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceInlineUniformBlockProperties* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkWriteDescriptorSetInlineUniformBlock* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkDescriptorPoolInlineUniformBlockCreateInfo* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceTextureCompressionASTCHDRFeatures* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkRenderingAttachmentInfo* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkRenderingInfo* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPipelineRenderingCreateInfo* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceDynamicRenderingFeatures* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkCommandBufferInheritanceRenderingInfo* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceShaderIntegerDotProductFeatures* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceShaderIntegerDotProductProperties* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceTexelBufferAlignmentProperties* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkFormatProperties3* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceMaintenance4Features* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceMaintenance4Properties* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkDeviceBufferMemoryRequirements* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkDeviceImageMemoryRequirements* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkSurfaceCapabilitiesKHR* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkSurfaceFormatKHR* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkSwapchainCreateInfoKHR* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPresentInfoKHR* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkImageSwapchainCreateInfoKHR* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkBindImageMemorySwapchainInfoKHR* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkAcquireNextImageInfoKHR* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkDeviceGroupPresentCapabilitiesKHR* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkDeviceGroupPresentInfoKHR* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkDeviceGroupSwapchainCreateInfoKHR* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkDisplayModeParametersKHR* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkDisplayModeCreateInfoKHR* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkDisplayModePropertiesKHR* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkDisplayPlaneCapabilitiesKHR* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkDisplayPlanePropertiesKHR* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkDisplayPropertiesKHR* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkDisplaySurfaceCreateInfoKHR* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkDisplayPresentInfoKHR* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkXlibSurfaceCreateInfoKHR* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkXcbSurfaceCreateInfoKHR* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkWaylandSurfaceCreateInfoKHR* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkAndroidSurfaceCreateInfoKHR* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkWin32SurfaceCreateInfoKHR* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkQueueFamilyQueryResultStatusPropertiesKHR* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkQueueFamilyVideoPropertiesKHR* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkVideoProfileInfoKHR* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkVideoProfileListInfoKHR* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkVideoCapabilitiesKHR* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceVideoFormatInfoKHR* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkVideoFormatPropertiesKHR* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkVideoPictureResourceInfoKHR* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkVideoReferenceSlotInfoKHR* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkVideoSessionMemoryRequirementsKHR* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkBindVideoSessionMemoryInfoKHR* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkVideoSessionCreateInfoKHR* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkVideoSessionParametersCreateInfoKHR* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkVideoSessionParametersUpdateInfoKHR* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkVideoBeginCodingInfoKHR* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkVideoEndCodingInfoKHR* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkVideoCodingControlInfoKHR* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkVideoDecodeCapabilitiesKHR* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkVideoDecodeUsageInfoKHR* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkVideoDecodeInfoKHR* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkVideoDecodeH264ProfileInfoKHR* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkVideoDecodeH264CapabilitiesKHR* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkVideoDecodeH264SessionParametersAddInfoKHR* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkVideoDecodeH264SessionParametersCreateInfoKHR* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkVideoDecodeH264PictureInfoKHR* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkVideoDecodeH264DpbSlotInfoKHR* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkRenderingFragmentShadingRateAttachmentInfoKHR* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkRenderingFragmentDensityMapAttachmentInfoEXT* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkAttachmentSampleCountInfoAMD* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkMultiviewPerViewAttributesInfoNVX* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkImportMemoryWin32HandleInfoKHR* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkExportMemoryWin32HandleInfoKHR* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkMemoryWin32HandlePropertiesKHR* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkMemoryGetWin32HandleInfoKHR* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkImportMemoryFdInfoKHR* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkMemoryFdPropertiesKHR* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkMemoryGetFdInfoKHR* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkWin32KeyedMutexAcquireReleaseInfoKHR* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkImportSemaphoreWin32HandleInfoKHR* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkExportSemaphoreWin32HandleInfoKHR* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkD3D12FenceSubmitInfoKHR* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkSemaphoreGetWin32HandleInfoKHR* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkImportSemaphoreFdInfoKHR* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkSemaphoreGetFdInfoKHR* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDevicePushDescriptorPropertiesKHR* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkRectLayerKHR* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPresentRegionKHR* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPresentRegionsKHR* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkSharedPresentSurfaceCapabilitiesKHR* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkImportFenceWin32HandleInfoKHR* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkExportFenceWin32HandleInfoKHR* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkFenceGetWin32HandleInfoKHR* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkImportFenceFdInfoKHR* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkFenceGetFdInfoKHR* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDevicePerformanceQueryFeaturesKHR* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDevicePerformanceQueryPropertiesKHR* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPerformanceCounterKHR* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPerformanceCounterDescriptionKHR* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkQueryPoolPerformanceCreateInfoKHR* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkAcquireProfilingLockInfoKHR* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPerformanceQuerySubmitInfoKHR* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceSurfaceInfo2KHR* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkSurfaceCapabilities2KHR* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkSurfaceFormat2KHR* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkDisplayProperties2KHR* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkDisplayPlaneProperties2KHR* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkDisplayModeProperties2KHR* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkDisplayPlaneInfo2KHR* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkDisplayPlaneCapabilities2KHR* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDevicePortabilitySubsetFeaturesKHR* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDevicePortabilitySubsetPropertiesKHR* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceShaderClockFeaturesKHR* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkVideoDecodeH265ProfileInfoKHR* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkVideoDecodeH265CapabilitiesKHR* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkVideoDecodeH265SessionParametersAddInfoKHR* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkVideoDecodeH265SessionParametersCreateInfoKHR* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkVideoDecodeH265PictureInfoKHR* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkVideoDecodeH265DpbSlotInfoKHR* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkDeviceQueueGlobalPriorityCreateInfoKHR* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkQueueFamilyGlobalPriorityPropertiesKHR* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkFragmentShadingRateAttachmentInfoKHR* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPipelineFragmentShadingRateStateCreateInfoKHR* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceFragmentShadingRateFeaturesKHR* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceFragmentShadingRatePropertiesKHR* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceFragmentShadingRateKHR* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkSurfaceProtectedCapabilitiesKHR* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDevicePresentWaitFeaturesKHR* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPipelineInfoKHR* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPipelineExecutablePropertiesKHR* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPipelineExecutableInfoKHR* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPipelineExecutableInternalRepresentationKHR* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkMemoryMapInfoKHR* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkMemoryUnmapInfoKHR* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPipelineLibraryCreateInfoKHR* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPresentIdKHR* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDevicePresentIdFeaturesKHR* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkVideoEncodeInfoKHR* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkVideoEncodeCapabilitiesKHR* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkQueryPoolVideoEncodeFeedbackCreateInfoKHR* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkVideoEncodeUsageInfoKHR* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkVideoEncodeRateControlLayerInfoKHR* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkVideoEncodeRateControlInfoKHR* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceVideoEncodeQualityLevelInfoKHR* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkVideoEncodeQualityLevelPropertiesKHR* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkVideoEncodeQualityLevelInfoKHR* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkVideoEncodeSessionParametersGetInfoKHR* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkVideoEncodeSessionParametersFeedbackInfoKHR* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkQueueFamilyCheckpointProperties2NV* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkCheckpointData2NV* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkTraceRaysIndirectCommand2KHR* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceMaintenance5FeaturesKHR* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceMaintenance5PropertiesKHR* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkRenderingAreaInfoKHR* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkImageSubresource2KHR* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkDeviceImageSubresourceInfoKHR* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkSubresourceLayout2KHR* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPipelineCreateFlags2CreateInfoKHR* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkBufferUsageFlags2CreateInfoKHR* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceRayTracingPositionFetchFeaturesKHR* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkCooperativeMatrixPropertiesKHR* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceCooperativeMatrixFeaturesKHR* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceCooperativeMatrixPropertiesKHR* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkDebugReportCallbackCreateInfoEXT* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPipelineRasterizationStateRasterizationOrderAMD* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkDebugMarkerObjectNameInfoEXT* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkDebugMarkerObjectTagInfoEXT* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkDebugMarkerMarkerInfoEXT* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkDedicatedAllocationImageCreateInfoNV* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkDedicatedAllocationBufferCreateInfoNV* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkDedicatedAllocationMemoryAllocateInfoNV* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceTransformFeedbackFeaturesEXT* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceTransformFeedbackPropertiesEXT* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPipelineRasterizationStateStreamCreateInfoEXT* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkImageViewHandleInfoNVX* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkImageViewAddressPropertiesNVX* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkVideoEncodeH264CapabilitiesEXT* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkVideoEncodeH264QpEXT* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkVideoEncodeH264QualityLevelPropertiesEXT* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkVideoEncodeH264SessionCreateInfoEXT* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkVideoEncodeH264SessionParametersAddInfoEXT* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkVideoEncodeH264SessionParametersCreateInfoEXT* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkVideoEncodeH264SessionParametersGetInfoEXT* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkVideoEncodeH264SessionParametersFeedbackInfoEXT* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkVideoEncodeH264NaluSliceInfoEXT* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkVideoEncodeH264PictureInfoEXT* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkVideoEncodeH264DpbSlotInfoEXT* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkVideoEncodeH264ProfileInfoEXT* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkVideoEncodeH264RateControlInfoEXT* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkVideoEncodeH264FrameSizeEXT* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkVideoEncodeH264RateControlLayerInfoEXT* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkVideoEncodeH264GopRemainingFrameInfoEXT* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkVideoEncodeH265CapabilitiesEXT* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkVideoEncodeH265SessionCreateInfoEXT* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkVideoEncodeH265QpEXT* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkVideoEncodeH265QualityLevelPropertiesEXT* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkVideoEncodeH265SessionParametersAddInfoEXT* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkVideoEncodeH265SessionParametersCreateInfoEXT* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkVideoEncodeH265SessionParametersGetInfoEXT* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkVideoEncodeH265SessionParametersFeedbackInfoEXT* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkVideoEncodeH265NaluSliceSegmentInfoEXT* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkVideoEncodeH265PictureInfoEXT* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkVideoEncodeH265DpbSlotInfoEXT* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkVideoEncodeH265ProfileInfoEXT* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkVideoEncodeH265RateControlInfoEXT* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkVideoEncodeH265FrameSizeEXT* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkVideoEncodeH265RateControlLayerInfoEXT* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkVideoEncodeH265GopRemainingFrameInfoEXT* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkTextureLODGatherFormatPropertiesAMD* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkShaderResourceUsageAMD* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkShaderStatisticsInfoAMD* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkStreamDescriptorSurfaceCreateInfoGGP* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceCornerSampledImageFeaturesNV* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkExternalImageFormatPropertiesNV* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkExternalMemoryImageCreateInfoNV* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkExportMemoryAllocateInfoNV* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkImportMemoryWin32HandleInfoNV* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkExportMemoryWin32HandleInfoNV* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkWin32KeyedMutexAcquireReleaseInfoNV* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkValidationFlagsEXT* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkViSurfaceCreateInfoNN* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkImageViewASTCDecodeModeEXT* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceASTCDecodeFeaturesEXT* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDevicePipelineRobustnessFeaturesEXT* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDevicePipelineRobustnessPropertiesEXT* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPipelineRobustnessCreateInfoEXT* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkConditionalRenderingBeginInfoEXT* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceConditionalRenderingFeaturesEXT* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkCommandBufferInheritanceConditionalRenderingInfoEXT* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkViewportWScalingNV* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPipelineViewportWScalingStateCreateInfoNV* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkSurfaceCapabilities2EXT* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkDisplayPowerInfoEXT* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkDeviceEventInfoEXT* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkDisplayEventInfoEXT* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkSwapchainCounterCreateInfoEXT* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkRefreshCycleDurationGOOGLE* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPastPresentationTimingGOOGLE* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPresentTimeGOOGLE* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPresentTimesInfoGOOGLE* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkViewportSwizzleNV* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPipelineViewportSwizzleStateCreateInfoNV* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceDiscardRectanglePropertiesEXT* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPipelineDiscardRectangleStateCreateInfoEXT* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceConservativeRasterizationPropertiesEXT* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPipelineRasterizationConservativeStateCreateInfoEXT* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceDepthClipEnableFeaturesEXT* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPipelineRasterizationDepthClipStateCreateInfoEXT* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkXYColorEXT* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkHdrMetadataEXT* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkIOSSurfaceCreateInfoMVK* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkMacOSSurfaceCreateInfoMVK* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkDebugUtilsLabelEXT* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkDebugUtilsObjectNameInfoEXT* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkDebugUtilsMessengerCallbackDataEXT* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkDebugUtilsMessengerCreateInfoEXT* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkDebugUtilsObjectTagInfoEXT* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkAndroidHardwareBufferUsageANDROID* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkAndroidHardwareBufferPropertiesANDROID* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkAndroidHardwareBufferFormatPropertiesANDROID* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkImportAndroidHardwareBufferInfoANDROID* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkMemoryGetAndroidHardwareBufferInfoANDROID* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkExternalFormatANDROID* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkAndroidHardwareBufferFormatProperties2ANDROID* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkSampleLocationEXT* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkSampleLocationsInfoEXT* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkAttachmentSampleLocationsEXT* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkSubpassSampleLocationsEXT* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkRenderPassSampleLocationsBeginInfoEXT* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPipelineSampleLocationsStateCreateInfoEXT* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceSampleLocationsPropertiesEXT* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkMultisamplePropertiesEXT* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPipelineColorBlendAdvancedStateCreateInfoEXT* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPipelineCoverageToColorStateCreateInfoNV* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPipelineCoverageModulationStateCreateInfoNV* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceShaderSMBuiltinsPropertiesNV* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceShaderSMBuiltinsFeaturesNV* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkDrmFormatModifierPropertiesEXT* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkDrmFormatModifierPropertiesListEXT* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceImageDrmFormatModifierInfoEXT* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkImageDrmFormatModifierListCreateInfoEXT* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkImageDrmFormatModifierExplicitCreateInfoEXT* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkImageDrmFormatModifierPropertiesEXT* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkDrmFormatModifierProperties2EXT* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkDrmFormatModifierPropertiesList2EXT* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkValidationCacheCreateInfoEXT* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkShaderModuleValidationCacheCreateInfoEXT* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkShadingRatePaletteNV* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPipelineViewportShadingRateImageStateCreateInfoNV* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceShadingRateImageFeaturesNV* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceShadingRateImagePropertiesNV* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkCoarseSampleLocationNV* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkCoarseSampleOrderCustomNV* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPipelineViewportCoarseSampleOrderStateCreateInfoNV* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkRayTracingShaderGroupCreateInfoNV* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkRayTracingPipelineCreateInfoNV* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkGeometryTrianglesNV* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkGeometryAABBNV* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkGeometryDataNV* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkGeometryNV* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkAccelerationStructureInfoNV* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkAccelerationStructureCreateInfoNV* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkBindAccelerationStructureMemoryInfoNV* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkWriteDescriptorSetAccelerationStructureNV* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkAccelerationStructureMemoryRequirementsInfoNV* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceRayTracingPropertiesNV* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkTransformMatrixKHR* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkAabbPositionsKHR* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkAccelerationStructureInstanceKHR* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPipelineRepresentativeFragmentTestStateCreateInfoNV* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceImageViewImageFormatInfoEXT* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkFilterCubicImageViewImageFormatPropertiesEXT* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkImportMemoryHostPointerInfoEXT* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkMemoryHostPointerPropertiesEXT* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceExternalMemoryHostPropertiesEXT* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPipelineCompilerControlCreateInfoAMD* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkCalibratedTimestampInfoEXT* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceShaderCorePropertiesAMD* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkDeviceMemoryOverallocationCreateInfoAMD* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkVertexInputBindingDivisorDescriptionEXT* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPipelineVertexInputDivisorStateCreateInfoEXT* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPresentFrameTokenGGP* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceComputeShaderDerivativesFeaturesNV* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceMeshShaderFeaturesNV* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceMeshShaderPropertiesNV* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkDrawMeshTasksIndirectCommandNV* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceShaderImageFootprintFeaturesNV* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPipelineViewportExclusiveScissorStateCreateInfoNV* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceExclusiveScissorFeaturesNV* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkQueueFamilyCheckpointPropertiesNV* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkCheckpointDataNV* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkInitializePerformanceApiInfoINTEL* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkQueryPoolPerformanceQueryCreateInfoINTEL* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPerformanceMarkerInfoINTEL* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPerformanceStreamMarkerInfoINTEL* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPerformanceOverrideInfoINTEL* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPerformanceConfigurationAcquireInfoINTEL* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDevicePCIBusInfoPropertiesEXT* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkDisplayNativeHdrSurfaceCapabilitiesAMD* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkSwapchainDisplayNativeHdrCreateInfoAMD* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkImagePipeSurfaceCreateInfoFUCHSIA* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkMetalSurfaceCreateInfoEXT* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceFragmentDensityMapFeaturesEXT* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceFragmentDensityMapPropertiesEXT* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkRenderPassFragmentDensityMapCreateInfoEXT* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceShaderCoreProperties2AMD* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceCoherentMemoryFeaturesAMD* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceMemoryBudgetPropertiesEXT* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceMemoryPriorityFeaturesEXT* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkMemoryPriorityAllocateInfoEXT* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceBufferDeviceAddressFeaturesEXT* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkBufferDeviceAddressCreateInfoEXT* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkValidationFeaturesEXT* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkCooperativeMatrixPropertiesNV* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceCooperativeMatrixFeaturesNV* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceCooperativeMatrixPropertiesNV* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceCoverageReductionModeFeaturesNV* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPipelineCoverageReductionStateCreateInfoNV* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkFramebufferMixedSamplesCombinationNV* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceYcbcrImageArraysFeaturesEXT* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceProvokingVertexFeaturesEXT* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceProvokingVertexPropertiesEXT* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPipelineRasterizationProvokingVertexStateCreateInfoEXT* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkSurfaceFullScreenExclusiveInfoEXT* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkSurfaceCapabilitiesFullScreenExclusiveEXT* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkSurfaceFullScreenExclusiveWin32InfoEXT* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkHeadlessSurfaceCreateInfoEXT* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceLineRasterizationFeaturesEXT* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceLineRasterizationPropertiesEXT* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPipelineRasterizationLineStateCreateInfoEXT* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceShaderAtomicFloatFeaturesEXT* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceIndexTypeUint8FeaturesEXT* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceExtendedDynamicStateFeaturesEXT* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceHostImageCopyFeaturesEXT* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceHostImageCopyPropertiesEXT* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkMemoryToImageCopyEXT* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkImageToMemoryCopyEXT* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkCopyMemoryToImageInfoEXT* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkCopyImageToMemoryInfoEXT* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkCopyImageToImageInfoEXT* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkHostImageLayoutTransitionInfoEXT* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkSubresourceHostMemcpySizeEXT* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkHostImageCopyDevicePerformanceQueryEXT* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkSurfacePresentModeEXT* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkSurfacePresentScalingCapabilitiesEXT* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkSurfacePresentModeCompatibilityEXT* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceSwapchainMaintenance1FeaturesEXT* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkSwapchainPresentFenceInfoEXT* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkSwapchainPresentModesCreateInfoEXT* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkSwapchainPresentModeInfoEXT* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkSwapchainPresentScalingCreateInfoEXT* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkReleaseSwapchainImagesInfoEXT* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkGraphicsShaderGroupCreateInfoNV* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkGraphicsPipelineShaderGroupsCreateInfoNV* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkBindShaderGroupIndirectCommandNV* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkBindIndexBufferIndirectCommandNV* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkBindVertexBufferIndirectCommandNV* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkSetStateFlagsIndirectCommandNV* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkIndirectCommandsStreamNV* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkIndirectCommandsLayoutTokenNV* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkIndirectCommandsLayoutCreateInfoNV* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkGeneratedCommandsInfoNV* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkGeneratedCommandsMemoryRequirementsInfoNV* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceInheritedViewportScissorFeaturesNV* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkCommandBufferInheritanceViewportScissorInfoNV* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkRenderPassTransformBeginInfoQCOM* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkCommandBufferInheritanceRenderPassTransformInfoQCOM* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceDepthBiasControlFeaturesEXT* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkDepthBiasInfoEXT* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkDepthBiasRepresentationInfoEXT* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceDeviceMemoryReportFeaturesEXT* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkDeviceMemoryReportCallbackDataEXT* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkDeviceDeviceMemoryReportCreateInfoEXT* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceRobustness2FeaturesEXT* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceRobustness2PropertiesEXT* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkSamplerCustomBorderColorCreateInfoEXT* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceCustomBorderColorPropertiesEXT* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceCustomBorderColorFeaturesEXT* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDevicePresentBarrierFeaturesNV* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkSurfaceCapabilitiesPresentBarrierNV* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkSwapchainPresentBarrierCreateInfoNV* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceDiagnosticsConfigFeaturesNV* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkDeviceDiagnosticsConfigCreateInfoNV* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkQueryLowLatencySupportNV* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkGraphicsPipelineLibraryCreateInfoEXT* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPipelineFragmentShadingRateEnumStateCreateInfoNV* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkAccelerationStructureGeometryMotionTrianglesDataNV* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkAccelerationStructureMotionInfoNV* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkAccelerationStructureMatrixMotionInstanceNV* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkSRTDataNV* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkAccelerationStructureSRTMotionInstanceNV* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceRayTracingMotionBlurFeaturesNV* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceFragmentDensityMap2FeaturesEXT* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceFragmentDensityMap2PropertiesEXT* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkCopyCommandTransformInfoQCOM* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceImageCompressionControlFeaturesEXT* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkImageCompressionControlEXT* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkImageCompressionPropertiesEXT* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDevice4444FormatsFeaturesEXT* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceFaultFeaturesEXT* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkDeviceFaultCountsEXT* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkDeviceFaultAddressInfoEXT* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkDeviceFaultVendorInfoEXT* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkDeviceFaultInfoEXT* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkDeviceFaultVendorBinaryHeaderVersionOneEXT* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkDirectFBSurfaceCreateInfoEXT* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkMutableDescriptorTypeListEXT* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkMutableDescriptorTypeCreateInfoEXT* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkVertexInputBindingDescription2EXT* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkVertexInputAttributeDescription2EXT* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceDrmPropertiesEXT* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceAddressBindingReportFeaturesEXT* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkDeviceAddressBindingCallbackDataEXT* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceDepthClipControlFeaturesEXT* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPipelineViewportDepthClipControlCreateInfoEXT* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkImportMemoryZirconHandleInfoFUCHSIA* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkMemoryZirconHandlePropertiesFUCHSIA* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkMemoryGetZirconHandleInfoFUCHSIA* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkImportSemaphoreZirconHandleInfoFUCHSIA* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkSemaphoreGetZirconHandleInfoFUCHSIA* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceInvocationMaskFeaturesHUAWEI* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkMemoryGetRemoteAddressInfoNV* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceExternalMemoryRDMAFeaturesNV* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceFrameBoundaryFeaturesEXT* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkFrameBoundaryEXT* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkSubpassResolvePerformanceQueryEXT* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkMultisampledRenderToSingleSampledInfoEXT* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceExtendedDynamicState2FeaturesEXT* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkScreenSurfaceCreateInfoQNX* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceColorWriteEnableFeaturesEXT* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPipelineColorWriteCreateInfoEXT* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceImageViewMinLodFeaturesEXT* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkImageViewMinLodCreateInfoEXT* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceMultiDrawFeaturesEXT* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceMultiDrawPropertiesEXT* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkMultiDrawInfoEXT* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkMultiDrawIndexedInfoEXT* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceImage2DViewOf3DFeaturesEXT* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceShaderTileImageFeaturesEXT* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceShaderTileImagePropertiesEXT* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkMicromapUsageEXT* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkMicromapBuildInfoEXT* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkMicromapCreateInfoEXT* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceOpacityMicromapFeaturesEXT* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceOpacityMicromapPropertiesEXT* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkMicromapVersionInfoEXT* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkCopyMicromapToMemoryInfoEXT* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkCopyMemoryToMicromapInfoEXT* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkCopyMicromapInfoEXT* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkMicromapBuildSizesInfoEXT* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkAccelerationStructureTrianglesOpacityMicromapEXT* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkMicromapTriangleEXT* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceDisplacementMicromapFeaturesNV* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceDisplacementMicromapPropertiesNV* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkAccelerationStructureTrianglesDisplacementMicromapNV* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceClusterCullingShaderFeaturesHUAWEI* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceClusterCullingShaderPropertiesHUAWEI* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceBorderColorSwizzleFeaturesEXT* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkSamplerBorderColorComponentMappingCreateInfoEXT* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceShaderCorePropertiesARM* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceImageSlicedViewOf3DFeaturesEXT* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkImageViewSlicedCreateInfoEXT* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkDescriptorSetBindingReferenceVALVE* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkDescriptorSetLayoutHostMappingInfoVALVE* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceDepthClampZeroOneFeaturesEXT* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkSubpassFragmentDensityMapOffsetEndInfoQCOM* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkComputePipelineIndirectBufferInfoNV* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPipelineIndirectDeviceAddressInfoNV* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkBindPipelineIndirectCommandNV* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceLinearColorAttachmentFeaturesNV* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkImageViewSampleWeightCreateInfoQCOM* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceImageProcessingFeaturesQCOM* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceImageProcessingPropertiesQCOM* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceNestedCommandBufferFeaturesEXT* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceNestedCommandBufferPropertiesEXT* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkExternalMemoryAcquireUnmodifiedEXT* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceExtendedDynamicState3FeaturesEXT* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceExtendedDynamicState3PropertiesEXT* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkColorBlendEquationEXT* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkColorBlendAdvancedEXT* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkRenderPassCreationControlEXT* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkRenderPassCreationFeedbackInfoEXT* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkRenderPassCreationFeedbackCreateInfoEXT* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkRenderPassSubpassFeedbackInfoEXT* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkRenderPassSubpassFeedbackCreateInfoEXT* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkDirectDriverLoadingInfoLUNARG* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkDirectDriverLoadingListLUNARG* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceShaderModuleIdentifierPropertiesEXT* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPipelineShaderStageModuleIdentifierCreateInfoEXT* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkShaderModuleIdentifierEXT* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceOpticalFlowFeaturesNV* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceOpticalFlowPropertiesNV* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkOpticalFlowImageFormatInfoNV* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkOpticalFlowImageFormatPropertiesNV* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkOpticalFlowSessionCreateInfoNV* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkOpticalFlowSessionCreatePrivateDataInfoNV* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkOpticalFlowExecuteInfoNV* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceLegacyDitheringFeaturesEXT* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDevicePipelineProtectedAccessFeaturesEXT* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceExternalFormatResolveFeaturesANDROID* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceExternalFormatResolvePropertiesANDROID* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkAndroidHardwareBufferFormatResolvePropertiesANDROID* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceShaderObjectFeaturesEXT* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceShaderObjectPropertiesEXT* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkShaderCreateInfoEXT* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceTilePropertiesFeaturesQCOM* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkTilePropertiesQCOM* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceAmigoProfilingFeaturesSEC* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkAmigoProfilingSubmitInfoSEC* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceRayTracingInvocationReorderPropertiesNV* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceRayTracingInvocationReorderFeaturesNV* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceExtendedSparseAddressSpaceFeaturesNV* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceExtendedSparseAddressSpacePropertiesNV* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceShaderCoreBuiltinsFeaturesARM* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceShaderCoreBuiltinsPropertiesARM* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkMultiviewPerViewRenderAreasRenderPassBeginInfoQCOM* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceImageProcessing2FeaturesQCOM* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceImageProcessing2PropertiesQCOM* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkSamplerBlockMatchWindowCreateInfoQCOM* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceCubicWeightsFeaturesQCOM* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkSamplerCubicWeightsCreateInfoQCOM* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkBlitImageCubicWeightsInfoQCOM* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceYcbcrDegammaFeaturesQCOM* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkSamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceCubicClampFeaturesQCOM* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceLayeredDriverPropertiesMSFT* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceDescriptorPoolOverallocationFeaturesNV* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkAccelerationStructureBuildRangeInfoKHR* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkAccelerationStructureGeometryTrianglesDataKHR* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkAccelerationStructureGeometryAabbsDataKHR* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkAccelerationStructureGeometryInstancesDataKHR* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkAccelerationStructureBuildGeometryInfoKHR* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkAccelerationStructureCreateInfoKHR* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkWriteDescriptorSetAccelerationStructureKHR* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceAccelerationStructureFeaturesKHR* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceAccelerationStructurePropertiesKHR* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkAccelerationStructureDeviceAddressInfoKHR* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkAccelerationStructureVersionInfoKHR* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkCopyAccelerationStructureToMemoryInfoKHR* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkCopyMemoryToAccelerationStructureInfoKHR* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkCopyAccelerationStructureInfoKHR* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkAccelerationStructureBuildSizesInfoKHR* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkRayTracingShaderGroupCreateInfoKHR* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkRayTracingPipelineInterfaceCreateInfoKHR* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkRayTracingPipelineCreateInfoKHR* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceRayTracingPipelineFeaturesKHR* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceRayTracingPipelinePropertiesKHR* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkStridedDeviceAddressRegionKHR* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkTraceRaysIndirectCommandKHR* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceRayQueryFeaturesKHR* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceMeshShaderFeaturesEXT* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceMeshShaderPropertiesEXT* data, const JsonOptions& options = JsonOptions()); -void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkDrawMeshTasksIndirectCommandEXT* data, const JsonOptions& options = JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_StdVideoH264SpsVuiFlags* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_StdVideoH264HrdParameters* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_StdVideoH264SequenceParameterSetVui* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_StdVideoH264SpsFlags* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_StdVideoH264ScalingLists* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_StdVideoH264SequenceParameterSet* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_StdVideoH264PpsFlags* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_StdVideoH264PictureParameterSet* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_StdVideoDecodeH264PictureInfoFlags* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_StdVideoDecodeH264PictureInfo* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_StdVideoDecodeH264ReferenceInfoFlags* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_StdVideoDecodeH264ReferenceInfo* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_StdVideoEncodeH264WeightTableFlags* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_StdVideoEncodeH264WeightTable* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_StdVideoEncodeH264SliceHeaderFlags* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_StdVideoEncodeH264PictureInfoFlags* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_StdVideoEncodeH264ReferenceInfoFlags* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_StdVideoEncodeH264ReferenceListsInfoFlags* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_StdVideoEncodeH264RefListModEntry* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_StdVideoEncodeH264RefPicMarkingEntry* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_StdVideoEncodeH264ReferenceListsInfo* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_StdVideoEncodeH264PictureInfo* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_StdVideoEncodeH264ReferenceInfo* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_StdVideoEncodeH264SliceHeader* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_StdVideoH265ProfileTierLevelFlags* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_StdVideoH265ProfileTierLevel* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_StdVideoH265DecPicBufMgr* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_StdVideoH265SubLayerHrdParameters* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_StdVideoH265HrdFlags* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_StdVideoH265HrdParameters* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_StdVideoH265VpsFlags* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_StdVideoH265VideoParameterSet* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_StdVideoH265ScalingLists* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_StdVideoH265ShortTermRefPicSetFlags* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_StdVideoH265ShortTermRefPicSet* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_StdVideoH265LongTermRefPicsSps* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_StdVideoH265SpsVuiFlags* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_StdVideoH265SequenceParameterSetVui* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_StdVideoH265PredictorPaletteEntries* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_StdVideoH265SpsFlags* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_StdVideoH265SequenceParameterSet* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_StdVideoH265PpsFlags* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_StdVideoH265PictureParameterSet* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_StdVideoDecodeH265PictureInfoFlags* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_StdVideoDecodeH265PictureInfo* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_StdVideoDecodeH265ReferenceInfoFlags* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_StdVideoDecodeH265ReferenceInfo* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_StdVideoEncodeH265WeightTableFlags* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_StdVideoEncodeH265WeightTable* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_StdVideoEncodeH265LongTermRefPics* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_StdVideoEncodeH265SliceSegmentHeaderFlags* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_StdVideoEncodeH265SliceSegmentHeader* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_StdVideoEncodeH265ReferenceListsInfoFlags* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_StdVideoEncodeH265ReferenceListsInfo* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_StdVideoEncodeH265PictureInfoFlags* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_StdVideoEncodeH265PictureInfo* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_StdVideoEncodeH265ReferenceInfoFlags* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_StdVideoEncodeH265ReferenceInfo* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkExtent2D* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkExtent3D* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkOffset2D* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkOffset3D* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkRect2D* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkBufferMemoryBarrier* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkDispatchIndirectCommand* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkDrawIndexedIndirectCommand* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkDrawIndirectCommand* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkImageSubresourceRange* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkImageMemoryBarrier* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkMemoryBarrier* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPipelineCacheHeaderVersionOne* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkAllocationCallbacks* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkApplicationInfo* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkFormatProperties* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkImageFormatProperties* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkInstanceCreateInfo* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkMemoryHeap* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkMemoryType* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceFeatures* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceLimits* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceMemoryProperties* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceSparseProperties* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceProperties* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkQueueFamilyProperties* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkDeviceQueueCreateInfo* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkDeviceCreateInfo* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkExtensionProperties* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkLayerProperties* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkSubmitInfo* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkMappedMemoryRange* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkMemoryAllocateInfo* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkMemoryRequirements* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkSparseMemoryBind* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkSparseBufferMemoryBindInfo* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkSparseImageOpaqueMemoryBindInfo* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkImageSubresource* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkSparseImageMemoryBind* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkSparseImageMemoryBindInfo* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkBindSparseInfo* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkSparseImageFormatProperties* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkSparseImageMemoryRequirements* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkFenceCreateInfo* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkSemaphoreCreateInfo* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkEventCreateInfo* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkQueryPoolCreateInfo* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkBufferCreateInfo* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkBufferViewCreateInfo* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkImageCreateInfo* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkSubresourceLayout* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkComponentMapping* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkImageViewCreateInfo* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkSpecializationMapEntry* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkSpecializationInfo* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPipelineShaderStageCreateInfo* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkComputePipelineCreateInfo* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkVertexInputBindingDescription* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkVertexInputAttributeDescription* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPipelineVertexInputStateCreateInfo* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPipelineInputAssemblyStateCreateInfo* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPipelineTessellationStateCreateInfo* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkViewport* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPipelineViewportStateCreateInfo* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPipelineRasterizationStateCreateInfo* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPipelineMultisampleStateCreateInfo* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkStencilOpState* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPipelineDepthStencilStateCreateInfo* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPipelineColorBlendAttachmentState* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPipelineColorBlendStateCreateInfo* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPipelineDynamicStateCreateInfo* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkGraphicsPipelineCreateInfo* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPushConstantRange* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPipelineLayoutCreateInfo* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkSamplerCreateInfo* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkCopyDescriptorSet* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkDescriptorBufferInfo* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkDescriptorPoolSize* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkDescriptorPoolCreateInfo* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkDescriptorSetAllocateInfo* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkDescriptorSetLayoutBinding* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkDescriptorSetLayoutCreateInfo* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkAttachmentDescription* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkAttachmentReference* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkFramebufferCreateInfo* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkSubpassDescription* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkSubpassDependency* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkRenderPassCreateInfo* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkCommandPoolCreateInfo* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkCommandBufferAllocateInfo* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkCommandBufferInheritanceInfo* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkCommandBufferBeginInfo* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkBufferCopy* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkImageSubresourceLayers* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkBufferImageCopy* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkClearDepthStencilValue* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkClearAttachment* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkClearRect* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkImageBlit* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkImageCopy* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkImageResolve* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkRenderPassBeginInfo* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceSubgroupProperties* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkBindBufferMemoryInfo* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkBindImageMemoryInfo* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDevice16BitStorageFeatures* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkMemoryDedicatedRequirements* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkMemoryDedicatedAllocateInfo* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkMemoryAllocateFlagsInfo* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkDeviceGroupRenderPassBeginInfo* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkDeviceGroupCommandBufferBeginInfo* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkDeviceGroupSubmitInfo* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkDeviceGroupBindSparseInfo* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkBindBufferMemoryDeviceGroupInfo* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkBindImageMemoryDeviceGroupInfo* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceGroupProperties* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkDeviceGroupDeviceCreateInfo* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkBufferMemoryRequirementsInfo2* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkImageMemoryRequirementsInfo2* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkImageSparseMemoryRequirementsInfo2* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkMemoryRequirements2* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkSparseImageMemoryRequirements2* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceFeatures2* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceProperties2* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkFormatProperties2* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkImageFormatProperties2* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceImageFormatInfo2* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkQueueFamilyProperties2* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceMemoryProperties2* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkSparseImageFormatProperties2* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceSparseImageFormatInfo2* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDevicePointClippingProperties* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkInputAttachmentAspectReference* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkRenderPassInputAttachmentAspectCreateInfo* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkImageViewUsageCreateInfo* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPipelineTessellationDomainOriginStateCreateInfo* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkRenderPassMultiviewCreateInfo* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceMultiviewFeatures* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceMultiviewProperties* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceVariablePointersFeatures* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceProtectedMemoryFeatures* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceProtectedMemoryProperties* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkDeviceQueueInfo2* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkProtectedSubmitInfo* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkSamplerYcbcrConversionCreateInfo* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkSamplerYcbcrConversionInfo* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkBindImagePlaneMemoryInfo* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkImagePlaneMemoryRequirementsInfo* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceSamplerYcbcrConversionFeatures* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkSamplerYcbcrConversionImageFormatProperties* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkDescriptorUpdateTemplateEntry* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkDescriptorUpdateTemplateCreateInfo* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkExternalMemoryProperties* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceExternalImageFormatInfo* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkExternalImageFormatProperties* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceExternalBufferInfo* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkExternalBufferProperties* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceIDProperties* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkExternalMemoryImageCreateInfo* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkExternalMemoryBufferCreateInfo* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkExportMemoryAllocateInfo* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceExternalFenceInfo* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkExternalFenceProperties* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkExportFenceCreateInfo* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkExportSemaphoreCreateInfo* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceExternalSemaphoreInfo* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkExternalSemaphoreProperties* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceMaintenance3Properties* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkDescriptorSetLayoutSupport* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceShaderDrawParametersFeatures* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceVulkan11Features* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceVulkan11Properties* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceVulkan12Features* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkConformanceVersion* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceVulkan12Properties* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkImageFormatListCreateInfo* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkAttachmentDescription2* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkAttachmentReference2* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkSubpassDescription2* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkSubpassDependency2* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkRenderPassCreateInfo2* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkSubpassBeginInfo* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkSubpassEndInfo* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDevice8BitStorageFeatures* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceDriverProperties* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceShaderAtomicInt64Features* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceShaderFloat16Int8Features* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceFloatControlsProperties* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkDescriptorSetLayoutBindingFlagsCreateInfo* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceDescriptorIndexingFeatures* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceDescriptorIndexingProperties* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkDescriptorSetVariableDescriptorCountAllocateInfo* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkDescriptorSetVariableDescriptorCountLayoutSupport* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkSubpassDescriptionDepthStencilResolve* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceDepthStencilResolveProperties* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceScalarBlockLayoutFeatures* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkImageStencilUsageCreateInfo* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkSamplerReductionModeCreateInfo* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceSamplerFilterMinmaxProperties* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceVulkanMemoryModelFeatures* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceImagelessFramebufferFeatures* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkFramebufferAttachmentImageInfo* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkFramebufferAttachmentsCreateInfo* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkRenderPassAttachmentBeginInfo* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceUniformBufferStandardLayoutFeatures* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkAttachmentReferenceStencilLayout* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkAttachmentDescriptionStencilLayout* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceHostQueryResetFeatures* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceTimelineSemaphoreFeatures* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceTimelineSemaphoreProperties* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkSemaphoreTypeCreateInfo* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkTimelineSemaphoreSubmitInfo* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkSemaphoreWaitInfo* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkSemaphoreSignalInfo* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceBufferDeviceAddressFeatures* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkBufferDeviceAddressInfo* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkBufferOpaqueCaptureAddressCreateInfo* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkMemoryOpaqueCaptureAddressAllocateInfo* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkDeviceMemoryOpaqueCaptureAddressInfo* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceVulkan13Features* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceVulkan13Properties* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPipelineCreationFeedback* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPipelineCreationFeedbackCreateInfo* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceShaderTerminateInvocationFeatures* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceToolProperties* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDevicePrivateDataFeatures* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkDevicePrivateDataCreateInfo* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPrivateDataSlotCreateInfo* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDevicePipelineCreationCacheControlFeatures* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkMemoryBarrier2* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkBufferMemoryBarrier2* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkImageMemoryBarrier2* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkDependencyInfo* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkSemaphoreSubmitInfo* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkCommandBufferSubmitInfo* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkSubmitInfo2* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceSynchronization2Features* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceImageRobustnessFeatures* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkBufferCopy2* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkCopyBufferInfo2* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkImageCopy2* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkCopyImageInfo2* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkBufferImageCopy2* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkCopyBufferToImageInfo2* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkCopyImageToBufferInfo2* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkImageBlit2* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkBlitImageInfo2* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkImageResolve2* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkResolveImageInfo2* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceSubgroupSizeControlFeatures* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceSubgroupSizeControlProperties* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPipelineShaderStageRequiredSubgroupSizeCreateInfo* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceInlineUniformBlockFeatures* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceInlineUniformBlockProperties* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkWriteDescriptorSetInlineUniformBlock* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkDescriptorPoolInlineUniformBlockCreateInfo* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceTextureCompressionASTCHDRFeatures* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkRenderingAttachmentInfo* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkRenderingInfo* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPipelineRenderingCreateInfo* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceDynamicRenderingFeatures* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkCommandBufferInheritanceRenderingInfo* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceShaderIntegerDotProductFeatures* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceShaderIntegerDotProductProperties* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceTexelBufferAlignmentProperties* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkFormatProperties3* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceMaintenance4Features* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceMaintenance4Properties* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkDeviceBufferMemoryRequirements* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkDeviceImageMemoryRequirements* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkSurfaceCapabilitiesKHR* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkSurfaceFormatKHR* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkSwapchainCreateInfoKHR* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPresentInfoKHR* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkImageSwapchainCreateInfoKHR* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkBindImageMemorySwapchainInfoKHR* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkAcquireNextImageInfoKHR* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkDeviceGroupPresentCapabilitiesKHR* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkDeviceGroupPresentInfoKHR* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkDeviceGroupSwapchainCreateInfoKHR* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkDisplayModeParametersKHR* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkDisplayModeCreateInfoKHR* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkDisplayModePropertiesKHR* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkDisplayPlaneCapabilitiesKHR* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkDisplayPlanePropertiesKHR* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkDisplayPropertiesKHR* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkDisplaySurfaceCreateInfoKHR* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkDisplayPresentInfoKHR* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkXlibSurfaceCreateInfoKHR* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkXcbSurfaceCreateInfoKHR* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkWaylandSurfaceCreateInfoKHR* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkAndroidSurfaceCreateInfoKHR* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkWin32SurfaceCreateInfoKHR* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkQueueFamilyQueryResultStatusPropertiesKHR* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkQueueFamilyVideoPropertiesKHR* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkVideoProfileInfoKHR* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkVideoProfileListInfoKHR* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkVideoCapabilitiesKHR* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceVideoFormatInfoKHR* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkVideoFormatPropertiesKHR* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkVideoPictureResourceInfoKHR* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkVideoReferenceSlotInfoKHR* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkVideoSessionMemoryRequirementsKHR* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkBindVideoSessionMemoryInfoKHR* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkVideoSessionCreateInfoKHR* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkVideoSessionParametersCreateInfoKHR* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkVideoSessionParametersUpdateInfoKHR* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkVideoBeginCodingInfoKHR* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkVideoEndCodingInfoKHR* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkVideoCodingControlInfoKHR* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkVideoDecodeCapabilitiesKHR* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkVideoDecodeUsageInfoKHR* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkVideoDecodeInfoKHR* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkVideoDecodeH264ProfileInfoKHR* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkVideoDecodeH264CapabilitiesKHR* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkVideoDecodeH264SessionParametersAddInfoKHR* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkVideoDecodeH264SessionParametersCreateInfoKHR* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkVideoDecodeH264PictureInfoKHR* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkVideoDecodeH264DpbSlotInfoKHR* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkRenderingFragmentShadingRateAttachmentInfoKHR* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkRenderingFragmentDensityMapAttachmentInfoEXT* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkAttachmentSampleCountInfoAMD* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkMultiviewPerViewAttributesInfoNVX* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkImportMemoryWin32HandleInfoKHR* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkExportMemoryWin32HandleInfoKHR* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkMemoryWin32HandlePropertiesKHR* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkMemoryGetWin32HandleInfoKHR* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkImportMemoryFdInfoKHR* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkMemoryFdPropertiesKHR* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkMemoryGetFdInfoKHR* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkWin32KeyedMutexAcquireReleaseInfoKHR* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkImportSemaphoreWin32HandleInfoKHR* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkExportSemaphoreWin32HandleInfoKHR* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkD3D12FenceSubmitInfoKHR* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkSemaphoreGetWin32HandleInfoKHR* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkImportSemaphoreFdInfoKHR* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkSemaphoreGetFdInfoKHR* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDevicePushDescriptorPropertiesKHR* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkRectLayerKHR* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPresentRegionKHR* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPresentRegionsKHR* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkSharedPresentSurfaceCapabilitiesKHR* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkImportFenceWin32HandleInfoKHR* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkExportFenceWin32HandleInfoKHR* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkFenceGetWin32HandleInfoKHR* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkImportFenceFdInfoKHR* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkFenceGetFdInfoKHR* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDevicePerformanceQueryFeaturesKHR* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDevicePerformanceQueryPropertiesKHR* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPerformanceCounterKHR* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPerformanceCounterDescriptionKHR* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkQueryPoolPerformanceCreateInfoKHR* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkAcquireProfilingLockInfoKHR* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPerformanceQuerySubmitInfoKHR* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceSurfaceInfo2KHR* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkSurfaceCapabilities2KHR* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkSurfaceFormat2KHR* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkDisplayProperties2KHR* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkDisplayPlaneProperties2KHR* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkDisplayModeProperties2KHR* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkDisplayPlaneInfo2KHR* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkDisplayPlaneCapabilities2KHR* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDevicePortabilitySubsetFeaturesKHR* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDevicePortabilitySubsetPropertiesKHR* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceShaderClockFeaturesKHR* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkVideoDecodeH265ProfileInfoKHR* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkVideoDecodeH265CapabilitiesKHR* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkVideoDecodeH265SessionParametersAddInfoKHR* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkVideoDecodeH265SessionParametersCreateInfoKHR* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkVideoDecodeH265PictureInfoKHR* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkVideoDecodeH265DpbSlotInfoKHR* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkDeviceQueueGlobalPriorityCreateInfoKHR* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkQueueFamilyGlobalPriorityPropertiesKHR* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkFragmentShadingRateAttachmentInfoKHR* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPipelineFragmentShadingRateStateCreateInfoKHR* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceFragmentShadingRateFeaturesKHR* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceFragmentShadingRatePropertiesKHR* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceFragmentShadingRateKHR* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkSurfaceProtectedCapabilitiesKHR* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDevicePresentWaitFeaturesKHR* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPipelineInfoKHR* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPipelineExecutablePropertiesKHR* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPipelineExecutableInfoKHR* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPipelineExecutableInternalRepresentationKHR* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkMemoryMapInfoKHR* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkMemoryUnmapInfoKHR* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPipelineLibraryCreateInfoKHR* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPresentIdKHR* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDevicePresentIdFeaturesKHR* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkVideoEncodeInfoKHR* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkVideoEncodeCapabilitiesKHR* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkQueryPoolVideoEncodeFeedbackCreateInfoKHR* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkVideoEncodeUsageInfoKHR* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkVideoEncodeRateControlLayerInfoKHR* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkVideoEncodeRateControlInfoKHR* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceVideoEncodeQualityLevelInfoKHR* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkVideoEncodeQualityLevelPropertiesKHR* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkVideoEncodeQualityLevelInfoKHR* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkVideoEncodeSessionParametersGetInfoKHR* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkVideoEncodeSessionParametersFeedbackInfoKHR* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkQueueFamilyCheckpointProperties2NV* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkCheckpointData2NV* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkTraceRaysIndirectCommand2KHR* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceMaintenance5FeaturesKHR* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceMaintenance5PropertiesKHR* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkRenderingAreaInfoKHR* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkImageSubresource2KHR* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkDeviceImageSubresourceInfoKHR* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkSubresourceLayout2KHR* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPipelineCreateFlags2CreateInfoKHR* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkBufferUsageFlags2CreateInfoKHR* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceRayTracingPositionFetchFeaturesKHR* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkCooperativeMatrixPropertiesKHR* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceCooperativeMatrixFeaturesKHR* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceCooperativeMatrixPropertiesKHR* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkDebugReportCallbackCreateInfoEXT* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPipelineRasterizationStateRasterizationOrderAMD* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkDebugMarkerObjectNameInfoEXT* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkDebugMarkerObjectTagInfoEXT* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkDebugMarkerMarkerInfoEXT* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkDedicatedAllocationImageCreateInfoNV* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkDedicatedAllocationBufferCreateInfoNV* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkDedicatedAllocationMemoryAllocateInfoNV* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceTransformFeedbackFeaturesEXT* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceTransformFeedbackPropertiesEXT* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPipelineRasterizationStateStreamCreateInfoEXT* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkImageViewHandleInfoNVX* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkImageViewAddressPropertiesNVX* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkVideoEncodeH264CapabilitiesEXT* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkVideoEncodeH264QpEXT* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkVideoEncodeH264QualityLevelPropertiesEXT* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkVideoEncodeH264SessionCreateInfoEXT* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkVideoEncodeH264SessionParametersAddInfoEXT* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkVideoEncodeH264SessionParametersCreateInfoEXT* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkVideoEncodeH264SessionParametersGetInfoEXT* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkVideoEncodeH264SessionParametersFeedbackInfoEXT* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkVideoEncodeH264NaluSliceInfoEXT* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkVideoEncodeH264PictureInfoEXT* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkVideoEncodeH264DpbSlotInfoEXT* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkVideoEncodeH264ProfileInfoEXT* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkVideoEncodeH264RateControlInfoEXT* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkVideoEncodeH264FrameSizeEXT* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkVideoEncodeH264RateControlLayerInfoEXT* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkVideoEncodeH264GopRemainingFrameInfoEXT* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkVideoEncodeH265CapabilitiesEXT* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkVideoEncodeH265SessionCreateInfoEXT* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkVideoEncodeH265QpEXT* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkVideoEncodeH265QualityLevelPropertiesEXT* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkVideoEncodeH265SessionParametersAddInfoEXT* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkVideoEncodeH265SessionParametersCreateInfoEXT* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkVideoEncodeH265SessionParametersGetInfoEXT* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkVideoEncodeH265SessionParametersFeedbackInfoEXT* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkVideoEncodeH265NaluSliceSegmentInfoEXT* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkVideoEncodeH265PictureInfoEXT* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkVideoEncodeH265DpbSlotInfoEXT* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkVideoEncodeH265ProfileInfoEXT* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkVideoEncodeH265RateControlInfoEXT* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkVideoEncodeH265FrameSizeEXT* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkVideoEncodeH265RateControlLayerInfoEXT* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkVideoEncodeH265GopRemainingFrameInfoEXT* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkTextureLODGatherFormatPropertiesAMD* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkShaderResourceUsageAMD* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkShaderStatisticsInfoAMD* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkStreamDescriptorSurfaceCreateInfoGGP* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceCornerSampledImageFeaturesNV* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkExternalImageFormatPropertiesNV* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkExternalMemoryImageCreateInfoNV* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkExportMemoryAllocateInfoNV* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkImportMemoryWin32HandleInfoNV* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkExportMemoryWin32HandleInfoNV* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkWin32KeyedMutexAcquireReleaseInfoNV* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkValidationFlagsEXT* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkViSurfaceCreateInfoNN* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkImageViewASTCDecodeModeEXT* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceASTCDecodeFeaturesEXT* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDevicePipelineRobustnessFeaturesEXT* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDevicePipelineRobustnessPropertiesEXT* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPipelineRobustnessCreateInfoEXT* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkConditionalRenderingBeginInfoEXT* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceConditionalRenderingFeaturesEXT* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkCommandBufferInheritanceConditionalRenderingInfoEXT* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkViewportWScalingNV* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPipelineViewportWScalingStateCreateInfoNV* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkSurfaceCapabilities2EXT* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkDisplayPowerInfoEXT* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkDeviceEventInfoEXT* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkDisplayEventInfoEXT* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkSwapchainCounterCreateInfoEXT* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkRefreshCycleDurationGOOGLE* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPastPresentationTimingGOOGLE* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPresentTimeGOOGLE* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPresentTimesInfoGOOGLE* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkViewportSwizzleNV* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPipelineViewportSwizzleStateCreateInfoNV* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceDiscardRectanglePropertiesEXT* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPipelineDiscardRectangleStateCreateInfoEXT* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceConservativeRasterizationPropertiesEXT* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPipelineRasterizationConservativeStateCreateInfoEXT* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceDepthClipEnableFeaturesEXT* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPipelineRasterizationDepthClipStateCreateInfoEXT* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkXYColorEXT* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkHdrMetadataEXT* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkIOSSurfaceCreateInfoMVK* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkMacOSSurfaceCreateInfoMVK* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkDebugUtilsLabelEXT* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkDebugUtilsObjectNameInfoEXT* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkDebugUtilsMessengerCallbackDataEXT* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkDebugUtilsMessengerCreateInfoEXT* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkDebugUtilsObjectTagInfoEXT* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkAndroidHardwareBufferUsageANDROID* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkAndroidHardwareBufferPropertiesANDROID* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkAndroidHardwareBufferFormatPropertiesANDROID* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkImportAndroidHardwareBufferInfoANDROID* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkMemoryGetAndroidHardwareBufferInfoANDROID* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkExternalFormatANDROID* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkAndroidHardwareBufferFormatProperties2ANDROID* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkSampleLocationEXT* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkSampleLocationsInfoEXT* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkAttachmentSampleLocationsEXT* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkSubpassSampleLocationsEXT* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkRenderPassSampleLocationsBeginInfoEXT* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPipelineSampleLocationsStateCreateInfoEXT* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceSampleLocationsPropertiesEXT* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkMultisamplePropertiesEXT* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPipelineColorBlendAdvancedStateCreateInfoEXT* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPipelineCoverageToColorStateCreateInfoNV* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPipelineCoverageModulationStateCreateInfoNV* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceShaderSMBuiltinsPropertiesNV* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceShaderSMBuiltinsFeaturesNV* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkDrmFormatModifierPropertiesEXT* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkDrmFormatModifierPropertiesListEXT* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceImageDrmFormatModifierInfoEXT* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkImageDrmFormatModifierListCreateInfoEXT* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkImageDrmFormatModifierExplicitCreateInfoEXT* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkImageDrmFormatModifierPropertiesEXT* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkDrmFormatModifierProperties2EXT* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkDrmFormatModifierPropertiesList2EXT* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkValidationCacheCreateInfoEXT* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkShaderModuleValidationCacheCreateInfoEXT* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkShadingRatePaletteNV* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPipelineViewportShadingRateImageStateCreateInfoNV* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceShadingRateImageFeaturesNV* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceShadingRateImagePropertiesNV* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkCoarseSampleLocationNV* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkCoarseSampleOrderCustomNV* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPipelineViewportCoarseSampleOrderStateCreateInfoNV* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkRayTracingShaderGroupCreateInfoNV* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkRayTracingPipelineCreateInfoNV* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkGeometryTrianglesNV* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkGeometryAABBNV* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkGeometryDataNV* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkGeometryNV* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkAccelerationStructureInfoNV* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkAccelerationStructureCreateInfoNV* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkBindAccelerationStructureMemoryInfoNV* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkWriteDescriptorSetAccelerationStructureNV* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkAccelerationStructureMemoryRequirementsInfoNV* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceRayTracingPropertiesNV* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkTransformMatrixKHR* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkAabbPositionsKHR* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkAccelerationStructureInstanceKHR* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPipelineRepresentativeFragmentTestStateCreateInfoNV* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceImageViewImageFormatInfoEXT* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkFilterCubicImageViewImageFormatPropertiesEXT* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkImportMemoryHostPointerInfoEXT* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkMemoryHostPointerPropertiesEXT* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceExternalMemoryHostPropertiesEXT* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPipelineCompilerControlCreateInfoAMD* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkCalibratedTimestampInfoEXT* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceShaderCorePropertiesAMD* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkDeviceMemoryOverallocationCreateInfoAMD* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkVertexInputBindingDivisorDescriptionEXT* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPipelineVertexInputDivisorStateCreateInfoEXT* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPresentFrameTokenGGP* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceComputeShaderDerivativesFeaturesNV* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceMeshShaderFeaturesNV* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceMeshShaderPropertiesNV* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkDrawMeshTasksIndirectCommandNV* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceShaderImageFootprintFeaturesNV* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPipelineViewportExclusiveScissorStateCreateInfoNV* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceExclusiveScissorFeaturesNV* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkQueueFamilyCheckpointPropertiesNV* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkCheckpointDataNV* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkInitializePerformanceApiInfoINTEL* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkQueryPoolPerformanceQueryCreateInfoINTEL* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPerformanceMarkerInfoINTEL* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPerformanceStreamMarkerInfoINTEL* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPerformanceOverrideInfoINTEL* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPerformanceConfigurationAcquireInfoINTEL* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDevicePCIBusInfoPropertiesEXT* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkDisplayNativeHdrSurfaceCapabilitiesAMD* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkSwapchainDisplayNativeHdrCreateInfoAMD* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkImagePipeSurfaceCreateInfoFUCHSIA* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkMetalSurfaceCreateInfoEXT* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceFragmentDensityMapFeaturesEXT* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceFragmentDensityMapPropertiesEXT* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkRenderPassFragmentDensityMapCreateInfoEXT* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceShaderCoreProperties2AMD* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceCoherentMemoryFeaturesAMD* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceMemoryBudgetPropertiesEXT* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceMemoryPriorityFeaturesEXT* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkMemoryPriorityAllocateInfoEXT* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceBufferDeviceAddressFeaturesEXT* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkBufferDeviceAddressCreateInfoEXT* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkValidationFeaturesEXT* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkCooperativeMatrixPropertiesNV* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceCooperativeMatrixFeaturesNV* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceCooperativeMatrixPropertiesNV* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceCoverageReductionModeFeaturesNV* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPipelineCoverageReductionStateCreateInfoNV* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkFramebufferMixedSamplesCombinationNV* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceYcbcrImageArraysFeaturesEXT* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceProvokingVertexFeaturesEXT* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceProvokingVertexPropertiesEXT* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPipelineRasterizationProvokingVertexStateCreateInfoEXT* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkSurfaceFullScreenExclusiveInfoEXT* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkSurfaceCapabilitiesFullScreenExclusiveEXT* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkSurfaceFullScreenExclusiveWin32InfoEXT* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkHeadlessSurfaceCreateInfoEXT* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceLineRasterizationFeaturesEXT* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceLineRasterizationPropertiesEXT* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPipelineRasterizationLineStateCreateInfoEXT* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceShaderAtomicFloatFeaturesEXT* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceIndexTypeUint8FeaturesEXT* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceExtendedDynamicStateFeaturesEXT* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceHostImageCopyFeaturesEXT* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceHostImageCopyPropertiesEXT* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkMemoryToImageCopyEXT* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkImageToMemoryCopyEXT* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkCopyMemoryToImageInfoEXT* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkCopyImageToMemoryInfoEXT* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkCopyImageToImageInfoEXT* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkHostImageLayoutTransitionInfoEXT* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkSubresourceHostMemcpySizeEXT* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkHostImageCopyDevicePerformanceQueryEXT* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkSurfacePresentModeEXT* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkSurfacePresentScalingCapabilitiesEXT* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkSurfacePresentModeCompatibilityEXT* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceSwapchainMaintenance1FeaturesEXT* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkSwapchainPresentFenceInfoEXT* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkSwapchainPresentModesCreateInfoEXT* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkSwapchainPresentModeInfoEXT* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkSwapchainPresentScalingCreateInfoEXT* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkReleaseSwapchainImagesInfoEXT* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkGraphicsShaderGroupCreateInfoNV* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkGraphicsPipelineShaderGroupsCreateInfoNV* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkBindShaderGroupIndirectCommandNV* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkBindIndexBufferIndirectCommandNV* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkBindVertexBufferIndirectCommandNV* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkSetStateFlagsIndirectCommandNV* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkIndirectCommandsStreamNV* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkIndirectCommandsLayoutTokenNV* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkIndirectCommandsLayoutCreateInfoNV* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkGeneratedCommandsInfoNV* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkGeneratedCommandsMemoryRequirementsInfoNV* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceInheritedViewportScissorFeaturesNV* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkCommandBufferInheritanceViewportScissorInfoNV* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkRenderPassTransformBeginInfoQCOM* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkCommandBufferInheritanceRenderPassTransformInfoQCOM* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceDepthBiasControlFeaturesEXT* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkDepthBiasInfoEXT* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkDepthBiasRepresentationInfoEXT* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceDeviceMemoryReportFeaturesEXT* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkDeviceMemoryReportCallbackDataEXT* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkDeviceDeviceMemoryReportCreateInfoEXT* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceRobustness2FeaturesEXT* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceRobustness2PropertiesEXT* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkSamplerCustomBorderColorCreateInfoEXT* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceCustomBorderColorPropertiesEXT* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceCustomBorderColorFeaturesEXT* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDevicePresentBarrierFeaturesNV* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkSurfaceCapabilitiesPresentBarrierNV* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkSwapchainPresentBarrierCreateInfoNV* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceDiagnosticsConfigFeaturesNV* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkDeviceDiagnosticsConfigCreateInfoNV* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkQueryLowLatencySupportNV* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkGraphicsPipelineLibraryCreateInfoEXT* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPipelineFragmentShadingRateEnumStateCreateInfoNV* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkAccelerationStructureGeometryMotionTrianglesDataNV* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkAccelerationStructureMotionInfoNV* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkAccelerationStructureMatrixMotionInstanceNV* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkSRTDataNV* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkAccelerationStructureSRTMotionInstanceNV* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceRayTracingMotionBlurFeaturesNV* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceFragmentDensityMap2FeaturesEXT* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceFragmentDensityMap2PropertiesEXT* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkCopyCommandTransformInfoQCOM* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceImageCompressionControlFeaturesEXT* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkImageCompressionControlEXT* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkImageCompressionPropertiesEXT* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDevice4444FormatsFeaturesEXT* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceFaultFeaturesEXT* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkDeviceFaultCountsEXT* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkDeviceFaultAddressInfoEXT* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkDeviceFaultVendorInfoEXT* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkDeviceFaultInfoEXT* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkDeviceFaultVendorBinaryHeaderVersionOneEXT* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkDirectFBSurfaceCreateInfoEXT* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkMutableDescriptorTypeListEXT* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkMutableDescriptorTypeCreateInfoEXT* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkVertexInputBindingDescription2EXT* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkVertexInputAttributeDescription2EXT* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceDrmPropertiesEXT* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceAddressBindingReportFeaturesEXT* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkDeviceAddressBindingCallbackDataEXT* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceDepthClipControlFeaturesEXT* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPipelineViewportDepthClipControlCreateInfoEXT* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkImportMemoryZirconHandleInfoFUCHSIA* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkMemoryZirconHandlePropertiesFUCHSIA* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkMemoryGetZirconHandleInfoFUCHSIA* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkImportSemaphoreZirconHandleInfoFUCHSIA* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkSemaphoreGetZirconHandleInfoFUCHSIA* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceInvocationMaskFeaturesHUAWEI* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkMemoryGetRemoteAddressInfoNV* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceExternalMemoryRDMAFeaturesNV* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceFrameBoundaryFeaturesEXT* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkFrameBoundaryEXT* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkSubpassResolvePerformanceQueryEXT* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkMultisampledRenderToSingleSampledInfoEXT* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceExtendedDynamicState2FeaturesEXT* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkScreenSurfaceCreateInfoQNX* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceColorWriteEnableFeaturesEXT* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPipelineColorWriteCreateInfoEXT* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceImageViewMinLodFeaturesEXT* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkImageViewMinLodCreateInfoEXT* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceMultiDrawFeaturesEXT* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceMultiDrawPropertiesEXT* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkMultiDrawInfoEXT* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkMultiDrawIndexedInfoEXT* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceImage2DViewOf3DFeaturesEXT* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceShaderTileImageFeaturesEXT* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceShaderTileImagePropertiesEXT* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkMicromapUsageEXT* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkMicromapBuildInfoEXT* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkMicromapCreateInfoEXT* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceOpacityMicromapFeaturesEXT* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceOpacityMicromapPropertiesEXT* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkMicromapVersionInfoEXT* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkCopyMicromapToMemoryInfoEXT* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkCopyMemoryToMicromapInfoEXT* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkCopyMicromapInfoEXT* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkMicromapBuildSizesInfoEXT* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkAccelerationStructureTrianglesOpacityMicromapEXT* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkMicromapTriangleEXT* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceDisplacementMicromapFeaturesNV* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceDisplacementMicromapPropertiesNV* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkAccelerationStructureTrianglesDisplacementMicromapNV* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceClusterCullingShaderFeaturesHUAWEI* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceClusterCullingShaderPropertiesHUAWEI* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceBorderColorSwizzleFeaturesEXT* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkSamplerBorderColorComponentMappingCreateInfoEXT* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceShaderCorePropertiesARM* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceImageSlicedViewOf3DFeaturesEXT* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkImageViewSlicedCreateInfoEXT* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkDescriptorSetBindingReferenceVALVE* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkDescriptorSetLayoutHostMappingInfoVALVE* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceDepthClampZeroOneFeaturesEXT* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkSubpassFragmentDensityMapOffsetEndInfoQCOM* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkComputePipelineIndirectBufferInfoNV* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPipelineIndirectDeviceAddressInfoNV* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkBindPipelineIndirectCommandNV* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceLinearColorAttachmentFeaturesNV* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkImageViewSampleWeightCreateInfoQCOM* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceImageProcessingFeaturesQCOM* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceImageProcessingPropertiesQCOM* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceNestedCommandBufferFeaturesEXT* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceNestedCommandBufferPropertiesEXT* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkExternalMemoryAcquireUnmodifiedEXT* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceExtendedDynamicState3FeaturesEXT* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceExtendedDynamicState3PropertiesEXT* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkColorBlendEquationEXT* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkColorBlendAdvancedEXT* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkRenderPassCreationControlEXT* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkRenderPassCreationFeedbackInfoEXT* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkRenderPassCreationFeedbackCreateInfoEXT* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkRenderPassSubpassFeedbackInfoEXT* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkRenderPassSubpassFeedbackCreateInfoEXT* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkDirectDriverLoadingInfoLUNARG* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkDirectDriverLoadingListLUNARG* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceShaderModuleIdentifierPropertiesEXT* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPipelineShaderStageModuleIdentifierCreateInfoEXT* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkShaderModuleIdentifierEXT* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceOpticalFlowFeaturesNV* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceOpticalFlowPropertiesNV* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkOpticalFlowImageFormatInfoNV* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkOpticalFlowImageFormatPropertiesNV* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkOpticalFlowSessionCreateInfoNV* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkOpticalFlowSessionCreatePrivateDataInfoNV* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkOpticalFlowExecuteInfoNV* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceLegacyDitheringFeaturesEXT* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDevicePipelineProtectedAccessFeaturesEXT* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceExternalFormatResolveFeaturesANDROID* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceExternalFormatResolvePropertiesANDROID* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkAndroidHardwareBufferFormatResolvePropertiesANDROID* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceShaderObjectFeaturesEXT* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceShaderObjectPropertiesEXT* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkShaderCreateInfoEXT* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceTilePropertiesFeaturesQCOM* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkTilePropertiesQCOM* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceAmigoProfilingFeaturesSEC* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkAmigoProfilingSubmitInfoSEC* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceRayTracingInvocationReorderPropertiesNV* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceRayTracingInvocationReorderFeaturesNV* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceExtendedSparseAddressSpaceFeaturesNV* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceExtendedSparseAddressSpacePropertiesNV* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceShaderCoreBuiltinsFeaturesARM* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceShaderCoreBuiltinsPropertiesARM* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkMultiviewPerViewRenderAreasRenderPassBeginInfoQCOM* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceImageProcessing2FeaturesQCOM* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceImageProcessing2PropertiesQCOM* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkSamplerBlockMatchWindowCreateInfoQCOM* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceCubicWeightsFeaturesQCOM* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkSamplerCubicWeightsCreateInfoQCOM* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkBlitImageCubicWeightsInfoQCOM* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceYcbcrDegammaFeaturesQCOM* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkSamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceCubicClampFeaturesQCOM* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceLayeredDriverPropertiesMSFT* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceDescriptorPoolOverallocationFeaturesNV* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkAccelerationStructureBuildRangeInfoKHR* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkAccelerationStructureGeometryTrianglesDataKHR* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkAccelerationStructureGeometryAabbsDataKHR* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkAccelerationStructureGeometryInstancesDataKHR* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkAccelerationStructureBuildGeometryInfoKHR* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkAccelerationStructureCreateInfoKHR* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkWriteDescriptorSetAccelerationStructureKHR* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceAccelerationStructureFeaturesKHR* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceAccelerationStructurePropertiesKHR* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkAccelerationStructureDeviceAddressInfoKHR* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkAccelerationStructureVersionInfoKHR* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkCopyAccelerationStructureToMemoryInfoKHR* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkCopyMemoryToAccelerationStructureInfoKHR* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkCopyAccelerationStructureInfoKHR* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkAccelerationStructureBuildSizesInfoKHR* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkRayTracingShaderGroupCreateInfoKHR* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkRayTracingPipelineInterfaceCreateInfoKHR* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkRayTracingPipelineCreateInfoKHR* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceRayTracingPipelineFeaturesKHR* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceRayTracingPipelinePropertiesKHR* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkStridedDeviceAddressRegionKHR* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkTraceRaysIndirectCommandKHR* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceRayQueryFeaturesKHR* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceMeshShaderFeaturesEXT* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkPhysicalDeviceMeshShaderPropertiesEXT* data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_VkDrawMeshTasksIndirectCommandEXT* data, const util::JsonOptions& options = util::JsonOptions()); /// Works out the type of the struct at the end of a pNext pointer and dispatches /// recursively to the FieldToJson for that. -void FieldToJson(nlohmann::ordered_json& jdata, const PNextNode* data, const JsonOptions& options = JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const PNextNode* data, const util::JsonOptions& options = util::JsonOptions()); GFXRECON_END_NAMESPACE(decode) GFXRECON_END_NAMESPACE(gfxrecon) diff --git a/framework/generated/vulkan_generators/gencode.py b/framework/generated/vulkan_generators/gencode.py index 8846a04ce6..c2317e7bc3 100644 --- a/framework/generated/vulkan_generators/gencode.py +++ b/framework/generated/vulkan_generators/gencode.py @@ -58,8 +58,8 @@ # Consumers from vulkan_consumer_header_generator import VulkanConsumerHeaderGenerator, VulkanConsumerHeaderGeneratorOptions -from vulkan_export_json_consumer_header_generator import VulkanExportJsonConsumerHeaderGenerator, VulkanExportJsonConsumerHeaderGeneratorOptions -from vulkan_export_json_consumer_body_generator import VulkanExportJsonConsumerBodyGenerator, VulkanExportJsonConsumerBodyGeneratorOptions +from vulkan_json_consumer_header_generator import VulkanExportJsonConsumerHeaderGenerator, VulkanExportJsonConsumerHeaderGeneratorOptions +from vulkan_json_consumer_body_generator import VulkanExportJsonConsumerBodyGenerator, VulkanExportJsonConsumerBodyGeneratorOptions from vulkan_replay_consumer_body_generator import VulkanReplayConsumerBodyGenerator, VulkanReplayConsumerBodyGeneratorOptions from vulkan_referenced_resource_consumer_header_generator import VulkanReferencedResourceHeaderGenerator, VulkanReferencedResourceHeaderGeneratorOptions from vulkan_referenced_resource_consumer_body_generator import VulkanReferencedResourceBodyGenerator, VulkanReferencedResourceBodyGeneratorOptions @@ -630,13 +630,13 @@ def make_gen_opts(args): ) ] - gen_opts['generated_vulkan_export_json_consumer.h'] = [ + gen_opts['generated_vulkan_json_consumer.h'] = [ VulkanExportJsonConsumerHeaderGenerator, VulkanExportJsonConsumerHeaderGeneratorOptions( class_name='VulkanExportJsonConsumer', - base_class_header='vulkan_export_json_consumer_base.h', + base_class_header='vulkan_json_consumer_base.h', is_override=True, - filename='generated_vulkan_export_json_consumer.h', + filename='generated_vulkan_json_consumer.h', directory=directory, blacklists=blacklists, platform_types=platform_types, @@ -647,10 +647,10 @@ def make_gen_opts(args): ) ] - gen_opts['generated_vulkan_export_json_consumer.cpp'] = [ + gen_opts['generated_vulkan_json_consumer.cpp'] = [ VulkanExportJsonConsumerBodyGenerator, VulkanExportJsonConsumerBodyGeneratorOptions( - filename='generated_vulkan_export_json_consumer.cpp', + filename='generated_vulkan_json_consumer.cpp', directory=directory, blacklists=blacklists, platform_types=platform_types, diff --git a/framework/generated/vulkan_generators/vulkan_enum_to_json_body_generator.py b/framework/generated/vulkan_generators/vulkan_enum_to_json_body_generator.py index fa90326116..0714bb3757 100644 --- a/framework/generated/vulkan_generators/vulkan_enum_to_json_body_generator.py +++ b/framework/generated/vulkan_generators/vulkan_enum_to_json_body_generator.py @@ -88,10 +88,14 @@ def beginFile(self, genOpts): BaseGenerator.beginFile(self, genOpts) body = format_cpp_code(''' #include "generated_vulkan_enum_to_json.h" + #include "util/to_string.h" GFXRECON_BEGIN_NAMESPACE(gfxrecon) GFXRECON_BEGIN_NAMESPACE(decode) + using util::JsonOptions; + using util::to_hex_fixed_width; + template std::string ExpandFlags(TFlags flags, ToStringFunctionType toString) { diff --git a/framework/generated/vulkan_generators/vulkan_enum_to_json_header_generator.py b/framework/generated/vulkan_generators/vulkan_enum_to_json_header_generator.py index 4ba294becd..47bfbf20ad 100644 --- a/framework/generated/vulkan_generators/vulkan_enum_to_json_header_generator.py +++ b/framework/generated/vulkan_generators/vulkan_enum_to_json_header_generator.py @@ -87,8 +87,11 @@ def beginFile(self, genOpts): BaseGenerator.beginFile(self, genOpts) includes = format_cpp_code(''' #include "format/platform_types.h" - #include "decode/vulkan_json_util.h" - ''') + #include "util/json_util.h" + + ''' + ) + write(includes, file=self.outFile) self.includeVulkanHeaders(genOpts) write("", file=self.outFile) @@ -161,11 +164,11 @@ def make_decls(self): self.processedEnums.add(enum) if not enum in self.enumAliases: if enum in self.enumType and self.enumType[enum] == 'VkFlags64': - body = 'void FieldToJson({0}_t, nlohmann::ordered_json& jdata, const {0}& value, const JsonOptions& options = JsonOptions());' + body = 'void FieldToJson({0}_t, nlohmann::ordered_json& jdata, const {0}& value, const util::JsonOptions& options = util::JsonOptions());' else: - body = 'void FieldToJson(nlohmann::ordered_json& jdata, const {0}& value, const JsonOptions& options = JsonOptions());' + body = 'void FieldToJson(nlohmann::ordered_json& jdata, const {0}& value, const util::JsonOptions& options = util::JsonOptions());' write(body.format(enum), file=self.outFile) for flag in sorted(self.flagsType): - body = 'void FieldToJson({0}_t, nlohmann::ordered_json& jdata, const {1} flags, const JsonOptions& options = JsonOptions());' + body = 'void FieldToJson({0}_t, nlohmann::ordered_json& jdata, const {1} flags, const util::JsonOptions& options = util::JsonOptions());' write(body.format(flag, self.flagsType[flag]), file=self.outFile) diff --git a/framework/generated/vulkan_generators/vulkan_export_json_consumer_body_generator.py b/framework/generated/vulkan_generators/vulkan_json_consumer_body_generator.py similarity index 92% rename from framework/generated/vulkan_generators/vulkan_export_json_consumer_body_generator.py rename to framework/generated/vulkan_generators/vulkan_json_consumer_body_generator.py index 7a6e51a677..05c26a1afb 100644 --- a/framework/generated/vulkan_generators/vulkan_export_json_consumer_body_generator.py +++ b/framework/generated/vulkan_generators/vulkan_json_consumer_body_generator.py @@ -22,7 +22,7 @@ import sys from base_generator import BaseGenerator, BaseGeneratorOptions, write -from reformat_code import format_cpp_code, indent_cpp_code, remove_trailing_empty_lines +from reformat_code import format_cpp_code, indent_cpp_code, remove_trailing_newlines class VulkanExportJsonConsumerBodyGeneratorOptions(BaseGeneratorOptions): @@ -107,14 +107,16 @@ def beginFile(self, gen_opts): includes = format_cpp_code(''' #include "util/defines.h" - #include "generated/generated_vulkan_export_json_consumer.h" + #include "generated/generated_vulkan_json_consumer.h" #include "decode/custom_vulkan_struct_to_json.h" ''') write(includes, file=self.outFile) self.includeVulkanHeaders(gen_opts) - namespace = remove_trailing_empty_lines(indent_cpp_code(''' + namespace = remove_trailing_newlines(indent_cpp_code(''' GFXRECON_BEGIN_NAMESPACE(gfxrecon) GFXRECON_BEGIN_NAMESPACE(decode) + + using util::JsonOptions; ''')) write(namespace, file=self.outFile) @@ -151,7 +153,9 @@ def generate_feature(self): cmddef += format_cpp_code(''' {{ nlohmann::ordered_json& jdata = WriteApiCallStart(call_info, "{0}"); - '''.format(cmd)) + const JsonOptions& json_options = GetJsonOptions(); + '''.format(cmd) + ) cmddef += '\n' cmddef += self.make_consumer_func_body( return_type, cmd, values @@ -174,21 +178,21 @@ def make_consumer_func_body(self, return_type, name, values): body = '' if name in self.queueSubmit: - body += ' FieldToJson(jdata[NameSubmitIndex()], ++submit_index_, json_options_);\n' + body += ' FieldToJson(jdata[NameSubmitIndex()], ++submit_index_, json_options);\n' elif self.is_command_buffer_cmd(name): - body += ' FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options_);\n' + body += ' FieldToJson(jdata[NameCommandIndex()], GetCommandBufferRecordIndex(commandBuffer), json_options);\n' # Handle function return value if return_type in self.formatAsHex: - body += ' FieldToJsonAsHex(jdata[NameReturn()], returnValue, json_options_);\n' + body += ' FieldToJsonAsHex(jdata[NameReturn()], returnValue, json_options);\n' elif 'VkBool32' == return_type: # Output as JSON boolean type true/false without quotes: - body += ' VkBool32ToJson(jdata[NameReturn()], returnValue, json_options_);\n' + body += ' Bool32ToJson(jdata[NameReturn()], returnValue, json_options);\n' elif self.is_handle(return_type): - body += ' HandleToJson(jdata[NameReturn()], returnValue, json_options_);\n' + body += ' HandleToJson(jdata[NameReturn()], returnValue, json_options);\n' # Enums, ints, etc. handled by default and static dispatch based on C++ type: elif not 'void' in return_type: - body += ' FieldToJson(jdata[NameReturn()], returnValue, json_options_);\n' + body += ' FieldToJson(jdata[NameReturn()], returnValue, json_options);\n' if len(values) > 0: body += ' auto& args = jdata[NameArgs()];\n' @@ -199,20 +203,20 @@ def make_consumer_func_body(self, return_type, name, values): # Default to letting the right function overload to be resolved based on argument types, # including enums, strings ints, floats etc.: # Note there are overloads for scalars and pointers/arrays. - to_json = 'FieldToJson(args["{0}"], {0}, json_options_)' + to_json = 'FieldToJson(args["{0}"], {0}, json_options)' # Special cases: if 'VkBool32' == value.base_type: - to_json = 'VkBool32ToJson(args["{0}"], {0}, json_options_)' + to_json = 'Bool32ToJson(args["{0}"], {0}, json_options)' elif value.name == 'ppData' or (value.base_type in self.formatAsHex): - to_json = 'FieldToJsonAsHex(args["{0}"], {0}, json_options_)' + to_json = 'FieldToJsonAsHex(args["{0}"], {0}, json_options)' elif self.is_handle(value.base_type) or value.name in self.formatAsHandle: - to_json = 'HandleToJson(args["{0}"], {0}, json_options_)' + to_json = 'HandleToJson(args["{0}"], {0}, json_options)' elif self.is_flags(value.base_type): if value.base_type in self.flagsTypeAlias: flagsEnumType = self.flagsTypeAlias[value.base_type] if not (value.is_pointer or value.is_array): - to_json = 'FieldToJson({2}_t(), args["{0}"], {0}, json_options_)' + to_json = 'FieldToJson({2}_t(), args["{0}"], {0}, json_options)' else: # Default to outputting as the raw type but warn: print("Missing conversion of pointers to", flagsEnumType, "in", name, file=sys.stderr) diff --git a/framework/generated/vulkan_generators/vulkan_export_json_consumer_header_generator.py b/framework/generated/vulkan_generators/vulkan_json_consumer_header_generator.py similarity index 100% rename from framework/generated/vulkan_generators/vulkan_export_json_consumer_header_generator.py rename to framework/generated/vulkan_generators/vulkan_json_consumer_header_generator.py diff --git a/framework/generated/vulkan_generators/vulkan_struct_to_json_body_generator.py b/framework/generated/vulkan_generators/vulkan_struct_to_json_body_generator.py index 7ab6326a93..edfac85dd1 100644 --- a/framework/generated/vulkan_generators/vulkan_struct_to_json_body_generator.py +++ b/framework/generated/vulkan_generators/vulkan_struct_to_json_body_generator.py @@ -23,7 +23,7 @@ import sys from base_generator import * -from reformat_code import format_cpp_code, indent_cpp_code, remove_leading_empty_lines, remove_trailing_empty_lines +from reformat_code import format_cpp_code, indent_cpp_code, remove_leading_empty_lines, remove_trailing_newlines class VulkanStructToJsonBodyGeneratorOptions(BaseGeneratorOptions): """Options for generating C++ functions for serializing Vulkan structures to JSON""" @@ -103,10 +103,14 @@ def beginFile(self, genOpts): body = format_cpp_code(''' #include "generated_vulkan_struct_to_json.h" #include "generated_vulkan_enum_to_json.h" + #include "util/to_string.h" GFXRECON_BEGIN_NAMESPACE(gfxrecon) GFXRECON_BEGIN_NAMESPACE(decode) - ''') + using util::JsonOptions; + using util::to_hex_variable_width; + using util::uuid_to_string; + ''') body += "\n" write(body, file=self.outFile) # yapf: enable @@ -135,7 +139,7 @@ def endFile(self): GFXRECON_END_NAMESPACE(decode) GFXRECON_END_NAMESPACE(gfxrecon) ''' - body = remove_trailing_empty_lines(indent_cpp_code(body)) + body = remove_trailing_newlines(indent_cpp_code(body)) write(body, file=self.outFile) # Finish processing in superclass @@ -170,7 +174,7 @@ def generate_feature(self): } } ''') - body = remove_trailing_empty_lines(indent_cpp_code(body)) + body = remove_trailing_newlines(indent_cpp_code(body)) write(body, file=self.outFile) # yapf: enable @@ -200,7 +204,7 @@ def makeStructBody(self, name, values): elif self.is_handle(value.base_type): to_json = 'HandleToJson(jdata["{0}"], &meta_struct.{0}, options)' elif 'VkBool32' == value.base_type: - to_json = 'VkBool32ToJson(jdata["{0}"], &meta_struct.{0})' + to_json = 'Bool32ToJson(jdata["{0}"], &meta_struct.{0})' else: to_json = 'FieldToJson(jdata["{0}"], meta_struct.{0}, options)' else: @@ -215,7 +219,7 @@ def makeStructBody(self, name, values): to_json = 'FieldToJson(jdata["{0}"], meta_struct.{0}, options)' elif 'VkBool32' == value.base_type: # Currently unused: - to_json = 'VkBool32ToJson(jdata["{0}"], &meta_struct.{0})' + to_json = 'Bool32ToJson(jdata["{0}"], &meta_struct.{0})' elif not value.is_dynamic: to_json = 'FieldToJson(jdata["{0}"], &meta_struct.{0}, options)' else: diff --git a/framework/generated/vulkan_generators/vulkan_struct_to_json_header_generator.py b/framework/generated/vulkan_generators/vulkan_struct_to_json_header_generator.py index 9ca204a610..cf177d1afe 100644 --- a/framework/generated/vulkan_generators/vulkan_struct_to_json_header_generator.py +++ b/framework/generated/vulkan_generators/vulkan_struct_to_json_header_generator.py @@ -23,7 +23,7 @@ import sys from base_generator import * -from reformat_code import format_cpp_code, indent_cpp_code, remove_trailing_empty_lines +from reformat_code import format_cpp_code, indent_cpp_code, remove_trailing_newlines class VulkanStructToJsonHeaderGeneratorOptions(BaseGeneratorOptions): @@ -94,14 +94,14 @@ def beginFile(self, genOpts): # Method override # yapf: disable def endFile(self): - body = remove_trailing_empty_lines(indent_cpp_code(''' + body = remove_trailing_newlines(indent_cpp_code(''' /// Works out the type of the struct at the end of a pNext pointer and dispatches /// recursively to the FieldToJson for that. - void FieldToJson(nlohmann::ordered_json& jdata, const PNextNode* data, const JsonOptions& options = JsonOptions()); + void FieldToJson(nlohmann::ordered_json& jdata, const PNextNode* data, const util::JsonOptions& options = util::JsonOptions()); GFXRECON_END_NAMESPACE(decode) GFXRECON_END_NAMESPACE(gfxrecon) - ''')) + ''')) write(body, file=self.outFile) # Finish processing in superclass @@ -122,7 +122,7 @@ def need_feature_generation(self): def generate_feature(self): for struct in self.get_filtered_struct_names(): if not struct in self.customImplementationRequired: - body = "void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_{0}* data, const JsonOptions& options = JsonOptions());".format(struct) + body = "void FieldToJson(nlohmann::ordered_json& jdata, const Decoded_{0}* data, const util::JsonOptions& options = util::JsonOptions());".format(struct) write(body, file=self.outFile) # yapf: enable diff --git a/framework/graphics/dx12_util.cpp b/framework/graphics/dx12_util.cpp index 86025cdc96..c309c8f1b6 100644 --- a/framework/graphics/dx12_util.cpp +++ b/framework/graphics/dx12_util.cpp @@ -1089,6 +1089,141 @@ uint64_t GetResourceSizeInBytes(ID3D12Device8* device, const D3D12_RESOURCE_DESC return size; } +bool IsDepthStencilFormat(const DXGI_FORMAT format) +{ + switch (format) + { + // Depth Formats: + case DXGI_FORMAT_D32_FLOAT: + case DXGI_FORMAT_D32_FLOAT_S8X24_UINT: + case DXGI_FORMAT_D24_UNORM_S8_UINT: + case DXGI_FORMAT_D16_UNORM: + return true; + + // Assumed colour formats listed explicitly so a new format added to the enum would trigger a compiler warning to update this: + case DXGI_FORMAT_R32G32B32A32_TYPELESS: + case DXGI_FORMAT_R32G32B32A32_FLOAT: + case DXGI_FORMAT_R32G32B32A32_UINT: + case DXGI_FORMAT_R32G32B32A32_SINT: + case DXGI_FORMAT_R32G32B32_TYPELESS: + case DXGI_FORMAT_R32G32B32_FLOAT: + case DXGI_FORMAT_R32G32B32_UINT: + case DXGI_FORMAT_R32G32B32_SINT: + case DXGI_FORMAT_R16G16B16A16_TYPELESS: + case DXGI_FORMAT_R16G16B16A16_FLOAT: + case DXGI_FORMAT_R16G16B16A16_UNORM: + case DXGI_FORMAT_R16G16B16A16_UINT: + case DXGI_FORMAT_R16G16B16A16_SNORM: + case DXGI_FORMAT_R16G16B16A16_SINT: + case DXGI_FORMAT_R32G32_TYPELESS: + case DXGI_FORMAT_R32G32_FLOAT: + case DXGI_FORMAT_R32G32_UINT: + case DXGI_FORMAT_R32G32_SINT: + case DXGI_FORMAT_R32G8X24_TYPELESS: + case DXGI_FORMAT_R32_FLOAT_X8X24_TYPELESS: + case DXGI_FORMAT_X32_TYPELESS_G8X24_UINT: + case DXGI_FORMAT_R10G10B10A2_TYPELESS: + case DXGI_FORMAT_R10G10B10A2_UNORM: + case DXGI_FORMAT_R10G10B10A2_UINT: + case DXGI_FORMAT_R11G11B10_FLOAT: + case DXGI_FORMAT_R8G8B8A8_TYPELESS: + case DXGI_FORMAT_R8G8B8A8_UNORM: + case DXGI_FORMAT_R8G8B8A8_UNORM_SRGB: + case DXGI_FORMAT_R8G8B8A8_UINT: + case DXGI_FORMAT_R8G8B8A8_SNORM: + case DXGI_FORMAT_R8G8B8A8_SINT: + case DXGI_FORMAT_R16G16_TYPELESS: + case DXGI_FORMAT_R16G16_FLOAT: + case DXGI_FORMAT_R16G16_UNORM: + case DXGI_FORMAT_R16G16_UINT: + case DXGI_FORMAT_R16G16_SNORM: + case DXGI_FORMAT_R16G16_SINT: + case DXGI_FORMAT_R32_TYPELESS: + case DXGI_FORMAT_R32_FLOAT: + case DXGI_FORMAT_R32_UINT: + case DXGI_FORMAT_R32_SINT: + case DXGI_FORMAT_R24G8_TYPELESS: + case DXGI_FORMAT_R24_UNORM_X8_TYPELESS: + case DXGI_FORMAT_X24_TYPELESS_G8_UINT: + case DXGI_FORMAT_R8G8_TYPELESS: + case DXGI_FORMAT_R8G8_UNORM: + case DXGI_FORMAT_R8G8_UINT: + case DXGI_FORMAT_R8G8_SNORM: + case DXGI_FORMAT_R8G8_SINT: + case DXGI_FORMAT_R16_TYPELESS: + case DXGI_FORMAT_R16_FLOAT: + case DXGI_FORMAT_R16_UNORM: + case DXGI_FORMAT_R16_UINT: + case DXGI_FORMAT_R16_SNORM: + case DXGI_FORMAT_R16_SINT: + case DXGI_FORMAT_R8_TYPELESS: + case DXGI_FORMAT_R8_UNORM: + case DXGI_FORMAT_R8_UINT: + case DXGI_FORMAT_R8_SNORM: + case DXGI_FORMAT_R8_SINT: + case DXGI_FORMAT_A8_UNORM: + case DXGI_FORMAT_R1_UNORM: + case DXGI_FORMAT_R9G9B9E5_SHAREDEXP: + case DXGI_FORMAT_R8G8_B8G8_UNORM: + case DXGI_FORMAT_G8R8_G8B8_UNORM: + case DXGI_FORMAT_BC1_TYPELESS: + case DXGI_FORMAT_BC1_UNORM: + case DXGI_FORMAT_BC1_UNORM_SRGB: + case DXGI_FORMAT_BC2_TYPELESS: + case DXGI_FORMAT_BC2_UNORM: + case DXGI_FORMAT_BC2_UNORM_SRGB: + case DXGI_FORMAT_BC3_TYPELESS: + case DXGI_FORMAT_BC3_UNORM: + case DXGI_FORMAT_BC3_UNORM_SRGB: + case DXGI_FORMAT_BC4_TYPELESS: + case DXGI_FORMAT_BC4_UNORM: + case DXGI_FORMAT_BC4_SNORM: + case DXGI_FORMAT_BC5_TYPELESS: + case DXGI_FORMAT_BC5_UNORM: + case DXGI_FORMAT_BC5_SNORM: + case DXGI_FORMAT_B5G6R5_UNORM: + case DXGI_FORMAT_B5G5R5A1_UNORM: + case DXGI_FORMAT_B8G8R8A8_UNORM: + case DXGI_FORMAT_B8G8R8X8_UNORM: + case DXGI_FORMAT_R10G10B10_XR_BIAS_A2_UNORM: + case DXGI_FORMAT_B8G8R8A8_TYPELESS: + case DXGI_FORMAT_B8G8R8A8_UNORM_SRGB: + case DXGI_FORMAT_B8G8R8X8_TYPELESS: + case DXGI_FORMAT_B8G8R8X8_UNORM_SRGB: + case DXGI_FORMAT_BC6H_TYPELESS: + case DXGI_FORMAT_BC6H_UF16: + case DXGI_FORMAT_BC6H_SF16: + case DXGI_FORMAT_BC7_TYPELESS: + case DXGI_FORMAT_BC7_UNORM: + case DXGI_FORMAT_BC7_UNORM_SRGB: + case DXGI_FORMAT_AYUV: + case DXGI_FORMAT_Y410: + case DXGI_FORMAT_Y416: + case DXGI_FORMAT_NV12: + case DXGI_FORMAT_P010: + case DXGI_FORMAT_P016: + case DXGI_FORMAT_420_OPAQUE: + case DXGI_FORMAT_YUY2: + case DXGI_FORMAT_Y210: + case DXGI_FORMAT_Y216: + case DXGI_FORMAT_NV11: + case DXGI_FORMAT_AI44: + case DXGI_FORMAT_IA44: + case DXGI_FORMAT_P8: + case DXGI_FORMAT_A8P8: + case DXGI_FORMAT_B4G4R4A4_UNORM: + case DXGI_FORMAT_P208: + case DXGI_FORMAT_V208: + case DXGI_FORMAT_V408: + case DXGI_FORMAT_SAMPLER_FEEDBACK_MIN_MIP_OPAQUE: + case DXGI_FORMAT_SAMPLER_FEEDBACK_MIP_REGION_USED_OPAQUE: + return false; + } + // Log the error if a new format shows up but on balance of probabilities assume it isn't depth: + GFXRECON_LOG_ERROR("Unknown DXGI_FORMAT value: %u.", static_cast(format)); + return false; +} + bool IsTextureWithUnknownLayout(D3D12_RESOURCE_DIMENSION dimension, D3D12_TEXTURE_LAYOUT layout) { bool is_texture_with_unknown_layout = false; diff --git a/framework/graphics/dx12_util.h b/framework/graphics/dx12_util.h index 426a944a3d..4e1afe2528 100644 --- a/framework/graphics/dx12_util.h +++ b/framework/graphics/dx12_util.h @@ -238,6 +238,8 @@ uint64_t GetResourceSizeInBytes(ID3D12Device8* device, const D3D12_RESOURCE_DESC bool IsSoftwareAdapter(const format::DxgiAdapterDesc& adapter_desc); +bool IsDepthStencilFormat(const DXGI_FORMAT format); + bool IsTextureWithUnknownLayout(D3D12_RESOURCE_DIMENSION dimension, D3D12_TEXTURE_LAYOUT layout); bool VerifyAgilitySDKRuntime(); diff --git a/framework/util/CMakeLists.txt b/framework/util/CMakeLists.txt index 204c5a493f..ef3f9e1917 100644 --- a/framework/util/CMakeLists.txt +++ b/framework/util/CMakeLists.txt @@ -47,6 +47,7 @@ target_sources(gfxrecon_util ${CMAKE_CURRENT_LIST_DIR}/image_writer.h ${CMAKE_CURRENT_LIST_DIR}/image_writer.cpp ${CMAKE_CURRENT_LIST_DIR}/json_util.h + ${CMAKE_CURRENT_LIST_DIR}/json_util.cpp ${CMAKE_CURRENT_LIST_DIR}/keyboard.h ${CMAKE_CURRENT_LIST_DIR}/keyboard.cpp ${CMAKE_CURRENT_LIST_DIR}/logging.h @@ -92,6 +93,7 @@ target_sources(gfxrecon_util ${CMAKE_CURRENT_LIST_DIR}/strings.h ${CMAKE_CURRENT_LIST_DIR}/strings.cpp ${CMAKE_CURRENT_LIST_DIR}/to_string.h + ${CMAKE_CURRENT_LIST_DIR}/to_string.cpp ${CMAKE_CURRENT_LIST_DIR}/options.h ${CMAKE_CURRENT_LIST_DIR}/options.cpp ${CMAKE_CURRENT_LIST_DIR}/custom_common_to_string.h diff --git a/framework/util/argument_parser.cpp b/framework/util/argument_parser.cpp index a73972a465..2cea35e7a7 100644 --- a/framework/util/argument_parser.cpp +++ b/framework/util/argument_parser.cpp @@ -130,7 +130,7 @@ void ArgumentParser::Init(std::vector command_line_args, uint32_t option_index = 0; if (!options.empty()) { - std::stringstream option_strstr(options); + std::istringstream option_strstr(options); while (option_strstr.good()) { std::getline(option_strstr, sub_string, ','); @@ -140,7 +140,7 @@ void ArgumentParser::Init(std::vector command_line_args, // of the values to point to the same option flag. if (sub_string.find('|') != std::string::npos) { - std::stringstream option_strstr_2(sub_string); + std::istringstream option_strstr_2(sub_string); while (option_strstr_2.good()) { std::getline(option_strstr_2, sub_string2, '|'); @@ -160,7 +160,7 @@ void ArgumentParser::Init(std::vector command_line_args, uint32_t argument_index = 0; if (!arguments.empty()) { - std::stringstream arguments_strstr(arguments); + std::istringstream arguments_strstr(arguments); while (arguments_strstr.good()) { std::getline(arguments_strstr, sub_string, ','); @@ -170,7 +170,7 @@ void ArgumentParser::Init(std::vector command_line_args, // of the values to point to the same argument. if (sub_string.find('|') != std::string::npos) { - std::stringstream arguments_strstr_2(sub_string); + std::istringstream arguments_strstr_2(sub_string); while (arguments_strstr_2.good()) { std::getline(arguments_strstr_2, sub_string2, '|'); diff --git a/framework/util/custom_common_to_string.cpp b/framework/util/custom_common_to_string.cpp index c430b63b0e..e37c5d99d4 100644 --- a/framework/util/custom_common_to_string.cpp +++ b/framework/util/custom_common_to_string.cpp @@ -33,7 +33,7 @@ template <> std::string ToString(const SECURITY_ATTRIBUTES& obj, ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize) { return ObjectToString(toStringFlags, tabCount, tabSize, - [&](std::stringstream& strStrm) + [&](std::ostringstream& strStrm) { FieldToString(strStrm, true, "nLength", toStringFlags, tabCount, tabSize, ToString(obj.nLength, toStringFlags, tabCount, tabSize)); FieldToString(strStrm, false, "lpSecurityDescriptor", toStringFlags, tabCount, tabSize, Quote(PtrToString(obj.lpSecurityDescriptor))); diff --git a/framework/util/file_output_stream.cpp b/framework/util/file_output_stream.cpp index c092ca0ad7..c19fffae2d 100644 --- a/framework/util/file_output_stream.cpp +++ b/framework/util/file_output_stream.cpp @@ -59,10 +59,25 @@ FileOutputStream::~FileOutputStream() } } +void FileOutputStream::Reset(FILE* file) +{ + if ((file_ != nullptr) && own_file_) + { + platform::FileClose(file_); + } + + file_ = file; +} + size_t FileOutputStream::Write(const void* data, size_t len) { return platform::FileWrite(data, 1, len, file_); } +size_t FileNoLockOutputStream::Write(const void* data, size_t len) +{ + return platform::FileWriteNoLock(data, 1, len, file_); +} + GFXRECON_END_NAMESPACE(util) GFXRECON_END_NAMESPACE(gfxrecon) diff --git a/framework/util/file_output_stream.h b/framework/util/file_output_stream.h index e415ef1f75..6853c76a96 100644 --- a/framework/util/file_output_stream.h +++ b/framework/util/file_output_stream.h @@ -20,6 +20,7 @@ ** FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER ** DEALINGS IN THE SOFTWARE. */ +/// @file Streaming into a file using the platform FILE abstractions. #ifndef GFXRECON_UTIL_FILE_OUTPUT_STREAM_H #define GFXRECON_UTIL_FILE_OUTPUT_STREAM_H @@ -34,14 +35,21 @@ GFXRECON_BEGIN_NAMESPACE(gfxrecon) GFXRECON_BEGIN_NAMESPACE(util) +/// @brief An implementation of the abstract OuptutStream interface which writes +/// to a file or sequence of files. class FileOutputStream : public OutputStream { public: - // buffer_size controls the size of file stream buffer. If buffer_size is 0, file writes will be unbuffered. + /// @param buffer_size Controls the size of file stream buffer. If buffer_size is 0, + /// file writes will be unbuffered. FileOutputStream(const std::string& filename, size_t buffer_size, bool append = false); FileOutputStream(FILE* file, bool owned = false); + /// @brief Change from current file to a new one, closing the old only if it was owned. + /// @param file The new file to stream writes into. + void Reset(FILE* file); + virtual ~FileOutputStream() override; virtual bool IsValid() override { return (file_ != nullptr); } @@ -50,9 +58,24 @@ class FileOutputStream : public OutputStream virtual void Flush() override { platform::FileFlush(file_); } - private: - FILE* file_; - bool own_file_; + protected: + FileOutputStream(const FileOutputStream&) = delete; + FileOutputStream& operator=(const FileOutputStream&) = delete; + FILE* file_; + bool own_file_; +}; + +class FileNoLockOutputStream : public FileOutputStream +{ + public: + /// @param buffer_size Controls the size of file stream buffer. If buffer_size is 0, + /// file writes will be unbuffered. + FileNoLockOutputStream(const std::string& filename, size_t buffer_size, bool append = false) : + FileOutputStream(filename, buffer_size, append) + {} + FileNoLockOutputStream(FILE* file, bool owned = false) : FileOutputStream(file, owned) {} + + virtual size_t Write(const void* data, size_t len) override; }; GFXRECON_END_NAMESPACE(util) diff --git a/framework/util/json_util.cpp b/framework/util/json_util.cpp new file mode 100644 index 0000000000..8597ded5d4 --- /dev/null +++ b/framework/util/json_util.cpp @@ -0,0 +1,406 @@ +/* +** Copyright (c) 2022-2023 LunarG, Inc. +** Copyright (c) 2023 Valve Corporation. +** +** Permission is hereby granted, free of charge, to any person obtaining a +** copy of this software and associated documentation files (the "Software"), +** to deal in the Software without restriction, including without limitation +** the rights to use, copy, modify, merge, publish, distribute, sublicense, +** and/or sell copies of the Software, and to permit persons to whom the +** Software is furnished to do so, subject to the following conditions: +** +** The above copyright notice and this permission notice shall be included in +** all copies or substantial portions of the Software. +** +** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +** IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +** FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +** AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +** LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +** FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +** DEALINGS IN THE SOFTWARE. +*/ + +#include "util/json_util.h" +#include "util/to_string.h" +#include "util/logging.h" +#include "util/strings.h" +#include "format/format_json.h" + +#include // For encoding wstring_view to utf8. + +#if defined(D3D12_SUPPORT) +#include // D3D12 and DXGI HRESULT return values. +// Still needed for D3D12 return values +// +#include +#include +#include +#include "generated/generated_dx12_enum_to_json.h" +#endif + +GFXRECON_BEGIN_NAMESPACE(gfxrecon) +GFXRECON_BEGIN_NAMESPACE(util) + +void FieldToJson(nlohmann::ordered_json& jdata, const float data[4], const util::JsonOptions& options) +{ + FieldToJson(jdata, data, 4, options); +} + +void FieldToJson(nlohmann::ordered_json& jdata, const uint32_t data[4], const util::JsonOptions& options) +{ + FieldToJson(jdata, data, 4, options); +} + +void FieldToJson(nlohmann::ordered_json& jdata, const uint64_t data[4], const util::JsonOptions& options) +{ + FieldToJson(jdata, data, 4, options); +} + +void HandleToJson(nlohmann::ordered_json& jdata, const format::HandleId handle, const JsonOptions& options) +{ + if (options.hex_handles) + { + // A JSON string + jdata = util::to_hex_variable_width(handle); + } + else + { + // A JSON number + jdata = handle; + } +} + +void HandleToJson(nlohmann::ordered_json& jdata, + const format::HandleId* data, + size_t num_elements, + const JsonOptions& options) +{ + if (data) + { + for (size_t i = 0; i < num_elements; ++i) + { + HandleToJson(jdata[i], data[i], options); + } + } + else + { + jdata = nullptr; + } +} + +// The following look trivial but there is some work in a header-only +// library hidden in the assignments so we can give the inlining of that code a +// natural place to stop right here. + +void Bool32ToJson(nlohmann::ordered_json& jdata, const uint32_t data, const util::JsonOptions& options) +{ + jdata = static_cast(data); +} + +void FieldToJson(nlohmann::ordered_json& jdata, short data, const JsonOptions& options) +{ + jdata = data; +} + +void FieldToJson(nlohmann::ordered_json& jdata, int data, const JsonOptions& options) +{ + jdata = data; +} + +void FieldToJson(nlohmann::ordered_json& jdata, long data, const JsonOptions& options) +{ + jdata = data; +} + +void FieldToJson(nlohmann::ordered_json& jdata, long long data, const JsonOptions& options) +{ + jdata = data; +} + +void FieldToJson(nlohmann::ordered_json& jdata, unsigned short data, const JsonOptions& options) +{ + jdata = data; +} + +void FieldToJson(nlohmann::ordered_json& jdata, unsigned int data, const JsonOptions& options) +{ + jdata = data; +} + +void FieldToJson(nlohmann::ordered_json& jdata, unsigned long data, const JsonOptions& options) +{ + jdata = data; +} + +void FieldToJson(nlohmann::ordered_json& jdata, unsigned long long data, const JsonOptions& options) +{ + jdata = data; +} + +void FieldToJson(nlohmann::ordered_json& jdata, const std::nullptr_t data, const JsonOptions& options) +{ + jdata = data; +} + +void FieldToJson(nlohmann::ordered_json& jdata, float data, const JsonOptions& options) +{ + if (std::isnan(data)) + { + GFXRECON_LOG_WARNING_ONCE("Converting a NAN to zero."); + data = 0.0f; + } + else if (std::isinf(data)) + { + GFXRECON_LOG_WARNING_ONCE("Converting an infinity to max or min."); + if (data < 0) + { + data = std::numeric_limits::min(); + } + else + { + data = std::numeric_limits::max(); + } + } + // Normal and denormal/subnormal numbers pass through unchanged and unremarked. + + jdata = data; +} + +void FieldToJson(nlohmann::ordered_json& jdata, double data, const util::JsonOptions& options) +{ + jdata = data; +} + +void FieldToJson(nlohmann::ordered_json& jdata, const std::string_view data, const util::JsonOptions& options) +{ + jdata = data; +} + +void FieldToJson(nlohmann::ordered_json& jdata, const std::wstring_view data, const util::JsonOptions& options) +{ + std::wstring_convert> utf8_conv; + jdata = utf8_conv.to_bytes(data.data(), data.data() + data.length()); +} + +#if defined(D3D12_SUPPORT) + +// const char * might be better to avoid two copies of each string in the process at runtime (one in the static data +// section for the literal string and one on the heap in the map). Even better would be for this to be a const array of +// pairs of HRESULT and const char*const with a flat_map style adaptor so the "map" itself could live in the const data +// section rather than being heap allocated as it is now. Possibly expand with more from +// as docs for +// D3D12_DEVICE_REMOVED_EXTENDED_DATA1's HRESULT member lead there. +const static std::unordered_map kHresults{ + // Basic names for zero and one from also used by D3D12: + { S_OK, "S_OK" }, + { S_FALSE, "S_FALSE" }, + // D3D12 Errors from : + // + { D3D12_ERROR_ADAPTER_NOT_FOUND, "D3D12_ERROR_ADAPTER_NOT_FOUND" }, + { D3D12_ERROR_DRIVER_VERSION_MISMATCH, "D3D12_ERROR_DRIVER_VERSION_MISMATCH" }, + { D3D12_ERROR_INVALID_REDIST, "D3D12_ERROR_INVALID_REDIST" }, + // D3D9 Errors inherited by D3D12: + { D3DERR_INVALIDCALL, "D3DERR_INVALIDCALL" }, + { D3DERR_WASSTILLDRAWING, "D3DERR_WASSTILLDRAWING" }, + // DXGI Errors from : + // https://learn.microsoft.com/en-us/windows/win32/direct3ddxgi/dxgi-error + { DXGI_ERROR_ACCESS_DENIED, "DXGI_ERROR_ACCESS_DENIED" }, + { DXGI_ERROR_ACCESS_LOST, "DXGI_ERROR_ACCESS_LOST" }, + { DXGI_ERROR_ALREADY_EXISTS, "DXGI_ERROR_ALREADY_EXISTS" }, + { DXGI_ERROR_CANNOT_PROTECT_CONTENT, "DXGI_ERROR_CANNOT_PROTECT_CONTENT" }, + { DXGI_ERROR_DEVICE_HUNG, "DXGI_ERROR_DEVICE_HUNG" }, + { DXGI_ERROR_DEVICE_REMOVED, "DXGI_ERROR_DEVICE_REMOVED" }, + { DXGI_ERROR_DEVICE_RESET, "DXGI_ERROR_DEVICE_RESET" }, + { DXGI_ERROR_DRIVER_INTERNAL_ERROR, "DXGI_ERROR_DRIVER_INTERNAL_ERROR" }, + { DXGI_ERROR_FRAME_STATISTICS_DISJOINT, "DXGI_ERROR_FRAME_STATISTICS_DISJOINT" }, + { DXGI_ERROR_GRAPHICS_VIDPN_SOURCE_IN_USE, "DXGI_ERROR_GRAPHICS_VIDPN_SOURCE_IN_USE" }, + { DXGI_ERROR_INVALID_CALL, "DXGI_ERROR_INVALID_CALL" }, + { DXGI_ERROR_MORE_DATA, "DXGI_ERROR_MORE_DATA" }, + { DXGI_ERROR_NAME_ALREADY_EXISTS, "DXGI_ERROR_NAME_ALREADY_EXISTS" }, + { DXGI_ERROR_NONEXCLUSIVE, "DXGI_ERROR_NONEXCLUSIVE" }, + { DXGI_ERROR_NOT_CURRENTLY_AVAILABLE, "DXGI_ERROR_NOT_CURRENTLY_AVAILABLE" }, + { DXGI_ERROR_NOT_FOUND, "DXGI_ERROR_NOT_FOUND" }, + { DXGI_ERROR_REMOTE_CLIENT_DISCONNECTED, "DXGI_ERROR_REMOTE_CLIENT_DISCONNECTED" }, + { DXGI_ERROR_REMOTE_OUTOFMEMORY, "DXGI_ERROR_REMOTE_OUTOFMEMORY" }, + { DXGI_ERROR_RESTRICT_TO_OUTPUT_STALE, "DXGI_ERROR_RESTRICT_TO_OUTPUT_STALE" }, + { DXGI_ERROR_SDK_COMPONENT_MISSING, "DXGI_ERROR_SDK_COMPONENT_MISSING" }, + { DXGI_ERROR_SESSION_DISCONNECTED, "DXGI_ERROR_SESSION_DISCONNECTED" }, + { DXGI_ERROR_UNSUPPORTED, "DXGI_ERROR_UNSUPPORTED" }, + { DXGI_ERROR_WAIT_TIMEOUT, "DXGI_ERROR_WAIT_TIMEOUT" }, + { DXGI_ERROR_WAS_STILL_DRAWING, "DXGI_ERROR_WAS_STILL_DRAWING" }, + // Extra OLE Codes from (we should never see these from DX12/DXGI but just in case): + { E_UNEXPECTED, "E_UNEXPECTED" }, + { E_NOINTERFACE, "E_NOINTERFACE" }, + { E_POINTER, "E_POINTER" }, + { E_HANDLE, "E_HANDLE" }, + { E_ABORT, "E_ABORT" }, + { E_ACCESSDENIED, "E_ACCESSDENIED" }, + // Misc errors: + { E_FAIL, "E_FAIL" }, + { E_OUTOFMEMORY, "E_OUTOFMEMORY" }, + { E_INVALIDARG, "E_INVALIDARG" }, + { E_NOTIMPL, "E_NOTIMPL" }, +}; + +/// @brief Turn a D3D12 or DXGI HRESULT into a string with the same character +/// sequence as the identifier of the C macro defining it in a header like +/// winerror.h. +/// @param hresult A D3D12 or DXGI result code. +std::string HresultToString(const HRESULT hresult) +{ + const auto found = kHresults.find(hresult); + std::string result; + if (found != kHresults.end()) + { + result = found->second; + } + else + { + result = util::to_hex_variable_width(static_cast(hresult)); + GFXRECON_LOG_DEBUG("HresultToString() passed unkown HRESULT: %s.", result.c_str()); + } + return result; +} + +void HresultToJson(nlohmann::ordered_json& jdata, const HRESULT hresult, const util::JsonOptions& options) +{ + FieldToJson(jdata, HresultToString(hresult), options); +} + +void FieldToJson(nlohmann::ordered_json& jdata, + const format::InitDx12AccelerationStructureGeometryDesc& data, + const util::JsonOptions& options) +{ + /// @todo handle enums and so on. + FieldToJson(jdata["geometry_type"], static_cast(data.geometry_type), options); + FieldToJson_D3D12_RAYTRACING_GEOMETRY_FLAGS( + jdata["geometry_flags"], static_cast(data.geometry_flags), options); + FieldToJson(jdata["aabbs_count"], data.aabbs_count, options); + FieldToJson(jdata["aabbs_stride"], data.aabbs_stride, options); + Bool32ToJson(jdata["triangles_has_transform"], data.triangles_has_transform, options); + FieldToJson(jdata["triangles_index_format"], static_cast(data.triangles_index_format), options); + FieldToJson(jdata["triangles_vertex_format"], static_cast(data.triangles_vertex_format), options); + FieldToJson(jdata["triangles_index_count"], data.triangles_index_count, options); + FieldToJson(jdata["triangles_vertex_count"], data.triangles_vertex_count, options); + FieldToJson(jdata["triangles_vertex_stride"], data.triangles_vertex_stride, options); +} + +void FieldToJson(nlohmann::ordered_json& jdata, const format::DxgiAdapterDesc& data, const util::JsonOptions& options) +{ + FieldToJson(jdata["Description"], std::wstring_view(data.Description), options); + FieldToJson(jdata["VendorId"], data.VendorId, options); + FieldToJson(jdata["DeviceId"], data.DeviceId, options); + FieldToJson(jdata["SubSysId"], data.SubSysId, options); + FieldToJson(jdata["Revision"], data.Revision, options); + FieldToJson(jdata["DedicatedVideoMemory"], data.DedicatedVideoMemory, options); + FieldToJson(jdata["DedicatedSystemMemory"], data.DedicatedSystemMemory, options); + FieldToJson(jdata["SharedSystemMemory"], data.SharedSystemMemory, options); + FieldToJson(jdata["LuidLowPart"], data.LuidLowPart, options); + FieldToJson(jdata["LuidHighPar"], data.LuidHighPart, options); + // Should we break out the packed data? (2 bits (LSB) to store Type and 30 bits for object ID) + FieldToJson(jdata["extra_info"], data.extra_info, options); +} + +void FieldToJson(nlohmann::ordered_json& jdata, const format::Dx12RuntimeInfo& data, const util::JsonOptions& options) +{ + FieldToJson(jdata["version"], data.version, util::filepath::kFileVersionSize, options); + FieldToJson(jdata["src"], util::strings::ViewOfCharArray(data.src, util::filepath::kMaxFilePropertySize), options); +} + +void FieldToJson(nlohmann::ordered_json& jdata, const util::filepath::FileInfo& data, const util::JsonOptions& options) +{ + FieldToJson(jdata["ProductVersion"], + strings::ViewOfCharArray(data.ProductVersion, filepath::kMaxFilePropertySize), + options); + FieldToJson( + jdata["FileVersion"], strings::ViewOfCharArray(data.FileVersion, filepath::kMaxFilePropertySize), options); + FieldToJson(jdata["AppVersion"], data.AppVersion, filepath::kMaxFilePropertySize, options); + FieldToJson(jdata["AppName"], strings::ViewOfCharArray(data.AppName, filepath::kMaxFilePropertySize), options); + FieldToJson( + jdata["CompanyName"], strings::ViewOfCharArray(data.CompanyName, filepath::kMaxFilePropertySize), options); + FieldToJson(jdata["FileDescription"], + strings::ViewOfCharArray(data.FileDescription, filepath::kMaxFilePropertySize), + options); + FieldToJson( + jdata["InternalName"], strings::ViewOfCharArray(data.InternalName, filepath::kMaxFilePropertySize), options); + FieldToJson(jdata["OriginalFilename"], + strings::ViewOfCharArray(data.OriginalFilename, filepath::kMaxFilePropertySize), + options); + FieldToJson( + jdata["ProductName"], strings::ViewOfCharArray(data.ProductName, filepath::kMaxFilePropertySize), options); +} + +#endif + +static std::string GenerateFilename(const std::string_view filename, const uint64_t instance_counter) +{ + std::string fullname{ filename }; + return fullname.append("-").append(std::to_string(instance_counter)).append(".bin"); +} + +static bool WriteBinaryFile(const std::string& filename, uint64_t data_size, const uint8_t* data) +{ + FILE* file_output = nullptr; + bool written_all = false; + if (util::platform::FileOpen(&file_output, filename.c_str(), "wb") == 0) + { + const uint64_t written = util::platform::FileWrite(data, 1, static_cast(data_size), file_output); + if (written >= data_size) + { + written_all = true; + } + else + { + GFXRECON_LOG_ERROR( + "Only wrote %" PRIu64 " bytes of %" PRIu64 " data to file %s.", written, data_size, filename.c_str()); + } + util::platform::FileClose(file_output); + } + else + { + GFXRECON_LOG_ERROR("Failed to open file %s for writing.", filename.c_str()); + } + return written_all; +} + +bool RepresentBinaryFile(const util::JsonOptions& json_options, + nlohmann::ordered_json& jdata, + std::string_view filename_base, + const uint64_t instance_counter, + const uint64_t data_size, + const uint8_t* const data) +{ + bool written = false; + // If the data is null or empty, put a null in the JSON. + if (data_size < 1 || nullptr == data) + { + FieldToJson(jdata, nullptr, json_options); + } + else + { + if (json_options.dump_binaries) + { + std::string filename = GenerateFilename(filename_base, instance_counter); + std::string basename = gfxrecon::util::filepath::Join(json_options.data_sub_dir, filename); + std::string filepath = gfxrecon::util::filepath::Join(json_options.root_dir, basename); + if (WriteBinaryFile(filepath, data_size, data)) + { + FieldToJson(jdata, basename, json_options); + written = true; + } + else + { + FieldToJson(jdata, format::kValWriteFailed, json_options); + } + } + else + { + FieldToJson(jdata, format::kValBinary, json_options); + } + } + return written; +} + +GFXRECON_END_NAMESPACE(util) +GFXRECON_END_NAMESPACE(gfxrecon) \ No newline at end of file diff --git a/framework/util/json_util.h b/framework/util/json_util.h index afa53b05a0..51ce9c1998 100644 --- a/framework/util/json_util.h +++ b/framework/util/json_util.h @@ -22,20 +22,168 @@ */ /// @file API-agnostic options and helpers for outputting JSON used by all -/// the JSON-generating components such as the Consumers in. -/// @note This currently looks overkill for one constant but there is a fuller -/// version incoming from an in-progress PR. +/// the JSON-generating components such as the Consumers that gfxrecon-convert +/// is based on. #ifndef GFXRECON_UTIL_JSON_UTIL_H #define GFXRECON_UTIL_JSON_UTIL_H #include "util/defines.h" +#include "util/to_string.h" +#include "format/format.h" + +#include "nlohmann/json.hpp" GFXRECON_BEGIN_NAMESPACE(gfxrecon) GFXRECON_BEGIN_NAMESPACE(util) static constexpr int kJsonIndentWidth = 2; +/// This selects between outputting an array of objects (JSON) or individual +/// top-level objects separated by newlines (JSONL). A top-level component +/// like Convert's main() needs to look at this but the FieldToJson functions +/// ignore it. They build a nlohmann tree in memory. +enum class JsonFormat : uint8_t +{ + JSON, + JSONL +}; + +/// Parameters potentially required in converting our datastructures to JSON. +struct JsonOptions +{ + // Fields ordered large to small for alignment/packing. + std::string root_dir; + std::string data_sub_dir; + JsonFormat format = JsonFormat::JSON; + bool dump_binaries = false; + bool expand_flags = false; + bool hex_handles = false; +}; + +void FieldToJson(nlohmann::ordered_json& jdata, short data, const JsonOptions& options = JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, int data, const JsonOptions& options = JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, long data, const JsonOptions& options = JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, long long data, const JsonOptions& options = JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, unsigned short data, const JsonOptions& options = JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, unsigned int data, const JsonOptions& options = JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, unsigned long data, const JsonOptions& options = JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, unsigned long long data, const JsonOptions& options = JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, const std::nullptr_t data, const JsonOptions& options = JsonOptions()); +/// Convert floats to JSON, logging information loss when floats with no JSON +/// number type representation are adjusted. The JSON library turns these numbers +/// into JSON nulls otherwise. +void FieldToJson(nlohmann::ordered_json& jdata, float data, const util::JsonOptions& options = util::JsonOptions()); +/// @note This is unused dead code currently (try placing a breakpoint on it). +void FieldToJson(nlohmann::ordered_json& jdata, double data, const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, + const std::string_view data, + const util::JsonOptions& options = util::JsonOptions()); +void FieldToJson(nlohmann::ordered_json& jdata, + const std::wstring_view data, + const util::JsonOptions& options = util::JsonOptions()); + +/// @brief Convert the integer representation of a handle in capture files into +/// either a JSON number or a JSON string with the number represented in +/// hexadecimal. +void HandleToJson(nlohmann::ordered_json& jdata, const format::HandleId handle, const JsonOptions& options); + +/// @brief Convert a bool represented as a 32 bit unsigned number like a +/// VkBool32 to true or false. It should be fine for the signed Windows type +/// BOOL too. +void Bool32ToJson(nlohmann::ordered_json& jdata, + const uint32_t data, + const util::JsonOptions& options = util::JsonOptions()); + +/// @brief Convert an integer type to JSON but encoded in hex as a JSON string +/// rather than as a JSON number type. Useful for pointers and memory offsets. +/// @todo Consider replacing FieldToJsonAsHex here and array forms with an +/// AsHex bit/bool in the JsonOptions struct. Same for Bool32ToJson where the +/// scalar uint32_t overload of FieldToJson would check the bit and the array +/// array forms would go away. An IsHandle bit could also replace HandleToJson +/// for format::HandleId but this is starting to get smelly (function effects +/// depending on switching on a parameter value) and should only be done if it +/// simplifies codegen, removing special cases for the classes of types. +template +void FieldToJsonAsHex(nlohmann::ordered_json& jdata, + const T data, + const util::JsonOptions& options = util::JsonOptions()) +{ + jdata = to_hex_variable_width(data); +} + +/// @brief Convert an integer type to JSON but encoded in binary as a JSON string +/// rather than as a JSON number type. Useful for bitmasks. +template +void FieldToJsonAsFixedWidthBinary(nlohmann::ordered_json& jdata, + const T data, + const util::JsonOptions& options = util::JsonOptions()) +{ + jdata = to_binary_fixed_width(data); +} + +template +void FieldToJson(nlohmann::ordered_json& jdata, + const T* data, + size_t num_elements, + const util::JsonOptions& options = util::JsonOptions()) +{ + if (data) + { + for (size_t i = 0; i < num_elements; ++i) + { + FieldToJson(jdata[i], data[i], options); + } + } + else + { + jdata = nullptr; + } +} + +void FieldToJson(nlohmann::ordered_json& jdata, + const float data[4], + const util::JsonOptions& options = util::JsonOptions()); + +void FieldToJson(nlohmann::ordered_json& jdata, + const uint32_t data[4], + const util::JsonOptions& options = util::JsonOptions()); + +void FieldToJson(nlohmann::ordered_json& jdata, + const uint64_t data[4], + const util::JsonOptions& options = util::JsonOptions()); + +void HandleToJson(nlohmann::ordered_json& jdata, + const format::HandleId* data, + size_t num_elements, + const util::JsonOptions& options = util::JsonOptions()); + +#if defined(D3D12_SUPPORT) +/// @brief Turn a D3D12 or DXGI HRESULT into a string with the same character +/// sequence as the identifier of the C macro defining it in a header like +/// winerror.h. +/// @param hresult A D3D12 or DXGI result code. +std::string HresultToString(const HRESULT hresult); +void HresultToJson(nlohmann::ordered_json& jdata, const HRESULT hresult, const util::JsonOptions& options); + +void FieldToJson(nlohmann::ordered_json& jdata, + const format::InitDx12AccelerationStructureGeometryDesc& data, + const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const format::DxgiAdapterDesc& data, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const format::Dx12RuntimeInfo& data, const util::JsonOptions& options); +void FieldToJson(nlohmann::ordered_json& jdata, const util::filepath::FileInfo& data, const util::JsonOptions& options); +#endif + +/// @brief Represent a binary blob in the JSON tree either as the filename of a file containing the data that is also +/// written, or as placeholder text with the binary file not written, depending on the JsonOptions in effect. +/// @return true if a binary file was written to storage, false if not. +bool RepresentBinaryFile(const util::JsonOptions& json_options, + nlohmann::ordered_json& jdata, + std::string_view filename_base, + const uint64_t instance_counter, + const uint64_t data_size, + const uint8_t* const data); + GFXRECON_END_NAMESPACE(util) GFXRECON_END_NAMESPACE(gfxrecon) diff --git a/framework/util/output_stream.h b/framework/util/output_stream.h index 1b52f9a7d9..802e4aab84 100644 --- a/framework/util/output_stream.h +++ b/framework/util/output_stream.h @@ -26,6 +26,7 @@ #include "util/defines.h" +#include #include GFXRECON_BEGIN_NAMESPACE(gfxrecon) @@ -45,6 +46,11 @@ class OutputStream virtual void Flush() {} }; +inline void Write(OutputStream& os, std::string_view sv) +{ + os.Write(sv.data(), sv.size()); +} + GFXRECON_END_NAMESPACE(util) GFXRECON_END_NAMESPACE(gfxrecon) diff --git a/framework/util/strings.cpp b/framework/util/strings.cpp index 7ea7f9d47a..6a4484480c 100644 --- a/framework/util/strings.cpp +++ b/framework/util/strings.cpp @@ -79,6 +79,12 @@ void RemoveWhitespace(std::string& str) str.erase(new_end, str.end()); } +std::string_view ViewOfCharArray(const char* array, const size_t capacity) +{ + const char* zero_end = std::find(array, array + capacity, 0); + return std::string_view(array, zero_end - array); +} + GFXRECON_END_NAMESPACE(strings) GFXRECON_END_NAMESPACE(util) GFXRECON_END_NAMESPACE(gfxrecon) \ No newline at end of file diff --git a/framework/util/strings.h b/framework/util/strings.h index 1ea0a0d530..c8cf2a4eec 100644 --- a/framework/util/strings.h +++ b/framework/util/strings.h @@ -50,6 +50,10 @@ std::vector SplitString(const std::string_view compound, const char /// @note This will turn a space separated list of numbers into one long number. void RemoveWhitespace(std::string& str); +/// Create a string from a char array limiting the search for a null terminator +/// to the given capacity as a protection against ill-formed input. +std::string_view ViewOfCharArray(const char* array, const size_t capacity); + GFXRECON_END_NAMESPACE(strings) GFXRECON_END_NAMESPACE(util) GFXRECON_END_NAMESPACE(gfxrecon) diff --git a/framework/util/test/main.cpp b/framework/util/test/main.cpp index 396b2ce3a8..3953d746dd 100644 --- a/framework/util/test/main.cpp +++ b/framework/util/test/main.cpp @@ -113,6 +113,42 @@ TEST_CASE("Enum64ToString", "[to_string]") gfxrecon::util::Log::Release(); } +TEST_CASE("to_binary_fixed_width", "[to_string]") +{ + gfxrecon::util::Log::Init(gfxrecon::util::Log::kDebugSeverity); + REQUIRE(gfxrecon::util::to_binary_fixed_width(uint8_t(0)) == "0b00000000"); + REQUIRE(gfxrecon::util::to_binary_fixed_width(uint8_t(255)) == "0b11111111"); + REQUIRE(gfxrecon::util::to_binary_fixed_width(uint8_t(1)) == "0b00000001"); + REQUIRE(gfxrecon::util::to_binary_fixed_width(uint8_t(2)) == "0b00000010"); + REQUIRE(gfxrecon::util::to_binary_fixed_width(uint8_t(4)) == "0b00000100"); + REQUIRE(gfxrecon::util::to_binary_fixed_width(uint8_t(8)) == "0b00001000"); + REQUIRE(gfxrecon::util::to_binary_fixed_width(uint8_t(16)) == "0b00010000"); + REQUIRE(gfxrecon::util::to_binary_fixed_width(uint8_t(32)) == "0b00100000"); + REQUIRE(gfxrecon::util::to_binary_fixed_width(uint8_t(64)) == "0b01000000"); + REQUIRE(gfxrecon::util::to_binary_fixed_width(uint8_t(128)) == "0b10000000"); + REQUIRE(gfxrecon::util::to_binary_fixed_width(uint8_t(41)) == "0b00101001"); + REQUIRE(gfxrecon::util::to_binary_fixed_width(uint8_t(83)) == "0b01010011"); + REQUIRE(gfxrecon::util::to_binary_fixed_width(uint8_t(137)) == "0b10001001"); + REQUIRE(gfxrecon::util::to_binary_fixed_width(uint8_t(173)) == "0b10101101"); + REQUIRE(gfxrecon::util::to_binary_fixed_width(uint8_t(179)) == "0b10110011"); + REQUIRE(gfxrecon::util::to_binary_fixed_width(uint8_t(241)) == "0b11110001"); + + REQUIRE(gfxrecon::util::to_binary_fixed_width(uint16_t(0)) == "0b0000000000000000"); + REQUIRE(gfxrecon::util::to_binary_fixed_width(uint16_t(65535)) == "0b1111111111111111"); + REQUIRE(gfxrecon::util::to_binary_fixed_width(uint16_t(4096)) == "0b0001000000000000"); + REQUIRE(gfxrecon::util::to_binary_fixed_width(uint16_t(32768 + 1024 + 8)) == "0b1000010000001000"); + + REQUIRE(gfxrecon::util::to_binary_fixed_width(uint32_t(0)) == "0b00000000000000000000000000000000"); + REQUIRE(gfxrecon::util::to_binary_fixed_width(uint32_t(4294967295)) == "0b11111111111111111111111111111111"); + + REQUIRE(gfxrecon::util::to_binary_fixed_width(uint64_t(0)) == + "0b0000000000000000000000000000000000000000000000000000000000000000"); + REQUIRE(gfxrecon::util::to_binary_fixed_width(uint64_t(4294967295ULL * 4294967296ULL + 4294967295ULL)) == + "0b1111111111111111111111111111111111111111111111111111111111111111"); + + gfxrecon::util::Log::Release(); +} + TEST_CASE("TabRight", "[strings]") { gfxrecon::util::Log::Init(gfxrecon::util::Log::kDebugSeverity); diff --git a/framework/util/to_string.cpp b/framework/util/to_string.cpp new file mode 100644 index 0000000000..3722b76e47 --- /dev/null +++ b/framework/util/to_string.cpp @@ -0,0 +1,123 @@ +/* +** Copyright (c) 2023 LunarG, Inc. +** Copyright (c) 2023 Valve Corporation. +** +** Permission is hereby granted, free of charge, to any person obtaining a +** copy of this software and associated documentation files (the "Software"), +** to deal in the Software without restriction, including without limitation +** the rights to use, copy, modify, merge, publish, distribute, sublicense, +** and/or sell copies of the Software, and to permit persons to whom the +** Software is furnished to do so, subject to the following conditions: +** +** The above copyright notice and this permission notice shall be included in +** all copies or substantial portions of the Software. +** +** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +** IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +** FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +** AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +** LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +** FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +** DEALINGS IN THE SOFTWARE. +*/ +#include "util/to_string.h" +#include "util/logging.h" +#include "to_string.h" + +GFXRECON_BEGIN_NAMESPACE(gfxrecon) +GFXRECON_BEGIN_NAMESPACE(util) + +/// Convert a value to a string in binary form, filling with leading zeros to +/// make a fixed-width for a given parameter type. +/// Concrete versions follow for uint8_t, uint16_t, uint32_t, and uint64_t and +/// only those are exposed outside this compilation unit. +template +std::string to_binary_fixed_width(const T value) +{ + const auto num_bits = sizeof(T) * 8U; + const T one{ 1u }; + std::string ret{ "0b" }; + for (auto i = num_bits; i > 0; --i) + { + ret += ((value >> i - 1) & one) ? '1' : '0'; + } + return ret; +} + +std::string to_binary_fixed_width(const uint8_t value) +{ + return to_binary_fixed_width(value); +} + +std::string to_binary_fixed_width(const uint16_t value) +{ + return to_binary_fixed_width(value); +} + +std::string to_binary_fixed_width(const uint32_t value) +{ + return to_binary_fixed_width(value); +} + +std::string to_binary_fixed_width(const uint64_t value) +{ + return to_binary_fixed_width(value); +} + +std::string uuid_to_string(uint32_t size, const uint8_t* uuid) +{ + std::ostringstream stream; + stream << std::setfill('0') << std::setw(2) << std::hex; + for (size_t i = 0; i < size; ++i) + { + stream << (uint32_t)uuid[i]; + } + return stream.str(); +} + +std::string AnnotationTypeToString(const format::AnnotationType& type) +{ + std::string str; + switch (type) + { + case format::AnnotationType::kUnknown: + str.assign("kUnknown"); + break; + case format::AnnotationType::kText: + str.assign("kText"); + break; + case format::AnnotationType::kJson: + str.assign("kJson"); + break; + case format::AnnotationType::kXml: + str.assign("kXml"); + break; + default: + str.assign("OUT_OF_RANGE_ERROR"); + GFXRECON_LOG_WARNING("format::AnnotationType with out of range value: %lu", + static_cast(type)); + break; + } + return str; +} + +void FieldToString(std::ostringstream& strStrm, + bool firstField, + const char* fieldName, + ToStringFlags toStringFlags, + uint32_t tabCount, + uint32_t tabSize, + const std::string& fieldString) +{ + if (!firstField) + { + strStrm << ',' << GetNewlineString(toStringFlags); + } + strStrm << GetTabString(toStringFlags, tabCount, tabSize); + strStrm << "\"" << fieldName << "\":"; + strStrm << GetWhitespaceString(toStringFlags); + strStrm << fieldString; +} + +GFXRECON_END_NAMESPACE(util) +GFXRECON_END_NAMESPACE(gfxrecon) \ No newline at end of file diff --git a/framework/util/to_string.h b/framework/util/to_string.h index e78ebf650b..ad9dd451d9 100644 --- a/framework/util/to_string.h +++ b/framework/util/to_string.h @@ -50,6 +50,38 @@ constexpr uint32_t kToStringDefaultTabSize = 4; typedef uint32_t ToStringFlags; +/// Convert a value to a string in hexadecimal form. +template +std::string to_hex_variable_width(T value) +{ + std::ostringstream stream; + stream << "0x" << std::hex << value; + return stream.str(); +} + +/// Convert a value to a string in hexadecimal form, filling with leading zeros +/// to make a fixed-width for a given parameter type. +template +std::string to_hex_fixed_width(T value) +{ + std::ostringstream stream; + stream << "0x" << std::setfill('0') << std::setw(sizeof(T) * 2) << std::hex << value; + return stream.str(); +} + +/// Convert a value to a string in binary form, filling with leading zeros to +/// make a fixed-width. Follows C++ 14's format for literal binary constants. +std::string to_binary_fixed_width(const uint8_t value); +std::string to_binary_fixed_width(const uint16_t value); +std::string to_binary_fixed_width(const uint32_t value); +std::string to_binary_fixed_width(const uint64_t value); + +std::string uuid_to_string(uint32_t size, const uint8_t* uuid); + +/// @brief Convert an annotation to its string representation. +std::string AnnotationTypeToString(const format::AnnotationType& type); + +/// @deprecated Use the nlohmann JSON library instead. /// @brief A template ToString to take care of simple POD cases like the many /// types of integers. /// It contains the three parameters that are unused for unstructured types like @@ -68,6 +100,7 @@ inline std::string ToString(const T& obj, return std::to_string(obj); } +/// @deprecated Use the nlohmann JSON library instead. /// @brief A template that exists only to allow the ToStrings for 32 bit sets of /// flags to be template specializations. /// It is never called and its return value of "0" is a meaningless placeholder @@ -94,7 +127,7 @@ inline std::string ToString(uint32_t apiFlags, template inline std::string HandleIdToString(HandleIdType handleId) { - std::stringstream strStrm; + std::ostringstream strStrm; if (handleId) { strStrm << "\"0x" << reinterpret_cast(handleId) << "\""; @@ -167,29 +200,28 @@ inline std::string BitmaskToString(FlagsType flags) template inline std::string PtrToString(PtrType* ptr) { - std::stringstream strStrm; - strStrm << "0x" << std::hex << reinterpret_cast(ptr); - return strStrm.str(); + return to_hex_variable_width(reinterpret_cast(ptr)); } template inline std::string PtrToString(PtrType ptr) { - std::stringstream strStrm; - strStrm << "0x" << std::hex << ptr; - return strStrm.str(); + return to_hex_variable_width(ptr); } +/// @deprecated Use the nlohmann JSON library instead. inline std::string GetNewlineString(ToStringFlags toStringFlags) { return (toStringFlags & kToString_Formatted) ? std::string("\n") : std::string(); } +/// @deprecated Use the nlohmann JSON library instead. inline std::string GetWhitespaceString(ToStringFlags toStringFlags, uint32_t count = 1) { return (toStringFlags & kToString_Formatted) ? std::string((size_t)count, ' ') : std::string(); } +/// @deprecated Use the nlohmann JSON library instead. inline std::string GetTabString(ToStringFlags toStringFlags, uint32_t tabCount, uint32_t tabSize = kToStringDefaultTabSize) { @@ -205,12 +237,19 @@ inline std::string Quote(const std::string& str) return quoted; } +/// @deprecated Use the nlohmann JSON library instead. +/// @brief Create the opening and closing braces of a JSON object: calling a function +/// to fill out the internal fields of the object. +/// By convention the functions which convert structs will be called ToString and +/// will call FieldToString() to format each field and another ToString, +/// ArrayToString(), etc. to form the nested structure or the immediate value of +/// the field. template inline std::string ObjectToString(ToStringFlags toStringFlags, uint32_t& tabCount, uint32_t tabSize, ToStringFunctionType toStringFunction) { - std::stringstream strStrm; - const auto nl = GetNewlineString(toStringFlags); + std::ostringstream strStrm; + const auto nl = GetNewlineString(toStringFlags); strStrm << '{'; strStrm << nl; ++tabCount; @@ -222,24 +261,19 @@ ObjectToString(ToStringFlags toStringFlags, uint32_t& tabCount, uint32_t tabSize return strStrm.str(); } -inline void FieldToString(std::stringstream& strStrm, - bool firstField, - const char* fieldName, - ToStringFlags toStringFlags, - uint32_t tabCount, - uint32_t tabSize, - const std::string& fieldString) -{ - if (!firstField) - { - strStrm << ',' << GetNewlineString(toStringFlags); - } - strStrm << GetTabString(toStringFlags, tabCount, tabSize); - strStrm << "\"" << fieldName << "\":"; - strStrm << GetWhitespaceString(toStringFlags); - strStrm << fieldString; -} +/// @deprecated Use the nlohmann JSON library instead. +/// Part of a system for formatting fields of structs and arguments of functions +/// as JSON text strings. +/// @deprecated Use the nlohmann JSON library instead. +void FieldToString(std::ostringstream& strStrm, + bool firstField, + const char* fieldName, + ToStringFlags toStringFlags, + uint32_t tabCount, + uint32_t tabSize, + const std::string& fieldString); +/// @deprecated Use the nlohmann JSON library instead. template inline std::string ArrayToString(size_t count, const ObjectType* pObjs, @@ -254,7 +288,7 @@ inline std::string ArrayToString(size_t count, return "null"; } - std::stringstream strStrm; + std::ostringstream strStrm; strStrm << '['; strStrm << GetNewlineString(toStringFlags); for (uint32_t i = 0; i < count; ++i) @@ -270,6 +304,7 @@ inline std::string ArrayToString(size_t count, return strStrm.str(); } +/// @deprecated Use the nlohmann JSON library instead. template inline std::string ArrayToString(size_t count, const T* pObjs, @@ -287,6 +322,7 @@ inline std::string ArrayToString(size_t count, [&](size_t i) { return ToString(pObjs[i], toStringFlags, tabCount + 1, tabSize); }); } +/// @deprecated Use the nlohmann JSON library instead. template inline std::string EnumArrayToString(size_t count, const EnumType* pObjs, diff --git a/tools/convert/main.cpp b/tools/convert/main.cpp index d7ce4b8d3f..9e5627ea23 100644 --- a/tools/convert/main.cpp +++ b/tools/convert/main.cpp @@ -23,18 +23,27 @@ */ #include "project_version.h" #include "tool_settings.h" +#include "decode/json_writer.h" /// @todo move to util? #include "decode/decode_api_detection.h" #include "format/format.h" +#include "util/file_output_stream.h" #include "util/file_path.h" #include "util/platform.h" -#include "generated/generated_vulkan_export_json_consumer.h" +#include "generated/generated_vulkan_json_consumer.h" +#include "decode/marker_json_consumer.h" +#include "decode/metadata_json_consumer.h" #if defined(CONVERT_EXPERIMENTAL_D3D12) -#include "generated/generated_dx12_ascii_consumer.h" +#include "generated/generated_dx12_json_consumer.h" #endif -using gfxrecon::decode::JsonFormat; - +using gfxrecon::util::JsonFormat; +using VulkanJsonConsumer = gfxrecon::decode::MetadataJsonConsumer< + gfxrecon::decode::MarkerJsonConsumer>; +#if defined(CONVERT_EXPERIMENTAL_D3D12) +using Dx12JsonConsumer = + gfxrecon::decode::MetadataJsonConsumer>; +#endif const char kOptions[] = "-h|--help,--version,--no-debug-popup,--file-per-frame,--include-binaries,--expand-flags"; const char kArguments[] = "--output,--format"; @@ -81,7 +90,7 @@ static void PrintUsage(const char* exe_name) static std::string GetOutputFileName(const gfxrecon::util::ArgumentParser& arg_parser, const std::string& input_filename, - gfxrecon::decode::JsonFormat output_format) + JsonFormat output_format) { std::string output_filename; if (arg_parser.IsArgumentSet(kOutput)) @@ -99,10 +108,10 @@ static std::string GetOutputFileName(const gfxrecon::util::ArgumentParser& arg_p } switch (output_format) { - case gfxrecon::decode::JsonFormat::JSONL: + case JsonFormat::JSONL: output_filename += ".jsonl"; break; - case gfxrecon::decode::JsonFormat::JSON: + case JsonFormat::JSON: default: output_filename += ".json"; } @@ -110,7 +119,7 @@ static std::string GetOutputFileName(const gfxrecon::util::ArgumentParser& arg_p return output_filename; } -static gfxrecon::decode::JsonFormat GetOutputFormat(const gfxrecon::util::ArgumentParser& arg_parser) +static gfxrecon::util::JsonFormat GetOutputFormat(const gfxrecon::util::ArgumentParser& arg_parser) { std::string output_format; if (arg_parser.IsArgumentSet(kFormatArgument)) @@ -118,24 +127,24 @@ static gfxrecon::decode::JsonFormat GetOutputFormat(const gfxrecon::util::Argume output_format = arg_parser.GetArgumentValue(kFormatArgument); if (output_format == "json") { - return gfxrecon::decode::JsonFormat::JSON; + return JsonFormat::JSON; } else if (output_format == "jsonl") { - return gfxrecon::decode::JsonFormat::JSONL; + return JsonFormat::JSONL; } else { GFXRECON_LOG_WARNING("Unrecognized format %s. Defaulting to JSON format.", output_format.c_str()); - return gfxrecon::decode::JsonFormat::JSON; + return JsonFormat::JSON; } } - return gfxrecon::decode::JsonFormat::JSON; + return JsonFormat::JSON; } std::string FormatFrameNumber(uint32_t frame_number) { - std::stringstream stream; + std::ostringstream stream; stream << std::setfill('0') << std::setw(5) << frame_number; return stream.str(); } @@ -240,12 +249,12 @@ int main(int argc, const char** argv) } else { - gfxrecon::decode::VulkanExportJsonConsumer json_consumer; - gfxrecon::decode::JsonOptions json_options; - gfxrecon::decode::VulkanDecoder decoder; + gfxrecon::util::FileNoLockOutputStream out_stream{ out_file_handle, false }; + VulkanJsonConsumer json_consumer; + gfxrecon::util::JsonOptions json_options; + gfxrecon::decode::VulkanDecoder decoder; decoder.AddConsumer(&json_consumer); file_processor.AddDecoder(&decoder); - file_processor.SetAnnotationProcessor(&json_consumer); json_options.root_dir = output_dir; json_options.data_sub_dir = filename_stem; @@ -253,23 +262,26 @@ int main(int argc, const char** argv) json_options.dump_binaries = dump_binaries; json_options.expand_flags = expand_flags; + gfxrecon::decode::JsonWriter json_writer{ json_options, GFXRECON_PROJECT_VERSION_STRING, input_filename }; + file_processor.SetAnnotationProcessor(&json_writer); + bool success = true; const std::string vulkan_version{ std::to_string(VK_VERSION_MAJOR(VK_HEADER_VERSION_COMPLETE)) + "." + std::to_string(VK_VERSION_MINOR(VK_HEADER_VERSION_COMPLETE)) + "." + std::to_string(VK_VERSION_PATCH(VK_HEADER_VERSION_COMPLETE)) }; - json_consumer.Initialize(json_options, GFXRECON_PROJECT_VERSION_STRING, vulkan_version, input_filename); - json_consumer.StartFile(out_file_handle); + json_consumer.Initialize(&json_writer, vulkan_version); + json_writer.StartStream(&out_stream); // If CONVERT_EXPERIMENTAL_D3D12 was set, then add DX12 consumer/decoder #ifdef CONVERT_EXPERIMENTAL_D3D12 - gfxrecon::decode::Dx12AsciiConsumer dx12_ascii_consumer; + Dx12JsonConsumer dx12_json_consumer; gfxrecon::decode::Dx12Decoder dx12_decoder; - dx12_decoder.AddConsumer(&dx12_ascii_consumer); + dx12_decoder.AddConsumer(&dx12_json_consumer); file_processor.AddDecoder(&dx12_decoder); auto dx12_json_flags = output_format == JsonFormat::JSON ? gfxrecon::util::kToString_Formatted : gfxrecon::util::kToString_Unformatted; - dx12_ascii_consumer.Initialize(out_file_handle, dx12_json_flags); + dx12_json_consumer.Initialize(&json_writer); #endif while (success) @@ -277,7 +289,7 @@ int main(int argc, const char** argv) success = file_processor.ProcessNextFrame(); if (success && file_per_frame) { - json_consumer.EndFile(); + json_writer.EndStream(); gfxrecon::util::platform::FileClose(out_file_handle); json_filename = gfxrecon::util::filepath::InsertFilenamePostfix( output_filename, +"_" + FormatFrameNumber(file_processor.GetCurrentFrameNumber())); @@ -285,7 +297,8 @@ int main(int argc, const char** argv) success = out_file_handle != nullptr; if (success) { - json_consumer.StartFile(out_file_handle); + out_stream.Reset(out_file_handle); + json_writer.StartStream(&out_stream); } else { @@ -297,7 +310,7 @@ int main(int argc, const char** argv) json_consumer.Destroy(); // If CONVERT_EXPERIMENTAL_D3D12 was set, then cleanup DX12 consumer #ifdef CONVERT_EXPERIMENTAL_D3D12 - dx12_ascii_consumer.Destroy(); + dx12_json_consumer.Destroy(); #endif if (!output_to_stdout) {