GameTechDev/ISPCTextureCompressor

Command line parameters?

JoshKlint opened this issue · 3 comments

When using the standalone EXE what are the available command line parameters?

Intel(r) SPMD Program Compiler (ispc), 1.11.0 (build date Apr 19 2019, LLVM 8.0.0)
Supported Visual Studio versions: Visual Studio 2015 and later.

usage: ispc
    [--addressing={32,64}]              Select 32- or 64-bit addressing. (Note that 32-bit
                                        addressing calculations are done by default, even
                                        on 64-bit target architectures.)
    [--arch={x86, x86-64}]              Select target architecture
    [--c++-include-file=<name>]         Specify name of file to emit in #include statement in generated C++ code.
    [--cpu=<cpu>]                       Select target CPU type
<cpu>={generic, x86-64, atom (synonyms: bonnell), core2, penryn, corei7 (synonyms: nehalem), corei7-avx (synonyms: sandybridge), core-avx-i (synonyms: ivybridge), core-avx2 (synonyms: haswell), broadwell, knl, skx, slm (synonyms: silvermont)}

    [-D<foo>]                           #define given value when running preprocessor
    [--dev-stub <filename>]             Emit device-side offload stub functions to file
    [--dllexport]                       Make non-static functions DLL exported.  Windows only.
    [--dwarf-version={2,3,4}]           Generate source-level debug information with given DWARF version (triggers -g)
    [--emit-asm]                        Generate assembly language file as output
    [--x86-asm-syntax=<option>]         Select style of code if generating assembly
        intel                           Emit Intel-style assembly
        att                             Emit AT&T-style assembly
    [--emit-c++]                        Emit a C++ source file as output
    [--emit-llvm]                       Emit LLVM bitode file as output
    [--emit-obj]                        Generate object file file as output (default)
    [--force-alignment=<value>]         Force alignment in memory allocations routine to be <value>
    [-g]                                Generate source-level debug information
    [--help]                            Print help
    [--help-dev]                        Print help for developer options
    [--host-stub <filename>]            Emit host-side offload stub functions to file
    [-h <name>/--header-outfile=<name>] Output filename for header
    [-I <path>]                         Add <path> to #include file search path
    [--instrument]                      Emit instrumentation to gather performance data
    [--math-lib=<option>]               Select math library
        default                         Use ispc's built-in math functions
        fast                            Use high-performance but lower-accuracy math functions
        svml                            Use the Intel(r) SVML math libraries
        system                          Use the system's math library (*may be quite slow*)
    [-MMM <filename>]                   Write #include dependencies to given file.
    [-M]                                Output a rule suitable for `make' describing the dependencies of the main source file to stdout.
    [-MF <filename>]                    When used with `-M', specifies a file to write the dependencies to.
    [-MT <filename>]                    When used with `-M', changes the target of the rule emitted by dependency generation.
    [--no-omit-frame-pointer]           Disable frame pointer omission. It may be useful for profiling
    [--nostdlib]                        Don't make the ispc standard library available
    [--no-pragma-once]                  Don't use #pragma once in created headers
    [--nocpp]                           Don't run the C preprocessor
    [-o <name>/--outfile=<name>]        Output filename (may be "-" for standard output)
    [-O0/-O(1/2/3)]                     Set optimization level. Default behavior is to optimize for speed.
        -O0                             Optimizations disabled.
        -O1                             Optimization for size.
        -O2/O3                          Optimization for speed.
    [--opt=<option>]                    Set optimization option
        disable-assertions              Remove assertion statements from final code.
        disable-fma                     Disable 'fused multiply-add' instructions (on targets that support them)
        disable-loop-unroll             Disable loop unrolling.
        fast-masked-vload               Faster masked vector loads on SSE (may go past end of array)
        fast-math                       Perform non-IEEE-compliant optimizations of numeric expressions
        force-aligned-memory            Always issue "aligned" vector load and store instructions
    [--quiet]                           Suppress all output
    [--target=<t>]                      Select target ISA and width.
<t>={host, sse2-i32x4, sse2-i32x8, sse4-i32x4, sse4-i32x8, sse4-i16x8, sse4-i8x16, avx1-i32x4, avx1-i32x8, avx1-i32x16, avx1-i64x4, avx1.1-i32x8, avx1.1-i32x16, avx1.1-i64x4, avx2-i32x8, avx2-i32x16, avx2-i64x4, avx512knl-i32x16, avx512skx-i32x16, avx512skx-i32x8, generic-x1, generic-x4, generic-x8, generic-x16, generic-x32, generic-x64, *-generic-x16}
    [--version]                         Print ispc version
    [--werror]                          Treat warnings as errors
    [--woff]                            Disable warnings
    [--wno-perf]                        Don't issue warnings related to performance-related issues
    [@<filename>]                       Read additional arguments from the given file
    <file to compile or "-" for stdin>

Yes, It would be great if there is a cmd sample provided

We ended up just building our own plugin with the library, which was easier.