VRAD Not Finishing on Compile

Mark

L1: Registered
Mar 14, 2012
4
0
Hey guys, I made a large trade map, and I have some problem when making a compile (VBSP, VVIS, and VRAD all on normal.) Normally I would compile just fine with no errors. I checked manually and with the Interlopers checker, but if you REALLY want the compile log I an provide it.

Before I even start showing the "limits list" I just want to say that I myself am not sure as to why the compile issue happens and I am just making assumptions.

Anyways, here's the "limits list" for my map compiling normally:

Code:
Object names       Objects/Maxobjs  Memory / Maxmem  Fullness 
------------       ---------------  ---------------  -------- 
models                 473/1024        22704/49152    (46.2%) 
brushes               6748/8192        80976/98304    (82.4%) VERY FULL!
brushsides           60170/65536      481360/524288   (91.8%) VERY FULL!
planes               34032/65536      680640/1310720  (51.9%) 
vertexes             38850/65536      466200/786432   (59.3%) 
nodes                 6207/65536      198624/2097152  ( 9.5%) 
texinfos              5379/12288      387288/884736   (43.8%) 
texdata                306/2048         9792/65536    (14.9%) 
dispinfos               68/0           11968/0        ( 0.0%) 
disp_verts            3380/0           67600/0        ( 0.0%) 
disp_tris             5056/0           10112/0        ( 0.0%) 
disp_lmsamples      236160/0          236160/0        ( 0.0%) 
faces                23609/65536     1322104/3670016  (36.0%) 
hdr faces                0/65536           0/3670016  ( 0.0%) 
origfaces            19289/65536     1080184/3670016  (29.4%) 
leaves                6681/65536      213792/2097152  (10.2%) 
leaffaces            29145/65536       58290/131072   (44.5%) 
leafbrushes          11292/65536       22584/131072   (17.2%) 
areas                   19/256           152/2048     ( 7.4%) 
surfedges           189261/512000     757044/2048000  (37.0%) 
edges               118052/256000     472208/1024000  (46.1%) 
LDR worldlights        919/8192        80872/720896   (11.2%) 
HDR worldlights          0/8192            0/720896   ( 0.0%) 
leafwaterdata            1/32768          12/393216   ( 0.0%) 
waterstrips           2780/32768       27800/327680   ( 8.5%) 
waterverts               0/65536           0/786432   ( 0.0%) 
waterindices         48750/65536       97500/131072   (74.4%) 
cubemapsamples          96/1024         1536/16384    ( 9.4%) 
overlays                63/512         22176/180224   (12.3%) 
LDR lightdata         [variable]     9690556/0        ( 0.0%) 
HDR lightdata         [variable]           0/0        ( 0.0%) 
visdata               [variable]       35149/16777216 ( 0.2%) 
entdata               [variable]      617168/393216   (157.0%) VERY FULL!
LDR ambient table     6681/65536       26724/262144   (10.2%) 
HDR ambient table     6681/65536       26724/262144   (10.2%) 
LDR leaf ambient     17325/65536      485100/1835008  (26.4%) 
HDR leaf ambient      6681/65536      187068/1835008  (10.2%) 
occluders                0/0               0/0        ( 0.0%) 
occluder polygons        0/0               0/0        ( 0.0%) 
occluder vert ind        0/0               0/0        ( 0.0%) 
detail props          [variable]           1/12       ( 8.3%) 
static props          [variable]           1/70558    ( 0.0%) 
pakfile               [variable]    10310842/0        ( 0.0%) 
physics               [variable]     2501576/4194304  (59.6%) 
physics terrain       [variable]       15618/1048576  ( 1.5%)

As you can see, my entdata is way over capacity (I know that the limits that are shown in hammer are dynamic, and are just there for budgeting really.) My brushes and brushsides are very high.

So I decided I would make a minigame (high jump) and add it to the map. I have already ran into issues where the map would be too full, but I managed to make sacrifices. It compiled fine without any problems (I made it in a separate file because the 2d views are crowded in my main map.) Here's the list for it:

