internal static HDRenderPipelineGlobalSettings Create(string path, HDRenderPipelineGlobalSettings dataSource = null)
        {
            HDRenderPipelineGlobalSettings assetCreated = null;

            //ensure folder tree exist
            CoreUtils.EnsureFolderTreeInAssetFilePath(path);

            //prevent any path conflict
            path = AssetDatabase.GenerateUniqueAssetPath(path);

            //asset creation
            assetCreated      = ScriptableObject.CreateInstance <HDRenderPipelineGlobalSettings>();
            assetCreated.name = Path.GetFileName(path);
            AssetDatabase.CreateAsset(assetCreated, path);
            Debug.Assert(assetCreated);

            // copy data from provided source
            if (dataSource != null)
            {
                EditorUtility.CopySerialized(dataSource, assetCreated);
            }

            // ensure resources are here
            assetCreated.EnsureEditorResources(forceReload: true);
            assetCreated.EnsureRuntimeResources(forceReload: true);
            assetCreated.EnsureRayTracingResources(forceReload: true);
            assetCreated.GetOrCreateDefaultVolumeProfile();
            assetCreated.GetOrAssignLookDevVolumeProfile();

            return(assetCreated);
        }
            public static void Clone(HDRenderPipelineGlobalSettings src, bool assignToActiveAsset)
            {
                settings = src;
                updateGraphicsSettings = assignToActiveAsset;
                var assetCreator = ScriptableObject.CreateInstance <HDRenderPipelineGlobalSettingsCreator>();

                string path = $"Assets/{HDProjectSettings.projectSettingsFolderPath}/{src.name}.asset";

                CoreUtils.EnsureFolderTreeInAssetFilePath(path);
                ProjectWindowUtil.StartNameEditingIfProjectWindowExists(assetCreator.GetInstanceID(), assetCreator, path, CoreEditorStyles.globalSettingsIcon, null);
            }
            public static void Create(bool useProjectSettingsFolder, bool assignToActiveAsset)
            {
                settings = null;
                updateGraphicsSettings = assignToActiveAsset;

                var path = "HDRenderPipelineGlobalSettings.asset";

                if (useProjectSettingsFolder)
                {
                    path = $"Assets/{HDProjectSettings.projectSettingsFolderPath}/HDRenderPipelineGlobalSettings.asset";
                    CoreUtils.EnsureFolderTreeInAssetFilePath(path);
                }
                ProjectWindowUtil.StartNameEditingIfProjectWindowExists(0, ScriptableObject.CreateInstance <HDRenderPipelineGlobalSettingsCreator>(), path, CoreEditorStyles.globalSettingsIcon, null);
            }