[PATCH vkd3d 4/4] vkd3d-compiler: Default to HLSL as a source format when preprocessing.

Zebediah Figura zfigura at codeweavers.com
Thu Nov 26 11:54:36 CST 2020


Signed-off-by: Zebediah Figura <zfigura at codeweavers.com>
---
 programs/vkd3d-compiler/main.c | 16 +++++++++++-----
 1 file changed, 11 insertions(+), 5 deletions(-)

diff --git a/programs/vkd3d-compiler/main.c b/programs/vkd3d-compiler/main.c
index cec2ebb1..9aba2a26 100644
--- a/programs/vkd3d-compiler/main.c
+++ b/programs/vkd3d-compiler/main.c
@@ -397,8 +397,8 @@ static bool parse_command_line(int argc, char **argv, struct options *options)
     };
 
     memset(options, 0, sizeof(*options));
-    options->source_type = VKD3D_SHADER_SOURCE_DXBC_TPF;
-    options->target_type = VKD3D_SHADER_TARGET_SPIRV_BINARY;
+    options->source_type = VKD3D_SHADER_SOURCE_NONE;
+    options->target_type = VKD3D_SHADER_TARGET_NONE;
     options->formatting = VKD3D_SHADER_COMPILE_OPTION_FORMATTING_INDENT
             | VKD3D_SHADER_COMPILE_OPTION_FORMATTING_HEADER;
 
@@ -483,7 +483,8 @@ static bool parse_command_line(int argc, char **argv, struct options *options)
     if (options->print_target_types)
         return true;
 
-    if (!validate_target_type(options->source_type, options->target_type))
+    if (options->source_type != VKD3D_SHADER_SOURCE_NONE && options->target_type != VKD3D_SHADER_TARGET_NONE
+            && !validate_target_type(options->source_type, options->target_type))
     {
         fprintf(stderr, "Target type '%s' is invalid for source type '%s'.\n",
                 get_target_type_info(options->target_type)->name,
@@ -606,6 +607,11 @@ int main(int argc, char **argv)
         return 1;
     }
 
+    if (options.source_type == VKD3D_SHADER_SOURCE_NONE)
+        options.source_type = options.preprocess_only ? VKD3D_SHADER_SOURCE_HLSL : VKD3D_SHADER_SOURCE_DXBC_TPF;
+    if (options.target_type == VKD3D_SHADER_TARGET_NONE && !options.preprocess_only)
+        options.target_type = VKD3D_SHADER_TARGET_SPIRV_BINARY;
+
     if (options.print_version)
     {
         const char *version = vkd3d_shader_get_version(NULL, NULL);
@@ -639,8 +645,8 @@ int main(int argc, char **argv)
     if (!(output = open_output(options.output_filename, &close_output)))
         goto done;
 
-    if (!options.output_filename && get_target_type_info(options.target_type)->is_binary
-            && isatty(fileno(output)))
+    if (!options.output_filename && options.target_type != VKD3D_SHADER_TARGET_NONE
+            && get_target_type_info(options.target_type)->is_binary && isatty(fileno(output)))
     {
         fprintf(stderr, "Output is a tty and output format is binary, exiting.\n"
                 "If this is really what you intended, specify the output explicitly.\n");
-- 
2.29.2




More information about the wine-devel mailing list