Code:
Object names       Objects/Maxobjs  Memory / Maxmem  Fullness 
------------       ---------------  ---------------  -------- 
models                  59/1024         2832/49152    ( 5.8%) 
brushes                494/8192         5928/98304    ( 6.0%) 
brushsides            3640/65536       29120/524288   ( 5.6%) 
planes                1546/65536       30920/1310720  ( 2.4%) 
vertexes              3027/65536       36324/786432   ( 4.6%) 
nodes                 1171/65536       37472/2097152  ( 1.8%) 
texinfos               422/12288       30384/884736   ( 3.4%) 
texdata                 67/2048         2144/65536    ( 3.3%) 
dispinfos                0/0               0/0        ( 0.0%) 
disp_verts               0/0               0/0        ( 0.0%) 
disp_tris                0/0               0/0        ( 0.0%) 
disp_lmsamples           0/0               0/0        ( 0.0%) 
faces                 1642/65536       91952/3670016  ( 2.5%) 
hdr faces                0/65536           0/3670016  ( 0.0%) 
origfaces             1130/65536       63280/3670016  ( 1.7%) 
leaves                1231/65536       39392/2097152  ( 1.9%) 
leaffaces             2373/65536        4746/131072   ( 3.6%) 
leafbrushes           1032/65536        2064/131072   ( 1.6%) 
areas                    2/256            16/2048     ( 0.8%) 
surfedges            12433/512000      49732/2048000  ( 2.4%) 
edges                 7771/256000      31084/1024000  ( 3.0%) 
LDR worldlights          2/8192          176/720896   ( 0.0%) 
HDR worldlights          0/8192            0/720896   ( 0.0%) 
leafwaterdata            0/32768           0/393216   ( 0.0%) 
waterstrips            233/32768        2330/327680   ( 0.7%) 
waterverts               0/65536           0/786432   ( 0.0%) 
waterindices          4038/65536        8076/131072   ( 6.2%) 
cubemapsamples          28/1024          448/16384    ( 2.7%) 
overlays                 1/512           352/180224   ( 0.2%) 
LDR lightdata         [variable]     1580492/0        ( 0.0%) 
HDR lightdata         [variable]           0/0        ( 0.0%) 
visdata               [variable]           0/16777216 ( 0.0%) 
entdata               [variable]       46075/393216   (11.7%) 
LDR ambient table     1231/65536        4924/262144   ( 1.9%) 
HDR ambient table     1231/65536        4924/262144   ( 1.9%) 
LDR leaf ambient      5586/65536      156408/1835008  ( 8.5%) 
HDR leaf ambient      1231/65536       34468/1835008  ( 1.9%) 
occluders                0/0               0/0        ( 0.0%) 
occluder polygons        0/0               0/0        ( 0.0%) 
occluder vert ind        0/0               0/0        ( 0.0%) 
detail props          [variable]           1/12       ( 8.3%) 
static props          [variable]           1/12       ( 8.3%) 
pakfile               [variable]     3071764/0        ( 0.0%) 
physics               [variable]      187659/4194304  ( 4.5%) 
physics terrain       [variable]           2/1048576  ( 0.0%)

The entdata is only at 11.7%, so when I add this to the main map, the total entdata should be around 169%. I do have a list for this compile too, but it only compiled because I had a leak (the previous lists are of compiled after the leak was fixed.)

