[XCX] Fixed uneven resolution scaling. Optimized performance settings

320x180 Not a single wasted shader pass.
This commit is contained in:
getdls 2018-11-03 12:05:55 +01:00
parent d8964c6878
commit 3c8958ca35
7 changed files with 64 additions and 50 deletions

View File

@ -2,8 +2,8 @@
#extension GL_ARB_texture_gather : enable #extension GL_ARB_texture_gather : enable
#extension GL_ARB_separate_shader_objects : enable #extension GL_ARB_separate_shader_objects : enable
#extension GL_ARB_shading_language_packing : enable #extension GL_ARB_shading_language_packing : enable
const float resXScale = ($width/$gameWidth); const float resXScale = intBitsToFloat($width)/intBitsToFloat($gameWidth);
const float resYScale = ($height/$gameHeight); const float resYScale = intBitsToFloat($height)/intBitsToFloat($gameHeight);
// shader 9dc2d340255dee89 // shader 9dc2d340255dee89
uniform ivec4 uf_remappedVS[1]; uniform ivec4 uf_remappedVS[1];
uniform vec2 uf_windowSpaceToClipSpaceTransform; uniform vec2 uf_windowSpaceToClipSpaceTransform;

View File

@ -3,8 +3,9 @@
#extension GL_ARB_texture_gather : enable #extension GL_ARB_texture_gather : enable
// shader b253dca415790207 // shader b253dca415790207
// motion blur alpha // motion blur alpha
const float resScale = intBitsToFloat($height)/intBitsToFloat($gameHeight);
const float resScale = 2.0; //const float resScale = 2.0;
//const float resScale = 3; //const float resScale = 3;
uniform ivec4 uf_remappedPS[5]; uniform ivec4 uf_remappedPS[5];

View File

@ -4,7 +4,8 @@
#extension GL_ARB_separate_shader_objects : enable #extension GL_ARB_separate_shader_objects : enable
// shader ed70de7fe7542f87 // shader ed70de7fe7542f87
//motion blur sample spread scaling //motion blur sample spread scaling
const float resScale = 2.0; const float resScale = intBitsToFloat($height)/intBitsToFloat($gameHeight);
//const float resScale = 2.0;
layout(binding = 0) uniform sampler2D textureUnitPS0;// Tex0 addr 0xf470a000 res 1280x720x1 dim 1 tm: 4 format 0816 compSel: 0 1 2 5 mipView: 0x0 (num 0x1) sliceView: 0x0 (num 0x1) Sampler0 ClampX/Y/Z: 2 2 2 border: 0 layout(binding = 0) uniform sampler2D textureUnitPS0;// Tex0 addr 0xf470a000 res 1280x720x1 dim 1 tm: 4 format 0816 compSel: 0 1 2 5 mipView: 0x0 (num 0x1) sliceView: 0x0 (num 0x1) Sampler0 ClampX/Y/Z: 2 2 2 border: 0
layout(binding = 1) uniform sampler2D textureUnitPS1;// Tex1 addr 0xf4e12000 res 320x180x1 dim 1 tm: 4 format 001a compSel: 0 1 2 3 mipView: 0x0 (num 0x1) sliceView: 0x0 (num 0x1) Sampler1 ClampX/Y/Z: 2 2 2 border: 0 layout(binding = 1) uniform sampler2D textureUnitPS1;// Tex1 addr 0xf4e12000 res 320x180x1 dim 1 tm: 4 format 001a compSel: 0 1 2 3 mipView: 0x0 (num 0x1) sliceView: 0x0 (num 0x1) Sampler1 ClampX/Y/Z: 2 2 2 border: 0
layout(location = 0) in vec4 passParameterSem0; layout(location = 0) in vec4 passParameterSem0;

View File

