[PATCH vkd3d 5/7] vkd3d: Pass target info to vkd3d-shader for compute pipelines.
Conor McCarthy
cmccarthy at codeweavers.com
Thu Jul 29 23:03:18 CDT 2021
Required for enabling extensions, e.g. descriptor indexing.
Signed-of-by: Conor McCarthy <cmccarthy at codeweavers.com>
---
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 46804883..47b1a797 100644
--- a/libs/vkd3d/state.c
+++ b/libs/vkd3d/state.c
@@ -1550,6 +1550,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;
@@ -1581,8 +1582,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;
--
2.32.0
More information about the wine-devel
mailing list