FSR2 tests in Unity based on built-in render pipeline
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

101 lines
3.2 KiB

// Copyright (c) 2023 Nico de Poel
//
// Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to deal
// in the Software without restriction, including without limitation the rights
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
// copies of the Software, and to permit persons to whom the Software is
// furnished to do so, subject to the following conditions:
//
// The above copyright notice and this permission notice shall be included in all
// copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
// THE SOFTWARE.
using System;
using System.Collections;
using System.Collections.Generic;
using System.IO;
using System.Reflection;
using System.Text;
using FidelityFX;
using UnityEngine;
public class DebugDumper : MonoBehaviour
{
private Fsr2ImageEffect _fsr;
void Start()
{
var sb = new StringBuilder("SystemInfo:\n");
foreach (var property in typeof(SystemInfo).GetProperties(BindingFlags.Static | BindingFlags.Public))
{
sb.AppendLine($"- {property.Name} = {property.GetValue(null)}");
}
Debug.Log(sb);
_fsr = GetComponent<Fsr2ImageEffect>();
}
void Update()
{
if (Input.GetKeyDown(KeyCode.F12))
{
string path = Path.Combine(Directory.GetCurrentDirectory(), $"screenshot-{DateTime.Now:yyyyMMdd-HHmmss}.png");
ScreenCapture.CaptureScreenshot(path);
Debug.Log($"Screenshot saved to: {path}");
}
if (_fsr == null)
return;
if (Input.GetButtonDown("Fire1"))
{
_fsr.enabled = !_fsr.enabled;
}
if (Input.GetButtonDown("Fire2"))
{
int quality = (int)_fsr.qualityMode;
quality = (quality + 1) % Enum.GetValues(typeof(Fsr2.QualityMode)).Length;
_fsr.qualityMode = (Fsr2.QualityMode)quality;
}
if (Input.GetButtonDown("Fire3"))
{
_fsr.enableAutoExposure = !_fsr.enableAutoExposure;
}
if (Input.GetButtonDown("Jump"))
{
_fsr.ResetHistory();
}
}
private void OnGUI()
{
if (_fsr == null)
return;
float scale = Screen.height / 720f;
if (scale > Mathf.Epsilon)
{
GUI.matrix = Matrix4x4.Scale(new Vector3(scale, scale, scale));
}
GUILayout.Label($"FSR2: {(_fsr.enabled ? "Enabled" : "Disabled")}");
GUILayout.Label($"Quality: {_fsr.qualityMode}");
GUILayout.Label($"Auto-exposure: {(_fsr.enableAutoExposure ? "Enabled" : "Disabled")}");
if (Input.GetButton("Jump"))
{
GUILayout.Label("Reset");
}
}
}