=?UTF-8?Q?J=C3=B3zef=20Kucia=20?=: vkd3d: Add stubs for versioned root signatures.

Alexandre Julliard julliard at winehq.org
Wed Apr 10 14:54:30 CDT 2019


Module: vkd3d
Branch: master
Commit: 3b83ccc67e2a695b61fb374bf6f8d5b9cf605b47
URL:    https://source.winehq.org/git/vkd3d.git/?a=commit;h=3b83ccc67e2a695b61fb374bf6f8d5b9cf605b47

Author: Józef Kucia <jkucia at codeweavers.com>
Date:   Wed Apr 10 17:32:00 2019 +0200

vkd3d: Add stubs for versioned root signatures.

Signed-off-by: Józef Kucia <jkucia at codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 include/vkd3d.h                     | 13 +++++++++++++
 libs/vkd3d-utils/vkd3d_utils.map    |  2 ++
 libs/vkd3d-utils/vkd3d_utils_main.c | 24 ++++++++++++++++++++----
 libs/vkd3d/vkd3d.map                |  2 ++
 libs/vkd3d/vkd3d_main.c             | 24 ++++++++++++++++++++----
 5 files changed, 57 insertions(+), 8 deletions(-)

diff --git a/include/vkd3d.h b/include/vkd3d.h
index 39c4c6b..24cb34e 100644
--- a/include/vkd3d.h
+++ b/include/vkd3d.h
@@ -154,9 +154,15 @@ ULONG vkd3d_resource_incref(ID3D12Resource *resource);
 HRESULT vkd3d_serialize_root_signature(const D3D12_ROOT_SIGNATURE_DESC *desc,
         D3D_ROOT_SIGNATURE_VERSION version, ID3DBlob **blob, ID3DBlob **error_blob);
 
+HRESULT vkd3d_serialize_versioned_root_signature(const D3D12_VERSIONED_ROOT_SIGNATURE_DESC *desc,
+        ID3DBlob **blob, ID3DBlob **error_blob);
+
 HRESULT vkd3d_create_root_signature_deserializer(const void *data, SIZE_T data_size,
         REFIID iid, void **deserializer);
 
+HRESULT vkd3d_create_versioned_root_signature_deserializer(const void *data, SIZE_T data_size,
+        REFIID iid, void **deserializer);
+
 DXGI_FORMAT vkd3d_get_dxgi_format(VkFormat format);
 VkFormat vkd3d_get_vk_format(DXGI_FORMAT format);
 
@@ -190,9 +196,16 @@ typedef ULONG (*PFN_vkd3d_resource_incref)(ID3D12Resource *resource);
 typedef HRESULT (*PFN_vkd3d_serialize_root_signature)(const D3D12_ROOT_SIGNATURE_DESC *desc,
         D3D_ROOT_SIGNATURE_VERSION version, ID3DBlob **blob, ID3DBlob **error_blob);
 
+typedef HRESULT (*PFN_vkd3d_serialize_versioned_root_signature)(const D3D12_VERSIONED_ROOT_SIGNATURE_DESC *desc,
+        ID3DBlob **blob, ID3DBlob **error_blob);
+
 typedef HRESULT (*PFN_vkd3d_create_root_signature_deserializer)(const void *data, SIZE_T data_size,
         REFIID iid, void **deserializer);
 
+typedef HRESULT (*PFN_vkd3d_create_versioned_root_signature_deserializer)(const void *data, SIZE_T data_size,
+        REFIID iid, void **deserializer);
+
+typedef DXGI_FORMAT (*PFN_vkd3d_get_dxgi_format)(VkFormat format);
 typedef VkFormat (*PFN_vkd3d_get_vk_format)(DXGI_FORMAT format);
 
 #ifdef __cplusplus
diff --git a/libs/vkd3d-utils/vkd3d_utils.map b/libs/vkd3d-utils/vkd3d_utils.map
index 79858e5..9d95a84 100644
--- a/libs/vkd3d-utils/vkd3d_utils.map
+++ b/libs/vkd3d-utils/vkd3d_utils.map
@@ -3,8 +3,10 @@ VKD3D_1_0
 global:
     D3D12CreateDevice;
     D3D12CreateRootSignatureDeserializer;
+    D3D12CreateVersionedRootSignatureDeserializer;
     D3D12GetDebugInterface;
     D3D12SerializeRootSignature;
+    D3D12SerializeVersionedRootSignature;
     vkd3d_create_event;
     vkd3d_destroy_event;
     vkd3d_signal_event;
diff --git a/libs/vkd3d-utils/vkd3d_utils_main.c b/libs/vkd3d-utils/vkd3d_utils_main.c
index 03f9f52..d06a750 100644
--- a/libs/vkd3d-utils/vkd3d_utils_main.c
+++ b/libs/vkd3d-utils/vkd3d_utils_main.c
@@ -87,13 +87,29 @@ HRESULT WINAPI D3D12CreateRootSignatureDeserializer(const void *data, SIZE_T dat
     return vkd3d_create_root_signature_deserializer(data, data_size, iid, deserializer);
 }
 
