Engine Hunk Overflow: Difference between revisions

From Valve Developer Community
Jump to navigation Jump to search
m (→‎Methods To Fixing The Error: ConVar is the C++ class; cvar is the user-side term)
No edit summary
 
(One intermediate revision by the same user 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 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
Line 14: Line 16:
*<code>+r_hunkalloclightmaps 0</code>
*<code>+r_hunkalloclightmaps 0</code>
**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>
**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>
{{Note|{{GMOD}} acknowledges the issue with Hunk Allocation. Garry's Mod has [[cvar]] r_hunkalloclightmaps set to 0 by default.}}
{{note|{{csgo}} has cvar r_hunkalloclightmaps set to 1 by default, but it has been hidden; it cannot be changed.}}
*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). 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.
**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 [[Hammer Face Edit Dialog|Face Edit Sheet]] and input <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.
**If reverting the entire map's lightmap value to <code>16</code> does not suit you due to high amount of work on lightmap, make use of the [[Hammer Cordon Usage|Cordon Bound Tool]] to determine if the Engine Hunk Overflow error is caused by the lightmap data as a whole (i.e. related to the size of the map) or by a certain brush or set of brushes.
**Increasing the [[Lightmap]] value on brushes will fix it.
**Sometimes increasing the [[Lightmap]] value on brushes can 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.