blob: b18af05c4cc7f821b882d85f950e6cec5eb3e67e [file] [log] [blame]
@ECHO OFF
::
:: delete the previous images
::
del *.comp
del *.spv
del *.xxd
::
::
::
set HS_GEN=..\..\..\..\..\..\spinel\bin\x64\Debug\hs_gen
::
:: There appears to be an Intel compiler bug when using more than
:: 16 registers per lane so try a wider subgroup and narrower merging kernels
::
:: The current crop of Intel compilers are spilling way too much...
::
%HS_GEN% -v -a "glsl" -D HS_INTEL_GEN8 -t 1 -w 16 -r 8 -s 21504 -S 65536 -b 16 -B 48 -m 1 -M 1 -f 0 -F 0 -c 0 -C 0 -z
::
:: This should be the proper mapping onto the Intel GEN8+ subslices but the compiler is spilling
::
:: %HS_GEN% -v -a "glsl" -D HS_INTEL_GEN8 -t 1 -w 8 -r 32 -s 32768 -S 65536 -b 28 -B 56 -m 1 -M 1 -f 0 -F 0 -c 0 -C 0 -z
::
::
:: remove trailing whitespace from generated files
::
sed -i 's/[[:space:]]*$//' hs_config.h
sed -i 's/[[:space:]]*$//' hs_modules.h
::
::
::
where glslangValidator
::
:: FIXME -- convert this to a bash script
::
:: Note that we can use xargs instead of the cmd for/do
::
for %%f in (*.comp) do (
dos2unix %%f
clang-format -style=Mozilla -i %%f || goto :error
cl -I ../.. -I ../../.. -EP %%f -P -Fi%%~nf.pre.comp || goto :error
clang-format -style=Mozilla -i %%~nf.pre.comp || goto :error
glslangValidator --target-env vulkan1.1 -o %%~nf.spv %%~nf.pre.comp || goto :error
spirv-opt -O %%~nf.spv -o %%~nf.spv || goto :error
REM spirv-remap ... || goto :error
xxd -i < %%~nf.spv > %%~nf.spv.xxd || goto :error
for /f %%A in ('wc -c %%~nf.spv') do (
echo %%~nf.spv %%A
printf "%%.8x" %%A | xxd -r -p | xxd -i > %%~nf.len.xxd || goto :error
)
)
::
:: dump a binary
::
cl -I ../../.. -I ../../../../.. /DHS_DUMP /Fe:hs_dump.exe *.c
hs_dump
::
:: delete temporary files
::
del *.pre.comp
del *.comp
del *.spv
REM del *.obj
REM del *.exe
exit /b 0
:error
exit /b %errorlevel%