2025-07-21 12:42 CEST

View Issue Details Jump to Notes ]
IDProjectCategoryView StatusLast Update
0001445Spring engineLinuxpublic2009-10-22 12:21
Reporterthorben 
Assigned To 
PrioritynormalSeverityminorReproducibilityalways
StatusclosedResolutionwon't fix 
Product Version0.79.1.0 
Target VersionFixed in Version 
Summary0001445: [Intel Graphics] Ground bitmap present but not coloured (i.e. stays white)
DescriptionWhile (from the fps perspective) the game is very playable on my Lenovo Thinkpad X200, the ground texture is only rendered in white. To the layman, the effect is that of a snowy landscape. However diving a bit into the texture files I recognized "detailtex2.bmp" to be the texture used for the ground. I strongly suspect that the relevant colouring is rendered over the ground only after adding the shadow map and this "detailtex2.bmp". And somewhere around this point, my crappy integrated graphics card surrenders. The result is a very nice snowy landscape without any colouring.

If terrain rendering is done sequentially, might a quick fix possibly be to just change the sequence of applying the textures/colours? I care about shadows and colour, but not so much about grainy ground. Or change default colour from white to brown perhaps?

As a first dirty workaround I am now off to tint my detailtex2.bmp greenish brown.
Additional InformationKeywords: intel graphics ground texture white snow terrain

