Page 1 of 1

[posila][2.0.28] Crash in mod selection "TileBatchRenderLogic.cpp:287: Tile renderer doesn't support virtual texturing."

Posted: Wed Dec 25, 2024 1:50 pm
by akapulko
Hi.
Yesterday I was connected to the server Comfy-merry-fulgoramas-2_0_28.
Today I run Factorio and am looking through the list of mods (from this server).
I click on the URL of the mod, read it in the browser, and at that moment the game, it turns out, crashed.

Re: [2.0.28] Crash games from the mod selection menu

Posted: Wed Dec 25, 2024 2:54 pm
by akapulko
I tried to look at the dump with a debugger.

Code: Select all

*** WARNING: Unable to verify checksum for factorio.exe

KEY_VALUES_STRING: 1

    Key  : Analysis.CPU.mSec
    Value: 5686

    Key  : Analysis.DebugAnalysisManager
    Value: Create

    Key  : Analysis.Elapsed.mSec
    Value: 364214

    Key  : Analysis.Init.CPU.mSec
    Value: 499

    Key  : Analysis.Init.Elapsed.mSec
    Value: 30438

    Key  : Analysis.Memory.CommitPeak.Mb
    Value: 260

    Key  : Timeline.OS.Boot.DeltaSec
    Value: 135283

    Key  : Timeline.Process.Start.DeltaSec
    Value: 385

    Key  : WER.OS.Branch
    Value: vb_release

    Key  : WER.OS.Timestamp
    Value: 2019-12-06T14:06:00Z

    Key  : WER.OS.Version
    Value: 10.0.19041.1

    Key  : WER.Process.Version
    Value: 2.0.28.15552


NTGLOBALFLAG:  0

PROCESS_BAM_CURRENT_THROTTLED: 0

PROCESS_BAM_PREVIOUS_THROTTLED: 0

CONTEXT:  (.ecxr)
rax=00007ffd7f5e9b16 rbx=00007ff7814fdaa0 rcx=0000003b8c2f3cc0
rdx=0000003b8c2f3c00 rsi=0000003b8c2f4410 rdi=0000000019930520
rip=00007ffde5ddb699 rsp=0000003b8c2f4280 rbp=00007ff781002d40
 r8=0000004000000000  r9=000001bb88230000 r10=00007ffde835ede6
