X-Git-Url: https://git.libre-soc.org/?p=mesa.git;a=blobdiff_plain;f=src%2Fcompiler%2Fspirv%2Fspirv2nir.c;h=c6dfab0d366a1f34080ec69a2ba030786f787867;hp=bbec4d2af6a699e78128c07036d4baf78e6cfb80;hb=5fc9b139df6d93d014654c9acbc5d42aede3bb0c;hpb=c0cfc9f14567d56a5d64851cf1b5dcfc910a7fef diff --git a/src/compiler/spirv/spirv2nir.c b/src/compiler/spirv/spirv2nir.c index bbec4d2af6a..c6dfab0d366 100644 --- a/src/compiler/spirv/spirv2nir.c +++ b/src/compiler/spirv/spirv2nir.c @@ -65,6 +65,20 @@ stage_to_enum(char *stage) return MESA_SHADER_NONE; } +static void +print_usage(char *exec_name, FILE *f) +{ + fprintf(f, +"Usage: %s [options] file\n" +"Options:\n" +" -h --help Print this help.\n" +" -s, --stage Specify the shader stage. Valid stages are:\n" +" vertex, tess-ctrl, tess-eval, geometry, fragment,\n" +" compute, and kernel (OpenCL-style compute).\n" +" -e, --entry Specify the entry-point name.\n" + , exec_name); +} + int main(int argc, char **argv) { gl_shader_stage shader_stage = MESA_SHADER_FRAGMENT; @@ -73,36 +87,43 @@ int main(int argc, char **argv) static struct option long_options[] = { + {"help", no_argument, 0, 'h'}, {"stage", required_argument, 0, 's'}, {"entry", required_argument, 0, 'e'}, {0, 0, 0, 0} }; - while ((ch = getopt_long(argc - 1, argv + 1, "s:e:", long_options, NULL)) != -1) + while ((ch = getopt_long(argc, argv, "hs:e:", long_options, NULL)) != -1) { switch (ch) { - case 's': - shader_stage = stage_to_enum(optarg); - if (shader_stage == MESA_SHADER_NONE) - { - fprintf(stderr, "Unknown stage %s\n", optarg); - return 1; - } - break; - case 'e': - entry_point = optarg; - break; - default: - fprintf(stderr, "Unrecognized option.\n"); + case 'h': + print_usage(argv[0], stdout); + return 0; + case 's': + shader_stage = stage_to_enum(optarg); + if (shader_stage == MESA_SHADER_NONE) + { + fprintf(stderr, "Unknown stage \"%s\"\n", optarg); + print_usage(argv[0], stderr); return 1; + } + break; + case 'e': + entry_point = optarg; + break; + default: + fprintf(stderr, "Unrecognized option \"%s\".\n", optarg); + print_usage(argv[0], stderr); + return 1; } } - int fd = open(argv[1], O_RDONLY); + const char *filename = argv[optind]; + int fd = open(filename, O_RDONLY); if (fd < 0) { - fprintf(stderr, "Failed to open %s\n", argv[1]); + fprintf(stderr, "Failed to open %s\n", filename); return 1; }