-HRESULT WINAPI D3D12SerializeRootSignature(const D3D12_ROOT_SIGNATURE_DESC *root_signature_desc,
+HRESULT WINAPI D3D12CreateVersionedRootSignatureDeserializer(const void *data, SIZE_T data_size,
+        REFIID iid,void **deserializer)
+{
+    TRACE("data %p, data_size %lu, iid %s, deserializer %p.\n",
+            data, data_size, debugstr_guid(iid), deserializer);
+
+    return vkd3d_create_versioned_root_signature_deserializer(data, data_size, iid, deserializer);
+}
+
+HRESULT WINAPI D3D12SerializeRootSignature(const D3D12_ROOT_SIGNATURE_DESC *desc,
         D3D_ROOT_SIGNATURE_VERSION version, ID3DBlob **blob, ID3DBlob **error_blob)
 {
-    TRACE("root_signature_desc %p, version %#x, blob %p, error_blob %p.\n",
-            root_signature_desc, version, blob, error_blob);
+    TRACE("desc %p, version %#x, blob %p, error_blob %p.\n", desc, version, blob, error_blob);
+
+    return vkd3d_serialize_root_signature(desc, version, blob, error_blob);
+}
+
+HRESULT WINAPI D3D12SerializeVersionedRootSignature(const D3D12_VERSIONED_ROOT_SIGNATURE_DESC *desc,
+        ID3DBlob **blob, ID3DBlob **error_blob)
+{
+    TRACE("desc %p, blob %p, error_blob %p.\n", desc, blob, error_blob);
 
-    return vkd3d_serialize_root_signature(root_signature_desc, version, blob, error_blob);
+    return vkd3d_serialize_versioned_root_signature(desc, blob, error_blob);
 }
 
 /* Events */
diff --git a/libs/vkd3d/vkd3d.map b/libs/vkd3d/vkd3d.map
index f43c85c..6f1f376 100644
--- a/libs/vkd3d/vkd3d.map
+++ b/libs/vkd3d/vkd3d.map
@@ -6,6 +6,7 @@ global:
     vkd3d_create_image_resource;
     vkd3d_create_instance;
     vkd3d_create_root_signature_deserializer;
+    vkd3d_create_versioned_root_signature_deserializer;
     vkd3d_get_device_parent;
     vkd3d_get_dxgi_format;
     vkd3d_get_vk_device;
@@ -20,6 +21,7 @@ global:
     vkd3d_resource_decref;
     vkd3d_resource_incref;
     vkd3d_serialize_root_signature;
+    vkd3d_serialize_versioned_root_signature;
 
 local: *;
 };
diff --git a/libs/vkd3d/vkd3d_main.c b/libs/vkd3d/vkd3d_main.c
index 5e93a2a..8f9351b 100644
--- a/libs/vkd3d/vkd3d_main.c
+++ b/libs/vkd3d/vkd3d_main.c
@@ -205,6 +205,15 @@ HRESULT vkd3d_create_root_signature_deserializer(const void *data, SIZE_T data_s
             &IID_ID3D12RootSignatureDeserializer, iid, deserializer);
 }
 
+HRESULT vkd3d_create_versioned_root_signature_deserializer(const void *data, SIZE_T data_size,
+        REFIID iid, void **deserializer)
+{
+    FIXME("data %p, data_size %lu, iid %s, deserializer %p stub!\n",
+            data, data_size, debugstr_guid(iid), deserializer);
+
+    return E_NOTIMPL;
+}
+
 /* ID3DBlob */
 struct d3d_blob
 {
@@ -319,7 +328,7 @@ static HRESULT d3d_blob_create(void *buffer, SIZE_T size, struct d3d_blob **blob
     return S_OK;
 }
 
-HRESULT vkd3d_serialize_root_signature(const D3D12_ROOT_SIGNATURE_DESC *root_signature_desc,
+HRESULT vkd3d_serialize_root_signature(const D3D12_ROOT_SIGNATURE_DESC *desc,
         D3D_ROOT_SIGNATURE_VERSION version, ID3DBlob **blob, ID3DBlob **error_blob)
 {
     struct vkd3d_shader_code dxbc;
@@ -327,8 +336,7 @@ HRESULT vkd3d_serialize_root_signature(const D3D12_ROOT_SIGNATURE_DESC *root_sig
     HRESULT hr;
     int ret;
 
-    TRACE("root_signature_desc %p, version %#x, blob %p, error_blob %p.\n",
-            root_signature_desc, version, blob, error_blob);
+    TRACE("desc %p, version %#x, blob %p, error_blob %p.\n", desc, version, blob, error_blob);
 
     if (!blob)
     {
@@ -340,7 +348,7 @@ HRESULT vkd3d_serialize_root_signature(const D3D12_ROOT_SIGNATURE_DESC *root_sig
         *error_blob = NULL;
 
     if ((ret = vkd3d_shader_serialize_root_signature(
-            (const struct vkd3d_root_signature_desc *)root_signature_desc,
+            (const struct vkd3d_root_signature_desc *)desc,
             (enum vkd3d_root_signature_version)version, &dxbc)) < 0)
     {
         WARN("Failed to serialize root signature, vkd3d result %d.\n", ret);
@@ -360,3 +368,11 @@ HRESULT vkd3d_serialize_root_signature(const D3D12_ROOT_SIGNATURE_DESC *root_sig
 
     return S_OK;
 }
+
+HRESULT vkd3d_serialize_versioned_root_signature(const D3D12_VERSIONED_ROOT_SIGNATURE_DESC *desc,
+        ID3DBlob **blob, ID3DBlob **error_blob)
+{
+    FIXME("desc %p, blob %p, error_blob %p stub!\n", desc, blob, error_blob);
+
+    return E_NOTIMPL;
+}




More information about the wine-cvs mailing list