Attached: Full debug log of a spring session showing this effect (contains infos about graphics, version, etc)
TagsGM45, graphics, ground, intel, snow, terrain, texture, white
Checked infolog.txt for Errors
Attached Files
  • ? file icon springlog (12,856 bytes) 2009-06-05 13:19 -
    LogOutput initialized.
    Spring 0.79.1.0
    Available log subsystems: mapinfo, CollisionVolume, unit, VFS-detail, VFS, ArchiveScanner, Sound
    Enabled log subsystems: Sound
    Enable or disable log subsystems using the LogSubsystems configuration key
      or the SPRING_LOG_SUBSYSTEMS environment variable (both comma separated).
    [CMyMath::Init] CPU SSE mask: 126, flags:
    	SSE 1.0:  1,  SSE 2.0:  1
    	SSE 3.0:  1, SSSE 3.0:  1
    	SSE 4.1:  1,  SSE 4.2:  0
    	SSE 4.0A: 0,  SSE 5.0A: 0
    	using streflop SSE FP-math mode, CPU supports SSE instructions
    using configuration source "/home/t/.springrc"
    OS: Linux
    Using read-only  data directory: /usr/bin/
    Using read-write data directory: /home/t/.spring/
    Using read-only  data directory: /usr/lib/spring/
    Using read-only  data directory: /usr/share/spring/
    Scanning: /usr/share/spring/maps
    Scanning: /usr/share/spring/base
    Scanning: /usr/share/spring/mods
    Scanning: /usr/share/spring/packages
    Scanning: /usr/lib/spring/maps
    Scanning: /usr/lib/spring/base
    Scanning: /usr/lib/spring/mods
    Scanning: /usr/lib/spring/packages
    Scanning: /home/t/.spring/maps
    Scanning: /home/t/.spring/base
    Scanning: /home/t/.spring/mods
    Scanning: /home/t/.spring/packages
    Scanning: /usr/bin/maps
    Scanning: /usr/bin/base
    Scanning: /usr/bin/mods
    Scanning: /usr/bin/packages
    Video mode set to  1280 x 800 / 32 bit
    SDL:  1.2.13
    GL:   2.0 Mesa 7.4.2
    GL:   Tungsten Graphics, Inc
    GL:   Mesa DRI Mobile IntelĀ® GM45 Express Chipset GEM 20090418 2009Q1
    GLEW: 1.5.1
    Video mode set to  1278 x 779 / 32 bit
    Testing mode enabled; game over disabled.
    Connecting to local server
    Starting demo recording
    Using map Aquatic_Divide_TNM05-V2.smf
    Recording demo demos/local_20090605_123652_Aquatic_Divide_TNM05-V2_0.79.1.sdf
    Using script Skirmish AI test: RAI 0.601
    Using mod Balanced Annihilation V6.95
    Using mod archive BA695.sd7
    Became player 0 (team 0, allyteam 0)
    Sound: OpenAL info:
    Sound:   Vendor:     OpenAL Community
    Sound:   Version:    1.1 ALSOFT 1.7.411
    Sound:   Renderer:   OpenAL Soft
    Sound:   AL Extensions: AL_EXTX_buffer_sub_data AL_EXT_EXPONENT_DISTANCE AL_EXT_FLOAT32 AL_EXT_IMA4 AL_EXT_LINEAR_DISTANCE AL_EXT_MCFORMATS AL_EXT_OFFSET AL_EXTX_source_distance_model AL_LOKI_quadriphonic
    Sound:   ALC Extensions: ALC_ENUMERATE_ALL_EXT ALC_ENUMERATION_EXT ALC_EXT_CAPTURE ALC_EXT_EFX
    Sound:   Device:     ALSA Software
    Sound:   Available Devices:  
    Sound:                       ALSA Software
    Sound:                       OSS Software
    Sound:                       Wave File Writer
    Sound: CSound(): Sucessfully parsed 4 SoundItems from gamedata/sounds.lua
    Parsing unit icons
    Parsing definitions
    Loading all definitions:  0.420000
    You are missing the "ARB_shadow_ambient" extension (this will probably make shadows darker than they should be)
    Loading map informations
    Opening map file
    Loading Map
    Loading detail textures
    Creating overhead texture
    Creating ground shading
    Loading tile file
    Reading tiles
    Reading tile map
    Creating projectile texture
    Number of damage types: 40
    Loading weapon definitions
    Loading unit definitions
    Loading feature definitions
    Creating unit textures
    Initializing map features
    Couldnt find wreckage info treetype0
    Couldnt find wreckage info treetype1
    Couldnt find wreckage info treetype2
    Couldnt find wreckage info treetype3
    Couldnt find wreckage info treetype4
    Couldnt find wreckage info treetype5
    Couldnt find wreckage info treetype6
    Couldnt find wreckage info treetype7
    Couldnt find wreckage info treetype8
    Couldnt find wreckage info treetype9
    Couldnt find wreckage info treetype10
    Couldnt find wreckage info treetype11
    Couldnt find wreckage info treetype12
    Couldnt find wreckage info treetype13
    Couldnt find wreckage info treetype14
    Couldnt find wreckage info treetype15
    Couldnt find wreckage info geovent
    Reading estimate path costs
    Pathing data checksum: 3b502c1b
    Creating sky
    Loading LuaRules
    gf1 = LuaRules/Gadgets/areaattack.lua
    gf1 = LuaRules/Gadgets/cmd_nocost.lua
    gf1 = LuaRules/Gadgets/comiscontrol.lua
    gf1 = LuaRules/Gadgets/fx_reclaim_shards.lua
    gf1 = LuaRules/Gadgets/lups_manager.lua
    gf1 = LuaRules/Gadgets/lups_shockwaves.lua
    gf1 = LuaRules/Gadgets/lups_wrapper.lua
    gf1 = LuaRules/Gadgets/mo_comgate.lua
    gf1 = LuaRules/Gadgets/mo_coop.lua
    gf1 = LuaRules/Gadgets/mo_greenfields.lua
    gf1 = LuaRules/Gadgets/mo_koth.lua
    gf1 = LuaRules/Gadgets/mo_noowner.lua
    gf1 = LuaRules/Gadgets/mo_noshare.lua
    gf1 = LuaRules/Gadgets/mo_nowrecks.lua
    gf1 = LuaRules/Gadgets/teamcomends.lua
    gf1 = LuaRules/Gadgets/unit_air_plants.lua
    gf1 = LuaRules/Gadgets/unit_direct_control.lua
    gf1 = LuaRules/Gadgets/unit_mex_upgrader.lua
    gf1 = LuaRules/Gadgets/unit_missile_delay.lua
    gf1 = LuaRules/Gadgets/unit_noselfd.lua
    gf1 = LuaRules/Gadgets/unit_noselfpwn.lua
    gf1 = LuaRules/Gadgets/unit_passive_nanos.lua
    gf1 = LuaRules/Gadgets/unit_prevent_lab_hax.lua
    gf1 = LuaRules/Gadgets/unit_prevent_range_hax.lua
    gf1 = LuaRules/Gadgets/unit_reclaim_fix.lua
    gf1 = LuaRules/Gadgets/unit_set_neutral.lua
    gf1 = LuaRules/Gadgets/unit_shield_watch.lua
    gf2 = LuaRules/Gadgets/areaattack.lua
    gf2 = LuaRules/Gadgets/cmd_nocost.lua
    gf2 = LuaRules/Gadgets/comiscontrol.lua
    gf2 = LuaRules/Gadgets/fx_reclaim_shards.lua
    gf2 = LuaRules/Gadgets/lups_manager.lua
    gf2 = LuaRules/Gadgets/lups_shockwaves.lua
    gf2 = LuaRules/Gadgets/lups_wrapper.lua
    gf2 = LuaRules/Gadgets/mo_comgate.lua
    gf2 = LuaRules/Gadgets/mo_coop.lua
    gf2 = LuaRules/Gadgets/mo_greenfields.lua
    gf2 = LuaRules/Gadgets/mo_koth.lua
    gf2 = LuaRules/Gadgets/mo_noowner.lua
    gf2 = LuaRules/Gadgets/mo_noshare.lua
    gf2 = LuaRules/Gadgets/mo_nowrecks.lua
    gf2 = LuaRules/Gadgets/teamcomends.lua
    gf2 = LuaRules/Gadgets/unit_air_plants.lua
    gf2 = LuaRules/Gadgets/unit_direct_control.lua
    gf2 = LuaRules/Gadgets/unit_mex_upgrader.lua
    gf2 = LuaRules/Gadgets/unit_missile_delay.lua
    gf2 = LuaRules/Gadgets/unit_noselfd.lua
    gf2 = LuaRules/Gadgets/unit_noselfpwn.lua
    gf2 = LuaRules/Gadgets/unit_passive_nanos.lua
    gf2 = LuaRules/Gadgets/unit_prevent_lab_hax.lua
    gf2 = LuaRules/Gadgets/unit_prevent_range_hax.lua
    gf2 = LuaRules/Gadgets/unit_reclaim_fix.lua
    gf2 = LuaRules/Gadgets/unit_set_neutral.lua
    gf2 = LuaRules/Gadgets/unit_shield_watch.lua
    Loaded gadget:  No Self-D           <unit_noselfd.lua>
    Loaded gadget:  AirPlantParents     <unit_air_plants.lua>
    Loaded gadget:  DirectControl       <unit_direct_control.lua>
    Loaded gadget:  DragonsDisguise     <unit_set_neutral.lua>
    Loaded gadget:  MissileControl      <unit_missile_delay.lua>
    Loaded gadget:  No Self Pwn         <unit_noselfpwn.lua>
    Loaded gadget:  NoCost              <cmd_nocost.lua>
    Loaded gadget:  PassiveNanos        <unit_passive_nanos.lua>
    Loaded gadget:  Prevent Lab Hax     <unit_prevent_lab_hax.lua>
    Loaded gadget:  Prevent Range Hax   <unit_prevent_range_hax.lua>
    Loaded gadget:  Reclaim Fix         <unit_reclaim_fix.lua>
    Loaded gadget:  ShieldDrain         <unit_shield_watch.lua>
    Loaded gadget:  Shockwaves          <lups_shockwaves.lua>
    Loaded gadget:  fx_reclaim_shards   <fx_reclaim_shards.lua>
    Loaded gadget:  lups_wrapper.lua    <lups_wrapper.lua>
    Loaded gadget:  Area Attack         <areaattack.lua>
    Loaded gadget:  C Is For Control    <comiscontrol.lua>
    Loaded gadget:  King of the Hill    <mo_koth.lua>
    Loaded gadget:  Team Com Ends       <teamcomends.lua>
    Loaded gadget:  LupsSyncedManager   <lups_manager.lua>
    Loaded gadget:  Mex Upgrader Gadget  <unit_mex_upgrader.lua>
    gf1 = LuaRules/Gadgets/areaattack.lua
    gf1 = LuaRules/Gadgets/cmd_nocost.lua
    gf1 = LuaRules/Gadgets/comiscontrol.lua
    gf1 = LuaRules/Gadgets/fx_reclaim_shards.lua
    gf1 = LuaRules/Gadgets/lups_manager.lua
    gf1 = LuaRules/Gadgets/lups_shockwaves.lua
    gf1 = LuaRules/Gadgets/lups_wrapper.lua
    gf1 = LuaRules/Gadgets/mo_comgate.lua
    gf1 = LuaRules/Gadgets/mo_coop.lua
    gf1 = LuaRules/Gadgets/mo_greenfields.lua
    gf1 = LuaRules/Gadgets/mo_koth.lua
    gf1 = LuaRules/Gadgets/mo_noowner.lua
    gf1 = LuaRules/Gadgets/mo_noshare.lua
    gf1 = LuaRules/Gadgets/mo_nowrecks.lua
    gf1 = LuaRules/Gadgets/teamcomends.lua
    gf1 = LuaRules/Gadgets/unit_air_plants.lua
    gf1 = LuaRules/Gadgets/unit_direct_control.lua
    gf1 = LuaRules/Gadgets/unit_mex_upgrader.lua
    gf1 = LuaRules/Gadgets/unit_missile_delay.lua
    gf1 = LuaRules/Gadgets/unit_noselfd.lua
    gf1 = LuaRules/Gadgets/unit_noselfpwn.lua
    gf1 = LuaRules/Gadgets/unit_passive_nanos.lua
    gf1 = LuaRules/Gadgets/unit_prevent_lab_hax.lua
    gf1 = LuaRules/Gadgets/unit_prevent_range_hax.lua
    gf1 = LuaRules/Gadgets/unit_reclaim_fix.lua
    gf1 = LuaRules/Gadgets/unit_set_neutral.lua
    gf1 = LuaRules/Gadgets/unit_shield_watch.lua
    gf2 = LuaRules/Gadgets/areaattack.lua
    gf2 = LuaRules/Gadgets/cmd_nocost.lua
    gf2 = LuaRules/Gadgets/comiscontrol.lua
    gf2 = LuaRules/Gadgets/fx_reclaim_shards.lua
    gf2 = LuaRules/Gadgets/lups_manager.lua
    gf2 = LuaRules/Gadgets/lups_shockwaves.lua
    gf2 = LuaRules/Gadgets/lups_wrapper.lua
    gf2 = LuaRules/Gadgets/mo_comgate.lua
    gf2 = LuaRules/Gadgets/mo_coop.lua
    gf2 = LuaRules/Gadgets/mo_greenfields.lua
    gf2 = LuaRules/Gadgets/mo_koth.lua
    gf2 = LuaRules/Gadgets/mo_noowner.lua
    gf2 = LuaRules/Gadgets/mo_noshare.lua
    gf2 = LuaRules/Gadgets/mo_nowrecks.lua
    gf2 = LuaRules/Gadgets/teamcomends.lua
    gf2 = LuaRules/Gadgets/unit_air_plants.lua
    gf2 = LuaRules/Gadgets/unit_direct_control.lua
    gf2 = LuaRules/Gadgets/unit_mex_upgrader.lua
    gf2 = LuaRules/Gadgets/unit_missile_delay.lua
    gf2 = LuaRules/Gadgets/unit_noselfd.lua
    gf2 = LuaRules/Gadgets/unit_noselfpwn.lua
    gf2 = LuaRules/Gadgets/unit_passive_nanos.lua
    gf2 = LuaRules/Gadgets/unit_prevent_lab_hax.lua
    gf2 = LuaRules/Gadgets/unit_prevent_range_hax.lua
    gf2 = LuaRules/Gadgets/unit_reclaim_fix.lua
    gf2 = LuaRules/Gadgets/unit_set_neutral.lua
    gf2 = LuaRules/Gadgets/unit_shield_watch.lua
    Loaded gadget:  AirPlantParents     <unit_air_plants.lua>
    Loaded gadget:  DragonsDisguise     <unit_set_neutral.lua>
    Loaded gadget:  MissileControl      <unit_missile_delay.lua>
    Loaded gadget:  NoCost              <cmd_nocost.lua>
    Loaded gadget:  PassiveNanos        <unit_passive_nanos.lua>
    Loaded gadget:  Reclaim Fix         <unit_reclaim_fix.lua>
    Loaded gadget:  ShieldDrain         <unit_shield_watch.lua>
    Loaded gadget:  Shockwaves          <lups_shockwaves.lua>
    Loaded gadget:  fx_reclaim_shards   <fx_reclaim_shards.lua>
    Loaded gadget:  mo_greenfields      <mo_greenfields.lua>
    Loaded gadget:  mo_noowner          <mo_noowner.lua>
    Loaded gadget:  mo_noshare          <mo_noshare.lua>
    Loaded gadget:  mo_nowrecks         <mo_nowrecks.lua>
    Loaded gadget:  Area Attack         <areaattack.lua>
    Loaded gadget:  C Is For Control    <comiscontrol.lua>
    Loaded gadget:  King of the Hill    <mo_koth.lua>
    Loaded gadget:  LupsSyncedManager   <lups_manager.lua>
    Loaded gadget:  Mex Upgrader Gadget  <unit_mex_upgrader.lua>
    Loaded gadget:  Lups                <lups_wrapper.lua>
    Loading LuaGaia
    Loading LuaUI
    Using LUAUI_DIRNAME = LuaUI/
    Reloaded ctrlpanel with: LuaUI/ctrlpanel.txt
    LuaUI: bound F11 to the widget selector
    LuaUI: bound CTRL+F11 to tweak mode
    Hardware is incompatible with Xray shader requirements
    Hardware is incompatible with Xray shader requirements
    blur api: your hardware does not support shaders
    Loaded widget:  BlurApi             <api_gfx_blur.lua>
    Loaded widget:  MexUpg Helper       <helper.lua>
    Loaded widget:  HealthBars          <unit_healthbars.lua>
    Loaded widget:  BuildETA            <gui_build_eta.lua>
    Loaded widget:  Auto First Build Facing  <autofirstbuildfacing.lua>
    Loaded widget:  Autoquit            <autoquit.lua>
    Loaded widget:  Blast Radius        <gui_blastradius.lua>
    Loaded widget:  Point Tracker       <gui_point_tracker.lua>
    Loaded widget:  MohoExploiter       <unit_moho_exploiter.lua>
    Loaded widget:  ReclaimInfo         <gui_reclaiminfo.lua>
    Loaded widget:  Defense Range       <gui_defenserange.lua>
    Loaded widget:  NoDuplicateOrders   <cmd_no_duplicate_orders.lua>
    Loaded widget:  Ghost Site          <unit_ghostsite.lua>
    Loaded widget:  GameTypeInfo        <gui_game_type_info.lua>
    Loaded widget:  Take Reminderv2.2   <gui_take_remind.lua>
    Loaded widget:  Attack AoE          <gui_attack_aoe.lua>
    Loaded widget:  Prospector          <gui_prospector.lua>
    Loaded widget:  Select n Center!    <gui_center_n_select.lua>
    Loaded widget:  LupsManager         <gfx_lups_manager.lua>
    Loaded widget:  BA_AllyCursors      <gui_ba_ally_cursors.lua>
    Loaded widget:  Lups                <lups_wrapper.lua>
    Loaded widget:  LolUI               <lolui.lua>
    Loaded widget:  CustomFormations    <unit_customformations.lua>
    LuaUI v0.3
    Finalizing...
    Spring 0.79.1.0
    Build date/time: Jun  3 2009 18:05:12
    Player Player connected with number 0 (client version 0.79.1.0)
    Saved: screenshots/screen005.png
    Saved: screenshots/screen006.png
    User exited
    Path cache hits 0 0%
    Path cache hits 0 0%
    Statistics for local connection:
    Received: 999 bytes
    Sent: 402 bytes
    Mesa 7.4.2 implementation error: invalid reference to a deleted texture object
    Please report at bugzilla.freedesktop.org
    spring: main/texobj.c:305: _mesa_reference_texobj: Assertion `valid_texture_object(oldTex)' failed.
    
    ? file icon springlog (12,856 bytes) 2009-06-05 13:19 +
  • png file icon screen005.png (1,273,144 bytes) 2009-06-05 13:20
  • png file icon screen006.png (1,105,431 bytes) 2009-06-05 13:21
  • ? file icon .springrc (3,252 bytes) 2009-06-05 13:21
  • png file icon texture_hack.png (1,299,537 bytes) 2009-06-05 13:51

-Relationships
+Relationships

-Notes

~0003598

thorben (reporter)

Quick & Dirty Hack:
- (recursive) copy /usr/share/spring/base into ~/.spring/ (does not need root privileges)
- unzip ~/.spring/base/bitmaps.sdz into some temporary working directory
- open bitmaps/detailtex2.bmp with (e.g.) gimp
- switch mode from grayscale to rgb and then colour it in your favourite ground colour (but make it much darker than you usually would)
- save picture
- rezip the contents of your working directory
- rename the zip file to bitmaps.sdz
- overwrite ~/.spring/base/bitmaps with your new file
- done

(Screenshot follows)

~0003599

thorben (reporter)

The quick&dirty hack does not work for multiplayer though. I think this might be a checksum issue... (to prevent cheating)

~0004250

jK (developer)

intel's fault
+Notes

-Issue History
Date Modified Username Field Change
2009-06-05 13:19 thorben New Issue
2009-06-05 13:19 thorben File Added: springlog
2009-06-05 13:20 thorben File Added: screen005.png
2009-06-05 13:21 thorben File Added: screen006.png
2009-06-05 13:21 thorben File Added: .springrc
2009-06-05 13:22 thorben Tag Attached: GM45
2009-06-05 13:22 thorben Tag Attached: graphics
2009-06-05 13:22 thorben Tag Attached: ground
2009-06-05 13:22 thorben Tag Attached: intel
2009-06-05 13:22 thorben Tag Attached: snow
2009-06-05 13:22 thorben Tag Attached: terrain
2009-06-05 13:22 thorben Tag Attached: texture
2009-06-05 13:22 thorben Tag Attached: white
2009-06-05 13:49 thorben Note Added: 0003598
2009-06-05 13:51 thorben File Added: texture_hack.png
2009-06-05 17:09 thorben Note Added: 0003599
2009-10-22 12:21 jK Note Added: 0004250
2009-10-22 12:21 jK Status new => closed
2009-10-22 12:21 jK Resolution open => won't fix
+Issue History