diff --git a/generate_shader_buildtask_spirv.py b/generate_shader_buildtask_spirv.py new file mode 100644 index 000000000..0a71beb01 --- /dev/null +++ b/generate_shader_buildtask_spirv.py @@ -0,0 +1,49 @@ +import os +import xml.etree.ElementTree as ET + +tree = ET.parse('WickedEngine/WickedEngine_SHADERS.vcxproj') +root = tree.getroot() + +## Hardcode visual studio namespace for now... +namespace = "{http://schemas.microsoft.com/developer/msbuild/2003}" + +file = open("build_SPIRV.bat", "w") + +outputdir = "spirv" + +## First, ensure that we have the optuput directory: +file.write("cd WickedEngine\shaders \n") +file.write("mkdir " + outputdir + "\n") +file.write("cd .. \n") + +## Then we parse the default shader project and generate build task for an other shader compiler: +for shader in root.iter(namespace + "FxCompile"): + for shaderprofile in shader.iter(namespace + "ShaderType"): + + profile = shaderprofile.text + name = shader.attrib["Include"] + + print profile + ": " + name + + file.write("..\shadercompilers\dxc " + name + " -T ") + + if profile == "Vertex": + file.write("vs") + if profile == "Pixel": + file.write("ps") + if profile == "Geometry": + file.write("gs") + if profile == "Hull": + file.write("hs") + if profile == "Domain": + file.write("ds") + if profile == "Compute": + file.write("cs") + + file.write("_6_0 ") + + file.write(" -spirv -flegacy-macro-expansion -Fo " + "shaders/" + outputdir + "/" + os.path.splitext(name)[0] + ".cso \n") + + + +file.close() diff --git a/shadercompilers/dxc.exe b/shadercompilers/dxc.exe index edb99bbde..3bc8063c0 100644 Binary files a/shadercompilers/dxc.exe and b/shadercompilers/dxc.exe differ diff --git a/shadercompilers/dxcompiler.dll b/shadercompilers/dxcompiler.dll index b6b74bb86..0d6c75ce3 100644 Binary files a/shadercompilers/dxcompiler.dll and b/shadercompilers/dxcompiler.dll differ