protected override int init(AnalyzeWrap wrap, ShaderAnalyzeParams param) { ShaderAnalyzerUtil.ChangeIDEToBridge(); ShaderCompilerPlatform platform = ShaderCompilerPlatform.GLES3x; switch (param.APIType) { case EAPIType.OpenGLES: platform = ShaderCompilerPlatform.GLES3x; break; case EAPIType.Vulkan: platform = ShaderCompilerPlatform.Vulkan; break; } ShaderAnalyzerUtil.OpenCompiledShader.Invoke(null, new object[] { param.Shader, 3, 1 << (int)platform, !param.SkipUnusedVariant }); ShaderAnalyzerUtil.RevertIDESettings(); Thread thread = new Thread(new ThreadStart(supervisor)); thread.Start(); return(InitUnknown); }
private static int GetShaderCompilerBackendVersion(ShaderCompilerPlatform varPlatform) { var kShaderCompilerHLSLccVersion = 201904020; var kShaderCompilerBackendVersion = new int[] { 0, // OpenGL 0, // removed platform D3D9 0, // removed platform Xbox 360 0, // removed platform PS3 201707270, // D3D11 kShaderCompilerHLSLccVersion, // OpenGL ES 2 mobile 0, // removed platform OpenGL ES 2 desktop 0, // removed platform Flash 201707270, // D3D11 9.x level kShaderCompilerHLSLccVersion, // OpenGL ES 3 0, // removed platform PSP2 201511260, // PS4 201912109, // XB1 0, // removed platform PSM kShaderCompilerHLSLccVersion, // Metal kShaderCompilerHLSLccVersion, // GL 4.x 0, // removed platform N3DS 0, // removed platform Wii U kShaderCompilerHLSLccVersion, // Vulkan 201708011, // Switch 201912109 // XB1 D3D12 }; var shaderCompilerBackendVersion = kShaderCompilerBackendVersion[(int)varPlatform]; var compilerVersion = 0; //GetShaderCompilerVersion((int)varPlatform); // version of the platforms shader compiler from UnityShaderCompiler.exe (may be from platforms shader compiler plugin) return(shaderCompilerBackendVersion ^ compilerVersion); // by xoring the values we cause the hash the change when the platforms shader compiler version changes, also works nicely with the shader cache }
public VariantCompileInfo CompileVariant(ShaderType shaderType, string[] keywords, ShaderCompilerPlatform shaderCompilerPlatform, BuildTarget buildTarget, GraphicsTier tier, bool forExternalTool) { var platformKeywords = ShaderUtil.GetShaderPlatformKeywordsForBuildTarget(shaderCompilerPlatform, buildTarget, tier); return(ShaderUtil.CompileShaderVariant(SourceShader, SubshaderIndex, m_PassIndex, shaderType, platformKeywords, keywords, shaderCompilerPlatform, buildTarget, tier, forExternalTool)); }
private static string ConvertSerializedShader(SerializedShader m_ParsedForm, ShaderCompilerPlatform platform) { var sb = new StringBuilder(); sb.Append($"Shader \"{m_ParsedForm.m_Name}\" {{\n"); sb.Append(ConvertSerializedProperties(m_ParsedForm.m_PropInfo)); foreach (var m_SubShader in m_ParsedForm.m_SubShaders) { sb.Append(ConvertSerializedSubShader(m_SubShader, platform)); } if (!string.IsNullOrEmpty(m_ParsedForm.m_FallbackName)) { sb.Append($"Fallback \"{m_ParsedForm.m_FallbackName}\"\n"); } if (!string.IsNullOrEmpty(m_ParsedForm.m_CustomEditorName)) { sb.Append($"CustomEditor \"{m_ParsedForm.m_CustomEditorName}\"\n"); } sb.Append("}"); return(sb.ToString()); }
public PreprocessedVariant PreprocessVariant(ShaderType shaderType, string[] keywords, ShaderCompilerPlatform shaderCompilerPlatform, BuildTarget buildTarget, GraphicsTier tier, bool stripLineDirectives) { var platformKeywords = ShaderUtil.GetShaderPlatformKeywordsForBuildTarget(shaderCompilerPlatform, buildTarget, tier); return(ShaderUtil.PreprocessShaderVariant(SourceShader, SubshaderIndex, m_PassIndex, shaderType, platformKeywords, keywords, shaderCompilerPlatform, buildTarget, tier, stripLineDirectives)); }
public VariantCompileInfo CompileVariant(ShaderType shaderType, string[] keywords, ShaderCompilerPlatform shaderCompilerPlatform, BuildTarget buildTarget, BuiltinShaderDefine[] platformKeywords, bool forExternalTool) { return(ShaderUtil.CompileShaderVariant(SourceShader, SubshaderIndex, m_PassIndex, shaderType, platformKeywords, keywords, shaderCompilerPlatform, buildTarget, kNoGraphicsTier, forExternalTool)); }
public VariantCompileInfo CompileVariant(ShaderType shaderType, string[] keywords, ShaderCompilerPlatform shaderCompilerPlatform, BuildTarget buildTarget) { return(CompileVariant(shaderType, keywords, shaderCompilerPlatform, buildTarget, false)); }
extern internal static ShaderData.PreprocessedVariant PreprocessShaderVariant([NotNull] Shader shader, int subShaderIndex, int passId, ShaderType shaderType, BuiltinShaderDefine[] platformKeywords, string[] keywords, ShaderCompilerPlatform shaderCompilerPlatform, BuildTarget buildTarget, GraphicsTier tier, bool stripLineDirectives);
extern internal static ShaderData.VariantCompileInfo CompileShaderVariant([NotNull] Shader shader, int subShaderIndex, int passId, ShaderType shaderType, BuiltinShaderDefine[] platformKeywords, string[] keywords, ShaderCompilerPlatform shaderCompilerPlatform, BuildTarget buildTarget, GraphicsTier tier, bool outputForExternalTool);
private static int DisShdaerVertexChannel_Vulkan(string[] varContent, int varIndex, out ShaderCompilerPlatform varCompiledPlatform, out HashSet <string> varVertxtChannel) { varCompiledPlatform = ShaderCompilerPlatform.Vulkan; varVertxtChannel = new HashSet <string>(); return(varIndex); }
public PreprocessedVariant PreprocessVariant(ShaderType shaderType, string[] keywords, ShaderCompilerPlatform shaderCompilerPlatform, BuildTarget buildTarget, BuiltinShaderDefine[] platformKeywords, bool stripLineDirectives) { return(ShaderUtil.PreprocessShaderVariant(SourceShader, SubshaderIndex, m_PassIndex, shaderType, platformKeywords, keywords, shaderCompilerPlatform, buildTarget, kNoGraphicsTier, stripLineDirectives)); }
extern internal static void CompileShaderForTargetCompilerPlatform(Shader shader, ShaderCompilerPlatform platform);
extern public static ShaderMessage[] GetShaderMessages([NotNull] Shader s, ShaderCompilerPlatform platform);
private static string ConvertSerializedSubShader(SerializedSubShader m_SubShader, ShaderCompilerPlatform platform) { var sb = new StringBuilder(); sb.Append("SubShader {\n"); if (m_SubShader.m_LOD != 0) { sb.Append($" LOD {m_SubShader.m_LOD}\n"); } sb.Append(ConvertSerializedTagMap(m_SubShader.m_Tags, 1)); foreach (var m_Passe in m_SubShader.m_Passes) { sb.Append(ConvertSerializedPass(m_Passe, platform)); } sb.Append("}\n"); return(sb.ToString()); }
private static string ConvertSerializedSubPrograms(SerializedSubProgram[] m_SubPrograms, ShaderCompilerPlatform platform) { var sb = new StringBuilder(); var groups = m_SubPrograms.GroupBy(x => x.m_BlobIndex); foreach (var group in groups) { var programs = group.GroupBy(x => x.m_GpuProgramType); foreach (var program in programs) { if (CheckGpuProgramUsable(platform, program.Key)) { var subPrograms = program.ToList(); var isTier = subPrograms.Count > 1; foreach (var subProgram in subPrograms) { sb.Append($"SubProgram \"{GetPlatformString(platform)} "); if (isTier) { sb.Append($"hw_tier{subProgram.m_ShaderHardwareTier:00} "); } sb.Append("\" {\n"); sb.Append($"GpuProgramIndex {subProgram.m_BlobIndex}\n"); sb.Append("}\n"); } break; } } } return(sb.ToString()); }
private static string ConvertSerializedPass(SerializedPass m_Passe, ShaderCompilerPlatform platform) { var sb = new StringBuilder(); switch (m_Passe.m_Type) { case PassType.kPassTypeNormal: sb.Append(" Pass "); break; case PassType.kPassTypeUse: sb.Append(" UsePass "); break; case PassType.kPassTypeGrab: sb.Append(" GrabPass "); break; } if (m_Passe.m_Type == PassType.kPassTypeUse) { sb.Append($"\"{m_Passe.m_UseName}\"\n"); } else { sb.Append("{\n"); if (m_Passe.m_Type == PassType.kPassTypeGrab) { if (!string.IsNullOrEmpty(m_Passe.m_TextureName)) { sb.Append($" \"{m_Passe.m_TextureName}\"\n"); } } else { sb.Append(ConvertSerializedShaderState(m_Passe.m_State)); if (m_Passe.progVertex.m_SubPrograms.Length > 0) { sb.Append("Program \"vp\" {\n"); sb.Append(ConvertSerializedSubPrograms(m_Passe.progVertex.m_SubPrograms, platform)); sb.Append("}\n"); } if (m_Passe.progFragment.m_SubPrograms.Length > 0) { sb.Append("Program \"fp\" {\n"); sb.Append(ConvertSerializedSubPrograms(m_Passe.progFragment.m_SubPrograms, platform)); sb.Append("}\n"); } if (m_Passe.progGeometry.m_SubPrograms.Length > 0) { sb.Append("Program \"gp\" {\n"); sb.Append(ConvertSerializedSubPrograms(m_Passe.progGeometry.m_SubPrograms, platform)); sb.Append("}\n"); } if (m_Passe.progHull.m_SubPrograms.Length > 0) { sb.Append("Program \"hp\" {\n"); sb.Append(ConvertSerializedSubPrograms(m_Passe.progHull.m_SubPrograms, platform)); sb.Append("}\n"); } if (m_Passe.progDomain.m_SubPrograms.Length > 0) { sb.Append("Program \"dp\" {\n"); sb.Append(ConvertSerializedSubPrograms(m_Passe.progDomain.m_SubPrograms, platform)); sb.Append("}\n"); } } sb.Append("}\n"); } return(sb.ToString()); }
public VariantCompileInfo CompileVariant(ShaderType shaderType, string[] keywords, ShaderCompilerPlatform shaderCompilerPlatform, BuildTarget buildTarget, BuiltinShaderDefine[] platformKeywords, GraphicsTier tier) { return(CompileVariant(shaderType, keywords, shaderCompilerPlatform, buildTarget, platformKeywords, tier, false)); }
private static bool CheckGpuProgramUsable(ShaderCompilerPlatform platform, ShaderGpuProgramType programType) { switch (platform) { case ShaderCompilerPlatform.kShaderCompPlatformGL: return(programType == ShaderGpuProgramType.kShaderGpuProgramGLLegacy); case ShaderCompilerPlatform.kShaderCompPlatformD3D9: return(programType == ShaderGpuProgramType.kShaderGpuProgramDX9VertexSM20 || programType == ShaderGpuProgramType.kShaderGpuProgramDX9VertexSM30 || programType == ShaderGpuProgramType.kShaderGpuProgramDX9PixelSM20 || programType == ShaderGpuProgramType.kShaderGpuProgramDX9PixelSM30); case ShaderCompilerPlatform.kShaderCompPlatformXbox360: return(programType == ShaderGpuProgramType.kShaderGpuProgramConsoleVS || programType == ShaderGpuProgramType.kShaderGpuProgramConsoleFS || programType == ShaderGpuProgramType.kShaderGpuProgramConsoleHS || programType == ShaderGpuProgramType.kShaderGpuProgramConsoleDS || programType == ShaderGpuProgramType.kShaderGpuProgramConsoleGS); case ShaderCompilerPlatform.kShaderCompPlatformPS3: return(programType == ShaderGpuProgramType.kShaderGpuProgramConsoleVS || programType == ShaderGpuProgramType.kShaderGpuProgramConsoleFS || programType == ShaderGpuProgramType.kShaderGpuProgramConsoleHS || programType == ShaderGpuProgramType.kShaderGpuProgramConsoleDS || programType == ShaderGpuProgramType.kShaderGpuProgramConsoleGS); case ShaderCompilerPlatform.kShaderCompPlatformD3D11: return(programType == ShaderGpuProgramType.kShaderGpuProgramDX11VertexSM40 || programType == ShaderGpuProgramType.kShaderGpuProgramDX11VertexSM50 || programType == ShaderGpuProgramType.kShaderGpuProgramDX11PixelSM40 || programType == ShaderGpuProgramType.kShaderGpuProgramDX11PixelSM50 || programType == ShaderGpuProgramType.kShaderGpuProgramDX11GeometrySM40 || programType == ShaderGpuProgramType.kShaderGpuProgramDX11GeometrySM50 || programType == ShaderGpuProgramType.kShaderGpuProgramDX11HullSM50 || programType == ShaderGpuProgramType.kShaderGpuProgramDX11DomainSM50); case ShaderCompilerPlatform.kShaderCompPlatformGLES20: return(programType == ShaderGpuProgramType.kShaderGpuProgramGLES); case ShaderCompilerPlatform.kShaderCompPlatformNaCl: //Obsolete throw new NotSupportedException(); case ShaderCompilerPlatform.kShaderCompPlatformFlash: //Obsolete throw new NotSupportedException(); case ShaderCompilerPlatform.kShaderCompPlatformD3D11_9x: return(programType == ShaderGpuProgramType.kShaderGpuProgramDX10Level9Vertex || programType == ShaderGpuProgramType.kShaderGpuProgramDX10Level9Pixel); case ShaderCompilerPlatform.kShaderCompPlatformGLES3Plus: return(programType == ShaderGpuProgramType.kShaderGpuProgramGLES31AEP || programType == ShaderGpuProgramType.kShaderGpuProgramGLES31 || programType == ShaderGpuProgramType.kShaderGpuProgramGLES3); case ShaderCompilerPlatform.kShaderCompPlatformPSP2: return(programType == ShaderGpuProgramType.kShaderGpuProgramConsoleVS || programType == ShaderGpuProgramType.kShaderGpuProgramConsoleFS || programType == ShaderGpuProgramType.kShaderGpuProgramConsoleHS || programType == ShaderGpuProgramType.kShaderGpuProgramConsoleDS || programType == ShaderGpuProgramType.kShaderGpuProgramConsoleGS); case ShaderCompilerPlatform.kShaderCompPlatformPS4: return(programType == ShaderGpuProgramType.kShaderGpuProgramConsoleVS || programType == ShaderGpuProgramType.kShaderGpuProgramConsoleFS || programType == ShaderGpuProgramType.kShaderGpuProgramConsoleHS || programType == ShaderGpuProgramType.kShaderGpuProgramConsoleDS || programType == ShaderGpuProgramType.kShaderGpuProgramConsoleGS); case ShaderCompilerPlatform.kShaderCompPlatformXboxOne: return(programType == ShaderGpuProgramType.kShaderGpuProgramConsoleVS || programType == ShaderGpuProgramType.kShaderGpuProgramConsoleFS || programType == ShaderGpuProgramType.kShaderGpuProgramConsoleHS || programType == ShaderGpuProgramType.kShaderGpuProgramConsoleDS || programType == ShaderGpuProgramType.kShaderGpuProgramConsoleGS); case ShaderCompilerPlatform.kShaderCompPlatformPSM: //Unknown throw new NotSupportedException(); case ShaderCompilerPlatform.kShaderCompPlatformMetal: return(programType == ShaderGpuProgramType.kShaderGpuProgramMetalVS || programType == ShaderGpuProgramType.kShaderGpuProgramMetalFS); case ShaderCompilerPlatform.kShaderCompPlatformOpenGLCore: return(programType == ShaderGpuProgramType.kShaderGpuProgramGLCore32 || programType == ShaderGpuProgramType.kShaderGpuProgramGLCore41 || programType == ShaderGpuProgramType.kShaderGpuProgramGLCore43); case ShaderCompilerPlatform.kShaderCompPlatformN3DS: return(programType == ShaderGpuProgramType.kShaderGpuProgramConsoleVS || programType == ShaderGpuProgramType.kShaderGpuProgramConsoleFS || programType == ShaderGpuProgramType.kShaderGpuProgramConsoleHS || programType == ShaderGpuProgramType.kShaderGpuProgramConsoleDS || programType == ShaderGpuProgramType.kShaderGpuProgramConsoleGS); case ShaderCompilerPlatform.kShaderCompPlatformWiiU: return(programType == ShaderGpuProgramType.kShaderGpuProgramConsoleVS || programType == ShaderGpuProgramType.kShaderGpuProgramConsoleFS || programType == ShaderGpuProgramType.kShaderGpuProgramConsoleHS || programType == ShaderGpuProgramType.kShaderGpuProgramConsoleDS || programType == ShaderGpuProgramType.kShaderGpuProgramConsoleGS); case ShaderCompilerPlatform.kShaderCompPlatformVulkan: return(programType == ShaderGpuProgramType.kShaderGpuProgramSPIRV); case ShaderCompilerPlatform.kShaderCompPlatformSwitch: return(programType == ShaderGpuProgramType.kShaderGpuProgramConsoleVS || programType == ShaderGpuProgramType.kShaderGpuProgramConsoleFS || programType == ShaderGpuProgramType.kShaderGpuProgramConsoleHS || programType == ShaderGpuProgramType.kShaderGpuProgramConsoleDS || programType == ShaderGpuProgramType.kShaderGpuProgramConsoleGS); case ShaderCompilerPlatform.kShaderCompPlatformXboxOneD3D12: return(programType == ShaderGpuProgramType.kShaderGpuProgramConsoleVS || programType == ShaderGpuProgramType.kShaderGpuProgramConsoleFS || programType == ShaderGpuProgramType.kShaderGpuProgramConsoleHS || programType == ShaderGpuProgramType.kShaderGpuProgramConsoleDS || programType == ShaderGpuProgramType.kShaderGpuProgramConsoleGS); default: throw new NotSupportedException(); } }
private static bool CheckGpuProgramUsable(ShaderCompilerPlatform platform, ShaderGpuProgramType programType) { switch (platform) { case ShaderCompilerPlatform.GL: return(programType == ShaderGpuProgramType.GLLegacy); case ShaderCompilerPlatform.D3D9: return(programType == ShaderGpuProgramType.DX9VertexSM20 || programType == ShaderGpuProgramType.DX9VertexSM30 || programType == ShaderGpuProgramType.DX9PixelSM20 || programType == ShaderGpuProgramType.DX9PixelSM30); case ShaderCompilerPlatform.Xbox360: case ShaderCompilerPlatform.PS3: case ShaderCompilerPlatform.PSP2: case ShaderCompilerPlatform.PS4: case ShaderCompilerPlatform.XboxOne: case ShaderCompilerPlatform.N3DS: case ShaderCompilerPlatform.WiiU: case ShaderCompilerPlatform.Switch: case ShaderCompilerPlatform.XboxOneD3D12: case ShaderCompilerPlatform.GameCoreXboxOne: case ShaderCompilerPlatform.GameCoreScarlett: case ShaderCompilerPlatform.PS5: return(programType == ShaderGpuProgramType.ConsoleVS || programType == ShaderGpuProgramType.ConsoleFS || programType == ShaderGpuProgramType.ConsoleHS || programType == ShaderGpuProgramType.ConsoleDS || programType == ShaderGpuProgramType.ConsoleGS); case ShaderCompilerPlatform.PS5NGGC: return(programType == ShaderGpuProgramType.PS5NGGC); case ShaderCompilerPlatform.D3D11: return(programType == ShaderGpuProgramType.DX11VertexSM40 || programType == ShaderGpuProgramType.DX11VertexSM50 || programType == ShaderGpuProgramType.DX11PixelSM40 || programType == ShaderGpuProgramType.DX11PixelSM50 || programType == ShaderGpuProgramType.DX11GeometrySM40 || programType == ShaderGpuProgramType.DX11GeometrySM50 || programType == ShaderGpuProgramType.DX11HullSM50 || programType == ShaderGpuProgramType.DX11DomainSM50); case ShaderCompilerPlatform.GLES20: return(programType == ShaderGpuProgramType.GLES); case ShaderCompilerPlatform.NaCl: //Obsolete throw new NotSupportedException(); case ShaderCompilerPlatform.Flash: //Obsolete throw new NotSupportedException(); case ShaderCompilerPlatform.D3D11_9x: return(programType == ShaderGpuProgramType.DX10Level9Vertex || programType == ShaderGpuProgramType.DX10Level9Pixel); case ShaderCompilerPlatform.GLES3Plus: return(programType == ShaderGpuProgramType.GLES31AEP || programType == ShaderGpuProgramType.GLES31 || programType == ShaderGpuProgramType.GLES3); case ShaderCompilerPlatform.PSM: //Unknown throw new NotSupportedException(); case ShaderCompilerPlatform.Metal: return(programType == ShaderGpuProgramType.MetalVS || programType == ShaderGpuProgramType.MetalFS); case ShaderCompilerPlatform.OpenGLCore: return(programType == ShaderGpuProgramType.GLCore32 || programType == ShaderGpuProgramType.GLCore41 || programType == ShaderGpuProgramType.GLCore43); case ShaderCompilerPlatform.Vulkan: return(programType == ShaderGpuProgramType.SPIRV); default: throw new NotSupportedException(); } }
extern public static BuiltinShaderDefine[] GetShaderPlatformKeywordsForBuildTarget(ShaderCompilerPlatform shaderCompilerPlatform, BuildTarget buildTarget, GraphicsTier tier);
public static string GetPlatformString(ShaderCompilerPlatform platform) { switch (platform) { case ShaderCompilerPlatform.GL: return("openGL"); case ShaderCompilerPlatform.D3D9: return("d3d9"); case ShaderCompilerPlatform.Xbox360: return("xbox360"); case ShaderCompilerPlatform.PS3: return("ps3"); case ShaderCompilerPlatform.D3D11: return("d3d11"); case ShaderCompilerPlatform.GLES20: return("gles"); case ShaderCompilerPlatform.NaCl: return("glesdesktop"); case ShaderCompilerPlatform.Flash: return("flash"); case ShaderCompilerPlatform.D3D11_9x: return("d3d11_9x"); case ShaderCompilerPlatform.GLES3Plus: return("gles3"); case ShaderCompilerPlatform.PSP2: return("psp2"); case ShaderCompilerPlatform.PS4: return("ps4"); case ShaderCompilerPlatform.XboxOne: return("xboxone"); case ShaderCompilerPlatform.PSM: return("psm"); case ShaderCompilerPlatform.Metal: return("metal"); case ShaderCompilerPlatform.OpenGLCore: return("glcore"); case ShaderCompilerPlatform.N3DS: return("n3ds"); case ShaderCompilerPlatform.WiiU: return("wiiu"); case ShaderCompilerPlatform.Vulkan: return("vulkan"); case ShaderCompilerPlatform.Switch: return("switch"); case ShaderCompilerPlatform.XboxOneD3D12: return("xboxone_d3d12"); case ShaderCompilerPlatform.GameCoreXboxOne: return("xboxone"); case ShaderCompilerPlatform.GameCoreScarlett: return("xbox_scarlett"); case ShaderCompilerPlatform.PS5: return("ps5"); case ShaderCompilerPlatform.PS5NGGC: return("ps5_nggc"); default: return("unknown"); } }
public static string GetPlatformString(ShaderCompilerPlatform platform) { switch (platform) { case ShaderCompilerPlatform.kShaderCompPlatformGL: return("openGL"); case ShaderCompilerPlatform.kShaderCompPlatformD3D9: return("d3d9"); case ShaderCompilerPlatform.kShaderCompPlatformXbox360: return("xbox360"); case ShaderCompilerPlatform.kShaderCompPlatformPS3: return("ps3"); case ShaderCompilerPlatform.kShaderCompPlatformD3D11: return("d3d11"); case ShaderCompilerPlatform.kShaderCompPlatformGLES20: return("gles"); case ShaderCompilerPlatform.kShaderCompPlatformNaCl: return("glesdesktop"); case ShaderCompilerPlatform.kShaderCompPlatformFlash: return("flash"); case ShaderCompilerPlatform.kShaderCompPlatformD3D11_9x: return("d3d11_9x"); case ShaderCompilerPlatform.kShaderCompPlatformGLES3Plus: return("gles3"); case ShaderCompilerPlatform.kShaderCompPlatformPSP2: return("psp2"); case ShaderCompilerPlatform.kShaderCompPlatformPS4: return("ps4"); case ShaderCompilerPlatform.kShaderCompPlatformXboxOne: return("xboxone"); case ShaderCompilerPlatform.kShaderCompPlatformPSM: return("psm"); case ShaderCompilerPlatform.kShaderCompPlatformMetal: return("metal"); case ShaderCompilerPlatform.kShaderCompPlatformOpenGLCore: return("glcore"); case ShaderCompilerPlatform.kShaderCompPlatformN3DS: return("n3ds"); case ShaderCompilerPlatform.kShaderCompPlatformWiiU: return("wiiu"); case ShaderCompilerPlatform.kShaderCompPlatformVulkan: return("vulkan"); case ShaderCompilerPlatform.kShaderCompPlatformSwitch: return("switch"); case ShaderCompilerPlatform.kShaderCompPlatformXboxOneD3D12: return("xboxone_d3d12"); default: return("unknown"); } }
public static BuiltinShaderDefine[] GetShaderPlatformKeywordsForBuildTarget(ShaderCompilerPlatform shaderCompilerPlatform, BuildTarget buildTarget) { return(GetShaderPlatformKeywordsForBuildTarget(shaderCompilerPlatform, buildTarget, GraphicsTier.Tier1)); }