Engine Hunk Overflow: Difference between revisions

From Valve Developer Community
Jump to navigation Jump to search
(→‎How To Fix: rewrote fixes. i recommend against r_hunkalloclightmaps 0 cause its done for a reason...)
No edit summary
 
(9 intermediate revisions by 6 users not shown)
Line 3: Line 3:
=== Engine Error ===
=== Engine Error ===


This is an engine error message that occurs when attempting to load the map in-game. This is typically related to [[Lightmap]] values being modified to an odd value.
This is an engine error message that occurs when attempting to load the map in-game. This is due to too much lightmap data being allocated for the level, and it exceeds the budgeted memory for lightmaps (the "hunk").
 
{{note|This error is fixed in {{tf2}} and {{csgo}}, as they removed the hunk allocator and therefore have no limit. {{gmod}} disabled the hunk by default so this error will not happen there either.}}


=== What Is Hunk Allocation ===
=== What Is Hunk Allocation ===


This is described as the memory allocated for light data.
This is described as the memory allocated for lightmap data.
*0 = to normal "program memory" with alloc
*0 = to normal "program memory" with alloc
*1 = to Valve's seemingly limited to certain size "MemoryStack memory" with Hunk_Alloc
*1 = to Valve's seemingly limited to certain size "MemoryStack memory" with Hunk_Alloc


== How To Fix ==
== Methods To Fixing The Error ==
*+r_hunkalloclightmaps 0
*<code>+r_hunkalloclightmaps 0</code>
**Put this in your [[Command Line Options|launch options]]. This will eliminate the error altogether, but it's not a solution for multiplayer games because it forces the server to put it in their command line options (and many will not do this).
**Add this in your [[Command Line Options|launch options]]. This will eliminate the error altogether. While fine for singleplayer games, it is not recommended for multiplayer games, as not only will you have to add this to your launch options, but server operators will also have to add it to their server command line.<br>
*Find faces with odd or extreme lightmap values.
*Find faces with odd or extreme lightmap values.
**Very large [[displacements]] can cause this error. The lightmap value can automatically change (sometimes, to an undesired value). Try splitting them up or making sure the scale on them is not extremely small/big. Having the displacement be very stretched in one dimension can also cause it.{{confirm}}
**Very large [[displacements]] can cause this error. The lightmap value can automatically change (sometimes, to an undesired value). Split them up and/or make sure your lightmap is an even value of a power of 2, avoiding extreme numbers. Having stretched displacements in one dimension can also cause it.
**If you can't find any lightmap values that seem odd, as a last resort, select the entire map, open the [[Hammer Face Edit Dialog|face edit sheet]] and put <code>16</code> for the lightmap scale.
**If you can't find any odd lightmap values, as a last resort, select the entire map, open the [[Hammer Face Edit Dialog|Face Edit Sheet]] and input <code>16</code> for the lightmap scale.
 
**Increasing the [[Lightmap]] value on brushes will fix it.
[[Category:Modding]]
[[Category:Modding]]
[[Category:Level Design FAQ]]
[[Category:Level Design FAQ]]

Latest revision as of 09:11, 16 November 2024

What Does It Mean?

Engine Error

This is an engine error message that occurs when attempting to load the map in-game. This is due to too much lightmap data being allocated for the level, and it exceeds the budgeted memory for lightmaps (the "hunk").

Note.pngNote:This error is fixed in Team Fortress 2 and Counter-Strike: Global Offensive, as they removed the hunk allocator and therefore have no limit. Garry's Mod disabled the hunk by default so this error will not happen there either.

What Is Hunk Allocation

This is described as the memory allocated for lightmap data.

  • 0 = to normal "program memory" with alloc
  • 1 = to Valve's seemingly limited to certain size "MemoryStack memory" with Hunk_Alloc

Methods To Fixing The Error

  • +r_hunkalloclightmaps 0
    • Add this in your launch options. This will eliminate the error altogether. While fine for singleplayer games, it is not recommended for multiplayer games, as not only will you have to add this to your launch options, but server operators will also have to add it to their server command line.
  • Find faces with odd or extreme lightmap values.
    • Very large displacements can cause this error. The lightmap value can automatically change (sometimes, to an undesired value). Split them up and/or make sure your lightmap is an even value of a power of 2, avoiding extreme numbers. Having stretched displacements in one dimension can also cause it.
    • If you can't find any odd lightmap values, as a last resort, select the entire map, open the Face Edit Sheet and input 16 for the lightmap scale.
    • Increasing the Lightmap value on brushes will fix it.