multiblend_vulkan_40_ps-ZFRAME00000009
Zframe belongs to /dota_game_vulkan_v65/multiblend_vulkan_40_ps.vcs
View byte detail //multiblend_vulkan_40_ps.vcs-ZFRAME00000009-databytes

Configuration
-------------
The static configuration this zframe belongs to (zero or more static parameters)

S_TOOLS_ENABLED                0
S_MODE_FORWARD                 1
S_MODE_DEPTH                   0
S_MODE_TOOLS_WIREFRAME         0
S_SHADER_QUALITY               1
S_NORMAL_MAP                   0
S_RENDER_BACKFACES             0
S_SPECULAR                     0
S_WORLDSPACE_UVS               0
S_SHOW_WORLDSPACE_BLEND        0
S_TINT_MASK                    0
S_TINT_MASK_2                  0
S_LAYER_BORDER_TINT            0
S_PARALLAX_MAP_ON_0            0
S_PARALLAX_MAP_ON_1            0
S_PARALLAX_MAP_ON_2            0
S_PARALLAX_MAP_ON_3            0
S_GLOBAL_TINT                  0


ZFrame Headers
--------------
RepresentativeTexture                    0x5d700411     0E 52 00   
SupportsMappingDimensions                0x89460e6d     09 FF FF   1
DoNotReflect                             0x52010974     09 FF FF   COND[15] || 0
DoNotCastShadows                         0xe0be7b6e     09 FF FF   COND[16] || 0
ShadowsOnly                              0x83f9427f     09 FF FF   COND[17] || 0
DepthPassBatchID                         0x2c5b5105     05 FF FF   1


Parameter write sequences
-------------------------
This data (thought to be buffer write sequences) appear to be linked to the dynamic (D-param) configurations;
each configuration points to exactly one sequence. WRITESEQ[0] is always defined and considered 'default'.


WRITESEQ[0] (default)               dest        control
[ 77] g_flTexCoordScale0               _ (FF)         _ (FF)
[ 78] g_flTexCoordScale1               _ (FF)         _ (FF)
[ 79] g_flTexCoordScale2               _ (FF)         _ (FF)
[ 80] g_flTexCoordScale3               _ (FF)         _ (FF)   // 4
[ 81] g_tColor0                        0 (00)         0 (00)
[ 82] g_tColor1                        1 (01)         0 (00)
[ 83] g_tColor2                        2 (02)         0 (00)
[ 84] g_tColor3                        3 (03)         0 (00)
[ 90] g_tShadowDepthTexture            2 (02)         0 (00)
[  6] DefaultSamplerState              0 (00)         0 (00)
[  0] AddressU                         3 (03)         0 (00)
[  1] AddressV                         3 (03)         0 (00)
[  3] BorderColor                      3 (03)         0 (00)
[  4] ComparisonFunc                   3 (03)         0 (00)
[ 12] Filter                           3 (03)         0 (00)
[  2] BackStencilFunc                  _ (FF)         _ (FF)
[  5] CullMode                         _ (FF)         _ (FF)
[ 17] StencilEnable                    _ (FF)         _ (FF)
[ 18] StencilFunc                      _ (FF)         _ (FF)
[ 19] StencilReadMask                  _ (FF)         _ (FF)
[ 20] StencilRef                       _ (FF)         _ (FF)
[ 10] DotaGlobalParams_t               0 (00)         0 (00)
[ 14] PerViewConstantBuffer_t          1 (01)        18 (12)
[ 56] g_dotaGlobalDescSet              3 (03)         0 (00)   // 24
[100] g_vColorTint0                    4 (04)         0 (00)
[101] g_vColorTint1                    8 (08)         0 (00)
[102] g_vColorTint2                   12 (0C)         0 (00)
[103] g_vColorTint3                   16 (10)         0 (00)   // 28

WRITESEQ[1]                         dest        control
[ 81] g_tColor0                        0 (00)         0 (00)
[ 82] g_tColor1                        1 (01)         0 (00)
[ 83] g_tColor2                        2 (02)         0 (00)
[ 84] g_tColor3                        3 (03)         0 (00)
[  6] DefaultSamplerState              0 (00)         0 (00)
[  5] CullMode                         _ (FF)         _ (FF)
[ 17] StencilEnable                    _ (FF)         _ (FF)
[ 20] StencilRef                       _ (FF)         _ (FF)
[ 19] StencilReadMask                  _ (FF)         _ (FF)
[ 18] StencilFunc                      _ (FF)         _ (FF)
[  2] BackStencilFunc                  _ (FF)         _ (FF)
[ 10] DotaGlobalParams_t               0 (00)         0 (00)
[ 56] g_dotaGlobalDescSet              3 (03)         0 (00)   // 13
[100] g_vColorTint0                    4 (04)         0 (00)
[101] g_vColorTint1                    8 (08)         0 (00)
[102] g_vColorTint2                   12 (0C)         0 (00)
[103] g_vColorTint3                   16 (10)         0 (00)   // 17

WRITESEQ[2]                         dest        control
[ 81] g_tColor0                        0 (00)         0 (00)
[ 82] g_tColor1                        1 (01)         0 (00)
[ 83] g_tColor2                        2 (02)         0 (00)
[ 84] g_tColor3                        3 (03)         0 (00)
[  6] DefaultSamplerState              0 (00)         0 (00)
[  5] CullMode                         _ (FF)         _ (FF)
[ 17] StencilEnable                    _ (FF)         _ (FF)
[ 20] StencilRef                       _ (FF)         _ (FF)
[ 19] StencilReadMask                  _ (FF)         _ (FF)
[ 18] StencilFunc                      _ (FF)         _ (FF)
[  2] BackStencilFunc                  _ (FF)         _ (FF)
[ 10] DotaGlobalParams_t               0 (00)         0 (00)
[ 14] PerViewConstantBuffer_t          1 (01)        18 (12)
[ 56] g_dotaGlobalDescSet              3 (03)         0 (00)   // 14
[100] g_vColorTint0                    4 (04)         0 (00)
[101] g_vColorTint1                    8 (08)         0 (00)
[102] g_vColorTint2                   12 (0C)         0 (00)
[103] g_vColorTint3                   16 (10)         0 (00)   // 18

WRITESEQ[3]                         dest        control
[ 81] g_tColor0                        0 (00)         0 (00)
[ 82] g_tColor1                        1 (01)         0 (00)
[ 83] g_tColor2                        2 (02)         0 (00)
[ 84] g_tColor3                        3 (03)         0 (00)
[ 90] g_tShadowDepthTexture            2 (02)         0 (00)
[  6] DefaultSamplerState              0 (00)         0 (00)
[ 12] Filter                           3 (03)         0 (00)
[  0] AddressU                         3 (03)         0 (00)
[  1] AddressV                         3 (03)         0 (00)
[  3] BorderColor                      3 (03)         0 (00)
[  4] ComparisonFunc                   3 (03)         0 (00)
[  5] CullMode                         _ (FF)         _ (FF)
[ 17] StencilEnable                    _ (FF)         _ (FF)
[ 20] StencilRef                       _ (FF)         _ (FF)
[ 19] StencilReadMask                  _ (FF)         _ (FF)
[ 18] StencilFunc                      _ (FF)         _ (FF)
[  2] BackStencilFunc                  _ (FF)         _ (FF)
[ 10] DotaGlobalParams_t               0 (00)         0 (00)
[ 56] g_dotaGlobalDescSet              3 (03)         0 (00)   // 19
[100] g_vColorTint0                    4 (04)         0 (00)
[101] g_vColorTint1                    8 (08)         0 (00)
[102] g_vColorTint2                   12 (0C)         0 (00)
[103] g_vColorTint3                   16 (10)         0 (00)   // 23

WRITESEQ[4]                         dest        control
[ 81] g_tColor0                        0 (00)         0 (00)
[ 82] g_tColor1                        1 (01)         0 (00)
[ 83] g_tColor2                        2 (02)         0 (00)
[ 84] g_tColor3                        3 (03)         0 (00)
[ 90] g_tShadowDepthTexture            2 (02)         0 (00)
[  6] DefaultSamplerState              0 (00)         0 (00)
[ 12] Filter                           3 (03)         0 (00)
[  0] AddressU                         3 (03)         0 (00)
[  1] AddressV                         3 (03)         0 (00)
[  3] BorderColor                      3 (03)         0 (00)
[  4] ComparisonFunc                   3 (03)         0 (00)
[  5] CullMode                         _ (FF)         _ (FF)
[ 17] StencilEnable                    _ (FF)         _ (FF)
[ 20] StencilRef                       _ (FF)         _ (FF)
[ 19] StencilReadMask                  _ (FF)         _ (FF)
[ 18] StencilFunc                      _ (FF)         _ (FF)
[  2] BackStencilFunc                  _ (FF)         _ (FF)
[ 10] DotaGlobalParams_t               0 (00)         0 (00)
[ 14] PerViewConstantBuffer_t          1 (01)        18 (12)
[ 56] g_dotaGlobalDescSet              3 (03)         0 (00)   // 20
[100] g_vColorTint0                    4 (04)         0 (00)
[101] g_vColorTint1                    8 (08)         0 (00)
[102] g_vColorTint2                   12 (0C)         0 (00)
[103] g_vColorTint3                   16 (10)         0 (00)   // 24


Dynamic (D-Param) configurations (16 defined)
---------------------------------------------
Each dynamic parameters has 1 or more defined states. The disabled state (0) is shown as '_'
All permitted configurations are listed with their matching write sequence and GPU source (there is exactly
one of these for each configuration). To save space, the parameter names (original names starting with D_)
are shortened to 3-5 length strings (shown in parenthesis).

D_SFM_LIGHTING(sfm_l), D_NORMAL_MAP(nor_m), D_ALLOW_PARALLAX(all_p), D_WORLDSPACE_TEXCOORDS(wor_t)
D_SPECULAR_GBUFFER_DISABLED(sgd), D_WRITE_WATER_FOG_TO_DEST_ALPHA(wwftd), D_FORCE_FOG_IN_FORWARD(ffif)
D_GLOBAL_LIGHT_SHADOWS(gls)

      sfm_l nor_m all_p wor_t   sgd wwftd  ffif   gls
[00]      _     _     _     _     _     _     _     _   WRITESEQ[1] VULKAN[0] //source/0
[08]      _     _     _     _     1     _     _     _   WRITESEQ[1] VULKAN[1] //source/1
[10]      _     _     _     _     _     1     _     _   WRITESEQ[2] VULKAN[2] //source/2
[18]      _     _     _     _     1     1     _     _   WRITESEQ[2] VULKAN[3] //source/3
[20]      _     _     _     _     _     _     1     _   WRITESEQ[2] VULKAN[4] //source/4
[28]      _     _     _     _     1     _     1     _   WRITESEQ[2] VULKAN[5] //source/5
[30]      _     _     _     _     _     1     1     _   WRITESEQ[2] VULKAN[6] //source/6
[38]      _     _     _     _     1     1     1     _   WRITESEQ[2] VULKAN[7] //source/7
[40]      _     _     _     _     _     _     _     1   WRITESEQ[3] VULKAN[8] //source/8
[48]      _     _     _     _     1     _     _     1   WRITESEQ[3] VULKAN[9] //source/9
[50]      _     _     _     _     _     1     _     1   WRITESEQ[4] VULKAN[10] //source/10
[58]      _     _     _     _     1     1     _     1   WRITESEQ[4] VULKAN[11] //source/11
[60]      _     _     _     _     _     _     1     1   WRITESEQ[4] VULKAN[12] //source/12
[68]      _     _     _     _     1     _     1     1   WRITESEQ[4] VULKAN[13] //source/13
[70]      _     _     _     _     _     1     1     1   WRITESEQ[4] VULKAN[14] //source/14
[78]      _     _     _     _     1     1     1     1   WRITESEQ[4] VULKAN[15] //source/15


// configuration states (128), trailing summary

256     _       _       _       _       _       _       _       256     _       _       _       _       _       _       _       
256     _       _       _       _       _       _       _       256     _       _       _       _       _       _       _       
256     _       _       _       _       _       _       _       256     _       _       _       _       _       _       _       
256     _       _       _       _       _       _       _       256     _       _       _       _       _       _       _       
256     _       _       _       _       _       _       _       256     _       _       _       _       _       _       _       
256     _       _       _       _       _       _       _       256     _       _       _       _       _       _       _       
256     _       _       _       _       _       _       _       256     _       _       _       _       _       _       _       
256     _       _       _       _       _       _       _       256     _       _       _       _       _       _       _


source bytes/flags
------------------
20      // possible control byte (32) or flags (00100000)
02      // values seen (0,1,2)
00      // always 0
00      // always 0
1       // values seen 0,1
16      // nr of source files
0       // values seen 0,1


End blocks
----------
10 00 00 00   // end blocks (16)

block-ref         0
arg0              0
source-ref        0
source-pointer    5
has data (False,False,True)
// data-section 2
00 00 00
00 00 00 00 00 00 00 00 04 04 04 04 04 04 04 04 05 05 05 05 05 05 05 05
00 00 00 00 00 00 00 00 04 04 04 04 04 04 04 04 05 05 05 05 05 05 05 05
00 00 00 00 00 00 00 00 0F 0F 0F 0F 0F 0F 0F 0F 00 00 00 00 00 00 00 00

block-ref         8
arg0              0
source-ref        1
source-pointer    6497
has data (False,False,True)
// data-section 2
00 00 00
00 00 00 00 00 00 00 00 04 04 04 04 04 04 04 04 05 05 05 05 05 05 05 05
00 00 00 00 00 00 00 00 04 04 04 04 04 04 04 04 05 05 05 05 05 05 05 05
00 00 00 00 00 00 00 00 0F 0F 0F 0F 0F 0F 0F 0F 00 00 00 00 00 00 00 00

block-ref         16
arg0              0
source-ref        2
source-pointer    12765
has data (False,False,True)
// data-section 2
00 00 00
00 00 00 00 00 00 00 00 04 04 04 04 04 04 04 04 05 05 05 05 05 05 05 05
00 00 00 00 00 00 00 00 04 04 04 04 04 04 04 04 05 05 05 05 05 05 05 05
00 00 00 00 00 00 00 00 0F 0F 0F 0F 0F 0F 0F 0F 00 00 00 00 00 00 00 00

block-ref         24
arg0              0
source-ref        3
source-pointer    19661
has data (False,False,True)
// data-section 2
00 00 00
00 00 00 00 00 00 00 00 04 04 04 04 04 04 04 04 05 05 05 05 05 05 05 05
00 00 00 00 00 00 00 00 04 04 04 04 04 04 04 04 05 05 05 05 05 05 05 05
00 00 00 00 00 00 00 00 0F 0F 0F 0F 0F 0F 0F 0F 00 00 00 00 00 00 00 00

block-ref         32
arg0              0
source-ref        4
source-pointer    26309
has data (False,False,True)
// data-section 2
00 00 00
00 00 00 00 00 00 00 00 04 04 04 04 04 04 04 04 05 05 05 05 05 05 05 05
00 00 00 00 00 00 00 00 04 04 04 04 04 04 04 04 05 05 05 05 05 05 05 05
00 00 00 00 00 00 00 00 0F 0F 0F 0F 0F 0F 0F 0F 00 00 00 00 00 00 00 00

block-ref         40
arg0              0
source-ref        5
source-pointer    33717
has data (False,False,True)
// data-section 2
00 00 00
00 00 00 00 00 00 00 00 04 04 04 04 04 04 04 04 05 05 05 05 05 05 05 05
00 00 00 00 00 00 00 00 04 04 04 04 04 04 04 04 05 05 05 05 05 05 05 05
00 00 00 00 00 00 00 00 0F 0F 0F 0F 0F 0F 0F 0F 00 00 00 00 00 00 00 00

block-ref         48
arg0              0
source-ref        6
source-pointer    40869
has data (False,False,True)
// data-section 2
00 00 00
00 00 00 00 00 00 00 00 04 04 04 04 04 04 04 04 05 05 05 05 05 05 05 05
00 00 00 00 00 00 00 00 04 04 04 04 04 04 04 04 05 05 05 05 05 05 05 05
00 00 00 00 00 00 00 00 0F 0F 0F 0F 0F 0F 0F 0F 00 00 00 00 00 00 00 00

block-ref         56
arg0              0
source-ref        7
source-pointer    48529
has data (False,False,True)
// data-section 2
00 00 00
00 00 00 00 00 00 00 00 04 04 04 04 04 04 04 04 05 05 05 05 05 05 05 05
00 00 00 00 00 00 00 00 04 04 04 04 04 04 04 04 05 05 05 05 05 05 05 05
00 00 00 00 00 00 00 00 0F 0F 0F 0F 0F 0F 0F 0F 00 00 00 00 00 00 00 00

block-ref         64
arg0              0
source-ref        8
source-pointer    55917
has data (False,False,True)
// data-section 2
00 00 00
00 00 00 00 00 00 00 00 04 04 04 04 04 04 04 04 05 05 05 05 05 05 05 05
00 00 00 00 00 00 00 00 04 04 04 04 04 04 04 04 05 05 05 05 05 05 05 05
00 00 00 00 00 00 00 00 0F 0F 0F 0F 0F 0F 0F 0F 00 00 00 00 00 00 00 00

block-ref         72
arg0              0
source-ref        9
source-pointer    65289
has data (False,False,True)
// data-section 2
00 00 00
00 00 00 00 00 00 00 00 04 04 04 04 04 04 04 04 05 05 05 05 05 05 05 05
00 00 00 00 00 00 00 00 04 04 04 04 04 04 04 04 05 05 05 05 05 05 05 05
00 00 00 00 00 00 00 00 0F 0F 0F 0F 0F 0F 0F 0F 00 00 00 00 00 00 00 00

block-ref         80
arg0              0
source-ref        10
source-pointer    74437
has data (False,False,True)
// data-section 2
00 00 00
00 00 00 00 00 00 00 00 04 04 04 04 04 04 04 04 05 05 05 05 05 05 05 05
00 00 00 00 00 00 00 00 04 04 04 04 04 04 04 04 05 05 05 05 05 05 05 05
00 00 00 00 00 00 00 00 0F 0F 0F 0F 0F 0F 0F 0F 00 00 00 00 00 00 00 00

block-ref         88
arg0              0
source-ref        11
source-pointer    84125
has data (False,False,True)
// data-section 2
00 00 00
00 00 00 00 00 00 00 00 04 04 04 04 04 04 04 04 05 05 05 05 05 05 05 05
00 00 00 00 00 00 00 00 04 04 04 04 04 04 04 04 05 05 05 05 05 05 05 05
00 00 00 00 00 00 00 00 0F 0F 0F 0F 0F 0F 0F 0F 00 00 00 00 00 00 00 00

block-ref         96
arg0              0
source-ref        12
source-pointer    93565
has data (False,False,True)
// data-section 2
00 00 00
00 00 00 00 00 00 00 00 04 04 04 04 04 04 04 04 05 05 05 05 05 05 05 05
00 00 00 00 00 00 00 00 04 04 04 04 04 04 04 04 05 05 05 05 05 05 05 05
00 00 00 00 00 00 00 00 0F 0F 0F 0F 0F 0F 0F 0F 00 00 00 00 00 00 00 00

block-ref         104
arg0              0
source-ref        13
source-pointer    103853
has data (False,False,True)
// data-section 2
00 00 00
00 00 00 00 00 00 00 00 04 04 04 04 04 04 04 04 05 05 05 05 05 05 05 05
00 00 00 00 00 00 00 00 04 04 04 04 04 04 04 04 05 05 05 05 05 05 05 05
00 00 00 00 00 00 00 00 0F 0F 0F 0F 0F 0F 0F 0F 00 00 00 00 00 00 00 00

block-ref         112
arg0              0
source-ref        14
source-pointer    113885
has data (False,False,True)
// data-section 2
00 00 00
00 00 00 00 00 00 00 00 04 04 04 04 04 04 04 04 05 05 05 05 05 05 05 05
00 00 00 00 00 00 00 00 04 04 04 04 04 04 04 04 05 05 05 05 05 05 05 05
00 00 00 00 00 00 00 00 0F 0F 0F 0F 0F 0F 0F 0F 00 00 00 00 00 00 00 00

block-ref         120
arg0              0
source-ref        15
source-pointer    124337
has data (False,False,True)
// data-section 2
00 00 00
00 00 00 00 00 00 00 00 04 04 04 04 04 04 04 04 05 05 05 05 05 05 05 05
00 00 00 00 00 00 00 00 04 04 04 04 04 04 04 04 05 05 05 05 05 05 05 05
00 00 00 00 00 00 00 00 0F 0F 0F 0F 0F 0F 0F 0F 00 00 00 00 00 00 00 00