diff --git a/leenkx/Sources/leenkx/renderpath/DynamicResolutionScale.hx b/leenkx/Sources/leenkx/renderpath/DynamicResolutionScale.hx index 87b6638..1501721 100644 --- a/leenkx/Sources/leenkx/renderpath/DynamicResolutionScale.hx +++ b/leenkx/Sources/leenkx/renderpath/DynamicResolutionScale.hx @@ -22,6 +22,11 @@ class DynamicResolutionScale { if (frameTimeAvg > startScaleMs && frameTimeAvg < 100) { var overTime = Math.min(scaleRangeMs, frameTimeAvg - startScaleMs); var scale = 1.0 - (overTime / scaleRangeMs) * (1.0 - maxScale); + + #if rp_fsr1 + { scale = scale * 0.5; } + #end + var w = Std.int(iron.App.w() * scale); var h = Std.int(iron.App.h() * scale); path.setCurrentViewport(w, h); diff --git a/leenkx/Sources/leenkx/renderpath/RenderPathDeferred.hx b/leenkx/Sources/leenkx/renderpath/RenderPathDeferred.hx index 3c5b778..34274eb 100644 --- a/leenkx/Sources/leenkx/renderpath/RenderPathDeferred.hx +++ b/leenkx/Sources/leenkx/renderpath/RenderPathDeferred.hx @@ -281,7 +281,7 @@ class RenderPathDeferred { } #end - #if ((rp_antialiasing == "SMAA") || (rp_antialiasing == "TAA")) + #if ((rp_antialiasing == "SMAA") || (rp_antialiasing == "TAA") || rp_fsr1) { var t = new RenderTargetRaw(); t.name = "bufa"; @@ -291,7 +291,11 @@ class RenderPathDeferred { t.format = "RGBA32"; t.scale = Inc.getSuperSampling(); path.createRenderTarget(t); + } + #end + #if ((rp_antialiasing == "SMAA") || (rp_antialiasing == "TAA")) + { var t = new RenderTargetRaw(); t.name = "bufb"; t.width = 0; @@ -1189,32 +1193,11 @@ class RenderPathDeferred { #if rp_fsr1 { - #if ((rp_antialiasing == "SMAA") || (rp_antialiasing == "TAA")) - #if (rp_supersampling == 4) - var fsrSource = "buf"; - var fsrDest = "buf"; - #else - path.setTarget("bufb"); - path.bindTarget(framebuffer != "" ? framebuffer : "buf", "tex"); - path.drawShader("shader_datas/copy_pass/copy_pass"); - var fsrSource = "bufb"; - var fsrDest = ""; - #end - #else - #if (rp_supersampling == 4) - var fsrSource = "buf"; - var fsrDest = "buf"; - #else - path.setTarget("bufa"); - path.bindTarget(target != "" ? target : "buf", "tex"); - path.drawShader("shader_datas/copy_pass/copy_pass"); - var fsrSource = "bufa"; - var fsrDest = ""; - #end - #end - - path.setTarget(fsrDest); - path.bindTarget(fsrSource, "tex"); + path.setTarget("bufa"); + path.bindTarget(framebuffer != "" ? framebuffer : "buf", "tex"); + path.drawShader("shader_datas/fsr1_easu_pass/fsr1_easu_pass"); + path.setTarget(framebuffer != "" ? framebuffer : "buf"); + path.bindTarget("bufa", "tex"); path.drawShader("shader_datas/fsr1_rcas_pass/fsr1_rcas_pass"); } #end diff --git a/leenkx/blender/lnx/utils.py b/leenkx/blender/lnx/utils.py index 11d8507..de44943 100644 --- a/leenkx/blender/lnx/utils.py +++ b/leenkx/blender/lnx/utils.py @@ -822,7 +822,15 @@ def extract_filename(s): def get_render_resolution(scene): render = scene.render scale = render.resolution_percentage / 100 - return int(render.resolution_x * scale), int(render.resolution_y * scale) + resx = int(render.resolution_x * scale) + resy = int(render.resolution_y * scale) + + rpdat = get_rp() + if rpdat.rp_fsr1 != 'Off': + resx = int(resx * 0.5) + resy = int(resy * 0.5) + + return resx, resy def get_texture_quality_percentage() -> int: return int(bpy.data.worlds['Lnx'].lnx_texture_quality * 100)