// This subsequent block needs to happen AFTER we call WriteBakingCells.
// Otherwise in cases where we change the spacing between probes, we end up loading cells with a certain layout in ForceSHBand
// Otherwise, in cases where we change the spacing between probes, we end up loading cells with a certain layout in ForceSHBand
// And then we unload cells using the wrong layout in PerformDilation (after WriteBakingCells updates the baking set object) which leads to a broken internal state.
// Don't use Disk streaming to avoid having to wait for it when doing dilation.
probeRefVolume.ForceNoDiskStreaming(true);
// Increase the memory budget to make sure we can fit the current cell and all its neighbors when doing dilation.
// Had to copy paste because it's apparently impossible to pass a sort delegate where T is Comparable<T>, otherwise some boxing happens and allocates...
// A copy/paste because it's apparently impossible to pass a sort delegate where T is Comparable<T>, otherwise some boxing happens and allocates...
// So two identical versions of the function, one with delegate but no Comparable and the other with just the comparable.
// This is used for steps such as dilation that require the maximum order allowed to be loaded at all times. Should really never be used as a general purpose function.
EditorGUI.HelpBox(helpBoxRect,"Camera depth isn't supported when dynamic scaling is on. We will automatically fall back to not doing depth-testing for this pass.",MessageType.Warning);
publicstaticreadonlyGUIContentTAAUInjectionPoint=EditorGUIUtility.TrTextContent("TAA Upscale Injection Point","The injection point at which to apply the upscaling.");
publicstaticreadonlyGUIContentSTPInjectionPoint=EditorGUIUtility.TrTextContent("STP Injection Point","The injection point at which to apply the upscaling.");
publicstaticreadonlyGUIContentDLSSUseOptimalSettingsContent=EditorGUIUtility.TrTextContent("DLSS Use Optimal Settings","Sets the sharpness and scale automatically for NVIDIA Deep Learning Super Sampling, depending on the values of quality settings. When DLSS Optimal Settings is on, the percentage settings for Dynamic Resolution Scaling are ignored.");
publicstaticreadonlyGUIContentDLSSSharpnessContent=EditorGUIUtility.TrTextContent("DLSS Sharpness","NVIDIA Deep Learning Super Sampling pixel sharpness of upsampler. Controls how the DLSS upsampler will render edges on the image. More sharpness usually means more contrast and clearer image but can increase flickering and fireflies. This setting is ignored if optimal settings are used.");
publicstaticreadonlyGUIContentFSR2Title=EditorGUIUtility.TrTextContent("AMD FidelityFX Super Resolution 2.0 (FSR2)");
publicstaticreadonlyGUIContentenableFSR2=EditorGUIUtility.TrTextContent("Enable Fidelity FX 2.2","Enables FidelityFX 2.0 Super Resolution (FSR2).");
publicconststringFSR2WinTargetWarning="HDRP does not support AMD Fidelity FX2 for the current build target and graphics device API. To enable FSR2, set your build target to Windows x86_64 and DirectX12.";
publicconststringFSR2SwitchTarget64Button="Fix";
publicconststringFSR2FeatureDetectedMsg="Unity detected AMD Fidelity FX 2 Super Resolution and will ignore the Fallback Upscale Filter.";
publicconststringFSR2FeatureNotDetectedMsg="Unity cannot detect Unity detected AMD Fidelity FX 2 Super Resolution and will use the Fallback Upscale Filter instead.";
publicconststringFSR2FeatureNotDetectedMsg="Unity cannot detect AMD Fidelity FX 2 Super Resolution and will use the Fallback Upscale Filter instead.";
publicconststringSTPSwDrsWarningMsg="STP cannot support dynamic resolution without hardware dynamic resolution mode. You can use the forced screen percentage feature to guarantee a fixed resoution for STP or HDRP will fall back to the next best supported upscaling filter instead.";
// For non-fragment shaders we might skip the variant with the quality as shadows might not be used, if that's the case define something just to make the compiler happy in case the quality is not defined.