mirror of
https://github.com/cemu-project/cemu_graphic_packs.git
synced 2025-01-10 11:47:34 -03:00
[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.
This commit is contained in:
parent
f7ef21ef54
commit
8fa52937c9
12 changed files with 24 additions and 613 deletions
|
@ -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
|
||||
}
|
|
@ -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
|
||||
}
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
}
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
}
|
|
@ -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
|
||||
}
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
}
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
}
|
Loading…
Reference in a new issue