Skip to content

Instantly share code, notes, and snippets.

@phire
Created February 15, 2021 13:54
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save phire/4be559172ce68dfcc1b79dd505cfa42d to your computer and use it in GitHub Desktop.
Save phire/4be559172ce68dfcc1b79dd505cfa42d to your computer and use it in GitHub Desktop.
0001/0:0001: #version 120
0002/0:0002: #define GL2
0003/0:0003: #define texture texture2D
0004/0:0004: #define VSIN(index) attribute
0005/0:0005: #define VSOUT varying
0006/0:0006: #define FSIN varying
0007/0:0007: #define FRAGCOLOR(c) (gl_FragColor = c)
0008/1:0001: #define DIRECTIONALS
0009/1:0002: //#define POINTLIGHTS
0010/1:0003: //#define SPOTLIGHTS
0011/1:0004: #define ATTRIB_POS 0
0012/1:0005: #define ATTRIB_NORMAL 1
0013/1:0006: #define ATTRIB_COLOR 2
0014/1:0007: #define ATTRIB_WEIGHTS 3
0015/1:0008: #define ATTRIB_INDICES 4
0016/1:0009: #define ATTRIB_TEXCOORDS0 5
0017/1:0010: #define ATTRIB_TEXCOORDS1 6
0018/1:0011: VSIN(ATTRIB_NORMAL) vec3 in_normal;
0019/1:0012: VSIN(ATTRIB_COLOR) vec4 in_color;
0020/1:0013: VSIN(ATTRIB_WEIGHTS) vec4 in_weights;
0021/1:0014: VSIN(ATTRIB_INDICES) vec4 in_indices;
0022/1:0015: VSIN(ATTRIB_TEXCOORDS0) vec2 in_tex0;
0023/1:0016: VSIN(ATTRIB_TEXCOORDS1) vec2 in_tex1;
0024/1:0017: #ifdef USE_UBOS
0025/1:0018: layout(std140) uniform State
0026/1:0019: {
0027/1:0020: vec2 u_alphaRef;
0028/1:0021: vec4 u_fogData;
0029/1:0022: vec4 u_fogColor;
0030/1:0023: };
0031/1:0024: #else
0032/1:0025: uniform vec2 u_alphaRef;
0033/1:0026: uniform vec4 u_fogData;
0034/1:0027: uniform vec4 u_fogColor;
0035/1:0028: #endif
0036/1:0029: #define u_fogStart (u_fogData.x)
0037/1:0030: #define u_fogEnd (u_fogData.y)
0038/1:0031: #define u_fogRange (u_fogData.z)
0039/1:0032: #define u_fogDisable (u_fogData.w)
0040/1:0033: #ifdef USE_UBOS
0041/1:0034: layout(std140) uniform Scene
0042/1:0035: {
0043/1:0036: mat4 u_proj;
0044/1:0037: mat4 u_view;
0045/1:0038: };
0046/1:0039: #else
0047/1:0040: uniform mat4 u_proj;
0048/1:0041: uniform mat4 u_view;
0049/1:0042: #endif
0050/1:0043: #define MAX_LIGHTS 8
0051/1:0044: #ifdef USE_UBOS
0052/1:0045: layout(std140) uniform Object
0053/1:0046: {
0054/1:0047: mat4 u_world;
0055/1:0048: vec4 u_ambLight;
0056/1:0049: vec4 u_lightParams[MAX_LIGHTS]; // type, radius, minusCosAngle, hardSpot
0057/1:0050: vec4 u_lightPosition[MAX_LIGHTS];
0058/1:0051: vec4 u_lightDirection[MAX_LIGHTS];
0059/1:0052: vec4 u_lightColor[MAX_LIGHTS];
0060/1:0053: };
0061/1:0054: #else
0062/1:0055: uniform mat4 u_world;
0063/1:0056: uniform vec4 u_ambLight;
0064/1:0057: uniform vec4 u_lightParams[MAX_LIGHTS]; // type, radius, minusCosAngle, hardSpot
0065/1:0058: uniform vec4 u_lightPosition[MAX_LIGHTS];
0066/1:0059: uniform vec4 u_lightDirection[MAX_LIGHTS];
0067/1:0060: uniform vec4 u_lightColor[MAX_LIGHTS];
0068/1:0061: #endif
0069/1:0062: uniform vec4 u_matColor;
0070/1:0063: uniform vec4 u_surfProps; // amb, spec, diff, extra
0071/1:0064: #define surfAmbient (u_surfProps.x)
0072/1:0065: #define surfSpecular (u_surfProps.y)
0073/1:0066: #define surfDiffuse (u_surfProps.z)
0074/1:0067: vec3 DoDynamicLight(vec3 V, vec3 N)
0075/1:0068: {
0076/1:0069: vec3 color = vec3(0.0, 0.0, 0.0);
0077/1:0070: for(int i = 0; i < MAX_LIGHTS; i++){
0078/1:0071: if(u_lightParams[i].x == 0.0)
0079/1:0072: break;
0080/1:0073: #ifdef DIRECTIONALS
0081/1:0074: if(u_lightParams[i].x == 1.0){
0082/1:0075: // direct
0083/1:0076: float l = max(0.0, dot(N, -u_lightDirection[i].xyz));
0084/1:0077: color += l*u_lightColor[i].rgb;
0085/1:0078: }else
0086/1:0079: #endif
0087/1:0080: #ifdef POINTLIGHTS
0088/1:0081: if(u_lightParams[i].x == 2.0){
0089/1:0082: // point
0090/1:0083: vec3 dir = V - u_lightPosition[i].xyz;
0091/1:0084: float dist = length(dir);
0092/1:0085: float atten = max(0.0, (1.0 - dist/u_lightParams[i].y));
0093/1:0086: float l = max(0.0, dot(N, -normalize(dir)));
0094/1:0087: color += l*u_lightColor[i].rgb*atten;
0095/1:0088: }else
0096/1:0089: #endif
0097/1:0090: #ifdef SPOTLIGHTS
0098/1:0091: if(u_lightParams[i].x == 3.0){
0099/1:0092: // spot
0100/1:0093: vec3 dir = V - u_lightPosition[i].xyz;
0101/1:0094: float dist = length(dir);
0102/1:0095: float atten = max(0.0, (1.0 - dist/u_lightParams[i].y));
0103/1:0096: dir /= dist;
0104/1:0097: float l = max(0.0, dot(N, -dir));
0105/1:0098: float pcos = dot(dir, u_lightDirection[i].xyz); // cos to point
0106/1:0099: float ccos = -u_lightParams[i].z;
0107/1:0100: float falloff = (pcos-ccos)/(1.0-ccos);
0108/1:0101: if(falloff < 0.0) // outside of cone
0109/1:0102: l = 0.0;
0110/1:0103: l *= max(falloff, u_lightParams[i].w);
0111/1:0104: return l*u_lightColor[i].rgb*atten;
0112/1:0105: }else
0113/1:0106: #endif
0114/1:0107: ;
0115/1:0108: }
0116/1:0109: return color;
0117/1:0110: }
0118/1:0111: float DoFog(float w)
0119/1:0112: {
0120/1:0113: return clamp((w - u_fogEnd)*u_fogRange, u_fogDisable, 1.0);
0121/1:0114: }
0122/2:0001: VSIN(ATTRIB_POS) vec3 in_pos;
0123/2:0002: VSOUT vec4 v_color;
0124/2:0003: VSOUT vec2 v_tex0;
0125/2:0004: VSOUT float v_fog;
0126/2:0005: void
0127/2:0006: main(void)
0128/2:0007: {
0129/2:0008: vec4 Vertex = u_world * vec4(in_pos, 1.0);
0130/2:0009: gl_Position = u_proj * u_view * Vertex;
0131/2:0010: vec3 Normal = mat3(u_world) * in_normal;
0132/2:0011: v_tex0 = in_tex0;
0133/2:0012: v_color = in_color;
0134/2:0013: v_color.rgb += u_ambLight.rgb*surfAmbient;
0135/2:0014: v_color.rgb += DoDynamicLight(Vertex.xyz, Normal)*surfDiffuse;
0136/2:0015: v_color = clamp(v_color, 0.0, 1.0);
0137/2:0016: v_color *= u_matColor;
0138/2:0017: v_fog = DoFog(gl_Position.w);
0139/2:0018: }
0001/0:0001: #version 120
0002/0:0002: #define GL2
0003/0:0003: #define texture texture2D
0004/0:0004: #define VSIN(index) attribute
0005/0:0005: #define VSOUT varying
0006/0:0006: #define FSIN varying
0007/0:0007: #define FRAGCOLOR(c) (gl_FragColor = c)
0008/1:0001: #ifdef USE_UBOS
0009/1:0002: layout(std140) uniform State
0010/1:0003: {
0011/1:0004: vec2 u_alphaRef;
0012/1:0005: vec4 u_fogData;
0013/1:0006: vec4 u_fogColor;
0014/1:0007: };
0015/1:0008: #else
0016/1:0009: uniform vec2 u_alphaRef;
0017/1:0010: uniform vec4 u_fogData;
0018/1:0011: uniform vec4 u_fogColor;
0019/1:0012: #endif
0020/1:0013: #define u_fogStart (u_fogData.x)
0021/1:0014: #define u_fogEnd (u_fogData.y)
0022/1:0015: #define u_fogRange (u_fogData.z)
0023/1:0016: #define u_fogDisable (u_fogData.w)
0024/1:0017: #ifndef GL2
0025/1:0018: out vec4 fragColor;
0026/1:0019: #endif
0027/1:0020: void DoAlphaTest(float a)
0028/1:0021: {
0029/1:0022: if(a < u_alphaRef.x || a >= u_alphaRef.y)
0030/1:0023: discard;
0031/1:0024: }
0032/2:0001: uniform sampler2D tex0;
0033/2:0002: FSIN vec4 v_color;
0034/2:0003: FSIN vec2 v_tex0;
0035/2:0004: FSIN float v_fog;
0036/2:0005: void
0037/2:0006: main(void)
0038/2:0007: {
0039/2:0008: vec4 color = v_color*texture(tex0, vec2(v_tex0.x, 1.0-v_tex0.y));
0040/2:0009: color.rgb = mix(u_fogColor.rgb, color.rgb, v_fog);
0041/2:0010: DoAlphaTest(color.a);
0042/2:0011: FRAGCOLOR(color);
0043/2:0012: }
MESA_SHADER_VERTEX prog 4/1 QPU:
0x3d87b186bb800000 nop ; nop ; ldunifrf.rf30 (push[36])
0x3d87f186bb800000 nop ; nop ; ldunifrf.rf31 (push[37])
0x3d803186bb800000 nop ; nop ; ldunifrf.rf0 (push[38])
0x3d863186bb800000 nop ; nop ; ldunifrf.rf24 (push[39])
0x3d807186bb800000 nop ; nop ; ldunifrf.rf1 (push[40])
0x3de0219bbc807000 ldvpmv_in rf27, 0 ; nop
0x558090c6bbf807db nop ; fmul rf3, rf31, rf27; ldunifrf.rf2 (push[41])
0x3de0219cbc807001 ldvpmv_in rf28, 1 ; nop
0x55817086bbf8009c nop ; fmul r2, rf2, rf28; ldunifrf.rf5 (push[42])
0x5581b106bbf8079b nop ; fmul r4, rf30, rf27; ldunifrf.rf6 (push[43])
0x3de0218ebc807002 ldvpmv_in rf14, 2 ; nop
0x544030c6bbf8005c nop ; fmul r3, rf1, rf28; ldunif (push[44])
0x3d902183058320c0 fadd rf3, r2, rf3 ; nop ; ldunifrf.r0 (push[45])
0x5590608405d63380 fadd rf4, r3, r4 ; fmul r2, r5, rf14; ldunifrf.r1 (push[46])
0x3d86619a05832100 fadd rf26, r2, rf4 ; nop ; ldunifrf.rf25 (push[47])
0x5581b086bbf8019c nop ; fmul r2, rf6, rf28; ldunifrf.rf6 (push[48])
0x5581d2c6bbf8001b nop ; fmul rf11, rf0, rf27; ldunifrf.rf7 (push[49])
0x55823106bbf8015c nop ; fmul r4, rf5, rf28; ldunifrf.rf8 (push[50])
0x558270c6bbc00380 nop ; fmul r3, r0, rf14; ldunifrf.rf9 (push[51])
0x55861106bbf8061b nop ; fmul rf4, rf24, rf27; ldunifrf.rf24 (push[20])
0x3c002197058342c0 fadd rf23, r4, rf11 ; nop
0x3c002196058330c0 fadd rf22, r3, rf3 ; nop
0x3d86a18b0583e686 fadd rf11, rf26, rf6; nop ; ldunifrf.rf26 (push[21])
0x55873106bbc40380 nop ; fmul r4, r1, rf14; ldunifrf.rf28 (push[22])
0x3d87718305832100 fadd r3, r2, rf4 ; nop ; ldunifrf.rf29 (push[23])
0x3c003182058345c0 fadd r2, r4, rf23 ; nop
0x54003106bbf8064e nop ; fmul r4, rf25, rf14
0x3d81e1840583e587 fadd rf4, rf22, rf7 ; nop ; ldunifrf.rf7 (push[24])
0x5400130305fa360b fadd r3, r3, r4 ; fmul rf12, rf24, rf11
0x3d82619b05833240 fadd rf27, r3, rf9 ; nop ; ldunifrf.rf9 (push[25])
0x3d85a19905832200 fadd rf25, r2, rf8 ; nop ; ldunifrf.rf22 (push[26])
0x5585d506bbf801c4 nop ; fmul rf20, rf7, rf4; ldunifrf.rf23 (push[27])
0x3d90a1880583e314 fadd rf8, rf12, rf20; nop ; ldunifrf.r2 (push[28])
0x55913086bbc80640 nop ; fmul r2, r2, rf25; ldunifrf.r4 (push[29])
0x5590d186bbf8068b nop ; fmul rf6, rf26, rf11; ldunifrf.r3 (push[30])
0x5580d286bbf8070b nop ; fmul rf10, rf28, rf11; ldunifrf.rf3 (push[31])
0x3d83618c05832200 fadd rf12, r2, rf8 ; nop ; ldunifrf.rf13 (push[32])
0x55841546bbf80244 nop ; fmul rf21, rf9, rf4; ldunifrf.rf16 (push[33])
0x558611c6bbf805c4 nop ; fmul rf7, rf23, rf4; ldunifrf.rf24 (push[34])
0x558712c6bbf8074b nop ; fmul rf11, rf29, rf11; ldunifrf.rf28 (push[35])
0x54003086bbcc0640 nop ; fmul r2, r3, rf25
0x3c0021890583e195 fadd rf9, rf6, rf21 ; nop
0x3c00218b0583e2c7 fadd rf11, rf11, rf7; nop
0x540030c6bbf800d9 nop ; fmul r3, rf3, rf25
0x54003106bbd00640 nop ; fmul r4, r4, rf25
0x54001186bbf80584 nop ; fmul rf6, rf22, rf4
0x3c00218f058332c0 fadd rf15, r3, rf11 ; nop
0x3c00318405834240 fadd r4, r4, rf9 ; nop
0x3c00218a0583e286 fadd rf10, rf10, rf6; nop
0x540030c6bbf8041b nop ; fmul r3, rf16, rf27
0x3c00218e05832280 fadd rf14, r2, rf10 ; nop
0x5590e09a05fa335b fadd rf26, r3, r4 ; fmul r2, rf13, rf27; ldunifrf.r3 (push[4])
0x3d82219505832300 fadd rf21, r2, rf12 ; nop ; ldunifrf.rf8 (push[5])
0x55827106bbf8061b nop ; fmul r4, rf24, rf27; ldunifrf.rf9 (push[6])
0x5582b086bbf8071b nop ; fmul r2, rf28, rf27; ldunifrf.rf10 (push[7])
0x3d91219c05834380 fadd rf28, r4, rf14 ; nop ; ldunifrf.r4 (push[8])
0x3d90a19d058323c0 fadd rf29, r2, rf15 ; nop ; ldunifrf.r2 (push[9])
0x55e020c4bccc7543 ldvpmv_in rf4, 3 ; fmul r3, r3, rf21
0x5582d346bbf80784 nop ; fmul rf13, rf30, rf4; ldunifrf.rf11 (push[10])
0x55e02118bcd07684 ldvpmv_in rf24, 4 ; fmul r4, r4, rf26
0x55831586bbf80058 nop ; fmul rf22, rf1, rf24; ldunifrf.rf12 (push[11])
0x3d85218d0583e356 fadd rf13, rf13, rf22; nop ; ldunifrf.rf20 (push[12])
0x558593c6bbf807c4 nop ; fmul rf15, rf31, rf4; ldunifrf.rf22 (push[13])
0x5585d386bbf80098 nop ; fmul rf14, rf2, rf24; ldunifrf.rf23 (push[14])
0x5586040505fa3158 fadd rf5, r3, r4 ; fmul rf16, rf5, rf24; ldunifrf.rf24 (push[15])
0x540011c6bbf80215 nop ; fmul rf7, rf8, rf21
0x54003086bbc80680 nop ; fmul r2, r2, rf26
0x54001446bbf80004 nop ; fmul rf17, rf0, rf4
0x3c00218f0583e3ce fadd rf15, rf15, rf14; nop
0x54001646bbf80295 nop ; fmul rf25, rf10, rf21
0x54003106bbf802da nop ; fmul r4, rf11, rf26
0x3c002186058321c0 fadd rf6, r2, rf7 ; nop
0x3d8461900583e450 fadd rf16, rf17, rf16; nop ; ldunifrf.rf17 (push[52])
0x55849386bbf80255 nop ; fmul rf14, rf9, rf21; ldunifrf.rf18 (push[53])
0x5584f0c6bbf8031a nop ; fmul r3, rf12, rf26; ldunifrf.rf19 (push[54])
0x3de02195bc807005 ldvpmv_in rf21, 5 ; nop
0x3c00318205834380 fadd r2, r4, rf14 ; nop
0x3c00318305833640 fadd r3, r3, rf25 ; nop
0x54003106bbd40540 nop ; fmul r4, r5, rf21
0x54001646bbf8051c nop ; fmul rf25, rf20, rf28
0x3d91218a05834340 fadd rf10, r4, rf13 ; nop ; ldunifrf.r4 (push[156])
0x5583b006bbc00540 nop ; fmul r0, r0, rf21; ldunifrf.rf14 (push[158])
0x54403046bbc40540 nop ; fmul r1, r1, rf21; ldunif (push[16])
0x54001506bbf805dc nop ; fmul rf20, rf23, rf28
0x3d902189058303c0 fadd rf9, r0, rf15 ; nop ; ldunifrf.r0 (push[17])
0x54001546bbf8061c nop ; fmul rf21, rf24, rf28
0x3c00218005832500 fadd rf0, r2, rf20 ; nop
0x55e0208fbc987446 ldvpmv_in rf15, 6 ; fmul r2, rf17, r4
0x3c00218105833540 fadd rf1, r3, rf21 ; nop
0x54001686bbf8059c nop ; fmul rf26, rf22, rf28
0x3d90618805831400 fadd rf8, r1, rf16 ; nop ; ldunifrf.r1 (push[18])
0x3d81f183058323c0 fadd r3, r2, rf15 ; nop ; ldunifrf.rf7 (push[19])
0x55e02014bcc07747 ldvpmv_in rf20, 7 ; fmul r0, r0, rf29
0x3d85a19f0583e19a fadd rf31, rf6, rf26; nop ; ldunifrf.rf22 (push[56])
0x55e02095bc987488 ldvpmv_in rf21, 8 ; fmul r2, rf18, r4
0x3c002191058307c0 fadd rf17, r0, rf31 ; nop
0x55e0210bbc9874c9 ldvpmv_in rf11, 9 ; fmul r4, rf19, r4
0x55e0200fbcc4774a ldvpmv_in rf15, 10 ; fmul r0, r1, rf29
0x3c00218c05834540 fadd rf12, r4, rf21 ; nop
0x3c00219e0583e159 fadd rf30, rf5, rf25; nop
0x3de07186c583e580 fcmp.pushz -, rf22, 0; nop
0x54003046bbf801dd nop ; fmul r1, rf7, rf29
0x55e02112bcd4774b ldvpmv_in rf18, 11 ; fmul r4, r5, rf29
0x3c00318205832500 fadd r2, r2, rf20 ; nop
0x3c00219305830000 fadd rf19, r0, rf0 ; nop
0x3c00218d05831040 fadd rf13, r1, rf1 ; nop
0x3c00219005834780 fadd rf16, r4, rf30 ; nop
0x0200065c0000d000 bu.alla 1624, r:unif (0x00000140 / 0.000000)
0x3c003186bb800000 nop ; nop
0x3c003186bb800000 nop ; nop
0x3c003186bb800000 nop ; nop
0x3de07186c583e5a8 fcmp.pushz -, rf22, 0x3f800000; nop
0x0200007f0000d000 bu.allna 120, r:unif (0x00000020 / 0.000000)
0x3c003186bb800000 nop ; nop
0x3c003186bb800000 nop ; nop
0x3c003186bb800000 nop ; nop
0x3d907186bb800000 nop ; nop ; ldunifrf.r1 (push[88])
0x55901646bbc40280 nop ; fmul rf25, r1, rf10; ldunifrf.r0 (push[89])
0x54403006bbc00240 nop ; fmul r0, r0, rf9 ; ldunif (push[90])
0x54403106bbd40200 nop ; fmul r4, r5, rf8 ; ldunif (0x80000000 / -0.000000)
0x3c403181b782c000 xor r1, r4, r5 ; nop ; ldunif (push[120])
0x3d90318445801000 fsub r4, r1, r0 ; nop ; ldunifrf.r0 (push[121])
0x3d86b18145834640 fsub r1, r4, rf25 ; nop ; ldunifrf.rf26 (push[122])
0x3de031818580f000 fmax r1, 0, r1 ; nop
0x54003106bba40000 nop ; fmul r4, r1, r5
0x54003006bb040000 nop ; fmul r0, r1, r0
0x54003046bbc40680 nop ; fmul r1, r1, rf26
0x020000180000d000 bu 24, r:unif (0x00000000 / 0.000000)
0x3c003186bb800000 nop ; nop
0x3c003186bb800000 nop ; nop
0x3c003186bb800000 nop ; nop
0x3de03046bbfc0000 nop ; mov r1, 0
0x3de03006bbfc0000 nop ; mov r0, 0
0x3de03106bbfc0000 nop ; mov r4, 0
0x3c403186bb800000 nop ; nop ; ldunif (push[60])
0x3de07186c583d000 fcmp.pushz -, r5, 0 ; nop
0x020005540000d000 bu.alla 1360, r:unif (0x00000110 / 0.000000)
0x3c003186bb800000 nop ; nop
0x3c003186bb800000 nop ; nop
0x3c003186bb800000 nop ; nop
0x3de07186c583d028 fcmp.pushz -, r5, 0x3f800000; nop
0x020000770000d000 bu.allna 112, r:unif (0x0000001c / 0.000000)
0x3c003186bb800000 nop ; nop
0x3c003186bb800000 nop ; nop
0x3c003186bb800000 nop ; nop
0x3d853186bb800000 nop ; nop ; ldunifrf.rf20 (push[92])
0x55815746bbf8050a nop ; fmul rf29, rf20, rf10; ldunifrf.rf5 (push[93])
0x54401706bbf80149 nop ; fmul rf28, rf5, rf9; ldunif (push[94])
0x544016c6bbd40200 nop ; fmul rf27, r5, rf8; ldunif (0x80000000 / -0.000000)
0x3c40219bb782e6c0 xor rf27, rf27, r5 ; nop ; ldunif (push[124])
0x3d87e19c4583e6dc fsub rf28, rf27, rf28; nop ; ldunifrf.rf31 (push[125])
0x3d80219d4583e71d fsub rf29, rf28, rf29; nop ; ldunifrf.rf0 (push[126])
0x3de0219785837740 fmax rf23, 0, rf29 ; nop
0x54001786bbb805c0 nop ; fmul rf30, rf23, r5
0x54001586bbf805df nop ; fmul rf22, rf23, rf31
0x540015c6bbf805c0 nop ; fmul rf23, rf23, rf0
0x3c00318405834780 fadd r4, r4, rf30 ; nop
0x3c00318005830580 fadd r0, r0, rf22 ; nop
0x3c003181058315c0 fadd r1, r1, rf23 ; nop
0x3c403186bb800000 nop ; nop ; ldunif (push[64])
0x3de07186c583d000 fcmp.pushz -, r5, 0 ; nop
0x0200048c0000d000 bu.alla 1160, r:unif (0x000000e8 / 0.000000)
0x3c003186bb800000 nop ; nop
0x3c003186bb800000 nop ; nop
0x3c003186bb800000 nop ; nop
0x3de07186c583d028 fcmp.pushz -, r5, 0x3f800000; nop
0x020000770000d000 bu.allna 112, r:unif (0x0000001c / 0.000000)
0x3c003186bb800000 nop ; nop
0x3c003186bb800000 nop ; nop
0x3c003186bb800000 nop ; nop
0x3d857186bb800000 nop ; nop ; ldunifrf.rf21 (push[96])
0x558190c6bbf8054a nop ; fmul rf3, rf21, rf10; ldunifrf.rf6 (push[97])
0x54401086bbf80189 nop ; fmul rf2, rf6, rf9; ldunif (push[98])
0x54401046bbd40200 nop ; fmul rf1, r5, rf8; ldunif (0x80000000 / -0.000000)
0x3c40219fb782e040 xor rf31, rf1, r5 ; nop ; ldunif (push[128])
0x3d8121804583e7c2 fsub rf0, rf31, rf2 ; nop ; ldunifrf.rf4 (push[129])
0x3d8161814583e003 fsub rf1, rf0, rf3 ; nop ; ldunifrf.rf5 (push[130])
0x3de0219985837040 fmax rf25, 0, rf1 ; nop
0x54001086bbb80640 nop ; fmul rf2, rf25, r5
0x54001606bbf80644 nop ; fmul rf24, rf25, rf4
0x54001646bbf80645 nop ; fmul rf25, rf25, rf5
0x3c00318405834080 fadd r4, r4, rf2 ; nop
0x3c00318005830600 fadd r0, r0, rf24 ; nop
0x3c00318105831640 fadd r1, r1, rf25 ; nop
0x3c403186bb800000 nop ; nop ; ldunif (push[68])
0x3de07186c583d000 fcmp.pushz -, r5, 0 ; nop
0x020003c40000d000 bu.alla 960, r:unif (0x000000c0 / 0.000000)
0x3c003186bb800000 nop ; nop
0x3c003186bb800000 nop ; nop
0x3c003186bb800000 nop ; nop
0x3de07186c583d028 fcmp.pushz -, r5, 0x3f800000; nop
0x020000770000d000 bu.allna 112, r:unif (0x0000001c / 0.000000)
0x3c003186bb800000 nop ; nop
0x3c003186bb800000 nop ; nop
0x3c003186bb800000 nop ; nop
0x3d85b186bb800000 nop ; nop ; ldunifrf.rf22 (push[100])
0x5581d506bbf8058a nop ; fmul rf20, rf22, rf10; ldunifrf.rf7 (push[101])
0x544011c6bbf801c9 nop ; fmul rf7, rf7, rf9; ldunif (push[102])
0x54401186bbd40200 nop ; fmul rf6, r5, rf8; ldunif (0x80000000 / -0.000000)
0x3c402183b782e180 xor rf3, rf6, r5 ; nop ; ldunif (push[132])
0x3d8561844583e0c7 fsub rf4, rf3, rf7 ; nop ; ldunifrf.rf21 (push[133])
0x3d85a1854583e114 fsub rf5, rf4, rf20 ; nop ; ldunifrf.rf22 (push[134])
0x3de0219b85837140 fmax rf27, 0, rf5 ; nop
0x54001186bbb806c0 nop ; fmul rf6, rf27, r5
0x54001686bbf806d5 nop ; fmul rf26, rf27, rf21
0x540016c6bbf806d6 nop ; fmul rf27, rf27, rf22
0x3c00318405834180 fadd r4, r4, rf6 ; nop
0x3c00318005830680 fadd r0, r0, rf26 ; nop
0x3c003181058316c0 fadd r1, r1, rf27 ; nop
0x3c403186bb800000 nop ; nop ; ldunif (push[72])
0x3de07186c583d000 fcmp.pushz -, r5, 0 ; nop
0x020002fc0000d000 bu.alla 760, r:unif (0x00000098 / 0.000000)
0x3c003186bb800000 nop ; nop
0x3c003186bb800000 nop ; nop
0x3c003186bb800000 nop ; nop
0x3de07186c583d028 fcmp.pushz -, r5, 0x3f800000; nop
0x020000770000d000 bu.allna 112, r:unif (0x0000001c / 0.000000)
0x3c003186bb800000 nop ; nop
0x3c003186bb800000 nop ; nop
0x3c003186bb800000 nop ; nop
0x3d867186bb800000 nop ; nop ; ldunifrf.rf25 (push[104])
0x55851646bbf8064a nop ; fmul rf25, rf25, rf10; ldunifrf.rf20 (push[105])
0x54401606bbf80509 nop ; fmul rf24, rf20, rf9; ldunif (push[106])
0x544015c6bbd40200 nop ; fmul rf23, r5, rf8; ldunif (0x80000000 / -0.000000)
0x3c402187b782e5c0 xor rf7, rf23, r5 ; nop ; ldunif (push[136])
0x3d86a1944583e1d8 fsub rf20, rf7, rf24; nop ; ldunifrf.rf26 (push[137])
0x3d86e1954583e519 fsub rf21, rf20, rf25; nop ; ldunifrf.rf27 (push[138])
0x3de0219d85837540 fmax rf29, 0, rf21 ; nop
0x54001586bbb80740 nop ; fmul rf22, rf29, r5
0x54001706bbf8075a nop ; fmul rf28, rf29, rf26
0x54001746bbf8075b nop ; fmul rf29, rf29, rf27
0x3c00318405834580 fadd r4, r4, rf22 ; nop
0x3c00318005830700 fadd r0, r0, rf28 ; nop
0x3c00318105831740 fadd r1, r1, rf29 ; nop
0x3c403186bb800000 nop ; nop ; ldunif (push[76])
0x3de07186c583d000 fcmp.pushz -, r5, 0 ; nop
0x020002340000d000 bu.alla 560, r:unif (0x00000070 / 0.000000)
0x3c003186bb800000 nop ; nop
0x3c003186bb800000 nop ; nop
0x3c003186bb800000 nop ; nop
0x3de07186c583d028 fcmp.pushz -, r5, 0x3f800000; nop
0x020000770000d000 bu.allna 112, r:unif (0x0000001c / 0.000000)
0x3c003186bb800000 nop ; nop
0x3c003186bb800000 nop ; nop
0x3c003186bb800000 nop ; nop
0x3d86b186bb800000 nop ; nop ; ldunifrf.rf26 (push[108])
0x55855786bbf8068a nop ; fmul rf30, rf26, rf10; ldunifrf.rf21 (push[109])
0x54401746bbf80549 nop ; fmul rf29, rf21, rf9; ldunif (push[110])
0x54401706bbd40200 nop ; fmul rf28, r5, rf8; ldunif (0x80000000 / -0.000000)
0x3c402197b782e700 xor rf23, rf28, r5 ; nop ; ldunif (push[140])
0x3d87e1984583e5dd fsub rf24, rf23, rf29; nop ; ldunifrf.rf31 (push[141])
0x3d8021994583e61e fsub rf25, rf24, rf30; nop ; ldunifrf.rf0 (push[142])
0x3de0218185837640 fmax rf1, 0, rf25 ; nop
0x54001786bbf8005f nop ; fmul rf30, rf1, rf31
0x54001686bbb80040 nop ; fmul rf26, rf1, r5
0x540017c6bbf80040 nop ; fmul rf31, rf1, rf0
0x3c00318005830780 fadd r0, r0, rf30 ; nop
0x3c00318405834680 fadd r4, r4, rf26 ; nop
0x3c003181058317c0 fadd r1, r1, rf31 ; nop
0x3c403186bb800000 nop ; nop ; ldunif (push[80])
0x3de07186c583d000 fcmp.pushz -, r5, 0 ; nop
0x0200016c0000d000 bu.alla 360, r:unif (0x00000048 / 0.000000)
0x3c003186bb800000 nop ; nop
0x3c003186bb800000 nop ; nop
0x3c003186bb800000 nop ; nop
0x3de07186c583d028 fcmp.pushz -, r5, 0x3f800000; nop
0x020000770000d000 bu.allna 112, r:unif (0x0000001c / 0.000000)
0x3c003186bb800000 nop ; nop
0x3c003186bb800000 nop ; nop
0x3c003186bb800000 nop ; nop
0x3d86f186bb800000 nop ; nop ; ldunifrf.rf27 (push[112])
0x558590c6bbf806ca nop ; fmul rf3, rf27, rf10; ldunifrf.rf22 (push[113])
0x54401086bbf80589 nop ; fmul rf2, rf22, rf9; ldunif (push[114])
0x54401046bbd40200 nop ; fmul rf1, r5, rf8; ldunif (0x80000000 / -0.000000)
0x3c40219bb782e040 xor rf27, rf1, r5 ; nop ; ldunif (push[144])
0x3d81219c4583e6c2 fsub rf28, rf27, rf2; nop ; ldunifrf.rf4 (push[145])
0x3d81619d4583e703 fsub rf29, rf28, rf3; nop ; ldunifrf.rf5 (push[146])
0x3de0218285837740 fmax rf2, 0, rf29 ; nop
0x54001786bbb80080 nop ; fmul rf30, rf2, r5
0x54001006bbf80084 nop ; fmul rf0, rf2, rf4
0x54001046bbf80085 nop ; fmul rf1, rf2, rf5
0x3c00318405834780 fadd r4, r4, rf30 ; nop
0x3c00318005830000 fadd r0, r0, rf0 ; nop
0x3c00318105831040 fadd r1, r1, rf1 ; nop
0x3c403186bb800000 nop ; nop ; ldunif (push[84])
0x3de07186c583d000 fcmp.pushz -, r5, 0 ; nop
0x020000a40000d000 bu.alla 160, r:unif (0x00000020 / 0.000000)
0x3c003186bb800000 nop ; nop
0x3c003186bb800000 nop ; nop
0x3c003186bb800000 nop ; nop
0x3de07186c583d028 fcmp.pushz -, r5, 0x3f800000; nop
0x0200007f0000d000 bu.allna 120, r:unif (0x0000001c / 0.000000)
0x3c003186bb800000 nop ; nop
0x3c003186bb800000 nop ; nop
0x3c003186bb800000 nop ; nop
0x3d873186bb800000 nop ; nop ; ldunifrf.rf28 (push[116])
0x3d85f186bb800000 nop ; nop ; ldunifrf.rf23 (push[117])
0x544011c6bbf805c9 nop ; fmul rf7, rf23, rf9; ldunif (push[118])
0x54401186bbd40200 nop ; fmul rf6, r5, rf8; ldunif (0x80000000 / -0.000000)
0x3c40219fb782e180 xor rf31, rf6, r5 ; nop ; ldunif (push[148])
0x55875206bbf8070a nop ; fmul rf8, rf28, rf10; ldunifrf.rf29 (push[149])
0x3d87a1804583e7c7 fsub rf0, rf31, rf7 ; nop ; ldunifrf.rf30 (push[150])
0x3c0021894583e008 fsub rf9, rf0, rf8 ; nop
0x3de0218a85837240 fmax rf10, 0, rf9 ; nop
0x54001046bbb80280 nop ; fmul rf1, rf10, r5
0x54001086bbf8029d nop ; fmul rf2, rf10, rf29
0x540010c6bbf8029e nop ; fmul rf3, rf10, rf30
0x3c00318405834040 fadd r4, r4, rf1 ; nop
0x3c00318005830080 fadd r0, r0, rf2 ; nop
0x3c003181058310c0 fadd r1, r1, rf3 ; nop
0x020000180000d000 bu 24, r:unif (0x00000000 / 0.000000)
0x3c003186bb800000 nop ; nop
0x3c003186bb800000 nop ; nop
0x3c003186bb800000 nop ; nop
0x3de03046bbfc0000 nop ; mov r1, 0
0x3de03006bbfc0000 nop ; mov r0, 0
0x3de03106bbfc0000 nop ; mov r4, 0
0x54403106bbd00380 nop ; fmul r4, r4, rf14; ldunif (push[152])
0x5585300305c23380 fadd r3, r3, r4 ; fmul r0, r0, rf14; ldunifrf.rf20 (push[153])
0x5580b04205c50380 fadd r2, r0, r2 ; fmul r1, r1, rf14; ldunifrf.rf2 (push[154])
0x3de031838581f000 fmax r3, 0, r3 ; nop
0x3d85f18405831300 fadd r4, r1, rf12 ; nop ; ldunifrf.rf23 (push[155])
0x3de02180f8837404 stvpmv 4, rf16 ; nop
0x3de0318085817000 fmax r0, 0, r2 ; nop
0x3de031818583b028 fmin r1, r3, 0x3f800000; nop
0x55e02080f8a77445 stvpmv 5, rf17 ; fmul r2, r1, r5
0x3de0318385827000 fmax r3, 0, r4 ; nop
0x3de02180f88374c6 stvpmv 6, rf19 ; nop
0x3de0318485838028 fmin r4, r0, 0x3f800000; nop
0x55e030c185d3b528 fmin r1, r3, 0x3f800000; fmul r3, r4, rf20
0x3de02180f8837347 stvpmv 7, rf13 ; nop
0x3d91219aba82e340 recip rf26, rf13 ; nop ; ldunifrf.r4 (push[1])
0x55e02040f8c57088 stvpmv 8, r2 ; fmul r1, r1, rf2
0x3d90b18445826340 fsub r4, rf13, r4 ; nop ; ldunifrf.r2 (push[2])
0x55e03100855372c0 fmax r0, 0, rf11 ; fmul r4, r4, r2
0x3d877186bb800000 nop ; nop ; ldunifrf.rf29 (push[3])
0x3de02180f881f009 stvpmv 9, r3 ; nop
0x3de0318085838028 fmin r0, r0, 0x3f800000; nop
0x54403006bbc005c0 nop ; fmul r0, r0, rf23; ldunif (vp_x_scale)
0x55e020c0f8b8f40a stvpmv 10, r1 ; fmul r3, rf16, r5
0x55e02080f8cc768b stvpmv 11, r0 ; fmul r2, r3, rf26
0x3c40318485826740 fmax r4, rf29, r4 ; nop ; ldunif (vp_y_scale)
0x3de02180f88373cc stvpmv 12, rf15 ; nop
0x540030c0f6b82440 ffloor r0, r2 ; fmul r3, rf17, r5
0x3de02180f883748d stvpmv 13, rf18 ; nop
0x55e0304285cfc6a8 fmin r2, r4, 0x3f800000; fmul r1, r3, rf26
0x3c403184f5838000 ftoiz r4, r0 ; nop ; ldunif (vp_z_scale)
0x55e020c0f8b974ce stvpmv 14, r2 ; fmul r3, rf19, r5
0x54403001f6cc1680 ffloor r1, r1 ; fmul r0, r3, rf26; ldunif (vp_z_offset)
0x3de02180f8827000 stvpmv 0, r4 ; nop
0x3c003181f5839000 ftoiz r1, r1 ; nop
0x3c00318205828000 fadd r2, r0, r5 ; nop
0x3de02180f880f001 stvpmv 1, r1 ; nop
0x3de02180f8817002 stvpmv 2, r2 ; nop
0x3de02180f8837683 stvpmv 3, rf26 ; nop
0x3c003186bb816000 vpmwt - ; nop
0x3c203186bb800000 nop ; nop ; thrsw
0x3c003186bb800000 nop ; nop
0x3c003186bb800000 nop ; nop
MESA_SHADER_VERTEX_BIN prog 4/2 QPU:
0x3d913186bb800000 nop ; nop ; ldunifrf.r4 (push[36])
0x3d90f186bb800000 nop ; nop ; ldunifrf.r3 (push[37])
0x3d85f186bb800000 nop ; nop ; ldunifrf.rf23 (push[38])
0x3d863186bb800000 nop ; nop ; ldunifrf.rf24 (push[39])
0x3c403186bb800000 nop ; nop ; ldunif (push[40])
0x3d90b186bb800000 nop ; nop ; ldunifrf.r2 (push[41])
0x3d837186bb800000 nop ; nop ; ldunifrf.rf13 (push[42])
0x3d80b186bb800000 nop ; nop ; ldunifrf.rf2 (push[43])
0x3de02196bc807000 ldvpmv_in rf22, 0 ; nop
0x5581f006bbd00580 nop ; fmul r0, r4, rf22; ldunifrf.rf7 (push[44])
0x55e020dabccc7581 ldvpmv_in rf26, 1 ; fmul r3, r3, rf22
0x5583f106bbd40680 nop ; fmul r4, r5, rf26; ldunifrf.rf15 (push[45])
0x5585609105ca0680 fadd rf17, r0, r4 ; fmul r2, r2, rf26; ldunifrf.rf21 (push[46])
0x5590710305f9a35a fadd r3, r2, r3 ; fmul r4, rf13, rf26; ldunifrf.r1 (push[47])
0x3de0218ebc807002 ldvpmv_in rf14, 2 ; nop
0x55833006bbf803ce nop ; fmul r0, rf15, rf14; ldunifrf.rf12 (push[48])
0x558342d305f9854e fadd rf19, r0, r3 ; fmul rf11, rf21, rf14; ldunifrf.rf13 (push[49])
0x5583d286bbf8009a nop ; fmul rf10, rf2, rf26; ldunifrf.rf15 (push[50])
0x55857086bbf801ce nop ; fmul r2, rf7, rf14; ldunifrf.rf21 (push[51])
0x3d86a19205832440 fadd rf18, r2, rf17 ; nop ; ldunifrf.rf26 (push[20])
0x5586d406bbf805d6 nop ; fmul rf16, rf23, rf22; ldunifrf.rf27 (push[21])
0x3d90b18405834400 fadd r4, r4, rf16 ; nop ; ldunifrf.r2 (push[22])
0x5590d646bbf80616 nop ; fmul rf25, rf24, rf22; ldunifrf.r3 (push[23])
0x558417c6bbc40380 nop ; fmul rf31, r1, rf14; ldunifrf.rf16 (push[24])
0x3d853184058342c0 fadd r4, r4, rf11 ; nop ; ldunifrf.rf20 (push[25])
0x3c4031810583e64a fadd r1, rf25, rf10 ; nop ; ldunif (push[26])
0x3d903184058343c0 fadd r4, r4, rf15 ; nop ; ldunifrf.r0 (push[27])
0x3d80b181058317c0 fadd r1, r1, rf31 ; nop ; ldunifrf.rf2 (push[28])
0x3d80e1810583e4cd fadd rf1, rf19, rf13; nop ; ldunifrf.rf3 (push[29])
0x3d81219c0583e48c fadd rf28, rf18, rf12; nop ; ldunifrf.rf4 (push[30])
0x3d82618f05831540 fadd rf15, r1, rf21 ; nop ; ldunifrf.rf9 (push[31])
0x558214c6bbf80501 nop ; fmul rf19, rf20, rf1; ldunifrf.rf8 (push[32])
0x55851446bbf8069c nop ; fmul rf17, rf26, rf28; ldunifrf.rf20 (push[33])
0x54003046bbf80401 nop ; fmul r1, rf16, rf1
0x3d90619d05831440 fadd rf29, r1, rf17 ; nop ; ldunifrf.r1 (push[34])
0x5582d606bbc80700 nop ; fmul rf24, r2, rf28; ldunifrf.rf11 (push[35])
0x5583b086bbd40040 nop ; fmul r2, r5, rf1 ; ldunifrf.rf14 (push[4])
0x55819006bbcc0700 nop ; fmul rf0, r3, rf28; ldunifrf.rf6 (push[5])
0x55831546bbc00040 nop ; fmul rf21, r0, rf1; ldunifrf.rf12 (push[6])
0x3d83619605832600 fadd rf22, r2, rf24 ; nop ; ldunifrf.rf13 (push[7])
0x54401786bb980100 nop ; fmul rf30, rf4, r4; ldunif (push[8])
0x559095c6bbf806dc nop ; fmul rf23, rf27, rf28; ldunifrf.r2 (push[9])
0x540030c6bb980080 nop ; fmul r3, rf2, r4
0x54003006bb9800c0 nop ; fmul r0, rf3, r4
0x54001606bb980240 nop ; fmul rf24, rf9, r4
0x3c00218a0583e5d3 fadd rf10, rf23, rf19; nop
0x558210c6bbf8020f nop ; fmul rf3, rf8, rf15; ldunifrf.rf8 (push[10])
0x3c0031840583e015 fadd r4, rf0, rf21 ; nop
0x540017c6bbf8050f nop ; fmul rf31, rf20, rf15
0x3c00318305833740 fadd r3, r3, rf29 ; nop
0x3d82b18005830280 fadd r0, r0, rf10 ; nop ; ldunifrf.rf10 (push[11])
0x54001006bbc403c0 nop ; fmul rf0, r1, rf15
0x3d85a1820583e59e fadd rf2, rf22, rf30; nop ; ldunifrf.rf22 (push[12])
0x3d902185058307c0 fadd rf5, r0, rf31 ; nop ; ldunifrf.r0 (push[13])
0x3d90f181058330c0 fadd r1, r3, rf3 ; nop ; ldunifrf.r3 (push[14])
0x5581d046bbf802cf nop ; fmul rf1, rf11, rf15; ldunifrf.rf7 (push[15])
0x5586f086bbc80140 nop ; fmul r2, r2, rf5 ; ldunifrf.rf27 (push[16])
0x55825406bb380180 nop ; fmul rf16, rf6, r1; ldunifrf.rf9 (push[17])
0x54401546bbd40140 nop ; fmul rf21, r5, rf5; ldunif (push[18])
0x3d8121830583e080 fadd rf3, rf2, rf0 ; nop ; ldunifrf.rf4 (push[19])
0x54001646bb380380 nop ; fmul rf25, rf14, r1
0x3c00218b05832400 fadd rf11, r2, rf16 ; nop
0x3c0021920583e655 fadd rf18, rf25, rf21; nop
0x54003086bbf80583 nop ; fmul r2, rf22, rf3
0x3c00318405834600 fadd r4, r4, rf24 ; nop
0x54001686bb380300 nop ; fmul rf26, rf12, r1
0x3c00218605832480 fadd rf6, r2, rf18 ; nop
0x3c00318405834040 fadd r4, r4, rf1 ; nop
0x54001306bb380340 nop ; fmul rf12, rf13, r1
0x54003086bbc000c0 nop ; fmul r2, r0, rf3
0x54001706bbcc00c0 nop ; fmul rf28, r3, rf3
0x54003046bbf80205 nop ; fmul r1, rf8, rf5
0x54003006bb9806c0 nop ; fmul r0, rf27, r4
0x54001746bb980240 nop ; fmul rf29, rf9, r4
0x54000594059722c0 fadd rf20, r2, rf11 ; fmul rf22, r5, r4
0x3c40318305831680 fadd r3, r1, rf26 ; nop ; ldunif (vp_x_scale)
0x540016c6bbf80285 nop ; fmul rf27, rf10, rf5
0x3c00219705830180 fadd rf23, r0, rf6 ; nop
0x3c0021800583e51d fadd rf0, rf20, rf29; nop
0x3c00318205833700 fadd r2, r3, rf28 ; nop
0x3c0031810583e31b fadd r1, rf12, rf27 ; nop
0x54003006bbf801c3 nop ; fmul r0, rf7, rf3
0x3de02180f88375c6 stvpmv 6, rf23 ; nop
0x540030c005988100 fadd r0, r0, r1 ; fmul r3, rf4, r4
0x3c00219c05832580 fadd rf28, r2, rf22 ; nop
0x3de02180f8837007 stvpmv 7, rf0 ; nop
0x5400204105b985c0 fadd rf1, r0, r3 ; fmul r1, rf23, r5
0x3de02180f8837708 stvpmv 8, rf28 ; nop
0x3c40219eba82e040 recip rf30, rf1 ; nop ; ldunif (vp_y_scale)
0x3de02180f8837049 stvpmv 9, rf1 ; nop
0x3de02180f88375c0 stvpmv 0, rf23 ; nop
0x54003086bbc40780 nop ; fmul r2, r1, rf30
0x55e020c0f8bb7001 stvpmv 1, rf0 ; fmul r3, rf0, r5
0x54003004f6cc2780 ffloor r4, r2 ; fmul r0, r3, rf30
0x3de02180f8837702 stvpmv 2, rf28 ; nop
0x3c003184f583c000 ftoiz r4, r4 ; nop
0x3c003182f6800000 ffloor r2, r0 ; nop
0x3de02180f8837043 stvpmv 3, rf1 ; nop
0x3c003183f583a000 ftoiz r3, r2 ; nop
0x3de02180f8827004 stvpmv 4, r4 ; nop
0x3de02180f881f005 stvpmv 5, r3 ; nop
0x3c003186bb816000 vpmwt - ; nop
0x3c203186bb800000 nop ; nop ; thrsw
0x3c003186bb800000 nop ; nop
0x3c003186bb800000 nop ; nop
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment