Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- / Debug Name:
- /*------------------- Shader -------------------*/
- #version 430 core
- #define EMULATION_UBO_BINDING 4
- #define CBUF_BINDING_3 5
- #define CBUF_BINDING_4 6
- #define SAMPLER_BINDING_0 0
- #extension GL_ARB_separate_shader_objects : enable
- // Shader Unique Id: FS435890a6ff0950a1
- #define MAX_CONSTBUFFER_ELEMENTS 4096
- #define MAX_GLOBALMEMORY_ELEMENTS 16384
- #define ftoi floatBitsToInt
- #define ftou floatBitsToUint
- #define itof intBitsToFloat
- #define utof uintBitsToFloat
- float fromHalf2(vec2 pair) {
- return utof(packHalf2x16(pair));
- }
- vec2 toHalf2(float value) {
- return unpackHalf2x16(ftou(value));
- }
- layout (location = 0) out vec4 FragColor0;
- layout (location = 1) out vec4 FragColor1;
- layout (location = 2) out vec4 FragColor2;
- layout (location = 3) out vec4 FragColor3;
- layout (location = 4) out vec4 FragColor4;
- layout (location = 5) out vec4 FragColor5;
- layout (location = 6) out vec4 FragColor6;
- layout (location = 7) out vec4 FragColor7;
- layout (location = 0) in vec4 position;
- layout (std140, binding = EMULATION_UBO_BINDING) uniform fs_config {
- vec4 viewport_flip;
- uvec4 config_pack; // instance_id, flip_stage, y_direction, padding
- uvec4 alpha_test;
- };
- bool AlphaFunc(in float value) {
- float ref = uintBitsToFloat(alpha_test[2]);
- switch (alpha_test[1]) {
- case 1:
- return false;
- case 2:
- return value < ref;
- case 3:
- return value == ref;
- case 4:
- return value <= ref;
- case 5:
- return value > ref;
- case 6:
- return value != ref;
- case 7:
- return value >= ref;
- case 8:
- return true;
- default:
- return false;
- }
- }
- float gpr_0_fragment = 0;
- float gpr_1_fragment = 0;
- float gpr_2_fragment = 0;
- float gpr_3_fragment = 0;
- float gpr_4_fragment = 0;
- float gpr_5_fragment = 0;
- float gpr_6_fragment = 0;
- float gpr_7_fragment = 0;
- float gpr_8_fragment = 0;
- float gpr_9_fragment = 0;
- float gpr_10_fragment = 0;
- float gpr_11_fragment = 0;
- float gpr_12_fragment = 0;
- float gpr_256_fragment = 0;
- float gpr_257_fragment = 0;
- float gpr_258_fragment = 0;
- float gpr_259_fragment = 0;
- bool pred_0_fragment = false;
- bool zero_flag_fragment = false;
- bool sign_flag_fragment = false;
- bool carry_flag_fragment = false;
- bool overflow_flag_fragment = false;
- layout (location = 1) in vec4 input_attr_0_fragment;
- layout (location = 2) in vec4 input_attr_1_fragment;
- layout (std140, binding = CBUF_BINDING_3) uniform cbuf_block_3_fragment {
- vec4 cbuf_3_fragment[MAX_CONSTBUFFER_ELEMENTS];
- };
- layout (std140, binding = CBUF_BINDING_4) uniform cbuf_block_4_fragment {
- vec4 cbuf_4_fragment[MAX_CONSTBUFFER_ELEMENTS];
- };
- layout (binding = SAMPLER_BINDING_0) uniform sampler2DArray sampler_0_fragment;
- void execute_fragment() {
- uint jmp_to = 10u;
- uint flow_stack[20];
- uint flow_stack_top = 0u;
- while (true) {
- switch (jmp_to) {
- case 0xau: {
- // 11: IPA (0xe003ff87cff7ff05)
- gpr_5_fragment = 1.0f;
- // 12: MUFU (0x5080000000470505)
- float tmp1 = (utof(0x3f800000u) / gpr_5_fragment);
- gpr_5_fragment = tmp1;
- // 13: IPA (0xe043ff898057ff06)
- gpr_6_fragment = input_attr_1_fragment.z;
- // 15: IPA (0xe043ff894057ff00)
- gpr_0_fragment = input_attr_1_fragment.y;
- // 16: IPA (0xe043ff890057ff03)
- gpr_3_fragment = input_attr_1_fragment.x;
- // 17: F2I_R (0x5cb0100000670902)
- float tmp2 = utof(uint(gpr_6_fragment));
- gpr_2_fragment = utof((ftou(utof((ftou(tmp2) << ftou(utof(0x10u))))) >> ftou(utof(0x10u))));
- // 19: TEXS (0xd8f2008020070200)
- gpr_256_fragment = texture(sampler_0_fragment, vec3(gpr_3_fragment, gpr_0_fragment, float(ftoi(gpr_2_fragment)))).x;
- gpr_257_fragment = texture(sampler_0_fragment, vec3(gpr_3_fragment, gpr_0_fragment, float(ftoi(gpr_2_fragment)))).y;
- gpr_258_fragment = texture(sampler_0_fragment, vec3(gpr_3_fragment, gpr_0_fragment, float(ftoi(gpr_2_fragment)))).z;
- gpr_259_fragment = texture(sampler_0_fragment, vec3(gpr_3_fragment, gpr_0_fragment, float(ftoi(gpr_2_fragment)))).w;
- gpr_0_fragment = gpr_256_fragment;
- gpr_1_fragment = gpr_257_fragment;
- gpr_2_fragment = gpr_258_fragment;
- gpr_3_fragment = gpr_259_fragment;
- // 20: IPA (0xe043ff88c057ff04)
- gpr_4_fragment = input_attr_0_fragment.w;
- // 21: FSETP_R (0x5bb383800ff70307)
- pred_0_fragment = ((gpr_3_fragment <= 0) && true);
- // 23: KIL (0xe33000000000000f)
- if (pred_0_fragment) {
- if (true) {
- discard;
- }
- }
- // 24: FSETP_R (0x5bb483800ff70407)
- pred_0_fragment = ((gpr_4_fragment > 0) && true);
- // 25: BRA (0xe24000001108000f)
- if (!(pred_0_fragment)) {
- jmp_to = 0x3cu;
- break;
- }
- // 27: ISETP_C (0x4b6503900007ff07)
- pred_0_fragment = ((ftoi(0) == ftoi(cbuf_4_fragment[0][0])) && true);
- // 28: IPA (0xe043ff880057ff08)
- gpr_8_fragment = input_attr_0_fragment.x;
- // 29: MOV_C (0x4c98078c01070009)
- gpr_9_fragment = cbuf_3_fragment[4][0];
- // 31: IPA (0xe043ff884057ff06)
- gpr_6_fragment = input_attr_0_fragment.y;
- // 32: MOV_C (0x4c98078c0157000a)
- gpr_10_fragment = cbuf_3_fragment[5][1];
- // 33: IPA (0xe043ff888057ff07)
- gpr_7_fragment = input_attr_0_fragment.z;
- // 35: MOV_C (0x4c98078c0117000b)
- gpr_11_fragment = cbuf_3_fragment[4][1];
- // 36: MOV32_IMM (0x0103f8000000f009)
- if (pred_0_fragment) {
- gpr_9_fragment = utof(0x3f800000u);
- }
- // 37: MOV_R (0x5c9807800ff0000a)
- if (pred_0_fragment) {
- gpr_10_fragment = 0;
- }
- // 39: MOV_R (0x5c9807800090000b)
- if (pred_0_fragment) {
- gpr_11_fragment = gpr_9_fragment;
- }
- // 40: MOV_C (0x4c98078c0127000c)
- gpr_12_fragment = cbuf_3_fragment[4][2];
- // 41: MOV_R (0x5c9807800090000c)
- if (pred_0_fragment) {
- gpr_12_fragment = gpr_9_fragment;
- }
- // 43: FFMA_RR (0x59a0050000b70101)
- float tmp3 = fma(gpr_1_fragment, gpr_11_fragment, gpr_10_fragment);
- gpr_1_fragment = tmp3;
- // 44: MOV_C (0x4c98078c0147000a)
- gpr_10_fragment = cbuf_3_fragment[5][0];
- // 45: MOV_C (0x4c98078c0167000b)
- gpr_11_fragment = cbuf_3_fragment[5][2];
- // 47: MOV_R (0x5c9807800ff0000a)
- if (pred_0_fragment) {
- gpr_10_fragment = 0;
- }
- // 48: MOV_R (0x5c9807800ff0000b)
- if (pred_0_fragment) {
- gpr_11_fragment = 0;
- }
- // 49: FMUL_C (0x4c68100c01370303)
- float tmp4 = (gpr_3_fragment * cbuf_3_fragment[4][3]);
- gpr_3_fragment = tmp4;
- // 51: FFMA_RR (0x59a0050000970009)
- float tmp5 = fma(gpr_0_fragment, gpr_9_fragment, gpr_10_fragment);
- gpr_9_fragment = tmp5;
- // 52: FFMA_RR (0x59a0058000c70202)
- float tmp6 = fma(gpr_2_fragment, gpr_12_fragment, gpr_11_fragment);
- gpr_2_fragment = tmp6;
- // 53: FMUL_R (0x5c68100000370403)
- float tmp7 = (gpr_4_fragment * gpr_3_fragment);
- gpr_3_fragment = tmp7;
- // 55: FMUL_R (0x5c68100000670101)
- float tmp8 = (gpr_1_fragment * gpr_6_fragment);
- gpr_1_fragment = tmp8;
- // 56: FMUL_R (0x5c68100000870900)
- float tmp9 = (gpr_9_fragment * gpr_8_fragment);
- gpr_0_fragment = tmp9;
- // 57: FMUL_R (0x5c68100000770202)
- float tmp10 = (gpr_2_fragment * gpr_7_fragment);
- gpr_2_fragment = tmp10;
- // 59: EXIT (0xe30000000007000f)
- if (alpha_test[0] != 0) {
- if (!AlphaFunc(gpr_3_fragment)) discard;
- }
- FragColor0[0] = gpr_0_fragment;
- FragColor0[1] = gpr_1_fragment;
- FragColor0[2] = gpr_2_fragment;
- FragColor0[3] = gpr_3_fragment;
- return;
- }
- case 0x3cu: {
- // 60: MOV_C (0x4c98078c01870009)
- gpr_9_fragment = cbuf_3_fragment[6][0];
- // 61: IPA (0xe043ff880057ff08)
- gpr_8_fragment = input_attr_0_fragment.x;
- // 63: MOV_C (0x4c98078c0197000a)
- gpr_10_fragment = cbuf_3_fragment[6][1];
- // 64: IPA (0xe043ff884057ff07)
- gpr_7_fragment = input_attr_0_fragment.y;
- // 65: MOV_C (0x4c98078c01a7000b)
- gpr_11_fragment = cbuf_3_fragment[6][2];
- // 67: IPA (0xe043ff888057ff06)
- gpr_6_fragment = input_attr_0_fragment.z;
- // 68: FMUL_C (0x4c68100c01b70303)
- float tmp11 = (gpr_3_fragment * cbuf_3_fragment[6][3]);
- gpr_3_fragment = tmp11;
- // 69: FFMA_RC (0x51a0048c01c70009)
- float tmp12 = fma(gpr_0_fragment, gpr_9_fragment, cbuf_3_fragment[7][0]);
- gpr_9_fragment = tmp12;
- // 71: FFMA_RC (0x51a0050c01d70101)
- float tmp13 = fma(gpr_1_fragment, gpr_10_fragment, cbuf_3_fragment[7][1]);
- gpr_1_fragment = tmp13;
- // 72: FFMA_RC (0x51a0058c01e7020b)
- float tmp14 = fma(gpr_2_fragment, gpr_11_fragment, cbuf_3_fragment[7][2]);
- gpr_11_fragment = tmp14;
- // 73: FMUL_R (0x5c69100000370403)
- float tmp15 = (-(gpr_3_fragment));
- float tmp16 = (gpr_4_fragment * tmp15);
- gpr_3_fragment = tmp16;
- // 75: FMUL_R (0x5c68100000970800)
- float tmp17 = (gpr_8_fragment * gpr_9_fragment);
- gpr_0_fragment = tmp17;
- // 76: FMUL_R (0x5c68100000170701)
- float tmp18 = (gpr_7_fragment * gpr_1_fragment);
- gpr_1_fragment = tmp18;
- // 77: FMUL_R (0x5c68100000b70602)
- float tmp19 = (gpr_6_fragment * gpr_11_fragment);
- gpr_2_fragment = tmp19;
- // 79: EXIT (0xe30000000007000f)
- if (alpha_test[0] != 0) {
- if (!AlphaFunc(gpr_3_fragment)) discard;
- }
- FragColor0[0] = gpr_0_fragment;
- FragColor0[1] = gpr_1_fragment;
- FragColor0[2] = gpr_2_fragment;
- FragColor0[3] = gpr_3_fragment;
- return;
- }
- default: return;
- }
- }
- }
- void main() {
- execute_fragment();
- }
Add Comment
Please, Sign In to add comment