mirror of
https://github.com/cemu-project/cemu_graphic_packs.git
synced 2024-11-22 01:29:18 +01:00
Replace with 1.14.0 repository
Also new website! We've got the version2 branch if people want to search in those files.
This commit is contained in:
parent
939a478799
commit
8433e2253c
2
.gitattributes
vendored
2
.gitattributes
vendored
@ -1 +1 @@
|
|||||||
*.txt text eol=crlf
|
* text eol=crlf
|
13
.gitignore
vendored
13
.gitignore
vendored
@ -1,3 +1,10 @@
|
|||||||
Enthusiast
|
|
||||||
Performance
|
Build/
|
||||||
Quality
|
|
||||||
|
docs/node_modules/
|
||||||
|
|
||||||
|
docs/\.idea/
|
||||||
|
|
||||||
|
docs/package-lock\.json
|
||||||
|
|
||||||
|
docs/Gemfile\.lock
|
||||||
|
70
.travis.yml
70
.travis.yml
@ -1,66 +1,30 @@
|
|||||||
# Aim to have fast builds
|
dist: trusty
|
||||||
# TODO: Maybe don't build the files into seperate folders and copy them after that anyway.
|
sudo: false
|
||||||
|
language: node_js
|
||||||
language: php
|
node_js:
|
||||||
|
- "node"
|
||||||
php:
|
|
||||||
- 7.0
|
|
||||||
|
|
||||||
git:
|
git:
|
||||||
depth: 1
|
depth: 1
|
||||||
submodules: false
|
|
||||||
|
|
||||||
if: branch IS master
|
env:
|
||||||
|
global:
|
||||||
|
secure: JkXrZEYH1PvXUpI02PYZC9csCtHDS9C41vMMWZZ4gIlkugFQGwVqB2aOjCbiCZzo5PiBXqz9p+xcRHk97SnzCLBINovw3GgWw1YUApYNXDARAOvZVrWMUQhqiouezexPUfL0dxJW5T1it6zN+weAiDsdfgJB8Q++TOQbn2mbcVfRNoR/HCO0v/5P0rtmtqPLbvtLj76eesVVr5rmC8SRDv7x/kCj4fHFYlS7tQGE6nV8XHo0FLr9cPafuqPjsIXR/QnJR+XYMsQfi8LymBEfv92Fq47J+nS9+iGG3M+T+n3GQ8lAjx6gGeiNnfVXQB8rMNItBuFsNfu+iiyurw4uMFaP66+GgamosyuPM+Tw7p4zc/WP316enAYZ/aAbQsbV3BBZXfBy94iU/xNAq4T82QTNq2I3zS84MJnjQtNPBxmADEJ/EZN6SE+rDRq4KxsTCis+hWqiioaeF6rhF8z7Mbg3P6Hn/FesqyBSlRAHmq+bOJx5m2m7lww1DRTPeOH6vKut3yU6uSd+9let4K14AGgV4S0VdKRoTmZHLFUK+L6HkjERKDpeAWq1j4sKpBLPRXxKRmVFb9B9LJVGzAZQ4ad0gNLHP9SKHBF9DxwKESRNzY37FkRSj/rO8tASm4BZRiTVS/WUhTPig7C92+VuVedfTe7UHAX+2wow61qJlHQ=
|
||||||
|
|
||||||
if: tag IS blank
|
if: tag IS blank
|
||||||
|
|
||||||
branches:
|
|
||||||
only:
|
|
||||||
master
|
|
||||||
|
|
||||||
# Simultaneous builds for common and uncommon resolutions
|
|
||||||
env:
|
|
||||||
matrix:
|
|
||||||
- buildType=Common
|
|
||||||
- buildType=Uncommon
|
|
||||||
global:
|
|
||||||
- secure: "X0PrKXLjW6r8e0zT7+SshhP7uaW/5EW2BJPCc/oRIWX6eC4QLXv0lQBstIZ6vChAvgYv2K1CcBlWHrQarTlHqmkYnfHAfOFK//qURFUfuyTkKcKU/aCYvm4op0jPGw8+wbOkxwfnbvOaa0E7oBv4GCXVPYCU3nm7E1H2XHgcfJukaEhpvFfHaNohoh1ygVt65G1WIoYwUIFh/0XXgP6RVBDCAU+QYaNopK5co2O40vhjtg2f0la4zMsunMEY5oXNMaM/oRAvGBaXJ3KUTgSb0+uRlEM/XxOYRyfmG6fjVXYbwL6j+kNCLsZklCfN98AAvbysCebQWhI46vJcPa/Ji/ImMeAns17fBlHMn+PI0MIBbPkMztEkenXW3Yv1BquBHElhB758Fd1Zt9KdA5H5JC6WfuRBd+QBwlzOBxOrVfmaI3uOmy3cEvQZgckPGN+7SdSDyrw/+ukM+Ks775qaZ/bw3eQyMx6DpfATa6pVzK0AWj4Xlm4IufaOFI/hy2gH60hV+3KuYXeSJOq4gXYbtJcruAbHK5YOeEmAEsVCpz+RKSuAWWvcPktoyLTOjbGTM89Yf3jFgZOFi4HNCt7K67/bDnflsHj04X/pDm3gQ0XhxQx1Sj1j0IG1XLh+k37uL2FZusBbd+8kI1SkMED5aVWTp1WmbJN+dJXZMWJxJPc=" # GITHUB_TOKEN
|
|
||||||
|
|
||||||
matrix:
|
|
||||||
fast_finish: true
|
|
||||||
|
|
||||||
# === Build steps ===
|
|
||||||
|
|
||||||
# No dependencies
|
|
||||||
install: npm install -g github-release-cli@0.4.1
|
install: npm install -g github-release-cli@0.4.1
|
||||||
|
|
||||||
# No need to debug the PHP code. Keeping this enabled slows down execution.
|
script:
|
||||||
before_script:
|
- cd Enhancements && zip -r -q -9 "../graphicPacks$TRAVIS_BUILD_NUMBER"".zip" ./* && cd ..
|
||||||
- phpenv config-rm xdebug.ini
|
- cd Source && zip -r -q -9 "../graphicPacks$TRAVIS_BUILD_NUMBER"".zip" ./* && cd ..
|
||||||
|
- cd Modifications && zip -r -q -9 "../graphicPacks$TRAVIS_BUILD_NUMBER"".zip" ./* && cd ..
|
||||||
script: ./build.sh
|
- cd Workarounds && zip -r -q -9 "../graphicPacks$TRAVIS_BUILD_NUMBER"".zip" ./* && cd ..
|
||||||
|
|
||||||
after_success:
|
|
||||||
# Create zip file
|
|
||||||
- mkdir build
|
|
||||||
- mv $TRAVIS_BUILD_DIR/Enhancement/* build
|
|
||||||
- mv $TRAVIS_BUILD_DIR/Enthusiast/* build
|
|
||||||
- mv $TRAVIS_BUILD_DIR/Modifications/* build
|
|
||||||
- mv $TRAVIS_BUILD_DIR/Performance/* build
|
|
||||||
- mv $TRAVIS_BUILD_DIR/Quality/* build
|
|
||||||
- mv $TRAVIS_BUILD_DIR/Workaround/* build
|
|
||||||
- cd build
|
|
||||||
- $([ "$buildType" = "Common" ] && echo zip -o -9 -r -q "../graphicPacksCommon_$TRAVIS_BUILD_NUMBER"".zip" ./* || echo zip -o -9 -r -q "../graphicPacks$TRAVIS_BUILD_NUMBER""_Uncommon.zip" ./*)
|
|
||||||
- cd ..
|
|
||||||
# Create github release
|
|
||||||
# The odd naming of the releases will create a more compatible order. It's intended.
|
|
||||||
- |
|
- |
|
||||||
github-release upload \
|
github-release upload \
|
||||||
--owner=slashiee \
|
--owner=slashiee \
|
||||||
--repo=cemu_graphic_packs \
|
--repo=gfx_pack \
|
||||||
--tag="Travis$TRAVIS_BUILD_NUMBER" \
|
--tag="Travis$TRAVIS_BUILD_NUMBER" \
|
||||||
--name="Graphic Packs: version $TRAVIS_BUILD_NUMBER" \
|
--name="Graphic Packs: version $TRAVIS_BUILD_NUMBER" \
|
||||||
--body="$(git log -1 --format='Commited at %ci by **%cn** in commit %h%n### %s%n```%n%b%n```%n') $(if [ '$buildType' = 'Common' ]; then echo 'This is a prerelease with only the common resolutions.'; fi)" \
|
--body="$(git log -1 --format='Commited at %ci by **%cn** in commit %h%n### %s%n```%n%b%n```%n')" \
|
||||||
$([ "$buildType" = "Common" ] && echo "--prerelease=true" || echo "--prerelease=false") \
|
"graphicPacks$TRAVIS_BUILD_NUMBER"".zip"
|
||||||
$([ "$buildType" = "Common" ] && echo "graphicPacksCommon_$TRAVIS_BUILD_NUMBER"".zip" || echo "graphicPacks$TRAVIS_BUILD_NUMBER""_Uncommon.zip")
|
|
||||||
# Request a new Github Pages build when all the releases are present so that the links will be updated. Need to use a seperate file due to weird yaml parsing.
|
|
||||||
- sh requestGithubPages.sh
|
|
||||||
|
@ -1,12 +0,0 @@
|
|||||||
#version 420
|
|
||||||
#extension GL_ARB_texture_gather : enable
|
|
||||||
// shader 0f2b9ee517917425 // Inventory AA removal
|
|
||||||
|
|
||||||
layout(binding = 0) uniform sampler2D textureUnitPS0;
|
|
||||||
layout(location = 0) in vec4 passParameterSem2;
|
|
||||||
layout(location = 0) out vec4 passPixelColor0;
|
|
||||||
|
|
||||||
void main()
|
|
||||||
{
|
|
||||||
passPixelColor0 = texture(textureUnitPS0, passParameterSem2.xy);
|
|
||||||
}
|
|
@ -1,11 +0,0 @@
|
|||||||
#version 420
|
|
||||||
#extension GL_ARB_texture_gather : enable
|
|
||||||
// shader f14bb57cd5c9cb77
|
|
||||||
|
|
||||||
layout(binding = 0) uniform sampler2D textureUnitPS0;
|
|
||||||
layout(location = 0) in vec4 passParameterSem2;
|
|
||||||
layout(location = 0) out vec4 passPixelColor0;
|
|
||||||
void main()
|
|
||||||
{
|
|
||||||
passPixelColor0 = texture(textureUnitPS0, passParameterSem2.xy);
|
|
||||||
}
|
|
@ -1,4 +0,0 @@
|
|||||||
[Definition]
|
|
||||||
titleIds = 00050000101C9300,00050000101C9400,00050000101C9500
|
|
||||||
name = "The Legend of Zelda: Breath of the Wild - No Anti-Aliasing"
|
|
||||||
version = 2
|
|
@ -1,350 +0,0 @@
|
|||||||
#version 420
|
|
||||||
#extension GL_ARB_texture_gather : enable
|
|
||||||
|
|
||||||
/*-----------------------------settings-------------------------------------*/
|
|
||||||
|
|
||||||
#define Subpix 1.00 //[0.000 to 1.000] Choose the amount of sub-pixel aliasing removal.
|
|
||||||
#define EdgeThreshold 0.125 //[0.000 to 1.000] Edge detection threshold. The minimum amount of local contrast required to apply algorithm.
|
|
||||||
#define EdgeThresholdMin 0.0625 //[0.000 to 1.000] Darkness threshold. Trims the algorithm from processing darks.
|
|
||||||
|
|
||||||
/*--------------------------------------------------------------------------*/
|
|
||||||
|
|
||||||
// shader 0f2b9ee517917425
|
|
||||||
// fxaa in inventory screen
|
|
||||||
// original shader dumped using cemu 1.10.0f, BotW 1.3.1
|
|
||||||
layout(binding = 0) uniform sampler2D textureUnitPS0;
|
|
||||||
layout(binding = 1) uniform sampler2D textureUnitPS1;
|
|
||||||
layout(location = 0) in vec4 passParameterSem2;
|
|
||||||
layout(location = 0) out vec4 passPixelColor0;
|
|
||||||
uniform vec2 uf_fragCoordScale;
|
|
||||||
|
|
||||||
#define FXAA_QUALITY__PS 12
|
|
||||||
#define FXAA_QUALITY__P0 1.0
|
|
||||||
#define FXAA_QUALITY__P1 1.0
|
|
||||||
#define FXAA_QUALITY__P2 1.0
|
|
||||||
#define FXAA_QUALITY__P3 1.0
|
|
||||||
#define FXAA_QUALITY__P4 1.0
|
|
||||||
#define FXAA_QUALITY__P5 1.5
|
|
||||||
#define FXAA_QUALITY__P6 2.0
|
|
||||||
#define FXAA_QUALITY__P7 2.0
|
|
||||||
#define FXAA_QUALITY__P8 2.0
|
|
||||||
#define FXAA_QUALITY__P9 2.0
|
|
||||||
#define FXAA_QUALITY__P10 4.0
|
|
||||||
#define FXAA_QUALITY__P11 8.0
|
|
||||||
|
|
||||||
#define FxaaBool bool
|
|
||||||
#define FxaaDiscard discard
|
|
||||||
#define FxaaFloat float
|
|
||||||
#define FxaaFloat2 vec2
|
|
||||||
#define FxaaFloat3 vec3
|
|
||||||
#define FxaaFloat4 vec4
|
|
||||||
#define FxaaHalf float
|
|
||||||
#define FxaaHalf2 vec2
|
|
||||||
#define FxaaHalf3 vec3
|
|
||||||
#define FxaaHalf4 vec4
|
|
||||||
#define FxaaInt2 ivec2
|
|
||||||
#define FxaaSat(x) clamp(x, 0.0, 1.0)
|
|
||||||
#define FxaaTex sampler2D
|
|
||||||
|
|
||||||
#define FxaaTexTop(t, p) textureLod(t, p, 0.0)
|
|
||||||
#define FxaaTexOff(t, p, o, r) textureLodOffset(t, p, 0.0, o)
|
|
||||||
|
|
||||||
#define FxaaTexAlpha4(t, p) textureGather(t, p, 3)
|
|
||||||
#define FxaaTexOffAlpha4(t, p, o) textureGatherOffset(t, p, o, 3)
|
|
||||||
#define FxaaTexGreen4(t, p) textureGather(t, p, 1)
|
|
||||||
#define FxaaTexOffGreen4(t, p, o) textureGatherOffset(t, p, o, 1)
|
|
||||||
|
|
||||||
FxaaFloat4 FxaaPixelShader(
|
|
||||||
FxaaFloat2 pos,
|
|
||||||
FxaaTex tex,
|
|
||||||
FxaaTex lum,
|
|
||||||
FxaaFloat2 fxaaQualityRcpFrame,
|
|
||||||
FxaaFloat fxaaQualitySubpix,
|
|
||||||
FxaaFloat fxaaQualityEdgeThreshold,
|
|
||||||
FxaaFloat fxaaQualityEdgeThresholdMin
|
|
||||||
) {
|
|
||||||
FxaaFloat2 posM;
|
|
||||||
posM.x = pos.x;
|
|
||||||
posM.y = pos.y;
|
|
||||||
FxaaFloat4 rgbyM = vec4(FxaaTexTop(tex, posM).xyz, FxaaTexTop(lum, posM).x);
|
|
||||||
#define lumaM rgbyM.w
|
|
||||||
FxaaFloat4 luma4A = textureGather(lum, posM);
|
|
||||||
FxaaFloat4 luma4B = textureGatherOffset(lum, posM, FxaaInt2(-1, -1));
|
|
||||||
#define lumaE luma4A.z
|
|
||||||
#define lumaS luma4A.x
|
|
||||||
#define lumaSE luma4A.y
|
|
||||||
#define lumaNW luma4B.w
|
|
||||||
#define lumaN luma4B.z
|
|
||||||
#define lumaW luma4B.x
|
|
||||||
FxaaFloat maxSM = max(lumaS, lumaM);
|
|
||||||
FxaaFloat minSM = min(lumaS, lumaM);
|
|
||||||
FxaaFloat maxESM = max(lumaE, maxSM);
|
|
||||||
FxaaFloat minESM = min(lumaE, minSM);
|
|
||||||
FxaaFloat maxWN = max(lumaN, lumaW);
|
|
||||||
FxaaFloat minWN = min(lumaN, lumaW);
|
|
||||||
FxaaFloat rangeMax = max(maxWN, maxESM);
|
|
||||||
FxaaFloat rangeMin = min(minWN, minESM);
|
|
||||||
FxaaFloat rangeMaxScaled = rangeMax * fxaaQualityEdgeThreshold;
|
|
||||||
FxaaFloat range = rangeMax - rangeMin;
|
|
||||||
FxaaFloat rangeMaxClamped = max(fxaaQualityEdgeThresholdMin, rangeMaxScaled);
|
|
||||||
FxaaBool earlyExit = range < rangeMaxClamped;
|
|
||||||
if(earlyExit)
|
|
||||||
return rgbyM;
|
|
||||||
FxaaFloat lumaNE = FxaaTexOff(lum, posM, FxaaInt2(1, -1), fxaaQualityRcpFrame.xy).x;
|
|
||||||
FxaaFloat lumaSW = FxaaTexOff(lum, posM, FxaaInt2(-1, 1), fxaaQualityRcpFrame.xy).x;
|
|
||||||
FxaaFloat lumaNS = lumaN + lumaS;
|
|
||||||
FxaaFloat lumaWE = lumaW + lumaE;
|
|
||||||
FxaaFloat subpixRcpRange = 1.0/range;
|
|
||||||
FxaaFloat subpixNSWE = lumaNS + lumaWE;
|
|
||||||
FxaaFloat edgeHorz1 = (-2.0 * lumaM) + lumaNS;
|
|
||||||
FxaaFloat edgeVert1 = (-2.0 * lumaM) + lumaWE;
|
|
||||||
FxaaFloat lumaNESE = lumaNE + lumaSE;
|
|
||||||
FxaaFloat lumaNWNE = lumaNW + lumaNE;
|
|
||||||
FxaaFloat edgeHorz2 = (-2.0 * lumaE) + lumaNESE;
|
|
||||||
FxaaFloat edgeVert2 = (-2.0 * lumaN) + lumaNWNE;
|
|
||||||
FxaaFloat lumaNWSW = lumaNW + lumaSW;
|
|
||||||
FxaaFloat lumaSWSE = lumaSW + lumaSE;
|
|
||||||
FxaaFloat edgeHorz4 = (abs(edgeHorz1) * 2.0) + abs(edgeHorz2);
|
|
||||||
FxaaFloat edgeVert4 = (abs(edgeVert1) * 2.0) + abs(edgeVert2);
|
|
||||||
FxaaFloat edgeHorz3 = (-2.0 * lumaW) + lumaNWSW;
|
|
||||||
FxaaFloat edgeVert3 = (-2.0 * lumaS) + lumaSWSE;
|
|
||||||
FxaaFloat edgeHorz = abs(edgeHorz3) + edgeHorz4;
|
|
||||||
FxaaFloat edgeVert = abs(edgeVert3) + edgeVert4;
|
|
||||||
FxaaFloat subpixNWSWNESE = lumaNWSW + lumaNESE;
|
|
||||||
FxaaFloat lengthSign = fxaaQualityRcpFrame.x;
|
|
||||||
FxaaBool horzSpan = edgeHorz >= edgeVert;
|
|
||||||
FxaaFloat subpixA = subpixNSWE * 2.0 + subpixNWSWNESE;
|
|
||||||
if(!horzSpan) lumaN = lumaW;
|
|
||||||
if(!horzSpan) lumaS = lumaE;
|
|
||||||
if(horzSpan) lengthSign = fxaaQualityRcpFrame.y;
|
|
||||||
FxaaFloat subpixB = (subpixA * (1.0/12.0)) - lumaM;
|
|
||||||
FxaaFloat gradientN = lumaN - lumaM;
|
|
||||||
FxaaFloat gradientS = lumaS - lumaM;
|
|
||||||
FxaaFloat lumaNN = lumaN + lumaM;
|
|
||||||
FxaaFloat lumaSS = lumaS + lumaM;
|
|
||||||
FxaaBool pairN = abs(gradientN) >= abs(gradientS);
|
|
||||||
FxaaFloat gradient = max(abs(gradientN), abs(gradientS));
|
|
||||||
if(pairN) lengthSign = -lengthSign;
|
|
||||||
FxaaFloat subpixC = FxaaSat(abs(subpixB) * subpixRcpRange);
|
|
||||||
FxaaFloat2 posB;
|
|
||||||
posB.x = posM.x;
|
|
||||||
posB.y = posM.y;
|
|
||||||
FxaaFloat2 offNP;
|
|
||||||
offNP.x = (!horzSpan) ? 0.0 : fxaaQualityRcpFrame.x;
|
|
||||||
offNP.y = ( horzSpan) ? 0.0 : fxaaQualityRcpFrame.y;
|
|
||||||
if(!horzSpan) posB.x += lengthSign * 0.5;
|
|
||||||
if( horzSpan) posB.y += lengthSign * 0.5;
|
|
||||||
FxaaFloat2 posN;
|
|
||||||
posN.x = posB.x - offNP.x * FXAA_QUALITY__P0;
|
|
||||||
posN.y = posB.y - offNP.y * FXAA_QUALITY__P0;
|
|
||||||
FxaaFloat2 posP;
|
|
||||||
posP.x = posB.x + offNP.x * FXAA_QUALITY__P0;
|
|
||||||
posP.y = posB.y + offNP.y * FXAA_QUALITY__P0;
|
|
||||||
FxaaFloat subpixD = ((-2.0)*subpixC) + 3.0;
|
|
||||||
FxaaFloat lumaEndN = FxaaTexTop(lum, posN).x;
|
|
||||||
FxaaFloat subpixE = subpixC * subpixC;
|
|
||||||
FxaaFloat lumaEndP = FxaaTexTop(lum, posP).x;
|
|
||||||
if(!pairN) lumaNN = lumaSS;
|
|
||||||
FxaaFloat gradientScaled = gradient * 1.0/4.0;
|
|
||||||
FxaaFloat lumaMM = lumaM - lumaNN * 0.5;
|
|
||||||
FxaaFloat subpixF = subpixD * subpixE;
|
|
||||||
FxaaBool lumaMLTZero = lumaMM < 0.0;
|
|
||||||
lumaEndN -= lumaNN * 0.5;
|
|
||||||
lumaEndP -= lumaNN * 0.5;
|
|
||||||
FxaaBool doneN = abs(lumaEndN) >= gradientScaled;
|
|
||||||
FxaaBool doneP = abs(lumaEndP) >= gradientScaled;
|
|
||||||
if(!doneN) posN.x -= offNP.x * FXAA_QUALITY__P1;
|
|
||||||
if(!doneN) posN.y -= offNP.y * FXAA_QUALITY__P1;
|
|
||||||
FxaaBool doneNP = (!doneN) || (!doneP);
|
|
||||||
if(!doneP) posP.x += offNP.x * FXAA_QUALITY__P1;
|
|
||||||
if(!doneP) posP.y += offNP.y * FXAA_QUALITY__P1;
|
|
||||||
if(doneNP) {
|
|
||||||
if(!doneN) lumaEndN = FxaaTexTop(lum, posN.xy).x;
|
|
||||||
if(!doneP) lumaEndP = FxaaTexTop(lum, posP.xy).x;
|
|
||||||
if(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5;
|
|
||||||
if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5;
|
|
||||||
doneN = abs(lumaEndN) >= gradientScaled;
|
|
||||||
doneP = abs(lumaEndP) >= gradientScaled;
|
|
||||||
if(!doneN) posN.x -= offNP.x * FXAA_QUALITY__P2;
|
|
||||||
if(!doneN) posN.y -= offNP.y * FXAA_QUALITY__P2;
|
|
||||||
doneNP = (!doneN) || (!doneP);
|
|
||||||
if(!doneP) posP.x += offNP.x * FXAA_QUALITY__P2;
|
|
||||||
if(!doneP) posP.y += offNP.y * FXAA_QUALITY__P2;
|
|
||||||
#if (FXAA_QUALITY__PS > 3)
|
|
||||||
if(doneNP) {
|
|
||||||
if(!doneN) lumaEndN = FxaaTexTop(lum, posN.xy).x;
|
|
||||||
if(!doneP) lumaEndP = FxaaTexTop(lum, posP.xy).x;
|
|
||||||
if(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5;
|
|
||||||
if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5;
|
|
||||||
doneN = abs(lumaEndN) >= gradientScaled;
|
|
||||||
doneP = abs(lumaEndP) >= gradientScaled;
|
|
||||||
if(!doneN) posN.x -= offNP.x * FXAA_QUALITY__P3;
|
|
||||||
if(!doneN) posN.y -= offNP.y * FXAA_QUALITY__P3;
|
|
||||||
doneNP = (!doneN) || (!doneP);
|
|
||||||
if(!doneP) posP.x += offNP.x * FXAA_QUALITY__P3;
|
|
||||||
if(!doneP) posP.y += offNP.y * FXAA_QUALITY__P3;
|
|
||||||
#if (FXAA_QUALITY__PS > 4)
|
|
||||||
if(doneNP) {
|
|
||||||
if(!doneN) lumaEndN = FxaaTexTop(lum, posN.xy).x;
|
|
||||||
if(!doneP) lumaEndP = FxaaTexTop(lum, posP.xy).x;
|
|
||||||
if(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5;
|
|
||||||
if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5;
|
|
||||||
doneN = abs(lumaEndN) >= gradientScaled;
|
|
||||||
doneP = abs(lumaEndP) >= gradientScaled;
|
|
||||||
if(!doneN) posN.x -= offNP.x * FXAA_QUALITY__P4;
|
|
||||||
if(!doneN) posN.y -= offNP.y * FXAA_QUALITY__P4;
|
|
||||||
doneNP = (!doneN) || (!doneP);
|
|
||||||
if(!doneP) posP.x += offNP.x * FXAA_QUALITY__P4;
|
|
||||||
if(!doneP) posP.y += offNP.y * FXAA_QUALITY__P4;
|
|
||||||
#if (FXAA_QUALITY__PS > 5)
|
|
||||||
if(doneNP) {
|
|
||||||
if(!doneN) lumaEndN = FxaaTexTop(lum, posN.xy).x;
|
|
||||||
if(!doneP) lumaEndP = FxaaTexTop(lum, posP.xy).x;
|
|
||||||
if(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5;
|
|
||||||
if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5;
|
|
||||||
doneN = abs(lumaEndN) >= gradientScaled;
|
|
||||||
doneP = abs(lumaEndP) >= gradientScaled;
|
|
||||||
if(!doneN) posN.x -= offNP.x * FXAA_QUALITY__P5;
|
|
||||||
if(!doneN) posN.y -= offNP.y * FXAA_QUALITY__P5;
|
|
||||||
doneNP = (!doneN) || (!doneP);
|
|
||||||
if(!doneP) posP.x += offNP.x * FXAA_QUALITY__P5;
|
|
||||||
if(!doneP) posP.y += offNP.y * FXAA_QUALITY__P5;
|
|
||||||
#if (FXAA_QUALITY__PS > 6)
|
|
||||||
if(doneNP) {
|
|
||||||
if(!doneN) lumaEndN = FxaaTexTop(lum, posN.xy).x;
|
|
||||||
if(!doneP) lumaEndP = FxaaTexTop(lum, posP.xy).x;
|
|
||||||
if(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5;
|
|
||||||
if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5;
|
|
||||||
doneN = abs(lumaEndN) >= gradientScaled;
|
|
||||||
doneP = abs(lumaEndP) >= gradientScaled;
|
|
||||||
if(!doneN) posN.x -= offNP.x * FXAA_QUALITY__P6;
|
|
||||||
if(!doneN) posN.y -= offNP.y * FXAA_QUALITY__P6;
|
|
||||||
doneNP = (!doneN) || (!doneP);
|
|
||||||
if(!doneP) posP.x += offNP.x * FXAA_QUALITY__P6;
|
|
||||||
if(!doneP) posP.y += offNP.y * FXAA_QUALITY__P6;
|
|
||||||
#if (FXAA_QUALITY__PS > 7)
|
|
||||||
if(doneNP) {
|
|
||||||
if(!doneN) lumaEndN = FxaaTexTop(lum, posN.xy).x;
|
|
||||||
if(!doneP) lumaEndP = FxaaTexTop(lum, posP.xy).x;
|
|
||||||
if(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5;
|
|
||||||
if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5;
|
|
||||||
doneN = abs(lumaEndN) >= gradientScaled;
|
|
||||||
doneP = abs(lumaEndP) >= gradientScaled;
|
|
||||||
if(!doneN) posN.x -= offNP.x * FXAA_QUALITY__P7;
|
|
||||||
if(!doneN) posN.y -= offNP.y * FXAA_QUALITY__P7;
|
|
||||||
doneNP = (!doneN) || (!doneP);
|
|
||||||
if(!doneP) posP.x += offNP.x * FXAA_QUALITY__P7;
|
|
||||||
if(!doneP) posP.y += offNP.y * FXAA_QUALITY__P7;
|
|
||||||
#if (FXAA_QUALITY__PS > 8)
|
|
||||||
if(doneNP) {
|
|
||||||
if(!doneN) lumaEndN = FxaaTexTop(lum, posN.xy).x;
|
|
||||||
if(!doneP) lumaEndP = FxaaTexTop(lum, posP.xy).x;
|
|
||||||
if(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5;
|
|
||||||
if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5;
|
|
||||||
doneN = abs(lumaEndN) >= gradientScaled;
|
|
||||||
doneP = abs(lumaEndP) >= gradientScaled;
|
|
||||||
if(!doneN) posN.x -= offNP.x * FXAA_QUALITY__P8;
|
|
||||||
if(!doneN) posN.y -= offNP.y * FXAA_QUALITY__P8;
|
|
||||||
doneNP = (!doneN) || (!doneP);
|
|
||||||
if(!doneP) posP.x += offNP.x * FXAA_QUALITY__P8;
|
|
||||||
if(!doneP) posP.y += offNP.y * FXAA_QUALITY__P8;
|
|
||||||
#if (FXAA_QUALITY__PS > 9)
|
|
||||||
if(doneNP) {
|
|
||||||
if(!doneN) lumaEndN = FxaaTexTop(lum, posN.xy).x;
|
|
||||||
if(!doneP) lumaEndP = FxaaTexTop(lum, posP.xy).x;
|
|
||||||
if(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5;
|
|
||||||
if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5;
|
|
||||||
doneN = abs(lumaEndN) >= gradientScaled;
|
|
||||||
doneP = abs(lumaEndP) >= gradientScaled;
|
|
||||||
if(!doneN) posN.x -= offNP.x * FXAA_QUALITY__P9;
|
|
||||||
if(!doneN) posN.y -= offNP.y * FXAA_QUALITY__P9;
|
|
||||||
doneNP = (!doneN) || (!doneP);
|
|
||||||
if(!doneP) posP.x += offNP.x * FXAA_QUALITY__P9;
|
|
||||||
if(!doneP) posP.y += offNP.y * FXAA_QUALITY__P9;
|
|
||||||
#if (FXAA_QUALITY__PS > 10)
|
|
||||||
if(doneNP) {
|
|
||||||
if(!doneN) lumaEndN = FxaaTexTop(lum, posN.xy).x;
|
|
||||||
if(!doneP) lumaEndP = FxaaTexTop(lum, posP.xy).x;
|
|
||||||
if(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5;
|
|
||||||
if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5;
|
|
||||||
doneN = abs(lumaEndN) >= gradientScaled;
|
|
||||||
doneP = abs(lumaEndP) >= gradientScaled;
|
|
||||||
if(!doneN) posN.x -= offNP.x * FXAA_QUALITY__P10;
|
|
||||||
if(!doneN) posN.y -= offNP.y * FXAA_QUALITY__P10;
|
|
||||||
doneNP = (!doneN) || (!doneP);
|
|
||||||
if(!doneP) posP.x += offNP.x * FXAA_QUALITY__P10;
|
|
||||||
if(!doneP) posP.y += offNP.y * FXAA_QUALITY__P10;
|
|
||||||
#if (FXAA_QUALITY__PS > 11)
|
|
||||||
if(doneNP) {
|
|
||||||
if(!doneN) lumaEndN = FxaaTexTop(lum, posN.xy).x;
|
|
||||||
if(!doneP) lumaEndP = FxaaTexTop(lum, posP.xy).x;
|
|
||||||
if(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5;
|
|
||||||
if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5;
|
|
||||||
doneN = abs(lumaEndN) >= gradientScaled;
|
|
||||||
doneP = abs(lumaEndP) >= gradientScaled;
|
|
||||||
if(!doneN) posN.x -= offNP.x * FXAA_QUALITY__P11;
|
|
||||||
if(!doneN) posN.y -= offNP.y * FXAA_QUALITY__P11;
|
|
||||||
doneNP = (!doneN) || (!doneP);
|
|
||||||
if(!doneP) posP.x += offNP.x * FXAA_QUALITY__P11;
|
|
||||||
if(!doneP) posP.y += offNP.y * FXAA_QUALITY__P11;
|
|
||||||
#if (FXAA_QUALITY__PS > 12)
|
|
||||||
if(doneNP) {
|
|
||||||
if(!doneN) lumaEndN = FxaaTexTop(lum, posN.xy).x;
|
|
||||||
if(!doneP) lumaEndP = FxaaTexTop(lum, posP.xy).x;
|
|
||||||
if(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5;
|
|
||||||
if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5;
|
|
||||||
doneN = abs(lumaEndN) >= gradientScaled;
|
|
||||||
doneP = abs(lumaEndP) >= gradientScaled;
|
|
||||||
if(!doneN) posN.x -= offNP.x * FXAA_QUALITY__P12;
|
|
||||||
if(!doneN) posN.y -= offNP.y * FXAA_QUALITY__P12;
|
|
||||||
doneNP = (!doneN) || (!doneP);
|
|
||||||
if(!doneP) posP.x += offNP.x * FXAA_QUALITY__P12;
|
|
||||||
if(!doneP) posP.y += offNP.y * FXAA_QUALITY__P12;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
FxaaFloat dstN = posM.x - posN.x;
|
|
||||||
FxaaFloat dstP = posP.x - posM.x;
|
|
||||||
if(!horzSpan) dstN = posM.y - posN.y;
|
|
||||||
if(!horzSpan) dstP = posP.y - posM.y;
|
|
||||||
FxaaBool goodSpanN = (lumaEndN < 0.0) != lumaMLTZero;
|
|
||||||
FxaaFloat spanLength = (dstP + dstN);
|
|
||||||
FxaaBool goodSpanP = (lumaEndP < 0.0) != lumaMLTZero;
|
|
||||||
FxaaFloat spanLengthRcp = 1.0/spanLength;
|
|
||||||
FxaaBool directionN = dstN < dstP;
|
|
||||||
FxaaFloat dst = min(dstN, dstP);
|
|
||||||
FxaaBool goodSpan = directionN ? goodSpanN : goodSpanP;
|
|
||||||
FxaaFloat subpixG = subpixF * subpixF;
|
|
||||||
FxaaFloat pixelOffset = (dst * (-spanLengthRcp)) + 0.5;
|
|
||||||
FxaaFloat subpixH = subpixG * fxaaQualitySubpix;
|
|
||||||
FxaaFloat pixelOffsetGood = goodSpan ? pixelOffset : 0.0;
|
|
||||||
FxaaFloat pixelOffsetSubpix = max(pixelOffsetGood, subpixH);
|
|
||||||
if(!horzSpan) posM.x += pixelOffsetSubpix * lengthSign;
|
|
||||||
if( horzSpan) posM.y += pixelOffsetSubpix * lengthSign;
|
|
||||||
return FxaaFloat4(FxaaTexTop(tex, posM).xyz, lumaM);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
vec2 RcpFrame = vec2(1.0 / 1280.0, 1.0 / 720.0) * uf_fragCoordScale;
|
|
||||||
void main()
|
|
||||||
{
|
|
||||||
passPixelColor0 = FxaaPixelShader(passParameterSem2.xy, textureUnitPS0, textureUnitPS1, RcpFrame, Subpix, EdgeThreshold, EdgeThresholdMin);
|
|
||||||
}
|
|
@ -1,4 +0,0 @@
|
|||||||
[Definition]
|
|
||||||
titleIds = 00050000101C9300,00050000101C9400,00050000101C9500
|
|
||||||
name = "The Legend of Zelda: Breath of the Wild - No Depth of Field"
|
|
||||||
version = 2
|
|
@ -1,18 +0,0 @@
|
|||||||
[Definition]
|
|
||||||
titleIds = 00050000101C9300,00050000101C9400,00050000101C9500
|
|
||||||
name = "The Legend of Zelda: Breath of the Wild - Regular Resolution Shadows"
|
|
||||||
version = 2
|
|
||||||
|
|
||||||
[TextureRedefine]
|
|
||||||
width = 360
|
|
||||||
height = 360
|
|
||||||
formats = 0x005
|
|
||||||
overwriteWidth = 360
|
|
||||||
overwriteHeight = 360
|
|
||||||
|
|
||||||
[TextureRedefine]
|
|
||||||
width = 720
|
|
||||||
height = 720
|
|
||||||
formats = 0x005
|
|
||||||
overwriteWidth = 720
|
|
||||||
overwriteHeight = 720
|
|
@ -1,69 +0,0 @@
|
|||||||
[BotwNoVsyncV33]
|
|
||||||
moduleMatches = 0xD91A406D
|
|
||||||
|
|
||||||
;0x03068414 = nop ;disables gx2 fence
|
|
||||||
0x030685E4 = nop ;disables wait for vsync
|
|
||||||
0x03068608 = nop ;disables wait for vsync loop
|
|
||||||
|
|
||||||
[BotwNoVsyncV48]
|
|
||||||
moduleMatches = 0x0F748D9C
|
|
||||||
|
|
||||||
;0x03068488 = nop ;disables gx2 fence
|
|
||||||
0x03068658 = nop ;disables wait for vsync
|
|
||||||
0x0306867C = nop ;disables wait for vsync loop
|
|
||||||
|
|
||||||
[BotwNoVsyncV64]
|
|
||||||
moduleMatches = 0x9A61FF4C
|
|
||||||
|
|
||||||
;0x03069B60 = nop ;disables gx2 fence
|
|
||||||
0x03069D30 = nop ;disables wait for vsync
|
|
||||||
0x03069D54 = nop ;disables wait for vsync loop
|
|
||||||
|
|
||||||
[BotwNoVsyncV80]
|
|
||||||
moduleMatches = 0x8E3324A9
|
|
||||||
|
|
||||||
;0x03088A68 = nop ;disables gx2 fence
|
|
||||||
0x03088C38 = nop ;disables wait for vsync
|
|
||||||
0x03088C5C = nop ;disables wait for vsync loop
|
|
||||||
|
|
||||||
[BotwNoVsyncV97]
|
|
||||||
moduleMatches = 0xD71D859D
|
|
||||||
|
|
||||||
;0x030D42A0 = nop ;disables gx2 fence
|
|
||||||
0x030D4474 = nop ;disables wait for vsync
|
|
||||||
0x030D4498 = nop ;disables wait for vsync loop
|
|
||||||
|
|
||||||
[BotwNoVsyncV112]
|
|
||||||
moduleMatches = 0x6FD41A61
|
|
||||||
|
|
||||||
;0x030D5200 = nop ;disables gx2 fence
|
|
||||||
0x030D53D4 = nop ;disables wait for vsync
|
|
||||||
0x030D53F8 = nop ;disables wait for vsync loop
|
|
||||||
|
|
||||||
[BotwNoVsyncV144]
|
|
||||||
moduleMatches = 0x9A2CA0C7
|
|
||||||
|
|
||||||
;0x03102808 = nop ;disables gx2 fence
|
|
||||||
0x031029DC = nop ;disables wait for vsync
|
|
||||||
0x03102A00 = nop ;disables wait for vsync loop
|
|
||||||
|
|
||||||
[BotwNoVsyncV160]
|
|
||||||
moduleMatches = 0x29DBB52A
|
|
||||||
|
|
||||||
;0x031026D8 = nop ;disables gx2 fence
|
|
||||||
0x031028A8 = nop ;disables wait for vsync
|
|
||||||
0x031028CC = nop ;disables wait for vsync loop
|
|
||||||
|
|
||||||
[BotwNoVsyncV176V192]
|
|
||||||
moduleMatches = 0xFD091F9F,0xD472D8A5
|
|
||||||
|
|
||||||
;0x031FA004 = nop ;disables gx2 fence
|
|
||||||
0x031FA1D4 = nop ;disables wait for vsync
|
|
||||||
0x031FA1F8 = nop ;disables wait for vsync loop
|
|
||||||
|
|
||||||
[BotwNoVsyncV208]
|
|
||||||
moduleMatches = 0x6267BFD0
|
|
||||||
|
|
||||||
;0x031FAB00 = nop ;disables gx2 fence
|
|
||||||
0x031FACD0 = nop ;disables wait for vsync
|
|
||||||
0x031FACF4 = nop ;disables wait for vsync loop
|
|
@ -1,7 +0,0 @@
|
|||||||
[Definition]
|
|
||||||
titleIds = 00050000101C9300,00050000101C9400,00050000101C9500
|
|
||||||
name = "The Legend of Zelda: Breath of the Wild - 30FPS Lock (Requires Fence Skip or FPS++)"
|
|
||||||
version = 2
|
|
||||||
|
|
||||||
[Control]
|
|
||||||
vsyncFrequency = 30
|
|
@ -1,23 +0,0 @@
|
|||||||
[Definition]
|
|
||||||
titleIds = 00050000101C9300,00050000101C9400,00050000101C9500
|
|
||||||
name = "The Legend of Zelda: Breath of the Wild - 1280x720 (Better Color Depth)"
|
|
||||||
version = 2
|
|
||||||
|
|
||||||
[TextureRedefine] #TV
|
|
||||||
width = 1280
|
|
||||||
height = 720
|
|
||||||
formats = 0x19,0x1a
|
|
||||||
overwriteFormat = 0x1f
|
|
||||||
tileModesExcluded = 0x001
|
|
||||||
|
|
||||||
[TextureRedefine] #inventory and title menu background blur
|
|
||||||
width = 320
|
|
||||||
height = 180
|
|
||||||
formats = 0x19
|
|
||||||
overwriteFormat = 0x823
|
|
||||||
|
|
||||||
[TextureRedefine] #title menu background bloom
|
|
||||||
width = 320
|
|
||||||
height = 180
|
|
||||||
formats = 0x1a
|
|
||||||
overwriteFormat = 0x823
|
|
@ -1,124 +0,0 @@
|
|||||||
|
|
||||||
|
|
||||||
-- How to set up your own Clarity Preset --
|
|
||||||
|
|
||||||
((Required storage space, Approx 2~4GB))
|
|
||||||
|
|
||||||
===================================================================
|
|
||||||
|
|
||||||
Hey, it's Serfrost. I'm writing this out because it's come to our attention that no matter what we really do for presets, it won't really matter in the long run. Every user has a unique monitor / display they use with their PC, yeah? A lot of them are calibrated differently, and they often come with numerous presets that alter colors, brightness, contrast, you name it. Because of this, the presets that look good to me might not look good to you--the presets that look good to Jamie might not look good to you; you get the idea. So I'm writing this hoping you'll take the time to do a few short steps to get you on your way to making the game look the way YOU want it to look on YOUR display!
|
|
||||||
|
|
||||||
Jamie has coded this faithfully and diligently, and he's added a lot of different functions that were previously unavailable with these newer updates. We hope you enjoy this and use it to it's fullest potential.
|
|
||||||
|
|
||||||
===================================================================
|
|
||||||
|
|
||||||
There are 15 steps total. Please read very carefully and with your full attention. As long as you do that, it's relatively just "point and click" and the rest is changing the numbers on your own and testing them to see what they do.
|
|
||||||
|
|
||||||
===================================================================
|
|
||||||
|
|
||||||
|
|
||||||
1) Download & install Visual Studio Community 2017
|
|
||||||
|
|
||||||
https://www.visualstudio.com/downloads/
|
|
||||||
|
|
||||||
|
|
||||||
2) On the setup window, within the Workload tab, select "Desktop development with C++"
|
|
||||||
|
|
||||||
After installation and setup, close Visual Studio 2017...
|
|
||||||
|
|
||||||
|
|
||||||
3) Download & install Nsight for Visual Studio 2017 (You are required to make a Developer Account)
|
|
||||||
|
|
||||||
https://developer.nvidia.com/nsight-visual-studio-edition-downloads
|
|
||||||
|
|
||||||
After installation and setup, re-open Visual Studio 2017
|
|
||||||
|
|
||||||
|
|
||||||
4) Make a new Visual C++ > General > Empty Project (with a name of your choosing, i.e. Clarity)
|
|
||||||
|
|
||||||
|
|
||||||
4) In the Solution Explorer pane on the right, right-click your project's name with the ++ icon, select "Nsight User Properties"
|
|
||||||
|
|
||||||
|
|
||||||
5) Set the "Launch external program" to your Cemu.exe
|
|
||||||
|
|
||||||
|
|
||||||
6) Below that, "Command line arguments", simply set it to "-nsight" -- Then, Ok/Confirm
|
|
||||||
|
|
||||||
|
|
||||||
7) Save your project. It can now be reused to skip these steps in the future.
|
|
||||||
|
|
||||||
|
|
||||||
===============\
|
|
||||||
|
|
||||||
Note 1: Transferrable ShaderCache and Precompiled ShaderCache must be either backed-up and deleted, or at least moved to a new location before the next step. You must have an empty Transferrable and Precompiled with no shaders from BotW each time you run Nsight! If Nsight ignores your regular Precompiled, read below.
|
|
||||||
|
|
||||||
Note 2: This should be a one-time step.
|
|
||||||
|
|
||||||
Visual Studio might be saving your shaderCache to a new location based on your working directory, if that happens you'll have to find that directory. Mine was at...
|
|
||||||
|
|
||||||
C:\Users\serfr\source\repos\Clarity\Clarity\shaderCache
|
|
||||||
|
|
||||||
If it indeed does this, open that folder and clear it out. Then right-click the folder, go to Properties, go to Security, and then edit the permissions to Deny all access to any user listed.
|
|
||||||
|
|
||||||
This prevents Visual Studio from saving any shaderCache, which is what you want, since Nsight will not be able to use shaders that have already been turned into shaderCache, effectively skipping over them and screwing up your workflow.
|
|
||||||
|
|
||||||
===============/
|
|
||||||
|
|
||||||
|
|
||||||
8) Nsight menu at the top > Start Graphics Debugging
|
|
||||||
|
|
||||||
|
|
||||||
9) After Cemu opens itself, load the game and your save file.
|
|
||||||
|
|
||||||
Note 2: My editing save is set to be at Riverside Stable between the Stable and the 4 trees on the hill.
|
|
||||||
This allows the shader to always be located as the same number in the next steps for consistency, not
|
|
||||||
only that, but it gives you a great vantage point to tune your variables.
|
|
||||||
|
|
||||||
|
|
||||||
10) Visual Studio: Nsight menu at the top > Windows > Shaders
|
|
||||||
|
|
||||||
|
|
||||||
11) Filter: "63" > Wait for the shader to process > Expand 633 > Open Shader Program 632, this should be Clarity.
|
|
||||||
|
|
||||||
|
|
||||||
===============\
|
|
||||||
|
|
||||||
Note 2: If this isn't Clarity, then restart at the previous "Note 1" and load a different save.
|
|
||||||
|
|
||||||
===============/
|
|
||||||
|
|
||||||
|
|
||||||
12) If you've successfully opened the shader as Clarity, then right-click the contents and select "Edit"
|
|
||||||
|
|
||||||
|
|
||||||
13) You may now edit all the variables in realtime. To view / compile your changes hit Ctrl + Shift + C
|
|
||||||
|
|
||||||
|
|
||||||
===============\
|
|
||||||
|
|
||||||
Note 3: "Realtime", as in, you can view your changes by using the hotkey. You do not have to stop the game, etc.
|
|
||||||
|
|
||||||
Pro Tip 1: If time changes too fast for you, you can use Cemu > Debug > Custom Timer options to slow down time to 0.125x!
|
|
||||||
|
|
||||||
Pro Tip 2: If you want to chance it, you can use Visual Studio > Nsight Menu > Pause and Capture Frame ... you may then edit the shader with the frame frozen; this keeps time from progressing. Keep in mind it may error, and keep in mind that resuming may heavily glitch the game.
|
|
||||||
|
|
||||||
MAKE SURE YOU CHECK VARIOUS AREAS IN THE GAME TO MAKE SURE YOUR COLOR / SHADOW BALANCING IS CORRECT.
|
|
||||||
|
|
||||||
===============/
|
|
||||||
|
|
||||||
|
|
||||||
14) When you have your variables for your Preset where you want them, Ctrl + A to select all text, then Copy it.
|
|
||||||
|
|
||||||
|
|
||||||
15) Paste your entire shader code into a notepad and save it to wherever you want.
|
|
||||||
|
|
||||||
-- Make backups of files before making changes. Keep track of your work! --
|
|
||||||
|
|
||||||
The new shader.txt file has to be put in the Clarity GFX Pack for it to be used. Make sure you replace the original with your own, or relocate the original somewhere else. Your Preset must be the same name as the original file! 37040a485a29d54e_00000000000003c9_ps_.txt
|
|
||||||
|
|
||||||
===
|
|
||||||
|
|
||||||
MAKE SURE YOU CHECK VARIOUS AREAS IN THE GAME TO MAKE SURE YOUR COLOR / SHADOW BALANCING IS CORRECT.
|
|
||||||
|
|
||||||
===
|
|
@ -1,9 +0,0 @@
|
|||||||
============================================
|
|
||||||
|
|
||||||
1. Open the 37040a485a29d54e_00000000000003c9_ps
|
|
||||||
|
|
||||||
2. Pick preset or make your own.
|
|
||||||
|
|
||||||
3. Enable the pack in Cemu in order to test the preset.
|
|
||||||
|
|
||||||
============================================
|
|
@ -1,4 +0,0 @@
|
|||||||
[Definition]
|
|
||||||
titleIds = 00050000101C9300,00050000101C9400,00050000101C9500
|
|
||||||
name = "The Legend of Zelda: Breath of the Wild - Clarity"
|
|
||||||
version = 2
|
|
@ -1,135 +0,0 @@
|
|||||||
#version 420
|
|
||||||
#extension GL_ARB_texture_gather : enable
|
|
||||||
// Adjustable Bloom + Tone Mapping + Adjustable Vibrance(Contrasty)
|
|
||||||
|
|
||||||
/*=============================Settings=====================================*/
|
|
||||||
|
|
||||||
#define adjust_bloom 1 // 0: disable, 1: enable.
|
|
||||||
const float bloomFactor = 0.7; // 1.0 is neutral [0,1+]
|
|
||||||
|
|
||||||
#define tone_mapping 1
|
|
||||||
// -1: disable, loss of bright detail/color but keep [0,1] intact
|
|
||||||
// 0: (Wii U) BotW original
|
|
||||||
// 1: ACES Filmic
|
|
||||||
//---------------"ACES Filmic","disable" Parameters-------------//
|
|
||||||
const float Exposure = 0.6; // [0.0, 1.0+] Adjust exposure
|
|
||||||
//---------------------------------------------------------------//
|
|
||||||
|
|
||||||
#define post_process 0
|
|
||||||
// -1: disable
|
|
||||||
// 0: (Wii U) BotW original, only vibrance
|
|
||||||
// 1: Contrasty
|
|
||||||
//----------------"BotW original" vibrance adjust-------------//
|
|
||||||
const float satFactor = 0.25; // 0.18 is neutral. Experimental, adjust native saturation
|
|
||||||
//---------------------------------------------------------------//
|
|
||||||
//---------------------"Contrasty" Parameters-----------------//
|
|
||||||
const float gamma = 0.81; // 1.0 is neutral. Botw is already colour graded at this stage
|
|
||||||
const float exposure = 1.17; // 1.0 is neutral
|
|
||||||
const float vibrance = 0.40; // >0: saturate <0: desaturate
|
|
||||||
const vec3 vibrance_RGB_balance = vec3(1.0,1.0,1.0); // A per channel multiplier to the Vibrance strength so you can give more boost to certain colors over others.
|
|
||||||
const float crushContrast = 0.000; // 0.0 is neutral. Use small increments, loss of shadow detail
|
|
||||||
//---------------------------------------------------------------//
|
|
||||||
|
|
||||||
/*==========================================================================*/
|
|
||||||
|
|
||||||
|
|
||||||
// shader bd8bba59e2149449 // bloom(add), tonemap, saturate
|
|
||||||
uniform ivec4 uf_remappedPS[1];
|
|
||||||
layout(binding = 0) uniform sampler2D textureUnitPS0; //bloom
|
|
||||||
layout(binding = 1) uniform sampler2D textureUnitPS1; //texture, hdr
|
|
||||||
layout(location = 0) in vec4 passParameterSem0;
|
|
||||||
layout(location = 0) out vec4 passPixelColor0;
|
|
||||||
uniform vec2 uf_fragCoordScale;
|
|
||||||
|
|
||||||
float getL601(vec3 rgb) {
|
|
||||||
return dot(rgb,vec3(0.2989,0.5866,0.1145));
|
|
||||||
}
|
|
||||||
|
|
||||||
float getL709(vec3 rgb) {
|
|
||||||
return dot(rgb,vec3(0.2126,0.7152,0.0722));
|
|
||||||
}
|
|
||||||
|
|
||||||
vec3 BotWToneMap(vec3 color) {
|
|
||||||
float Lumn = getL601(color);
|
|
||||||
vec4 exptm = 1.0 - exp(-vec4(color,Lumn));
|
|
||||||
vec3 cpre = exptm.w / Lumn * color;
|
|
||||||
vec3 colorldr = mix(cpre,exptm.rgb,vec3(pow(exptm.w,2.0)));//refine
|
|
||||||
return colorldr;
|
|
||||||
}
|
|
||||||
|
|
||||||
vec3 ACESFilm(vec3 color) {
|
|
||||||
color *= Exposure;
|
|
||||||
float Lumn = getL709(color);
|
|
||||||
vec4 tm = vec4(color,Lumn);
|
|
||||||
tm = (tm*(2.51*tm+0.03))/(tm*(2.43*tm+0.59)+0.14); // tonemap
|
|
||||||
vec3 cpre = tm.w / Lumn * color;
|
|
||||||
vec3 colorldr = mix(cpre,tm.rgb,vec3(pow(tm.w,2.0)));//refine
|
|
||||||
return colorldr;
|
|
||||||
}
|
|
||||||
|
|
||||||
vec3 BotWVibrance(vec3 color) {
|
|
||||||
float avg = (color.r + color.g + color.b)/3.0;
|
|
||||||
float maxc = max(color.r, max(color.g,color.b));
|
|
||||||
float w = 1.0 - pow(1.0 - 2.0 * avg, 2.0);
|
|
||||||
float weight = 1.0 + w * satFactor;
|
|
||||||
vec3 satcolor = mix(vec3(maxc), color, weight);
|
|
||||||
return satcolor;
|
|
||||||
}
|
|
||||||
|
|
||||||
vec3 ReshadeVibrance(vec3 color) {
|
|
||||||
float max_color = max(color.r, max(color.g, color.b)); // Find the strongest color
|
|
||||||
float min_color = min(color.r, min(color.g, color.b)); // Find the weakest color
|
|
||||||
float luma = getL709(color);
|
|
||||||
float color_saturation = max_color - min_color; // The difference between the two is the saturation
|
|
||||||
vec3 coeffVibrance = vibrance_RGB_balance * vibrance;
|
|
||||||
color = mix(vec3(luma), color, 1.0 + (coeffVibrance * (1.0 - (sign(coeffVibrance) * color_saturation))));
|
|
||||||
return color;
|
|
||||||
}
|
|
||||||
|
|
||||||
vec3 Contrasty(vec3 fColour) {
|
|
||||||
fColour = max(vec3(0.0), fColour - vec3(crushContrast));
|
|
||||||
fColour = clamp(exposure * fColour, 0.0, 1.0);
|
|
||||||
fColour = pow(fColour, vec3(1.0 / gamma));
|
|
||||||
fColour = ReshadeVibrance(fColour); // reshade's identical, only a little stronger when at same setting
|
|
||||||
return fColour;
|
|
||||||
}
|
|
||||||
|
|
||||||
// bad curve, see reshade curves.fx
|
|
||||||
//vec3 Contrasty2(vec3 color) {
|
|
||||||
// color = clamp(color,0.0,1.0);
|
|
||||||
// vec3 dark = pow(color,vec3(1.0/dark_thr));
|
|
||||||
// vec3 bright = pow(color,vec3(1.0/bright_thr));
|
|
||||||
// float lumn = getL709(color);
|
|
||||||
// color = mix(dark,bright,lumn);
|
|
||||||
// color = ReshadeVibrance(color);
|
|
||||||
// return color;
|
|
||||||
//}
|
|
||||||
|
|
||||||
void main()
|
|
||||||
{
|
|
||||||
vec3 bloom = texture(textureUnitPS0, passParameterSem0.xy).xyz;
|
|
||||||
vec3 color = texture(textureUnitPS1, passParameterSem0.xy).xyz;
|
|
||||||
|
|
||||||
#if (adjust_bloom == 1)
|
|
||||||
bloom *= bloomFactor;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
color += bloom;
|
|
||||||
|
|
||||||
#if (tone_mapping == -1)
|
|
||||||
color = clamp(color*Exposure,0.0,1.0);
|
|
||||||
#elif (tone_mapping == 0)
|
|
||||||
color = BotWToneMap(color);
|
|
||||||
#elif (tone_mapping == 1)
|
|
||||||
color = ACESFilm(color);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if (post_process == 0)
|
|
||||||
color = BotWVibrance(color);
|
|
||||||
#elif (post_process == 1)
|
|
||||||
color = Contrasty(color);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
// export
|
|
||||||
passPixelColor0 = vec4(color, passParameterSem0.w);
|
|
||||||
}
|
|
@ -1,13 +0,0 @@
|
|||||||
[Definition]
|
|
||||||
titleIds = 00050000101C9300,00050000101C9400,00050000101C9500
|
|
||||||
name = "The Legend of Zelda: Breath of the Wild - Contrasty"
|
|
||||||
version = 2
|
|
||||||
|
|
||||||
# Credit:
|
|
||||||
# getdls for contrasty
|
|
||||||
# lihe@bestminr.com for vibrance logic
|
|
||||||
# kiri hsv saturation
|
|
||||||
# navras seperate contrasty from AARemoval
|
|
||||||
|
|
||||||
# approximate ACES Filmic ~ https://knarkowicz.wordpress.com/2016/01/06/aces-filmic-tone-mapping-curve/
|
|
||||||
# SweetFX Tone mapping by Christian Cann Schuldt Jensen ~ CeeJay.dk
|
|
@ -1,8 +0,0 @@
|
|||||||
[Definition]
|
|
||||||
titleIds = 00050000101C9300,00050000101C9400,00050000101C9500
|
|
||||||
name = "The Legend of Zelda: Breath of the Wild - LOD Bias"
|
|
||||||
version = 2
|
|
||||||
|
|
||||||
[TextureRedefine]
|
|
||||||
formats = 0x31,0x32,0x34,0x35,0x431,0x432,0x433,0x234,0x235
|
|
||||||
overwriteRelativeLodBias = -3
|
|
@ -1,981 +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 37b9100c1310d3bb
|
|
||||||
// Used for: Camera GUI
|
|
||||||
|
|
||||||
uniform ivec4 uf_uniformRegisterVS[256];
|
|
||||||
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;
|
|
||||||
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) { if (a == 0.0 || b == 0.0) return 0.0; return a*b; }
|
|
||||||
void main()
|
|
||||||
{
|
|
||||||
|
|
||||||
// Check Camera GUI
|
|
||||||
int hideCamera = 1;
|
|
||||||
if (uf_uniformRegisterVS[4].w != -1018036225 && uf_uniformRegisterVS[30].y == 0) {
|
|
||||||
hideCamera = 2;
|
|
||||||
}
|
|
||||||
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 R122i = ivec4(0);
|
|
||||||
ivec4 R123i = ivec4(0);
|
|
||||||
ivec4 R124i = ivec4(0);
|
|
||||||
ivec4 R125i = ivec4(0);
|
|
||||||
ivec4 R126i = ivec4(0);
|
|
||||||
ivec4 R127i = ivec4(0);
|
|
||||||
uvec4 attrDecoder;
|
|
||||||
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;
|
|
||||||
bool activeMaskStack[14];
|
|
||||||
bool activeMaskStackC[15];
|
|
||||||
activeMaskStack[0] = false;
|
|
||||||
activeMaskStack[1] = false;
|
|
||||||
activeMaskStack[2] = false;
|
|
||||||
activeMaskStack[3] = false;
|
|
||||||
activeMaskStack[4] = false;
|
|
||||||
activeMaskStack[5] = false;
|
|
||||||
activeMaskStack[6] = false;
|
|
||||||
activeMaskStack[7] = false;
|
|
||||||
activeMaskStack[8] = false;
|
|
||||||
activeMaskStack[9] = false;
|
|
||||||
activeMaskStack[10] = false;
|
|
||||||
activeMaskStack[11] = false;
|
|
||||||
activeMaskStack[12] = false;
|
|
||||||
activeMaskStackC[0] = false;
|
|
||||||
activeMaskStackC[1] = false;
|
|
||||||
activeMaskStackC[2] = false;
|
|
||||||
activeMaskStackC[3] = false;
|
|
||||||
activeMaskStackC[4] = false;
|
|
||||||
activeMaskStackC[5] = false;
|
|
||||||
activeMaskStackC[6] = false;
|
|
||||||
activeMaskStackC[7] = false;
|
|
||||||
activeMaskStackC[8] = false;
|
|
||||||
activeMaskStackC[9] = false;
|
|
||||||
activeMaskStackC[10] = false;
|
|
||||||
activeMaskStackC[11] = false;
|
|
||||||
activeMaskStackC[12] = false;
|
|
||||||
activeMaskStackC[13] = false;
|
|
||||||
activeMaskStack[0] = true;
|
|
||||||
activeMaskStackC[0] = true;
|
|
||||||
activeMaskStackC[1] = true;
|
|
||||||
vec3 cubeMapSTM;
|
|
||||||
int cubeMapFaceId;
|
|
||||||
R0i = 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;
|
|
||||||
R1i = ivec4(int(attrDecoder.x), int(attrDecoder.y), floatBitsToInt(0.0), floatBitsToInt(1.0));
|
|
||||||
if (activeMaskStackC[1] == true) {
|
|
||||||
activeMaskStack[1] = activeMaskStack[0];
|
|
||||||
activeMaskStackC[2] = activeMaskStackC[1];
|
|
||||||
// 0
|
|
||||||
PV0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.x), intBitsToFloat(uf_uniformRegisterVS[15].x)));
|
|
||||||
R0i.y = floatBitsToInt(-(intBitsToFloat(R1i.y)));
|
|
||||||
PV0i.y = R0i.y;
|
|
||||||
R4i.z = 0;
|
|
||||||
R0i.w = 0x3f800000;
|
|
||||||
R127i.w = floatBitsToInt(1.0);
|
|
||||||
PS0i = R127i.w;
|
|
||||||
// 1
|
|
||||||
R0i.x = floatBitsToInt(intBitsToFloat(PV0i.x) + intBitsToFloat(uf_uniformRegisterVS[15].z));
|
|
||||||
PV1i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.y), intBitsToFloat(uf_uniformRegisterVS[15].y)));
|
|
||||||
// 2
|
|
||||||
R0i.y = floatBitsToInt(intBitsToFloat(PV1i.z) + intBitsToFloat(uf_uniformRegisterVS[15].w));
|
|
||||||
PV0i.y = R0i.y;
|
|
||||||
R1i.w = uf_uniformRegisterVS[2].x & 0x40000000;
|
|
||||||
// 3
|
|
||||||
backupReg0i = R0i.w;
|
|
||||||
R127i.x = floatBitsToInt(dot(vec4(intBitsToFloat(R0i.x), intBitsToFloat(PV0i.y), intBitsToFloat(R4i.z), intBitsToFloat(backupReg0i)), vec4(intBitsToFloat(uf_uniformRegisterVS[4].x), intBitsToFloat(uf_uniformRegisterVS[4].y), intBitsToFloat(uf_uniformRegisterVS[4].z), intBitsToFloat(uf_uniformRegisterVS[4].w))));
|
|
||||||
PV1i.x = R127i.x;
|
|
||||||
PV1i.y = R127i.x;
|
|
||||||
PV1i.z = R127i.x;
|
|
||||||
PV1i.w = R127i.x;
|
|
||||||
// 4
|
|
||||||
backupReg0i = R0i.x;
|
|
||||||
backupReg1i = R0i.w;
|
|
||||||
tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(backupReg0i), intBitsToFloat(R0i.y), intBitsToFloat(R4i.z), intBitsToFloat(backupReg1i)), vec4(intBitsToFloat(uf_uniformRegisterVS[5].x), intBitsToFloat(uf_uniformRegisterVS[5].y), intBitsToFloat(uf_uniformRegisterVS[5].z), intBitsToFloat(uf_uniformRegisterVS[5].w))));
|
|
||||||
PV0i.x = tempi.x;
|
|
||||||
PV0i.y = tempi.x;
|
|
||||||
PV0i.z = tempi.x;
|
|
||||||
PV0i.w = tempi.x;
|
|
||||||
R127i.y = tempi.x;
|
|
||||||
// 5
|
|
||||||
backupReg0i = R0i.x;
|
|
||||||
backupReg1i = R0i.y;
|
|
||||||
backupReg2i = R0i.w;
|
|
||||||
tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(backupReg0i), intBitsToFloat(backupReg1i), intBitsToFloat(R4i.z), intBitsToFloat(backupReg2i)), vec4(intBitsToFloat(uf_uniformRegisterVS[6].x), intBitsToFloat(uf_uniformRegisterVS[6].y), intBitsToFloat(uf_uniformRegisterVS[6].z), intBitsToFloat(uf_uniformRegisterVS[6].w))));
|
|
||||||
PV1i.x = tempi.x;
|
|
||||||
PV1i.y = tempi.x;
|
|
||||||
PV1i.z = tempi.x;
|
|
||||||
PV1i.w = tempi.x;
|
|
||||||
R127i.z = tempi.x;
|
|
||||||
// 6
|
|
||||||
R6i.x = floatBitsToInt(dot(vec4(intBitsToFloat(R127i.x), intBitsToFloat(R127i.y), intBitsToFloat(PV1i.x), intBitsToFloat(R127i.w)), vec4(intBitsToFloat(uf_uniformRegisterVS[8].x), intBitsToFloat(uf_uniformRegisterVS[8].y), intBitsToFloat(uf_uniformRegisterVS[8].z), intBitsToFloat(uf_uniformRegisterVS[8].w))));
|
|
||||||
PV0i.x = R6i.x;
|
|
||||||
PV0i.y = R6i.x;
|
|
||||||
PV0i.z = R6i.x;
|
|
||||||
PV0i.w = R6i.x;
|
|
||||||
// 7
|
|
||||||
tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R127i.x), intBitsToFloat(R127i.y), intBitsToFloat(R127i.z), intBitsToFloat(R127i.w)), vec4(intBitsToFloat(uf_uniformRegisterVS[9].x), intBitsToFloat(uf_uniformRegisterVS[9].y), intBitsToFloat(uf_uniformRegisterVS[9].z), intBitsToFloat(uf_uniformRegisterVS[9].w))));
|
|
||||||
PV1i.x = tempi.x;
|
|
||||||
PV1i.y = tempi.x;
|
|
||||||
PV1i.z = tempi.x;
|
|
||||||
PV1i.w = tempi.x;
|
|
||||||
R6i.y = tempi.x;
|
|
||||||
// 8
|
|
||||||
tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R127i.x), intBitsToFloat(R127i.y), intBitsToFloat(R127i.z), intBitsToFloat(R127i.w)), vec4(intBitsToFloat(uf_uniformRegisterVS[10].x), intBitsToFloat(uf_uniformRegisterVS[10].y), intBitsToFloat(uf_uniformRegisterVS[10].z), intBitsToFloat(uf_uniformRegisterVS[10].w))));
|
|
||||||
PV0i.x = tempi.x;
|
|
||||||
PV0i.y = tempi.x;
|
|
||||||
PV0i.z = tempi.x;
|
|
||||||
PV0i.w = tempi.x;
|
|
||||||
R6i.z = tempi.x;
|
|
||||||
// 9
|
|
||||||
tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R127i.x), intBitsToFloat(R127i.y), intBitsToFloat(R127i.z), intBitsToFloat(R127i.w)), vec4(intBitsToFloat(uf_uniformRegisterVS[11].x), intBitsToFloat(uf_uniformRegisterVS[11].y), intBitsToFloat(uf_uniformRegisterVS[11].z), intBitsToFloat(uf_uniformRegisterVS[11].w))));
|
|
||||||
PV1i.x = tempi.x;
|
|
||||||
PV1i.y = tempi.x;
|
|
||||||
PV1i.z = tempi.x;
|
|
||||||
PV1i.w = tempi.x;
|
|
||||||
R6i.w = tempi.x;
|
|
||||||
// 10
|
|
||||||
predResult = (0 != R1i.w);
|
|
||||||
activeMaskStack[1] = predResult;
|
|
||||||
activeMaskStackC[2] = predResult == true && activeMaskStackC[1] == true;
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
activeMaskStack[1] = false;
|
|
||||||
activeMaskStackC[2] = false;
|
|
||||||
}
|
|
||||||
if (activeMaskStackC[2] == true) {
|
|
||||||
activeMaskStack[2] = activeMaskStack[1];
|
|
||||||
activeMaskStackC[3] = activeMaskStackC[2];
|
|
||||||
// 0
|
|
||||||
R0i.z = uf_uniformRegisterVS[2].x & 0x00000002;
|
|
||||||
// 1
|
|
||||||
predResult = (0 != R0i.z);
|
|
||||||
activeMaskStack[2] = predResult;
|
|
||||||
activeMaskStackC[3] = predResult == true && activeMaskStackC[2] == true;
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
activeMaskStack[2] = false;
|
|
||||||
activeMaskStackC[3] = false;
|
|
||||||
}
|
|
||||||
if (activeMaskStackC[3] == true) {
|
|
||||||
// 0
|
|
||||||
backupReg0i = R1i.y;
|
|
||||||
R1i.y = backupReg0i;
|
|
||||||
PV0i.y = R1i.y;
|
|
||||||
R0i.z = 0;
|
|
||||||
PV0i.z = R0i.z;
|
|
||||||
R1i.w = 0x3f800000;
|
|
||||||
PV0i.w = R1i.w;
|
|
||||||
// 1
|
|
||||||
R2i.xyz = ivec3(R1i.x, PV0i.y, PV0i.z);
|
|
||||||
R2i.w = PV0i.w;
|
|
||||||
}
|
|
||||||
activeMaskStack[2] = activeMaskStack[2] == false;
|
|
||||||
activeMaskStackC[3] = activeMaskStack[2] == true && activeMaskStackC[2] == true;
|
|
||||||
if (activeMaskStackC[3] == true) {
|
|
||||||
// 0
|
|
||||||
PS0i = int(intBitsToFloat(R1i.y));
|
|
||||||
// 1
|
|
||||||
PV1i.x = PS0i << int(1);
|
|
||||||
PS1i = int(intBitsToFloat(R1i.x));
|
|
||||||
// 2
|
|
||||||
R126i.z = PV1i.x + PS1i;
|
|
||||||
PV0i.z = R126i.z;
|
|
||||||
// 3
|
|
||||||
R127i.x = (PV0i.z == 0x00000002) ? int(0xFFFFFFFF) : int(0x0);
|
|
||||||
PV1i.x = R127i.x;
|
|
||||||
R127i.y = (PV0i.z == int(1)) ? int(0xFFFFFFFF) : int(0x0);
|
|
||||||
// 4
|
|
||||||
R127i.z = ((PV1i.x == 0) ? (uf_uniformRegisterVS[23].y) : (uf_uniformRegisterVS[22].y));
|
|
||||||
R127i.w = ((PV1i.x == 0) ? (uf_uniformRegisterVS[23].x) : (uf_uniformRegisterVS[22].x));
|
|
||||||
// 5
|
|
||||||
R123i.x = ((R127i.x == 0) ? (uf_uniformRegisterVS[23].w) : (uf_uniformRegisterVS[22].w));
|
|
||||||
PV1i.x = R123i.x;
|
|
||||||
R123i.y = ((R127i.x == 0) ? (uf_uniformRegisterVS[23].z) : (uf_uniformRegisterVS[22].z));
|
|
||||||
PV1i.y = R123i.y;
|
|
||||||
// 6
|
|
||||||
R123i.x = ((R127i.y == 0) ? (PV1i.x) : (uf_uniformRegisterVS[21].w));
|
|
||||||
PV0i.x = R123i.x;
|
|
||||||
R123i.y = ((R127i.y == 0) ? (PV1i.y) : (uf_uniformRegisterVS[21].z));
|
|
||||||
PV0i.y = R123i.y;
|
|
||||||
R123i.z = ((R127i.y == 0) ? (R127i.z) : (uf_uniformRegisterVS[21].y));
|
|
||||||
PV0i.z = R123i.z;
|
|
||||||
R123i.w = ((R127i.y == 0) ? (R127i.w) : (uf_uniformRegisterVS[21].x));
|
|
||||||
PV0i.w = R123i.w;
|
|
||||||
// 7
|
|
||||||
R2i.x = ((R126i.z == 0) ? (uf_uniformRegisterVS[20].x) : (PV0i.w));
|
|
||||||
R2i.y = ((R126i.z == 0) ? (uf_uniformRegisterVS[20].y) : (PV0i.z));
|
|
||||||
R2i.z = ((R126i.z == 0) ? (uf_uniformRegisterVS[20].z) : (PV0i.y));
|
|
||||||
R2i.w = ((R126i.z == 0) ? (uf_uniformRegisterVS[20].w) : (PV0i.x));
|
|
||||||
}
|
|
||||||
activeMaskStackC[2] = activeMaskStack[1] == true && activeMaskStackC[1] == true;
|
|
||||||
if (activeMaskStackC[2] == true) {
|
|
||||||
// 0
|
|
||||||
R3i.xyz = ivec3(0x437f0000, 0x437f0000, 0x437f0000);
|
|
||||||
R3i.w = 0x437f0000;
|
|
||||||
}
|
|
||||||
activeMaskStack[1] = activeMaskStack[1] == false;
|
|
||||||
activeMaskStackC[2] = activeMaskStack[1] == true && activeMaskStackC[1] == true;
|
|
||||||
if (activeMaskStackC[2] == true) {
|
|
||||||
activeMaskStack[2] = activeMaskStack[1];
|
|
||||||
activeMaskStackC[3] = activeMaskStackC[2];
|
|
||||||
// 0
|
|
||||||
PV0i.x = uf_uniformRegisterVS[2].x >> 0x00000008;
|
|
||||||
R2i.y = uf_uniformRegisterVS[2].x & 0x00000002;
|
|
||||||
// 1
|
|
||||||
R1i.z = PV0i.x & 0x0000000f;
|
|
||||||
// 2
|
|
||||||
predResult = (0 != R2i.y);
|
|
||||||
activeMaskStack[2] = predResult;
|
|
||||||
activeMaskStackC[3] = predResult == true && activeMaskStackC[2] == true;
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
activeMaskStack[2] = false;
|
|
||||||
activeMaskStackC[3] = false;
|
|
||||||
}
|
|
||||||
if (activeMaskStackC[3] == true) {
|
|
||||||
activeMaskStack[3] = activeMaskStack[2];
|
|
||||||
activeMaskStackC[4] = activeMaskStackC[3];
|
|
||||||
// 0
|
|
||||||
R4i.y = R1i.y;
|
|
||||||
R2i.z = 0;
|
|
||||||
R1i.w = 0x3f800000;
|
|
||||||
PS0i = floatBitsToInt(1.0 / intBitsToFloat(uf_uniformRegisterVS[7].x));
|
|
||||||
// 1
|
|
||||||
R2i.x = floatBitsToInt(intBitsToFloat(PS0i) * intBitsToFloat(uf_uniformRegisterVS[1].x));
|
|
||||||
PV1i.x = R2i.x;
|
|
||||||
R2i.y = floatBitsToInt(intBitsToFloat(PS0i) * intBitsToFloat(uf_uniformRegisterVS[1].y));
|
|
||||||
PS1i = floatBitsToInt(1.0 / intBitsToFloat(uf_uniformRegisterVS[7].y));
|
|
||||||
// 2
|
|
||||||
R3i.x = floatBitsToInt(intBitsToFloat(uf_uniformRegisterVS[1].z) * intBitsToFloat(PS1i));
|
|
||||||
PV0i.x = R3i.x;
|
|
||||||
R3i.y = floatBitsToInt(intBitsToFloat(uf_uniformRegisterVS[1].w) * intBitsToFloat(PS1i));
|
|
||||||
R4i.x = floatBitsToInt(-(intBitsToFloat(PV1i.x)) + 1.0);
|
|
||||||
PS0i = R4i.x;
|
|
||||||
// 3
|
|
||||||
R5i.x = floatBitsToInt(-(intBitsToFloat(R2i.y)) + intBitsToFloat(PS0i));
|
|
||||||
R0i.z = floatBitsToInt(-(intBitsToFloat(PV0i.x)) + 1.0);
|
|
||||||
PV1i.z = R0i.z;
|
|
||||||
R7i.x = floatBitsToInt(-(intBitsToFloat(R2i.y)) + 1.0);
|
|
||||||
PS1i = R7i.x;
|
|
||||||
// 4
|
|
||||||
R3i.z = floatBitsToInt(-(intBitsToFloat(R3i.y)) + 1.0);
|
|
||||||
R2i.w = floatBitsToInt(-(intBitsToFloat(R3i.y)) + intBitsToFloat(PV1i.z));
|
|
||||||
// 5
|
|
||||||
predResult = (R1i.z == 0);
|
|
||||||
activeMaskStack[3] = predResult;
|
|
||||||
activeMaskStackC[4] = predResult == true && activeMaskStackC[3] == true;
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
activeMaskStack[3] = false;
|
|
||||||
activeMaskStackC[4] = false;
|
|
||||||
}
|
|
||||||
if (activeMaskStackC[4] == true) {
|
|
||||||
// 0
|
|
||||||
backupReg0i = R2i.x;
|
|
||||||
R2i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.x), intBitsToFloat(backupReg0i)));
|
|
||||||
R2i.y = R3i.x;
|
|
||||||
PV0i.y = R2i.y;
|
|
||||||
// 1
|
|
||||||
R2i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.y), intBitsToFloat(PV0i.y)));
|
|
||||||
}
|
|
||||||
activeMaskStack[3] = activeMaskStack[3] == false;
|
|
||||||
activeMaskStackC[4] = activeMaskStack[3] == true && activeMaskStackC[3] == true;
|
|
||||||
if (activeMaskStackC[4] == true) {
|
|
||||||
activeMaskStack[4] = activeMaskStack[3];
|
|
||||||
activeMaskStackC[5] = activeMaskStackC[4];
|
|
||||||
// 0
|
|
||||||
predResult = (R1i.z == int(1));
|
|
||||||
activeMaskStack[4] = predResult;
|
|
||||||
activeMaskStackC[5] = predResult == true && activeMaskStackC[4] == true;
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
activeMaskStack[4] = false;
|
|
||||||
activeMaskStackC[5] = false;
|
|
||||||
}
|
|
||||||
if (activeMaskStackC[5] == true) {
|
|
||||||
// 0
|
|
||||||
backupReg0i = R2i.y;
|
|
||||||
R2i.y = 0;
|
|
||||||
PV0i.y = R2i.y;
|
|
||||||
PV0i.z = R3i.x;
|
|
||||||
PV0i.w = backupReg0i;
|
|
||||||
// 1
|
|
||||||
R2i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R1i.x), intBitsToFloat(PV0i.w)) + intBitsToFloat(R7i.x)));
|
|
||||||
R2i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R1i.y), intBitsToFloat(PV0i.z)) + intBitsToFloat(PV0i.y)));
|
|
||||||
}
|
|
||||||
activeMaskStack[4] = activeMaskStack[4] == false;
|
|
||||||
activeMaskStackC[5] = activeMaskStack[4] == true && activeMaskStackC[4] == true;
|
|
||||||
if (activeMaskStackC[5] == true) {
|
|
||||||
activeMaskStack[5] = activeMaskStack[4];
|
|
||||||
activeMaskStackC[6] = activeMaskStackC[5];
|
|
||||||
// 0
|
|
||||||
predResult = (R1i.z == 0x00000002);
|
|
||||||
activeMaskStack[5] = predResult;
|
|
||||||
activeMaskStackC[6] = predResult == true && activeMaskStackC[5] == true;
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
activeMaskStack[5] = false;
|
|
||||||
activeMaskStackC[6] = false;
|
|
||||||
}
|
|
||||||
if (activeMaskStackC[6] == true) {
|
|
||||||
// 0
|
|
||||||
backupReg0i = R3i.y;
|
|
||||||
R3i.y = backupReg0i;
|
|
||||||
PV0i.y = R3i.y;
|
|
||||||
PV0i.z = R3i.z;
|
|
||||||
PV0i.w = 0;
|
|
||||||
// 1
|
|
||||||
backupReg0i = R2i.x;
|
|
||||||
R2i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R1i.x), intBitsToFloat(backupReg0i)) + intBitsToFloat(PV0i.w)));
|
|
||||||
R2i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R1i.y), intBitsToFloat(PV0i.y)) + intBitsToFloat(PV0i.z)));
|
|
||||||
}
|
|
||||||
activeMaskStack[5] = activeMaskStack[5] == false;
|
|
||||||
activeMaskStackC[6] = activeMaskStack[5] == true && activeMaskStackC[5] == true;
|
|
||||||
if (activeMaskStackC[6] == true) {
|
|
||||||
activeMaskStack[6] = activeMaskStack[5];
|
|
||||||
activeMaskStackC[7] = activeMaskStackC[6];
|
|
||||||
// 0
|
|
||||||
predResult = (R1i.z == 0x00000003);
|
|
||||||
activeMaskStack[6] = predResult;
|
|
||||||
activeMaskStackC[7] = predResult == true && activeMaskStackC[6] == true;
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
activeMaskStack[6] = false;
|
|
||||||
activeMaskStackC[7] = false;
|
|
||||||
}
|
|
||||||
if (activeMaskStackC[7] == true) {
|
|
||||||
// 0
|
|
||||||
backupReg0i = R2i.y;
|
|
||||||
R2i.y = R3i.z;
|
|
||||||
PV0i.y = R2i.y;
|
|
||||||
PV0i.z = R3i.y;
|
|
||||||
PV0i.w = backupReg0i;
|
|
||||||
// 1
|
|
||||||
R2i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R1i.x), intBitsToFloat(PV0i.w)) + intBitsToFloat(R7i.x)));
|
|
||||||
R2i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R1i.y), intBitsToFloat(PV0i.z)) + intBitsToFloat(PV0i.y)));
|
|
||||||
}
|
|
||||||
activeMaskStack[6] = activeMaskStack[6] == false;
|
|
||||||
activeMaskStackC[7] = activeMaskStack[6] == true && activeMaskStackC[6] == true;
|
|
||||||
if (activeMaskStackC[7] == true) {
|
|
||||||
activeMaskStack[7] = activeMaskStack[6];
|
|
||||||
activeMaskStackC[8] = activeMaskStackC[7];
|
|
||||||
// 0
|
|
||||||
predResult = (R1i.z == 0x00000004);
|
|
||||||
activeMaskStack[7] = predResult;
|
|
||||||
activeMaskStackC[8] = predResult == true && activeMaskStackC[7] == true;
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
activeMaskStack[7] = false;
|
|
||||||
activeMaskStackC[8] = false;
|
|
||||||
}
|
|
||||||
if (activeMaskStackC[8] == true) {
|
|
||||||
// 0
|
|
||||||
R2i.y = R2i.w;
|
|
||||||
PV0i.y = R2i.y;
|
|
||||||
PV0i.z = R3i.x;
|
|
||||||
PV0i.w = 0;
|
|
||||||
// 1
|
|
||||||
backupReg0i = R2i.x;
|
|
||||||
R2i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R1i.x), intBitsToFloat(backupReg0i)) + intBitsToFloat(PV0i.w)));
|
|
||||||
R2i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R1i.y), intBitsToFloat(PV0i.y)) + intBitsToFloat(PV0i.z)));
|
|
||||||
}
|
|
||||||
activeMaskStack[7] = activeMaskStack[7] == false;
|
|
||||||
activeMaskStackC[8] = activeMaskStack[7] == true && activeMaskStackC[7] == true;
|
|
||||||
if (activeMaskStackC[8] == true) {
|
|
||||||
activeMaskStack[8] = activeMaskStack[7];
|
|
||||||
activeMaskStackC[9] = activeMaskStackC[8];
|
|
||||||
// 0
|
|
||||||
predResult = (R1i.z == 0x00000005);
|
|
||||||
activeMaskStack[8] = predResult;
|
|
||||||
activeMaskStackC[9] = predResult == true && activeMaskStackC[8] == true;
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
activeMaskStack[8] = false;
|
|
||||||
activeMaskStackC[9] = false;
|
|
||||||
}
|
|
||||||
if (activeMaskStackC[9] == true) {
|
|
||||||
// 0
|
|
||||||
backupReg0i = R2i.y;
|
|
||||||
R2i.y = R3i.x;
|
|
||||||
PV0i.y = R2i.y;
|
|
||||||
PV0i.z = R2i.w;
|
|
||||||
PV0i.w = backupReg0i;
|
|
||||||
// 1
|
|
||||||
R2i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R1i.x), intBitsToFloat(PV0i.w)) + intBitsToFloat(R7i.x)));
|
|
||||||
R2i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R1i.y), intBitsToFloat(PV0i.z)) + intBitsToFloat(PV0i.y)));
|
|
||||||
}
|
|
||||||
activeMaskStack[8] = activeMaskStack[8] == false;
|
|
||||||
activeMaskStackC[9] = activeMaskStack[8] == true && activeMaskStackC[8] == true;
|
|
||||||
if (activeMaskStackC[9] == true) {
|
|
||||||
activeMaskStack[9] = activeMaskStack[8];
|
|
||||||
activeMaskStackC[10] = activeMaskStackC[9];
|
|
||||||
// 0
|
|
||||||
predResult = (R1i.z == 0x00000006);
|
|
||||||
activeMaskStack[9] = predResult;
|
|
||||||
activeMaskStackC[10] = predResult == true && activeMaskStackC[9] == true;
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
activeMaskStack[9] = false;
|
|
||||||
activeMaskStackC[10] = false;
|
|
||||||
}
|
|
||||||
if (activeMaskStackC[10] == true) {
|
|
||||||
// 0
|
|
||||||
R2i.y = R3i.x;
|
|
||||||
PV0i.y = R2i.y;
|
|
||||||
R3i.y = 0;
|
|
||||||
PS0i = R3i.y;
|
|
||||||
// 1
|
|
||||||
backupReg0i = R2i.x;
|
|
||||||
R2i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R1i.x), intBitsToFloat(R5i.x)) + intBitsToFloat(backupReg0i)));
|
|
||||||
R2i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R1i.y), intBitsToFloat(PV0i.y)) + intBitsToFloat(PS0i)));
|
|
||||||
}
|
|
||||||
activeMaskStack[9] = activeMaskStack[9] == false;
|
|
||||||
activeMaskStackC[10] = activeMaskStack[9] == true && activeMaskStackC[9] == true;
|
|
||||||
if (activeMaskStackC[10] == true) {
|
|
||||||
activeMaskStack[10] = activeMaskStack[9];
|
|
||||||
activeMaskStackC[11] = activeMaskStackC[10];
|
|
||||||
// 0
|
|
||||||
predResult = (R1i.z == 0x00000007);
|
|
||||||
activeMaskStack[10] = predResult;
|
|
||||||
activeMaskStackC[11] = predResult == true && activeMaskStackC[10] == true;
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
activeMaskStack[10] = false;
|
|
||||||
activeMaskStackC[11] = false;
|
|
||||||
}
|
|
||||||
if (activeMaskStackC[11] == true) {
|
|
||||||
// 0
|
|
||||||
backupReg0i = R2i.x;
|
|
||||||
R2i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R1i.x), intBitsToFloat(R5i.x)) + intBitsToFloat(backupReg0i)));
|
|
||||||
R2i.y = R3i.y;
|
|
||||||
PV0i.y = R2i.y;
|
|
||||||
R3i.y = R3i.z;
|
|
||||||
PS0i = R3i.y;
|
|
||||||
// 1
|
|
||||||
R2i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R1i.y), intBitsToFloat(PV0i.y)) + intBitsToFloat(PS0i)));
|
|
||||||
}
|
|
||||||
activeMaskStack[10] = activeMaskStack[10] == false;
|
|
||||||
activeMaskStackC[11] = activeMaskStack[10] == true && activeMaskStackC[10] == true;
|
|
||||||
if (activeMaskStackC[11] == true) {
|
|
||||||
activeMaskStack[11] = activeMaskStack[10];
|
|
||||||
activeMaskStackC[12] = activeMaskStackC[11];
|
|
||||||
// 0
|
|
||||||
predResult = (R1i.z == 0x00000008);
|
|
||||||
activeMaskStack[11] = predResult;
|
|
||||||
activeMaskStackC[12] = predResult == true && activeMaskStackC[11] == true;
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
activeMaskStack[11] = false;
|
|
||||||
activeMaskStackC[12] = false;
|
|
||||||
}
|
|
||||||
if (activeMaskStackC[12] == true) {
|
|
||||||
// 0
|
|
||||||
R2i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.x), intBitsToFloat(R7i.x)));
|
|
||||||
R2i.y = R3i.x;
|
|
||||||
PV0i.y = R2i.y;
|
|
||||||
// 1
|
|
||||||
R2i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.y), intBitsToFloat(PV0i.y)));
|
|
||||||
}
|
|
||||||
activeMaskStack[11] = activeMaskStack[11] == false;
|
|
||||||
activeMaskStackC[12] = activeMaskStack[11] == true && activeMaskStackC[11] == true;
|
|
||||||
if (activeMaskStackC[12] == true) {
|
|
||||||
activeMaskStack[12] = activeMaskStack[11];
|
|
||||||
activeMaskStackC[13] = activeMaskStackC[12];
|
|
||||||
// 0
|
|
||||||
predResult = (R1i.z == 0x00000009);
|
|
||||||
activeMaskStack[12] = predResult;
|
|
||||||
activeMaskStackC[13] = predResult == true && activeMaskStackC[12] == true;
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
activeMaskStack[12] = false;
|
|
||||||
activeMaskStackC[13] = false;
|
|
||||||
}
|
|
||||||
if (activeMaskStackC[13] == true) {
|
|
||||||
// 0
|
|
||||||
backupReg0i = R2i.y;
|
|
||||||
R2i.y = 0;
|
|
||||||
PV0i.y = R2i.y;
|
|
||||||
PV0i.z = R3i.z;
|
|
||||||
PV0i.w = backupReg0i;
|
|
||||||
// 1
|
|
||||||
R2i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R1i.x), intBitsToFloat(PV0i.w)) + intBitsToFloat(R7i.x)));
|
|
||||||
R2i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R1i.y), intBitsToFloat(PV0i.z)) + intBitsToFloat(PV0i.y)));
|
|
||||||
}
|
|
||||||
activeMaskStack[12] = activeMaskStack[12] == false;
|
|
||||||
activeMaskStackC[13] = activeMaskStack[12] == true && activeMaskStackC[12] == true;
|
|
||||||
if (activeMaskStackC[13] == true) {
|
|
||||||
activeMaskStack[13] = activeMaskStack[12];
|
|
||||||
activeMaskStackC[14] = activeMaskStackC[13];
|
|
||||||
// 0
|
|
||||||
predResult = (R1i.z == 0x0000000a);
|
|
||||||
activeMaskStack[13] = predResult;
|
|
||||||
activeMaskStackC[14] = predResult == true && activeMaskStackC[13] == true;
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
activeMaskStack[13] = false;
|
|
||||||
activeMaskStackC[14] = false;
|
|
||||||
}
|
|
||||||
if (activeMaskStackC[14] == true) {
|
|
||||||
// 0
|
|
||||||
R2i.y = R0i.z;
|
|
||||||
PV0i.y = R2i.y;
|
|
||||||
PV0i.z = R3i.x;
|
|
||||||
PV0i.w = 0;
|
|
||||||
// 1
|
|
||||||
backupReg0i = R2i.x;
|
|
||||||
R2i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R1i.x), intBitsToFloat(backupReg0i)) + intBitsToFloat(PV0i.w)));
|
|
||||||
R2i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R1i.y), intBitsToFloat(PV0i.y)) + intBitsToFloat(PV0i.z)));
|
|
||||||
}
|
|
||||||
activeMaskStack[13] = activeMaskStack[13] == false;
|
|
||||||
activeMaskStackC[14] = activeMaskStack[13] == true && activeMaskStackC[13] == true;
|
|
||||||
if (activeMaskStackC[14] == true) {
|
|
||||||
// 0
|
|
||||||
PV0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.x), intBitsToFloat(R7i.x)));
|
|
||||||
R2i.y = R2i.w;
|
|
||||||
PV0i.y = R2i.y;
|
|
||||||
R127i.z = (R1i.z == 0x0000000c) ? int(0xFFFFFFFF) : int(0x0);
|
|
||||||
PV0i.z = R127i.z;
|
|
||||||
R127i.w = (R1i.z == 0x0000000b) ? int(0xFFFFFFFF) : int(0x0);
|
|
||||||
// 1
|
|
||||||
PV1i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.y), intBitsToFloat(PV0i.y)));
|
|
||||||
R2i.y = R3i.z;
|
|
||||||
PV1i.y = R2i.y;
|
|
||||||
R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R1i.x), intBitsToFloat(R4i.x)) + intBitsToFloat(R2i.x)));
|
|
||||||
PV1i.z = R123i.z;
|
|
||||||
R123i.w = ((PV0i.z == 0) ? (0) : (PV0i.x));
|
|
||||||
PV1i.w = R123i.w;
|
|
||||||
// 2
|
|
||||||
R2i.x = ((R127i.w == 0) ? (PV1i.w) : (PV1i.z));
|
|
||||||
R123i.z = ((R127i.z == 0) ? (0) : (PV1i.x));
|
|
||||||
PV0i.z = R123i.z;
|
|
||||||
R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R1i.y), intBitsToFloat(R3i.y)) + intBitsToFloat(PV1i.y)));
|
|
||||||
PV0i.w = R123i.w;
|
|
||||||
// 3
|
|
||||||
R2i.y = ((R127i.w == 0) ? (PV0i.z) : (PV0i.w));
|
|
||||||
}
|
|
||||||
activeMaskStackC[13] = activeMaskStack[12] == true && activeMaskStackC[12] == true;
|
|
||||||
activeMaskStackC[11] = activeMaskStack[10] == true && activeMaskStackC[10] == true;
|
|
||||||
activeMaskStackC[9] = activeMaskStack[8] == true && activeMaskStackC[8] == true;
|
|
||||||
activeMaskStackC[7] = activeMaskStack[6] == true && activeMaskStackC[6] == true;
|
|
||||||
activeMaskStackC[5] = activeMaskStack[4] == true && activeMaskStackC[4] == true;
|
|
||||||
activeMaskStackC[3] = activeMaskStack[2] == true && activeMaskStackC[2] == true;
|
|
||||||
if (activeMaskStackC[3] == true) {
|
|
||||||
// 0
|
|
||||||
R127i.x = floatBitsToInt(-(intBitsToFloat(R2i.y)) + 1.0);
|
|
||||||
PV0i.x = R127i.x;
|
|
||||||
R126i.y = floatBitsToInt(-(intBitsToFloat(R2i.x)) + 1.0);
|
|
||||||
// 1
|
|
||||||
PV1i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.x), intBitsToFloat(uf_uniformRegisterVS[16].w)));
|
|
||||||
PV1i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.x), intBitsToFloat(uf_uniformRegisterVS[16].z)));
|
|
||||||
PV1i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.x), intBitsToFloat(uf_uniformRegisterVS[16].y)));
|
|
||||||
PV1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.x), intBitsToFloat(uf_uniformRegisterVS[16].x)));
|
|
||||||
// 2
|
|
||||||
R126i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R2i.y), intBitsToFloat(uf_uniformRegisterVS[18].w)) + intBitsToFloat(PV1i.x)));
|
|
||||||
R127i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R2i.y), intBitsToFloat(uf_uniformRegisterVS[18].z)) + intBitsToFloat(PV1i.y)));
|
|
||||||
R127i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R2i.y), intBitsToFloat(uf_uniformRegisterVS[18].y)) + intBitsToFloat(PV1i.z)));
|
|
||||||
R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R2i.y), intBitsToFloat(uf_uniformRegisterVS[18].x)) + intBitsToFloat(PV1i.w)));
|
|
||||||
PV0i.w = R123i.w;
|
|
||||||
// 3
|
|
||||||
PV1i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.x), intBitsToFloat(uf_uniformRegisterVS[17].w)));
|
|
||||||
PV1i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.x), intBitsToFloat(uf_uniformRegisterVS[17].z)));
|
|
||||||
PV1i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.x), intBitsToFloat(uf_uniformRegisterVS[17].y)));
|
|
||||||
PV1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.x), intBitsToFloat(uf_uniformRegisterVS[17].x)));
|
|
||||||
R127i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.y), intBitsToFloat(PV0i.w)));
|
|
||||||
PS1i = R127i.w;
|
|
||||||
// 4
|
|
||||||
backupReg0i = R127i.z;
|
|
||||||
R127i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R2i.y), intBitsToFloat(uf_uniformRegisterVS[19].w)) + intBitsToFloat(PV1i.x)));
|
|
||||||
R125i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R2i.y), intBitsToFloat(uf_uniformRegisterVS[19].z)) + intBitsToFloat(PV1i.y)));
|
|
||||||
R127i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R2i.y), intBitsToFloat(uf_uniformRegisterVS[19].y)) + intBitsToFloat(PV1i.z)));
|
|
||||||
R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R2i.y), intBitsToFloat(uf_uniformRegisterVS[19].x)) + intBitsToFloat(PV1i.w)));
|
|
||||||
PV0i.w = R123i.w;
|
|
||||||
R126i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.y), intBitsToFloat(backupReg0i)));
|
|
||||||
PS0i = R126i.z;
|
|
||||||
// 5
|
|
||||||
PV1i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.y), intBitsToFloat(R126i.x)));
|
|
||||||
PV1i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.y), intBitsToFloat(R127i.y)));
|
|
||||||
R3i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R2i.x), intBitsToFloat(PV0i.w)) + intBitsToFloat(R127i.w)));
|
|
||||||
PS1i = R3i.x;
|
|
||||||
// 6
|
|
||||||
R3i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R2i.x), intBitsToFloat(R127i.z)) + intBitsToFloat(R126i.z)));
|
|
||||||
R3i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R2i.x), intBitsToFloat(R125i.y)) + intBitsToFloat(PV1i.y)));
|
|
||||||
R3i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R2i.x), intBitsToFloat(R127i.x)) + intBitsToFloat(PV1i.x)));
|
|
||||||
// 7
|
|
||||||
backupReg0i = R2i.z;
|
|
||||||
R2i.xyz = ivec3(R1i.x, R4i.y, backupReg0i);
|
|
||||||
R2i.w = R1i.w;
|
|
||||||
}
|
|
||||||
activeMaskStack[2] = activeMaskStack[2] == false;
|
|
||||||
activeMaskStackC[3] = activeMaskStack[2] == true && activeMaskStackC[2] == true;
|
|
||||||
if (activeMaskStackC[3] == true) {
|
|
||||||
activeMaskStack[3] = activeMaskStack[2];
|
|
||||||
activeMaskStackC[4] = activeMaskStackC[3];
|
|
||||||
// 0
|
|
||||||
PS0i = int(intBitsToFloat(R1i.y));
|
|
||||||
// 1
|
|
||||||
PV1i.z = PS0i << int(1);
|
|
||||||
PS1i = int(intBitsToFloat(R1i.x));
|
|
||||||
// 2
|
|
||||||
R0i.z = PV1i.z + PS1i;
|
|
||||||
PV0i.z = R0i.z;
|
|
||||||
// 3
|
|
||||||
R127i.x = (PV0i.z == 0x00000002) ? int(0xFFFFFFFF) : int(0x0);
|
|
||||||
PV1i.x = R127i.x;
|
|
||||||
R127i.y = (PV0i.z == int(1)) ? int(0xFFFFFFFF) : int(0x0);
|
|
||||||
// 4
|
|
||||||
R127i.z = ((PV1i.x == 0) ? (uf_uniformRegisterVS[23].y) : (uf_uniformRegisterVS[22].y));
|
|
||||||
R127i.w = ((PV1i.x == 0) ? (uf_uniformRegisterVS[23].x) : (uf_uniformRegisterVS[22].x));
|
|
||||||
// 5
|
|
||||||
R123i.x = ((R127i.x == 0) ? (uf_uniformRegisterVS[23].w) : (uf_uniformRegisterVS[22].w));
|
|
||||||
PV1i.x = R123i.x;
|
|
||||||
R123i.y = ((R127i.x == 0) ? (uf_uniformRegisterVS[23].z) : (uf_uniformRegisterVS[22].z));
|
|
||||||
PV1i.y = R123i.y;
|
|
||||||
// 6
|
|
||||||
R123i.x = ((R127i.y == 0) ? (PV1i.x) : (uf_uniformRegisterVS[21].w));
|
|
||||||
PV0i.x = R123i.x;
|
|
||||||
R123i.y = ((R127i.y == 0) ? (PV1i.y) : (uf_uniformRegisterVS[21].z));
|
|
||||||
PV0i.y = R123i.y;
|
|
||||||
R123i.z = ((R127i.y == 0) ? (R127i.z) : (uf_uniformRegisterVS[21].y));
|
|
||||||
PV0i.z = R123i.z;
|
|
||||||
R123i.w = ((R127i.y == 0) ? (R127i.w) : (uf_uniformRegisterVS[21].x));
|
|
||||||
PV0i.w = R123i.w;
|
|
||||||
// 7
|
|
||||||
R2i.x = ((R0i.z == 0) ? (uf_uniformRegisterVS[20].x) : (PV0i.w));
|
|
||||||
R2i.y = ((R0i.z == 0) ? (uf_uniformRegisterVS[20].y) : (PV0i.z));
|
|
||||||
R2i.z = ((R0i.z == 0) ? (uf_uniformRegisterVS[20].z) : (PV0i.y));
|
|
||||||
R2i.w = ((R0i.z == 0) ? (uf_uniformRegisterVS[20].w) : (PV0i.x));
|
|
||||||
// 8
|
|
||||||
predResult = (R1i.z == 0x0000000d);
|
|
||||||
activeMaskStack[3] = predResult;
|
|
||||||
activeMaskStackC[4] = predResult == true && activeMaskStackC[3] == true;
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
activeMaskStack[3] = false;
|
|
||||||
activeMaskStackC[4] = false;
|
|
||||||
}
|
|
||||||
if (activeMaskStackC[4] == true) {
|
|
||||||
// 0
|
|
||||||
PS0i = floatBitsToInt(1.0 / intBitsToFloat(uf_uniformRegisterVS[7].y));
|
|
||||||
// 1
|
|
||||||
PV1i.z = floatBitsToInt(intBitsToFloat(uf_uniformRegisterVS[1].w) * intBitsToFloat(PS0i));
|
|
||||||
PV1i.w = floatBitsToInt(intBitsToFloat(uf_uniformRegisterVS[1].z) * intBitsToFloat(PS0i));
|
|
||||||
PS1i = floatBitsToInt(1.0 / intBitsToFloat(uf_uniformRegisterVS[7].x));
|
|
||||||
// 2
|
|
||||||
R127i.x = PV1i.z;
|
|
||||||
R127i.y = PV1i.w;
|
|
||||||
PV0i.y = R127i.y;
|
|
||||||
R127i.z = floatBitsToInt(intBitsToFloat(PS1i) * intBitsToFloat(uf_uniformRegisterVS[1].x));
|
|
||||||
PV0i.z = R127i.z;
|
|
||||||
R127i.w = floatBitsToInt(intBitsToFloat(PS1i) * intBitsToFloat(uf_uniformRegisterVS[1].y));
|
|
||||||
// 3
|
|
||||||
PV1i.z = floatBitsToInt(-(intBitsToFloat(PV0i.y)) + 1.0);
|
|
||||||
PV1i.w = floatBitsToInt(-(intBitsToFloat(PV0i.z)) + 1.0);
|
|
||||||
// 4
|
|
||||||
PV0i.x = floatBitsToInt(-(intBitsToFloat(R127i.x)) + intBitsToFloat(PV1i.z));
|
|
||||||
PV0i.y = floatBitsToInt(-(intBitsToFloat(R127i.w)) + intBitsToFloat(PV1i.w));
|
|
||||||
// 5
|
|
||||||
backupReg0i = R127i.z;
|
|
||||||
R127i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R1i.y), intBitsToFloat(PV0i.x)) + intBitsToFloat(R127i.y)));
|
|
||||||
PV1i.z = R127i.z;
|
|
||||||
R126i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R1i.x), intBitsToFloat(PV0i.y)) + intBitsToFloat(backupReg0i)));
|
|
||||||
PV1i.w = R126i.w;
|
|
||||||
// 6
|
|
||||||
R127i.x = floatBitsToInt(-(intBitsToFloat(PV1i.z)) + 1.0);
|
|
||||||
PV0i.x = R127i.x;
|
|
||||||
R126i.y = floatBitsToInt(-(intBitsToFloat(PV1i.w)) + 1.0);
|
|
||||||
// 7
|
|
||||||
PV1i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.x), intBitsToFloat(uf_uniformRegisterVS[16].w)));
|
|
||||||
PV1i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.x), intBitsToFloat(uf_uniformRegisterVS[16].z)));
|
|
||||||
PV1i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.x), intBitsToFloat(uf_uniformRegisterVS[16].y)));
|
|
||||||
PV1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.x), intBitsToFloat(uf_uniformRegisterVS[16].x)));
|
|
||||||
// 8
|
|
||||||
R126i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.z), intBitsToFloat(uf_uniformRegisterVS[18].w)) + intBitsToFloat(PV1i.x)));
|
|
||||||
R127i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.z), intBitsToFloat(uf_uniformRegisterVS[18].z)) + intBitsToFloat(PV1i.y)));
|
|
||||||
R126i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.z), intBitsToFloat(uf_uniformRegisterVS[18].y)) + intBitsToFloat(PV1i.z)));
|
|
||||||
R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.z), intBitsToFloat(uf_uniformRegisterVS[18].x)) + intBitsToFloat(PV1i.w)));
|
|
||||||
PV0i.w = R123i.w;
|
|
||||||
// 9
|
|
||||||
PV1i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.x), intBitsToFloat(uf_uniformRegisterVS[17].w)));
|
|
||||||
PV1i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.x), intBitsToFloat(uf_uniformRegisterVS[17].z)));
|
|
||||||
PV1i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.x), intBitsToFloat(uf_uniformRegisterVS[17].y)));
|
|
||||||
PV1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.x), intBitsToFloat(uf_uniformRegisterVS[17].x)));
|
|
||||||
R127i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.y), intBitsToFloat(PV0i.w)));
|
|
||||||
PS1i = R127i.w;
|
|
||||||
// 10
|
|
||||||
backupReg0i = R127i.z;
|
|
||||||
backupReg0i = R127i.z;
|
|
||||||
backupReg1i = R126i.z;
|
|
||||||
R127i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.z), intBitsToFloat(uf_uniformRegisterVS[19].w)) + intBitsToFloat(PV1i.x)));
|
|
||||||
R125i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.z), intBitsToFloat(uf_uniformRegisterVS[19].z)) + intBitsToFloat(PV1i.y)));
|
|
||||||
R127i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(backupReg0i), intBitsToFloat(uf_uniformRegisterVS[19].y)) + intBitsToFloat(PV1i.z)));
|
|
||||||
R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(backupReg0i), intBitsToFloat(uf_uniformRegisterVS[19].x)) + intBitsToFloat(PV1i.w)));
|
|
||||||
PV0i.w = R123i.w;
|
|
||||||
R126i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.y), intBitsToFloat(backupReg1i)));
|
|
||||||
PS0i = R126i.z;
|
|
||||||
// 11
|
|
||||||
PV1i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.y), intBitsToFloat(R126i.x)));
|
|
||||||
PV1i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.y), intBitsToFloat(R127i.y)));
|
|
||||||
R3i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R126i.w), intBitsToFloat(PV0i.w)) + intBitsToFloat(R127i.w)));
|
|
||||||
PS1i = R3i.x;
|
|
||||||
// 12
|
|
||||||
R3i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R126i.w), intBitsToFloat(R127i.z)) + intBitsToFloat(R126i.z)));
|
|
||||||
R3i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R126i.w), intBitsToFloat(R125i.y)) + intBitsToFloat(PV1i.y)));
|
|
||||||
R3i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R126i.w), intBitsToFloat(R127i.x)) + intBitsToFloat(PV1i.x)));
|
|
||||||
}
|
|
||||||
activeMaskStack[3] = activeMaskStack[3] == false;
|
|
||||||
activeMaskStackC[4] = activeMaskStack[3] == true && activeMaskStackC[3] == true;
|
|
||||||
if (activeMaskStackC[4] == true) {
|
|
||||||
// 0
|
|
||||||
R127i.x = floatBitsToInt(float(R0i.z));
|
|
||||||
PS0i = R127i.x;
|
|
||||||
// 1
|
|
||||||
tempResultf = intBitsToFloat(PS0i);
|
|
||||||
tempResultf = floor(tempResultf);
|
|
||||||
tempResultf = clamp(tempResultf, -256.0, 255.0);
|
|
||||||
ARi.x = int(tempResultf);
|
|
||||||
PV1i.x = floatBitsToInt(tempResultf);
|
|
||||||
// 2
|
|
||||||
R3i.xyz = ivec3(uf_uniformRegisterVS[ARi.x + 16].x, uf_uniformRegisterVS[ARi.x + 16].y, uf_uniformRegisterVS[ARi.x + 16].z);
|
|
||||||
R3i.w = uf_uniformRegisterVS[ARi.x + 16].w;
|
|
||||||
}
|
|
||||||
activeMaskStackC[3] = activeMaskStack[2] == true && activeMaskStackC[2] == true;
|
|
||||||
activeMaskStackC[1] = activeMaskStack[0] == true && activeMaskStackC[0] == true;
|
|
||||||
if (activeMaskStackC[1] == true) {
|
|
||||||
activeMaskStack[1] = activeMaskStack[0];
|
|
||||||
activeMaskStackC[2] = activeMaskStackC[1];
|
|
||||||
// 0
|
|
||||||
predResult = (0 != uf_uniformRegisterVS[3].x);
|
|
||||||
activeMaskStack[1] = predResult;
|
|
||||||
activeMaskStackC[2] = predResult == true && activeMaskStackC[1] == true;
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
activeMaskStack[1] = false;
|
|
||||||
activeMaskStackC[2] = false;
|
|
||||||
}
|
|
||||||
if (activeMaskStackC[2] == true) {
|
|
||||||
// 0
|
|
||||||
backupReg0i = R0i.y;
|
|
||||||
backupReg1i = R0i.w;
|
|
||||||
R2i.x = floatBitsToInt(dot(vec4(intBitsToFloat(R0i.x), intBitsToFloat(backupReg0i), intBitsToFloat(R4i.z), intBitsToFloat(backupReg1i)), vec4(intBitsToFloat(uf_uniformRegisterVS[20].x), intBitsToFloat(uf_uniformRegisterVS[20].y), intBitsToFloat(uf_uniformRegisterVS[20].z), intBitsToFloat(uf_uniformRegisterVS[20].w))));
|
|
||||||
PV0i.x = R2i.x;
|
|
||||||
PV0i.y = R2i.x;
|
|
||||||
PV0i.z = R2i.x;
|
|
||||||
PV0i.w = R2i.x;
|
|
||||||
// 1
|
|
||||||
backupReg0i = R0i.x;
|
|
||||||
backupReg1i = R0i.w;
|
|
||||||
tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(backupReg0i), intBitsToFloat(R0i.y), intBitsToFloat(R4i.z), intBitsToFloat(backupReg1i)), vec4(intBitsToFloat(uf_uniformRegisterVS[21].x), intBitsToFloat(uf_uniformRegisterVS[21].y), intBitsToFloat(uf_uniformRegisterVS[21].z), intBitsToFloat(uf_uniformRegisterVS[21].w))));
|
|
||||||
PV1i.x = tempi.x;
|
|
||||||
PV1i.y = tempi.x;
|
|
||||||
PV1i.z = tempi.x;
|
|
||||||
PV1i.w = tempi.x;
|
|
||||||
R2i.y = tempi.x;
|
|
||||||
// 2
|
|
||||||
backupReg0i = R0i.x;
|
|
||||||
backupReg1i = R0i.y;
|
|
||||||
backupReg2i = R0i.w;
|
|
||||||
tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(backupReg0i), intBitsToFloat(backupReg1i), intBitsToFloat(R4i.z), intBitsToFloat(backupReg2i)), vec4(intBitsToFloat(uf_uniformRegisterVS[22].x), intBitsToFloat(uf_uniformRegisterVS[22].y), intBitsToFloat(uf_uniformRegisterVS[22].z), intBitsToFloat(uf_uniformRegisterVS[22].w))));
|
|
||||||
PV0i.x = tempi.x;
|
|
||||||
PV0i.y = tempi.x;
|
|
||||||
PV0i.z = tempi.x;
|
|
||||||
PV0i.w = tempi.x;
|
|
||||||
R2i.z = tempi.x;
|
|
||||||
// 3
|
|
||||||
backupReg0i = R0i.x;
|
|
||||||
backupReg1i = R0i.y;
|
|
||||||
tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(backupReg0i), intBitsToFloat(backupReg1i), intBitsToFloat(R4i.z), intBitsToFloat(R0i.w)), vec4(intBitsToFloat(uf_uniformRegisterVS[23].x), intBitsToFloat(uf_uniformRegisterVS[23].y), intBitsToFloat(uf_uniformRegisterVS[23].z), intBitsToFloat(uf_uniformRegisterVS[23].w))));
|
|
||||||
PV1i.x = tempi.x;
|
|
||||||
PV1i.y = tempi.x;
|
|
||||||
PV1i.z = tempi.x;
|
|
||||||
PV1i.w = tempi.x;
|
|
||||||
R2i.w = tempi.x;
|
|
||||||
}
|
|
||||||
activeMaskStack[1] = activeMaskStack[1] == false;
|
|
||||||
activeMaskStackC[2] = activeMaskStack[1] == true && activeMaskStackC[1] == true;
|
|
||||||
if (activeMaskStackC[2] == true) {
|
|
||||||
activeMaskStack[2] = activeMaskStack[1];
|
|
||||||
activeMaskStackC[3] = activeMaskStackC[2];
|
|
||||||
// 0
|
|
||||||
R0i.z = uf_uniformRegisterVS[2].x & int(1);
|
|
||||||
// 1
|
|
||||||
predResult = (0 != R0i.z);
|
|
||||||
activeMaskStack[2] = predResult;
|
|
||||||
activeMaskStackC[3] = predResult == true && activeMaskStackC[2] == true;
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
activeMaskStack[2] = false;
|
|
||||||
activeMaskStackC[3] = false;
|
|
||||||
}
|
|
||||||
if (activeMaskStackC[3] == true) {
|
|
||||||
activeMaskStack[3] = activeMaskStack[2];
|
|
||||||
activeMaskStackC[4] = activeMaskStackC[3];
|
|
||||||
// 0
|
|
||||||
R0i.y = uf_uniformRegisterVS[2].x & 0x00000002;
|
|
||||||
// 1
|
|
||||||
predResult = (0 != R0i.y);
|
|
||||||
activeMaskStack[3] = predResult;
|
|
||||||
activeMaskStackC[4] = predResult == true && activeMaskStackC[3] == true;
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
activeMaskStack[3] = false;
|
|
||||||
activeMaskStackC[4] = false;
|
|
||||||
}
|
|
||||||
if (activeMaskStackC[4] == true) {
|
|
||||||
// 0
|
|
||||||
R127i.x = uf_uniformRegisterVS[2].x & 0x00010000;
|
|
||||||
R127i.y = uf_uniformRegisterVS[2].x & 0x00000010;
|
|
||||||
PV0i.y = R127i.y;
|
|
||||||
R125i.z = uf_uniformRegisterVS[2].x & 0x00000004;
|
|
||||||
R127i.w = uf_uniformRegisterVS[2].x & 0x00000020;
|
|
||||||
// 1
|
|
||||||
PV1i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_uniformRegisterVS[15].y), intBitsToFloat(uf_uniformRegisterVS[12].y)));
|
|
||||||
PV1i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_uniformRegisterVS[15].x), intBitsToFloat(uf_uniformRegisterVS[12].x)));
|
|
||||||
PV1i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_uniformRegisterVS[15].y), intBitsToFloat(uf_uniformRegisterVS[12].x)));
|
|
||||||
PV1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_uniformRegisterVS[15].x), intBitsToFloat(uf_uniformRegisterVS[12].y)));
|
|
||||||
R127i.z = ((PV0i.y == 0) ? (R2i.y) : (R2i.y));
|
|
||||||
PS1i = R127i.z;
|
|
||||||
// 2
|
|
||||||
R123i.x = ((R127i.y == 0) ? (R2i.w) : (R2i.w));
|
|
||||||
PV0i.x = R123i.x;
|
|
||||||
R123i.y = ((R127i.y == 0) ? (R2i.z) : (R2i.z));
|
|
||||||
PV0i.y = R123i.y;
|
|
||||||
R126i.z = ((R127i.x == 0) ? (PV1i.x) : (PV1i.z));
|
|
||||||
PV0i.z = R126i.z;
|
|
||||||
R123i.w = ((R127i.x == 0) ? (PV1i.y) : (PV1i.w));
|
|
||||||
PV0i.w = R123i.w;
|
|
||||||
R124i.y = uf_uniformRegisterVS[2].x & 0x00000008;
|
|
||||||
PS0i = R124i.y;
|
|
||||||
// 3
|
|
||||||
R0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.x), intBitsToFloat(PV0i.w)));
|
|
||||||
PV1i.x = R0i.x;
|
|
||||||
R126i.y = floatBitsToInt(-(intBitsToFloat(PV0i.w)) + 1.0);
|
|
||||||
PV1i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.z), intBitsToFloat(PV0i.z)));
|
|
||||||
R123i.w = ((R127i.w == 0) ? (PV0i.y) : (PV0i.y));
|
|
||||||
PV1i.w = R123i.w;
|
|
||||||
R122i.x = ((R127i.w == 0) ? (PV0i.x) : (PV0i.x));
|
|
||||||
PS1i = R122i.x;
|
|
||||||
// 4
|
|
||||||
backupReg0i = R127i.y;
|
|
||||||
R123i.x = ((R127i.w == 0) ? (R127i.z) : (PV1i.z));
|
|
||||||
PV0i.x = R123i.x;
|
|
||||||
R127i.y = floatBitsToInt(-(intBitsToFloat(R126i.z)) + 1.0);
|
|
||||||
R127i.z = ((R125i.z == 0) ? (PV1i.w) : (PV1i.w));
|
|
||||||
R123i.w = ((backupReg0i == 0) ? (R2i.x) : (PV1i.x));
|
|
||||||
PV0i.w = R123i.w;
|
|
||||||
R126i.z = ((R125i.z == 0) ? (PS1i) : (PS1i));
|
|
||||||
PS0i = R126i.z;
|
|
||||||
// 5
|
|
||||||
R127i.x = ((R125i.z == 0) ? (PV0i.x) : (PV0i.x));
|
|
||||||
PV1i.x = R127i.x;
|
|
||||||
R125i.y = ((R127i.w == 0) ? (PV0i.w) : (PV0i.w));
|
|
||||||
PV1i.y = R125i.y;
|
|
||||||
// 6
|
|
||||||
R126i.x = floatBitsToInt(intBitsToFloat(PV1i.x) + intBitsToFloat(R127i.y));
|
|
||||||
PV0i.z = floatBitsToInt(intBitsToFloat(PV1i.y) + intBitsToFloat(R126i.y));
|
|
||||||
// 7
|
|
||||||
R123i.y = ((R125i.z == 0) ? (R125i.y) : (PV0i.z));
|
|
||||||
PV1i.y = R123i.y;
|
|
||||||
// 8
|
|
||||||
R2i.x = ((R124i.y == 0) ? (PV1i.y) : (PV1i.y));
|
|
||||||
R2i.y = ((R124i.y == 0) ? (R127i.x) : (R126i.x));
|
|
||||||
R2i.z = ((R124i.y == 0) ? (R127i.z) : (R127i.z));
|
|
||||||
R2i.w = ((R124i.y == 0) ? (R126i.z) : (R126i.z));
|
|
||||||
PS0i = R2i.w;
|
|
||||||
}
|
|
||||||
activeMaskStackC[3] = activeMaskStack[2] == true && activeMaskStackC[2] == true;
|
|
||||||
if (activeMaskStackC[3] == true) {
|
|
||||||
// 0
|
|
||||||
R0i.x = floatBitsToInt(-(intBitsToFloat(R2i.x)) + 1.0);
|
|
||||||
PV0i.x = R0i.x;
|
|
||||||
R126i.y = uf_uniformRegisterVS[2].x & 0x00010000;
|
|
||||||
R127i.z = uf_uniformRegisterVS[2].x & 0x00040000;
|
|
||||||
PV0i.w = uf_uniformRegisterVS[2].x & 0x00020000;
|
|
||||||
// 1
|
|
||||||
R123i.x = ((PV0i.w == 0) ? (R2i.z) : (R2i.z));
|
|
||||||
PV1i.x = R123i.x;
|
|
||||||
R127i.y = ((PV0i.w == 0) ? (R2i.y) : (R2i.y));
|
|
||||||
PV1i.y = R127i.y;
|
|
||||||
R123i.z = ((PV0i.w == 0) ? (R2i.x) : (PV0i.x));
|
|
||||||
PV1i.z = R123i.z;
|
|
||||||
R123i.w = ((PV0i.w == 0) ? (R2i.w) : (R2i.w));
|
|
||||||
PV1i.w = R123i.w;
|
|
||||||
// 2
|
|
||||||
R127i.x = ((R127i.z == 0) ? (PV1i.z) : (PV1i.z));
|
|
||||||
PV0i.y = floatBitsToInt(-(intBitsToFloat(PV1i.y)) + 1.0);
|
|
||||||
R126i.z = ((R127i.z == 0) ? (PV1i.x) : (PV1i.x));
|
|
||||||
R127i.w = ((R127i.z == 0) ? (PV1i.w) : (PV1i.w));
|
|
||||||
// 3
|
|
||||||
R123i.w = ((R127i.z == 0) ? (R127i.y) : (PV0i.y));
|
|
||||||
PV1i.w = R123i.w;
|
|
||||||
// 4
|
|
||||||
R2i.x = ((R126i.y == 0) ? (R127i.x) : (PV1i.w));
|
|
||||||
R2i.y = ((R126i.y == 0) ? (PV1i.w) : (R127i.x));
|
|
||||||
R2i.z = ((R126i.y == 0) ? (R126i.z) : (R126i.z));
|
|
||||||
R2i.w = ((R126i.y == 0) ? (R127i.w) : (R127i.w));
|
|
||||||
}
|
|
||||||
activeMaskStackC[1] = activeMaskStack[0] == true && activeMaskStackC[0] == true;
|
|
||||||
if (activeMaskStackC[1] == true) {
|
|
||||||
// 0
|
|
||||||
tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R2i.x), intBitsToFloat(R2i.y), intBitsToFloat(R2i.z), intBitsToFloat(R2i.w)), vec4(intBitsToFloat(uf_uniformRegisterVS[14].x), intBitsToFloat(uf_uniformRegisterVS[14].y), intBitsToFloat(uf_uniformRegisterVS[14].z), intBitsToFloat(uf_uniformRegisterVS[14].w))));
|
|
||||||
PV0i.x = tempi.x;
|
|
||||||
PV0i.y = tempi.x;
|
|
||||||
PV0i.z = tempi.x;
|
|
||||||
PV0i.w = tempi.x;
|
|
||||||
// 1
|
|
||||||
PV1i.x = PV0i.x;
|
|
||||||
R0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R3i.y), intBitsToFloat(uf_uniformRegisterVS[0].y)));
|
|
||||||
R0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R3i.z), intBitsToFloat(uf_uniformRegisterVS[0].z)));
|
|
||||||
R1i.w = PV0i.x;
|
|
||||||
R0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R3i.x), intBitsToFloat(uf_uniformRegisterVS[0].x)));
|
|
||||||
PS1i = R0i.x;
|
|
||||||
// 2
|
|
||||||
R1i.x = floatBitsToInt(dot(vec4(intBitsToFloat(R2i.x), intBitsToFloat(R2i.y), intBitsToFloat(R2i.z), intBitsToFloat(R2i.w)), vec4(intBitsToFloat(uf_uniformRegisterVS[13].x), intBitsToFloat(uf_uniformRegisterVS[13].y), intBitsToFloat(uf_uniformRegisterVS[13].z), intBitsToFloat(uf_uniformRegisterVS[13].w))));
|
|
||||||
PV0i.x = R1i.x;
|
|
||||||
PV0i.y = R1i.x;
|
|
||||||
PV0i.z = R1i.x;
|
|
||||||
PV0i.w = R1i.x;
|
|
||||||
R1i.y = floatBitsToInt(-(intBitsToFloat(PV1i.x)) + 1.0);
|
|
||||||
PS0i = R1i.y;
|
|
||||||
// 3
|
|
||||||
R0i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R3i.w), intBitsToFloat(uf_uniformRegisterVS[0].w)));
|
|
||||||
}
|
|
||||||
// export
|
|
||||||
gl_Position = vec4(intBitsToFloat(R6i.x), intBitsToFloat(R6i.y), intBitsToFloat(R6i.z)*hideCamera, intBitsToFloat(R6i.w));
|
|
||||||
// export
|
|
||||||
passParameterSem0 = vec4(intBitsToFloat(R0i.x), intBitsToFloat(R0i.y), intBitsToFloat(R0i.z), intBitsToFloat(R0i.w));
|
|
||||||
// export
|
|
||||||
passParameterSem1 = vec4(intBitsToFloat(R1i.x), intBitsToFloat(R1i.y), intBitsToFloat(R1i.x), intBitsToFloat(R1i.w));
|
|
||||||
}
|
|
@ -1,125 +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 3e0262467e8add7d
|
|
||||||
// Used for: Some leftovers from the Camera GUI
|
|
||||||
|
|
||||||
uniform ivec4 uf_remappedVS[4];
|
|
||||||
uniform vec2 uf_windowSpaceToClipSpaceTransform;
|
|
||||||
layout(location = 0) in uvec4 attrDataSem0;
|
|
||||||
layout(location = 1) in uvec4 attrDataSem1;
|
|
||||||
layout(location = 2) in uvec4 attrDataSem2;
|
|
||||||
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){ 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 R126i = ivec4(0);
|
|
||||||
ivec4 R127i = ivec4(0);
|
|
||||||
uvec4 attrDecoder;
|
|
||||||
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 = ivec4(gl_VertexID, 0, 0, gl_InstanceID);
|
|
||||||
attrDecoder.xyz = attrDataSem2.xyz;
|
|
||||||
attrDecoder.xyz = (attrDecoder.xyz>>24)|((attrDecoder.xyz>>8)&0xFF00)|((attrDecoder.xyz<<8)&0xFF0000)|((attrDecoder.xyz<<24));
|
|
||||||
attrDecoder.w = 0;
|
|
||||||
R3i = ivec4(int(attrDecoder.x), int(attrDecoder.y), int(attrDecoder.z), floatBitsToInt(1.0));
|
|
||||||
attrDecoder.xyzw = floatBitsToUint(vec4(attrDataSem0.xyzw)/255.0);
|
|
||||||
R1i = ivec4(int(attrDecoder.x), int(attrDecoder.y), int(attrDecoder.z), int(attrDecoder.w));
|
|
||||||
attrDecoder.xyz = attrDataSem1.xyz;
|
|
||||||
attrDecoder.xyz = (attrDecoder.xyz>>24)|((attrDecoder.xyz>>8)&0xFF00)|((attrDecoder.xyz<<8)&0xFF0000)|((attrDecoder.xyz<<24));
|
|
||||||
attrDecoder.w = 0;
|
|
||||||
R2i = ivec4(int(attrDecoder.x), int(attrDecoder.y), int(attrDecoder.z), floatBitsToInt(1.0));
|
|
||||||
|
|
||||||
|
|
||||||
int hideText = 1;
|
|
||||||
if (uf_remappedVS[0].w == -1012724819) {
|
|
||||||
hideText = 2;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
// 0
|
|
||||||
R126i.x = 0;
|
|
||||||
PV0i.y = floatBitsToInt(-(intBitsToFloat(R1i.w)));
|
|
||||||
R127i.z = ((0.0 > intBitsToFloat(R2i.z))?int(0xFFFFFFFF):int(0x0));
|
|
||||||
PV0i.z = R127i.z;
|
|
||||||
R127i.w = 0x3f800000;
|
|
||||||
PV0i.w = R127i.w;
|
|
||||||
R127i.x = floatBitsToInt(-(intBitsToFloat(R2i.z)) + -(1.0));
|
|
||||||
PS0i = R127i.x;
|
|
||||||
// 1
|
|
||||||
R0i.x = floatBitsToInt(dot(vec4(intBitsToFloat(R3i.x),intBitsToFloat(R3i.y),intBitsToFloat(R3i.z),intBitsToFloat(PV0i.w)),vec4(intBitsToFloat(uf_remappedVS[0].x),intBitsToFloat(uf_remappedVS[0].y),intBitsToFloat(uf_remappedVS[0].z),intBitsToFloat(uf_remappedVS[0].w))));
|
|
||||||
PV1i.x = R0i.x;
|
|
||||||
PV1i.y = R0i.x;
|
|
||||||
PV1i.z = R0i.x;
|
|
||||||
PV1i.w = R0i.x;
|
|
||||||
R4i.w = ((PV0i.z == 0)?(R1i.w):(PV0i.y));
|
|
||||||
PS1i = R4i.w;
|
|
||||||
// 2
|
|
||||||
tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R3i.x),intBitsToFloat(R3i.y),intBitsToFloat(R3i.z),intBitsToFloat(R127i.w)),vec4(intBitsToFloat(uf_remappedVS[1].x),intBitsToFloat(uf_remappedVS[1].y),intBitsToFloat(uf_remappedVS[1].z),intBitsToFloat(uf_remappedVS[1].w))));
|
|
||||||
PV0i.x = tempi.x;
|
|
||||||
PV0i.y = tempi.x;
|
|
||||||
PV0i.z = tempi.x;
|
|
||||||
PV0i.w = tempi.x;
|
|
||||||
R0i.y = tempi.x;
|
|
||||||
R5i.z = ((R127i.z == 0)?(R2i.z):(R127i.x));
|
|
||||||
PS0i = R5i.z;
|
|
||||||
// 3
|
|
||||||
tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R3i.x),intBitsToFloat(R3i.y),intBitsToFloat(R3i.z),intBitsToFloat(R127i.w)),vec4(intBitsToFloat(uf_remappedVS[2].x),intBitsToFloat(uf_remappedVS[2].y),intBitsToFloat(uf_remappedVS[2].z),intBitsToFloat(uf_remappedVS[2].w))));
|
|
||||||
PV1i.x = tempi.x;
|
|
||||||
PV1i.y = tempi.x;
|
|
||||||
PV1i.z = tempi.x;
|
|
||||||
PV1i.w = tempi.x;
|
|
||||||
R0i.z = tempi.x;
|
|
||||||
R4i.x = ((R127i.z == 0)?(R1i.x):(R1i.x));
|
|
||||||
PS1i = R4i.x;
|
|
||||||
// 4
|
|
||||||
tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R3i.x),intBitsToFloat(R3i.y),intBitsToFloat(R3i.z),intBitsToFloat(R127i.w)),vec4(intBitsToFloat(uf_remappedVS[3].x),intBitsToFloat(uf_remappedVS[3].y),intBitsToFloat(uf_remappedVS[3].z),intBitsToFloat(uf_remappedVS[3].w))));
|
|
||||||
PV0i.x = tempi.x;
|
|
||||||
PV0i.y = tempi.x;
|
|
||||||
PV0i.z = tempi.x;
|
|
||||||
PV0i.w = tempi.x;
|
|
||||||
R0i.w = tempi.x;
|
|
||||||
R4i.y = ((R127i.z == 0)?(R1i.y):(R1i.y));
|
|
||||||
PS0i = R4i.y;
|
|
||||||
// 5
|
|
||||||
R5i.x = ((R127i.z == 0)?(R2i.x):(R2i.x));
|
|
||||||
R5i.y = ((R127i.z == 0)?(R2i.y):(R2i.y));
|
|
||||||
R4i.z = ((R127i.z == 0)?(R1i.z):(R1i.z));
|
|
||||||
// 6
|
|
||||||
R5i.w = ((R127i.z == 0)?(R126i.x):(R126i.x));
|
|
||||||
// export
|
|
||||||
gl_Position = vec4(intBitsToFloat(R0i.x), intBitsToFloat(R0i.y), intBitsToFloat(R0i.z)*hideText, intBitsToFloat(R0i.w));
|
|
||||||
// export
|
|
||||||
passParameterSem0 = vec4(intBitsToFloat(R4i.x), intBitsToFloat(R4i.y), intBitsToFloat(R4i.z), intBitsToFloat(R4i.w));
|
|
||||||
// export
|
|
||||||
passParameterSem1 = vec4(intBitsToFloat(R5i.x), intBitsToFloat(R5i.y), intBitsToFloat(R5i.z), intBitsToFloat(R5i.w));
|
|
||||||
}
|
|
@ -1,161 +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 a8f3ec17a11d4a50
|
|
||||||
// Used for: Specific removing of text
|
|
||||||
|
|
||||||
bool CameraObjectLabel = false;
|
|
||||||
// Enable if you want to...
|
|
||||||
// - See the orange colored label from any objects in the camera view. Example: The orange text shown on this photo https://i.pinimg.com/originals/dd/88/68/dd8868f7bb9cf6497ecd0307fd3ce82f.jpg
|
|
||||||
// - See the 'x' character next to e.g. your 'x6 Mighty Bananas'. (Minor unsolvable bug).
|
|
||||||
// False (default) if you want to...
|
|
||||||
// - Take selfies without the orange labels of your weapon or nearby objects.
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
bool hideAllText = false;
|
|
||||||
// False is default, true is turned on. Does what the name suggests, affects most text, not recommended for actual gameplay.
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// -------------------------------
|
|
||||||
|
|
||||||
uniform ivec4 uf_remappedVS[4];
|
|
||||||
uniform vec2 uf_windowSpaceToClipSpaceTransform;
|
|
||||||
layout(location = 0) in uvec4 attrDataSem0;
|
|
||||||
layout(location = 1) in uvec4 attrDataSem1;
|
|
||||||
layout(location = 2) in uvec4 attrDataSem2;
|
|
||||||
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){ 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 R126i = ivec4(0);
|
|
||||||
ivec4 R127i = ivec4(0);
|
|
||||||
uvec4 attrDecoder;
|
|
||||||
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 = ivec4(gl_VertexID, 0, 0, gl_InstanceID);
|
|
||||||
attrDecoder.xyz = attrDataSem2.xyz;
|
|
||||||
attrDecoder.xyz = (attrDecoder.xyz>>24)|((attrDecoder.xyz>>8)&0xFF00)|((attrDecoder.xyz<<8)&0xFF0000)|((attrDecoder.xyz<<24));
|
|
||||||
attrDecoder.w = 0;
|
|
||||||
R3i = ivec4(int(attrDecoder.x), int(attrDecoder.y), int(attrDecoder.z), floatBitsToInt(1.0));
|
|
||||||
attrDecoder.xyzw = floatBitsToUint(vec4(attrDataSem0.xyzw)/255.0);
|
|
||||||
R1i = ivec4(int(attrDecoder.x), int(attrDecoder.y), int(attrDecoder.z), int(attrDecoder.w));
|
|
||||||
attrDecoder.xyz = attrDataSem1.xyz;
|
|
||||||
attrDecoder.xyz = (attrDecoder.xyz>>24)|((attrDecoder.xyz>>8)&0xFF00)|((attrDecoder.xyz<<8)&0xFF0000)|((attrDecoder.xyz<<24));
|
|
||||||
attrDecoder.w = 0;
|
|
||||||
R2i = ivec4(int(attrDecoder.x), int(attrDecoder.y), int(attrDecoder.z), floatBitsToInt(1.0));
|
|
||||||
|
|
||||||
// Specifically target text with code that uses constants from both uniforms and inputs. These variables and code shouldn't be touched!!! Use the options above for proper controls.
|
|
||||||
int hideText = 1;
|
|
||||||
|
|
||||||
if (attrDataSem2.y <= 2000000000) { // This separates the orange label text from the inventory number. Removes the 'x' with the label, but does make the inventory numbers not disappear with the label text.
|
|
||||||
if (!CameraObjectLabel) {
|
|
||||||
hideText = 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (uf_remappedVS[0].w == -1052388992 || uf_remappedVS[0].w == 1093474128 || (uf_remappedVS[0].w == 0 && uf_remappedVS[1].w != 0) || hideAllText) { // Code that specifically targets text. It separates the text being drawn with differences in the uniform.
|
|
||||||
hideText = 2;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
if ((uf_remappedVS[0].x == 1069928832 && uf_remappedVS[0].y == 0 && uf_remappedVS[0].z == 0) &&
|
|
||||||
(uf_remappedVS[1].x == 0 && uf_remappedVS[1].y == -1070606677 && uf_remappedVS[1].z == 0) &&
|
|
||||||
(uf_remappedVS[2].x == 0 && uf_remappedVS[2].y == 0 && uf_remappedVS[2].z == -1082128754 && uf_remappedVS[2].w == 1148637833) &&
|
|
||||||
(uf_remappedVS[3].x == 0 && uf_remappedVS[3].y == 0 && uf_remappedVS[3].z == -1082130432 && uf_remappedVS[3].w == 1148667362)) {
|
|
||||||
hideText += 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
// 0
|
|
||||||
R126i.x = 0;
|
|
||||||
PV0i.y = floatBitsToInt(-(intBitsToFloat(R1i.w)));
|
|
||||||
R127i.z = ((0.0 > intBitsToFloat(R2i.z))?int(0xFFFFFFFF):int(0x0));
|
|
||||||
PV0i.z = R127i.z;
|
|
||||||
R127i.w = 0x3f800000;
|
|
||||||
PV0i.w = R127i.w;
|
|
||||||
R127i.x = floatBitsToInt(-(intBitsToFloat(R2i.z)) + -(1.0));
|
|
||||||
PS0i = R127i.x;
|
|
||||||
// 1
|
|
||||||
R0i.x = floatBitsToInt(dot(vec4(intBitsToFloat(R3i.x),intBitsToFloat(R3i.y),intBitsToFloat(R3i.z),intBitsToFloat(PV0i.w)),vec4(intBitsToFloat(uf_remappedVS[0].x),intBitsToFloat(uf_remappedVS[0].y),intBitsToFloat(uf_remappedVS[0].z),intBitsToFloat(uf_remappedVS[0].w))));
|
|
||||||
PV1i.x = R0i.x;
|
|
||||||
PV1i.y = R0i.x;
|
|
||||||
PV1i.z = R0i.x;
|
|
||||||
PV1i.w = R0i.x;
|
|
||||||
R4i.w = ((PV0i.z == 0)?(R1i.w):(PV0i.y));
|
|
||||||
PS1i = R4i.w;
|
|
||||||
// 2
|
|
||||||
tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R3i.x),intBitsToFloat(R3i.y),intBitsToFloat(R3i.z),intBitsToFloat(R127i.w)),vec4(intBitsToFloat(uf_remappedVS[1].x),intBitsToFloat(uf_remappedVS[1].y),intBitsToFloat(uf_remappedVS[1].z),intBitsToFloat(uf_remappedVS[1].w))));
|
|
||||||
PV0i.x = tempi.x;
|
|
||||||
PV0i.y = tempi.x;
|
|
||||||
PV0i.z = tempi.x;
|
|
||||||
PV0i.w = tempi.x;
|
|
||||||
R0i.y = tempi.x;
|
|
||||||
R5i.z = ((R127i.z == 0)?(R2i.z):(R127i.x));
|
|
||||||
PS0i = R5i.z;
|
|
||||||
// 3
|
|
||||||
tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R3i.x),intBitsToFloat(R3i.y),intBitsToFloat(R3i.z),intBitsToFloat(R127i.w)),vec4(intBitsToFloat(uf_remappedVS[2].x),intBitsToFloat(uf_remappedVS[2].y),intBitsToFloat(uf_remappedVS[2].z),intBitsToFloat(uf_remappedVS[2].w))));
|
|
||||||
PV1i.x = tempi.x;
|
|
||||||
PV1i.y = tempi.x;
|
|
||||||
PV1i.z = tempi.x;
|
|
||||||
PV1i.w = tempi.x;
|
|
||||||
R0i.z = tempi.x;
|
|
||||||
R4i.x = ((R127i.z == 0)?(R1i.x):(R1i.x));
|
|
||||||
PS1i = R4i.x;
|
|
||||||
// 4
|
|
||||||
tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R3i.x),intBitsToFloat(R3i.y),intBitsToFloat(R3i.z),intBitsToFloat(R127i.w)),vec4(intBitsToFloat(uf_remappedVS[3].x),intBitsToFloat(uf_remappedVS[3].y),intBitsToFloat(uf_remappedVS[3].z),intBitsToFloat(uf_remappedVS[3].w))));
|
|
||||||
PV0i.x = tempi.x;
|
|
||||||
PV0i.y = tempi.x;
|
|
||||||
PV0i.z = tempi.x;
|
|
||||||
PV0i.w = tempi.x;
|
|
||||||
R0i.w = tempi.x;
|
|
||||||
R4i.y = ((R127i.z == 0)?(R1i.y):(R1i.y));
|
|
||||||
PS0i = R4i.y;
|
|
||||||
// 5
|
|
||||||
R5i.x = ((R127i.z == 0)?(R2i.x):(R2i.x));
|
|
||||||
R5i.y = ((R127i.z == 0)?(R2i.y):(R2i.y));
|
|
||||||
R4i.z = ((R127i.z == 0)?(R1i.z):(R1i.z));
|
|
||||||
// 6
|
|
||||||
R5i.w = ((R127i.z == 0)?(R126i.x):(R126i.x));
|
|
||||||
|
|
||||||
// export
|
|
||||||
gl_Position = vec4(intBitsToFloat(R0i.x), intBitsToFloat(R0i.y), intBitsToFloat(R0i.z)*hideText, intBitsToFloat(R0i.w));
|
|
||||||
// export
|
|
||||||
passParameterSem0 = vec4(intBitsToFloat(R4i.x), intBitsToFloat(R4i.y), intBitsToFloat(R4i.z), intBitsToFloat(R4i.w));
|
|
||||||
// export
|
|
||||||
passParameterSem1 = vec4(intBitsToFloat(R5i.x), intBitsToFloat(R5i.y), intBitsToFloat(R5i.z), intBitsToFloat(R5i.w));
|
|
||||||
}
|
|
@ -1,395 +0,0 @@
|
|||||||
[Definition]
|
|
||||||
titleIds = 00050000101C9300,00050000101C9400,00050000101C9500
|
|
||||||
name = "The Legend of Zelda: Breath of the Wild - Minimalistic GUI V1.0".
|
|
||||||
version = 2
|
|
||||||
|
|
||||||
# This pack changes the GUI to a modern looking GUI and cleans up things like menu's and the camera rune.
|
|
||||||
# Minor (random, might be better/worse) gameplay compromises.
|
|
||||||
|
|
||||||
# Some small text bugs:
|
|
||||||
# - e.g. missing the 'x' character from 'x6 Mighty Bananas'. Can be fixed in the shader file named `a8f3ec17a11d4a50_0000000000000000_vs.txt`, where you can find more info.
|
|
||||||
# - Missing bonus modifier text from inventory screen.
|
|
||||||
# - Holding items in the inventory or having a second or third etc.. loading screen seems to break text and HUD prompts after you've done this.
|
|
||||||
# - Might be related to the thing above, random texture corruption from rules.txt, not aware of any solution. Probably the circumstances, but it seems like some memory leak issue. Higher GPU accuracy and drawDone could decrease how often/fast it appears.
|
|
||||||
|
|
||||||
# If you find more bugs you can make an issue on the Github repository. If you don't want/have a github account, you can also leave a message in the gfx_packs channel in the official Cemu discord.
|
|
||||||
|
|
||||||
|
|
||||||
# This pack got renamed from CleanCameraRune pack due to it no longer affecting gameplay and having several menu changes.
|
|
||||||
# -----------------------------------------------------------------
|
|
||||||
|
|
||||||
|
|
||||||
# >>> Camera UI <<<
|
|
||||||
#[TextureRedefine] # Disable Photo Lock, already disabled!!! # 239df000_fmt0034_mip00_200x200_tm04_sw00000000.bmp
|
|
||||||
#width = 200
|
|
||||||
#height = 200
|
|
||||||
#formats = 0x034
|
|
||||||
#tilemodes = 4
|
|
||||||
#overwriteHeight = 1
|
|
||||||
#overwriteWidth = 1
|
|
||||||
# Affects leaves (and maybe more)!
|
|
||||||
|
|
||||||
[TextureRedefine] # Disable Sheikah Opening Animation # 238dd000_fmt0034_mip00_314x358_tm04_sw00000700.bmp
|
|
||||||
width = 314
|
|
||||||
height = 358
|
|
||||||
formats = 0x034
|
|
||||||
tilemodes = 4
|
|
||||||
overwriteFormat = 0x001 # UNORM -> SNORM
|
|
||||||
|
|
||||||
[TextureRedefine] # Removes Storage Numbers # f4252800_fmt001a_mip00_24x24_tm04_sw00000000.bmp
|
|
||||||
width = 24
|
|
||||||
height = 24
|
|
||||||
formats = 0x001a
|
|
||||||
tilemodes = 4
|
|
||||||
overwriteFormat = 0x021a # UNORM -> SNORM
|
|
||||||
|
|
||||||
[TextureRedefine] # Remove the zoom triangle # 229f1000_fmt0034_mip00_75x75_tm04_sw00000000.bmp
|
|
||||||
width = 75
|
|
||||||
height = 75
|
|
||||||
formats = 0x034
|
|
||||||
tilemodes = 4
|
|
||||||
overwriteFormat = 0x001 # BC4_UNORM -> R8_UNORM
|
|
||||||
|
|
||||||
[TextureRedefine] # Remove the zoom line # 236ad000_fmt0034_mip00_8x8_tm02_sw00000000.bmp
|
|
||||||
width = 8
|
|
||||||
height = 8
|
|
||||||
formats = 0x034
|
|
||||||
tilemodes = 2
|
|
||||||
overwriteFormat = 0x001 # BC4_UNORM -> R8_UNORM
|
|
||||||
|
|
||||||
[TextureRedefine] # Remove the orange borders # 23379900_fmt0034_mip00_26x26_tm02_sw00000000.bmp
|
|
||||||
width = 26
|
|
||||||
height = 26
|
|
||||||
formats = 0x034
|
|
||||||
tilemodes = 2
|
|
||||||
overwriteFormat = 0x001 # BC4_UNORM -> R8_UNORM
|
|
||||||
|
|
||||||
|
|
||||||
# >>> MISC <<<
|
|
||||||
[TextureRedefine] # Disable Camera Vignette # 2330e000_fmt0034_mip00_242x162_tm04_sw00000100.bmp
|
|
||||||
width = 242
|
|
||||||
height = 162
|
|
||||||
formats = 0x034
|
|
||||||
tilemodes = 4
|
|
||||||
overwriteFormat = 0x001 # BC4_UNORM -> R8_UNORM
|
|
||||||
|
|
||||||
[TextureRedefine] # Disable Background 'Lines' # 2258b000_fmt0034_mip00_13x305_tm04_sw00000400.bmp
|
|
||||||
width = 13
|
|
||||||
height = 305
|
|
||||||
formats = 0x034
|
|
||||||
tilemodes = 4
|
|
||||||
overwriteFormat = 0x001 # BC4_UNORM -> R8_UNORM
|
|
||||||
|
|
||||||
[TextureRedefine] # Removing Border Runes # 2005e000_fmt0034_mip00_32x1024_tm04_sw00000000.bmp
|
|
||||||
width = 32
|
|
||||||
height = 1024
|
|
||||||
formats = 0x034
|
|
||||||
tilemodes = 4
|
|
||||||
overwriteFormat = 0x001 # BC4_UNORM -> R8_UNORM
|
|
||||||
|
|
||||||
[TextureRedefine] # Removing Background # 228d9000_fmt0034_mip00_512x512_tm04_sw00000300.bmp
|
|
||||||
width = 512
|
|
||||||
height = 512
|
|
||||||
formats = 0x034
|
|
||||||
tilemodes = 4
|
|
||||||
overwriteFormat = 0x001 # BC4_UNORM -> R8_UNORM
|
|
||||||
|
|
||||||
[TextureRedefine] # Removing Textures from edge # 239f3000_fmt0034_mip00_1278x387_tm04_sw00000400.bmp
|
|
||||||
width = 1278
|
|
||||||
height = 387
|
|
||||||
formats = 0x034
|
|
||||||
tilemodes = 4
|
|
||||||
overwriteFormat = 0x001 # BC4_UNORM -> R8_UNORM
|
|
||||||
|
|
||||||
[TextureRedefine] # Removes the glow at the border, but can affect other effects. Off by default due to this. # 22456000_fmt0035_mip00_128x128_tm04_sw00000000.bmp
|
|
||||||
width = 128
|
|
||||||
height = 128
|
|
||||||
formats = 0x035
|
|
||||||
tilemodes = 4
|
|
||||||
overwriteFormat = 0x235 # UNORM -> SNORM
|
|
||||||
|
|
||||||
# >>> Frame Decoration <<<
|
|
||||||
[TextureRedefine] # 23c76000_fmt0433_mip00_97x156_tm04_sw00000600.bmp
|
|
||||||
width = 97
|
|
||||||
height = 156
|
|
||||||
formats = 0x433
|
|
||||||
tilemodes = 4
|
|
||||||
overwriteFormat = 0x033 # SRGB -> UNORM
|
|
||||||
|
|
||||||
[TextureRedefine] # 22a80000_fmt0433_mip00_179x40_tm04_sw00000000.bmp
|
|
||||||
width = 179
|
|
||||||
height = 40
|
|
||||||
formats = 0x433
|
|
||||||
tilemodes = 4
|
|
||||||
overwriteFormat = 0x033 # SRGB -> UNORM
|
|
||||||
|
|
||||||
[TextureRedefine] # 22f42000_fmt0433_mip00_855x30_tm04_sw00000300.bmp
|
|
||||||
width = 855
|
|
||||||
height = 30
|
|
||||||
formats = 0x433
|
|
||||||
tilemodes = 4
|
|
||||||
overwriteFormat = 0x033 # SRGB -> UNORM
|
|
||||||
|
|
||||||
[TextureRedefine] # 23d74000_fmt0433_mip00_151x139_tm04_sw00000500.bmp
|
|
||||||
width = 151
|
|
||||||
height = 139
|
|
||||||
formats = 0x433
|
|
||||||
tilemodes = 4
|
|
||||||
overwriteFormat = 0x033 # SRGB -> UNORM
|
|
||||||
|
|
||||||
[TextureRedefine] # 229d8000_fmt0433_mip00_88x77_tm04_sw00000200.bmp
|
|
||||||
width = 88
|
|
||||||
height = 77
|
|
||||||
formats = 0x433
|
|
||||||
tilemodes = 4
|
|
||||||
overwriteFormat = 0x033 # SRGB -> UNORM
|
|
||||||
|
|
||||||
[TextureRedefine] # 2375e000_fmt0433_mip00_908x26_tm04_sw00000200.bmp
|
|
||||||
width = 908
|
|
||||||
height = 26
|
|
||||||
formats = 0x433
|
|
||||||
tilemodes = 4
|
|
||||||
overwriteFormat = 0x033 # SRGB -> UNORM
|
|
||||||
|
|
||||||
[TextureRedefine] # 22346000_fmt0433_mip00_57x171_tm04_sw00000200.bmp
|
|
||||||
width = 57
|
|
||||||
height = 171
|
|
||||||
formats = 0x433
|
|
||||||
tilemodes = 4
|
|
||||||
overwriteFormat = 0x033 # SRGB -> UNORM
|
|
||||||
|
|
||||||
[TextureRedefine] # 22360000_fmt0433_mip00_79x187_tm04_sw00000100.bmp
|
|
||||||
width = 79
|
|
||||||
height = 187
|
|
||||||
formats = 0x433
|
|
||||||
tilemodes = 4
|
|
||||||
overwriteFormat = 0x033 # SRGB -> UNORM
|
|
||||||
|
|
||||||
[TextureRedefine] # 22884000_fmt0433_mip00_96x69_tm04_sw00000700.bmp
|
|
||||||
width = 96
|
|
||||||
height = 69
|
|
||||||
formats = 0x433
|
|
||||||
tilemodes = 4
|
|
||||||
overwriteFormat = 0x033 # SRGB -> UNORM
|
|
||||||
|
|
||||||
[TextureRedefine] # 23697100_fmt0433_mip00_107x47_tm02_sw00000000.bmp
|
|
||||||
width = 107
|
|
||||||
height = 47
|
|
||||||
formats = 0x433
|
|
||||||
tilemodes = 2
|
|
||||||
overwriteFormat = 0x033 # SRGB -> UNORM
|
|
||||||
|
|
||||||
[TextureRedefine] # 23c76000_fmt0433_mip00_97x156_tm04_sw00000600.bmp
|
|
||||||
width = 97
|
|
||||||
height = 156
|
|
||||||
formats = 0x433
|
|
||||||
tilemodes = 4
|
|
||||||
overwriteFormat = 0x033 # SRGB -> UNORM
|
|
||||||
|
|
||||||
# >>> Frame Glow <<<
|
|
||||||
[TextureRedefine] # 22df3000_fmt0034_mip00_92x157_tm04_sw00000100.bmp
|
|
||||||
width = 92
|
|
||||||
height = 157
|
|
||||||
formats = 0x034
|
|
||||||
tilemodes = 4
|
|
||||||
overwriteFormat = 0x001 # BC4_UNORM -> R8_UNORM
|
|
||||||
|
|
||||||
[TextureRedefine] # 22dfe000_fmt0034_mip00_135x188_tm04_sw00000000.bmp
|
|
||||||
width = 135
|
|
||||||
height = 188
|
|
||||||
formats = 0x034
|
|
||||||
tilemodes = 4
|
|
||||||
overwriteFormat = 0x001 # BC4_UNORM -> R8_UNORM
|
|
||||||
|
|
||||||
[TextureRedefine] # 23b23000_fmt0034_mip00_58x171_tm04_sw00000600.bmp
|
|
||||||
width = 58
|
|
||||||
height = 171
|
|
||||||
formats = 0x034
|
|
||||||
tilemodes = 4
|
|
||||||
overwriteFormat = 0x001 # BC4_UNORM -> R8_UNORM
|
|
||||||
|
|
||||||
[TextureRedefine] # 23c46000_fmt0034_mip00_148x140_tm04_sw00000200.bmp
|
|
||||||
width = 148
|
|
||||||
height = 140
|
|
||||||
formats = 0x034
|
|
||||||
tilemodes = 4
|
|
||||||
overwriteFormat = 0x001 # BC4_UNORM -> R8_UNORM
|
|
||||||
|
|
||||||
[TextureRedefine] # 223ae000_fmt0034_mip00_159x152_tm04_sw00000500.bmp
|
|
||||||
width = 159
|
|
||||||
height = 152
|
|
||||||
formats = 0x034
|
|
||||||
tilemodes = 4
|
|
||||||
overwriteFormat = 0x001 # BC4_UNORM -> R8_UNORM
|
|
||||||
|
|
||||||
# >>> Frame Decoration Edges <<<
|
|
||||||
[TextureRedefine] # 22f03400_fmt0033_mip00_108x47_tm02_sw00000000.bmp
|
|
||||||
width = 108
|
|
||||||
height = 47
|
|
||||||
formats = 0x033
|
|
||||||
tilemodes = 2
|
|
||||||
overwriteFormat = 0x433 # UNORM -> SRGB
|
|
||||||
|
|
||||||
[TextureRedefine] # 23c64000_fmt0033_mip00_97x69_tm04_sw00000500.bmp
|
|
||||||
width = 97
|
|
||||||
height = 69
|
|
||||||
formats = 0x033
|
|
||||||
tilemodes = 4
|
|
||||||
overwriteFormat = 0x433 # UNORM -> SRGB
|
|
||||||
|
|
||||||
[TextureRedefine] # 224c0000_fmt0033_mip00_1086x41_tm04_sw00000600.bmp
|
|
||||||
width = 1086
|
|
||||||
height = 41
|
|
||||||
formats = 0x033
|
|
||||||
tilemodes = 4
|
|
||||||
overwriteFormat = 0x433 # UNORM -> SRGB
|
|
||||||
|
|
||||||
[TextureRedefine] # 2234e000_fmt0033_mip00_110x77_tm04_sw00000000.bmp
|
|
||||||
width = 110
|
|
||||||
height = 77
|
|
||||||
formats = 0x033
|
|
||||||
tilemodes = 4
|
|
||||||
overwriteFormat = 0x433 # UNORM -> SRGB
|
|
||||||
|
|
||||||
[TextureRedefine] # 2299a000_fmt0033_mip00_832x30_tm04_sw00000100.bmp
|
|
||||||
width = 110
|
|
||||||
height = 77
|
|
||||||
formats = 0x033
|
|
||||||
tilemodes = 4
|
|
||||||
overwriteFormat = 0x433 # UNORM -> SRGB
|
|
||||||
|
|
||||||
[TextureRedefine] # 2365c000_fmt0033_mip00_151x149_tm04_sw00000300.bmp
|
|
||||||
width = 151
|
|
||||||
height = 149
|
|
||||||
formats = 0x033
|
|
||||||
tilemodes = 4
|
|
||||||
overwriteFormat = 0x433 # UNORM -> SRGB
|
|
||||||
|
|
||||||
[TextureRedefine] # 23644000_fmt0033_mip00_97x157_tm04_sw00000400.bmp
|
|
||||||
width = 97
|
|
||||||
height = 157
|
|
||||||
formats = 0x033
|
|
||||||
tilemodes = 4
|
|
||||||
overwriteFormat = 0x433 # UNORM -> SRGB
|
|
||||||
|
|
||||||
[TextureRedefine] # 23770000_fmt0033_mip00_57x160_tm04_sw00000000.bmp
|
|
||||||
width = 57
|
|
||||||
height = 160
|
|
||||||
formats = 0x033
|
|
||||||
tilemodes = 4
|
|
||||||
overwriteFormat = 0x433 # UNORM -> SRGB
|
|
||||||
|
|
||||||
[TextureRedefine] # 23784000_fmt0033_mip00_79x187_tm04_sw00000700.bmp
|
|
||||||
width = 79
|
|
||||||
height = 187
|
|
||||||
formats = 0x033
|
|
||||||
tilemodes = 4
|
|
||||||
overwriteFormat = 0x433 # UNORM -> SRGB
|
|
||||||
|
|
||||||
# >>> Frame Decoration Blur <<<
|
|
||||||
[TextureRedefine] # 23dc1000_fmt0034_mip00_97x80_tm04_sw00000700.bmp
|
|
||||||
width = 97
|
|
||||||
height = 80
|
|
||||||
formats = 0x034
|
|
||||||
tilemodes = 4
|
|
||||||
overwriteFormat = 0x001 # BC4_UNORM -> R8_UNORM
|
|
||||||
|
|
||||||
|
|
||||||
[TextureRedefine] # 227d7000_fmt0034_mip00_68x174_tm04_sw00000300.bmp
|
|
||||||
width = 68
|
|
||||||
height = 174
|
|
||||||
formats = 0x034
|
|
||||||
tilemodes = 4
|
|
||||||
overwriteFormat = 0x001 # BC4_UNORM -> R8_UNORM
|
|
||||||
|
|
||||||
[TextureRedefine] # 228c0000_fmt0034_mip00_157x148_tm04_sw00000700.bmp
|
|
||||||
width = 157
|
|
||||||
height = 148
|
|
||||||
formats = 0x034
|
|
||||||
tilemodes = 4
|
|
||||||
overwriteFormat = 0x001 # BC4_UNORM -> R8_UNORM
|
|
||||||
|
|
||||||
[TextureRedefine] # 236ae000_fmt0034_mip00_101x168_tm04_sw00000600.bmp
|
|
||||||
width = 101
|
|
||||||
height = 168
|
|
||||||
formats = 0x034
|
|
||||||
tilemodes = 4
|
|
||||||
overwriteFormat = 0x001 # BC4_UNORM -> R8_UNORM
|
|
||||||
|
|
||||||
[TextureRedefine] # 236e8000_fmt0034_mip00_144x199_tm04_sw00000500.bmp
|
|
||||||
width = 144
|
|
||||||
height = 199
|
|
||||||
formats = 0x034
|
|
||||||
tilemodes = 4
|
|
||||||
overwriteFormat = 0x001 # BC4_UNORM -> R8_UNORM
|
|
||||||
|
|
||||||
# >>> Frame Decoration Edges <<<
|
|
||||||
[TextureRedefine] # 22ac0000_fmt0034_mip00_182x152_tm04_sw00000200.bmp
|
|
||||||
width = 182
|
|
||||||
height = 152
|
|
||||||
formats = 0x034
|
|
||||||
tilemodes = 4
|
|
||||||
overwriteFormat = 0x001 # BC4_UNORM -> R8_UNORM
|
|
||||||
|
|
||||||
[TextureRedefine] # 230ed000_fmt0034_mip00_126x153_tm04_sw00000400.bmp
|
|
||||||
width = 126
|
|
||||||
height = 153
|
|
||||||
formats = 0x034
|
|
||||||
tilemodes = 4
|
|
||||||
overwriteFormat = 0x001 # BC4_UNORM -> R8_UNORM
|
|
||||||
|
|
||||||
[TextureRedefine] # 23983000_fmt0034_mip00_52x133_tm04_sw00000100.bmp
|
|
||||||
width = 52
|
|
||||||
height = 133
|
|
||||||
formats = 0x034
|
|
||||||
tilemodes = 4
|
|
||||||
overwriteFormat = 0x001 # BC4_UNORM -> R8_UNORM
|
|
||||||
|
|
||||||
[TextureRedefine] # 23797000_fmt0034_mip00_279x54_tm04_sw00000500.bmp
|
|
||||||
width = 279
|
|
||||||
height = 54
|
|
||||||
formats = 0x034
|
|
||||||
tilemodes = 4
|
|
||||||
overwriteFormat = 0x001 # BC4_UNORM -> R8_UNORM
|
|
||||||
|
|
||||||
[TextureRedefine] # 23983000_fmt0034_mip00_52x133_tm04_sw00000100.bmp
|
|
||||||
width = 52
|
|
||||||
height = 133
|
|
||||||
formats = 0x034
|
|
||||||
tilemodes = 4
|
|
||||||
overwriteFormat = 0x001 # BC4_UNORM -> R8_UNORM
|
|
||||||
|
|
||||||
[TextureRedefine] # 238d9000_fmt0034_mip00_292x42_tm04_sw00000400.bmp
|
|
||||||
width = 292
|
|
||||||
height = 42
|
|
||||||
formats = 0x034
|
|
||||||
tilemodes = 4
|
|
||||||
overwriteFormat = 0x001 # BC4_UNORM -> R8_UNORM
|
|
||||||
|
|
||||||
[TextureRedefine] # 238d9000_fmt0034_mip00_292x42_tm04_sw00000400.bmp
|
|
||||||
width = 292
|
|
||||||
height = 42
|
|
||||||
formats = 0x034
|
|
||||||
tilemodes = 4
|
|
||||||
overwriteFormat = 0x001 # BC4_UNORM -> R8_UNORM
|
|
||||||
|
|
||||||
[TextureRedefine] # 23447000_fmt0034_mip00_90x69_tm04_sw00000200.bmp
|
|
||||||
width = 90
|
|
||||||
height = 69
|
|
||||||
formats = 0x034
|
|
||||||
tilemodes = 4
|
|
||||||
overwriteFormat = 0x001 # BC4_UNORM -> R8_UNORM
|
|
||||||
|
|
||||||
[TextureRedefine] # 227e8000_fmt0034_mip00_1098x58_tm04_sw00000400.bmp
|
|
||||||
width = 1098
|
|
||||||
height = 58
|
|
||||||
formats = 0x034
|
|
||||||
tilemodes = 4
|
|
||||||
overwriteFormat = 0x001 # BC4_UNORM -> R8_UNORM
|
|
||||||
|
|
||||||
[TextureRedefine] # 23601000_fmt0034_mip00_997x58_tm04_sw00000100.bmp
|
|
||||||
width = 997
|
|
||||||
height = 58
|
|
||||||
formats = 0x034
|
|
||||||
tilemodes = 4
|
|
||||||
overwriteFormat = 0x001 # BC4_UNORM -> R8_UNORM
|
|
@ -1,23 +0,0 @@
|
|||||||
[Definition]
|
|
||||||
titleIds = 00050000101C9300,00050000101C9400,00050000101C9500
|
|
||||||
name = "The Legend of Zelda: Breath of the Wild - Minimalistic GUI V2.0".
|
|
||||||
version = 2
|
|
||||||
|
|
||||||
# This pack changes the GUI to a modern looking GUI and only cleans up the camera menu.
|
|
||||||
# The Minimalistic GUI pack without the experimental Clean Camera Rune files doesn't have any gameplay affect or compromise.
|
|
||||||
# Installing the experimental clean camera rune pack should be simple, just overwrite the files from that folder in this specific folder.
|
|
||||||
# Be sure to read the SEPERATE rules.txt which is completely stand-alone and has information about that specific pack.
|
|
||||||
|
|
||||||
|
|
||||||
# If you find bugs you can make an issue on the Github repository. If you don't want/have a github account, you can also leave a message in the gfx_packs channel in the official Cemu discord.
|
|
||||||
|
|
||||||
# ====================================================================
|
|
||||||
# ====================================================================
|
|
||||||
# ====================================================================
|
|
||||||
|
|
||||||
[TextureRedefine]# 236ad000_fmt0034_mip00_8x8_tm02_sw00000000.bmp
|
|
||||||
width = 8
|
|
||||||
height = 8
|
|
||||||
formats = 0x034
|
|
||||||
tilemodes = 2
|
|
||||||
overwriteFormat = 0x001 # BC4_UNORM -> R8_UNORM
|
|
@ -1,10 +0,0 @@
|
|||||||
[Definition]
|
|
||||||
titleIds = 00050000101C9300,00050000101C9400,00050000101C9500
|
|
||||||
name = "The Legend of Zelda: Breath of the Wild - No Master Mode Triforce"
|
|
||||||
version = 2
|
|
||||||
|
|
||||||
[TextureRedefine]
|
|
||||||
width = 36
|
|
||||||
height = 36
|
|
||||||
formats = 0x034
|
|
||||||
overwriteFormat = 0x001
|
|
File diff suppressed because it is too large
Load Diff
@ -1,927 +0,0 @@
|
|||||||
#version 420
|
|
||||||
#extension GL_ARB_texture_gather : enable
|
|
||||||
#extension GL_ARB_shading_language_packing : enable
|
|
||||||
// shader 4d58e6f0906ff5cf
|
|
||||||
// PRO+ hud v2
|
|
||||||
uniform ivec4 uf_remappedVS[29];
|
|
||||||
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;
|
|
||||||
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; }
|
|
||||||
bool isCurrentSizeEqualTo(vec2 param) {
|
|
||||||
float result = distance(param, intBitsToFloat(uf_remappedVS[0]).xy);
|
|
||||||
return (result <= 0.001);
|
|
||||||
}
|
|
||||||
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 R122i = ivec4(0);
|
|
||||||
ivec4 R123i = ivec4(0);
|
|
||||||
ivec4 R124i = ivec4(0);
|
|
||||||
ivec4 R125i = ivec4(0);
|
|
||||||
ivec4 R126i = ivec4(0);
|
|
||||||
ivec4 R127i = ivec4(0);
|
|
||||||
uvec4 attrDecoder;
|
|
||||||
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;
|
|
||||||
bool activeMaskStack[4];
|
|
||||||
bool activeMaskStackC[5];
|
|
||||||
activeMaskStack[0] = false;
|
|
||||||
activeMaskStack[1] = false;
|
|
||||||
activeMaskStack[2] = false;
|
|
||||||
activeMaskStackC[0] = false;
|
|
||||||
activeMaskStackC[1] = false;
|
|
||||||
activeMaskStackC[2] = false;
|
|
||||||
activeMaskStackC[3] = false;
|
|
||||||
activeMaskStack[0] = true;
|
|
||||||
activeMaskStackC[0] = true;
|
|
||||||
activeMaskStackC[1] = true;
|
|
||||||
vec3 cubeMapSTM;
|
|
||||||
int cubeMapFaceId;
|
|
||||||
R0i = 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;
|
|
||||||
R1i = ivec4(int(attrDecoder.x), int(attrDecoder.y), floatBitsToInt(0.0), floatBitsToInt(1.0));
|
|
||||||
if( activeMaskStackC[1] == true ) {
|
|
||||||
activeMaskStack[1] = activeMaskStack[0];
|
|
||||||
activeMaskStackC[2] = activeMaskStackC[1];
|
|
||||||
// 0
|
|
||||||
PV0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.x), intBitsToFloat(uf_remappedVS[0].x)));
|
|
||||||
R0i.y = floatBitsToInt(-(intBitsToFloat(R1i.y)));
|
|
||||||
PV0i.y = R0i.y;
|
|
||||||
R0i.z = 0;
|
|
||||||
R2i.w = 0x3f800000;
|
|
||||||
R127i.w = floatBitsToInt(1.0);
|
|
||||||
PS0i = R127i.w;
|
|
||||||
// 1
|
|
||||||
R0i.x = floatBitsToInt(intBitsToFloat(PV0i.x) + intBitsToFloat(uf_remappedVS[0].z));
|
|
||||||
PV1i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.y), intBitsToFloat(uf_remappedVS[0].y)));
|
|
||||||
// 2
|
|
||||||
R0i.y = floatBitsToInt(intBitsToFloat(PV1i.z) + intBitsToFloat(uf_remappedVS[0].w));
|
|
||||||
PV0i.y = R0i.y;
|
|
||||||
R0i.w = uf_remappedVS[1].x & 0x40000000;
|
|
||||||
// 3
|
|
||||||
backupReg0i = R0i.z;
|
|
||||||
R127i.x = floatBitsToInt(dot(vec4(intBitsToFloat(R0i.x),intBitsToFloat(PV0i.y),intBitsToFloat(backupReg0i),intBitsToFloat(R2i.w)),vec4(intBitsToFloat(uf_remappedVS[2].x),intBitsToFloat(uf_remappedVS[2].y),intBitsToFloat(uf_remappedVS[2].z),intBitsToFloat(uf_remappedVS[2].w))));
|
|
||||||
PV1i.x = R127i.x;
|
|
||||||
PV1i.y = R127i.x;
|
|
||||||
PV1i.z = R127i.x;
|
|
||||||
PV1i.w = R127i.x;
|
|
||||||
// 4
|
|
||||||
backupReg0i = R0i.x;
|
|
||||||
backupReg1i = R0i.z;
|
|
||||||
tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(backupReg0i),intBitsToFloat(R0i.y),intBitsToFloat(backupReg1i),intBitsToFloat(R2i.w)),vec4(intBitsToFloat(uf_remappedVS[3].x),intBitsToFloat(uf_remappedVS[3].y),intBitsToFloat(uf_remappedVS[3].z),intBitsToFloat(uf_remappedVS[3].w))));
|
|
||||||
PV0i.x = tempi.x;
|
|
||||||
PV0i.y = tempi.x;
|
|
||||||
PV0i.z = tempi.x;
|
|
||||||
PV0i.w = tempi.x;
|
|
||||||
R127i.y = tempi.x;
|
|
||||||
// 5
|
|
||||||
backupReg0i = R0i.x;
|
|
||||||
backupReg1i = R0i.y;
|
|
||||||
tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(backupReg0i),intBitsToFloat(backupReg1i),intBitsToFloat(R0i.z),intBitsToFloat(R2i.w)),vec4(intBitsToFloat(uf_remappedVS[4].x),intBitsToFloat(uf_remappedVS[4].y),intBitsToFloat(uf_remappedVS[4].z),intBitsToFloat(uf_remappedVS[4].w))));
|
|
||||||
PV1i.x = tempi.x;
|
|
||||||
PV1i.y = tempi.x;
|
|
||||||
PV1i.z = tempi.x;
|
|
||||||
PV1i.w = tempi.x;
|
|
||||||
R127i.z = tempi.x;
|
|
||||||
// 6
|
|
||||||
R5i.x = floatBitsToInt(dot(vec4(intBitsToFloat(R127i.x),intBitsToFloat(R127i.y),intBitsToFloat(PV1i.x),intBitsToFloat(R127i.w)),vec4(intBitsToFloat(uf_remappedVS[5].x),intBitsToFloat(uf_remappedVS[5].y),intBitsToFloat(uf_remappedVS[5].z),intBitsToFloat(uf_remappedVS[5].w))));
|
|
||||||
PV0i.x = R5i.x;
|
|
||||||
PV0i.y = R5i.x;
|
|
||||||
PV0i.z = R5i.x;
|
|
||||||
PV0i.w = R5i.x;
|
|
||||||
// 7
|
|
||||||
tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R127i.x),intBitsToFloat(R127i.y),intBitsToFloat(R127i.z),intBitsToFloat(R127i.w)),vec4(intBitsToFloat(uf_remappedVS[6].x),intBitsToFloat(uf_remappedVS[6].y),intBitsToFloat(uf_remappedVS[6].z),intBitsToFloat(uf_remappedVS[6].w))));
|
|
||||||
PV1i.x = tempi.x;
|
|
||||||
PV1i.y = tempi.x;
|
|
||||||
PV1i.z = tempi.x;
|
|
||||||
PV1i.w = tempi.x;
|
|
||||||
R5i.y = tempi.x;
|
|
||||||
// 8
|
|
||||||
tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R127i.x),intBitsToFloat(R127i.y),intBitsToFloat(R127i.z),intBitsToFloat(R127i.w)),vec4(intBitsToFloat(uf_remappedVS[7].x),intBitsToFloat(uf_remappedVS[7].y),intBitsToFloat(uf_remappedVS[7].z),intBitsToFloat(uf_remappedVS[7].w))));
|
|
||||||
PV0i.x = tempi.x;
|
|
||||||
PV0i.y = tempi.x;
|
|
||||||
PV0i.z = tempi.x;
|
|
||||||
PV0i.w = tempi.x;
|
|
||||||
R5i.z = tempi.x;
|
|
||||||
// 9
|
|
||||||
tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R127i.x),intBitsToFloat(R127i.y),intBitsToFloat(R127i.z),intBitsToFloat(R127i.w)),vec4(intBitsToFloat(uf_remappedVS[8].x),intBitsToFloat(uf_remappedVS[8].y),intBitsToFloat(uf_remappedVS[8].z),intBitsToFloat(uf_remappedVS[8].w))));
|
|
||||||
PV1i.x = tempi.x;
|
|
||||||
PV1i.y = tempi.x;
|
|
||||||
PV1i.z = tempi.x;
|
|
||||||
PV1i.w = tempi.x;
|
|
||||||
R5i.w = tempi.x;
|
|
||||||
// 10
|
|
||||||
R2i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedVS[0].x), intBitsToFloat(uf_remappedVS[9].x)));
|
|
||||||
R2i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedVS[0].y), intBitsToFloat(uf_remappedVS[9].y)));
|
|
||||||
R6i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedVS[0].x), intBitsToFloat(uf_remappedVS[9].y)));
|
|
||||||
PS0i = R6i.x;
|
|
||||||
// 11
|
|
||||||
R6i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedVS[0].y), intBitsToFloat(uf_remappedVS[9].x)));
|
|
||||||
// 12
|
|
||||||
predResult = (0 != R0i.w);
|
|
||||||
activeMaskStack[1] = predResult;
|
|
||||||
activeMaskStackC[2] = predResult == true && activeMaskStackC[1] == true;
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
activeMaskStack[1] = false;
|
|
||||||
activeMaskStackC[2] = false;
|
|
||||||
}
|
|
||||||
if( activeMaskStackC[2] == true ) {
|
|
||||||
activeMaskStack[2] = activeMaskStack[1];
|
|
||||||
activeMaskStackC[3] = activeMaskStackC[2];
|
|
||||||
// 0
|
|
||||||
R1i.z = uf_remappedVS[1].x & 0x00000002;
|
|
||||||
// 1
|
|
||||||
predResult = (0 != R1i.z);
|
|
||||||
activeMaskStack[2] = predResult;
|
|
||||||
activeMaskStackC[3] = predResult == true && activeMaskStackC[2] == true;
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
activeMaskStack[2] = false;
|
|
||||||
activeMaskStackC[3] = false;
|
|
||||||
}
|
|
||||||
if( activeMaskStackC[3] == true ) {
|
|
||||||
// 0
|
|
||||||
backupReg0i = R1i.y;
|
|
||||||
R1i.yzw = ivec3(backupReg0i,0,0x3f800000);
|
|
||||||
PV0i.y = R1i.y;
|
|
||||||
PV0i.z = R1i.z;
|
|
||||||
PV0i.w = R1i.w;
|
|
||||||
// 1
|
|
||||||
R3i.xyz = ivec3(R1i.x,PV0i.y,PV0i.z);
|
|
||||||
PV1i.x = R3i.x;
|
|
||||||
PV1i.y = R3i.y;
|
|
||||||
PV1i.z = R3i.z;
|
|
||||||
R3i.w = PV0i.w;
|
|
||||||
PV1i.w = R3i.w;
|
|
||||||
// 2
|
|
||||||
R4i.xyz = ivec3(PV1i.x,PV1i.y,PV1i.z);
|
|
||||||
R4i.w = PV1i.w;
|
|
||||||
}
|
|
||||||
activeMaskStack[2] = activeMaskStack[2] == false;
|
|
||||||
activeMaskStackC[3] = activeMaskStack[2] == true && activeMaskStackC[2] == true;
|
|
||||||
if( activeMaskStackC[3] == true ) {
|
|
||||||
// 0
|
|
||||||
PS0i = int(intBitsToFloat(R1i.y));
|
|
||||||
// 1
|
|
||||||
PV1i.x = PS0i << int(1);
|
|
||||||
PS1i = int(intBitsToFloat(R1i.x));
|
|
||||||
// 2
|
|
||||||
R124i.z = PV1i.x + PS1i;
|
|
||||||
PV0i.z = R124i.z;
|
|
||||||
// 3
|
|
||||||
R127i.x = (PV0i.z == 0x00000002)?int(0xFFFFFFFF):int(0x0);
|
|
||||||
PV1i.x = R127i.x;
|
|
||||||
R127i.y = (PV0i.z == 0x00000002)?int(0xFFFFFFFF):int(0x0);
|
|
||||||
R127i.z = (PV0i.z == 0x00000002)?int(0xFFFFFFFF):int(0x0);
|
|
||||||
R126i.w = (PV0i.z == int(1))?int(0xFFFFFFFF):int(0x0);
|
|
||||||
R124i.w = (PV0i.z == int(1))?int(0xFFFFFFFF):int(0x0);
|
|
||||||
PS1i = R124i.w;
|
|
||||||
// 4
|
|
||||||
R124i.y = (R124i.z == int(1))?int(0xFFFFFFFF):int(0x0);
|
|
||||||
R126i.z = ((PV1i.x == 0)?(uf_remappedVS[10].y):(uf_remappedVS[11].y));
|
|
||||||
R127i.w = ((PV1i.x == 0)?(uf_remappedVS[10].x):(uf_remappedVS[11].x));
|
|
||||||
// 5
|
|
||||||
backupReg0i = R127i.x;
|
|
||||||
backupReg0i = R127i.x;
|
|
||||||
R127i.x = ((backupReg0i == 0)?(uf_remappedVS[10].w):(uf_remappedVS[11].w));
|
|
||||||
R126i.y = ((backupReg0i == 0)?(uf_remappedVS[10].z):(uf_remappedVS[11].z));
|
|
||||||
// 6
|
|
||||||
R126i.x = ((R127i.z == 0)?(uf_remappedVS[12].y):(uf_remappedVS[13].y));
|
|
||||||
R125i.y = ((R127i.z == 0)?(uf_remappedVS[12].x):(uf_remappedVS[13].x));
|
|
||||||
// 7
|
|
||||||
backupReg0i = R127i.z;
|
|
||||||
backupReg0i = R127i.z;
|
|
||||||
R127i.z = ((backupReg0i == 0)?(uf_remappedVS[12].w):(uf_remappedVS[13].w));
|
|
||||||
R125i.w = ((backupReg0i == 0)?(uf_remappedVS[12].z):(uf_remappedVS[13].z));
|
|
||||||
// 8
|
|
||||||
R125i.z = ((R127i.y == 0)?(uf_remappedVS[14].y):(uf_remappedVS[15].y));
|
|
||||||
R0i.w = ((R127i.y == 0)?(uf_remappedVS[14].x):(uf_remappedVS[15].x));
|
|
||||||
// 9
|
|
||||||
backupReg0i = R127i.y;
|
|
||||||
R125i.x = ((R127i.y == 0)?(uf_remappedVS[14].w):(uf_remappedVS[15].w));
|
|
||||||
R127i.y = ((backupReg0i == 0)?(uf_remappedVS[14].z):(uf_remappedVS[15].z));
|
|
||||||
// 10
|
|
||||||
backupReg0i = R127i.x;
|
|
||||||
backupReg1i = R126i.y;
|
|
||||||
backupReg2i = R126i.z;
|
|
||||||
backupReg3i = R127i.w;
|
|
||||||
R127i.x = ((R126i.w == 0)?(backupReg0i):(uf_remappedVS[16].w));
|
|
||||||
R126i.y = ((R126i.w == 0)?(backupReg1i):(uf_remappedVS[16].z));
|
|
||||||
R126i.z = ((R126i.w == 0)?(backupReg2i):(uf_remappedVS[16].y));
|
|
||||||
R127i.w = ((R126i.w == 0)?(backupReg3i):(uf_remappedVS[16].x));
|
|
||||||
// 11
|
|
||||||
backupReg0i = R126i.x;
|
|
||||||
backupReg1i = R125i.y;
|
|
||||||
backupReg2i = R127i.z;
|
|
||||||
backupReg3i = R125i.w;
|
|
||||||
R126i.x = ((R124i.w == 0)?(backupReg0i):(uf_remappedVS[17].y));
|
|
||||||
R125i.y = ((R124i.w == 0)?(backupReg1i):(uf_remappedVS[17].x));
|
|
||||||
R127i.z = ((R124i.w == 0)?(backupReg2i):(uf_remappedVS[17].w));
|
|
||||||
R125i.w = ((R124i.w == 0)?(backupReg3i):(uf_remappedVS[17].z));
|
|
||||||
// 12
|
|
||||||
backupReg0i = R125i.x;
|
|
||||||
backupReg1i = R127i.y;
|
|
||||||
backupReg2i = R125i.z;
|
|
||||||
R125i.x = ((R124i.y == 0)?(backupReg0i):(uf_remappedVS[18].w));
|
|
||||||
R127i.y = ((R124i.y == 0)?(backupReg1i):(uf_remappedVS[18].z));
|
|
||||||
R125i.z = ((R124i.y == 0)?(backupReg2i):(uf_remappedVS[18].y));
|
|
||||||
R124i.w = ((R124i.y == 0)?(R0i.w):(uf_remappedVS[18].x));
|
|
||||||
// 13
|
|
||||||
R1i.x = ((R124i.z == 0)?(uf_remappedVS[19].x):(R127i.w));
|
|
||||||
R1i.y = ((R124i.z == 0)?(uf_remappedVS[19].y):(R126i.z));
|
|
||||||
R1i.z = ((R124i.z == 0)?(uf_remappedVS[19].z):(R126i.y));
|
|
||||||
R1i.w = ((R124i.z == 0)?(uf_remappedVS[19].w):(R127i.x));
|
|
||||||
// 14
|
|
||||||
R3i.x = ((R124i.z == 0)?(uf_remappedVS[20].x):(R125i.y));
|
|
||||||
R3i.y = ((R124i.z == 0)?(uf_remappedVS[20].y):(R126i.x));
|
|
||||||
R3i.z = ((R124i.z == 0)?(uf_remappedVS[20].z):(R125i.w));
|
|
||||||
R3i.w = ((R124i.z == 0)?(uf_remappedVS[20].w):(R127i.z));
|
|
||||||
// 15
|
|
||||||
R4i.x = ((R124i.z == 0)?(uf_remappedVS[21].x):(R124i.w));
|
|
||||||
R4i.y = ((R124i.z == 0)?(uf_remappedVS[21].y):(R125i.z));
|
|
||||||
R4i.z = ((R124i.z == 0)?(uf_remappedVS[21].z):(R127i.y));
|
|
||||||
R4i.w = ((R124i.z == 0)?(uf_remappedVS[21].w):(R125i.x));
|
|
||||||
}
|
|
||||||
activeMaskStackC[2] = activeMaskStack[1] == true && activeMaskStackC[1] == true;
|
|
||||||
activeMaskStack[1] = activeMaskStack[1] == false;
|
|
||||||
activeMaskStackC[2] = activeMaskStack[1] == true && activeMaskStackC[1] == true;
|
|
||||||
if( activeMaskStackC[2] == true ) {
|
|
||||||
activeMaskStack[2] = activeMaskStack[1];
|
|
||||||
activeMaskStackC[3] = activeMaskStackC[2];
|
|
||||||
// 0
|
|
||||||
R0i.w = uf_remappedVS[1].x & 0x00000002;
|
|
||||||
// 1
|
|
||||||
predResult = (0 != R0i.w);
|
|
||||||
activeMaskStack[2] = predResult;
|
|
||||||
activeMaskStackC[3] = predResult == true && activeMaskStackC[2] == true;
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
activeMaskStack[2] = false;
|
|
||||||
activeMaskStackC[3] = false;
|
|
||||||
}
|
|
||||||
if( activeMaskStackC[3] == true ) {
|
|
||||||
// 0
|
|
||||||
backupReg0i = R1i.y;
|
|
||||||
R1i.yzw = ivec3(backupReg0i,0,0x3f800000);
|
|
||||||
PV0i.y = R1i.y;
|
|
||||||
PV0i.z = R1i.z;
|
|
||||||
PV0i.w = R1i.w;
|
|
||||||
// 1
|
|
||||||
R3i.xyz = ivec3(R1i.x,PV0i.y,PV0i.z);
|
|
||||||
PV1i.x = R3i.x;
|
|
||||||
PV1i.y = R3i.y;
|
|
||||||
PV1i.z = R3i.z;
|
|
||||||
R3i.w = PV0i.w;
|
|
||||||
PV1i.w = R3i.w;
|
|
||||||
// 2
|
|
||||||
R4i.xyz = ivec3(PV1i.x,PV1i.y,PV1i.z);
|
|
||||||
R4i.w = PV1i.w;
|
|
||||||
}
|
|
||||||
activeMaskStack[2] = activeMaskStack[2] == false;
|
|
||||||
activeMaskStackC[3] = activeMaskStack[2] == true && activeMaskStackC[2] == true;
|
|
||||||
if( activeMaskStackC[3] == true ) {
|
|
||||||
// 0
|
|
||||||
PS0i = int(intBitsToFloat(R1i.y));
|
|
||||||
// 1
|
|
||||||
PV1i.x = PS0i << int(1);
|
|
||||||
PS1i = int(intBitsToFloat(R1i.x));
|
|
||||||
// 2
|
|
||||||
R124i.z = PV1i.x + PS1i;
|
|
||||||
PV0i.z = R124i.z;
|
|
||||||
// 3
|
|
||||||
R127i.x = (PV0i.z == 0x00000002)?int(0xFFFFFFFF):int(0x0);
|
|
||||||
PV1i.x = R127i.x;
|
|
||||||
R127i.y = (PV0i.z == 0x00000002)?int(0xFFFFFFFF):int(0x0);
|
|
||||||
R127i.z = (PV0i.z == 0x00000002)?int(0xFFFFFFFF):int(0x0);
|
|
||||||
R126i.w = (PV0i.z == int(1))?int(0xFFFFFFFF):int(0x0);
|
|
||||||
R124i.w = (PV0i.z == int(1))?int(0xFFFFFFFF):int(0x0);
|
|
||||||
PS1i = R124i.w;
|
|
||||||
// 4
|
|
||||||
R124i.y = (R124i.z == int(1))?int(0xFFFFFFFF):int(0x0);
|
|
||||||
R126i.z = ((PV1i.x == 0)?(uf_remappedVS[10].y):(uf_remappedVS[11].y));
|
|
||||||
R127i.w = ((PV1i.x == 0)?(uf_remappedVS[10].x):(uf_remappedVS[11].x));
|
|
||||||
// 5
|
|
||||||
backupReg0i = R127i.x;
|
|
||||||
backupReg0i = R127i.x;
|
|
||||||
R127i.x = ((backupReg0i == 0)?(uf_remappedVS[10].w):(uf_remappedVS[11].w));
|
|
||||||
R126i.y = ((backupReg0i == 0)?(uf_remappedVS[10].z):(uf_remappedVS[11].z));
|
|
||||||
// 6
|
|
||||||
R126i.x = ((R127i.z == 0)?(uf_remappedVS[12].y):(uf_remappedVS[13].y));
|
|
||||||
R125i.y = ((R127i.z == 0)?(uf_remappedVS[12].x):(uf_remappedVS[13].x));
|
|
||||||
// 7
|
|
||||||
backupReg0i = R127i.z;
|
|
||||||
backupReg0i = R127i.z;
|
|
||||||
R127i.z = ((backupReg0i == 0)?(uf_remappedVS[12].w):(uf_remappedVS[13].w));
|
|
||||||
R125i.w = ((backupReg0i == 0)?(uf_remappedVS[12].z):(uf_remappedVS[13].z));
|
|
||||||
// 8
|
|
||||||
R125i.z = ((R127i.y == 0)?(uf_remappedVS[14].y):(uf_remappedVS[15].y));
|
|
||||||
R0i.w = ((R127i.y == 0)?(uf_remappedVS[14].x):(uf_remappedVS[15].x));
|
|
||||||
// 9
|
|
||||||
backupReg0i = R127i.y;
|
|
||||||
R125i.x = ((R127i.y == 0)?(uf_remappedVS[14].w):(uf_remappedVS[15].w));
|
|
||||||
R127i.y = ((backupReg0i == 0)?(uf_remappedVS[14].z):(uf_remappedVS[15].z));
|
|
||||||
// 10
|
|
||||||
backupReg0i = R127i.x;
|
|
||||||
backupReg1i = R126i.y;
|
|
||||||
backupReg2i = R126i.z;
|
|
||||||
backupReg3i = R127i.w;
|
|
||||||
R127i.x = ((R126i.w == 0)?(backupReg0i):(uf_remappedVS[16].w));
|
|
||||||
R126i.y = ((R126i.w == 0)?(backupReg1i):(uf_remappedVS[16].z));
|
|
||||||
R126i.z = ((R126i.w == 0)?(backupReg2i):(uf_remappedVS[16].y));
|
|
||||||
R127i.w = ((R126i.w == 0)?(backupReg3i):(uf_remappedVS[16].x));
|
|
||||||
// 11
|
|
||||||
backupReg0i = R126i.x;
|
|
||||||
backupReg1i = R125i.y;
|
|
||||||
backupReg2i = R127i.z;
|
|
||||||
backupReg3i = R125i.w;
|
|
||||||
R126i.x = ((R124i.w == 0)?(backupReg0i):(uf_remappedVS[17].y));
|
|
||||||
R125i.y = ((R124i.w == 0)?(backupReg1i):(uf_remappedVS[17].x));
|
|
||||||
R127i.z = ((R124i.w == 0)?(backupReg2i):(uf_remappedVS[17].w));
|
|
||||||
R125i.w = ((R124i.w == 0)?(backupReg3i):(uf_remappedVS[17].z));
|
|
||||||
// 12
|
|
||||||
backupReg0i = R125i.x;
|
|
||||||
backupReg1i = R127i.y;
|
|
||||||
backupReg2i = R125i.z;
|
|
||||||
R125i.x = ((R124i.y == 0)?(backupReg0i):(uf_remappedVS[18].w));
|
|
||||||
R127i.y = ((R124i.y == 0)?(backupReg1i):(uf_remappedVS[18].z));
|
|
||||||
R125i.z = ((R124i.y == 0)?(backupReg2i):(uf_remappedVS[18].y));
|
|
||||||
R124i.w = ((R124i.y == 0)?(R0i.w):(uf_remappedVS[18].x));
|
|
||||||
// 13
|
|
||||||
R1i.x = ((R124i.z == 0)?(uf_remappedVS[19].x):(R127i.w));
|
|
||||||
R1i.y = ((R124i.z == 0)?(uf_remappedVS[19].y):(R126i.z));
|
|
||||||
R1i.z = ((R124i.z == 0)?(uf_remappedVS[19].z):(R126i.y));
|
|
||||||
R1i.w = ((R124i.z == 0)?(uf_remappedVS[19].w):(R127i.x));
|
|
||||||
// 14
|
|
||||||
R3i.x = ((R124i.z == 0)?(uf_remappedVS[20].x):(R125i.y));
|
|
||||||
R3i.y = ((R124i.z == 0)?(uf_remappedVS[20].y):(R126i.x));
|
|
||||||
R3i.z = ((R124i.z == 0)?(uf_remappedVS[20].z):(R125i.w));
|
|
||||||
R3i.w = ((R124i.z == 0)?(uf_remappedVS[20].w):(R127i.z));
|
|
||||||
// 15
|
|
||||||
R4i.x = ((R124i.z == 0)?(uf_remappedVS[21].x):(R124i.w));
|
|
||||||
R4i.y = ((R124i.z == 0)?(uf_remappedVS[21].y):(R125i.z));
|
|
||||||
R4i.z = ((R124i.z == 0)?(uf_remappedVS[21].z):(R127i.y));
|
|
||||||
R4i.w = ((R124i.z == 0)?(uf_remappedVS[21].w):(R125i.x));
|
|
||||||
}
|
|
||||||
activeMaskStackC[2] = activeMaskStack[1] == true && activeMaskStackC[1] == true;
|
|
||||||
activeMaskStackC[1] = activeMaskStack[0] == true && activeMaskStackC[0] == true;
|
|
||||||
if( activeMaskStackC[1] == true ) {
|
|
||||||
activeMaskStack[1] = activeMaskStack[0];
|
|
||||||
activeMaskStackC[2] = activeMaskStackC[1];
|
|
||||||
// 0
|
|
||||||
predResult = (0 != uf_remappedVS[22].x);
|
|
||||||
activeMaskStack[1] = predResult;
|
|
||||||
activeMaskStackC[2] = predResult == true && activeMaskStackC[1] == true;
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
activeMaskStack[1] = false;
|
|
||||||
activeMaskStackC[2] = false;
|
|
||||||
}
|
|
||||||
if( activeMaskStackC[2] == true ) {
|
|
||||||
// 0
|
|
||||||
backupReg0i = R0i.y;
|
|
||||||
backupReg1i = R0i.z;
|
|
||||||
R1i.x = floatBitsToInt(dot(vec4(intBitsToFloat(R0i.x),intBitsToFloat(backupReg0i),intBitsToFloat(backupReg1i),intBitsToFloat(R2i.w)),vec4(intBitsToFloat(uf_remappedVS[19].x),intBitsToFloat(uf_remappedVS[19].y),intBitsToFloat(uf_remappedVS[19].z),intBitsToFloat(uf_remappedVS[19].w))));
|
|
||||||
PV0i.x = R1i.x;
|
|
||||||
PV0i.y = R1i.x;
|
|
||||||
PV0i.z = R1i.x;
|
|
||||||
PV0i.w = R1i.x;
|
|
||||||
// 1
|
|
||||||
backupReg0i = R0i.x;
|
|
||||||
backupReg1i = R0i.z;
|
|
||||||
tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(backupReg0i),intBitsToFloat(R0i.y),intBitsToFloat(backupReg1i),intBitsToFloat(R2i.w)),vec4(intBitsToFloat(uf_remappedVS[16].x),intBitsToFloat(uf_remappedVS[16].y),intBitsToFloat(uf_remappedVS[16].z),intBitsToFloat(uf_remappedVS[16].w))));
|
|
||||||
PV1i.x = tempi.x;
|
|
||||||
PV1i.y = tempi.x;
|
|
||||||
PV1i.z = tempi.x;
|
|
||||||
PV1i.w = tempi.x;
|
|
||||||
R1i.y = tempi.x;
|
|
||||||
// 2
|
|
||||||
backupReg0i = R0i.x;
|
|
||||||
backupReg1i = R0i.y;
|
|
||||||
tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(backupReg0i),intBitsToFloat(backupReg1i),intBitsToFloat(R0i.z),intBitsToFloat(R2i.w)),vec4(intBitsToFloat(uf_remappedVS[11].x),intBitsToFloat(uf_remappedVS[11].y),intBitsToFloat(uf_remappedVS[11].z),intBitsToFloat(uf_remappedVS[11].w))));
|
|
||||||
PV0i.x = tempi.x;
|
|
||||||
PV0i.y = tempi.x;
|
|
||||||
PV0i.z = tempi.x;
|
|
||||||
PV0i.w = tempi.x;
|
|
||||||
R1i.z = tempi.x;
|
|
||||||
// 3
|
|
||||||
backupReg0i = R0i.x;
|
|
||||||
backupReg1i = R0i.y;
|
|
||||||
backupReg2i = R0i.z;
|
|
||||||
tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(backupReg0i),intBitsToFloat(backupReg1i),intBitsToFloat(backupReg2i),intBitsToFloat(R2i.w)),vec4(intBitsToFloat(uf_remappedVS[10].x),intBitsToFloat(uf_remappedVS[10].y),intBitsToFloat(uf_remappedVS[10].z),intBitsToFloat(uf_remappedVS[10].w))));
|
|
||||||
PV1i.x = tempi.x;
|
|
||||||
PV1i.y = tempi.x;
|
|
||||||
PV1i.z = tempi.x;
|
|
||||||
PV1i.w = tempi.x;
|
|
||||||
R1i.w = tempi.x;
|
|
||||||
}
|
|
||||||
activeMaskStack[1] = activeMaskStack[1] == false;
|
|
||||||
activeMaskStackC[2] = activeMaskStack[1] == true && activeMaskStackC[1] == true;
|
|
||||||
if( activeMaskStackC[2] == true ) {
|
|
||||||
activeMaskStack[2] = activeMaskStack[1];
|
|
||||||
activeMaskStackC[3] = activeMaskStackC[2];
|
|
||||||
// 0
|
|
||||||
R7i.x = uf_remappedVS[1].x & int(1);
|
|
||||||
// 1
|
|
||||||
predResult = (0 != R7i.x);
|
|
||||||
activeMaskStack[2] = predResult;
|
|
||||||
activeMaskStackC[3] = predResult == true && activeMaskStackC[2] == true;
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
activeMaskStack[2] = false;
|
|
||||||
activeMaskStackC[3] = false;
|
|
||||||
}
|
|
||||||
if( activeMaskStackC[3] == true ) {
|
|
||||||
activeMaskStack[3] = activeMaskStack[2];
|
|
||||||
activeMaskStackC[4] = activeMaskStackC[3];
|
|
||||||
// 0
|
|
||||||
R0i.w = uf_remappedVS[1].x & 0x00000002;
|
|
||||||
// 1
|
|
||||||
predResult = (0 != R0i.w);
|
|
||||||
activeMaskStack[3] = predResult;
|
|
||||||
activeMaskStackC[4] = predResult == true && activeMaskStackC[3] == true;
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
activeMaskStack[3] = false;
|
|
||||||
activeMaskStackC[4] = false;
|
|
||||||
}
|
|
||||||
if( activeMaskStackC[4] == true ) {
|
|
||||||
// 0
|
|
||||||
PV0i.x = uf_remappedVS[1].x & 0x00010000;
|
|
||||||
R127i.y = uf_remappedVS[1].x & 0x00000010;
|
|
||||||
PV0i.y = R127i.y;
|
|
||||||
R125i.z = uf_remappedVS[1].x & 0x00000004;
|
|
||||||
R127i.w = uf_remappedVS[1].x & 0x00000020;
|
|
||||||
// 1
|
|
||||||
R123i.x = ((PV0i.y == 0)?(R1i.w):(R1i.w));
|
|
||||||
PV1i.x = R123i.x;
|
|
||||||
R123i.y = ((PV0i.y == 0)?(R1i.z):(R1i.z));
|
|
||||||
PV1i.y = R123i.y;
|
|
||||||
R126i.z = ((PV0i.x == 0)?(R2i.y):(R6i.y));
|
|
||||||
PV1i.z = R126i.z;
|
|
||||||
R123i.w = ((PV0i.x == 0)?(R2i.x):(R6i.x));
|
|
||||||
PV1i.w = R123i.w;
|
|
||||||
R127i.z = ((PV0i.y == 0)?(R1i.y):(R1i.y));
|
|
||||||
PS1i = R127i.z;
|
|
||||||
// 2
|
|
||||||
R7i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.x), intBitsToFloat(PV1i.w)));
|
|
||||||
PV0i.x = R7i.x;
|
|
||||||
R126i.y = floatBitsToInt(-(intBitsToFloat(PV1i.w)) + 1.0);
|
|
||||||
PV0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PS1i), intBitsToFloat(PV1i.z)));
|
|
||||||
R123i.w = ((R127i.w == 0)?(PV1i.y):(PV1i.y));
|
|
||||||
PV0i.w = R123i.w;
|
|
||||||
R122i.x = ((R127i.w == 0)?(PV1i.x):(PV1i.x));
|
|
||||||
PS0i = R122i.x;
|
|
||||||
// 3
|
|
||||||
backupReg0i = R127i.y;
|
|
||||||
R123i.x = ((R127i.w == 0)?(R127i.z):(PV0i.z));
|
|
||||||
PV1i.x = R123i.x;
|
|
||||||
R127i.y = floatBitsToInt(-(intBitsToFloat(R126i.z)) + 1.0);
|
|
||||||
R127i.z = ((R125i.z == 0)?(PV0i.w):(PV0i.w));
|
|
||||||
R123i.w = ((backupReg0i == 0)?(R1i.x):(PV0i.x));
|
|
||||||
PV1i.w = R123i.w;
|
|
||||||
R124i.z = ((R125i.z == 0)?(PS0i):(PS0i));
|
|
||||||
PS1i = R124i.z;
|
|
||||||
// 4
|
|
||||||
R127i.x = ((R125i.z == 0)?(PV1i.x):(PV1i.x));
|
|
||||||
PV0i.x = R127i.x;
|
|
||||||
R125i.y = ((R127i.w == 0)?(PV1i.w):(PV1i.w));
|
|
||||||
PV0i.y = R125i.y;
|
|
||||||
R126i.z = uf_remappedVS[1].x & 0x00000008;
|
|
||||||
// 5
|
|
||||||
R126i.x = floatBitsToInt(intBitsToFloat(PV0i.x) + intBitsToFloat(R127i.y));
|
|
||||||
PV1i.z = floatBitsToInt(intBitsToFloat(PV0i.y) + intBitsToFloat(R126i.y));
|
|
||||||
// 6
|
|
||||||
R123i.y = ((R125i.z == 0)?(R125i.y):(PV1i.z));
|
|
||||||
PV0i.y = R123i.y;
|
|
||||||
// 7
|
|
||||||
R1i.x = ((R126i.z == 0)?(PV0i.y):(PV0i.y));
|
|
||||||
R1i.y = ((R126i.z == 0)?(R127i.x):(R126i.x));
|
|
||||||
R1i.z = ((R126i.z == 0)?(R127i.z):(R127i.z));
|
|
||||||
// 8
|
|
||||||
R1i.w = ((R126i.z == 0)?(R124i.z):(R124i.z));
|
|
||||||
}
|
|
||||||
activeMaskStackC[3] = activeMaskStack[2] == true && activeMaskStackC[2] == true;
|
|
||||||
if( activeMaskStackC[3] == true ) {
|
|
||||||
// 0
|
|
||||||
R7i.x = floatBitsToInt(-(intBitsToFloat(R1i.x)) + 1.0);
|
|
||||||
PV0i.x = R7i.x;
|
|
||||||
R126i.y = uf_remappedVS[1].x & 0x00010000;
|
|
||||||
R127i.z = uf_remappedVS[1].x & 0x00040000;
|
|
||||||
PV0i.w = uf_remappedVS[1].x & 0x00020000;
|
|
||||||
// 1
|
|
||||||
R123i.x = ((PV0i.w == 0)?(R1i.z):(R1i.z));
|
|
||||||
PV1i.x = R123i.x;
|
|
||||||
R127i.y = ((PV0i.w == 0)?(R1i.y):(R1i.y));
|
|
||||||
PV1i.y = R127i.y;
|
|
||||||
R123i.z = ((PV0i.w == 0)?(R1i.x):(PV0i.x));
|
|
||||||
PV1i.z = R123i.z;
|
|
||||||
R123i.w = ((PV0i.w == 0)?(R1i.w):(R1i.w));
|
|
||||||
PV1i.w = R123i.w;
|
|
||||||
// 2
|
|
||||||
R127i.x = ((R127i.z == 0)?(PV1i.z):(PV1i.z));
|
|
||||||
PV0i.y = floatBitsToInt(-(intBitsToFloat(PV1i.y)) + 1.0);
|
|
||||||
R126i.z = ((R127i.z == 0)?(PV1i.x):(PV1i.x));
|
|
||||||
R127i.w = ((R127i.z == 0)?(PV1i.w):(PV1i.w));
|
|
||||||
// 3
|
|
||||||
R123i.w = ((R127i.z == 0)?(R127i.y):(PV0i.y));
|
|
||||||
PV1i.w = R123i.w;
|
|
||||||
// 4
|
|
||||||
R1i.x = ((R126i.y == 0)?(R127i.x):(PV1i.w));
|
|
||||||
R1i.y = ((R126i.y == 0)?(PV1i.w):(R127i.x));
|
|
||||||
R1i.z = ((R126i.y == 0)?(R126i.z):(R126i.z));
|
|
||||||
R1i.w = ((R126i.y == 0)?(R127i.w):(R127i.w));
|
|
||||||
}
|
|
||||||
activeMaskStackC[1] = activeMaskStack[0] == true && activeMaskStackC[0] == true;
|
|
||||||
if( activeMaskStackC[1] == true ) {
|
|
||||||
activeMaskStack[1] = activeMaskStack[0];
|
|
||||||
activeMaskStackC[2] = activeMaskStackC[1];
|
|
||||||
// 0
|
|
||||||
R127i.x = floatBitsToInt(dot(vec4(intBitsToFloat(R1i.x),intBitsToFloat(R1i.y),intBitsToFloat(R1i.z),intBitsToFloat(R1i.w)),vec4(intBitsToFloat(uf_remappedVS[23].x),intBitsToFloat(uf_remappedVS[23].y),intBitsToFloat(uf_remappedVS[23].z),intBitsToFloat(uf_remappedVS[23].w))));
|
|
||||||
PV0i.x = R127i.x;
|
|
||||||
PV0i.y = R127i.x;
|
|
||||||
PV0i.z = R127i.x;
|
|
||||||
PV0i.w = R127i.x;
|
|
||||||
// 1
|
|
||||||
backupReg0i = R1i.x;
|
|
||||||
R1i.x = floatBitsToInt(dot(vec4(intBitsToFloat(backupReg0i),intBitsToFloat(R1i.y),intBitsToFloat(R1i.z),intBitsToFloat(R1i.w)),vec4(intBitsToFloat(uf_remappedVS[24].x),intBitsToFloat(uf_remappedVS[24].y),intBitsToFloat(uf_remappedVS[24].z),intBitsToFloat(uf_remappedVS[24].w))));
|
|
||||||
PV1i.x = R1i.x;
|
|
||||||
PV1i.y = R1i.x;
|
|
||||||
PV1i.z = R1i.x;
|
|
||||||
PV1i.w = R1i.x;
|
|
||||||
R1i.y = PV0i.x;
|
|
||||||
PS1i = R1i.y;
|
|
||||||
// 2
|
|
||||||
R1i.y = floatBitsToInt(-(intBitsToFloat(PS1i)) + 1.0);
|
|
||||||
R1i.w = R127i.x;
|
|
||||||
// 3
|
|
||||||
predResult = (0 != uf_remappedVS[22].y);
|
|
||||||
activeMaskStack[1] = predResult;
|
|
||||||
activeMaskStackC[2] = predResult == true && activeMaskStackC[1] == true;
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
activeMaskStack[1] = false;
|
|
||||||
activeMaskStackC[2] = false;
|
|
||||||
}
|
|
||||||
if( activeMaskStackC[2] == true ) {
|
|
||||||
// 0
|
|
||||||
backupReg0i = R0i.y;
|
|
||||||
backupReg1i = R0i.z;
|
|
||||||
R3i.x = floatBitsToInt(dot(vec4(intBitsToFloat(R0i.x),intBitsToFloat(backupReg0i),intBitsToFloat(backupReg1i),intBitsToFloat(R2i.w)),vec4(intBitsToFloat(uf_remappedVS[20].x),intBitsToFloat(uf_remappedVS[20].y),intBitsToFloat(uf_remappedVS[20].z),intBitsToFloat(uf_remappedVS[20].w))));
|
|
||||||
PV0i.x = R3i.x;
|
|
||||||
PV0i.y = R3i.x;
|
|
||||||
PV0i.z = R3i.x;
|
|
||||||
PV0i.w = R3i.x;
|
|
||||||
// 1
|
|
||||||
backupReg0i = R0i.x;
|
|
||||||
backupReg1i = R0i.z;
|
|
||||||
tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(backupReg0i),intBitsToFloat(R0i.y),intBitsToFloat(backupReg1i),intBitsToFloat(R2i.w)),vec4(intBitsToFloat(uf_remappedVS[17].x),intBitsToFloat(uf_remappedVS[17].y),intBitsToFloat(uf_remappedVS[17].z),intBitsToFloat(uf_remappedVS[17].w))));
|
|
||||||
PV1i.x = tempi.x;
|
|
||||||
PV1i.y = tempi.x;
|
|
||||||
PV1i.z = tempi.x;
|
|
||||||
PV1i.w = tempi.x;
|
|
||||||
R3i.y = tempi.x;
|
|
||||||
// 2
|
|
||||||
backupReg0i = R0i.x;
|
|
||||||
backupReg1i = R0i.y;
|
|
||||||
tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(backupReg0i),intBitsToFloat(backupReg1i),intBitsToFloat(R0i.z),intBitsToFloat(R2i.w)),vec4(intBitsToFloat(uf_remappedVS[13].x),intBitsToFloat(uf_remappedVS[13].y),intBitsToFloat(uf_remappedVS[13].z),intBitsToFloat(uf_remappedVS[13].w))));
|
|
||||||
PV0i.x = tempi.x;
|
|
||||||
PV0i.y = tempi.x;
|
|
||||||
PV0i.z = tempi.x;
|
|
||||||
PV0i.w = tempi.x;
|
|
||||||
R3i.z = tempi.x;
|
|
||||||
// 3
|
|
||||||
backupReg0i = R0i.x;
|
|
||||||
backupReg1i = R0i.y;
|
|
||||||
backupReg2i = R0i.z;
|
|
||||||
tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(backupReg0i),intBitsToFloat(backupReg1i),intBitsToFloat(backupReg2i),intBitsToFloat(R2i.w)),vec4(intBitsToFloat(uf_remappedVS[12].x),intBitsToFloat(uf_remappedVS[12].y),intBitsToFloat(uf_remappedVS[12].z),intBitsToFloat(uf_remappedVS[12].w))));
|
|
||||||
PV1i.x = tempi.x;
|
|
||||||
PV1i.y = tempi.x;
|
|
||||||
PV1i.z = tempi.x;
|
|
||||||
PV1i.w = tempi.x;
|
|
||||||
R3i.w = tempi.x;
|
|
||||||
}
|
|
||||||
activeMaskStack[1] = activeMaskStack[1] == false;
|
|
||||||
activeMaskStackC[2] = activeMaskStack[1] == true && activeMaskStackC[1] == true;
|
|
||||||
if( activeMaskStackC[2] == true ) {
|
|
||||||
activeMaskStack[2] = activeMaskStack[1];
|
|
||||||
activeMaskStackC[3] = activeMaskStackC[2];
|
|
||||||
// 0
|
|
||||||
R7i.y = uf_remappedVS[1].x & int(1);
|
|
||||||
// 1
|
|
||||||
predResult = (0 != R7i.y);
|
|
||||||
activeMaskStack[2] = predResult;
|
|
||||||
activeMaskStackC[3] = predResult == true && activeMaskStackC[2] == true;
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
activeMaskStack[2] = false;
|
|
||||||
activeMaskStackC[3] = false;
|
|
||||||
}
|
|
||||||
if( activeMaskStackC[3] == true ) {
|
|
||||||
activeMaskStack[3] = activeMaskStack[2];
|
|
||||||
activeMaskStackC[4] = activeMaskStackC[3];
|
|
||||||
// 0
|
|
||||||
R7i.x = uf_remappedVS[1].x & 0x00000002;
|
|
||||||
// 1
|
|
||||||
predResult = (0 != R7i.x);
|
|
||||||
activeMaskStack[3] = predResult;
|
|
||||||
activeMaskStackC[4] = predResult == true && activeMaskStackC[3] == true;
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
activeMaskStack[3] = false;
|
|
||||||
activeMaskStackC[4] = false;
|
|
||||||
}
|
|
||||||
if( activeMaskStackC[4] == true ) {
|
|
||||||
// 0
|
|
||||||
R127i.x = uf_remappedVS[1].x & 0x00000020;
|
|
||||||
R127i.y = uf_remappedVS[1].x & 0x00000010;
|
|
||||||
PV0i.y = R127i.y;
|
|
||||||
R125i.z = uf_remappedVS[1].x & 0x00000004;
|
|
||||||
PV0i.w = uf_remappedVS[1].x & 0x00010000;
|
|
||||||
// 1
|
|
||||||
R123i.x = ((PV0i.w == 0)?(R2i.y):(R6i.y));
|
|
||||||
PV1i.x = R123i.x;
|
|
||||||
R123i.z = ((PV0i.w == 0)?(R2i.x):(R6i.x));
|
|
||||||
PV1i.z = R123i.z;
|
|
||||||
R125i.w = uf_remappedVS[1].x & 0x00000008;
|
|
||||||
R127i.z = ((PV0i.y == 0)?(R3i.y):(R3i.y));
|
|
||||||
PS1i = R127i.z;
|
|
||||||
// 2
|
|
||||||
R7i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R3i.x), intBitsToFloat(PV1i.z)));
|
|
||||||
PV0i.x = R7i.x;
|
|
||||||
PV0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PS1i), intBitsToFloat(PV1i.x)));
|
|
||||||
R126i.z = floatBitsToInt(-(intBitsToFloat(PV1i.z)) + 1.0);
|
|
||||||
R127i.w = floatBitsToInt(-(intBitsToFloat(PV1i.x)) + 1.0);
|
|
||||||
// 3
|
|
||||||
R123i.z = ((R127i.x == 0)?(R127i.z):(PV0i.y));
|
|
||||||
PV1i.z = R123i.z;
|
|
||||||
R123i.w = ((R127i.y == 0)?(R3i.x):(PV0i.x));
|
|
||||||
PV1i.w = R123i.w;
|
|
||||||
// 4
|
|
||||||
backupReg0i = R127i.x;
|
|
||||||
R127i.x = ((R125i.z == 0)?(PV1i.z):(PV1i.z));
|
|
||||||
PV0i.x = R127i.x;
|
|
||||||
R126i.w = ((backupReg0i == 0)?(PV1i.w):(PV1i.w));
|
|
||||||
PV0i.w = R126i.w;
|
|
||||||
// 5
|
|
||||||
R126i.x = floatBitsToInt(intBitsToFloat(PV0i.x) + intBitsToFloat(R127i.w));
|
|
||||||
PV1i.z = floatBitsToInt(intBitsToFloat(PV0i.w) + intBitsToFloat(R126i.z));
|
|
||||||
// 6
|
|
||||||
R123i.y = ((R125i.z == 0)?(R126i.w):(PV1i.z));
|
|
||||||
PV0i.y = R123i.y;
|
|
||||||
// 7
|
|
||||||
R3i.x = ((R125i.w == 0)?(PV0i.y):(PV0i.y));
|
|
||||||
R3i.y = ((R125i.w == 0)?(R127i.x):(R126i.x));
|
|
||||||
}
|
|
||||||
activeMaskStackC[3] = activeMaskStack[2] == true && activeMaskStackC[2] == true;
|
|
||||||
if( activeMaskStackC[3] == true ) {
|
|
||||||
// 0
|
|
||||||
R7i.x = floatBitsToInt(-(intBitsToFloat(R3i.x)) + 1.0);
|
|
||||||
PV0i.x = R7i.x;
|
|
||||||
PV0i.y = uf_remappedVS[1].x & 0x00020000;
|
|
||||||
R127i.z = uf_remappedVS[1].x & 0x00040000;
|
|
||||||
R126i.w = uf_remappedVS[1].x & 0x00010000;
|
|
||||||
// 1
|
|
||||||
R123i.x = ((PV0i.y == 0)?(R3i.x):(PV0i.x));
|
|
||||||
PV1i.x = R123i.x;
|
|
||||||
R127i.w = ((PV0i.y == 0)?(R3i.y):(R3i.y));
|
|
||||||
PV1i.w = R127i.w;
|
|
||||||
// 2
|
|
||||||
R127i.x = ((R127i.z == 0)?(PV1i.x):(PV1i.x));
|
|
||||||
PV0i.y = floatBitsToInt(-(intBitsToFloat(PV1i.w)) + 1.0);
|
|
||||||
// 3
|
|
||||||
R123i.w = ((R127i.z == 0)?(R127i.w):(PV0i.y));
|
|
||||||
PV1i.w = R123i.w;
|
|
||||||
// 4
|
|
||||||
R3i.x = ((R126i.w == 0)?(R127i.x):(PV1i.w));
|
|
||||||
R3i.y = ((R126i.w == 0)?(PV1i.w):(R127i.x));
|
|
||||||
}
|
|
||||||
activeMaskStackC[1] = activeMaskStack[0] == true && activeMaskStackC[0] == true;
|
|
||||||
if( activeMaskStackC[1] == true ) {
|
|
||||||
activeMaskStack[1] = activeMaskStack[0];
|
|
||||||
activeMaskStackC[2] = activeMaskStackC[1];
|
|
||||||
// 0
|
|
||||||
R127i.x = floatBitsToInt(dot(vec4(intBitsToFloat(R3i.x),intBitsToFloat(R3i.y),intBitsToFloat(R3i.z),intBitsToFloat(R3i.w)),vec4(intBitsToFloat(uf_remappedVS[25].x),intBitsToFloat(uf_remappedVS[25].y),intBitsToFloat(uf_remappedVS[25].z),intBitsToFloat(uf_remappedVS[25].w))));
|
|
||||||
PV0i.x = R127i.x;
|
|
||||||
PV0i.y = R127i.x;
|
|
||||||
PV0i.z = R127i.x;
|
|
||||||
PV0i.w = R127i.x;
|
|
||||||
// 1
|
|
||||||
backupReg0i = R3i.x;
|
|
||||||
R3i.x = floatBitsToInt(dot(vec4(intBitsToFloat(backupReg0i),intBitsToFloat(R3i.y),intBitsToFloat(R3i.z),intBitsToFloat(R3i.w)),vec4(intBitsToFloat(uf_remappedVS[26].x),intBitsToFloat(uf_remappedVS[26].y),intBitsToFloat(uf_remappedVS[26].z),intBitsToFloat(uf_remappedVS[26].w))));
|
|
||||||
PV1i.x = R3i.x;
|
|
||||||
PV1i.y = R3i.x;
|
|
||||||
PV1i.z = R3i.x;
|
|
||||||
PV1i.w = R3i.x;
|
|
||||||
R3i.y = PV0i.x;
|
|
||||||
PS1i = R3i.y;
|
|
||||||
// 2
|
|
||||||
R3i.y = floatBitsToInt(-(intBitsToFloat(PS1i)) + 1.0);
|
|
||||||
R3i.w = R127i.x;
|
|
||||||
// 3
|
|
||||||
predResult = (0 != uf_remappedVS[22].z);
|
|
||||||
activeMaskStack[1] = predResult;
|
|
||||||
activeMaskStackC[2] = predResult == true && activeMaskStackC[1] == true;
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
activeMaskStack[1] = false;
|
|
||||||
activeMaskStackC[2] = false;
|
|
||||||
}
|
|
||||||
if( activeMaskStackC[2] == true ) {
|
|
||||||
// 0
|
|
||||||
backupReg0i = R0i.y;
|
|
||||||
backupReg1i = R0i.z;
|
|
||||||
R4i.x = floatBitsToInt(dot(vec4(intBitsToFloat(R0i.x),intBitsToFloat(backupReg0i),intBitsToFloat(backupReg1i),intBitsToFloat(R2i.w)),vec4(intBitsToFloat(uf_remappedVS[21].x),intBitsToFloat(uf_remappedVS[21].y),intBitsToFloat(uf_remappedVS[21].z),intBitsToFloat(uf_remappedVS[21].w))));
|
|
||||||
PV0i.x = R4i.x;
|
|
||||||
PV0i.y = R4i.x;
|
|
||||||
PV0i.z = R4i.x;
|
|
||||||
PV0i.w = R4i.x;
|
|
||||||
// 1
|
|
||||||
backupReg0i = R0i.x;
|
|
||||||
backupReg1i = R0i.z;
|
|
||||||
tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(backupReg0i),intBitsToFloat(R0i.y),intBitsToFloat(backupReg1i),intBitsToFloat(R2i.w)),vec4(intBitsToFloat(uf_remappedVS[18].x),intBitsToFloat(uf_remappedVS[18].y),intBitsToFloat(uf_remappedVS[18].z),intBitsToFloat(uf_remappedVS[18].w))));
|
|
||||||
PV1i.x = tempi.x;
|
|
||||||
PV1i.y = tempi.x;
|
|
||||||
PV1i.z = tempi.x;
|
|
||||||
PV1i.w = tempi.x;
|
|
||||||
R4i.y = tempi.x;
|
|
||||||
// 2
|
|
||||||
backupReg0i = R0i.x;
|
|
||||||
backupReg1i = R0i.y;
|
|
||||||
tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(backupReg0i),intBitsToFloat(backupReg1i),intBitsToFloat(R0i.z),intBitsToFloat(R2i.w)),vec4(intBitsToFloat(uf_remappedVS[15].x),intBitsToFloat(uf_remappedVS[15].y),intBitsToFloat(uf_remappedVS[15].z),intBitsToFloat(uf_remappedVS[15].w))));
|
|
||||||
PV0i.x = tempi.x;
|
|
||||||
PV0i.y = tempi.x;
|
|
||||||
PV0i.z = tempi.x;
|
|
||||||
PV0i.w = tempi.x;
|
|
||||||
R4i.z = tempi.x;
|
|
||||||
// 3
|
|
||||||
backupReg0i = R0i.x;
|
|
||||||
backupReg1i = R0i.y;
|
|
||||||
backupReg2i = R0i.z;
|
|
||||||
tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(backupReg0i),intBitsToFloat(backupReg1i),intBitsToFloat(backupReg2i),intBitsToFloat(R2i.w)),vec4(intBitsToFloat(uf_remappedVS[14].x),intBitsToFloat(uf_remappedVS[14].y),intBitsToFloat(uf_remappedVS[14].z),intBitsToFloat(uf_remappedVS[14].w))));
|
|
||||||
PV1i.x = tempi.x;
|
|
||||||
PV1i.y = tempi.x;
|
|
||||||
PV1i.z = tempi.x;
|
|
||||||
PV1i.w = tempi.x;
|
|
||||||
R4i.w = tempi.x;
|
|
||||||
}
|
|
||||||
activeMaskStack[1] = activeMaskStack[1] == false;
|
|
||||||
activeMaskStackC[2] = activeMaskStack[1] == true && activeMaskStackC[1] == true;
|
|
||||||
if( activeMaskStackC[2] == true ) {
|
|
||||||
activeMaskStack[2] = activeMaskStack[1];
|
|
||||||
activeMaskStackC[3] = activeMaskStackC[2];
|
|
||||||
// 0
|
|
||||||
R0i.z = uf_remappedVS[1].x & int(1);
|
|
||||||
// 1
|
|
||||||
predResult = (0 != R0i.z);
|
|
||||||
activeMaskStack[2] = predResult;
|
|
||||||
activeMaskStackC[3] = predResult == true && activeMaskStackC[2] == true;
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
activeMaskStack[2] = false;
|
|
||||||
activeMaskStackC[3] = false;
|
|
||||||
}
|
|
||||||
if( activeMaskStackC[3] == true ) {
|
|
||||||
activeMaskStack[3] = activeMaskStack[2];
|
|
||||||
activeMaskStackC[4] = activeMaskStackC[3];
|
|
||||||
// 0
|
|
||||||
R0i.y = uf_remappedVS[1].x & 0x00000002;
|
|
||||||
// 1
|
|
||||||
predResult = (0 != R0i.y);
|
|
||||||
activeMaskStack[3] = predResult;
|
|
||||||
activeMaskStackC[4] = predResult == true && activeMaskStackC[3] == true;
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
activeMaskStack[3] = false;
|
|
||||||
activeMaskStackC[4] = false;
|
|
||||||
}
|
|
||||||
if( activeMaskStackC[4] == true ) {
|
|
||||||
// 0
|
|
||||||
R127i.x = uf_remappedVS[1].x & 0x00000020;
|
|
||||||
R127i.y = uf_remappedVS[1].x & 0x00000010;
|
|
||||||
PV0i.y = R127i.y;
|
|
||||||
R125i.z = uf_remappedVS[1].x & 0x00000004;
|
|
||||||
PV0i.w = uf_remappedVS[1].x & 0x00010000;
|
|
||||||
// 1
|
|
||||||
R123i.x = ((PV0i.w == 0)?(R2i.y):(R6i.y));
|
|
||||||
PV1i.x = R123i.x;
|
|
||||||
R123i.z = ((PV0i.w == 0)?(R2i.x):(R6i.x));
|
|
||||||
PV1i.z = R123i.z;
|
|
||||||
R125i.w = uf_remappedVS[1].x & 0x00000008;
|
|
||||||
R127i.z = ((PV0i.y == 0)?(R4i.y):(R4i.y));
|
|
||||||
PS1i = R127i.z;
|
|
||||||
// 2
|
|
||||||
R0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R4i.x), intBitsToFloat(PV1i.z)));
|
|
||||||
PV0i.x = R0i.x;
|
|
||||||
PV0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PS1i), intBitsToFloat(PV1i.x)));
|
|
||||||
R126i.z = floatBitsToInt(-(intBitsToFloat(PV1i.z)) + 1.0);
|
|
||||||
R127i.w = floatBitsToInt(-(intBitsToFloat(PV1i.x)) + 1.0);
|
|
||||||
// 3
|
|
||||||
R123i.z = ((R127i.x == 0)?(R127i.z):(PV0i.y));
|
|
||||||
PV1i.z = R123i.z;
|
|
||||||
R123i.w = ((R127i.y == 0)?(R4i.x):(PV0i.x));
|
|
||||||
PV1i.w = R123i.w;
|
|
||||||
// 4
|
|
||||||
backupReg0i = R127i.x;
|
|
||||||
R127i.x = ((R125i.z == 0)?(PV1i.z):(PV1i.z));
|
|
||||||
PV0i.x = R127i.x;
|
|
||||||
R126i.w = ((backupReg0i == 0)?(PV1i.w):(PV1i.w));
|
|
||||||
PV0i.w = R126i.w;
|
|
||||||
// 5
|
|
||||||
R126i.x = floatBitsToInt(intBitsToFloat(PV0i.x) + intBitsToFloat(R127i.w));
|
|
||||||
PV1i.z = floatBitsToInt(intBitsToFloat(PV0i.w) + intBitsToFloat(R126i.z));
|
|
||||||
// 6
|
|
||||||
R123i.y = ((R125i.z == 0)?(R126i.w):(PV1i.z));
|
|
||||||
PV0i.y = R123i.y;
|
|
||||||
// 7
|
|
||||||
R4i.x = ((R125i.w == 0)?(PV0i.y):(PV0i.y));
|
|
||||||
R4i.y = ((R125i.w == 0)?(R127i.x):(R126i.x));
|
|
||||||
}
|
|
||||||
activeMaskStackC[3] = activeMaskStack[2] == true && activeMaskStackC[2] == true;
|
|
||||||
if( activeMaskStackC[3] == true ) {
|
|
||||||
// 0
|
|
||||||
R0i.x = floatBitsToInt(-(intBitsToFloat(R4i.x)) + 1.0);
|
|
||||||
PV0i.x = R0i.x;
|
|
||||||
PV0i.y = uf_remappedVS[1].x & 0x00020000;
|
|
||||||
R127i.z = uf_remappedVS[1].x & 0x00040000;
|
|
||||||
R126i.w = uf_remappedVS[1].x & 0x00010000;
|
|
||||||
// 1
|
|
||||||
R123i.x = ((PV0i.y == 0)?(R4i.x):(PV0i.x));
|
|
||||||
PV1i.x = R123i.x;
|
|
||||||
R127i.w = ((PV0i.y == 0)?(R4i.y):(R4i.y));
|
|
||||||
PV1i.w = R127i.w;
|
|
||||||
// 2
|
|
||||||
R127i.x = ((R127i.z == 0)?(PV1i.x):(PV1i.x));
|
|
||||||
PV0i.y = floatBitsToInt(-(intBitsToFloat(PV1i.w)) + 1.0);
|
|
||||||
// 3
|
|
||||||
R123i.w = ((R127i.z == 0)?(R127i.w):(PV0i.y));
|
|
||||||
PV1i.w = R123i.w;
|
|
||||||
// 4
|
|
||||||
R4i.x = ((R126i.w == 0)?(R127i.x):(PV1i.w));
|
|
||||||
R4i.y = ((R126i.w == 0)?(PV1i.w):(R127i.x));
|
|
||||||
}
|
|
||||||
activeMaskStackC[1] = activeMaskStack[0] == true && activeMaskStackC[0] == true;
|
|
||||||
if( activeMaskStackC[1] == true ) {
|
|
||||||
// 0
|
|
||||||
tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R4i.x),intBitsToFloat(R4i.y),intBitsToFloat(R4i.z),intBitsToFloat(R4i.w)),vec4(intBitsToFloat(uf_remappedVS[27].x),intBitsToFloat(uf_remappedVS[27].y),intBitsToFloat(uf_remappedVS[27].z),intBitsToFloat(uf_remappedVS[27].w))));
|
|
||||||
PV0i.x = tempi.x;
|
|
||||||
PV0i.y = tempi.x;
|
|
||||||
PV0i.z = tempi.x;
|
|
||||||
PV0i.w = tempi.x;
|
|
||||||
// 1
|
|
||||||
PV1i.x = PV0i.x;
|
|
||||||
R0i.w = PV0i.x;
|
|
||||||
PS1i = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R4i.w), intBitsToFloat(uf_remappedVS[28].w)));
|
|
||||||
// 2
|
|
||||||
R0i.x = floatBitsToInt(dot(vec4(intBitsToFloat(R4i.x),intBitsToFloat(R4i.y),intBitsToFloat(R4i.z),intBitsToFloat(PS1i)),vec4(intBitsToFloat(uf_remappedVS[28].x),intBitsToFloat(uf_remappedVS[28].y),intBitsToFloat(uf_remappedVS[28].z),1.0)));
|
|
||||||
PV0i.x = R0i.x;
|
|
||||||
PV0i.y = R0i.x;
|
|
||||||
PV0i.z = R0i.x;
|
|
||||||
PV0i.w = R0i.x;
|
|
||||||
R0i.y = floatBitsToInt(-(intBitsToFloat(PV1i.x)) + 1.0);
|
|
||||||
PS0i = R0i.y;
|
|
||||||
}
|
|
||||||
// export
|
|
||||||
gl_Position = vec4(intBitsToFloat(R5i.x), intBitsToFloat(R5i.y), intBitsToFloat(R5i.z), intBitsToFloat(R5i.w));
|
|
||||||
if (isCurrentSizeEqualTo(vec2(32, 32))) {
|
|
||||||
gl_Position.y -= 9000.0;
|
|
||||||
}
|
|
||||||
// export
|
|
||||||
passParameterSem0 = vec4(intBitsToFloat(R1i.x), intBitsToFloat(R1i.y), intBitsToFloat(R1i.x), intBitsToFloat(R1i.w));
|
|
||||||
// export
|
|
||||||
passParameterSem1 = vec4(intBitsToFloat(R3i.x), intBitsToFloat(R3i.y), intBitsToFloat(R3i.x), intBitsToFloat(R3i.w));
|
|
||||||
// export
|
|
||||||
passParameterSem2 = vec4(intBitsToFloat(R0i.x), intBitsToFloat(R0i.y), intBitsToFloat(R0i.x), intBitsToFloat(R0i.w));
|
|
||||||
}
|
|
File diff suppressed because it is too large
Load Diff
@ -1,480 +0,0 @@
|
|||||||
#version 420
|
|
||||||
#extension GL_ARB_texture_gather : enable
|
|
||||||
#extension GL_ARB_shading_language_packing : enable
|
|
||||||
// shader b88c6020a8b17332
|
|
||||||
// PRO+ hud v2
|
|
||||||
uniform ivec4 uf_remappedVS[17];
|
|
||||||
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; }
|
|
||||||
bool isCurrentSizeEqualTo(vec2 param) {
|
|
||||||
float result = distance(param, intBitsToFloat(uf_remappedVS[0]).xy);
|
|
||||||
return (result <= 0.001);
|
|
||||||
}
|
|
||||||
void main()
|
|
||||||
{
|
|
||||||
ivec4 R0i = ivec4(0);
|
|
||||||
ivec4 R1i = ivec4(0);
|
|
||||||
ivec4 R2i = 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);
|
|
||||||
uvec4 attrDecoder;
|
|
||||||
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;
|
|
||||||
bool activeMaskStack[4];
|
|
||||||
bool activeMaskStackC[5];
|
|
||||||
activeMaskStack[0] = false;
|
|
||||||
activeMaskStack[1] = false;
|
|
||||||
activeMaskStack[2] = false;
|
|
||||||
activeMaskStackC[0] = false;
|
|
||||||
activeMaskStackC[1] = false;
|
|
||||||
activeMaskStackC[2] = false;
|
|
||||||
activeMaskStackC[3] = false;
|
|
||||||
activeMaskStack[0] = true;
|
|
||||||
activeMaskStackC[0] = true;
|
|
||||||
activeMaskStackC[1] = true;
|
|
||||||
vec3 cubeMapSTM;
|
|
||||||
int cubeMapFaceId;
|
|
||||||
R0i = 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;
|
|
||||||
R1i = ivec4(int(attrDecoder.x), int(attrDecoder.y), floatBitsToInt(0.0), floatBitsToInt(1.0));
|
|
||||||
if( activeMaskStackC[1] == true ) {
|
|
||||||
activeMaskStack[1] = activeMaskStack[0];
|
|
||||||
activeMaskStackC[2] = activeMaskStackC[1];
|
|
||||||
// 0
|
|
||||||
PV0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.x), intBitsToFloat(uf_remappedVS[0].x)));
|
|
||||||
R0i.yzw = ivec3(floatBitsToInt(-(intBitsToFloat(R1i.y))),0,0x3f800000);
|
|
||||||
PV0i.y = R0i.y;
|
|
||||||
R127i.w = floatBitsToInt(1.0);
|
|
||||||
PS0i = R127i.w;
|
|
||||||
// 1
|
|
||||||
R0i.x = floatBitsToInt(intBitsToFloat(PV0i.x) + intBitsToFloat(uf_remappedVS[0].z));
|
|
||||||
PV1i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.y), intBitsToFloat(uf_remappedVS[0].y)));
|
|
||||||
// 2
|
|
||||||
R0i.y = floatBitsToInt(intBitsToFloat(PV1i.z) + intBitsToFloat(uf_remappedVS[0].w));
|
|
||||||
PV0i.y = R0i.y;
|
|
||||||
R1i.w = uf_remappedVS[1].x & 0x40000000;
|
|
||||||
// 3
|
|
||||||
backupReg0i = R0i.z;
|
|
||||||
backupReg1i = R0i.w;
|
|
||||||
R127i.x = floatBitsToInt(dot(vec4(intBitsToFloat(R0i.x),intBitsToFloat(PV0i.y),intBitsToFloat(backupReg0i),intBitsToFloat(backupReg1i)),vec4(intBitsToFloat(uf_remappedVS[2].x),intBitsToFloat(uf_remappedVS[2].y),intBitsToFloat(uf_remappedVS[2].z),intBitsToFloat(uf_remappedVS[2].w))));
|
|
||||||
PV1i.x = R127i.x;
|
|
||||||
PV1i.y = R127i.x;
|
|
||||||
PV1i.z = R127i.x;
|
|
||||||
PV1i.w = R127i.x;
|
|
||||||
// 4
|
|
||||||
backupReg0i = R0i.x;
|
|
||||||
backupReg1i = R0i.z;
|
|
||||||
backupReg2i = R0i.w;
|
|
||||||
tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(backupReg0i),intBitsToFloat(R0i.y),intBitsToFloat(backupReg1i),intBitsToFloat(backupReg2i)),vec4(intBitsToFloat(uf_remappedVS[3].x),intBitsToFloat(uf_remappedVS[3].y),intBitsToFloat(uf_remappedVS[3].z),intBitsToFloat(uf_remappedVS[3].w))));
|
|
||||||
PV0i.x = tempi.x;
|
|
||||||
PV0i.y = tempi.x;
|
|
||||||
PV0i.z = tempi.x;
|
|
||||||
PV0i.w = tempi.x;
|
|
||||||
R127i.y = tempi.x;
|
|
||||||
// 5
|
|
||||||
backupReg0i = R0i.x;
|
|
||||||
backupReg1i = R0i.y;
|
|
||||||
backupReg2i = R0i.w;
|
|
||||||
tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(backupReg0i),intBitsToFloat(backupReg1i),intBitsToFloat(R0i.z),intBitsToFloat(backupReg2i)),vec4(intBitsToFloat(uf_remappedVS[4].x),intBitsToFloat(uf_remappedVS[4].y),intBitsToFloat(uf_remappedVS[4].z),intBitsToFloat(uf_remappedVS[4].w))));
|
|
||||||
PV1i.x = tempi.x;
|
|
||||||
PV1i.y = tempi.x;
|
|
||||||
PV1i.z = tempi.x;
|
|
||||||
PV1i.w = tempi.x;
|
|
||||||
R127i.z = tempi.x;
|
|
||||||
// 6
|
|
||||||
R2i.x = floatBitsToInt(dot(vec4(intBitsToFloat(R127i.x),intBitsToFloat(R127i.y),intBitsToFloat(PV1i.x),intBitsToFloat(R127i.w)),vec4(intBitsToFloat(uf_remappedVS[5].x),intBitsToFloat(uf_remappedVS[5].y),intBitsToFloat(uf_remappedVS[5].z),intBitsToFloat(uf_remappedVS[5].w))));
|
|
||||||
PV0i.x = R2i.x;
|
|
||||||
PV0i.y = R2i.x;
|
|
||||||
PV0i.z = R2i.x;
|
|
||||||
PV0i.w = R2i.x;
|
|
||||||
// 7
|
|
||||||
tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R127i.x),intBitsToFloat(R127i.y),intBitsToFloat(R127i.z),intBitsToFloat(R127i.w)),vec4(intBitsToFloat(uf_remappedVS[6].x),intBitsToFloat(uf_remappedVS[6].y),intBitsToFloat(uf_remappedVS[6].z),intBitsToFloat(uf_remappedVS[6].w))));
|
|
||||||
PV1i.x = tempi.x;
|
|
||||||
PV1i.y = tempi.x;
|
|
||||||
PV1i.z = tempi.x;
|
|
||||||
PV1i.w = tempi.x;
|
|
||||||
R2i.y = tempi.x;
|
|
||||||
// 8
|
|
||||||
tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R127i.x),intBitsToFloat(R127i.y),intBitsToFloat(R127i.z),intBitsToFloat(R127i.w)),vec4(intBitsToFloat(uf_remappedVS[7].x),intBitsToFloat(uf_remappedVS[7].y),intBitsToFloat(uf_remappedVS[7].z),intBitsToFloat(uf_remappedVS[7].w))));
|
|
||||||
PV0i.x = tempi.x;
|
|
||||||
PV0i.y = tempi.x;
|
|
||||||
PV0i.z = tempi.x;
|
|
||||||
PV0i.w = tempi.x;
|
|
||||||
R2i.z = tempi.x;
|
|
||||||
// 9
|
|
||||||
tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R127i.x),intBitsToFloat(R127i.y),intBitsToFloat(R127i.z),intBitsToFloat(R127i.w)),vec4(intBitsToFloat(uf_remappedVS[8].x),intBitsToFloat(uf_remappedVS[8].y),intBitsToFloat(uf_remappedVS[8].z),intBitsToFloat(uf_remappedVS[8].w))));
|
|
||||||
PV1i.x = tempi.x;
|
|
||||||
PV1i.y = tempi.x;
|
|
||||||
PV1i.z = tempi.x;
|
|
||||||
PV1i.w = tempi.x;
|
|
||||||
R2i.w = tempi.x;
|
|
||||||
// 10
|
|
||||||
predResult = (0 != R1i.w);
|
|
||||||
activeMaskStack[1] = predResult;
|
|
||||||
activeMaskStackC[2] = predResult == true && activeMaskStackC[1] == true;
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
activeMaskStack[1] = false;
|
|
||||||
activeMaskStackC[2] = false;
|
|
||||||
}
|
|
||||||
if( activeMaskStackC[2] == true ) {
|
|
||||||
activeMaskStack[2] = activeMaskStack[1];
|
|
||||||
activeMaskStackC[3] = activeMaskStackC[2];
|
|
||||||
// 0
|
|
||||||
R1i.z = uf_remappedVS[1].x & 0x00000002;
|
|
||||||
// 1
|
|
||||||
predResult = (0 != R1i.z);
|
|
||||||
activeMaskStack[2] = predResult;
|
|
||||||
activeMaskStackC[3] = predResult == true && activeMaskStackC[2] == true;
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
activeMaskStack[2] = false;
|
|
||||||
activeMaskStackC[3] = false;
|
|
||||||
}
|
|
||||||
if( activeMaskStackC[3] == true ) {
|
|
||||||
// 0
|
|
||||||
backupReg0i = R1i.y;
|
|
||||||
R1i.yzw = ivec3(backupReg0i,0,0x3f800000);
|
|
||||||
}
|
|
||||||
activeMaskStack[2] = activeMaskStack[2] == false;
|
|
||||||
activeMaskStackC[3] = activeMaskStack[2] == true && activeMaskStackC[2] == true;
|
|
||||||
if( activeMaskStackC[3] == true ) {
|
|
||||||
// 0
|
|
||||||
PS0i = int(intBitsToFloat(R1i.y));
|
|
||||||
// 1
|
|
||||||
PV1i.x = PS0i << int(1);
|
|
||||||
PS1i = int(intBitsToFloat(R1i.x));
|
|
||||||
// 2
|
|
||||||
R126i.z = PV1i.x + PS1i;
|
|
||||||
PV0i.z = R126i.z;
|
|
||||||
// 3
|
|
||||||
R127i.x = (PV0i.z == 0x00000002)?int(0xFFFFFFFF):int(0x0);
|
|
||||||
PV1i.x = R127i.x;
|
|
||||||
R127i.y = (PV0i.z == int(1))?int(0xFFFFFFFF):int(0x0);
|
|
||||||
// 4
|
|
||||||
R127i.z = ((PV1i.x == 0)?(uf_remappedVS[9].y):(uf_remappedVS[10].y));
|
|
||||||
R127i.w = ((PV1i.x == 0)?(uf_remappedVS[9].x):(uf_remappedVS[10].x));
|
|
||||||
// 5
|
|
||||||
R123i.x = ((R127i.x == 0)?(uf_remappedVS[9].w):(uf_remappedVS[10].w));
|
|
||||||
PV1i.x = R123i.x;
|
|
||||||
R123i.y = ((R127i.x == 0)?(uf_remappedVS[9].z):(uf_remappedVS[10].z));
|
|
||||||
PV1i.y = R123i.y;
|
|
||||||
// 6
|
|
||||||
R123i.x = ((R127i.y == 0)?(PV1i.x):(uf_remappedVS[11].w));
|
|
||||||
PV0i.x = R123i.x;
|
|
||||||
R123i.y = ((R127i.y == 0)?(PV1i.y):(uf_remappedVS[11].z));
|
|
||||||
PV0i.y = R123i.y;
|
|
||||||
R123i.z = ((R127i.y == 0)?(R127i.z):(uf_remappedVS[11].y));
|
|
||||||
PV0i.z = R123i.z;
|
|
||||||
R123i.w = ((R127i.y == 0)?(R127i.w):(uf_remappedVS[11].x));
|
|
||||||
PV0i.w = R123i.w;
|
|
||||||
// 7
|
|
||||||
R1i.x = ((R126i.z == 0)?(uf_remappedVS[12].x):(PV0i.w));
|
|
||||||
R1i.y = ((R126i.z == 0)?(uf_remappedVS[12].y):(PV0i.z));
|
|
||||||
R1i.z = ((R126i.z == 0)?(uf_remappedVS[12].z):(PV0i.y));
|
|
||||||
R1i.w = ((R126i.z == 0)?(uf_remappedVS[12].w):(PV0i.x));
|
|
||||||
}
|
|
||||||
activeMaskStackC[2] = activeMaskStack[1] == true && activeMaskStackC[1] == true;
|
|
||||||
activeMaskStack[1] = activeMaskStack[1] == false;
|
|
||||||
activeMaskStackC[2] = activeMaskStack[1] == true && activeMaskStackC[1] == true;
|
|
||||||
if( activeMaskStackC[2] == true ) {
|
|
||||||
activeMaskStack[2] = activeMaskStack[1];
|
|
||||||
activeMaskStackC[3] = activeMaskStackC[2];
|
|
||||||
// 0
|
|
||||||
R1i.w = uf_remappedVS[1].x & 0x00000002;
|
|
||||||
// 1
|
|
||||||
predResult = (0 != R1i.w);
|
|
||||||
activeMaskStack[2] = predResult;
|
|
||||||
activeMaskStackC[3] = predResult == true && activeMaskStackC[2] == true;
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
activeMaskStack[2] = false;
|
|
||||||
activeMaskStackC[3] = false;
|
|
||||||
}
|
|
||||||
if( activeMaskStackC[3] == true ) {
|
|
||||||
// 0
|
|
||||||
backupReg0i = R1i.y;
|
|
||||||
R1i.yzw = ivec3(backupReg0i,0,0x3f800000);
|
|
||||||
}
|
|
||||||
activeMaskStack[2] = activeMaskStack[2] == false;
|
|
||||||
activeMaskStackC[3] = activeMaskStack[2] == true && activeMaskStackC[2] == true;
|
|
||||||
if( activeMaskStackC[3] == true ) {
|
|
||||||
// 0
|
|
||||||
PS0i = int(intBitsToFloat(R1i.y));
|
|
||||||
// 1
|
|
||||||
PV1i.x = PS0i << int(1);
|
|
||||||
PS1i = int(intBitsToFloat(R1i.x));
|
|
||||||
// 2
|
|
||||||
R126i.z = PV1i.x + PS1i;
|
|
||||||
PV0i.z = R126i.z;
|
|
||||||
// 3
|
|
||||||
R127i.x = (PV0i.z == 0x00000002)?int(0xFFFFFFFF):int(0x0);
|
|
||||||
PV1i.x = R127i.x;
|
|
||||||
R127i.y = (PV0i.z == int(1))?int(0xFFFFFFFF):int(0x0);
|
|
||||||
// 4
|
|
||||||
R127i.z = ((PV1i.x == 0)?(uf_remappedVS[9].y):(uf_remappedVS[10].y));
|
|
||||||
R127i.w = ((PV1i.x == 0)?(uf_remappedVS[9].x):(uf_remappedVS[10].x));
|
|
||||||
// 5
|
|
||||||
R123i.x = ((R127i.x == 0)?(uf_remappedVS[9].w):(uf_remappedVS[10].w));
|
|
||||||
PV1i.x = R123i.x;
|
|
||||||
R123i.y = ((R127i.x == 0)?(uf_remappedVS[9].z):(uf_remappedVS[10].z));
|
|
||||||
PV1i.y = R123i.y;
|
|
||||||
// 6
|
|
||||||
R123i.x = ((R127i.y == 0)?(PV1i.x):(uf_remappedVS[11].w));
|
|
||||||
PV0i.x = R123i.x;
|
|
||||||
R123i.y = ((R127i.y == 0)?(PV1i.y):(uf_remappedVS[11].z));
|
|
||||||
PV0i.y = R123i.y;
|
|
||||||
R123i.z = ((R127i.y == 0)?(R127i.z):(uf_remappedVS[11].y));
|
|
||||||
PV0i.z = R123i.z;
|
|
||||||
R123i.w = ((R127i.y == 0)?(R127i.w):(uf_remappedVS[11].x));
|
|
||||||
PV0i.w = R123i.w;
|
|
||||||
// 7
|
|
||||||
R1i.x = ((R126i.z == 0)?(uf_remappedVS[12].x):(PV0i.w));
|
|
||||||
R1i.y = ((R126i.z == 0)?(uf_remappedVS[12].y):(PV0i.z));
|
|
||||||
R1i.z = ((R126i.z == 0)?(uf_remappedVS[12].z):(PV0i.y));
|
|
||||||
R1i.w = ((R126i.z == 0)?(uf_remappedVS[12].w):(PV0i.x));
|
|
||||||
}
|
|
||||||
activeMaskStackC[2] = activeMaskStack[1] == true && activeMaskStackC[1] == true;
|
|
||||||
activeMaskStackC[1] = activeMaskStack[0] == true && activeMaskStackC[0] == true;
|
|
||||||
if( activeMaskStackC[1] == true ) {
|
|
||||||
activeMaskStack[1] = activeMaskStack[0];
|
|
||||||
activeMaskStackC[2] = activeMaskStackC[1];
|
|
||||||
// 0
|
|
||||||
predResult = (0 != uf_remappedVS[13].x);
|
|
||||||
activeMaskStack[1] = predResult;
|
|
||||||
activeMaskStackC[2] = predResult == true && activeMaskStackC[1] == true;
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
activeMaskStack[1] = false;
|
|
||||||
activeMaskStackC[2] = false;
|
|
||||||
}
|
|
||||||
if( activeMaskStackC[2] == true ) {
|
|
||||||
// 0
|
|
||||||
backupReg0i = R0i.y;
|
|
||||||
backupReg1i = R0i.z;
|
|
||||||
backupReg2i = R0i.w;
|
|
||||||
R1i.x = floatBitsToInt(dot(vec4(intBitsToFloat(R0i.x),intBitsToFloat(backupReg0i),intBitsToFloat(backupReg1i),intBitsToFloat(backupReg2i)),vec4(intBitsToFloat(uf_remappedVS[12].x),intBitsToFloat(uf_remappedVS[12].y),intBitsToFloat(uf_remappedVS[12].z),intBitsToFloat(uf_remappedVS[12].w))));
|
|
||||||
PV0i.x = R1i.x;
|
|
||||||
PV0i.y = R1i.x;
|
|
||||||
PV0i.z = R1i.x;
|
|
||||||
PV0i.w = R1i.x;
|
|
||||||
// 1
|
|
||||||
backupReg0i = R0i.x;
|
|
||||||
backupReg1i = R0i.z;
|
|
||||||
backupReg2i = R0i.w;
|
|
||||||
tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(backupReg0i),intBitsToFloat(R0i.y),intBitsToFloat(backupReg1i),intBitsToFloat(backupReg2i)),vec4(intBitsToFloat(uf_remappedVS[11].x),intBitsToFloat(uf_remappedVS[11].y),intBitsToFloat(uf_remappedVS[11].z),intBitsToFloat(uf_remappedVS[11].w))));
|
|
||||||
PV1i.x = tempi.x;
|
|
||||||
PV1i.y = tempi.x;
|
|
||||||
PV1i.z = tempi.x;
|
|
||||||
PV1i.w = tempi.x;
|
|
||||||
R1i.y = tempi.x;
|
|
||||||
// 2
|
|
||||||
backupReg0i = R0i.x;
|
|
||||||
backupReg1i = R0i.y;
|
|
||||||
backupReg2i = R0i.w;
|
|
||||||
tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(backupReg0i),intBitsToFloat(backupReg1i),intBitsToFloat(R0i.z),intBitsToFloat(backupReg2i)),vec4(intBitsToFloat(uf_remappedVS[10].x),intBitsToFloat(uf_remappedVS[10].y),intBitsToFloat(uf_remappedVS[10].z),intBitsToFloat(uf_remappedVS[10].w))));
|
|
||||||
PV0i.x = tempi.x;
|
|
||||||
PV0i.y = tempi.x;
|
|
||||||
PV0i.z = tempi.x;
|
|
||||||
PV0i.w = tempi.x;
|
|
||||||
R1i.z = tempi.x;
|
|
||||||
// 3
|
|
||||||
backupReg0i = R0i.x;
|
|
||||||
backupReg1i = R0i.y;
|
|
||||||
backupReg2i = R0i.z;
|
|
||||||
tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(backupReg0i),intBitsToFloat(backupReg1i),intBitsToFloat(backupReg2i),intBitsToFloat(R0i.w)),vec4(intBitsToFloat(uf_remappedVS[9].x),intBitsToFloat(uf_remappedVS[9].y),intBitsToFloat(uf_remappedVS[9].z),intBitsToFloat(uf_remappedVS[9].w))));
|
|
||||||
PV1i.x = tempi.x;
|
|
||||||
PV1i.y = tempi.x;
|
|
||||||
PV1i.z = tempi.x;
|
|
||||||
PV1i.w = tempi.x;
|
|
||||||
R1i.w = tempi.x;
|
|
||||||
}
|
|
||||||
activeMaskStack[1] = activeMaskStack[1] == false;
|
|
||||||
activeMaskStackC[2] = activeMaskStack[1] == true && activeMaskStackC[1] == true;
|
|
||||||
if( activeMaskStackC[2] == true ) {
|
|
||||||
activeMaskStack[2] = activeMaskStack[1];
|
|
||||||
activeMaskStackC[3] = activeMaskStackC[2];
|
|
||||||
// 0
|
|
||||||
R0i.x = uf_remappedVS[1].x & int(1);
|
|
||||||
// 1
|
|
||||||
backupReg0i = R0i.x;
|
|
||||||
predResult = (0 != backupReg0i);
|
|
||||||
activeMaskStack[2] = predResult;
|
|
||||||
activeMaskStackC[3] = predResult == true && activeMaskStackC[2] == true;
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
activeMaskStack[2] = false;
|
|
||||||
activeMaskStackC[3] = false;
|
|
||||||
}
|
|
||||||
if( activeMaskStackC[3] == true ) {
|
|
||||||
activeMaskStack[3] = activeMaskStack[2];
|
|
||||||
activeMaskStackC[4] = activeMaskStackC[3];
|
|
||||||
// 0
|
|
||||||
R0i.w = uf_remappedVS[1].x & 0x00000002;
|
|
||||||
// 1
|
|
||||||
predResult = (0 != R0i.w);
|
|
||||||
activeMaskStack[3] = predResult;
|
|
||||||
activeMaskStackC[4] = predResult == true && activeMaskStackC[3] == true;
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
activeMaskStack[3] = false;
|
|
||||||
activeMaskStackC[4] = false;
|
|
||||||
}
|
|
||||||
if( activeMaskStackC[4] == true ) {
|
|
||||||
// 0
|
|
||||||
R127i.x = uf_remappedVS[1].x & 0x00010000;
|
|
||||||
R127i.y = uf_remappedVS[1].x & 0x00000010;
|
|
||||||
PV0i.y = R127i.y;
|
|
||||||
R125i.z = uf_remappedVS[1].x & 0x00000004;
|
|
||||||
R127i.w = uf_remappedVS[1].x & 0x00000020;
|
|
||||||
// 1
|
|
||||||
PV1i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedVS[0].y), intBitsToFloat(uf_remappedVS[14].y)));
|
|
||||||
PV1i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedVS[0].x), intBitsToFloat(uf_remappedVS[14].x)));
|
|
||||||
PV1i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedVS[0].y), intBitsToFloat(uf_remappedVS[14].x)));
|
|
||||||
PV1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedVS[0].x), intBitsToFloat(uf_remappedVS[14].y)));
|
|
||||||
R127i.z = ((PV0i.y == 0)?(R1i.y):(R1i.y));
|
|
||||||
PS1i = R127i.z;
|
|
||||||
// 2
|
|
||||||
R123i.x = ((R127i.y == 0)?(R1i.w):(R1i.w));
|
|
||||||
PV0i.x = R123i.x;
|
|
||||||
R123i.y = ((R127i.y == 0)?(R1i.z):(R1i.z));
|
|
||||||
PV0i.y = R123i.y;
|
|
||||||
R126i.z = ((R127i.x == 0)?(PV1i.x):(PV1i.z));
|
|
||||||
PV0i.z = R126i.z;
|
|
||||||
R123i.w = ((R127i.x == 0)?(PV1i.y):(PV1i.w));
|
|
||||||
PV0i.w = R123i.w;
|
|
||||||
R124i.y = uf_remappedVS[1].x & 0x00000008;
|
|
||||||
PS0i = R124i.y;
|
|
||||||
// 3
|
|
||||||
R0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.x), intBitsToFloat(PV0i.w)));
|
|
||||||
PV1i.x = R0i.x;
|
|
||||||
R126i.y = floatBitsToInt(-(intBitsToFloat(PV0i.w)) + 1.0);
|
|
||||||
PV1i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.z), intBitsToFloat(PV0i.z)));
|
|
||||||
R123i.w = ((R127i.w == 0)?(PV0i.y):(PV0i.y));
|
|
||||||
PV1i.w = R123i.w;
|
|
||||||
R122i.x = ((R127i.w == 0)?(PV0i.x):(PV0i.x));
|
|
||||||
PS1i = R122i.x;
|
|
||||||
// 4
|
|
||||||
backupReg0i = R127i.y;
|
|
||||||
R123i.x = ((R127i.w == 0)?(R127i.z):(PV1i.z));
|
|
||||||
PV0i.x = R123i.x;
|
|
||||||
R127i.y = floatBitsToInt(-(intBitsToFloat(R126i.z)) + 1.0);
|
|
||||||
R127i.z = ((R125i.z == 0)?(PV1i.w):(PV1i.w));
|
|
||||||
R123i.w = ((backupReg0i == 0)?(R1i.x):(PV1i.x));
|
|
||||||
PV0i.w = R123i.w;
|
|
||||||
R126i.z = ((R125i.z == 0)?(PS1i):(PS1i));
|
|
||||||
PS0i = R126i.z;
|
|
||||||
// 5
|
|
||||||
R127i.x = ((R125i.z == 0)?(PV0i.x):(PV0i.x));
|
|
||||||
PV1i.x = R127i.x;
|
|
||||||
R125i.y = ((R127i.w == 0)?(PV0i.w):(PV0i.w));
|
|
||||||
PV1i.y = R125i.y;
|
|
||||||
// 6
|
|
||||||
R126i.x = floatBitsToInt(intBitsToFloat(PV1i.x) + intBitsToFloat(R127i.y));
|
|
||||||
PV0i.z = floatBitsToInt(intBitsToFloat(PV1i.y) + intBitsToFloat(R126i.y));
|
|
||||||
// 7
|
|
||||||
R123i.y = ((R125i.z == 0)?(R125i.y):(PV0i.z));
|
|
||||||
PV1i.y = R123i.y;
|
|
||||||
// 8
|
|
||||||
R1i.x = ((R124i.y == 0)?(PV1i.y):(PV1i.y));
|
|
||||||
R1i.y = ((R124i.y == 0)?(R127i.x):(R126i.x));
|
|
||||||
R1i.z = ((R124i.y == 0)?(R127i.z):(R127i.z));
|
|
||||||
R1i.w = ((R124i.y == 0)?(R126i.z):(R126i.z));
|
|
||||||
PS0i = R1i.w;
|
|
||||||
}
|
|
||||||
activeMaskStackC[3] = activeMaskStack[2] == true && activeMaskStackC[2] == true;
|
|
||||||
if( activeMaskStackC[3] == true ) {
|
|
||||||
// 0
|
|
||||||
R0i.x = floatBitsToInt(-(intBitsToFloat(R1i.x)) + 1.0);
|
|
||||||
PV0i.x = R0i.x;
|
|
||||||
R126i.y = uf_remappedVS[1].x & 0x00010000;
|
|
||||||
R127i.z = uf_remappedVS[1].x & 0x00040000;
|
|
||||||
PV0i.w = uf_remappedVS[1].x & 0x00020000;
|
|
||||||
// 1
|
|
||||||
R123i.x = ((PV0i.w == 0)?(R1i.z):(R1i.z));
|
|
||||||
PV1i.x = R123i.x;
|
|
||||||
R127i.y = ((PV0i.w == 0)?(R1i.y):(R1i.y));
|
|
||||||
PV1i.y = R127i.y;
|
|
||||||
R123i.z = ((PV0i.w == 0)?(R1i.x):(PV0i.x));
|
|
||||||
PV1i.z = R123i.z;
|
|
||||||
R123i.w = ((PV0i.w == 0)?(R1i.w):(R1i.w));
|
|
||||||
PV1i.w = R123i.w;
|
|
||||||
// 2
|
|
||||||
R127i.x = ((R127i.z == 0)?(PV1i.z):(PV1i.z));
|
|
||||||
PV0i.y = floatBitsToInt(-(intBitsToFloat(PV1i.y)) + 1.0);
|
|
||||||
R126i.z = ((R127i.z == 0)?(PV1i.x):(PV1i.x));
|
|
||||||
R127i.w = ((R127i.z == 0)?(PV1i.w):(PV1i.w));
|
|
||||||
// 3
|
|
||||||
R123i.w = ((R127i.z == 0)?(R127i.y):(PV0i.y));
|
|
||||||
PV1i.w = R123i.w;
|
|
||||||
// 4
|
|
||||||
R1i.x = ((R126i.y == 0)?(R127i.x):(PV1i.w));
|
|
||||||
R1i.y = ((R126i.y == 0)?(PV1i.w):(R127i.x));
|
|
||||||
R1i.z = ((R126i.y == 0)?(R126i.z):(R126i.z));
|
|
||||||
R1i.w = ((R126i.y == 0)?(R127i.w):(R127i.w));
|
|
||||||
}
|
|
||||||
activeMaskStackC[1] = activeMaskStack[0] == true && activeMaskStackC[0] == true;
|
|
||||||
if( activeMaskStackC[1] == true ) {
|
|
||||||
// 0
|
|
||||||
tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R1i.x),intBitsToFloat(R1i.y),intBitsToFloat(R1i.z),intBitsToFloat(R1i.w)),vec4(intBitsToFloat(uf_remappedVS[15].x),intBitsToFloat(uf_remappedVS[15].y),intBitsToFloat(uf_remappedVS[15].z),intBitsToFloat(uf_remappedVS[15].w))));
|
|
||||||
PV0i.x = tempi.x;
|
|
||||||
PV0i.y = tempi.x;
|
|
||||||
PV0i.z = tempi.x;
|
|
||||||
PV0i.w = tempi.x;
|
|
||||||
// 1
|
|
||||||
PV1i.x = PV0i.x;
|
|
||||||
R0i.w = PV0i.x;
|
|
||||||
PS1i = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.w), intBitsToFloat(uf_remappedVS[16].w)));
|
|
||||||
// 2
|
|
||||||
R0i.x = floatBitsToInt(dot(vec4(intBitsToFloat(R1i.x),intBitsToFloat(R1i.y),intBitsToFloat(R1i.z),intBitsToFloat(PS1i)),vec4(intBitsToFloat(uf_remappedVS[16].x),intBitsToFloat(uf_remappedVS[16].y),intBitsToFloat(uf_remappedVS[16].z),1.0)));
|
|
||||||
PV0i.x = R0i.x;
|
|
||||||
PV0i.y = R0i.x;
|
|
||||||
PV0i.z = R0i.x;
|
|
||||||
PV0i.w = R0i.x;
|
|
||||||
R0i.y = floatBitsToInt(-(intBitsToFloat(PV1i.x)) + 1.0);
|
|
||||||
PS0i = R0i.y;
|
|
||||||
}
|
|
||||||
// export
|
|
||||||
gl_Position = vec4(intBitsToFloat(R2i.x), intBitsToFloat(R2i.y), intBitsToFloat(R2i.z), intBitsToFloat(R2i.w));
|
|
||||||
if (//isCurrentSizeEqualTo(vec2(36, 36)) || //master mode logo
|
|
||||||
isCurrentSizeEqualTo(vec2(80, 80)) ||
|
|
||||||
isCurrentSizeEqualTo(vec2(84, 84)) ||
|
|
||||||
isCurrentSizeEqualTo(vec2(90, 90)) //stamina red with weapon
|
|
||||||
) {
|
|
||||||
gl_Position.y -= 9000.0;
|
|
||||||
}
|
|
||||||
if (isCurrentSizeEqualTo(vec2(32, 32)) && // hearts but also inventory icons
|
|
||||||
(uf_remappedVS[3].w == 1133903872 || uf_remappedVS[3].w == 1134559232)) {
|
|
||||||
gl_Position.y -= 9000.0;
|
|
||||||
}
|
|
||||||
// export
|
|
||||||
passParameterSem0 = vec4(intBitsToFloat(R0i.x), intBitsToFloat(R0i.y), intBitsToFloat(R0i.x), intBitsToFloat(R0i.w));
|
|
||||||
}
|
|
@ -1,715 +0,0 @@
|
|||||||
#version 420
|
|
||||||
#extension GL_ARB_texture_gather : enable
|
|
||||||
#extension GL_ARB_shading_language_packing : enable
|
|
||||||
// shader f56fcbd319ceba00
|
|
||||||
// PRO+ hud v2
|
|
||||||
uniform ivec4 uf_remappedVS[23];
|
|
||||||
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;
|
|
||||||
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){ if( a == 0.0 || b == 0.0 ) return 0.0; return a*b; }
|
|
||||||
bool isCurrentSizeEqualTo(vec2 param) {
|
|
||||||
float result = distance(param, intBitsToFloat(uf_remappedVS[0]).xy);
|
|
||||||
return (result <= 0.001);
|
|
||||||
}
|
|
||||||
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 R122i = ivec4(0);
|
|
||||||
ivec4 R123i = ivec4(0);
|
|
||||||
ivec4 R124i = ivec4(0);
|
|
||||||
ivec4 R125i = ivec4(0);
|
|
||||||
ivec4 R126i = ivec4(0);
|
|
||||||
ivec4 R127i = ivec4(0);
|
|
||||||
uvec4 attrDecoder;
|
|
||||||
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;
|
|
||||||
bool activeMaskStack[4];
|
|
||||||
bool activeMaskStackC[5];
|
|
||||||
activeMaskStack[0] = false;
|
|
||||||
activeMaskStack[1] = false;
|
|
||||||
activeMaskStack[2] = false;
|
|
||||||
activeMaskStackC[0] = false;
|
|
||||||
activeMaskStackC[1] = false;
|
|
||||||
activeMaskStackC[2] = false;
|
|
||||||
activeMaskStackC[3] = false;
|
|
||||||
activeMaskStack[0] = true;
|
|
||||||
activeMaskStackC[0] = true;
|
|
||||||
activeMaskStackC[1] = true;
|
|
||||||
vec3 cubeMapSTM;
|
|
||||||
int cubeMapFaceId;
|
|
||||||
R0i = 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;
|
|
||||||
R1i = ivec4(int(attrDecoder.x), int(attrDecoder.y), floatBitsToInt(0.0), floatBitsToInt(1.0));
|
|
||||||
if( activeMaskStackC[1] == true ) {
|
|
||||||
activeMaskStack[1] = activeMaskStack[0];
|
|
||||||
activeMaskStackC[2] = activeMaskStackC[1];
|
|
||||||
// 0
|
|
||||||
PV0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.x), intBitsToFloat(uf_remappedVS[0].x)));
|
|
||||||
R0i.yzw = ivec3(floatBitsToInt(-(intBitsToFloat(R1i.y))),0,0x3f800000);
|
|
||||||
PV0i.y = R0i.y;
|
|
||||||
R127i.w = floatBitsToInt(1.0);
|
|
||||||
PS0i = R127i.w;
|
|
||||||
// 1
|
|
||||||
R0i.x = floatBitsToInt(intBitsToFloat(PV0i.x) + intBitsToFloat(uf_remappedVS[0].z));
|
|
||||||
PV1i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.y), intBitsToFloat(uf_remappedVS[0].y)));
|
|
||||||
// 2
|
|
||||||
R0i.y = floatBitsToInt(intBitsToFloat(PV1i.z) + intBitsToFloat(uf_remappedVS[0].w));
|
|
||||||
PV0i.y = R0i.y;
|
|
||||||
R1i.w = uf_remappedVS[1].x & 0x40000000;
|
|
||||||
// 3
|
|
||||||
backupReg0i = R0i.z;
|
|
||||||
backupReg1i = R0i.w;
|
|
||||||
R127i.x = floatBitsToInt(dot(vec4(intBitsToFloat(R0i.x),intBitsToFloat(PV0i.y),intBitsToFloat(backupReg0i),intBitsToFloat(backupReg1i)),vec4(intBitsToFloat(uf_remappedVS[2].x),intBitsToFloat(uf_remappedVS[2].y),intBitsToFloat(uf_remappedVS[2].z),intBitsToFloat(uf_remappedVS[2].w))));
|
|
||||||
PV1i.x = R127i.x;
|
|
||||||
PV1i.y = R127i.x;
|
|
||||||
PV1i.z = R127i.x;
|
|
||||||
PV1i.w = R127i.x;
|
|
||||||
// 4
|
|
||||||
backupReg0i = R0i.x;
|
|
||||||
backupReg1i = R0i.z;
|
|
||||||
backupReg2i = R0i.w;
|
|
||||||
tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(backupReg0i),intBitsToFloat(R0i.y),intBitsToFloat(backupReg1i),intBitsToFloat(backupReg2i)),vec4(intBitsToFloat(uf_remappedVS[3].x),intBitsToFloat(uf_remappedVS[3].y),intBitsToFloat(uf_remappedVS[3].z),intBitsToFloat(uf_remappedVS[3].w))));
|
|
||||||
PV0i.x = tempi.x;
|
|
||||||
PV0i.y = tempi.x;
|
|
||||||
PV0i.z = tempi.x;
|
|
||||||
PV0i.w = tempi.x;
|
|
||||||
R127i.y = tempi.x;
|
|
||||||
// 5
|
|
||||||
backupReg0i = R0i.x;
|
|
||||||
backupReg1i = R0i.y;
|
|
||||||
backupReg2i = R0i.w;
|
|
||||||
tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(backupReg0i),intBitsToFloat(backupReg1i),intBitsToFloat(R0i.z),intBitsToFloat(backupReg2i)),vec4(intBitsToFloat(uf_remappedVS[4].x),intBitsToFloat(uf_remappedVS[4].y),intBitsToFloat(uf_remappedVS[4].z),intBitsToFloat(uf_remappedVS[4].w))));
|
|
||||||
PV1i.x = tempi.x;
|
|
||||||
PV1i.y = tempi.x;
|
|
||||||
PV1i.z = tempi.x;
|
|
||||||
PV1i.w = tempi.x;
|
|
||||||
R127i.z = tempi.x;
|
|
||||||
// 6
|
|
||||||
R5i.x = floatBitsToInt(dot(vec4(intBitsToFloat(R127i.x),intBitsToFloat(R127i.y),intBitsToFloat(PV1i.x),intBitsToFloat(R127i.w)),vec4(intBitsToFloat(uf_remappedVS[5].x),intBitsToFloat(uf_remappedVS[5].y),intBitsToFloat(uf_remappedVS[5].z),intBitsToFloat(uf_remappedVS[5].w))));
|
|
||||||
PV0i.x = R5i.x;
|
|
||||||
PV0i.y = R5i.x;
|
|
||||||
PV0i.z = R5i.x;
|
|
||||||
PV0i.w = R5i.x;
|
|
||||||
// 7
|
|
||||||
tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R127i.x),intBitsToFloat(R127i.y),intBitsToFloat(R127i.z),intBitsToFloat(R127i.w)),vec4(intBitsToFloat(uf_remappedVS[6].x),intBitsToFloat(uf_remappedVS[6].y),intBitsToFloat(uf_remappedVS[6].z),intBitsToFloat(uf_remappedVS[6].w))));
|
|
||||||
PV1i.x = tempi.x;
|
|
||||||
PV1i.y = tempi.x;
|
|
||||||
PV1i.z = tempi.x;
|
|
||||||
PV1i.w = tempi.x;
|
|
||||||
R5i.y = tempi.x;
|
|
||||||
// 8
|
|
||||||
tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R127i.x),intBitsToFloat(R127i.y),intBitsToFloat(R127i.z),intBitsToFloat(R127i.w)),vec4(intBitsToFloat(uf_remappedVS[7].x),intBitsToFloat(uf_remappedVS[7].y),intBitsToFloat(uf_remappedVS[7].z),intBitsToFloat(uf_remappedVS[7].w))));
|
|
||||||
PV0i.x = tempi.x;
|
|
||||||
PV0i.y = tempi.x;
|
|
||||||
PV0i.z = tempi.x;
|
|
||||||
PV0i.w = tempi.x;
|
|
||||||
R5i.z = tempi.x;
|
|
||||||
// 9
|
|
||||||
tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R127i.x),intBitsToFloat(R127i.y),intBitsToFloat(R127i.z),intBitsToFloat(R127i.w)),vec4(intBitsToFloat(uf_remappedVS[8].x),intBitsToFloat(uf_remappedVS[8].y),intBitsToFloat(uf_remappedVS[8].z),intBitsToFloat(uf_remappedVS[8].w))));
|
|
||||||
PV1i.x = tempi.x;
|
|
||||||
PV1i.y = tempi.x;
|
|
||||||
PV1i.z = tempi.x;
|
|
||||||
PV1i.w = tempi.x;
|
|
||||||
R5i.w = tempi.x;
|
|
||||||
// 10
|
|
||||||
R2i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedVS[0].x), intBitsToFloat(uf_remappedVS[9].x)));
|
|
||||||
R2i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedVS[0].y), intBitsToFloat(uf_remappedVS[9].y)));
|
|
||||||
R3i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedVS[0].x), intBitsToFloat(uf_remappedVS[9].y)));
|
|
||||||
PS0i = R3i.x;
|
|
||||||
// 11
|
|
||||||
R3i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedVS[0].y), intBitsToFloat(uf_remappedVS[9].x)));
|
|
||||||
// 12
|
|
||||||
predResult = (0 != R1i.w);
|
|
||||||
activeMaskStack[1] = predResult;
|
|
||||||
activeMaskStackC[2] = predResult == true && activeMaskStackC[1] == true;
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
activeMaskStack[1] = false;
|
|
||||||
activeMaskStackC[2] = false;
|
|
||||||
}
|
|
||||||
if( activeMaskStackC[2] == true ) {
|
|
||||||
activeMaskStack[2] = activeMaskStack[1];
|
|
||||||
activeMaskStackC[3] = activeMaskStackC[2];
|
|
||||||
// 0
|
|
||||||
R1i.z = uf_remappedVS[1].x & 0x00000002;
|
|
||||||
// 1
|
|
||||||
predResult = (0 != R1i.z);
|
|
||||||
activeMaskStack[2] = predResult;
|
|
||||||
activeMaskStackC[3] = predResult == true && activeMaskStackC[2] == true;
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
activeMaskStack[2] = false;
|
|
||||||
activeMaskStackC[3] = false;
|
|
||||||
}
|
|
||||||
if( activeMaskStackC[3] == true ) {
|
|
||||||
// 0
|
|
||||||
backupReg0i = R1i.y;
|
|
||||||
R1i.yzw = ivec3(backupReg0i,0,0x3f800000);
|
|
||||||
PV0i.y = R1i.y;
|
|
||||||
PV0i.z = R1i.z;
|
|
||||||
PV0i.w = R1i.w;
|
|
||||||
// 1
|
|
||||||
R4i.xyz = ivec3(R1i.x,PV0i.y,PV0i.z);
|
|
||||||
R4i.w = PV0i.w;
|
|
||||||
}
|
|
||||||
activeMaskStack[2] = activeMaskStack[2] == false;
|
|
||||||
activeMaskStackC[3] = activeMaskStack[2] == true && activeMaskStackC[2] == true;
|
|
||||||
if( activeMaskStackC[3] == true ) {
|
|
||||||
// 0
|
|
||||||
PS0i = int(intBitsToFloat(R1i.y));
|
|
||||||
// 1
|
|
||||||
PV1i.z = PS0i << int(1);
|
|
||||||
PS1i = int(intBitsToFloat(R1i.x));
|
|
||||||
// 2
|
|
||||||
R125i.x = PV1i.z + PS1i;
|
|
||||||
PV0i.x = R125i.x;
|
|
||||||
// 3
|
|
||||||
R127i.x = (PV0i.x == 0x00000002)?int(0xFFFFFFFF):int(0x0);
|
|
||||||
R125i.y = (PV0i.x == int(1))?int(0xFFFFFFFF):int(0x0);
|
|
||||||
R127i.z = (PV0i.x == 0x00000002)?int(0xFFFFFFFF):int(0x0);
|
|
||||||
PV1i.z = R127i.z;
|
|
||||||
R126i.w = (PV0i.x == int(1))?int(0xFFFFFFFF):int(0x0);
|
|
||||||
// 4
|
|
||||||
R126i.x = ((PV1i.z == 0)?(uf_remappedVS[10].y):(uf_remappedVS[11].y));
|
|
||||||
R127i.y = ((PV1i.z == 0)?(uf_remappedVS[10].x):(uf_remappedVS[11].x));
|
|
||||||
// 5
|
|
||||||
backupReg0i = R127i.z;
|
|
||||||
backupReg0i = R127i.z;
|
|
||||||
R127i.z = ((backupReg0i == 0)?(uf_remappedVS[10].w):(uf_remappedVS[11].w));
|
|
||||||
R127i.w = ((backupReg0i == 0)?(uf_remappedVS[10].z):(uf_remappedVS[11].z));
|
|
||||||
// 6
|
|
||||||
R126i.z = ((R127i.x == 0)?(uf_remappedVS[12].y):(uf_remappedVS[13].y));
|
|
||||||
R125i.w = ((R127i.x == 0)?(uf_remappedVS[12].x):(uf_remappedVS[13].x));
|
|
||||||
// 7
|
|
||||||
backupReg0i = R127i.x;
|
|
||||||
backupReg0i = R127i.x;
|
|
||||||
R127i.x = ((backupReg0i == 0)?(uf_remappedVS[12].w):(uf_remappedVS[13].w));
|
|
||||||
R126i.y = ((backupReg0i == 0)?(uf_remappedVS[12].z):(uf_remappedVS[13].z));
|
|
||||||
// 8
|
|
||||||
backupReg0i = R126i.x;
|
|
||||||
backupReg1i = R127i.y;
|
|
||||||
backupReg2i = R127i.z;
|
|
||||||
backupReg3i = R127i.w;
|
|
||||||
R126i.x = ((R126i.w == 0)?(backupReg0i):(uf_remappedVS[14].y));
|
|
||||||
R127i.y = ((R126i.w == 0)?(backupReg1i):(uf_remappedVS[14].x));
|
|
||||||
R127i.z = ((R126i.w == 0)?(backupReg2i):(uf_remappedVS[14].w));
|
|
||||||
R127i.w = ((R126i.w == 0)?(backupReg3i):(uf_remappedVS[14].z));
|
|
||||||
// 9
|
|
||||||
backupReg0i = R127i.x;
|
|
||||||
backupReg1i = R126i.y;
|
|
||||||
backupReg2i = R126i.z;
|
|
||||||
backupReg3i = R125i.w;
|
|
||||||
R127i.x = ((R125i.y == 0)?(backupReg0i):(uf_remappedVS[15].w));
|
|
||||||
R126i.y = ((R125i.y == 0)?(backupReg1i):(uf_remappedVS[15].z));
|
|
||||||
R126i.z = ((R125i.y == 0)?(backupReg2i):(uf_remappedVS[15].y));
|
|
||||||
R125i.w = ((R125i.y == 0)?(backupReg3i):(uf_remappedVS[15].x));
|
|
||||||
// 10
|
|
||||||
R1i.x = ((R125i.x == 0)?(uf_remappedVS[16].x):(R127i.y));
|
|
||||||
R1i.y = ((R125i.x == 0)?(uf_remappedVS[16].y):(R126i.x));
|
|
||||||
R1i.z = ((R125i.x == 0)?(uf_remappedVS[16].z):(R127i.w));
|
|
||||||
R1i.w = ((R125i.x == 0)?(uf_remappedVS[16].w):(R127i.z));
|
|
||||||
// 11
|
|
||||||
R4i.x = ((R125i.x == 0)?(uf_remappedVS[17].x):(R125i.w));
|
|
||||||
R4i.y = ((R125i.x == 0)?(uf_remappedVS[17].y):(R126i.z));
|
|
||||||
R4i.z = ((R125i.x == 0)?(uf_remappedVS[17].z):(R126i.y));
|
|
||||||
R4i.w = ((R125i.x == 0)?(uf_remappedVS[17].w):(R127i.x));
|
|
||||||
}
|
|
||||||
activeMaskStackC[2] = activeMaskStack[1] == true && activeMaskStackC[1] == true;
|
|
||||||
activeMaskStack[1] = activeMaskStack[1] == false;
|
|
||||||
activeMaskStackC[2] = activeMaskStack[1] == true && activeMaskStackC[1] == true;
|
|
||||||
if( activeMaskStackC[2] == true ) {
|
|
||||||
activeMaskStack[2] = activeMaskStack[1];
|
|
||||||
activeMaskStackC[3] = activeMaskStackC[2];
|
|
||||||
// 0
|
|
||||||
R4i.y = uf_remappedVS[1].x & 0x00000002;
|
|
||||||
// 1
|
|
||||||
predResult = (0 != R4i.y);
|
|
||||||
activeMaskStack[2] = predResult;
|
|
||||||
activeMaskStackC[3] = predResult == true && activeMaskStackC[2] == true;
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
activeMaskStack[2] = false;
|
|
||||||
activeMaskStackC[3] = false;
|
|
||||||
}
|
|
||||||
if( activeMaskStackC[3] == true ) {
|
|
||||||
// 0
|
|
||||||
backupReg0i = R1i.y;
|
|
||||||
R1i.yzw = ivec3(backupReg0i,0,0x3f800000);
|
|
||||||
PV0i.y = R1i.y;
|
|
||||||
PV0i.z = R1i.z;
|
|
||||||
PV0i.w = R1i.w;
|
|
||||||
// 1
|
|
||||||
R4i.xyz = ivec3(R1i.x,PV0i.y,PV0i.z);
|
|
||||||
R4i.w = PV0i.w;
|
|
||||||
}
|
|
||||||
activeMaskStack[2] = activeMaskStack[2] == false;
|
|
||||||
activeMaskStackC[3] = activeMaskStack[2] == true && activeMaskStackC[2] == true;
|
|
||||||
if( activeMaskStackC[3] == true ) {
|
|
||||||
// 0
|
|
||||||
PS0i = int(intBitsToFloat(R1i.y));
|
|
||||||
// 1
|
|
||||||
PV1i.z = PS0i << int(1);
|
|
||||||
PS1i = int(intBitsToFloat(R1i.x));
|
|
||||||
// 2
|
|
||||||
R125i.x = PV1i.z + PS1i;
|
|
||||||
PV0i.x = R125i.x;
|
|
||||||
// 3
|
|
||||||
R127i.x = (PV0i.x == 0x00000002)?int(0xFFFFFFFF):int(0x0);
|
|
||||||
R125i.y = (PV0i.x == int(1))?int(0xFFFFFFFF):int(0x0);
|
|
||||||
R127i.z = (PV0i.x == 0x00000002)?int(0xFFFFFFFF):int(0x0);
|
|
||||||
PV1i.z = R127i.z;
|
|
||||||
R126i.w = (PV0i.x == int(1))?int(0xFFFFFFFF):int(0x0);
|
|
||||||
// 4
|
|
||||||
R126i.x = ((PV1i.z == 0)?(uf_remappedVS[10].y):(uf_remappedVS[11].y));
|
|
||||||
R127i.y = ((PV1i.z == 0)?(uf_remappedVS[10].x):(uf_remappedVS[11].x));
|
|
||||||
// 5
|
|
||||||
backupReg0i = R127i.z;
|
|
||||||
backupReg0i = R127i.z;
|
|
||||||
R127i.z = ((backupReg0i == 0)?(uf_remappedVS[10].w):(uf_remappedVS[11].w));
|
|
||||||
R127i.w = ((backupReg0i == 0)?(uf_remappedVS[10].z):(uf_remappedVS[11].z));
|
|
||||||
// 6
|
|
||||||
R126i.z = ((R127i.x == 0)?(uf_remappedVS[12].y):(uf_remappedVS[13].y));
|
|
||||||
R125i.w = ((R127i.x == 0)?(uf_remappedVS[12].x):(uf_remappedVS[13].x));
|
|
||||||
// 7
|
|
||||||
backupReg0i = R127i.x;
|
|
||||||
backupReg0i = R127i.x;
|
|
||||||
R127i.x = ((backupReg0i == 0)?(uf_remappedVS[12].w):(uf_remappedVS[13].w));
|
|
||||||
R126i.y = ((backupReg0i == 0)?(uf_remappedVS[12].z):(uf_remappedVS[13].z));
|
|
||||||
// 8
|
|
||||||
backupReg0i = R126i.x;
|
|
||||||
backupReg1i = R127i.y;
|
|
||||||
backupReg2i = R127i.z;
|
|
||||||
backupReg3i = R127i.w;
|
|
||||||
R126i.x = ((R126i.w == 0)?(backupReg0i):(uf_remappedVS[14].y));
|
|
||||||
R127i.y = ((R126i.w == 0)?(backupReg1i):(uf_remappedVS[14].x));
|
|
||||||
R127i.z = ((R126i.w == 0)?(backupReg2i):(uf_remappedVS[14].w));
|
|
||||||
R127i.w = ((R126i.w == 0)?(backupReg3i):(uf_remappedVS[14].z));
|
|
||||||
// 9
|
|
||||||
backupReg0i = R127i.x;
|
|
||||||
backupReg1i = R126i.y;
|
|
||||||
backupReg2i = R126i.z;
|
|
||||||
backupReg3i = R125i.w;
|
|
||||||
R127i.x = ((R125i.y == 0)?(backupReg0i):(uf_remappedVS[15].w));
|
|
||||||
R126i.y = ((R125i.y == 0)?(backupReg1i):(uf_remappedVS[15].z));
|
|
||||||
R126i.z = ((R125i.y == 0)?(backupReg2i):(uf_remappedVS[15].y));
|
|
||||||
R125i.w = ((R125i.y == 0)?(backupReg3i):(uf_remappedVS[15].x));
|
|
||||||
// 10
|
|
||||||
R1i.x = ((R125i.x == 0)?(uf_remappedVS[16].x):(R127i.y));
|
|
||||||
R1i.y = ((R125i.x == 0)?(uf_remappedVS[16].y):(R126i.x));
|
|
||||||
R1i.z = ((R125i.x == 0)?(uf_remappedVS[16].z):(R127i.w));
|
|
||||||
R1i.w = ((R125i.x == 0)?(uf_remappedVS[16].w):(R127i.z));
|
|
||||||
// 11
|
|
||||||
R4i.x = ((R125i.x == 0)?(uf_remappedVS[17].x):(R125i.w));
|
|
||||||
R4i.y = ((R125i.x == 0)?(uf_remappedVS[17].y):(R126i.z));
|
|
||||||
R4i.z = ((R125i.x == 0)?(uf_remappedVS[17].z):(R126i.y));
|
|
||||||
R4i.w = ((R125i.x == 0)?(uf_remappedVS[17].w):(R127i.x));
|
|
||||||
}
|
|
||||||
activeMaskStackC[2] = activeMaskStack[1] == true && activeMaskStackC[1] == true;
|
|
||||||
activeMaskStackC[1] = activeMaskStack[0] == true && activeMaskStackC[0] == true;
|
|
||||||
if( activeMaskStackC[1] == true ) {
|
|
||||||
activeMaskStack[1] = activeMaskStack[0];
|
|
||||||
activeMaskStackC[2] = activeMaskStackC[1];
|
|
||||||
// 0
|
|
||||||
predResult = (0 != uf_remappedVS[18].x);
|
|
||||||
activeMaskStack[1] = predResult;
|
|
||||||
activeMaskStackC[2] = predResult == true && activeMaskStackC[1] == true;
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
activeMaskStack[1] = false;
|
|
||||||
activeMaskStackC[2] = false;
|
|
||||||
}
|
|
||||||
if( activeMaskStackC[2] == true ) {
|
|
||||||
// 0
|
|
||||||
backupReg0i = R0i.y;
|
|
||||||
backupReg1i = R0i.z;
|
|
||||||
backupReg2i = R0i.w;
|
|
||||||
R1i.x = floatBitsToInt(dot(vec4(intBitsToFloat(R0i.x),intBitsToFloat(backupReg0i),intBitsToFloat(backupReg1i),intBitsToFloat(backupReg2i)),vec4(intBitsToFloat(uf_remappedVS[16].x),intBitsToFloat(uf_remappedVS[16].y),intBitsToFloat(uf_remappedVS[16].z),intBitsToFloat(uf_remappedVS[16].w))));
|
|
||||||
PV0i.x = R1i.x;
|
|
||||||
PV0i.y = R1i.x;
|
|
||||||
PV0i.z = R1i.x;
|
|
||||||
PV0i.w = R1i.x;
|
|
||||||
// 1
|
|
||||||
backupReg0i = R0i.x;
|
|
||||||
backupReg1i = R0i.z;
|
|
||||||
backupReg2i = R0i.w;
|
|
||||||
tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(backupReg0i),intBitsToFloat(R0i.y),intBitsToFloat(backupReg1i),intBitsToFloat(backupReg2i)),vec4(intBitsToFloat(uf_remappedVS[14].x),intBitsToFloat(uf_remappedVS[14].y),intBitsToFloat(uf_remappedVS[14].z),intBitsToFloat(uf_remappedVS[14].w))));
|
|
||||||
PV1i.x = tempi.x;
|
|
||||||
PV1i.y = tempi.x;
|
|
||||||
PV1i.z = tempi.x;
|
|
||||||
PV1i.w = tempi.x;
|
|
||||||
R1i.y = tempi.x;
|
|
||||||
// 2
|
|
||||||
backupReg0i = R0i.x;
|
|
||||||
backupReg1i = R0i.y;
|
|
||||||
backupReg2i = R0i.w;
|
|
||||||
tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(backupReg0i),intBitsToFloat(backupReg1i),intBitsToFloat(R0i.z),intBitsToFloat(backupReg2i)),vec4(intBitsToFloat(uf_remappedVS[11].x),intBitsToFloat(uf_remappedVS[11].y),intBitsToFloat(uf_remappedVS[11].z),intBitsToFloat(uf_remappedVS[11].w))));
|
|
||||||
PV0i.x = tempi.x;
|
|
||||||
PV0i.y = tempi.x;
|
|
||||||
PV0i.z = tempi.x;
|
|
||||||
PV0i.w = tempi.x;
|
|
||||||
R1i.z = tempi.x;
|
|
||||||
// 3
|
|
||||||
backupReg0i = R0i.x;
|
|
||||||
backupReg1i = R0i.y;
|
|
||||||
backupReg2i = R0i.z;
|
|
||||||
tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(backupReg0i),intBitsToFloat(backupReg1i),intBitsToFloat(backupReg2i),intBitsToFloat(R0i.w)),vec4(intBitsToFloat(uf_remappedVS[10].x),intBitsToFloat(uf_remappedVS[10].y),intBitsToFloat(uf_remappedVS[10].z),intBitsToFloat(uf_remappedVS[10].w))));
|
|
||||||
PV1i.x = tempi.x;
|
|
||||||
PV1i.y = tempi.x;
|
|
||||||
PV1i.z = tempi.x;
|
|
||||||
PV1i.w = tempi.x;
|
|
||||||
R1i.w = tempi.x;
|
|
||||||
}
|
|
||||||
activeMaskStack[1] = activeMaskStack[1] == false;
|
|
||||||
activeMaskStackC[2] = activeMaskStack[1] == true && activeMaskStackC[1] == true;
|
|
||||||
if( activeMaskStackC[2] == true ) {
|
|
||||||
activeMaskStack[2] = activeMaskStack[1];
|
|
||||||
activeMaskStackC[3] = activeMaskStackC[2];
|
|
||||||
// 0
|
|
||||||
R6i.x = uf_remappedVS[1].x & int(1);
|
|
||||||
// 1
|
|
||||||
predResult = (0 != R6i.x);
|
|
||||||
activeMaskStack[2] = predResult;
|
|
||||||
activeMaskStackC[3] = predResult == true && activeMaskStackC[2] == true;
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
activeMaskStack[2] = false;
|
|
||||||
activeMaskStackC[3] = false;
|
|
||||||
}
|
|
||||||
if( activeMaskStackC[3] == true ) {
|
|
||||||
activeMaskStack[3] = activeMaskStack[2];
|
|
||||||
activeMaskStackC[4] = activeMaskStackC[3];
|
|
||||||
// 0
|
|
||||||
R2i.w = uf_remappedVS[1].x & 0x00000002;
|
|
||||||
// 1
|
|
||||||
predResult = (0 != R2i.w);
|
|
||||||
activeMaskStack[3] = predResult;
|
|
||||||
activeMaskStackC[4] = predResult == true && activeMaskStackC[3] == true;
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
activeMaskStack[3] = false;
|
|
||||||
activeMaskStackC[4] = false;
|
|
||||||
}
|
|
||||||
if( activeMaskStackC[4] == true ) {
|
|
||||||
// 0
|
|
||||||
PV0i.x = uf_remappedVS[1].x & 0x00010000;
|
|
||||||
R127i.y = uf_remappedVS[1].x & 0x00000010;
|
|
||||||
PV0i.y = R127i.y;
|
|
||||||
R125i.z = uf_remappedVS[1].x & 0x00000004;
|
|
||||||
R127i.w = uf_remappedVS[1].x & 0x00000020;
|
|
||||||
// 1
|
|
||||||
R123i.x = ((PV0i.y == 0)?(R1i.w):(R1i.w));
|
|
||||||
PV1i.x = R123i.x;
|
|
||||||
R123i.y = ((PV0i.y == 0)?(R1i.z):(R1i.z));
|
|
||||||
PV1i.y = R123i.y;
|
|
||||||
R126i.z = ((PV0i.x == 0)?(R2i.y):(R3i.y));
|
|
||||||
PV1i.z = R126i.z;
|
|
||||||
R123i.w = ((PV0i.x == 0)?(R2i.x):(R3i.x));
|
|
||||||
PV1i.w = R123i.w;
|
|
||||||
R127i.z = ((PV0i.y == 0)?(R1i.y):(R1i.y));
|
|
||||||
PS1i = R127i.z;
|
|
||||||
// 2
|
|
||||||
R6i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.x), intBitsToFloat(PV1i.w)));
|
|
||||||
PV0i.x = R6i.x;
|
|
||||||
R126i.y = floatBitsToInt(-(intBitsToFloat(PV1i.w)) + 1.0);
|
|
||||||
PV0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PS1i), intBitsToFloat(PV1i.z)));
|
|
||||||
R123i.w = ((R127i.w == 0)?(PV1i.y):(PV1i.y));
|
|
||||||
PV0i.w = R123i.w;
|
|
||||||
R122i.x = ((R127i.w == 0)?(PV1i.x):(PV1i.x));
|
|
||||||
PS0i = R122i.x;
|
|
||||||
// 3
|
|
||||||
backupReg0i = R127i.y;
|
|
||||||
R123i.x = ((R127i.w == 0)?(R127i.z):(PV0i.z));
|
|
||||||
PV1i.x = R123i.x;
|
|
||||||
R127i.y = floatBitsToInt(-(intBitsToFloat(R126i.z)) + 1.0);
|
|
||||||
R127i.z = ((R125i.z == 0)?(PV0i.w):(PV0i.w));
|
|
||||||
R123i.w = ((backupReg0i == 0)?(R1i.x):(PV0i.x));
|
|
||||||
PV1i.w = R123i.w;
|
|
||||||
R124i.z = ((R125i.z == 0)?(PS0i):(PS0i));
|
|
||||||
PS1i = R124i.z;
|
|
||||||
// 4
|
|
||||||
R127i.x = ((R125i.z == 0)?(PV1i.x):(PV1i.x));
|
|
||||||
PV0i.x = R127i.x;
|
|
||||||
R125i.y = ((R127i.w == 0)?(PV1i.w):(PV1i.w));
|
|
||||||
PV0i.y = R125i.y;
|
|
||||||
R126i.z = uf_remappedVS[1].x & 0x00000008;
|
|
||||||
// 5
|
|
||||||
R126i.x = floatBitsToInt(intBitsToFloat(PV0i.x) + intBitsToFloat(R127i.y));
|
|
||||||
PV1i.z = floatBitsToInt(intBitsToFloat(PV0i.y) + intBitsToFloat(R126i.y));
|
|
||||||
// 6
|
|
||||||
R123i.y = ((R125i.z == 0)?(R125i.y):(PV1i.z));
|
|
||||||
PV0i.y = R123i.y;
|
|
||||||
// 7
|
|
||||||
R1i.x = ((R126i.z == 0)?(PV0i.y):(PV0i.y));
|
|
||||||
R1i.y = ((R126i.z == 0)?(R127i.x):(R126i.x));
|
|
||||||
R1i.z = ((R126i.z == 0)?(R127i.z):(R127i.z));
|
|
||||||
// 8
|
|
||||||
R1i.w = ((R126i.z == 0)?(R124i.z):(R124i.z));
|
|
||||||
}
|
|
||||||
activeMaskStackC[3] = activeMaskStack[2] == true && activeMaskStackC[2] == true;
|
|
||||||
if( activeMaskStackC[3] == true ) {
|
|
||||||
// 0
|
|
||||||
R6i.x = floatBitsToInt(-(intBitsToFloat(R1i.x)) + 1.0);
|
|
||||||
PV0i.x = R6i.x;
|
|
||||||
R126i.y = uf_remappedVS[1].x & 0x00010000;
|
|
||||||
R127i.z = uf_remappedVS[1].x & 0x00040000;
|
|
||||||
PV0i.w = uf_remappedVS[1].x & 0x00020000;
|
|
||||||
// 1
|
|
||||||
R123i.x = ((PV0i.w == 0)?(R1i.z):(R1i.z));
|
|
||||||
PV1i.x = R123i.x;
|
|
||||||
R127i.y = ((PV0i.w == 0)?(R1i.y):(R1i.y));
|
|
||||||
PV1i.y = R127i.y;
|
|
||||||
R123i.z = ((PV0i.w == 0)?(R1i.x):(PV0i.x));
|
|
||||||
PV1i.z = R123i.z;
|
|
||||||
R123i.w = ((PV0i.w == 0)?(R1i.w):(R1i.w));
|
|
||||||
PV1i.w = R123i.w;
|
|
||||||
// 2
|
|
||||||
R127i.x = ((R127i.z == 0)?(PV1i.z):(PV1i.z));
|
|
||||||
PV0i.y = floatBitsToInt(-(intBitsToFloat(PV1i.y)) + 1.0);
|
|
||||||
R126i.z = ((R127i.z == 0)?(PV1i.x):(PV1i.x));
|
|
||||||
R127i.w = ((R127i.z == 0)?(PV1i.w):(PV1i.w));
|
|
||||||
// 3
|
|
||||||
R123i.w = ((R127i.z == 0)?(R127i.y):(PV0i.y));
|
|
||||||
PV1i.w = R123i.w;
|
|
||||||
// 4
|
|
||||||
R1i.x = ((R126i.y == 0)?(R127i.x):(PV1i.w));
|
|
||||||
R1i.y = ((R126i.y == 0)?(PV1i.w):(R127i.x));
|
|
||||||
R1i.z = ((R126i.y == 0)?(R126i.z):(R126i.z));
|
|
||||||
R1i.w = ((R126i.y == 0)?(R127i.w):(R127i.w));
|
|
||||||
}
|
|
||||||
activeMaskStackC[1] = activeMaskStack[0] == true && activeMaskStackC[0] == true;
|
|
||||||
if( activeMaskStackC[1] == true ) {
|
|
||||||
activeMaskStack[1] = activeMaskStack[0];
|
|
||||||
activeMaskStackC[2] = activeMaskStackC[1];
|
|
||||||
// 0
|
|
||||||
R127i.x = floatBitsToInt(dot(vec4(intBitsToFloat(R1i.x),intBitsToFloat(R1i.y),intBitsToFloat(R1i.z),intBitsToFloat(R1i.w)),vec4(intBitsToFloat(uf_remappedVS[19].x),intBitsToFloat(uf_remappedVS[19].y),intBitsToFloat(uf_remappedVS[19].z),intBitsToFloat(uf_remappedVS[19].w))));
|
|
||||||
PV0i.x = R127i.x;
|
|
||||||
PV0i.y = R127i.x;
|
|
||||||
PV0i.z = R127i.x;
|
|
||||||
PV0i.w = R127i.x;
|
|
||||||
// 1
|
|
||||||
backupReg0i = R1i.x;
|
|
||||||
R1i.x = floatBitsToInt(dot(vec4(intBitsToFloat(backupReg0i),intBitsToFloat(R1i.y),intBitsToFloat(R1i.z),intBitsToFloat(R1i.w)),vec4(intBitsToFloat(uf_remappedVS[20].x),intBitsToFloat(uf_remappedVS[20].y),intBitsToFloat(uf_remappedVS[20].z),intBitsToFloat(uf_remappedVS[20].w))));
|
|
||||||
PV1i.x = R1i.x;
|
|
||||||
PV1i.y = R1i.x;
|
|
||||||
PV1i.z = R1i.x;
|
|
||||||
PV1i.w = R1i.x;
|
|
||||||
R1i.y = PV0i.x;
|
|
||||||
PS1i = R1i.y;
|
|
||||||
// 2
|
|
||||||
R1i.y = floatBitsToInt(-(intBitsToFloat(PS1i)) + 1.0);
|
|
||||||
R1i.w = R127i.x;
|
|
||||||
// 3
|
|
||||||
predResult = (0 != uf_remappedVS[18].y);
|
|
||||||
activeMaskStack[1] = predResult;
|
|
||||||
activeMaskStackC[2] = predResult == true && activeMaskStackC[1] == true;
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
activeMaskStack[1] = false;
|
|
||||||
activeMaskStackC[2] = false;
|
|
||||||
}
|
|
||||||
if( activeMaskStackC[2] == true ) {
|
|
||||||
// 0
|
|
||||||
backupReg0i = R0i.y;
|
|
||||||
backupReg1i = R0i.z;
|
|
||||||
backupReg2i = R0i.w;
|
|
||||||
R4i.x = floatBitsToInt(dot(vec4(intBitsToFloat(R0i.x),intBitsToFloat(backupReg0i),intBitsToFloat(backupReg1i),intBitsToFloat(backupReg2i)),vec4(intBitsToFloat(uf_remappedVS[17].x),intBitsToFloat(uf_remappedVS[17].y),intBitsToFloat(uf_remappedVS[17].z),intBitsToFloat(uf_remappedVS[17].w))));
|
|
||||||
PV0i.x = R4i.x;
|
|
||||||
PV0i.y = R4i.x;
|
|
||||||
PV0i.z = R4i.x;
|
|
||||||
PV0i.w = R4i.x;
|
|
||||||
// 1
|
|
||||||
backupReg0i = R0i.x;
|
|
||||||
backupReg1i = R0i.z;
|
|
||||||
backupReg2i = R0i.w;
|
|
||||||
tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(backupReg0i),intBitsToFloat(R0i.y),intBitsToFloat(backupReg1i),intBitsToFloat(backupReg2i)),vec4(intBitsToFloat(uf_remappedVS[15].x),intBitsToFloat(uf_remappedVS[15].y),intBitsToFloat(uf_remappedVS[15].z),intBitsToFloat(uf_remappedVS[15].w))));
|
|
||||||
PV1i.x = tempi.x;
|
|
||||||
PV1i.y = tempi.x;
|
|
||||||
PV1i.z = tempi.x;
|
|
||||||
PV1i.w = tempi.x;
|
|
||||||
R4i.y = tempi.x;
|
|
||||||
// 2
|
|
||||||
backupReg0i = R0i.x;
|
|
||||||
backupReg1i = R0i.y;
|
|
||||||
backupReg2i = R0i.w;
|
|
||||||
tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(backupReg0i),intBitsToFloat(backupReg1i),intBitsToFloat(R0i.z),intBitsToFloat(backupReg2i)),vec4(intBitsToFloat(uf_remappedVS[13].x),intBitsToFloat(uf_remappedVS[13].y),intBitsToFloat(uf_remappedVS[13].z),intBitsToFloat(uf_remappedVS[13].w))));
|
|
||||||
PV0i.x = tempi.x;
|
|
||||||
PV0i.y = tempi.x;
|
|
||||||
PV0i.z = tempi.x;
|
|
||||||
PV0i.w = tempi.x;
|
|
||||||
R4i.z = tempi.x;
|
|
||||||
// 3
|
|
||||||
backupReg0i = R0i.x;
|
|
||||||
backupReg1i = R0i.y;
|
|
||||||
backupReg2i = R0i.z;
|
|
||||||
tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(backupReg0i),intBitsToFloat(backupReg1i),intBitsToFloat(backupReg2i),intBitsToFloat(R0i.w)),vec4(intBitsToFloat(uf_remappedVS[12].x),intBitsToFloat(uf_remappedVS[12].y),intBitsToFloat(uf_remappedVS[12].z),intBitsToFloat(uf_remappedVS[12].w))));
|
|
||||||
PV1i.x = tempi.x;
|
|
||||||
PV1i.y = tempi.x;
|
|
||||||
PV1i.z = tempi.x;
|
|
||||||
PV1i.w = tempi.x;
|
|
||||||
R4i.w = tempi.x;
|
|
||||||
}
|
|
||||||
activeMaskStack[1] = activeMaskStack[1] == false;
|
|
||||||
activeMaskStackC[2] = activeMaskStack[1] == true && activeMaskStackC[1] == true;
|
|
||||||
if( activeMaskStackC[2] == true ) {
|
|
||||||
activeMaskStack[2] = activeMaskStack[1];
|
|
||||||
activeMaskStackC[3] = activeMaskStackC[2];
|
|
||||||
// 0
|
|
||||||
R0i.y = uf_remappedVS[1].x & int(1);
|
|
||||||
// 1
|
|
||||||
predResult = (0 != R0i.y);
|
|
||||||
activeMaskStack[2] = predResult;
|
|
||||||
activeMaskStackC[3] = predResult == true && activeMaskStackC[2] == true;
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
activeMaskStack[2] = false;
|
|
||||||
activeMaskStackC[3] = false;
|
|
||||||
}
|
|
||||||
if( activeMaskStackC[3] == true ) {
|
|
||||||
activeMaskStack[3] = activeMaskStack[2];
|
|
||||||
activeMaskStackC[4] = activeMaskStackC[3];
|
|
||||||
// 0
|
|
||||||
R0i.x = uf_remappedVS[1].x & 0x00000002;
|
|
||||||
// 1
|
|
||||||
backupReg0i = R0i.x;
|
|
||||||
predResult = (0 != backupReg0i);
|
|
||||||
activeMaskStack[3] = predResult;
|
|
||||||
activeMaskStackC[4] = predResult == true && activeMaskStackC[3] == true;
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
activeMaskStack[3] = false;
|
|
||||||
activeMaskStackC[4] = false;
|
|
||||||
}
|
|
||||||
if( activeMaskStackC[4] == true ) {
|
|
||||||
// 0
|
|
||||||
R127i.x = uf_remappedVS[1].x & 0x00000020;
|
|
||||||
R127i.y = uf_remappedVS[1].x & 0x00000010;
|
|
||||||
PV0i.y = R127i.y;
|
|
||||||
R125i.z = uf_remappedVS[1].x & 0x00000004;
|
|
||||||
PV0i.w = uf_remappedVS[1].x & 0x00010000;
|
|
||||||
// 1
|
|
||||||
R123i.x = ((PV0i.w == 0)?(R2i.y):(R3i.y));
|
|
||||||
PV1i.x = R123i.x;
|
|
||||||
R123i.z = ((PV0i.w == 0)?(R2i.x):(R3i.x));
|
|
||||||
PV1i.z = R123i.z;
|
|
||||||
R125i.w = uf_remappedVS[1].x & 0x00000008;
|
|
||||||
R127i.z = ((PV0i.y == 0)?(R4i.y):(R4i.y));
|
|
||||||
PS1i = R127i.z;
|
|
||||||
// 2
|
|
||||||
R0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R4i.x), intBitsToFloat(PV1i.z)));
|
|
||||||
PV0i.x = R0i.x;
|
|
||||||
PV0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PS1i), intBitsToFloat(PV1i.x)));
|
|
||||||
R126i.z = floatBitsToInt(-(intBitsToFloat(PV1i.z)) + 1.0);
|
|
||||||
R127i.w = floatBitsToInt(-(intBitsToFloat(PV1i.x)) + 1.0);
|
|
||||||
// 3
|
|
||||||
R123i.z = ((R127i.x == 0)?(R127i.z):(PV0i.y));
|
|
||||||
PV1i.z = R123i.z;
|
|
||||||
R123i.w = ((R127i.y == 0)?(R4i.x):(PV0i.x));
|
|
||||||
PV1i.w = R123i.w;
|
|
||||||
// 4
|
|
||||||
backupReg0i = R127i.x;
|
|
||||||
R127i.x = ((R125i.z == 0)?(PV1i.z):(PV1i.z));
|
|
||||||
PV0i.x = R127i.x;
|
|
||||||
R126i.w = ((backupReg0i == 0)?(PV1i.w):(PV1i.w));
|
|
||||||
PV0i.w = R126i.w;
|
|
||||||
// 5
|
|
||||||
R126i.x = floatBitsToInt(intBitsToFloat(PV0i.x) + intBitsToFloat(R127i.w));
|
|
||||||
PV1i.z = floatBitsToInt(intBitsToFloat(PV0i.w) + intBitsToFloat(R126i.z));
|
|
||||||
// 6
|
|
||||||
R123i.y = ((R125i.z == 0)?(R126i.w):(PV1i.z));
|
|
||||||
PV0i.y = R123i.y;
|
|
||||||
// 7
|
|
||||||
R4i.x = ((R125i.w == 0)?(PV0i.y):(PV0i.y));
|
|
||||||
R4i.y = ((R125i.w == 0)?(R127i.x):(R126i.x));
|
|
||||||
}
|
|
||||||
activeMaskStackC[3] = activeMaskStack[2] == true && activeMaskStackC[2] == true;
|
|
||||||
if( activeMaskStackC[3] == true ) {
|
|
||||||
// 0
|
|
||||||
R0i.x = floatBitsToInt(-(intBitsToFloat(R4i.x)) + 1.0);
|
|
||||||
PV0i.x = R0i.x;
|
|
||||||
PV0i.y = uf_remappedVS[1].x & 0x00020000;
|
|
||||||
R127i.z = uf_remappedVS[1].x & 0x00040000;
|
|
||||||
R126i.w = uf_remappedVS[1].x & 0x00010000;
|
|
||||||
// 1
|
|
||||||
R123i.x = ((PV0i.y == 0)?(R4i.x):(PV0i.x));
|
|
||||||
PV1i.x = R123i.x;
|
|
||||||
R127i.w = ((PV0i.y == 0)?(R4i.y):(R4i.y));
|
|
||||||
PV1i.w = R127i.w;
|
|
||||||
// 2
|
|
||||||
R127i.x = ((R127i.z == 0)?(PV1i.x):(PV1i.x));
|
|
||||||
PV0i.y = floatBitsToInt(-(intBitsToFloat(PV1i.w)) + 1.0);
|
|
||||||
// 3
|
|
||||||
R123i.w = ((R127i.z == 0)?(R127i.w):(PV0i.y));
|
|
||||||
PV1i.w = R123i.w;
|
|
||||||
// 4
|
|
||||||
R4i.x = ((R126i.w == 0)?(R127i.x):(PV1i.w));
|
|
||||||
R4i.y = ((R126i.w == 0)?(PV1i.w):(R127i.x));
|
|
||||||
}
|
|
||||||
activeMaskStackC[1] = activeMaskStack[0] == true && activeMaskStackC[0] == true;
|
|
||||||
if( activeMaskStackC[1] == true ) {
|
|
||||||
// 0
|
|
||||||
tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R4i.x),intBitsToFloat(R4i.y),intBitsToFloat(R4i.z),intBitsToFloat(R4i.w)),vec4(intBitsToFloat(uf_remappedVS[21].x),intBitsToFloat(uf_remappedVS[21].y),intBitsToFloat(uf_remappedVS[21].z),intBitsToFloat(uf_remappedVS[21].w))));
|
|
||||||
PV0i.x = tempi.x;
|
|
||||||
PV0i.y = tempi.x;
|
|
||||||
PV0i.z = tempi.x;
|
|
||||||
PV0i.w = tempi.x;
|
|
||||||
// 1
|
|
||||||
PV1i.x = PV0i.x;
|
|
||||||
R0i.w = PV0i.x;
|
|
||||||
PS1i = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R4i.w), intBitsToFloat(uf_remappedVS[22].w)));
|
|
||||||
// 2
|
|
||||||
R0i.x = floatBitsToInt(dot(vec4(intBitsToFloat(R4i.x),intBitsToFloat(R4i.y),intBitsToFloat(R4i.z),intBitsToFloat(PS1i)),vec4(intBitsToFloat(uf_remappedVS[22].x),intBitsToFloat(uf_remappedVS[22].y),intBitsToFloat(uf_remappedVS[22].z),1.0)));
|
|
||||||
PV0i.x = R0i.x;
|
|
||||||
PV0i.y = R0i.x;
|
|
||||||
PV0i.z = R0i.x;
|
|
||||||
PV0i.w = R0i.x;
|
|
||||||
R0i.y = floatBitsToInt(-(intBitsToFloat(PV1i.x)) + 1.0);
|
|
||||||
PS0i = R0i.y;
|
|
||||||
}
|
|
||||||
// export
|
|
||||||
gl_Position = vec4(intBitsToFloat(R5i.x), intBitsToFloat(R5i.y), intBitsToFloat(R5i.z), intBitsToFloat(R5i.w));
|
|
||||||
if (isCurrentSizeEqualTo(vec2(70, 70)) ||
|
|
||||||
isCurrentSizeEqualTo(vec2(80, 80)) //stamina 3rd red flash
|
|
||||||
) {
|
|
||||||
gl_Position.y -= 9000.0;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (isCurrentSizeEqualTo(vec2(56, 56)) &&
|
|
||||||
uf_remappedVS[9].x == 1016219941) {
|
|
||||||
// stamina 1st red flash but also shrine map marker glow
|
|
||||||
gl_Position.y -= 9000.0;
|
|
||||||
}
|
|
||||||
// export
|
|
||||||
passParameterSem0 = vec4(intBitsToFloat(R1i.x), intBitsToFloat(R1i.y), intBitsToFloat(R1i.x), intBitsToFloat(R1i.w));
|
|
||||||
// export
|
|
||||||
passParameterSem1 = vec4(intBitsToFloat(R0i.x), intBitsToFloat(R0i.y), intBitsToFloat(R0i.x), intBitsToFloat(R0i.w));
|
|
||||||
}
|
|
File diff suppressed because it is too large
Load Diff
@ -1,25 +0,0 @@
|
|||||||
[Definition]
|
|
||||||
titleIds = 00050000101C9300,00050000101C9400,00050000101C9500
|
|
||||||
name = "The Legend of Zelda: Breath of the Wild - Pro+ HUD"
|
|
||||||
version = 2
|
|
||||||
|
|
||||||
[TextureRedefine] # Disable Hearts
|
|
||||||
width = 48
|
|
||||||
height = 48
|
|
||||||
formats = 0x007
|
|
||||||
tilemodes = 4
|
|
||||||
overwriteFormat = 0x005
|
|
||||||
|
|
||||||
[TextureRedefine] # Disable text from subtitles, currupts some text.
|
|
||||||
width = 1024
|
|
||||||
height = 1024
|
|
||||||
formats = 0x034
|
|
||||||
# Remove the hash sign ('#') from the line below to enable.
|
|
||||||
#overwriteFormat = 0x235
|
|
||||||
|
|
||||||
[TextureRedefine] # Disable text from subtitles, currupts some text.
|
|
||||||
width = 512
|
|
||||||
height = 1024
|
|
||||||
formats = 0x034
|
|
||||||
# Remove the hash sign ('#') from the line below to enable.
|
|
||||||
#overwriteFormat = 0x235
|
|
@ -1,4 +0,0 @@
|
|||||||
[Definition]
|
|
||||||
titleIds = 00050000101C9300,00050000101C9400,00050000101C9500
|
|
||||||
name = "The Legend of Zelda: Breath of the Wild - ReflExtra - Enhanced Reflections"
|
|
||||||
version = 2
|
|
@ -1,182 +0,0 @@
|
|||||||
#version 420
|
|
||||||
#extension GL_ARB_texture_gather : enable
|
|
||||||
// shader 37a4ec1a7dbc7391
|
|
||||||
uniform ivec4 uf_remappedPS[4];
|
|
||||||
layout(binding = 0) uniform sampler2D textureUnitPS0;// Tex0 addr 0xf5800800 res 1280x720x1 dim 1 tm: 4 format 0019 compSel: 0 1 2 3 mipView: 0x0 (num 0x1) sliceView: 0x0 (num 0x1) Sampler0 ClampX/Y/Z: 2 2 2 border: 1
|
|
||||||
layout(binding = 1) uniform sampler2D textureUnitPS1;// Tex1 addr 0x15c28800 res 1280x720x1 dim 1 tm: 4 format 0001 compSel: 0 4 4 5 mipView: 0x0 (num 0x1) sliceView: 0x0 (num 0x1) Sampler1 ClampX/Y/Z: 2 2 2 border: 1
|
|
||||||
layout(location = 0) in vec4 passParameterSem2;
|
|
||||||
layout(location = 0) out vec4 passPixelColor0;
|
|
||||||
uniform vec2 uf_fragCoordScale;
|
|
||||||
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);
|
|
||||||
vec4 R3f = vec4(0.0);
|
|
||||||
vec4 R4f = vec4(0.0);
|
|
||||||
vec4 R123f = vec4(0.0);
|
|
||||||
vec4 R126f = vec4(0.0);
|
|
||||||
vec4 R127f = vec4(0.0);
|
|
||||||
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;
|
|
||||||
bool activeMaskStack[2];
|
|
||||||
bool activeMaskStackC[3];
|
|
||||||
activeMaskStack[0] = false;
|
|
||||||
activeMaskStackC[0] = false;
|
|
||||||
activeMaskStackC[1] = false;
|
|
||||||
activeMaskStack[0] = true;
|
|
||||||
activeMaskStackC[0] = true;
|
|
||||||
activeMaskStackC[1] = true;
|
|
||||||
vec3 cubeMapSTM;
|
|
||||||
int cubeMapFaceId;
|
|
||||||
R0f = passParameterSem2;
|
|
||||||
if( activeMaskStackC[1] == true ) {
|
|
||||||
R2f.xyzw = (texture(textureUnitPS0, R0f.xy).xyzw);
|
|
||||||
//R4f.xyzw = (textureGather(textureUnitPS1, R0f.xy).wzxy);
|
|
||||||
}
|
|
||||||
if( activeMaskStackC[1] == true ) {
|
|
||||||
activeMaskStack[1] = activeMaskStack[0];
|
|
||||||
activeMaskStackC[2] = activeMaskStackC[1];
|
|
||||||
// 0
|
|
||||||
PV0f.x = max(R4f.z, R4f.x);
|
|
||||||
PV0f.y = min(R4f.w, R4f.y);
|
|
||||||
PV0f.z = R2f.x * intBitsToFloat(uf_remappedPS[0].x);
|
|
||||||
PV0f.w = min(R4f.z, R4f.x);
|
|
||||||
PS0f = max(R4f.w, R4f.y);
|
|
||||||
// 1
|
|
||||||
R123f.x = (R2f.y * intBitsToFloat(uf_remappedPS[0].y) + PV0f.z);
|
|
||||||
PV1f.x = R123f.x;
|
|
||||||
PV1f.y = max(PV0f.x, PS0f);
|
|
||||||
R127f.z = R4f.z + -(R4f.y);
|
|
||||||
PV1f.z = R127f.z;
|
|
||||||
PV1f.w = min(PV0f.w, PV0f.y);
|
|
||||||
R126f.z = R4f.w + -(R4f.x);
|
|
||||||
PS1f = R126f.z;
|
|
||||||
// 2
|
|
||||||
PV0f.x = max(PV1f.x, PV1f.y);
|
|
||||||
PV0f.y = PV1f.y * intBitsToFloat(uf_remappedPS[1].x);
|
|
||||||
PV0f.z = min(PV1f.x, PV1f.w);
|
|
||||||
R3f.x = PV1f.z + PS1f;
|
|
||||||
PS0f = R3f.x;
|
|
||||||
// 3
|
|
||||||
R1f.x = max(PV0f.y, intBitsToFloat(uf_remappedPS[1].y));
|
|
||||||
R3f.y = R127f.z + -(R126f.z);
|
|
||||||
R0f.w = -(PV0f.z) + PV0f.x;
|
|
||||||
// 4
|
|
||||||
predResult = (R0f.w > R1f.x);
|
|
||||||
activeMaskStack[1] = predResult;
|
|
||||||
activeMaskStackC[2] = predResult == true && activeMaskStackC[1] == true;
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
activeMaskStack[1] = false;
|
|
||||||
activeMaskStackC[2] = false;
|
|
||||||
}
|
|
||||||
if( activeMaskStackC[2] == true ) {
|
|
||||||
// 0
|
|
||||||
R1f.x = R4f.y + R4f.x;
|
|
||||||
PV0f.x = R1f.x;
|
|
||||||
R1f.y = intBitsToFloat(uf_remappedPS[2].z) * 0.25;
|
|
||||||
R0f.w = max(R3f.x, -(R3f.x));
|
|
||||||
PV0f.w = R0f.w;
|
|
||||||
R4f.x = max(R3f.y, -(R3f.y));
|
|
||||||
PS0f = R4f.x;
|
|
||||||
// 1
|
|
||||||
R1f.x = min(PV0f.w, PS0f);
|
|
||||||
R4f.y = -(intBitsToFloat(uf_remappedPS[3].y));
|
|
||||||
R0f.z = intBitsToFloat(uf_remappedPS[3].x);
|
|
||||||
R0f.w = R4f.z + PV0f.x;
|
|
||||||
PV1f.w = R0f.w;
|
|
||||||
R4f.x = -(intBitsToFloat(uf_remappedPS[3].x));
|
|
||||||
PS1f = R4f.x;
|
|
||||||
// 2
|
|
||||||
R1f.z = R4f.w + PV1f.w;
|
|
||||||
PV0f.z = R1f.z;
|
|
||||||
R0f.w = intBitsToFloat(uf_remappedPS[3].y);
|
|
||||||
// 3
|
|
||||||
backupReg0f = R1f.y;
|
|
||||||
R1f.y = (backupReg0f * PV0f.z + intBitsToFloat(uf_remappedPS[2].w));
|
|
||||||
PV1f.y = R1f.y;
|
|
||||||
// 4
|
|
||||||
backupReg0f = R1f.x;
|
|
||||||
R1f.x = max(PV1f.y, backupReg0f);
|
|
||||||
PV0f.x = R1f.x;
|
|
||||||
// 5
|
|
||||||
R1f.w = 1.0 / PV0f.x;
|
|
||||||
PS1f = R1f.w;
|
|
||||||
// 6
|
|
||||||
R1f.x = R3f.x * PS1f;
|
|
||||||
PV0f.x = R1f.x;
|
|
||||||
R1f.y = R3f.y * PS1f;
|
|
||||||
PV0f.y = R1f.y;
|
|
||||||
// 7
|
|
||||||
R1f.x = max(PV0f.x, -(intBitsToFloat(uf_remappedPS[2].y)));
|
|
||||||
PV1f.x = R1f.x;
|
|
||||||
R1f.y = max(PV0f.y, -(intBitsToFloat(uf_remappedPS[2].y)));
|
|
||||||
PV1f.y = R1f.y;
|
|
||||||
// 8
|
|
||||||
R1f.x = min(PV1f.x, intBitsToFloat(uf_remappedPS[2].y));
|
|
||||||
PV0f.x = R1f.x;
|
|
||||||
R1f.y = min(PV1f.y, intBitsToFloat(uf_remappedPS[2].y));
|
|
||||||
PV0f.y = R1f.y;
|
|
||||||
// 9
|
|
||||||
backupReg0f = R0f.x;
|
|
||||||
backupReg1f = R0f.y;
|
|
||||||
backupReg2f = R0f.z;
|
|
||||||
backupReg0f = R0f.x;
|
|
||||||
backupReg3f = R0f.w;
|
|
||||||
backupReg1f = R0f.y;
|
|
||||||
R0f.x = (PV0f.x * R4f.x + backupReg0f);
|
|
||||||
R0f.y = (PV0f.y * R4f.y + backupReg1f);
|
|
||||||
R0f.z = (PV0f.x * backupReg2f + backupReg0f);
|
|
||||||
R0f.w = (PV0f.y * backupReg3f + backupReg1f);
|
|
||||||
}
|
|
||||||
if( activeMaskStackC[2] == true ) {
|
|
||||||
R1f.xyzw = (texture(textureUnitPS0, R0f.zw).xyzw);
|
|
||||||
R0f.xyzw = (texture(textureUnitPS0, R0f.xy).xyzw);
|
|
||||||
}
|
|
||||||
if( activeMaskStackC[2] == true ) {
|
|
||||||
// 0
|
|
||||||
backupReg0f = R0f.y;
|
|
||||||
backupReg1f = R0f.x;
|
|
||||||
PV0f.x = R0f.w + R1f.w;
|
|
||||||
PV0f.x /= 2.0;
|
|
||||||
PV0f.y = R0f.z + R1f.z;
|
|
||||||
PV0f.y /= 2.0;
|
|
||||||
PV0f.z = backupReg0f + R1f.y;
|
|
||||||
PV0f.z /= 2.0;
|
|
||||||
PV0f.w = backupReg1f + R1f.x;
|
|
||||||
PV0f.w /= 2.0;
|
|
||||||
// 1
|
|
||||||
PV1f.x = -(R2f.w) + PV0f.x;
|
|
||||||
PV1f.y = -(R2f.z) + PV0f.y;
|
|
||||||
PV1f.z = -(R2f.y) + PV0f.z;
|
|
||||||
PV1f.w = -(R2f.x) + PV0f.w;
|
|
||||||
// 2
|
|
||||||
backupReg0f = R2f.x;
|
|
||||||
backupReg1f = R2f.y;
|
|
||||||
backupReg2f = R2f.z;
|
|
||||||
backupReg3f = R2f.w;
|
|
||||||
R2f.x = (PV1f.w * intBitsToFloat(0x3f4ccccd) + backupReg0f);
|
|
||||||
R2f.y = (PV1f.z * intBitsToFloat(0x3f4ccccd) + backupReg1f);
|
|
||||||
R2f.z = (PV1f.y * intBitsToFloat(0x3f4ccccd) + backupReg2f);
|
|
||||||
R2f.w = (PV1f.x * intBitsToFloat(0x3f4ccccd) + backupReg3f);
|
|
||||||
}
|
|
||||||
activeMaskStackC[1] = activeMaskStack[0] == true && activeMaskStackC[0] == true;
|
|
||||||
// export
|
|
||||||
passPixelColor0 = vec4(R2f.x, R2f.y, R2f.z, R2f.w);
|
|
||||||
}
|
|
@ -1,4 +0,0 @@
|
|||||||
[Definition]
|
|
||||||
titleIds = 0005000010180600,0005000010180700,0005000010180500
|
|
||||||
name = "Captain Toad: Treasure Tracker - No Anti-Aliasing"
|
|
||||||
version = 2
|
|
@ -1,207 +0,0 @@
|
|||||||
#version 420
|
|
||||||
#extension GL_ARB_texture_gather : enable
|
|
||||||
// shader b4ad3f6c36f63964
|
|
||||||
uniform ivec4 uf_remappedPS[1];
|
|
||||||
layout(binding = 0) uniform sampler2D textureUnitPS0;// Tex0 addr 0xf4000800 res 1280x720x1 dim 1 tm: 4 format 0816 compSel: 0 1 2 5 mipView: 0x0 (num 0x1) sliceView: 0x0 (num 0x1) Sampler0 ClampX/Y/Z: 2 2 2 border: 0
|
|
||||||
layout(location = 0) in vec4 passParameterSem0;
|
|
||||||
layout(location = 0) out vec4 passPixelColor0;
|
|
||||||
uniform vec2 uf_fragCoordScale;
|
|
||||||
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 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.xyz = floatBitsToInt(textureLod(textureUnitPS0, intBitsToFloat(R0i.zw),0.0).xyz);
|
|
||||||
//R2i.xyz = floatBitsToInt(textureLodOffset(textureUnitPS0, intBitsToFloat(R0i.zw),0.0,ivec2(1,0)).xyz);
|
|
||||||
//R3i.xyz = floatBitsToInt(textureLodOffset(textureUnitPS0, intBitsToFloat(R0i.zw),0.0,ivec2(0,1)).xyz);
|
|
||||||
//R4i.xyz = floatBitsToInt(textureLodOffset(textureUnitPS0, intBitsToFloat(R0i.zw),0.0,ivec2(1,1)).xyz);
|
|
||||||
//R5i.xyz = floatBitsToInt(textureLod(textureUnitPS0, intBitsToFloat(R0i.xy),0.0).xyz);
|
|
||||||
// 0
|
|
||||||
tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R1i.x),intBitsToFloat(R1i.y),intBitsToFloat(R1i.z),-0.0),vec4(intBitsToFloat(0x3e990afe),intBitsToFloat(0x3f162c23),intBitsToFloat(0x3dea7371),0.0)));
|
|
||||||
PV0i.x = tempi.x;
|
|
||||||
PV0i.y = tempi.x;
|
|
||||||
PV0i.z = tempi.x;
|
|
||||||
PV0i.w = tempi.x;
|
|
||||||
R127i.z = tempi.x;
|
|
||||||
PS0i = floatBitsToInt(intBitsToFloat(R2i.z) * intBitsToFloat(0x3dea7371));
|
|
||||||
// 1
|
|
||||||
tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R2i.x),intBitsToFloat(R2i.y),intBitsToFloat(PS0i),-0.0),vec4(intBitsToFloat(0x3e990afe),intBitsToFloat(0x3f162c23),1.0,0.0)));
|
|
||||||
PV1i.x = tempi.x;
|
|
||||||
PV1i.y = tempi.x;
|
|
||||||
PV1i.z = tempi.x;
|
|
||||||
PV1i.w = tempi.x;
|
|
||||||
R127i.y = tempi.x;
|
|
||||||
PS1i = floatBitsToInt(intBitsToFloat(R3i.z) * intBitsToFloat(0x3dea7371));
|
|
||||||
// 2
|
|
||||||
R125i.x = floatBitsToInt(dot(vec4(intBitsToFloat(R3i.x),intBitsToFloat(R3i.y),intBitsToFloat(PS1i),-0.0),vec4(intBitsToFloat(0x3e990afe),intBitsToFloat(0x3f162c23),1.0,0.0)));
|
|
||||||
PV0i.x = R125i.x;
|
|
||||||
PV0i.y = R125i.x;
|
|
||||||
PV0i.z = R125i.x;
|
|
||||||
PV0i.w = R125i.x;
|
|
||||||
R126i.x = floatBitsToInt(intBitsToFloat(R127i.z) + intBitsToFloat(PV1i.x));
|
|
||||||
PS0i = R126i.x;
|
|
||||||
// 3
|
|
||||||
tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R4i.x),intBitsToFloat(R4i.y),intBitsToFloat(R4i.z),-0.0),vec4(intBitsToFloat(0x3e990afe),intBitsToFloat(0x3f162c23),intBitsToFloat(0x3dea7371),0.0)));
|
|
||||||
PV1i.x = tempi.x;
|
|
||||||
PV1i.y = tempi.x;
|
|
||||||
PV1i.z = tempi.x;
|
|
||||||
PV1i.w = tempi.x;
|
|
||||||
R127i.w = tempi.x;
|
|
||||||
R127i.x = floatBitsToInt(intBitsToFloat(R127i.z) + intBitsToFloat(PV0i.x));
|
|
||||||
PS1i = R127i.x;
|
|
||||||
// 4
|
|
||||||
PV0i.x = floatBitsToInt(intBitsToFloat(R127i.y) + intBitsToFloat(PV1i.x));
|
|
||||||
PV0i.y = floatBitsToInt(intBitsToFloat(R125i.x) + intBitsToFloat(PV1i.x));
|
|
||||||
PV0i.z = floatBitsToInt(intBitsToFloat(R125i.x) + intBitsToFloat(R126i.x));
|
|
||||||
R126i.w = floatBitsToInt(min(intBitsToFloat(R127i.z), intBitsToFloat(R127i.y)));
|
|
||||||
R124i.x = floatBitsToInt(min(intBitsToFloat(R125i.x), intBitsToFloat(PV1i.x)));
|
|
||||||
PS0i = R124i.x;
|
|
||||||
// 5
|
|
||||||
backupReg0i = R127i.z;
|
|
||||||
backupReg1i = R127i.w;
|
|
||||||
PV1i.x = floatBitsToInt(-(intBitsToFloat(PV0i.y)) + intBitsToFloat(R126i.x));
|
|
||||||
PV1i.y = floatBitsToInt(intBitsToFloat(R127i.w) + intBitsToFloat(PV0i.z));
|
|
||||||
R127i.z = floatBitsToInt(max(intBitsToFloat(backupReg0i), intBitsToFloat(R127i.y)));
|
|
||||||
R127i.w = floatBitsToInt(-(intBitsToFloat(PV0i.x)) + intBitsToFloat(R127i.x));
|
|
||||||
PV1i.w = R127i.w;
|
|
||||||
R127i.x = floatBitsToInt(max(intBitsToFloat(R125i.x), intBitsToFloat(backupReg1i)));
|
|
||||||
PS1i = R127i.x;
|
|
||||||
// 6
|
|
||||||
backupReg0i = R126i.w;
|
|
||||||
PV0i.x = floatBitsToInt(intBitsToFloat(PV1i.y) * intBitsToFloat(0x3d000000));
|
|
||||||
PV0i.y = floatBitsToInt(max(intBitsToFloat(PV1i.w), -(intBitsToFloat(PV1i.w))));
|
|
||||||
PV0i.z = floatBitsToInt(max(-(intBitsToFloat(PV1i.x)), intBitsToFloat(PV1i.x)));
|
|
||||||
R126i.w = floatBitsToInt(-(intBitsToFloat(PV1i.x)));
|
|
||||||
R125i.w = floatBitsToInt(min(intBitsToFloat(backupReg0i), intBitsToFloat(R124i.x)));
|
|
||||||
PS0i = R125i.w;
|
|
||||||
// 7
|
|
||||||
PV1i.x = floatBitsToInt(min(intBitsToFloat(PV0i.z), intBitsToFloat(PV0i.y)));
|
|
||||||
R127i.y = floatBitsToInt(max(intBitsToFloat(R127i.z), intBitsToFloat(R127i.x)));
|
|
||||||
PV1i.w = floatBitsToInt(max(intBitsToFloat(PV0i.x), intBitsToFloat(0x3c000000)));
|
|
||||||
PS1i = floatBitsToInt(intBitsToFloat(R5i.z) * intBitsToFloat(0x3dea7371));
|
|
||||||
// 8
|
|
||||||
R123i.x = floatBitsToInt((intBitsToFloat(R5i.y) * intBitsToFloat(0x3f162c23) + intBitsToFloat(PS1i)));
|
|
||||||
PV0i.x = R123i.x;
|
|
||||||
PV0i.w = floatBitsToInt(intBitsToFloat(PV1i.w) + intBitsToFloat(PV1i.x));
|
|
||||||
// 9
|
|
||||||
R123i.z = floatBitsToInt((intBitsToFloat(R5i.x) * intBitsToFloat(0x3e990afe) + intBitsToFloat(PV0i.x)));
|
|
||||||
PV1i.z = R123i.z;
|
|
||||||
PS1i = floatBitsToInt(1.0 / intBitsToFloat(PV0i.w));
|
|
||||||
// 10
|
|
||||||
PV0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.w), intBitsToFloat(PS1i)));
|
|
||||||
PV0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.w), intBitsToFloat(PS1i)));
|
|
||||||
R2i.z = floatBitsToInt(min(intBitsToFloat(PV1i.z), intBitsToFloat(R125i.w)));
|
|
||||||
R1i.w = floatBitsToInt(max(intBitsToFloat(PV1i.z), intBitsToFloat(R127i.y)));
|
|
||||||
// 11
|
|
||||||
PV1i.z = floatBitsToInt(max(intBitsToFloat(PV0i.x), intBitsToFloat(0xc1000000)));
|
|
||||||
PV1i.w = floatBitsToInt(max(intBitsToFloat(PV0i.y), intBitsToFloat(0xc1000000)));
|
|
||||||
// 12
|
|
||||||
PV0i.y = floatBitsToInt(min(intBitsToFloat(PV1i.w), intBitsToFloat(0x41000000)));
|
|
||||||
PV0i.w = floatBitsToInt(min(intBitsToFloat(PV1i.z), intBitsToFloat(0x41000000)));
|
|
||||||
// 13
|
|
||||||
R127i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.y), intBitsToFloat(uf_remappedPS[0].x)));
|
|
||||||
PV1i.z = R127i.z;
|
|
||||||
R127i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.w), intBitsToFloat(uf_remappedPS[0].y)));
|
|
||||||
PV1i.w = R127i.w;
|
|
||||||
// 14
|
|
||||||
R5i.x = floatBitsToInt((intBitsToFloat(PV1i.z) * intBitsToFloat(0x3e2a9930) + intBitsToFloat(R0i.x)));
|
|
||||||
R5i.y = floatBitsToInt((intBitsToFloat(PV1i.w) * intBitsToFloat(0x3e2a9930) + intBitsToFloat(R0i.y)));
|
|
||||||
R5i.z = floatBitsToInt((intBitsToFloat(PV1i.z) * intBitsToFloat(0xbe2ab368) + intBitsToFloat(R0i.x)));
|
|
||||||
R5i.w = floatBitsToInt((intBitsToFloat(PV1i.w) * intBitsToFloat(0xbe2ab368) + intBitsToFloat(R0i.y)));
|
|
||||||
R4i.x = floatBitsToInt((intBitsToFloat(PV1i.z) * 0.5 + intBitsToFloat(R0i.x)));
|
|
||||||
PS0i = R4i.x;
|
|
||||||
// 15
|
|
||||||
backupReg0i = R0i.x;
|
|
||||||
R0i.x = floatBitsToInt((-(intBitsToFloat(R127i.z)) * 0.5 + intBitsToFloat(backupReg0i)));
|
|
||||||
R4i.y = floatBitsToInt((intBitsToFloat(R127i.w) * 0.5 + intBitsToFloat(R0i.y)));
|
|
||||||
R0i.z = floatBitsToInt((-(intBitsToFloat(R127i.w)) * 0.5 + intBitsToFloat(R0i.y)));
|
|
||||||
R3i.xyz = floatBitsToInt(textureLod(textureUnitPS0, intBitsToFloat(R5i.xy),0.0).xyz);
|
|
||||||
R5i.xyz = floatBitsToInt(textureLod(textureUnitPS0, intBitsToFloat(R5i.zw),0.0).xyz);
|
|
||||||
R4i.xyz = floatBitsToInt(textureLod(textureUnitPS0, intBitsToFloat(R4i.xy),0.0).xyz);
|
|
||||||
R0i.xyz = floatBitsToInt(textureLod(textureUnitPS0, intBitsToFloat(R0i.xz),0.0).xyz);
|
|
||||||
// 0
|
|
||||||
R127i.x = floatBitsToInt(intBitsToFloat(R3i.z) + intBitsToFloat(R5i.z));
|
|
||||||
R127i.x = floatBitsToInt(intBitsToFloat(R127i.x) / 2.0);
|
|
||||||
R126i.z = floatBitsToInt(intBitsToFloat(R3i.y) + intBitsToFloat(R5i.y));
|
|
||||||
R126i.z = floatBitsToInt(intBitsToFloat(R126i.z) / 2.0);
|
|
||||||
PV0i.z = R126i.z;
|
|
||||||
R127i.w = floatBitsToInt(intBitsToFloat(R3i.x) + intBitsToFloat(R5i.x));
|
|
||||||
R127i.w = floatBitsToInt(intBitsToFloat(R127i.w) / 2.0);
|
|
||||||
PV0i.w = R127i.w;
|
|
||||||
// 1
|
|
||||||
backupReg0i = R0i.x;
|
|
||||||
backupReg1i = R0i.y;
|
|
||||||
PV1i.x = floatBitsToInt(intBitsToFloat(R4i.x) + intBitsToFloat(backupReg0i));
|
|
||||||
PV1i.y = PV0i.w;
|
|
||||||
PV1i.y = floatBitsToInt(intBitsToFloat(PV1i.y) / 2.0);
|
|
||||||
R127i.z = floatBitsToInt(intBitsToFloat(R4i.z) + intBitsToFloat(R0i.z));
|
|
||||||
PV1i.w = floatBitsToInt(intBitsToFloat(R4i.y) + intBitsToFloat(backupReg1i));
|
|
||||||
PS1i = PV0i.z;
|
|
||||||
PS1i = floatBitsToInt(intBitsToFloat(PS1i) / 2.0);
|
|
||||||
// 2
|
|
||||||
R124i.x = floatBitsToInt((intBitsToFloat(PV1i.x) * 0.25 + intBitsToFloat(PV1i.y)));
|
|
||||||
R127i.y = floatBitsToInt((intBitsToFloat(PV1i.w) * 0.25 + intBitsToFloat(PS1i)));
|
|
||||||
PV0i.w = R127i.x;
|
|
||||||
PV0i.w = floatBitsToInt(intBitsToFloat(PV0i.w) / 2.0);
|
|
||||||
// 3
|
|
||||||
backupReg0i = R127i.z;
|
|
||||||
R127i.z = floatBitsToInt((intBitsToFloat(backupReg0i) * 0.25 + intBitsToFloat(PV0i.w)));
|
|
||||||
PV1i.z = R127i.z;
|
|
||||||
// 4
|
|
||||||
tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R124i.x),intBitsToFloat(R127i.y),intBitsToFloat(PV1i.z),-0.0),vec4(intBitsToFloat(0x3e990afe),intBitsToFloat(0x3f162c23),intBitsToFloat(0x3dea7371),0.0)));
|
|
||||||
PV0i.x = tempi.x;
|
|
||||||
PV0i.y = tempi.x;
|
|
||||||
PV0i.z = tempi.x;
|
|
||||||
PV0i.w = tempi.x;
|
|
||||||
// 5
|
|
||||||
PV1i.x = ((intBitsToFloat(PV0i.x) > intBitsToFloat(R1i.w))?int(0xFFFFFFFF):int(0x0));
|
|
||||||
PV1i.y = ((intBitsToFloat(R2i.z) > intBitsToFloat(PV0i.x))?int(0xFFFFFFFF):int(0x0));
|
|
||||||
// 6
|
|
||||||
R123i.w = ((PV1i.y == 0)?(PV1i.x):(int(-1)));
|
|
||||||
PV0i.w = R123i.w;
|
|
||||||
// 7
|
|
||||||
R123i.x = ((PV0i.w == 0)?(0):(R126i.z));
|
|
||||||
PV1i.x = R123i.x;
|
|
||||||
R123i.y = ((PV0i.w == 0)?(0):(R127i.w));
|
|
||||||
PV1i.y = R123i.y;
|
|
||||||
R123i.z = ((PV0i.w == 0)?(0):(0x3f800000));
|
|
||||||
PV1i.z = R123i.z;
|
|
||||||
R123i.w = ((PV0i.w == 0)?(0):(R127i.x));
|
|
||||||
PV1i.w = R123i.w;
|
|
||||||
// 8
|
|
||||||
R0i.x = ((PV1i.z == 0)?(R124i.x):(PV1i.y));
|
|
||||||
R0i.y = ((PV1i.z == 0)?(R127i.y):(PV1i.x));
|
|
||||||
R0i.z = ((PV1i.z == 0)?(R127i.z):(PV1i.w));
|
|
||||||
// 9
|
|
||||||
R0i.w = 0x3f800000;
|
|
||||||
// export
|
|
||||||
passPixelColor0 = vec4(intBitsToFloat(R0i.x), intBitsToFloat(R0i.y), intBitsToFloat(R0i.z), intBitsToFloat(R0i.w));
|
|
||||||
}
|
|
@ -1,4 +0,0 @@
|
|||||||
[Definition]
|
|
||||||
titleIds = 000500001F600900,000500001F600A00,000500001F600B00
|
|
||||||
name = "Paper Mario: Color Splash - No Anti-Aliasing"
|
|
||||||
version = 2
|
|
@ -1,163 +0,0 @@
|
|||||||
#version 420
|
|
||||||
#extension GL_ARB_texture_gather : enable
|
|
||||||
// shader 8e1337dde42fd224
|
|
||||||
uniform ivec4 uf_remappedPS[4];
|
|
||||||
layout(binding = 0) uniform sampler2D textureUnitPS0;// Tex0 addr 0xf49b1000 res 1280x720x1 dim 1 tm: 4 format 0019 compSel: 0 1 2 3 mipView: 0x0 (num 0x1) sliceView: 0x0 (num 0x1) Sampler0 ClampX/Y/Z: 2 2 2 border: 1
|
|
||||||
layout(binding = 1) uniform sampler2D textureUnitPS1;// Tex1 addr 0xf4240800 res 1280x720x1 dim 1 tm: 4 format 0001 compSel: 0 4 4 5 mipView: 0x0 (num 0x1) sliceView: 0x0 (num 0x1) Sampler1 ClampX/Y/Z: 2 2 2 border: 1
|
|
||||||
layout(location = 0) in vec4 passParameterSem2;
|
|
||||||
layout(location = 0) out vec4 passPixelColor0;
|
|
||||||
uniform vec2 uf_fragCoordScale;
|
|
||||||
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);
|
|
||||||
vec4 R126f = vec4(0.0);
|
|
||||||
vec4 R127f = vec4(0.0);
|
|
||||||
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;
|
|
||||||
bool activeMaskStack[2];
|
|
||||||
bool activeMaskStackC[3];
|
|
||||||
activeMaskStack[0] = false;
|
|
||||||
activeMaskStackC[0] = false;
|
|
||||||
activeMaskStackC[1] = false;
|
|
||||||
activeMaskStack[0] = true;
|
|
||||||
activeMaskStackC[0] = true;
|
|
||||||
activeMaskStackC[1] = true;
|
|
||||||
vec3 cubeMapSTM;
|
|
||||||
int cubeMapFaceId;
|
|
||||||
R0f = passParameterSem2;
|
|
||||||
if( activeMaskStackC[1] == true ) {
|
|
||||||
//R1f.xyzw = (textureGather(textureUnitPS1, R0f.xy).wzxy);
|
|
||||||
R2f.xyzw = (texture(textureUnitPS0, R0f.xy).xyzw);
|
|
||||||
}
|
|
||||||
if( activeMaskStackC[1] == true ) {
|
|
||||||
activeMaskStack[1] = activeMaskStack[0];
|
|
||||||
activeMaskStackC[2] = activeMaskStackC[1];
|
|
||||||
// 0
|
|
||||||
PV0f.x = R1f.y + R1f.x;
|
|
||||||
R127f.y = intBitsToFloat(uf_remappedPS[0].z) * 0.25;
|
|
||||||
PV0f.z = R1f.w + -(R1f.x);
|
|
||||||
PV0f.w = R1f.z + -(R1f.y);
|
|
||||||
R127f.z = mul_nonIEEE(R2f.x, intBitsToFloat(uf_remappedPS[1].x));
|
|
||||||
PS0f = R127f.z;
|
|
||||||
// 1
|
|
||||||
R127f.x = PV0f.w + -(PV0f.z);
|
|
||||||
PV1f.x = R127f.x;
|
|
||||||
R126f.y = PV0f.w + PV0f.z;
|
|
||||||
PV1f.y = R126f.y;
|
|
||||||
PV1f.z = R1f.z + PV0f.x;
|
|
||||||
R127f.w = min(R1f.z, R1f.x);
|
|
||||||
R126f.w = min(R1f.w, R1f.y);
|
|
||||||
PS1f = R126f.w;
|
|
||||||
// 2
|
|
||||||
PV0f.x = R1f.w + PV1f.z;
|
|
||||||
PV0f.y = max(PV1f.x, -(PV1f.x));
|
|
||||||
PV0f.z = max(PV1f.y, -(PV1f.y));
|
|
||||||
PV0f.w = max(R1f.z, R1f.x);
|
|
||||||
PS0f = max(R1f.w, R1f.y);
|
|
||||||
// 3
|
|
||||||
PV1f.x = min(PV0f.z, PV0f.y);
|
|
||||||
R123f.y = (R2f.y * intBitsToFloat(uf_remappedPS[1].y) + R127f.z);
|
|
||||||
PV1f.y = R123f.y;
|
|
||||||
PV1f.z = min(R127f.w, R126f.w);
|
|
||||||
R123f.w = (R127f.y * PV0f.x + intBitsToFloat(uf_remappedPS[0].w));
|
|
||||||
PV1f.w = R123f.w;
|
|
||||||
PS1f = max(PV0f.w, PS0f);
|
|
||||||
// 4
|
|
||||||
PV0f.x = mul_nonIEEE(PS1f, intBitsToFloat(uf_remappedPS[2].x));
|
|
||||||
PV0f.y = max(PV1f.y, PS1f);
|
|
||||||
PV0f.z = min(PV1f.y, PV1f.z);
|
|
||||||
PV0f.w = max(PV1f.w, PV1f.x);
|
|
||||||
// 5
|
|
||||||
R3f.x = max(PV0f.x, intBitsToFloat(uf_remappedPS[2].y));
|
|
||||||
R3f.y = -(PV0f.z) + PV0f.y;
|
|
||||||
PS1f = 1.0 / PV0f.w;
|
|
||||||
// 6
|
|
||||||
PV0f.x = mul_nonIEEE(R127f.x, PS1f);
|
|
||||||
PV0f.y = mul_nonIEEE(R126f.y, PS1f);
|
|
||||||
// 7
|
|
||||||
PV1f.z = max(PV0f.x, -(intBitsToFloat(uf_remappedPS[0].y)));
|
|
||||||
PV1f.w = max(PV0f.y, -(intBitsToFloat(uf_remappedPS[0].y)));
|
|
||||||
// 8
|
|
||||||
R1f.x = min(PV1f.w, intBitsToFloat(uf_remappedPS[0].y));
|
|
||||||
R1f.y = min(PV1f.z, intBitsToFloat(uf_remappedPS[0].y));
|
|
||||||
// 9
|
|
||||||
predResult = (R3f.y > R3f.x);
|
|
||||||
activeMaskStack[1] = predResult;
|
|
||||||
activeMaskStackC[2] = predResult == true && activeMaskStackC[1] == true;
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
activeMaskStack[1] = false;
|
|
||||||
activeMaskStackC[2] = false;
|
|
||||||
}
|
|
||||||
if( activeMaskStackC[2] == true ) {
|
|
||||||
// 0
|
|
||||||
R3f.x = (R1f.x * -(intBitsToFloat(uf_remappedPS[3].z)) + R0f.x);
|
|
||||||
R3f.y = (R1f.y * -(intBitsToFloat(uf_remappedPS[3].w)) + R0f.y);
|
|
||||||
R0f.z = (R1f.x * intBitsToFloat(uf_remappedPS[3].x) + R0f.x);
|
|
||||||
R0f.w = (R1f.y * intBitsToFloat(uf_remappedPS[3].y) + R0f.y);
|
|
||||||
R3f.z = (R1f.x * intBitsToFloat(uf_remappedPS[3].z) + R0f.x);
|
|
||||||
PS0f = R3f.z;
|
|
||||||
// 1
|
|
||||||
R4f.x = (R1f.x * -(intBitsToFloat(uf_remappedPS[3].x)) + R0f.x);
|
|
||||||
R4f.y = (R1f.y * -(intBitsToFloat(uf_remappedPS[3].y)) + R0f.y);
|
|
||||||
R3f.w = (R1f.y * intBitsToFloat(uf_remappedPS[3].w) + R0f.y);
|
|
||||||
}
|
|
||||||
if( activeMaskStackC[2] == true ) {
|
|
||||||
R1f.xyzw = (texture(textureUnitPS0, R0f.zw).xyzw);
|
|
||||||
R0f.xyzw = (texture(textureUnitPS0, R3f.zw).xyzw);
|
|
||||||
R3f.xyzw = (texture(textureUnitPS0, R3f.xy).xyzw);
|
|
||||||
R2f.xyzw = (texture(textureUnitPS0, R4f.xy).xyzw);
|
|
||||||
}
|
|
||||||
if( activeMaskStackC[2] == true ) {
|
|
||||||
// 0
|
|
||||||
R127f.x = R0f.w + R1f.w;
|
|
||||||
R127f.x /= 2.0;
|
|
||||||
R127f.y = R0f.z + R1f.z;
|
|
||||||
R127f.y /= 2.0;
|
|
||||||
R127f.z = R0f.y + R1f.y;
|
|
||||||
R127f.z /= 2.0;
|
|
||||||
R127f.w = R0f.x + R1f.x;
|
|
||||||
R127f.w /= 2.0;
|
|
||||||
// 1
|
|
||||||
PV1f.x = R2f.w + R3f.w;
|
|
||||||
PV1f.x /= 2.0;
|
|
||||||
PV1f.y = R2f.z + R3f.z;
|
|
||||||
PV1f.y /= 2.0;
|
|
||||||
PV1f.z = R2f.y + R3f.y;
|
|
||||||
PV1f.z /= 2.0;
|
|
||||||
PV1f.w = R2f.x + R3f.x;
|
|
||||||
PV1f.w /= 2.0;
|
|
||||||
// 2
|
|
||||||
R2f.x = R127f.w + PV1f.w;
|
|
||||||
R2f.x /= 2.0;
|
|
||||||
R2f.y = R127f.z + PV1f.z;
|
|
||||||
R2f.y /= 2.0;
|
|
||||||
R2f.z = R127f.y + PV1f.y;
|
|
||||||
R2f.z /= 2.0;
|
|
||||||
R2f.w = R127f.x + PV1f.x;
|
|
||||||
R2f.w /= 2.0;
|
|
||||||
}
|
|
||||||
activeMaskStackC[1] = activeMaskStack[0] == true && activeMaskStackC[0] == true;
|
|
||||||
// export
|
|
||||||
passPixelColor0 = vec4(R2f.x, R2f.y, R2f.z, R2f.w);
|
|
||||||
}
|
|
@ -1,4 +0,0 @@
|
|||||||
[Definition]
|
|
||||||
titleIds = 000500001010ec00,000500001010ed00,000500001010eb00
|
|
||||||
name = "Mario Kart 8 - No Anti-Aliasing"
|
|
||||||
version = 2
|
|
@ -1,4 +0,0 @@
|
|||||||
[Definition]
|
|
||||||
titleIds = 000500001010ec00,000500001010ed00,000500001010eb00
|
|
||||||
name = "Mario Kart 8 - Adjustable Bloom"
|
|
||||||
version = 2
|
|
@ -1,43 +0,0 @@
|
|||||||
#version 420
|
|
||||||
#extension GL_ARB_texture_gather : enable
|
|
||||||
// shader d81508000beb90fd
|
|
||||||
layout(binding = 0) uniform sampler2D textureUnitPS0;// Tex0 addr 0xf4c24800 res 1280x720x1 dim 1 tm: 4 format 0816 compSel: 0 1 2 3 mipView: 0x0 (num 0x1) sliceView: 0x0 (num 0x1) Sampler0 ClampX/Y/Z: 2 2 2 border: 0
|
|
||||||
layout(location = 0) in vec4 passParameterSem0;
|
|
||||||
layout(location = 0) out vec4 passPixelColor0;
|
|
||||||
uniform vec2 uf_fragCoordScale;
|
|
||||||
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);
|
|
||||||
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 = passParameterSem0;
|
|
||||||
//R0f.xyz = (textureLod(textureUnitPS0, R0f.zw,0.0).xyz);
|
|
||||||
// 0
|
|
||||||
backupReg0f = R0f.x;
|
|
||||||
backupReg1f = R0f.y;
|
|
||||||
backupReg2f = R0f.z;
|
|
||||||
R0f.x = dot(vec4(backupReg0f,backupReg1f,backupReg2f,-0.0),vec4(intBitsToFloat(0x3e59b3d0),intBitsToFloat(0x3f371759),intBitsToFloat(0x3d93dd98),0.0));
|
|
||||||
PV0f.x = R0f.x;
|
|
||||||
PV0f.y = R0f.x;
|
|
||||||
PV0f.z = R0f.x;
|
|
||||||
PV0f.w = R0f.x;
|
|
||||||
// export
|
|
||||||
passPixelColor0 = vec4(R0f.x, R0f.x, R0f.x, R0f.x);
|
|
||||||
}
|
|
@ -1,4 +0,0 @@
|
|||||||
[Definition]
|
|
||||||
titleIds = 00050000101A3500,00050000101A3600,0005000010199000
|
|
||||||
name = "Mario Tennis: Ultra Smash - No Anti-Aliasing"
|
|
||||||
version = 2
|
|
@ -1,161 +0,0 @@
|
|||||||
#version 420
|
|
||||||
#extension GL_ARB_texture_gather : enable
|
|
||||||
// shader 50e29e8929cea348
|
|
||||||
uniform ivec4 uf_remappedPS[3];
|
|
||||||
layout(binding = 0) uniform sampler2D textureUnitPS0;// Tex0 addr 0xf4240800 res 1280x720x1 dim 1 tm: 4 format 001a compSel: 0 1 2 3 mipView: 0x0 (num 0x1) sliceView: 0x0 (num 0x1) Sampler0 ClampX/Y/Z: 2 2 2 border: 1
|
|
||||||
layout(binding = 1) uniform sampler2D textureUnitPS1;// Tex1 addr 0xf45c5000 res 1280x720x1 dim 1 tm: 4 format 0001 compSel: 0 4 4 5 mipView: 0x0 (num 0x1) sliceView: 0x0 (num 0x1) Sampler1 ClampX/Y/Z: 2 2 2 border: 1
|
|
||||||
layout(location = 0) in vec4 passParameterSem1;
|
|
||||||
layout(location = 0) out vec4 passPixelColor0;
|
|
||||||
uniform vec2 uf_fragCoordScale;
|
|
||||||
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);
|
|
||||||
vec4 R125f = vec4(0.0);
|
|
||||||
vec4 R126f = vec4(0.0);
|
|
||||||
vec4 R127f = vec4(0.0);
|
|
||||||
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;
|
|
||||||
bool activeMaskStack[2];
|
|
||||||
bool activeMaskStackC[3];
|
|
||||||
activeMaskStack[0] = false;
|
|
||||||
activeMaskStackC[0] = false;
|
|
||||||
activeMaskStackC[1] = false;
|
|
||||||
activeMaskStack[0] = true;
|
|
||||||
activeMaskStackC[0] = true;
|
|
||||||
activeMaskStackC[1] = true;
|
|
||||||
vec3 cubeMapSTM;
|
|
||||||
int cubeMapFaceId;
|
|
||||||
R0f = passParameterSem1;
|
|
||||||
if( activeMaskStackC[1] == true ) {
|
|
||||||
//R1f.xyzw = (textureGather(textureUnitPS1, R0f.xy).xyzw);
|
|
||||||
R2f.xyzw = (texture(textureUnitPS0, R0f.xy).xyzw);
|
|
||||||
}
|
|
||||||
if( activeMaskStackC[1] == true ) {
|
|
||||||
activeMaskStack[1] = activeMaskStack[0];
|
|
||||||
activeMaskStackC[2] = activeMaskStackC[1];
|
|
||||||
// 0
|
|
||||||
PV0f.x = R1f.z + R1f.w;
|
|
||||||
PV0f.y = R1f.y + -(R1f.w);
|
|
||||||
PV0f.z = R1f.x + -(R1f.z);
|
|
||||||
R127f.w = mul_nonIEEE(R2f.x, intBitsToFloat(uf_remappedPS[0].x));
|
|
||||||
R126f.w = min(R1f.z, R1f.w);
|
|
||||||
PS0f = R126f.w;
|
|
||||||
// 1
|
|
||||||
R126f.x = PV0f.z + PV0f.y;
|
|
||||||
PV1f.x = R126f.x;
|
|
||||||
PV1f.y = R1f.x + PV0f.x;
|
|
||||||
R127f.z = min(R1f.x, R1f.y);
|
|
||||||
R125f.w = PV0f.z + -(PV0f.y);
|
|
||||||
PV1f.w = R125f.w;
|
|
||||||
R127f.y = max(R1f.z, R1f.w);
|
|
||||||
PS1f = R127f.y;
|
|
||||||
// 2
|
|
||||||
PV0f.x = R1f.y + PV1f.y;
|
|
||||||
PV0f.y = max(PV1f.w, -(PV1f.w));
|
|
||||||
PV0f.z = max(PV1f.x, -(PV1f.x));
|
|
||||||
PV0f.w = max(R1f.x, R1f.y);
|
|
||||||
R127f.x = (R2f.y * intBitsToFloat(uf_remappedPS[0].y) + R127f.w);
|
|
||||||
PS0f = R127f.x;
|
|
||||||
// 3
|
|
||||||
PV1f.x = min(PV0f.z, PV0f.y);
|
|
||||||
PV1f.y = min(R126f.w, R127f.z);
|
|
||||||
PV1f.z = max(R127f.y, PV0f.w);
|
|
||||||
R123f.w = (PV0f.x * intBitsToFloat(0x3d000000) + intBitsToFloat(0x3b800000));
|
|
||||||
PV1f.w = R123f.w;
|
|
||||||
// 4
|
|
||||||
PV0f.x = min(R127f.x, PV1f.y);
|
|
||||||
PV0f.y = max(R127f.x, PV1f.z);
|
|
||||||
PV0f.w = max(PV1f.w, PV1f.x);
|
|
||||||
// 5
|
|
||||||
R0f.z = -(PV0f.x) + PV0f.y;
|
|
||||||
PS1f = 1.0 / PV0f.w;
|
|
||||||
// 6
|
|
||||||
PV0f.x = R125f.w * PS1f;
|
|
||||||
PV0f.y = R126f.x * PS1f;
|
|
||||||
// 7
|
|
||||||
PV1f.z = max(PV0f.x, intBitsToFloat(0xc0400000));
|
|
||||||
PV1f.w = max(PV0f.y, intBitsToFloat(0xc0400000));
|
|
||||||
// 8
|
|
||||||
R1f.x = min(PV1f.w, intBitsToFloat(0x40400000));
|
|
||||||
R1f.y = min(PV1f.z, intBitsToFloat(0x40400000));
|
|
||||||
// 9
|
|
||||||
predResult = (R0f.z > intBitsToFloat(uf_remappedPS[1].y));
|
|
||||||
activeMaskStack[1] = predResult;
|
|
||||||
activeMaskStackC[2] = predResult == true && activeMaskStackC[1] == true;
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
activeMaskStack[1] = false;
|
|
||||||
activeMaskStackC[2] = false;
|
|
||||||
}
|
|
||||||
if( activeMaskStackC[2] == true ) {
|
|
||||||
// 0
|
|
||||||
R3f.x = (R1f.x * -(intBitsToFloat(uf_remappedPS[2].z)) + R0f.x);
|
|
||||||
R3f.y = (R1f.y * -(intBitsToFloat(uf_remappedPS[2].w)) + R0f.y);
|
|
||||||
R0f.z = (R1f.x * intBitsToFloat(uf_remappedPS[2].x) + R0f.x);
|
|
||||||
R0f.w = (R1f.y * intBitsToFloat(uf_remappedPS[2].y) + R0f.y);
|
|
||||||
R3f.z = (R1f.x * intBitsToFloat(uf_remappedPS[2].z) + R0f.x);
|
|
||||||
PS0f = R3f.z;
|
|
||||||
// 1
|
|
||||||
R4f.x = (R1f.x * -(intBitsToFloat(uf_remappedPS[2].x)) + R0f.x);
|
|
||||||
R4f.y = (R1f.y * -(intBitsToFloat(uf_remappedPS[2].y)) + R0f.y);
|
|
||||||
R3f.w = (R1f.y * intBitsToFloat(uf_remappedPS[2].w) + R0f.y);
|
|
||||||
}
|
|
||||||
if( activeMaskStackC[2] == true ) {
|
|
||||||
R1f.xyzw = (texture(textureUnitPS0, R0f.zw).xyzw);
|
|
||||||
R0f.xyzw = (texture(textureUnitPS0, R3f.zw).xyzw);
|
|
||||||
R3f.xyzw = (texture(textureUnitPS0, R3f.xy).xyzw);
|
|
||||||
R2f.xyzw = (texture(textureUnitPS0, R4f.xy).xyzw);
|
|
||||||
}
|
|
||||||
if( activeMaskStackC[2] == true ) {
|
|
||||||
// 0
|
|
||||||
R127f.x = R0f.w + R1f.w;
|
|
||||||
R127f.x /= 2.0;
|
|
||||||
R127f.y = R0f.z + R1f.z;
|
|
||||||
R127f.y /= 2.0;
|
|
||||||
R127f.z = R0f.y + R1f.y;
|
|
||||||
R127f.z /= 2.0;
|
|
||||||
R127f.w = R0f.x + R1f.x;
|
|
||||||
R127f.w /= 2.0;
|
|
||||||
// 1
|
|
||||||
PV1f.x = R2f.w + R3f.w;
|
|
||||||
PV1f.x /= 2.0;
|
|
||||||
PV1f.y = R2f.z + R3f.z;
|
|
||||||
PV1f.y /= 2.0;
|
|
||||||
PV1f.z = R2f.y + R3f.y;
|
|
||||||
PV1f.z /= 2.0;
|
|
||||||
PV1f.w = R2f.x + R3f.x;
|
|
||||||
PV1f.w /= 2.0;
|
|
||||||
// 2
|
|
||||||
R2f.x = R127f.w + PV1f.w;
|
|
||||||
R2f.x /= 2.0;
|
|
||||||
R2f.y = R127f.z + PV1f.z;
|
|
||||||
R2f.y /= 2.0;
|
|
||||||
R2f.z = R127f.y + PV1f.y;
|
|
||||||
R2f.z /= 2.0;
|
|
||||||
R2f.w = R127f.x + PV1f.x;
|
|
||||||
R2f.w /= 2.0;
|
|
||||||
}
|
|
||||||
activeMaskStackC[1] = activeMaskStack[0] == true && activeMaskStackC[0] == true;
|
|
||||||
// export
|
|
||||||
passPixelColor0 = vec4(R2f.x, R2f.y, R2f.z, R2f.w);
|
|
||||||
}
|
|
@ -1,4 +0,0 @@
|
|||||||
[Definition]
|
|
||||||
titleIds = 0005000010101D00,0005000010101E00,000500001014B700,000500001014B800,0005000010101C00,0005000010142300,0005000010142400,0005000010142200
|
|
||||||
name = "New Super Mario Bros. U + New Super Luigi U - No Anti-Aliasing"
|
|
||||||
version = 2
|
|
@ -1,315 +0,0 @@
|
|||||||
#version 420
|
|
||||||
#extension GL_ARB_texture_gather : enable
|
|
||||||
#extension GL_ARB_separate_shader_objects : enable
|
|
||||||
// shader 4fe1bb2bc0611f15
|
|
||||||
// Disable this fucking godforsaken piece of shit blur filter that makes the game look lower res than it actually is
|
|
||||||
uniform ivec4 uf_remappedPS[1];
|
|
||||||
layout(binding = 0) uniform sampler2D textureUnitPS0;// Tex0 addr 0xf4000800 res 1280x720x1 dim 1 tm: 4 format 041a compSel: 0 1 2 3 mipView: 0x0 (num 0x1) sliceView: 0x0 (num 0x1) Sampler0 ClampX/Y/Z: 2 2 2 border: 0
|
|
||||||
layout(location = 0) out vec4 passPixelColor0;
|
|
||||||
uniform vec2 uf_fragCoordScale;
|
|
||||||
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 R5f = vec4(0.0);
|
|
||||||
vec4 R6f = vec4(0.0);
|
|
||||||
vec4 R7f = vec4(0.0);
|
|
||||||
vec4 R8f = vec4(0.0);
|
|
||||||
vec4 R9f = vec4(0.0);
|
|
||||||
vec4 R10f = vec4(0.0);
|
|
||||||
vec4 R11f = vec4(0.0);
|
|
||||||
vec4 R123f = vec4(0.0);
|
|
||||||
vec4 R124f = vec4(0.0);
|
|
||||||
vec4 R125f = vec4(0.0);
|
|
||||||
vec4 R126f = vec4(0.0);
|
|
||||||
vec4 R127f = vec4(0.0);
|
|
||||||
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 = vec4(gl_FragCoord.xy*uf_fragCoordScale,gl_FragCoord.zw);
|
|
||||||
// 0
|
|
||||||
PV0f.z = R0f.x + 0.5;
|
|
||||||
PV0f.w = R0f.y + 0.5;
|
|
||||||
// 1
|
|
||||||
R4f.x = mul_nonIEEE(PV0f.z, intBitsToFloat(uf_remappedPS[0].x));
|
|
||||||
PV1f.x = R4f.x;
|
|
||||||
R4f.y = mul_nonIEEE(PV0f.w, intBitsToFloat(uf_remappedPS[0].y));
|
|
||||||
PV1f.y = R4f.y;
|
|
||||||
// 2
|
|
||||||
R0f.xyz = vec3(PV1f.x,PV1f.y,PV1f.x) + vec3(intBitsToFloat(0xba99999a),0.0,0.0);
|
|
||||||
R0f.w = PV1f.y + intBitsToFloat(0xbb088889);
|
|
||||||
R1f.x = PV1f.x + intBitsToFloat(0x3a99999a);
|
|
||||||
PS0f = R1f.x;
|
|
||||||
// 3
|
|
||||||
R2f.x = R4f.x + 0.0;
|
|
||||||
R1f.y = R4f.y + 0.0;
|
|
||||||
R2f.zwy = vec3(R4f.y,R4f.x,R4f.y) + vec3(intBitsToFloat(0x3b088889),intBitsToFloat(0xba99999a),intBitsToFloat(0xbb088889));
|
|
||||||
PS1f = R2f.y;
|
|
||||||
// 4
|
|
||||||
R3f.x = R4f.x + intBitsToFloat(0xba99999a);
|
|
||||||
R3f.y = R4f.y + intBitsToFloat(0x3b088889);
|
|
||||||
R1f.z = R4f.x + intBitsToFloat(0x3a99999a);
|
|
||||||
R1f.w = R4f.y + intBitsToFloat(0xbb088889);
|
|
||||||
R6f.x = R4f.x + intBitsToFloat(0x3a99999a);
|
|
||||||
PS0f = R6f.x;
|
|
||||||
//R11f.xyzw = (texture(textureUnitPS0, R4f.xy).xyzw);
|
|
||||||
R11f.xyzw = (texture(textureUnitPS0, R3f.xy).xyzw);
|
|
||||||
R5f.xyzw = (texture(textureUnitPS0, R0f.xy).xyzw);
|
|
||||||
R0f.xyzw = (texture(textureUnitPS0, R0f.zw).xyzw);
|
|
||||||
R7f.xyzw = (texture(textureUnitPS0, R1f.xy).xyzw);
|
|
||||||
R8f.xyzw = (texture(textureUnitPS0, R2f.xz).xyzw);
|
|
||||||
R9f.xyzw = (texture(textureUnitPS0, R2f.wy).xyzw);
|
|
||||||
R3f.xyzw = (texture(textureUnitPS0, R3f.xy).xyzw);
|
|
||||||
R10f.xyzw = (texture(textureUnitPS0, R1f.zw).xyzw);
|
|
||||||
// 0
|
|
||||||
R127f.x = -(R11f.x) + R5f.x;
|
|
||||||
R6f.y = R4f.y + intBitsToFloat(0x3b088889);
|
|
||||||
R123f.z = (R11f.w * 2.0 + -(1.0));
|
|
||||||
PV0f.z = R123f.z;
|
|
||||||
PV0f.w = R5f.w + intBitsToFloat(0x3c23d70a);
|
|
||||||
R127f.w = -(R11f.y) + R5f.y;
|
|
||||||
PS0f = R127f.w;
|
|
||||||
// 1
|
|
||||||
R126f.x = -(R11f.z) + R5f.z;
|
|
||||||
//PV1f.y = max(PV0f.z, -(PV0f.z));
|
|
||||||
PV1f.y = max(PV1f.z, -(PV1f.z));
|
|
||||||
PV1f.z = -(R11f.w) + PV0f.w;
|
|
||||||
R126f.w = -(R11f.w) + R5f.w;
|
|
||||||
PS1f = R0f.w + intBitsToFloat(0x3c23d70a);
|
|
||||||
// 2
|
|
||||||
backupReg0f = R0f.x;
|
|
||||||
PV0f.x = -(PV1f.y) + 1.0;
|
|
||||||
R123f.y = intBitsToFloat(((PV1f.z >= 0.0)?(floatBitsToInt(1.0)):(0)));
|
|
||||||
PV0f.y = R123f.y;
|
|
||||||
R127f.z = -(R11f.w) + PS1f;
|
|
||||||
R5f.w = R7f.w + intBitsToFloat(0x3c23d70a);
|
|
||||||
R1f.w = -(R11f.x) + backupReg0f;
|
|
||||||
PS0f = R1f.w;
|
|
||||||
// 3
|
|
||||||
R5f.x = (mul_nonIEEE(R127f.x,PV0f.y) + R11f.x);
|
|
||||||
R5f.y = (mul_nonIEEE(R127f.w,PV0f.y) + R11f.y);
|
|
||||||
R5f.z = (mul_nonIEEE(R126f.x,PV0f.y) + R11f.z);
|
|
||||||
R2f.w = max(PV0f.x, intBitsToFloat(0x3de38e39));
|
|
||||||
PV1f.w = R2f.w;
|
|
||||||
R4f.y = (mul_nonIEEE(R126f.w,PV0f.y) + R11f.w);
|
|
||||||
PS1f = R4f.y;
|
|
||||||
// 4
|
|
||||||
backupReg0f = R0f.y;
|
|
||||||
backupReg1f = R0f.z;
|
|
||||||
backupReg2f = R0f.w;
|
|
||||||
R4f.x = intBitsToFloat(((R127f.z >= 0.0)?(floatBitsToInt(1.0)):(0)));
|
|
||||||
R0f.yzw = vec3(-(R11f.y),-(PV1f.w),-(R11f.z)) + vec3(backupReg0f,1.0,backupReg1f);
|
|
||||||
R0f.x = -(R11f.w) + backupReg2f;
|
|
||||||
PS0f = R0f.x;
|
|
||||||
R6f.xyzw = (texture(textureUnitPS0, R6f.xy).xyzw);
|
|
||||||
// 0
|
|
||||||
backupReg0f = R0f.y;
|
|
||||||
R127f.x = R8f.w + intBitsToFloat(0x3c23d70a);
|
|
||||||
R0f.y = R0f.z * intBitsToFloat(0x3e15f619);
|
|
||||||
PV0f.y = R0f.y;
|
|
||||||
R127f.z = -(R11f.w) + R5f.w;
|
|
||||||
R126f.w = (mul_nonIEEE(backupReg0f,R4f.x) + R11f.y);
|
|
||||||
R125f.x = (mul_nonIEEE(R0f.x,R4f.x) + R11f.w);
|
|
||||||
PS0f = R125f.x;
|
|
||||||
// 1
|
|
||||||
PV1f.x = mul_nonIEEE(PV0f.y, R5f.x);
|
|
||||||
PV1f.y = mul_nonIEEE(PV0f.y, R4f.y);
|
|
||||||
PV1f.z = mul_nonIEEE(PV0f.y, R5f.z);
|
|
||||||
PV1f.w = mul_nonIEEE(PV0f.y, R5f.y);
|
|
||||||
R127f.w = (mul_nonIEEE(R1f.w,R4f.x) + R11f.x);
|
|
||||||
PS1f = R127f.w;
|
|
||||||
// 2
|
|
||||||
R126f.x = (mul_nonIEEE(R11f.x,R2f.w) + PV1f.x);
|
|
||||||
R126f.y = (mul_nonIEEE(R11f.w,R2f.w) + PV1f.y);
|
|
||||||
R126f.z = (mul_nonIEEE(R11f.z,R2f.w) + PV1f.z);
|
|
||||||
R125f.w = (mul_nonIEEE(R11f.y,R2f.w) + PV1f.w);
|
|
||||||
R127f.y = (mul_nonIEEE(R0f.w,R4f.x) + R11f.z);
|
|
||||||
PS0f = R127f.y;
|
|
||||||
// 3
|
|
||||||
R124f.x = -(R11f.x) + R7f.x;
|
|
||||||
R124f.y = intBitsToFloat(((R127f.z >= 0.0)?(floatBitsToInt(1.0)):(0)));
|
|
||||||
R127f.z = -(R11f.z) + R7f.z;
|
|
||||||
R124f.w = -(R11f.y) + R7f.y;
|
|
||||||
R125f.y = -(R11f.w) + R7f.w;
|
|
||||||
PS1f = R125f.y;
|
|
||||||
// 4
|
|
||||||
backupReg0f = R127f.x;
|
|
||||||
backupReg1f = R0f.y;
|
|
||||||
backupReg2f = R126f.z;
|
|
||||||
backupReg1f = R0f.y;
|
|
||||||
R127f.x = (mul_nonIEEE(R0f.y,R127f.w) + R126f.x);
|
|
||||||
PV0f.y = -(R11f.w) + backupReg0f;
|
|
||||||
R126f.z = (mul_nonIEEE(backupReg1f,R127f.y) + backupReg2f);
|
|
||||||
R127f.w = R9f.w + intBitsToFloat(0x3c23d70a);
|
|
||||||
R126f.x = (mul_nonIEEE(backupReg1f,R125f.x) + R126f.y);
|
|
||||||
PS0f = R126f.x;
|
|
||||||
// 5
|
|
||||||
backupReg0f = R124f.x;
|
|
||||||
R124f.x = (mul_nonIEEE(backupReg0f,R124f.y) + R11f.x);
|
|
||||||
R127f.y = (mul_nonIEEE(R127f.z,R124f.y) + R11f.z);
|
|
||||||
R127f.z = (mul_nonIEEE(R0f.y,R126f.w) + R125f.w);
|
|
||||||
R126f.w = (mul_nonIEEE(R124f.w,R124f.y) + R11f.y);
|
|
||||||
R7f.x = intBitsToFloat(((PV0f.y >= 0.0)?(floatBitsToInt(1.0)):(0)));
|
|
||||||
PS1f = R7f.x;
|
|
||||||
// 6
|
|
||||||
backupReg0f = R127f.w;
|
|
||||||
R125f.x = -(R11f.z) + R8f.z;
|
|
||||||
R123f.y = (mul_nonIEEE(R125f.y,R124f.y) + R11f.w);
|
|
||||||
PV0f.y = R123f.y;
|
|
||||||
R125f.z = -(R11f.w) + R8f.w;
|
|
||||||
R127f.w = -(R11f.x) + R8f.x;
|
|
||||||
R124f.z = -(R11f.w) + backupReg0f;
|
|
||||||
PS0f = R124f.z;
|
|
||||||
// 7
|
|
||||||
backupReg0f = R127f.x;
|
|
||||||
backupReg1f = R126f.w;
|
|
||||||
R127f.x = R3f.w + intBitsToFloat(0x3c23d70a);
|
|
||||||
R125f.y = (mul_nonIEEE(R0f.y,R124f.x) + backupReg0f);
|
|
||||||
PV1f.z = -(R11f.y) + R8f.y;
|
|
||||||
R126f.w = (mul_nonIEEE(R0f.y,backupReg1f) + R127f.z);
|
|
||||||
R125f.w = (mul_nonIEEE(R0f.y,PV0f.y) + R126f.x);
|
|
||||||
PS1f = R125f.w;
|
|
||||||
// 8
|
|
||||||
backupReg0f = R125f.x;
|
|
||||||
backupReg1f = R127f.y;
|
|
||||||
backupReg2f = R126f.z;
|
|
||||||
backupReg3f = R127f.w;
|
|
||||||
R125f.x = (mul_nonIEEE(PV1f.z,R7f.x) + R11f.y);
|
|
||||||
R127f.y = (mul_nonIEEE(backupReg0f,R7f.x) + R11f.z);
|
|
||||||
R126f.z = (mul_nonIEEE(R0f.y,backupReg1f) + backupReg2f);
|
|
||||||
R127f.w = (mul_nonIEEE(backupReg3f,R7f.x) + R11f.x);
|
|
||||||
R126f.x = (mul_nonIEEE(R125f.z,R7f.x) + R11f.w);
|
|
||||||
PS0f = R126f.x;
|
|
||||||
// 9
|
|
||||||
R124f.x = -(R11f.x) + R9f.x;
|
|
||||||
R126f.y = intBitsToFloat(((R124f.z >= 0.0)?(floatBitsToInt(1.0)):(0)));
|
|
||||||
R124f.zwy = vec3(-(R11f.z),-(R11f.y),-(R11f.w)) + vec3(R9f.z,R9f.y,R9f.w);
|
|
||||||
PS1f = R124f.y;
|
|
||||||
// 10
|
|
||||||
backupReg0f = R127f.x;
|
|
||||||
backupReg1f = R0f.y;
|
|
||||||
backupReg2f = R126f.z;
|
|
||||||
backupReg1f = R0f.y;
|
|
||||||
R127f.x = (mul_nonIEEE(R0f.y,R127f.w) + R125f.y);
|
|
||||||
PV0f.y = -(R11f.w) + backupReg0f;
|
|
||||||
R126f.z = (mul_nonIEEE(backupReg1f,R127f.y) + backupReg2f);
|
|
||||||
R127f.w = R10f.w + intBitsToFloat(0x3c23d70a);
|
|
||||||
R9f.x = backupReg1f * intBitsToFloat(0x3f3504f3);
|
|
||||||
PS0f = R9f.x;
|
|
||||||
// 11
|
|
||||||
backupReg0f = R126f.x;
|
|
||||||
R126f.x = (mul_nonIEEE(R0f.y,backupReg0f) + R125f.w);
|
|
||||||
R127f.y = (mul_nonIEEE(R124f.z,R126f.y) + R11f.z);
|
|
||||||
R124f.z = (mul_nonIEEE(R0f.y,R125f.x) + R126f.w);
|
|
||||||
R126f.w = (mul_nonIEEE(R124f.w,R126f.y) + R11f.y);
|
|
||||||
R125f.x = intBitsToFloat(((PV0f.y >= 0.0)?(floatBitsToInt(1.0)):(0)));
|
|
||||||
PS1f = R125f.x;
|
|
||||||
// 12
|
|
||||||
backupReg0f = R126f.y;
|
|
||||||
R123f.x = (mul_nonIEEE(R124f.x,R126f.y) + R11f.x);
|
|
||||||
PV0f.x = R123f.x;
|
|
||||||
R126f.y = (mul_nonIEEE(R124f.y,backupReg0f) + R11f.w);
|
|
||||||
R125f.z = -(R11f.z) + R3f.z;
|
|
||||||
R125f.w = -(R11f.x) + R3f.x;
|
|
||||||
R124f.x = -(R11f.w) + R3f.w;
|
|
||||||
PS0f = R124f.x;
|
|
||||||
// 13
|
|
||||||
backupReg0f = R127f.y;
|
|
||||||
backupReg1f = R126f.z;
|
|
||||||
PV1f.x = -(R11f.w) + R127f.w;
|
|
||||||
R127f.y = R6f.w + intBitsToFloat(0x3c23d70a);
|
|
||||||
PV1f.z = -(R11f.y) + R3f.y;
|
|
||||||
R127f.w = (mul_nonIEEE(R9f.x,PV0f.x) + R127f.x);
|
|
||||||
R126f.z = (mul_nonIEEE(R9f.x,backupReg0f) + backupReg1f);
|
|
||||||
PS1f = R126f.z;
|
|
||||||
// 14
|
|
||||||
backupReg0f = R126f.x;
|
|
||||||
backupReg1f = R126f.w;
|
|
||||||
R126f.x = (mul_nonIEEE(R9f.x,R126f.y) + backupReg0f);
|
|
||||||
R126f.y = (mul_nonIEEE(R125f.z,R125f.x) + R11f.z);
|
|
||||||
R125f.z = (mul_nonIEEE(PV1f.z,R125f.x) + R11f.y);
|
|
||||||
R126f.w = (mul_nonIEEE(R9f.x,backupReg1f) + R124f.z);
|
|
||||||
R3f.y = intBitsToFloat(((PV1f.x >= 0.0)?(floatBitsToInt(1.0)):(0)));
|
|
||||||
PS0f = R3f.y;
|
|
||||||
// 15
|
|
||||||
backupReg0f = R125f.x;
|
|
||||||
backupReg0f = R125f.x;
|
|
||||||
R125f.x = (mul_nonIEEE(R124f.x,backupReg0f) + R11f.w);
|
|
||||||
R124f.y = -(R11f.y) + R10f.y;
|
|
||||||
R124f.z = -(R11f.z) + R10f.z;
|
|
||||||
R123f.w = (mul_nonIEEE(R125f.w,backupReg0f) + R11f.x);
|
|
||||||
PV1f.w = R123f.w;
|
|
||||||
R125f.y = -(R11f.w) + R10f.w;
|
|
||||||
PS1f = R125f.y;
|
|
||||||
// 16
|
|
||||||
backupReg0f = R127f.w;
|
|
||||||
backupReg1f = R126f.z;
|
|
||||||
R124f.x = -(R11f.x) + R10f.x;
|
|
||||||
PV0f.y = -(R11f.w) + R127f.y;
|
|
||||||
R126f.z = (mul_nonIEEE(R9f.x,R125f.z) + R126f.w);
|
|
||||||
R127f.w = (mul_nonIEEE(R9f.x,PV1f.w) + backupReg0f);
|
|
||||||
R127f.y = (mul_nonIEEE(R9f.x,R126f.y) + backupReg1f);
|
|
||||||
PS0f = R127f.y;
|
|
||||||
// 17
|
|
||||||
backupReg0f = R126f.x;
|
|
||||||
backupReg1f = R124f.z;
|
|
||||||
backupReg2f = R124f.y;
|
|
||||||
R126f.x = (mul_nonIEEE(R9f.x,R125f.x) + backupReg0f);
|
|
||||||
R124f.y = intBitsToFloat(((PV0f.y >= 0.0)?(floatBitsToInt(1.0)):(0)));
|
|
||||||
PV1f.y = R124f.y;
|
|
||||||
R124f.z = (mul_nonIEEE(backupReg1f,R3f.y) + R11f.z);
|
|
||||||
R126f.w = (mul_nonIEEE(backupReg2f,R3f.y) + R11f.y);
|
|
||||||
PS1f = -(R11f.z) + R6f.z;
|
|
||||||
// 18
|
|
||||||
R123f.x = (mul_nonIEEE(R124f.x,R3f.y) + R11f.x);
|
|
||||||
PV0f.x = R123f.x;
|
|
||||||
R123f.y = (mul_nonIEEE(R125f.y,R3f.y) + R11f.w);
|
|
||||||
PV0f.y = R123f.y;
|
|
||||||
R125f.z = -(R11f.w) + R6f.w;
|
|
||||||
R125f.w = -(R11f.x) + R6f.x;
|
|
||||||
R125f.y = (mul_nonIEEE(PS1f,PV1f.y) + R11f.z);
|
|
||||||
PS0f = R125f.y;
|
|
||||||
// 19
|
|
||||||
backupReg0f = R126f.x;
|
|
||||||
R126f.x = (mul_nonIEEE(R9f.x,PV0f.x) + R127f.w);
|
|
||||||
R123f.y = (mul_nonIEEE(R9f.x,R124f.z) + R127f.y);
|
|
||||||
PV1f.y = R123f.y;
|
|
||||||
PV1f.z = -(R11f.y) + R6f.y;
|
|
||||||
R127f.w = (mul_nonIEEE(R9f.x,R126f.w) + R126f.z);
|
|
||||||
R126f.w = (mul_nonIEEE(R9f.x,PV0f.y) + backupReg0f);
|
|
||||||
PS1f = R126f.w;
|
|
||||||
// 20
|
|
||||||
R123f.x = (mul_nonIEEE(R125f.z,R124f.y) + R11f.w);
|
|
||||||
PV0f.x = R123f.x;
|
|
||||||
R123f.z = (mul_nonIEEE(PV1f.z,R124f.y) + R11f.y);
|
|
||||||
PV0f.z = R123f.z;
|
|
||||||
R123f.w = (mul_nonIEEE(R125f.w,R124f.y) + R11f.x);
|
|
||||||
PV0f.w = R123f.w;
|
|
||||||
R11f.z = (mul_nonIEEE(R9f.x,R125f.y) + PV1f.y);
|
|
||||||
PS0f = R11f.z;
|
|
||||||
// 21
|
|
||||||
R11f.x = (mul_nonIEEE(R9f.x,PV0f.w) + R126f.x);
|
|
||||||
R11f.y = (mul_nonIEEE(R9f.x,PV0f.z) + R127f.w);
|
|
||||||
R11f.w = (mul_nonIEEE(R9f.x,PV0f.x) + R126f.w);
|
|
||||||
// export
|
|
||||||
passPixelColor0 = vec4(R11f.x, R11f.y, R11f.z, R11f.w);
|
|
||||||
}
|
|
@ -1,4 +0,0 @@
|
|||||||
[Definition]
|
|
||||||
titleIds = 00050000101DD600,000500001011AF00,0005000010136300,000500021011AF01
|
|
||||||
name = "Runner2 - Disable Blur (use w/o resolution packs)"
|
|
||||||
version = 2
|
|
@ -1,4 +0,0 @@
|
|||||||
[Definition]
|
|
||||||
titleIds = 0005000010176900,0005000010176A00,0005000010162B00
|
|
||||||
name = "Splatoon - Adjustable Bloom"
|
|
||||||
version = 2
|
|
@ -1,4 +0,0 @@
|
|||||||
[Definition]
|
|
||||||
titleIds = 0005000010176900,0005000010176A00,0005000010162B00
|
|
||||||
name = "Splatoon - Splat FX"
|
|
||||||
version = 2
|
|
@ -1,30 +0,0 @@
|
|||||||
[Definition]
|
|
||||||
titleIds = 0005000010176900,0005000010176A00,0005000010162B00
|
|
||||||
name = "Splatoon - LOD Bias"
|
|
||||||
version = 2
|
|
||||||
|
|
||||||
#general
|
|
||||||
|
|
||||||
[TextureRedefine]
|
|
||||||
formats = 0x31,0x32,0x34,0x35,0x431,0x432,0x433,0x234,0x235
|
|
||||||
overwriteRelativeLodBias = -3
|
|
||||||
|
|
||||||
#ink splats - disabled by default, mainly for online sake
|
|
||||||
|
|
||||||
#[TextureRedefine]
|
|
||||||
#width = 32
|
|
||||||
#height = 32
|
|
||||||
#formats = 0x33
|
|
||||||
#overwriteLodBias = -16
|
|
||||||
|
|
||||||
#[TextureRedefine]
|
|
||||||
#width = 32
|
|
||||||
#height = 64
|
|
||||||
#formats = 0x33
|
|
||||||
#overwriteLodBias = -16
|
|
||||||
|
|
||||||
#[TextureRedefine]
|
|
||||||
#width = 128
|
|
||||||
#height = 128
|
|
||||||
#formats = 0x33
|
|
||||||
#overwriteLodBias = -16
|
|
@ -1,187 +0,0 @@
|
|||||||
#version 420
|
|
||||||
#extension GL_ARB_texture_gather : enable
|
|
||||||
// shader be99d80628d31127
|
|
||||||
uniform ivec4 uf_remappedPS[4];
|
|
||||||
layout(binding = 0) uniform sampler2D textureUnitPS0;// Tex0 addr 0xf5800800 res 1280x720x1 dim 1 tm: 4 format 0019 compSel: 0 1 2 3 mipView: 0x0 (num 0x1) sliceView: 0x0 (num 0x1) Sampler0 ClampX/Y/Z: 2 2 2 border: 1
|
|
||||||
layout(binding = 1) uniform sampler2D textureUnitPS1;// Tex1 addr 0xf4341000 res 1280x720x1 dim 1 tm: 4 format 0001 compSel: 0 4 4 5 mipView: 0x0 (num 0x1) sliceView: 0x0 (num 0x1) Sampler1 ClampX/Y/Z: 2 2 2 border: 1
|
|
||||||
layout(location = 0) in vec4 passParameterSem2;
|
|
||||||
layout(location = 0) out vec4 passPixelColor0;
|
|
||||||
uniform vec2 uf_fragCoordScale;
|
|
||||||
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);
|
|
||||||
vec4 R3f = vec4(0.0);
|
|
||||||
vec4 R4f = vec4(0.0);
|
|
||||||
vec4 R5f = vec4(0.0);
|
|
||||||
vec4 R123f = vec4(0.0);
|
|
||||||
vec4 R126f = vec4(0.0);
|
|
||||||
vec4 R127f = vec4(0.0);
|
|
||||||
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;
|
|
||||||
bool activeMaskStack[2];
|
|
||||||
bool activeMaskStackC[3];
|
|
||||||
activeMaskStack[0] = false;
|
|
||||||
activeMaskStackC[0] = false;
|
|
||||||
activeMaskStackC[1] = false;
|
|
||||||
activeMaskStack[0] = true;
|
|
||||||
activeMaskStackC[0] = true;
|
|
||||||
activeMaskStackC[1] = true;
|
|
||||||
vec3 cubeMapSTM;
|
|
||||||
int cubeMapFaceId;
|
|
||||||
R0f = passParameterSem2;
|
|
||||||
if( activeMaskStackC[1] == true ) {
|
|
||||||
R4f.xyzw = (texture(textureUnitPS0, R0f.xy).xyzw);
|
|
||||||
//R2f.xyzw = (textureGather(textureUnitPS1, R0f.xy).wzxy);
|
|
||||||
}
|
|
||||||
if( activeMaskStackC[1] == true ) {
|
|
||||||
activeMaskStack[1] = activeMaskStack[0];
|
|
||||||
activeMaskStackC[2] = activeMaskStackC[1];
|
|
||||||
// 0
|
|
||||||
PV0f.x = min(R2f.z, R2f.x);
|
|
||||||
PV0f.y = max(R2f.z, R2f.x);
|
|
||||||
PV0f.z = R4f.x * intBitsToFloat(uf_remappedPS[0].x);
|
|
||||||
PV0f.w = min(R2f.w, R2f.y);
|
|
||||||
PS0f = max(R2f.w, R2f.y);
|
|
||||||
// 1
|
|
||||||
PV1f.x = min(PV0f.x, PV0f.w);
|
|
||||||
R123f.y = (R4f.y * intBitsToFloat(uf_remappedPS[0].y) + PV0f.z);
|
|
||||||
PV1f.y = R123f.y;
|
|
||||||
R127f.z = R2f.z + -(R2f.y);
|
|
||||||
PV1f.z = R127f.z;
|
|
||||||
PV1f.w = max(PV0f.y, PS0f);
|
|
||||||
R126f.z = R2f.w + -(R2f.x);
|
|
||||||
PS1f = R126f.z;
|
|
||||||
// 2
|
|
||||||
PV0f.x = PV1f.w * intBitsToFloat(uf_remappedPS[1].x);
|
|
||||||
PV0f.y = max(PV1f.y, PV1f.w);
|
|
||||||
PV0f.z = min(PV1f.y, PV1f.x);
|
|
||||||
R3f.x = PV1f.z + PS1f;
|
|
||||||
PS0f = R3f.x;
|
|
||||||
// 3
|
|
||||||
R1f.x = max(PV0f.x, intBitsToFloat(uf_remappedPS[1].y));
|
|
||||||
R3f.y = -(PV0f.z) + PV0f.y;
|
|
||||||
R1f.y = R127f.z + -(R126f.z);
|
|
||||||
PS1f = R1f.y;
|
|
||||||
// 4
|
|
||||||
predResult = (R3f.y > R1f.x);
|
|
||||||
activeMaskStack[1] = predResult;
|
|
||||||
activeMaskStackC[2] = predResult == true && activeMaskStackC[1] == true;
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
activeMaskStack[1] = false;
|
|
||||||
activeMaskStackC[2] = false;
|
|
||||||
}
|
|
||||||
if( activeMaskStackC[2] == true ) {
|
|
||||||
// 0
|
|
||||||
backupReg0f = R2f.y;
|
|
||||||
R1f.x = max(R3f.x, -(R3f.x));
|
|
||||||
PV0f.x = R1f.x;
|
|
||||||
R2f.y = backupReg0f + R2f.x;
|
|
||||||
PV0f.y = R2f.y;
|
|
||||||
R0f.z = intBitsToFloat(uf_remappedPS[2].z) * 0.25;
|
|
||||||
R0f.w = max(R1f.y, -(R1f.y));
|
|
||||||
PV0f.w = R0f.w;
|
|
||||||
R2f.x = -(intBitsToFloat(uf_remappedPS[3].x));
|
|
||||||
PS0f = R2f.x;
|
|
||||||
// 1
|
|
||||||
R3f.y = R2f.z + PV0f.y;
|
|
||||||
PV1f.y = R3f.y;
|
|
||||||
R2f.y = min(PV0f.x, PV0f.w);
|
|
||||||
PS1f = R2f.y;
|
|
||||||
// 2
|
|
||||||
R3f.y = R2f.w + PV1f.y;
|
|
||||||
PV0f.y = R3f.y;
|
|
||||||
R1f.z = intBitsToFloat(uf_remappedPS[3].x);
|
|
||||||
R0f.w = intBitsToFloat(uf_remappedPS[3].y);
|
|
||||||
R5f.y = -(intBitsToFloat(uf_remappedPS[3].y));
|
|
||||||
PS0f = R5f.y;
|
|
||||||
// 3
|
|
||||||
backupReg0f = R0f.z;
|
|
||||||
R0f.z = (backupReg0f * PV0f.y + intBitsToFloat(uf_remappedPS[2].w));
|
|
||||||
PV1f.z = R0f.z;
|
|
||||||
// 4
|
|
||||||
backupReg0f = R2f.y;
|
|
||||||
R2f.y = max(PV1f.z, backupReg0f);
|
|
||||||
PV0f.y = R2f.y;
|
|
||||||
// 5
|
|
||||||
R2f.y = 1.0 / PV0f.y;
|
|
||||||
PS1f = R2f.y;
|
|
||||||
// 6
|
|
||||||
backupReg0f = R1f.y;
|
|
||||||
R1f.x = R3f.x * PS1f;
|
|
||||||
PV0f.x = R1f.x;
|
|
||||||
R1f.y = backupReg0f * PS1f;
|
|
||||||
PV0f.y = R1f.y;
|
|
||||||
// 7
|
|
||||||
R1f.x = max(PV0f.x, -(intBitsToFloat(uf_remappedPS[2].y)));
|
|
||||||
PV1f.x = R1f.x;
|
|
||||||
R1f.y = max(PV0f.y, -(intBitsToFloat(uf_remappedPS[2].y)));
|
|
||||||
PV1f.y = R1f.y;
|
|
||||||
// 8
|
|
||||||
R1f.x = min(PV1f.x, intBitsToFloat(uf_remappedPS[2].y));
|
|
||||||
PV0f.x = R1f.x;
|
|
||||||
R1f.y = min(PV1f.y, intBitsToFloat(uf_remappedPS[2].y));
|
|
||||||
PV0f.y = R1f.y;
|
|
||||||
// 9
|
|
||||||
backupReg0f = R0f.x;
|
|
||||||
backupReg1f = R0f.y;
|
|
||||||
backupReg0f = R0f.x;
|
|
||||||
backupReg2f = R0f.w;
|
|
||||||
backupReg1f = R0f.y;
|
|
||||||
R0f.x = (PV0f.x * R2f.x + backupReg0f);
|
|
||||||
R0f.y = (PV0f.y * R5f.y + backupReg1f);
|
|
||||||
R0f.z = (PV0f.x * R1f.z + backupReg0f);
|
|
||||||
R0f.w = (PV0f.y * backupReg2f + backupReg1f);
|
|
||||||
}
|
|
||||||
if( activeMaskStackC[2] == true ) {
|
|
||||||
R1f.xyzw = (texture(textureUnitPS0, R0f.zw).xyzw);
|
|
||||||
R0f.xyzw = (texture(textureUnitPS0, R0f.xy).xyzw);
|
|
||||||
}
|
|
||||||
if( activeMaskStackC[2] == true ) {
|
|
||||||
// 0
|
|
||||||
backupReg0f = R0f.y;
|
|
||||||
backupReg1f = R0f.x;
|
|
||||||
PV0f.x = R0f.w + R1f.w;
|
|
||||||
PV0f.x /= 2.0;
|
|
||||||
PV0f.y = R0f.z + R1f.z;
|
|
||||||
PV0f.y /= 2.0;
|
|
||||||
PV0f.z = backupReg0f + R1f.y;
|
|
||||||
PV0f.z /= 2.0;
|
|
||||||
PV0f.w = backupReg1f + R1f.x;
|
|
||||||
PV0f.w /= 2.0;
|
|
||||||
// 1
|
|
||||||
PV1f.x = -(R4f.w) + PV0f.x;
|
|
||||||
PV1f.y = -(R4f.z) + PV0f.y;
|
|
||||||
PV1f.z = -(R4f.y) + PV0f.z;
|
|
||||||
PV1f.w = -(R4f.x) + PV0f.w;
|
|
||||||
// 2
|
|
||||||
backupReg0f = R4f.x;
|
|
||||||
backupReg1f = R4f.y;
|
|
||||||
backupReg2f = R4f.z;
|
|
||||||
backupReg3f = R4f.w;
|
|
||||||
R4f.x = (PV1f.w * intBitsToFloat(0x3f4ccccd) + backupReg0f);
|
|
||||||
R4f.y = (PV1f.z * intBitsToFloat(0x3f4ccccd) + backupReg1f);
|
|
||||||
R4f.z = (PV1f.y * intBitsToFloat(0x3f4ccccd) + backupReg2f);
|
|
||||||
R4f.w = (PV1f.x * intBitsToFloat(0x3f4ccccd) + backupReg3f);
|
|
||||||
}
|
|
||||||
activeMaskStackC[1] = activeMaskStack[0] == true && activeMaskStackC[0] == true;
|
|
||||||
// export
|
|
||||||
passPixelColor0 = vec4(R4f.x, R4f.y, R4f.z, R4f.w);
|
|
||||||
}
|
|
@ -1,4 +0,0 @@
|
|||||||
[Definition]
|
|
||||||
titleIds = 0005000010145d00,0005000010145c00,0005000010106100
|
|
||||||
name = "Super Mario 3D World - No Anti-Aliasing"
|
|
||||||
version = 2
|
|
@ -1,8 +0,0 @@
|
|||||||
[Definition]
|
|
||||||
titleIds = 00050000101ED700,00050000101ED800,0005000010131D00
|
|
||||||
name = "Tokyo Mirage Sessions FE - AA removal" # Does not improve performance, for downsampling / injecting AA only
|
|
||||||
version = 2
|
|
||||||
|
|
||||||
[TextureRedefine] #0x01a, nvidia taa
|
|
||||||
formats = 0x01a
|
|
||||||
overwriteRelativeLodBias = -16 #
|
|
@ -1,4 +0,0 @@
|
|||||||
[Definition]
|
|
||||||
titleIds = 0005000010137F00,0005000010138300,0005000010144800
|
|
||||||
name = "Donkey Kong Country: Tropical Freeze - No Anti-Aliasing"
|
|
||||||
version = 2
|
|
@ -1,41 +0,0 @@
|
|||||||
#version 420
|
|
||||||
#extension GL_ARB_texture_gather : enable
|
|
||||||
// shader c14019840473ff86
|
|
||||||
layout(binding = 0) uniform sampler2D textureUnitPS0;// Tex0 addr 0xf4001000 res 1920x1080x1 dim 1 tm: 4 format 001a compSel: 0 1 2 3 mipView: 0x0 (num 0x1) sliceView: 0x0 (num 0x1) Sampler0 ClampX/Y/Z: 2 2 2 border: 0
|
|
||||||
layout(binding = 1) uniform sampler2D textureUnitPS1;// Tex1 addr 0xf5187000 res 1920x1080x1 dim 1 tm: 4 format 0011 compSel: 0 4 4 5 mipView: 0x0 (num 0x1) sliceView: 0x0 (num 0x1) Sampler1 ClampX/Y/Z: 2 2 2 border: 0
|
|
||||||
layout(location = 0) in vec4 passParameterSem0;
|
|
||||||
layout(location = 0) out vec4 passPixelColor0;
|
|
||||||
uniform vec2 uf_fragCoordScale;
|
|
||||||
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 R123f = vec4(0.0);
|
|
||||||
vec4 R127f = vec4(0.0);
|
|
||||||
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 = passParameterSem0;
|
|
||||||
|
|
||||||
//R1f.xyzw = textureGather(textureUnitPS1, R0f.xy).wzxy;
|
|
||||||
R2f.xyzw = texture(textureUnitPS0, R0f.xy).xyzw;
|
|
||||||
passPixelColor0 = R2f.xyzw;
|
|
||||||
}
|
|
@ -1,4 +0,0 @@
|
|||||||
[Definition]
|
|
||||||
titleIds = 000500001019C800,000500001019E600,000500001019E500,0005000E1019C800
|
|
||||||
name = "The Legend of Zelda: Twilight Princess HD - No Anti-Aliasing"
|
|
||||||
version = 2
|
|
@ -1,335 +0,0 @@
|
|||||||
#version 420
|
|
||||||
#extension GL_ARB_texture_gather : enable
|
|
||||||
const float bloomFactor = 0.4;
|
|
||||||
// shader 95a5a89d62998e0d
|
|
||||||
uniform ivec4 uf_remappedPS[3];
|
|
||||||
layout(binding = 0) uniform sampler2D textureUnitPS0;// Tex0 addr 0xf59ff000 res 480x270x1 dim 1 tm: 4 format 001a compSel: 0 1 2 3 mipView: 0x0 (num 0x1) sliceView: 0x0 (num 0x1) Sampler0 ClampX/Y/Z: 2 2 2 border: 0
|
|
||||||
layout(location = 0) out vec4 passPixelColor0;
|
|
||||||
uniform vec2 uf_fragCoordScale;
|
|
||||||
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 R5f = vec4(0.0);
|
|
||||||
vec4 R6f = vec4(0.0);
|
|
||||||
vec4 R7f = vec4(0.0);
|
|
||||||
vec4 R123f = vec4(0.0);
|
|
||||||
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 = vec4(gl_FragCoord.xy*uf_fragCoordScale,gl_FragCoord.zw);
|
|
||||||
// 0
|
|
||||||
R7f.x = R0f.x * intBitsToFloat(0x3b088889);
|
|
||||||
PV0f.x = R7f.x;
|
|
||||||
R7f.y = R0f.y * intBitsToFloat(0x3b72b9d6);
|
|
||||||
PV0f.y = R7f.y;
|
|
||||||
// 1
|
|
||||||
R0f.x = PV0f.x;
|
|
||||||
R0f.y = PV0f.y + intBitsToFloat(0x3b72b9d6);
|
|
||||||
R1f.z = PV0f.x;
|
|
||||||
R1f.y = PV0f.y + intBitsToFloat(0xbb72b9d6);
|
|
||||||
PS1f = R1f.y;
|
|
||||||
// 2
|
|
||||||
R2f.x = R7f.x;
|
|
||||||
R2f.y = R7f.y + intBitsToFloat(0x3bf2b9d6);
|
|
||||||
R4f.z = R7f.x;
|
|
||||||
R4f.y = R7f.y + intBitsToFloat(0xbbf2b9d6);
|
|
||||||
PS0f = R4f.y;
|
|
||||||
R3f.xyzw = (textureLod(textureUnitPS0, R7f.xy,0.0).xyzw);
|
|
||||||
R0f.xyzw = (textureLod(textureUnitPS0, R0f.xy,0.0).xyzw);
|
|
||||||
R1f.xyzw = (textureLod(textureUnitPS0, R1f.zy,0.0).xyzw);
|
|
||||||
R2f.xyzw = (textureLod(textureUnitPS0, R2f.xy,0.0).xyzw);
|
|
||||||
// 0
|
|
||||||
backupReg0f = R0f.x;
|
|
||||||
backupReg1f = R0f.w;
|
|
||||||
PV0f.x = mul_nonIEEE(intBitsToFloat(uf_remappedPS[0].y), R0f.y);
|
|
||||||
PV0f.y = mul_nonIEEE(intBitsToFloat(uf_remappedPS[0].y), R0f.z);
|
|
||||||
PV0f.z = mul_nonIEEE(intBitsToFloat(uf_remappedPS[0].y), backupReg0f);
|
|
||||||
PV0f.w = mul_nonIEEE(intBitsToFloat(uf_remappedPS[0].y), backupReg1f);
|
|
||||||
R0f.y = R7f.y + intBitsToFloat(0x3c360b60);
|
|
||||||
PS0f = R0f.y;
|
|
||||||
// 1
|
|
||||||
R123f.x = (R3f.y * intBitsToFloat(uf_remappedPS[0].x) + PV0f.x);
|
|
||||||
PV1f.x = R123f.x;
|
|
||||||
R123f.y = (R3f.w * intBitsToFloat(uf_remappedPS[0].x) + PV0f.w);
|
|
||||||
PV1f.y = R123f.y;
|
|
||||||
R123f.z = (R3f.x * intBitsToFloat(uf_remappedPS[0].x) + PV0f.z);
|
|
||||||
PV1f.z = R123f.z;
|
|
||||||
R123f.w = (R3f.z * intBitsToFloat(uf_remappedPS[0].x) + PV0f.y);
|
|
||||||
PV1f.w = R123f.w;
|
|
||||||
R0f.x = R7f.x;
|
|
||||||
PS1f = R0f.x;
|
|
||||||
// 2
|
|
||||||
R123f.x = (intBitsToFloat(uf_remappedPS[0].y) * R1f.y + PV1f.x);
|
|
||||||
PV0f.x = R123f.x;
|
|
||||||
R123f.y = (intBitsToFloat(uf_remappedPS[0].y) * R1f.x + PV1f.z);
|
|
||||||
PV0f.y = R123f.y;
|
|
||||||
R123f.z = (intBitsToFloat(uf_remappedPS[0].y) * R1f.w + PV1f.y);
|
|
||||||
PV0f.z = R123f.z;
|
|
||||||
R123f.w = (intBitsToFloat(uf_remappedPS[0].y) * R1f.z + PV1f.w);
|
|
||||||
PV0f.w = R123f.w;
|
|
||||||
R1f.y = R7f.y + intBitsToFloat(0xbc360b60);
|
|
||||||
PS0f = R1f.y;
|
|
||||||
// 3
|
|
||||||
backupReg0f = R2f.z;
|
|
||||||
R3f.x = (intBitsToFloat(uf_remappedPS[0].z) * R2f.x + PV0f.y);
|
|
||||||
R3f.y = (intBitsToFloat(uf_remappedPS[0].z) * R2f.y + PV0f.x);
|
|
||||||
R2f.z = (intBitsToFloat(uf_remappedPS[0].z) * R2f.w + PV0f.z);
|
|
||||||
R2f.w = (intBitsToFloat(uf_remappedPS[0].z) * backupReg0f + PV0f.w);
|
|
||||||
R1f.x = R7f.x;
|
|
||||||
PS1f = R1f.x;
|
|
||||||
// 4
|
|
||||||
R2f.x = R7f.x;
|
|
||||||
R2f.y = R7f.y + intBitsToFloat(0x3c72b9d6);
|
|
||||||
R6f.z = R7f.x;
|
|
||||||
R6f.y = R7f.y + intBitsToFloat(0xbc72b9d6);
|
|
||||||
PS0f = R6f.y;
|
|
||||||
R4f.xyzw = (textureLod(textureUnitPS0, R4f.zy,0.0).xyzw);
|
|
||||||
R0f.xyzw = (textureLod(textureUnitPS0, R0f.xy,0.0).xyzw);
|
|
||||||
R1f.xyzw = (textureLod(textureUnitPS0, R1f.xy,0.0).xyzw);
|
|
||||||
R5f.xyzw = (textureLod(textureUnitPS0, R2f.xy,0.0).xyzw);
|
|
||||||
// 0
|
|
||||||
R123f.x = (intBitsToFloat(uf_remappedPS[0].z) * R4f.x + R3f.x);
|
|
||||||
PV0f.x = R123f.x;
|
|
||||||
R123f.y = (intBitsToFloat(uf_remappedPS[0].z) * R4f.w + R2f.z);
|
|
||||||
PV0f.y = R123f.y;
|
|
||||||
R123f.z = (intBitsToFloat(uf_remappedPS[0].z) * R4f.z + R2f.w);
|
|
||||||
PV0f.z = R123f.z;
|
|
||||||
R123f.w = (intBitsToFloat(uf_remappedPS[0].z) * R4f.y + R3f.y);
|
|
||||||
PV0f.w = R123f.w;
|
|
||||||
R3f.y = R7f.y + intBitsToFloat(0x3c97b426);
|
|
||||||
PS0f = R3f.y;
|
|
||||||
// 1
|
|
||||||
R123f.x = (intBitsToFloat(uf_remappedPS[0].w) * R0f.w + PV0f.y);
|
|
||||||
PV1f.x = R123f.x;
|
|
||||||
R123f.y = (intBitsToFloat(uf_remappedPS[0].w) * R0f.x + PV0f.x);
|
|
||||||
PV1f.y = R123f.y;
|
|
||||||
R123f.z = (intBitsToFloat(uf_remappedPS[0].w) * R0f.z + PV0f.z);
|
|
||||||
PV1f.z = R123f.z;
|
|
||||||
R123f.w = (intBitsToFloat(uf_remappedPS[0].w) * R0f.y + PV0f.w);
|
|
||||||
PV1f.w = R123f.w;
|
|
||||||
R3f.x = R7f.x;
|
|
||||||
PS1f = R3f.x;
|
|
||||||
// 2
|
|
||||||
R123f.x = (intBitsToFloat(uf_remappedPS[0].w) * R1f.w + PV1f.x);
|
|
||||||
PV0f.x = R123f.x;
|
|
||||||
R123f.y = (intBitsToFloat(uf_remappedPS[0].w) * R1f.z + PV1f.z);
|
|
||||||
PV0f.y = R123f.y;
|
|
||||||
R123f.z = (intBitsToFloat(uf_remappedPS[0].w) * R1f.y + PV1f.w);
|
|
||||||
PV0f.z = R123f.z;
|
|
||||||
R123f.w = (intBitsToFloat(uf_remappedPS[0].w) * R1f.x + PV1f.y);
|
|
||||||
PV0f.w = R123f.w;
|
|
||||||
R1f.y = R7f.y + intBitsToFloat(0xbc97b426);
|
|
||||||
PS0f = R1f.y;
|
|
||||||
// 3
|
|
||||||
R0f.x = (R5f.z * intBitsToFloat(uf_remappedPS[1].x) + PV0f.y);
|
|
||||||
R0f.y = (R5f.w * intBitsToFloat(uf_remappedPS[1].x) + PV0f.x);
|
|
||||||
R5f.z = (R5f.y * intBitsToFloat(uf_remappedPS[1].x) + PV0f.z);
|
|
||||||
R5f.w = (R5f.x * intBitsToFloat(uf_remappedPS[1].x) + PV0f.w);
|
|
||||||
R1f.x = R7f.x;
|
|
||||||
PS1f = R1f.x;
|
|
||||||
// 4
|
|
||||||
R5f.x = R7f.x;
|
|
||||||
R5f.y = R7f.y + intBitsToFloat(0x3cb60b60);
|
|
||||||
R4f.z = R7f.x;
|
|
||||||
R4f.y = R7f.y + intBitsToFloat(0xbcb60b60);
|
|
||||||
PS0f = R4f.y;
|
|
||||||
R6f.xyzw = (textureLod(textureUnitPS0, R6f.zy,0.0).xyzw);
|
|
||||||
R3f.xyzw = (textureLod(textureUnitPS0, R3f.xy,0.0).xyzw);
|
|
||||||
R1f.xyzw = (textureLod(textureUnitPS0, R1f.xy,0.0).xyzw);
|
|
||||||
R2f.xyzw = (textureLod(textureUnitPS0, R5f.xy,0.0).xyzw);
|
|
||||||
// 0
|
|
||||||
R123f.x = (intBitsToFloat(uf_remappedPS[1].x) * R6f.z + R0f.x);
|
|
||||||
PV0f.x = R123f.x;
|
|
||||||
R123f.y = (intBitsToFloat(uf_remappedPS[1].x) * R6f.y + R5f.z);
|
|
||||||
PV0f.y = R123f.y;
|
|
||||||
R123f.z = (intBitsToFloat(uf_remappedPS[1].x) * R6f.x + R5f.w);
|
|
||||||
PV0f.z = R123f.z;
|
|
||||||
R123f.w = (intBitsToFloat(uf_remappedPS[1].x) * R6f.w + R0f.y);
|
|
||||||
PV0f.w = R123f.w;
|
|
||||||
R0f.y = R7f.y + intBitsToFloat(0x3cd4629b);
|
|
||||||
PS0f = R0f.y;
|
|
||||||
// 1
|
|
||||||
R123f.x = (intBitsToFloat(uf_remappedPS[1].y) * R3f.y + PV0f.y);
|
|
||||||
PV1f.x = R123f.x;
|
|
||||||
R123f.y = (intBitsToFloat(uf_remappedPS[1].y) * R3f.w + PV0f.w);
|
|
||||||
PV1f.y = R123f.y;
|
|
||||||
R123f.z = (intBitsToFloat(uf_remappedPS[1].y) * R3f.x + PV0f.z);
|
|
||||||
PV1f.z = R123f.z;
|
|
||||||
R123f.w = (intBitsToFloat(uf_remappedPS[1].y) * R3f.z + PV0f.x);
|
|
||||||
PV1f.w = R123f.w;
|
|
||||||
R0f.x = R7f.x;
|
|
||||||
PS1f = R0f.x;
|
|
||||||
// 2
|
|
||||||
R123f.x = (intBitsToFloat(uf_remappedPS[1].y) * R1f.y + PV1f.x);
|
|
||||||
PV0f.x = R123f.x;
|
|
||||||
R123f.y = (intBitsToFloat(uf_remappedPS[1].y) * R1f.x + PV1f.z);
|
|
||||||
PV0f.y = R123f.y;
|
|
||||||
R123f.z = (intBitsToFloat(uf_remappedPS[1].y) * R1f.w + PV1f.y);
|
|
||||||
PV0f.z = R123f.z;
|
|
||||||
R123f.w = (intBitsToFloat(uf_remappedPS[1].y) * R1f.z + PV1f.w);
|
|
||||||
PV0f.w = R123f.w;
|
|
||||||
R1f.y = R7f.y + intBitsToFloat(0xbcd4629b);
|
|
||||||
PS0f = R1f.y;
|
|
||||||
// 3
|
|
||||||
backupReg0f = R2f.z;
|
|
||||||
R3f.x = (intBitsToFloat(uf_remappedPS[1].z) * R2f.x + PV0f.y);
|
|
||||||
R3f.y = (intBitsToFloat(uf_remappedPS[1].z) * R2f.y + PV0f.x);
|
|
||||||
R2f.z = (intBitsToFloat(uf_remappedPS[1].z) * R2f.w + PV0f.z);
|
|
||||||
R2f.w = (intBitsToFloat(uf_remappedPS[1].z) * backupReg0f + PV0f.w);
|
|
||||||
R1f.x = R7f.x;
|
|
||||||
PS1f = R1f.x;
|
|
||||||
// 4
|
|
||||||
R2f.x = R7f.x;
|
|
||||||
R2f.y = R7f.y + intBitsToFloat(0x3cf2b9d6);
|
|
||||||
R6f.z = R7f.x;
|
|
||||||
R6f.y = R7f.y + intBitsToFloat(0xbcf2b9d6);
|
|
||||||
PS0f = R6f.y;
|
|
||||||
R4f.xyzw = (textureLod(textureUnitPS0, R4f.zy,0.0).xyzw);
|
|
||||||
R0f.xyzw = (textureLod(textureUnitPS0, R0f.xy,0.0).xyzw);
|
|
||||||
R1f.xyzw = (textureLod(textureUnitPS0, R1f.xy,0.0).xyzw);
|
|
||||||
R5f.xyzw = (textureLod(textureUnitPS0, R2f.xy,0.0).xyzw);
|
|
||||||
// 0
|
|
||||||
R123f.x = (intBitsToFloat(uf_remappedPS[1].z) * R4f.x + R3f.x);
|
|
||||||
PV0f.x = R123f.x;
|
|
||||||
R123f.y = (intBitsToFloat(uf_remappedPS[1].z) * R4f.w + R2f.z);
|
|
||||||
PV0f.y = R123f.y;
|
|
||||||
R123f.z = (intBitsToFloat(uf_remappedPS[1].z) * R4f.z + R2f.w);
|
|
||||||
PV0f.z = R123f.z;
|
|
||||||
R123f.w = (intBitsToFloat(uf_remappedPS[1].z) * R4f.y + R3f.y);
|
|
||||||
PV0f.w = R123f.w;
|
|
||||||
R3f.y = R7f.y + intBitsToFloat(0x3d088888);
|
|
||||||
PS0f = R3f.y;
|
|
||||||
// 1
|
|
||||||
R123f.x = (intBitsToFloat(uf_remappedPS[1].w) * R0f.w + PV0f.y);
|
|
||||||
PV1f.x = R123f.x;
|
|
||||||
R123f.y = (intBitsToFloat(uf_remappedPS[1].w) * R0f.x + PV0f.x);
|
|
||||||
PV1f.y = R123f.y;
|
|
||||||
R123f.z = (intBitsToFloat(uf_remappedPS[1].w) * R0f.z + PV0f.z);
|
|
||||||
PV1f.z = R123f.z;
|
|
||||||
R123f.w = (intBitsToFloat(uf_remappedPS[1].w) * R0f.y + PV0f.w);
|
|
||||||
PV1f.w = R123f.w;
|
|
||||||
R3f.x = R7f.x;
|
|
||||||
PS1f = R3f.x;
|
|
||||||
// 2
|
|
||||||
R123f.x = (intBitsToFloat(uf_remappedPS[1].w) * R1f.w + PV1f.x);
|
|
||||||
PV0f.x = R123f.x;
|
|
||||||
R123f.y = (intBitsToFloat(uf_remappedPS[1].w) * R1f.z + PV1f.z);
|
|
||||||
PV0f.y = R123f.y;
|
|
||||||
R123f.z = (intBitsToFloat(uf_remappedPS[1].w) * R1f.y + PV1f.w);
|
|
||||||
PV0f.z = R123f.z;
|
|
||||||
R123f.w = (intBitsToFloat(uf_remappedPS[1].w) * R1f.x + PV1f.y);
|
|
||||||
PV0f.w = R123f.w;
|
|
||||||
R1f.y = R7f.y + intBitsToFloat(0xbd088888);
|
|
||||||
PS0f = R1f.y;
|
|
||||||
// 3
|
|
||||||
R0f.x = (R5f.z * intBitsToFloat(uf_remappedPS[2].x) + PV0f.y);
|
|
||||||
R0f.y = (R5f.w * intBitsToFloat(uf_remappedPS[2].x) + PV0f.x);
|
|
||||||
R5f.z = (R5f.y * intBitsToFloat(uf_remappedPS[2].x) + PV0f.z);
|
|
||||||
R5f.w = (R5f.x * intBitsToFloat(uf_remappedPS[2].x) + PV0f.w);
|
|
||||||
R1f.x = R7f.x;
|
|
||||||
PS1f = R1f.x;
|
|
||||||
// 4
|
|
||||||
R5f.x = R7f.x;
|
|
||||||
R5f.y = R7f.y + intBitsToFloat(0x3d17b426);
|
|
||||||
R4f.z = R7f.x;
|
|
||||||
R4f.y = R7f.y + intBitsToFloat(0xbd17b426);
|
|
||||||
PS0f = R4f.y;
|
|
||||||
R6f.xyzw = (textureLod(textureUnitPS0, R6f.zy,0.0).xyzw);
|
|
||||||
R3f.xyzw = (textureLod(textureUnitPS0, R3f.xy,0.0).xyzw);
|
|
||||||
R1f.xyzw = (textureLod(textureUnitPS0, R1f.xy,0.0).xyzw);
|
|
||||||
R2f.xyzw = (textureLod(textureUnitPS0, R5f.xy,0.0).xyzw);
|
|
||||||
// 0
|
|
||||||
R123f.x = (intBitsToFloat(uf_remappedPS[2].x) * R6f.z + R0f.x);
|
|
||||||
PV0f.x = R123f.x;
|
|
||||||
R123f.y = (intBitsToFloat(uf_remappedPS[2].x) * R6f.y + R5f.z);
|
|
||||||
PV0f.y = R123f.y;
|
|
||||||
R123f.z = (intBitsToFloat(uf_remappedPS[2].x) * R6f.x + R5f.w);
|
|
||||||
PV0f.z = R123f.z;
|
|
||||||
R123f.w = (intBitsToFloat(uf_remappedPS[2].x) * R6f.w + R0f.y);
|
|
||||||
PV0f.w = R123f.w;
|
|
||||||
R0f.y = R7f.y + intBitsToFloat(0x3d26dfc3);
|
|
||||||
PS0f = R0f.y;
|
|
||||||
// 1
|
|
||||||
R123f.x = (intBitsToFloat(uf_remappedPS[2].y) * R3f.y + PV0f.y);
|
|
||||||
PV1f.x = R123f.x;
|
|
||||||
R123f.y = (intBitsToFloat(uf_remappedPS[2].y) * R3f.w + PV0f.w);
|
|
||||||
PV1f.y = R123f.y;
|
|
||||||
R123f.z = (intBitsToFloat(uf_remappedPS[2].y) * R3f.x + PV0f.z);
|
|
||||||
PV1f.z = R123f.z;
|
|
||||||
R123f.w = (intBitsToFloat(uf_remappedPS[2].y) * R3f.z + PV0f.x);
|
|
||||||
PV1f.w = R123f.w;
|
|
||||||
R0f.x = R7f.x;
|
|
||||||
PS1f = R0f.x;
|
|
||||||
// 2
|
|
||||||
backupReg0f = R7f.y;
|
|
||||||
R123f.x = (intBitsToFloat(uf_remappedPS[2].y) * R1f.y + PV1f.x);
|
|
||||||
PV0f.x = R123f.x;
|
|
||||||
R123f.y = (intBitsToFloat(uf_remappedPS[2].y) * R1f.x + PV1f.z);
|
|
||||||
PV0f.y = R123f.y;
|
|
||||||
R123f.z = (intBitsToFloat(uf_remappedPS[2].y) * R1f.w + PV1f.y);
|
|
||||||
PV0f.z = R123f.z;
|
|
||||||
R123f.w = (intBitsToFloat(uf_remappedPS[2].y) * R1f.z + PV1f.w);
|
|
||||||
PV0f.w = R123f.w;
|
|
||||||
R7f.y = backupReg0f + intBitsToFloat(0xbd26dfc3);
|
|
||||||
PS0f = R7f.y;
|
|
||||||
// 3
|
|
||||||
backupReg0f = R2f.x;
|
|
||||||
backupReg1f = R2f.y;
|
|
||||||
backupReg2f = R2f.z;
|
|
||||||
R2f.x = (intBitsToFloat(uf_remappedPS[2].z) * backupReg0f + PV0f.y);
|
|
||||||
R2f.y = (intBitsToFloat(uf_remappedPS[2].z) * backupReg1f + PV0f.x);
|
|
||||||
R2f.z = (intBitsToFloat(uf_remappedPS[2].z) * R2f.w + PV0f.z);
|
|
||||||
R2f.w = (intBitsToFloat(uf_remappedPS[2].z) * backupReg2f + PV0f.w);
|
|
||||||
R4f.xyzw = (textureLod(textureUnitPS0, R4f.zy,0.0).xyzw);
|
|
||||||
R0f.xyzw = (textureLod(textureUnitPS0, R0f.xy,0.0).xyzw);
|
|
||||||
R7f.xyzw = (textureLod(textureUnitPS0, R7f.xy,0.0).xyzw);
|
|
||||||
// 0
|
|
||||||
R123f.x = (intBitsToFloat(uf_remappedPS[2].z) * R4f.x + R2f.x);
|
|
||||||
PV0f.x = R123f.x;
|
|
||||||
R123f.y = (intBitsToFloat(uf_remappedPS[2].z) * R4f.w + R2f.z);
|
|
||||||
PV0f.y = R123f.y;
|
|
||||||
R123f.z = (intBitsToFloat(uf_remappedPS[2].z) * R4f.z + R2f.w);
|
|
||||||
PV0f.z = R123f.z;
|
|
||||||
R123f.w = (intBitsToFloat(uf_remappedPS[2].z) * R4f.y + R2f.y);
|
|
||||||
PV0f.w = R123f.w;
|
|
||||||
// 1
|
|
||||||
R123f.x = (intBitsToFloat(uf_remappedPS[2].w) * R0f.w + PV0f.y);
|
|
||||||
PV1f.x = R123f.x;
|
|
||||||
R123f.y = (intBitsToFloat(uf_remappedPS[2].w) * R0f.x + PV0f.x);
|
|
||||||
PV1f.y = R123f.y;
|
|
||||||
R123f.z = (intBitsToFloat(uf_remappedPS[2].w) * R0f.z + PV0f.z);
|
|
||||||
PV1f.z = R123f.z;
|
|
||||||
R123f.w = (intBitsToFloat(uf_remappedPS[2].w) * R0f.y + PV0f.w);
|
|
||||||
PV1f.w = R123f.w;
|
|
||||||
// 2
|
|
||||||
backupReg0f = R7f.x;
|
|
||||||
backupReg1f = R7f.y;
|
|
||||||
backupReg2f = R7f.z;
|
|
||||||
backupReg3f = R7f.w;
|
|
||||||
R7f.x = (intBitsToFloat(uf_remappedPS[2].w) * backupReg0f + PV1f.y * bloomFactor);
|
|
||||||
R7f.y = (intBitsToFloat(uf_remappedPS[2].w) * backupReg1f + PV1f.w * bloomFactor);
|
|
||||||
R7f.z = (intBitsToFloat(uf_remappedPS[2].w) * backupReg2f + PV1f.z * bloomFactor);
|
|
||||||
R7f.w = (intBitsToFloat(uf_remappedPS[2].w) * backupReg3f + PV1f.x * bloomFactor);
|
|
||||||
// export
|
|
||||||
passPixelColor0 = vec4(R7f.x, R7f.y, R7f.z, R7f.w);
|
|
||||||
}
|
|
@ -1,538 +0,0 @@
|
|||||||
#version 420
|
|
||||||
#extension GL_ARB_texture_gather : enable
|
|
||||||
const float bloomFactor = 0.4;
|
|
||||||
// shader c612390d4c70f430
|
|
||||||
uniform ivec4 uf_remappedPS[5];
|
|
||||||
layout(binding = 0) uniform sampler2D textureUnitPS0;// Tex0 addr 0xf597f000 res 480x270x1 dim 1 tm: 4 format 001a compSel: 0 1 2 3 mipView: 0x0 (num 0x1) sliceView: 0x0 (num 0x1) Sampler0 ClampX/Y/Z: 2 2 2 border: 0
|
|
||||||
layout(location = 0) out vec4 passPixelColor0;
|
|
||||||
uniform vec2 uf_fragCoordScale;
|
|
||||||
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 R5f = vec4(0.0);
|
|
||||||
vec4 R6f = vec4(0.0);
|
|
||||||
vec4 R7f = vec4(0.0);
|
|
||||||
vec4 R123f = vec4(0.0);
|
|
||||||
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 = vec4(gl_FragCoord.xy*uf_fragCoordScale,gl_FragCoord.zw);
|
|
||||||
// 0
|
|
||||||
R7f.x = R0f.x * intBitsToFloat(0x3b088889);
|
|
||||||
PV0f.x = R7f.x;
|
|
||||||
R7f.y = R0f.y * intBitsToFloat(0x3b72b9d6);
|
|
||||||
PV0f.y = R7f.y;
|
|
||||||
// 1
|
|
||||||
R0f.x = PV0f.x + intBitsToFloat(0x3b088889);
|
|
||||||
R0f.y = PV0f.y;
|
|
||||||
R1f.z = PV0f.y;
|
|
||||||
R1f.x = PV0f.x + intBitsToFloat(0xbb088889);
|
|
||||||
PS1f = R1f.x;
|
|
||||||
// 2
|
|
||||||
R2f.x = R7f.x + intBitsToFloat(0x3b888889);
|
|
||||||
R2f.y = R7f.y;
|
|
||||||
R4f.z = R7f.y;
|
|
||||||
R4f.x = R7f.x + intBitsToFloat(0xbb888889);
|
|
||||||
PS0f = R4f.x;
|
|
||||||
R3f.xyzw = (textureLod(textureUnitPS0, R7f.xy,0.0).xyzw);
|
|
||||||
R0f.xyzw = (textureLod(textureUnitPS0, R0f.xy,0.0).xyzw);
|
|
||||||
R1f.xyzw = (textureLod(textureUnitPS0, R1f.xz,0.0).xyzw);
|
|
||||||
R2f.xyzw = (textureLod(textureUnitPS0, R2f.xy,0.0).xyzw);
|
|
||||||
// 0
|
|
||||||
backupReg0f = R0f.y;
|
|
||||||
backupReg1f = R0f.x;
|
|
||||||
backupReg2f = R0f.w;
|
|
||||||
PV0f.x = mul_nonIEEE(intBitsToFloat(uf_remappedPS[0].y), R0f.z);
|
|
||||||
PV0f.y = mul_nonIEEE(intBitsToFloat(uf_remappedPS[0].y), backupReg0f);
|
|
||||||
PV0f.z = mul_nonIEEE(intBitsToFloat(uf_remappedPS[0].y), backupReg1f);
|
|
||||||
PV0f.w = mul_nonIEEE(intBitsToFloat(uf_remappedPS[0].y), backupReg2f);
|
|
||||||
R0f.x = R7f.x + intBitsToFloat(0x3bccccce);
|
|
||||||
PS0f = R0f.x;
|
|
||||||
// 1
|
|
||||||
R123f.x = (R3f.w * intBitsToFloat(uf_remappedPS[0].x) + PV0f.w);
|
|
||||||
PV1f.x = R123f.x;
|
|
||||||
R123f.y = (R3f.y * intBitsToFloat(uf_remappedPS[0].x) + PV0f.y);
|
|
||||||
PV1f.y = R123f.y;
|
|
||||||
R123f.z = (R3f.x * intBitsToFloat(uf_remappedPS[0].x) + PV0f.z);
|
|
||||||
PV1f.z = R123f.z;
|
|
||||||
R123f.w = (R3f.z * intBitsToFloat(uf_remappedPS[0].x) + PV0f.x);
|
|
||||||
PV1f.w = R123f.w;
|
|
||||||
R0f.y = R7f.y;
|
|
||||||
PS1f = R0f.y;
|
|
||||||
// 2
|
|
||||||
R123f.x = (intBitsToFloat(uf_remappedPS[0].y) * R1f.y + PV1f.y);
|
|
||||||
PV0f.x = R123f.x;
|
|
||||||
R123f.y = (intBitsToFloat(uf_remappedPS[0].y) * R1f.x + PV1f.z);
|
|
||||||
PV0f.y = R123f.y;
|
|
||||||
R123f.z = (intBitsToFloat(uf_remappedPS[0].y) * R1f.w + PV1f.x);
|
|
||||||
PV0f.z = R123f.z;
|
|
||||||
R123f.w = (intBitsToFloat(uf_remappedPS[0].y) * R1f.z + PV1f.w);
|
|
||||||
PV0f.w = R123f.w;
|
|
||||||
R1f.x = R7f.x + intBitsToFloat(0xbbccccce);
|
|
||||||
PS0f = R1f.x;
|
|
||||||
// 3
|
|
||||||
backupReg0f = R2f.z;
|
|
||||||
R3f.x = (intBitsToFloat(uf_remappedPS[0].z) * R2f.w + PV0f.z);
|
|
||||||
R3f.y = (intBitsToFloat(uf_remappedPS[0].z) * R2f.x + PV0f.y);
|
|
||||||
R2f.z = (intBitsToFloat(uf_remappedPS[0].z) * backupReg0f + PV0f.w);
|
|
||||||
R2f.w = (intBitsToFloat(uf_remappedPS[0].z) * R2f.y + PV0f.x);
|
|
||||||
R1f.y = R7f.y;
|
|
||||||
PS1f = R1f.y;
|
|
||||||
// 4
|
|
||||||
R2f.x = R7f.x + intBitsToFloat(0x3c088889);
|
|
||||||
R2f.y = R7f.y;
|
|
||||||
R6f.z = R7f.y;
|
|
||||||
R6f.x = R7f.x + intBitsToFloat(0xbc088889);
|
|
||||||
PS0f = R6f.x;
|
|
||||||
R4f.xyzw = (textureLod(textureUnitPS0, R4f.xz,0.0).xyzw);
|
|
||||||
R0f.xyzw = (textureLod(textureUnitPS0, R0f.xy,0.0).xyzw);
|
|
||||||
R1f.xyzw = (textureLod(textureUnitPS0, R1f.xy,0.0).xyzw);
|
|
||||||
R5f.xyzw = (textureLod(textureUnitPS0, R2f.xy,0.0).xyzw);
|
|
||||||
// 0
|
|
||||||
R123f.x = (intBitsToFloat(uf_remappedPS[0].z) * R4f.x + R3f.y);
|
|
||||||
PV0f.x = R123f.x;
|
|
||||||
R123f.y = (intBitsToFloat(uf_remappedPS[0].z) * R4f.w + R3f.x);
|
|
||||||
PV0f.y = R123f.y;
|
|
||||||
R123f.z = (intBitsToFloat(uf_remappedPS[0].z) * R4f.z + R2f.z);
|
|
||||||
PV0f.z = R123f.z;
|
|
||||||
R123f.w = (intBitsToFloat(uf_remappedPS[0].z) * R4f.y + R2f.w);
|
|
||||||
PV0f.w = R123f.w;
|
|
||||||
R3f.x = R7f.x + intBitsToFloat(0x3c2aaaab);
|
|
||||||
PS0f = R3f.x;
|
|
||||||
// 1
|
|
||||||
R123f.x = (intBitsToFloat(uf_remappedPS[0].w) * R0f.x + PV0f.x);
|
|
||||||
PV1f.x = R123f.x;
|
|
||||||
R123f.y = (intBitsToFloat(uf_remappedPS[0].w) * R0f.w + PV0f.y);
|
|
||||||
PV1f.y = R123f.y;
|
|
||||||
R123f.z = (intBitsToFloat(uf_remappedPS[0].w) * R0f.z + PV0f.z);
|
|
||||||
PV1f.z = R123f.z;
|
|
||||||
R123f.w = (intBitsToFloat(uf_remappedPS[0].w) * R0f.y + PV0f.w);
|
|
||||||
PV1f.w = R123f.w;
|
|
||||||
R3f.y = R7f.y;
|
|
||||||
PS1f = R3f.y;
|
|
||||||
// 2
|
|
||||||
R123f.x = (intBitsToFloat(uf_remappedPS[0].w) * R1f.w + PV1f.y);
|
|
||||||
PV0f.x = R123f.x;
|
|
||||||
R123f.y = (intBitsToFloat(uf_remappedPS[0].w) * R1f.z + PV1f.z);
|
|
||||||
PV0f.y = R123f.y;
|
|
||||||
R123f.z = (intBitsToFloat(uf_remappedPS[0].w) * R1f.y + PV1f.w);
|
|
||||||
PV0f.z = R123f.z;
|
|
||||||
R123f.w = (intBitsToFloat(uf_remappedPS[0].w) * R1f.x + PV1f.x);
|
|
||||||
PV0f.w = R123f.w;
|
|
||||||
R1f.x = R7f.x + intBitsToFloat(0xbc2aaaab);
|
|
||||||
PS0f = R1f.x;
|
|
||||||
// 3
|
|
||||||
R0f.x = (R5f.w * intBitsToFloat(uf_remappedPS[1].x) + PV0f.x);
|
|
||||||
R0f.y = (R5f.z * intBitsToFloat(uf_remappedPS[1].x) + PV0f.y);
|
|
||||||
R5f.z = (R5f.y * intBitsToFloat(uf_remappedPS[1].x) + PV0f.z);
|
|
||||||
R5f.w = (R5f.x * intBitsToFloat(uf_remappedPS[1].x) + PV0f.w);
|
|
||||||
R1f.y = R7f.y;
|
|
||||||
PS1f = R1f.y;
|
|
||||||
// 4
|
|
||||||
R5f.x = R7f.x + intBitsToFloat(0x3c4cccce);
|
|
||||||
R5f.y = R7f.y;
|
|
||||||
R4f.z = R7f.y;
|
|
||||||
R4f.x = R7f.x + intBitsToFloat(0xbc4cccce);
|
|
||||||
PS0f = R4f.x;
|
|
||||||
R6f.xyzw = (textureLod(textureUnitPS0, R6f.xz,0.0).xyzw);
|
|
||||||
R3f.xyzw = (textureLod(textureUnitPS0, R3f.xy,0.0).xyzw);
|
|
||||||
R1f.xyzw = (textureLod(textureUnitPS0, R1f.xy,0.0).xyzw);
|
|
||||||
R2f.xyzw = (textureLod(textureUnitPS0, R5f.xy,0.0).xyzw);
|
|
||||||
// 0
|
|
||||||
R123f.x = (intBitsToFloat(uf_remappedPS[1].x) * R6f.z + R0f.y);
|
|
||||||
PV0f.x = R123f.x;
|
|
||||||
R123f.y = (intBitsToFloat(uf_remappedPS[1].x) * R6f.y + R5f.z);
|
|
||||||
PV0f.y = R123f.y;
|
|
||||||
R123f.z = (intBitsToFloat(uf_remappedPS[1].x) * R6f.x + R5f.w);
|
|
||||||
PV0f.z = R123f.z;
|
|
||||||
R123f.w = (intBitsToFloat(uf_remappedPS[1].x) * R6f.w + R0f.x);
|
|
||||||
PV0f.w = R123f.w;
|
|
||||||
R0f.x = R7f.x + intBitsToFloat(0x3c6eeef0);
|
|
||||||
PS0f = R0f.x;
|
|
||||||
// 1
|
|
||||||
R123f.x = (intBitsToFloat(uf_remappedPS[1].y) * R3f.w + PV0f.w);
|
|
||||||
PV1f.x = R123f.x;
|
|
||||||
R123f.y = (intBitsToFloat(uf_remappedPS[1].y) * R3f.y + PV0f.y);
|
|
||||||
PV1f.y = R123f.y;
|
|
||||||
R123f.z = (intBitsToFloat(uf_remappedPS[1].y) * R3f.x + PV0f.z);
|
|
||||||
PV1f.z = R123f.z;
|
|
||||||
R123f.w = (intBitsToFloat(uf_remappedPS[1].y) * R3f.z + PV0f.x);
|
|
||||||
PV1f.w = R123f.w;
|
|
||||||
R0f.y = R7f.y;
|
|
||||||
PS1f = R0f.y;
|
|
||||||
// 2
|
|
||||||
R123f.x = (intBitsToFloat(uf_remappedPS[1].y) * R1f.y + PV1f.y);
|
|
||||||
PV0f.x = R123f.x;
|
|
||||||
R123f.y = (intBitsToFloat(uf_remappedPS[1].y) * R1f.x + PV1f.z);
|
|
||||||
PV0f.y = R123f.y;
|
|
||||||
R123f.z = (intBitsToFloat(uf_remappedPS[1].y) * R1f.w + PV1f.x);
|
|
||||||
PV0f.z = R123f.z;
|
|
||||||
R123f.w = (intBitsToFloat(uf_remappedPS[1].y) * R1f.z + PV1f.w);
|
|
||||||
PV0f.w = R123f.w;
|
|
||||||
R1f.x = R7f.x + intBitsToFloat(0xbc6eeef0);
|
|
||||||
PS0f = R1f.x;
|
|
||||||
// 3
|
|
||||||
backupReg0f = R2f.z;
|
|
||||||
R3f.x = (intBitsToFloat(uf_remappedPS[1].z) * R2f.w + PV0f.z);
|
|
||||||
R3f.y = (intBitsToFloat(uf_remappedPS[1].z) * R2f.x + PV0f.y);
|
|
||||||
R2f.z = (intBitsToFloat(uf_remappedPS[1].z) * backupReg0f + PV0f.w);
|
|
||||||
R2f.w = (intBitsToFloat(uf_remappedPS[1].z) * R2f.y + PV0f.x);
|
|
||||||
R1f.y = R7f.y;
|
|
||||||
PS1f = R1f.y;
|
|
||||||
// 4
|
|
||||||
R2f.x = R7f.x + intBitsToFloat(0x3c888889);
|
|
||||||
R2f.y = R7f.y;
|
|
||||||
R6f.z = R7f.y;
|
|
||||||
R6f.x = R7f.x + intBitsToFloat(0xbc888889);
|
|
||||||
PS0f = R6f.x;
|
|
||||||
R4f.xyzw = (textureLod(textureUnitPS0, R4f.xz,0.0).xyzw);
|
|
||||||
R0f.xyzw = (textureLod(textureUnitPS0, R0f.xy,0.0).xyzw);
|
|
||||||
R1f.xyzw = (textureLod(textureUnitPS0, R1f.xy,0.0).xyzw);
|
|
||||||
R5f.xyzw = (textureLod(textureUnitPS0, R2f.xy,0.0).xyzw);
|
|
||||||
// 0
|
|
||||||
R123f.x = (intBitsToFloat(uf_remappedPS[1].z) * R4f.x + R3f.y);
|
|
||||||
PV0f.x = R123f.x;
|
|
||||||
R123f.y = (intBitsToFloat(uf_remappedPS[1].z) * R4f.w + R3f.x);
|
|
||||||
PV0f.y = R123f.y;
|
|
||||||
R123f.z = (intBitsToFloat(uf_remappedPS[1].z) * R4f.z + R2f.z);
|
|
||||||
PV0f.z = R123f.z;
|
|
||||||
R123f.w = (intBitsToFloat(uf_remappedPS[1].z) * R4f.y + R2f.w);
|
|
||||||
PV0f.w = R123f.w;
|
|
||||||
R3f.x = R7f.x + intBitsToFloat(0x3c99999a);
|
|
||||||
PS0f = R3f.x;
|
|
||||||
// 1
|
|
||||||
R123f.x = (intBitsToFloat(uf_remappedPS[1].w) * R0f.x + PV0f.x);
|
|
||||||
PV1f.x = R123f.x;
|
|
||||||
R123f.y = (intBitsToFloat(uf_remappedPS[1].w) * R0f.w + PV0f.y);
|
|
||||||
PV1f.y = R123f.y;
|
|
||||||
R123f.z = (intBitsToFloat(uf_remappedPS[1].w) * R0f.z + PV0f.z);
|
|
||||||
PV1f.z = R123f.z;
|
|
||||||
R123f.w = (intBitsToFloat(uf_remappedPS[1].w) * R0f.y + PV0f.w);
|
|
||||||
PV1f.w = R123f.w;
|
|
||||||
R3f.y = R7f.y;
|
|
||||||
PS1f = R3f.y;
|
|
||||||
// 2
|
|
||||||
R123f.x = (intBitsToFloat(uf_remappedPS[1].w) * R1f.w + PV1f.y);
|
|
||||||
PV0f.x = R123f.x;
|
|
||||||
R123f.y = (intBitsToFloat(uf_remappedPS[1].w) * R1f.z + PV1f.z);
|
|
||||||
PV0f.y = R123f.y;
|
|
||||||
R123f.z = (intBitsToFloat(uf_remappedPS[1].w) * R1f.y + PV1f.w);
|
|
||||||
PV0f.z = R123f.z;
|
|
||||||
R123f.w = (intBitsToFloat(uf_remappedPS[1].w) * R1f.x + PV1f.x);
|
|
||||||
PV0f.w = R123f.w;
|
|
||||||
R1f.x = R7f.x + intBitsToFloat(0xbc99999a);
|
|
||||||
PS0f = R1f.x;
|
|
||||||
// 3
|
|
||||||
R0f.x = (R5f.w * intBitsToFloat(uf_remappedPS[2].x) + PV0f.x);
|
|
||||||
R0f.y = (R5f.z * intBitsToFloat(uf_remappedPS[2].x) + PV0f.y);
|
|
||||||
R5f.z = (R5f.y * intBitsToFloat(uf_remappedPS[2].x) + PV0f.z);
|
|
||||||
R5f.w = (R5f.x * intBitsToFloat(uf_remappedPS[2].x) + PV0f.w);
|
|
||||||
R1f.y = R7f.y;
|
|
||||||
PS1f = R1f.y;
|
|
||||||
// 4
|
|
||||||
R5f.x = R7f.x + intBitsToFloat(0x3caaaaab);
|
|
||||||
R5f.y = R7f.y;
|
|
||||||
R4f.z = R7f.y;
|
|
||||||
R4f.x = R7f.x + intBitsToFloat(0xbcaaaaab);
|
|
||||||
PS0f = R4f.x;
|
|
||||||
R6f.xyzw = (textureLod(textureUnitPS0, R6f.xz,0.0).xyzw);
|
|
||||||
R3f.xyzw = (textureLod(textureUnitPS0, R3f.xy,0.0).xyzw);
|
|
||||||
R1f.xyzw = (textureLod(textureUnitPS0, R1f.xy,0.0).xyzw);
|
|
||||||
R2f.xyzw = (textureLod(textureUnitPS0, R5f.xy,0.0).xyzw);
|
|
||||||
// 0
|
|
||||||
R123f.x = (intBitsToFloat(uf_remappedPS[2].x) * R6f.z + R0f.y);
|
|
||||||
PV0f.x = R123f.x;
|
|
||||||
R123f.y = (intBitsToFloat(uf_remappedPS[2].x) * R6f.y + R5f.z);
|
|
||||||
PV0f.y = R123f.y;
|
|
||||||
R123f.z = (intBitsToFloat(uf_remappedPS[2].x) * R6f.x + R5f.w);
|
|
||||||
PV0f.z = R123f.z;
|
|
||||||
R123f.w = (intBitsToFloat(uf_remappedPS[2].x) * R6f.w + R0f.x);
|
|
||||||
PV0f.w = R123f.w;
|
|
||||||
R0f.x = R7f.x + intBitsToFloat(0x3cbbbbbc);
|
|
||||||
PS0f = R0f.x;
|
|
||||||
// 1
|
|
||||||
R123f.x = (intBitsToFloat(uf_remappedPS[2].y) * R3f.w + PV0f.w);
|
|
||||||
PV1f.x = R123f.x;
|
|
||||||
R123f.y = (intBitsToFloat(uf_remappedPS[2].y) * R3f.y + PV0f.y);
|
|
||||||
PV1f.y = R123f.y;
|
|
||||||
R123f.z = (intBitsToFloat(uf_remappedPS[2].y) * R3f.x + PV0f.z);
|
|
||||||
PV1f.z = R123f.z;
|
|
||||||
R123f.w = (intBitsToFloat(uf_remappedPS[2].y) * R3f.z + PV0f.x);
|
|
||||||
PV1f.w = R123f.w;
|
|
||||||
R0f.y = R7f.y;
|
|
||||||
PS1f = R0f.y;
|
|
||||||
// 2
|
|
||||||
R123f.x = (intBitsToFloat(uf_remappedPS[2].y) * R1f.y + PV1f.y);
|
|
||||||
PV0f.x = R123f.x;
|
|
||||||
R123f.y = (intBitsToFloat(uf_remappedPS[2].y) * R1f.x + PV1f.z);
|
|
||||||
PV0f.y = R123f.y;
|
|
||||||
R123f.z = (intBitsToFloat(uf_remappedPS[2].y) * R1f.w + PV1f.x);
|
|
||||||
PV0f.z = R123f.z;
|
|
||||||
R123f.w = (intBitsToFloat(uf_remappedPS[2].y) * R1f.z + PV1f.w);
|
|
||||||
PV0f.w = R123f.w;
|
|
||||||
R1f.x = R7f.x + intBitsToFloat(0xbcbbbbbc);
|
|
||||||
PS0f = R1f.x;
|
|
||||||
// 3
|
|
||||||
backupReg0f = R2f.z;
|
|
||||||
R3f.x = (intBitsToFloat(uf_remappedPS[2].z) * R2f.w + PV0f.z);
|
|
||||||
R3f.y = (intBitsToFloat(uf_remappedPS[2].z) * R2f.x + PV0f.y);
|
|
||||||
R2f.z = (intBitsToFloat(uf_remappedPS[2].z) * backupReg0f + PV0f.w);
|
|
||||||
R2f.w = (intBitsToFloat(uf_remappedPS[2].z) * R2f.y + PV0f.x);
|
|
||||||
R1f.y = R7f.y;
|
|
||||||
PS1f = R1f.y;
|
|
||||||
// 4
|
|
||||||
R2f.x = R7f.x + intBitsToFloat(0x3cccccce);
|
|
||||||
R2f.y = R7f.y;
|
|
||||||
R6f.z = R7f.y;
|
|
||||||
R6f.x = R7f.x + intBitsToFloat(0xbcccccce);
|
|
||||||
PS0f = R6f.x;
|
|
||||||
R4f.xyzw = (textureLod(textureUnitPS0, R4f.xz,0.0).xyzw);
|
|
||||||
R0f.xyzw = (textureLod(textureUnitPS0, R0f.xy,0.0).xyzw);
|
|
||||||
R1f.xyzw = (textureLod(textureUnitPS0, R1f.xy,0.0).xyzw);
|
|
||||||
R5f.xyzw = (textureLod(textureUnitPS0, R2f.xy,0.0).xyzw);
|
|
||||||
// 0
|
|
||||||
R123f.x = (intBitsToFloat(uf_remappedPS[2].z) * R4f.x + R3f.y);
|
|
||||||
PV0f.x = R123f.x;
|
|
||||||
R123f.y = (intBitsToFloat(uf_remappedPS[2].z) * R4f.w + R3f.x);
|
|
||||||
PV0f.y = R123f.y;
|
|
||||||
R123f.z = (intBitsToFloat(uf_remappedPS[2].z) * R4f.z + R2f.z);
|
|
||||||
PV0f.z = R123f.z;
|
|
||||||
R123f.w = (intBitsToFloat(uf_remappedPS[2].z) * R4f.y + R2f.w);
|
|
||||||
PV0f.w = R123f.w;
|
|
||||||
R3f.x = R7f.x + intBitsToFloat(0x3cdddddf);
|
|
||||||
PS0f = R3f.x;
|
|
||||||
// 1
|
|
||||||
R123f.x = (intBitsToFloat(uf_remappedPS[2].w) * R0f.x + PV0f.x);
|
|
||||||
PV1f.x = R123f.x;
|
|
||||||
R123f.y = (intBitsToFloat(uf_remappedPS[2].w) * R0f.w + PV0f.y);
|
|
||||||
PV1f.y = R123f.y;
|
|
||||||
R123f.z = (intBitsToFloat(uf_remappedPS[2].w) * R0f.z + PV0f.z);
|
|
||||||
PV1f.z = R123f.z;
|
|
||||||
R123f.w = (intBitsToFloat(uf_remappedPS[2].w) * R0f.y + PV0f.w);
|
|
||||||
PV1f.w = R123f.w;
|
|
||||||
R3f.y = R7f.y;
|
|
||||||
PS1f = R3f.y;
|
|
||||||
// 2
|
|
||||||
R123f.x = (intBitsToFloat(uf_remappedPS[2].w) * R1f.w + PV1f.y);
|
|
||||||
PV0f.x = R123f.x;
|
|
||||||
R123f.y = (intBitsToFloat(uf_remappedPS[2].w) * R1f.z + PV1f.z);
|
|
||||||
PV0f.y = R123f.y;
|
|
||||||
R123f.z = (intBitsToFloat(uf_remappedPS[2].w) * R1f.y + PV1f.w);
|
|
||||||
PV0f.z = R123f.z;
|
|
||||||
R123f.w = (intBitsToFloat(uf_remappedPS[2].w) * R1f.x + PV1f.x);
|
|
||||||
PV0f.w = R123f.w;
|
|
||||||
R1f.x = R7f.x + intBitsToFloat(0xbcdddddf);
|
|
||||||
PS0f = R1f.x;
|
|
||||||
// 3
|
|
||||||
R0f.x = (R5f.w * intBitsToFloat(uf_remappedPS[3].x) + PV0f.x);
|
|
||||||
R0f.y = (R5f.z * intBitsToFloat(uf_remappedPS[3].x) + PV0f.y);
|
|
||||||
R5f.z = (R5f.y * intBitsToFloat(uf_remappedPS[3].x) + PV0f.z);
|
|
||||||
R5f.w = (R5f.x * intBitsToFloat(uf_remappedPS[3].x) + PV0f.w);
|
|
||||||
R1f.y = R7f.y;
|
|
||||||
PS1f = R1f.y;
|
|
||||||
// 4
|
|
||||||
R5f.x = R7f.x + intBitsToFloat(0x3ceeeef0);
|
|
||||||
R5f.y = R7f.y;
|
|
||||||
R4f.z = R7f.y;
|
|
||||||
R4f.x = R7f.x + intBitsToFloat(0xbceeeef0);
|
|
||||||
PS0f = R4f.x;
|
|
||||||
R6f.xyzw = (textureLod(textureUnitPS0, R6f.xz,0.0).xyzw);
|
|
||||||
R3f.xyzw = (textureLod(textureUnitPS0, R3f.xy,0.0).xyzw);
|
|
||||||
R1f.xyzw = (textureLod(textureUnitPS0, R1f.xy,0.0).xyzw);
|
|
||||||
R2f.xyzw = (textureLod(textureUnitPS0, R5f.xy,0.0).xyzw);
|
|
||||||
// 0
|
|
||||||
R123f.x = (intBitsToFloat(uf_remappedPS[3].x) * R6f.z + R0f.y);
|
|
||||||
PV0f.x = R123f.x;
|
|
||||||
R123f.y = (intBitsToFloat(uf_remappedPS[3].x) * R6f.y + R5f.z);
|
|
||||||
PV0f.y = R123f.y;
|
|
||||||
R123f.z = (intBitsToFloat(uf_remappedPS[3].x) * R6f.x + R5f.w);
|
|
||||||
PV0f.z = R123f.z;
|
|
||||||
R123f.w = (intBitsToFloat(uf_remappedPS[3].x) * R6f.w + R0f.x);
|
|
||||||
PV0f.w = R123f.w;
|
|
||||||
R0f.x = R7f.x + intBitsToFloat(0x3d000000);
|
|
||||||
PS0f = R0f.x;
|
|
||||||
// 1
|
|
||||||
R123f.x = (intBitsToFloat(uf_remappedPS[3].y) * R3f.w + PV0f.w);
|
|
||||||
PV1f.x = R123f.x;
|
|
||||||
R123f.y = (intBitsToFloat(uf_remappedPS[3].y) * R3f.y + PV0f.y);
|
|
||||||
PV1f.y = R123f.y;
|
|
||||||
R123f.z = (intBitsToFloat(uf_remappedPS[3].y) * R3f.x + PV0f.z);
|
|
||||||
PV1f.z = R123f.z;
|
|
||||||
R123f.w = (intBitsToFloat(uf_remappedPS[3].y) * R3f.z + PV0f.x);
|
|
||||||
PV1f.w = R123f.w;
|
|
||||||
R0f.y = R7f.y;
|
|
||||||
PS1f = R0f.y;
|
|
||||||
// 2
|
|
||||||
R123f.x = (intBitsToFloat(uf_remappedPS[3].y) * R1f.y + PV1f.y);
|
|
||||||
PV0f.x = R123f.x;
|
|
||||||
R123f.y = (intBitsToFloat(uf_remappedPS[3].y) * R1f.x + PV1f.z);
|
|
||||||
PV0f.y = R123f.y;
|
|
||||||
R123f.z = (intBitsToFloat(uf_remappedPS[3].y) * R1f.w + PV1f.x);
|
|
||||||
PV0f.z = R123f.z;
|
|
||||||
R123f.w = (intBitsToFloat(uf_remappedPS[3].y) * R1f.z + PV1f.w);
|
|
||||||
PV0f.w = R123f.w;
|
|
||||||
R1f.x = R7f.x + intBitsToFloat(0xbd000000);
|
|
||||||
PS0f = R1f.x;
|
|
||||||
// 3
|
|
||||||
backupReg0f = R2f.z;
|
|
||||||
R3f.x = (intBitsToFloat(uf_remappedPS[3].z) * R2f.w + PV0f.z);
|
|
||||||
R3f.y = (intBitsToFloat(uf_remappedPS[3].z) * R2f.x + PV0f.y);
|
|
||||||
R2f.z = (intBitsToFloat(uf_remappedPS[3].z) * backupReg0f + PV0f.w);
|
|
||||||
R2f.w = (intBitsToFloat(uf_remappedPS[3].z) * R2f.y + PV0f.x);
|
|
||||||
R1f.y = R7f.y;
|
|
||||||
PS1f = R1f.y;
|
|
||||||
// 4
|
|
||||||
R2f.x = R7f.x + intBitsToFloat(0x3d088889);
|
|
||||||
R2f.y = R7f.y;
|
|
||||||
R6f.z = R7f.y;
|
|
||||||
R6f.x = R7f.x + intBitsToFloat(0xbd088889);
|
|
||||||
PS0f = R6f.x;
|
|
||||||
R4f.xyzw = (textureLod(textureUnitPS0, R4f.xz,0.0).xyzw);
|
|
||||||
R0f.xyzw = (textureLod(textureUnitPS0, R0f.xy,0.0).xyzw);
|
|
||||||
R1f.xyzw = (textureLod(textureUnitPS0, R1f.xy,0.0).xyzw);
|
|
||||||
R5f.xyzw = (textureLod(textureUnitPS0, R2f.xy,0.0).xyzw);
|
|
||||||
// 0
|
|
||||||
R123f.x = (intBitsToFloat(uf_remappedPS[3].z) * R4f.x + R3f.y);
|
|
||||||
PV0f.x = R123f.x;
|
|
||||||
R123f.y = (intBitsToFloat(uf_remappedPS[3].z) * R4f.w + R3f.x);
|
|
||||||
PV0f.y = R123f.y;
|
|
||||||
R123f.z = (intBitsToFloat(uf_remappedPS[3].z) * R4f.z + R2f.z);
|
|
||||||
PV0f.z = R123f.z;
|
|
||||||
R123f.w = (intBitsToFloat(uf_remappedPS[3].z) * R4f.y + R2f.w);
|
|
||||||
PV0f.w = R123f.w;
|
|
||||||
R3f.x = R7f.x + intBitsToFloat(0x3d111112);
|
|
||||||
PS0f = R3f.x;
|
|
||||||
// 1
|
|
||||||
R123f.x = (intBitsToFloat(uf_remappedPS[3].w) * R0f.x + PV0f.x);
|
|
||||||
PV1f.x = R123f.x;
|
|
||||||
R123f.y = (intBitsToFloat(uf_remappedPS[3].w) * R0f.w + PV0f.y);
|
|
||||||
PV1f.y = R123f.y;
|
|
||||||
R123f.z = (intBitsToFloat(uf_remappedPS[3].w) * R0f.z + PV0f.z);
|
|
||||||
PV1f.z = R123f.z;
|
|
||||||
R123f.w = (intBitsToFloat(uf_remappedPS[3].w) * R0f.y + PV0f.w);
|
|
||||||
PV1f.w = R123f.w;
|
|
||||||
R3f.y = R7f.y;
|
|
||||||
PS1f = R3f.y;
|
|
||||||
// 2
|
|
||||||
R123f.x = (intBitsToFloat(uf_remappedPS[3].w) * R1f.w + PV1f.y);
|
|
||||||
PV0f.x = R123f.x;
|
|
||||||
R123f.y = (intBitsToFloat(uf_remappedPS[3].w) * R1f.z + PV1f.z);
|
|
||||||
PV0f.y = R123f.y;
|
|
||||||
R123f.z = (intBitsToFloat(uf_remappedPS[3].w) * R1f.y + PV1f.w);
|
|
||||||
PV0f.z = R123f.z;
|
|
||||||
R123f.w = (intBitsToFloat(uf_remappedPS[3].w) * R1f.x + PV1f.x);
|
|
||||||
PV0f.w = R123f.w;
|
|
||||||
R1f.x = R7f.x + intBitsToFloat(0xbd111112);
|
|
||||||
PS0f = R1f.x;
|
|
||||||
// 3
|
|
||||||
R0f.x = (R5f.w * intBitsToFloat(uf_remappedPS[4].x) + PV0f.x);
|
|
||||||
R0f.y = (R5f.z * intBitsToFloat(uf_remappedPS[4].x) + PV0f.y);
|
|
||||||
R5f.z = (R5f.y * intBitsToFloat(uf_remappedPS[4].x) + PV0f.z);
|
|
||||||
R5f.w = (R5f.x * intBitsToFloat(uf_remappedPS[4].x) + PV0f.w);
|
|
||||||
R1f.y = R7f.y;
|
|
||||||
PS1f = R1f.y;
|
|
||||||
// 4
|
|
||||||
R5f.x = R7f.x + intBitsToFloat(0x3d19999a);
|
|
||||||
R5f.y = R7f.y;
|
|
||||||
R4f.z = R7f.y;
|
|
||||||
R4f.x = R7f.x + intBitsToFloat(0xbd19999a);
|
|
||||||
PS0f = R4f.x;
|
|
||||||
R6f.xyzw = (textureLod(textureUnitPS0, R6f.xz,0.0).xyzw);
|
|
||||||
R3f.xyzw = (textureLod(textureUnitPS0, R3f.xy,0.0).xyzw);
|
|
||||||
R1f.xyzw = (textureLod(textureUnitPS0, R1f.xy,0.0).xyzw);
|
|
||||||
R2f.xyzw = (textureLod(textureUnitPS0, R5f.xy,0.0).xyzw);
|
|
||||||
// 0
|
|
||||||
R123f.x = (intBitsToFloat(uf_remappedPS[4].x) * R6f.z + R0f.y);
|
|
||||||
PV0f.x = R123f.x;
|
|
||||||
R123f.y = (intBitsToFloat(uf_remappedPS[4].x) * R6f.y + R5f.z);
|
|
||||||
PV0f.y = R123f.y;
|
|
||||||
R123f.z = (intBitsToFloat(uf_remappedPS[4].x) * R6f.x + R5f.w);
|
|
||||||
PV0f.z = R123f.z;
|
|
||||||
R123f.w = (intBitsToFloat(uf_remappedPS[4].x) * R6f.w + R0f.x);
|
|
||||||
PV0f.w = R123f.w;
|
|
||||||
R0f.x = R7f.x + intBitsToFloat(0x3d222223);
|
|
||||||
PS0f = R0f.x;
|
|
||||||
// 1
|
|
||||||
R123f.x = (intBitsToFloat(uf_remappedPS[4].y) * R3f.w + PV0f.w);
|
|
||||||
PV1f.x = R123f.x;
|
|
||||||
R123f.y = (intBitsToFloat(uf_remappedPS[4].y) * R3f.y + PV0f.y);
|
|
||||||
PV1f.y = R123f.y;
|
|
||||||
R123f.z = (intBitsToFloat(uf_remappedPS[4].y) * R3f.x + PV0f.z);
|
|
||||||
PV1f.z = R123f.z;
|
|
||||||
R123f.w = (intBitsToFloat(uf_remappedPS[4].y) * R3f.z + PV0f.x);
|
|
||||||
PV1f.w = R123f.w;
|
|
||||||
R0f.y = R7f.y;
|
|
||||||
PS1f = R0f.y;
|
|
||||||
// 2
|
|
||||||
backupReg0f = R7f.x;
|
|
||||||
R123f.x = (intBitsToFloat(uf_remappedPS[4].y) * R1f.y + PV1f.y);
|
|
||||||
PV0f.x = R123f.x;
|
|
||||||
R123f.y = (intBitsToFloat(uf_remappedPS[4].y) * R1f.x + PV1f.z);
|
|
||||||
PV0f.y = R123f.y;
|
|
||||||
R123f.z = (intBitsToFloat(uf_remappedPS[4].y) * R1f.w + PV1f.x);
|
|
||||||
PV0f.z = R123f.z;
|
|
||||||
R123f.w = (intBitsToFloat(uf_remappedPS[4].y) * R1f.z + PV1f.w);
|
|
||||||
PV0f.w = R123f.w;
|
|
||||||
R7f.x = backupReg0f + intBitsToFloat(0xbd222223);
|
|
||||||
PS0f = R7f.x;
|
|
||||||
// 3
|
|
||||||
backupReg0f = R2f.x;
|
|
||||||
backupReg1f = R2f.z;
|
|
||||||
backupReg2f = R2f.y;
|
|
||||||
R2f.x = (intBitsToFloat(uf_remappedPS[4].z) * R2f.w + PV0f.z);
|
|
||||||
R2f.y = (intBitsToFloat(uf_remappedPS[4].z) * backupReg0f + PV0f.y);
|
|
||||||
R2f.z = (intBitsToFloat(uf_remappedPS[4].z) * backupReg1f + PV0f.w);
|
|
||||||
R2f.w = (intBitsToFloat(uf_remappedPS[4].z) * backupReg2f + PV0f.x);
|
|
||||||
R4f.xyzw = (textureLod(textureUnitPS0, R4f.xz,0.0).xyzw);
|
|
||||||
R0f.xyzw = (textureLod(textureUnitPS0, R0f.xy,0.0).xyzw);
|
|
||||||
R7f.xyzw = (textureLod(textureUnitPS0, R7f.xy,0.0).xyzw);
|
|
||||||
// 0
|
|
||||||
R123f.x = (intBitsToFloat(uf_remappedPS[4].z) * R4f.x + R2f.y);
|
|
||||||
PV0f.x = R123f.x;
|
|
||||||
R123f.y = (intBitsToFloat(uf_remappedPS[4].z) * R4f.w + R2f.x);
|
|
||||||
PV0f.y = R123f.y;
|
|
||||||
R123f.z = (intBitsToFloat(uf_remappedPS[4].z) * R4f.z + R2f.z);
|
|
||||||
PV0f.z = R123f.z;
|
|
||||||
R123f.w = (intBitsToFloat(uf_remappedPS[4].z) * R4f.y + R2f.w);
|
|
||||||
PV0f.w = R123f.w;
|
|
||||||
// 1
|
|
||||||
R123f.x = (intBitsToFloat(uf_remappedPS[4].w) * R0f.x + PV0f.x);
|
|
||||||
PV1f.x = R123f.x;
|
|
||||||
R123f.y = (intBitsToFloat(uf_remappedPS[4].w) * R0f.w + PV0f.y);
|
|
||||||
PV1f.y = R123f.y;
|
|
||||||
R123f.z = (intBitsToFloat(uf_remappedPS[4].w) * R0f.z + PV0f.z);
|
|
||||||
PV1f.z = R123f.z;
|
|
||||||
R123f.w = (intBitsToFloat(uf_remappedPS[4].w) * R0f.y + PV0f.w);
|
|
||||||
PV1f.w = R123f.w;
|
|
||||||
// 2
|
|
||||||
backupReg0f = R7f.x;
|
|
||||||
backupReg1f = R7f.y;
|
|
||||||
backupReg2f = R7f.z;
|
|
||||||
backupReg3f = R7f.w;
|
|
||||||
R7f.x = (intBitsToFloat(uf_remappedPS[4].w) * backupReg0f + PV1f.x * bloomFactor);
|
|
||||||
R7f.y = (intBitsToFloat(uf_remappedPS[4].w) * backupReg1f + PV1f.w * bloomFactor);
|
|
||||||
R7f.z = (intBitsToFloat(uf_remappedPS[4].w) * backupReg2f + PV1f.z * bloomFactor);
|
|
||||||
R7f.w = (intBitsToFloat(uf_remappedPS[4].w) * backupReg3f + PV1f.y * bloomFactor);
|
|
||||||
// export
|
|
||||||
passPixelColor0 = vec4(R7f.x, R7f.y, R7f.z, R7f.w);
|
|
||||||
}
|
|
@ -1,4 +0,0 @@
|
|||||||
[Definition]
|
|
||||||
titleIds = 000500001019C800,000500001019E600,000500001019E500,0005000E1019C800
|
|
||||||
name = "The Legend of Zelda: Twilight Princess HD - Adjustable Bloom"
|
|
||||||
version = 2
|
|
@ -1,56 +0,0 @@
|
|||||||
#version 420
|
|
||||||
#extension GL_ARB_texture_gather : enable
|
|
||||||
#extension GL_ARB_separate_shader_objects : enable
|
|
||||||
// shader 49865bd2e62efda1
|
|
||||||
//dark world bloom
|
|
||||||
|
|
||||||
const float bloom = 0.98;
|
|
||||||
uniform ivec4 uf_remappedPS[1];
|
|
||||||
layout(binding = 0) uniform sampler2D textureUnitPS0;// Tex0 addr 0xf597f000 res 480x270x1 dim 1 tm: 4 format 001a compSel: 0 1 2 3 mipView: 0x0 (num 0x1) sliceView: 0x0 (num 0x1) Sampler0 ClampX/Y/Z: 2 2 2 border: 0
|
|
||||||
layout(location = 0) in vec4 passParameterSem0;
|
|
||||||
layout(location = 0) out vec4 passPixelColor0;
|
|
||||||
uniform vec2 uf_fragCoordScale;
|
|
||||||
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);
|
|
||||||
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 = passParameterSem0;
|
|
||||||
R0f.xyz = (textureLod(textureUnitPS0, R0f.xy,0.0).xyz)*bloom;
|
|
||||||
// 0
|
|
||||||
backupReg0f = R0f.y;
|
|
||||||
backupReg1f = R0f.x;
|
|
||||||
PV0f.x = mul_nonIEEE(R0f.z, intBitsToFloat(uf_remappedPS[0].z));
|
|
||||||
PV0f.y = mul_nonIEEE(backupReg0f, intBitsToFloat(uf_remappedPS[0].y));
|
|
||||||
PV0f.z = mul_nonIEEE(backupReg1f, intBitsToFloat(uf_remappedPS[0].x));
|
|
||||||
PV0f.w = intBitsToFloat(uf_remappedPS[0].w);
|
|
||||||
// 1
|
|
||||||
PV1f.x = max(PV0f.w, 0.0);
|
|
||||||
PV1f.y = max(PV0f.x, 0.0);
|
|
||||||
PV1f.z = max(PV0f.y, 0.0);
|
|
||||||
PV1f.w = max(PV0f.z, 0.0);
|
|
||||||
// 2
|
|
||||||
R0f.x = min(PV1f.w, 1.0);
|
|
||||||
R0f.y = min(PV1f.z, 1.0);
|
|
||||||
R0f.z = min(PV1f.y, 1.0);
|
|
||||||
R0f.w = min(PV1f.x, 1.0);
|
|
||||||
// export
|
|
||||||
passPixelColor0 = vec4(R0f.x, R0f.y, R0f.z, R0f.w);
|
|
||||||
}
|
|
@ -1,62 +0,0 @@
|
|||||||
#version 420
|
|
||||||
#extension GL_ARB_texture_gather : enable
|
|
||||||
#extension GL_ARB_separate_shader_objects : enable
|
|
||||||
// shader 5f422bf63e25be7f // Bleach pass cutscene
|
|
||||||
|
|
||||||
const float bleach = 0.7;
|
|
||||||
|
|
||||||
uniform ivec4 uf_remappedPS[1];
|
|
||||||
layout(binding = 0) uniform sampler2D textureUnitPS0;// Tex0 addr 0x24dfb000 res 960x540x1 dim 1 tm: 4 format 001a compSel: 0 1 2 3 mipView: 0x0 (num 0x1) sliceView: 0x0 (num 0x1) Sampler0 ClampX/Y/Z: 2 2 2 border: 0
|
|
||||||
layout(location = 0) in vec4 passParameterSem1;
|
|
||||||
layout(location = 0) out vec4 passPixelColor0;
|
|
||||||
uniform vec2 uf_fragCoordScale;
|
|
||||||
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);
|
|
||||||
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 = passParameterSem1;
|
|
||||||
R0f.w = (texture(textureUnitPS0, R0f.xy).x);
|
|
||||||
// 0
|
|
||||||
PV0f.x = intBitsToFloat(uf_remappedPS[0].x) * intBitsToFloat(0x3f7f0000);
|
|
||||||
PV0f.z = intBitsToFloat(uf_remappedPS[0].z) * intBitsToFloat(0x3f7f0000);
|
|
||||||
PV0f.w = intBitsToFloat(uf_remappedPS[0].y) * intBitsToFloat(0x3f7f0000);
|
|
||||||
R1f.w = intBitsToFloat(uf_remappedPS[0].w);
|
|
||||||
R1f.w = clamp(R1f.w, 0.0, 1.0);
|
|
||||||
PS0f = R1f.w;
|
|
||||||
// 1
|
|
||||||
PV1f.x = fract(PV0f.w);
|
|
||||||
PV1f.y = fract(PV0f.x);
|
|
||||||
PV1f.w = fract(PV0f.z);
|
|
||||||
// 2
|
|
||||||
PV0f.x = PV1f.w * intBitsToFloat(0x3f808081);
|
|
||||||
PV0f.y = PV1f.x * intBitsToFloat(0x3f808081);
|
|
||||||
PV0f.z = PV1f.y * intBitsToFloat(0x3f808081);
|
|
||||||
// 3
|
|
||||||
R1f.x = mul_nonIEEE(R0f.w, PV0f.z);
|
|
||||||
R1f.x = clamp(R1f.x, 0.0, 1.0);
|
|
||||||
R1f.y = mul_nonIEEE(R0f.w, PV0f.y);
|
|
||||||
R1f.y = clamp(R1f.y, 0.0, 1.0);
|
|
||||||
R1f.z = mul_nonIEEE(R0f.w, PV0f.x);
|
|
||||||
R1f.z = clamp(R1f.z, 0.0, 1.0);
|
|
||||||
// export
|
|
||||||
passPixelColor0 = vec4(R1f.x, R1f.y, R1f.z, R1f.w) * bleach;
|
|
||||||
}
|
|
@ -1,341 +0,0 @@
|
|||||||
#version 420
|
|
||||||
#extension GL_ARB_texture_gather : enable
|
|
||||||
#extension GL_ARB_separate_shader_objects : enable
|
|
||||||
// shader 95a5a89d62998e0d
|
|
||||||
|
|
||||||
// blur
|
|
||||||
const float bloom = 0.98;
|
|
||||||
|
|
||||||
uniform ivec4 uf_remappedPS[3];
|
|
||||||
layout(binding = 0) uniform sampler2D textureUnitPS0;// Tex0 addr 0xf59ff000 res 480x270x1 dim 1 tm: 4 format 001a compSel: 0 1 2 3 mipView: 0x0 (num 0x1) sliceView: 0x0 (num 0x1) Sampler0 ClampX/Y/Z: 2 2 2 border: 0
|
|
||||||
layout(location = 0) out vec4 passPixelColor0;
|
|
||||||
uniform vec2 uf_fragCoordScale;
|
|
||||||
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 R5f = vec4(0.0);
|
|
||||||
vec4 R6f = vec4(0.0);
|
|
||||||
vec4 R7f = vec4(0.0);
|
|
||||||
vec4 R123f = vec4(0.0);
|
|
||||||
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;
|
|
||||||
float scaler;
|
|
||||||
int tempResulti;
|
|
||||||
ivec4 ARi = ivec4(0);
|
|
||||||
bool predResult = true;
|
|
||||||
vec3 cubeMapSTM;
|
|
||||||
int cubeMapFaceId;
|
|
||||||
R0f = vec4(gl_FragCoord.xy*uf_fragCoordScale,gl_FragCoord.zw);
|
|
||||||
scaler = uf_fragCoordScale.x;
|
|
||||||
// 0
|
|
||||||
R7f.x = R0f.x * intBitsToFloat(0x3b088889);
|
|
||||||
PV0f.x = R7f.x;
|
|
||||||
R7f.y = R0f.y * intBitsToFloat(0x3b72b9d6);
|
|
||||||
PV0f.y = R7f.y;
|
|
||||||
// 1
|
|
||||||
R0f.x = PV0f.x;
|
|
||||||
R0f.y = PV0f.y + intBitsToFloat(0x3b72b9d6) * scaler;
|
|
||||||
R1f.z = PV0f.x;
|
|
||||||
R1f.y = PV0f.y + intBitsToFloat(0xbb72b9d6) * scaler;
|
|
||||||
PS1f = R1f.y;
|
|
||||||
// 2
|
|
||||||
R2f.x = R7f.x;
|
|
||||||
R2f.y = R7f.y + intBitsToFloat(0x3bf2b9d6) * scaler;
|
|
||||||
R4f.z = R7f.x;
|
|
||||||
R4f.y = R7f.y + intBitsToFloat(0xbbf2b9d6) * scaler;
|
|
||||||
PS0f = R4f.y;
|
|
||||||
R3f.xyzw = (textureLod(textureUnitPS0, R7f.xy,0.0).xyzw);
|
|
||||||
R0f.xyzw = (textureLod(textureUnitPS0, R0f.xy,0.0).xyzw);
|
|
||||||
R1f.xyzw = (textureLod(textureUnitPS0, R1f.zy,0.0).xyzw);
|
|
||||||
R2f.xyzw = (textureLod(textureUnitPS0, R2f.xy,0.0).xyzw);
|
|
||||||
// 0
|
|
||||||
backupReg0f = R0f.x;
|
|
||||||
backupReg1f = R0f.w;
|
|
||||||
PV0f.x = mul_nonIEEE(intBitsToFloat(uf_remappedPS[0].y), R0f.y);
|
|
||||||
PV0f.y = mul_nonIEEE(intBitsToFloat(uf_remappedPS[0].y), R0f.z);
|
|
||||||
PV0f.z = mul_nonIEEE(intBitsToFloat(uf_remappedPS[0].y), backupReg0f);
|
|
||||||
PV0f.w = mul_nonIEEE(intBitsToFloat(uf_remappedPS[0].y), backupReg1f);
|
|
||||||
R0f.y = R7f.y + intBitsToFloat(0x3c360b60) * scaler;
|
|
||||||
PS0f = R0f.y;
|
|
||||||
// 1
|
|
||||||
R123f.x = (mul_nonIEEE(R3f.y,intBitsToFloat(uf_remappedPS[0].x)) + PV0f.x);
|
|
||||||
PV1f.x = R123f.x;
|
|
||||||
R123f.y = (mul_nonIEEE(R3f.w,intBitsToFloat(uf_remappedPS[0].x)) + PV0f.w);
|
|
||||||
PV1f.y = R123f.y;
|
|
||||||
R123f.z = (mul_nonIEEE(R3f.x,intBitsToFloat(uf_remappedPS[0].x)) + PV0f.z);
|
|
||||||
PV1f.z = R123f.z;
|
|
||||||
R123f.w = (mul_nonIEEE(R3f.z,intBitsToFloat(uf_remappedPS[0].x)) + PV0f.y);
|
|
||||||
PV1f.w = R123f.w;
|
|
||||||
R0f.x = R7f.x;
|
|
||||||
PS1f = R0f.x;
|
|
||||||
// 2
|
|
||||||
R123f.x = (mul_nonIEEE(intBitsToFloat(uf_remappedPS[0].y),R1f.y) + PV1f.x);
|
|
||||||
PV0f.x = R123f.x;
|
|
||||||
R123f.y = (mul_nonIEEE(intBitsToFloat(uf_remappedPS[0].y),R1f.x) + PV1f.z);
|
|
||||||
PV0f.y = R123f.y;
|
|
||||||
R123f.z = (mul_nonIEEE(intBitsToFloat(uf_remappedPS[0].y),R1f.w) + PV1f.y);
|
|
||||||
PV0f.z = R123f.z;
|
|
||||||
R123f.w = (mul_nonIEEE(intBitsToFloat(uf_remappedPS[0].y),R1f.z) + PV1f.w);
|
|
||||||
PV0f.w = R123f.w;
|
|
||||||
R1f.y = R7f.y + intBitsToFloat(0xbc360b60) * scaler;
|
|
||||||
PS0f = R1f.y;
|
|
||||||
// 3
|
|
||||||
backupReg0f = R2f.z;
|
|
||||||
R3f.x = (mul_nonIEEE(intBitsToFloat(uf_remappedPS[0].z),R2f.x) + PV0f.y);
|
|
||||||
R3f.y = (mul_nonIEEE(intBitsToFloat(uf_remappedPS[0].z),R2f.y) + PV0f.x);
|
|
||||||
R2f.z = (mul_nonIEEE(intBitsToFloat(uf_remappedPS[0].z),R2f.w) + PV0f.z);
|
|
||||||
R2f.w = (mul_nonIEEE(intBitsToFloat(uf_remappedPS[0].z),backupReg0f) + PV0f.w);
|
|
||||||
R1f.x = R7f.x;
|
|
||||||
PS1f = R1f.x;
|
|
||||||
// 4
|
|
||||||
R2f.x = R7f.x;
|
|
||||||
R2f.y = R7f.y + intBitsToFloat(0x3c72b9d6) * scaler;
|
|
||||||
R6f.z = R7f.x;
|
|
||||||
R6f.y = R7f.y + intBitsToFloat(0xbc72b9d6) * scaler;
|
|
||||||
PS0f = R6f.y;
|
|
||||||
R4f.xyzw = (textureLod(textureUnitPS0, R4f.zy,0.0).xyzw);
|
|
||||||
R0f.xyzw = (textureLod(textureUnitPS0, R0f.xy,0.0).xyzw);
|
|
||||||
R1f.xyzw = (textureLod(textureUnitPS0, R1f.xy,0.0).xyzw);
|
|
||||||
R5f.xyzw = (textureLod(textureUnitPS0, R2f.xy,0.0).xyzw);
|
|
||||||
// 0
|
|
||||||
R123f.x = (mul_nonIEEE(intBitsToFloat(uf_remappedPS[0].z),R4f.x) + R3f.x);
|
|
||||||
PV0f.x = R123f.x;
|
|
||||||
R123f.y = (mul_nonIEEE(intBitsToFloat(uf_remappedPS[0].z),R4f.w) + R2f.z);
|
|
||||||
PV0f.y = R123f.y;
|
|
||||||
R123f.z = (mul_nonIEEE(intBitsToFloat(uf_remappedPS[0].z),R4f.z) + R2f.w);
|
|
||||||
PV0f.z = R123f.z;
|
|
||||||
R123f.w = (mul_nonIEEE(intBitsToFloat(uf_remappedPS[0].z),R4f.y) + R3f.y);
|
|
||||||
PV0f.w = R123f.w;
|
|
||||||
R3f.y = R7f.y + intBitsToFloat(0x3c97b426) * scaler;
|
|
||||||
PS0f = R3f.y;
|
|
||||||
// 1
|
|
||||||
R123f.x = (mul_nonIEEE(intBitsToFloat(uf_remappedPS[0].w),R0f.w) + PV0f.y);
|
|
||||||
PV1f.x = R123f.x;
|
|
||||||
R123f.y = (mul_nonIEEE(intBitsToFloat(uf_remappedPS[0].w),R0f.x) + PV0f.x);
|
|
||||||
PV1f.y = R123f.y;
|
|
||||||
R123f.z = (mul_nonIEEE(intBitsToFloat(uf_remappedPS[0].w),R0f.z) + PV0f.z);
|
|
||||||
PV1f.z = R123f.z;
|
|
||||||
R123f.w = (mul_nonIEEE(intBitsToFloat(uf_remappedPS[0].w),R0f.y) + PV0f.w);
|
|
||||||
PV1f.w = R123f.w;
|
|
||||||
R3f.x = R7f.x;
|
|
||||||
PS1f = R3f.x;
|
|
||||||
// 2
|
|
||||||
R123f.x = (mul_nonIEEE(intBitsToFloat(uf_remappedPS[0].w),R1f.w) + PV1f.x);
|
|
||||||
PV0f.x = R123f.x;
|
|
||||||
R123f.y = (mul_nonIEEE(intBitsToFloat(uf_remappedPS[0].w),R1f.z) + PV1f.z);
|
|
||||||
PV0f.y = R123f.y;
|
|
||||||
R123f.z = (mul_nonIEEE(intBitsToFloat(uf_remappedPS[0].w),R1f.y) + PV1f.w);
|
|
||||||
PV0f.z = R123f.z;
|
|
||||||
R123f.w = (mul_nonIEEE(intBitsToFloat(uf_remappedPS[0].w),R1f.x) + PV1f.y);
|
|
||||||
PV0f.w = R123f.w;
|
|
||||||
R1f.y = R7f.y + intBitsToFloat(0xbc97b426) * scaler;
|
|
||||||
PS0f = R1f.y;
|
|
||||||
// 3
|
|
||||||
R0f.x = (mul_nonIEEE(R5f.z,intBitsToFloat(uf_remappedPS[1].x)) + PV0f.y);
|
|
||||||
R0f.y = (mul_nonIEEE(R5f.w,intBitsToFloat(uf_remappedPS[1].x)) + PV0f.x);
|
|
||||||
R5f.z = (mul_nonIEEE(R5f.y,intBitsToFloat(uf_remappedPS[1].x)) + PV0f.z);
|
|
||||||
R5f.w = (mul_nonIEEE(R5f.x,intBitsToFloat(uf_remappedPS[1].x)) + PV0f.w);
|
|
||||||
R1f.x = R7f.x;
|
|
||||||
PS1f = R1f.x;
|
|
||||||
// 4
|
|
||||||
R5f.x = R7f.x;
|
|
||||||
R5f.y = R7f.y + intBitsToFloat(0x3cb60b60) * scaler;
|
|
||||||
R4f.z = R7f.x;
|
|
||||||
R4f.y = R7f.y + intBitsToFloat(0xbcb60b60) * scaler;
|
|
||||||
PS0f = R4f.y;
|
|
||||||
R6f.xyzw = (textureLod(textureUnitPS0, R6f.zy,0.0).xyzw);
|
|
||||||
R3f.xyzw = (textureLod(textureUnitPS0, R3f.xy,0.0).xyzw);
|
|
||||||
R1f.xyzw = (textureLod(textureUnitPS0, R1f.xy,0.0).xyzw);
|
|
||||||
R2f.xyzw = (textureLod(textureUnitPS0, R5f.xy,0.0).xyzw);
|
|
||||||
// 0
|
|
||||||
R123f.x = (mul_nonIEEE(intBitsToFloat(uf_remappedPS[1].x),R6f.z) + R0f.x);
|
|
||||||
PV0f.x = R123f.x;
|
|
||||||
R123f.y = (mul_nonIEEE(intBitsToFloat(uf_remappedPS[1].x),R6f.y) + R5f.z);
|
|
||||||
PV0f.y = R123f.y;
|
|
||||||
R123f.z = (mul_nonIEEE(intBitsToFloat(uf_remappedPS[1].x),R6f.x) + R5f.w);
|
|
||||||
PV0f.z = R123f.z;
|
|
||||||
R123f.w = (mul_nonIEEE(intBitsToFloat(uf_remappedPS[1].x),R6f.w) + R0f.y);
|
|
||||||
PV0f.w = R123f.w;
|
|
||||||
R0f.y = R7f.y + intBitsToFloat(0x3cd4629b) * scaler;
|
|
||||||
PS0f = R0f.y;
|
|
||||||
// 1
|
|
||||||
R123f.x = (mul_nonIEEE(intBitsToFloat(uf_remappedPS[1].y),R3f.y) + PV0f.y);
|
|
||||||
PV1f.x = R123f.x;
|
|
||||||
R123f.y = (mul_nonIEEE(intBitsToFloat(uf_remappedPS[1].y),R3f.w) + PV0f.w);
|
|
||||||
PV1f.y = R123f.y;
|
|
||||||
R123f.z = (mul_nonIEEE(intBitsToFloat(uf_remappedPS[1].y),R3f.x) + PV0f.z);
|
|
||||||
PV1f.z = R123f.z;
|
|
||||||
R123f.w = (mul_nonIEEE(intBitsToFloat(uf_remappedPS[1].y),R3f.z) + PV0f.x);
|
|
||||||
PV1f.w = R123f.w;
|
|
||||||
R0f.x = R7f.x;
|
|
||||||
PS1f = R0f.x;
|
|
||||||
// 2
|
|
||||||
R123f.x = (mul_nonIEEE(intBitsToFloat(uf_remappedPS[1].y),R1f.y) + PV1f.x);
|
|
||||||
PV0f.x = R123f.x;
|
|
||||||
R123f.y = (mul_nonIEEE(intBitsToFloat(uf_remappedPS[1].y),R1f.x) + PV1f.z);
|
|
||||||
PV0f.y = R123f.y;
|
|
||||||
R123f.z = (mul_nonIEEE(intBitsToFloat(uf_remappedPS[1].y),R1f.w) + PV1f.y);
|
|
||||||
PV0f.z = R123f.z;
|
|
||||||
R123f.w = (mul_nonIEEE(intBitsToFloat(uf_remappedPS[1].y),R1f.z) + PV1f.w);
|
|
||||||
PV0f.w = R123f.w;
|
|
||||||
R1f.y = R7f.y + intBitsToFloat(0xbcd4629b) * scaler;
|
|
||||||
PS0f = R1f.y;
|
|
||||||
// 3
|
|
||||||
backupReg0f = R2f.z;
|
|
||||||
R3f.x = (mul_nonIEEE(intBitsToFloat(uf_remappedPS[1].z),R2f.x) + PV0f.y);
|
|
||||||
R3f.y = (mul_nonIEEE(intBitsToFloat(uf_remappedPS[1].z),R2f.y) + PV0f.x);
|
|
||||||
R2f.z = (mul_nonIEEE(intBitsToFloat(uf_remappedPS[1].z),R2f.w) + PV0f.z);
|
|
||||||
R2f.w = (mul_nonIEEE(intBitsToFloat(uf_remappedPS[1].z),backupReg0f) + PV0f.w);
|
|
||||||
R1f.x = R7f.x;
|
|
||||||
PS1f = R1f.x;
|
|
||||||
// 4
|
|
||||||
R2f.x = R7f.x;
|
|
||||||
R2f.y = R7f.y + intBitsToFloat(0x3cf2b9d6) * scaler;
|
|
||||||
R6f.z = R7f.x;
|
|
||||||
R6f.y = R7f.y + intBitsToFloat(0xbcf2b9d6) * scaler;
|
|
||||||
PS0f = R6f.y;
|
|
||||||
R4f.xyzw = (textureLod(textureUnitPS0, R4f.zy,0.0).xyzw);
|
|
||||||
R0f.xyzw = (textureLod(textureUnitPS0, R0f.xy,0.0).xyzw);
|
|
||||||
R1f.xyzw = (textureLod(textureUnitPS0, R1f.xy,0.0).xyzw);
|
|
||||||
R5f.xyzw = (textureLod(textureUnitPS0, R2f.xy,0.0).xyzw);
|
|
||||||
// 0
|
|
||||||
R123f.x = (mul_nonIEEE(intBitsToFloat(uf_remappedPS[1].z),R4f.x) + R3f.x);
|
|
||||||
PV0f.x = R123f.x;
|
|
||||||
R123f.y = (mul_nonIEEE(intBitsToFloat(uf_remappedPS[1].z),R4f.w) + R2f.z);
|
|
||||||
PV0f.y = R123f.y;
|
|
||||||
R123f.z = (mul_nonIEEE(intBitsToFloat(uf_remappedPS[1].z),R4f.z) + R2f.w);
|
|
||||||
PV0f.z = R123f.z;
|
|
||||||
R123f.w = (mul_nonIEEE(intBitsToFloat(uf_remappedPS[1].z),R4f.y) + R3f.y);
|
|
||||||
PV0f.w = R123f.w;
|
|
||||||
R3f.y = R7f.y + intBitsToFloat(0x3d088888) * scaler;
|
|
||||||
PS0f = R3f.y;
|
|
||||||
// 1
|
|
||||||
R123f.x = (mul_nonIEEE(intBitsToFloat(uf_remappedPS[1].w),R0f.w) + PV0f.y);
|
|
||||||
PV1f.x = R123f.x;
|
|
||||||
R123f.y = (mul_nonIEEE(intBitsToFloat(uf_remappedPS[1].w),R0f.x) + PV0f.x);
|
|
||||||
PV1f.y = R123f.y;
|
|
||||||
R123f.z = (mul_nonIEEE(intBitsToFloat(uf_remappedPS[1].w),R0f.z) + PV0f.z);
|
|
||||||
PV1f.z = R123f.z;
|
|
||||||
R123f.w = (mul_nonIEEE(intBitsToFloat(uf_remappedPS[1].w),R0f.y) + PV0f.w);
|
|
||||||
PV1f.w = R123f.w;
|
|
||||||
R3f.x = R7f.x;
|
|
||||||
PS1f = R3f.x;
|
|
||||||
// 2
|
|
||||||
R123f.x = (mul_nonIEEE(intBitsToFloat(uf_remappedPS[1].w),R1f.w) + PV1f.x);
|
|
||||||
PV0f.x = R123f.x;
|
|
||||||
R123f.y = (mul_nonIEEE(intBitsToFloat(uf_remappedPS[1].w),R1f.z) + PV1f.z);
|
|
||||||
PV0f.y = R123f.y;
|
|
||||||
R123f.z = (mul_nonIEEE(intBitsToFloat(uf_remappedPS[1].w),R1f.y) + PV1f.w);
|
|
||||||
PV0f.z = R123f.z;
|
|
||||||
R123f.w = (mul_nonIEEE(intBitsToFloat(uf_remappedPS[1].w),R1f.x) + PV1f.y);
|
|
||||||
PV0f.w = R123f.w;
|
|
||||||
R1f.y = R7f.y + intBitsToFloat(0xbd088888) * scaler;
|
|
||||||
PS0f = R1f.y;
|
|
||||||
// 3
|
|
||||||
R0f.x = (mul_nonIEEE(R5f.z,intBitsToFloat(uf_remappedPS[2].x)) + PV0f.y);
|
|
||||||
R0f.y = (mul_nonIEEE(R5f.w,intBitsToFloat(uf_remappedPS[2].x)) + PV0f.x);
|
|
||||||
R5f.z = (mul_nonIEEE(R5f.y,intBitsToFloat(uf_remappedPS[2].x)) + PV0f.z);
|
|
||||||
R5f.w = (mul_nonIEEE(R5f.x,intBitsToFloat(uf_remappedPS[2].x)) + PV0f.w);
|
|
||||||
R1f.x = R7f.x;
|
|
||||||
PS1f = R1f.x;
|
|
||||||
// 4
|
|
||||||
R5f.x = R7f.x;
|
|
||||||
R5f.y = R7f.y + intBitsToFloat(0x3d17b426) * scaler;
|
|
||||||
R4f.z = R7f.x;
|
|
||||||
R4f.y = R7f.y + intBitsToFloat(0xbd17b426) * scaler;
|
|
||||||
PS0f = R4f.y;
|
|
||||||
R6f.xyzw = (textureLod(textureUnitPS0, R6f.zy,0.0).xyzw);
|
|
||||||
R3f.xyzw = (textureLod(textureUnitPS0, R3f.xy,0.0).xyzw);
|
|
||||||
R1f.xyzw = (textureLod(textureUnitPS0, R1f.xy,0.0).xyzw);
|
|
||||||
R2f.xyzw = (textureLod(textureUnitPS0, R5f.xy,0.0).xyzw);
|
|
||||||
// 0
|
|
||||||
R123f.x = (mul_nonIEEE(intBitsToFloat(uf_remappedPS[2].x),R6f.z) + R0f.x);
|
|
||||||
PV0f.x = R123f.x;
|
|
||||||
R123f.y = (mul_nonIEEE(intBitsToFloat(uf_remappedPS[2].x),R6f.y) + R5f.z);
|
|
||||||
PV0f.y = R123f.y;
|
|
||||||
R123f.z = (mul_nonIEEE(intBitsToFloat(uf_remappedPS[2].x),R6f.x) + R5f.w);
|
|
||||||
PV0f.z = R123f.z;
|
|
||||||
R123f.w = (mul_nonIEEE(intBitsToFloat(uf_remappedPS[2].x),R6f.w) + R0f.y);
|
|
||||||
PV0f.w = R123f.w;
|
|
||||||
R0f.y = R7f.y + intBitsToFloat(0x3d26dfc3) * scaler;
|
|
||||||
PS0f = R0f.y;
|
|
||||||
// 1
|
|
||||||
R123f.x = (mul_nonIEEE(intBitsToFloat(uf_remappedPS[2].y),R3f.y) + PV0f.y);
|
|
||||||
PV1f.x = R123f.x;
|
|
||||||
R123f.y = (mul_nonIEEE(intBitsToFloat(uf_remappedPS[2].y),R3f.w) + PV0f.w);
|
|
||||||
PV1f.y = R123f.y;
|
|
||||||
R123f.z = (mul_nonIEEE(intBitsToFloat(uf_remappedPS[2].y),R3f.x) + PV0f.z);
|
|
||||||
PV1f.z = R123f.z;
|
|
||||||
R123f.w = (mul_nonIEEE(intBitsToFloat(uf_remappedPS[2].y),R3f.z) + PV0f.x);
|
|
||||||
PV1f.w = R123f.w;
|
|
||||||
R0f.x = R7f.x;
|
|
||||||
PS1f = R0f.x;
|
|
||||||
// 2
|
|
||||||
backupReg0f = R7f.y;
|
|
||||||
R123f.x = (mul_nonIEEE(intBitsToFloat(uf_remappedPS[2].y),R1f.y) + PV1f.x);
|
|
||||||
PV0f.x = R123f.x;
|
|
||||||
R123f.y = (mul_nonIEEE(intBitsToFloat(uf_remappedPS[2].y),R1f.x) + PV1f.z);
|
|
||||||
PV0f.y = R123f.y;
|
|
||||||
R123f.z = (mul_nonIEEE(intBitsToFloat(uf_remappedPS[2].y),R1f.w) + PV1f.y);
|
|
||||||
PV0f.z = R123f.z;
|
|
||||||
R123f.w = (mul_nonIEEE(intBitsToFloat(uf_remappedPS[2].y),R1f.z) + PV1f.w);
|
|
||||||
PV0f.w = R123f.w;
|
|
||||||
R7f.y = backupReg0f + intBitsToFloat(0xbd26dfc3) * scaler;
|
|
||||||
PS0f = R7f.y;
|
|
||||||
// 3
|
|
||||||
backupReg0f = R2f.x;
|
|
||||||
backupReg1f = R2f.y;
|
|
||||||
backupReg2f = R2f.z;
|
|
||||||
R2f.x = (mul_nonIEEE(intBitsToFloat(uf_remappedPS[2].z),backupReg0f) + PV0f.y);
|
|
||||||
R2f.y = (mul_nonIEEE(intBitsToFloat(uf_remappedPS[2].z),backupReg1f) + PV0f.x);
|
|
||||||
R2f.z = (mul_nonIEEE(intBitsToFloat(uf_remappedPS[2].z),R2f.w) + PV0f.z);
|
|
||||||
R2f.w = (mul_nonIEEE(intBitsToFloat(uf_remappedPS[2].z),backupReg2f) + PV0f.w);
|
|
||||||
R4f.xyzw = (textureLod(textureUnitPS0, R4f.zy,0.0).xyzw);
|
|
||||||
R0f.xyzw = (textureLod(textureUnitPS0, R0f.xy,0.0).xyzw);
|
|
||||||
R7f.xyzw = (textureLod(textureUnitPS0, R7f.xy,0.0).xyzw);
|
|
||||||
// 0
|
|
||||||
R123f.x = (mul_nonIEEE(intBitsToFloat(uf_remappedPS[2].z),R4f.x) + R2f.x);
|
|
||||||
PV0f.x = R123f.x;
|
|
||||||
R123f.y = (mul_nonIEEE(intBitsToFloat(uf_remappedPS[2].z),R4f.w) + R2f.z);
|
|
||||||
PV0f.y = R123f.y;
|
|
||||||
R123f.z = (mul_nonIEEE(intBitsToFloat(uf_remappedPS[2].z),R4f.z) + R2f.w);
|
|
||||||
PV0f.z = R123f.z;
|
|
||||||
R123f.w = (mul_nonIEEE(intBitsToFloat(uf_remappedPS[2].z),R4f.y) + R2f.y);
|
|
||||||
PV0f.w = R123f.w;
|
|
||||||
// 1
|
|
||||||
R123f.x = (mul_nonIEEE(intBitsToFloat(uf_remappedPS[2].w),R0f.w) + PV0f.y);
|
|
||||||
PV1f.x = R123f.x;
|
|
||||||
R123f.y = (mul_nonIEEE(intBitsToFloat(uf_remappedPS[2].w),R0f.x) + PV0f.x);
|
|
||||||
PV1f.y = R123f.y;
|
|
||||||
R123f.z = (mul_nonIEEE(intBitsToFloat(uf_remappedPS[2].w),R0f.z) + PV0f.z);
|
|
||||||
PV1f.z = R123f.z;
|
|
||||||
R123f.w = (mul_nonIEEE(intBitsToFloat(uf_remappedPS[2].w),R0f.y) + PV0f.w);
|
|
||||||
PV1f.w = R123f.w;
|
|
||||||
// 2
|
|
||||||
backupReg0f = R7f.x;
|
|
||||||
backupReg1f = R7f.y;
|
|
||||||
backupReg2f = R7f.z;
|
|
||||||
backupReg3f = R7f.w;
|
|
||||||
R7f.x = (mul_nonIEEE(intBitsToFloat(uf_remappedPS[2].w),backupReg0f) + PV1f.y);
|
|
||||||
R7f.y = (mul_nonIEEE(intBitsToFloat(uf_remappedPS[2].w),backupReg1f) + PV1f.w);
|
|
||||||
R7f.z = (mul_nonIEEE(intBitsToFloat(uf_remappedPS[2].w),backupReg2f) + PV1f.z);
|
|
||||||
R7f.w = (mul_nonIEEE(intBitsToFloat(uf_remappedPS[2].w),backupReg3f) + PV1f.x);
|
|
||||||
// export
|
|
||||||
passPixelColor0 = vec4(R7f.x, R7f.y, R7f.z, R7f.w)* bloom;
|
|
||||||
}
|
|
@ -1,87 +0,0 @@
|
|||||||
#version 420
|
|
||||||
#extension GL_ARB_texture_gather : enable
|
|
||||||
#extension GL_ARB_separate_shader_objects : enable
|
|
||||||
// shader 6437bc3fbba05d3a //skyline
|
|
||||||
const float redScale = 0.95;
|
|
||||||
const float greenScale = 1.06;
|
|
||||||
const float blueScale = 1.28;
|
|
||||||
const float hazeFactor = 0.1;
|
|
||||||
|
|
||||||
|
|
||||||
//old contrasty, or just copy paste clarity
|
|
||||||
const float gamma = 1.025; // 1.0 is neutral Botw is already colour graded at this stage
|
|
||||||
const float exposure = 0.99; // 1.0 is neutral
|
|
||||||
const float vibrance = 0.75; // 0.0 is neutral
|
|
||||||
const float crushContrast = 0.0; // 0.0 is neutral. Use small increments, loss of shadow detail
|
|
||||||
|
|
||||||
vec3 contrasty(vec3 colour){
|
|
||||||
vec3 fColour = (colour.xyz);
|
|
||||||
fColour.x = fColour.x *redScale;
|
|
||||||
fColour.y = fColour.y *greenScale;
|
|
||||||
fColour.z = fColour.z *blueScale;
|
|
||||||
|
|
||||||
fColour = clamp(exposure * fColour, 0.0, 1.0);
|
|
||||||
fColour = pow(fColour, vec3(1.0 / gamma));
|
|
||||||
float luminance = fColour.r*0.299 + fColour.g*0.587 + fColour.b*0.114;
|
|
||||||
float mn = min(min(fColour.r, fColour.g), fColour.b);
|
|
||||||
float mx = max(max(fColour.r, fColour.g), fColour.b);
|
|
||||||
float sat = (1.0 - (mx - mn)) * (1.0 - mx) * luminance * 5.0;
|
|
||||||
vec3 lightness = vec3((mn + mx) / 2.0);
|
|
||||||
// vibrance
|
|
||||||
fColour = mix(fColour, mix(fColour, lightness, -vibrance), sat);
|
|
||||||
fColour = max(vec3(0.0), fColour - vec3(crushContrast));
|
|
||||||
return fColour;
|
|
||||||
}
|
|
||||||
|
|
||||||
uniform ivec4 uf_remappedPS[1];
|
|
||||||
layout(location = 0) out vec4 passPixelColor0;
|
|
||||||
uniform vec2 uf_fragCoordScale;
|
|
||||||
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);
|
|
||||||
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;
|
|
||||||
// 0
|
|
||||||
PV0f.x = intBitsToFloat(uf_remappedPS[0].w) * intBitsToFloat(0x3f7f0000);
|
|
||||||
PV0f.y = intBitsToFloat(uf_remappedPS[0].z) * intBitsToFloat(0x3f7f0000);
|
|
||||||
PV0f.z = intBitsToFloat(uf_remappedPS[0].y) * intBitsToFloat(0x3f7f0000);
|
|
||||||
PV0f.w = intBitsToFloat(uf_remappedPS[0].x) * intBitsToFloat(0x3f7f0000);
|
|
||||||
// 1
|
|
||||||
PV1f.x = fract(PV0f.w);
|
|
||||||
PV1f.y = fract(PV0f.x);
|
|
||||||
PV1f.z = fract(PV0f.y);
|
|
||||||
PV1f.w = fract(PV0f.z);
|
|
||||||
// 2
|
|
||||||
R0f.x = PV1f.x * intBitsToFloat(0x3f808081);
|
|
||||||
R0f.x = clamp(R0f.x, 0.0, 1.0);
|
|
||||||
R0f.y = PV1f.w * intBitsToFloat(0x3f808081);
|
|
||||||
R0f.y = clamp(R0f.y, 0.0, 1.0);
|
|
||||||
R0f.z = PV1f.z * intBitsToFloat(0x3f808081);
|
|
||||||
R0f.z = clamp(R0f.z, 0.0, 1.0);
|
|
||||||
R0f.w = PV1f.y * intBitsToFloat(0x3f808081);
|
|
||||||
R0f.w = clamp(R0f.w, 0.0, 1.0);
|
|
||||||
// export
|
|
||||||
|
|
||||||
R0f.xyz = contrasty(R0f.xyz);
|
|
||||||
passPixelColor0 = vec4(R0f.x, R0f.y, R0f.z, R0f.w);
|
|
||||||
|
|
||||||
|
|
||||||
//passPixelColor0 = vec4(R0f.x*redScale, R0f.y*greenScale, R0f.z*blueScale, R0f.w);
|
|
||||||
}
|
|
@ -1,100 +0,0 @@
|
|||||||
#version 420
|
|
||||||
#extension GL_ARB_texture_gather : enable
|
|
||||||
#extension GL_ARB_separate_shader_objects : enable
|
|
||||||
// shader afa7dc4b804ad02f // sky
|
|
||||||
const float redScale = 0.95;
|
|
||||||
const float greenScale = 1.06;
|
|
||||||
const float blueScale = 1.28;
|
|
||||||
const float hazeFactor = 0.1;
|
|
||||||
|
|
||||||
|
|
||||||
//old contrasty, or just copy paste clarity
|
|
||||||
const float gamma = 1.025; // 1.0 is neutral Botw is already colour graded at this stage
|
|
||||||
const float exposure = 0.99; // 1.0 is neutral
|
|
||||||
const float vibrance = 0.75; // 0.0 is neutral
|
|
||||||
const float crushContrast = 0.0; // 0.0 is neutral. Use small increments, loss of shadow detail
|
|
||||||
|
|
||||||
vec3 contrasty(vec3 colour){
|
|
||||||
vec3 fColour = (colour.xyz);
|
|
||||||
fColour.x = fColour.x *redScale;
|
|
||||||
fColour.y = fColour.y *greenScale;
|
|
||||||
fColour.z = fColour.z *blueScale;
|
|
||||||
|
|
||||||
fColour = clamp(exposure * fColour, 0.0, 1.0);
|
|
||||||
fColour = pow(fColour, vec3(1.0 / gamma));
|
|
||||||
float luminance = fColour.r*0.299 + fColour.g*0.587 + fColour.b*0.114;
|
|
||||||
float mn = min(min(fColour.r, fColour.g), fColour.b);
|
|
||||||
float mx = max(max(fColour.r, fColour.g), fColour.b);
|
|
||||||
float sat = (1.0 - (mx - mn)) * (1.0 - mx) * luminance * 5.0;
|
|
||||||
vec3 lightness = vec3((mn + mx) / 2.0);
|
|
||||||
// vibrance
|
|
||||||
fColour = mix(fColour, mix(fColour, lightness, -vibrance), sat);
|
|
||||||
fColour = max(vec3(0.0), fColour - vec3(crushContrast));
|
|
||||||
return fColour;
|
|
||||||
}
|
|
||||||
|
|
||||||
uniform ivec4 uf_remappedPS[1];
|
|
||||||
layout(binding = 0) uniform sampler2D textureUnitPS0;// Tex0 addr 0x2f74d800 res 64x64x1 dim 1 tm: 4 format 0001 compSel: 0 0 0 0 mipView: 0x0 (num 0x7) sliceView: 0x0 (num 0x1) Sampler0 ClampX/Y/Z: 0 0 2 border: 0
|
|
||||||
layout(location = 0) in vec4 passParameterSem0;
|
|
||||||
layout(location = 1) in vec4 passParameterSem1;
|
|
||||||
layout(location = 0) out vec4 passPixelColor0;
|
|
||||||
uniform vec2 uf_fragCoordScale;
|
|
||||||
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 R127f = vec4(0.0);
|
|
||||||
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 = passParameterSem0;
|
|
||||||
R1f = passParameterSem1;
|
|
||||||
R1f.xyz = (texture(textureUnitPS0, R1f.xy).xyz);
|
|
||||||
// 0
|
|
||||||
backupReg0f = R0f.w;
|
|
||||||
PV0f.x = intBitsToFloat(uf_remappedPS[0].x) * intBitsToFloat(0x3f7f0000);
|
|
||||||
PV0f.y = intBitsToFloat(uf_remappedPS[0].w) * intBitsToFloat(0x3f7f0000);
|
|
||||||
PV0f.z = intBitsToFloat(uf_remappedPS[0].z) * intBitsToFloat(0x3f7f0000);
|
|
||||||
PV0f.w = intBitsToFloat(uf_remappedPS[0].y) * intBitsToFloat(0x3f7f0000);
|
|
||||||
R127f.x = backupReg0f * intBitsToFloat(0x3f808081);
|
|
||||||
PS0f = R127f.x;
|
|
||||||
// 1
|
|
||||||
PV1f.x = fract(PV0f.w);
|
|
||||||
PV1f.y = fract(PV0f.x);
|
|
||||||
PV1f.z = fract(PV0f.y);
|
|
||||||
PV1f.w = fract(PV0f.z);
|
|
||||||
// 2
|
|
||||||
PV0f.y = PV1f.x * intBitsToFloat(0x3f808081);
|
|
||||||
PV0f.z = PV1f.y * intBitsToFloat(0x3f808081);
|
|
||||||
PV0f.w = PV1f.w * intBitsToFloat(0x3f808081);
|
|
||||||
R0f.w = mul_nonIEEE(PV1f.z, R127f.x);
|
|
||||||
R0f.w = clamp(R0f.w, 0.0, 1.0);
|
|
||||||
PS0f = R0f.w;
|
|
||||||
// 3
|
|
||||||
R0f.x = mul_nonIEEE(R1f.x, PV0f.z);
|
|
||||||
R0f.x = clamp(R0f.x, 0.0, 1.0);
|
|
||||||
R0f.y = mul_nonIEEE(R1f.y, PV0f.y);
|
|
||||||
R0f.y = clamp(R0f.y, 0.0, 1.0);
|
|
||||||
R0f.z = mul_nonIEEE(R1f.z, PV0f.w);
|
|
||||||
R0f.z = clamp(R0f.z, 0.0, 1.0);
|
|
||||||
// export
|
|
||||||
|
|
||||||
R0f.xyz = contrasty(R0f.xyz);
|
|
||||||
passPixelColor0 = vec4(R0f.x, R0f.y, R0f.z, R0f.w);
|
|
||||||
}
|
|
@ -1,173 +0,0 @@
|
|||||||
#version 420
|
|
||||||
#extension GL_ARB_texture_gather : enable
|
|
||||||
#extension GL_ARB_separate_shader_objects : enable
|
|
||||||
// shader c14019840473ff86 //aa
|
|
||||||
const float redScale = 0.92;
|
|
||||||
const float greenScale = 1.02; //5
|
|
||||||
const float blueScale = 1.24;
|
|
||||||
const float hazeFactor = 0.1;
|
|
||||||
|
|
||||||
const float gamma = 0.98; // 1.0 is neutral Botw is already colour graded at this stage
|
|
||||||
const float exposure = 1.075; // 1.0 is neutral
|
|
||||||
const float vibrance = 0.37; // 0.0 is neutral
|
|
||||||
const float crushContrast = 0.00; // 0.0 is neutral. Use small increments, loss of shadow detail
|
|
||||||
|
|
||||||
float Sigmoid (float x) {
|
|
||||||
|
|
||||||
return 1.0 / (1.0 + (exp(-(x - 0.5) * 5.5)));
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
vec3 contrasty(vec3 colour){
|
|
||||||
vec3 fColour = (colour.xyz);
|
|
||||||
fColour.x = fColour.x *redScale;
|
|
||||||
fColour.y = fColour.y *greenScale;
|
|
||||||
fColour.z = fColour.z *blueScale;
|
|
||||||
|
|
||||||
fColour = clamp(exposure * fColour, 0.0, 1.0);
|
|
||||||
fColour = pow(fColour, vec3(1.0 / gamma));
|
|
||||||
float luminance = fColour.r*0.299 + fColour.g*0.587 + fColour.b*0.114;
|
|
||||||
float mn = min(min(fColour.r, fColour.g), fColour.b);
|
|
||||||
float mx = max(max(fColour.r, fColour.g), fColour.b);
|
|
||||||
float sat = (1.0 - (mx - mn)) * (1.0 - mx) * luminance * 5.0;
|
|
||||||
vec3 lightness = vec3((mn + mx) / 2.0);
|
|
||||||
// vibrance
|
|
||||||
fColour = mix(fColour, mix(fColour, lightness, -vibrance), sat);
|
|
||||||
fColour = max(vec3(0.0), fColour - vec3(crushContrast));
|
|
||||||
return fColour;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
layout(binding = 0) uniform sampler2D textureUnitPS0;// Tex0 addr 0xf4001000 res 1920x1080x1 dim 1 tm: 4 format 001a compSel: 0 1 2 3 mipView: 0x0 (num 0x1) sliceView: 0x0 (num 0x1) Sampler0 ClampX/Y/Z: 2 2 2 border: 0
|
|
||||||
layout(binding = 1) uniform sampler2D textureUnitPS1;// Tex1 addr 0xf5187000 res 1920x1080x1 dim 1 tm: 4 format 0011 compSel: 0 4 4 5 mipView: 0x0 (num 0x1) sliceView: 0x0 (num 0x1) Sampler1 ClampX/Y/Z: 2 2 2 border: 0
|
|
||||||
layout(location = 0) in vec4 passParameterSem0;
|
|
||||||
layout(location = 0) out vec4 passPixelColor0;
|
|
||||||
uniform vec2 uf_fragCoordScale;
|
|
||||||
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 R123f = vec4(0.0);
|
|
||||||
vec4 R127f = vec4(0.0);
|
|
||||||
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 = passParameterSem0;
|
|
||||||
R0f.w = (textureGather(textureUnitPS1, R0f.xy).y);
|
|
||||||
// 0
|
|
||||||
R1f.x = R0f.x + intBitsToFloat(0xba088889);
|
|
||||||
R1f.y = R0f.y + intBitsToFloat(0xba72b9d6);
|
|
||||||
R2f.z = R0f.x;
|
|
||||||
R2f.y = R0f.y + intBitsToFloat(0xba72b9d6);
|
|
||||||
PS0f = R2f.y;
|
|
||||||
// 1
|
|
||||||
R3f.x = R0f.x + intBitsToFloat(0xba088889);
|
|
||||||
R3f.y = R0f.y;
|
|
||||||
R1f.xyzw = (textureGather(textureUnitPS1, R1f.xy).xyzw);
|
|
||||||
R2f.yz = (textureGather(textureUnitPS1, R2f.zy).yz);
|
|
||||||
R3f.xy = (textureGather(textureUnitPS1, R3f.xy).xy);
|
|
||||||
// 0
|
|
||||||
PV0f.x = R2f.z + R3f.x;
|
|
||||||
PV0f.y = R1f.w + R0f.w;
|
|
||||||
PV0f.z = R1f.z + R3f.y;
|
|
||||||
PV0f.w = R1f.x + R2f.y;
|
|
||||||
// 1
|
|
||||||
R123f.x = (R1f.y * 2.0 + -(PV0f.x));
|
|
||||||
PV1f.x = R123f.x;
|
|
||||||
R123f.y = (R1f.y * 2.0 + -(PV0f.y));
|
|
||||||
PV1f.y = R123f.y;
|
|
||||||
R123f.z = (R1f.y * 2.0 + -(PV0f.z));
|
|
||||||
PV1f.z = R123f.z;
|
|
||||||
R123f.w = (R1f.y * 2.0 + -(PV0f.w));
|
|
||||||
PV1f.w = R123f.w;
|
|
||||||
// 2
|
|
||||||
PV0f.x = max(PV1f.x, -(PV1f.x));
|
|
||||||
PV0f.y = max(PV1f.y, -(PV1f.y));
|
|
||||||
PV0f.z = max(PV1f.z, -(PV1f.z));
|
|
||||||
PV0f.w = max(PV1f.w, -(PV1f.w));
|
|
||||||
// 3
|
|
||||||
PV1f.x = PV0f.x + intBitsToFloat(0xb400d959);
|
|
||||||
PV1f.y = PV0f.y + intBitsToFloat(0xb400d959);
|
|
||||||
PV1f.z = PV0f.z + intBitsToFloat(0xb400d959);
|
|
||||||
PV1f.w = PV0f.w + intBitsToFloat(0xb400d959);
|
|
||||||
// 4
|
|
||||||
R123f.x = intBitsToFloat(((PV1f.w >= 0.0)?(floatBitsToInt(1.0)):(0)));
|
|
||||||
PV0f.x = R123f.x;
|
|
||||||
R123f.y = intBitsToFloat(((PV1f.z >= 0.0)?(floatBitsToInt(1.0)):(0)));
|
|
||||||
PV0f.y = R123f.y;
|
|
||||||
R123f.z = intBitsToFloat(((PV1f.y >= 0.0)?(floatBitsToInt(1.0)):(0)));
|
|
||||||
PV0f.z = R123f.z;
|
|
||||||
R123f.w = intBitsToFloat(((PV1f.x >= 0.0)?(floatBitsToInt(1.0)):(0)));
|
|
||||||
PV0f.w = R123f.w;
|
|
||||||
// 5
|
|
||||||
tempf.x = dot(vec4(PV0f.x,PV0f.y,PV0f.z,PV0f.w),vec4(0.25,0.25,0.25,0.25));
|
|
||||||
PV1f.x = tempf.x;
|
|
||||||
PV1f.y = tempf.x;
|
|
||||||
PV1f.z = tempf.x;
|
|
||||||
PV1f.w = tempf.x;
|
|
||||||
// 6
|
|
||||||
R127f.z = PV1f.x * intBitsToFloat(0x3f400000)*0.5;
|
|
||||||
PV0f.z = R127f.z;
|
|
||||||
// 7
|
|
||||||
R1f.x = (PV0f.z * intBitsToFloat(0xba088889)*0.5 + R0f.x);
|
|
||||||
R1f.y = R0f.y;
|
|
||||||
R2f.z = R0f.x;
|
|
||||||
R2f.y = (PV0f.z * intBitsToFloat(0xba72b9d6)*0.5 + R0f.y);
|
|
||||||
PS1f = R2f.y;
|
|
||||||
// 8
|
|
||||||
R3f.x = (R127f.z * intBitsToFloat(0x3a088889)*0.5 + R0f.x);
|
|
||||||
R3f.y = R0f.y;
|
|
||||||
R0f.w = (R127f.z * intBitsToFloat(0x3a72b9d6) + R0f.y);
|
|
||||||
R1f.xyzw = (texture(textureUnitPS0, R1f.xy).xyzw);
|
|
||||||
R2f.xyzw = (texture(textureUnitPS0, R2f.zy).xyzw);
|
|
||||||
R3f.xyzw = (texture(textureUnitPS0, R3f.xy).xyzw);
|
|
||||||
R0f.xyzw = (texture(textureUnitPS0, R0f.xw).xyzw);
|
|
||||||
// 0
|
|
||||||
PV0f.x = R1f.w + R2f.w;
|
|
||||||
PV0f.y = R1f.z + R2f.z;
|
|
||||||
PV0f.z = R1f.y + R2f.y;
|
|
||||||
PV0f.w = R1f.x + R2f.x;
|
|
||||||
// 1
|
|
||||||
PV1f.x = R3f.w + PV0f.x;
|
|
||||||
PV1f.y = R3f.z + PV0f.y;
|
|
||||||
PV1f.z = R3f.y + PV0f.z;
|
|
||||||
PV1f.w = R3f.x + PV0f.w;
|
|
||||||
// 2
|
|
||||||
backupReg0f = R0f.y;
|
|
||||||
backupReg1f = R0f.x;
|
|
||||||
PV0f.x = R0f.w + PV1f.x;
|
|
||||||
PV0f.y = R0f.z + PV1f.y;
|
|
||||||
PV0f.z = backupReg0f + PV1f.z;
|
|
||||||
PV0f.w = backupReg1f + PV1f.w;
|
|
||||||
// 3
|
|
||||||
R0f.x = PV0f.w * 0.25;
|
|
||||||
R0f.y = PV0f.z * 0.25;
|
|
||||||
R0f.z = PV0f.y * 0.25;
|
|
||||||
R0f.w = PV0f.x * 0.25;
|
|
||||||
// export
|
|
||||||
//R0f.xyz = vec3(Sigmoid(R0f.x), Sigmoid(R0f.y),Sigmoid(R0f.z));
|
|
||||||
//R0f.xyz = contrasty(R0f.xyz);
|
|
||||||
//R0f.xyz = clamp(R0f.xyz,0,1);
|
|
||||||
|
|
||||||
//vec3 mix(vec3 x, vec3 y, float a)
|
|
||||||
R0f.xyz = mix(contrasty(R0f.xyz), vec3(Sigmoid(R0f.x), Sigmoid(R0f.y),Sigmoid(R0f.z)), 0.25);
|
|
||||||
passPixelColor0 = vec4(R0f.x, R0f.y, R0f.z, R0f.w);
|
|
||||||
}
|
|
@ -1,187 +0,0 @@
|
|||||||
#version 420
|
|
||||||
#extension GL_ARB_texture_gather : enable
|
|
||||||
#extension GL_ARB_separate_shader_objects : enable
|
|
||||||
// shader f42bb0ed469dd804 //sun
|
|
||||||
|
|
||||||
const float redScale = 0.92;
|
|
||||||
const float greenScale = 1.02; //5
|
|
||||||
const float blueScale = 1.24;
|
|
||||||
const float hazeFactor = 0.1;
|
|
||||||
|
|
||||||
const float gamma = 0.98; // 1.0 is neutral Botw is already colour graded at this stage
|
|
||||||
const float exposure = 1.075; // 1.0 is neutral
|
|
||||||
const float vibrance = 0.37; // 0.0 is neutral
|
|
||||||
const float crushContrast = 0.00; // 0.0 is neutral. Use small increments, loss of shadow detail
|
|
||||||
|
|
||||||
float Sigmoid (float x) {
|
|
||||||
|
|
||||||
return 1.0 / (1.0 + (exp(-(x - 0.5) * 5.5)));
|
|
||||||
}
|
|
||||||
|
|
||||||
vec3 contrasty(vec3 colour){
|
|
||||||
vec3 fColour = (colour.xyz);
|
|
||||||
fColour.x = fColour.x *redScale;
|
|
||||||
fColour.y = fColour.y *greenScale;
|
|
||||||
fColour.z = fColour.z *blueScale;
|
|
||||||
|
|
||||||
fColour = clamp(exposure * fColour, 0.0, 1.0);
|
|
||||||
fColour = pow(fColour, vec3(1.0 / gamma));
|
|
||||||
float luminance = fColour.r*0.299 + fColour.g*0.587 + fColour.b*0.114;
|
|
||||||
float mn = min(min(fColour.r, fColour.g), fColour.b);
|
|
||||||
float mx = max(max(fColour.r, fColour.g), fColour.b);
|
|
||||||
float sat = (1.0 - (mx - mn)) * (1.0 - mx) * luminance * 5.0;
|
|
||||||
vec3 lightness = vec3((mn + mx) / 2.0);
|
|
||||||
// vibrance
|
|
||||||
fColour = mix(fColour, mix(fColour, lightness, -vibrance), sat);
|
|
||||||
fColour = max(vec3(0.0), fColour - vec3(crushContrast));
|
|
||||||
return fColour;
|
|
||||||
}
|
|
||||||
|
|
||||||
uniform ivec4 uf_remappedPS[3];
|
|
||||||
layout(binding = 0) uniform sampler2D textureUnitPS0;// Tex0 addr 0x2f478000 res 32x32x1 dim 1 tm: 4 format 0001 compSel: 0 0 0 0 mipView: 0x0 (num 0x6) sliceView: 0x0 (num 0x1) Sampler0 ClampX/Y/Z: 2 2 2 border: 0
|
|
||||||
layout(binding = 1) uniform sampler2D textureUnitPS1;// Tex1 addr 0x2f3e2800 res 32x32x1 dim 1 tm: 4 format 0002 compSel: 0 0 0 1 mipView: 0x0 (num 0x1) sliceView: 0x0 (num 0x1) Sampler1 ClampX/Y/Z: 2 2 2 border: 0
|
|
||||||
layout(binding = 2) uniform sampler2D textureUnitPS2;// Tex2 addr 0x24dfb000 res 960x540x1 dim 1 tm: 4 format 001a compSel: 0 1 2 3 mipView: 0x0 (num 0x1) sliceView: 0x0 (num 0x1) Sampler2 ClampX/Y/Z: 2 2 2 border: 0
|
|
||||||
layout(location = 0) in vec4 passParameterSem1;
|
|
||||||
layout(location = 1) in vec4 passParameterSem2;
|
|
||||||
layout(location = 2) in vec4 passParameterSem3;
|
|
||||||
layout(location = 0) out vec4 passPixelColor0;
|
|
||||||
uniform vec2 uf_fragCoordScale;
|
|
||||||
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 R123f = vec4(0.0);
|
|
||||||
vec4 R124f = vec4(0.0);
|
|
||||||
vec4 R125f = vec4(0.0);
|
|
||||||
vec4 R126f = vec4(0.0);
|
|
||||||
vec4 R127f = vec4(0.0);
|
|
||||||
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 = passParameterSem1;
|
|
||||||
R1f = passParameterSem2;
|
|
||||||
R2f = passParameterSem3;
|
|
||||||
R0f.xyz = (texture(textureUnitPS0, R0f.xy).wzy);
|
|
||||||
R1f.xyzw = (texture(textureUnitPS1, R1f.xy).xyzw);
|
|
||||||
// 0
|
|
||||||
backupReg0f = R0f.y;
|
|
||||||
R125f.x = intBitsToFloat(uf_remappedPS[0].w);
|
|
||||||
PV0f.x = R125f.x;
|
|
||||||
PV0f.y = R0f.z * intBitsToFloat(0x437f0000);
|
|
||||||
PV0f.z = backupReg0f * intBitsToFloat(0x437f0000);
|
|
||||||
PV0f.w = R0f.x * intBitsToFloat(0x437f0000);
|
|
||||||
R127f.w = 1.0 / R2f.z;
|
|
||||||
PS0f = R127f.w;
|
|
||||||
// 1
|
|
||||||
PV1f.x = floor(PV0f.w);
|
|
||||||
R125f.y = intBitsToFloat(uf_remappedPS[1].w);
|
|
||||||
PV1f.y = R125f.y;
|
|
||||||
PV1f.z = floor(PV0f.y);
|
|
||||||
PV1f.w = floor(PV0f.z);
|
|
||||||
R124f.w = 1.0 / PV0f.x;
|
|
||||||
PS1f = R124f.w;
|
|
||||||
// 2
|
|
||||||
R127f.xyz = vec3(PV1f.x,PV1f.w,PV1f.z) + vec3(intBitsToFloat(0xc3000000),intBitsToFloat(0xc3000000),intBitsToFloat(0xc3000000));
|
|
||||||
PV0f.x = R127f.x;
|
|
||||||
PV0f.y = R127f.y;
|
|
||||||
PV0f.z = R127f.z;
|
|
||||||
R125f.w = mul_nonIEEE(R2f.x, R127f.w);
|
|
||||||
R126f.x = 1.0 / PV1f.y;
|
|
||||||
PS0f = R126f.x;
|
|
||||||
// 3
|
|
||||||
tempf.x = dot(vec4(intBitsToFloat(uf_remappedPS[1].x),intBitsToFloat(uf_remappedPS[1].y),intBitsToFloat(uf_remappedPS[1].z),-0.0),vec4(PV0f.x,PV0f.y,PV0f.z,0.0));
|
|
||||||
PV1f.x = tempf.x;
|
|
||||||
PV1f.y = tempf.x;
|
|
||||||
PV1f.z = tempf.x;
|
|
||||||
PV1f.w = tempf.x;
|
|
||||||
R126f.z = tempf.x;
|
|
||||||
R126f.y = mul_nonIEEE(R2f.y, R127f.w);
|
|
||||||
PS1f = R126f.y;
|
|
||||||
// 4
|
|
||||||
tempf.x = dot(vec4(intBitsToFloat(uf_remappedPS[0].x),intBitsToFloat(uf_remappedPS[0].y),intBitsToFloat(uf_remappedPS[0].z),-0.0),vec4(R127f.x,R127f.y,R127f.z,0.0));
|
|
||||||
PV0f.x = tempf.x;
|
|
||||||
PV0f.y = tempf.x;
|
|
||||||
PV0f.z = tempf.x;
|
|
||||||
PV0f.w = tempf.x;
|
|
||||||
R127f.w = tempf.x;
|
|
||||||
R127f.y = max(PV1f.x, -(PV1f.x));
|
|
||||||
PS0f = R127f.y;
|
|
||||||
// 5
|
|
||||||
R127f.x = max(PV0f.x, -(PV0f.x));
|
|
||||||
PV1f.x = R127f.x;
|
|
||||||
PV1f.y = (R126f.z > 0.0)?1.0:0.0;
|
|
||||||
PV1f.z = PS0f + intBitsToFloat(0xc4800000);
|
|
||||||
R126f.w = (PV0f.x > 0.0)?1.0:0.0;
|
|
||||||
PS1f = (0.0 > R126f.z)?1.0:0.0;
|
|
||||||
// 6
|
|
||||||
PV0f.x = (0.0 > R127f.w)?1.0:0.0;
|
|
||||||
R123f.y = (PV1f.z * intBitsToFloat(0x3a800000) + 1.0);
|
|
||||||
PV0f.y = R123f.y;
|
|
||||||
R126f.z = PV1f.y + -(PS1f);
|
|
||||||
PV0f.w = PV1f.x + intBitsToFloat(0xc4800000);
|
|
||||||
PS0f = intBitsToFloat(uf_remappedPS[2].w);
|
|
||||||
PS0f = clamp(PS0f, 0.0, 1.0);
|
|
||||||
// 7
|
|
||||||
backupReg0f = R126f.w;
|
|
||||||
R123f.x = (PV0f.w * intBitsToFloat(0x3a800000) + 1.0);
|
|
||||||
PV1f.x = R123f.x;
|
|
||||||
PV1f.z = floor(PV0f.y);
|
|
||||||
R126f.w = backupReg0f + -(PV0f.x);
|
|
||||||
R0f.w = mul_nonIEEE(R1f.w, PS0f);
|
|
||||||
R0f.w = clamp(R0f.w, 0.0, 1.0);
|
|
||||||
PS1f = R0f.w;
|
|
||||||
// 8
|
|
||||||
R123f.y = (-(PV1f.z) * intBitsToFloat(0x44800000) + R127f.y);
|
|
||||||
PV0f.y = R123f.y;
|
|
||||||
PV0f.w = floor(PV1f.x);
|
|
||||||
// 9
|
|
||||||
R123f.x = (-(PV0f.w) * intBitsToFloat(0x44800000) + R127f.x);
|
|
||||||
PV1f.x = R123f.x;
|
|
||||||
PV1f.y = mul_nonIEEE(PV0f.y, R126f.z);
|
|
||||||
// 10
|
|
||||||
PV0f.x = mul_nonIEEE(PV1f.x, R126f.w);
|
|
||||||
R123f.z = (mul_nonIEEE(R125f.w,R126f.x) + PV1f.y);
|
|
||||||
PV0f.z = R123f.z;
|
|
||||||
// 11
|
|
||||||
R2f.x = mul_nonIEEE(R125f.y, PV0f.z);
|
|
||||||
R123f.w = (mul_nonIEEE(R126f.y,R124f.w) + PV0f.x);
|
|
||||||
PV1f.w = R123f.w;
|
|
||||||
// 12
|
|
||||||
R2f.y = mul_nonIEEE(R125f.x, PV1f.w);
|
|
||||||
R2f.xyz = (texture(textureUnitPS2, R2f.xy).xyz);
|
|
||||||
// 0
|
|
||||||
PV0f.y = R2f.z;
|
|
||||||
PV0f.y = clamp(PV0f.y, 0.0, 1.0);
|
|
||||||
PV0f.z = R2f.y;
|
|
||||||
PV0f.z = clamp(PV0f.z, 0.0, 1.0);
|
|
||||||
PV0f.w = R2f.x;
|
|
||||||
PV0f.w = clamp(PV0f.w, 0.0, 1.0);
|
|
||||||
// 1
|
|
||||||
R0f.x = mul_nonIEEE(R1f.x, PV0f.w);
|
|
||||||
R0f.x = clamp(R0f.x, 0.0, 1.0);
|
|
||||||
R0f.y = mul_nonIEEE(R1f.y, PV0f.z);
|
|
||||||
R0f.y = clamp(R0f.y, 0.0, 1.0);
|
|
||||||
R0f.z = mul_nonIEEE(R1f.z, PV0f.y);
|
|
||||||
R0f.z = clamp(R0f.z, 0.0, 1.0);
|
|
||||||
// export
|
|
||||||
|
|
||||||
R0f.xyz = mix(contrasty(R0f.xyz), vec3(Sigmoid(R0f.x), Sigmoid(R0f.y),Sigmoid(R0f.z)), 0.25);
|
|
||||||
passPixelColor0 = vec4(R0f.x, R0f.y, R0f.z, R0f.w);
|
|
||||||
}
|
|
@ -1,12 +0,0 @@
|
|||||||
[TPHDv81]
|
|
||||||
moduleMatches = 0x1A03E108
|
|
||||||
#Move some look tweaks to patches instead of shaders
|
|
||||||
|
|
||||||
#rodata constants
|
|
||||||
###exp and haze settings
|
|
||||||
0x100C3EB8 = .float 0.0034 ## Near world (over)exposure
|
|
||||||
0x100C36C4 = .float 0.0035 ## Bloom npc/object (over) "
|
|
||||||
0x100C3780 = .float 0.0034 ## Distant world (over)exposure
|
|
||||||
0x100C3774 = .float 22.0 ### haze 21 = default 21++~ gradually less
|
|
||||||
|
|
||||||
#0x100871C8 = .float 0.01 #100871C8:.float 0.00050000002 ###cloud float
|
|
@ -1,21 +0,0 @@
|
|||||||
[Definition]
|
|
||||||
titleIds = 000500001019C800,000500001019E600,000500001019E500
|
|
||||||
name = "The Legend of Zelda: Twilight Princess HD - Contrasty patch"
|
|
||||||
version = 2
|
|
||||||
|
|
||||||
#v0.0 Lets see of this works
|
|
||||||
#v0.1 "Baked" overexposure
|
|
||||||
#v0.2 haze world exposure
|
|
||||||
|
|
||||||
|
|
||||||
#[TextureRedefine] #general
|
|
||||||
#formats = 0x19,0x1a
|
|
||||||
#overwriteFormat = 0x1f
|
|
||||||
|
|
||||||
#[TextureRedefine] #horizon
|
|
||||||
#formats = 0x001
|
|
||||||
#overwriteFormat = 0x005
|
|
||||||
|
|
||||||
#[TextureRedefine] #clouds
|
|
||||||
#formats = 0x007
|
|
||||||
#overwriteFormat = 0x00f
|
|
@ -1,5 +0,0 @@
|
|||||||
# Found by jediyoshi, Shadow format found by SunBroDave
|
|
||||||
[Definition]
|
|
||||||
titleIds = 0005000010143400,0005000010143600,0005000010143500
|
|
||||||
name = "The Legend of Zelda: The Wind Waker HD - GC colour grading" # aka teal is not blue... nor is purple.
|
|
||||||
version = 2
|
|
@ -1,51 +0,0 @@
|
|||||||
#version 420
|
|
||||||
#extension GL_ARB_texture_gather : enable
|
|
||||||
// shader ff71dcd2ad4defdc
|
|
||||||
uniform ivec4 uf_remappedPS[4];
|
|
||||||
layout(binding = 0) uniform sampler2D textureUnitPS0;// Tex0 addr 0xf5807800 res 1920x1080x1 dim 1 tm: 4 format 0019 compSel: 0 1 2 3 mipView: 0x0 (num 0x1) sliceView: 0x0 (num 0x1) Sampler0 ClampX/Y/Z: 2 2 2 border: 1
|
|
||||||
layout(binding = 1) uniform sampler2D textureUnitPS1;// Tex1 addr 0xf4000800 res 1920x1080x1 dim 1 tm: 4 format 0001 compSel: 0 4 4 5 mipView: 0x0 (num 0x1) sliceView: 0x0 (num 0x1) Sampler1 ClampX/Y/Z: 2 2 2 border: 1
|
|
||||||
layout(location = 0) in vec4 passParameterSem2;
|
|
||||||
layout(location = 0) out vec4 passPixelColor0;
|
|
||||||
uniform vec2 uf_fragCoordScale;
|
|
||||||
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);
|
|
||||||
vec4 R126f = vec4(0.0);
|
|
||||||
vec4 R127f = vec4(0.0);
|
|
||||||
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;
|
|
||||||
bool activeMaskStack[2];
|
|
||||||
bool activeMaskStackC[3];
|
|
||||||
activeMaskStack[0] = false;
|
|
||||||
activeMaskStackC[0] = false;
|
|
||||||
activeMaskStackC[1] = false;
|
|
||||||
activeMaskStack[0] = true;
|
|
||||||
activeMaskStackC[0] = true;
|
|
||||||
activeMaskStackC[1] = true;
|
|
||||||
vec3 cubeMapSTM;
|
|
||||||
int cubeMapFaceId;
|
|
||||||
R0f = passParameterSem2;
|
|
||||||
//R1f.xyzw = (textureGather(textureUnitPS1, R0f.xy).wzxy);
|
|
||||||
R2f.xyzw= (texture(textureUnitPS0, R0f.xy).xyzw);
|
|
||||||
passPixelColor0 = R2f.xyzw;
|
|
||||||
}
|
|
@ -1,4 +0,0 @@
|
|||||||
[Definition]
|
|
||||||
titleIds = 0005000010143400,0005000010143600,0005000010143500
|
|
||||||
name = "The Legend of Zelda: The Wind Waker HD - No Anti-Aliasing"
|
|
||||||
version = 2
|
|
@ -1,45 +0,0 @@
|
|||||||
#version 420
|
|
||||||
#extension GL_ARB_texture_gather : enable
|
|
||||||
|
|
||||||
const float bloomFactor = 0.4; // bloom strength
|
|
||||||
|
|
||||||
// shader 960d3ef6662043c7
|
|
||||||
layout(binding = 0) uniform sampler2D textureUnitPS0;// Tex0 addr 0xf4000800 res 480x270x1 dim 1 tm: 4 format 0816 compSel: 0 1 2 5 mipView: 0x0 (num 0x4) sliceView: 0x0 (num 0x1) Sampler0 ClampX/Y/Z: 2 2 2 border: 1
|
|
||||||
layout(location = 0) in vec4 passParameterSem0;
|
|
||||||
layout(location = 0) out vec4 passPixelColor0;
|
|
||||||
uniform vec2 uf_fragCoordScale;
|
|
||||||
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);
|
|
||||||
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 = passParameterSem0;
|
|
||||||
R0f.xyz = texture(textureUnitPS0, R0f.xy).xyz * bloomFactor;
|
|
||||||
// 0
|
|
||||||
/*
|
|
||||||
backupReg0f = R0f.x;
|
|
||||||
backupReg1f = R0f.y;
|
|
||||||
backupReg2f = R0f.z;
|
|
||||||
R0f.xyz = vec3(backupReg0f,backupReg1f,backupReg2f);
|
|
||||||
*/
|
|
||||||
// export
|
|
||||||
passPixelColor0 = R0f.xyzw;
|
|
||||||
}
|
|
@ -1,4 +0,0 @@
|
|||||||
[Definition]
|
|
||||||
titleIds = 0005000010143400,0005000010143600,0005000010143500
|
|
||||||
name = "The Legend of Zelda: The Wind Waker HD - Adjustable Bloom"
|
|
||||||
version = 2
|
|
@ -1,4 +0,0 @@
|
|||||||
[Definition]
|
|
||||||
titleIds = 0005000010116100,00050000101C4C00,00050000101C4D00
|
|
||||||
name = "Xenoblade Chronicles X - No Anti-Aliasing" # Cemu 1.8
|
|
||||||
version = 2
|
|
@ -1,171 +0,0 @@
|
|||||||
#version 420
|
|
||||||
#extension GL_ARB_texture_gather : enable
|
|
||||||
#extension GL_ARB_shading_language_packing : enable
|
|
||||||
// shader 1cb8c35cca05b129
|
|
||||||
//dialog box
|
|
||||||
uniform ivec4 uf_remappedVS[14];
|
|
||||||
uniform vec2 uf_windowSpaceToClipSpaceTransform;
|
|
||||||
uniform float uf_alphaTestRef;
|
|
||||||
layout(location = 0) in uvec4 attrDataSem0;
|
|
||||||
layout(location = 1) in uvec4 attrDataSem1;
|
|
||||||
layout(location = 2) in uvec4 attrDataSem2;
|
|
||||||
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);
|
|
||||||
vec4 R3f = vec4(0.0);
|
|
||||||
vec4 R123f = vec4(0.0);
|
|
||||||
vec4 R127f = 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 = attrDataSem1.xyz;
|
|
||||||
attrDecoder.xyz = (attrDecoder.xyz>>24)|((attrDecoder.xyz>>8)&0xFF00)|((attrDecoder.xyz<<8)&0xFF0000)|((attrDecoder.xyz<<24));
|
|
||||||
attrDecoder.w = 0;
|
|
||||||
R2f = vec4(intBitsToFloat(int(attrDecoder.x)), intBitsToFloat(int(attrDecoder.y)), intBitsToFloat(int(attrDecoder.z)), intBitsToFloat(floatBitsToInt(1.0)));
|
|
||||||
attrDecoder = attrDataSem0;
|
|
||||||
attrDecoder = (attrDecoder>>24)|((attrDecoder>>8)&0xFF00)|((attrDecoder<<8)&0xFF0000)|((attrDecoder<<24));
|
|
||||||
R1f = vec4(intBitsToFloat(int(attrDecoder.x)), intBitsToFloat(int(attrDecoder.y)), intBitsToFloat(int(attrDecoder.z)), intBitsToFloat(int(attrDecoder.w)));
|
|
||||||
attrDecoder.xy = attrDataSem2.xy;
|
|
||||||
attrDecoder.xy = (attrDecoder.xy>>24)|((attrDecoder.xy>>8)&0xFF00)|((attrDecoder.xy<<8)&0xFF0000)|((attrDecoder.xy<<24));
|
|
||||||
attrDecoder.z = 0;
|
|
||||||
attrDecoder.w = 0;
|
|
||||||
R3f = vec4(intBitsToFloat(int(attrDecoder.x)), intBitsToFloat(int(attrDecoder.y)), intBitsToFloat(floatBitsToInt(0.0)), intBitsToFloat(floatBitsToInt(1.0)));
|
|
||||||
// 0
|
|
||||||
PV0f.x = intBitsToFloat(uf_remappedVS[0].w) * 1.0;
|
|
||||||
PV0f.y = intBitsToFloat(uf_remappedVS[0].z) * 1.0;
|
|
||||||
PV0f.z = intBitsToFloat(uf_remappedVS[0].y) * 1.0;
|
|
||||||
PV0f.w = intBitsToFloat(uf_remappedVS[0].x) * 1.0;
|
|
||||||
// 1
|
|
||||||
R123f.x = (R2f.y * intBitsToFloat(uf_remappedVS[1].w) + PV0f.x);
|
|
||||||
PV1f.x = R123f.x;
|
|
||||||
R123f.y = (R2f.y * intBitsToFloat(uf_remappedVS[1].z) + PV0f.y);
|
|
||||||
PV1f.y = R123f.y;
|
|
||||||
R123f.z = (R2f.y * intBitsToFloat(uf_remappedVS[1].y) + PV0f.z);
|
|
||||||
PV1f.z = R123f.z;
|
|
||||||
R123f.w = (R2f.y * intBitsToFloat(uf_remappedVS[1].x) + PV0f.w);
|
|
||||||
PV1f.w = R123f.w;
|
|
||||||
// 2
|
|
||||||
R123f.x = (R2f.x * intBitsToFloat(uf_remappedVS[2].w) + PV1f.x);
|
|
||||||
PV0f.x = R123f.x;
|
|
||||||
R127f.y = (R2f.x * intBitsToFloat(uf_remappedVS[2].z) + PV1f.y);
|
|
||||||
R127f.z = (R2f.x * intBitsToFloat(uf_remappedVS[2].y) + PV1f.z);
|
|
||||||
R127f.w = (R2f.x * intBitsToFloat(uf_remappedVS[2].x) + PV1f.w);
|
|
||||||
// 3
|
|
||||||
PV1f.x = PV0f.x * intBitsToFloat(uf_remappedVS[3].w);
|
|
||||||
PV1f.y = PV0f.x * intBitsToFloat(uf_remappedVS[3].z);
|
|
||||||
PV1f.z = PV0f.x * intBitsToFloat(uf_remappedVS[3].y);
|
|
||||||
PV1f.w = PV0f.x * intBitsToFloat(uf_remappedVS[3].x);
|
|
||||||
// 4
|
|
||||||
R123f.x = (R127f.y * intBitsToFloat(uf_remappedVS[4].w) + PV1f.x);
|
|
||||||
PV0f.x = R123f.x;
|
|
||||||
R123f.y = (R127f.y * intBitsToFloat(uf_remappedVS[4].z) + PV1f.y);
|
|
||||||
PV0f.y = R123f.y;
|
|
||||||
R123f.z = (R127f.y * intBitsToFloat(uf_remappedVS[4].y) + PV1f.z);
|
|
||||||
PV0f.z = R123f.z;
|
|
||||||
R123f.w = (R127f.y * intBitsToFloat(uf_remappedVS[4].x) + PV1f.w);
|
|
||||||
PV0f.w = R123f.w;
|
|
||||||
// 5
|
|
||||||
R123f.x = (R127f.z * intBitsToFloat(uf_remappedVS[5].w) + PV0f.x);
|
|
||||||
PV1f.x = R123f.x;
|
|
||||||
R123f.y = (R127f.z * intBitsToFloat(uf_remappedVS[5].z) + PV0f.y);
|
|
||||||
PV1f.y = R123f.y;
|
|
||||||
R123f.z = (R127f.z * intBitsToFloat(uf_remappedVS[5].y) + PV0f.z);
|
|
||||||
PV1f.z = R123f.z;
|
|
||||||
R123f.w = (R127f.z * intBitsToFloat(uf_remappedVS[5].x) + PV0f.w);
|
|
||||||
PV1f.w = R123f.w;
|
|
||||||
// 6
|
|
||||||
backupReg0f = R127f.w;
|
|
||||||
R123f.x = (R127f.w * intBitsToFloat(uf_remappedVS[6].w) + PV1f.x);
|
|
||||||
PV0f.x = R123f.x;
|
|
||||||
R127f.y = (R127f.w * intBitsToFloat(uf_remappedVS[6].z) + PV1f.y);
|
|
||||||
R127f.z = (R127f.w * intBitsToFloat(uf_remappedVS[6].y) + PV1f.z);
|
|
||||||
R127f.w = (backupReg0f * intBitsToFloat(uf_remappedVS[6].x) + PV1f.w);
|
|
||||||
// 7
|
|
||||||
PV1f.x = PV0f.x * intBitsToFloat(uf_remappedVS[7].w);
|
|
||||||
PV1f.y = PV0f.x * intBitsToFloat(uf_remappedVS[7].z);
|
|
||||||
PV1f.z = PV0f.x * intBitsToFloat(uf_remappedVS[7].y);
|
|
||||||
PV1f.w = PV0f.x * intBitsToFloat(uf_remappedVS[7].x);
|
|
||||||
// 8
|
|
||||||
R123f.x = (R127f.y * intBitsToFloat(uf_remappedVS[8].w) + PV1f.x);
|
|
||||||
PV0f.x = R123f.x;
|
|
||||||
R123f.y = (R127f.y * intBitsToFloat(uf_remappedVS[8].z) + PV1f.y);
|
|
||||||
PV0f.y = R123f.y;
|
|
||||||
R123f.z = (R127f.y * intBitsToFloat(uf_remappedVS[8].y) + PV1f.z);
|
|
||||||
PV0f.z = R123f.z;
|
|
||||||
R123f.w = (R127f.y * intBitsToFloat(uf_remappedVS[8].x) + PV1f.w);
|
|
||||||
PV0f.w = R123f.w;
|
|
||||||
// 9
|
|
||||||
R123f.x = (R127f.z * intBitsToFloat(uf_remappedVS[9].w) + PV0f.x);
|
|
||||||
PV1f.x = R123f.x;
|
|
||||||
R123f.y = (R127f.z * intBitsToFloat(uf_remappedVS[9].z) + PV0f.y);
|
|
||||||
PV1f.y = R123f.y;
|
|
||||||
R123f.z = (R127f.z * intBitsToFloat(uf_remappedVS[9].y) + PV0f.z);
|
|
||||||
PV1f.z = R123f.z;
|
|
||||||
R123f.w = (R127f.z * intBitsToFloat(uf_remappedVS[9].x) + PV0f.w);
|
|
||||||
PV1f.w = R123f.w;
|
|
||||||
// 10
|
|
||||||
R2f.x = (R127f.w * intBitsToFloat(uf_remappedVS[10].x) + PV1f.w);
|
|
||||||
R2f.y = (R127f.w * intBitsToFloat(uf_remappedVS[10].y) + PV1f.z);
|
|
||||||
R2f.z = (R127f.w * intBitsToFloat(uf_remappedVS[10].z) + PV1f.y);
|
|
||||||
R2f.w = (R127f.w * intBitsToFloat(uf_remappedVS[10].w) + PV1f.x);
|
|
||||||
// 11
|
|
||||||
PV1f.x = intBitsToFloat(uf_remappedVS[11].w) * 1.0;
|
|
||||||
PV1f.y = intBitsToFloat(uf_remappedVS[11].z) * 1.0;
|
|
||||||
PV1f.z = intBitsToFloat(uf_remappedVS[11].y) * 1.0;
|
|
||||||
PV1f.w = intBitsToFloat(uf_remappedVS[11].x) * 1.0;
|
|
||||||
// 12
|
|
||||||
R123f.x = (R3f.y * intBitsToFloat(uf_remappedVS[12].w) + PV1f.x);
|
|
||||||
PV0f.x = R123f.x;
|
|
||||||
R123f.y = (R3f.y * intBitsToFloat(uf_remappedVS[12].z) + PV1f.y);
|
|
||||||
PV0f.y = R123f.y;
|
|
||||||
R123f.z = (R3f.y * intBitsToFloat(uf_remappedVS[12].y) + PV1f.z);
|
|
||||||
PV0f.z = R123f.z;
|
|
||||||
R123f.w = (R3f.y * intBitsToFloat(uf_remappedVS[12].x) + PV1f.w);
|
|
||||||
PV0f.w = R123f.w;
|
|
||||||
// 13
|
|
||||||
backupReg0f = R3f.x;
|
|
||||||
backupReg0f = R3f.x;
|
|
||||||
backupReg0f = R3f.x;
|
|
||||||
backupReg0f = R3f.x;
|
|
||||||
R3f.x = (backupReg0f * intBitsToFloat(uf_remappedVS[13].x) + PV0f.w);
|
|
||||||
R3f.y = (backupReg0f * intBitsToFloat(uf_remappedVS[13].y) + PV0f.z);
|
|
||||||
R3f.z = (backupReg0f * intBitsToFloat(uf_remappedVS[13].z) + PV0f.y);
|
|
||||||
R3f.w = (backupReg0f * intBitsToFloat(uf_remappedVS[13].w) + PV0f.x);
|
|
||||||
// export
|
|
||||||
float origRatio = 1.777f;
|
|
||||||
float newRatio = 2.370f;
|
|
||||||
// *(origRatio / newRatio)
|
|
||||||
gl_Position = vec4(R2f.x*(origRatio / newRatio), R2f.y, R2f.z, R2f.w);
|
|
||||||
// export
|
|
||||||
passParameterSem0 = vec4(R1f.x, R1f.y, R1f.z, R1f.w);
|
|
||||||
// export
|
|
||||||
passParameterSem1 = vec4(R3f.x, R3f.y, R3f.z, R3f.w);
|
|
||||||
// 0
|
|
||||||
}
|
|
@ -1,163 +0,0 @@
|
|||||||
#version 420
|
|
||||||
#extension GL_ARB_texture_gather : enable
|
|
||||||
#extension GL_ARB_shading_language_packing : enable
|
|
||||||
// shader 28620f4f4753fb97
|
|
||||||
// selection position
|
|
||||||
uniform ivec4 uf_uniformRegisterVS[256];
|
|
||||||
uniform vec2 uf_windowSpaceToClipSpaceTransform;
|
|
||||||
uniform float uf_alphaTestRef;
|
|
||||||
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){ return min(a*b,min(abs(a)*3.40282347E+38F,abs(b)*3.40282347E+38F)); }
|
|
||||||
void main()
|
|
||||||
{
|
|
||||||
ivec4 R0i = ivec4(0);
|
|
||||||
ivec4 R1i = ivec4(0);
|
|
||||||
ivec4 R123i = ivec4(0);
|
|
||||||
ivec4 R126i = ivec4(0);
|
|
||||||
ivec4 R127i = ivec4(0);
|
|
||||||
uvec4 attrDecoder;
|
|
||||||
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 = 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;
|
|
||||||
R1i = ivec4(int(attrDecoder.x), int(attrDecoder.y), int(attrDecoder.z), floatBitsToInt(1.0));
|
|
||||||
// 0
|
|
||||||
R127i.x = floatBitsToInt(intBitsToFloat(uf_uniformRegisterVS[19].w) * 1.0);
|
|
||||||
R127i.y = floatBitsToInt(intBitsToFloat(uf_uniformRegisterVS[19].z) * 1.0);
|
|
||||||
R127i.z = floatBitsToInt(intBitsToFloat(uf_uniformRegisterVS[19].y) * 1.0);
|
|
||||||
R127i.w = floatBitsToInt(intBitsToFloat(uf_uniformRegisterVS[19].x) * 1.0);
|
|
||||||
PS0i = int(intBitsToFloat(R1i.z));
|
|
||||||
// 1
|
|
||||||
R126i.x = floatBitsToInt(float(PS0i));
|
|
||||||
PS1i = R126i.x;
|
|
||||||
// 2
|
|
||||||
tempResultf = intBitsToFloat(PS1i);
|
|
||||||
tempResultf = floor(tempResultf);
|
|
||||||
tempResultf = clamp(tempResultf, -256.0, 255.0);
|
|
||||||
ARi.x = int(tempResultf);
|
|
||||||
PV0i.x = floatBitsToInt(tempResultf);
|
|
||||||
// 3
|
|
||||||
R123i.x = floatBitsToInt((intBitsToFloat(uf_uniformRegisterVS[ARi.x+8].z) * intBitsToFloat(uf_uniformRegisterVS[18].w) + intBitsToFloat(R127i.x)));
|
|
||||||
PV1i.x = R123i.x;
|
|
||||||
R123i.y = floatBitsToInt((intBitsToFloat(uf_uniformRegisterVS[ARi.x+8].z) * intBitsToFloat(uf_uniformRegisterVS[18].z) + intBitsToFloat(R127i.y)));
|
|
||||||
PV1i.y = R123i.y;
|
|
||||||
// 4
|
|
||||||
R127i.x = floatBitsToInt((intBitsToFloat(uf_uniformRegisterVS[ARi.x+8].y) * intBitsToFloat(uf_uniformRegisterVS[17].w) + intBitsToFloat(PV1i.x)));
|
|
||||||
R127i.y = floatBitsToInt((intBitsToFloat(uf_uniformRegisterVS[ARi.x+8].y) * intBitsToFloat(uf_uniformRegisterVS[17].z) + intBitsToFloat(PV1i.y)));
|
|
||||||
// 5
|
|
||||||
backupReg0i = R127i.z;
|
|
||||||
backupReg1i = R127i.w;
|
|
||||||
R127i.z = floatBitsToInt((intBitsToFloat(uf_uniformRegisterVS[ARi.x+8].z) * intBitsToFloat(uf_uniformRegisterVS[18].y) + intBitsToFloat(backupReg0i)));
|
|
||||||
R127i.w = floatBitsToInt((intBitsToFloat(uf_uniformRegisterVS[ARi.x+8].z) * intBitsToFloat(uf_uniformRegisterVS[18].x) + intBitsToFloat(backupReg1i)));
|
|
||||||
// 6
|
|
||||||
backupReg0i = R127i.x;
|
|
||||||
R127i.x = floatBitsToInt((intBitsToFloat(uf_uniformRegisterVS[ARi.x+8].x) * intBitsToFloat(uf_uniformRegisterVS[16].w) + intBitsToFloat(backupReg0i)));
|
|
||||||
R126i.y = floatBitsToInt((intBitsToFloat(uf_uniformRegisterVS[ARi.x+8].x) * intBitsToFloat(uf_uniformRegisterVS[16].z) + intBitsToFloat(R127i.y)));
|
|
||||||
// 7
|
|
||||||
backupReg0i = R127i.z;
|
|
||||||
backupReg1i = R127i.w;
|
|
||||||
R127i.z = floatBitsToInt((intBitsToFloat(uf_uniformRegisterVS[ARi.x+8].y) * intBitsToFloat(uf_uniformRegisterVS[17].y) + intBitsToFloat(backupReg0i)));
|
|
||||||
R127i.w = floatBitsToInt((intBitsToFloat(uf_uniformRegisterVS[ARi.x+8].y) * intBitsToFloat(uf_uniformRegisterVS[17].x) + intBitsToFloat(backupReg1i)));
|
|
||||||
// 8
|
|
||||||
backupReg0i = R127i.x;
|
|
||||||
backupReg0i = R127i.x;
|
|
||||||
backupReg0i = R127i.x;
|
|
||||||
backupReg0i = R127i.x;
|
|
||||||
R127i.x = floatBitsToInt(intBitsToFloat(backupReg0i) * intBitsToFloat(uf_uniformRegisterVS[15].w));
|
|
||||||
R127i.y = floatBitsToInt(intBitsToFloat(backupReg0i) * intBitsToFloat(uf_uniformRegisterVS[15].z));
|
|
||||||
R126i.z = floatBitsToInt(intBitsToFloat(backupReg0i) * intBitsToFloat(uf_uniformRegisterVS[15].y));
|
|
||||||
R126i.w = floatBitsToInt(intBitsToFloat(backupReg0i) * intBitsToFloat(uf_uniformRegisterVS[15].x));
|
|
||||||
// 9
|
|
||||||
backupReg0i = R127i.z;
|
|
||||||
backupReg1i = R127i.w;
|
|
||||||
R127i.z = floatBitsToInt((intBitsToFloat(uf_uniformRegisterVS[ARi.x+8].x) * intBitsToFloat(uf_uniformRegisterVS[16].y) + intBitsToFloat(backupReg0i)));
|
|
||||||
R127i.w = floatBitsToInt((intBitsToFloat(uf_uniformRegisterVS[ARi.x+8].x) * intBitsToFloat(uf_uniformRegisterVS[16].x) + intBitsToFloat(backupReg1i)));
|
|
||||||
// 10
|
|
||||||
R123i.x = floatBitsToInt((intBitsToFloat(R126i.y) * intBitsToFloat(uf_uniformRegisterVS[14].w) + intBitsToFloat(R127i.x)));
|
|
||||||
PV0i.x = R123i.x;
|
|
||||||
R123i.y = floatBitsToInt((intBitsToFloat(R126i.y) * intBitsToFloat(uf_uniformRegisterVS[14].z) + intBitsToFloat(R127i.y)));
|
|
||||||
PV0i.y = R123i.y;
|
|
||||||
R123i.z = floatBitsToInt((intBitsToFloat(R126i.y) * intBitsToFloat(uf_uniformRegisterVS[14].y) + intBitsToFloat(R126i.z)));
|
|
||||||
PV0i.z = R123i.z;
|
|
||||||
R123i.w = floatBitsToInt((intBitsToFloat(R126i.y) * intBitsToFloat(uf_uniformRegisterVS[14].x) + intBitsToFloat(R126i.w)));
|
|
||||||
PV0i.w = R123i.w;
|
|
||||||
// 11
|
|
||||||
R123i.x = floatBitsToInt((intBitsToFloat(R127i.z) * intBitsToFloat(uf_uniformRegisterVS[13].w) + intBitsToFloat(PV0i.x)));
|
|
||||||
PV1i.x = R123i.x;
|
|
||||||
R123i.y = floatBitsToInt((intBitsToFloat(R127i.z) * intBitsToFloat(uf_uniformRegisterVS[13].z) + intBitsToFloat(PV0i.y)));
|
|
||||||
PV1i.y = R123i.y;
|
|
||||||
R123i.z = floatBitsToInt((intBitsToFloat(R127i.z) * intBitsToFloat(uf_uniformRegisterVS[13].y) + intBitsToFloat(PV0i.z)));
|
|
||||||
PV1i.z = R123i.z;
|
|
||||||
R123i.w = floatBitsToInt((intBitsToFloat(R127i.z) * intBitsToFloat(uf_uniformRegisterVS[13].x) + intBitsToFloat(PV0i.w)));
|
|
||||||
PV1i.w = R123i.w;
|
|
||||||
// 12
|
|
||||||
backupReg0i = R127i.w;
|
|
||||||
R123i.x = floatBitsToInt((intBitsToFloat(R127i.w) * intBitsToFloat(uf_uniformRegisterVS[12].w) + intBitsToFloat(PV1i.x)));
|
|
||||||
PV0i.x = R123i.x;
|
|
||||||
R127i.y = floatBitsToInt((intBitsToFloat(R127i.w) * intBitsToFloat(uf_uniformRegisterVS[12].z) + intBitsToFloat(PV1i.y)));
|
|
||||||
R127i.z = floatBitsToInt((intBitsToFloat(R127i.w) * intBitsToFloat(uf_uniformRegisterVS[12].y) + intBitsToFloat(PV1i.z)));
|
|
||||||
R127i.w = floatBitsToInt((intBitsToFloat(backupReg0i) * intBitsToFloat(uf_uniformRegisterVS[12].x) + intBitsToFloat(PV1i.w)));
|
|
||||||
// 13
|
|
||||||
PV1i.x = floatBitsToInt(intBitsToFloat(PV0i.x) * intBitsToFloat(uf_uniformRegisterVS[3].w));
|
|
||||||
PV1i.y = floatBitsToInt(intBitsToFloat(PV0i.x) * intBitsToFloat(uf_uniformRegisterVS[3].z));
|
|
||||||
PV1i.z = floatBitsToInt(intBitsToFloat(PV0i.x) * intBitsToFloat(uf_uniformRegisterVS[3].y));
|
|
||||||
PV1i.w = floatBitsToInt(intBitsToFloat(PV0i.x) * intBitsToFloat(uf_uniformRegisterVS[3].x));
|
|
||||||
// 14
|
|
||||||
R123i.x = floatBitsToInt((intBitsToFloat(R127i.y) * intBitsToFloat(uf_uniformRegisterVS[2].w) + intBitsToFloat(PV1i.x)));
|
|
||||||
PV0i.x = R123i.x;
|
|
||||||
R123i.y = floatBitsToInt((intBitsToFloat(R127i.y) * intBitsToFloat(uf_uniformRegisterVS[2].z) + intBitsToFloat(PV1i.y)));
|
|
||||||
PV0i.y = R123i.y;
|
|
||||||
R123i.z = floatBitsToInt((intBitsToFloat(R127i.y) * intBitsToFloat(uf_uniformRegisterVS[2].y) + intBitsToFloat(PV1i.z)));
|
|
||||||
PV0i.z = R123i.z;
|
|
||||||
R123i.w = floatBitsToInt((intBitsToFloat(R127i.y) * intBitsToFloat(uf_uniformRegisterVS[2].x) + intBitsToFloat(PV1i.w)));
|
|
||||||
PV0i.w = R123i.w;
|
|
||||||
// 15
|
|
||||||
R123i.x = floatBitsToInt((intBitsToFloat(R127i.z) * intBitsToFloat(uf_uniformRegisterVS[1].w) + intBitsToFloat(PV0i.x)));
|
|
||||||
PV1i.x = R123i.x;
|
|
||||||
R123i.y = floatBitsToInt((intBitsToFloat(R127i.z) * intBitsToFloat(uf_uniformRegisterVS[1].z) + intBitsToFloat(PV0i.y)));
|
|
||||||
PV1i.y = R123i.y;
|
|
||||||
R123i.z = floatBitsToInt((intBitsToFloat(R127i.z) * intBitsToFloat(uf_uniformRegisterVS[1].y) + intBitsToFloat(PV0i.z)));
|
|
||||||
PV1i.z = R123i.z;
|
|
||||||
R123i.w = floatBitsToInt((intBitsToFloat(R127i.z) * intBitsToFloat(uf_uniformRegisterVS[1].x) + intBitsToFloat(PV0i.w)));
|
|
||||||
PV1i.w = R123i.w;
|
|
||||||
// 16
|
|
||||||
R1i.x = floatBitsToInt((intBitsToFloat(R127i.w) * intBitsToFloat(uf_uniformRegisterVS[0].x) + intBitsToFloat(PV1i.w)));
|
|
||||||
R1i.y = floatBitsToInt((intBitsToFloat(R127i.w) * intBitsToFloat(uf_uniformRegisterVS[0].y) + intBitsToFloat(PV1i.z)));
|
|
||||||
R1i.z = floatBitsToInt((intBitsToFloat(R127i.w) * intBitsToFloat(uf_uniformRegisterVS[0].z) + intBitsToFloat(PV1i.y)));
|
|
||||||
R1i.w = floatBitsToInt((intBitsToFloat(R127i.w) * intBitsToFloat(uf_uniformRegisterVS[0].w) + intBitsToFloat(PV1i.x)));
|
|
||||||
// 17
|
|
||||||
R0i.xyz = ivec3(uf_uniformRegisterVS[ARi.x+4].x,uf_uniformRegisterVS[ARi.x+4].y,uf_uniformRegisterVS[ARi.x+4].z);
|
|
||||||
R0i.w = uf_uniformRegisterVS[ARi.x+4].w;
|
|
||||||
// export
|
|
||||||
float origRatio = 1.777f;
|
|
||||||
float newRatio = 2.370f;
|
|
||||||
// *(origRatio / newRatio)
|
|
||||||
gl_Position = vec4(intBitsToFloat(R1i.x)*(origRatio / newRatio), intBitsToFloat(R1i.y), intBitsToFloat(R1i.z), intBitsToFloat(R1i.w));
|
|
||||||
// export
|
|
||||||
passParameterSem0 = vec4(intBitsToFloat(R0i.x), intBitsToFloat(R0i.y), intBitsToFloat(R0i.z), intBitsToFloat(R0i.w));
|
|
||||||
// 0
|
|
||||||
}
|
|
@ -1,188 +0,0 @@
|
|||||||
#version 420
|
|
||||||
#extension GL_ARB_texture_gather : enable
|
|
||||||
#extension GL_ARB_shading_language_packing : enable
|
|
||||||
// shader 3e12e7b9d981b915
|
|
||||||
// box canvas ingame *dumped*
|
|
||||||
uniform ivec4 uf_uniformRegisterVS[256];
|
|
||||||
uniform vec2 uf_windowSpaceToClipSpaceTransform;
|
|
||||||
uniform float uf_alphaTestRef;
|
|
||||||
layout(location = 0) in uvec4 attrDataSem0;
|
|
||||||
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()
|
|
||||||
{
|
|
||||||
ivec4 R0i = ivec4(0);
|
|
||||||
ivec4 R1i = ivec4(0);
|
|
||||||
ivec4 R2i = ivec4(0);
|
|
||||||
ivec4 R123i = ivec4(0);
|
|
||||||
ivec4 R125i = ivec4(0);
|
|
||||||
ivec4 R126i = ivec4(0);
|
|
||||||
ivec4 R127i = ivec4(0);
|
|
||||||
uvec4 attrDecoder;
|
|
||||||
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 = 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;
|
|
||||||
R1i = ivec4(int(attrDecoder.x), int(attrDecoder.y), int(attrDecoder.z), floatBitsToInt(1.0));
|
|
||||||
// 0
|
|
||||||
R127i.x = floatBitsToInt(intBitsToFloat(uf_uniformRegisterVS[27].w) * 1.0);
|
|
||||||
R127i.y = floatBitsToInt(intBitsToFloat(uf_uniformRegisterVS[27].z) * 1.0);
|
|
||||||
R127i.z = floatBitsToInt(intBitsToFloat(uf_uniformRegisterVS[27].y) * 1.0);
|
|
||||||
R127i.w = floatBitsToInt(intBitsToFloat(uf_uniformRegisterVS[27].x) * 1.0);
|
|
||||||
PS0i = int(intBitsToFloat(R1i.z));
|
|
||||||
// 1
|
|
||||||
R126i.x = floatBitsToInt(intBitsToFloat(uf_uniformRegisterVS[19].w) * 1.0);
|
|
||||||
R125i.y = floatBitsToInt(intBitsToFloat(uf_uniformRegisterVS[19].z) * 1.0);
|
|
||||||
R125i.z = floatBitsToInt(intBitsToFloat(uf_uniformRegisterVS[19].y) * 1.0);
|
|
||||||
R125i.w = floatBitsToInt(intBitsToFloat(uf_uniformRegisterVS[19].x) * 1.0);
|
|
||||||
R125i.x = floatBitsToInt(float(PS0i));
|
|
||||||
PS1i = R125i.x;
|
|
||||||
// 2
|
|
||||||
tempResultf = intBitsToFloat(PS1i);
|
|
||||||
tempResultf = floor(tempResultf);
|
|
||||||
tempResultf = clamp(tempResultf, -256.0, 255.0);
|
|
||||||
ARi.x = int(tempResultf);
|
|
||||||
PV0i.x = floatBitsToInt(tempResultf);
|
|
||||||
// 3
|
|
||||||
R123i.x = floatBitsToInt((intBitsToFloat(uf_uniformRegisterVS[ARi.x+8].z) * intBitsToFloat(uf_uniformRegisterVS[26].w) + intBitsToFloat(R127i.x)));
|
|
||||||
PV1i.x = R123i.x;
|
|
||||||
R123i.y = floatBitsToInt((intBitsToFloat(uf_uniformRegisterVS[ARi.x+8].z) * intBitsToFloat(uf_uniformRegisterVS[26].z) + intBitsToFloat(R127i.y)));
|
|
||||||
PV1i.y = R123i.y;
|
|
||||||
// 4
|
|
||||||
R127i.x = floatBitsToInt((intBitsToFloat(uf_uniformRegisterVS[ARi.x+8].y) * intBitsToFloat(uf_uniformRegisterVS[25].w) + intBitsToFloat(PV1i.x)));
|
|
||||||
R127i.y = floatBitsToInt((intBitsToFloat(uf_uniformRegisterVS[ARi.x+8].y) * intBitsToFloat(uf_uniformRegisterVS[25].z) + intBitsToFloat(PV1i.y)));
|
|
||||||
// 5
|
|
||||||
backupReg0i = R127i.z;
|
|
||||||
backupReg1i = R127i.w;
|
|
||||||
R127i.z = floatBitsToInt((intBitsToFloat(uf_uniformRegisterVS[ARi.x+8].z) * intBitsToFloat(uf_uniformRegisterVS[26].y) + intBitsToFloat(backupReg0i)));
|
|
||||||
R127i.w = floatBitsToInt((intBitsToFloat(uf_uniformRegisterVS[ARi.x+8].z) * intBitsToFloat(uf_uniformRegisterVS[26].x) + intBitsToFloat(backupReg1i)));
|
|
||||||
// 6
|
|
||||||
backupReg0i = R127i.x;
|
|
||||||
R127i.x = floatBitsToInt((intBitsToFloat(uf_uniformRegisterVS[ARi.x+8].x) * intBitsToFloat(uf_uniformRegisterVS[24].w) + intBitsToFloat(backupReg0i)));
|
|
||||||
R126i.y = floatBitsToInt((intBitsToFloat(uf_uniformRegisterVS[ARi.x+8].x) * intBitsToFloat(uf_uniformRegisterVS[24].z) + intBitsToFloat(R127i.y)));
|
|
||||||
// 7
|
|
||||||
backupReg0i = R127i.z;
|
|
||||||
backupReg1i = R127i.w;
|
|
||||||
R127i.z = floatBitsToInt((intBitsToFloat(uf_uniformRegisterVS[ARi.x+8].y) * intBitsToFloat(uf_uniformRegisterVS[25].y) + intBitsToFloat(backupReg0i)));
|
|
||||||
R127i.w = floatBitsToInt((intBitsToFloat(uf_uniformRegisterVS[ARi.x+8].y) * intBitsToFloat(uf_uniformRegisterVS[25].x) + intBitsToFloat(backupReg1i)));
|
|
||||||
// 8
|
|
||||||
backupReg0i = R127i.x;
|
|
||||||
backupReg0i = R127i.x;
|
|
||||||
backupReg0i = R127i.x;
|
|
||||||
backupReg0i = R127i.x;
|
|
||||||
R127i.x = floatBitsToInt(intBitsToFloat(backupReg0i) * intBitsToFloat(uf_uniformRegisterVS[23].w));
|
|
||||||
R127i.y = floatBitsToInt(intBitsToFloat(backupReg0i) * intBitsToFloat(uf_uniformRegisterVS[23].z));
|
|
||||||
R126i.z = floatBitsToInt(intBitsToFloat(backupReg0i) * intBitsToFloat(uf_uniformRegisterVS[23].y));
|
|
||||||
R126i.w = floatBitsToInt(intBitsToFloat(backupReg0i) * intBitsToFloat(uf_uniformRegisterVS[23].x));
|
|
||||||
// 9
|
|
||||||
backupReg0i = R127i.z;
|
|
||||||
backupReg1i = R127i.w;
|
|
||||||
R127i.z = floatBitsToInt((intBitsToFloat(uf_uniformRegisterVS[ARi.x+8].x) * intBitsToFloat(uf_uniformRegisterVS[24].y) + intBitsToFloat(backupReg0i)));
|
|
||||||
R127i.w = floatBitsToInt((intBitsToFloat(uf_uniformRegisterVS[ARi.x+8].x) * intBitsToFloat(uf_uniformRegisterVS[24].x) + intBitsToFloat(backupReg1i)));
|
|
||||||
// 10
|
|
||||||
R123i.x = floatBitsToInt((intBitsToFloat(R126i.y) * intBitsToFloat(uf_uniformRegisterVS[22].w) + intBitsToFloat(R127i.x)));
|
|
||||||
PV0i.x = R123i.x;
|
|
||||||
R123i.y = floatBitsToInt((intBitsToFloat(R126i.y) * intBitsToFloat(uf_uniformRegisterVS[22].z) + intBitsToFloat(R127i.y)));
|
|
||||||
PV0i.y = R123i.y;
|
|
||||||
R123i.z = floatBitsToInt((intBitsToFloat(R126i.y) * intBitsToFloat(uf_uniformRegisterVS[22].y) + intBitsToFloat(R126i.z)));
|
|
||||||
PV0i.z = R123i.z;
|
|
||||||
R123i.w = floatBitsToInt((intBitsToFloat(R126i.y) * intBitsToFloat(uf_uniformRegisterVS[22].x) + intBitsToFloat(R126i.w)));
|
|
||||||
PV0i.w = R123i.w;
|
|
||||||
// 11
|
|
||||||
R123i.x = floatBitsToInt((intBitsToFloat(R127i.z) * intBitsToFloat(uf_uniformRegisterVS[21].w) + intBitsToFloat(PV0i.x)));
|
|
||||||
PV1i.x = R123i.x;
|
|
||||||
R123i.y = floatBitsToInt((intBitsToFloat(R127i.z) * intBitsToFloat(uf_uniformRegisterVS[21].z) + intBitsToFloat(PV0i.y)));
|
|
||||||
PV1i.y = R123i.y;
|
|
||||||
R123i.z = floatBitsToInt((intBitsToFloat(R127i.z) * intBitsToFloat(uf_uniformRegisterVS[21].y) + intBitsToFloat(PV0i.z)));
|
|
||||||
PV1i.z = R123i.z;
|
|
||||||
R123i.w = floatBitsToInt((intBitsToFloat(R127i.z) * intBitsToFloat(uf_uniformRegisterVS[21].x) + intBitsToFloat(PV0i.w)));
|
|
||||||
PV1i.w = R123i.w;
|
|
||||||
// 12
|
|
||||||
backupReg0i = R127i.w;
|
|
||||||
R123i.x = floatBitsToInt((intBitsToFloat(R127i.w) * intBitsToFloat(uf_uniformRegisterVS[20].w) + intBitsToFloat(PV1i.x)));
|
|
||||||
PV0i.x = R123i.x;
|
|
||||||
R127i.y = floatBitsToInt((intBitsToFloat(R127i.w) * intBitsToFloat(uf_uniformRegisterVS[20].z) + intBitsToFloat(PV1i.y)));
|
|
||||||
R127i.z = floatBitsToInt((intBitsToFloat(R127i.w) * intBitsToFloat(uf_uniformRegisterVS[20].y) + intBitsToFloat(PV1i.z)));
|
|
||||||
R127i.w = floatBitsToInt((intBitsToFloat(backupReg0i) * intBitsToFloat(uf_uniformRegisterVS[20].x) + intBitsToFloat(PV1i.w)));
|
|
||||||
// 13
|
|
||||||
PV1i.x = floatBitsToInt(intBitsToFloat(PV0i.x) * intBitsToFloat(uf_uniformRegisterVS[3].w));
|
|
||||||
PV1i.y = floatBitsToInt(intBitsToFloat(PV0i.x) * intBitsToFloat(uf_uniformRegisterVS[3].z));
|
|
||||||
PV1i.z = floatBitsToInt(intBitsToFloat(PV0i.x) * intBitsToFloat(uf_uniformRegisterVS[3].y));
|
|
||||||
PV1i.w = floatBitsToInt(intBitsToFloat(PV0i.x) * intBitsToFloat(uf_uniformRegisterVS[3].x));
|
|
||||||
// 14
|
|
||||||
R123i.x = floatBitsToInt((intBitsToFloat(R127i.y) * intBitsToFloat(uf_uniformRegisterVS[2].w) + intBitsToFloat(PV1i.x)));
|
|
||||||
PV0i.x = R123i.x;
|
|
||||||
R123i.y = floatBitsToInt((intBitsToFloat(R127i.y) * intBitsToFloat(uf_uniformRegisterVS[2].z) + intBitsToFloat(PV1i.y)));
|
|
||||||
PV0i.y = R123i.y;
|
|
||||||
R123i.z = floatBitsToInt((intBitsToFloat(R127i.y) * intBitsToFloat(uf_uniformRegisterVS[2].y) + intBitsToFloat(PV1i.z)));
|
|
||||||
PV0i.z = R123i.z;
|
|
||||||
R123i.w = floatBitsToInt((intBitsToFloat(R127i.y) * intBitsToFloat(uf_uniformRegisterVS[2].x) + intBitsToFloat(PV1i.w)));
|
|
||||||
PV0i.w = R123i.w;
|
|
||||||
// 15
|
|
||||||
R123i.x = floatBitsToInt((intBitsToFloat(R127i.z) * intBitsToFloat(uf_uniformRegisterVS[1].w) + intBitsToFloat(PV0i.x)));
|
|
||||||
PV1i.x = R123i.x;
|
|
||||||
R123i.y = floatBitsToInt((intBitsToFloat(R127i.z) * intBitsToFloat(uf_uniformRegisterVS[1].z) + intBitsToFloat(PV0i.y)));
|
|
||||||
PV1i.y = R123i.y;
|
|
||||||
R123i.z = floatBitsToInt((intBitsToFloat(R127i.z) * intBitsToFloat(uf_uniformRegisterVS[1].y) + intBitsToFloat(PV0i.z)));
|
|
||||||
PV1i.z = R123i.z;
|
|
||||||
R123i.w = floatBitsToInt((intBitsToFloat(R127i.z) * intBitsToFloat(uf_uniformRegisterVS[1].x) + intBitsToFloat(PV0i.w)));
|
|
||||||
PV1i.w = R123i.w;
|
|
||||||
// 16
|
|
||||||
R1i.x = floatBitsToInt((intBitsToFloat(R127i.w) * intBitsToFloat(uf_uniformRegisterVS[0].x) + intBitsToFloat(PV1i.w)));
|
|
||||||
R1i.y = floatBitsToInt((intBitsToFloat(R127i.w) * intBitsToFloat(uf_uniformRegisterVS[0].y) + intBitsToFloat(PV1i.z)));
|
|
||||||
R1i.z = floatBitsToInt((intBitsToFloat(R127i.w) * intBitsToFloat(uf_uniformRegisterVS[0].z) + intBitsToFloat(PV1i.y)));
|
|
||||||
R1i.w = floatBitsToInt((intBitsToFloat(R127i.w) * intBitsToFloat(uf_uniformRegisterVS[0].w) + intBitsToFloat(PV1i.x)));
|
|
||||||
// 17
|
|
||||||
backupReg0i = R125i.z;
|
|
||||||
backupReg1i = R125i.w;
|
|
||||||
R125i.z = floatBitsToInt((intBitsToFloat(uf_uniformRegisterVS[ARi.x+12].y) * intBitsToFloat(uf_uniformRegisterVS[17].y) + intBitsToFloat(backupReg0i)));
|
|
||||||
R125i.w = floatBitsToInt((intBitsToFloat(uf_uniformRegisterVS[ARi.x+12].y) * intBitsToFloat(uf_uniformRegisterVS[17].x) + intBitsToFloat(backupReg1i)));
|
|
||||||
// 18
|
|
||||||
backupReg0i = R126i.x;
|
|
||||||
backupReg1i = R125i.y;
|
|
||||||
R126i.x = floatBitsToInt((intBitsToFloat(uf_uniformRegisterVS[ARi.x+12].y) * intBitsToFloat(uf_uniformRegisterVS[17].w) + intBitsToFloat(backupReg0i)));
|
|
||||||
R125i.y = floatBitsToInt((intBitsToFloat(uf_uniformRegisterVS[ARi.x+12].y) * intBitsToFloat(uf_uniformRegisterVS[17].z) + intBitsToFloat(backupReg1i)));
|
|
||||||
// 19
|
|
||||||
R0i.xyz = ivec3(uf_uniformRegisterVS[ARi.x+4].x,uf_uniformRegisterVS[ARi.x+4].y,uf_uniformRegisterVS[ARi.x+4].z);
|
|
||||||
R0i.w = uf_uniformRegisterVS[ARi.x+4].w;
|
|
||||||
// 20
|
|
||||||
R2i.x = floatBitsToInt((intBitsToFloat(uf_uniformRegisterVS[ARi.x+12].x) * intBitsToFloat(uf_uniformRegisterVS[16].x) + intBitsToFloat(R125i.w)));
|
|
||||||
R2i.y = floatBitsToInt((intBitsToFloat(uf_uniformRegisterVS[ARi.x+12].x) * intBitsToFloat(uf_uniformRegisterVS[16].y) + intBitsToFloat(R125i.z)));
|
|
||||||
// 21
|
|
||||||
R2i.z = floatBitsToInt((intBitsToFloat(uf_uniformRegisterVS[ARi.x+12].x) * intBitsToFloat(uf_uniformRegisterVS[16].z) + intBitsToFloat(R125i.y)));
|
|
||||||
R2i.w = floatBitsToInt((intBitsToFloat(uf_uniformRegisterVS[ARi.x+12].x) * intBitsToFloat(uf_uniformRegisterVS[16].w) + intBitsToFloat(R126i.x)));
|
|
||||||
// export
|
|
||||||
float origRatio = 1.777f;
|
|
||||||
float newRatio = 2.370f;
|
|
||||||
// *(origRatio / newRatio)
|
|
||||||
gl_Position = vec4(intBitsToFloat(R1i.x)*(origRatio / newRatio), intBitsToFloat(R1i.y), intBitsToFloat(R1i.z), intBitsToFloat(R1i.w));
|
|
||||||
// export
|
|
||||||
passParameterSem0 = vec4(intBitsToFloat(R0i.x), intBitsToFloat(R0i.y), intBitsToFloat(R0i.z), intBitsToFloat(R0i.w));
|
|
||||||
// export
|
|
||||||
passParameterSem1 = vec4(intBitsToFloat(R2i.x), intBitsToFloat(R2i.y), intBitsToFloat(R2i.z), intBitsToFloat(R2i.w));
|
|
||||||
// 0
|
|
||||||
}
|
|
@ -1,132 +0,0 @@
|
|||||||
#version 420
|
|
||||||
#extension GL_ARB_texture_gather : enable
|
|
||||||
#extension GL_ARB_shading_language_packing : enable
|
|
||||||
// shader 46bdcbf27127ae3b
|
|
||||||
// depth, scary *dumped*
|
|
||||||
uniform ivec4 uf_remappedVS[11];
|
|
||||||
uniform vec2 uf_windowSpaceToClipSpaceTransform;
|
|
||||||
uniform float uf_alphaTestRef;
|
|
||||||
layout(location = 0) in uvec4 attrDataSem0;
|
|
||||||
out gl_PerVertex
|
|
||||||
{
|
|
||||||
vec4 gl_Position;
|
|
||||||
float gl_PointSize;
|
|
||||||
};
|
|
||||||
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 R123f = vec4(0.0);
|
|
||||||
vec4 R127f = 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)));
|
|
||||||
// 0
|
|
||||||
PV0f.x = intBitsToFloat(uf_remappedVS[0].w) * 1.0;
|
|
||||||
PV0f.y = intBitsToFloat(uf_remappedVS[0].z) * 1.0;
|
|
||||||
PV0f.z = intBitsToFloat(uf_remappedVS[0].y) * 1.0;
|
|
||||||
PV0f.w = intBitsToFloat(uf_remappedVS[0].x) * 1.0;
|
|
||||||
// 1
|
|
||||||
R123f.x = (R1f.y * intBitsToFloat(uf_remappedVS[1].w) + PV0f.x);
|
|
||||||
PV1f.x = R123f.x;
|
|
||||||
R123f.y = (R1f.y * intBitsToFloat(uf_remappedVS[1].z) + PV0f.y);
|
|
||||||
PV1f.y = R123f.y;
|
|
||||||
R123f.z = (R1f.y * intBitsToFloat(uf_remappedVS[1].y) + PV0f.z);
|
|
||||||
PV1f.z = R123f.z;
|
|
||||||
R123f.w = (R1f.y * intBitsToFloat(uf_remappedVS[1].x) + PV0f.w);
|
|
||||||
PV1f.w = R123f.w;
|
|
||||||
// 2
|
|
||||||
R123f.x = (R1f.x * intBitsToFloat(uf_remappedVS[2].w) + PV1f.x);
|
|
||||||
PV0f.x = R123f.x;
|
|
||||||
R127f.y = (R1f.x * intBitsToFloat(uf_remappedVS[2].z) + PV1f.y);
|
|
||||||
R127f.z = (R1f.x * intBitsToFloat(uf_remappedVS[2].y) + PV1f.z);
|
|
||||||
R127f.w = (R1f.x * intBitsToFloat(uf_remappedVS[2].x) + PV1f.w);
|
|
||||||
// 3
|
|
||||||
PV1f.x = PV0f.x * intBitsToFloat(uf_remappedVS[3].w);
|
|
||||||
PV1f.y = PV0f.x * intBitsToFloat(uf_remappedVS[3].z);
|
|
||||||
PV1f.z = PV0f.x * intBitsToFloat(uf_remappedVS[3].y);
|
|
||||||
PV1f.w = PV0f.x * intBitsToFloat(uf_remappedVS[3].x);
|
|
||||||
// 4
|
|
||||||
R123f.x = (R127f.y * intBitsToFloat(uf_remappedVS[4].w) + PV1f.x);
|
|
||||||
PV0f.x = R123f.x;
|
|
||||||
R123f.y = (R127f.y * intBitsToFloat(uf_remappedVS[4].z) + PV1f.y);
|
|
||||||
PV0f.y = R123f.y;
|
|
||||||
R123f.z = (R127f.y * intBitsToFloat(uf_remappedVS[4].y) + PV1f.z);
|
|
||||||
PV0f.z = R123f.z;
|
|
||||||
R123f.w = (R127f.y * intBitsToFloat(uf_remappedVS[4].x) + PV1f.w);
|
|
||||||
PV0f.w = R123f.w;
|
|
||||||
// 5
|
|
||||||
R123f.x = (R127f.z * intBitsToFloat(uf_remappedVS[5].w) + PV0f.x);
|
|
||||||
PV1f.x = R123f.x;
|
|
||||||
R123f.y = (R127f.z * intBitsToFloat(uf_remappedVS[5].z) + PV0f.y);
|
|
||||||
PV1f.y = R123f.y;
|
|
||||||
R123f.z = (R127f.z * intBitsToFloat(uf_remappedVS[5].y) + PV0f.z);
|
|
||||||
PV1f.z = R123f.z;
|
|
||||||
R123f.w = (R127f.z * intBitsToFloat(uf_remappedVS[5].x) + PV0f.w);
|
|
||||||
PV1f.w = R123f.w;
|
|
||||||
// 6
|
|
||||||
backupReg0f = R127f.w;
|
|
||||||
R123f.x = (R127f.w * intBitsToFloat(uf_remappedVS[6].w) + PV1f.x);
|
|
||||||
PV0f.x = R123f.x;
|
|
||||||
R127f.y = (R127f.w * intBitsToFloat(uf_remappedVS[6].z) + PV1f.y);
|
|
||||||
R127f.z = (R127f.w * intBitsToFloat(uf_remappedVS[6].y) + PV1f.z);
|
|
||||||
R127f.w = (backupReg0f * intBitsToFloat(uf_remappedVS[6].x) + PV1f.w);
|
|
||||||
// 7
|
|
||||||
PV1f.x = PV0f.x * intBitsToFloat(uf_remappedVS[7].w);
|
|
||||||
PV1f.y = PV0f.x * intBitsToFloat(uf_remappedVS[7].z);
|
|
||||||
PV1f.z = PV0f.x * intBitsToFloat(uf_remappedVS[7].y);
|
|
||||||
PV1f.w = PV0f.x * intBitsToFloat(uf_remappedVS[7].x);
|
|
||||||
// 8
|
|
||||||
R123f.x = (R127f.y * intBitsToFloat(uf_remappedVS[8].w) + PV1f.x);
|
|
||||||
PV0f.x = R123f.x;
|
|
||||||
R123f.y = (R127f.y * intBitsToFloat(uf_remappedVS[8].z) + PV1f.y);
|
|
||||||
PV0f.y = R123f.y;
|
|
||||||
R123f.z = (R127f.y * intBitsToFloat(uf_remappedVS[8].y) + PV1f.z);
|
|
||||||
PV0f.z = R123f.z;
|
|
||||||
R123f.w = (R127f.y * intBitsToFloat(uf_remappedVS[8].x) + PV1f.w);
|
|
||||||
PV0f.w = R123f.w;
|
|
||||||
// 9
|
|
||||||
R123f.x = (R127f.z * intBitsToFloat(uf_remappedVS[9].w) + PV0f.x);
|
|
||||||
PV1f.x = R123f.x;
|
|
||||||
R123f.y = (R127f.z * intBitsToFloat(uf_remappedVS[9].z) + PV0f.y);
|
|
||||||
PV1f.y = R123f.y;
|
|
||||||
R123f.z = (R127f.z * intBitsToFloat(uf_remappedVS[9].y) + PV0f.z);
|
|
||||||
PV1f.z = R123f.z;
|
|
||||||
R123f.w = (R127f.z * intBitsToFloat(uf_remappedVS[9].x) + PV0f.w);
|
|
||||||
PV1f.w = R123f.w;
|
|
||||||
// 10
|
|
||||||
R1f.x = (R127f.w * intBitsToFloat(uf_remappedVS[10].x) + PV1f.w);
|
|
||||||
R1f.y = (R127f.w * intBitsToFloat(uf_remappedVS[10].y) + PV1f.z);
|
|
||||||
R1f.z = (R127f.w * intBitsToFloat(uf_remappedVS[10].z) + PV1f.y);
|
|
||||||
R1f.w = (R127f.w * intBitsToFloat(uf_remappedVS[10].w) + PV1f.x);
|
|
||||||
// export
|
|
||||||
float origRatio = 1.777f;
|
|
||||||
float newRatio = 2.370f;
|
|
||||||
// *(origRatio / newRatio)
|
|
||||||
gl_Position = vec4(R1f.x*(origRatio / newRatio), R1f.y, R1f.z, R1f.w);
|
|
||||||
// export
|
|
||||||
// skipped export to semanticId 255
|
|
||||||
// 0
|
|
||||||
}
|
|
@ -1,188 +0,0 @@
|
|||||||
#version 420
|
|
||||||
#extension GL_ARB_texture_gather : enable
|
|
||||||
#extension GL_ARB_shading_language_packing : enable
|
|
||||||
// shader 538fc98d957aaa7c
|
|
||||||
// box canvas
|
|
||||||
uniform ivec4 uf_uniformRegisterVS[256];
|
|
||||||
uniform vec2 uf_windowSpaceToClipSpaceTransform;
|
|
||||||
uniform float uf_alphaTestRef;
|
|
||||||
layout(location = 0) in uvec4 attrDataSem0;
|
|
||||||
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()
|
|
||||||
{
|
|
||||||
ivec4 R0i = ivec4(0);
|
|
||||||
ivec4 R1i = ivec4(0);
|
|
||||||
ivec4 R2i = ivec4(0);
|
|
||||||
ivec4 R123i = ivec4(0);
|
|
||||||
ivec4 R125i = ivec4(0);
|
|
||||||
ivec4 R126i = ivec4(0);
|
|
||||||
ivec4 R127i = ivec4(0);
|
|
||||||
uvec4 attrDecoder;
|
|
||||||
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 = 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;
|
|
||||||
R1i = ivec4(int(attrDecoder.x), int(attrDecoder.y), int(attrDecoder.z), floatBitsToInt(1.0));
|
|
||||||
// 0
|
|
||||||
R127i.x = floatBitsToInt(intBitsToFloat(uf_uniformRegisterVS[27].w) * 1.0);
|
|
||||||
R127i.y = floatBitsToInt(intBitsToFloat(uf_uniformRegisterVS[27].z) * 1.0);
|
|
||||||
R127i.z = floatBitsToInt(intBitsToFloat(uf_uniformRegisterVS[27].y) * 1.0);
|
|
||||||
R127i.w = floatBitsToInt(intBitsToFloat(uf_uniformRegisterVS[27].x) * 1.0);
|
|
||||||
PS0i = int(intBitsToFloat(R1i.z));
|
|
||||||
// 1
|
|
||||||
R126i.x = floatBitsToInt(intBitsToFloat(uf_uniformRegisterVS[19].w) * 1.0);
|
|
||||||
R125i.y = floatBitsToInt(intBitsToFloat(uf_uniformRegisterVS[19].z) * 1.0);
|
|
||||||
R125i.z = floatBitsToInt(intBitsToFloat(uf_uniformRegisterVS[19].y) * 1.0);
|
|
||||||
R125i.w = floatBitsToInt(intBitsToFloat(uf_uniformRegisterVS[19].x) * 1.0);
|
|
||||||
R125i.x = floatBitsToInt(float(PS0i));
|
|
||||||
PS1i = R125i.x;
|
|
||||||
// 2
|
|
||||||
tempResultf = intBitsToFloat(PS1i);
|
|
||||||
tempResultf = floor(tempResultf);
|
|
||||||
tempResultf = clamp(tempResultf, -256.0, 255.0);
|
|
||||||
ARi.x = int(tempResultf);
|
|
||||||
PV0i.x = floatBitsToInt(tempResultf);
|
|
||||||
// 3
|
|
||||||
R123i.x = floatBitsToInt((intBitsToFloat(uf_uniformRegisterVS[ARi.x+8].z) * intBitsToFloat(uf_uniformRegisterVS[26].w) + intBitsToFloat(R127i.x)));
|
|
||||||
PV1i.x = R123i.x;
|
|
||||||
R123i.y = floatBitsToInt((intBitsToFloat(uf_uniformRegisterVS[ARi.x+8].z) * intBitsToFloat(uf_uniformRegisterVS[26].z) + intBitsToFloat(R127i.y)));
|
|
||||||
PV1i.y = R123i.y;
|
|
||||||
// 4
|
|
||||||
R127i.x = floatBitsToInt((intBitsToFloat(uf_uniformRegisterVS[ARi.x+8].y) * intBitsToFloat(uf_uniformRegisterVS[25].w) + intBitsToFloat(PV1i.x)));
|
|
||||||
R127i.y = floatBitsToInt((intBitsToFloat(uf_uniformRegisterVS[ARi.x+8].y) * intBitsToFloat(uf_uniformRegisterVS[25].z) + intBitsToFloat(PV1i.y)));
|
|
||||||
// 5
|
|
||||||
backupReg0i = R127i.z;
|
|
||||||
backupReg1i = R127i.w;
|
|
||||||
R127i.z = floatBitsToInt((intBitsToFloat(uf_uniformRegisterVS[ARi.x+8].z) * intBitsToFloat(uf_uniformRegisterVS[26].y) + intBitsToFloat(backupReg0i)));
|
|
||||||
R127i.w = floatBitsToInt((intBitsToFloat(uf_uniformRegisterVS[ARi.x+8].z) * intBitsToFloat(uf_uniformRegisterVS[26].x) + intBitsToFloat(backupReg1i)));
|
|
||||||
// 6
|
|
||||||
backupReg0i = R127i.x;
|
|
||||||
R127i.x = floatBitsToInt((intBitsToFloat(uf_uniformRegisterVS[ARi.x+8].x) * intBitsToFloat(uf_uniformRegisterVS[24].w) + intBitsToFloat(backupReg0i)));
|
|
||||||
R126i.y = floatBitsToInt((intBitsToFloat(uf_uniformRegisterVS[ARi.x+8].x) * intBitsToFloat(uf_uniformRegisterVS[24].z) + intBitsToFloat(R127i.y)));
|
|
||||||
// 7
|
|
||||||
backupReg0i = R127i.z;
|
|
||||||
backupReg1i = R127i.w;
|
|
||||||
R127i.z = floatBitsToInt((intBitsToFloat(uf_uniformRegisterVS[ARi.x+8].y) * intBitsToFloat(uf_uniformRegisterVS[25].y) + intBitsToFloat(backupReg0i)));
|
|
||||||
R127i.w = floatBitsToInt((intBitsToFloat(uf_uniformRegisterVS[ARi.x+8].y) * intBitsToFloat(uf_uniformRegisterVS[25].x) + intBitsToFloat(backupReg1i)));
|
|
||||||
// 8
|
|
||||||
backupReg0i = R127i.x;
|
|
||||||
backupReg0i = R127i.x;
|
|
||||||
backupReg0i = R127i.x;
|
|
||||||
backupReg0i = R127i.x;
|
|
||||||
R127i.x = floatBitsToInt(intBitsToFloat(backupReg0i) * intBitsToFloat(uf_uniformRegisterVS[23].w));
|
|
||||||
R127i.y = floatBitsToInt(intBitsToFloat(backupReg0i) * intBitsToFloat(uf_uniformRegisterVS[23].z));
|
|
||||||
R126i.z = floatBitsToInt(intBitsToFloat(backupReg0i) * intBitsToFloat(uf_uniformRegisterVS[23].y));
|
|
||||||
R126i.w = floatBitsToInt(intBitsToFloat(backupReg0i) * intBitsToFloat(uf_uniformRegisterVS[23].x));
|
|
||||||
// 9
|
|
||||||
backupReg0i = R127i.z;
|
|
||||||
backupReg1i = R127i.w;
|
|
||||||
R127i.z = floatBitsToInt((intBitsToFloat(uf_uniformRegisterVS[ARi.x+8].x) * intBitsToFloat(uf_uniformRegisterVS[24].y) + intBitsToFloat(backupReg0i)));
|
|
||||||
R127i.w = floatBitsToInt((intBitsToFloat(uf_uniformRegisterVS[ARi.x+8].x) * intBitsToFloat(uf_uniformRegisterVS[24].x) + intBitsToFloat(backupReg1i)));
|
|
||||||
// 10
|
|
||||||
R123i.x = floatBitsToInt((intBitsToFloat(R126i.y) * intBitsToFloat(uf_uniformRegisterVS[22].w) + intBitsToFloat(R127i.x)));
|
|
||||||
PV0i.x = R123i.x;
|
|
||||||
R123i.y = floatBitsToInt((intBitsToFloat(R126i.y) * intBitsToFloat(uf_uniformRegisterVS[22].z) + intBitsToFloat(R127i.y)));
|
|
||||||
PV0i.y = R123i.y;
|
|
||||||
R123i.z = floatBitsToInt((intBitsToFloat(R126i.y) * intBitsToFloat(uf_uniformRegisterVS[22].y) + intBitsToFloat(R126i.z)));
|
|
||||||
PV0i.z = R123i.z;
|
|
||||||
R123i.w = floatBitsToInt((intBitsToFloat(R126i.y) * intBitsToFloat(uf_uniformRegisterVS[22].x) + intBitsToFloat(R126i.w)));
|
|
||||||
PV0i.w = R123i.w;
|
|
||||||
// 11
|
|
||||||
R123i.x = floatBitsToInt((intBitsToFloat(R127i.z) * intBitsToFloat(uf_uniformRegisterVS[21].w) + intBitsToFloat(PV0i.x)));
|
|
||||||
PV1i.x = R123i.x;
|
|
||||||
R123i.y = floatBitsToInt((intBitsToFloat(R127i.z) * intBitsToFloat(uf_uniformRegisterVS[21].z) + intBitsToFloat(PV0i.y)));
|
|
||||||
PV1i.y = R123i.y;
|
|
||||||
R123i.z = floatBitsToInt((intBitsToFloat(R127i.z) * intBitsToFloat(uf_uniformRegisterVS[21].y) + intBitsToFloat(PV0i.z)));
|
|
||||||
PV1i.z = R123i.z;
|
|
||||||
R123i.w = floatBitsToInt((intBitsToFloat(R127i.z) * intBitsToFloat(uf_uniformRegisterVS[21].x) + intBitsToFloat(PV0i.w)));
|
|
||||||
PV1i.w = R123i.w;
|
|
||||||
// 12
|
|
||||||
backupReg0i = R127i.w;
|
|
||||||
R123i.x = floatBitsToInt((intBitsToFloat(R127i.w) * intBitsToFloat(uf_uniformRegisterVS[20].w) + intBitsToFloat(PV1i.x)));
|
|
||||||
PV0i.x = R123i.x;
|
|
||||||
R127i.y = floatBitsToInt((intBitsToFloat(R127i.w) * intBitsToFloat(uf_uniformRegisterVS[20].z) + intBitsToFloat(PV1i.y)));
|
|
||||||
R127i.z = floatBitsToInt((intBitsToFloat(R127i.w) * intBitsToFloat(uf_uniformRegisterVS[20].y) + intBitsToFloat(PV1i.z)));
|
|
||||||
R127i.w = floatBitsToInt((intBitsToFloat(backupReg0i) * intBitsToFloat(uf_uniformRegisterVS[20].x) + intBitsToFloat(PV1i.w)));
|
|
||||||
// 13
|
|
||||||
PV1i.x = floatBitsToInt(intBitsToFloat(PV0i.x) * intBitsToFloat(uf_uniformRegisterVS[3].w));
|
|
||||||
PV1i.y = floatBitsToInt(intBitsToFloat(PV0i.x) * intBitsToFloat(uf_uniformRegisterVS[3].z));
|
|
||||||
PV1i.z = floatBitsToInt(intBitsToFloat(PV0i.x) * intBitsToFloat(uf_uniformRegisterVS[3].y));
|
|
||||||
PV1i.w = floatBitsToInt(intBitsToFloat(PV0i.x) * intBitsToFloat(uf_uniformRegisterVS[3].x));
|
|
||||||
// 14
|
|
||||||
R123i.x = floatBitsToInt((intBitsToFloat(R127i.y) * intBitsToFloat(uf_uniformRegisterVS[2].w) + intBitsToFloat(PV1i.x)));
|
|
||||||
PV0i.x = R123i.x;
|
|
||||||
R123i.y = floatBitsToInt((intBitsToFloat(R127i.y) * intBitsToFloat(uf_uniformRegisterVS[2].z) + intBitsToFloat(PV1i.y)));
|
|
||||||
PV0i.y = R123i.y;
|
|
||||||
R123i.z = floatBitsToInt((intBitsToFloat(R127i.y) * intBitsToFloat(uf_uniformRegisterVS[2].y) + intBitsToFloat(PV1i.z)));
|
|
||||||
PV0i.z = R123i.z;
|
|
||||||
R123i.w = floatBitsToInt((intBitsToFloat(R127i.y) * intBitsToFloat(uf_uniformRegisterVS[2].x) + intBitsToFloat(PV1i.w)));
|
|
||||||
PV0i.w = R123i.w;
|
|
||||||
// 15
|
|
||||||
R123i.x = floatBitsToInt((intBitsToFloat(R127i.z) * intBitsToFloat(uf_uniformRegisterVS[1].w) + intBitsToFloat(PV0i.x)));
|
|
||||||
PV1i.x = R123i.x;
|
|
||||||
R123i.y = floatBitsToInt((intBitsToFloat(R127i.z) * intBitsToFloat(uf_uniformRegisterVS[1].z) + intBitsToFloat(PV0i.y)));
|
|
||||||
PV1i.y = R123i.y;
|
|
||||||
R123i.z = floatBitsToInt((intBitsToFloat(R127i.z) * intBitsToFloat(uf_uniformRegisterVS[1].y) + intBitsToFloat(PV0i.z)));
|
|
||||||
PV1i.z = R123i.z;
|
|
||||||
R123i.w = floatBitsToInt((intBitsToFloat(R127i.z) * intBitsToFloat(uf_uniformRegisterVS[1].x) + intBitsToFloat(PV0i.w)));
|
|
||||||
PV1i.w = R123i.w;
|
|
||||||
// 16
|
|
||||||
R1i.x = floatBitsToInt((intBitsToFloat(R127i.w) * intBitsToFloat(uf_uniformRegisterVS[0].x) + intBitsToFloat(PV1i.w)));
|
|
||||||
R1i.y = floatBitsToInt((intBitsToFloat(R127i.w) * intBitsToFloat(uf_uniformRegisterVS[0].y) + intBitsToFloat(PV1i.z)));
|
|
||||||
R1i.z = floatBitsToInt((intBitsToFloat(R127i.w) * intBitsToFloat(uf_uniformRegisterVS[0].z) + intBitsToFloat(PV1i.y)));
|
|
||||||
R1i.w = floatBitsToInt((intBitsToFloat(R127i.w) * intBitsToFloat(uf_uniformRegisterVS[0].w) + intBitsToFloat(PV1i.x)));
|
|
||||||
// 17
|
|
||||||
backupReg0i = R125i.z;
|
|
||||||
backupReg1i = R125i.w;
|
|
||||||
R125i.z = floatBitsToInt((intBitsToFloat(uf_uniformRegisterVS[ARi.x+12].y) * intBitsToFloat(uf_uniformRegisterVS[17].y) + intBitsToFloat(backupReg0i)));
|
|
||||||
R125i.w = floatBitsToInt((intBitsToFloat(uf_uniformRegisterVS[ARi.x+12].y) * intBitsToFloat(uf_uniformRegisterVS[17].x) + intBitsToFloat(backupReg1i)));
|
|
||||||
// 18
|
|
||||||
backupReg0i = R126i.x;
|
|
||||||
backupReg1i = R125i.y;
|
|
||||||
R126i.x = floatBitsToInt((intBitsToFloat(uf_uniformRegisterVS[ARi.x+12].y) * intBitsToFloat(uf_uniformRegisterVS[17].w) + intBitsToFloat(backupReg0i)));
|
|
||||||
R125i.y = floatBitsToInt((intBitsToFloat(uf_uniformRegisterVS[ARi.x+12].y) * intBitsToFloat(uf_uniformRegisterVS[17].z) + intBitsToFloat(backupReg1i)));
|
|
||||||
// 19
|
|
||||||
R0i.xyz = ivec3(uf_uniformRegisterVS[ARi.x+4].x,uf_uniformRegisterVS[ARi.x+4].y,uf_uniformRegisterVS[ARi.x+4].z);
|
|
||||||
R0i.w = uf_uniformRegisterVS[ARi.x+4].w;
|
|
||||||
// 20
|
|
||||||
R2i.x = floatBitsToInt((intBitsToFloat(uf_uniformRegisterVS[ARi.x+12].x) * intBitsToFloat(uf_uniformRegisterVS[16].x) + intBitsToFloat(R125i.w)));
|
|
||||||
R2i.y = floatBitsToInt((intBitsToFloat(uf_uniformRegisterVS[ARi.x+12].x) * intBitsToFloat(uf_uniformRegisterVS[16].y) + intBitsToFloat(R125i.z)));
|
|
||||||
// 21
|
|
||||||
R2i.z = floatBitsToInt((intBitsToFloat(uf_uniformRegisterVS[ARi.x+12].x) * intBitsToFloat(uf_uniformRegisterVS[16].z) + intBitsToFloat(R125i.y)));
|
|
||||||
R2i.w = floatBitsToInt((intBitsToFloat(uf_uniformRegisterVS[ARi.x+12].x) * intBitsToFloat(uf_uniformRegisterVS[16].w) + intBitsToFloat(R126i.x)));
|
|
||||||
// export
|
|
||||||
float origRatio = 1.777f;
|
|
||||||
float newRatio = 2.370f;
|
|
||||||
// *(origRatio / newRatio)
|
|
||||||
gl_Position = vec4(intBitsToFloat(R1i.x) *(origRatio / newRatio), intBitsToFloat(R1i.y), intBitsToFloat(R1i.z), intBitsToFloat(R1i.w));
|
|
||||||
// export
|
|
||||||
passParameterSem0 = vec4(intBitsToFloat(R0i.x), intBitsToFloat(R0i.y), intBitsToFloat(R0i.z), intBitsToFloat(R0i.w));
|
|
||||||
// export
|
|
||||||
passParameterSem1 = vec4(intBitsToFloat(R2i.x), intBitsToFloat(R2i.y), intBitsToFloat(R2i.z), intBitsToFloat(R2i.w));
|
|
||||||
// 0
|
|
||||||
}
|
|
@ -1,171 +0,0 @@
|
|||||||
#version 420
|
|
||||||
#extension GL_ARB_texture_gather : enable
|
|
||||||
#extension GL_ARB_shading_language_packing : enable
|
|
||||||
// shader 8ff56afdf1a2f837
|
|
||||||
// text *dumped*
|
|
||||||
uniform ivec4 uf_uniformRegisterVS[256];
|
|
||||||
uniform vec2 uf_windowSpaceToClipSpaceTransform;
|
|
||||||
uniform float uf_alphaTestRef;
|
|
||||||
layout(location = 0) in uvec4 attrDataSem0;
|
|
||||||
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()
|
|
||||||
{
|
|
||||||
ivec4 R0i = ivec4(0);
|
|
||||||
ivec4 R1i = ivec4(0);
|
|
||||||
ivec4 R2i = ivec4(0);
|
|
||||||
ivec4 R123i = ivec4(0);
|
|
||||||
ivec4 R126i = ivec4(0);
|
|
||||||
ivec4 R127i = ivec4(0);
|
|
||||||
uvec4 attrDecoder;
|
|
||||||
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 = 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;
|
|
||||||
R1i = ivec4(int(attrDecoder.x), int(attrDecoder.y), int(attrDecoder.z), floatBitsToInt(1.0));
|
|
||||||
// 0
|
|
||||||
R127i.x = floatBitsToInt(intBitsToFloat(uf_uniformRegisterVS[23].w) * 1.0);
|
|
||||||
R127i.y = floatBitsToInt(intBitsToFloat(uf_uniformRegisterVS[23].z) * 1.0);
|
|
||||||
R127i.z = floatBitsToInt(intBitsToFloat(uf_uniformRegisterVS[23].y) * 1.0);
|
|
||||||
R127i.w = floatBitsToInt(intBitsToFloat(uf_uniformRegisterVS[23].x) * 1.0);
|
|
||||||
PS0i = int(intBitsToFloat(R1i.z));
|
|
||||||
// 1
|
|
||||||
R2i.z = 0;
|
|
||||||
R2i.w = floatBitsToInt(1.0);
|
|
||||||
R126i.x = floatBitsToInt(float(PS0i));
|
|
||||||
PS1i = R126i.x;
|
|
||||||
// 2
|
|
||||||
tempResultf = intBitsToFloat(PS1i);
|
|
||||||
tempResultf = floor(tempResultf);
|
|
||||||
tempResultf = clamp(tempResultf, -256.0, 255.0);
|
|
||||||
ARi.x = int(tempResultf);
|
|
||||||
PV0i.x = floatBitsToInt(tempResultf);
|
|
||||||
// 3
|
|
||||||
R123i.x = floatBitsToInt((intBitsToFloat(uf_uniformRegisterVS[ARi.x+8].z) * intBitsToFloat(uf_uniformRegisterVS[22].w) + intBitsToFloat(R127i.x)));
|
|
||||||
PV1i.x = R123i.x;
|
|
||||||
R123i.y = floatBitsToInt((intBitsToFloat(uf_uniformRegisterVS[ARi.x+8].z) * intBitsToFloat(uf_uniformRegisterVS[22].z) + intBitsToFloat(R127i.y)));
|
|
||||||
PV1i.y = R123i.y;
|
|
||||||
R0i.w = uf_uniformRegisterVS[ARi.x+8].w;
|
|
||||||
// 4
|
|
||||||
R127i.x = floatBitsToInt((intBitsToFloat(uf_uniformRegisterVS[ARi.x+8].y) * intBitsToFloat(uf_uniformRegisterVS[21].w) + intBitsToFloat(PV1i.x)));
|
|
||||||
R127i.y = floatBitsToInt((intBitsToFloat(uf_uniformRegisterVS[ARi.x+8].y) * intBitsToFloat(uf_uniformRegisterVS[21].z) + intBitsToFloat(PV1i.y)));
|
|
||||||
// 5
|
|
||||||
backupReg0i = R127i.z;
|
|
||||||
backupReg1i = R127i.w;
|
|
||||||
R127i.z = floatBitsToInt((intBitsToFloat(uf_uniformRegisterVS[ARi.x+8].z) * intBitsToFloat(uf_uniformRegisterVS[22].y) + intBitsToFloat(backupReg0i)));
|
|
||||||
R127i.w = floatBitsToInt((intBitsToFloat(uf_uniformRegisterVS[ARi.x+8].z) * intBitsToFloat(uf_uniformRegisterVS[22].x) + intBitsToFloat(backupReg1i)));
|
|
||||||
// 6
|
|
||||||
backupReg0i = R127i.x;
|
|
||||||
R127i.x = floatBitsToInt((intBitsToFloat(uf_uniformRegisterVS[ARi.x+8].x) * intBitsToFloat(uf_uniformRegisterVS[20].w) + intBitsToFloat(backupReg0i)));
|
|
||||||
R126i.y = floatBitsToInt((intBitsToFloat(uf_uniformRegisterVS[ARi.x+8].x) * intBitsToFloat(uf_uniformRegisterVS[20].z) + intBitsToFloat(R127i.y)));
|
|
||||||
// 7
|
|
||||||
backupReg0i = R127i.z;
|
|
||||||
backupReg1i = R127i.w;
|
|
||||||
R127i.z = floatBitsToInt((intBitsToFloat(uf_uniformRegisterVS[ARi.x+8].y) * intBitsToFloat(uf_uniformRegisterVS[21].y) + intBitsToFloat(backupReg0i)));
|
|
||||||
R127i.w = floatBitsToInt((intBitsToFloat(uf_uniformRegisterVS[ARi.x+8].y) * intBitsToFloat(uf_uniformRegisterVS[21].x) + intBitsToFloat(backupReg1i)));
|
|
||||||
// 8
|
|
||||||
backupReg0i = R127i.x;
|
|
||||||
backupReg0i = R127i.x;
|
|
||||||
backupReg0i = R127i.x;
|
|
||||||
backupReg0i = R127i.x;
|
|
||||||
R127i.x = floatBitsToInt(intBitsToFloat(backupReg0i) * intBitsToFloat(uf_uniformRegisterVS[19].w));
|
|
||||||
R127i.y = floatBitsToInt(intBitsToFloat(backupReg0i) * intBitsToFloat(uf_uniformRegisterVS[19].z));
|
|
||||||
R126i.z = floatBitsToInt(intBitsToFloat(backupReg0i) * intBitsToFloat(uf_uniformRegisterVS[19].y));
|
|
||||||
R126i.w = floatBitsToInt(intBitsToFloat(backupReg0i) * intBitsToFloat(uf_uniformRegisterVS[19].x));
|
|
||||||
// 9
|
|
||||||
backupReg0i = R127i.z;
|
|
||||||
backupReg1i = R127i.w;
|
|
||||||
R127i.z = floatBitsToInt((intBitsToFloat(uf_uniformRegisterVS[ARi.x+8].x) * intBitsToFloat(uf_uniformRegisterVS[20].y) + intBitsToFloat(backupReg0i)));
|
|
||||||
R127i.w = floatBitsToInt((intBitsToFloat(uf_uniformRegisterVS[ARi.x+8].x) * intBitsToFloat(uf_uniformRegisterVS[20].x) + intBitsToFloat(backupReg1i)));
|
|
||||||
// 10
|
|
||||||
R123i.x = floatBitsToInt((intBitsToFloat(R126i.y) * intBitsToFloat(uf_uniformRegisterVS[18].w) + intBitsToFloat(R127i.x)));
|
|
||||||
PV0i.x = R123i.x;
|
|
||||||
R123i.y = floatBitsToInt((intBitsToFloat(R126i.y) * intBitsToFloat(uf_uniformRegisterVS[18].z) + intBitsToFloat(R127i.y)));
|
|
||||||
PV0i.y = R123i.y;
|
|
||||||
R123i.z = floatBitsToInt((intBitsToFloat(R126i.y) * intBitsToFloat(uf_uniformRegisterVS[18].y) + intBitsToFloat(R126i.z)));
|
|
||||||
PV0i.z = R123i.z;
|
|
||||||
R123i.w = floatBitsToInt((intBitsToFloat(R126i.y) * intBitsToFloat(uf_uniformRegisterVS[18].x) + intBitsToFloat(R126i.w)));
|
|
||||||
PV0i.w = R123i.w;
|
|
||||||
// 11
|
|
||||||
R123i.x = floatBitsToInt((intBitsToFloat(R127i.z) * intBitsToFloat(uf_uniformRegisterVS[17].w) + intBitsToFloat(PV0i.x)));
|
|
||||||
PV1i.x = R123i.x;
|
|
||||||
R123i.y = floatBitsToInt((intBitsToFloat(R127i.z) * intBitsToFloat(uf_uniformRegisterVS[17].z) + intBitsToFloat(PV0i.y)));
|
|
||||||
PV1i.y = R123i.y;
|
|
||||||
R123i.z = floatBitsToInt((intBitsToFloat(R127i.z) * intBitsToFloat(uf_uniformRegisterVS[17].y) + intBitsToFloat(PV0i.z)));
|
|
||||||
PV1i.z = R123i.z;
|
|
||||||
R123i.w = floatBitsToInt((intBitsToFloat(R127i.z) * intBitsToFloat(uf_uniformRegisterVS[17].x) + intBitsToFloat(PV0i.w)));
|
|
||||||
PV1i.w = R123i.w;
|
|
||||||
// 12
|
|
||||||
backupReg0i = R127i.w;
|
|
||||||
R123i.x = floatBitsToInt((intBitsToFloat(R127i.w) * intBitsToFloat(uf_uniformRegisterVS[16].w) + intBitsToFloat(PV1i.x)));
|
|
||||||
PV0i.x = R123i.x;
|
|
||||||
R127i.y = floatBitsToInt((intBitsToFloat(R127i.w) * intBitsToFloat(uf_uniformRegisterVS[16].z) + intBitsToFloat(PV1i.y)));
|
|
||||||
R127i.z = floatBitsToInt((intBitsToFloat(R127i.w) * intBitsToFloat(uf_uniformRegisterVS[16].y) + intBitsToFloat(PV1i.z)));
|
|
||||||
R127i.w = floatBitsToInt((intBitsToFloat(backupReg0i) * intBitsToFloat(uf_uniformRegisterVS[16].x) + intBitsToFloat(PV1i.w)));
|
|
||||||
// 13
|
|
||||||
PV1i.x = floatBitsToInt(intBitsToFloat(PV0i.x) * intBitsToFloat(uf_uniformRegisterVS[3].w));
|
|
||||||
PV1i.y = floatBitsToInt(intBitsToFloat(PV0i.x) * intBitsToFloat(uf_uniformRegisterVS[3].z));
|
|
||||||
PV1i.z = floatBitsToInt(intBitsToFloat(PV0i.x) * intBitsToFloat(uf_uniformRegisterVS[3].y));
|
|
||||||
PV1i.w = floatBitsToInt(intBitsToFloat(PV0i.x) * intBitsToFloat(uf_uniformRegisterVS[3].x));
|
|
||||||
// 14
|
|
||||||
R123i.x = floatBitsToInt((intBitsToFloat(R127i.y) * intBitsToFloat(uf_uniformRegisterVS[2].w) + intBitsToFloat(PV1i.x)));
|
|
||||||
PV0i.x = R123i.x;
|
|
||||||
R123i.y = floatBitsToInt((intBitsToFloat(R127i.y) * intBitsToFloat(uf_uniformRegisterVS[2].z) + intBitsToFloat(PV1i.y)));
|
|
||||||
PV0i.y = R123i.y;
|
|
||||||
R123i.z = floatBitsToInt((intBitsToFloat(R127i.y) * intBitsToFloat(uf_uniformRegisterVS[2].y) + intBitsToFloat(PV1i.z)));
|
|
||||||
PV0i.z = R123i.z;
|
|
||||||
R123i.w = floatBitsToInt((intBitsToFloat(R127i.y) * intBitsToFloat(uf_uniformRegisterVS[2].x) + intBitsToFloat(PV1i.w)));
|
|
||||||
PV0i.w = R123i.w;
|
|
||||||
// 15
|
|
||||||
R123i.x = floatBitsToInt((intBitsToFloat(R127i.z) * intBitsToFloat(uf_uniformRegisterVS[1].w) + intBitsToFloat(PV0i.x)));
|
|
||||||
PV1i.x = R123i.x;
|
|
||||||
R123i.y = floatBitsToInt((intBitsToFloat(R127i.z) * intBitsToFloat(uf_uniformRegisterVS[1].z) + intBitsToFloat(PV0i.y)));
|
|
||||||
PV1i.y = R123i.y;
|
|
||||||
R123i.z = floatBitsToInt((intBitsToFloat(R127i.z) * intBitsToFloat(uf_uniformRegisterVS[1].y) + intBitsToFloat(PV0i.z)));
|
|
||||||
PV1i.z = R123i.z;
|
|
||||||
R123i.w = floatBitsToInt((intBitsToFloat(R127i.z) * intBitsToFloat(uf_uniformRegisterVS[1].x) + intBitsToFloat(PV0i.w)));
|
|
||||||
PV1i.w = R123i.w;
|
|
||||||
// 16
|
|
||||||
R1i.x = floatBitsToInt((intBitsToFloat(R127i.w) * intBitsToFloat(uf_uniformRegisterVS[0].x) + intBitsToFloat(PV1i.w)));
|
|
||||||
R1i.y = floatBitsToInt((intBitsToFloat(R127i.w) * intBitsToFloat(uf_uniformRegisterVS[0].y) + intBitsToFloat(PV1i.z)));
|
|
||||||
R1i.z = floatBitsToInt((intBitsToFloat(R127i.w) * intBitsToFloat(uf_uniformRegisterVS[0].z) + intBitsToFloat(PV1i.y)));
|
|
||||||
R1i.w = floatBitsToInt((intBitsToFloat(R127i.w) * intBitsToFloat(uf_uniformRegisterVS[0].w) + intBitsToFloat(PV1i.x)));
|
|
||||||
// 17
|
|
||||||
R0i.xyz = ivec3(uf_uniformRegisterVS[ARi.x+4].x,uf_uniformRegisterVS[ARi.x+4].y,uf_uniformRegisterVS[ARi.x+4].z);
|
|
||||||
// 18
|
|
||||||
R2i.x = uf_uniformRegisterVS[ARi.x+12].x;
|
|
||||||
R2i.y = uf_uniformRegisterVS[ARi.x+12].y;
|
|
||||||
// export
|
|
||||||
float origRatio = 1.777f;
|
|
||||||
float newRatio = 2.370f;
|
|
||||||
gl_Position = vec4(intBitsToFloat(R1i.x)*(origRatio / newRatio), intBitsToFloat(R1i.y), intBitsToFloat(R1i.z), intBitsToFloat(R1i.w));
|
|
||||||
// export
|
|
||||||
passParameterSem0 = vec4(intBitsToFloat(R0i.x), intBitsToFloat(R0i.y), intBitsToFloat(R0i.z), intBitsToFloat(R0i.w));
|
|
||||||
// export
|
|
||||||
passParameterSem1 = vec4(intBitsToFloat(R2i.x), intBitsToFloat(R2i.y), intBitsToFloat(R2i.z), intBitsToFloat(R2i.w));
|
|
||||||
// 0
|
|
||||||
}
|
|
@ -1,181 +0,0 @@
|
|||||||
#version 420
|
|
||||||
#extension GL_ARB_texture_gather : enable
|
|
||||||
#extension GL_ARB_shading_language_packing : enable
|
|
||||||
// shader 9f390af3897e9112
|
|
||||||
//active selection
|
|
||||||
uniform ivec4 uf_uniformRegisterVS[256];
|
|
||||||
uniform vec2 uf_windowSpaceToClipSpaceTransform;
|
|
||||||
uniform float uf_alphaTestRef;
|
|
||||||
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){ return min(a*b,min(abs(a)*3.40282347E+38F,abs(b)*3.40282347E+38F)); }
|
|
||||||
void main()
|
|
||||||
{
|
|
||||||
ivec4 R0i = ivec4(0);
|
|
||||||
ivec4 R1i = ivec4(0);
|
|
||||||
ivec4 R123i = ivec4(0);
|
|
||||||
ivec4 R125i = ivec4(0);
|
|
||||||
ivec4 R126i = ivec4(0);
|
|
||||||
ivec4 R127i = ivec4(0);
|
|
||||||
uvec4 attrDecoder;
|
|
||||||
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 = 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;
|
|
||||||
R1i = ivec4(int(attrDecoder.x), int(attrDecoder.y), int(attrDecoder.z), floatBitsToInt(1.0));
|
|
||||||
// 0
|
|
||||||
R127i.x = floatBitsToInt(intBitsToFloat(uf_uniformRegisterVS[23].w) * 1.0);
|
|
||||||
R127i.y = floatBitsToInt(intBitsToFloat(uf_uniformRegisterVS[23].z) * 1.0);
|
|
||||||
R127i.z = floatBitsToInt(intBitsToFloat(uf_uniformRegisterVS[23].y) * 1.0);
|
|
||||||
R127i.w = floatBitsToInt(intBitsToFloat(uf_uniformRegisterVS[23].x) * 1.0);
|
|
||||||
PS0i = int(intBitsToFloat(R1i.z));
|
|
||||||
// 1
|
|
||||||
R126i.x = floatBitsToInt(intBitsToFloat(uf_uniformRegisterVS[15].w) * 1.0);
|
|
||||||
R125i.y = floatBitsToInt(intBitsToFloat(uf_uniformRegisterVS[15].z) * 1.0);
|
|
||||||
R125i.z = floatBitsToInt(intBitsToFloat(uf_uniformRegisterVS[15].y) * 1.0);
|
|
||||||
R125i.w = floatBitsToInt(intBitsToFloat(uf_uniformRegisterVS[15].x) * 1.0);
|
|
||||||
R125i.x = floatBitsToInt(float(PS0i));
|
|
||||||
PS1i = R125i.x;
|
|
||||||
// 2
|
|
||||||
tempResultf = intBitsToFloat(PS1i);
|
|
||||||
tempResultf = floor(tempResultf);
|
|
||||||
tempResultf = clamp(tempResultf, -256.0, 255.0);
|
|
||||||
ARi.x = int(tempResultf);
|
|
||||||
PV0i.x = floatBitsToInt(tempResultf);
|
|
||||||
// 3
|
|
||||||
R123i.x = floatBitsToInt((intBitsToFloat(uf_uniformRegisterVS[ARi.x+4].z) * intBitsToFloat(uf_uniformRegisterVS[22].w) + intBitsToFloat(R127i.x)));
|
|
||||||
PV1i.x = R123i.x;
|
|
||||||
R123i.y = floatBitsToInt((intBitsToFloat(uf_uniformRegisterVS[ARi.x+4].z) * intBitsToFloat(uf_uniformRegisterVS[22].z) + intBitsToFloat(R127i.y)));
|
|
||||||
PV1i.y = R123i.y;
|
|
||||||
// 4
|
|
||||||
R127i.x = floatBitsToInt((intBitsToFloat(uf_uniformRegisterVS[ARi.x+4].y) * intBitsToFloat(uf_uniformRegisterVS[21].w) + intBitsToFloat(PV1i.x)));
|
|
||||||
R127i.y = floatBitsToInt((intBitsToFloat(uf_uniformRegisterVS[ARi.x+4].y) * intBitsToFloat(uf_uniformRegisterVS[21].z) + intBitsToFloat(PV1i.y)));
|
|
||||||
// 5
|
|
||||||
backupReg0i = R127i.z;
|
|
||||||
backupReg1i = R127i.w;
|
|
||||||
R127i.z = floatBitsToInt((intBitsToFloat(uf_uniformRegisterVS[ARi.x+4].z) * intBitsToFloat(uf_uniformRegisterVS[22].y) + intBitsToFloat(backupReg0i)));
|
|
||||||
R127i.w = floatBitsToInt((intBitsToFloat(uf_uniformRegisterVS[ARi.x+4].z) * intBitsToFloat(uf_uniformRegisterVS[22].x) + intBitsToFloat(backupReg1i)));
|
|
||||||
// 6
|
|
||||||
backupReg0i = R127i.x;
|
|
||||||
R127i.x = floatBitsToInt((intBitsToFloat(uf_uniformRegisterVS[ARi.x+4].x) * intBitsToFloat(uf_uniformRegisterVS[20].w) + intBitsToFloat(backupReg0i)));
|
|
||||||
R126i.y = floatBitsToInt((intBitsToFloat(uf_uniformRegisterVS[ARi.x+4].x) * intBitsToFloat(uf_uniformRegisterVS[20].z) + intBitsToFloat(R127i.y)));
|
|
||||||
// 7
|
|
||||||
backupReg0i = R127i.z;
|
|
||||||
backupReg1i = R127i.w;
|
|
||||||
R127i.z = floatBitsToInt((intBitsToFloat(uf_uniformRegisterVS[ARi.x+4].y) * intBitsToFloat(uf_uniformRegisterVS[21].y) + intBitsToFloat(backupReg0i)));
|
|
||||||
R127i.w = floatBitsToInt((intBitsToFloat(uf_uniformRegisterVS[ARi.x+4].y) * intBitsToFloat(uf_uniformRegisterVS[21].x) + intBitsToFloat(backupReg1i)));
|
|
||||||
// 8
|
|
||||||
backupReg0i = R127i.x;
|
|
||||||
backupReg0i = R127i.x;
|
|
||||||
backupReg0i = R127i.x;
|
|
||||||
backupReg0i = R127i.x;
|
|
||||||
R127i.x = floatBitsToInt(intBitsToFloat(backupReg0i) * intBitsToFloat(uf_uniformRegisterVS[19].w));
|
|
||||||
R127i.y = floatBitsToInt(intBitsToFloat(backupReg0i) * intBitsToFloat(uf_uniformRegisterVS[19].z));
|
|
||||||
R126i.z = floatBitsToInt(intBitsToFloat(backupReg0i) * intBitsToFloat(uf_uniformRegisterVS[19].y));
|
|
||||||
R126i.w = floatBitsToInt(intBitsToFloat(backupReg0i) * intBitsToFloat(uf_uniformRegisterVS[19].x));
|
|
||||||
// 9
|
|
||||||
backupReg0i = R127i.z;
|
|
||||||
backupReg1i = R127i.w;
|
|
||||||
R127i.z = floatBitsToInt((intBitsToFloat(uf_uniformRegisterVS[ARi.x+4].x) * intBitsToFloat(uf_uniformRegisterVS[20].y) + intBitsToFloat(backupReg0i)));
|
|
||||||
R127i.w = floatBitsToInt((intBitsToFloat(uf_uniformRegisterVS[ARi.x+4].x) * intBitsToFloat(uf_uniformRegisterVS[20].x) + intBitsToFloat(backupReg1i)));
|
|
||||||
// 10
|
|
||||||
R123i.x = floatBitsToInt((intBitsToFloat(R126i.y) * intBitsToFloat(uf_uniformRegisterVS[18].w) + intBitsToFloat(R127i.x)));
|
|
||||||
PV0i.x = R123i.x;
|
|
||||||
R123i.y = floatBitsToInt((intBitsToFloat(R126i.y) * intBitsToFloat(uf_uniformRegisterVS[18].z) + intBitsToFloat(R127i.y)));
|
|
||||||
PV0i.y = R123i.y;
|
|
||||||
R123i.z = floatBitsToInt((intBitsToFloat(R126i.y) * intBitsToFloat(uf_uniformRegisterVS[18].y) + intBitsToFloat(R126i.z)));
|
|
||||||
PV0i.z = R123i.z;
|
|
||||||
R123i.w = floatBitsToInt((intBitsToFloat(R126i.y) * intBitsToFloat(uf_uniformRegisterVS[18].x) + intBitsToFloat(R126i.w)));
|
|
||||||
PV0i.w = R123i.w;
|
|
||||||
// 11
|
|
||||||
R123i.x = floatBitsToInt((intBitsToFloat(R127i.z) * intBitsToFloat(uf_uniformRegisterVS[17].w) + intBitsToFloat(PV0i.x)));
|
|
||||||
PV1i.x = R123i.x;
|
|
||||||
R123i.y = floatBitsToInt((intBitsToFloat(R127i.z) * intBitsToFloat(uf_uniformRegisterVS[17].z) + intBitsToFloat(PV0i.y)));
|
|
||||||
PV1i.y = R123i.y;
|
|
||||||
R123i.z = floatBitsToInt((intBitsToFloat(R127i.z) * intBitsToFloat(uf_uniformRegisterVS[17].y) + intBitsToFloat(PV0i.z)));
|
|
||||||
PV1i.z = R123i.z;
|
|
||||||
R123i.w = floatBitsToInt((intBitsToFloat(R127i.z) * intBitsToFloat(uf_uniformRegisterVS[17].x) + intBitsToFloat(PV0i.w)));
|
|
||||||
PV1i.w = R123i.w;
|
|
||||||
// 12
|
|
||||||
backupReg0i = R127i.w;
|
|
||||||
R123i.x = floatBitsToInt((intBitsToFloat(R127i.w) * intBitsToFloat(uf_uniformRegisterVS[16].w) + intBitsToFloat(PV1i.x)));
|
|
||||||
PV0i.x = R123i.x;
|
|
||||||
R127i.y = floatBitsToInt((intBitsToFloat(R127i.w) * intBitsToFloat(uf_uniformRegisterVS[16].z) + intBitsToFloat(PV1i.y)));
|
|
||||||
R127i.z = floatBitsToInt((intBitsToFloat(R127i.w) * intBitsToFloat(uf_uniformRegisterVS[16].y) + intBitsToFloat(PV1i.z)));
|
|
||||||
R127i.w = floatBitsToInt((intBitsToFloat(backupReg0i) * intBitsToFloat(uf_uniformRegisterVS[16].x) + intBitsToFloat(PV1i.w)));
|
|
||||||
// 13
|
|
||||||
PV1i.x = floatBitsToInt(intBitsToFloat(PV0i.x) * intBitsToFloat(uf_uniformRegisterVS[3].w));
|
|
||||||
PV1i.y = floatBitsToInt(intBitsToFloat(PV0i.x) * intBitsToFloat(uf_uniformRegisterVS[3].z));
|
|
||||||
PV1i.z = floatBitsToInt(intBitsToFloat(PV0i.x) * intBitsToFloat(uf_uniformRegisterVS[3].y));
|
|
||||||
PV1i.w = floatBitsToInt(intBitsToFloat(PV0i.x) * intBitsToFloat(uf_uniformRegisterVS[3].x));
|
|
||||||
// 14
|
|
||||||
R123i.x = floatBitsToInt((intBitsToFloat(R127i.y) * intBitsToFloat(uf_uniformRegisterVS[2].w) + intBitsToFloat(PV1i.x)));
|
|
||||||
PV0i.x = R123i.x;
|
|
||||||
R123i.y = floatBitsToInt((intBitsToFloat(R127i.y) * intBitsToFloat(uf_uniformRegisterVS[2].z) + intBitsToFloat(PV1i.y)));
|
|
||||||
PV0i.y = R123i.y;
|
|
||||||
R123i.z = floatBitsToInt((intBitsToFloat(R127i.y) * intBitsToFloat(uf_uniformRegisterVS[2].y) + intBitsToFloat(PV1i.z)));
|
|
||||||
PV0i.z = R123i.z;
|
|
||||||
R123i.w = floatBitsToInt((intBitsToFloat(R127i.y) * intBitsToFloat(uf_uniformRegisterVS[2].x) + intBitsToFloat(PV1i.w)));
|
|
||||||
PV0i.w = R123i.w;
|
|
||||||
// 15
|
|
||||||
R123i.x = floatBitsToInt((intBitsToFloat(R127i.z) * intBitsToFloat(uf_uniformRegisterVS[1].w) + intBitsToFloat(PV0i.x)));
|
|
||||||
PV1i.x = R123i.x;
|
|
||||||
R123i.y = floatBitsToInt((intBitsToFloat(R127i.z) * intBitsToFloat(uf_uniformRegisterVS[1].z) + intBitsToFloat(PV0i.y)));
|
|
||||||
PV1i.y = R123i.y;
|
|
||||||
R123i.z = floatBitsToInt((intBitsToFloat(R127i.z) * intBitsToFloat(uf_uniformRegisterVS[1].y) + intBitsToFloat(PV0i.z)));
|
|
||||||
PV1i.z = R123i.z;
|
|
||||||
R123i.w = floatBitsToInt((intBitsToFloat(R127i.z) * intBitsToFloat(uf_uniformRegisterVS[1].x) + intBitsToFloat(PV0i.w)));
|
|
||||||
PV1i.w = R123i.w;
|
|
||||||
// 16
|
|
||||||
R1i.x = floatBitsToInt((intBitsToFloat(R127i.w) * intBitsToFloat(uf_uniformRegisterVS[0].x) + intBitsToFloat(PV1i.w)));
|
|
||||||
R1i.y = floatBitsToInt((intBitsToFloat(R127i.w) * intBitsToFloat(uf_uniformRegisterVS[0].y) + intBitsToFloat(PV1i.z)));
|
|
||||||
R1i.z = floatBitsToInt((intBitsToFloat(R127i.w) * intBitsToFloat(uf_uniformRegisterVS[0].z) + intBitsToFloat(PV1i.y)));
|
|
||||||
R1i.w = floatBitsToInt((intBitsToFloat(R127i.w) * intBitsToFloat(uf_uniformRegisterVS[0].w) + intBitsToFloat(PV1i.x)));
|
|
||||||
// 17
|
|
||||||
backupReg0i = R125i.z;
|
|
||||||
backupReg1i = R125i.w;
|
|
||||||
R125i.z = floatBitsToInt((intBitsToFloat(uf_uniformRegisterVS[ARi.x+8].y) * intBitsToFloat(uf_uniformRegisterVS[13].y) + intBitsToFloat(backupReg0i)));
|
|
||||||
R125i.w = floatBitsToInt((intBitsToFloat(uf_uniformRegisterVS[ARi.x+8].y) * intBitsToFloat(uf_uniformRegisterVS[13].x) + intBitsToFloat(backupReg1i)));
|
|
||||||
// 18
|
|
||||||
backupReg0i = R126i.x;
|
|
||||||
backupReg1i = R125i.y;
|
|
||||||
R126i.x = floatBitsToInt((intBitsToFloat(uf_uniformRegisterVS[ARi.x+8].y) * intBitsToFloat(uf_uniformRegisterVS[13].w) + intBitsToFloat(backupReg0i)));
|
|
||||||
R125i.y = floatBitsToInt((intBitsToFloat(uf_uniformRegisterVS[ARi.x+8].y) * intBitsToFloat(uf_uniformRegisterVS[13].z) + intBitsToFloat(backupReg1i)));
|
|
||||||
// 19
|
|
||||||
R0i.x = floatBitsToInt((intBitsToFloat(uf_uniformRegisterVS[ARi.x+8].x) * intBitsToFloat(uf_uniformRegisterVS[12].x) + intBitsToFloat(R125i.w)));
|
|
||||||
R0i.y = floatBitsToInt((intBitsToFloat(uf_uniformRegisterVS[ARi.x+8].x) * intBitsToFloat(uf_uniformRegisterVS[12].y) + intBitsToFloat(R125i.z)));
|
|
||||||
// 20
|
|
||||||
R0i.z = floatBitsToInt((intBitsToFloat(uf_uniformRegisterVS[ARi.x+8].x) * intBitsToFloat(uf_uniformRegisterVS[12].z) + intBitsToFloat(R125i.y)));
|
|
||||||
R0i.w = floatBitsToInt((intBitsToFloat(uf_uniformRegisterVS[ARi.x+8].x) * intBitsToFloat(uf_uniformRegisterVS[12].w) + intBitsToFloat(R126i.x)));
|
|
||||||
// export
|
|
||||||
float origRatio = 1.777f;
|
|
||||||
float newRatio = 2.370f;
|
|
||||||
|
|
||||||
gl_Position = vec4(intBitsToFloat(R1i.x)*(origRatio / newRatio), intBitsToFloat(R1i.y), intBitsToFloat(R1i.z), intBitsToFloat(R1i.w));
|
|
||||||
// export
|
|
||||||
passParameterSem0 = vec4(intBitsToFloat(R0i.x), intBitsToFloat(R0i.y), intBitsToFloat(R0i.z), intBitsToFloat(R0i.w));
|
|
||||||
// 0
|
|
||||||
}
|
|
@ -1,163 +0,0 @@
|
|||||||
#version 420
|
|
||||||
#extension GL_ARB_texture_gather : enable
|
|
||||||
#extension GL_ARB_shading_language_packing : enable
|
|
||||||
// shader b679b0945943e505
|
|
||||||
// selection box frame *dumped*
|
|
||||||
uniform ivec4 uf_remappedVS[14];
|
|
||||||
uniform vec2 uf_windowSpaceToClipSpaceTransform;
|
|
||||||
uniform float uf_alphaTestRef;
|
|
||||||
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){ 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);
|
|
||||||
vec4 R123f = vec4(0.0);
|
|
||||||
vec4 R127f = 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 = intBitsToFloat(uf_remappedVS[0].w) * 1.0;
|
|
||||||
PV0f.y = intBitsToFloat(uf_remappedVS[0].z) * 1.0;
|
|
||||||
PV0f.z = intBitsToFloat(uf_remappedVS[0].y) * 1.0;
|
|
||||||
PV0f.w = intBitsToFloat(uf_remappedVS[0].x) * 1.0;
|
|
||||||
// 1
|
|
||||||
R123f.x = (R1f.y * intBitsToFloat(uf_remappedVS[1].w) + PV0f.x);
|
|
||||||
PV1f.x = R123f.x;
|
|
||||||
R123f.y = (R1f.y * intBitsToFloat(uf_remappedVS[1].z) + PV0f.y);
|
|
||||||
PV1f.y = R123f.y;
|
|
||||||
R123f.z = (R1f.y * intBitsToFloat(uf_remappedVS[1].y) + PV0f.z);
|
|
||||||
PV1f.z = R123f.z;
|
|
||||||
R123f.w = (R1f.y * intBitsToFloat(uf_remappedVS[1].x) + PV0f.w);
|
|
||||||
PV1f.w = R123f.w;
|
|
||||||
// 2
|
|
||||||
R123f.x = (R1f.x * intBitsToFloat(uf_remappedVS[2].w) + PV1f.x);
|
|
||||||
PV0f.x = R123f.x;
|
|
||||||
R127f.y = (R1f.x * intBitsToFloat(uf_remappedVS[2].z) + PV1f.y);
|
|
||||||
R127f.z = (R1f.x * intBitsToFloat(uf_remappedVS[2].y) + PV1f.z);
|
|
||||||
R127f.w = (R1f.x * intBitsToFloat(uf_remappedVS[2].x) + PV1f.w);
|
|
||||||
// 3
|
|
||||||
PV1f.x = PV0f.x * intBitsToFloat(uf_remappedVS[3].w);
|
|
||||||
PV1f.y = PV0f.x * intBitsToFloat(uf_remappedVS[3].z);
|
|
||||||
PV1f.z = PV0f.x * intBitsToFloat(uf_remappedVS[3].y);
|
|
||||||
PV1f.w = PV0f.x * intBitsToFloat(uf_remappedVS[3].x);
|
|
||||||
// 4
|
|
||||||
R123f.x = (R127f.y * intBitsToFloat(uf_remappedVS[4].w) + PV1f.x);
|
|
||||||
PV0f.x = R123f.x;
|
|
||||||
R123f.y = (R127f.y * intBitsToFloat(uf_remappedVS[4].z) + PV1f.y);
|
|
||||||
PV0f.y = R123f.y;
|
|
||||||
R123f.z = (R127f.y * intBitsToFloat(uf_remappedVS[4].y) + PV1f.z);
|
|
||||||
PV0f.z = R123f.z;
|
|
||||||
R123f.w = (R127f.y * intBitsToFloat(uf_remappedVS[4].x) + PV1f.w);
|
|
||||||
PV0f.w = R123f.w;
|
|
||||||
// 5
|
|
||||||
R123f.x = (R127f.z * intBitsToFloat(uf_remappedVS[5].w) + PV0f.x);
|
|
||||||
PV1f.x = R123f.x;
|
|
||||||
R123f.y = (R127f.z * intBitsToFloat(uf_remappedVS[5].z) + PV0f.y);
|
|
||||||
PV1f.y = R123f.y;
|
|
||||||
R123f.z = (R127f.z * intBitsToFloat(uf_remappedVS[5].y) + PV0f.z);
|
|
||||||
PV1f.z = R123f.z;
|
|
||||||
R123f.w = (R127f.z * intBitsToFloat(uf_remappedVS[5].x) + PV0f.w);
|
|
||||||
PV1f.w = R123f.w;
|
|
||||||
// 6
|
|
||||||
backupReg0f = R127f.w;
|
|
||||||
R123f.x = (R127f.w * intBitsToFloat(uf_remappedVS[6].w) + PV1f.x);
|
|
||||||
PV0f.x = R123f.x;
|
|
||||||
R127f.y = (R127f.w * intBitsToFloat(uf_remappedVS[6].z) + PV1f.y);
|
|
||||||
R127f.z = (R127f.w * intBitsToFloat(uf_remappedVS[6].y) + PV1f.z);
|
|
||||||
R127f.w = (backupReg0f * intBitsToFloat(uf_remappedVS[6].x) + PV1f.w);
|
|
||||||
// 7
|
|
||||||
PV1f.x = PV0f.x * intBitsToFloat(uf_remappedVS[7].w);
|
|
||||||
PV1f.y = PV0f.x * intBitsToFloat(uf_remappedVS[7].z);
|
|
||||||
PV1f.z = PV0f.x * intBitsToFloat(uf_remappedVS[7].y);
|
|
||||||
PV1f.w = PV0f.x * intBitsToFloat(uf_remappedVS[7].x);
|
|
||||||
// 8
|
|
||||||
R123f.x = (R127f.y * intBitsToFloat(uf_remappedVS[8].w) + PV1f.x);
|
|
||||||
PV0f.x = R123f.x;
|
|
||||||
R123f.y = (R127f.y * intBitsToFloat(uf_remappedVS[8].z) + PV1f.y);
|
|
||||||
PV0f.y = R123f.y;
|
|
||||||
R123f.z = (R127f.y * intBitsToFloat(uf_remappedVS[8].y) + PV1f.z);
|
|
||||||
PV0f.z = R123f.z;
|
|
||||||
R123f.w = (R127f.y * intBitsToFloat(uf_remappedVS[8].x) + PV1f.w);
|
|
||||||
PV0f.w = R123f.w;
|
|
||||||
// 9
|
|
||||||
R123f.x = (R127f.z * intBitsToFloat(uf_remappedVS[9].w) + PV0f.x);
|
|
||||||
PV1f.x = R123f.x;
|
|
||||||
R123f.y = (R127f.z * intBitsToFloat(uf_remappedVS[9].z) + PV0f.y);
|
|
||||||
PV1f.y = R123f.y;
|
|
||||||
R123f.z = (R127f.z * intBitsToFloat(uf_remappedVS[9].y) + PV0f.z);
|
|
||||||
PV1f.z = R123f.z;
|
|
||||||
R123f.w = (R127f.z * intBitsToFloat(uf_remappedVS[9].x) + PV0f.w);
|
|
||||||
PV1f.w = R123f.w;
|
|
||||||
// 10
|
|
||||||
R1f.x = (R127f.w * intBitsToFloat(uf_remappedVS[10].x) + PV1f.w);
|
|
||||||
R1f.y = (R127f.w * intBitsToFloat(uf_remappedVS[10].y) + PV1f.z);
|
|
||||||
R1f.z = (R127f.w * intBitsToFloat(uf_remappedVS[10].z) + PV1f.y);
|
|
||||||
R1f.w = (R127f.w * intBitsToFloat(uf_remappedVS[10].w) + PV1f.x);
|
|
||||||
// 11
|
|
||||||
PV1f.x = intBitsToFloat(uf_remappedVS[11].w) * 1.0;
|
|
||||||
PV1f.y = intBitsToFloat(uf_remappedVS[11].z) * 1.0;
|
|
||||||
PV1f.z = intBitsToFloat(uf_remappedVS[11].y) * 1.0;
|
|
||||||
PV1f.w = intBitsToFloat(uf_remappedVS[11].x) * 1.0;
|
|
||||||
// 12
|
|
||||||
R123f.x = (R2f.y * intBitsToFloat(uf_remappedVS[12].w) + PV1f.x);
|
|
||||||
PV0f.x = R123f.x;
|
|
||||||
R123f.y = (R2f.y * intBitsToFloat(uf_remappedVS[12].z) + PV1f.y);
|
|
||||||
PV0f.y = R123f.y;
|
|
||||||
R123f.z = (R2f.y * intBitsToFloat(uf_remappedVS[12].y) + PV1f.z);
|
|
||||||
PV0f.z = R123f.z;
|
|
||||||
R123f.w = (R2f.y * intBitsToFloat(uf_remappedVS[12].x) + PV1f.w);
|
|
||||||
PV0f.w = R123f.w;
|
|
||||||
// 13
|
|
||||||
backupReg0f = R2f.x;
|
|
||||||
backupReg0f = R2f.x;
|
|
||||||
backupReg0f = R2f.x;
|
|
||||||
backupReg0f = R2f.x;
|
|
||||||
R2f.x = (backupReg0f * intBitsToFloat(uf_remappedVS[13].x) + PV0f.w);
|
|
||||||
R2f.y = (backupReg0f * intBitsToFloat(uf_remappedVS[13].y) + PV0f.z);
|
|
||||||
R2f.z = (backupReg0f * intBitsToFloat(uf_remappedVS[13].z) + PV0f.y);
|
|
||||||
R2f.w = (backupReg0f * intBitsToFloat(uf_remappedVS[13].w) + PV0f.x);
|
|
||||||
// export
|
|
||||||
float origRatio = 1.777f;
|
|
||||||
float newRatio = 2.370f;
|
|
||||||
// *(origRatio / newRatio)
|
|
||||||
gl_Position = vec4(R1f.x*(origRatio / newRatio), R1f.y, R1f.z, R1f.w);
|
|
||||||
// export
|
|
||||||
passParameterSem0 = vec4(R2f.x, R2f.y, R2f.z, R2f.w);
|
|
||||||
// 0
|
|
||||||
}
|
|
@ -1,188 +0,0 @@
|
|||||||
#version 420
|
|
||||||
#extension GL_ARB_texture_gather : enable
|
|
||||||
#extension GL_ARB_shading_language_packing : enable
|
|
||||||
// shader d6e8f178a5b828f0
|
|
||||||
// bg boxes
|
|
||||||
uniform ivec4 uf_uniformRegisterVS[256];
|
|
||||||
uniform vec2 uf_windowSpaceToClipSpaceTransform;
|
|
||||||
uniform float uf_alphaTestRef;
|
|
||||||
layout(location = 0) in uvec4 attrDataSem0;
|
|
||||||
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()
|
|
||||||
{
|
|
||||||
ivec4 R0i = ivec4(0);
|
|
||||||
ivec4 R1i = ivec4(0);
|
|
||||||
ivec4 R2i = ivec4(0);
|
|
||||||
ivec4 R123i = ivec4(0);
|
|
||||||
ivec4 R125i = ivec4(0);
|
|
||||||
ivec4 R126i = ivec4(0);
|
|
||||||
ivec4 R127i = ivec4(0);
|
|
||||||
uvec4 attrDecoder;
|
|
||||||
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 = 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;
|
|
||||||
R1i = ivec4(int(attrDecoder.x), int(attrDecoder.y), int(attrDecoder.z), floatBitsToInt(1.0));
|
|
||||||
// 0
|
|
||||||
R127i.x = floatBitsToInt(intBitsToFloat(uf_uniformRegisterVS[27].w) * 1.0);
|
|
||||||
R127i.y = floatBitsToInt(intBitsToFloat(uf_uniformRegisterVS[27].z) * 1.0);
|
|
||||||
R127i.z = floatBitsToInt(intBitsToFloat(uf_uniformRegisterVS[27].y) * 1.0);
|
|
||||||
R127i.w = floatBitsToInt(intBitsToFloat(uf_uniformRegisterVS[27].x) * 1.0);
|
|
||||||
PS0i = int(intBitsToFloat(R1i.z));
|
|
||||||
// 1
|
|
||||||
R126i.x = floatBitsToInt(intBitsToFloat(uf_uniformRegisterVS[19].w) * 1.0);
|
|
||||||
R125i.y = floatBitsToInt(intBitsToFloat(uf_uniformRegisterVS[19].z) * 1.0);
|
|
||||||
R125i.z = floatBitsToInt(intBitsToFloat(uf_uniformRegisterVS[19].y) * 1.0);
|
|
||||||
R125i.w = floatBitsToInt(intBitsToFloat(uf_uniformRegisterVS[19].x) * 1.0);
|
|
||||||
R125i.x = floatBitsToInt(float(PS0i));
|
|
||||||
PS1i = R125i.x;
|
|
||||||
// 2
|
|
||||||
tempResultf = intBitsToFloat(PS1i);
|
|
||||||
tempResultf = floor(tempResultf);
|
|
||||||
tempResultf = clamp(tempResultf, -256.0, 255.0);
|
|
||||||
ARi.x = int(tempResultf);
|
|
||||||
PV0i.x = floatBitsToInt(tempResultf);
|
|
||||||
// 3
|
|
||||||
R123i.x = floatBitsToInt((intBitsToFloat(uf_uniformRegisterVS[ARi.x+8].z) * intBitsToFloat(uf_uniformRegisterVS[26].w) + intBitsToFloat(R127i.x)));
|
|
||||||
PV1i.x = R123i.x;
|
|
||||||
R123i.y = floatBitsToInt((intBitsToFloat(uf_uniformRegisterVS[ARi.x+8].z) * intBitsToFloat(uf_uniformRegisterVS[26].z) + intBitsToFloat(R127i.y)));
|
|
||||||
PV1i.y = R123i.y;
|
|
||||||
// 4
|
|
||||||
R127i.x = floatBitsToInt((intBitsToFloat(uf_uniformRegisterVS[ARi.x+8].y) * intBitsToFloat(uf_uniformRegisterVS[25].w) + intBitsToFloat(PV1i.x)));
|
|
||||||
R127i.y = floatBitsToInt((intBitsToFloat(uf_uniformRegisterVS[ARi.x+8].y) * intBitsToFloat(uf_uniformRegisterVS[25].z) + intBitsToFloat(PV1i.y)));
|
|
||||||
// 5
|
|
||||||
backupReg0i = R127i.z;
|
|
||||||
backupReg1i = R127i.w;
|
|
||||||
R127i.z = floatBitsToInt((intBitsToFloat(uf_uniformRegisterVS[ARi.x+8].z) * intBitsToFloat(uf_uniformRegisterVS[26].y) + intBitsToFloat(backupReg0i)));
|
|
||||||
R127i.w = floatBitsToInt((intBitsToFloat(uf_uniformRegisterVS[ARi.x+8].z) * intBitsToFloat(uf_uniformRegisterVS[26].x) + intBitsToFloat(backupReg1i)));
|
|
||||||
// 6
|
|
||||||
backupReg0i = R127i.x;
|
|
||||||
R127i.x = floatBitsToInt((intBitsToFloat(uf_uniformRegisterVS[ARi.x+8].x) * intBitsToFloat(uf_uniformRegisterVS[24].w) + intBitsToFloat(backupReg0i)));
|
|
||||||
R126i.y = floatBitsToInt((intBitsToFloat(uf_uniformRegisterVS[ARi.x+8].x) * intBitsToFloat(uf_uniformRegisterVS[24].z) + intBitsToFloat(R127i.y)));
|
|
||||||
// 7
|
|
||||||
backupReg0i = R127i.z;
|
|
||||||
backupReg1i = R127i.w;
|
|
||||||
R127i.z = floatBitsToInt((intBitsToFloat(uf_uniformRegisterVS[ARi.x+8].y) * intBitsToFloat(uf_uniformRegisterVS[25].y) + intBitsToFloat(backupReg0i)));
|
|
||||||
R127i.w = floatBitsToInt((intBitsToFloat(uf_uniformRegisterVS[ARi.x+8].y) * intBitsToFloat(uf_uniformRegisterVS[25].x) + intBitsToFloat(backupReg1i)));
|
|
||||||
// 8
|
|
||||||
backupReg0i = R127i.x;
|
|
||||||
backupReg0i = R127i.x;
|
|
||||||
backupReg0i = R127i.x;
|
|
||||||
backupReg0i = R127i.x;
|
|
||||||
R127i.x = floatBitsToInt(intBitsToFloat(backupReg0i) * intBitsToFloat(uf_uniformRegisterVS[23].w));
|
|
||||||
R127i.y = floatBitsToInt(intBitsToFloat(backupReg0i) * intBitsToFloat(uf_uniformRegisterVS[23].z));
|
|
||||||
R126i.z = floatBitsToInt(intBitsToFloat(backupReg0i) * intBitsToFloat(uf_uniformRegisterVS[23].y));
|
|
||||||
R126i.w = floatBitsToInt(intBitsToFloat(backupReg0i) * intBitsToFloat(uf_uniformRegisterVS[23].x));
|
|
||||||
// 9
|
|
||||||
backupReg0i = R127i.z;
|
|
||||||
backupReg1i = R127i.w;
|
|
||||||
R127i.z = floatBitsToInt((intBitsToFloat(uf_uniformRegisterVS[ARi.x+8].x) * intBitsToFloat(uf_uniformRegisterVS[24].y) + intBitsToFloat(backupReg0i)));
|
|
||||||
R127i.w = floatBitsToInt((intBitsToFloat(uf_uniformRegisterVS[ARi.x+8].x) * intBitsToFloat(uf_uniformRegisterVS[24].x) + intBitsToFloat(backupReg1i)));
|
|
||||||
// 10
|
|
||||||
R123i.x = floatBitsToInt((intBitsToFloat(R126i.y) * intBitsToFloat(uf_uniformRegisterVS[22].w) + intBitsToFloat(R127i.x)));
|
|
||||||
PV0i.x = R123i.x;
|
|
||||||
R123i.y = floatBitsToInt((intBitsToFloat(R126i.y) * intBitsToFloat(uf_uniformRegisterVS[22].z) + intBitsToFloat(R127i.y)));
|
|
||||||
PV0i.y = R123i.y;
|
|
||||||
R123i.z = floatBitsToInt((intBitsToFloat(R126i.y) * intBitsToFloat(uf_uniformRegisterVS[22].y) + intBitsToFloat(R126i.z)));
|
|
||||||
PV0i.z = R123i.z;
|
|
||||||
R123i.w = floatBitsToInt((intBitsToFloat(R126i.y) * intBitsToFloat(uf_uniformRegisterVS[22].x) + intBitsToFloat(R126i.w)));
|
|
||||||
PV0i.w = R123i.w;
|
|
||||||
// 11
|
|
||||||
R123i.x = floatBitsToInt((intBitsToFloat(R127i.z) * intBitsToFloat(uf_uniformRegisterVS[21].w) + intBitsToFloat(PV0i.x)));
|
|
||||||
PV1i.x = R123i.x;
|
|
||||||
R123i.y = floatBitsToInt((intBitsToFloat(R127i.z) * intBitsToFloat(uf_uniformRegisterVS[21].z) + intBitsToFloat(PV0i.y)));
|
|
||||||
PV1i.y = R123i.y;
|
|
||||||
R123i.z = floatBitsToInt((intBitsToFloat(R127i.z) * intBitsToFloat(uf_uniformRegisterVS[21].y) + intBitsToFloat(PV0i.z)));
|
|
||||||
PV1i.z = R123i.z;
|
|
||||||
R123i.w = floatBitsToInt((intBitsToFloat(R127i.z) * intBitsToFloat(uf_uniformRegisterVS[21].x) + intBitsToFloat(PV0i.w)));
|
|
||||||
PV1i.w = R123i.w;
|
|
||||||
// 12
|
|
||||||
backupReg0i = R127i.w;
|
|
||||||
R123i.x = floatBitsToInt((intBitsToFloat(R127i.w) * intBitsToFloat(uf_uniformRegisterVS[20].w) + intBitsToFloat(PV1i.x)));
|
|
||||||
PV0i.x = R123i.x;
|
|
||||||
R127i.y = floatBitsToInt((intBitsToFloat(R127i.w) * intBitsToFloat(uf_uniformRegisterVS[20].z) + intBitsToFloat(PV1i.y)));
|
|
||||||
R127i.z = floatBitsToInt((intBitsToFloat(R127i.w) * intBitsToFloat(uf_uniformRegisterVS[20].y) + intBitsToFloat(PV1i.z)));
|
|
||||||
R127i.w = floatBitsToInt((intBitsToFloat(backupReg0i) * intBitsToFloat(uf_uniformRegisterVS[20].x) + intBitsToFloat(PV1i.w)));
|
|
||||||
// 13
|
|
||||||
PV1i.x = floatBitsToInt(intBitsToFloat(PV0i.x) * intBitsToFloat(uf_uniformRegisterVS[3].w));
|
|
||||||
PV1i.y = floatBitsToInt(intBitsToFloat(PV0i.x) * intBitsToFloat(uf_uniformRegisterVS[3].z));
|
|
||||||
PV1i.z = floatBitsToInt(intBitsToFloat(PV0i.x) * intBitsToFloat(uf_uniformRegisterVS[3].y));
|
|
||||||
PV1i.w = floatBitsToInt(intBitsToFloat(PV0i.x) * intBitsToFloat(uf_uniformRegisterVS[3].x));
|
|
||||||
// 14
|
|
||||||
R123i.x = floatBitsToInt((intBitsToFloat(R127i.y) * intBitsToFloat(uf_uniformRegisterVS[2].w) + intBitsToFloat(PV1i.x)));
|
|
||||||
PV0i.x = R123i.x;
|
|
||||||
R123i.y = floatBitsToInt((intBitsToFloat(R127i.y) * intBitsToFloat(uf_uniformRegisterVS[2].z) + intBitsToFloat(PV1i.y)));
|
|
||||||
PV0i.y = R123i.y;
|
|
||||||
R123i.z = floatBitsToInt((intBitsToFloat(R127i.y) * intBitsToFloat(uf_uniformRegisterVS[2].y) + intBitsToFloat(PV1i.z)));
|
|
||||||
PV0i.z = R123i.z;
|
|
||||||
R123i.w = floatBitsToInt((intBitsToFloat(R127i.y) * intBitsToFloat(uf_uniformRegisterVS[2].x) + intBitsToFloat(PV1i.w)));
|
|
||||||
PV0i.w = R123i.w;
|
|
||||||
// 15
|
|
||||||
R123i.x = floatBitsToInt((intBitsToFloat(R127i.z) * intBitsToFloat(uf_uniformRegisterVS[1].w) + intBitsToFloat(PV0i.x)));
|
|
||||||
PV1i.x = R123i.x;
|
|
||||||
R123i.y = floatBitsToInt((intBitsToFloat(R127i.z) * intBitsToFloat(uf_uniformRegisterVS[1].z) + intBitsToFloat(PV0i.y)));
|
|
||||||
PV1i.y = R123i.y;
|
|
||||||
R123i.z = floatBitsToInt((intBitsToFloat(R127i.z) * intBitsToFloat(uf_uniformRegisterVS[1].y) + intBitsToFloat(PV0i.z)));
|
|
||||||
PV1i.z = R123i.z;
|
|
||||||
R123i.w = floatBitsToInt((intBitsToFloat(R127i.z) * intBitsToFloat(uf_uniformRegisterVS[1].x) + intBitsToFloat(PV0i.w)));
|
|
||||||
PV1i.w = R123i.w;
|
|
||||||
// 16
|
|
||||||
R1i.x = floatBitsToInt((intBitsToFloat(R127i.w) * intBitsToFloat(uf_uniformRegisterVS[0].x) + intBitsToFloat(PV1i.w)));
|
|
||||||
R1i.y = floatBitsToInt((intBitsToFloat(R127i.w) * intBitsToFloat(uf_uniformRegisterVS[0].y) + intBitsToFloat(PV1i.z)));
|
|
||||||
R1i.z = floatBitsToInt((intBitsToFloat(R127i.w) * intBitsToFloat(uf_uniformRegisterVS[0].z) + intBitsToFloat(PV1i.y)));
|
|
||||||
R1i.w = floatBitsToInt((intBitsToFloat(R127i.w) * intBitsToFloat(uf_uniformRegisterVS[0].w) + intBitsToFloat(PV1i.x)));
|
|
||||||
// 17
|
|
||||||
backupReg0i = R125i.z;
|
|
||||||
backupReg1i = R125i.w;
|
|
||||||
R125i.z = floatBitsToInt((intBitsToFloat(uf_uniformRegisterVS[ARi.x+12].y) * intBitsToFloat(uf_uniformRegisterVS[17].y) + intBitsToFloat(backupReg0i)));
|
|
||||||
R125i.w = floatBitsToInt((intBitsToFloat(uf_uniformRegisterVS[ARi.x+12].y) * intBitsToFloat(uf_uniformRegisterVS[17].x) + intBitsToFloat(backupReg1i)));
|
|
||||||
// 18
|
|
||||||
backupReg0i = R126i.x;
|
|
||||||
backupReg1i = R125i.y;
|
|
||||||
R126i.x = floatBitsToInt((intBitsToFloat(uf_uniformRegisterVS[ARi.x+12].y) * intBitsToFloat(uf_uniformRegisterVS[17].w) + intBitsToFloat(backupReg0i)));
|
|
||||||
R125i.y = floatBitsToInt((intBitsToFloat(uf_uniformRegisterVS[ARi.x+12].y) * intBitsToFloat(uf_uniformRegisterVS[17].z) + intBitsToFloat(backupReg1i)));
|
|
||||||
// 19
|
|
||||||
R0i.xyz = ivec3(uf_uniformRegisterVS[ARi.x+4].x,uf_uniformRegisterVS[ARi.x+4].y,uf_uniformRegisterVS[ARi.x+4].z);
|
|
||||||
R0i.w = uf_uniformRegisterVS[ARi.x+4].w;
|
|
||||||
// 20
|
|
||||||
R2i.x = floatBitsToInt((intBitsToFloat(uf_uniformRegisterVS[ARi.x+12].x) * intBitsToFloat(uf_uniformRegisterVS[16].x) + intBitsToFloat(R125i.w)));
|
|
||||||
R2i.y = floatBitsToInt((intBitsToFloat(uf_uniformRegisterVS[ARi.x+12].x) * intBitsToFloat(uf_uniformRegisterVS[16].y) + intBitsToFloat(R125i.z)));
|
|
||||||
// 21
|
|
||||||
R2i.z = floatBitsToInt((intBitsToFloat(uf_uniformRegisterVS[ARi.x+12].x) * intBitsToFloat(uf_uniformRegisterVS[16].z) + intBitsToFloat(R125i.y)));
|
|
||||||
R2i.w = floatBitsToInt((intBitsToFloat(uf_uniformRegisterVS[ARi.x+12].x) * intBitsToFloat(uf_uniformRegisterVS[16].w) + intBitsToFloat(R126i.x)));
|
|
||||||
// export
|
|
||||||
float origRatio = 1.777f;
|
|
||||||
float newRatio = 2.370f;
|
|
||||||
// *(origRatio / newRatio)
|
|
||||||
gl_Position = vec4(intBitsToFloat(R1i.x)*(origRatio / newRatio), intBitsToFloat(R1i.y), intBitsToFloat(R1i.z), intBitsToFloat(R1i.w));
|
|
||||||
// export
|
|
||||||
passParameterSem0 = vec4(intBitsToFloat(R0i.x), intBitsToFloat(R0i.y), intBitsToFloat(R0i.z), intBitsToFloat(R0i.w));
|
|
||||||
// export
|
|
||||||
passParameterSem1 = vec4(intBitsToFloat(R2i.x), intBitsToFloat(R2i.y), intBitsToFloat(R2i.z), intBitsToFloat(R2i.w));
|
|
||||||
// 0
|
|
||||||
}
|
|
@ -1,4 +0,0 @@
|
|||||||
[Definition]
|
|
||||||
titleIds = 0005000010116100,00050000101C4C00,00050000101C4D00
|
|
||||||
name = "Xenoblade Chronicles X - 21:9 GUI"
|
|
||||||
version = 2
|
|
@ -1,280 +0,0 @@
|
|||||||
#version 420
|
|
||||||
#extension GL_ARB_texture_gather : enable
|
|
||||||
// shader 3cc7e98f78c258b4
|
|
||||||
//Xenoblade FX
|
|
||||||
//Version 0.01Beta
|
|
||||||
//Shader Dumped from 1.01
|
|
||||||
//Shader Edits by Jamie
|
|
||||||
//
|
|
||||||
|
|
||||||
//ToneMapping
|
|
||||||
#define Bleach 0.3 //Default is 0.0
|
|
||||||
#define exposure 1.25 //Default is 1.0
|
|
||||||
#define defog 0.000 //Default is 0.0 //How much of the overall color you want removed form the values of FogColor.
|
|
||||||
#define FogColor vec3(1.0, 1.0, 1.0) //Color you want to Add or Remove 0.25 would add .25 percent of that color 1.25 would remove .25 percent of the color."
|
|
||||||
|
|
||||||
//VibrancePass
|
|
||||||
#define Vibrance 0.15 //"Intelligently saturates (or desaturates if you use negative values) the pixels depending on their original saturation.";
|
|
||||||
#define VibranceRGBBalance vec3(1.0, 1.0, 1.0) //"A per channel multiplier to the Vibrance strength so you can give more boost to certain colors over others.";
|
|
||||||
|
|
||||||
//Lift Gamma Gain
|
|
||||||
#define RGB_Lift vec3(1.05, 1.05, 1.05) //[0.000 to 2.000] Adjust shadows for Red, Green and Blue.
|
|
||||||
#define RGB_Gamma vec3(0.70, 0.70, 0.70) //[0.000 to 2.000] Adjust midtones for Red, Green and Blue
|
|
||||||
#define RGB_Gain vec3(1.05, 1.05, 1.05) //[0.000 to 2.000] Adjust highlights for Red, Green and Blue
|
|
||||||
//Note that a value of 1.0 is a neutral setting that leave the color unchanged.
|
|
||||||
|
|
||||||
//Curves
|
|
||||||
#define Contrast 0.50 //[-1.0, 1.0] The amount of contrast you want
|
|
||||||
|
|
||||||
//LumaShapening
|
|
||||||
#define sharp_strength 0.25 //[0.10 to 3.00] Strength of the sharpening Default is 0.65
|
|
||||||
#define sharp_clamp 0.085 //[0.000 to 1.000] Limits maximum amount of sharpening a pixel recieves - Default is 0.035
|
|
||||||
//Advanced sharpening settings
|
|
||||||
#define offset_bias 1.0 //[0.0 to 6.0] Offset bias adjusts the radius of the sampling pattern.
|
|
||||||
|
|
||||||
//Fake High Dynamic Range.
|
|
||||||
#define HDRPower 1.70 // 0.0 to 8.0 "Raising this seems to make the effect stronger and also darker , Default 1.30."
|
|
||||||
#define radius1 0.793 // 0.0 to 8.0 "Default 0.793 , will affect FX."
|
|
||||||
#define radius2 0.87 // 0.0 to 8.0 "Default 0.87 , will affect FX."
|
|
||||||
|
|
||||||
//###########################################################
|
|
||||||
//Do not edit under this line.
|
|
||||||
uniform ivec4 uf_remappedPS[1];
|
|
||||||
layout(binding = 0) uniform sampler2D textureUnitPS0;// Tex0 addr 0xf470a000 res 1280x720x1 dim 1 tm: 4 format 0816 compSel: 0 1 2 5 mipView: 0x0 (num 0x1) sliceView: 0x0 (num 0x1) Sampler0 ClampX/Y/Z: 2 2 2 border: 0
|
|
||||||
layout(binding = 1) uniform sampler3D textureUnitPS1;// Tex1 addr 0x2603b000 res 16x16x16 dim 2 tm: 7 format 001a compSel: 0 1 2 3 mipView: 0x0 (num 0x1) sliceView: 0x0 (num 0x10) Sampler1 ClampX/Y/Z: 2 2 2 border: 0
|
|
||||||
layout(location = 0) in vec4 passParameterSem0;
|
|
||||||
layout(location = 0) out vec4 passPixelColor0;
|
|
||||||
uniform vec2 uf_fragCoordScale;
|
|
||||||
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)); }
|
|
||||||
//----------------------------------------------------------------------------
|
|
||||||
//ToneMapping
|
|
||||||
|
|
||||||
vec3 TonemapPass(vec3 inputColor) {
|
|
||||||
vec3 color = inputColor;
|
|
||||||
color = clamp(color - defog * FogColor * 2.55, 0.0, 1.0); // defog
|
|
||||||
color *= exposure / (1.0 + color / exposure);
|
|
||||||
|
|
||||||
const vec3 coefLuma = vec3(0.2126, 0.7152, 0.0722);
|
|
||||||
float lum = dot(coefLuma, color);
|
|
||||||
|
|
||||||
float L = clamp(10.0 * (lum - 0.45), 0.0, 1.0);
|
|
||||||
vec3 A2 = Bleach * color;
|
|
||||||
|
|
||||||
vec3 result1 = 2.0f * color * lum;
|
|
||||||
vec3 result2 = 1.0f - 2.0f * (1.0f - lum) * (1.0f - color);
|
|
||||||
|
|
||||||
vec3 newColor = mix(result1, result2, L);
|
|
||||||
vec3 mixRGB = A2 * newColor;
|
|
||||||
color += ((1.0f - A2) * mixRGB);
|
|
||||||
|
|
||||||
vec3 middlegray = vec3(dot(color, vec3(1.0 / 3.0)));
|
|
||||||
vec3 diffcolor = color - middlegray;
|
|
||||||
|
|
||||||
float sat = 0.0;
|
|
||||||
color = (color + diffcolor * sat) / (1 + (diffcolor * sat)); // saturation
|
|
||||||
|
|
||||||
return color;
|
|
||||||
}
|
|
||||||
|
|
||||||
//LumaShapening
|
|
||||||
|
|
||||||
#define px (1.0/1280.0*uf_fragCoordScale.x)
|
|
||||||
#define py (1.0/720.0*uf_fragCoordScale.y)
|
|
||||||
#define CoefLuma vec3(0.2126, 0.7152, 0.0722)
|
|
||||||
|
|
||||||
float lumasharping(sampler2D tex, vec2 pos) {
|
|
||||||
vec4 colorInput = texture(tex, pos);
|
|
||||||
|
|
||||||
vec3 ori = colorInput.rgb;
|
|
||||||
|
|
||||||
// -- Combining the strength and luma multipliers --
|
|
||||||
vec3 sharp_strength_luma = (CoefLuma * sharp_strength);
|
|
||||||
|
|
||||||
// -- Gaussian filter --
|
|
||||||
// [ .25, .50, .25] [ 1 , 2 , 1 ]
|
|
||||||
// [ .50, 1, .50] = [ 2 , 4 , 2 ]
|
|
||||||
// [ .25, .50, .25] [ 1 , 2 , 1 ]
|
|
||||||
|
|
||||||
vec3 blur_ori = texture(tex, pos + vec2(px, -py) * 0.5 * offset_bias).rgb; // South East
|
|
||||||
blur_ori += texture(tex, pos + vec2(-px, -py) * 0.5 * offset_bias).rgb; // South West
|
|
||||||
blur_ori += texture(tex, pos + vec2(px, py) * 0.5 * offset_bias).rgb; // North East
|
|
||||||
blur_ori += texture(tex, pos + vec2(-px, py) * 0.5 * offset_bias).rgb; // North West
|
|
||||||
|
|
||||||
blur_ori *= 0.25; // ( /= 4) Divide by the number of texture fetches
|
|
||||||
|
|
||||||
// -- Calculate the sharpening --
|
|
||||||
vec3 sharp = ori - blur_ori; //Subtracting the blurred image from the original image
|
|
||||||
|
|
||||||
// -- Adjust strength of the sharpening and clamp it--
|
|
||||||
vec4 sharp_strength_luma_clamp = vec4(sharp_strength_luma * (0.5 / sharp_clamp), 0.5); //Roll part of the clamp into the dot
|
|
||||||
|
|
||||||
float sharp_luma = clamp((dot(vec4(sharp, 1.0), sharp_strength_luma_clamp)), 0.0, 1.0); //Calculate the luma, adjust the strength, scale up and clamp
|
|
||||||
sharp_luma = (sharp_clamp * 2.0) * sharp_luma - sharp_clamp; //scale down
|
|
||||||
|
|
||||||
return sharp_luma;
|
|
||||||
}
|
|
||||||
|
|
||||||
//Fake High Dynamic Range.
|
|
||||||
|
|
||||||
vec3 HDRPass(sampler2D tex, vec2 pos) {
|
|
||||||
vec3 color = texture(tex, pos).rgb;
|
|
||||||
|
|
||||||
vec3 bloom_sum1 = texture(tex, pos + vec2(1.5, -1.5) * radius1 * vec2(px, py)).rgb;
|
|
||||||
bloom_sum1 += texture(tex, pos + vec2(-1.5, -1.5) * radius1 * vec2(px, py)).rgb;
|
|
||||||
bloom_sum1 += texture(tex, pos + vec2(1.5, 1.5) * radius1 * vec2(px, py)).rgb;
|
|
||||||
bloom_sum1 += texture(tex, pos + vec2(-1.5, 1.5) * radius1 * vec2(px, py)).rgb;
|
|
||||||
bloom_sum1 += texture(tex, pos + vec2(0.0, -2.5) * radius1 * vec2(px, py)).rgb;
|
|
||||||
bloom_sum1 += texture(tex, pos + vec2(0.0, 2.5) * radius1 * vec2(px, py)).rgb;
|
|
||||||
bloom_sum1 += texture(tex, pos + vec2(-2.5, 0.0) * radius1 * vec2(px, py)).rgb;
|
|
||||||
bloom_sum1 += texture(tex, pos + vec2(2.5, 0.0) * radius1 * vec2(px, py)).rgb;
|
|
||||||
|
|
||||||
bloom_sum1 *= 0.005;
|
|
||||||
|
|
||||||
vec3 bloom_sum2 = texture(tex, pos + vec2(1.5, -1.5) * radius2 * vec2(px, py)).rgb;
|
|
||||||
bloom_sum2 += texture(tex, pos + vec2(-1.5, -1.5) * radius2 * vec2(px, py)).rgb;
|
|
||||||
bloom_sum2 += texture(tex, pos + vec2(1.5, 1.5) * radius2 * vec2(px, py)).rgb;
|
|
||||||
bloom_sum2 += texture(tex, pos + vec2(-1.5, 1.5) * radius2 * vec2(px, py)).rgb;
|
|
||||||
bloom_sum2 += texture(tex, pos + vec2(0.0, -2.5) * radius2 * vec2(px, py)).rgb;
|
|
||||||
bloom_sum2 += texture(tex, pos + vec2(0.0, 2.5) * radius2 * vec2(px, py)).rgb;
|
|
||||||
bloom_sum2 += texture(tex, pos + vec2(-2.5, 0.0) * radius2 * vec2(px, py)).rgb;
|
|
||||||
bloom_sum2 += texture(tex, pos + vec2(2.5, 0.0) * radius2 * vec2(px, py)).rgb;
|
|
||||||
|
|
||||||
bloom_sum2 *= 0.010;
|
|
||||||
|
|
||||||
float dist = radius2 - radius1;
|
|
||||||
vec3 HDR = (color + (bloom_sum2 - bloom_sum1)) * dist;
|
|
||||||
|
|
||||||
vec3 blend = HDR + color;
|
|
||||||
color = pow(abs(blend), vec3(abs(HDRPower))) + HDR;
|
|
||||||
|
|
||||||
return color;
|
|
||||||
}
|
|
||||||
|
|
||||||
//Lift Gamma Gain
|
|
||||||
|
|
||||||
vec3 LiftGammaGainPass(vec3 colorInput)
|
|
||||||
{
|
|
||||||
// -- Get input --
|
|
||||||
vec3 color = colorInput;
|
|
||||||
|
|
||||||
// -- Lift --
|
|
||||||
|
|
||||||
color = color * (1.5 - 0.5 * RGB_Lift) + 0.5 * RGB_Lift - 0.5;
|
|
||||||
color = clamp(color, 0.0, 1.0); //isn't strictly necessary, but doesn't cost performance.
|
|
||||||
|
|
||||||
// -- Gain --
|
|
||||||
color *= RGB_Gain;
|
|
||||||
|
|
||||||
// -- Gamma --
|
|
||||||
color = pow(color, 1.0 / RGB_Gamma); //Gamma
|
|
||||||
|
|
||||||
// -- Return output --
|
|
||||||
return clamp(color, 0.0, 1.0);
|
|
||||||
}
|
|
||||||
|
|
||||||
//VibrancePass
|
|
||||||
vec3 VibrancePass(vec3 color) {
|
|
||||||
|
|
||||||
const vec3 coefLuma = vec3(0.2126, 0.7152, 0.0722);
|
|
||||||
float luma = dot(coefLuma, color);
|
|
||||||
|
|
||||||
float max_color = max(color.r, max(color.g, color.b)); // Find the strongest color
|
|
||||||
float min_color = min(color.r, min(color.g, color.b)); // Find the weakest color
|
|
||||||
|
|
||||||
float color_saturation = max_color - min_color; // The difference between the two is the saturation
|
|
||||||
|
|
||||||
// Extrapolate between luma and original by 1 + (1-saturation) - current
|
|
||||||
vec3 coeffVibrance = VibranceRGBBalance * Vibrance;
|
|
||||||
|
|
||||||
color = mix(vec3(luma), color, 1.0 + (coeffVibrance * (1.0 - (sign(coeffVibrance) * color_saturation))));
|
|
||||||
|
|
||||||
return color;
|
|
||||||
}
|
|
||||||
|
|
||||||
//Curves
|
|
||||||
|
|
||||||
vec3 CurvesPass(vec3 inputColor) {
|
|
||||||
vec3 colorInput = inputColor;
|
|
||||||
float Contrast_blend = Contrast * 2.0; //I multiply by two to give it a strength closer to the other curves.
|
|
||||||
vec3 x = colorInput.rgb; //if the curve should be applied to both Luma and Chroma
|
|
||||||
x = x * (x * (1.5 - x) + 0.5); //horner form - fastest version
|
|
||||||
vec3 color = x; //if the curve should be applied to both Luma and Chroma
|
|
||||||
colorInput.rgb = mix(colorInput.rgb, color, Contrast_blend); //Blend by Contrast
|
|
||||||
return colorInput;
|
|
||||||
}
|
|
||||||
|
|
||||||
void main()
|
|
||||||
{
|
|
||||||
vec4 R0f = vec4(0.0);
|
|
||||||
vec4 R1f = vec4(0.0);
|
|
||||||
vec4 R127f = vec4(0.0);
|
|
||||||
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 = passParameterSem0;
|
|
||||||
R0f.xyz = HDRPass(textureUnitPS0, passParameterSem0.xy);
|
|
||||||
float smask = lumasharping(textureUnitPS0, passParameterSem0.xy);
|
|
||||||
R0f.xyz += vec3(smask);
|
|
||||||
//R0f.xyz = (texture(textureUnitPS0, R0f.xy).xyz);
|
|
||||||
// -- Original shader code
|
|
||||||
// 0
|
|
||||||
R127f.x = R0f.z * intBitsToFloat(uf_remappedPS[0].x);
|
|
||||||
R127f.x = clamp(R127f.x, 0.0, 1.0);
|
|
||||||
R127f.y = R0f.y * intBitsToFloat(uf_remappedPS[0].x);
|
|
||||||
R127f.y = clamp(R127f.y, 0.0, 1.0);
|
|
||||||
PV0f.z = R0f.x * intBitsToFloat(uf_remappedPS[0].x);
|
|
||||||
PV0f.z = clamp(PV0f.z, 0.0, 1.0);
|
|
||||||
R1f.w = 1.0;
|
|
||||||
// 1
|
|
||||||
tempResultf = log2(PV0f.z);
|
|
||||||
if( isinf(tempResultf) == true ) tempResultf = -3.40282347E+38F;
|
|
||||||
PS1f = tempResultf;
|
|
||||||
// 2
|
|
||||||
R127f.z = PS1f * intBitsToFloat(0x3ee8ba2e);
|
|
||||||
tempResultf = log2(R127f.y);
|
|
||||||
if( isinf(tempResultf) == true ) tempResultf = -3.40282347E+38F;
|
|
||||||
PS0f = tempResultf;
|
|
||||||
// 3
|
|
||||||
R127f.w = PS0f * intBitsToFloat(0x3ee8ba2e);
|
|
||||||
tempResultf = log2(R127f.x);
|
|
||||||
if( isinf(tempResultf) == true ) tempResultf = -3.40282347E+38F;
|
|
||||||
PS1f = tempResultf;
|
|
||||||
// 4
|
|
||||||
R127f.x = PS1f * intBitsToFloat(0x3ee8ba2e);
|
|
||||||
PS0f = exp2(R127f.z);
|
|
||||||
// 5
|
|
||||||
R0f.x = (PS0f * intBitsToFloat(uf_remappedPS[0].z) + intBitsToFloat(uf_remappedPS[0].w));
|
|
||||||
PS1f = exp2(R127f.w);
|
|
||||||
// 6
|
|
||||||
R0f.y = (PS1f * intBitsToFloat(uf_remappedPS[0].z) + intBitsToFloat(uf_remappedPS[0].w));
|
|
||||||
PS0f = exp2(R127f.x);
|
|
||||||
// 7
|
|
||||||
R0f.z = (PS0f * intBitsToFloat(uf_remappedPS[0].z) + intBitsToFloat(uf_remappedPS[0].w));
|
|
||||||
R1f.xyz = (texture(textureUnitPS1, vec3(R0f.x,R0f.y,R0f.z)).xyz);
|
|
||||||
// -- End original shader code
|
|
||||||
|
|
||||||
//passPixelColor0 = vec4(R0f.x, R0f.y, R0f.z, R0f.w);
|
|
||||||
|
|
||||||
vec3 color = texture(textureUnitPS0, passParameterSem0.xy).xyz;
|
|
||||||
color = TonemapPass(color);
|
|
||||||
color = CurvesPass(color);
|
|
||||||
color = LiftGammaGainPass(color);
|
|
||||||
color = VibrancePass(color);
|
|
||||||
passPixelColor0 = vec4(color, passParameterSem0.w);
|
|
||||||
//passPixelColor0 = vec4(R1f.x, R1f.y, R1f.z, R1f.w);
|
|
||||||
}
|
|
@ -1,296 +0,0 @@
|
|||||||
#version 420
|
|
||||||
#extension GL_ARB_texture_gather : enable
|
|
||||||
// shader d936195db0dd8e7d //crossfade exposure
|
|
||||||
//Xenoblade FX
|
|
||||||
//Version 0.01Beta
|
|
||||||
//Shader Dumped from 1.01
|
|
||||||
//Shader Edits by Jamie
|
|
||||||
//
|
|
||||||
|
|
||||||
//ToneMapping
|
|
||||||
#define Bleach 0.3 //Default is 0.0
|
|
||||||
#define exposure 1.25 //Default is 1.0
|
|
||||||
#define defog 0.000 //Default is 0.0 //How much of the overall color you want removed form the values of FogColor.
|
|
||||||
#define FogColor vec3(1.0, 1.0, 1.0) //Color you want to Add or Remove 0.25 would add .25 percent of that color 1.25 would remove .25 percent of the color."
|
|
||||||
|
|
||||||
//VibrancePass
|
|
||||||
#define Vibrance 0.15 //"Intelligently saturates (or desaturates if you use negative values) the pixels depending on their original saturation.";
|
|
||||||
#define VibranceRGBBalance vec3(1.0, 1.0, 1.0) //"A per channel multiplier to the Vibrance strength so you can give more boost to certain colors over others.";
|
|
||||||
|
|
||||||
//Lift Gamma Gain
|
|
||||||
#define RGB_Lift vec3(1.05, 1.05, 1.05) //[0.000 to 2.000] Adjust shadows for Red, Green and Blue.
|
|
||||||
#define RGB_Gamma vec3(0.70, 0.70, 0.70) //[0.000 to 2.000] Adjust midtones for Red, Green and Blue
|
|
||||||
#define RGB_Gain vec3(1.05, 1.05, 1.05) //[0.000 to 2.000] Adjust highlights for Red, Green and Blue
|
|
||||||
//Note that a value of 1.0 is a neutral setting that leave the color unchanged.
|
|
||||||
|
|
||||||
//Curves
|
|
||||||
#define Contrast 0.50 //[-1.0, 1.0] The amount of contrast you want
|
|
||||||
|
|
||||||
//LumaShapening
|
|
||||||
#define sharp_strength 0.25 //[0.10 to 3.00] Strength of the sharpening Default is 0.65
|
|
||||||
#define sharp_clamp 0.085 //[0.000 to 1.000] Limits maximum amount of sharpening a pixel recieves - Default is 0.035
|
|
||||||
//Advanced sharpening settings
|
|
||||||
#define offset_bias 1.0 //[0.0 to 6.0] Offset bias adjusts the radius of the sampling pattern.
|
|
||||||
|
|
||||||
//Fake High Dynamic Range.
|
|
||||||
#define HDRPower 1.70 // 0.0 to 8.0 "Raising this seems to make the effect stronger and also darker , Default 1.30."
|
|
||||||
#define radius1 0.793 // 0.0 to 8.0 "Default 0.793 , will affect FX."
|
|
||||||
#define radius2 0.87 // 0.0 to 8.0 "Default 0.87 , will affect FX."
|
|
||||||
|
|
||||||
//###########################################################
|
|
||||||
//Do not edit under this line.
|
|
||||||
uniform ivec4 uf_remappedPS[1];
|
|
||||||
layout(binding = 0) uniform sampler2D textureUnitPS0;// Tex0 addr 0xf470a000 res 1280x720x1 dim 1 tm: 4 format 0816 compSel: 0 1 2 5 mipView: 0x0 (num 0x1) sliceView: 0x0 (num 0x1) Sampler0 ClampX/Y/Z: 2 2 2 border: 0
|
|
||||||
layout(binding = 1) uniform sampler3D textureUnitPS1;// Tex1 addr 0x26032000 res 16x16x16 dim 2 tm: 7 format 001a compSel: 0 1 2 3 mipView: 0x0 (num 0x1) sliceView: 0x0 (num 0x10) Sampler1 ClampX/Y/Z: 2 2 2 border: 0
|
|
||||||
layout(binding = 2) uniform sampler3D textureUnitPS2;// Tex2 addr 0x2603b000 res 16x16x16 dim 2 tm: 7 format 001a compSel: 0 1 2 3 mipView: 0x0 (num 0x1) sliceView: 0x0 (num 0x10) Sampler2 ClampX/Y/Z: 2 2 2 border: 0
|
|
||||||
layout(location = 0) in vec4 passParameterSem0;
|
|
||||||
layout(location = 0) out vec4 passPixelColor0;
|
|
||||||
uniform vec2 uf_fragCoordScale;
|
|
||||||
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)); }
|
|
||||||
//----------------------------------------------------------------------------
|
|
||||||
//ToneMapping
|
|
||||||
|
|
||||||
vec3 TonemapPass(vec3 inputColor) {
|
|
||||||
vec3 color = inputColor;
|
|
||||||
color = clamp(color - defog * FogColor * 2.55, 0.0, 1.0); // defog
|
|
||||||
color *= exposure / (1.0 + color / exposure);
|
|
||||||
|
|
||||||
const vec3 coefLuma = vec3(0.2126, 0.7152, 0.0722);
|
|
||||||
float lum = dot(coefLuma, color);
|
|
||||||
|
|
||||||
float L = clamp(10.0 * (lum - 0.45), 0.0, 1.0);
|
|
||||||
vec3 A2 = Bleach * color;
|
|
||||||
|
|
||||||
vec3 result1 = 2.0f * color * lum;
|
|
||||||
vec3 result2 = 1.0f - 2.0f * (1.0f - lum) * (1.0f - color);
|
|
||||||
|
|
||||||
vec3 newColor = mix(result1, result2, L);
|
|
||||||
vec3 mixRGB = A2 * newColor;
|
|
||||||
color += ((1.0f - A2) * mixRGB);
|
|
||||||
|
|
||||||
vec3 middlegray = vec3(dot(color, vec3(1.0 / 3.0)));
|
|
||||||
vec3 diffcolor = color - middlegray;
|
|
||||||
|
|
||||||
float sat = 0.0;
|
|
||||||
color = (color + diffcolor * sat) / (1 + (diffcolor * sat)); // saturation
|
|
||||||
|
|
||||||
return color;
|
|
||||||
}
|
|
||||||
|
|
||||||
//LumaShapening
|
|
||||||
|
|
||||||
#define px (1.0/1280.0*uf_fragCoordScale.x)
|
|
||||||
#define py (1.0/720.0*uf_fragCoordScale.y)
|
|
||||||
#define CoefLuma vec3(0.2126, 0.7152, 0.0722)
|
|
||||||
|
|
||||||
float lumasharping(sampler2D tex, vec2 pos) {
|
|
||||||
vec4 colorInput = texture(tex, pos);
|
|
||||||
|
|
||||||
vec3 ori = colorInput.rgb;
|
|
||||||
|
|
||||||
// -- Combining the strength and luma multipliers --
|
|
||||||
vec3 sharp_strength_luma = (CoefLuma * sharp_strength);
|
|
||||||
|
|
||||||
// -- Gaussian filter --
|
|
||||||
// [ .25, .50, .25] [ 1 , 2 , 1 ]
|
|
||||||
// [ .50, 1, .50] = [ 2 , 4 , 2 ]
|
|
||||||
// [ .25, .50, .25] [ 1 , 2 , 1 ]
|
|
||||||
|
|
||||||
vec3 blur_ori = texture(tex, pos + vec2(px, -py) * 0.5 * offset_bias).rgb; // South East
|
|
||||||
blur_ori += texture(tex, pos + vec2(-px, -py) * 0.5 * offset_bias).rgb; // South West
|
|
||||||
blur_ori += texture(tex, pos + vec2(px, py) * 0.5 * offset_bias).rgb; // North East
|
|
||||||
blur_ori += texture(tex, pos + vec2(-px, py) * 0.5 * offset_bias).rgb; // North West
|
|
||||||
|
|
||||||
blur_ori *= 0.25; // ( /= 4) Divide by the number of texture fetches
|
|
||||||
|
|
||||||
// -- Calculate the sharpening --
|
|
||||||
vec3 sharp = ori - blur_ori; //Subtracting the blurred image from the original image
|
|
||||||
|
|
||||||
// -- Adjust strength of the sharpening and clamp it--
|
|
||||||
vec4 sharp_strength_luma_clamp = vec4(sharp_strength_luma * (0.5 / sharp_clamp), 0.5); //Roll part of the clamp into the dot
|
|
||||||
|
|
||||||
float sharp_luma = clamp((dot(vec4(sharp, 1.0), sharp_strength_luma_clamp)), 0.0, 1.0); //Calculate the luma, adjust the strength, scale up and clamp
|
|
||||||
sharp_luma = (sharp_clamp * 2.0) * sharp_luma - sharp_clamp; //scale down
|
|
||||||
|
|
||||||
return sharp_luma;
|
|
||||||
}
|
|
||||||
|
|
||||||
//Fake High Dynamic Range.
|
|
||||||
|
|
||||||
vec3 HDRPass(sampler2D tex, vec2 pos) {
|
|
||||||
vec3 color = texture(tex, pos).rgb;
|
|
||||||
|
|
||||||
vec3 bloom_sum1 = texture(tex, pos + vec2(1.5, -1.5) * radius1 * vec2(px, py)).rgb;
|
|
||||||
bloom_sum1 += texture(tex, pos + vec2(-1.5, -1.5) * radius1 * vec2(px, py)).rgb;
|
|
||||||
bloom_sum1 += texture(tex, pos + vec2(1.5, 1.5) * radius1 * vec2(px, py)).rgb;
|
|
||||||
bloom_sum1 += texture(tex, pos + vec2(-1.5, 1.5) * radius1 * vec2(px, py)).rgb;
|
|
||||||
bloom_sum1 += texture(tex, pos + vec2(0.0, -2.5) * radius1 * vec2(px, py)).rgb;
|
|
||||||
bloom_sum1 += texture(tex, pos + vec2(0.0, 2.5) * radius1 * vec2(px, py)).rgb;
|
|
||||||
bloom_sum1 += texture(tex, pos + vec2(-2.5, 0.0) * radius1 * vec2(px, py)).rgb;
|
|
||||||
bloom_sum1 += texture(tex, pos + vec2(2.5, 0.0) * radius1 * vec2(px, py)).rgb;
|
|
||||||
|
|
||||||
bloom_sum1 *= 0.005;
|
|
||||||
|
|
||||||
vec3 bloom_sum2 = texture(tex, pos + vec2(1.5, -1.5) * radius2 * vec2(px, py)).rgb;
|
|
||||||
bloom_sum2 += texture(tex, pos + vec2(-1.5, -1.5) * radius2 * vec2(px, py)).rgb;
|
|
||||||
bloom_sum2 += texture(tex, pos + vec2(1.5, 1.5) * radius2 * vec2(px, py)).rgb;
|
|
||||||
bloom_sum2 += texture(tex, pos + vec2(-1.5, 1.5) * radius2 * vec2(px, py)).rgb;
|
|
||||||
bloom_sum2 += texture(tex, pos + vec2(0.0, -2.5) * radius2 * vec2(px, py)).rgb;
|
|
||||||
bloom_sum2 += texture(tex, pos + vec2(0.0, 2.5) * radius2 * vec2(px, py)).rgb;
|
|
||||||
bloom_sum2 += texture(tex, pos + vec2(-2.5, 0.0) * radius2 * vec2(px, py)).rgb;
|
|
||||||
bloom_sum2 += texture(tex, pos + vec2(2.5, 0.0) * radius2 * vec2(px, py)).rgb;
|
|
||||||
|
|
||||||
bloom_sum2 *= 0.010;
|
|
||||||
|
|
||||||
float dist = radius2 - radius1;
|
|
||||||
vec3 HDR = (color + (bloom_sum2 - bloom_sum1)) * dist;
|
|
||||||
|
|
||||||
vec3 blend = HDR + color;
|
|
||||||
color = pow(abs(blend), vec3(abs(HDRPower))) + HDR;
|
|
||||||
|
|
||||||
return color;
|
|
||||||
}
|
|
||||||
|
|
||||||
//Lift Gamma Gain
|
|
||||||
|
|
||||||
vec3 LiftGammaGainPass(vec3 colorInput)
|
|
||||||
{
|
|
||||||
// -- Get input --
|
|
||||||
vec3 color = colorInput;
|
|
||||||
|
|
||||||
// -- Lift --
|
|
||||||
|
|
||||||
color = color * (1.5 - 0.5 * RGB_Lift) + 0.5 * RGB_Lift - 0.5;
|
|
||||||
color = clamp(color, 0.0, 1.0); //isn't strictly necessary, but doesn't cost performance.
|
|
||||||
|
|
||||||
// -- Gain --
|
|
||||||
color *= RGB_Gain;
|
|
||||||
|
|
||||||
// -- Gamma --
|
|
||||||
color = pow(color, 1.0 / RGB_Gamma); //Gamma
|
|
||||||
|
|
||||||
// -- Return output --
|
|
||||||
return clamp(color, 0.0, 1.0);
|
|
||||||
}
|
|
||||||
|
|
||||||
//VibrancePass
|
|
||||||
vec3 VibrancePass(vec3 color) {
|
|
||||||
|
|
||||||
const vec3 coefLuma = vec3(0.2126, 0.7152, 0.0722);
|
|
||||||
float luma = dot(coefLuma, color);
|
|
||||||
|
|
||||||
float max_color = max(color.r, max(color.g, color.b)); // Find the strongest color
|
|
||||||
float min_color = min(color.r, min(color.g, color.b)); // Find the weakest color
|
|
||||||
|
|
||||||
float color_saturation = max_color - min_color; // The difference between the two is the saturation
|
|
||||||
|
|
||||||
// Extrapolate between luma and original by 1 + (1-saturation) - current
|
|
||||||
vec3 coeffVibrance = VibranceRGBBalance * Vibrance;
|
|
||||||
|
|
||||||
color = mix(vec3(luma), color, 1.0 + (coeffVibrance * (1.0 - (sign(coeffVibrance) * color_saturation))));
|
|
||||||
|
|
||||||
return color;
|
|
||||||
}
|
|
||||||
|
|
||||||
//Curves
|
|
||||||
|
|
||||||
vec3 CurvesPass(vec3 inputColor) {
|
|
||||||
vec3 colorInput = inputColor;
|
|
||||||
float Contrast_blend = Contrast * 2.0; //I multiply by two to give it a strength closer to the other curves.
|
|
||||||
vec3 x = colorInput.rgb; //if the curve should be applied to both Luma and Chroma
|
|
||||||
x = x * (x * (1.5 - x) + 0.5); //horner form - fastest version
|
|
||||||
vec3 color = x; //if the curve should be applied to both Luma and Chroma
|
|
||||||
colorInput.rgb = mix(colorInput.rgb, color, Contrast_blend); //Blend by Contrast
|
|
||||||
return colorInput;
|
|
||||||
}
|
|
||||||
|
|
||||||
void main()
|
|
||||||
{
|
|
||||||
vec4 R0f = vec4(0.0);
|
|
||||||
vec4 R1f = vec4(0.0);
|
|
||||||
vec4 R2f = vec4(0.0);
|
|
||||||
vec4 R127f = vec4(0.0);
|
|
||||||
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 = passParameterSem0;
|
|
||||||
R0f.xyz = HDRPass(textureUnitPS0, passParameterSem0.xy);
|
|
||||||
float smask = lumasharping(textureUnitPS0, passParameterSem0.xy);
|
|
||||||
R0f.xyz += vec3(smask);
|
|
||||||
//R0f.xyz = (texture(textureUnitPS0, R0f.xy).xyz);
|
|
||||||
// -- Original shader code
|
|
||||||
// 0
|
|
||||||
backupReg0f = R0f.x;
|
|
||||||
PV0f.x = backupReg0f * intBitsToFloat(uf_remappedPS[0].x);
|
|
||||||
PV0f.x = clamp(PV0f.x, 0.0, 1.0);
|
|
||||||
R127f.z = R0f.z * intBitsToFloat(uf_remappedPS[0].x);
|
|
||||||
R127f.z = clamp(R127f.z, 0.0, 1.0);
|
|
||||||
R127f.w = R0f.y * intBitsToFloat(uf_remappedPS[0].x);
|
|
||||||
R127f.w = clamp(R127f.w, 0.0, 1.0);
|
|
||||||
R2f.w = 1.0;
|
|
||||||
PS0f = R2f.w;
|
|
||||||
// 1
|
|
||||||
tempResultf = log2(PV0f.x);
|
|
||||||
if( isinf(tempResultf) == true ) tempResultf = -3.40282347E+38F;
|
|
||||||
PS1f = tempResultf;
|
|
||||||
// 2
|
|
||||||
R127f.x = PS1f * intBitsToFloat(0x3ee8ba2e);
|
|
||||||
tempResultf = log2(R127f.w);
|
|
||||||
if( isinf(tempResultf) == true ) tempResultf = -3.40282347E+38F;
|
|
||||||
PS0f = tempResultf;
|
|
||||||
// 3
|
|
||||||
R127f.y = PS0f * intBitsToFloat(0x3ee8ba2e);
|
|
||||||
tempResultf = log2(R127f.z);
|
|
||||||
if( isinf(tempResultf) == true ) tempResultf = -3.40282347E+38F;
|
|
||||||
PS1f = tempResultf;
|
|
||||||
// 4
|
|
||||||
R127f.w = PS1f * intBitsToFloat(0x3ee8ba2e);
|
|
||||||
PS0f = exp2(R127f.x);
|
|
||||||
// 5
|
|
||||||
R0f.x = (PS0f * intBitsToFloat(uf_remappedPS[0].z) + intBitsToFloat(uf_remappedPS[0].w));
|
|
||||||
PS1f = exp2(R127f.y);
|
|
||||||
// 6
|
|
||||||
R0f.y = (PS1f * intBitsToFloat(uf_remappedPS[0].z) + intBitsToFloat(uf_remappedPS[0].w));
|
|
||||||
PS0f = exp2(R127f.w);
|
|
||||||
// 7
|
|
||||||
R0f.z = (PS0f * intBitsToFloat(uf_remappedPS[0].z) + intBitsToFloat(uf_remappedPS[0].w));
|
|
||||||
R1f.xyz = (texture(textureUnitPS1, vec3(R0f.x,R0f.y,R0f.z)).xyz);
|
|
||||||
R0f.xyz = (texture(textureUnitPS2, vec3(R0f.x,R0f.y,R0f.z)).xyz);
|
|
||||||
// 0
|
|
||||||
backupReg0f = R0f.y;
|
|
||||||
backupReg1f = R0f.x;
|
|
||||||
PV0f.x = R1f.z + -(R0f.z);
|
|
||||||
PV0f.y = R1f.y + -(backupReg0f);
|
|
||||||
PV0f.z = R1f.x + -(backupReg1f);
|
|
||||||
// 1
|
|
||||||
R2f.x = (PV0f.z * intBitsToFloat(uf_remappedPS[0].y) + R0f.x);
|
|
||||||
R2f.y = (PV0f.y * intBitsToFloat(uf_remappedPS[0].y) + R0f.y);
|
|
||||||
R2f.z = (PV0f.x * intBitsToFloat(uf_remappedPS[0].y) + R0f.z);
|
|
||||||
// -- End original shader code
|
|
||||||
|
|
||||||
//passPixelColor0 = vec4(R0f.x, R0f.y, R0f.z, R0f.w);
|
|
||||||
|
|
||||||
vec3 color = texture(textureUnitPS0, passParameterSem0.xy).xyz;
|
|
||||||
color = TonemapPass(color);
|
|
||||||
color = CurvesPass(color);
|
|
||||||
color = LiftGammaGainPass(color);
|
|
||||||
color = VibrancePass(color);
|
|
||||||
passPixelColor0 = vec4(color, passParameterSem0.w);
|
|
||||||
//passPixelColor0 = vec4(R1f.x, R1f.y, R1f.z, R1f.w);
|
|
||||||
//passPixelColor0 = vec4(R2f.x, R2f.y, R2f.z, R2f.w);
|
|
||||||
}
|
|
@ -1,4 +0,0 @@
|
|||||||
[Definition]
|
|
||||||
titleIds = 0005000010116100,00050000101C4C00,00050000101C4D00
|
|
||||||
name = "Xenoblade Chronicles X - Fx By Jamie"
|
|
||||||
version = 2
|
|
@ -1,10 +0,0 @@
|
|||||||
[Definition]
|
|
||||||
titleIds = 0005000010116100,00050000101C4C00,00050000101C4D00
|
|
||||||
name = "Xenoblade Chronicles X - No Offline Tag"
|
|
||||||
version = 2
|
|
||||||
|
|
||||||
[TextureRedefine]
|
|
||||||
width = 128
|
|
||||||
height = 32
|
|
||||||
formats = 0x033
|
|
||||||
overwriteFormat = 0x433
|
|
File diff suppressed because it is too large
Load Diff
@ -1,6 +1,6 @@
|
|||||||
#version 420
|
#version 420
|
||||||
#extension GL_ARB_texture_gather : enable
|
#extension GL_ARB_texture_gather : enable
|
||||||
// shader 58b84124c01721ff //in-game luminance
|
// shader 58b8411478181d7f
|
||||||
|
|
||||||
layout(binding = 0) uniform sampler2D textureUnitPS0;
|
layout(binding = 0) uniform sampler2D textureUnitPS0;
|
||||||
layout(location = 0) in vec4 passParameterSem2;
|
layout(location = 0) in vec4 passParameterSem2;
|
@ -1,6 +1,6 @@
|
|||||||
#version 420
|
#version 420
|
||||||
#extension GL_ARB_texture_gather : enable
|
#extension GL_ARB_texture_gather : enable
|
||||||
// shader 58b8411478181d7f //inventory luminance
|
// shader 58b84124c01721ff
|
||||||
|
|
||||||
layout(binding = 0) uniform sampler2D textureUnitPS0;
|
layout(binding = 0) uniform sampler2D textureUnitPS0;
|
||||||
layout(location = 0) in vec4 passParameterSem2;
|
layout(location = 0) in vec4 passParameterSem2;
|
@ -1,6 +1,173 @@
|
|||||||
#version 420
|
#version 420
|
||||||
#extension GL_ARB_texture_gather : enable
|
#extension GL_ARB_texture_gather : enable
|
||||||
|
#extension GL_EXT_gpu_shader4 : enable
|
||||||
|
// shader f14bb57cd5c9cb77
|
||||||
|
// Used for: Removing/Restoring the native BotW Anti-Aliasing implementation in inventory screen
|
||||||
|
|
||||||
|
#define preset $preset
|
||||||
|
|
||||||
|
#if (preset == 0)
|
||||||
|
layout(binding = 0) uniform sampler2D textureUnitPS0;// Tex0 addr 0xf49b1800 res 1280x720x1 dim 1 tm: 4 format 0019 compSel: 0 1 2 3 mipView: 0x0 (num 0x1) sliceView: 0x0 (num 0x1) Sampler0 ClampX/Y/Z: 2 2 2 border: 1
|
||||||
|
layout(location = 0) in vec4 passParameterSem2;
|
||||||
|
layout(location = 0) out vec4 passPixelColor0;
|
||||||
|
void main()
|
||||||
|
{
|
||||||
|
passPixelColor0 = texture(textureUnitPS0, passParameterSem2.xy);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if (preset == 1)
|
||||||
|
uniform ivec4 uf_remappedPS[4];
|
||||||
|
layout(binding = 0) uniform sampler2D textureUnitPS0;// Tex0 addr 0xf4713800 res 1280x720x1 dim 1 tm: 4 format 0019 compSel: 0 1 2 3 mipView: 0x0 (num 0x1) sliceView: 0x0 (num 0x1) Sampler0 ClampX/Y/Z: 2 2 2 border: 1
|
||||||
|
layout(binding = 1) uniform sampler2D textureUnitPS1;// Tex1 addr 0x387f8000 res 1280x720x1 dim 1 tm: 4 format 0001 compSel: 0 4 4 5 mipView: 0x0 (num 0x1) sliceView: 0x0 (num 0x1) Sampler1 ClampX/Y/Z: 2 2 2 border: 1
|
||||||
|
layout(location = 0) in vec4 passParameterSem2;
|
||||||
|
layout(location = 0) out vec4 passPixelColor0;
|
||||||
|
uniform vec2 uf_fragCoordScale;
|
||||||
|
ivec2 resDim = textureSize2D(textureUnitPS0,0);
|
||||||
|
const float resXScale = float(resDim.x)/1280;
|
||||||
|
const float resYScale = float(resDim.y)/720;
|
||||||
|
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 R123f = vec4(0.0);
|
||||||
|
vec4 R126f = vec4(0.0);
|
||||||
|
vec4 R127f = vec4(0.0);
|
||||||
|
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;
|
||||||
|
bool activeMaskStack[2];
|
||||||
|
bool activeMaskStackC[3];
|
||||||
|
activeMaskStack[0] = false;
|
||||||
|
activeMaskStackC[0] = false;
|
||||||
|
activeMaskStackC[1] = false;
|
||||||
|
activeMaskStack[0] = true;
|
||||||
|
activeMaskStackC[0] = true;
|
||||||
|
activeMaskStackC[1] = true;
|
||||||
|
vec3 cubeMapSTM;
|
||||||
|
int cubeMapFaceId;
|
||||||
|
R0f = passParameterSem2;
|
||||||
|
if( activeMaskStackC[1] == true ) {
|
||||||
|
R1f.xyzw = (textureGather(textureUnitPS1, R0f.xy).wzxy);
|
||||||
|
R2f.xyzw = (texture(textureUnitPS0, R0f.xy).xyzw);
|
||||||
|
}
|
||||||
|
if( activeMaskStackC[1] == true ) {
|
||||||
|
activeMaskStack[1] = activeMaskStack[0];
|
||||||
|
activeMaskStackC[2] = activeMaskStackC[1];
|
||||||
|
// 0
|
||||||
|
PV0f.x = R1f.w + -(R1f.x);
|
||||||
|
PV0f.y = R1f.z + -(R1f.y);
|
||||||
|
PV0f.z = mul_nonIEEE(R2f.x, intBitsToFloat(uf_remappedPS[0].x));
|
||||||
|
R127f.w = min(R1f.z, R1f.x);
|
||||||
|
R127f.x = min(R1f.w, R1f.y);
|
||||||
|
PS0f = R127f.x;
|
||||||
|
// 1
|
||||||
|
R123f.x = (mul_nonIEEE(R2f.y,intBitsToFloat(uf_remappedPS[0].y)) + PV0f.z);
|
||||||
|
PV1f.x = R123f.x;
|
||||||
|
PV1f.y = max(R1f.z, R1f.x);
|
||||||
|
R127f.z = PV0f.y + -(PV0f.x);
|
||||||
|
PV1f.z = R127f.z;
|
||||||
|
R126f.w = PV0f.y + PV0f.x;
|
||||||
|
PV1f.w = R126f.w;
|
||||||
|
PS1f = max(R1f.w, R1f.y);
|
||||||
|
// 2
|
||||||
|
PV0f.x = max(PV1f.z, -(PV1f.z));
|
||||||
|
PV0f.y = max(PV1f.w, -(PV1f.w));
|
||||||
|
R123f.z = (mul_nonIEEE(R2f.z,intBitsToFloat(uf_remappedPS[0].z)) + PV1f.x);
|
||||||
|
PV0f.z = R123f.z;
|
||||||
|
PV0f.w = min(R127f.w, R127f.x);
|
||||||
|
PS0f = max(PV1f.y, PS1f);
|
||||||
|
// 3
|
||||||
|
PV1f.x = mul_nonIEEE(PS0f, intBitsToFloat(uf_remappedPS[1].x));
|
||||||
|
PV1f.y = max(PV0f.z, PS0f);
|
||||||
|
PV1f.z = min(PV0f.z, PV0f.w);
|
||||||
|
PV1f.w = min(PV0f.y, PV0f.x);
|
||||||
|
// 4
|
||||||
|
R1f.x = -(PV1f.z) + PV1f.y;
|
||||||
|
R0f.z = max(PV1f.x, intBitsToFloat(uf_remappedPS[1].y));
|
||||||
|
PS0f = 1.0 / PV1f.w;
|
||||||
|
// 5
|
||||||
|
PV1f.x = mul_nonIEEE(R127f.z, PS0f);
|
||||||
|
PV1f.y = mul_nonIEEE(R126f.w, PS0f);
|
||||||
|
// 6
|
||||||
|
PV0f.z = max(PV1f.x, -(intBitsToFloat(uf_remappedPS[2].y)));
|
||||||
|
PV0f.w = max(PV1f.y, -(intBitsToFloat(uf_remappedPS[2].y)));
|
||||||
|
// 7
|
||||||
|
R3f.x = min(PV0f.w, intBitsToFloat(uf_remappedPS[2].y));
|
||||||
|
R1f.y = min(PV0f.z, intBitsToFloat(uf_remappedPS[2].y));
|
||||||
|
// 8
|
||||||
|
predResult = (R1f.x > R0f.z);
|
||||||
|
activeMaskStack[1] = predResult;
|
||||||
|
activeMaskStackC[2] = predResult == true && activeMaskStackC[1] == true;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
activeMaskStack[1] = false;
|
||||||
|
activeMaskStackC[2] = false;
|
||||||
|
}
|
||||||
|
if( activeMaskStackC[2] == true ) {
|
||||||
|
// 0
|
||||||
|
backupReg0f = R3f.x;
|
||||||
|
backupReg0f = R3f.x;
|
||||||
|
R3f.x = (mul_nonIEEE(backupReg0f,intBitsToFloat(uf_remappedPS[3].x)/resXScale) + R0f.x);
|
||||||
|
R3f.y = (mul_nonIEEE(R1f.y,intBitsToFloat(uf_remappedPS[3].y)/resYScale) + R0f.y);
|
||||||
|
R1f.x = (mul_nonIEEE(backupReg0f,-(intBitsToFloat(uf_remappedPS[3].x)/resXScale)) + R0f.x);
|
||||||
|
PS0f = R1f.x;
|
||||||
|
// 1
|
||||||
|
backupReg0f = R1f.y;
|
||||||
|
R1f.y = (mul_nonIEEE(backupReg0f,-(intBitsToFloat(uf_remappedPS[3].y)/resYScale)) + R0f.y);
|
||||||
|
}
|
||||||
|
if( activeMaskStackC[2] == true ) {
|
||||||
|
R0f.xyzw = (texture(textureUnitPS0, R3f.xy).xyzw);
|
||||||
|
R1f.xyzw = (texture(textureUnitPS0, R1f.xy).xyzw);
|
||||||
|
}
|
||||||
|
if( activeMaskStackC[2] == true ) {
|
||||||
|
// 0
|
||||||
|
R127f.x = R0f.w + R1f.w;
|
||||||
|
R127f.x /= 2.0;
|
||||||
|
PV0f.x = R127f.x;
|
||||||
|
R127f.y = R0f.z + R1f.z;
|
||||||
|
R127f.y /= 2.0;
|
||||||
|
PV0f.y = R127f.y;
|
||||||
|
R127f.z = R0f.y + R1f.y;
|
||||||
|
R127f.z /= 2.0;
|
||||||
|
PV0f.z = R127f.z;
|
||||||
|
R127f.w = R0f.x + R1f.x;
|
||||||
|
R127f.w /= 2.0;
|
||||||
|
PV0f.w = R127f.w;
|
||||||
|
// 1
|
||||||
|
PV1f.x = R2f.w + -(PV0f.x);
|
||||||
|
PV1f.y = R2f.z + -(PV0f.y);
|
||||||
|
PV1f.z = R2f.y + -(PV0f.z);
|
||||||
|
PV1f.w = R2f.x + -(PV0f.w);
|
||||||
|
// 2
|
||||||
|
R2f.x = (PV1f.w * intBitsToFloat(0x3eb33333) + R127f.w);
|
||||||
|
R2f.y = (PV1f.z * intBitsToFloat(0x3eb33333) + R127f.z);
|
||||||
|
R2f.z = (PV1f.y * intBitsToFloat(0x3eb33333) + R127f.y);
|
||||||
|
R2f.w = (PV1f.x * intBitsToFloat(0x3eb33333) + R127f.x);
|
||||||
|
}
|
||||||
|
activeMaskStackC[1] = activeMaskStack[0] == true && activeMaskStackC[0] == true;
|
||||||
|
// export
|
||||||
|
passPixelColor0 = vec4(R2f.x, R2f.y, R2f.z, R2f.w);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if (preset == 2)
|
||||||
/*-----------------------------settings-------------------------------------*/
|
/*-----------------------------settings-------------------------------------*/
|
||||||
|
|
||||||
#define Subpix 0.70 //[0.000 to 1.000] Choose the amount of sub-pixel aliasing removal.
|
#define Subpix 0.70 //[0.000 to 1.000] Choose the amount of sub-pixel aliasing removal.
|
||||||
@ -9,11 +176,8 @@
|
|||||||
|
|
||||||
/*--------------------------------------------------------------------------*/
|
/*--------------------------------------------------------------------------*/
|
||||||
|
|
||||||
// shader f14bb57cd5c9cb77
|
layout(binding = 0) uniform sampler2D textureUnitPS0;// Tex0 addr 0xf49b1800 res 1280x720x1 dim 1 tm: 4 format 0019 compSel: 0 1 2 3 mipView: 0x0 (num 0x1) sliceView: 0x0 (num 0x1) Sampler0 ClampX/Y/Z: 2 2 2 border: 1
|
||||||
// fxaa in game
|
layout(binding = 1) uniform sampler2D textureUnitPS1;// Tex1 addr 0x387f8000 res 1280x720x1 dim 1 tm: 4 format 0001 compSel: 0 4 4 5 mipView: 0x0 (num 0x1) sliceView: 0x0 (num 0x1) Sampler1 ClampX/Y/Z: 2 2 2 border: 1
|
||||||
// original shader dumped using cemu 1.10.0f, BotW 1.3.1
|
|
||||||
layout(binding = 0) uniform sampler2D textureUnitPS0;
|
|
||||||
layout(binding = 1) uniform sampler2D textureUnitPS1;
|
|
||||||
layout(location = 0) in vec4 passParameterSem2;
|
layout(location = 0) in vec4 passParameterSem2;
|
||||||
layout(location = 0) out vec4 passPixelColor0;
|
layout(location = 0) out vec4 passPixelColor0;
|
||||||
uniform vec2 uf_fragCoordScale;
|
uniform vec2 uf_fragCoordScale;
|
||||||
@ -348,3 +512,4 @@ void main()
|
|||||||
{
|
{
|
||||||
passPixelColor0 = FxaaPixelShader(passParameterSem2.xy, textureUnitPS0, textureUnitPS1, RcpFrame, Subpix, EdgeThreshold, EdgeThresholdMin);
|
passPixelColor0 = FxaaPixelShader(passParameterSem2.xy, textureUnitPS0, textureUnitPS1, RcpFrame, Subpix, EdgeThreshold, EdgeThresholdMin);
|
||||||
}
|
}
|
||||||
|
#endif
|
@ -1,8 +1,21 @@
|
|||||||
[Definition]
|
[Definition]
|
||||||
titleIds = 00050000101C9300,00050000101C9400,00050000101C9500
|
titleIds = 00050000101C9300,00050000101C9400,00050000101C9500
|
||||||
name = "The Legend of Zelda: Breath of the Wild - FXAA"
|
name = Anti-Aliasing
|
||||||
version = 2
|
path = "The Legend of Zelda: Breath of the Wild/Graphics/Anti-Aliasing"
|
||||||
|
description = Enables and Disables Anti-Aliasing processing. FXAA is better alternative and customizable. Check the "!GameTitleHere_Anti-Aliasing/rules.txt" file in your graphicPack folder for info about the individual settings.
|
||||||
|
version = 3
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
name = Disabled
|
||||||
|
$preset:int = 0
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
name = Enabled
|
||||||
|
$preset:int = 1
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
name = FXAA
|
||||||
|
$preset:int = 2
|
||||||
|
|
||||||
# Subpix:
|
# Subpix:
|
||||||
# Choose the amount of sub-pixel aliasing removal.
|
# Choose the amount of sub-pixel aliasing removal.
|
||||||
@ -27,13 +40,5 @@ version = 2
|
|||||||
# 0.0625 - high quality (faster)
|
# 0.0625 - high quality (faster)
|
||||||
# 0.0312 - visible limit (slower)
|
# 0.0312 - visible limit (slower)
|
||||||
|
|
||||||
|
|
||||||
# Credit: Kiri, NAVras
|
# Credit: Kiri, NAVras
|
||||||
|
# Credit: SkalFate for proper V3 Import.
|
||||||
|
|
||||||
[TextureRedefine] #Luma
|
|
||||||
width = 1280
|
|
||||||
height = 720
|
|
||||||
formats = 0x1
|
|
||||||
overwriteFormat = 0x5
|
|
||||||
tileModesExcluded = 0x001
|
|
6
Enhancements/!BreathOfTheWild_NoDoF/rules.txt
Normal file
6
Enhancements/!BreathOfTheWild_NoDoF/rules.txt
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
[Definition]
|
||||||
|
titleIds = 00050000101C9300,00050000101C9400,00050000101C9500
|
||||||
|
name = "No Depth of Field"
|
||||||
|
path = "The Legend of Zelda: Breath of the Wild/Enhancements/No Depth of Field"
|
||||||
|
description = "Disables depth of field."
|
||||||
|
version = 3
|
@ -3,8 +3,7 @@
|
|||||||
#extension GL_ARB_separate_shader_objects : enable
|
#extension GL_ARB_separate_shader_objects : enable
|
||||||
#extension GL_ARB_shading_language_packing : enable
|
#extension GL_ARB_shading_language_packing : enable
|
||||||
// shader 04d0827b9471eb22
|
// shader 04d0827b9471eb22
|
||||||
const float resXScale = 3.0;
|
|
||||||
const float resYScale = 3.0;
|
|
||||||
uniform ivec4 uf_remappedVS[1];
|
uniform ivec4 uf_remappedVS[1];
|
||||||
uniform vec2 uf_windowSpaceToClipSpaceTransform;
|
uniform vec2 uf_windowSpaceToClipSpaceTransform;
|
||||||
layout(location = 0) in uvec4 attrDataSem0;
|
layout(location = 0) in uvec4 attrDataSem0;
|
||||||
@ -57,9 +56,9 @@ R3f.x = R2f.x;
|
|||||||
R3f.y = R2f.y;
|
R3f.y = R2f.y;
|
||||||
PV0f.z = intBitsToFloat(uf_remappedVS[0].z) + 0.0;
|
PV0f.z = intBitsToFloat(uf_remappedVS[0].z) + 0.0;
|
||||||
// 1
|
// 1
|
||||||
R127f.z = mul_nonIEEE(intBitsToFloat(uf_remappedVS[0].y) / resYScale, PV0f.z);
|
R127f.z = mul_nonIEEE(intBitsToFloat(uf_remappedVS[0].y), PV0f.z);
|
||||||
PV1f.z = R127f.z;
|
PV1f.z = R127f.z;
|
||||||
PV1f.w = mul_nonIEEE(intBitsToFloat(uf_remappedVS[0].x) / resXScale, PV0f.z);
|
PV1f.w = mul_nonIEEE(intBitsToFloat(uf_remappedVS[0].x), PV0f.z);
|
||||||
// 2
|
// 2
|
||||||
PV0f.x = R2f.y + PV1f.z;
|
PV0f.x = R2f.y + PV1f.z;
|
||||||
PV0f.y = R2f.x + PV1f.w;
|
PV0f.y = R2f.x + PV1f.w;
|
6
Enhancements/!TokyoMirage_AARemoval/rules.txt
Normal file
6
Enhancements/!TokyoMirage_AARemoval/rules.txt
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
[Definition]
|
||||||
|
titleIds = 00050000101ED700,00050000101ED800,0005000010131D00
|
||||||
|
name = AA removal TMS
|
||||||
|
path = "Tokyo Mirage Sessions FE/Graphics/AA removal"
|
||||||
|
description = Removes AA, no performance gain. Used for clean look or injecting external AA
|
||||||
|
version = 3
|
6
Enhancements/!TropicalFreeze_AARemoval/rules.txt
Normal file
6
Enhancements/!TropicalFreeze_AARemoval/rules.txt
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
[Definition]
|
||||||
|
titleIds = 0005000010137F00,0005000010138300,0005000010144800
|
||||||
|
name = Resolution
|
||||||
|
path = "Donkey Kong Country: Tropical Freeze/Graphics/AA Removal"
|
||||||
|
description = Removes AA, no performance gain. Used for clean look or injecting external AA.
|
||||||
|
version = 3
|
@ -1,21 +1,11 @@
|
|||||||
<?php
|
|
||||||
include 'Source/functions.php';
|
|
||||||
$fullWidth = $argv[1];
|
|
||||||
$fullHeight = $argv[2];
|
|
||||||
$scaleFactorX = always_decimal_format($fullWidth / 1280.0);
|
|
||||||
$scaleFactorY = always_decimal_format($fullHeight / 720.0);
|
|
||||||
?>
|
|
||||||
#version 420
|
#version 420
|
||||||
#extension GL_ARB_texture_gather : enable
|
#extension GL_ARB_texture_gather : enable
|
||||||
#extension GL_ARB_separate_shader_objects : enable
|
#extension GL_ARB_separate_shader_objects : enable
|
||||||
#extension GL_ARB_shading_language_packing : enable
|
#extension GL_ARB_shading_language_packing : enable
|
||||||
// shader f5274bda2b5e1e9f
|
// shader 497a209b49886520 //depth?
|
||||||
// bloom blur texture coordinates
|
|
||||||
const float resXScale = <?=$scaleFactorX?>;
|
|
||||||
const float resYScale = <?=$scaleFactorY?>;
|
|
||||||
|
|
||||||
uniform ivec4 uf_remappedVS[1];
|
uniform ivec4 uf_remappedVS[1];
|
||||||
uniform vec2 uf_windowSpaceToClipSpaceTransform;
|
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 = 0) in uvec4 attrDataSem0;
|
||||||
layout(location = 1) in uvec4 attrDataSem1;
|
layout(location = 1) in uvec4 attrDataSem1;
|
||||||
out gl_PerVertex
|
out gl_PerVertex
|
||||||
@ -41,8 +31,6 @@ vec4 R0f = vec4(0.0);
|
|||||||
vec4 R1f = vec4(0.0);
|
vec4 R1f = vec4(0.0);
|
||||||
vec4 R2f = vec4(0.0);
|
vec4 R2f = vec4(0.0);
|
||||||
vec4 R3f = vec4(0.0);
|
vec4 R3f = vec4(0.0);
|
||||||
vec4 R4f = vec4(0.0);
|
|
||||||
vec4 R127f = vec4(0.0);
|
|
||||||
uvec4 attrDecoder;
|
uvec4 attrDecoder;
|
||||||
float backupReg0f, backupReg1f, backupReg2f, backupReg3f, backupReg4f;
|
float backupReg0f, backupReg1f, backupReg2f, backupReg3f, backupReg4f;
|
||||||
vec4 PV0f = vec4(0.0), PV1f = vec4(0.0);
|
vec4 PV0f = vec4(0.0), PV1f = vec4(0.0);
|
||||||
@ -65,35 +53,30 @@ attrDecoder.z = 0;
|
|||||||
attrDecoder.w = 0;
|
attrDecoder.w = 0;
|
||||||
R2f = vec4(intBitsToFloat(int(attrDecoder.x)), intBitsToFloat(int(attrDecoder.y)), intBitsToFloat(floatBitsToInt(0.0)), intBitsToFloat(floatBitsToInt(1.0)));
|
R2f = vec4(intBitsToFloat(int(attrDecoder.x)), intBitsToFloat(int(attrDecoder.y)), intBitsToFloat(floatBitsToInt(0.0)), intBitsToFloat(floatBitsToInt(1.0)));
|
||||||
// 0
|
// 0
|
||||||
backupReg0f = R1f.x;
|
backupReg0f = R2f.x;
|
||||||
backupReg1f = R1f.y;
|
backupReg1f = R2f.y;
|
||||||
R1f.x = backupReg0f;
|
backupReg0f = R2f.x;
|
||||||
R1f.x *= 2.0;
|
backupReg1f = R2f.y;
|
||||||
R1f.y = backupReg1f;
|
R2f.x = backupReg0f;
|
||||||
R1f.y *= 2.0;
|
R2f.y = backupReg1f;
|
||||||
R1f.z = 0.0;
|
R0f.z = intBitsToFloat(0x3f000000);
|
||||||
R1f.w = 1.0;
|
R0f.w = (mul_nonIEEE(backupReg0f,intBitsToFloat(uf_remappedVS[0].x)) + intBitsToFloat(uf_remappedVS[0].z));
|
||||||
R127f.x = R2f.y + intBitsToFloat(uf_remappedVS[0].w) / resYScale;
|
R0f.y = (mul_nonIEEE(backupReg1f,intBitsToFloat(uf_remappedVS[0].y)) + intBitsToFloat(uf_remappedVS[0].w));
|
||||||
PS0f = R127f.x;
|
PS0f = R0f.y;
|
||||||
// 1
|
R3f.xy = (textureLod(textureUnitVS0, R0f.zz,0.0).xy)*0.33335;
|
||||||
R0f.x = R2f.x + intBitsToFloat(uf_remappedVS[0].z) / resXScale;
|
|
||||||
R0f.y = PS0f;
|
|
||||||
PV1f.z = R2f.y + -(intBitsToFloat(uf_remappedVS[0].w) / resYScale);
|
|
||||||
R4f.w = R2f.x;
|
|
||||||
R3f.x = R2f.x + -(intBitsToFloat(uf_remappedVS[0].z) / resXScale);
|
|
||||||
PS1f = R3f.x;
|
|
||||||
// 2
|
|
||||||
R4f.x = R2f.y;
|
|
||||||
R3f.y = R127f.x;
|
|
||||||
R3f.z = PV1f.z;
|
|
||||||
R0f.w = PV1f.z;
|
|
||||||
// export
|
// export
|
||||||
gl_Position = vec4(R1f.x, R1f.y, R1f.z, R1f.w);
|
gl_Position = vec4(R1f.x, R1f.y, R1f.z, R1f.w);
|
||||||
// export
|
// export
|
||||||
passParameterSem1 = vec4(R0f.x, R0f.y, R0f.x, R0f.w);
|
passParameterSem1 = vec4(R2f.x, R2f.y, R2f.z, R2f.z);
|
||||||
// export
|
// export
|
||||||
passParameterSem2 = vec4(R3f.x, R3f.y, R3f.x, R3f.z);
|
|
||||||
// export
|
// export
|
||||||
passParameterSem0 = vec4(R4f.w, R4f.x, R4f.z, R4f.z);
|
passParameterSem2 = vec4(R0f.w, R0f.y, R0f.z, R0f.z);
|
||||||
|
// 0
|
||||||
|
backupReg0f = R3f.x;
|
||||||
|
backupReg1f = R3f.y;
|
||||||
|
R3f.x = backupReg0f;
|
||||||
|
R3f.y = backupReg1f;
|
||||||
|
// export
|
||||||
|
passParameterSem0 = vec4(R3f.x, R3f.y, R3f.z, R3f.z);
|
||||||
// 0
|
// 0
|
||||||
}
|
}
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user