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
        }
Exemplo n.º 3
0
            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));
            }
Exemplo n.º 4
0
        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());
        }
Exemplo n.º 5
0
            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));
            }
Exemplo n.º 6
0
 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));
 }
Exemplo n.º 7
0
 public VariantCompileInfo CompileVariant(ShaderType shaderType, string[] keywords,
                                          ShaderCompilerPlatform shaderCompilerPlatform, BuildTarget buildTarget)
 {
     return(CompileVariant(shaderType, keywords, shaderCompilerPlatform, buildTarget, false));
 }
Exemplo n.º 8
0
 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);
Exemplo n.º 9
0
 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);
Exemplo n.º 10
0
 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);
 }
Exemplo n.º 11
0
 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));
 }
Exemplo n.º 12
0
 extern internal static void CompileShaderForTargetCompilerPlatform(Shader shader, ShaderCompilerPlatform platform);
Exemplo n.º 13
0
 extern public static ShaderMessage[] GetShaderMessages([NotNull] Shader s, ShaderCompilerPlatform platform);
Exemplo n.º 14
0
        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());
        }
Exemplo n.º 15
0
        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());
        }
Exemplo n.º 16
0
        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());
        }
Exemplo n.º 17
0
 public VariantCompileInfo CompileVariant(ShaderType shaderType, string[] keywords,
                                          ShaderCompilerPlatform shaderCompilerPlatform, BuildTarget buildTarget, BuiltinShaderDefine[] platformKeywords, GraphicsTier tier)
 {
     return(CompileVariant(shaderType, keywords, shaderCompilerPlatform, buildTarget, platformKeywords, tier, false));
 }
Exemplo n.º 18
0
        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();
            }
        }
Exemplo n.º 19
0
        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();
            }
        }
Exemplo n.º 20
0
 extern public static BuiltinShaderDefine[] GetShaderPlatformKeywordsForBuildTarget(ShaderCompilerPlatform shaderCompilerPlatform, BuildTarget buildTarget, GraphicsTier tier);
Exemplo n.º 21
0
        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");
            }
        }
Exemplo n.º 22
0
        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");
            }
        }
Exemplo n.º 23
0
 public static BuiltinShaderDefine[] GetShaderPlatformKeywordsForBuildTarget(ShaderCompilerPlatform shaderCompilerPlatform, BuildTarget buildTarget)
 {
     return(GetShaderPlatformKeywordsForBuildTarget(shaderCompilerPlatform, buildTarget, GraphicsTier.Tier1));
 }