@ -4,9 +4,8 @@
// shader af7acf7fb6dca1be // shader af7acf7fb6dca1be
//cutscene shadow scaling //cutscene shadow scaling
//to do - extra edge smooth pass, //to do - extra edge smooth pass,
const float resScaleDetail = intBitsToFloat($height)/intBitsToFloat($gameHeight);
const float resScaleDetail = ($width/$gameWidth); const float resScale = (intBitsToFloat($height)/intBitsToFloat($gameHeight);
const float resScale = ($height/$gameHeight);
//const float resScaleDetail = 2.0; //const float resScaleDetail = 2.0;
//const float resScale = 3.0; //const float resScale = 3.0;
const float shadowExposure = 0.85; //By truncating shadow, we decrease overall exposure during day only. const float shadowExposure = 0.85; //By truncating shadow, we decrease overall exposure during day only.

View File

@ -1,8 +1,8 @@
#version 420 #version 420
#extension GL_ARB_texture_gather : enable #extension GL_ARB_texture_gather : enable
#extension GL_ARB_separate_shader_objects : enable #extension GL_ARB_separate_shader_objects : enable
const float resXScale = ($width/$gameWidth); const float resXScale = intBitsToFloat($width)/intBitsToFloat($gameWidth);
const float resYScale = ($height/$gameHeight); const float resYScale = intBitsToFloat($height)/intBitsToFloat($gameHeight);
// shader fdb5a87dd0368c6b //shadow scaling // shader fdb5a87dd0368c6b //shadow scaling
uniform ivec4 uf_remappedPS[23]; uniform ivec4 uf_remappedPS[23];
layout(binding = 0) uniform sampler2D textureUnitPS0;// Tex0 addr 0xf4386000 res 1280x720x1 dim 1 tm: 4 format 001a compSel: 0 1 2 3 mipView: 0x0 (num 0x1) sliceView: 0x0 (num 0x1) Sampler0 ClampX/Y/Z: 2 2 2 border: 0 layout(binding = 0) uniform sampler2D textureUnitPS0;// Tex0 addr 0xf4386000 res 1280x720x1 dim 1 tm: 4 format 001a compSel: 0 1 2 3 mipView: 0x0 (num 0x1) sliceView: 0x0 (num 0x1) Sampler0 ClampX/Y/Z: 2 2 2 border: 0

View File

@ -16,17 +16,6 @@ $dither = 0.01
$scaleShader = 1.0 $scaleShader = 1.0
$scaleBlur = 0.05 $scaleBlur = 0.05
[Preset]
name = 640x360
$width = 640
$height = 360
$gameWidth = 1280
$gameHeight = 720
$internalRes = 0.5
$dither = 0.01
$scaleShader = 1.0
$scaleBlur = 0.05
[Preset] [Preset]
name = 3840x720 (48:9) name = 3840x720 (48:9)
$width = 3840 $width = 3840
@ -40,6 +29,17 @@ $scaleBlur = 0.05
// Quality // Quality
[Preset]
name = 1600x900
$width = 1600
$height = 900
$gameWidth = 1280
$gameHeight = 720
$internalRes = 1.0
$dither = 0.1
$scaleShader = (720.0/900.0) # factor for any shader that can't handle fractional scaling
$scaleBlur = 0.5
[Preset] [Preset]
name = 1920x1080 (HD) name = 1920x1080 (HD)
$width = 1920 $width = 1920
@ -48,18 +48,7 @@ $gameWidth = 1280
$gameHeight = 720 $gameHeight = 720
$internalRes = 1.0 $internalRes = 1.0
$dither = 0.15 $dither = 0.15
$scaleShader = 1.0 $scaleShader = (720.0/1080.0)
$scaleBlur = 0.5
[Preset]
name = 1920x1200 (10:9 HD)
$width = 1920
$height = 1200
$gameWidth = 1280
$gameHeight = 720
$internalRes = 1.0
$dither = 0.15
$scaleShader = 1.0
$scaleBlur = 0.5 $scaleBlur = 0.5
[Preset] [Preset]
@ -70,7 +59,7 @@ $gameWidth = 1280
$gameHeight = 720 $gameHeight = 720
$internalRes = 1.0 $internalRes = 1.0
$dither = 0.15 $dither = 0.15
$scaleShader = 1.0 $scaleShader = (720.0/1080.0)
$scaleBlur = 0.5 $scaleBlur = 0.5
[Preset] [Preset]
@ -81,18 +70,18 @@ $gameWidth = 1280
$gameHeight = 720 $gameHeight = 720
$internalRes = 1.0 $internalRes = 1.0
$dither = 0.15 $dither = 0.15
$scaleShader = 1.0 $scaleShader = (720.0/1080.0)
$scaleBlur = 0.5 $scaleBlur = 0.5
[Preset] [Preset]
name = 1600x900 name = 1920x1200 (10:9 HD)
$width = 1600 $width = 1920
$height = 900 $height = 1200
$gameWidth = 1280 $gameWidth = 1280
$gameHeight = 720 $gameHeight = 720
$internalRes = 1.0 $internalRes = 1.0
$dither = 0.1 $dither = 0.15
$scaleShader = 1.0 $scaleShader = (720.0/1200.0)
$scaleBlur = 0.5 $scaleBlur = 0.5
[Preset] [Preset]
@ -145,9 +134,9 @@ $width = 3200
$height = 1800 $height = 1800
$gameWidth = 1280 $gameWidth = 1280
$gameHeight = 720 $gameHeight = 720
$internalRes = 1.0 $internalRes = 2.0
$dither = 0.2 $dither = 0.2
$scaleShader = 1.0 $scaleShader = (1440.0/1800.0)
$scaleBlur = 0.5 $scaleBlur = 0.5
[Preset] [Preset]
@ -240,11 +229,8 @@ overwriteHeight = ($height/$gameHeight) * 720
width = 1024 width = 1024
height = 1024 height = 1024
formats = 0x005 formats = 0x005
#overwriteWidth = ($height/$gameHeight) * 1024 overwriteWidth = ($height/$gameHeight) * (1024*$scaleShader)
#overwriteHeight = ($height/$gameHeight) * 1024 overwriteHeight = ($height/$gameHeight) * (1024*$scaleShader)
overwriteWidth = 3072 #1080 breaks without rounding
overwriteHeight = 3072
[TextureRedefine] #ingame menu [TextureRedefine] #ingame menu
width = 1024 width = 1024
@ -286,10 +272,9 @@ overwriteHeight = ($height/$gameHeight) * (360*$internalRes)
width = 512 width = 512
height = 512 height = 512
formats = 0x005 formats = 0x005
#overwriteWidth = ($height/$gameHeight) * 512 overwriteWidth = ($height/$gameHeight) * (1024*$scaleShader)
#overwriteHeight = ($height/$gameHeight) * 512 overwriteHeight = ($height/$gameHeight) * (1024*$scaleShader)
overwriteWidth = 3072 #1080 breaks without rounding
overwriteHeight = 3072
[TextureRedefine] [TextureRedefine]
width = 512 width = 512

View File

@ -0,0 +1,28 @@
[Definition]
titleIds = 0005000010116100,00050000101C4C00,00050000101C4D00
name = Resolution
path = "Xenoblade Chronicles X/Graphics/Performance Resolution"
description = Changes the resolution of the game.
version = 3
[Preset]
name = 320x180
$width = 320
$height = 180
$gameWidth = 1280
$gameHeight = 720
[Preset]
name = 640x360
$width = 640
$height = 360
$gameWidth = 1280
$gameHeight = 720
[TextureRedefine]
width = 1280
height = 720
formatsExcluded = 0x031,0x431,0x035,0x034,0x033 #dialog prompt fixes, XCX Logo NLA
tileModesExcluded = 0x001
overwriteWidth = ($width/$gameWidth) * 1280
overwriteHeight = ($height/$gameHeight) * 720