r11=0000000000000080 r12=0000000000000910 r13=0000000000000000
r14=0000000000000001 r15=0000003b8c2f47b0
iopl=0         nv up ei pl nz na pe nc
cs=0033  ss=002b  ds=002b  es=002b  fs=0053  gs=002b             efl=00000202
KERNELBASE!RaiseException+0x69:
00007ffd`e5ddb699 0f1f440000      nop     dword ptr [rax+rax]
Resetting default scope

EXCEPTION_RECORD:  (.exr -1)
ExceptionAddress: 00007ffde5ddb699 (KERNELBASE!RaiseException+0x0000000000000069)
   ExceptionCode: e06d7363 (C++ EH exception)
  ExceptionFlags: 00000001
NumberParameters: 4
   Parameter[0]: 0000000019930520
   Parameter[1]: 0000003b8c2f4410
   Parameter[2]: 00007ff7814fdaa0
   Parameter[3]: 00007ff77f3c0000

PROCESS_NAME:  factorio.exe

ERROR_CODE: (NTSTATUS) 0xe06d7363 - <Unable to get error code text>

EXCEPTION_CODE_STR:  e06d7363

EXCEPTION_PARAMETER1:  0000000019930520

EXCEPTION_PARAMETER2:  0000003b8c2f4410

EXCEPTION_PARAMETER3:  00007ff7814fdaa0

EXCEPTION_PARAMETER4: 7ff77f3c0000

STACK_TEXT:  
0000003b`8c2f4280 00007ff7`80ca9800     : 00000000`00000910 00007ff7`8029339c 00000000`00000009 00007ff7`810f00a0 : KERNELBASE!RaiseException+0x69
0000003b`8c2f4360 00007ff7`802811fd     : 00000000`00000000 00000000`00000000 00000000`00000016 00007ff7`80281a40 : factorio!luaL_openlibs+0x12ca00
0000003b`8c2f43c0 00007ff7`80281a66     : 00000000`00000000 00007f00`0000ffff 00000001`7f60a8b8 00007ff7`80281a40 : factorio!lua_gethookcount+0xc9ebbd
0000003b`8c2f4410 00007ff7`80cc763f     : 0000003b`8c2f44c8 00007ff7`80cc72e7 00000000`00000016 00007ff7`80281a40 : factorio!lua_gethookcount+0xc9f426
0000003b`8c2f4450 00007ff7`80cb698c     : 00007ff7`810cc701 000001bb`00000000 00000000`00000000 00000000`00000000 : factorio!luaL_openlibs+0x14a83f
0000003b`8c2f44c0 00007ff7`802936f4     : 00000000`00000000 00000000`0000011f 0000003b`8c2f4590 00007ffd`e0f5c398 : factorio!luaL_openlibs+0x139b8c
0000003b`8c2f44f0 00007ff7`802935cc     : 00000000`00000009 00000000`00000000 00007ff7`81002d40 00000000`0000011f : factorio!lua_gethookcount+0xcb10b4
0000003b`8c2f4570 00007ff7`7fa41597     : 0000013a`b2dbd670 000001bb`00000002 000001bb`8afceaa0 00007ff7`81002e50 : factorio!lua_gethookcount+0xcb0f8c
0000003b`8c2f45d0 00007ff7`7fa404c4     : 000001bb`c5fe8160 0000003b`8c2f4780 00000000`0000158c 00000000`00000000 : factorio!lua_gethookcount+0x45ef57
0000003b`8c2f4680 00007ff7`7fa4952c     : 000001bb`9544cd90 000005a0`00000006 000001bb`00000000 00000000`0000082c : factorio!lua_gethookcount+0x45de84
0000003b`8c2f4a20 00007ff7`7fa4927f     : 00000000`00000000 000001bb`9544cd90 0000003b`8c2f4b90 000001bb`a5ce53d0 : factorio!lua_gethookcount+0x466eec
0000003b`8c2f4b30 00007ff7`7fa4ac4a     : 000001bb`a5ce53d0 000001bb`d2ab6be0 000001bb`a6c47770 00000000`00000000 : factorio!lua_gethookcount+0x466c3f
0000003b`8c2f4b70 00007ff7`7f9e27f7     : 000001bb`aa1038f8 000001bb`a5ce4cb0 00000000`00000000 00000000`00000000 : factorio!lua_gethookcount+0x46860a
0000003b`8c2f4bd0 00007ff7`7f9e25b6     : 000001bb`a5ce49b0 000001bb`a6c47770 000001bb`a5ce4cb0 000001bb`b41c9250 : factorio!lua_gethookcount+0x4001b7
0000003b`8c2f4c70 00007ff7`7fb2f1f3     : 00000000`00989680 00000000`00989680 00000000`000003a1 00000000`0000005b : factorio!lua_gethookcount+0x3fff76
0000003b`8c2f4cb0 00007ff7`7fbfd433     : 000001bb`c2ed3590 0000003b`8c2f50d0 000001bc`900d5370 00000000`00000000 : factorio!lua_gethookcount+0x54cbb3
0000003b`8c2f4f70 00007ff7`80a32b0a     : 000001bc`900d5370 00000000`00000000 000001bb`8d419270 000001bb`c2ed3590 : factorio!lua_gethookcount+0x61adf3
0000003b`8c2f50a0 00007ff7`80a329da     : 000001bc`900d5370 00007ff7`00000000 000001bb`00000000 00000000`00000000 : factorio!lua_pushinteger+0x38e3da
0000003b`8c2f5130 00007ff7`80a32c57     : 000001bb`94a7dcd0 000001bc`9076fe28 000001bb`8d419270 000001bc`900d5370 : factorio!lua_pushinteger+0x38e2aa
0000003b`8c2f5170 00007ff7`80a329ef     : 00000000`00000000 000005a0`00000000 00000000`00000000 00000000`00000000 : factorio!lua_pushinteger+0x38e527
0000003b`8c2f5200 00007ff7`80a289c5     : 000001bb`94a7dcd0 000001bb`94a7dcd0 0000003b`8c2f5279 00000000`00000000 : factorio!lua_pushinteger+0x38e2bf
0000003b`8c2f5240 00007ff7`7f9ef4f1     : 00000000`00000000 000001bb`8b072820 000001bb`8af13f30 00000000`00000000 : factorio!lua_pushinteger+0x384295
0000003b`8c2f52e0 00007ff7`7f505b3b     : 3ff40000`00000000 3ff40000`00000000 00000000`00989680 00000000`00000000 : factorio!lua_gethookcount+0x40ceb1
0000003b`8c2f5330 00007ff7`7f50401e     : 00000000`00000002 3ff00000`00000000 3ff00000`00000000 00000000`00000000 : factorio+0x145b3b
0000003b`8c2f5a60 00007ff7`7f5038a0     : 00007ff7`80f581e2 0000003b`8c2f67c8 00000000`000001f4 000001bb`8afae450 : factorio+0x14401e
0000003b`8c2f5b60 00007ff7`7f4fe555     : 00000000`00000000 00000000`00000001 00000000`00000000 00000000`00000001 : factorio+0x1438a0
0000003b`8c2f6710 00007ff7`7f5017c9     : 00007ff7`00000001 000001bb`882385a0 00007ff7`80ddfe30 00000000`000003b5 : factorio+0x13e555
0000003b`8c2ffa50 00007ff7`80ca7298     : 00007ff7`80de31e0 00000000`00000000 00000000`00000000 000001bb`88090000 : factorio+0x1417c9
0000003b`8c2ffab0 00007ffd`e7887374     : 00000000`00000000 00000000`00000000 00000000`00000000 00007ffd`7f500000 : factorio!luaL_openlibs+0x12a498
0000003b`8c2ffaf0 00007ffd`e839cc91     : 00000000`00000000 00000000`00000000 00000000`00000000 00000000`00000000 : kernel32!BaseThreadInitThunk+0x14
0000003b`8c2ffb20 00000000`00000000     : 00000000`00000000 00000000`00000000 00000000`00000000 00000000`00000000 : ntdll!RtlUserThreadStart+0x21


SYMBOL_NAME:  KERNELBASE!RaiseException+69

MODULE_NAME: KERNELBASE

IMAGE_NAME:  KERNELBASE.dll

STACK_COMMAND:  ~0s ; .ecxr ; kb

FAILURE_BUCKET_ID:  CPP_EXCEPTION_e06d7363_KERNELBASE.dll!RaiseException

OS_VERSION:  10.0.19041.1

BUILDLAB_STR:  vb_release

OSPLATFORM_TYPE:  x64

OSNAME:  Windows 10

IMAGE_VERSION:  10.0.19041.4842

FAILURE_ID_HASH:  {1253aecc-520d-655b-58e3-5eb61e209188}

Followup:     MachineOwner
---------



Re: [2.0.28] Crash in mod selection "TileBatchRenderLogic.cpp:287: Tile renderer doesn't support virtual texturing."

Posted: Fri Jan 03, 2025 5:03 am
by akapulko
Upd.
With this setting

Code: Select all

; Options: all, high, medium, low
; video-memory-usage=all
there are no problems.

Re: [2.0.28] Crash in mod selection "TileBatchRenderLogic.cpp:287: Tile renderer doesn't support virtual texturing."

Posted: Fri Jan 03, 2025 3:43 pm
by thesixthroc
Through binary search, I isolated this crash to be triggered by the following line in the definition of the Cerys mod's prototype `cerys-ice-decal-white`, when using the lowest graphics settings:

Code: Select all

pictures = util.table.deepcopy(data.raw["optimized-decorative"]["aqulio-snowy-decal"].pictures)
If this is replaced verbatim by the `pictures` entry of the corresponding vanilla decorative, this issue is fixed.

Note that Cerys has been updated (in 0.6.18) to avoid this base game bug.

Re: [2.0.28] Crash in mod selection "TileBatchRenderLogic.cpp:287: Tile renderer doesn't support virtual texturing."

Posted: Fri Jan 03, 2025 4:29 pm
by robot256
thesixthroc wrote: Fri Jan 03, 2025 3:43 pm Through binary search, I isolated this crash to the following line in the definition of the Cerys mod's prototype `cerys-ice-decal-white`, when using the lowest graphics settings:

Code: Select all

pictures = util.table.deepcopy(data.raw["optimized-decorative"]["aqulio-snowy-decal"].pictures)
If this is replaced verbatim by the `pictures` entry of the corresponding vanilla decorative, this issue is fixed.

Note that Cerys has been updated (in 0.6.18) to avoid this base game bug.
Do you mean there is a bug in deepcopy that is corrupting the pictures table of that entity specifically? It would be interesting to to log(serpent block()) the working and non-working pictures tables.

Re: [2.0.28] Crash in mod selection "TileBatchRenderLogic.cpp:287: Tile renderer doesn't support virtual texturing."

Posted: Fri Jan 03, 2025 8:20 pm
by Muche
It seems to me that the actual bug is

Code: Select all

--- data/space-age/prototypes/decorative/decoratives-gleba.lua
+++ data/space-age/prototypes/decorative/decoratives-gleba.lua
@@ -2,6 +2,8 @@
 local sounds = require ("__base__.prototypes.entity.sounds")
 local decorative_trigger_effects = require("__base__.prototypes.decorative.decorative-trigger-effects")
 
+local base_decorative_sprite_priority = "extra-high"
+
 --[[
   General decorative strategy:
   survival_chance + subtype_selection_band_of: (region_box - small_scale_knockout)
--- data/space-age/prototypes/decorative/decoratives-aquilo.lua
+++ data/space-age/prototypes/decorative/decoratives-aquilo.lua
@@ -2,6 +2,8 @@
 local sounds = require ("__base__.prototypes.entity.sounds")
 local decorative_trigger_effects = require("__base__.prototypes.decorative.decorative-trigger-effects")
 
+local base_decorative_sprite_priority = "extra-high"
+
 --lithium
 local lithium_rock_tint = {1, 1, 1}
 local lithium_rock_rectange = nil --{{0, 0}, {1, 1}}
Cerys' usage of the same images somehow changed the order AtlasBuilder puts textures together, pushing Aquilo's decoratives into virtual atlas.

Re: [2.0.28] Crash in mod selection "TileBatchRenderLogic.cpp:287: Tile renderer doesn't support virtual texturing."

Posted: Sat Jan 04, 2025 12:18 am
by thesixthroc
The simplest repro I'm aware of: install a version of Cerys prior to 0.6.18. Visit the map editor, generate an Aquilo surface, switch to that surface, experience crash.

Re: [posila][2.0.28] Crash in mod selection "TileBatchRenderLogic.cpp:287: Tile renderer doesn't support virtual texturi

Posted: Mon Jan 06, 2025 4:33 pm
by posila
Ref: 125295

Re: [posila][2.0.28] Crash in mod selection "TileBatchRenderLogic.cpp:287: Tile renderer doesn't support virtual texturi

Posted: Tue Jan 07, 2025 3:39 pm
by posila
Thanks for the report.
Fixed for 2.0.30