multiblend_pcgl_40_ps-ZFRAME00000029
Zframe belongs to /dota_game_pcgl_v64/multiblend_pcgl_40_ps.vcs
View byte detail //multiblend_pcgl_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 4 (04) 0 (00)
[ 6] DefaultSamplerState 0 (00) 0 (00)
[ 0] AddressU 4 (04) 0 (00)
[ 1] AddressV 4 (04) 0 (00)
[ 3] BorderColor 4 (04) 0 (00)
[ 4] ComparisonFunc 4 (04) 0 (00)
[ 12] Filter 4 (04) 0 (00)
[ 2] BackStencilFunc _ (FF) _ (FF)
[ 18] StencilEnable _ (FF) _ (FF)
[ 19] StencilFunc _ (FF) _ (FF)
[ 20] StencilReadMask _ (FF) _ (FF)
[ 21] StencilRef _ (FF) _ (FF)
[ 10] DotaGlobalParams_t 1 (01) 0 (00)
[ 15] PerViewConstantBuffer_t 2 (02) 18 (12) // 22
[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) // 26
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)
[ 6] DefaultSamplerState 1 (01) 0 (00)
[ 6] DefaultSamplerState 2 (02) 0 (00)
[ 6] DefaultSamplerState 3 (03) 0 (00)
[ 18] StencilEnable _ (FF) _ (FF)
[ 21] StencilRef _ (FF) _ (FF)
[ 20] StencilReadMask _ (FF) _ (FF)
[ 19] StencilFunc _ (FF) _ (FF)
[ 2] BackStencilFunc _ (FF) _ (FF)
[ 10] DotaGlobalParams_t 1 (01) 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[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)
[ 6] DefaultSamplerState 1 (01) 0 (00)
[ 6] DefaultSamplerState 2 (02) 0 (00)
[ 6] DefaultSamplerState 3 (03) 0 (00)
[ 18] StencilEnable _ (FF) _ (FF)
[ 21] StencilRef _ (FF) _ (FF)
[ 20] StencilReadMask _ (FF) _ (FF)
[ 19] StencilFunc _ (FF) _ (FF)
[ 2] BackStencilFunc _ (FF) _ (FF)
[ 10] DotaGlobalParams_t 1 (01) 0 (00)
[ 15] PerViewConstantBuffer_t 2 (02) 18 (12) // 15
[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) // 19
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 4 (04) 0 (00)
[ 6] DefaultSamplerState 0 (00) 0 (00)
[ 6] DefaultSamplerState 1 (01) 0 (00)
[ 6] DefaultSamplerState 2 (02) 0 (00)
[ 6] DefaultSamplerState 3 (03) 0 (00)
[ 12] Filter 4 (04) 0 (00)
[ 0] AddressU 4 (04) 0 (00)
[ 1] AddressV 4 (04) 0 (00)
[ 3] BorderColor 4 (04) 0 (00)
[ 4] ComparisonFunc 4 (04) 0 (00)
[ 18] StencilEnable _ (FF) _ (FF)
[ 21] StencilRef _ (FF) _ (FF)
[ 20] StencilReadMask _ (FF) _ (FF)
[ 19] StencilFunc _ (FF) _ (FF)
[ 2] BackStencilFunc _ (FF) _ (FF)
[ 10] DotaGlobalParams_t 1 (01) 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
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 4 (04) 0 (00)
[ 6] DefaultSamplerState 0 (00) 0 (00)
[ 6] DefaultSamplerState 1 (01) 0 (00)
[ 6] DefaultSamplerState 2 (02) 0 (00)
[ 6] DefaultSamplerState 3 (03) 0 (00)
[ 12] Filter 4 (04) 0 (00)
[ 0] AddressU 4 (04) 0 (00)
[ 1] AddressV 4 (04) 0 (00)
[ 3] BorderColor 4 (04) 0 (00)
[ 4] ComparisonFunc 4 (04) 0 (00)
[ 18] StencilEnable _ (FF) _ (FF)
[ 21] StencilRef _ (FF) _ (FF)
[ 20] StencilReadMask _ (FF) _ (FF)
[ 19] StencilFunc _ (FF) _ (FF)
[ 2] BackStencilFunc _ (FF) _ (FF)
[ 10] DotaGlobalParams_t 1 (01) 0 (00)
[ 15] PerViewConstantBuffer_t 2 (02) 18 (12) // 21
[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) // 25
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] GLSL[0] //source/0
[08] _ _ _ _ 1 _ _ _ WRITESEQ[1] GLSL[1] //source/1
[10] _ _ _ _ _ 1 _ _ WRITESEQ[2] GLSL[2] //source/2
[18] _ _ _ _ 1 1 _ _ WRITESEQ[2] GLSL[3] //source/3
[20] _ _ _ _ _ _ 1 _ WRITESEQ[2] GLSL[4] //source/4
[28] _ _ _ _ 1 _ 1 _ WRITESEQ[2] GLSL[5] //source/5
[30] _ _ _ _ _ 1 1 _ WRITESEQ[2] GLSL[6] //source/6
[38] _ _ _ _ 1 1 1 _ WRITESEQ[2] GLSL[7] //source/7
[40] _ _ _ _ _ _ _ 1 WRITESEQ[3] GLSL[8] //source/8
[48] _ _ _ _ 1 _ _ 1 WRITESEQ[3] GLSL[9] //source/9
[50] _ _ _ _ _ 1 _ 1 WRITESEQ[4] GLSL[10] //source/10
[58] _ _ _ _ 1 1 _ 1 WRITESEQ[4] GLSL[11] //source/11
[60] _ _ _ _ _ _ 1 1 WRITESEQ[4] GLSL[12] //source/12
[68] _ _ _ _ 1 _ 1 1 WRITESEQ[4] GLSL[13] //source/13
[70] _ _ _ _ _ 1 1 1 WRITESEQ[4] GLSL[14] //source/14
[78] _ _ _ _ 1 1 1 1 WRITESEQ[4] GLSL[15] //source/15
// configuration states (128), trailing summary
0 _ _ _ _ _ _ _ 0 _ _ _ _ _ _ _
0 _ _ _ _ _ _ _ 0 _ _ _ _ _ _ _
0 _ _ _ _ _ _ _ 0 _ _ _ _ _ _ _
0 _ _ _ _ _ _ _ 0 _ _ _ _ _ _ _
0 _ _ _ _ _ _ _ 0 _ _ _ _ _ _ _
0 _ _ _ _ _ _ _ 0 _ _ _ _ _ _ _
0 _ _ _ _ _ _ _ 0 _ _ _ _ _ _ _
0 _ _ _ _ _ _ _ 0 _ _ _ _ _ _ _
source bytes/flags
------------------
1C // possible control byte (28) or flags (00011100)
02 // values seen (0,1,2)
00 // always 0
00 // always 0
1 // values seen 0,1
16 // nr of source files
1 // 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 10544
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 20169
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 30992
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 40899
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 51877
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 61941
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 73185
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 83517
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 98732
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 112946
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 128445
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 142943
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 158599
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 173254
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 189176
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