cemu_graphic_packs/src/BreathOfTheWild/Graphics/a1cb9f79d093badb_0000f0f0ff34db6d_ps.txt
Crementif ca22977ef0
[BotW] Major improvements and update all packs to V6
This includes the new Breath of the Wild graphic packs. Noteworthy changes (that'll hopefully break nothing!) are:

General Changes:
* Improving the menu navigation using features from the V5 graphic pack features! Big thanks to @MrPigglet for doing the work here!
* All graphic packs have had their descriptions, names and folder structure improved.
* Updating all packs to use native Cemu patches! Should just mean better compatibility in the future.

Graphic Pack Improvements:
* Merged related settings together into PC-game-like Graphics and Enhancements graphic packs menus.
* Added Draw Distance pack( which also includes the old LOD Bias setting)! This includes a NPC/Enemy draw distance pack and an object one which is stuff like bushes, general model details and other stuff. However, the object part is still experimental and messes with some other level of detail.
* Changed the vague Pro Hud option into the "Remove HUD elements" pack, which now also supports removing the camera HUD for screenshots (also experimental™) and other options. These will no longer corrupt any textures either!
* Fixed the weather pack, which now also allows you to individually change the weather types. Say bye to rain (specifically)!
* Added some cool timelapse options to the Day Length graphic pack. Just wanted to mention that here since it's pretty cool!
* Added a Camera Sensitivity pack, made by FakeMichau and theboy181.
* Cel Shading pack is refactored and should be less confusing to enable.
* Glowing Guardian Colors pack was much improved, making stylizing some of those guardian colors really cool!

Major FPS++ Improvements:
* Fixed shield surfing, thanks to @Xalphenos!
* Fixed flurry rushes not connecting sometimes at higher FPS!
* Fixed Thunderblight Ganon flying off in the distance while fighting him!
* Added a preview of a menu navigation speed made by @Exzap which makes the game far more playable at anything above 60FPS which has to be manually enabled in the Advanced Settings for now. The reason why it's disabled is because it's buggy at (sub) 30FPS in the menus and it disables fast scrolling (speed up when you hold a direction for a longer time). The full version of this fix will be enabled by default and won't be a special setting.

Is this FPS++ 2.0?!

* Added two different modes which hides some of the complexity. Simple will give most of the settings normal users should care about!
* Also added an option to temporarily lock to 30FPS. It is in practice just setting your FPS limit to 30FPS, but I hoped to make users aware of when to temporarily switch to 30FPS to prevent some of the small remaining issues (like some cutscenes crashing at more then 60FPS).
* Made FPS++ able to be changed while running the game.
* Added a static FPS mode (and removed the separate static FPS graphic pack since it was no longer up-to-date) under the advanced settings.

Random Improvements:
* Fixed fog graphic pack, which now does Ganon's castle smoke again.
* Added more resolutions and aspect ratios! Other packs also have much more options added!
* Reshade Compatibility pack is now better titled, since users that weren't using Reshade were enabling it regardless which broke their graphics.
* Refactored folder structure to the new model.
* Many other changes that I forgot!

Based on https://github.com/MrPigglet/gfx_pack
Co-authored-by: MrPigglet <14359517+MrPigglet@users.noreply.github.com>
2021-01-12 01:09:30 +01:00

563 lines
27 KiB
Plaintext

#version 420
#extension GL_ARB_texture_gather : enable
#ifdef VULKAN
#define ATTR_LAYOUT(__vkSet, __location) layout(set = __vkSet, location = __location)
#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation, std140)
#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation)
#define SET_POSITION(_v) gl_Position = _v; gl_Position.z = (gl_Position.z + gl_Position.w) / 2.0
#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale.xy,gl_FragCoord.zw)
#define gl_VertexID gl_VertexIndex
#define gl_InstanceID gl_InstanceIndex
#else
#define ATTR_LAYOUT(__vkSet, __location) layout(location = __location)
#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation, std140)
#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation)
#define SET_POSITION(_v) gl_Position = _v
#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale,gl_FragCoord.zw)
#endif
// This shader was automatically converted to be cross-compatible with Vulkan and OpenGL.
// shader a1cb9f79d093badb
// Used for: Restoring the native BotW Anti-Aliasing implementation from water edges
const float resXScale = float($width)/float($gameWidth);
const float resYScale = float($height)/float($gameHeight);
#ifdef VULKAN
layout(set = 1, binding = 8) uniform ufBlock
{
uniform ivec4 uf_remappedPS[20];
uniform vec4 uf_fragCoordScale;
};
#else
uniform ivec4 uf_remappedPS[20];
uniform vec2 uf_fragCoordScale;
#endif
TEXTURE_LAYOUT(0, 1, 0) uniform sampler2D textureUnitPS0;
TEXTURE_LAYOUT(2, 1, 1) uniform sampler2DArray textureUnitPS2;
TEXTURE_LAYOUT(3, 1, 2) uniform sampler2D textureUnitPS3;
TEXTURE_LAYOUT(7, 1, 3) uniform sampler2DArray textureUnitPS7;
TEXTURE_LAYOUT(8, 1, 4) uniform sampler2DArray textureUnitPS8;
TEXTURE_LAYOUT(9, 1, 5) uniform sampler2DArray textureUnitPS9;
TEXTURE_LAYOUT(10, 1, 6) uniform sampler2DArray textureUnitPS10;
TEXTURE_LAYOUT(11, 1, 7) uniform sampler2DArray textureUnitPS11;
layout(location = 0) in vec4 passParameterSem0;
layout(location = 1) in vec4 passParameterSem1;
layout(location = 2) in vec4 passParameterSem2;
layout(location = 3) in vec4 passParameterSem3;
layout(location = 4) in vec4 passParameterSem4;
layout(location = 5) in vec4 passParameterSem5;
layout(location = 6) in vec4 passParameterSem11;
layout(location = 7) in vec4 passParameterSem7;
layout(location = 8) in vec4 passParameterSem8;
layout(location = 9) in vec4 passParameterSem9;
layout(location = 10) in vec4 passParameterSem10;
layout(location = 0) out vec4 passPixelColor0;
layout(location = 1) out vec4 passPixelColor1;
layout(location = 3) out vec4 passPixelColor3;
layout(location = 5) out vec4 passPixelColor5;
// uf_fragCoordScale was moved to the ufBlock
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()
{
ivec4 R0i = ivec4(0);
ivec4 R1i = ivec4(0);
ivec4 R2i = ivec4(0);
ivec4 R3i = ivec4(0);
ivec4 R4i = ivec4(0);
ivec4 R5i = ivec4(0);
ivec4 R6i = ivec4(0);
ivec4 R7i = ivec4(0);
ivec4 R8i = ivec4(0);
ivec4 R9i = ivec4(0);
ivec4 R10i = ivec4(0);
ivec4 R11i = ivec4(0);
ivec4 R12i = ivec4(0);
ivec4 R13i = ivec4(0);
ivec4 R14i = ivec4(0);
ivec4 R15i = ivec4(0);
ivec4 R16i = ivec4(0);
ivec4 R17i = ivec4(0);
ivec4 R18i = ivec4(0);
ivec4 R19i = ivec4(0);
ivec4 R122i = ivec4(0);
ivec4 R123i = ivec4(0);
ivec4 R124i = ivec4(0);
ivec4 R125i = ivec4(0);
ivec4 R126i = ivec4(0);
ivec4 R127i = ivec4(0);
int backupReg0i, backupReg1i, backupReg2i, backupReg3i, backupReg4i;
ivec4 PV0i = ivec4(0), PV1i = ivec4(0);
int PS0i = 0, PS1i = 0;
ivec4 tempi = ivec4(0);
float tempResultf;
int tempResulti;
ivec4 ARi = ivec4(0);
bool predResult = true;
vec3 cubeMapSTM;
int cubeMapFaceId;
R0i = floatBitsToInt(passParameterSem0);
R1i = floatBitsToInt(passParameterSem1);
R2i = floatBitsToInt(passParameterSem2);
R3i = floatBitsToInt(passParameterSem3);
R4i = floatBitsToInt(passParameterSem4);
R5i = floatBitsToInt(passParameterSem5);
R6i = floatBitsToInt(passParameterSem11);
R7i = floatBitsToInt(passParameterSem7);
R8i = floatBitsToInt(passParameterSem8);
R9i = floatBitsToInt(passParameterSem9);
R10i = floatBitsToInt(passParameterSem10);
// 0
PV0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R8i.x), intBitsToFloat(uf_remappedPS[0].x)));
PV0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R8i.x), intBitsToFloat(uf_remappedPS[1].x)));
R127i.z = R9i.z;
R127i.w = R9i.w;
R126i.z = 0;
PS0i = R126i.z;
// 1
R127i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R8i.y),intBitsToFloat(uf_remappedPS[1].y)) + intBitsToFloat(PV0i.y)));
R127i.y = R9i.y;
R15i.z = floatBitsToInt(roundEven(1.0));
R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R8i.y),intBitsToFloat(uf_remappedPS[0].y)) + intBitsToFloat(PV0i.x)));
PV1i.w = R123i.w;
R126i.x = floatBitsToInt(1.0 / intBitsToFloat(R6i.w));
PS1i = R126i.x;
// 2
tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R127i.z),intBitsToFloat(R127i.w),intBitsToFloat(R126i.z),-0.0),vec4(intBitsToFloat(R127i.z),intBitsToFloat(R127i.w),intBitsToFloat(R126i.z),0.0)));
PV0i.x = tempi.x;
PV0i.y = tempi.x;
PV0i.z = tempi.x;
PV0i.w = tempi.x;
R122i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R8i.z),intBitsToFloat(uf_remappedPS[0].z)) + intBitsToFloat(PV1i.w)));
PS0i = R122i.x;
// 3
R14i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R6i.x), intBitsToFloat(R126i.x)));
PV1i.y = floatBitsToInt(intBitsToFloat(uf_remappedPS[0].w) + intBitsToFloat(PS0i));
R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R8i.z),intBitsToFloat(uf_remappedPS[1].z)) + intBitsToFloat(R127i.x)));
PV1i.z = R123i.z;
R12i.w = floatBitsToInt(roundEven(intBitsToFloat(R127i.y)));
PV1i.w = R12i.w;
R19i.z = floatBitsToInt(sqrt(intBitsToFloat(PV0i.x)));
PS1i = R19i.z;
// 4
PV0i.x = floatBitsToInt(intBitsToFloat(PV1i.y) * intBitsToFloat(0x3cdd67c9));
PV0i.y = floatBitsToInt(intBitsToFloat(uf_remappedPS[1].w) + intBitsToFloat(PV1i.z));
R11i.z = PV1i.w;
PV0i.w = floatBitsToInt(intBitsToFloat(PS1i) * intBitsToFloat(0x3fb6db6e));
PV0i.w = clampFI32(PV0i.w);
R127i.x = floatBitsToInt(1.0 / intBitsToFloat(PS1i));
PS0i = R127i.x;
// 5
PV1i.x = floatBitsToInt(mul_nonIEEE(-(intBitsToFloat(R8i.z)), intBitsToFloat(uf_remappedPS[2].y)));
PV1i.y = floatBitsToInt(intBitsToFloat(PV0i.w) * intBitsToFloat(0x3f333333));
R123i.z = floatBitsToInt((intBitsToFloat(PV0i.y) * intBitsToFloat(0x3cbe82fa) + intBitsToFloat(PV0i.x)));
PV1i.z = R123i.z;
R6i.w = R4i.z;
R14i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R6i.y), intBitsToFloat(R126i.x)));
PS1i = R14i.y;
// 6
PV0i.x = floatBitsToInt(intBitsToFloat(PV1i.z) + intBitsToFloat(uf_remappedPS[3].z));
R6i.y = R4i.w;
PV0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.y), intBitsToFloat(R127i.x)));
PV0i.w = floatBitsToInt(intBitsToFloat(PV1i.z) + intBitsToFloat(uf_remappedPS[3].y));
R12i.z = floatBitsToInt(1.0 / intBitsToFloat(PV1i.x));
PS0i = R12i.z;
// 7
PV1i.x = floatBitsToInt(fract(intBitsToFloat(PV0i.w)));
PV1i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R9i.w), intBitsToFloat(PV0i.z)));
PV1i.z = floatBitsToInt(fract(intBitsToFloat(PV0i.x)));
PV1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R9i.z), intBitsToFloat(PV0i.z)));
R6i.z = R12i.w;
PS1i = R6i.z;
// 8
R0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.w), intBitsToFloat(PV1i.z)));
PV0i.x = R0i.x;
R0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.y), intBitsToFloat(PV1i.x)));
PV0i.y = R0i.y;
R9i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.y), intBitsToFloat(PV1i.z)));
PV0i.z = R9i.z;
R9i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.w), intBitsToFloat(PV1i.x)));
PV0i.w = R9i.w;
R122i.x = floatBitsToInt((intBitsToFloat(PV1i.x) * 2.0 + -(1.0)));
PS0i = R122i.x;
// 9
R12i.x = floatBitsToInt(intBitsToFloat(R1i.x) + intBitsToFloat(PV0i.w));
R12i.y = floatBitsToInt(intBitsToFloat(R1i.y) + intBitsToFloat(PV0i.y));
R14i.z = floatBitsToInt(max(intBitsToFloat(PS0i), -(intBitsToFloat(PS0i))));
R11i.w = floatBitsToInt(intBitsToFloat(R1i.x) + intBitsToFloat(PV0i.x));
R11i.y = floatBitsToInt(intBitsToFloat(R1i.y) + intBitsToFloat(PV0i.z));
PS1i = R11i.y;
R11i.xy = floatBitsToInt(texture(textureUnitPS8, vec3(intBitsToFloat(R11i.w),intBitsToFloat(R11i.y),intBitsToFloat(R11i.z))).xy);
R9i.xy = floatBitsToInt(texture(textureUnitPS8, vec3(intBitsToFloat(R12i.x),intBitsToFloat(R12i.y),intBitsToFloat(R12i.w))).xy);
R11i.w = floatBitsToInt(texture(textureUnitPS0, intBitsToFloat(R14i.xy)).x);
R6i.xy = floatBitsToInt(texture(textureUnitPS10, vec3(intBitsToFloat(R6i.w),intBitsToFloat(R6i.y),intBitsToFloat(R6i.z))).xy);
R16i.x = floatBitsToInt(texture(textureUnitPS3, intBitsToFloat(R14i.xy)).y);
// 0
R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R11i.w),intBitsToFloat(uf_remappedPS[4].x)) + intBitsToFloat(uf_remappedPS[5].x)));
PV0i.x = R123i.x;
PV0i.y = floatBitsToInt(-(intBitsToFloat(R9i.y)) + intBitsToFloat(R11i.y));
R127i.z = floatBitsToInt(intBitsToFloat(R8i.z) + intBitsToFloat(uf_remappedPS[5].x));
PV0i.w = floatBitsToInt(-(intBitsToFloat(R9i.x)) + intBitsToFloat(R11i.x));
R11i.x = floatBitsToInt(intBitsToFloat(R0i.z) + intBitsToFloat(R9i.w));
PS0i = R11i.x;
// 1
backupReg0i = R0i.y;
R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.w),intBitsToFloat(R14i.z)) + intBitsToFloat(R9i.x)));
PV1i.x = R123i.x;
PV1i.y = floatBitsToInt(-(intBitsToFloat(R8i.z)) + -(intBitsToFloat(PV0i.x)));
PV1i.y = floatBitsToInt(intBitsToFloat(PV1i.y) / 2.0);
R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.y),intBitsToFloat(R14i.z)) + intBitsToFloat(R9i.y)));
PV1i.z = R123i.z;
R11i.w = floatBitsToInt(intBitsToFloat(R0i.w) + intBitsToFloat(backupReg0i));
R11i.z = R12i.w;
PS1i = R11i.z;
// 2
backupReg0i = R0i.x;
PV0i.x = floatBitsToInt(max(-(intBitsToFloat(PV1i.y)), 0.0));
R16i.y = floatBitsToInt((intBitsToFloat(PV1i.z) * intBitsToFloat(0x40008102) + intBitsToFloat(0xbf810204)));
PV0i.y = R16i.y;
R13i.z = R12i.w;
R6i.w = floatBitsToInt((intBitsToFloat(PV1i.x) * intBitsToFloat(0x40008102) + intBitsToFloat(0xbf810204)));
PV0i.w = R6i.w;
R13i.x = floatBitsToInt(intBitsToFloat(R0i.z) + intBitsToFloat(backupReg0i));
PS0i = R13i.x;
// 3
PV1i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R12i.z), intBitsToFloat(PV0i.w)));
R127i.y = floatBitsToInt(min(intBitsToFloat(PV0i.x), 1.0));
PV1i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R12i.z), intBitsToFloat(PV0i.y)));
R13i.w = floatBitsToInt(intBitsToFloat(R0i.w) + intBitsToFloat(R9i.z));
R11i.y = floatBitsToInt(mul_nonIEEE(-(intBitsToFloat(R127i.z)), intBitsToFloat(uf_remappedPS[6].x)));
PS1i = R11i.y;
// 4
R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(uf_remappedPS[7].y),intBitsToFloat(PV1i.z)) + intBitsToFloat(R14i.y)));
PV0i.x = R123i.x;
R126i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R6i.y),intBitsToFloat(uf_remappedPS[8].y)) + intBitsToFloat(R1i.w)));
PV0i.y = R126i.y;
R127i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R6i.x),intBitsToFloat(uf_remappedPS[8].x)) + intBitsToFloat(R1i.z)));
PV0i.z = R127i.z;
R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(uf_remappedPS[7].x),intBitsToFloat(PV1i.x)) + intBitsToFloat(R14i.x)));
PV0i.w = R123i.w;
R4i.z = R12i.w;
PS0i = R4i.z;
// 5
backupReg0i = R0i.y;
PV1i.x = floatBitsToInt(-(intBitsToFloat(R14i.y)) + intBitsToFloat(PV0i.x));
PV1i.y = floatBitsToInt(-(intBitsToFloat(R14i.x)) + intBitsToFloat(PV0i.w));
R0i.z = R12i.w;
R0i.w = floatBitsToInt(intBitsToFloat(R9i.w) + intBitsToFloat(PV0i.z));
R0i.y = floatBitsToInt(intBitsToFloat(backupReg0i) + intBitsToFloat(PV0i.y));
PS1i = R0i.y;
// 6
backupReg0i = R9i.z;
R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.x),intBitsToFloat(R127i.y)) + intBitsToFloat(R14i.y)));
PV0i.x = R123i.x;
R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.y),intBitsToFloat(R127i.y)) + intBitsToFloat(R14i.x)));
PV0i.y = R123i.y;
R9i.z = R12i.w;
R9i.w = floatBitsToInt(intBitsToFloat(R0i.x) + intBitsToFloat(R127i.z));
R9i.y = floatBitsToInt(intBitsToFloat(backupReg0i) + intBitsToFloat(R126i.y));
PS0i = R9i.y;
// 7
R0i.x = floatBitsToInt(-(intBitsToFloat(R14i.y)) + intBitsToFloat(PV0i.x));
PV1i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[9].x)*resXScale, intBitsToFloat(PV0i.y)));
PV1i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[9].y)*resYScale, intBitsToFloat(PV0i.x)));
R12i.w = floatBitsToInt(-(intBitsToFloat(R14i.x)) + intBitsToFloat(PV0i.y));
R12i.x = uf_remappedPS[10].x;
PS1i = R12i.x;
// 8
PV0i.x = floatBitsToInt(floor(intBitsToFloat(PV1i.y)));
PV0i.y = floatBitsToInt(floor(intBitsToFloat(PV1i.z)));
R1i.z = uf_remappedPS[10].y;
R1i.w = uf_remappedPS[10].z;
R2i.w = 0x3f800000;
PS0i = R2i.w;
// 9
PV1i.x = floatBitsToInt(intBitsToFloat(PV0i.y) + 0.5);
R12i.y = 0x3f800000;
R16i.z = R2i.x;
PV1i.w = floatBitsToInt(intBitsToFloat(PV0i.x) + 0.5);
R18i.z = R10i.x;
PS1i = R18i.z;
// 10
backupReg0i = R2i.y;
R2i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[9].z)/resXScale, intBitsToFloat(PV1i.w)));
R2i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[9].w)/resYScale, intBitsToFloat(PV1i.x)));
R17i.z = R2i.z;
R5i.w = backupReg0i;
R8i.w = R10i.y;
PS0i = R8i.w;
R2i.z = floatBitsToInt(texture(textureUnitPS0, intBitsToFloat(R2i.xy)).x);
R2i.xy = floatBitsToInt(texture(textureUnitPS7, vec3(intBitsToFloat(R11i.x),intBitsToFloat(R11i.w),intBitsToFloat(R11i.z))).xy);
R13i.xy = floatBitsToInt(texture(textureUnitPS7, vec3(intBitsToFloat(R13i.x),intBitsToFloat(R13i.w),intBitsToFloat(R13i.z))).xy);
R4i.xy = floatBitsToInt(texture(textureUnitPS11, vec3(intBitsToFloat(R4i.x),intBitsToFloat(R4i.y),intBitsToFloat(R4i.z))).xy);
R6i.xyz = floatBitsToInt(texture(textureUnitPS9, vec3(intBitsToFloat(R0i.w),intBitsToFloat(R0i.y),intBitsToFloat(R0i.z))).xyz);
R9i.xyz = floatBitsToInt(texture(textureUnitPS9, vec3(intBitsToFloat(R9i.w),intBitsToFloat(R9i.y),intBitsToFloat(R9i.z))).xyz);
// 0
backupReg0i = R11i.y;
PV0i.x = floatBitsToInt(-(intBitsToFloat(R2i.x)) + intBitsToFloat(R13i.x));
R11i.y = R10i.z;
PV0i.z = floatBitsToInt(-(intBitsToFloat(R2i.y)) + intBitsToFloat(R13i.y));
PV0i.w = ((intBitsToFloat(backupReg0i) > intBitsToFloat(R2i.z))?int(0xFFFFFFFF):int(0x0));
R9i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R12i.z),intBitsToFloat(uf_remappedPS[11].x)) + intBitsToFloat(uf_remappedPS[12].x)));
R9i.w = clampFI32(R9i.w);
PS0i = R9i.w;
// 1
R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.x),intBitsToFloat(R14i.z)) + intBitsToFloat(R2i.x)));
PV1i.x = R123i.x;
R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.z),intBitsToFloat(R14i.z)) + intBitsToFloat(R2i.y)));
PV1i.y = R123i.y;
R0i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R12i.z),intBitsToFloat(uf_remappedPS[11].x)) + intBitsToFloat(uf_remappedPS[12].y)));
R0i.z = clampFI32(R0i.z);
R123i.w = ((PV0i.w == 0)?(0x3f800000):(0));
PV1i.w = R123i.w;
R2i.x = floatBitsToInt((intBitsToFloat(R4i.x) * intBitsToFloat(0x40008102) + intBitsToFloat(0xbf810204)));
PS1i = R2i.x;
// 2
R15i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R12i.w),intBitsToFloat(PV1i.w)) + intBitsToFloat(R14i.x)));
R15i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R0i.x),intBitsToFloat(PV1i.w)) + intBitsToFloat(R14i.y)));
R2i.z = floatBitsToInt((intBitsToFloat(PV1i.x) * intBitsToFloat(0x40008102) + intBitsToFloat(0xbf810204)));
PV0i.z = R2i.z;
R12i.w = floatBitsToInt((intBitsToFloat(PV1i.y) * intBitsToFloat(0x40008102) + intBitsToFloat(0xbf810204)));
R4i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R12i.z),intBitsToFloat(uf_remappedPS[11].x)) + intBitsToFloat(uf_remappedPS[12].z)));
R4i.z = clampFI32(R4i.z);
PS0i = R4i.z;
// 3
tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R8i.x),intBitsToFloat(R8i.y),intBitsToFloat(R8i.z),-0.0),vec4(intBitsToFloat(R8i.x),intBitsToFloat(R8i.y),intBitsToFloat(R8i.z),0.0)));
PV1i.x = tempi.x;
PV1i.y = tempi.x;
PV1i.z = tempi.x;
PV1i.w = tempi.x;
R12i.z = tempi.x;
R2i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.z), intBitsToFloat(PV0i.z)));
PS1i = R2i.y;
R14i.y = floatBitsToInt(texture(textureUnitPS0, intBitsToFloat(R15i.xy)).x);
R15i.xyz = floatBitsToInt(texture(textureUnitPS2, vec3(intBitsToFloat(R15i.x),intBitsToFloat(R15i.y),intBitsToFloat(R15i.z))).xyz);
// 0
R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R12i.w),intBitsToFloat(R12i.w)) + intBitsToFloat(R2i.y)));
R123i.x = clampFI32(R123i.x);
PV0i.x = R123i.x;
R126i.y = floatBitsToInt(intBitsToFloat(R6i.w) + intBitsToFloat(R2i.z));
R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(uf_remappedPS[4].x),intBitsToFloat(R14i.y)) + intBitsToFloat(uf_remappedPS[5].x)));
PV0i.z = R123i.z;
R126i.w = floatBitsToInt(intBitsToFloat(R16i.y) + intBitsToFloat(R12i.w));
PS0i = floatBitsToInt(sqrt(intBitsToFloat(R12i.z)));
// 1
R127i.x = floatBitsToInt(-(intBitsToFloat(R8i.z)) + -(intBitsToFloat(PV0i.z)));
R125i.y = floatBitsToInt((intBitsToFloat(R4i.y) * intBitsToFloat(0x40008102) + intBitsToFloat(0xbf810204)));
PV1i.z = floatBitsToInt(-(intBitsToFloat(R6i.x)) + intBitsToFloat(R9i.x));
PV1i.w = floatBitsToInt(-(intBitsToFloat(PV0i.x)) + 1.0);
PS1i = floatBitsToInt(1.0 / intBitsToFloat(PS0i));
// 2
PV0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R8i.x), intBitsToFloat(PS1i)));
PV0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R8i.y), intBitsToFloat(PS1i)));
PV0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R8i.z), intBitsToFloat(PS1i)));
R125i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.z),intBitsToFloat(R14i.z)) + intBitsToFloat(R6i.x)));
R127i.z = floatBitsToInt(sqrt(intBitsToFloat(PV1i.w)));
PS0i = R127i.z;
// 3
tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R12i.x),intBitsToFloat(R1i.z),intBitsToFloat(R1i.w),intBitsToFloat(R12i.y)),vec4(intBitsToFloat(PV0i.x),intBitsToFloat(PV0i.y),intBitsToFloat(PV0i.z),intBitsToFloat(R2i.w))));
tempi.x = clampFI32(tempi.x);
PV1i.x = tempi.x;
PV1i.y = tempi.x;
PV1i.z = tempi.x;
PV1i.w = tempi.x;
R126i.x = uf_remappedPS[13].w;
PS1i = R126i.x;
// 4
R125i.x = uf_remappedPS[14].w;
PV0i.y = floatBitsToInt(-(intBitsToFloat(R6i.y)) + intBitsToFloat(R9i.y));
PV0i.z = floatBitsToInt(-(intBitsToFloat(R6i.z)) + intBitsToFloat(R9i.z));
R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(uf_remappedPS[15].z),-(intBitsToFloat(PV1i.x))) + intBitsToFloat(uf_remappedPS[15].z)));
PV0i.w = R123i.w;
R124i.w = floatBitsToInt(-(intBitsToFloat(R7i.w)) + intBitsToFloat(R10i.w));
PS0i = R124i.w;
// 5
backupReg0i = R127i.x;
backupReg0i = R127i.x;
R127i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.y),intBitsToFloat(R14i.z)) + intBitsToFloat(R6i.y)));
R123i.y = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(backupReg0i)),intBitsToFloat(PV0i.w)) + -(intBitsToFloat(backupReg0i))));
PV1i.y = R123i.y;
R125i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.z),intBitsToFloat(R14i.z)) + intBitsToFloat(R6i.z)));
PV1i.w = floatBitsToInt(intBitsToFloat(R16i.x) * intBitsToFloat(0x437f0000));
R10i.w = floatBitsToInt(intBitsToFloat(uf_remappedPS[16].z) * intBitsToFloat(0x437f0000));
PS1i = R10i.w;
// 6
backupReg0i = R126i.x;
R126i.x = floatBitsToInt(intBitsToFloat(R5i.w) + intBitsToFloat(PV1i.y));
R127i.y = floatBitsToInt(intBitsToFloat(backupReg0i) + intBitsToFloat(PV1i.y));
PV0i.z = floatBitsToInt(intBitsToFloat(R16i.z) + intBitsToFloat(PV1i.y));
R127i.w = floatBitsToInt(intBitsToFloat(R17i.z) + intBitsToFloat(PV1i.y));
R124i.y = int(uint(intBitsToFloat(PV1i.w)));
PS0i = R124i.y;
// 7
tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R126i.y),intBitsToFloat(R126i.w),intBitsToFloat(R127i.z),-0.0),vec4(intBitsToFloat(R126i.y),intBitsToFloat(R126i.w),intBitsToFloat(R127i.z),0.0)));
PV1i.x = tempi.x;
PV1i.y = tempi.x;
PV1i.z = tempi.x;
PV1i.w = tempi.x;
R126i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R18i.z), intBitsToFloat(PV0i.z)));
R126i.z = clampFI32(R126i.z);
PS1i = R126i.z;
// 8
backupReg0i = R126i.x;
backupReg1i = R11i.y;
R126i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R8i.w), intBitsToFloat(backupReg0i)));
R126i.x = clampFI32(R126i.x);
R11i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R125i.x), intBitsToFloat(R127i.y)));
R11i.y = clampFI32(R11i.y);
PV0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[17].z), intBitsToFloat(PS1i)));
PV0i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg1i), intBitsToFloat(R127i.w)));
PV0i.w = clampFI32(PV0i.w);
tempResultf = 1.0 / sqrt(intBitsToFloat(PV1i.x));
PS0i = floatBitsToInt(tempResultf);
// 9
PV1i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.z), intBitsToFloat(PS0i)));
R123i.y = floatBitsToInt((intBitsToFloat(R19i.z) * intBitsToFloat(0x41200000) + intBitsToFloat(PV0i.z)));
PV1i.y = R123i.y;
PV1i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.w), intBitsToFloat(PS0i)));
PV1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.y), intBitsToFloat(PS0i)));
R126i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R3i.w),-(intBitsToFloat(PV0i.w))) + intBitsToFloat(R3i.w)));
PS1i = R126i.y;
// 10
backupReg0i = R0i.z;
PV0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R5i.x), intBitsToFloat(PV1i.y)));
PV0i.x = clampFI32(PV0i.x);
PV0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R9i.w), intBitsToFloat(PV1i.w)));
PV0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R4i.z), intBitsToFloat(PV1i.x)));
PV0i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), intBitsToFloat(PV1i.z)));
PS0i = floatBitsToInt(-(intBitsToFloat(R126i.x)) + 1.0);
// 11
backupReg0i = R126i.y;
R126i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(uf_remappedPS[18].x),intBitsToFloat(R2i.x)) + intBitsToFloat(PV0i.y)));
PV1i.x = R126i.x;
R126i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(uf_remappedPS[18].x),intBitsToFloat(R125i.y)) + intBitsToFloat(PV0i.w)));
PV1i.y = R126i.y;
R127i.z = PV0i.z;
PV1i.z = R127i.z;
R127i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R5i.y),intBitsToFloat(PV0i.x)) + intBitsToFloat(backupReg0i)));
R127i.w = clampFI32(R127i.w);
R126i.w = floatBitsToInt(intBitsToFloat(PV0i.x) + intBitsToFloat(PS0i));
PS1i = R126i.w;
// 12
tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(PV1i.x),intBitsToFloat(PV1i.y),intBitsToFloat(PV1i.z),-0.0),vec4(intBitsToFloat(PV1i.x),intBitsToFloat(PV1i.y),intBitsToFloat(PV1i.z),0.0)));
PV0i.x = tempi.x;
PV0i.y = tempi.x;
PV0i.z = tempi.x;
PV0i.w = tempi.x;
tempResultf = log2(intBitsToFloat(R126i.z));
if( isinf(tempResultf) == true ) tempResultf = -3.40282347E+38F;
PS0i = floatBitsToInt(tempResultf);
// 13
backupReg0i = R125i.z;
backupReg1i = R127i.w;
PV1i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[15].w), intBitsToFloat(PS0i)));
R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R125i.w),intBitsToFloat(R126i.w)) + intBitsToFloat(R127i.w)));
R123i.y = clampFI32(R123i.y);
PV1i.y = R123i.y;
R125i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.x),intBitsToFloat(R126i.w)) + intBitsToFloat(R127i.w)));
R125i.z = clampFI32(R125i.z);
R127i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(backupReg0i),intBitsToFloat(R126i.w)) + intBitsToFloat(backupReg1i)));
R127i.w = clampFI32(R127i.w);
tempResultf = 1.0 / sqrt(intBitsToFloat(PV0i.x));
R126i.z = floatBitsToInt(tempResultf);
PS1i = R126i.z;
// 14
backupReg0i = R126i.x;
R126i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), intBitsToFloat(PS1i)));
PV0i.x = R126i.x;
R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R124i.w),intBitsToFloat(PV1i.y)) + intBitsToFloat(R7i.w)));
PV0i.y = R123i.y;
R0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R5i.z), intBitsToFloat(PV1i.y)));
R124i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.y), intBitsToFloat(PS1i)));
R125i.w = floatBitsToInt(exp2(intBitsToFloat(PV1i.x)));
R125i.w = clampFI32(R125i.w);
PS0i = R125i.w;
// 15
R125i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R7i.z), intBitsToFloat(PS0i)));
R126i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R7i.x), intBitsToFloat(PS0i)));
PV1i.y = R126i.y;
R7i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R7i.y), intBitsToFloat(PS0i)));
PV1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[19].y), intBitsToFloat(PV0i.x)));
R124i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R11i.y), intBitsToFloat(PV0i.y)));
R124i.z = clampFI32(R124i.z);
PS1i = R124i.z;
// 16
R127i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R5i.z), intBitsToFloat(R125i.z)));
R125i.y = floatBitsToInt(intBitsToFloat(R124i.w) + intBitsToFloat(PV1i.w));
R125i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R5i.z), intBitsToFloat(R127i.w)));
R127i.w = floatBitsToInt(intBitsToFloat(R3i.x) + -(intBitsToFloat(PV1i.y)));
PS0i = int(uint(intBitsToFloat(R10i.w)));
// 17
PV1i.x = R124i.y | PS0i;
R124i.y = floatBitsToInt(intBitsToFloat(R3i.z) + -(intBitsToFloat(R125i.x)));
R3i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[19].x), intBitsToFloat(R126i.x)));
R124i.w = floatBitsToInt(intBitsToFloat(R3i.y) + -(intBitsToFloat(R7i.z)));
R126i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[19].z), intBitsToFloat(R126i.x)));
PS1i = R126i.w;
// 18
R126i.x = floatBitsToInt(intBitsToFloat(R124i.z) * intBitsToFloat(0x427f0000));
R127i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.z), intBitsToFloat(R126i.z)));
PV0i.y = R127i.y;
R5i.z = 0x3db0b0b1;
R5i.w = 0x3f800000;
R127i.z = floatBitsToInt(float(uint(PV1i.x)));
PS0i = R127i.z;
// 19
backupReg0i = R126i.y;
R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R124i.w),intBitsToFloat(R127i.x)) + intBitsToFloat(R7i.z)));
PV1i.x = R123i.x;
R126i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(uf_remappedPS[10].y),intBitsToFloat(PV0i.y)) + intBitsToFloat(R125i.y))/2.0);
R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.w),intBitsToFloat(R0i.z)) + intBitsToFloat(backupReg0i)));
PV1i.z = R123i.z;
R127i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R124i.y),intBitsToFloat(R125i.z)) + intBitsToFloat(R125i.x)));
R125i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(uf_remappedPS[10].z),intBitsToFloat(PV0i.y)) + intBitsToFloat(R126i.w))/2.0);
PS1i = R125i.y;
// 20
backupReg0i = R126i.x;
R126i.x = floatBitsToInt(floor(intBitsToFloat(backupReg0i)));
R126i.x = floatBitsToInt(intBitsToFloat(R126i.x) * 4.0);
R0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R11i.y), intBitsToFloat(PV1i.x)));
R125i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(uf_remappedPS[10].x),intBitsToFloat(R127i.y)) + intBitsToFloat(R3i.z))/2.0);
R3i.w = 0x3f800000;
R0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R11i.y), intBitsToFloat(PV1i.z)));
PS0i = R0i.x;
// 21
R3i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R15i.x),-(intBitsToFloat(R125i.w))) + intBitsToFloat(R15i.x)));
R3i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R15i.y),-(intBitsToFloat(R125i.w))) + intBitsToFloat(R15i.y)));
R0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R11i.y), intBitsToFloat(R127i.w)));
R0i.w = 0x3b808081;
R3i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R15i.z),-(intBitsToFloat(R125i.w))) + intBitsToFloat(R15i.z)));
PS1i = R3i.z;
// 22
R11i.x = floatBitsToInt(intBitsToFloat(R125i.z) + 0.5);
R5i.y = floatBitsToInt(intBitsToFloat(R127i.z) * intBitsToFloat(0x3b808081));
R11i.z = floatBitsToInt(intBitsToFloat(R125i.y) + 0.5);
R11i.w = floatBitsToInt(intBitsToFloat(R126i.x) * intBitsToFloat(0x3b808081));
R11i.y = floatBitsToInt(intBitsToFloat(R126i.y) + 0.5);
PS0i = R11i.y;
// 0
R4i.xyz = ivec3(R3i.x,R3i.y,R3i.z);
R4i.w = R3i.w;
// 1
R3i.xyz = ivec3(R11i.x,R11i.y,R11i.z);
R3i.w = R11i.w;
// 2
R2i.xyz = ivec3(R0i.x,R0i.y,R0i.z);
R2i.w = R0i.w;
// 3
R1i.xyz = ivec3(R5i.z,R5i.y,R5i.z);
R1i.w = R5i.w;
// export
passPixelColor0 = vec4(intBitsToFloat(R1i.x), intBitsToFloat(R1i.y), intBitsToFloat(R1i.z), intBitsToFloat(R1i.w));
passPixelColor1 = vec4(intBitsToFloat(R2i.x), intBitsToFloat(R2i.y), intBitsToFloat(R2i.z), intBitsToFloat(R2i.w));
passPixelColor3 = vec4(intBitsToFloat(R3i.x), intBitsToFloat(R3i.y), intBitsToFloat(R3i.z), intBitsToFloat(R3i.w));
passPixelColor5 = vec4(intBitsToFloat(R4i.x), intBitsToFloat(R4i.y), intBitsToFloat(R4i.z), intBitsToFloat(R4i.w));
}