/dxbc_reader

easy to read hlsl asm shader code. parse dxbc text and export hlsl like for read

Primary LanguageLuaApache License 2.0Apache-2.0

[feature]

FULL sm4.0 support(little sm5.0)
easy to use & easy to read

[usage]

.\lua\lua.exe dxbc_reader.lua example/fragment.txt -o dxbc.out

-o output [output filename]
-d true   [enable debug info]

translate DXBC code like:

    dp4 r0.x, cb2[8].xyzw, v0.xyzw               >>    r0.x = dot(CBUSE_UB_LOCAL_MATRIX_IDX.u_mtxLP[0].xyzw, in.POSITION.xyzw)
    mov o0.x, r0.x                               >>    out.SV_Position.x = r0.x
    dp4 r1.y, cb2[9].xyzw, v0.xyzw               >>    r1.y = dot(CBUSE_UB_LOCAL_MATRIX_IDX.u_mtxLP[1].xyzw, in.POSITION.xyzw)
    dp4 r1.z, cb2[10].xyzw, v0.xyzw              >>    r1.z = dot(CBUSE_UB_LOCAL_MATRIX_IDX.u_mtxLP[2].xyzw, in.POSITION.xyzw)
    dp4 r1.w, cb2[11].xyzw, v0.xyzw              >>    r1.w = dot(CBUSE_UB_LOCAL_MATRIX_IDX.u_mtxLP[3].xyzw, in.POSITION.xyzw)
    mov o0.yzw, r1.yyzw                          >>    out.SV_Position.yzw = r1.yzw
    mov r0.y, -r1.y                              >>    r0.y = -r1.y
    add r0.xy, r0.xyxx, r1.wwww                  >>    r0.xy = r0.xy + r1.ww
    mov o4.zw, r1.zzzw                           >>    out.TEXCOORD4.zw = r1.zw
    mul o4.xy, r0.xyxx, l(0.500000, 0.500000)    >>    out.TEXCOORD4.xy = r0.xy * float2(0.5, 0.5)
    add r0.x, l(1.000000), cb3[2].x              >>    r0.x = 1.0 + CBUSE_UB_MODEL_MATERIAL_IDX.u_ambient.x
    mul r1.xyzw, v1.xyzw, cb3[1].xyzw            >>    r1.xyzw = in.COLOR.xyzw * CBUSE_UB_MODEL_MATERIAL_IDX.u_diffuse.xyzw
    mul o1.xyz, r0.xxxx, r1.xyzx                 >>    out.TEXCOORD1.xyz = r0.xxx * r1.xyz
    mov o1.w, r1.w                               >>    out.TEXCOORD1.w = r1.w
    mov o2.zw, l(0,0,0,0)                        >>    out.TEXCOORD2.zw = float2(0, 0)