diff --git a/libs/vkd3d/device.c b/libs/vkd3d/device.c index d6249329..ca2fd821 100644 --- a/libs/vkd3d/device.c +++ b/libs/vkd3d/device.c @@ -411,7 +411,7 @@ static void vkd3d_init_debug_messenger_callback(struct vkd3d_instance *instance) } uint64_t vkd3d_config_flags; -const struct vkd3d_shader_quirk_info *vkd3d_shader_quirk_info; +struct vkd3d_shader_quirk_info vkd3d_shader_quirk_info; struct vkd3d_instance_application_meta { @@ -479,7 +479,7 @@ static void vkd3d_instance_apply_application_workarounds(void) { if (vkd3d_string_compare(application_shader_quirks[i].mode, app, application_shader_quirks[i].name)) { - vkd3d_shader_quirk_info = application_shader_quirks[i].info; + vkd3d_shader_quirk_info = *application_shader_quirks[i].info; INFO("Detected game %s, adding shader quirks for specific shaders.\n", app); break; } diff --git a/libs/vkd3d/raytracing_pipeline.c b/libs/vkd3d/raytracing_pipeline.c index 85de9c3a..13a3c54e 100644 --- a/libs/vkd3d/raytracing_pipeline.c +++ b/libs/vkd3d/raytracing_pipeline.c @@ -987,7 +987,7 @@ static HRESULT d3d12_state_object_compile_pipeline(struct d3d12_state_object *ob compile_args.target_extensions = object->device->vk_info.shader_extensions; compile_args.target_extension_count = object->device->vk_info.shader_extension_count; compile_args.target = VKD3D_SHADER_TARGET_SPIRV_VULKAN_1_0; - compile_args.quirks = vkd3d_shader_quirk_info; + compile_args.quirks = &vkd3d_shader_quirk_info; /* TODO: Allow different root signatures per module. */ memset(&shader_interface_info, 0, sizeof(shader_interface_info)); diff --git a/libs/vkd3d/state.c b/libs/vkd3d/state.c index a0a6e6c1..20108db1 100644 --- a/libs/vkd3d/state.c +++ b/libs/vkd3d/state.c @@ -2197,7 +2197,7 @@ static HRESULT vkd3d_create_compute_pipeline(struct d3d12_device *device, compile_args.target_extensions = device->vk_info.shader_extensions; compile_args.target_extension_count = device->vk_info.shader_extension_count; compile_args.target = VKD3D_SHADER_TARGET_SPIRV_VULKAN_1_0; - compile_args.quirks = vkd3d_shader_quirk_info; + compile_args.quirks = &vkd3d_shader_quirk_info; pipeline_info.sType = VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO; pipeline_info.pNext = NULL; @@ -3214,7 +3214,7 @@ static HRESULT d3d12_pipeline_state_init_graphics(struct d3d12_pipeline_state *s compile_args.target = VKD3D_SHADER_TARGET_SPIRV_VULKAN_1_0; compile_args.target_extension_count = vk_info->shader_extension_count; compile_args.target_extensions = vk_info->shader_extensions; - compile_args.quirks = vkd3d_shader_quirk_info; + compile_args.quirks = &vkd3d_shader_quirk_info; /* Options which are exclusive to PS. Especially output swizzles must only be used in PS. */ ps_compile_args = compile_args; diff --git a/libs/vkd3d/vkd3d_private.h b/libs/vkd3d/vkd3d_private.h index 2e490e73..417a25b7 100644 --- a/libs/vkd3d/vkd3d_private.h +++ b/libs/vkd3d/vkd3d_private.h @@ -191,7 +191,7 @@ struct vkd3d_instance }; extern uint64_t vkd3d_config_flags; -extern const struct vkd3d_shader_quirk_info *vkd3d_shader_quirk_info; +extern struct vkd3d_shader_quirk_info vkd3d_shader_quirk_info; union vkd3d_thread_handle {