Code:
Object names       Objects/Maxobjs  Memory / Maxmem  Fullness 
------------       ---------------  ---------------  -------- 
models                 532/1024        25536/49152    (52.0%) 
brushes               7249/8192        86988/98304    (88.5%) VERY FULL!
brushsides           63846/65536      510768/524288   (97.4%) VERY FULL!
planes               35326/65536      706520/1310720  (53.9%) 
vertexes             44479/65536      533748/786432   (67.9%) 
nodes                10070/65536      322240/2097152  (15.4%) 
texinfos              5814/12288      418608/884736   (47.3%) 
texdata                404/2048        12928/65536    (19.7%) 
dispinfos               68/0           11968/0        ( 0.0%) 
disp_verts            3380/0           67600/0        ( 0.0%) 
disp_tris             5056/0           10112/0        ( 0.0%) 
disp_lmsamples      236160/0          236160/0        ( 0.0%) 
faces                25664/65536     1437184/3670016  (39.2%) 
hdr faces                0/65536           0/3670016  ( 0.0%) 
origfaces            20488/65536     1147328/3670016  (31.3%) 
leaves               10603/65536      339296/2097152  (16.2%) 
leaffaces            32731/65536       65462/131072   (49.9%) 
leafbrushes          12093/65536       24186/131072   (18.5%) 
areas                   20/256           160/2048     ( 7.8%) 
surfedges           203744/512000     814976/2048000  (39.8%) 
edges               127275/256000     509100/1024000  (49.7%) 
LDR worldlights        353/8192        31064/720896   ( 4.3%) 
HDR worldlights          0/8192            0/720896   ( 0.0%) 
leafwaterdata            1/32768          12/393216   ( 0.0%) 
waterstrips           3198/32768       31980/327680   ( 9.8%) 
waterverts               0/65536           0/786432   ( 0.0%) 
waterindices         56511/65536      113022/131072   (86.2%) VERY FULL!
cubemapsamples         229/1024         3664/16384    (22.4%) 
overlays                64/512         22528/180224   (12.5%) 
LDR lightdata         [variable]    11415772/0        ( 0.0%) 
HDR lightdata         [variable]           0/0        ( 0.0%) 
visdata               [variable]           0/16777216 ( 0.0%) 
entdata               [variable]      664385/393216   (169.0%) VERY FULL!
LDR ambient table    10603/65536       42412/262144   (16.2%) 
HDR ambient table    10603/65536       42412/262144   (16.2%) 
LDR leaf ambient     44015/65536     1232420/1835008  (67.2%) 
HDR leaf ambient     10603/65536      296884/1835008  (16.2%) 
occluders                0/0               0/0        ( 0.0%) 
occluder polygons        0/0               0/0        ( 0.0%) 
occluder vert ind        0/0               0/0        ( 0.0%) 
detail props          [variable]           1/12       ( 8.3%) 
static props          [variable]           1/70890    ( 0.0%) 
pakfile               [variable]    24401753/0        ( 0.0%) 
physics               [variable]     2692432/4194304  (64.2%) 
physics terrain       [variable]       15618/1048576  ( 1.5%)

I knew that 169% was too much as 157% was already borderline on the "No free edicts" error. The map did run though, but obviously half the lighting wasn't done due to the leak and that's unacceptable.

After fixing the leak it wouldn't compile VRAD. VRAD would stop at something like:

Code:
Build Patch/Sample Hash Table(s).....Done<0.2424 sec>

And by stop I mean VRAD would finish there, and then it would be written to the bsp, so it's not like VRAD just slowed down a lot. This is evident because

Code:
0...1...2...3...4...5...6...7...8...9...10FinalLightFace Done
393 of 649 (60% of) surface lights went in leaf ambient cubes.
0...1...2...3...4...5...6...7...8...9...10Writing leaf ambient...done
Ready to Finish

is missing from the compile log along with that long list. When loading up the map it would just be fullbright.

