From 8fa52937c9873ad5e2c17afa6ab8ab6e1bd9756f Mon Sep 17 00:00:00 2001 From: getdls Date: Sun, 18 Mar 2018 12:22:26 +0100 Subject: [PATCH] [XCX] Alignment cleanup + 8k fix inital commit Fixes alignment drifting on higher resolutions. By replacing with fixes earlier in the rendering pipe. This should also improve a lot of light leaking, but full res tweak will be in upcoming commits. As this is the initial commit, skell view may still be off and some specific shadow fixes will probably be retired. --- .../2dc235c41abee590_0000000000000000_vs.txt | 109 ------------------ .../3cf2d31fbf321520_0000000000000000_vs.txt | 60 ---------- .../497a209b49886520_0000000000000000_vs.txt | 14 +-- .../4cb7bbd82d381167_0000000000000000_vs.txt | 72 ------------ .../4f557f00a56c6358_0000000000000000_vs.txt | 4 +- .../72387b8c3f18030f_0000000000000000_vs.txt | 64 ---------- .../94d235f07b93ad2f_0000000000000000_vs.txt | 109 ------------------ .../9dc2d340255dee89_0000000000000000_vs.txt | 15 ++- ..._cf4eda5057e1a527_0000000000000000_vs.txt} | 0 .../dd1a35baa9bbe69b_0000000000000000_vs.txt | 109 ------------------ .../e412d30f981be3b5_0000000000000000_vs.txt | 14 ++- .../fb7df308052b5222_0000000000000000_vs.txt | 67 ----------- 12 files changed, 24 insertions(+), 613 deletions(-) delete mode 100644 Source/XenobladeX/2dc235c41abee590_0000000000000000_vs.txt delete mode 100644 Source/XenobladeX/3cf2d31fbf321520_0000000000000000_vs.txt delete mode 100644 Source/XenobladeX/4cb7bbd82d381167_0000000000000000_vs.txt delete mode 100644 Source/XenobladeX/72387b8c3f18030f_0000000000000000_vs.txt delete mode 100644 Source/XenobladeX/94d235f07b93ad2f_0000000000000000_vs.txt rename Source/XenobladeX/{cf4eda5057e1a527_0000000000000000_vs.txt => _cf4eda5057e1a527_0000000000000000_vs.txt} (100%) delete mode 100644 Source/XenobladeX/dd1a35baa9bbe69b_0000000000000000_vs.txt delete mode 100644 Source/XenobladeX/fb7df308052b5222_0000000000000000_vs.txt diff --git a/Source/XenobladeX/2dc235c41abee590_0000000000000000_vs.txt b/Source/XenobladeX/2dc235c41abee590_0000000000000000_vs.txt deleted file mode 100644 index 7906deaf..00000000 --- a/Source/XenobladeX/2dc235c41abee590_0000000000000000_vs.txt +++ /dev/null @@ -1,109 +0,0 @@ -#version 420 -#extension GL_ARB_texture_gather : enable -#extension GL_ARB_separate_shader_objects : enable -#extension GL_ARB_shading_language_packing : enable -// shader 2dc235c41abee590 - -// shadow maskng alignment, haloing compromise -//fixes most Y at cost of slightly worse X -uniform ivec4 uf_remappedVS[6]; -uniform vec2 uf_windowSpaceToClipSpaceTransform; -layout(location = 0) in uvec4 attrDataSem0; -layout(location = 1) in uvec4 attrDataSem1; -out gl_PerVertex -{ - vec4 gl_Position; - float gl_PointSize; -}; -layout(location = 3) out vec4 passParameterSem3; -layout(location = 0) out vec4 passParameterSem0; -layout(location = 1) out vec4 passParameterSem1; -layout(location = 2) out vec4 passParameterSem2; -int clampFI32(int v) -{ -if( v == 0x7FFFFFFF ) - return floatBitsToInt(1.0); -else if( v == 0xFFFFFFFF ) - return floatBitsToInt(0.0); -return floatBitsToInt(clamp(intBitsToFloat(v), 0.0, 1.0)); -} -float mul_nonIEEE(float a, float b){ if( a == 0.0 || b == 0.0 ) return 0.0; return a*b; } -void main() -{ -vec4 R0f = vec4(0.0); -vec4 R1f = vec4(0.0); -vec4 R2f = vec4(0.0); -vec4 R3f = vec4(0.0); -vec4 R4f = vec4(0.0); -vec4 R123f = vec4(0.0); -uvec4 attrDecoder; -float backupReg0f, backupReg1f, backupReg2f, backupReg3f, backupReg4f; -vec4 PV0f = vec4(0.0), PV1f = vec4(0.0); -float PS0f = 0.0, PS1f = 0.0; -vec4 tempf = vec4(0.0); -float tempResultf; -int tempResulti; -ivec4 ARi = ivec4(0); -bool predResult = true; -vec3 cubeMapSTM; -int cubeMapFaceId; -R0f = floatBitsToInt(ivec4(gl_VertexID, 0, 0, gl_InstanceID)); -attrDecoder.xyz = attrDataSem0.xyz; -attrDecoder.xyz = (attrDecoder.xyz>>24)|((attrDecoder.xyz>>8)&0xFF00)|((attrDecoder.xyz<<8)&0xFF0000)|((attrDecoder.xyz<<24)); -attrDecoder.w = 0; -R1f = vec4(intBitsToFloat(int(attrDecoder.x)), intBitsToFloat(int(attrDecoder.y)), intBitsToFloat(int(attrDecoder.z)), intBitsToFloat(floatBitsToInt(1.0))); -attrDecoder.xy = attrDataSem1.xy; -attrDecoder.xy = (attrDecoder.xy>>24)|((attrDecoder.xy>>8)&0xFF00)|((attrDecoder.xy<<8)&0xFF0000)|((attrDecoder.xy<<24)); -attrDecoder.z = 0; -attrDecoder.w = 0; -R2f = vec4(intBitsToFloat(int(attrDecoder.x)), intBitsToFloat(int(attrDecoder.y)), intBitsToFloat(floatBitsToInt(0.0)), intBitsToFloat(floatBitsToInt(1.0))); -// 0 -PV0f.x = mul_nonIEEE(R1f.w, intBitsToFloat(uf_remappedVS[0].w)); -PV0f.y = mul_nonIEEE(R1f.w, intBitsToFloat(uf_remappedVS[0].z)); -PV0f.z = mul_nonIEEE(R1f.w, intBitsToFloat(uf_remappedVS[0].y)); -PV0f.w = mul_nonIEEE(R1f.w, intBitsToFloat(uf_remappedVS[0].x)); -R4f.x = R2f.x; -PS0f = R4f.x; -// 1 -R123f.x = (mul_nonIEEE(R1f.z,intBitsToFloat(uf_remappedVS[1].w)) + PV0f.x); -PV1f.x = R123f.x; -R123f.y = (mul_nonIEEE(R1f.z,intBitsToFloat(uf_remappedVS[1].z)) + PV0f.y); -PV1f.y = R123f.y; -R123f.z = (mul_nonIEEE(R1f.z,intBitsToFloat(uf_remappedVS[1].y)) + PV0f.z); -PV1f.z = R123f.z; -R123f.w = (mul_nonIEEE(R1f.z,intBitsToFloat(uf_remappedVS[1].x)) + PV0f.w); -PV1f.w = R123f.w; -R4f.y = R2f.y; -PS1f = R4f.y; -// 2 -R123f.x = (mul_nonIEEE(R1f.y,intBitsToFloat(uf_remappedVS[2].z)) + PV1f.y); -PV0f.x = R123f.x; -R123f.y = (mul_nonIEEE(R1f.y,intBitsToFloat(uf_remappedVS[2].w)) + PV1f.x); -PV0f.y = R123f.y; -R123f.z = (mul_nonIEEE(R1f.y,intBitsToFloat(uf_remappedVS[2].y)) + PV1f.z); -PV0f.z = R123f.z; -R123f.w = (mul_nonIEEE(R1f.y,intBitsToFloat(uf_remappedVS[2].x)) + PV1f.w); -PV0f.w = R123f.w; -// 3 -R2f.x = (mul_nonIEEE(R1f.x,intBitsToFloat(uf_remappedVS[3].x)) + PV0f.w); -R2f.y = (mul_nonIEEE(R1f.x,intBitsToFloat(uf_remappedVS[3].y)) + PV0f.z); -R2f.z = (mul_nonIEEE(R1f.x,intBitsToFloat(uf_remappedVS[3].z)) + PV0f.x); -R2f.w = (mul_nonIEEE(R1f.x,intBitsToFloat(uf_remappedVS[3].w)) + PV0f.y); -// 4 -R3f.x = (mul_nonIEEE(R4f.x,intBitsToFloat(uf_remappedVS[4].x)) + intBitsToFloat(uf_remappedVS[4].z)*1.5); -R3f.y = (mul_nonIEEE(R4f.y,intBitsToFloat(uf_remappedVS[4].y)) + intBitsToFloat(uf_remappedVS[4].w)/4); -// 5 -R0f.x = (mul_nonIEEE(R4f.x,intBitsToFloat(uf_remappedVS[5].x)) + intBitsToFloat(uf_remappedVS[5].z)); -R0f.y = (mul_nonIEEE(R4f.y,intBitsToFloat(uf_remappedVS[5].y)) + intBitsToFloat(uf_remappedVS[5].w)); -// export -gl_Position = vec4(R1f.x, R1f.y, R1f.z, R1f.w); -// export -passParameterSem3 = vec4(R2f.x, R2f.y, R2f.z, R2f.w); -// export -passParameterSem0 = vec4(R0f.x, R0f.y, R0f.z, R0f.z); -// export -passParameterSem1 = vec4(R3f.x, R3f.y, R3f.z, R3f.z); -// export -passParameterSem2 = vec4(R4f.x, R4f.y, R4f.z, R4f.z); -// 0 -} diff --git a/Source/XenobladeX/3cf2d31fbf321520_0000000000000000_vs.txt b/Source/XenobladeX/3cf2d31fbf321520_0000000000000000_vs.txt deleted file mode 100644 index 57b14549..00000000 --- a/Source/XenobladeX/3cf2d31fbf321520_0000000000000000_vs.txt +++ /dev/null @@ -1,60 +0,0 @@ -#version 420 -#extension GL_ARB_texture_gather : enable -#extension GL_ARB_separate_shader_objects : enable -#extension GL_ARB_shading_language_packing : enable -// shader 3cf2d31fbf321520 -//bloom align last merge -uniform ivec4 uf_remappedVS[1]; -uniform vec2 uf_windowSpaceToClipSpaceTransform; -layout(location = 0) in uvec4 attrDataSem0; -layout(location = 1) in uvec4 attrDataSem1; -out gl_PerVertex -{ - vec4 gl_Position; - float gl_PointSize; -}; -layout(location = 0) out vec4 passParameterSem0; -int clampFI32(int v) -{ -if( v == 0x7FFFFFFF ) - return floatBitsToInt(1.0); -else if( v == 0xFFFFFFFF ) - return floatBitsToInt(0.0); -return floatBitsToInt(clamp(intBitsToFloat(v), 0.0, 1.0)); -} -float mul_nonIEEE(float a, float b){ if( a == 0.0 || b == 0.0 ) return 0.0; return a*b; } -void main() -{ -vec4 R1f = vec4(0.0); -vec4 R2f = vec4(0.0); -uvec4 attrDecoder; -float backupReg0f, backupReg1f, backupReg2f, backupReg3f, backupReg4f; -vec4 PV0f = vec4(0.0), PV1f = vec4(0.0); -float PS0f = 0.0, PS1f = 0.0; -vec4 tempf = vec4(0.0); -float tempResultf; -int tempResulti; -ivec4 ARi = ivec4(0); -bool predResult = true; -vec3 cubeMapSTM; -int cubeMapFaceId; -attrDecoder.xyz = attrDataSem0.xyz; -attrDecoder.xyz = (attrDecoder.xyz>>24)|((attrDecoder.xyz>>8)&0xFF00)|((attrDecoder.xyz<<8)&0xFF0000)|((attrDecoder.xyz<<24)); -attrDecoder.w = 0; -R1f = vec4(intBitsToFloat(int(attrDecoder.x)), intBitsToFloat(int(attrDecoder.y)), intBitsToFloat(int(attrDecoder.z)), intBitsToFloat(floatBitsToInt(1.0))); -attrDecoder.xy = attrDataSem1.xy; -attrDecoder.xy = (attrDecoder.xy>>24)|((attrDecoder.xy>>8)&0xFF00)|((attrDecoder.xy<<8)&0xFF0000)|((attrDecoder.xy<<24)); -attrDecoder.z = 0; -attrDecoder.w = 0; -R2f = vec4(intBitsToFloat(int(attrDecoder.x)), intBitsToFloat(int(attrDecoder.y)), intBitsToFloat(floatBitsToInt(0.0)), intBitsToFloat(floatBitsToInt(1.0))); -// 0 -backupReg0f = R2f.x; -backupReg1f = R2f.y; -R2f.x = (mul_nonIEEE(backupReg0f,intBitsToFloat(uf_remappedVS[0].x)) + (intBitsToFloat(uf_remappedVS[0].z)*1.3)); -R2f.y = (mul_nonIEEE(backupReg1f,intBitsToFloat(uf_remappedVS[0].y)) + (intBitsToFloat(uf_remappedVS[0].w)*1.3)); -// export -gl_Position = vec4(R1f.x, R1f.y, R1f.z, R1f.w); -// export -passParameterSem0 = vec4(R2f.x, R2f.y, R2f.z, R2f.z); -// 0 -} diff --git a/Source/XenobladeX/497a209b49886520_0000000000000000_vs.txt b/Source/XenobladeX/497a209b49886520_0000000000000000_vs.txt index ac0b2625..7f483858 100644 --- a/Source/XenobladeX/497a209b49886520_0000000000000000_vs.txt +++ b/Source/XenobladeX/497a209b49886520_0000000000000000_vs.txt @@ -1,7 +1,9 @@ #version 420 #extension GL_ARB_texture_gather : enable +#extension GL_ARB_separate_shader_objects : enable #extension GL_ARB_shading_language_packing : enable -// shader 497a209b49886520 // magic value hack aligment issue 1-> 1/2 +// shader 497a209b49886520 +//align water depth uniform ivec4 uf_remappedVS[1]; uniform vec2 uf_windowSpaceToClipSpaceTransform; layout(binding = 32) uniform sampler2D textureUnitVS0;// Tex0 addr 0xf545c000 res 1x1x1 dim 1 tm: 2 format 081e compSel: 0 1 4 5 mipView: 0x0 (num 0x1) sliceView: 0x0 (num 0x1) Sampler18 ClampX/Y/Z: 2 2 2 border: 0 @@ -23,7 +25,7 @@ else if( v == 0xFFFFFFFF ) return floatBitsToInt(0.0); return floatBitsToInt(clamp(intBitsToFloat(v), 0.0, 1.0)); } -float mul_nonIEEE(float a, float b){ return min(a*b,min(abs(a)*3.40282347E+38F,abs(b)*3.40282347E+38F)); } +float mul_nonIEEE(float a, float b){ if( a == 0.0 || b == 0.0 ) return 0.0; return a*b; } void main() { vec4 R0f = vec4(0.0); @@ -59,14 +61,12 @@ backupReg1f = R2f.y; R2f.x = backupReg0f; R2f.y = backupReg1f; R0f.z = intBitsToFloat(0x3f000000); -R0f.w = (backupReg0f * intBitsToFloat(uf_remappedVS[0].x) + intBitsToFloat(uf_remappedVS[0].z)); -R0f.y = (backupReg1f * intBitsToFloat(uf_remappedVS[0].y) + intBitsToFloat(uf_remappedVS[0].w)); +R0f.w = (mul_nonIEEE(backupReg0f, intBitsToFloat(uf_remappedVS[0].x)) +intBitsToFloat(uf_remappedVS[0].z)*3); +R0f.y = (mul_nonIEEE(backupReg1f, intBitsToFloat(uf_remappedVS[0].y)) +intBitsToFloat(uf_remappedVS[0].w)*3); PS0f = R0f.y; R3f.xy = (textureLod(textureUnitVS0, R0f.zz,0.0).xy); // export -//gl_Position = vec4(R1f.x, R1f.y - 0.001, R1f.z, R1f.w*1.0040); - -gl_Position = vec4(R1f.x, R1f.y-0.0015, R1f.z, R1f.w*1.0040); +gl_Position = vec4(R1f.x*(1.0 / 1.004), R1f.y*(1.0 / 1.006), R1f.z, R1f.w); // export passParameterSem1 = vec4(R2f.x, R2f.y, R2f.z, R2f.z); // export diff --git a/Source/XenobladeX/4cb7bbd82d381167_0000000000000000_vs.txt b/Source/XenobladeX/4cb7bbd82d381167_0000000000000000_vs.txt deleted file mode 100644 index 18851d43..00000000 --- a/Source/XenobladeX/4cb7bbd82d381167_0000000000000000_vs.txt +++ /dev/null @@ -1,72 +0,0 @@ -#version 420 -#extension GL_ARB_texture_gather : enable -#extension GL_ARB_shading_language_packing : enable -// shader 4cb7bbd82d381167 // cutscene specular highlight dof align -const float constScale = 8.0; -uniform ivec4 uf_remappedVS[1]; -uniform vec2 uf_windowSpaceToClipSpaceTransform; -layout(binding = 32) uniform sampler2D textureUnitVS0;// Tex0 addr 0xf545c000 res 1x1x1 dim 1 tm: 2 format 081e compSel: 0 1 4 5 mipView: 0x0 (num 0x1) sliceView: 0x0 (num 0x1) Sampler18 ClampX/Y/Z: 2 2 2 border: 0 -layout(location = 0) in uvec4 attrDataSem0; -layout(location = 1) in uvec4 attrDataSem1; -out gl_PerVertex -{ - vec4 gl_Position; - float gl_PointSize; -}; -layout(location = 1) out vec4 passParameterSem1; -layout(location = 0) out vec4 passParameterSem0; -int clampFI32(int v) -{ -if( v == 0x7FFFFFFF ) - return floatBitsToInt(1.0); -else if( v == 0xFFFFFFFF ) - return floatBitsToInt(0.0); -return floatBitsToInt(clamp(intBitsToFloat(v), 0.0, 1.0)); -} -float mul_nonIEEE(float a, float b){ return min(a*b,min(abs(a)*3.40282347E+38F,abs(b)*3.40282347E+38F)); } -void main() -{ -vec4 R0f = vec4(0.0); -vec4 R1f = vec4(0.0); -vec4 R2f = vec4(0.0); -uvec4 attrDecoder; -float backupReg0f, backupReg1f, backupReg2f, backupReg3f, backupReg4f; -vec4 PV0f = vec4(0.0), PV1f = vec4(0.0); -float PS0f = 0.0, PS1f = 0.0; -vec4 tempf = vec4(0.0); -float tempResultf; -int tempResulti; -ivec4 ARi = ivec4(0); -bool predResult = true; -vec3 cubeMapSTM; -int cubeMapFaceId; -R0f = floatBitsToInt(ivec4(gl_VertexID, 0, 0, gl_InstanceID)); -attrDecoder.xyz = attrDataSem0.xyz; -attrDecoder.xyz = (attrDecoder.xyz>>24)|((attrDecoder.xyz>>8)&0xFF00)|((attrDecoder.xyz<<8)&0xFF0000)|((attrDecoder.xyz<<24)); -attrDecoder.w = 0; -R1f = vec4(intBitsToFloat(int(attrDecoder.x)), intBitsToFloat(int(attrDecoder.y)), intBitsToFloat(int(attrDecoder.z)), intBitsToFloat(floatBitsToInt(1.0))); -attrDecoder.xy = attrDataSem1.xy; -attrDecoder.xy = (attrDecoder.xy>>24)|((attrDecoder.xy>>8)&0xFF00)|((attrDecoder.xy<<8)&0xFF0000)|((attrDecoder.xy<<24)); -attrDecoder.z = 0; -attrDecoder.w = 0; -R2f = vec4(intBitsToFloat(int(attrDecoder.x)), intBitsToFloat(int(attrDecoder.y)), intBitsToFloat(floatBitsToInt(0.0)), intBitsToFloat(floatBitsToInt(1.0))); -// 0 -backupReg0f = R2f.x; -backupReg1f = R2f.y; -R2f.x = (backupReg0f * intBitsToFloat(uf_remappedVS[0].x) + (intBitsToFloat(uf_remappedVS[0].z)/ constScale)); -R2f.y = (backupReg1f * intBitsToFloat(uf_remappedVS[0].y) + (intBitsToFloat(uf_remappedVS[0].w)/ constScale)); -R0f.z = intBitsToFloat(0x3f000000); -R0f.xy = (textureLod(textureUnitVS0, R0f.zz,0.0).xy); -// export -gl_Position = vec4(R1f.x, R1f.y, R1f.z, R1f.w); -// export -passParameterSem1 = vec4(R2f.x, R2f.y, R2f.z, R2f.z); -// 0 -backupReg0f = R0f.x; -backupReg1f = R0f.y; -R0f.x = backupReg0f; -R0f.y = backupReg1f; -// export -passParameterSem0 = vec4(R0f.x, R0f.y, R0f.z, R0f.z); -// 0 -} diff --git a/Source/XenobladeX/4f557f00a56c6358_0000000000000000_vs.txt b/Source/XenobladeX/4f557f00a56c6358_0000000000000000_vs.txt index b4b10011..c7663c2a 100644 --- a/Source/XenobladeX/4f557f00a56c6358_0000000000000000_vs.txt +++ b/Source/XenobladeX/4f557f00a56c6358_0000000000000000_vs.txt @@ -3,7 +3,7 @@ #extension GL_ARB_separate_shader_objects : enable #extension GL_ARB_shading_language_packing : enable // shader 4f557f00a56c6358 -//vs shadow mask +//test align edge alpha shadow uniform ivec4 uf_remappedVS[4]; uniform vec2 uf_windowSpaceToClipSpaceTransform; layout(location = 0) in uvec4 attrDataSem0; @@ -86,7 +86,7 @@ R2f.y = (mul_nonIEEE(R1f.x,intBitsToFloat(uf_remappedVS[3].y)) + PV0f.x); R2f.z = (mul_nonIEEE(R1f.x,intBitsToFloat(uf_remappedVS[3].z)) + PV0f.w); R2f.w = (mul_nonIEEE(R1f.x,intBitsToFloat(uf_remappedVS[3].w)) + PV0f.z); // export -gl_Position = vec4(R1f.x*0.999, R1f.y, R1f.z, R1f.w);//magic align shadows +gl_Position = vec4(R1f.x*(1/1.001), R1f.y*(1 / 1.001), R1f.z, R1f.w); // export passParameterSem0 = vec4(R2f.x, R2f.y, R2f.z, R2f.w); // export diff --git a/Source/XenobladeX/72387b8c3f18030f_0000000000000000_vs.txt b/Source/XenobladeX/72387b8c3f18030f_0000000000000000_vs.txt deleted file mode 100644 index 12e798b2..00000000 --- a/Source/XenobladeX/72387b8c3f18030f_0000000000000000_vs.txt +++ /dev/null @@ -1,64 +0,0 @@ -#version 420 -#extension GL_ARB_texture_gather : enable -#extension GL_ARB_separate_shader_objects : enable -#extension GL_ARB_shading_language_packing : enable -// shader 72387b8c3f18030f -//skell view align bloom -uniform ivec4 uf_remappedVS[1]; -uniform vec2 uf_windowSpaceToClipSpaceTransform; -layout(location = 0) in uvec4 attrDataSem0; -out gl_PerVertex -{ - vec4 gl_Position; - float gl_PointSize; -}; -layout(location = 0) out vec4 passParameterSem0; -int clampFI32(int v) -{ -if( v == 0x7FFFFFFF ) - return floatBitsToInt(1.0); -else if( v == 0xFFFFFFFF ) - return floatBitsToInt(0.0); -return floatBitsToInt(clamp(intBitsToFloat(v), 0.0, 1.0)); -} -float mul_nonIEEE(float a, float b){ if( a == 0.0 || b == 0.0 ) return 0.0; return a*b; } -void main() -{ -vec4 R0f = vec4(0.0); -vec4 R1f = vec4(0.0); -uvec4 attrDecoder; -float backupReg0f, backupReg1f, backupReg2f, backupReg3f, backupReg4f; -vec4 PV0f = vec4(0.0), PV1f = vec4(0.0); -float PS0f = 0.0, PS1f = 0.0; -vec4 tempf = vec4(0.0); -float tempResultf; -int tempResulti; -ivec4 ARi = ivec4(0); -bool predResult = true; -vec3 cubeMapSTM; -int cubeMapFaceId; -R0f = floatBitsToInt(ivec4(gl_VertexID, 0, 0, gl_InstanceID)); -attrDecoder.xy = attrDataSem0.xy; -attrDecoder.xy = (attrDecoder.xy>>24)|((attrDecoder.xy>>8)&0xFF00)|((attrDecoder.xy<<8)&0xFF0000)|((attrDecoder.xy<<24)); -attrDecoder.z = 0; -attrDecoder.w = 0; -R1f = vec4(intBitsToFloat(int(attrDecoder.x)), intBitsToFloat(int(attrDecoder.y)), intBitsToFloat(floatBitsToInt(0.0)), intBitsToFloat(floatBitsToInt(1.0))); -// 0 -PV0f.x = -(R1f.y); -PV0f.x /= 2.0; -PV0f.y = R1f.x; -PV0f.y /= 2.0; -R1f.z = 0.0; -R1f.w = 1.0; -// 1 -PV1f.z = PV0f.x + 0.5; -PV1f.w = PV0f.y + 0.5; -// 2 -R0f.x = PV1f.w + intBitsToFloat(uf_remappedVS[0].x)/8; //const align -R0f.y = PV1f.z + intBitsToFloat(uf_remappedVS[0].y)/8; -// export -gl_Position = vec4(R1f.x, R1f.y, R1f.z, R1f.w); -// export -passParameterSem0 = vec4(R0f.x, R0f.y, R0f.z, R0f.z); -// 0 -} diff --git a/Source/XenobladeX/94d235f07b93ad2f_0000000000000000_vs.txt b/Source/XenobladeX/94d235f07b93ad2f_0000000000000000_vs.txt deleted file mode 100644 index b6a8bcee..00000000 --- a/Source/XenobladeX/94d235f07b93ad2f_0000000000000000_vs.txt +++ /dev/null @@ -1,109 +0,0 @@ -#version 420 -#extension GL_ARB_texture_gather : enable -#extension GL_ARB_separate_shader_objects : enable -#extension GL_ARB_shading_language_packing : enable -// shader 94d235f07b93ad2f -// shadow masking alignment, haloing compromise -//fixes most Y at cost of slightly worse X - -uniform ivec4 uf_remappedVS[6]; -uniform vec2 uf_windowSpaceToClipSpaceTransform; -layout(location = 0) in uvec4 attrDataSem0; -layout(location = 1) in uvec4 attrDataSem1; -out gl_PerVertex -{ - vec4 gl_Position; - float gl_PointSize; -}; -layout(location = 3) out vec4 passParameterSem3; -layout(location = 0) out vec4 passParameterSem0; -layout(location = 1) out vec4 passParameterSem1; -layout(location = 2) out vec4 passParameterSem2; -int clampFI32(int v) -{ -if( v == 0x7FFFFFFF ) - return floatBitsToInt(1.0); -else if( v == 0xFFFFFFFF ) - return floatBitsToInt(0.0); -return floatBitsToInt(clamp(intBitsToFloat(v), 0.0, 1.0)); -} -float mul_nonIEEE(float a, float b){ if( a == 0.0 || b == 0.0 ) return 0.0; return a*b; } -void main() -{ -vec4 R0f = vec4(0.0); -vec4 R1f = vec4(0.0); -vec4 R2f = vec4(0.0); -vec4 R3f = vec4(0.0); -vec4 R4f = vec4(0.0); -vec4 R123f = vec4(0.0); -uvec4 attrDecoder; -float backupReg0f, backupReg1f, backupReg2f, backupReg3f, backupReg4f; -vec4 PV0f = vec4(0.0), PV1f = vec4(0.0); -float PS0f = 0.0, PS1f = 0.0; -vec4 tempf = vec4(0.0); -float tempResultf; -int tempResulti; -ivec4 ARi = ivec4(0); -bool predResult = true; -vec3 cubeMapSTM; -int cubeMapFaceId; -R0f = floatBitsToInt(ivec4(gl_VertexID, 0, 0, gl_InstanceID)); -attrDecoder.xyz = attrDataSem0.xyz; -attrDecoder.xyz = (attrDecoder.xyz>>24)|((attrDecoder.xyz>>8)&0xFF00)|((attrDecoder.xyz<<8)&0xFF0000)|((attrDecoder.xyz<<24)); -attrDecoder.w = 0; -R1f = vec4(intBitsToFloat(int(attrDecoder.x)), intBitsToFloat(int(attrDecoder.y)), intBitsToFloat(int(attrDecoder.z)), intBitsToFloat(floatBitsToInt(1.0))); -attrDecoder.xy = attrDataSem1.xy; -attrDecoder.xy = (attrDecoder.xy>>24)|((attrDecoder.xy>>8)&0xFF00)|((attrDecoder.xy<<8)&0xFF0000)|((attrDecoder.xy<<24)); -attrDecoder.z = 0; -attrDecoder.w = 0; -R2f = vec4(intBitsToFloat(int(attrDecoder.x)), intBitsToFloat(int(attrDecoder.y)), intBitsToFloat(floatBitsToInt(0.0)), intBitsToFloat(floatBitsToInt(1.0))); -// 0 -PV0f.x = mul_nonIEEE(R1f.w, intBitsToFloat(uf_remappedVS[0].w)); -PV0f.y = mul_nonIEEE(R1f.w, intBitsToFloat(uf_remappedVS[0].z)); -PV0f.z = mul_nonIEEE(R1f.w, intBitsToFloat(uf_remappedVS[0].y)); -PV0f.w = mul_nonIEEE(R1f.w, intBitsToFloat(uf_remappedVS[0].x)); -R4f.x = R2f.x; -PS0f = R4f.x; -// 1 -R123f.x = (mul_nonIEEE(R1f.z,intBitsToFloat(uf_remappedVS[1].w)) + PV0f.x); -PV1f.x = R123f.x; -R123f.y = (mul_nonIEEE(R1f.z,intBitsToFloat(uf_remappedVS[1].z)) + PV0f.y); -PV1f.y = R123f.y; -R123f.z = (mul_nonIEEE(R1f.z,intBitsToFloat(uf_remappedVS[1].y)) + PV0f.z); -PV1f.z = R123f.z; -R123f.w = (mul_nonIEEE(R1f.z,intBitsToFloat(uf_remappedVS[1].x)) + PV0f.w); -PV1f.w = R123f.w; -R4f.y = R2f.y; -PS1f = R4f.y; -// 2 -R123f.x = (mul_nonIEEE(R1f.y,intBitsToFloat(uf_remappedVS[2].z)) + PV1f.y); -PV0f.x = R123f.x; -R123f.y = (mul_nonIEEE(R1f.y,intBitsToFloat(uf_remappedVS[2].w)) + PV1f.x); -PV0f.y = R123f.y; -R123f.z = (mul_nonIEEE(R1f.y,intBitsToFloat(uf_remappedVS[2].y)) + PV1f.z); -PV0f.z = R123f.z; -R123f.w = (mul_nonIEEE(R1f.y,intBitsToFloat(uf_remappedVS[2].x)) + PV1f.w); -PV0f.w = R123f.w; -// 3 -R2f.x = (mul_nonIEEE(R1f.x,intBitsToFloat(uf_remappedVS[3].x)) + PV0f.w); -R2f.y = (mul_nonIEEE(R1f.x,intBitsToFloat(uf_remappedVS[3].y)) + PV0f.z); -R2f.z = (mul_nonIEEE(R1f.x,intBitsToFloat(uf_remappedVS[3].z)) + PV0f.x); -R2f.w = (mul_nonIEEE(R1f.x,intBitsToFloat(uf_remappedVS[3].w)) + PV0f.y); -// 4 -R3f.x = (mul_nonIEEE(R4f.x,intBitsToFloat(uf_remappedVS[4].x)) + intBitsToFloat(uf_remappedVS[4].z)); -R3f.y = (mul_nonIEEE(R4f.y,intBitsToFloat(uf_remappedVS[4].y)) + intBitsToFloat(uf_remappedVS[4].w)/4); //2 -// 5 -R0f.x = (mul_nonIEEE(R4f.x,intBitsToFloat(uf_remappedVS[5].x)) + intBitsToFloat(uf_remappedVS[5].z)); -R0f.y = (mul_nonIEEE(R4f.y,intBitsToFloat(uf_remappedVS[5].y)) + intBitsToFloat(uf_remappedVS[5].w)); -// export -gl_Position = vec4(R1f.x, R1f.y, R1f.z, R1f.w); -// export -passParameterSem3 = vec4(R2f.x, R2f.y, R2f.z, R2f.w); -// export -passParameterSem0 = vec4(R0f.x, R0f.y, R0f.z, R0f.z); -// export -passParameterSem1 = vec4(R3f.x, R3f.y, R3f.z, R3f.z); -// export -passParameterSem2 = vec4(R4f.x, R4f.y, R4f.z, R4f.z); -// 0 -} diff --git a/Source/XenobladeX/9dc2d340255dee89_0000000000000000_vs.txt b/Source/XenobladeX/9dc2d340255dee89_0000000000000000_vs.txt index e493a653..69823731 100644 --- a/Source/XenobladeX/9dc2d340255dee89_0000000000000000_vs.txt +++ b/Source/XenobladeX/9dc2d340255dee89_0000000000000000_vs.txt @@ -1,14 +1,13 @@ #version 420 #extension GL_ARB_texture_gather : enable +#extension GL_ARB_separate_shader_objects : enable #extension GL_ARB_shading_language_packing : enable -// shader 9dc2d340255dee89 //aligment vs -const float constvs = 8.0; - +// shader 9dc2d340255dee89 +//align bloom 1 uniform ivec4 uf_remappedVS[1]; uniform vec2 uf_windowSpaceToClipSpaceTransform; layout(location = 0) in uvec4 attrDataSem0; layout(location = 1) in uvec4 attrDataSem1; - out gl_PerVertex { vec4 gl_Position; @@ -23,7 +22,7 @@ else if( v == 0xFFFFFFFF ) return floatBitsToInt(0.0); return floatBitsToInt(clamp(intBitsToFloat(v), 0.0, 1.0)); } -float mul_nonIEEE(float a, float b){ return min(a*b,min(abs(a)*3.40282347E+38F,abs(b)*3.40282347E+38F)); } +float mul_nonIEEE(float a, float b){ if( a == 0.0 || b == 0.0 ) return 0.0; return a*b; } void main() { vec4 R1f = vec4(0.0); @@ -51,10 +50,10 @@ R2f = vec4(intBitsToFloat(int(attrDecoder.x)), intBitsToFloat(int(attrDecoder.y) // 0 backupReg0f = R2f.x; backupReg1f = R2f.y; -R2f.x = (backupReg0f * intBitsToFloat(uf_remappedVS[0].x) + (intBitsToFloat(uf_remappedVS[0].z)/constvs)); -R2f.y = (backupReg1f * intBitsToFloat(uf_remappedVS[0].y) + (intBitsToFloat(uf_remappedVS[0].w)/constvs)); +R2f.x = (mul_nonIEEE(backupReg0f, intBitsToFloat(uf_remappedVS[0].x)));// +intBitsToFloat(uf_remappedVS[0].z) / 8); +R2f.y = (mul_nonIEEE(backupReg1f, intBitsToFloat(uf_remappedVS[0].y)));// +intBitsToFloat(uf_remappedVS[0].w) / 8); // export -gl_Position = vec4(R1f.x, R1f.y, R1f.z, R1f.w); +gl_Position = vec4(R1f.x*(1.0/1.006), R1f.y*(1.0/1.006), R1f.z, R1f.w); // export passParameterSem0 = vec4(R2f.x, R2f.y, R2f.z, R2f.z); // 0 diff --git a/Source/XenobladeX/cf4eda5057e1a527_0000000000000000_vs.txt b/Source/XenobladeX/_cf4eda5057e1a527_0000000000000000_vs.txt similarity index 100% rename from Source/XenobladeX/cf4eda5057e1a527_0000000000000000_vs.txt rename to Source/XenobladeX/_cf4eda5057e1a527_0000000000000000_vs.txt diff --git a/Source/XenobladeX/dd1a35baa9bbe69b_0000000000000000_vs.txt b/Source/XenobladeX/dd1a35baa9bbe69b_0000000000000000_vs.txt deleted file mode 100644 index 7f1adea2..00000000 --- a/Source/XenobladeX/dd1a35baa9bbe69b_0000000000000000_vs.txt +++ /dev/null @@ -1,109 +0,0 @@ -#version 420 -#extension GL_ARB_texture_gather : enable -#extension GL_ARB_separate_shader_objects : enable -#extension GL_ARB_shading_language_packing : enable -// shader dd1a35baa9bbe69b -// shadow maskng alignment, haloing compromise -//fixes most Y at cost of slightly worse X - -uniform ivec4 uf_remappedVS[6]; -uniform vec2 uf_windowSpaceToClipSpaceTransform; -layout(location = 0) in uvec4 attrDataSem0; -layout(location = 1) in uvec4 attrDataSem1; -out gl_PerVertex -{ - vec4 gl_Position; - float gl_PointSize; -}; -layout(location = 3) out vec4 passParameterSem3; -layout(location = 0) out vec4 passParameterSem0; -layout(location = 1) out vec4 passParameterSem1; -layout(location = 2) out vec4 passParameterSem2; -int clampFI32(int v) -{ -if( v == 0x7FFFFFFF ) - return floatBitsToInt(1.0); -else if( v == 0xFFFFFFFF ) - return floatBitsToInt(0.0); -return floatBitsToInt(clamp(intBitsToFloat(v), 0.0, 1.0)); -} -float mul_nonIEEE(float a, float b){ if( a == 0.0 || b == 0.0 ) return 0.0; return a*b; } -void main() -{ -vec4 R0f = vec4(0.0); -vec4 R1f = vec4(0.0); -vec4 R2f = vec4(0.0); -vec4 R3f = vec4(0.0); -vec4 R4f = vec4(0.0); -vec4 R123f = vec4(0.0); -uvec4 attrDecoder; -float backupReg0f, backupReg1f, backupReg2f, backupReg3f, backupReg4f; -vec4 PV0f = vec4(0.0), PV1f = vec4(0.0); -float PS0f = 0.0, PS1f = 0.0; -vec4 tempf = vec4(0.0); -float tempResultf; -int tempResulti; -ivec4 ARi = ivec4(0); -bool predResult = true; -vec3 cubeMapSTM; -int cubeMapFaceId; -R0f = floatBitsToInt(ivec4(gl_VertexID, 0, 0, gl_InstanceID)); -attrDecoder.xyz = attrDataSem0.xyz; -attrDecoder.xyz = (attrDecoder.xyz>>24)|((attrDecoder.xyz>>8)&0xFF00)|((attrDecoder.xyz<<8)&0xFF0000)|((attrDecoder.xyz<<24)); -attrDecoder.w = 0; -R1f = vec4(intBitsToFloat(int(attrDecoder.x)), intBitsToFloat(int(attrDecoder.y)), intBitsToFloat(int(attrDecoder.z)), intBitsToFloat(floatBitsToInt(1.0))); -attrDecoder.xy = attrDataSem1.xy; -attrDecoder.xy = (attrDecoder.xy>>24)|((attrDecoder.xy>>8)&0xFF00)|((attrDecoder.xy<<8)&0xFF0000)|((attrDecoder.xy<<24)); -attrDecoder.z = 0; -attrDecoder.w = 0; -R2f = vec4(intBitsToFloat(int(attrDecoder.x)), intBitsToFloat(int(attrDecoder.y)), intBitsToFloat(floatBitsToInt(0.0)), intBitsToFloat(floatBitsToInt(1.0))); -// 0 -PV0f.x = mul_nonIEEE(R1f.w, intBitsToFloat(uf_remappedVS[0].w)); -PV0f.y = mul_nonIEEE(R1f.w, intBitsToFloat(uf_remappedVS[0].z)); -PV0f.z = mul_nonIEEE(R1f.w, intBitsToFloat(uf_remappedVS[0].y)); -PV0f.w = mul_nonIEEE(R1f.w, intBitsToFloat(uf_remappedVS[0].x)); -R4f.x = R2f.x; -PS0f = R4f.x; -// 1 -R123f.x = (mul_nonIEEE(R1f.z,intBitsToFloat(uf_remappedVS[1].w)) + PV0f.x); -PV1f.x = R123f.x; -R123f.y = (mul_nonIEEE(R1f.z,intBitsToFloat(uf_remappedVS[1].z)) + PV0f.y); -PV1f.y = R123f.y; -R123f.z = (mul_nonIEEE(R1f.z,intBitsToFloat(uf_remappedVS[1].y)) + PV0f.z); -PV1f.z = R123f.z; -R123f.w = (mul_nonIEEE(R1f.z,intBitsToFloat(uf_remappedVS[1].x)) + PV0f.w); -PV1f.w = R123f.w; -R4f.y = R2f.y; -PS1f = R4f.y; -// 2 -R123f.x = (mul_nonIEEE(R1f.y,intBitsToFloat(uf_remappedVS[2].z)) + PV1f.y); -PV0f.x = R123f.x; -R123f.y = (mul_nonIEEE(R1f.y,intBitsToFloat(uf_remappedVS[2].w)) + PV1f.x); -PV0f.y = R123f.y; -R123f.z = (mul_nonIEEE(R1f.y,intBitsToFloat(uf_remappedVS[2].y)) + PV1f.z); -PV0f.z = R123f.z; -R123f.w = (mul_nonIEEE(R1f.y,intBitsToFloat(uf_remappedVS[2].x)) + PV1f.w); -PV0f.w = R123f.w; -// 3 -R2f.x = (mul_nonIEEE(R1f.x,intBitsToFloat(uf_remappedVS[3].x)) + PV0f.w); -R2f.y = (mul_nonIEEE(R1f.x,intBitsToFloat(uf_remappedVS[3].y)) + PV0f.z); -R2f.z = (mul_nonIEEE(R1f.x,intBitsToFloat(uf_remappedVS[3].z)) + PV0f.x); -R2f.w = (mul_nonIEEE(R1f.x,intBitsToFloat(uf_remappedVS[3].w)) + PV0f.y); -// 4 -R3f.x = (mul_nonIEEE(R4f.x,intBitsToFloat(uf_remappedVS[4].x)) + intBitsToFloat(uf_remappedVS[4].z)); -R3f.y = (mul_nonIEEE(R4f.y,intBitsToFloat(uf_remappedVS[4].y)) + intBitsToFloat(uf_remappedVS[4].w)/4); -// 5 -R0f.x = (mul_nonIEEE(R4f.x,intBitsToFloat(uf_remappedVS[5].x)) + intBitsToFloat(uf_remappedVS[5].z)); -R0f.y = (mul_nonIEEE(R4f.y,intBitsToFloat(uf_remappedVS[5].y)) + intBitsToFloat(uf_remappedVS[5].w)); -// export -gl_Position = vec4(R1f.x, R1f.y, R1f.z, R1f.w); -// export -passParameterSem3 = vec4(R2f.x, R2f.y, R2f.z, R2f.w); -// export -passParameterSem0 = vec4(R0f.x, R0f.y, R0f.z, R0f.z); -// export -passParameterSem1 = vec4(R3f.x, R3f.y, R3f.z, R3f.z); -// export -passParameterSem2 = vec4(R4f.x, R4f.y, R4f.z, R4f.z); -// 0 -} diff --git a/Source/XenobladeX/e412d30f981be3b5_0000000000000000_vs.txt b/Source/XenobladeX/e412d30f981be3b5_0000000000000000_vs.txt index 6c01dc7b..b0beea91 100644 --- a/Source/XenobladeX/e412d30f981be3b5_0000000000000000_vs.txt +++ b/Source/XenobladeX/e412d30f981be3b5_0000000000000000_vs.txt @@ -1,9 +1,10 @@ #version 420 #extension GL_ARB_texture_gather : enable +#extension GL_ARB_separate_shader_objects : enable #extension GL_ARB_shading_language_packing : enable -// shader e412d30f981be3b5 //char select VS persp +// shader e412d30f981be3b5 +//char select dof uniform ivec4 uf_remappedVS[1]; -const float constvs = 8.0; uniform vec2 uf_windowSpaceToClipSpaceTransform; layout(location = 0) in uvec4 attrDataSem0; layout(location = 1) in uvec4 attrDataSem1; @@ -21,7 +22,7 @@ else if( v == 0xFFFFFFFF ) return floatBitsToInt(0.0); return floatBitsToInt(clamp(intBitsToFloat(v), 0.0, 1.0)); } -float mul_nonIEEE(float a, float b){ return min(a*b,min(abs(a)*3.40282347E+38F,abs(b)*3.40282347E+38F)); } +float mul_nonIEEE(float a, float b){ if( a == 0.0 || b == 0.0 ) return 0.0; return a*b; } void main() { vec4 R1f = vec4(0.0); @@ -49,10 +50,11 @@ R2f = vec4(intBitsToFloat(int(attrDecoder.x)), intBitsToFloat(int(attrDecoder.y) // 0 backupReg0f = R2f.x; backupReg1f = R2f.y; -R2f.x = (backupReg0f * intBitsToFloat(uf_remappedVS[0].x) + (intBitsToFloat(uf_remappedVS[0].z)/constvs)); -R2f.y = (backupReg1f * intBitsToFloat(uf_remappedVS[0].y) + (intBitsToFloat(uf_remappedVS[0].w)/constvs)); +R2f.x = (mul_nonIEEE(backupReg0f, intBitsToFloat(uf_remappedVS[0].x)));// +intBitsToFloat(uf_remappedVS[0].z)); +R2f.y = (mul_nonIEEE(backupReg1f, intBitsToFloat(uf_remappedVS[0].y)));// +intBitsToFloat(uf_remappedVS[0].w)); // export -gl_Position = vec4(R1f.x, R1f.y, R1f.z, R1f.w); +gl_Position = vec4(R1f.x*(1.0 / 1.004), R1f.y*(1.0 / 1.006), R1f.z, R1f.w); +//gl_Position = vec4(R1f.x, R1f.y, R1f.z, R1f.w); // export passParameterSem0 = vec4(R2f.x, R2f.y, R2f.z, R2f.z); // 0 diff --git a/Source/XenobladeX/fb7df308052b5222_0000000000000000_vs.txt b/Source/XenobladeX/fb7df308052b5222_0000000000000000_vs.txt deleted file mode 100644 index 18fbdd8b..00000000 --- a/Source/XenobladeX/fb7df308052b5222_0000000000000000_vs.txt +++ /dev/null @@ -1,67 +0,0 @@ -#version 420 -#extension GL_ARB_texture_gather : enable -#extension GL_ARB_shading_language_packing : enable -// shader fb7df308052b5222 //align cut-scene -uniform ivec4 uf_remappedVS[2]; -const float constvs = 8.0; -uniform vec2 uf_windowSpaceToClipSpaceTransform; -layout(location = 0) in uvec4 attrDataSem0; -layout(location = 1) in uvec4 attrDataSem1; -out gl_PerVertex -{ - vec4 gl_Position; - float gl_PointSize; -}; -layout(location = 0) out vec4 passParameterSem0; -layout(location = 1) out vec4 passParameterSem1; -int clampFI32(int v) -{ -if( v == 0x7FFFFFFF ) - return floatBitsToInt(1.0); -else if( v == 0xFFFFFFFF ) - return floatBitsToInt(0.0); -return floatBitsToInt(clamp(intBitsToFloat(v), 0.0, 1.0)); -} -float mul_nonIEEE(float a, float b){ return min(a*b,min(abs(a)*3.40282347E+38F,abs(b)*3.40282347E+38F)); } -void main() -{ -vec4 R0f = vec4(0.0); -vec4 R1f = vec4(0.0); -vec4 R2f = vec4(0.0); -uvec4 attrDecoder; -float backupReg0f, backupReg1f, backupReg2f, backupReg3f, backupReg4f; -vec4 PV0f = vec4(0.0), PV1f = vec4(0.0); -float PS0f = 0.0, PS1f = 0.0; -vec4 tempf = vec4(0.0); -float tempResultf; -int tempResulti; -ivec4 ARi = ivec4(0); -bool predResult = true; -vec3 cubeMapSTM; -int cubeMapFaceId; -R0f = floatBitsToInt(ivec4(gl_VertexID, 0, 0, gl_InstanceID)); -attrDecoder.xyz = attrDataSem0.xyz; -attrDecoder.xyz = (attrDecoder.xyz>>24)|((attrDecoder.xyz>>8)&0xFF00)|((attrDecoder.xyz<<8)&0xFF0000)|((attrDecoder.xyz<<24)); -attrDecoder.w = 0; -R1f = vec4(intBitsToFloat(int(attrDecoder.x)), intBitsToFloat(int(attrDecoder.y)), intBitsToFloat(int(attrDecoder.z)), intBitsToFloat(floatBitsToInt(1.0))); -attrDecoder.xy = attrDataSem1.xy; -attrDecoder.xy = (attrDecoder.xy>>24)|((attrDecoder.xy>>8)&0xFF00)|((attrDecoder.xy<<8)&0xFF0000)|((attrDecoder.xy<<24)); -attrDecoder.z = 0; -attrDecoder.w = 0; -R2f = vec4(intBitsToFloat(int(attrDecoder.x)), intBitsToFloat(int(attrDecoder.y)), intBitsToFloat(floatBitsToInt(0.0)), intBitsToFloat(floatBitsToInt(1.0))); -// 0 -R0f.x = (R2f.x * intBitsToFloat(uf_remappedVS[0].x) + intBitsToFloat(uf_remappedVS[0].z)/constvs); -R0f.y = (R2f.y * intBitsToFloat(uf_remappedVS[0].y) + intBitsToFloat(uf_remappedVS[0].w)/constvs); -// 1 -backupReg0f = R2f.x; -backupReg1f = R2f.y; -R2f.x = (backupReg0f * intBitsToFloat(uf_remappedVS[1].x) + intBitsToFloat(uf_remappedVS[1].z)); -R2f.y = (backupReg1f * intBitsToFloat(uf_remappedVS[1].y) + intBitsToFloat(uf_remappedVS[1].w)); -// export -gl_Position = vec4(R1f.x, R1f.y, R1f.z, R1f.w); -// export -passParameterSem0 = vec4(R0f.x, R0f.y, R0f.z, R0f.z); -// export -passParameterSem1 = vec4(R2f.x, R2f.y, R2f.z, R2f.z); -// 0 -}