0% found this document useful (0 votes)
13 views3 pages

Acd66e3570ee3a72 0000000000000079 Ps

This document contains the source code for a shader. The shader removes the last bit of text in a heads-up display (HUD) by performing several steps: 1. It initializes registers and samplers from uniform buffers. 2. It performs a series of arithmetic operations on the fragment color and texture sample values, storing intermediate results in registers. 3. It clamps values to the 0-1 range and outputs the final fragment color. The shader contains operations to sample a texture, perform arithmetic on the sampled value and other registers, store intermediate results, and output a final color value - all for the purpose of removing the last bit of text from the HUD. It uses OpenGL

Uploaded by

mateopgcalamita
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
13 views3 pages

Acd66e3570ee3a72 0000000000000079 Ps

This document contains the source code for a shader. The shader removes the last bit of text in a heads-up display (HUD) by performing several steps: 1. It initializes registers and samplers from uniform buffers. 2. It performs a series of arithmetic operations on the fragment color and texture sample values, storing intermediate results in registers. 3. It clamps values to the 0-1 range and outputs the final fragment color. The shader contains operations to sample a texture, perform arithmetic on the sampled value and other registers, store intermediate results, and output a final color value - all for the purpose of removing the last bit of text from the HUD. It uses OpenGL

Uploaded by

mateopgcalamita
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
You are on page 1/ 3

#version 430

#extension GL_ARB_texture_gather : enable


#extension GL_ARB_separate_shader_objects : enable
// shader acd66e3570ee3a72
// Used for: Removing the last bit of text in the HUD

#ifdef VULKAN
#define ATTR_LAYOUT(__vkSet, __location) layout(set = __vkSet, location =
__location)
#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set =
__vkSet, binding = __vkLocation, std140)
#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet,
binding = __vkLocation)
#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale.xy,gl_FragCoord.zw)
#else
#define ATTR_LAYOUT(__vkSet, __location) layout(location = __location)
#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding =
__glLocation, std140)
#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding =
__glLocation)
#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale,gl_FragCoord.zw)
#endif
#ifdef VULKAN
layout(set = 1, binding = 1) uniform ufBlock
{
uniform ivec4 uf_remappedPS[2];
uniform vec4 uf_fragCoordScale;
};
#else
uniform ivec4 uf_remappedPS[2];
uniform vec2 uf_fragCoordScale;
#endif
TEXTURE_LAYOUT(0, 1, 0) uniform sampler2D textureUnitPS0;
layout(location = 0) in vec4 passParameterSem0;
layout(location = 1) in vec4 passParameterSem2;
layout(location = 0) out vec4 passPixelColor0;
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 mix(0.0, a*b, (a != 0.0) && (b !=
0.0));}
void main()
{
vec4 R0f = vec4(0.0);
vec4 R1f = vec4(0.0);
vec4 R122f = 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 = passParameterSem0;
R1f = passParameterSem2;
R1f.xyzw = (texture(textureUnitPS0, R1f.xy).xyzw);
// 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);
R126f.w = R1f.x;
R126f.w = clamp(R126f.w, 0.0, 1.0);
PS0f = R126f.w;
// 1
PV1f.x = fract(PV0f.w);
R127f.y = fract(PV0f.x);
R127f.z = fract(PV0f.y);
PV1f.w = fract(PV0f.z);
R127f.w = intBitsToFloat(uf_remappedPS[1].x) * intBitsToFloat(0x3f7f0000);
PS1f = R127f.w;
// 2
R127f.x = intBitsToFloat(uf_remappedPS[1].w) * intBitsToFloat(0x3f7f0000);
PV0f.y = intBitsToFloat(uf_remappedPS[1].z) * intBitsToFloat(0x3f7f0000);
PV0f.z = intBitsToFloat(uf_remappedPS[1].y) * intBitsToFloat(0x3f7f0000);
R125f.w = PV1f.x * intBitsToFloat(0x3f808081);
R126f.x = PV1f.w * intBitsToFloat(0x3f808081);
PS0f = R126f.x;
// 3
backupReg0f = R127f.z;
R125f.x = R127f.y * intBitsToFloat(0x3f808081);
PV1f.y = fract(R127f.w);
R127f.z = fract(PV0f.z);
R127f.w = backupReg0f * intBitsToFloat(0x3f808081);
R126f.z = fract(PV0f.y);
PS1f = R126f.z;
// 4
PV0f.x = fract(R127f.x);
R127f.y = R1f.z;
R127f.y = clamp(R127f.y, 0.0, 1.0);
R125f.z = R1f.y;
R125f.z = clamp(R125f.z, 0.0, 1.0);
R124f.w = R1f.w;
R124f.w = clamp(R124f.w, 0.0, 1.0);
R122f.x = (PV1f.y * intBitsToFloat(0x3f808081) + -(R125f.w));
PS0f = R122f.x;
// 5
R123f.x = (PV0f.x * intBitsToFloat(0x3f808081) + -(R125f.x));
PV1f.x = R123f.x;
R123f.y = (R126f.z * intBitsToFloat(0x3f808081) + -(R127f.w));
PV1f.y = R123f.y;
R123f.z = (R127f.z * intBitsToFloat(0x3f808081) + -(R126f.x));
PV1f.z = R123f.z;
R123f.w = (mul_nonIEEE(PS0f,R126f.w) + R125f.w);
R123f.w = clamp(R123f.w, 0.0, 1.0);
PV1f.w = R123f.w;
// 6
R123f.x = (mul_nonIEEE(PV1f.x,R124f.w) + R125f.x);
R123f.x = clamp(R123f.x, 0.0, 1.0);
PV0f.x = R123f.x;
R123f.z = (mul_nonIEEE(PV1f.y,R127f.y) + R127f.w);
R123f.z = clamp(R123f.z, 0.0, 1.0);
PV0f.z = R123f.z;
R123f.w = (mul_nonIEEE(PV1f.z,R125f.z) + R126f.x);
R123f.w = clamp(R123f.w, 0.0, 1.0);
PV0f.w = R123f.w;
R1f.x = mul_nonIEEE(R0f.x, PV1f.w);
R1f.x = clamp(R1f.x, 0.0, 1.0);
PS0f = R1f.x;
// 7
R1f.y = mul_nonIEEE(R0f.y, PV0f.w);
R1f.y = clamp(R1f.y, 0.0, 1.0);
R1f.z = mul_nonIEEE(R0f.z, PV0f.z);
R1f.z = clamp(R1f.z, 0.0, 1.0);
R1f.w = mul_nonIEEE(R0f.w, PV0f.x);
R1f.w = clamp(R1f.w, 0.0, 1.0);
// export
passPixelColor0 = vec4(R1f.x, R1f.y, R1f.z, R1f.w);
}

You might also like