I started removing lights, making more models not solid, etc. I managed to reduce the entdata to 132% (despite not being happy with some of the sacrifices I've made.)

Code:
Object names       Objects/Maxobjs  Memory / Maxmem  Fullness 
------------       ---------------  ---------------  -------- 
models                 474/1024        22752/49152    (46.3%) 
brushes               6747/8192        80964/98304    (82.4%) VERY FULL!
brushsides           60143/65536      481144/524288   (91.8%) VERY FULL!
planes               33998/65536      679960/1310720  (51.9%) 
vertexes             38833/65536      465996/786432   (59.3%) 
nodes                 6213/65536      198816/2097152  ( 9.5%) 
texinfos              5411/12288      389592/884736   (44.0%) 
texdata                372/2048        11904/65536    (18.2%) 
dispinfos               68/0           11968/0        ( 0.0%) 
disp_verts            3380/0           67600/0        ( 0.0%) 
disp_tris             5056/0           10112/0        ( 0.0%) 
disp_lmsamples      236160/0          236160/0        ( 0.0%) 
faces                23603/65536     1321768/3670016  (36.0%) 
hdr faces                0/65536           0/3670016  ( 0.0%) 
origfaces            19278/65536     1079568/3670016  (29.4%) 
leaves                6688/65536      214016/2097152  (10.2%) 
leaffaces            29139/65536       58278/131072   (44.5%) 
leafbrushes          11290/65536       22580/131072   (17.2%) 
areas                   19/256           152/2048     ( 7.4%) 
surfedges           189197/512000     756788/2048000  (37.0%) 
edges               118025/256000     472100/1024000  (46.1%) 
LDR worldlights        812/8192        71456/720896   ( 9.9%) 
HDR worldlights          0/8192            0/720896   ( 0.0%) 
leafwaterdata            1/32768          12/393216   ( 0.0%) 
waterstrips           2778/32768       27780/327680   ( 8.5%) 
waterverts               0/65536           0/786432   ( 0.0%) 
waterindices         48732/65536       97464/131072   (74.4%) 
cubemapsamples         201/1024         3216/16384    (19.6%) 
overlays                63/512         22176/180224   (12.3%) 
LDR lightdata         [variable]     9690420/0        ( 0.0%) 
HDR lightdata         [variable]           0/0        ( 0.0%) 
visdata               [variable]       43455/16777216 ( 0.3%) 
entdata               [variable]      519546/393216   (132.1%) VERY FULL!
LDR ambient table     6688/65536       26752/262144   (10.2%) 
HDR ambient table     6688/65536       26752/262144   (10.2%) 
LDR leaf ambient     17339/65536      485492/1835008  (26.5%) 
HDR leaf ambient      6688/65536      187264/1835008  (10.2%) 
occluders                0/0               0/0        ( 0.0%) 
occluder polygons        0/0               0/0        ( 0.0%) 
occluder vert ind        0/0               0/0        ( 0.0%) 
detail props          [variable]           1/12       ( 8.3%) 
static props          [variable]           1/65100    ( 0.0%) 
pakfile               [variable]    21432292/0        ( 0.0%) 
physics               [variable]     2500914/4194304  (59.6%) 
physics terrain       [variable]       15618/1048576  ( 1.5%)

I was sure this would compile with the minigame now, but it didn't. What doesn't make sense is after reducing the main map's entdata to 132%, then compiling with that extra 11%, it wouldn't compile lighting. This doesn't make sense because 132+11=143. 143<157, which was the previous entada, WITHOUT highjump. Nothing else went over the limit, but waterindices went from 74% to 86%, despite not having any water in highjump. I don't really know what waterindices is though.

Could anyone explain what the hell s going on here?
 

Ravidge

Grand Vizier
aa
May 14, 2008
1,544
2,818
[I just skimmed the post, sorry If I missed something obvious]

entdata has no upper limit (that I know of), you can go well over 200% without any problems.
And VRAD only handles lighting, nothing else, if it stalls on that process it typically means it's having troubles creating and finishing the lightmaps.
Even if you're below limits for brushes, it doesn't take into account the size of those brushes, and the size of each brushface dictates the amount of luxels (lightmaps measurement unit).

I think you would be able to compile each part of the map perfectly fine separately if you tried. But in its entirety there's just too much lightdata. This is all pure speculation and I have no basis for that theory.
The "cure" would be some thorough lightmap optimization.

Waterindicies is another topic altogether and could be expanded upon for pages upon pages, but in short it's: not about water, it has to do with how brushes interact with each other, and how they cut themsevles up into triangles, breaking that limit causes the compiler to crash in vbsp.
 

Mark

L1: Registered
Mar 14, 2012
4
0
Sorry for making long posts. I tend to do that so that I can provide as much information as possible so I can get better replies.

Anyways, I have compiled a map just fine before with 174% entdata. It just wouldn't run in TF2 (The no free edicts error.)

I'll try lightmap optimization, but I've never really done it before to be honest. I'm not really good with optimization. BI don't really know where to lower and raise the lightmap scale. Same goes for hint and skip.

As for waterindices, I wasn't really worried about it, just curious about why it went up (the name is misleading.) Thankfully my map is pretty much done with large additions, so I don't have to worry about breaking that limit.

Edit: Haha to my amazement you were right. I did some lightmap scaling on some textures on top of a building (it's texture because demomen can jump and see.) It was like 5-10 minutes of work and now the map compiled. I'm going to have to do more optimization though if I want to get all those lights I removed back.
 
Last edited: