Conor McCarthy : vkd3d: Pass target info to vkd3d-shader for compute pipelines.

Alexandre Julliard julliard at winehq.org
Mon Aug 2 16:42:59 CDT 2021


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

Author: Conor McCarthy <cmccarthy at codeweavers.com>
Date:   Fri Jul 30 14:03:18 2021 +1000

vkd3d: Pass target info to vkd3d-shader for compute pipelines.

Required for enabling extensions, e.g. descriptor indexing.

Signed-off-by: Conor McCarthy <cmccarthy at codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 libs/vkd3d/state.c | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)

diff --git a/libs/vkd3d/state.c b/libs/vkd3d/state.c
index 588036d..7a3759e 100644
--- a/libs/vkd3d/state.c
+++ b/libs/vkd3d/state.c
@@ -1547,6 +1547,7 @@ static HRESULT d3d12_pipeline_state_init_compute(struct d3d12_pipeline_state *st
     struct vkd3d_shader_scan_descriptor_info shader_info;
     struct vkd3d_shader_interface_info shader_interface;
     const struct d3d12_root_signature *root_signature;
+    struct vkd3d_shader_spirv_target_info target_info;
     VkPipelineLayout vk_pipeline_layout;
     HRESULT hr;
     int ret;
@@ -1578,8 +1579,14 @@ static HRESULT d3d12_pipeline_state_init_compute(struct d3d12_pipeline_state *st
     }
     vkd3d_shader_free_scan_descriptor_info(&shader_info);
 
+    memset(&target_info, 0, sizeof(target_info));
+    target_info.type = VKD3D_SHADER_STRUCTURE_TYPE_SPIRV_TARGET_INFO;
+    target_info.environment = VKD3D_SHADER_SPIRV_ENVIRONMENT_VULKAN_1_0;
+    target_info.extensions = device->vk_info.shader_extensions;
+    target_info.extension_count = device->vk_info.shader_extension_count;
+
     shader_interface.type = VKD3D_SHADER_STRUCTURE_TYPE_INTERFACE_INFO;
-    shader_interface.next = NULL;
+    shader_interface.next = &target_info;
     shader_interface.bindings = root_signature->descriptor_mapping;
     shader_interface.binding_count = root_signature->binding_count;
     shader_interface.push_constant_buffers = root_signature->root_constants;




More information about the wine-cvs mailing list