Skip to content

Instantly share code, notes, and snippets.

@okuoku

okuoku/vert.asm Secret

Created January 13, 2020 11:17
Compiled UTS2 (partial)
28a.vert
!!ARBvp1.0
# cgc version 3.1.0013, build date Apr 18 2012
# command line args: -ogles -profile arbvp1
# source file: 28a.vert
#vendor NVIDIA Corporation
#version 3.1.0.13
#profile arbvp1
#program main
#semantic _WorldSpaceCameraPos
#semantic hlslcc_mtx4x4unity_ObjectToWorld
#semantic hlslcc_mtx4x4unity_WorldToObject
#semantic hlslcc_mtx4x4unity_MatrixVP
#semantic _Outline_Width
#semantic _Farthest_Distance
#semantic _Nearest_Distance
#semantic _Outline_Sampler_ST
#semantic _Offset_Z
#semantic _BakedNormal_ST
#semantic _Is_BakedNormal
#semantic _Outline_Sampler
#semantic _BakedNormal
#var float4 gl_Position : $vout.POSITION : HPOS : -1 : 1
#var float3 _WorldSpaceCameraPos : : c[1] : -1 : 1
#var float4 hlslcc_mtx4x4unity_ObjectToWorld[0] : : c[2] : -1 : 1
#var float4 hlslcc_mtx4x4unity_ObjectToWorld[1] : : c[3] : -1 : 1
#var float4 hlslcc_mtx4x4unity_ObjectToWorld[2] : : c[4] : -1 : 1
#var float4 hlslcc_mtx4x4unity_ObjectToWorld[3] : : c[5] : -1 : 1
#var float4 hlslcc_mtx4x4unity_WorldToObject[0] : : c[6] : -1 : 1
#var float4 hlslcc_mtx4x4unity_WorldToObject[1] : : c[7] : -1 : 1
#var float4 hlslcc_mtx4x4unity_WorldToObject[2] : : c[8] : -1 : 1
#var float4 hlslcc_mtx4x4unity_WorldToObject[3] : : : -1 : 0
#var float4 hlslcc_mtx4x4unity_MatrixVP[0] : : c[9] : -1 : 1
#var float4 hlslcc_mtx4x4unity_MatrixVP[1] : : c[10] : -1 : 1
#var float4 hlslcc_mtx4x4unity_MatrixVP[2] : : c[11] : -1 : 1
#var float4 hlslcc_mtx4x4unity_MatrixVP[3] : : c[12] : -1 : 1
#var float _Outline_Width : : c[13] : -1 : 1
#var float _Farthest_Distance : : c[14] : -1 : 1
#var float _Nearest_Distance : : c[15] : -1 : 1
#var float4 _Outline_Sampler_ST : : : -1 : 0
#var float _Offset_Z : : c[16] : -1 : 1
#var float4 _BakedNormal_ST : : : -1 : 0
#var half _Is_BakedNormal : : c[17] : -1 : 1
#var sampler2D _Outline_Sampler : : : -1 : 0
#var sampler2D _BakedNormal : : : -1 : 0
#var float4 in_POSITION0 : $vin.ATTR0 : ATTR0 : -1 : 1
#var float3 in_NORMAL0 : $vin.ATTR1 : ATTR1 : -1 : 1
#var float4 in_TANGENT0 : $vin.ATTR2 : ATTR2 : -1 : 1
#var float2 in_TEXCOORD0 : $vin.ATTR3 : ATTR3 : -1 : 1
#var float2 vs_TEXCOORD0 : $vout.TEX0 : TEX0 : -1 : 1
#var float3 vs_TEXCOORD1 : $vout.TEX1 : TEX1 : -1 : 1
#var float3 vs_TEXCOORD2 : $vout.TEX2 : TEX2 : -1 : 1
#var float3 vs_TEXCOORD3 : $vout.TEX3 : TEX3 : -1 : 1
#const c[0] = 1 0 -2 3
#const c[18] = 0.001 0.0099999998
PARAM c[19] = { { 1, 0, -2, 3 },
program.local[1..17],
{ 0.001, 0.0099999998 } };
TEMP R0;
TEMP R1;
TEMP R2;
TEMP R3;
TEMP R4;
TEMP R5;
MUL R0.xyz, vertex.attrib[2].y, c[3];
MAD R0.xyz, vertex.attrib[2].x, c[2], R0;
MAD R1.xyz, vertex.attrib[2].z, c[4], R0;
DP3 R1.w, R1, R1;
RSQ R1.w, R1.w;
MUL R3.xyz, R1.w, R1;
MOV R2.xyz, c[5];
ADD R2.xyz, R2, -c[1];
DP3 R1.w, R2, R2;
RSQ R2.x, R1.w;
MOV R1.w, c[15].x;
RCP R2.x, R2.x;
ADD R1.w, R1, -c[14].x;
DP3 R0.z, vertex.attrib[1], c[8];
DP3 R0.x, vertex.attrib[1], c[6];
DP3 R0.y, vertex.attrib[1], c[7];
DP3 R0.w, R0, R0;
RSQ R0.w, R0.w;
MUL R0.xyz, R0.w, R0;
MUL R1.xyz, R0.zxyw, R3.yzxw;
MAD R1.xyz, R0.yzxw, R3.zxyw, -R1;
MUL R1.xyz, R1, vertex.attrib[2].w;
DP3 R0.w, R1, R1;
RSQ R0.w, R0.w;
MUL R4.xyz, R0.w, R1;
ADD R1.xyz, R4, R3;
ADD R2.x, R2, -c[14];
RCP R1.w, R1.w;
MUL R1.w, R1, R2.x;
MIN R1.w, R1, c[0].x;
MAX R0.w, R1, c[0].y;
MAD R1.w, R0, c[0].z, c[0];
MUL R0.w, R0, R0;
MUL R0.w, R0, R1;
ADD R1.xyz, R0, R1;
DP3 R1.w, R1, R1;
RSQ R1.w, R1.w;
MUL R0.w, R0, c[13].x;
MUL R0.w, R0, c[18].x;
MUL R2.xyz, vertex.attrib[1], R0.w;
MUL R1.xyz, R1.w, R1;
MAD R1.xyz, R1, R0.w, vertex.attrib[0];
ADD R2.xyz, vertex.attrib[0], R2;
ADD R1.xyz, R1, -R2;
MAD R2.xyz, R1, c[17].x, R2;
MUL R1, R2.y, c[3];
MAD R1, R2.x, c[2], R1;
MAD R1, R2.z, c[4], R1;
ADD R1, R1, c[5];
MUL R2, R1.y, c[10];
MAD R2, R1.x, c[9], R2;
MOV R0.w, c[10].z;
MAD R2, R1.z, c[11], R2;
MAD R1, R1.w, c[12], R2;
MOV R5.xy, c[1].xzzw;
MUL R0.w, R0, c[1].y;
MAD R0.w, R5.x, c[9].z, R0;
MAD R0.w, R5.y, c[11].z, R0;
ADD R0.w, R0, c[12].z;
MUL R0.w, R0, c[16].x;
MOV result.position.xyw, R1;
MAD result.position.z, R0.w, c[18].y, R1;
MOV result.texcoord[3].xyz, R4;
MOV result.texcoord[2].xyz, R3;
MOV result.texcoord[1].xyz, R0;
MOV result.texcoord[0].xy, vertex.attrib[3];
END
# 66 instructions, 6 R-regs
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment