multiblend_vulkan_40_ps-ZFRAME00000029
Zframe belongs to /dota_game_vulkan_v65/multiblend_vulkan_40_ps.vcs
View byte detail //multiblend_vulkan_40_ps.vcs-ZFRAME00000029-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 1
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)
[ 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) // 23
[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) // 27
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)
[ 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) // 12
[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) // 16
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)
[ 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) // 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[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)
[ 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) // 18
[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) // 22
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)
[ 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) // 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
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 (True,False,True)
// data-section 0
00 00 01 01 00 00 00 00 00 00 00 00 00 00 00 00
// 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 6809
has data (True,False,True)
// data-section 0
00 00 01 01 00 00 00 00 00 00 00 00 00 00 00 00
// 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 13389
has data (True,False,True)
// data-section 0
00 00 01 01 00 00 00 00 00 00 00 00 00 00 00 00
// 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 20597
has data (True,False,True)
// data-section 0
00 00 01 01 00 00 00 00 00 00 00 00 00 00 00 00
// 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 27557
has data (True,False,True)
// data-section 0
00 00 01 01 00 00 00 00 00 00 00 00 00 00 00 00
// 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 35277
has data (True,False,True)
// data-section 0
00 00 01 01 00 00 00 00 00 00 00 00 00 00 00 00
// 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 42741
has data (True,False,True)
// data-section 0
00 00 01 01 00 00 00 00 00 00 00 00 00 00 00 00
// 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 50713
has data (True,False,True)
// data-section 0
00 00 01 01 00 00 00 00 00 00 00 00 00 00 00 00
// 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 58413
has data (True,False,True)
// data-section 0
00 00 01 01 00 00 00 00 00 00 00 00 00 00 00 00
// 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 68097
has data (True,False,True)
// data-section 0
00 00 01 01 00 00 00 00 00 00 00 00 00 00 00 00
// 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 77557
has data (True,False,True)
// data-section 0
00 00 01 01 00 00 00 00 00 00 00 00 00 00 00 00
// 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 87557
has data (True,False,True)
// data-section 0
00 00 01 01 00 00 00 00 00 00 00 00 00 00 00 00
// 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 97309
has data (True,False,True)
// data-section 0
00 00 01 01 00 00 00 00 00 00 00 00 00 00 00 00
// 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 107909
has data (True,False,True)
// data-section 0
00 00 01 01 00 00 00 00 00 00 00 00 00 00 00 00
// 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 118253
has data (True,False,True)
// data-section 0
00 00 01 01 00 00 00 00 00 00 00 00 00 00 00 00
// 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 129017
has data (True,False,True)
// data-section 0
00 00 01 01 00 00 00 00 00 00 00 00 00 00 00 00
// 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