[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_separate_shader_objects : enable
#extension GL_ARB_shading_language_packing : enable
const float resXScale = ($width/$gameWidth);
const float resYScale = ($height/$gameHeight);
const float resXScale = intBitsToFloat($width)/intBitsToFloat($gameWidth);
const float resYScale = intBitsToFloat($height)/intBitsToFloat($gameHeight);
// shader 9dc2d340255dee89
uniform ivec4 uf_remappedVS[1];
uniform vec2 uf_windowSpaceToClipSpaceTransform;

View File

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

View File

@ -4,7 +4,8 @@
#extension GL_ARB_separate_shader_objects : enable
// shader ed70de7fe7542f87
//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 = 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;

View File

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

View File

@ -1,8 +1,8 @@
#version 420
#extension GL_ARB_texture_gather : enable
#extension GL_ARB_separate_shader_objects : enable
const float resXScale = ($width/$gameWidth);
const float resYScale = ($height/$gameHeight);
const float resXScale = intBitsToFloat($width)/intBitsToFloat($gameWidth);
const float resYScale = intBitsToFloat($height)/intBitsToFloat($gameHeight);
// shader fdb5a87dd0368c6b //shadow scaling
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

View File

@ -16,17 +16,6 @@ $dither = 0.01
$scaleShader = 1.0
$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]
name = 3840x720 (48:9)
$width = 3840
@ -40,6 +29,17 @@ $scaleBlur = 0.05
// 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]
name = 1920x1080 (HD)
$width = 1920
@ -48,18 +48,7 @@ $gameWidth = 1280
$gameHeight = 720
$internalRes = 1.0
$dither = 0.15
$scaleShader = 1.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
$scaleShader = (720.0/1080.0)
$scaleBlur = 0.5
[Preset]
@ -70,7 +59,7 @@ $gameWidth = 1280
$gameHeight = 720
$internalRes = 1.0
$dither = 0.15
$scaleShader = 1.0
$scaleShader = (720.0/1080.0)
$scaleBlur = 0.5
[Preset]
@ -81,18 +70,18 @@ $gameWidth = 1280
$gameHeight = 720
$internalRes = 1.0
$dither = 0.15
$scaleShader = 1.0
$scaleShader = (720.0/1080.0)
$scaleBlur = 0.5
[Preset]
name = 1600x900
$width = 1600
$height = 900
name = 1920x1200 (10:9 HD)
$width = 1920
$height = 1200
$gameWidth = 1280
$gameHeight = 720
$internalRes = 1.0
$dither = 0.1
$scaleShader = 1.0
$dither = 0.15
$scaleShader = (720.0/1200.0)
$scaleBlur = 0.5
[Preset]
@ -145,9 +134,9 @@ $width = 3200
$height = 1800
$gameWidth = 1280
$gameHeight = 720
$internalRes = 1.0
$internalRes = 2.0
$dither = 0.2
$scaleShader = 1.0
$scaleShader = (1440.0/1800.0)
$scaleBlur = 0.5
[Preset]
@ -240,11 +229,8 @@ overwriteHeight = ($height/$gameHeight) * 720
width = 1024
height = 1024
formats = 0x005
#overwriteWidth = ($height/$gameHeight) * 1024
#overwriteHeight = ($height/$gameHeight) * 1024
overwriteWidth = 3072 #1080 breaks without rounding
overwriteHeight = 3072
overwriteWidth = ($height/$gameHeight) * (1024*$scaleShader)
overwriteHeight = ($height/$gameHeight) * (1024*$scaleShader)
[TextureRedefine] #ingame menu
width = 1024
@ -286,10 +272,9 @@ overwriteHeight = ($height/$gameHeight) * (360*$internalRes)
width = 512
height = 512
formats = 0x005
#overwriteWidth = ($height/$gameHeight) * 512
#overwriteHeight = ($height/$gameHeight) * 512
overwriteWidth = 3072 #1080 breaks without rounding
overwriteHeight = 3072
overwriteWidth = ($height/$gameHeight) * (1024*$scaleShader)
overwriteHeight = ($height/$gameHeight) * (1024*$scaleShader)
[TextureRedefine]
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