On Tue, 29 Sep 2020 at 07:11, Zebediah Figura <zfigura(a)codeweavers.com> wrote:
+HRESULT WINAPI D3DPreprocess(const void *data, SIZE_T size, const char *filename, + const D3D_SHADER_MACRO *macros, ID3DInclude *include, + ID3DBlob **preprocessed_blob, ID3DBlob **messages_blob) +{ + struct vkd3d_shader_preprocess_info preprocess_info; + struct vkd3d_shader_compile_info compile_info; + struct vkd3d_shader_code preprocessed_code; + const D3D_SHADER_MACRO *macro; + char *messages; + HRESULT hr; + int ret; + + TRACE("data %p, size %lu, filename %s, macros %p, include %p, preprocessed_blob %p, messages_blob %p.\n", + data, size, debugstr_a(filename), macros, include, preprocessed_blob, messages_blob); + + compile_info.type = VKD3D_SHADER_STRUCTURE_TYPE_COMPILE_INFO; + compile_info.next = &preprocess_info; + compile_info.source.code = data; + compile_info.source.size = size; + compile_info.source_type = VKD3D_SHADER_SOURCE_HLSL; + compile_info.target_type = VKD3D_SHADER_SOURCE_HLSL; That's not a valid target type, and will be interpreted as VKD3D_SHADER_TARGET_SPIRV_TEXT. We should probably just pass VKD3D_SHADER_TARGET_NONE here and specify "target_type" as ignored for vkd3d_shader_preprocess(), but it would also be fine to introduce VKD3D_SHADER_TARGET_HLSL.