From be8efb9c9cd89d2e58b749f1028eae67b947c625 Mon Sep 17 00:00:00 2001 From: Henri Verbeet Date: Tue, 21 Feb 2023 15:42:25 +0100 Subject: [PATCH] vkd3d-utils: Implement D3DGetInputAndOutputSignatureBlob(). --- include/vkd3d_d3dcompiler.h | 1 + include/vkd3d_utils.h | 2 ++ libs/vkd3d-utils/vkd3d_utils.map | 1 + libs/vkd3d-utils/vkd3d_utils_main.c | 7 +++++++ 4 files changed, 11 insertions(+) diff --git a/include/vkd3d_d3dcompiler.h b/include/vkd3d_d3dcompiler.h index f3f46212..2c773cf0 100644 --- a/include/vkd3d_d3dcompiler.h +++ b/include/vkd3d_d3dcompiler.h @@ -90,6 +90,7 @@ HRESULT WINAPI D3DCompile2(const void *data, SIZE_T data_size, const char *filen HRESULT WINAPI D3DCreateBlob(SIZE_T size, ID3DBlob **blob); HRESULT WINAPI D3DGetBlobPart(const void *data, SIZE_T data_size, D3D_BLOB_PART part, UINT flags, ID3DBlob **blob); HRESULT WINAPI D3DGetDebugInfo(const void *data, SIZE_T data_size, ID3DBlob **blob); +HRESULT WINAPI D3DGetInputAndOutputSignatureBlob(const void *data, SIZE_T data_size, ID3DBlob **blob); HRESULT WINAPI D3DPreprocess(const void *data, SIZE_T size, const char *filename, const D3D_SHADER_MACRO *macros, ID3DInclude *include, ID3DBlob **shader, ID3DBlob **error_messages); diff --git a/include/vkd3d_utils.h b/include/vkd3d_utils.h index 65c86591..886987e8 100644 --- a/include/vkd3d_utils.h +++ b/include/vkd3d_utils.h @@ -109,6 +109,8 @@ VKD3D_UTILS_API HRESULT WINAPI D3DGetBlobPart(const void *data, SIZE_T data_size, D3D_BLOB_PART part, UINT flags, ID3DBlob **blob); /** \since 1.10 */ VKD3D_UTILS_API HRESULT WINAPI D3DGetDebugInfo(const void *data, SIZE_T data_size, ID3DBlob **blob); +/** \since 1.10 */ +VKD3D_UTILS_API HRESULT WINAPI D3DGetInputAndOutputSignatureBlob(const void *data, SIZE_T data_size, ID3DBlob **blob); #ifdef __cplusplus } diff --git a/libs/vkd3d-utils/vkd3d_utils.map b/libs/vkd3d-utils/vkd3d_utils.map index 03d87e8a..8cc9248b 100644 --- a/libs/vkd3d-utils/vkd3d_utils.map +++ b/libs/vkd3d-utils/vkd3d_utils.map @@ -13,6 +13,7 @@ global: D3DCreateBlob; D3DGetBlobPart; D3DGetDebugInfo; + D3DGetInputAndOutputSignatureBlob; D3DPreprocess; vkd3d_create_event; vkd3d_destroy_event; diff --git a/libs/vkd3d-utils/vkd3d_utils_main.c b/libs/vkd3d-utils/vkd3d_utils_main.c index 85f679d8..4efa7870 100644 --- a/libs/vkd3d-utils/vkd3d_utils_main.c +++ b/libs/vkd3d-utils/vkd3d_utils_main.c @@ -766,6 +766,13 @@ HRESULT WINAPI D3DGetDebugInfo(const void *data, SIZE_T data_size, ID3DBlob **bl return get_blob_part(data, data_size, D3D_BLOB_DEBUG_INFO, 0, blob); } +HRESULT WINAPI D3DGetInputAndOutputSignatureBlob(const void *data, SIZE_T data_size, ID3DBlob **blob) +{ + TRACE("data %p, data_size %lu, blob %p.\n", data, data_size, blob); + + return get_blob_part(data, data_size, D3D_BLOB_INPUT_AND_OUTPUT_SIGNATURE_BLOB, 0, blob); +} + void vkd3d_utils_set_log_callback(PFN_vkd3d_log callback) { vkd3d_set_log_callback(callback);