Actual world lighting, world objects test

This commit is contained in:
DBotThePony 2023-09-10 13:12:37 +07:00
parent da66fa389d
commit 84e9fd842a
Signed by: DBot
GPG Key ID: DCC23B5715498507
48 changed files with 3428 additions and 818 deletions

713
hs_err_pid22156.log Normal file
View File

@ -0,0 +1,713 @@
#
# A fatal error has been detected by the Java Runtime Environment:
#
# EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x00007ffb7c599920, pid=22156, tid=44476
#
# JRE version: OpenJDK Runtime Environment Temurin-17.0.1+12 (17.0.1+12) (build 17.0.1+12)
# Java VM: OpenJDK 64-Bit Server VM Temurin-17.0.1+12 (17.0.1+12, mixed mode, sharing, tiered, compressed oops, compressed class ptrs, g1 gc, windows-amd64)
# Problematic frame:
# C [atio6axx.dll+0x1fe9920]
#
# No core dump will be written. Minidumps are not enabled by default on client versions of Windows
#
# If you would like to submit a bug report, please visit:
# https://github.com/adoptium/adoptium-support/issues
# The crash happened outside the Java Virtual Machine in native code.
# See problematic frame for where to report the bug.
#
--------------- S U M M A R Y ------------
Command Line: -Xms128m -javaagent:C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2021.3\lib\idea_rt.jar=5828:C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2021.3\bin -Dfile.encoding=UTF-8 ru.dbotthepony.kstarbound.MainKt
Host: AMD Ryzen 7 3700X 8-Core Processor , 16 cores, 63G, Windows 10 , 64 bit Build 19041 (10.0.19041.1706)
Time: Sun Sep 10 10:43:10 2023 RTZ 6 (s 10 , 64 bit Build 19041 (10.0.19041.1706) elapsed time: 2.030508 seconds (0d 0h 0m 2s)
--------------- T H R E A D ---------------
Current thread (0x00000216e2a20490): JavaThread "main" [_thread_in_native, id=44476, stack(0x0000004d5c500000,0x0000004d5c600000)]
Stack: [0x0000004d5c500000,0x0000004d5c600000], sp=0x0000004d5c5fef88, free space=1019k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
C [atio6axx.dll+0x1fe9920]
Java frames: (J=compiled Java code, j=interpreted, Vv=VM code)
j org.lwjgl.opengl.GL11C.nglTexImage2D(IIIIIIIIJ)V+0
j org.lwjgl.opengl.GL11C.glTexImage2D(IIIIIIIILjava/nio/ByteBuffer;)V+17
j org.lwjgl.opengl.GL11.glTexImage2D(IIIIIIIILjava/nio/ByteBuffer;)V+14
j ru.dbotthepony.kstarbound.client.gl.GLTexture2D.upload(IIIIIILjava/nio/ByteBuffer;)Lru/dbotthepony/kstarbound/client/gl/GLTexture2D;+105
j ru.dbotthepony.kstarbound.client.gl.GLTexture2D.upload(IIIIILjava/nio/ByteBuffer;)Lru/dbotthepony/kstarbound/client/gl/GLTexture2D;+18
j ru.dbotthepony.kstarbound.client.StarboundClient.renderFrame()Z+716
j ru.dbotthepony.kstarbound.MainKt.main()V+253
j ru.dbotthepony.kstarbound.MainKt.main([Ljava/lang/String;)V+0
v ~StubRoutines::call_stub
siginfo: EXCEPTION_ACCESS_VIOLATION (0xc0000005), reading address 0x00000216b3843c70
Register to memory mapping:
RIP=0x00007ffb7c599920 atio6axx.dll
RAX=0x00000216b138ba78 points into unknown readable memory: 0x0000000000000000 | 00 00 00 00 00 00 00 00
RBX=0x00000216b138ba40 points into unknown readable memory: 0x0000000000000000 | 00 00 00 00 00 00 00 00
RCX=0x00000216b138ba78 points into unknown readable memory: 0x0000000000000000 | 00 00 00 00 00 00 00 00
RDX=0x00000216b38412e0 points into unknown readable memory: 0x5400bf0071000500 | 00 05 00 71 00 bf 00 54
RSP=0x0000004d5c5fef88 is pointing into the stack for thread: 0x00000216e2a20490
RBP=0x0000004d5c5ff021 is pointing into the stack for thread: 0x00000216e2a20490
RSI=0x00000216b138ba78 points into unknown readable memory: 0x0000000000000000 | 00 00 00 00 00 00 00 00
RDI=0x0000000000001908 is an unknown value
R8 =0x00000000000029b0 is an unknown value
R9 =0x00000000000000b8 is an unknown value
R10=0x00007ffb7a5b0000 atio6axx.dll
R11=0x00000216b08e2690 points into unknown readable memory: 0x0000000000000000 | 00 00 00 00 00 00 00 00
R12=0x00000000000029b0 is an unknown value
R13=0x00000000000029b0 is an unknown value
R14=0x00000216b0820080 points into unknown readable memory: 0x00007ffb7d8691f0 | f0 91 86 7d fb 7f 00 00
R15=0x0 is NULL
Registers:
RAX=0x00000216b138ba78, RBX=0x00000216b138ba40, RCX=0x00000216b138ba78, RDX=0x00000216b38412e0
RSP=0x0000004d5c5fef88, RBP=0x0000004d5c5ff021, RSI=0x00000216b138ba78, RDI=0x0000000000001908
R8 =0x00000000000029b0, R9 =0x00000000000000b8, R10=0x00007ffb7a5b0000, R11=0x00000216b08e2690
R12=0x00000000000029b0, R13=0x00000000000029b0, R14=0x00000216b0820080, R15=0x0000000000000000
RIP=0x00007ffb7c599920, EFLAGS=0x0000000000010246
Top of Stack: (sp=0x0000004d5c5fef88)
0x0000004d5c5fef88: 00007ffb7ad699f3 00000216a5f13e98
0x0000004d5c5fef98: 0000000000000000 0000021600000001
0x0000004d5c5fefa8: 000000003f800000 000000000000003a
0x0000004d5c5fefb8: 00007ffb00000001 0000021600001908
0x0000004d5c5fefc8: 0000000000001401 0000000000000000
0x0000004d5c5fefd8: 000000003f71a9fc 0000000100000000
0x0000004d5c5fefe8: 0000000200000001 0000000000000000
0x0000004d5c5feff8: 00000000000029b0 00000000000029e8
0x0000004d5c5ff008: 0000000000000000 000029f5bbbd2f0a
0x0000004d5c5ff018: 0000000000000001 0000000000000000
0x0000004d5c5ff028: 0000000000001908 0000000000001401
0x0000004d5c5ff038: 000000000000003a 0000000000000000
0x0000004d5c5ff048: 0000000000000000 00000216b383e930
0x0000004d5c5ff058: 00000216b0820080 00000216af85def8
0x0000004d5c5ff068: 00007ffb7ae43bd7 00000216b0820000
0x0000004d5c5ff078: 0000021600000de1 0000021600000000
Instructions: (pc=0x00007ffb7c599920)
0x00007ffb7c599820: 89 40 04 44 88 48 06 c3 4c 8b 02 8b 4a 08 44 0f
0x00007ffb7c599830: b7 4a 0c 4c 89 00 89 48 08 66 44 89 48 0c c3 0f
0x00007ffb7c599840: b7 0a 44 0f b6 42 02 66 89 08 44 88 40 02 c3 90
0x00007ffb7c599850: 4c 8b 02 8b 4a 08 44 0f b6 4a 0c 4c 89 00 89 48
0x00007ffb7c599860: 08 44 88 48 0c c3 4c 8b 02 0f b7 4a 08 4c 89 00
0x00007ffb7c599870: 66 89 48 08 c3 4c 8b 02 0f b6 4a 08 4c 89 00 88
0x00007ffb7c599880: 48 08 c3 4c 8b 02 8b 4a 08 4c 89 00 89 48 08 c3
0x00007ffb7c599890: 8b 0a 44 0f b7 42 04 89 08 66 44 89 40 04 c3 8b
0x00007ffb7c5998a0: 0a 44 0f b6 42 04 89 08 44 88 40 04 c3 48 8b 0a
0x00007ffb7c5998b0: 48 89 08 c3 0f b6 0a 88 08 c3 8b 0a 89 08 c3 90
0x00007ffb7c5998c0: 49 83 f8 20 77 17 f3 0f 6f 0a f3 42 0f 6f 54 02
0x00007ffb7c5998d0: f0 f3 0f 7f 09 f3 42 0f 7f 54 01 f0 c3 48 3b d1
0x00007ffb7c5998e0: 73 0e 4e 8d 0c 02 49 3b c9 0f 82 41 04 00 00 90
0x00007ffb7c5998f0: 83 3d 21 37 8d 01 03 0f 82 e3 02 00 00 49 81 f8
0x00007ffb7c599900: 00 20 00 00 76 16 49 81 f8 00 00 18 00 77 0d f6
0x00007ffb7c599910: 05 be d0 a3 01 02 0f 85 64 fe ff ff c5 fe 6f 02
0x00007ffb7c599920: c4 a1 7e 6f 6c 02 e0 49 81 f8 00 01 00 00 0f 86
0x00007ffb7c599930: c4 00 00 00 4c 8b c9 49 83 e1 1f 49 83 e9 20 49
0x00007ffb7c599940: 2b c9 49 2b d1 4d 03 c1 49 81 f8 00 01 00 00 0f
0x00007ffb7c599950: 86 a3 00 00 00 49 81 f8 00 00 18 00 0f 87 3e 01
0x00007ffb7c599960: 00 00 66 66 66 66 66 66 0f 1f 84 00 00 00 00 00
0x00007ffb7c599970: c5 fe 6f 0a c5 fe 6f 52 20 c5 fe 6f 5a 40 c5 fe
0x00007ffb7c599980: 6f 62 60 c5 fd 7f 09 c5 fd 7f 51 20 c5 fd 7f 59
0x00007ffb7c599990: 40 c5 fd 7f 61 60 c5 fe 6f 8a 80 00 00 00 c5 fe
0x00007ffb7c5999a0: 6f 92 a0 00 00 00 c5 fe 6f 9a c0 00 00 00 c5 fe
0x00007ffb7c5999b0: 6f a2 e0 00 00 00 c5 fd 7f 89 80 00 00 00 c5 fd
0x00007ffb7c5999c0: 7f 91 a0 00 00 00 c5 fd 7f 99 c0 00 00 00 c5 fd
0x00007ffb7c5999d0: 7f a1 e0 00 00 00 48 81 c1 00 01 00 00 48 81 c2
0x00007ffb7c5999e0: 00 01 00 00 49 81 e8 00 01 00 00 49 81 f8 00 01
0x00007ffb7c5999f0: 00 00 0f 83 78 ff ff ff 4d 8d 48 1f 49 83 e1 e0
0x00007ffb7c599a00: 4d 8b d9 49 c1 eb 05 47 8b 9c 9a 40 b0 c1 03 4d
0x00007ffb7c599a10: 03 da 41 ff e3 c4 a1 7e 6f 8c 0a 00 ff ff ff c4
Stack slot to memory mapping:
stack at sp + 0 slots: 0x00007ffb7ad699f3 atio6axx.dll
stack at sp + 1 slots: {method} {0x00000216a5f13ea0} 'access$positiveMod' '(Lkotlin/collections/ArrayDeque;I)I' in 'kotlin/collections/ArrayDeque'
stack at sp + 2 slots: 0x0 is NULL
stack at sp + 3 slots: 0x0000021600000001 is an unknown value
stack at sp + 4 slots: 0x000000003f800000 is an unknown value
stack at sp + 5 slots: 0x000000000000003a is an unknown value
stack at sp + 6 slots: 0x00007ffb00000001 is an unknown value
stack at sp + 7 slots: 0x0000021600001908 is an unknown value
--------------- P R O C E S S ---------------
Threads class SMR info:
_java_thread_list=0x00000216b30e95c0, length=42, elements={
0x00000216e2a20490, 0x00000216a2144690, 0x00000216a21452b0, 0x00000216a215daf0,
0x00000216a21604c0, 0x00000216a2160d80, 0x00000216a2161640, 0x00000216a2162230,
0x00000216a21706c0, 0x00000216a2179790, 0x00000216a212a0e0, 0x00000216a390b930,
0x00000216a390bef0, 0x00000216a3a5abe0, 0x00000216a3a5b0b0, 0x00000216a423ad70,
0x00000216b0230af0, 0x00000216b299aa60, 0x00000216a479be30, 0x00000216b2e101f0,
0x00000216b3245070, 0x00000216b3245540, 0x00000216a4876030, 0x00000216a4876500,
0x00000216a42a3fb0, 0x00000216a42a1e00, 0x00000216a42a22d0, 0x00000216a42a4480,
0x00000216a42a52f0, 0x00000216a42a57c0, 0x00000216a42a4950, 0x00000216a42a27a0,
0x00000216a42a3140, 0x00000216a42a3610, 0x00000216a42a4e20, 0x00000216b2a4a8f0,
0x00000216b2a4c100, 0x00000216b366eaa0, 0x00000216b288f110, 0x00000216b2a0a3a0,
0x00000216b288fe30, 0x00000216b3176c30
}
Java Threads: ( => current thread )
=>0x00000216e2a20490 JavaThread "main" [_thread_in_native, id=44476, stack(0x0000004d5c500000,0x0000004d5c600000)]
0x00000216a2144690 JavaThread "Reference Handler" daemon [_thread_blocked, id=53852, stack(0x0000004d5cc00000,0x0000004d5cd00000)]
0x00000216a21452b0 JavaThread "Finalizer" daemon [_thread_blocked, id=2200, stack(0x0000004d5cd00000,0x0000004d5ce00000)]
0x00000216a215daf0 JavaThread "Signal Dispatcher" daemon [_thread_blocked, id=42548, stack(0x0000004d5ce00000,0x0000004d5cf00000)]
0x00000216a21604c0 JavaThread "Attach Listener" daemon [_thread_blocked, id=34984, stack(0x0000004d5cf00000,0x0000004d5d000000)]
0x00000216a2160d80 JavaThread "Service Thread" daemon [_thread_blocked, id=12136, stack(0x0000004d5d000000,0x0000004d5d100000)]
0x00000216a2161640 JavaThread "Monitor Deflation Thread" daemon [_thread_blocked, id=16316, stack(0x0000004d5d100000,0x0000004d5d200000)]
0x00000216a2162230 JavaThread "C2 CompilerThread0" daemon [_thread_blocked, id=22980, stack(0x0000004d5d200000,0x0000004d5d300000)]
0x00000216a21706c0 JavaThread "C1 CompilerThread0" daemon [_thread_blocked, id=14080, stack(0x0000004d5d300000,0x0000004d5d400000)]
0x00000216a2179790 JavaThread "Sweeper thread" daemon [_thread_in_vm, id=23672, stack(0x0000004d5d400000,0x0000004d5d500000)]
0x00000216a212a0e0 JavaThread "Common-Cleaner" daemon [_thread_blocked, id=46420, stack(0x0000004d5d500000,0x0000004d5d600000)]
0x00000216a390b930 JavaThread "C1 CompilerThread1" daemon [_thread_in_native, id=12960, stack(0x0000004d5d600000,0x0000004d5d700000)]
0x00000216a390bef0 JavaThread "C1 CompilerThread2" daemon [_thread_blocked, id=46320, stack(0x0000004d5d700000,0x0000004d5d800000)]
0x00000216a3a5abe0 JavaThread "Monitor Ctrl-Break" daemon [_thread_in_native, id=52364, stack(0x0000004d5d900000,0x0000004d5da00000)]
0x00000216a3a5b0b0 JavaThread "Notification Thread" daemon [_thread_blocked, id=59672, stack(0x0000004d5da00000,0x0000004d5db00000)]
0x00000216a423ad70 JavaThread "C1 CompilerThread3" daemon [_thread_in_native, id=3032, stack(0x0000004d5df00000,0x0000004d5e000000)]
0x00000216b0230af0 JavaThread "C2 CompilerThread1" daemon [_thread_blocked, id=61288, stack(0x0000004d5d800000,0x0000004d5d900000)]
0x00000216b299aa60 JavaThread "C2 CompilerThread2" daemon [_thread_blocked, id=18836, stack(0x0000004d5e000000,0x0000004d5e100000)]
0x00000216a479be30 JavaThread "JNA Cleaner" daemon [_thread_blocked, id=60872, stack(0x0000004d5e700000,0x0000004d5e800000)]
0x00000216b2e101f0 JavaThread "OpenGL Object Cleaner for ru.dbotthepony.kstarbound.client.gl.GLStateTracker@c7ba306" daemon [_thread_blocked, id=59492, stack(0x0000004d5e800000,0x0000004d5e900000)]
0x00000216b3245070 JavaThread "Starbound Lighting Thread 0" daemon [_thread_blocked, id=62268, stack(0x0000004d5f200000,0x0000004d5f300000)]
0x00000216b3245540 JavaThread "Starbound Lighting Thread 1" daemon [_thread_blocked, id=26384, stack(0x0000004d5f300000,0x0000004d5f400000)]
0x00000216a4876030 JavaThread "Starbound Lighting Thread 2" daemon [_thread_blocked, id=58660, stack(0x0000004d5f400000,0x0000004d5f500000)]
0x00000216a4876500 JavaThread "Starbound Lighting Thread 3" daemon [_thread_blocked, id=28780, stack(0x0000004d5f500000,0x0000004d5f600000)]
0x00000216a42a3fb0 JavaThread "Starbound Lighting Thread 4" daemon [_thread_blocked, id=58196, stack(0x0000004d5f600000,0x0000004d5f700000)]
0x00000216a42a1e00 JavaThread "Starbound Lighting Thread 5" daemon [_thread_blocked, id=55400, stack(0x0000004d5f700000,0x0000004d5f800000)]
0x00000216a42a22d0 JavaThread "Starbound Lighting Thread 6" daemon [_thread_blocked, id=17744, stack(0x0000004d5f800000,0x0000004d5f900000)]
0x00000216a42a4480 JavaThread "Starbound Lighting Thread 7" daemon [_thread_blocked, id=11368, stack(0x0000004d5f900000,0x0000004d5fa00000)]
0x00000216a42a52f0 JavaThread "Starbound Lighting Thread 8" daemon [_thread_blocked, id=39724, stack(0x0000004d5fa00000,0x0000004d5fb00000)]
0x00000216a42a57c0 JavaThread "Starbound Lighting Thread 9" daemon [_thread_blocked, id=42584, stack(0x0000004d5fb00000,0x0000004d5fc00000)]
0x00000216a42a4950 JavaThread "Starbound Lighting Thread 10" daemon [_thread_blocked, id=14760, stack(0x0000004d5fc00000,0x0000004d5fd00000)]
0x00000216a42a27a0 JavaThread "Starbound Lighting Thread 11" daemon [_thread_blocked, id=56672, stack(0x0000004d5fd00000,0x0000004d5fe00000)]
0x00000216a42a3140 JavaThread "Starbound Lighting Thread 12" daemon [_thread_blocked, id=37908, stack(0x0000004d5fe00000,0x0000004d5ff00000)]
0x00000216a42a3610 JavaThread "Starbound Lighting Thread 13" daemon [_thread_blocked, id=30428, stack(0x0000004d5ff00000,0x0000004d60000000)]
0x00000216a42a4e20 JavaThread "Starbound Lighting Thread 14" daemon [_thread_blocked, id=20316, stack(0x0000004d60000000,0x0000004d60100000)]
0x00000216b2a4a8f0 JavaThread "Starbound Lighting Thread 15" daemon [_thread_blocked, id=10956, stack(0x0000004d60100000,0x0000004d60200000)]
0x00000216b2a4c100 JavaThread "Asset Loader" daemon [_thread_in_Java, id=35652, stack(0x0000004d60400000,0x0000004d60500000)]
0x00000216b366eaa0 JavaThread "C2 CompilerThread3" daemon [_thread_blocked, id=49424, stack(0x0000004d60500000,0x0000004d60600000)]
0x00000216b288f110 JavaThread "C2 CompilerThread4" daemon [_thread_blocked, id=59124, stack(0x0000004d60600000,0x0000004d60700000)]
0x00000216b2a0a3a0 JavaThread "C2 CompilerThread5" daemon [_thread_blocked, id=34048, stack(0x0000004d60700000,0x0000004d60800000)]
0x00000216b288fe30 JavaThread "C2 CompilerThread6" daemon [_thread_blocked, id=51652, stack(0x0000004d60800000,0x0000004d60900000)]
0x00000216b3176c30 JavaThread "C2 CompilerThread7" daemon [_thread_blocked, id=30504, stack(0x0000004d60900000,0x0000004d60a00000)]
Other Threads:
0x00000216a213f740 VMThread "VM Thread" [stack: 0x0000004d5cb00000,0x0000004d5cc00000] [id=39668]
0x00000216a3afd4b0 WatcherThread [stack: 0x0000004d5db00000,0x0000004d5dc00000] [id=29464]
0x00000216e2ad6630 GCTaskThread "GC Thread#0" [stack: 0x0000004d5c600000,0x0000004d5c700000] [id=22132]
0x00000216a4121560 GCTaskThread "GC Thread#1" [stack: 0x0000004d5dc00000,0x0000004d5dd00000] [id=31040]
0x00000216a3d7f360 GCTaskThread "GC Thread#2" [stack: 0x0000004d5dd00000,0x0000004d5de00000] [id=62292]
0x00000216a4162f60 GCTaskThread "GC Thread#3" [stack: 0x0000004d5de00000,0x0000004d5df00000] [id=48496]
0x00000216a47a91c0 GCTaskThread "GC Thread#4" [stack: 0x0000004d5e900000,0x0000004d5ea00000] [id=27928]
0x00000216a47a8c60 GCTaskThread "GC Thread#5" [stack: 0x0000004d5ea00000,0x0000004d5eb00000] [id=59704]
0x00000216a47a8f10 GCTaskThread "GC Thread#6" [stack: 0x0000004d5eb00000,0x0000004d5ec00000] [id=58096]
0x00000216a47a9470 GCTaskThread "GC Thread#7" [stack: 0x0000004d5ec00000,0x0000004d5ed00000] [id=39348]
0x00000216a47a7ef0 GCTaskThread "GC Thread#8" [stack: 0x0000004d5ed00000,0x0000004d5ee00000] [id=59488]
0x00000216a47a81a0 GCTaskThread "GC Thread#9" [stack: 0x0000004d5ee00000,0x0000004d5ef00000] [id=55024]
0x00000216a47a9720 GCTaskThread "GC Thread#10" [stack: 0x0000004d5ef00000,0x0000004d5f000000] [id=39988]
0x00000216a47a99d0 GCTaskThread "GC Thread#11" [stack: 0x0000004d5f000000,0x0000004d5f100000] [id=17512]
0x00000216b2e75b80 GCTaskThread "GC Thread#12" [stack: 0x0000004d5f100000,0x0000004d5f200000] [id=55136]
0x00000216e2ae7440 ConcurrentGCThread "G1 Main Marker" [stack: 0x0000004d5c700000,0x0000004d5c800000] [id=43248]
0x00000216e2ae8500 ConcurrentGCThread "G1 Conc#0" [stack: 0x0000004d5c800000,0x0000004d5c900000] [id=63080]
0x00000216b2e72870 ConcurrentGCThread "G1 Conc#1" [stack: 0x0000004d60200000,0x0000004d60300000] [id=52788]
0x00000216b2e72b20 ConcurrentGCThread "G1 Conc#2" [stack: 0x0000004d60300000,0x0000004d60400000] [id=62424]
0x00000216a1ff5860 ConcurrentGCThread "G1 Refine#0" [stack: 0x0000004d5c900000,0x0000004d5ca00000] [id=55476]
0x00000216a1ff71a0 ConcurrentGCThread "G1 Service" [stack: 0x0000004d5ca00000,0x0000004d5cb00000] [id=44096]
Threads with active compile tasks:
C1 CompilerThread3 2087 3337 3 com.google.gson.stream.JsonReader::nextQuotedValue (270 bytes)
VM state: not at safepoint (normal execution)
VM Mutex/Monitor currently owned by a thread: ([mutex/lock_event])
[0x00000216e2a1bf10] CompiledIC_lock - owner thread: 0x00000216a2179790
Heap address: 0x0000000401000000, size: 16368 MB, Compressed Oops mode: Zero based, Oop shift amount: 3
CDS archive(s) mapped at: [0x0000000800000000-0x0000000800bc0000-0x0000000800bc0000), size 12320768, SharedBaseAddress: 0x0000000800000000, ArchiveRelocationMode: 0.
Compressed class space mapped at: 0x0000000800c00000-0x0000000840c00000, reserved size: 1073741824
Narrow klass base: 0x0000000800000000, Narrow klass shift: 0, Narrow klass range: 0x100000000
GC Precious Log:
CPUs: 16 total, 16 available
Memory: 65457M
Large Page Support: Disabled
NUMA Support: Disabled
Compressed Oops: Enabled (Zero based)
Heap Region Size: 8M
Heap Min Capacity: 128M
Heap Initial Capacity: 128M
Heap Max Capacity: 16368M
Pre-touch: Disabled
Parallel Workers: 13
Concurrent Workers: 3
Concurrent Refinement Workers: 13
Periodic GC: Disabled
Heap:
garbage-first heap total 131072K, used 61882K [0x0000000401000000, 0x0000000800000000)
region size 8192K, 6 young (49152K), 2 survivors (16384K)
Metaspace used 28134K, committed 28480K, reserved 1081344K
class space used 2992K, committed 3136K, reserved 1048576K
Heap Regions: E=young(eden), S=young(survivor), O=old, HS=humongous(starts), HC=humongous(continues), CS=collection set, F=free, OA=open archive, CA=closed archive, TAMS=top-at-mark-start (previous, next)
| 0|0x0000000401000000, 0x000000040146ea00, 0x0000000401800000| 55%| O| |TAMS 0x0000000401446e00, 0x0000000401000000| Untracked
| 1|0x0000000401800000, 0x0000000402000000, 0x0000000402000000|100%|HS| |TAMS 0x0000000401800000, 0x0000000401800000| Complete
| 2|0x0000000402000000, 0x0000000402800000, 0x0000000402800000|100%|HC| |TAMS 0x0000000402000000, 0x0000000402000000| Complete
| 3|0x0000000402800000, 0x0000000402800000, 0x0000000403000000| 0%| F| |TAMS 0x0000000402800000, 0x0000000402800000| Untracked
| 4|0x0000000403000000, 0x0000000403000000, 0x0000000403800000| 0%| F| |TAMS 0x0000000403000000, 0x0000000403000000| Untracked
| 5|0x0000000403800000, 0x0000000404000000, 0x0000000404000000|100%| S|CS|TAMS 0x0000000403800000, 0x0000000403800000| Complete
| 6|0x0000000404000000, 0x0000000404800000, 0x0000000404800000|100%| S|CS|TAMS 0x0000000404000000, 0x0000000404000000| Complete
| 7|0x0000000404800000, 0x0000000404800000, 0x0000000405000000| 0%| F| |TAMS 0x0000000404800000, 0x0000000404800000| Untracked
| 8|0x0000000405000000, 0x0000000405000000, 0x0000000405800000| 0%| F| |TAMS 0x0000000405000000, 0x0000000405000000| Untracked
| 9|0x0000000405800000, 0x0000000405800000, 0x0000000406000000| 0%| F| |TAMS 0x0000000405800000, 0x0000000405800000| Untracked
| 10|0x0000000406000000, 0x0000000406000000, 0x0000000406800000| 0%| F| |TAMS 0x0000000406000000, 0x0000000406000000| Untracked
| 11|0x0000000406800000, 0x0000000406800000, 0x0000000407000000| 0%| F| |TAMS 0x0000000406800000, 0x0000000406800000| Untracked
| 12|0x0000000407000000, 0x000000040761a348, 0x0000000407800000| 76%| E| |TAMS 0x0000000407000000, 0x0000000407000000| Complete
| 13|0x0000000407800000, 0x0000000408000000, 0x0000000408000000|100%| E|CS|TAMS 0x0000000407800000, 0x0000000407800000| Complete
| 14|0x0000000408000000, 0x0000000408800000, 0x0000000408800000|100%| E|CS|TAMS 0x0000000408000000, 0x0000000408000000| Complete
| 15|0x0000000408800000, 0x0000000409000000, 0x0000000409000000|100%| E|CS|TAMS 0x0000000408800000, 0x0000000408800000| Complete
Card table byte_map: [0x00000216fbd70000,0x00000216fdd70000] _byte_map_base: 0x00000216f9d68000
Marking Bits (Prev, Next): (CMBitMap*) 0x00000216e2ad6b90, (CMBitMap*) 0x00000216e2ad6b50
Prev Bits: [0x000002168ffc0000, 0x000002169ff80000)
Next Bits: [0x0000021680000000, 0x000002168ffc0000)
Polling page: 0x00000216e21f0000
Metaspace:
Usage:
Non-class: 24.55 MB used.
Class: 2.92 MB used.
Both: 27.48 MB used.
Virtual space:
Non-class space: 32.00 MB reserved, 24.75 MB ( 77%) committed, 4 nodes.
Class space: 1.00 GB reserved, 3.06 MB ( <1%) committed, 1 nodes.
Both: 1.03 GB reserved, 27.81 MB ( 3%) committed.
Chunk freelists:
Non-Class: 2.55 MB
Class: 944.00 KB
Both: 3.47 MB
MaxMetaspaceSize: unlimited
CompressedClassSpaceSize: 1.00 GB
Initial GC threshold: 21.00 MB
Current GC threshold: 35.25 MB
CDS: on
MetaspaceReclaimPolicy: balanced
- commit_granule_bytes: 65536.
- commit_granule_words: 8192.
- virtual_space_node_default_size: 1048576.
- enlarge_chunks_in_place: 1.
- new_chunks_are_fully_committed: 0.
- uncommit_free_chunks: 1.
- use_allocation_guard: 0.
- handle_deallocations: 1.
Internal statistics:
num_allocs_failed_limit: 3.
num_arena_births: 306.
num_arena_deaths: 0.
num_vsnodes_births: 5.
num_vsnodes_deaths: 0.
num_space_committed: 443.
num_space_uncommitted: 0.
num_chunks_returned_to_freelist: 3.
num_chunks_taken_from_freelist: 1157.
num_chunk_merges: 3.
num_chunk_splits: 841.
num_chunks_enlarged: 673.
num_purges: 0.
num_inconsistent_stats: 0.
CodeHeap 'non-profiled nmethods': size=119168Kb used=1947Kb max_used=1947Kb free=117220Kb
bounds [0x00000216f2080000, 0x00000216f22f0000, 0x00000216f94e0000]
CodeHeap 'profiled nmethods': size=119104Kb used=6048Kb max_used=6048Kb free=113055Kb
bounds [0x00000216eac30000, 0x00000216eb220000, 0x00000216f2080000]
CodeHeap 'non-nmethods': size=7488Kb used=3431Kb max_used=3488Kb free=4056Kb
bounds [0x00000216ea4e0000, 0x00000216ea850000, 0x00000216eac30000]
total_blobs=4529 nmethods=3327 adapters=1111
compilation: enabled
stopped_count=0, restarted_count=0
full_count=0
Compilation events (20 events):
Event: 2.013 Thread 0x00000216a390b930 3241 3 kotlin.collections.CollectionsKt___CollectionsKt::joinTo (156 bytes)
Event: 2.013 Thread 0x00000216a423ad70 nmethod 3238 0x00000216eb1d8f90 code [0x00000216eb1d92e0, 0x00000216eb1da578]
Event: 2.014 Thread 0x00000216a390bef0 nmethod 3240 0x00000216eb1dae10 code [0x00000216eb1db280, 0x00000216eb1dcf88]
Event: 2.014 Thread 0x00000216a423ad70 3242 1 kotlin.reflect.jvm.internal.impl.serialization.deserialization.descriptors.DeserializedClassDescriptor::getC (5 bytes)
Event: 2.014 Thread 0x00000216a423ad70 nmethod 3242 0x00000216f224a190 code [0x00000216f224a320, 0x00000216f224a3f8]
Event: 2.014 Thread 0x00000216a390b930 nmethod 3241 0x00000216eb1dd990 code [0x00000216eb1ddea0, 0x00000216eb1e03b8]
Event: 2.014 Thread 0x00000216a390b930 3243 3 kotlin.reflect.jvm.internal.impl.incremental.UtilsKt::record (65 bytes)
Event: 2.014 Thread 0x00000216a423ad70 3244 3 kotlin.reflect.jvm.internal.impl.incremental.UtilsKt::recordPackageLookup (98 bytes)
Event: 2.015 Thread 0x00000216a390bef0 3245 3 kotlin.reflect.jvm.internal.impl.storage.LockBasedStorageManager$MapBasedMemoizedFunctionToNotNull::invoke (56 bytes)
Event: 2.015 Thread 0x00000216a390bef0 nmethod 3245 0x00000216eb1e1090 code [0x00000216eb1e1240, 0x00000216eb1e1418]
Event: 2.015 Thread 0x00000216a423ad70 nmethod 3244 0x00000216eb1e1510 code [0x00000216eb1e18a0, 0x00000216eb1e2d78]
Event: 2.015 Thread 0x00000216a390b930 nmethod 3243 0x00000216eb1e3510 code [0x00000216eb1e3900, 0x00000216eb1e50f8]
Event: 2.015 Thread 0x00000216a390bef0 3246 3 kotlin.reflect.jvm.internal.impl.protobuf.GeneratedMessageLite$ExtendableMessage::verifyExtensionContainingType (22 bytes)
Event: 2.016 Thread 0x00000216a390bef0 nmethod 3246 0x00000216eb1e5990 code [0x00000216eb1e5b60, 0x00000216eb1e5e78]
Event: 2.016 Thread 0x00000216a21706c0 3247 3 kotlin.reflect.jvm.internal.impl.serialization.deserialization.descriptors.DeserializedAnnotations::isEmpty (10 bytes)
Event: 2.016 Thread 0x00000216a423ad70 3248 3 kotlin.reflect.jvm.internal.impl.serialization.deserialization.descriptors.DeserializedAnnotations::getAnnotations (17 bytes)
Event: 2.016 Thread 0x00000216a423ad70 nmethod 3248 0x00000216eb1e5f90 code [0x00000216eb1e6240, 0x00000216eb1e6f08]
Event: 2.016 Thread 0x00000216a21706c0 nmethod 3247 0x00000216eb1e7390 code [0x00000216eb1e7660, 0x00000216eb1e8438]
Event: 2.022 Thread 0x00000216b288fe30 3249 4 kotlin.collections.ArrayDeque::access$positiveMod (6 bytes)
Event: 2.023 Thread 0x00000216b288fe30 nmethod 3249 0x00000216f224a490 code [0x00000216f224a600, 0x00000216f224a698]
GC Heap History (10 events):
Event: 0.190 GC heap before
{Heap before GC invocations=0 (full 0):
garbage-first heap total 131072K, used 16384K [0x0000000401000000, 0x0000000800000000)
region size 8192K, 2 young (16384K), 0 survivors (0K)
Metaspace used 2599K, committed 2752K, reserved 1056768K
class space used 257K, committed 320K, reserved 1048576K
}
Event: 0.192 GC heap after
{Heap after GC invocations=1 (full 0):
garbage-first heap total 131072K, used 4549K [0x0000000401000000, 0x0000000800000000)
region size 8192K, 1 young (8192K), 1 survivors (8192K)
Metaspace used 2599K, committed 2752K, reserved 1056768K
class space used 257K, committed 320K, reserved 1048576K
}
Event: 0.249 GC heap before
{Heap before GC invocations=1 (full 0):
garbage-first heap total 131072K, used 12741K [0x0000000401000000, 0x0000000800000000)
region size 8192K, 2 young (16384K), 1 survivors (8192K)
Metaspace used 3796K, committed 3968K, reserved 1056768K
class space used 424K, committed 512K, reserved 1048576K
}
Event: 0.251 GC heap after
{Heap after GC invocations=2 (full 0):
garbage-first heap total 131072K, used 4732K [0x0000000401000000, 0x0000000800000000)
region size 8192K, 1 young (8192K), 1 survivors (8192K)
Metaspace used 3796K, committed 3968K, reserved 1056768K
class space used 424K, committed 512K, reserved 1048576K
}
Event: 1.057 GC heap before
{Heap before GC invocations=2 (full 0):
garbage-first heap total 131072K, used 37500K [0x0000000401000000, 0x0000000800000000)
region size 8192K, 5 young (40960K), 1 survivors (8192K)
Metaspace used 15475K, committed 15744K, reserved 1064960K
class space used 1617K, committed 1728K, reserved 1048576K
}
Event: 1.062 GC heap after
{Heap after GC invocations=3 (full 0):
garbage-first heap total 131072K, used 8367K [0x0000000401000000, 0x0000000800000000)
region size 8192K, 1 young (8192K), 1 survivors (8192K)
Metaspace used 15475K, committed 15744K, reserved 1064960K
class space used 1617K, committed 1728K, reserved 1048576K
}
Event: 1.343 GC heap before
{Heap before GC invocations=3 (full 0):
garbage-first heap total 131072K, used 32943K [0x0000000401000000, 0x0000000800000000)
region size 8192K, 5 young (40960K), 1 survivors (8192K)
Metaspace used 21306K, committed 21504K, reserved 1073152K
class space used 2247K, committed 2368K, reserved 1048576K
}
Event: 1.347 GC heap after
{Heap after GC invocations=4 (full 0):
garbage-first heap total 131072K, used 9360K [0x0000000401000000, 0x0000000800000000)
region size 8192K, 1 young (8192K), 1 survivors (8192K)
Metaspace used 21306K, committed 21504K, reserved 1073152K
class space used 2247K, committed 2368K, reserved 1048576K
}
Event: 1.675 GC heap before
{Heap before GC invocations=5 (full 0):
garbage-first heap total 131072K, used 91280K [0x0000000401000000, 0x0000000800000000)
region size 8192K, 9 young (73728K), 1 survivors (8192K)
Metaspace used 25311K, committed 25536K, reserved 1073152K
class space used 2674K, committed 2752K, reserved 1048576K
}
Event: 1.688 GC heap after
{Heap after GC invocations=6 (full 0):
garbage-first heap total 131072K, used 37306K [0x0000000401000000, 0x0000000800000000)
region size 8192K, 2 young (16384K), 2 survivors (16384K)
Metaspace used 25311K, committed 25536K, reserved 1073152K
class space used 2674K, committed 2752K, reserved 1048576K
}
Deoptimization events (20 events):
Event: 1.943 Thread 0x00000216e2a20490 Uncommon trap: trap_request=0xfffffff4 fr.pc=0x00000216f221d984 relative=0x0000000000002184
Event: 1.943 Thread 0x00000216e2a20490 Uncommon trap: reason=null_check action=make_not_entrant pc=0x00000216f221d984 method=com.sun.jna.Structure.readField(Lcom/sun/jna/Structure$StructField;)Ljava/lang/Object; @ 32 c2
Event: 1.943 Thread 0x00000216e2a20490 DEOPT PACKING pc=0x00000216f221d984 sp=0x0000004d5c5fec00
Event: 1.943 Thread 0x00000216e2a20490 DEOPT UNPACKING pc=0x00000216ea5323a3 sp=0x0000004d5c5fec00 mode 2
Event: 1.945 Thread 0x00000216b2a4c100 Uncommon trap: trap_request=0xffffffc6 fr.pc=0x00000216f21f6b6c relative=0x000000000000004c
Event: 1.945 Thread 0x00000216b2a4c100 Uncommon trap: reason=bimorphic_or_optimized_type_check action=maybe_recompile pc=0x00000216f21f6b6c method=kotlin.collections.CollectionsKt__CollectionsKt.getLastIndex(Ljava/util/List;)I @ 7 c2
Event: 1.945 Thread 0x00000216b2a4c100 DEOPT PACKING pc=0x00000216f21f6b6c sp=0x0000004d604fda10
Event: 1.945 Thread 0x00000216b2a4c100 DEOPT UNPACKING pc=0x00000216ea5323a3 sp=0x0000004d604fd9b0 mode 2
Event: 1.947 Thread 0x00000216b2a4c100 Uncommon trap: trap_request=0xffffffc6 fr.pc=0x00000216f21f6b6c relative=0x000000000000004c
Event: 1.947 Thread 0x00000216b2a4c100 Uncommon trap: reason=bimorphic_or_optimized_type_check action=maybe_recompile pc=0x00000216f21f6b6c method=kotlin.collections.CollectionsKt__CollectionsKt.getLastIndex(Ljava/util/List;)I @ 7 c2
Event: 1.947 Thread 0x00000216b2a4c100 DEOPT PACKING pc=0x00000216f21f6b6c sp=0x0000004d604fdd30
Event: 1.947 Thread 0x00000216b2a4c100 DEOPT UNPACKING pc=0x00000216ea5323a3 sp=0x0000004d604fdcd0 mode 2
Event: 1.948 Thread 0x00000216b2a4c100 Uncommon trap: trap_request=0xffffffc6 fr.pc=0x00000216f21f6b6c relative=0x000000000000004c
Event: 1.948 Thread 0x00000216b2a4c100 Uncommon trap: reason=bimorphic_or_optimized_type_check action=maybe_recompile pc=0x00000216f21f6b6c method=kotlin.collections.CollectionsKt__CollectionsKt.getLastIndex(Ljava/util/List;)I @ 7 c2
Event: 1.948 Thread 0x00000216b2a4c100 DEOPT PACKING pc=0x00000216f21f6b6c sp=0x0000004d604fda10
Event: 1.948 Thread 0x00000216b2a4c100 DEOPT UNPACKING pc=0x00000216ea5323a3 sp=0x0000004d604fd9b0 mode 2
Event: 1.984 Thread 0x00000216b2a4c100 DEOPT PACKING pc=0x00000216eb16809e sp=0x0000004d604fd970
Event: 1.984 Thread 0x00000216b2a4c100 DEOPT UNPACKING pc=0x00000216ea532b43 sp=0x0000004d604fce80 mode 0
Event: 1.993 Thread 0x00000216b2a4c100 DEOPT PACKING pc=0x00000216eb16809e sp=0x0000004d604f92a0
Event: 1.993 Thread 0x00000216b2a4c100 DEOPT UNPACKING pc=0x00000216ea532b43 sp=0x0000004d604f87b0 mode 0
Classes unloaded (0 events):
No events
Classes redefined (0 events):
No events
Internal exceptions (20 events):
Event: 0.721 Thread 0x00000216e2a20490 Exception <a 'sun/nio/fs/WindowsException'{0x00000004073a3f90}> (0x00000004073a3f90)
thrown [e:\jenkins\tmp\workspace\build\src\src\hotspot\share\prims\jni.cpp, line 516]
Event: 0.723 Thread 0x00000216e2a20490 Exception <a 'sun/nio/fs/WindowsException'{0x00000004073aea40}> (0x00000004073aea40)
thrown [e:\jenkins\tmp\workspace\build\src\src\hotspot\share\prims\jni.cpp, line 516]
Event: 0.723 Thread 0x00000216e2a20490 Exception <a 'sun/nio/fs/WindowsException'{0x00000004073aed28}> (0x00000004073aed28)
thrown [e:\jenkins\tmp\workspace\build\src\src\hotspot\share\prims\jni.cpp, line 516]
Event: 0.813 Thread 0x00000216e2a20490 Exception <a 'java/lang/NoSuchMethodError'{0x00000004076c2de8}: 'java.lang.Object java.lang.invoke.DirectMethodHandle$Holder.invokeStaticInit(java.lang.Object, int, int, int, int)'> (0x00000004076c2de8)
thrown [e:\jenkins\tmp\workspace\build\src\src\hotspot\share\interpreter\linkResolver.cpp, line 766]
Event: 0.871 Thread 0x00000216e2a20490 Exception <a 'java/lang/NoSuchMethodError'{0x0000000407789a88}: 'java.lang.Object java.lang.invoke.DirectMethodHandle$Holder.invokeStaticInit(java.lang.Object, java.lang.Object, int, int, int, int)'> (0x0000000407789a88)
thrown [e:\jenkins\tmp\workspace\build\src\src\hotspot\share\interpreter\linkResolver.cpp, line 766]
Event: 0.929 Thread 0x00000216e2a20490 Implicit null exception at 0x00000216f20ab1f2 to 0x00000216f20ab7cc
Event: 0.992 Thread 0x00000216e2a20490 Exception <a 'java/lang/NoSuchMethodError'{0x0000000406cfb3f8}: 'int java.lang.invoke.DirectMethodHandle$Holder.invokeSpecialIFC(java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object)'> (0x0000000406cfb3f8)
thrown [e:\jenkins\tmp\workspace\build\src\src\hotspot\share\interpreter\linkResolver.cpp, line 766]
Event: 1.009 Thread 0x00000216e2a20490 Exception <a 'java/lang/NoSuchMethodError'{0x0000000406e3e580}: 'java.lang.Object java.lang.invoke.DirectMethodHandle$Holder.newInvokeSpecial(java.lang.Object, java.lang.Object, java.lang.Object, int)'> (0x0000000406e3e580)
thrown [e:\jenkins\tmp\workspace\build\src\src\hotspot\share\interpreter\linkResolver.cpp, line 766]
Event: 1.010 Thread 0x00000216e2a20490 Exception <a 'java/lang/NoSuchMethodError'{0x0000000406e429b0}: 'java.lang.Object java.lang.invoke.DirectMethodHandle$Holder.invokeSpecial(java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object, int)'> (0x0000000406e429b0)
thrown [e:\jenkins\tmp\workspace\build\src\src\hotspot\share\interpreter\linkResolver.cpp, line 766]
Event: 1.010 Thread 0x00000216e2a20490 Exception <a 'java/lang/NoSuchMethodError'{0x0000000406e462e8}: 'java.lang.Object java.lang.invoke.Invokers$Holder.invoke_MT(java.lang.Object, java.lang.Object, java.lang.Object, int, java.lang.Object)'> (0x0000000406e462e8)
thrown [e:\jenkins\tmp\workspace\build\src\src\hotspot\share\interpreter\linkResolver.cpp, line 766]
Event: 1.084 Thread 0x00000216e2a20490 Exception <a 'java/lang/NoSuchMethodError'{0x0000000408b157c0}: 'int java.lang.invoke.DirectMethodHandle$Holder.invokeVirtual(java.lang.Object, java.lang.Object, java.lang.Object)'> (0x0000000408b157c0)
thrown [e:\jenkins\tmp\workspace\build\src\src\hotspot\share\interpreter\linkResolver.cpp, line 766]
Event: 1.116 Thread 0x00000216e2a20490 Exception <a 'java/lang/NoSuchMethodError'{0x0000000408df10b0}: 'java.lang.Object java.lang.invoke.Invokers$Holder.linkToTargetMethod(java.lang.Object, java.lang.Object, int, java.lang.Object)'> (0x0000000408df10b0)
thrown [e:\jenkins\tmp\workspace\build\src\src\hotspot\share\interpreter\linkResolver.cpp, line 766]
Event: 1.119 Thread 0x00000216e2a20490 Exception <a 'java/lang/NoSuchMethodError'{0x0000000408e34098}: 'void java.lang.invoke.DirectMethodHandle$Holder.invokeInterface(java.lang.Object, java.lang.Object)'> (0x0000000408e34098)
thrown [e:\jenkins\tmp\workspace\build\src\src\hotspot\share\interpreter\linkResolver.cpp, line 766]
Event: 1.168 Thread 0x00000216e2a20490 Exception <a 'java/lang/NoSuchMethodError'{0x00000004084191f8}: 'java.lang.Object java.lang.invoke.DirectMethodHandle$Holder.invokeVirtual(java.lang.Object, java.lang.Object, java.lang.Object)'> (0x00000004084191f8)
thrown [e:\jenkins\tmp\workspace\build\src\src\hotspot\share\interpreter\linkResolver.cpp, line 766]
Event: 1.510 Thread 0x00000216e2a20490 Exception <a 'java/lang/NoSuchMethodError'{0x0000000408491738}: 'int java.lang.invoke.DirectMethodHandle$Holder.invokeStaticInit(java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object)'> (0x0000000408491738)
thrown [e:\jenkins\tmp\workspace\build\src\src\hotspot\share\interpreter\linkResolver.cpp, line 766]
Event: 1.710 Thread 0x00000216b2a4c100 Exception <a 'java/lang/NoSuchMethodError'{0x0000000408da1c48}: 'void java.lang.invoke.DirectMethodHandle$Holder.invokeInterface(java.lang.Object, java.lang.Object, java.lang.Object)'> (0x0000000408da1c48)
thrown [e:\jenkins\tmp\workspace\build\src\src\hotspot\share\interpreter\linkResolver.cpp, line 766]
Event: 1.798 Thread 0x00000216e2a20490 Exception <a 'java/lang/NoSuchMethodError'{0x0000000407a7f9c8}: 'void java.lang.invoke.DirectMethodHandle$Holder.invokeStatic(java.lang.Object, java.lang.Object, int)'> (0x0000000407a7f9c8)
thrown [e:\jenkins\tmp\workspace\build\src\src\hotspot\share\interpreter\linkResolver.cpp, line 766]
Event: 1.807 Thread 0x00000216e2a20490 Exception <a 'java/lang/NoSuchMethodError'{0x0000000407aa39c0}: 'java.lang.Object java.lang.invoke.DirectMethodHandle$Holder.invokeStatic(java.lang.Object, java.lang.Object, int, java.lang.Object)'> (0x0000000407aa39c0)
thrown [e:\jenkins\tmp\workspace\build\src\src\hotspot\share\interpreter\linkResolver.cpp, line 766]
Event: 1.864 Thread 0x00000216e2a20490 Exception <a 'java/lang/NoSuchMethodError'{0x0000000407c8c148}: 'java.lang.Object java.lang.invoke.DirectMethodHandle$Holder.invokeSpecial(java.lang.Object, java.lang.Object, double, double)'> (0x0000000407c8c148)
thrown [e:\jenkins\tmp\workspace\build\src\src\hotspot\share\interpreter\linkResolver.cpp, line 766]
Event: 1.943 Thread 0x00000216e2a20490 Implicit null exception at 0x00000216f221b86f to 0x00000216f221d968
VM Operations (20 events):
Event: 0.966 Executing VM operation: ICBufferFull
Event: 0.966 Executing VM operation: ICBufferFull done
Event: 1.057 Executing VM operation: G1CollectForAllocation
Event: 1.062 Executing VM operation: G1CollectForAllocation done
Event: 1.121 Executing VM operation: HandshakeAllThreads
Event: 1.121 Executing VM operation: HandshakeAllThreads done
Event: 1.188 Executing VM operation: HandshakeAllThreads
Event: 1.188 Executing VM operation: HandshakeAllThreads done
Event: 1.343 Executing VM operation: CollectForMetadataAllocation
Event: 1.347 Executing VM operation: CollectForMetadataAllocation done
Event: 1.353 Executing VM operation: G1Concurrent
Event: 1.355 Executing VM operation: G1Concurrent done
Event: 1.356 Executing VM operation: G1Concurrent
Event: 1.356 Executing VM operation: G1Concurrent done
Event: 1.608 Executing VM operation: HandshakeAllThreads
Event: 1.608 Executing VM operation: HandshakeAllThreads done
Event: 1.675 Executing VM operation: G1CollectForAllocation
Event: 1.689 Executing VM operation: G1CollectForAllocation done
Event: 1.859 Executing VM operation: ICBufferFull
Event: 1.859 Executing VM operation: ICBufferFull done
Events (20 events):
Event: 1.710 loading class java/util/stream/Streams$2
Event: 1.710 loading class java/util/stream/Streams$2 done
Event: 1.770 loading class java/nio/ByteBufferAsFloatBufferL
Event: 1.770 loading class java/nio/ByteBufferAsFloatBufferL done
Event: 1.771 loading class java/nio/BufferMismatch
Event: 1.771 loading class java/nio/BufferMismatch done
Event: 1.773 loading class java/util/PrimitiveIterator$OfInt
Event: 1.773 loading class java/util/PrimitiveIterator
Event: 1.773 loading class java/util/PrimitiveIterator done
Event: 1.773 loading class java/util/PrimitiveIterator$OfInt done
Event: 1.803 loading class java/io/IOError
Event: 1.803 loading class java/io/IOError done
Event: 1.816 loading class sun/reflect/annotation/AnnotationSupport
Event: 1.817 loading class sun/reflect/annotation/AnnotationSupport done
Event: 1.817 loading class java/lang/annotation/Repeatable
Event: 1.817 loading class java/lang/annotation/Repeatable done
Event: 1.864 loading class jdk/internal/math/FDBigInteger
Event: 1.865 loading class jdk/internal/math/FDBigInteger done
Event: 1.921 loading class java/io/NotSerializableException
Event: 1.921 loading class java/io/NotSerializableException done
Dynamic libraries:
0x00007ff760040000 - 0x00007ff76004e000 C:\Users\dbott\.gradle\jdks\jdk-17.0.1+12\bin\java.exe
0x00007ffbd8050000 - 0x00007ffbd8245000 C:\Windows\SYSTEM32\ntdll.dll
0x00007ffbd7e90000 - 0x00007ffbd7f4d000 C:\Windows\System32\KERNEL32.DLL
0x00007ffbd5990000 - 0x00007ffbd5c5d000 C:\Windows\System32\KERNELBASE.dll
0x00007ffbd5760000 - 0x00007ffbd5860000 C:\Windows\System32\ucrtbase.dll
0x00007ffbc8fe0000 - 0x00007ffbc8ff8000 C:\Users\dbott\.gradle\jdks\jdk-17.0.1+12\bin\jli.dll
0x00007ffbc8eb0000 - 0x00007ffbc8ec9000 C:\Users\dbott\.gradle\jdks\jdk-17.0.1+12\bin\VCRUNTIME140.dll
0x00007ffbd6df0000 - 0x00007ffbd6f90000 C:\Windows\System32\USER32.dll
0x00007ffbd58f0000 - 0x00007ffbd5912000 C:\Windows\System32\win32u.dll
0x00007ffbc2400000 - 0x00007ffbc269a000 C:\Windows\WinSxS\amd64_microsoft.windows.common-controls_6595b64144ccf1df_6.0.19041.1110_none_60b5254171f9507e\COMCTL32.dll
0x00007ffbd7a20000 - 0x00007ffbd7a4a000 C:\Windows\System32\GDI32.dll
0x00007ffbd6410000 - 0x00007ffbd64ae000 C:\Windows\System32\msvcrt.dll
0x00007ffbd5d00000 - 0x00007ffbd5e0b000 C:\Windows\System32\gdi32full.dll
0x00007ffbd5c60000 - 0x00007ffbd5cfd000 C:\Windows\System32\msvcp_win.dll
0x00007ffbd6dc0000 - 0x00007ffbd6df0000 C:\Windows\System32\IMM32.DLL
0x00007ffbcd340000 - 0x00007ffbcd34c000 C:\Users\dbott\.gradle\jdks\jdk-17.0.1+12\bin\vcruntime140_1.dll
0x00007ffba9ae0000 - 0x00007ffba9b71000 C:\Users\dbott\.gradle\jdks\jdk-17.0.1+12\bin\msvcp140.dll
0x00007ffb54660000 - 0x00007ffb552a6000 C:\Users\dbott\.gradle\jdks\jdk-17.0.1+12\bin\server\jvm.dll
0x00007ffbd70b0000 - 0x00007ffbd715e000 C:\Windows\System32\ADVAPI32.dll
0x00007ffbd7500000 - 0x00007ffbd759c000 C:\Windows\System32\sechost.dll
0x00007ffbd6c90000 - 0x00007ffbd6db5000 C:\Windows\System32\RPCRT4.dll
0x00007ffbd7f50000 - 0x00007ffbd7f58000 C:\Windows\System32\PSAPI.DLL
0x00007ffbc01d0000 - 0x00007ffbc01d9000 C:\Windows\SYSTEM32\WSOCK32.dll
0x00007ffbcbd90000 - 0x00007ffbcbdb7000 C:\Windows\SYSTEM32\WINMM.dll
0x00007ffbcdb10000 - 0x00007ffbcdb1a000 C:\Windows\SYSTEM32\VERSION.dll
0x00007ffbd7270000 - 0x00007ffbd72db000 C:\Windows\System32\WS2_32.dll
0x00007ffbd3680000 - 0x00007ffbd3692000 C:\Windows\SYSTEM32\kernel.appcore.dll
0x00007ffbc9240000 - 0x00007ffbc924a000 C:\Users\dbott\.gradle\jdks\jdk-17.0.1+12\bin\jimage.dll
0x00007ffbcf0e0000 - 0x00007ffbcf2c4000 C:\Windows\SYSTEM32\DBGHELP.DLL
0x00007ffbc23d0000 - 0x00007ffbc23fc000 C:\Windows\SYSTEM32\dbgcore.DLL
0x00007ffbd5860000 - 0x00007ffbd58e2000 C:\Windows\System32\bcryptPrimitives.dll
0x00007ffbcd790000 - 0x00007ffbcd79e000 C:\Users\dbott\.gradle\jdks\jdk-17.0.1+12\bin\instrument.dll
0x00007ffbb98c0000 - 0x00007ffbb98e5000 C:\Users\dbott\.gradle\jdks\jdk-17.0.1+12\bin\java.dll
0x00007ffb99a90000 - 0x00007ffb99b66000 C:\Users\dbott\.gradle\jdks\jdk-17.0.1+12\bin\svml.dll
0x00007ffbd64b0000 - 0x00007ffbd6bf4000 C:\Windows\System32\SHELL32.dll
0x00007ffbd3880000 - 0x00007ffbd4014000 C:\Windows\SYSTEM32\windows.storage.dll
0x00007ffbd7b30000 - 0x00007ffbd7e84000 C:\Windows\System32\combase.dll
0x00007ffbd51c0000 - 0x00007ffbd51ec000 C:\Windows\SYSTEM32\Wldp.dll
0x00007ffbd7f60000 - 0x00007ffbd800d000 C:\Windows\System32\SHCORE.dll
0x00007ffbd7ad0000 - 0x00007ffbd7b25000 C:\Windows\System32\shlwapi.dll
0x00007ffbd56a0000 - 0x00007ffbd56bf000 C:\Windows\SYSTEM32\profapi.dll
0x00007ffbbeea0000 - 0x00007ffbbeeb8000 C:\Users\dbott\.gradle\jdks\jdk-17.0.1+12\bin\zip.dll
0x00007ffbc4a00000 - 0x00007ffbc4a19000 C:\Users\dbott\.gradle\jdks\jdk-17.0.1+12\bin\net.dll
0x00007ffbcd8c0000 - 0x00007ffbcd9ca000 C:\Windows\SYSTEM32\WINHTTP.dll
0x00007ffbd4f20000 - 0x00007ffbd4f8a000 C:\Windows\system32\mswsock.dll
0x00007ffbbf010000 - 0x00007ffbbf025000 C:\Users\dbott\.gradle\jdks\jdk-17.0.1+12\bin\nio.dll
0x00007ffbcd760000 - 0x00007ffbcd77a000 C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2021.3\bin\breakgen64.dll
0x00007ffbc4ae0000 - 0x00007ffbc4ae9000 C:\Users\dbott\.gradle\jdks\jdk-17.0.1+12\bin\management.dll
0x00007ffbc22c0000 - 0x00007ffbc22cb000 C:\Users\dbott\.gradle\jdks\jdk-17.0.1+12\bin\management_ext.dll
0x00007ffbbe0f0000 - 0x00007ffbbe107000 C:\Windows\system32\napinsp.dll
0x00007ffbbdf90000 - 0x00007ffbbdfab000 C:\Windows\system32\pnrpnsp.dll
0x00007ffbb6a30000 - 0x00007ffbb6a45000 C:\Windows\system32\wshbth.dll
0x00007ffbd13f0000 - 0x00007ffbd140d000 C:\Windows\system32\NLAapi.dll
0x00007ffbd4ba0000 - 0x00007ffbd4bdb000 C:\Windows\SYSTEM32\IPHLPAPI.DLL
0x00007ffbd4be0000 - 0x00007ffbd4cab000 C:\Windows\SYSTEM32\DNSAPI.dll
0x00007ffbd6c60000 - 0x00007ffbd6c68000 C:\Windows\System32\NSI.dll
0x00007ffbbc030000 - 0x00007ffbbc042000 C:\Windows\System32\winrnr.dll
0x0000000061af0000 - 0x0000000061b16000 C:\Program Files\Bonjour\mdnsNSP.dll
0x00007ffbccc00000 - 0x00007ffbccc0a000 C:\Windows\System32\rasadhlp.dll
0x00007ffbcc2f0000 - 0x00007ffbcc370000 C:\Windows\System32\fwpuclnt.dll
0x00007ffbd5f10000 - 0x00007ffbd5f37000 C:\Windows\System32\bcrypt.dll
0x00007ffbb8c30000 - 0x00007ffbb8ca1000 C:\Users\dbott\AppData\Local\Temp\lwjgldbott\3.3.0-build-21\lwjgl.dll
0x00007ffbb9230000 - 0x00007ffbb9291000 C:\Users\dbott\AppData\Local\Temp\lwjgldbott\3.3.0-build-21\glfw.dll
0x00007ffbb96a0000 - 0x00007ffbb96e5000 C:\Windows\SYSTEM32\dinput8.dll
0x00007ffbbda60000 - 0x00007ffbbda71000 C:\Windows\SYSTEM32\xinput1_4.dll
0x00007ffbd5e10000 - 0x00007ffbd5e5e000 C:\Windows\System32\cfgmgr32.dll
0x00007ffbd5510000 - 0x00007ffbd553c000 C:\Windows\SYSTEM32\DEVOBJ.dll
0x00007ffbd3390000 - 0x00007ffbd33bf000 C:\Windows\SYSTEM32\dwmapi.dll
0x00007ffbc89f0000 - 0x00007ffbc8b42000 C:\Windows\SYSTEM32\inputhost.dll
0x00007ffbd6340000 - 0x00007ffbd640d000 C:\Windows\System32\OLEAUT32.dll
0x00007ffbd16d0000 - 0x00007ffbd1824000 C:\Windows\SYSTEM32\wintypes.dll
0x00007ffbd2d90000 - 0x00007ffbd2e82000 C:\Windows\SYSTEM32\CoreMessaging.dll
0x00007ffbcfe40000 - 0x00007ffbcff36000 C:\Windows\SYSTEM32\PROPSYS.dll
0x00007ffbd2a30000 - 0x00007ffbd2d8e000 C:\Windows\SYSTEM32\CoreUIComponents.dll
0x00007ffbd4460000 - 0x00007ffbd4493000 C:\Windows\SYSTEM32\ntmarta.dll
0x00007ffbd31a0000 - 0x00007ffbd323e000 C:\Windows\system32\uxtheme.dll
0x00007ffbd6f90000 - 0x00007ffbd70a5000 C:\Windows\System32\MSCTF.dll
0x00007ffb9b170000 - 0x00007ffb9b296000 C:\Windows\SYSTEM32\opengl32.dll
0x00007ffb9bf50000 - 0x00007ffb9bf7c000 C:\Windows\SYSTEM32\GLU32.dll
0x00007ffbd71c0000 - 0x00007ffbd7269000 C:\Windows\System32\clbcatq.dll
0x00007ffb9bf20000 - 0x00007ffb9bf4d000 C:\Windows\System32\DriverStore\FileRepository\u0387206.inf_amd64_081d192bd0a4e0cb\B386218\atig6pxx.dll
0x00007ffb7a5b0000 - 0x00007ffb7e2a1000 C:\Windows\System32\DriverStore\FileRepository\u0387206.inf_amd64_081d192bd0a4e0cb\B386218\atio6axx.dll
0x00007ffbd75a0000 - 0x00007ffbd7a11000 C:\Windows\System32\SETUPAPI.dll
0x00007ffbd5920000 - 0x00007ffbd5988000 C:\Windows\System32\WINTRUST.dll
0x00007ffbd5f40000 - 0x00007ffbd6096000 C:\Windows\System32\CRYPT32.dll
0x00007ffbd5350000 - 0x00007ffbd5362000 C:\Windows\SYSTEM32\MSASN1.dll
0x00007ffbac190000 - 0x00007ffbac1ed000 C:\Users\dbott\AppData\Local\Temp\lwjgldbott\3.3.0-build-21\lwjgl_opengl.dll
0x00007ffbd5110000 - 0x00007ffbd5128000 C:\Windows\SYSTEM32\CRYPTSP.dll
0x00007ffbd47c0000 - 0x00007ffbd47f4000 C:\Windows\system32\rsaenh.dll
0x00007ffbd5660000 - 0x00007ffbd568e000 C:\Windows\SYSTEM32\USERENV.dll
0x00007ffbd5130000 - 0x00007ffbd513c000 C:\Windows\SYSTEM32\CRYPTBASE.dll
0x00007ffbd0000000 - 0x00007ffbd0017000 C:\Windows\SYSTEM32\dhcpcsvc6.DLL
0x00007ffbcffe0000 - 0x00007ffbcfffd000 C:\Windows\SYSTEM32\dhcpcsvc.DLL
0x00007ffba9a90000 - 0x00007ffba9ad5000 C:\Users\dbott\AppData\Local\Temp\jna-95382001\jna124977103322284851.dll
0x00007ffba4910000 - 0x00007ffba49b3000 K:\git\kstarbound\freetype-2.11.1.dll
0x00007ffbc8b50000 - 0x00007ffbc8c49000 C:\Windows\SYSTEM32\textinputframework.dll
dbghelp: loaded successfully - version: 4.0.5 - missing functions: none
symbol engine: initialized successfully - sym options: 0x614 - pdb path: .;C:\Users\dbott\.gradle\jdks\jdk-17.0.1+12\bin;C:\Windows\SYSTEM32;C:\Windows\WinSxS\amd64_microsoft.windows.common-controls_6595b64144ccf1df_6.0.19041.1110_none_60b5254171f9507e;C:\Users\dbott\.gradle\jdks\jdk-17.0.1+12\bin\server;C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2021.3\bin;C:\Program Files\Bonjour;C:\Users\dbott\AppData\Local\Temp\lwjgldbott\3.3.0-build-21;C:\Windows\System32\DriverStore\FileRepository\u0387206.inf_amd64_081d192bd0a4e0cb\B386218;C:\Users\dbott\AppData\Local\Temp\jna-95382001;K:\git\kstarbound
VM Arguments:
jvm_args: -Xms128m -javaagent:C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2021.3\lib\idea_rt.jar=5828:C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2021.3\bin -Dfile.encoding=UTF-8
java_command: ru.dbotthepony.kstarbound.MainKt
java_class_path (initial): K:\git\kstarbound\build\classes\java\main;K:\git\kstarbound\build\classes\kotlin\main;K:\git\kstarbound\build\resources\main;C:\Users\dbott\.gradle\caches\modules-2\files-2.1\org.jetbrains.kotlin\kotlin-reflect\1.6.10\1cbe9c92c12a94eea200d23c2bbaedaf3daf5132\kotlin-reflect-1.6.10.jar;C:\Users\dbott\.gradle\caches\modules-2\files-2.1\org.jetbrains.kotlin\kotlin-stdlib\1.6.10\b8af3fe6f1ca88526914929add63cf5e7c5049af\kotlin-stdlib-1.6.10.jar;C:\Users\dbott\.gradle\caches\modules-2\files-2.1\org.apache.logging.log4j\log4j-core\2.17.1\779f60f3844dadc3ef597976fcb1e5127b1f343d\log4j-core-2.17.1.jar;C:\Users\dbott\.gradle\caches\modules-2\files-2.1\org.apache.logging.log4j\log4j-api\2.17.1\d771af8e336e372fb5399c99edabe0919aeaf5b2\log4j-api-2.17.1.jar;C:\Users\dbott\.gradle\caches\modules-2\files-2.1\com.google.code.gson\gson\2.8.9\8a432c1d6825781e21a02db2e2c33c5fde2833b9\gson-2.8.9.jar;C:\Users\dbott\.gradle\caches\modules-2\files-2.1\it.unimi.dsi\fastutil\8.5.6\76f95700418a68fbc4ac050525261f05dc681ca1\fastutil-8.5.6.jar;C:\Users\dbott\.gradle\caches\modules-2\files-2.1\com.google.guava\guava\31.0.1-jre\119ea2b2bc205b138974d351777b20f02b92704b\guava-31.0.1-jre.jar;C:\Users\dbott\.gradle\caches\modules-2\files-2.1\org.lwjgl\lwjgl-assimp\3.3.0\82135e856184e76d38a97f729141298d3edcf0e4\lwjgl-assimp-3.3.0.jar;C:\Users\dbott\.gradle\caches\modules-2\files-2.1\org.lwjgl\lwjgl-bgfx\3.3.0\b9e9a62b741bdc60f9207a4d4de6e61a2b7de6af\lwjgl-bgfx-3.3.0.jar;C:\Users\dbott\.gradle\caches\modules-2\files-2.1\org.lwjgl\lwjgl-glfw\3.3.0\899e34f314525596f8fdb6476d3e56104da4601d\lwjgl-glfw-3.3.0.jar;C:\Users\dbott\.gradle\caches\modules-2\files-2.1\org.lwjgl\lwjgl-nanovg\3.3.0\a15688d6e6c7136cebc5b63f30d120f702f6587c\lwjgl-nanovg-3.3.0.jar;C:\Users\dbott\.gradle\caches\modules-2\files-2.1\org.lwjgl\lwjgl-nuklear\3.3.0\8dbbdce4f28384c2abdfe8d0abff5f4c9bae286e\lwjgl-nuklear-3.3.0.jar;C:\Users\dbott\.gradle\caches\modules-2\files-2.1\org.lwjgl\lwjgl-openal\3.3.0\902dd57b
Launcher Type: SUN_STANDARD
[Global flags]
intx CICompilerCount = 12 {product} {ergonomic}
uint ConcGCThreads = 3 {product} {ergonomic}
uint G1ConcRefinementThreads = 13 {product} {ergonomic}
size_t G1HeapRegionSize = 8388608 {product} {ergonomic}
uintx GCDrainStackTargetSize = 64 {product} {ergonomic}
size_t InitialHeapSize = 134217728 {product} {command line}
size_t MarkStackSize = 4194304 {product} {ergonomic}
size_t MaxHeapSize = 17163091968 {product} {ergonomic}
size_t MaxNewSize = 10292822016 {product} {ergonomic}
size_t MinHeapDeltaBytes = 8388608 {product} {ergonomic}
size_t MinHeapSize = 134217728 {product} {command line}
uintx NonNMethodCodeHeapSize = 7602480 {pd product} {ergonomic}
uintx NonProfiledCodeHeapSize = 122027880 {pd product} {ergonomic}
uintx ProfiledCodeHeapSize = 122027880 {pd product} {ergonomic}
uintx ReservedCodeCacheSize = 251658240 {pd product} {ergonomic}
bool SegmentedCodeCache = true {product} {ergonomic}
size_t SoftMaxHeapSize = 17163091968 {manageable} {ergonomic}
bool UseCompressedClassPointers = true {product lp64_product} {ergonomic}
bool UseCompressedOops = true {product lp64_product} {ergonomic}
bool UseG1GC = true {product} {ergonomic}
bool UseLargePagesIndividualAllocation = false {pd product} {ergonomic}
Logging:
Log output configuration:
#0: stdout all=warning uptime,level,tags
#1: stderr all=off uptime,level,tags
Environment Variables:
JAVA_HOME=C:\Program Files\Eclipse Adoptium\jdk-17.0.4.101-hotspot\
PATH=C:\Program Files\Eclipse Adoptium\jdk-17.0.4.101-hotspot\bin;C:\Program Files\ImageMagick-7.1.0-Q16;C:\Program Files\Microsoft\jdk-11.0.12.7-hotspot\bin;C:\Program Files\ImageMagick-7.1.0-Q16-HDRI;C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common;C:\Program Files (x86)\VMware\VMware Workstation\bin\;C:\Program Files\ImageMagick-7.0.10-Q16-HDRI;C:\Program Files\Python38\Scripts\;C:\Program Files\Python38\;C:\Program Files\ImageMagick-7.0.9-Q16;C:\Program Files (x86)\Common Files\Oracle\Java\javapath;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;D:\php7;C:\Program Files (x86)\Lua\5.1;C:\Program Files (x86)\Lua\5.1\clibs;C:\Program Files (x86)\Codebox\BitMeterOS;C:\moonscript;C:\Program Files\TortoiseHg\;C:\Program Files\GTK3-Runtime Win64\bin;C:\ProgramData\ComposerSetup\bin;C:\Program Files\Logstalgia\cmd;C:\Program Files\dotnet\;C:\Program Files\TortoiseSVN\bin;C:\Program Files\Gource\cmd;C:\kotlin-native-windows-1.3.72\bin;N:\platform-tools;C:\Program Files\PuTTY\;C:\Program Files\Git\cmd;C:\Windows\System32\OpenSSH\;D:\php-8.0.8-Win32-vs16-x64;C:\Program Files\LLVM\bin;C:\Program Files\PowerShell\7\;C:\Program Files\CMake\bin;C:\pypy3.8-v7.3.7-win64;C:\pypy3.8-v7.3.7-win64\Scripts;C:\Program Files\nodejs\;C:\Program Files\7-Zip;C:\Program Files\TortoiseGit\bin;C:\Users\dbott\.cargo\bin;C:\Users\dbott\.windows-build-tools\python27\;C:\Users\dbott\AppData\Local\Programs\Python\Python37\Scripts\;C:\Users\dbott\AppData\Local\Programs\Python\Python37\;C:\Users\dbott\AppData\Local\Microsoft\WindowsApps;C:\Users\dbott\AppData\Local\Programs\Microsoft VS Code\bin;K:\git\vcpkg\installed\x86-windows\include;K:\git\vcpkg\installed\x86-windows\lib;K:\git\vcpkg\installed\x86-windows\bin;C:\Users\dbott\AppData\Roaming\Composer\vendor\bin;C:\Users\dbott\.dotnet\tools;C:\Users\dbott\AppData\Local\Microsoft\WindowsApps;C:\Program Files (x86)\FreeArc\bin;C:\Users\dbott\AppData\Roaming\npm
USERNAME=dbott
OS=Windows_NT
PROCESSOR_IDENTIFIER=AMD64 Family 23 Model 113 Stepping 0, AuthenticAMD
--------------- S Y S T E M ---------------
OS:
Windows 10 , 64 bit Build 19041 (10.0.19041.1706)
OS uptime: 34 days 23:32 hours
CPU: total 16 (initial active 16) (16 cores per cpu, 2 threads per core) family 23 model 113 stepping 0 microcode 0x0, cx8, cmov, fxsr, ht, mmx, 3dnowpref, sse, sse2, sse3, ssse3, sse4a, sse4.1, sse4.2, popcnt, lzcnt, tsc, tscinvbit, avx, avx2, aes, clmul, bmi1, bmi2, adx, sha, fma, vzeroupper, clflush, clflushopt
Memory: 4k page, system-wide physical 65457M (24962M free)
TotalPageFile size 165457M (AvailPageFile size 106743M)
current process WorkingSet (physical memory assigned to process): 334M, peak: 354M
current process commit charge ("private bytes"): 431M, peak: 452M
vm_info: OpenJDK 64-Bit Server VM (17.0.1+12) for windows-amd64 JRE (17.0.1+12), built on Oct 20 2021 07:42:55 by "" with MS VC++ 16.7 (VS2019)
END.

848
hs_err_pid42652.log Normal file
View File

@ -0,0 +1,848 @@
#
# A fatal error has been detected by the Java Runtime Environment:
#
# EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x00007ffb7c599920, pid=42652, tid=59756
#
# JRE version: OpenJDK Runtime Environment Temurin-17.0.1+12 (17.0.1+12) (build 17.0.1+12)
# Java VM: OpenJDK 64-Bit Server VM Temurin-17.0.1+12 (17.0.1+12, mixed mode, sharing, tiered, compressed oops, compressed class ptrs, g1 gc, windows-amd64)
# Problematic frame:
# C [atio6axx.dll+0x1fe9920]
#
# No core dump will be written. Minidumps are not enabled by default on client versions of Windows
#
# If you would like to submit a bug report, please visit:
# https://github.com/adoptium/adoptium-support/issues
# The crash happened outside the Java Virtual Machine in native code.
# See problematic frame for where to report the bug.
#
--------------- S U M M A R Y ------------
Command Line: -Xms128m -javaagent:C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2021.3\lib\idea_rt.jar=5737:C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2021.3\bin -Dfile.encoding=UTF-8 ru.dbotthepony.kstarbound.MainKt
Host: AMD Ryzen 7 3700X 8-Core Processor , 16 cores, 63G, Windows 10 , 64 bit Build 19041 (10.0.19041.1706)
Time: Sun Sep 10 10:42:30 2023 RTZ 6 (s 10 , 64 bit Build 19041 (10.0.19041.1706) elapsed time: 6.589123 seconds (0d 0h 0m 6s)
--------------- T H R E A D ---------------
Current thread (0x000001fe2ebeedf0): JavaThread "main" [_thread_in_native, id=59756, stack(0x00000030bdf00000,0x00000030be000000)]
Stack: [0x00000030bdf00000,0x00000030be000000], sp=0x00000030bdffe9d8, free space=1018k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
C [atio6axx.dll+0x1fe9920]
Java frames: (J=compiled Java code, j=interpreted, Vv=VM code)
J 7315 org.lwjgl.opengl.GL11C.nglTexImage2D(IIIIIIIIJ)V (0 bytes) @ 0x000001fe3e35e924 [0x000001fe3e35e8a0+0x0000000000000084]
J 7314 c1 org.lwjgl.opengl.GL11C.glTexImage2D(IIIIIIIILjava/nio/ByteBuffer;)V (21 bytes) @ 0x000001fe37822b44 [0x000001fe37822960+0x00000000000001e4]
J 7313 c1 org.lwjgl.opengl.GL11.glTexImage2D(IIIIIIIILjava/nio/ByteBuffer;)V (18 bytes) @ 0x000001fe374b208c [0x000001fe374b2020+0x000000000000006c]
j ru.dbotthepony.kstarbound.client.gl.GLTexture2D.upload(IIIIIILjava/nio/ByteBuffer;)Lru/dbotthepony/kstarbound/client/gl/GLTexture2D;+105
J 7205 c1 ru.dbotthepony.kstarbound.client.gl.GLTexture2D.upload(IIIIILjava/nio/ByteBuffer;)Lru/dbotthepony/kstarbound/client/gl/GLTexture2D; (22 bytes) @ 0x000001fe36e0f08c [0x000001fe36e0ed20+0x000000000000036c]
J 7128 c2 ru.dbotthepony.kstarbound.client.StarboundClient.renderFrame()Z (1412 bytes) @ 0x000001fe3e410edc [0x000001fe3e40f9a0+0x000000000000153c]
j ru.dbotthepony.kstarbound.MainKt.main()V+253
j ru.dbotthepony.kstarbound.MainKt.main([Ljava/lang/String;)V+0
v ~StubRoutines::call_stub
siginfo: EXCEPTION_ACCESS_VIOLATION (0xc0000005), reading address 0x000001fe0fd13f10
Register to memory mapping:
RIP=0x00007ffb7c599920 atio6axx.dll
RAX=0x000001fe7dc24df8 points into unknown readable memory: 0x0000000000000000 | 00 00 00 00 00 00 00 00
RBX=0x000001fe7d4c2d70 points into unknown readable memory: 0x000001fe7d4c2d78 | 78 2d 4c 7d fe 01 00 00
RCX=0x000001fe7dc24df8 points into unknown readable memory: 0x0000000000000000 | 00 00 00 00 00 00 00 00
RDX=0x000001fe0fd0b320 points into unknown readable memory: 0x000001fe01127950 | 50 79 12 01 fe 01 00 00
RSP=0x00000030bdffe9d8 is pointing into the stack for thread: 0x000001fe2ebeedf0
RBP=0x00000030bdffea71 is pointing into the stack for thread: 0x000001fe2ebeedf0
RSI=0x000001fe7dc24df8 points into unknown readable memory: 0x0000000000000000 | 00 00 00 00 00 00 00 00
RDI=0x0000000000001908 is an unknown value
R8 =0x0000000000008c10 is an unknown value
R9 =0x000001fe0fd13f30 is an unknown value
R10=0x00007ffb7a5b0000 atio6axx.dll
R11=0x000001fe7c947690 points into unknown readable memory: 0x0000000000000000 | 00 00 00 00 00 00 00 00
R12=0x0000000000008c10 is an unknown value
R13=0x0000000000008c10 is an unknown value
R14=0x000001fe7c885080 points into unknown readable memory: 0x00007ffb7d8691f0 | f0 91 86 7d fb 7f 00 00
R15=0x0 is NULL
Registers:
RAX=0x000001fe7dc24df8, RBX=0x000001fe7d4c2d70, RCX=0x000001fe7dc24df8, RDX=0x000001fe0fd0b320
RSP=0x00000030bdffe9d8, RBP=0x00000030bdffea71, RSI=0x000001fe7dc24df8, RDI=0x0000000000001908
R8 =0x0000000000008c10, R9 =0x000001fe0fd13f30, R10=0x00007ffb7a5b0000, R11=0x000001fe7c947690
R12=0x0000000000008c10, R13=0x0000000000008c10, R14=0x000001fe7c885080, R15=0x0000000000000000
RIP=0x00007ffb7c599920, EFLAGS=0x0000000000010246
Top of Stack: (sp=0x00000030bdffe9d8)
0x00000030bdffe9d8: 00007ffb7ad699f3 000001fe0fb8e5ff
0x00000030bdffe9e8: 0000000000000000 0000000000000000
0x00000030bdffe9f8: 00000030bdffeab0 000000000000006c
0x00000030bdffea08: 00007ffb00000001 000001fe00001908
0x00000030bdffea18: 000001fe00001401 000001fe00000000
0x00000030bdffea28: 00007ffb54920000 0000000100000000
0x00000030bdffea38: 0000000200000001 000001fe7dc24df8
0x00000030bdffea48: 0000000000008c10 0000000000000038
0x00000030bdffea58: 0000000000000000 0000ac80f072b6d3
0x00000030bdffea68: 0000003000000001 000001fe00000000
0x00000030bdffea78: 0000000000001908 0000000000001401
0x00000030bdffea88: 000000000000006c 0000000000000000
0x00000030bdffea98: 0000000000000000 000000000000006c
0x00000030bdffeaa8: 000001fe7c885080 000001fe70f58138
0x00000030bdffeab8: 00007ffb7ae43bd7 000001fe7c885000
0x00000030bdffeac8: 000001fe00000de1 000001fe00000000
Instructions: (pc=0x00007ffb7c599920)
0x00007ffb7c599820: 89 40 04 44 88 48 06 c3 4c 8b 02 8b 4a 08 44 0f
0x00007ffb7c599830: b7 4a 0c 4c 89 00 89 48 08 66 44 89 48 0c c3 0f
0x00007ffb7c599840: b7 0a 44 0f b6 42 02 66 89 08 44 88 40 02 c3 90
0x00007ffb7c599850: 4c 8b 02 8b 4a 08 44 0f b6 4a 0c 4c 89 00 89 48
0x00007ffb7c599860: 08 44 88 48 0c c3 4c 8b 02 0f b7 4a 08 4c 89 00
0x00007ffb7c599870: 66 89 48 08 c3 4c 8b 02 0f b6 4a 08 4c 89 00 88
0x00007ffb7c599880: 48 08 c3 4c 8b 02 8b 4a 08 4c 89 00 89 48 08 c3
0x00007ffb7c599890: 8b 0a 44 0f b7 42 04 89 08 66 44 89 40 04 c3 8b
0x00007ffb7c5998a0: 0a 44 0f b6 42 04 89 08 44 88 40 04 c3 48 8b 0a
0x00007ffb7c5998b0: 48 89 08 c3 0f b6 0a 88 08 c3 8b 0a 89 08 c3 90
0x00007ffb7c5998c0: 49 83 f8 20 77 17 f3 0f 6f 0a f3 42 0f 6f 54 02
0x00007ffb7c5998d0: f0 f3 0f 7f 09 f3 42 0f 7f 54 01 f0 c3 48 3b d1
0x00007ffb7c5998e0: 73 0e 4e 8d 0c 02 49 3b c9 0f 82 41 04 00 00 90
0x00007ffb7c5998f0: 83 3d 21 37 8d 01 03 0f 82 e3 02 00 00 49 81 f8
0x00007ffb7c599900: 00 20 00 00 76 16 49 81 f8 00 00 18 00 77 0d f6
0x00007ffb7c599910: 05 be d0 a3 01 02 0f 85 64 fe ff ff c5 fe 6f 02
0x00007ffb7c599920: c4 a1 7e 6f 6c 02 e0 49 81 f8 00 01 00 00 0f 86
0x00007ffb7c599930: c4 00 00 00 4c 8b c9 49 83 e1 1f 49 83 e9 20 49
0x00007ffb7c599940: 2b c9 49 2b d1 4d 03 c1 49 81 f8 00 01 00 00 0f
0x00007ffb7c599950: 86 a3 00 00 00 49 81 f8 00 00 18 00 0f 87 3e 01
0x00007ffb7c599960: 00 00 66 66 66 66 66 66 0f 1f 84 00 00 00 00 00
0x00007ffb7c599970: c5 fe 6f 0a c5 fe 6f 52 20 c5 fe 6f 5a 40 c5 fe
0x00007ffb7c599980: 6f 62 60 c5 fd 7f 09 c5 fd 7f 51 20 c5 fd 7f 59
0x00007ffb7c599990: 40 c5 fd 7f 61 60 c5 fe 6f 8a 80 00 00 00 c5 fe
0x00007ffb7c5999a0: 6f 92 a0 00 00 00 c5 fe 6f 9a c0 00 00 00 c5 fe
0x00007ffb7c5999b0: 6f a2 e0 00 00 00 c5 fd 7f 89 80 00 00 00 c5 fd
0x00007ffb7c5999c0: 7f 91 a0 00 00 00 c5 fd 7f 99 c0 00 00 00 c5 fd
0x00007ffb7c5999d0: 7f a1 e0 00 00 00 48 81 c1 00 01 00 00 48 81 c2
0x00007ffb7c5999e0: 00 01 00 00 49 81 e8 00 01 00 00 49 81 f8 00 01
0x00007ffb7c5999f0: 00 00 0f 83 78 ff ff ff 4d 8d 48 1f 49 83 e1 e0
0x00007ffb7c599a00: 4d 8b d9 49 c1 eb 05 47 8b 9c 9a 40 b0 c1 03 4d
0x00007ffb7c599a10: 03 da 41 ff e3 c4 a1 7e 6f 8c 0a 00 ff ff ff c4
Stack slot to memory mapping:
stack at sp + 0 slots: 0x00007ffb7ad699f3 atio6axx.dll
stack at sp + 1 slots: 0x000001fe0fb8e5ff is pointing into metadata
stack at sp + 2 slots: 0x0 is NULL
stack at sp + 3 slots: 0x0 is NULL
stack at sp + 4 slots: 0x00000030bdffeab0 is pointing into the stack for thread: 0x000001fe2ebeedf0
stack at sp + 5 slots: 0x000000000000006c is an unknown value
stack at sp + 6 slots: 0x00007ffb00000001 is an unknown value
stack at sp + 7 slots: 0x000001fe00001908 is pointing into metadata
--------------- P R O C E S S ---------------
Threads class SMR info:
_java_thread_list=0x000001fe0e2fd670, length=43, elements={
0x000001fe2ebeedf0, 0x000001fe6e254f00, 0x000001fe6e255d70, 0x000001fe6e26f1a0,
0x000001fe6e271b70, 0x000001fe6e272520, 0x000001fe6e272ed0, 0x000001fe6e275bd0,
0x000001fe6e278e30, 0x000001fe6f918070, 0x000001fe6f9f5940, 0x000001fe6f9fb930,
0x000001fe6f9fe310, 0x000001fe6fa277d0, 0x000001fe6fd48550, 0x000001fe6fd48a20,
0x000001fe7ea8d1b0, 0x000001fe7ea2b570, 0x000001fe7e85aed0, 0x000001fe7ea91ec0,
0x000001fe7ea99880, 0x000001fe7e87d8d0, 0x000001fe7ef75790, 0x000001fe7ef722a0,
0x000001fe7ef73110, 0x000001fe7ef72770, 0x000001fe7ef73f80, 0x000001fe7ef71dd0,
0x000001fe7ef73ab0, 0x000001fe7ef735e0, 0x000001fe7ef74450, 0x000001fe7ef72c40,
0x000001fe7ef74920, 0x000001fe7ef74df0, 0x000001fe7f224090, 0x000001fe7f229730,
0x000001fe7f2258a0, 0x000001fe7f22a0d0, 0x000001fe7f224a30, 0x000001fe05e95280,
0x000001fe05e93e40, 0x000001fe05e970e0, 0x000001fe05e975f0
}
Java Threads: ( => current thread )
=>0x000001fe2ebeedf0 JavaThread "main" [_thread_in_native, id=59756, stack(0x00000030bdf00000,0x00000030be000000)]
0x000001fe6e254f00 JavaThread "Reference Handler" daemon [_thread_blocked, id=33592, stack(0x00000030be600000,0x00000030be700000)]
0x000001fe6e255d70 JavaThread "Finalizer" daemon [_thread_blocked, id=42784, stack(0x00000030be700000,0x00000030be800000)]
0x000001fe6e26f1a0 JavaThread "Signal Dispatcher" daemon [_thread_blocked, id=6548, stack(0x00000030be800000,0x00000030be900000)]
0x000001fe6e271b70 JavaThread "Attach Listener" daemon [_thread_blocked, id=44212, stack(0x00000030be900000,0x00000030bea00000)]
0x000001fe6e272520 JavaThread "Service Thread" daemon [_thread_blocked, id=1608, stack(0x00000030bea00000,0x00000030beb00000)]
0x000001fe6e272ed0 JavaThread "Monitor Deflation Thread" daemon [_thread_blocked, id=32748, stack(0x00000030beb00000,0x00000030bec00000)]
0x000001fe6e275bd0 JavaThread "C2 CompilerThread0" daemon [_thread_blocked, id=31564, stack(0x00000030bec00000,0x00000030bed00000)]
0x000001fe6e278e30 JavaThread "C1 CompilerThread0" daemon [_thread_blocked, id=62460, stack(0x00000030bed00000,0x00000030bee00000)]
0x000001fe6f918070 JavaThread "Sweeper thread" daemon [_thread_blocked, id=44644, stack(0x00000030bee00000,0x00000030bef00000)]
0x000001fe6f9f5940 JavaThread "Common-Cleaner" daemon [_thread_blocked, id=48224, stack(0x00000030bef00000,0x00000030bf000000)]
0x000001fe6f9fb930 JavaThread "C1 CompilerThread1" daemon [_thread_blocked, id=23052, stack(0x00000030bf000000,0x00000030bf100000)]
0x000001fe6f9fe310 JavaThread "C1 CompilerThread2" daemon [_thread_blocked, id=53236, stack(0x00000030bf100000,0x00000030bf200000)]
0x000001fe6fa277d0 JavaThread "C1 CompilerThread3" daemon [_thread_blocked, id=50816, stack(0x00000030bf200000,0x00000030bf300000)]
0x000001fe6fd48550 JavaThread "Monitor Ctrl-Break" daemon [_thread_in_native, id=34572, stack(0x00000030bf400000,0x00000030bf500000)]
0x000001fe6fd48a20 JavaThread "Notification Thread" daemon [_thread_blocked, id=37712, stack(0x00000030bf500000,0x00000030bf600000)]
0x000001fe7ea8d1b0 JavaThread "JNA Cleaner" daemon [_thread_blocked, id=22200, stack(0x00000030bfa00000,0x00000030bfb00000)]
0x000001fe7ea2b570 JavaThread "OpenGL Object Cleaner for ru.dbotthepony.kstarbound.client.gl.GLStateTracker@c7ba306" daemon [_thread_blocked, id=11028, stack(0x00000030c0100000,0x00000030c0200000)]
0x000001fe7e85aed0 JavaThread "Starbound Lighting Thread 0" daemon [_thread_blocked, id=35784, stack(0x00000030c0b00000,0x00000030c0c00000)]
0x000001fe7ea91ec0 JavaThread "Starbound Lighting Thread 1" daemon [_thread_blocked, id=8936, stack(0x00000030c0c00000,0x00000030c0d00000)]
0x000001fe7ea99880 JavaThread "Starbound Lighting Thread 2" daemon [_thread_blocked, id=46208, stack(0x00000030c0d00000,0x00000030c0e00000)]
0x000001fe7e87d8d0 JavaThread "Starbound Lighting Thread 3" daemon [_thread_blocked, id=53204, stack(0x00000030c0e00000,0x00000030c0f00000)]
0x000001fe7ef75790 JavaThread "Starbound Lighting Thread 4" daemon [_thread_blocked, id=14576, stack(0x00000030c0f00000,0x00000030c1000000)]
0x000001fe7ef722a0 JavaThread "Starbound Lighting Thread 5" daemon [_thread_blocked, id=11352, stack(0x00000030c1000000,0x00000030c1100000)]
0x000001fe7ef73110 JavaThread "Starbound Lighting Thread 6" daemon [_thread_blocked, id=58112, stack(0x00000030c1100000,0x00000030c1200000)]
0x000001fe7ef72770 JavaThread "Starbound Lighting Thread 7" daemon [_thread_blocked, id=43948, stack(0x00000030c1200000,0x00000030c1300000)]
0x000001fe7ef73f80 JavaThread "Starbound Lighting Thread 8" daemon [_thread_blocked, id=53952, stack(0x00000030c1300000,0x00000030c1400000)]
0x000001fe7ef71dd0 JavaThread "Starbound Lighting Thread 9" daemon [_thread_blocked, id=23092, stack(0x00000030c1400000,0x00000030c1500000)]
0x000001fe7ef73ab0 JavaThread "Starbound Lighting Thread 10" daemon [_thread_blocked, id=62668, stack(0x00000030c1500000,0x00000030c1600000)]
0x000001fe7ef735e0 JavaThread "Starbound Lighting Thread 11" daemon [_thread_blocked, id=35136, stack(0x00000030c1600000,0x00000030c1700000)]
0x000001fe7ef74450 JavaThread "Starbound Lighting Thread 12" daemon [_thread_blocked, id=12788, stack(0x00000030c1700000,0x00000030c1800000)]
0x000001fe7ef72c40 JavaThread "Starbound Lighting Thread 13" daemon [_thread_blocked, id=34100, stack(0x00000030c1800000,0x00000030c1900000)]
0x000001fe7ef74920 JavaThread "Starbound Lighting Thread 14" daemon [_thread_blocked, id=44888, stack(0x00000030c1900000,0x00000030c1a00000)]
0x000001fe7ef74df0 JavaThread "Starbound Lighting Thread 15" daemon [_thread_blocked, id=58448, stack(0x00000030c1a00000,0x00000030c1b00000)]
0x000001fe7f224090 JavaThread "STB Image Cleaner" daemon [_thread_blocked, id=9440, stack(0x00000030c1d00000,0x00000030c1e00000)]
0x000001fe7f229730 JavaThread "ForkJoinPool.commonPool-worker-1" daemon [_thread_blocked, id=21812, stack(0x00000030c2100000,0x00000030c2200000)]
0x000001fe7f2258a0 JavaThread "ForkJoinPool.commonPool-worker-2" daemon [_thread_blocked, id=32368, stack(0x00000030c2200000,0x00000030c2300000)]
0x000001fe7f22a0d0 JavaThread "ForkJoinPool.commonPool-worker-3" daemon [_thread_blocked, id=38908, stack(0x00000030c2300000,0x00000030c2400000)]
0x000001fe7f224a30 JavaThread "Lua State Cleaner" daemon [_thread_blocked, id=38248, stack(0x00000030c2a00000,0x00000030c2b00000)]
0x000001fe05e95280 JavaThread "C2 CompilerThread1" daemon [_thread_blocked, id=30148, stack(0x00000030bf300000,0x00000030bf400000)]
0x000001fe05e93e40 JavaThread "C2 CompilerThread2" daemon [_thread_blocked, id=34528, stack(0x00000030c1e00000,0x00000030c1f00000)]
0x000001fe05e970e0 JavaThread "C2 CompilerThread3" daemon [_thread_blocked, id=54940, stack(0x00000030c1f00000,0x00000030c2000000)]
0x000001fe05e975f0 JavaThread "C2 CompilerThread4" daemon [_thread_in_native, id=31716, stack(0x00000030c2000000,0x00000030c2100000)]
Other Threads:
0x000001fe6e250300 VMThread "VM Thread" [stack: 0x00000030be500000,0x00000030be600000] [id=52432]
0x000001fe6fbb8bf0 WatcherThread [stack: 0x00000030bf600000,0x00000030bf700000] [id=42512]
0x000001fe2eca7380 GCTaskThread "GC Thread#0" [stack: 0x00000030be000000,0x00000030be100000] [id=51320]
0x000001fe701a4740 GCTaskThread "GC Thread#1" [stack: 0x00000030bf700000,0x00000030bf800000] [id=44008]
0x000001fe701bfc70 GCTaskThread "GC Thread#2" [stack: 0x00000030bf800000,0x00000030bf900000] [id=14864]
0x000001fe701e3490 GCTaskThread "GC Thread#3" [stack: 0x00000030bf900000,0x00000030bfa00000] [id=51728]
0x000001fe7e9ab1d0 GCTaskThread "GC Thread#4" [stack: 0x00000030c0200000,0x00000030c0300000] [id=62760]
0x000001fe7e9ac750 GCTaskThread "GC Thread#5" [stack: 0x00000030c0300000,0x00000030c0400000] [id=46140]
0x000001fe7e9ab9e0 GCTaskThread "GC Thread#6" [stack: 0x00000030c0400000,0x00000030c0500000] [id=62408]
0x000001fe7e9ab480 GCTaskThread "GC Thread#7" [stack: 0x00000030c0500000,0x00000030c0600000] [id=45464]
0x000001fe7e9ac1f0 GCTaskThread "GC Thread#8" [stack: 0x00000030c0600000,0x00000030c0700000] [id=59260]
0x000001fe7e9abc90 GCTaskThread "GC Thread#9" [stack: 0x00000030c0700000,0x00000030c0800000] [id=49780]
0x000001fe7e9aca00 GCTaskThread "GC Thread#10" [stack: 0x00000030c0800000,0x00000030c0900000] [id=50016]
0x000001fe7e9abf40 GCTaskThread "GC Thread#11" [stack: 0x00000030c0900000,0x00000030c0a00000] [id=30080]
0x000001fe7e9ac4a0 GCTaskThread "GC Thread#12" [stack: 0x00000030c0a00000,0x00000030c0b00000] [id=39648]
0x000001fe2ecb8280 ConcurrentGCThread "G1 Main Marker" [stack: 0x00000030be100000,0x00000030be200000] [id=60796]
0x000001fe2ecb8c90 ConcurrentGCThread "G1 Conc#0" [stack: 0x00000030be200000,0x00000030be300000] [id=37112]
0x000001fe7bab95c0 ConcurrentGCThread "G1 Conc#1" [stack: 0x00000030c1b00000,0x00000030c1c00000] [id=34660]
0x000001fe7bab9870 ConcurrentGCThread "G1 Conc#2" [stack: 0x00000030c1c00000,0x00000030c1d00000] [id=25020]
0x000001fe6e1059f0 ConcurrentGCThread "G1 Refine#0" [stack: 0x00000030be300000,0x00000030be400000] [id=17128]
0x000001fe03f75850 ConcurrentGCThread "G1 Refine#1" [stack: 0x00000030c2400000,0x00000030c2500000] [id=54700]
0x000001fe03f760f0 ConcurrentGCThread "G1 Refine#2" [stack: 0x00000030c2500000,0x00000030c2600000] [id=44136]
0x000001fe03f74fb0 ConcurrentGCThread "G1 Refine#3" [stack: 0x00000030c2600000,0x00000030c2700000] [id=14452]
0x000001fe03f766b0 ConcurrentGCThread "G1 Refine#4" [stack: 0x00000030c2700000,0x00000030c2800000] [id=42108]
0x000001fe03f75e10 ConcurrentGCThread "G1 Refine#5" [stack: 0x00000030c2800000,0x00000030c2900000] [id=49292]
0x000001fe067259c0 ConcurrentGCThread "G1 Refine#6" [stack: 0x00000030c2900000,0x00000030c2a00000] [id=26260]
0x000001fe6e106410 ConcurrentGCThread "G1 Service" [stack: 0x00000030be400000,0x00000030be500000] [id=15668]
Threads with active compile tasks:
C2 CompilerThread4 6630 7365 % 4 ru.dbotthepony.kstarbound.client.render.TileRenderer::tesselate @ 130 (184 bytes)
VM state: not at safepoint (normal execution)
VM Mutex/Monitor currently owned by a thread: None
Heap address: 0x0000000401000000, size: 16368 MB, Compressed Oops mode: Zero based, Oop shift amount: 3
CDS archive(s) mapped at: [0x0000000800000000-0x0000000800bc0000-0x0000000800bc0000), size 12320768, SharedBaseAddress: 0x0000000800000000, ArchiveRelocationMode: 0.
Compressed class space mapped at: 0x0000000800c00000-0x0000000840c00000, reserved size: 1073741824
Narrow klass base: 0x0000000800000000, Narrow klass shift: 0, Narrow klass range: 0x100000000
GC Precious Log:
CPUs: 16 total, 16 available
Memory: 65457M
Large Page Support: Disabled
NUMA Support: Disabled
Compressed Oops: Enabled (Zero based)
Heap Region Size: 8M
Heap Min Capacity: 128M
Heap Initial Capacity: 128M
Heap Max Capacity: 16368M
Pre-touch: Disabled
Parallel Workers: 13
Concurrent Workers: 3
Concurrent Refinement Workers: 13
Periodic GC: Disabled
Heap:
garbage-first heap total 589824K, used 226540K [0x0000000401000000, 0x0000000800000000)
region size 8192K, 4 young (32768K), 3 survivors (24576K)
Metaspace used 35394K, committed 35840K, reserved 1081344K
class space used 3620K, committed 3840K, reserved 1048576K
Heap Regions: E=young(eden), S=young(survivor), O=old, HS=humongous(starts), HC=humongous(continues), CS=collection set, F=free, OA=open archive, CA=closed archive, TAMS=top-at-mark-start (previous, next)
| 0|0x0000000401000000, 0x0000000401800000, 0x0000000401800000|100%| O| |TAMS 0x0000000401800000, 0x0000000401000000| Untracked
| 1|0x0000000401800000, 0x0000000402000000, 0x0000000402000000|100%| O| |TAMS 0x0000000402000000, 0x0000000401800000| Untracked
| 2|0x0000000402000000, 0x0000000402800000, 0x0000000402800000|100%| O| |TAMS 0x0000000402800000, 0x0000000402000000| Untracked
| 3|0x0000000402800000, 0x0000000403000000, 0x0000000403000000|100%| O| |TAMS 0x0000000403000000, 0x0000000402800000| Untracked
| 4|0x0000000403000000, 0x0000000403800000, 0x0000000403800000|100%| O| |TAMS 0x0000000403800000, 0x0000000403000000| Untracked
| 5|0x0000000403800000, 0x0000000404000000, 0x0000000404000000|100%| O| |TAMS 0x0000000404000000, 0x0000000403800000| Untracked
| 6|0x0000000404000000, 0x0000000404800000, 0x0000000404800000|100%| O| |TAMS 0x0000000404800000, 0x0000000404000000| Untracked
| 7|0x0000000404800000, 0x0000000405000000, 0x0000000405000000|100%| O| |TAMS 0x0000000405000000, 0x0000000404800000| Untracked
| 8|0x0000000405000000, 0x0000000405800000, 0x0000000405800000|100%| O| |TAMS 0x0000000405800000, 0x0000000405000000| Untracked
| 9|0x0000000405800000, 0x0000000406000000, 0x0000000406000000|100%| O| |TAMS 0x0000000406000000, 0x0000000405800000| Untracked
| 10|0x0000000406000000, 0x0000000406800000, 0x0000000406800000|100%| O| |TAMS 0x0000000406800000, 0x0000000406000000| Untracked
| 11|0x0000000406800000, 0x0000000407000000, 0x0000000407000000|100%| O| |TAMS 0x0000000407000000, 0x0000000406800000| Untracked
| 12|0x0000000407000000, 0x0000000407800000, 0x0000000407800000|100%| O| |TAMS 0x0000000407800000, 0x0000000407000000| Untracked
| 13|0x0000000407800000, 0x0000000408000000, 0x0000000408000000|100%| O| |TAMS 0x0000000408000000, 0x0000000407800000| Untracked
| 14|0x0000000408000000, 0x0000000408800000, 0x0000000408800000|100%| O| |TAMS 0x0000000408800000, 0x0000000408000000| Untracked
| 15|0x0000000408800000, 0x0000000409000000, 0x0000000409000000|100%| O| |TAMS 0x0000000409000000, 0x0000000408800000| Untracked
| 16|0x0000000409000000, 0x0000000409800000, 0x0000000409800000|100%| O| |TAMS 0x0000000409800000, 0x0000000409000000| Untracked
| 17|0x0000000409800000, 0x000000040a000000, 0x000000040a000000|100%| O| |TAMS 0x0000000409e94800, 0x0000000409800000| Untracked
| 18|0x000000040a000000, 0x000000040a800000, 0x000000040a800000|100%| O| |TAMS 0x000000040a000000, 0x000000040a000000| Untracked
| 19|0x000000040a800000, 0x000000040b000000, 0x000000040b000000|100%| O| |TAMS 0x000000040a800000, 0x000000040a800000| Untracked
| 20|0x000000040b000000, 0x000000040b800000, 0x000000040b800000|100%| O| |TAMS 0x000000040b000000, 0x000000040b000000| Untracked
| 21|0x000000040b800000, 0x000000040c000000, 0x000000040c000000|100%| O| |TAMS 0x000000040b800000, 0x000000040b800000| Untracked
| 22|0x000000040c000000, 0x000000040c800000, 0x000000040c800000|100%| O| |TAMS 0x000000040c000000, 0x000000040c000000| Untracked
| 23|0x000000040c800000, 0x000000040d000000, 0x000000040d000000|100%| O| |TAMS 0x000000040c800000, 0x000000040c800000| Untracked
| 24|0x000000040d000000, 0x000000040d53b200, 0x000000040d800000| 65%| O| |TAMS 0x000000040d000000, 0x000000040d000000| Untracked
| 25|0x000000040d800000, 0x000000040d800000, 0x000000040e000000| 0%| F| |TAMS 0x000000040d800000, 0x000000040d800000| Untracked
| 26|0x000000040e000000, 0x000000040e000000, 0x000000040e800000| 0%| F| |TAMS 0x000000040e000000, 0x000000040e000000| Untracked
| 27|0x000000040e800000, 0x000000040e800000, 0x000000040f000000| 0%| F| |TAMS 0x000000040e800000, 0x000000040e800000| Untracked
| 28|0x000000040f000000, 0x000000040f000000, 0x000000040f800000| 0%| F| |TAMS 0x000000040f000000, 0x000000040f000000| Untracked
| 29|0x000000040f800000, 0x000000040f800000, 0x0000000410000000| 0%| F| |TAMS 0x000000040f800000, 0x000000040f800000| Untracked
| 30|0x0000000410000000, 0x0000000410000000, 0x0000000410800000| 0%| F| |TAMS 0x0000000410000000, 0x0000000410000000| Untracked
| 31|0x0000000410800000, 0x0000000410800000, 0x0000000411000000| 0%| F| |TAMS 0x0000000410800000, 0x0000000410800000| Untracked
| 32|0x0000000411000000, 0x0000000411000000, 0x0000000411800000| 0%| F| |TAMS 0x0000000411000000, 0x0000000411000000| Untracked
| 33|0x0000000411800000, 0x0000000411800000, 0x0000000412000000| 0%| F| |TAMS 0x0000000411800000, 0x0000000411800000| Untracked
| 34|0x0000000412000000, 0x0000000412000000, 0x0000000412800000| 0%| F| |TAMS 0x0000000412000000, 0x0000000412000000| Untracked
| 35|0x0000000412800000, 0x0000000412800000, 0x0000000413000000| 0%| F| |TAMS 0x0000000412800000, 0x0000000412800000| Untracked
| 36|0x0000000413000000, 0x0000000413000000, 0x0000000413800000| 0%| F| |TAMS 0x0000000413000000, 0x0000000413000000| Untracked
| 37|0x0000000413800000, 0x0000000413800000, 0x0000000414000000| 0%| F| |TAMS 0x0000000413800000, 0x0000000413800000| Untracked
| 38|0x0000000414000000, 0x0000000414000000, 0x0000000414800000| 0%| F| |TAMS 0x0000000414000000, 0x0000000414000000| Untracked
| 39|0x0000000414800000, 0x0000000414800000, 0x0000000415000000| 0%| F| |TAMS 0x0000000414800000, 0x0000000414800000| Untracked
| 40|0x0000000415000000, 0x0000000415000000, 0x0000000415800000| 0%| F| |TAMS 0x0000000415000000, 0x0000000415000000| Untracked
| 41|0x0000000415800000, 0x0000000415800000, 0x0000000416000000| 0%| F| |TAMS 0x0000000415800000, 0x0000000415800000| Untracked
| 42|0x0000000416000000, 0x0000000416000000, 0x0000000416800000| 0%| F| |TAMS 0x0000000416000000, 0x0000000416000000| Untracked
| 43|0x0000000416800000, 0x0000000416800000, 0x0000000417000000| 0%| F| |TAMS 0x0000000416800000, 0x0000000416800000| Untracked
| 44|0x0000000417000000, 0x0000000417000000, 0x0000000417800000| 0%| F| |TAMS 0x0000000417000000, 0x0000000417000000| Untracked
| 45|0x0000000417800000, 0x0000000417800000, 0x0000000418000000| 0%| F| |TAMS 0x0000000417800000, 0x0000000417800000| Untracked
| 46|0x0000000418000000, 0x0000000418000000, 0x0000000418800000| 0%| F| |TAMS 0x0000000418000000, 0x0000000418000000| Untracked
| 47|0x0000000418800000, 0x0000000418800000, 0x0000000419000000| 0%| F| |TAMS 0x0000000418800000, 0x0000000418800000| Untracked
| 48|0x0000000419000000, 0x0000000419800000, 0x0000000419800000|100%| S|CS|TAMS 0x0000000419000000, 0x0000000419000000| Complete
| 49|0x0000000419800000, 0x000000041a000000, 0x000000041a000000|100%| S|CS|TAMS 0x0000000419800000, 0x0000000419800000| Complete
| 50|0x000000041a000000, 0x000000041a800000, 0x000000041a800000|100%| S|CS|TAMS 0x000000041a000000, 0x000000041a000000| Complete
| 51|0x000000041a800000, 0x000000041a800000, 0x000000041b000000| 0%| F| |TAMS 0x000000041a800000, 0x000000041a800000| Untracked
| 52|0x000000041b000000, 0x000000041b000000, 0x000000041b800000| 0%| F| |TAMS 0x000000041b000000, 0x000000041b000000| Untracked
| 53|0x000000041b800000, 0x000000041b800000, 0x000000041c000000| 0%| F| |TAMS 0x000000041b800000, 0x000000041b800000| Untracked
| 54|0x000000041c000000, 0x000000041c000000, 0x000000041c800000| 0%| F| |TAMS 0x000000041c000000, 0x000000041c000000| Untracked
| 55|0x000000041c800000, 0x000000041c800000, 0x000000041d000000| 0%| F| |TAMS 0x000000041c800000, 0x000000041c800000| Untracked
| 56|0x000000041d000000, 0x000000041d000000, 0x000000041d800000| 0%| F| |TAMS 0x000000041d000000, 0x000000041d000000| Untracked
| 57|0x000000041d800000, 0x000000041d800000, 0x000000041e000000| 0%| F| |TAMS 0x000000041d800000, 0x000000041d800000| Untracked
| 58|0x000000041e000000, 0x000000041e000000, 0x000000041e800000| 0%| F| |TAMS 0x000000041e000000, 0x000000041e000000| Untracked
| 59|0x000000041e800000, 0x000000041e800000, 0x000000041f000000| 0%| F| |TAMS 0x000000041e800000, 0x000000041e800000| Untracked
| 60|0x000000041f000000, 0x000000041f000000, 0x000000041f800000| 0%| F| |TAMS 0x000000041f000000, 0x000000041f000000| Untracked
| 61|0x000000041f800000, 0x000000041f800000, 0x0000000420000000| 0%| F| |TAMS 0x000000041f800000, 0x000000041f800000| Untracked
| 62|0x0000000420000000, 0x0000000420000000, 0x0000000420800000| 0%| F| |TAMS 0x0000000420000000, 0x0000000420000000| Untracked
| 63|0x0000000420800000, 0x0000000420800000, 0x0000000421000000| 0%| F| |TAMS 0x0000000420800000, 0x0000000420800000| Untracked
| 64|0x0000000421000000, 0x0000000421000000, 0x0000000421800000| 0%| F| |TAMS 0x0000000421000000, 0x0000000421000000| Untracked
| 65|0x0000000421800000, 0x0000000421800000, 0x0000000422000000| 0%| F| |TAMS 0x0000000421800000, 0x0000000421800000| Untracked
| 66|0x0000000422000000, 0x0000000422000000, 0x0000000422800000| 0%| F| |TAMS 0x0000000422000000, 0x0000000422000000| Untracked
| 67|0x0000000422800000, 0x0000000422800000, 0x0000000423000000| 0%| F| |TAMS 0x0000000422800000, 0x0000000422800000| Untracked
| 68|0x0000000423000000, 0x0000000423000000, 0x0000000423800000| 0%| F| |TAMS 0x0000000423000000, 0x0000000423000000| Untracked
| 69|0x0000000423800000, 0x0000000423800000, 0x0000000424000000| 0%| F| |TAMS 0x0000000423800000, 0x0000000423800000| Untracked
| 70|0x0000000424000000, 0x0000000424000000, 0x0000000424800000| 0%| F| |TAMS 0x0000000424000000, 0x0000000424000000| Untracked
| 71|0x0000000424800000, 0x0000000424e46570, 0x0000000425000000| 78%| E| |TAMS 0x0000000424800000, 0x0000000424800000| Complete
Card table byte_map: [0x000001fe47f30000,0x000001fe49f30000] _byte_map_base: 0x000001fe45f28000
Marking Bits (Prev, Next): (CMBitMap*) 0x000001fe2eca7990, (CMBitMap*) 0x000001fe2eca79d0
Prev Bits: [0x000001fe4bf30000, 0x000001fe5bef0000)
Next Bits: [0x000001fe5bef0000, 0x000001fe6beb0000)
Polling page: 0x000001fe2e3c0000
Metaspace:
Usage:
Non-class: 31.03 MB used.
Class: 3.54 MB used.
Both: 34.57 MB used.
Virtual space:
Non-class space: 32.00 MB reserved, 31.25 MB ( 98%) committed, 4 nodes.
Class space: 1.00 GB reserved, 3.75 MB ( <1%) committed, 1 nodes.
Both: 1.03 GB reserved, 35.00 MB ( 3%) committed.
Chunk freelists:
Non-Class: 432.00 KB
Class: 304.00 KB
Both: 736.00 KB
MaxMetaspaceSize: unlimited
CompressedClassSpaceSize: 1.00 GB
Initial GC threshold: 21.00 MB
Current GC threshold: 52.19 MB
CDS: on
MetaspaceReclaimPolicy: balanced
- commit_granule_bytes: 65536.
- commit_granule_words: 8192.
- virtual_space_node_default_size: 1048576.
- enlarge_chunks_in_place: 1.
- new_chunks_are_fully_committed: 0.
- uncommit_free_chunks: 1.
- use_allocation_guard: 0.
- handle_deallocations: 1.
Internal statistics:
num_allocs_failed_limit: 3.
num_arena_births: 526.
num_arena_deaths: 0.
num_vsnodes_births: 5.
num_vsnodes_deaths: 0.
num_space_committed: 558.
num_space_uncommitted: 0.
num_chunks_returned_to_freelist: 3.
num_chunks_taken_from_freelist: 1793.
num_chunk_merges: 3.
num_chunk_splits: 1226.
num_chunks_enlarged: 866.
num_purges: 0.
num_inconsistent_stats: 0.
CodeHeap 'non-profiled nmethods': size=119168Kb used=5051Kb max_used=5305Kb free=114116Kb
bounds [0x000001fe3e250000, 0x000001fe3e790000, 0x000001fe456b0000]
CodeHeap 'profiled nmethods': size=119104Kb used=13230Kb max_used=14066Kb free=105873Kb
bounds [0x000001fe36e00000, 0x000001fe37be0000, 0x000001fe3e250000]
CodeHeap 'non-nmethods': size=7488Kb used=3566Kb max_used=3686Kb free=3921Kb
bounds [0x000001fe366b0000, 0x000001fe36a60000, 0x000001fe36e00000]
total_blobs=7511 nmethods=6141 adapters=1279
compilation: enabled
stopped_count=0, restarted_count=0
full_count=0
Compilation events (20 events):
Event: 6.579 Thread 0x000001fe6f9fe310 nmethod 7435 0x000001fe36e85b10 code [0x000001fe36e85cc0, 0x000001fe36e85ea8]
Event: 6.579 Thread 0x000001fe6e278e30 7438 3 ru.dbotthepony.kvector.arrays.Matrix4f$View::getC32 (8 bytes)
Event: 6.579 Thread 0x000001fe6f9fb930 nmethod 7436 0x000001fe378bb210 code [0x000001fe378bb3c0, 0x000001fe378bb5a8]
Event: 6.579 Thread 0x000001fe6f9fe310 7439 3 ru.dbotthepony.kvector.arrays.Matrix4f$View::getC33 (8 bytes)
Event: 6.579 Thread 0x000001fe6e278e30 nmethod 7438 0x000001fe378bad90 code [0x000001fe378baf40, 0x000001fe378bb128]
Event: 6.579 Thread 0x000001fe6fa277d0 nmethod 7437 0x000001fe378ba690 code [0x000001fe378ba840, 0x000001fe378baa28]
Event: 6.579 Thread 0x000001fe6f9fe310 nmethod 7439 0x000001fe379c6a90 code [0x000001fe379c6c40, 0x000001fe379c6e28]
Event: 6.579 Thread 0x000001fe6f9fb930 7440 3 ru.dbotthepony.kvector.vector.Vector2f::toDoubleVector (18 bytes)
Event: 6.580 Thread 0x000001fe6f9fb930 nmethod 7440 0x000001fe379c6490 code [0x000001fe379c6640, 0x000001fe379c6958]
Event: 6.580 Thread 0x000001fe6fa277d0 7441 3 ru.dbotthepony.kvector.vector.Vector2f::plus (27 bytes)
Event: 6.580 Thread 0x000001fe6f9fb930 7442 3 ru.dbotthepony.kvector.vector.Vector2f::plus (20 bytes)
Event: 6.580 Thread 0x000001fe6e278e30 7443 3 ru.dbotthepony.kbox2d.collision.DynamicTree::getNodeCapacity (6 bytes)
Event: 6.580 Thread 0x000001fe6f9fb930 nmethod 7442 0x000001fe36e6b110 code [0x000001fe36e6b2c0, 0x000001fe36e6b5d8]
Event: 6.580 Thread 0x000001fe6e278e30 nmethod 7443 0x000001fe37858b10 code [0x000001fe37858ca0, 0x000001fe37858db8]
Event: 6.580 Thread 0x000001fe6fa277d0 nmethod 7441 0x000001fe372df790 code [0x000001fe372df9c0, 0x000001fe372e0148]
Event: 6.581 Thread 0x000001fe05e93e40 nmethod 7423 0x000001fe3e4c2b90 code [0x000001fe3e4c2d20, 0x000001fe3e4c3218]
Event: 6.582 Thread 0x000001fe6fa277d0 7444 % 3 ru.dbotthepony.kstarbound.world.LightCalculator$calculate$1::invoke @ 55 (211 bytes)
Event: 6.583 Thread 0x000001fe6fa277d0 nmethod 7444% 0x000001fe37661390 code [0x000001fe376616c0, 0x000001fe37662b68]
Event: 6.583 Thread 0x000001fe6fa277d0 7445 3 ru.dbotthepony.kstarbound.world.LightCalculator$calculate$1::invoke (211 bytes)
Event: 6.584 Thread 0x000001fe6fa277d0 nmethod 7445 0x000001fe37504090 code [0x000001fe375043c0, 0x000001fe37505788]
GC Heap History (20 events):
Event: 2.688 GC heap before
{Heap before GC invocations=7 (full 0):
garbage-first heap total 131072K, used 74501K [0x0000000401000000, 0x0000000800000000)
region size 8192K, 7 young (57344K), 1 survivors (8192K)
Metaspace used 29612K, committed 30016K, reserved 1081344K
class space used 3053K, committed 3264K, reserved 1048576K
}
Event: 2.700 GC heap after
{Heap after GC invocations=8 (full 0):
garbage-first heap total 172032K, used 31472K [0x0000000401000000, 0x0000000800000000)
region size 8192K, 1 young (8192K), 1 survivors (8192K)
Metaspace used 29612K, committed 30016K, reserved 1081344K
class space used 3053K, committed 3264K, reserved 1048576K
}
Event: 2.975 GC heap before
{Heap before GC invocations=8 (full 0):
garbage-first heap total 172032K, used 105200K [0x0000000401000000, 0x0000000800000000)
region size 8192K, 10 young (81920K), 1 survivors (8192K)
Metaspace used 29986K, committed 30336K, reserved 1081344K
class space used 3076K, committed 3264K, reserved 1048576K
}
Event: 2.994 GC heap after
{Heap after GC invocations=9 (full 0):
garbage-first heap total 172032K, used 45881K [0x0000000401000000, 0x0000000800000000)
region size 8192K, 2 young (16384K), 2 survivors (16384K)
Metaspace used 29986K, committed 30336K, reserved 1081344K
class space used 3076K, committed 3264K, reserved 1048576K
}
Event: 3.221 GC heap before
{Heap before GC invocations=9 (full 0):
garbage-first heap total 172032K, used 103225K [0x0000000401000000, 0x0000000800000000)
region size 8192K, 9 young (73728K), 2 survivors (16384K)
Metaspace used 30535K, committed 30976K, reserved 1081344K
class space used 3129K, committed 3328K, reserved 1048576K
}
Event: 3.241 GC heap after
{Heap after GC invocations=10 (full 0):
garbage-first heap total 172032K, used 57445K [0x0000000401000000, 0x0000000800000000)
region size 8192K, 2 young (16384K), 2 survivors (16384K)
Metaspace used 30535K, committed 30976K, reserved 1081344K
class space used 3129K, committed 3328K, reserved 1048576K
}
Event: 3.439 GC heap before
{Heap before GC invocations=10 (full 0):
garbage-first heap total 172032K, used 106597K [0x0000000401000000, 0x0000000800000000)
region size 8192K, 8 young (65536K), 2 survivors (16384K)
Metaspace used 30989K, committed 31360K, reserved 1081344K
class space used 3156K, committed 3328K, reserved 1048576K
}
Event: 3.454 GC heap after
{Heap after GC invocations=11 (full 0):
garbage-first heap total 172032K, used 68228K [0x0000000401000000, 0x0000000800000000)
region size 8192K, 1 young (8192K), 1 survivors (8192K)
Metaspace used 30989K, committed 31360K, reserved 1081344K
class space used 3156K, committed 3328K, reserved 1048576K
}
Event: 3.545 GC heap before
{Heap before GC invocations=11 (full 0):
garbage-first heap total 172032K, used 109188K [0x0000000401000000, 0x0000000800000000)
region size 8192K, 6 young (49152K), 1 survivors (8192K)
Metaspace used 31006K, committed 31360K, reserved 1081344K
class space used 3157K, committed 3328K, reserved 1048576K
}
Event: 3.559 GC heap after
{Heap after GC invocations=12 (full 0):
garbage-first heap total 294912K, used 78691K [0x0000000401000000, 0x0000000800000000)
region size 8192K, 1 young (8192K), 1 survivors (8192K)
Metaspace used 31006K, committed 31360K, reserved 1081344K
class space used 3157K, committed 3328K, reserved 1048576K
}
Event: 3.886 GC heap before
{Heap before GC invocations=12 (full 0):
garbage-first heap total 294912K, used 193379K [0x0000000401000000, 0x0000000800000000)
region size 8192K, 15 young (122880K), 1 survivors (8192K)
Metaspace used 31625K, committed 32000K, reserved 1081344K
class space used 3210K, committed 3392K, reserved 1048576K
}
Event: 3.901 GC heap after
{Heap after GC invocations=13 (full 0):
garbage-first heap total 294912K, used 106496K [0x0000000401000000, 0x0000000800000000)
region size 8192K, 2 young (16384K), 2 survivors (16384K)
Metaspace used 31625K, committed 32000K, reserved 1081344K
class space used 3210K, committed 3392K, reserved 1048576K
}
Event: 4.116 GC heap before
{Heap before GC invocations=13 (full 0):
garbage-first heap total 294912K, used 188416K [0x0000000401000000, 0x0000000800000000)
region size 8192K, 12 young (98304K), 2 survivors (16384K)
Metaspace used 31664K, committed 32064K, reserved 1081344K
class space used 3210K, committed 3392K, reserved 1048576K
}
Event: 4.137 GC heap after
{Heap after GC invocations=14 (full 0):
garbage-first heap total 294912K, used 136485K [0x0000000401000000, 0x0000000800000000)
region size 8192K, 2 young (16384K), 2 survivors (16384K)
Metaspace used 31664K, committed 32064K, reserved 1081344K
class space used 3210K, committed 3392K, reserved 1048576K
}
Event: 4.266 GC heap before
{Heap before GC invocations=14 (full 0):
garbage-first heap total 294912K, used 202021K [0x0000000401000000, 0x0000000800000000)
region size 8192K, 10 young (81920K), 2 survivors (16384K)
Metaspace used 31677K, committed 32064K, reserved 1081344K
class space used 3210K, committed 3392K, reserved 1048576K
}
Event: 4.279 GC heap after
{Heap after GC invocations=15 (full 0):
garbage-first heap total 294912K, used 162386K [0x0000000401000000, 0x0000000800000000)
region size 8192K, 2 young (16384K), 2 survivors (16384K)
Metaspace used 31677K, committed 32064K, reserved 1081344K
class space used 3210K, committed 3392K, reserved 1048576K
}
Event: 4.393 GC heap before
{Heap before GC invocations=15 (full 0):
garbage-first heap total 294912K, used 211538K [0x0000000401000000, 0x0000000800000000)
region size 8192K, 8 young (65536K), 2 survivors (16384K)
Metaspace used 31689K, committed 32064K, reserved 1081344K
class space used 3210K, committed 3392K, reserved 1048576K
}
Event: 4.406 GC heap after
{Heap after GC invocations=16 (full 0):
garbage-first heap total 589824K, used 187319K [0x0000000401000000, 0x0000000800000000)
region size 8192K, 1 young (8192K), 1 survivors (8192K)
Metaspace used 31689K, committed 32064K, reserved 1081344K
class space used 3210K, committed 3392K, reserved 1048576K
}
Event: 6.561 GC heap before
{Heap before GC invocations=17 (full 0):
garbage-first heap total 589824K, used 359351K [0x0000000401000000, 0x0000000800000000)
region size 8192K, 22 young (180224K), 1 survivors (8192K)
Metaspace used 35382K, committed 35840K, reserved 1081344K
class space used 3620K, committed 3840K, reserved 1048576K
}
Event: 6.574 GC heap after
{Heap after GC invocations=18 (full 0):
garbage-first heap total 589824K, used 226540K [0x0000000401000000, 0x0000000800000000)
region size 8192K, 3 young (24576K), 3 survivors (24576K)
Metaspace used 35382K, committed 35840K, reserved 1081344K
class space used 3620K, committed 3840K, reserved 1048576K
}
Deoptimization events (20 events):
Event: 6.370 Thread 0x000001fe7e87d8d0 DEOPT PACKING pc=0x000001fe379b4236 sp=0x00000030c0eff2d0
Event: 6.370 Thread 0x000001fe7e87d8d0 DEOPT UNPACKING pc=0x000001fe36702b43 sp=0x00000030c0efe910 mode 0
Event: 6.371 Thread 0x000001fe7e87d8d0 Uncommon trap: trap_request=0xffffff45 fr.pc=0x000001fe3e66076c relative=0x00000000000011ec
Event: 6.371 Thread 0x000001fe7e87d8d0 Uncommon trap: reason=unstable_if action=reinterpret pc=0x000001fe3e66076c method=ru.dbotthepony.kstarbound.world.LightCalculator$Grid.calculateSpread()V @ 623 c2
Event: 6.371 Thread 0x000001fe7e87d8d0 DEOPT PACKING pc=0x000001fe3e66076c sp=0x00000030c0eff440
Event: 6.371 Thread 0x000001fe7e87d8d0 DEOPT UNPACKING pc=0x000001fe367023a3 sp=0x00000030c0eff410 mode 2
Event: 6.372 Thread 0x000001fe7ef75790 DEOPT PACKING pc=0x000001fe379b441f sp=0x00000030c0ffec30
Event: 6.372 Thread 0x000001fe7ef75790 DEOPT UNPACKING pc=0x000001fe36702b43 sp=0x00000030c0ffe270 mode 0
Event: 6.388 Thread 0x000001fe7ea99880 DEOPT PACKING pc=0x000001fe379b449b sp=0x00000030c0dfeff0
Event: 6.388 Thread 0x000001fe7ea99880 DEOPT UNPACKING pc=0x000001fe36702b43 sp=0x00000030c0dfe630 mode 0
Event: 6.388 Thread 0x000001fe7e87d8d0 DEOPT PACKING pc=0x000001fe379b4461 sp=0x00000030c0eff2d0
Event: 6.388 Thread 0x000001fe7e87d8d0 DEOPT UNPACKING pc=0x000001fe36702b43 sp=0x00000030c0efe910 mode 0
Event: 6.403 Thread 0x000001fe7ef722a0 DEOPT PACKING pc=0x000001fe379b4461 sp=0x00000030c10fedd0
Event: 6.403 Thread 0x000001fe7ef722a0 DEOPT UNPACKING pc=0x000001fe36702b43 sp=0x00000030c10fe410 mode 0
Event: 6.404 Thread 0x000001fe7e85aed0 DEOPT PACKING pc=0x000001fe379b4461 sp=0x00000030c0bfedd0
Event: 6.404 Thread 0x000001fe7e85aed0 DEOPT UNPACKING pc=0x000001fe36702b43 sp=0x00000030c0bfe410 mode 0
Event: 6.418 Thread 0x000001fe7e85aed0 DEOPT PACKING pc=0x000001fe379b441f sp=0x00000030c0bfedd0
Event: 6.418 Thread 0x000001fe7e85aed0 DEOPT UNPACKING pc=0x000001fe36702b43 sp=0x00000030c0bfe410 mode 0
Event: 6.418 Thread 0x000001fe7ef72770 DEOPT PACKING pc=0x000001fe379b441f sp=0x00000030c12ff1e0
Event: 6.418 Thread 0x000001fe7ef72770 DEOPT UNPACKING pc=0x000001fe36702b43 sp=0x00000030c12fe820 mode 0
Classes unloaded (0 events):
No events
Classes redefined (0 events):
No events
Internal exceptions (20 events):
Event: 3.924 Thread 0x000001fe2ebeedf0 Implicit null exception at 0x000001fe3e6197cd to 0x000001fe3e619e60
Event: 3.926 Thread 0x000001fe2ebeedf0 Implicit null exception at 0x000001fe3e6186c9 to 0x000001fe3e618dec
Event: 3.929 Thread 0x000001fe2ebeedf0 Implicit null exception at 0x000001fe3e60c047 to 0x000001fe3e60c534
Event: 4.595 Thread 0x000001fe2ebeedf0 Implicit null exception at 0x000001fe3e37c1e0 to 0x000001fe3e37c72c
Event: 4.600 Thread 0x000001fe2ebeedf0 Exception <a 'java/lang/NoSuchMethodError'{0x00000004203c84e8}: 'java.lang.Object java.lang.invoke.DirectMethodHandle$Holder.invokeSpecial(java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object)'> (0x00000004203c84e8)
thrown [e:\jenkins\tmp\workspace\build\src\src\hotspot\share\interpreter\linkResolver.cpp, line 766]
Event: 4.600 Thread 0x000001fe2ebeedf0 Exception <a 'java/lang/NoSuchMethodError'{0x00000004203d5070}: 'java.lang.Object java.lang.invoke.DirectMethodHandle$Holder.newInvokeSpecial(java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object)'> (0x00000004203d5070)
thrown [e:\jenkins\tmp\workspace\build\src\src\hotspot\share\interpreter\linkResolver.cpp, line 766]
Event: 4.601 Thread 0x000001fe2ebeedf0 Exception <a 'java/lang/NoSuchMethodError'{0x00000004203da200}: 'java.lang.Object java.lang.invoke.DirectMethodHandle$Holder.invokeSpecial(java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object)'> (0x00000004203da200)
thrown [e:\jenkins\tmp\workspace\build\src\src\hotspot\share\interpreter\linkResolver.cpp, line 766]
Event: 4.601 Thread 0x000001fe2ebeedf0 Exception <a 'java/lang/NoSuchMethodError'{0x00000004203deb50}: 'java.lang.Object java.lang.invoke.Invokers$Holder.linkToTargetMethod(java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object)'> (0x00000004203deb50)
thrown [e:\jenkins\tmp\workspace\build\src\src\hotspot\share\interpreter\linkResolver.cpp, line 766]
Event: 4.615 Thread 0x000001fe2ebeedf0 Exception <a 'sun/nio/fs/WindowsException'{0x00000004204226c8}> (0x00000004204226c8)
thrown [e:\jenkins\tmp\workspace\build\src\src\hotspot\share\prims\jni.cpp, line 516]
Event: 4.615 Thread 0x000001fe2ebeedf0 Exception <a 'sun/nio/fs/WindowsException'{0x0000000420422a50}> (0x0000000420422a50)
thrown [e:\jenkins\tmp\workspace\build\src\src\hotspot\share\prims\jni.cpp, line 516]
Event: 4.618 Thread 0x000001fe2ebeedf0 Exception <a 'java/lang/NoSuchMethodError'{0x000000042042cba0}: 'void java.lang.invoke.DirectMethodHandle$Holder.invokeStatic(java.lang.Object, long)'> (0x000000042042cba0)
thrown [e:\jenkins\tmp\workspace\build\src\src\hotspot\share\interpreter\linkResolver.cpp, line 766]
Event: 4.618 Thread 0x000001fe2ebeedf0 Exception <a 'java/lang/NoSuchMethodError'{0x0000000420432630}: 'java.lang.Object java.lang.invoke.DirectMethodHandle$Holder.newInvokeSpecial(java.lang.Object, long)'> (0x0000000420432630)
thrown [e:\jenkins\tmp\workspace\build\src\src\hotspot\share\interpreter\linkResolver.cpp, line 766]
Event: 4.620 Thread 0x000001fe7f229730 Implicit null exception at 0x000001fe3e4f6055 to 0x000001fe3e4f7da4
Event: 4.778 Thread 0x000001fe2ebeedf0 Exception <a 'java/lang/UnsatisfiedLinkError'{0x000000041ffa5998}: Íå íàéäåíà óêàçàííàÿ ïðîöåäóðà.
> (0x000000041ffa5998)
thrown [e:\jenkins\tmp\workspace\build\src\src\hotspot\share\prims\jni.cpp, line 535]
Event: 4.797 Thread 0x000001fe2ebeedf0 Exception <a 'java/lang/NoSuchMethodError'{0x000000041f0cf1a0}: 'java.lang.Object java.lang.invoke.DirectMethodHandle$Holder.newInvokeSpecial(java.lang.Object, java.lang.Object, int, java.lang.Object)'> (0x000000041f0cf1a0)
thrown [e:\jenkins\tmp\workspace\build\src\src\hotspot\share\interpreter\linkResolver.cpp, line 766]
Event: 4.797 Thread 0x000001fe2ebeedf0 Exception <a 'java/lang/NoSuchMethodError'{0x000000041f0d2fe8}: 'java.lang.Object java.lang.invoke.DirectMethodHandle$Holder.invokeSpecial(java.lang.Object, java.lang.Object, java.lang.Object, int, java.lang.Object)'> (0x000000041f0d2fe8)
thrown [e:\jenkins\tmp\workspace\build\src\src\hotspot\share\interpreter\linkResolver.cpp, line 766]
Event: 4.831 Thread 0x000001fe2ebeedf0 Exception <a 'java/lang/NoSuchMethodError'{0x000000041f251808}: 'int java.lang.invoke.DirectMethodHandle$Holder.invokeSpecial(java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object)'> (0x000000041f251808)
thrown [e:\jenkins\tmp\workspace\build\src\src\hotspot\share\interpreter\linkResolver.cpp, line 766]
Event: 4.837 Thread 0x000001fe2ebeedf0 Exception <a 'java/lang/NoSuchMethodError'{0x000000041f2b0b00}: 'java.lang.Object java.lang.invoke.DirectMethodHandle$Holder.invokeSpecial(java.lang.Object, java.lang.Object, java.lang.Object, long, java.lang.Object)'> (0x000000041f2b0b00)
thrown [e:\jenkins\tmp\workspace\build\src\src\hotspot\share\interpreter\linkResolver.cpp, line 766]
Event: 4.837 Thread 0x000001fe2ebeedf0 Exception <a 'java/lang/NoSuchMethodError'{0x000000041f2b4428}: 'java.lang.Object java.lang.invoke.Invokers$Holder.linkToTargetMethod(java.lang.Object, long, java.lang.Object, java.lang.Object)'> (0x000000041f2b4428)
thrown [e:\jenkins\tmp\workspace\build\src\src\hotspot\share\interpreter\linkResolver.cpp, line 766]
Event: 4.854 Thread 0x000001fe2ebeedf0 Exception <a 'java/lang/NoSuchMethodError'{0x000000041f380428}: 'java.lang.Object java.lang.invoke.DirectMethodHandle$Holder.invokeStatic(java.lang.Object, java.lang.Object, int, int)'> (0x000000041f380428)
thrown [e:\jenkins\tmp\workspace\build\src\src\hotspot\share\interpreter\linkResolver.cpp, line 766]
VM Operations (20 events):
Event: 4.699 Executing VM operation: HandshakeAllThreads
Event: 4.699 Executing VM operation: HandshakeAllThreads done
Event: 4.838 Executing VM operation: ICBufferFull
Event: 4.838 Executing VM operation: ICBufferFull done
Event: 4.878 Executing VM operation: HandshakeAllThreads
Event: 4.878 Executing VM operation: HandshakeAllThreads done
Event: 5.030 Executing VM operation: HandshakeAllThreads
Event: 5.030 Executing VM operation: HandshakeAllThreads done
Event: 5.085 Executing VM operation: ICBufferFull
Event: 5.085 Executing VM operation: ICBufferFull done
Event: 5.147 Executing VM operation: HandshakeAllThreads
Event: 5.148 Executing VM operation: HandshakeAllThreads done
Event: 5.189 Executing VM operation: HandshakeAllThreads
Event: 5.189 Executing VM operation: HandshakeAllThreads done
Event: 5.207 Executing VM operation: HandshakeAllThreads
Event: 5.207 Executing VM operation: HandshakeAllThreads done
Event: 6.208 Executing VM operation: Cleanup
Event: 6.208 Executing VM operation: Cleanup done
Event: 6.561 Executing VM operation: G1CollectForAllocation
Event: 6.574 Executing VM operation: G1CollectForAllocation done
Events (20 events):
Event: 5.220 Thread 0x000001fe6f918070 flushing nmethod 0x000001fe37b3db10
Event: 5.220 Thread 0x000001fe6f918070 flushing nmethod 0x000001fe37b3f110
Event: 5.220 Thread 0x000001fe6f918070 flushing nmethod 0x000001fe37b40a90
Event: 5.220 Thread 0x000001fe6f918070 flushing nmethod 0x000001fe37b42790
Event: 5.220 Thread 0x000001fe6f918070 flushing nmethod 0x000001fe37b46310
Event: 5.220 Thread 0x000001fe6f918070 flushing nmethod 0x000001fe37b46690
Event: 5.220 Thread 0x000001fe6f918070 flushing nmethod 0x000001fe37b46c90
Event: 5.220 Thread 0x000001fe6f918070 flushing nmethod 0x000001fe37b47610
Event: 5.220 Thread 0x000001fe6f918070 flushing nmethod 0x000001fe37b48390
Event: 5.694 Thread 0x000001fe05e94350 Thread exited: 0x000001fe05e94350
Event: 5.694 Thread 0x000001fe05e93e40 Thread exited: 0x000001fe05e93e40
Event: 5.694 Thread 0x000001fe05e95280 Thread exited: 0x000001fe05e95280
Event: 5.694 Thread 0x000001fe7eea1ee0 Thread exited: 0x000001fe7eea1ee0
Event: 5.694 Thread 0x000001fe7f69ca40 Thread exited: 0x000001fe7f69ca40
Event: 5.807 Thread 0x000001fe7f2d5a10 Thread exited: 0x000001fe7f2d5a10
Event: 5.808 Thread 0x000001fe7066b640 Thread exited: 0x000001fe7066b640
Event: 6.287 Thread 0x000001fe05e95280 Thread added: 0x000001fe05e95280
Event: 6.288 Thread 0x000001fe05e93e40 Thread added: 0x000001fe05e93e40
Event: 6.288 Thread 0x000001fe05e970e0 Thread added: 0x000001fe05e970e0
Event: 6.334 Thread 0x000001fe05e975f0 Thread added: 0x000001fe05e975f0
Dynamic libraries:
0x00007ff760040000 - 0x00007ff76004e000 C:\Users\dbott\.gradle\jdks\jdk-17.0.1+12\bin\java.exe
0x00007ffbd8050000 - 0x00007ffbd8245000 C:\Windows\SYSTEM32\ntdll.dll
0x00007ffbd7e90000 - 0x00007ffbd7f4d000 C:\Windows\System32\KERNEL32.DLL
0x00007ffbd5990000 - 0x00007ffbd5c5d000 C:\Windows\System32\KERNELBASE.dll
0x00007ffbd5760000 - 0x00007ffbd5860000 C:\Windows\System32\ucrtbase.dll
0x00007ffbc8eb0000 - 0x00007ffbc8ec9000 C:\Users\dbott\.gradle\jdks\jdk-17.0.1+12\bin\VCRUNTIME140.dll
0x00007ffbc8fe0000 - 0x00007ffbc8ff8000 C:\Users\dbott\.gradle\jdks\jdk-17.0.1+12\bin\jli.dll
0x00007ffbd6df0000 - 0x00007ffbd6f90000 C:\Windows\System32\USER32.dll
0x00007ffbd58f0000 - 0x00007ffbd5912000 C:\Windows\System32\win32u.dll
0x00007ffbc2400000 - 0x00007ffbc269a000 C:\Windows\WinSxS\amd64_microsoft.windows.common-controls_6595b64144ccf1df_6.0.19041.1110_none_60b5254171f9507e\COMCTL32.dll
0x00007ffbd7a20000 - 0x00007ffbd7a4a000 C:\Windows\System32\GDI32.dll
0x00007ffbd6410000 - 0x00007ffbd64ae000 C:\Windows\System32\msvcrt.dll
0x00007ffbd5d00000 - 0x00007ffbd5e0b000 C:\Windows\System32\gdi32full.dll
0x00007ffbd5c60000 - 0x00007ffbd5cfd000 C:\Windows\System32\msvcp_win.dll
0x00007ffbd6dc0000 - 0x00007ffbd6df0000 C:\Windows\System32\IMM32.DLL
0x00007ffbcd340000 - 0x00007ffbcd34c000 C:\Users\dbott\.gradle\jdks\jdk-17.0.1+12\bin\vcruntime140_1.dll
0x00007ffba9ae0000 - 0x00007ffba9b71000 C:\Users\dbott\.gradle\jdks\jdk-17.0.1+12\bin\msvcp140.dll
0x00007ffb54660000 - 0x00007ffb552a6000 C:\Users\dbott\.gradle\jdks\jdk-17.0.1+12\bin\server\jvm.dll
0x00007ffbd70b0000 - 0x00007ffbd715e000 C:\Windows\System32\ADVAPI32.dll
0x00007ffbd7500000 - 0x00007ffbd759c000 C:\Windows\System32\sechost.dll
0x00007ffbd6c90000 - 0x00007ffbd6db5000 C:\Windows\System32\RPCRT4.dll
0x00007ffbd7f50000 - 0x00007ffbd7f58000 C:\Windows\System32\PSAPI.DLL
0x00007ffbc01d0000 - 0x00007ffbc01d9000 C:\Windows\SYSTEM32\WSOCK32.dll
0x00007ffbcbd90000 - 0x00007ffbcbdb7000 C:\Windows\SYSTEM32\WINMM.dll
0x00007ffbcdb10000 - 0x00007ffbcdb1a000 C:\Windows\SYSTEM32\VERSION.dll
0x00007ffbd7270000 - 0x00007ffbd72db000 C:\Windows\System32\WS2_32.dll
0x00007ffbd3680000 - 0x00007ffbd3692000 C:\Windows\SYSTEM32\kernel.appcore.dll
0x00007ffbc9240000 - 0x00007ffbc924a000 C:\Users\dbott\.gradle\jdks\jdk-17.0.1+12\bin\jimage.dll
0x00007ffbcf0e0000 - 0x00007ffbcf2c4000 C:\Windows\SYSTEM32\DBGHELP.DLL
0x00007ffbc23d0000 - 0x00007ffbc23fc000 C:\Windows\SYSTEM32\dbgcore.DLL
0x00007ffbd5860000 - 0x00007ffbd58e2000 C:\Windows\System32\bcryptPrimitives.dll
0x00007ffbcd790000 - 0x00007ffbcd79e000 C:\Users\dbott\.gradle\jdks\jdk-17.0.1+12\bin\instrument.dll
0x00007ffbb98c0000 - 0x00007ffbb98e5000 C:\Users\dbott\.gradle\jdks\jdk-17.0.1+12\bin\java.dll
0x00007ffb99a90000 - 0x00007ffb99b66000 C:\Users\dbott\.gradle\jdks\jdk-17.0.1+12\bin\svml.dll
0x00007ffbd64b0000 - 0x00007ffbd6bf4000 C:\Windows\System32\SHELL32.dll
0x00007ffbd3880000 - 0x00007ffbd4014000 C:\Windows\SYSTEM32\windows.storage.dll
0x00007ffbd7b30000 - 0x00007ffbd7e84000 C:\Windows\System32\combase.dll
0x00007ffbd51c0000 - 0x00007ffbd51ec000 C:\Windows\SYSTEM32\Wldp.dll
0x00007ffbd7f60000 - 0x00007ffbd800d000 C:\Windows\System32\SHCORE.dll
0x00007ffbd7ad0000 - 0x00007ffbd7b25000 C:\Windows\System32\shlwapi.dll
0x00007ffbd56a0000 - 0x00007ffbd56bf000 C:\Windows\SYSTEM32\profapi.dll
0x00007ffbbeea0000 - 0x00007ffbbeeb8000 C:\Users\dbott\.gradle\jdks\jdk-17.0.1+12\bin\zip.dll
0x00007ffbc4a00000 - 0x00007ffbc4a19000 C:\Users\dbott\.gradle\jdks\jdk-17.0.1+12\bin\net.dll
0x00007ffbcd8c0000 - 0x00007ffbcd9ca000 C:\Windows\SYSTEM32\WINHTTP.dll
0x00007ffbd4f20000 - 0x00007ffbd4f8a000 C:\Windows\system32\mswsock.dll
0x00007ffbbf010000 - 0x00007ffbbf025000 C:\Users\dbott\.gradle\jdks\jdk-17.0.1+12\bin\nio.dll
0x00007ffbcd760000 - 0x00007ffbcd77a000 C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2021.3\bin\breakgen64.dll
0x00007ffbc4ae0000 - 0x00007ffbc4ae9000 C:\Users\dbott\.gradle\jdks\jdk-17.0.1+12\bin\management.dll
0x00007ffbc22c0000 - 0x00007ffbc22cb000 C:\Users\dbott\.gradle\jdks\jdk-17.0.1+12\bin\management_ext.dll
0x00007ffbbe0f0000 - 0x00007ffbbe107000 C:\Windows\system32\napinsp.dll
0x00007ffbbdf90000 - 0x00007ffbbdfab000 C:\Windows\system32\pnrpnsp.dll
0x00007ffbb6a30000 - 0x00007ffbb6a45000 C:\Windows\system32\wshbth.dll
0x00007ffbd13f0000 - 0x00007ffbd140d000 C:\Windows\system32\NLAapi.dll
0x00007ffbd4ba0000 - 0x00007ffbd4bdb000 C:\Windows\SYSTEM32\IPHLPAPI.DLL
0x00007ffbd4be0000 - 0x00007ffbd4cab000 C:\Windows\SYSTEM32\DNSAPI.dll
0x00007ffbd6c60000 - 0x00007ffbd6c68000 C:\Windows\System32\NSI.dll
0x00007ffbbc030000 - 0x00007ffbbc042000 C:\Windows\System32\winrnr.dll
0x0000000061af0000 - 0x0000000061b16000 C:\Program Files\Bonjour\mdnsNSP.dll
0x00007ffbccc00000 - 0x00007ffbccc0a000 C:\Windows\System32\rasadhlp.dll
0x00007ffbcc2f0000 - 0x00007ffbcc370000 C:\Windows\System32\fwpuclnt.dll
0x00007ffbd5f10000 - 0x00007ffbd5f37000 C:\Windows\System32\bcrypt.dll
0x00007ffbb8c30000 - 0x00007ffbb8ca1000 C:\Users\dbott\AppData\Local\Temp\lwjgldbott\3.3.0-build-21\lwjgl.dll
0x00007ffbb9230000 - 0x00007ffbb9291000 C:\Users\dbott\AppData\Local\Temp\lwjgldbott\3.3.0-build-21\glfw.dll
0x00007ffbb96a0000 - 0x00007ffbb96e5000 C:\Windows\SYSTEM32\dinput8.dll
0x00007ffbbda60000 - 0x00007ffbbda71000 C:\Windows\SYSTEM32\xinput1_4.dll
0x00007ffbd5e10000 - 0x00007ffbd5e5e000 C:\Windows\System32\cfgmgr32.dll
0x00007ffbd5510000 - 0x00007ffbd553c000 C:\Windows\SYSTEM32\DEVOBJ.dll
0x00007ffbd3390000 - 0x00007ffbd33bf000 C:\Windows\SYSTEM32\dwmapi.dll
0x00007ffbc89f0000 - 0x00007ffbc8b42000 C:\Windows\SYSTEM32\inputhost.dll
0x00007ffbd6340000 - 0x00007ffbd640d000 C:\Windows\System32\OLEAUT32.dll
0x00007ffbd16d0000 - 0x00007ffbd1824000 C:\Windows\SYSTEM32\wintypes.dll
0x00007ffbcfe40000 - 0x00007ffbcff36000 C:\Windows\SYSTEM32\PROPSYS.dll
0x00007ffbd2d90000 - 0x00007ffbd2e82000 C:\Windows\SYSTEM32\CoreMessaging.dll
0x00007ffbd2a30000 - 0x00007ffbd2d8e000 C:\Windows\SYSTEM32\CoreUIComponents.dll
0x00007ffbd4460000 - 0x00007ffbd4493000 C:\Windows\SYSTEM32\ntmarta.dll
0x00007ffbd31a0000 - 0x00007ffbd323e000 C:\Windows\system32\uxtheme.dll
0x00007ffbd6f90000 - 0x00007ffbd70a5000 C:\Windows\System32\MSCTF.dll
0x00007ffb9b170000 - 0x00007ffb9b296000 C:\Windows\SYSTEM32\opengl32.dll
0x00007ffb9bf50000 - 0x00007ffb9bf7c000 C:\Windows\SYSTEM32\GLU32.dll
0x00007ffbd71c0000 - 0x00007ffbd7269000 C:\Windows\System32\clbcatq.dll
0x00007ffb9bf20000 - 0x00007ffb9bf4d000 C:\Windows\System32\DriverStore\FileRepository\u0387206.inf_amd64_081d192bd0a4e0cb\B386218\atig6pxx.dll
0x00007ffb7a5b0000 - 0x00007ffb7e2a1000 C:\Windows\System32\DriverStore\FileRepository\u0387206.inf_amd64_081d192bd0a4e0cb\B386218\atio6axx.dll
0x00007ffbd75a0000 - 0x00007ffbd7a11000 C:\Windows\System32\SETUPAPI.dll
0x00007ffbd5920000 - 0x00007ffbd5988000 C:\Windows\System32\WINTRUST.dll
0x00007ffbd5f40000 - 0x00007ffbd6096000 C:\Windows\System32\CRYPT32.dll
0x00007ffbd5350000 - 0x00007ffbd5362000 C:\Windows\SYSTEM32\MSASN1.dll
0x00007ffbac190000 - 0x00007ffbac1ed000 C:\Users\dbott\AppData\Local\Temp\lwjgldbott\3.3.0-build-21\lwjgl_opengl.dll
0x00007ffbd5110000 - 0x00007ffbd5128000 C:\Windows\SYSTEM32\CRYPTSP.dll
0x00007ffbd47c0000 - 0x00007ffbd47f4000 C:\Windows\system32\rsaenh.dll
0x00007ffbd5660000 - 0x00007ffbd568e000 C:\Windows\SYSTEM32\USERENV.dll
0x00007ffbd5130000 - 0x00007ffbd513c000 C:\Windows\SYSTEM32\CRYPTBASE.dll
0x00007ffbd0000000 - 0x00007ffbd0017000 C:\Windows\SYSTEM32\dhcpcsvc6.DLL
0x00007ffbcffe0000 - 0x00007ffbcfffd000 C:\Windows\SYSTEM32\dhcpcsvc.DLL
0x00007ffba9a90000 - 0x00007ffba9ad5000 C:\Users\dbott\AppData\Local\Temp\jna-95382001\jna9809531980187271138.dll
0x00007ffba4910000 - 0x00007ffba49b3000 K:\git\kstarbound\freetype-2.11.1.dll
0x00007ffbc8b50000 - 0x00007ffbc8c49000 C:\Windows\SYSTEM32\textinputframework.dll
0x00007ffba9840000 - 0x00007ffba98c1000 C:\Users\dbott\AppData\Local\Temp\lwjgldbott\3.3.0-build-21\lwjgl_stb.dll
0x000000006e4c0000 - 0x000000006e4df000 C:\Users\dbott\AppData\Local\Temp\jffi3161326882277025995.dll
0x00007ffbc5210000 - 0x00007ffbc5220000 C:\Users\dbott\.gradle\jdks\jdk-17.0.1+12\bin\verify.dll
0x00007ffba1530000 - 0x00007ffba15d4000 K:\git\kstarbound\lua54.DLL
0x00007ffbbc080000 - 0x00007ffbbc0a3000 K:\git\kstarbound\lua_glue.dll
dbghelp: loaded successfully - version: 4.0.5 - missing functions: none
symbol engine: initialized successfully - sym options: 0x614 - pdb path: .;C:\Users\dbott\.gradle\jdks\jdk-17.0.1+12\bin;C:\Windows\SYSTEM32;C:\Windows\WinSxS\amd64_microsoft.windows.common-controls_6595b64144ccf1df_6.0.19041.1110_none_60b5254171f9507e;C:\Users\dbott\.gradle\jdks\jdk-17.0.1+12\bin\server;C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2021.3\bin;C:\Program Files\Bonjour;C:\Users\dbott\AppData\Local\Temp\lwjgldbott\3.3.0-build-21;C:\Windows\System32\DriverStore\FileRepository\u0387206.inf_amd64_081d192bd0a4e0cb\B386218;C:\Users\dbott\AppData\Local\Temp\jna-95382001;K:\git\kstarbound;C:\Users\dbott\AppData\Local\Temp
VM Arguments:
jvm_args: -Xms128m -javaagent:C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2021.3\lib\idea_rt.jar=5737:C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2021.3\bin -Dfile.encoding=UTF-8
java_command: ru.dbotthepony.kstarbound.MainKt
java_class_path (initial): K:\git\kstarbound\build\classes\java\main;K:\git\kstarbound\build\classes\kotlin\main;K:\git\kstarbound\build\resources\main;C:\Users\dbott\.gradle\caches\modules-2\files-2.1\org.jetbrains.kotlin\kotlin-reflect\1.6.10\1cbe9c92c12a94eea200d23c2bbaedaf3daf5132\kotlin-reflect-1.6.10.jar;C:\Users\dbott\.gradle\caches\modules-2\files-2.1\org.jetbrains.kotlin\kotlin-stdlib\1.6.10\b8af3fe6f1ca88526914929add63cf5e7c5049af\kotlin-stdlib-1.6.10.jar;C:\Users\dbott\.gradle\caches\modules-2\files-2.1\org.apache.logging.log4j\log4j-core\2.17.1\779f60f3844dadc3ef597976fcb1e5127b1f343d\log4j-core-2.17.1.jar;C:\Users\dbott\.gradle\caches\modules-2\files-2.1\org.apache.logging.log4j\log4j-api\2.17.1\d771af8e336e372fb5399c99edabe0919aeaf5b2\log4j-api-2.17.1.jar;C:\Users\dbott\.gradle\caches\modules-2\files-2.1\com.google.code.gson\gson\2.8.9\8a432c1d6825781e21a02db2e2c33c5fde2833b9\gson-2.8.9.jar;C:\Users\dbott\.gradle\caches\modules-2\files-2.1\it.unimi.dsi\fastutil\8.5.6\76f95700418a68fbc4ac050525261f05dc681ca1\fastutil-8.5.6.jar;C:\Users\dbott\.gradle\caches\modules-2\files-2.1\com.google.guava\guava\31.0.1-jre\119ea2b2bc205b138974d351777b20f02b92704b\guava-31.0.1-jre.jar;C:\Users\dbott\.gradle\caches\modules-2\files-2.1\org.lwjgl\lwjgl-assimp\3.3.0\82135e856184e76d38a97f729141298d3edcf0e4\lwjgl-assimp-3.3.0.jar;C:\Users\dbott\.gradle\caches\modules-2\files-2.1\org.lwjgl\lwjgl-bgfx\3.3.0\b9e9a62b741bdc60f9207a4d4de6e61a2b7de6af\lwjgl-bgfx-3.3.0.jar;C:\Users\dbott\.gradle\caches\modules-2\files-2.1\org.lwjgl\lwjgl-glfw\3.3.0\899e34f314525596f8fdb6476d3e56104da4601d\lwjgl-glfw-3.3.0.jar;C:\Users\dbott\.gradle\caches\modules-2\files-2.1\org.lwjgl\lwjgl-nanovg\3.3.0\a15688d6e6c7136cebc5b63f30d120f702f6587c\lwjgl-nanovg-3.3.0.jar;C:\Users\dbott\.gradle\caches\modules-2\files-2.1\org.lwjgl\lwjgl-nuklear\3.3.0\8dbbdce4f28384c2abdfe8d0abff5f4c9bae286e\lwjgl-nuklear-3.3.0.jar;C:\Users\dbott\.gradle\caches\modules-2\files-2.1\org.lwjgl\lwjgl-openal\3.3.0\902dd57b
Launcher Type: SUN_STANDARD
[Global flags]
intx CICompilerCount = 12 {product} {ergonomic}
uint ConcGCThreads = 3 {product} {ergonomic}
uint G1ConcRefinementThreads = 13 {product} {ergonomic}
size_t G1HeapRegionSize = 8388608 {product} {ergonomic}
uintx GCDrainStackTargetSize = 64 {product} {ergonomic}
size_t InitialHeapSize = 134217728 {product} {command line}
size_t MarkStackSize = 4194304 {product} {ergonomic}
size_t MaxHeapSize = 17163091968 {product} {ergonomic}
size_t MaxNewSize = 10292822016 {product} {ergonomic}
size_t MinHeapDeltaBytes = 8388608 {product} {ergonomic}
size_t MinHeapSize = 134217728 {product} {command line}
uintx NonNMethodCodeHeapSize = 7602480 {pd product} {ergonomic}
uintx NonProfiledCodeHeapSize = 122027880 {pd product} {ergonomic}
uintx ProfiledCodeHeapSize = 122027880 {pd product} {ergonomic}
uintx ReservedCodeCacheSize = 251658240 {pd product} {ergonomic}
bool SegmentedCodeCache = true {product} {ergonomic}
size_t SoftMaxHeapSize = 17163091968 {manageable} {ergonomic}
bool UseCompressedClassPointers = true {product lp64_product} {ergonomic}
bool UseCompressedOops = true {product lp64_product} {ergonomic}
bool UseG1GC = true {product} {ergonomic}
bool UseLargePagesIndividualAllocation = false {pd product} {ergonomic}
Logging:
Log output configuration:
#0: stdout all=warning uptime,level,tags
#1: stderr all=off uptime,level,tags
Environment Variables:
JAVA_HOME=C:\Program Files\Eclipse Adoptium\jdk-17.0.4.101-hotspot\
PATH=C:\Program Files\Eclipse Adoptium\jdk-17.0.4.101-hotspot\bin;C:\Program Files\ImageMagick-7.1.0-Q16;C:\Program Files\Microsoft\jdk-11.0.12.7-hotspot\bin;C:\Program Files\ImageMagick-7.1.0-Q16-HDRI;C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common;C:\Program Files (x86)\VMware\VMware Workstation\bin\;C:\Program Files\ImageMagick-7.0.10-Q16-HDRI;C:\Program Files\Python38\Scripts\;C:\Program Files\Python38\;C:\Program Files\ImageMagick-7.0.9-Q16;C:\Program Files (x86)\Common Files\Oracle\Java\javapath;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;D:\php7;C:\Program Files (x86)\Lua\5.1;C:\Program Files (x86)\Lua\5.1\clibs;C:\Program Files (x86)\Codebox\BitMeterOS;C:\moonscript;C:\Program Files\TortoiseHg\;C:\Program Files\GTK3-Runtime Win64\bin;C:\ProgramData\ComposerSetup\bin;C:\Program Files\Logstalgia\cmd;C:\Program Files\dotnet\;C:\Program Files\TortoiseSVN\bin;C:\Program Files\Gource\cmd;C:\kotlin-native-windows-1.3.72\bin;N:\platform-tools;C:\Program Files\PuTTY\;C:\Program Files\Git\cmd;C:\Windows\System32\OpenSSH\;D:\php-8.0.8-Win32-vs16-x64;C:\Program Files\LLVM\bin;C:\Program Files\PowerShell\7\;C:\Program Files\CMake\bin;C:\pypy3.8-v7.3.7-win64;C:\pypy3.8-v7.3.7-win64\Scripts;C:\Program Files\nodejs\;C:\Program Files\7-Zip;C:\Program Files\TortoiseGit\bin;C:\Users\dbott\.cargo\bin;C:\Users\dbott\.windows-build-tools\python27\;C:\Users\dbott\AppData\Local\Programs\Python\Python37\Scripts\;C:\Users\dbott\AppData\Local\Programs\Python\Python37\;C:\Users\dbott\AppData\Local\Microsoft\WindowsApps;C:\Users\dbott\AppData\Local\Programs\Microsoft VS Code\bin;K:\git\vcpkg\installed\x86-windows\include;K:\git\vcpkg\installed\x86-windows\lib;K:\git\vcpkg\installed\x86-windows\bin;C:\Users\dbott\AppData\Roaming\Composer\vendor\bin;C:\Users\dbott\.dotnet\tools;C:\Users\dbott\AppData\Local\Microsoft\WindowsApps;C:\Program Files (x86)\FreeArc\bin;C:\Users\dbott\AppData\Roaming\npm
USERNAME=dbott
OS=Windows_NT
PROCESSOR_IDENTIFIER=AMD64 Family 23 Model 113 Stepping 0, AuthenticAMD
--------------- S Y S T E M ---------------
OS:
Windows 10 , 64 bit Build 19041 (10.0.19041.1706)
OS uptime: 34 days 23:31 hours
CPU: total 16 (initial active 16) (16 cores per cpu, 2 threads per core) family 23 model 113 stepping 0 microcode 0x0, cx8, cmov, fxsr, ht, mmx, 3dnowpref, sse, sse2, sse3, ssse3, sse4a, sse4.1, sse4.2, popcnt, lzcnt, tsc, tscinvbit, avx, avx2, aes, clmul, bmi1, bmi2, adx, sha, fma, vzeroupper, clflush, clflushopt
Memory: 4k page, system-wide physical 65457M (24535M free)
TotalPageFile size 165457M (AvailPageFile size 106076M)
current process WorkingSet (physical memory assigned to process): 809M, peak: 831M
current process commit charge ("private bytes"): 1018M, peak: 1055M
vm_info: OpenJDK 64-Bit Server VM (17.0.1+12) for windows-amd64 JRE (17.0.1+12), built on Oct 20 2021 07:42:55 by "" with MS VC++ 16.7 (VS2019)
END.

841
hs_err_pid54068.log Normal file
View File

@ -0,0 +1,841 @@
#
# A fatal error has been detected by the Java Runtime Environment:
#
# EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x00007ffb7c599979, pid=54068, tid=48396
#
# JRE version: OpenJDK Runtime Environment Temurin-17.0.1+12 (17.0.1+12) (build 17.0.1+12)
# Java VM: OpenJDK 64-Bit Server VM Temurin-17.0.1+12 (17.0.1+12, mixed mode, sharing, tiered, compressed oops, compressed class ptrs, g1 gc, windows-amd64)
# Problematic frame:
# C [atio6axx.dll+0x1fe9979]
#
# No core dump will be written. Minidumps are not enabled by default on client versions of Windows
#
# If you would like to submit a bug report, please visit:
# https://github.com/adoptium/adoptium-support/issues
# The crash happened outside the Java Virtual Machine in native code.
# See problematic frame for where to report the bug.
#
--------------- S U M M A R Y ------------
Command Line: -Xms128m -javaagent:C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2021.3\lib\idea_rt.jar=5926:C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2021.3\bin -Dfile.encoding=UTF-8 ru.dbotthepony.kstarbound.MainKt
Host: AMD Ryzen 7 3700X 8-Core Processor , 16 cores, 63G, Windows 10 , 64 bit Build 19041 (10.0.19041.1706)
Time: Sun Sep 10 10:45:13 2023 RTZ 6 (s 10 , 64 bit Build 19041 (10.0.19041.1706) elapsed time: 14.077935 seconds (0d 0h 0m 14s)
--------------- T H R E A D ---------------
Current thread (0x000001a79cdedec0): JavaThread "main" [_thread_in_native, id=48396, stack(0x00000054a6b00000,0x00000054a6c00000)]
Stack: [0x00000054a6b00000,0x00000054a6c00000], sp=0x00000054a6bfed78, free space=1019k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
C [atio6axx.dll+0x1fe9979]
Java frames: (J=compiled Java code, j=interpreted, Vv=VM code)
J 7372 org.lwjgl.opengl.GL11C.nglTexImage2D(IIIIIIIIJ)V (0 bytes) @ 0x000001a7ac61cb24 [0x000001a7ac61caa0+0x0000000000000084]
J 7371 c1 org.lwjgl.opengl.GL11C.glTexImage2D(IIIIIIIILjava/nio/ByteBuffer;)V (21 bytes) @ 0x000001a7a50e30c4 [0x000001a7a50e2ee0+0x00000000000001e4]
J 7370 c1 org.lwjgl.opengl.GL11.glTexImage2D(IIIIIIIILjava/nio/ByteBuffer;)V (18 bytes) @ 0x000001a7a50e390c [0x000001a7a50e38a0+0x000000000000006c]
J 7502 c1 ru.dbotthepony.kstarbound.client.gl.GLTexture2D.upload(IIIIIILjava/nio/ByteBuffer;)Lru/dbotthepony/kstarbound/client/gl/GLTexture2D; (121 bytes) @ 0x000001a7a5d4b54c [0x000001a7a5d4b260+0x00000000000002ec]
J 7261 c1 ru.dbotthepony.kstarbound.client.gl.GLTexture2D.upload(IIIIILjava/nio/ByteBuffer;)Lru/dbotthepony/kstarbound/client/gl/GLTexture2D; (22 bytes) @ 0x000001a7a53eaa8c [0x000001a7a53ea720+0x000000000000036c]
J 7562 c2 ru.dbotthepony.kstarbound.client.StarboundClient.renderFrame()Z (1420 bytes) @ 0x000001a7ac98fc0c [0x000001a7ac98d660+0x00000000000025ac]
j ru.dbotthepony.kstarbound.MainKt.main()V+253
j ru.dbotthepony.kstarbound.MainKt.main([Ljava/lang/String;)V+0
v ~StubRoutines::call_stub
siginfo: EXCEPTION_ACCESS_VIOLATION (0xc0000005), reading address 0x000001a7eb57b000
Register to memory mapping:
RIP=0x00007ffb7c599979 atio6axx.dll
RAX=0x000001a7ed0035f0 points into unknown readable memory: 0x0000000000000000 | 00 00 00 00 00 00 00 00
RBX=0x000001a7ec882f10 points into unknown readable memory: 0x0151015201510150 | 50 01 51 01 52 01 51 01
RCX=0x000001a7ed003b00 points into unknown readable memory: 0x0000000000000000 | 00 00 00 00 00 00 00 00
RDX=0x000001a7eb57afc0 points into unknown readable memory: 0x3f0ccccd41200000 | 00 00 20 41 cd cc 0c 3f
RSP=0x00000054a6bfed78 is pointing into the stack for thread: 0x000001a79cdedec0
RBP=0x00000054a6bfee11 is pointing into the stack for thread: 0x000001a79cdedec0
RSI=0x000001a7ed0035f0 points into unknown readable memory: 0x0000000000000000 | 00 00 00 00 00 00 00 00
RDI=0x0000000000001908 is an unknown value
R8 =0x0000000000008700 is an unknown value
R9 =0xfffffffffffffff0 is an unknown value
R10=0x00007ffb7a5b0000 atio6axx.dll
R11=0x000001a7eab71690 points into unknown readable memory: 0x0000000000000000 | 00 00 00 00 00 00 00 00
R12=0x0000000000008c10 is an unknown value
R13=0x0000000000008c10 is an unknown value
R14=0x000001a7eaaaf080 points into unknown readable memory: 0x00007ffb7d8691f0 | f0 91 86 7d fb 7f 00 00
R15=0x0 is NULL
Registers:
RAX=0x000001a7ed0035f0, RBX=0x000001a7ec882f10, RCX=0x000001a7ed003b00, RDX=0x000001a7eb57afc0
RSP=0x00000054a6bfed78, RBP=0x00000054a6bfee11, RSI=0x000001a7ed0035f0, RDI=0x0000000000001908
R8 =0x0000000000008700, R9 =0xfffffffffffffff0, R10=0x00007ffb7a5b0000, R11=0x000001a7eab71690
R12=0x0000000000008c10, R13=0x0000000000008c10, R14=0x000001a7eaaaf080, R15=0x0000000000000000
RIP=0x00007ffb7c599979, EFLAGS=0x0000000000010206
Top of Stack: (sp=0x00000054a6bfed78)
0x00000054a6bfed78: 00007ffb7ad699f3 000000003f7f7ccc
0x00000054a6bfed88: 000001a7b4128000 0000000084106d53
0x00000054a6bfed98: 00000000ffffffff 0000000000000053
0x00000054a6bfeda8: 00007ffb00000001 000001a700001908
0x00000054a6bfedb8: 0000000000001401 0000000000000000
0x00000054a6bfedc8: 0000000000000000 0000000100000000
0x00000054a6bfedd8: 0000000200000001 000001a7ed0035f0
0x00000054a6bfede8: 0000000000008c10 0000000000000038
0x00000054a6bfedf8: 0000000000000000 000033d6b9f44364
0x00000054a6bfee08: 0000000000000001 0000005400000000
0x00000054a6bfee18: 0000000000001908 0000000000001401
0x00000054a6bfee28: 0000000000000053 0000000000000000
0x00000054a6bfee38: 0000000000000000 0000000000000053
0x00000054a6bfee48: 000001a7eaaaf080 000001a7dfed52c8
0x00000054a6bfee58: 00007ffb7ae43bd7 000001a7eaaaf000
0x00000054a6bfee68: 000001a700000de1 000001a700000000
Instructions: (pc=0x00007ffb7c599979)
0x00007ffb7c599879: b6 4a 08 4c 89 00 88 48 08 c3 4c 8b 02 8b 4a 08
0x00007ffb7c599889: 4c 89 00 89 48 08 c3 8b 0a 44 0f b7 42 04 89 08
0x00007ffb7c599899: 66 44 89 40 04 c3 8b 0a 44 0f b6 42 04 89 08 44
0x00007ffb7c5998a9: 88 40 04 c3 48 8b 0a 48 89 08 c3 0f b6 0a 88 08
0x00007ffb7c5998b9: c3 8b 0a 89 08 c3 90 49 83 f8 20 77 17 f3 0f 6f
0x00007ffb7c5998c9: 0a f3 42 0f 6f 54 02 f0 f3 0f 7f 09 f3 42 0f 7f
0x00007ffb7c5998d9: 54 01 f0 c3 48 3b d1 73 0e 4e 8d 0c 02 49 3b c9
0x00007ffb7c5998e9: 0f 82 41 04 00 00 90 83 3d 21 37 8d 01 03 0f 82
0x00007ffb7c5998f9: e3 02 00 00 49 81 f8 00 20 00 00 76 16 49 81 f8
0x00007ffb7c599909: 00 00 18 00 77 0d f6 05 be d0 a3 01 02 0f 85 64
0x00007ffb7c599919: fe ff ff c5 fe 6f 02 c4 a1 7e 6f 6c 02 e0 49 81
0x00007ffb7c599929: f8 00 01 00 00 0f 86 c4 00 00 00 4c 8b c9 49 83
0x00007ffb7c599939: e1 1f 49 83 e9 20 49 2b c9 49 2b d1 4d 03 c1 49
0x00007ffb7c599949: 81 f8 00 01 00 00 0f 86 a3 00 00 00 49 81 f8 00
0x00007ffb7c599959: 00 18 00 0f 87 3e 01 00 00 66 66 66 66 66 66 0f
0x00007ffb7c599969: 1f 84 00 00 00 00 00 c5 fe 6f 0a c5 fe 6f 52 20
0x00007ffb7c599979: c5 fe 6f 5a 40 c5 fe 6f 62 60 c5 fd 7f 09 c5 fd
0x00007ffb7c599989: 7f 51 20 c5 fd 7f 59 40 c5 fd 7f 61 60 c5 fe 6f
0x00007ffb7c599999: 8a 80 00 00 00 c5 fe 6f 92 a0 00 00 00 c5 fe 6f
0x00007ffb7c5999a9: 9a c0 00 00 00 c5 fe 6f a2 e0 00 00 00 c5 fd 7f
0x00007ffb7c5999b9: 89 80 00 00 00 c5 fd 7f 91 a0 00 00 00 c5 fd 7f
0x00007ffb7c5999c9: 99 c0 00 00 00 c5 fd 7f a1 e0 00 00 00 48 81 c1
0x00007ffb7c5999d9: 00 01 00 00 48 81 c2 00 01 00 00 49 81 e8 00 01
0x00007ffb7c5999e9: 00 00 49 81 f8 00 01 00 00 0f 83 78 ff ff ff 4d
0x00007ffb7c5999f9: 8d 48 1f 49 83 e1 e0 4d 8b d9 49 c1 eb 05 47 8b
0x00007ffb7c599a09: 9c 9a 40 b0 c1 03 4d 03 da 41 ff e3 c4 a1 7e 6f
0x00007ffb7c599a19: 8c 0a 00 ff ff ff c4 a1 7e 7f 8c 09 00 ff ff ff
0x00007ffb7c599a29: c4 a1 7e 6f 8c 0a 20 ff ff ff c4 a1 7e 7f 8c 09
0x00007ffb7c599a39: 20 ff ff ff c4 a1 7e 6f 8c 0a 40 ff ff ff c4 a1
0x00007ffb7c599a49: 7e 7f 8c 09 40 ff ff ff c4 a1 7e 6f 8c 0a 60 ff
0x00007ffb7c599a59: ff ff c4 a1 7e 7f 8c 09 60 ff ff ff c4 a1 7e 6f
0x00007ffb7c599a69: 4c 0a 80 c4 a1 7e 7f 4c 09 80 c4 a1 7e 6f 4c 0a
Stack slot to memory mapping:
stack at sp + 0 slots: 0x00007ffb7ad699f3 atio6axx.dll
stack at sp + 1 slots: 0x000000003f7f7ccc is an unknown value
stack at sp + 2 slots: 0x000001a7b4128000 points into unknown readable memory: 0x0000000000000000 | 00 00 00 00 00 00 00 00
stack at sp + 3 slots: 2215669075 is a compressed pointer to object: java.util.ArrayList
{0x0000000420836a98} - klass: 'java/util/ArrayList'
- ---- fields (total size 3 words):
- protected transient 'modCount' 'I' @12 25 (19)
- private 'size' 'I' @16 25 (19)
- transient 'elementData' '[Ljava/lang/Object;' @20 a 'java/lang/Object'[33] {0x0000000420839590} (841072b2)
stack at sp + 4 slots: 0x00000000ffffffff is an unknown value
stack at sp + 5 slots: 0x0000000000000053 is an unknown value
stack at sp + 6 slots: 0x00007ffb00000001 is an unknown value
stack at sp + 7 slots: 0x000001a700001908 is an unknown value
--------------- P R O C E S S ---------------
Threads class SMR info:
_java_thread_list=0x000001a7f6d10000, length=39, elements={
0x000001a79cdedec0, 0x000001a7dc470e90, 0x000001a7dc471d00, 0x000001a7dc48d810,
0x000001a7dc48e2c0, 0x000001a7ddc02090, 0x000001a7ddc02d50, 0x000001a7ddc03a30,
0x000001a7ddc044d0, 0x000001a7ddc0a3d0, 0x000001a7dc455c50, 0x000001a7dde36040,
0x000001a7dde36510, 0x000001a7eb5e09d0, 0x000001a7eb8362a0, 0x000001a7eb968d90,
0x000001a7eb969260, 0x000001a7eb5c72f0, 0x000001a7eb5c77c0, 0x000001a7df215b80,
0x000001a7df213ea0, 0x000001a7df214840, 0x000001a7df214370, 0x000001a7df214d10,
0x000001a7df2151e0, 0x000001a7df216050, 0x000001a7df2156b0, 0x000001a7df2139d0,
0x000001a7df216520, 0x000001a7df213500, 0x000001a7eb72a150, 0x000001a7eb724ab0,
0x000001a7eb727600, 0x000001a7eb728940, 0x000001a7eb7245e0, 0x000001a7eb725df0,
0x000001a7f1f4d9a0, 0x000001a7f1f52080, 0x000001a7f1f51b70
}
Java Threads: ( => current thread )
=>0x000001a79cdedec0 JavaThread "main" [_thread_in_native, id=48396, stack(0x00000054a6b00000,0x00000054a6c00000)]
0x000001a7dc470e90 JavaThread "Reference Handler" daemon [_thread_blocked, id=2792, stack(0x00000054a7200000,0x00000054a7300000)]
0x000001a7dc471d00 JavaThread "Finalizer" daemon [_thread_blocked, id=32908, stack(0x00000054a7300000,0x00000054a7400000)]
0x000001a7dc48d810 JavaThread "Signal Dispatcher" daemon [_thread_blocked, id=8260, stack(0x00000054a7400000,0x00000054a7500000)]
0x000001a7dc48e2c0 JavaThread "Attach Listener" daemon [_thread_blocked, id=45920, stack(0x00000054a7500000,0x00000054a7600000)]
0x000001a7ddc02090 JavaThread "Service Thread" daemon [_thread_blocked, id=44440, stack(0x00000054a7600000,0x00000054a7700000)]
0x000001a7ddc02d50 JavaThread "Monitor Deflation Thread" daemon [_thread_blocked, id=49940, stack(0x00000054a7700000,0x00000054a7800000)]
0x000001a7ddc03a30 JavaThread "C2 CompilerThread0" daemon [_thread_in_native, id=43024, stack(0x00000054a7800000,0x00000054a7900000)]
0x000001a7ddc044d0 JavaThread "C1 CompilerThread0" daemon [_thread_blocked, id=42260, stack(0x00000054a7900000,0x00000054a7a00000)]
0x000001a7ddc0a3d0 JavaThread "Sweeper thread" daemon [_thread_blocked, id=20956, stack(0x00000054a7a00000,0x00000054a7b00000)]
0x000001a7dc455c50 JavaThread "Common-Cleaner" daemon [_thread_blocked, id=37976, stack(0x00000054a7b00000,0x00000054a7c00000)]
0x000001a7dde36040 JavaThread "Monitor Ctrl-Break" daemon [_thread_in_native, id=50328, stack(0x00000054a7f00000,0x00000054a8000000)]
0x000001a7dde36510 JavaThread "Notification Thread" daemon [_thread_blocked, id=48336, stack(0x00000054a8000000,0x00000054a8100000)]
0x000001a7eb5e09d0 JavaThread "JNA Cleaner" daemon [_thread_blocked, id=51220, stack(0x00000054a8200000,0x00000054a8300000)]
0x000001a7eb8362a0 JavaThread "OpenGL Object Cleaner for ru.dbotthepony.kstarbound.client.gl.GLStateTracker@c7ba306" daemon [_thread_blocked, id=60984, stack(0x00000054a8d00000,0x00000054a8e00000)]
0x000001a7eb968d90 JavaThread "Starbound Lighting Thread 0" daemon [_thread_blocked, id=50768, stack(0x00000054a9700000,0x00000054a9800000)]
0x000001a7eb969260 JavaThread "Starbound Lighting Thread 1" daemon [_thread_blocked, id=44092, stack(0x00000054a9800000,0x00000054a9900000)]
0x000001a7eb5c72f0 JavaThread "Starbound Lighting Thread 2" daemon [_thread_blocked, id=44148, stack(0x00000054a9900000,0x00000054a9a00000)]
0x000001a7eb5c77c0 JavaThread "Starbound Lighting Thread 3" daemon [_thread_blocked, id=21040, stack(0x00000054a9a00000,0x00000054a9b00000)]
0x000001a7df215b80 JavaThread "Starbound Lighting Thread 4" daemon [_thread_blocked, id=15432, stack(0x00000054a9b00000,0x00000054a9c00000)]
0x000001a7df213ea0 JavaThread "Starbound Lighting Thread 5" daemon [_thread_blocked, id=39692, stack(0x00000054a9c00000,0x00000054a9d00000)]
0x000001a7df214840 JavaThread "Starbound Lighting Thread 6" daemon [_thread_blocked, id=52888, stack(0x00000054a9d00000,0x00000054a9e00000)]
0x000001a7df214370 JavaThread "Starbound Lighting Thread 7" daemon [_thread_blocked, id=47740, stack(0x00000054a9e00000,0x00000054a9f00000)]
0x000001a7df214d10 JavaThread "Starbound Lighting Thread 8" daemon [_thread_blocked, id=29272, stack(0x00000054a9f00000,0x00000054aa000000)]
0x000001a7df2151e0 JavaThread "Starbound Lighting Thread 9" daemon [_thread_blocked, id=18560, stack(0x00000054aa000000,0x00000054aa100000)]
0x000001a7df216050 JavaThread "Starbound Lighting Thread 10" daemon [_thread_blocked, id=27324, stack(0x00000054aa100000,0x00000054aa200000)]
0x000001a7df2156b0 JavaThread "Starbound Lighting Thread 11" daemon [_thread_blocked, id=39832, stack(0x00000054aa200000,0x00000054aa300000)]
0x000001a7df2139d0 JavaThread "Starbound Lighting Thread 12" daemon [_thread_blocked, id=36596, stack(0x00000054aa300000,0x00000054aa400000)]
0x000001a7df216520 JavaThread "Starbound Lighting Thread 13" daemon [_thread_blocked, id=49048, stack(0x00000054aa400000,0x00000054aa500000)]
0x000001a7df213500 JavaThread "Starbound Lighting Thread 14" daemon [_thread_blocked, id=19096, stack(0x00000054aa500000,0x00000054aa600000)]
0x000001a7eb72a150 JavaThread "Starbound Lighting Thread 15" daemon [_thread_blocked, id=3192, stack(0x00000054aa600000,0x00000054aa700000)]
0x000001a7eb724ab0 JavaThread "STB Image Cleaner" daemon [_thread_blocked, id=23352, stack(0x00000054aa900000,0x00000054aaa00000)]
0x000001a7eb727600 JavaThread "ForkJoinPool.commonPool-worker-1" daemon [_thread_blocked, id=26688, stack(0x00000054aac00000,0x00000054aad00000)]
0x000001a7eb728940 JavaThread "ForkJoinPool.commonPool-worker-2" daemon [_thread_blocked, id=55892, stack(0x00000054aad00000,0x00000054aae00000)]
0x000001a7eb7245e0 JavaThread "ForkJoinPool.commonPool-worker-3" daemon [_thread_blocked, id=37176, stack(0x00000054aae00000,0x00000054aaf00000)]
0x000001a7eb725df0 JavaThread "Lua State Cleaner" daemon [_thread_blocked, id=45144, stack(0x00000054aaf00000,0x00000054ab000000)]
0x000001a7f1f4d9a0 JavaThread "C1 CompilerThread1" daemon [_thread_blocked, id=15100, stack(0x00000054a7c00000,0x00000054a7d00000)]
0x000001a7f1f52080 JavaThread "C2 CompilerThread1" daemon [_thread_blocked, id=46740, stack(0x00000054a7d00000,0x00000054a7e00000)]
0x000001a7f1f51b70 JavaThread "C2 CompilerThread2" daemon [_thread_blocked, id=6536, stack(0x00000054a7e00000,0x00000054a7f00000)]
Other Threads:
0x000001a7dc46c290 VMThread "VM Thread" [stack: 0x00000054a7100000,0x00000054a7200000] [id=55052]
0x000001a7ddee8640 WatcherThread [stack: 0x00000054a8100000,0x00000054a8200000] [id=59748]
0x000001a79cea6450 GCTaskThread "GC Thread#0" [stack: 0x00000054a6c00000,0x00000054a6d00000] [id=60732]
0x000001a7de512730 GCTaskThread "GC Thread#1" [stack: 0x00000054a8300000,0x00000054a8400000] [id=26248]
0x000001a7de5169f0 GCTaskThread "GC Thread#2" [stack: 0x00000054a8400000,0x00000054a8500000] [id=44204]
0x000001a7de521720 GCTaskThread "GC Thread#3" [stack: 0x00000054a8500000,0x00000054a8600000] [id=20360]
0x000001a7eb9fbe60 GCTaskThread "GC Thread#4" [stack: 0x00000054a8e00000,0x00000054a8f00000] [id=21756]
0x000001a7ebadff00 GCTaskThread "GC Thread#5" [stack: 0x00000054a8f00000,0x00000054a9000000] [id=52336]
0x000001a7ebae01b0 GCTaskThread "GC Thread#6" [stack: 0x00000054a9000000,0x00000054a9100000] [id=8664]
0x000001a7eb63d640 GCTaskThread "GC Thread#7" [stack: 0x00000054a9100000,0x00000054a9200000] [id=54612]
0x000001a7eb63dd00 GCTaskThread "GC Thread#8" [stack: 0x00000054a9200000,0x00000054a9300000] [id=53600]
0x000001a7eb63dfb0 GCTaskThread "GC Thread#9" [stack: 0x00000054a9300000,0x00000054a9400000] [id=13256]
0x000001a7eb63e660 GCTaskThread "GC Thread#10" [stack: 0x00000054a9400000,0x00000054a9500000] [id=36376]
0x000001a7eb633370 GCTaskThread "GC Thread#11" [stack: 0x00000054a9500000,0x00000054a9600000] [id=10716]
0x000001a7eb632b60 GCTaskThread "GC Thread#12" [stack: 0x00000054a9600000,0x00000054a9700000] [id=20520]
0x000001a79ceb7350 ConcurrentGCThread "G1 Main Marker" [stack: 0x00000054a6d00000,0x00000054a6e00000] [id=26368]
0x000001a79ceb7d60 ConcurrentGCThread "G1 Conc#0" [stack: 0x00000054a6e00000,0x00000054a6f00000] [id=10312]
0x000001a7eb6328b0 ConcurrentGCThread "G1 Conc#1" [stack: 0x00000054aa700000,0x00000054aa800000] [id=26232]
0x000001a7eb6330c0 ConcurrentGCThread "G1 Conc#2" [stack: 0x00000054aa800000,0x00000054aa900000] [id=51836]
0x000001a7dc31f660 ConcurrentGCThread "G1 Refine#0" [stack: 0x00000054a6f00000,0x00000054a7000000] [id=54976]
0x000001a7ebc7d8c0 ConcurrentGCThread "G1 Refine#1" [stack: 0x00000054ab000000,0x00000054ab100000] [id=43020]
0x000001a7ebc7d5e0 ConcurrentGCThread "G1 Refine#2" [stack: 0x00000054ab100000,0x00000054ab200000] [id=51152]
0x000001a7ebc7dba0 ConcurrentGCThread "G1 Refine#3" [stack: 0x00000054ab200000,0x00000054ab300000] [id=13060]
0x000001a7ebc7de80 ConcurrentGCThread "G1 Refine#4" [stack: 0x00000054ab300000,0x00000054ab400000] [id=62876]
0x000001a7ebc7e160 ConcurrentGCThread "G1 Refine#5" [stack: 0x00000054ab400000,0x00000054ab500000] [id=10260]
0x000001a7ebd3a070 ConcurrentGCThread "G1 Refine#6" [stack: 0x00000054ab500000,0x00000054ab600000] [id=41384]
0x000001a7dc320080 ConcurrentGCThread "G1 Service" [stack: 0x00000054a7000000,0x00000054a7100000] [id=62036]
Threads with active compile tasks:
C2 CompilerThread0 14126 7880 4 ru.dbotthepony.kstarbound.client.world.ClientWorld$RenderRegion::addLayers (588 bytes)
VM state: not at safepoint (normal execution)
VM Mutex/Monitor currently owned by a thread: None
Heap address: 0x0000000401000000, size: 16368 MB, Compressed Oops mode: Zero based, Oop shift amount: 3
CDS archive(s) mapped at: [0x0000000800000000-0x0000000800bc0000-0x0000000800bc0000), size 12320768, SharedBaseAddress: 0x0000000800000000, ArchiveRelocationMode: 0.
Compressed class space mapped at: 0x0000000800c00000-0x0000000840c00000, reserved size: 1073741824
Narrow klass base: 0x0000000800000000, Narrow klass shift: 0, Narrow klass range: 0x100000000
GC Precious Log:
CPUs: 16 total, 16 available
Memory: 65457M
Large Page Support: Disabled
NUMA Support: Disabled
Compressed Oops: Enabled (Zero based)
Heap Region Size: 8M
Heap Min Capacity: 128M
Heap Initial Capacity: 128M
Heap Max Capacity: 16368M
Pre-touch: Disabled
Parallel Workers: 13
Concurrent Workers: 3
Concurrent Refinement Workers: 13
Periodic GC: Disabled
Heap:
garbage-first heap total 524288K, used 227413K [0x0000000401000000, 0x0000000800000000)
region size 8192K, 2 young (16384K), 1 survivors (8192K)
Metaspace used 35609K, committed 35968K, reserved 1081344K
class space used 3616K, committed 3776K, reserved 1048576K
Heap Regions: E=young(eden), S=young(survivor), O=old, HS=humongous(starts), HC=humongous(continues), CS=collection set, F=free, OA=open archive, CA=closed archive, TAMS=top-at-mark-start (previous, next)
| 0|0x0000000401000000, 0x0000000401800000, 0x0000000401800000|100%| O| |TAMS 0x0000000401800000, 0x0000000401000000| Untracked
| 1|0x0000000401800000, 0x0000000402000000, 0x0000000402000000|100%| O| |TAMS 0x0000000402000000, 0x0000000401800000| Untracked
| 2|0x0000000402000000, 0x0000000402800000, 0x0000000402800000|100%| O| |TAMS 0x0000000402800000, 0x0000000402000000| Untracked
| 3|0x0000000402800000, 0x0000000403000000, 0x0000000403000000|100%| O| |TAMS 0x0000000403000000, 0x0000000402800000| Untracked
| 4|0x0000000403000000, 0x0000000403800000, 0x0000000403800000|100%| O| |TAMS 0x0000000403800000, 0x0000000403000000| Untracked
| 5|0x0000000403800000, 0x0000000404000000, 0x0000000404000000|100%| O| |TAMS 0x0000000404000000, 0x0000000403800000| Untracked
| 6|0x0000000404000000, 0x0000000404800000, 0x0000000404800000|100%| O| |TAMS 0x0000000404800000, 0x0000000404000000| Untracked
| 7|0x0000000404800000, 0x0000000405000000, 0x0000000405000000|100%| O| |TAMS 0x0000000405000000, 0x0000000404800000| Untracked
| 8|0x0000000405000000, 0x0000000405800000, 0x0000000405800000|100%| O| |TAMS 0x0000000405800000, 0x0000000405000000| Untracked
| 9|0x0000000405800000, 0x0000000406000000, 0x0000000406000000|100%| O| |TAMS 0x0000000406000000, 0x0000000405800000| Untracked
| 10|0x0000000406000000, 0x0000000406800000, 0x0000000406800000|100%| O| |TAMS 0x0000000406800000, 0x0000000406000000| Untracked
| 11|0x0000000406800000, 0x0000000407000000, 0x0000000407000000|100%| O| |TAMS 0x0000000407000000, 0x0000000406800000| Untracked
| 12|0x0000000407000000, 0x0000000407800000, 0x0000000407800000|100%| O| |TAMS 0x0000000407800000, 0x0000000407000000| Untracked
| 13|0x0000000407800000, 0x0000000408000000, 0x0000000408000000|100%| O| |TAMS 0x0000000408000000, 0x0000000407800000| Untracked
| 14|0x0000000408000000, 0x0000000408800000, 0x0000000408800000|100%| O| |TAMS 0x0000000408800000, 0x0000000408000000| Untracked
| 15|0x0000000408800000, 0x0000000409000000, 0x0000000409000000|100%| O| |TAMS 0x0000000408800000, 0x0000000408800000| Untracked
| 16|0x0000000409000000, 0x0000000409800000, 0x0000000409800000|100%| O| |TAMS 0x0000000409000000, 0x0000000409000000| Untracked
| 17|0x0000000409800000, 0x000000040a000000, 0x000000040a000000|100%| O| |TAMS 0x0000000409800000, 0x0000000409800000| Untracked
| 18|0x000000040a000000, 0x000000040a800000, 0x000000040a800000|100%| O| |TAMS 0x000000040a000000, 0x000000040a000000| Untracked
| 19|0x000000040a800000, 0x000000040b000000, 0x000000040b000000|100%| O| |TAMS 0x000000040a800000, 0x000000040a800000| Untracked
| 20|0x000000040b000000, 0x000000040b800000, 0x000000040b800000|100%| O| |TAMS 0x000000040b000000, 0x000000040b000000| Untracked
| 21|0x000000040b800000, 0x000000040c000000, 0x000000040c000000|100%| O| |TAMS 0x000000040b800000, 0x000000040b800000| Untracked
| 22|0x000000040c000000, 0x000000040c800000, 0x000000040c800000|100%| O| |TAMS 0x000000040c000000, 0x000000040c000000| Untracked
| 23|0x000000040c800000, 0x000000040d000000, 0x000000040d000000|100%| O| |TAMS 0x000000040c800000, 0x000000040c800000| Untracked
| 24|0x000000040d000000, 0x000000040d800000, 0x000000040d800000|100%| O| |TAMS 0x000000040d000000, 0x000000040d000000| Untracked
| 25|0x000000040d800000, 0x000000040e000000, 0x000000040e000000|100%| O| |TAMS 0x000000040d800000, 0x000000040d800000| Untracked
| 26|0x000000040e000000, 0x000000040e800000, 0x000000040e800000|100%| O| |TAMS 0x000000040e000000, 0x000000040e000000| Untracked
| 27|0x000000040e800000, 0x000000040ed38a00, 0x000000040f000000| 65%| O| |TAMS 0x000000040e800000, 0x000000040e800000| Untracked
| 28|0x000000040f000000, 0x000000040f000000, 0x000000040f800000| 0%| F| |TAMS 0x000000040f000000, 0x000000040f000000| Untracked
| 29|0x000000040f800000, 0x000000040f800000, 0x0000000410000000| 0%| F| |TAMS 0x000000040f800000, 0x000000040f800000| Untracked
| 30|0x0000000410000000, 0x0000000410000000, 0x0000000410800000| 0%| F| |TAMS 0x0000000410000000, 0x0000000410000000| Untracked
| 31|0x0000000410800000, 0x0000000410800000, 0x0000000411000000| 0%| F| |TAMS 0x0000000410800000, 0x0000000410800000| Untracked
| 32|0x0000000411000000, 0x0000000411000000, 0x0000000411800000| 0%| F| |TAMS 0x0000000411000000, 0x0000000411000000| Untracked
| 33|0x0000000411800000, 0x0000000411800000, 0x0000000412000000| 0%| F| |TAMS 0x0000000411800000, 0x0000000411800000| Untracked
| 34|0x0000000412000000, 0x0000000412000000, 0x0000000412800000| 0%| F| |TAMS 0x0000000412000000, 0x0000000412000000| Untracked
| 35|0x0000000412800000, 0x0000000412800000, 0x0000000413000000| 0%| F| |TAMS 0x0000000412800000, 0x0000000412800000| Untracked
| 36|0x0000000413000000, 0x0000000413000000, 0x0000000413800000| 0%| F| |TAMS 0x0000000413000000, 0x0000000413000000| Untracked
| 37|0x0000000413800000, 0x0000000413800000, 0x0000000414000000| 0%| F| |TAMS 0x0000000413800000, 0x0000000413800000| Untracked
| 38|0x0000000414000000, 0x0000000414000000, 0x0000000414800000| 0%| F| |TAMS 0x0000000414000000, 0x0000000414000000| Untracked
| 39|0x0000000414800000, 0x0000000414800000, 0x0000000415000000| 0%| F| |TAMS 0x0000000414800000, 0x0000000414800000| Untracked
| 40|0x0000000415000000, 0x0000000415000000, 0x0000000415800000| 0%| F| |TAMS 0x0000000415000000, 0x0000000415000000| Untracked
| 41|0x0000000415800000, 0x0000000415800000, 0x0000000416000000| 0%| F| |TAMS 0x0000000415800000, 0x0000000415800000| Untracked
| 42|0x0000000416000000, 0x0000000416000000, 0x0000000416800000| 0%| F| |TAMS 0x0000000416000000, 0x0000000416000000| Untracked
| 43|0x0000000416800000, 0x0000000416800000, 0x0000000417000000| 0%| F| |TAMS 0x0000000416800000, 0x0000000416800000| Untracked
| 44|0x0000000417000000, 0x0000000417000000, 0x0000000417800000| 0%| F| |TAMS 0x0000000417000000, 0x0000000417000000| Untracked
| 45|0x0000000417800000, 0x0000000417800000, 0x0000000418000000| 0%| F| |TAMS 0x0000000417800000, 0x0000000417800000| Untracked
| 46|0x0000000418000000, 0x0000000418000000, 0x0000000418800000| 0%| F| |TAMS 0x0000000418000000, 0x0000000418000000| Untracked
| 47|0x0000000418800000, 0x00000004188dccd0, 0x0000000419000000| 10%| S|CS|TAMS 0x0000000418800000, 0x0000000418800000| Complete
| 48|0x0000000419000000, 0x0000000419000000, 0x0000000419800000| 0%| F| |TAMS 0x0000000419000000, 0x0000000419000000| Untracked
| 49|0x0000000419800000, 0x0000000419800000, 0x000000041a000000| 0%| F| |TAMS 0x0000000419800000, 0x0000000419800000| Untracked
| 50|0x000000041a000000, 0x000000041a000000, 0x000000041a800000| 0%| F| |TAMS 0x000000041a000000, 0x000000041a000000| Untracked
| 51|0x000000041a800000, 0x000000041a800000, 0x000000041b000000| 0%| F| |TAMS 0x000000041a800000, 0x000000041a800000| Untracked
| 52|0x000000041b000000, 0x000000041b000000, 0x000000041b800000| 0%| F| |TAMS 0x000000041b000000, 0x000000041b000000| Untracked
| 53|0x000000041b800000, 0x000000041b800000, 0x000000041c000000| 0%| F| |TAMS 0x000000041b800000, 0x000000041b800000| Untracked
| 54|0x000000041c000000, 0x000000041c000000, 0x000000041c800000| 0%| F| |TAMS 0x000000041c000000, 0x000000041c000000| Untracked
| 55|0x000000041c800000, 0x000000041c800000, 0x000000041d000000| 0%| F| |TAMS 0x000000041c800000, 0x000000041c800000| Untracked
| 56|0x000000041d000000, 0x000000041d000000, 0x000000041d800000| 0%| F| |TAMS 0x000000041d000000, 0x000000041d000000| Untracked
| 57|0x000000041d800000, 0x000000041d800000, 0x000000041e000000| 0%| F| |TAMS 0x000000041d800000, 0x000000041d800000| Untracked
| 58|0x000000041e000000, 0x000000041e000000, 0x000000041e800000| 0%| F| |TAMS 0x000000041e000000, 0x000000041e000000| Untracked
| 59|0x000000041e800000, 0x000000041e800000, 0x000000041f000000| 0%| F| |TAMS 0x000000041e800000, 0x000000041e800000| Untracked
| 60|0x000000041f000000, 0x000000041f000000, 0x000000041f800000| 0%| F| |TAMS 0x000000041f000000, 0x000000041f000000| Untracked
| 61|0x000000041f800000, 0x000000041f800000, 0x0000000420000000| 0%| F| |TAMS 0x000000041f800000, 0x000000041f800000| Untracked
| 62|0x0000000420000000, 0x0000000420000000, 0x0000000420800000| 0%| F| |TAMS 0x0000000420000000, 0x0000000420000000| Untracked
| 63|0x0000000420800000, 0x0000000420b7edf0, 0x0000000421000000| 43%| E| |TAMS 0x0000000420800000, 0x0000000420800000| Complete
Card table byte_map: [0x000001a7b6130000,0x000001a7b8130000] _byte_map_base: 0x000001a7b4128000
Marking Bits (Prev, Next): (CMBitMap*) 0x000001a79cea6a60, (CMBitMap*) 0x000001a79cea6aa0
Prev Bits: [0x000001a7ba130000, 0x000001a7ca0f0000)
Next Bits: [0x000001a7ca0f0000, 0x000001a7da0b0000)
Polling page: 0x000001a79ac30000
Metaspace:
Usage:
Non-class: 31.24 MB used.
Class: 3.53 MB used.
Both: 34.77 MB used.
Virtual space:
Non-class space: 32.00 MB reserved, 31.44 MB ( 98%) committed, 4 nodes.
Class space: 1.00 GB reserved, 3.69 MB ( <1%) committed, 1 nodes.
Both: 1.03 GB reserved, 35.12 MB ( 3%) committed.
Chunk freelists:
Non-Class: 464.00 KB
Class: 321.00 KB
Both: 785.00 KB
MaxMetaspaceSize: unlimited
CompressedClassSpaceSize: 1.00 GB
Initial GC threshold: 21.00 MB
Current GC threshold: 52.19 MB
CDS: on
MetaspaceReclaimPolicy: balanced
- commit_granule_bytes: 65536.
- commit_granule_words: 8192.
- virtual_space_node_default_size: 1048576.
- enlarge_chunks_in_place: 1.
- new_chunks_are_fully_committed: 0.
- uncommit_free_chunks: 1.
- use_allocation_guard: 0.
- handle_deallocations: 1.
Internal statistics:
num_allocs_failed_limit: 3.
num_arena_births: 526.
num_arena_deaths: 0.
num_vsnodes_births: 5.
num_vsnodes_deaths: 0.
num_space_committed: 560.
num_space_uncommitted: 0.
num_chunks_returned_to_freelist: 3.
num_chunks_taken_from_freelist: 1805.
num_chunk_merges: 3.
num_chunk_splits: 1247.
num_chunks_enlarged: 878.
num_purges: 0.
num_inconsistent_stats: 0.
CodeHeap 'non-profiled nmethods': size=119168Kb used=5970Kb max_used=5970Kb free=113197Kb
bounds [0x000001a7ac450000, 0x000001a7aca30000, 0x000001a7b38b0000]
CodeHeap 'profiled nmethods': size=119104Kb used=14921Kb max_used=14921Kb free=104182Kb
bounds [0x000001a7a5000000, 0x000001a7a5ea0000, 0x000001a7ac450000]
CodeHeap 'non-nmethods': size=7488Kb used=2445Kb max_used=3665Kb free=5042Kb
bounds [0x000001a7a48b0000, 0x000001a7a4c50000, 0x000001a7a5000000]
total_blobs=7978 nmethods=6610 adapters=1279
compilation: enabled
stopped_count=0, restarted_count=0
full_count=0
Compilation events (20 events):
Event: 14.026 Thread 0x000001a7f1f4d9a0 nmethod 7869 0x000001a7a5e8ce10 code [0x000001a7a5e8cfe0, 0x000001a7a5e8d1e8]
Event: 14.026 Thread 0x000001a7f1f4d9a0 7871 3 ru.dbotthepony.kstarbound.client.render.MultiMeshBuilder::get$lambda$1 (34 bytes)
Event: 14.026 Thread 0x000001a7ddc044d0 nmethod 7870 0x000001a7a5e8d310 code [0x000001a7a5e8d4a0, 0x000001a7a5e8d5e8]
Event: 14.026 Thread 0x000001a7ddc044d0 7872 3 ru.dbotthepony.kstarbound.client.gl.vertex.VertexBuilder::<init> (14 bytes)
Event: 14.026 Thread 0x000001a7ddc044d0 nmethod 7872 0x000001a7a5e8d690 code [0x000001a7a5e8d8a0, 0x000001a7a5e8dec8]
Event: 14.026 Thread 0x000001a7ddc044d0 7873 3 ru.dbotthepony.kstarbound.client.render.MultiMeshBuilder$Entry::<init> (32 bytes)
Event: 14.027 Thread 0x000001a7ddc044d0 nmethod 7873 0x000001a7a5e8e110 code [0x000001a7a5e8e3a0, 0x000001a7a5e8ef38]
Event: 14.027 Thread 0x000001a7ddc044d0 7874 3 it.unimi.dsi.fastutil.objects.Reference2ObjectOpenHashMap::insert (63 bytes)
Event: 14.027 Thread 0x000001a7f1f4d9a0 nmethod 7871 0x000001a7a5e8f310 code [0x000001a7a5e8f660, 0x000001a7a5e909a8]
Event: 14.027 Thread 0x000001a7f1f4d9a0 7875 3 it.unimi.dsi.fastutil.objects.Reference2ObjectOpenHashMap$ValueSpliterator::acceptOnIndex (10 bytes)
Event: 14.027 Thread 0x000001a7f1f4d9a0 nmethod 7875 0x000001a7a5e91110 code [0x000001a7a5e912c0, 0x000001a7a5e91648]
Event: 14.027 Thread 0x000001a7f1f4d9a0 7876 3 it.unimi.dsi.fastutil.objects.Reference2ObjectOpenHashMap$ValueSpliterator::acceptOnIndex (16 bytes)
Event: 14.027 Thread 0x000001a7ddc044d0 nmethod 7874 0x000001a7a5e91810 code [0x000001a7a5e919e0, 0x000001a7a5e91f78]
Event: 14.027 Thread 0x000001a7ddc044d0 7877 3 ru.dbotthepony.kstarbound.client.render.MultiMeshBuilder$$Lambda$174/0x0000000800eb47e8::apply (9 bytes)
Event: 14.027 Thread 0x000001a7f1f4d9a0 nmethod 7876 0x000001a7a5e92110 code [0x000001a7a5e922c0, 0x000001a7a5e924e8]
Event: 14.027 Thread 0x000001a7f1f4d9a0 7878 3 ru.dbotthepony.kstarbound.client.render.MultiMeshBuilder::meshes$lambda$2 (17 bytes)
Event: 14.027 Thread 0x000001a7ddc044d0 nmethod 7877 0x000001a7a5e92610 code [0x000001a7a5e92840, 0x000001a7a5e93048]
Event: 14.027 Thread 0x000001a7ddc044d0 7879 3 ru.dbotthepony.kstarbound.client.render.MultiMeshBuilder$meshes$1::invoke (9 bytes)
Event: 14.027 Thread 0x000001a7f1f4d9a0 nmethod 7878 0x000001a7a5e93310 code [0x000001a7a5e93540, 0x000001a7a5e93cc8]
Event: 14.028 Thread 0x000001a7ddc044d0 nmethod 7879 0x000001a7a5e93f90 code [0x000001a7a5e941c0, 0x000001a7a5e94b38]
GC Heap History (20 events):
Event: 3.070 GC heap before
{Heap before GC invocations=8 (full 0):
garbage-first heap total 163840K, used 101372K [0x0000000401000000, 0x0000000800000000)
region size 8192K, 10 young (81920K), 2 survivors (16384K)
Metaspace used 30007K, committed 30336K, reserved 1081344K
class space used 3077K, committed 3264K, reserved 1048576K
}
Event: 3.093 GC heap after
{Heap after GC invocations=9 (full 0):
garbage-first heap total 163840K, used 47751K [0x0000000401000000, 0x0000000800000000)
region size 8192K, 2 young (16384K), 2 survivors (16384K)
Metaspace used 30007K, committed 30336K, reserved 1081344K
class space used 3077K, committed 3264K, reserved 1048576K
}
Event: 3.403 GC heap before
{Heap before GC invocations=9 (full 0):
garbage-first heap total 163840K, used 105095K [0x0000000401000000, 0x0000000800000000)
region size 8192K, 9 young (73728K), 2 survivors (16384K)
Metaspace used 30922K, committed 31296K, reserved 1081344K
class space used 3149K, committed 3328K, reserved 1048576K
}
Event: 3.418 GC heap after
{Heap after GC invocations=10 (full 0):
garbage-first heap total 163840K, used 58957K [0x0000000401000000, 0x0000000800000000)
region size 8192K, 2 young (16384K), 2 survivors (16384K)
Metaspace used 30922K, committed 31296K, reserved 1081344K
class space used 3149K, committed 3328K, reserved 1048576K
}
Event: 3.488 GC heap before
{Heap before GC invocations=10 (full 0):
garbage-first heap total 163840K, used 108109K [0x0000000401000000, 0x0000000800000000)
region size 8192K, 8 young (65536K), 2 survivors (16384K)
Metaspace used 30995K, committed 31360K, reserved 1081344K
class space used 3154K, committed 3328K, reserved 1048576K
}
Event: 3.503 GC heap after
{Heap after GC invocations=11 (full 0):
garbage-first heap total 262144K, used 71420K [0x0000000401000000, 0x0000000800000000)
region size 8192K, 1 young (8192K), 1 survivors (8192K)
Metaspace used 30995K, committed 31360K, reserved 1081344K
class space used 3154K, committed 3328K, reserved 1048576K
}
Event: 3.687 GC heap before
{Heap before GC invocations=11 (full 0):
garbage-first heap total 262144K, used 169724K [0x0000000401000000, 0x0000000800000000)
region size 8192K, 13 young (106496K), 1 survivors (8192K)
Metaspace used 31158K, committed 31488K, reserved 1081344K
class space used 3161K, committed 3328K, reserved 1048576K
}
Event: 3.699 GC heap after
{Heap after GC invocations=12 (full 0):
garbage-first heap total 262144K, used 92811K [0x0000000401000000, 0x0000000800000000)
region size 8192K, 2 young (16384K), 2 survivors (16384K)
Metaspace used 31158K, committed 31488K, reserved 1081344K
class space used 3161K, committed 3328K, reserved 1048576K
}
Event: 3.900 GC heap before
{Heap before GC invocations=12 (full 0):
garbage-first heap total 262144K, used 166539K [0x0000000401000000, 0x0000000800000000)
region size 8192K, 11 young (90112K), 2 survivors (16384K)
Metaspace used 31657K, committed 32064K, reserved 1081344K
class space used 3208K, committed 3392K, reserved 1048576K
}
Event: 3.919 GC heap after
{Heap after GC invocations=13 (full 0):
garbage-first heap total 262144K, used 118027K [0x0000000401000000, 0x0000000800000000)
region size 8192K, 2 young (16384K), 2 survivors (16384K)
Metaspace used 31657K, committed 32064K, reserved 1081344K
class space used 3208K, committed 3392K, reserved 1048576K
}
Event: 4.019 GC heap before
{Heap before GC invocations=13 (full 0):
garbage-first heap total 262144K, used 175371K [0x0000000401000000, 0x0000000800000000)
region size 8192K, 9 young (73728K), 2 survivors (16384K)
Metaspace used 31664K, committed 32064K, reserved 1081344K
class space used 3208K, committed 3392K, reserved 1048576K
}
Event: 4.031 GC heap after
{Heap after GC invocations=14 (full 0):
garbage-first heap total 262144K, used 139264K [0x0000000401000000, 0x0000000800000000)
region size 8192K, 2 young (16384K), 2 survivors (16384K)
Metaspace used 31664K, committed 32064K, reserved 1081344K
class space used 3208K, committed 3392K, reserved 1048576K
}
Event: 4.108 GC heap before
{Heap before GC invocations=14 (full 0):
garbage-first heap total 262144K, used 188416K [0x0000000401000000, 0x0000000800000000)
region size 8192K, 8 young (65536K), 2 survivors (16384K)
Metaspace used 31676K, committed 32064K, reserved 1081344K
class space used 3208K, committed 3392K, reserved 1048576K
}
Event: 4.120 GC heap after
{Heap after GC invocations=15 (full 0):
garbage-first heap total 524288K, used 158968K [0x0000000401000000, 0x0000000800000000)
region size 8192K, 1 young (8192K), 1 survivors (8192K)
Metaspace used 31676K, committed 32064K, reserved 1081344K
class space used 3208K, committed 3392K, reserved 1048576K
}
Event: 4.750 GC heap before
{Heap before GC invocations=16 (full 0):
garbage-first heap total 524288K, used 331000K [0x0000000401000000, 0x0000000800000000)
region size 8192K, 22 young (180224K), 1 survivors (8192K)
Metaspace used 35060K, committed 35456K, reserved 1081344K
class space used 3600K, committed 3776K, reserved 1048576K
}
Event: 4.768 GC heap after
{Heap after GC invocations=17 (full 0):
garbage-first heap total 524288K, used 223573K [0x0000000401000000, 0x0000000800000000)
region size 8192K, 3 young (24576K), 3 survivors (24576K)
Metaspace used 35060K, committed 35456K, reserved 1081344K
class space used 3600K, committed 3776K, reserved 1048576K
}
Event: 10.220 GC heap before
{Heap before GC invocations=17 (full 0):
garbage-first heap total 524288K, used 330069K [0x0000000401000000, 0x0000000800000000)
region size 8192K, 16 young (131072K), 3 survivors (24576K)
Metaspace used 35505K, committed 35904K, reserved 1081344K
class space used 3612K, committed 3776K, reserved 1048576K
}
Event: 10.224 GC heap after
{Heap after GC invocations=18 (full 0):
garbage-first heap total 524288K, used 230025K [0x0000000401000000, 0x0000000800000000)
region size 8192K, 1 young (8192K), 1 survivors (8192K)
Metaspace used 35505K, committed 35904K, reserved 1081344K
class space used 3612K, committed 3776K, reserved 1048576K
}
Event: 14.053 GC heap before
{Heap before GC invocations=18 (full 0):
garbage-first heap total 524288K, used 352905K [0x0000000401000000, 0x0000000800000000)
region size 8192K, 16 young (131072K), 1 survivors (8192K)
Metaspace used 35609K, committed 35968K, reserved 1081344K
class space used 3616K, committed 3776K, reserved 1048576K
}
Event: 14.054 GC heap after
{Heap after GC invocations=19 (full 0):
garbage-first heap total 524288K, used 227413K [0x0000000401000000, 0x0000000800000000)
region size 8192K, 1 young (8192K), 1 survivors (8192K)
Metaspace used 35609K, committed 35968K, reserved 1081344K
class space used 3616K, committed 3776K, reserved 1048576K
}
Deoptimization events (20 events):
Event: 14.023 Thread 0x000001a79cdedec0 Uncommon trap: trap_request=0xffffff6e fr.pc=0x000001a7aca0953c relative=0x00000000000036fc
Event: 14.023 Thread 0x000001a79cdedec0 Uncommon trap: reason=loop_limit_check action=maybe_recompile pc=0x000001a7aca0953c method=it.unimi.dsi.fastutil.objects.ReferenceArraySet.findKey(Ljava/lang/Object;)I @ 9 c2
Event: 14.023 Thread 0x000001a79cdedec0 DEOPT PACKING pc=0x000001a7aca0953c sp=0x00000054a6bff1a0
Event: 14.023 Thread 0x000001a79cdedec0 DEOPT UNPACKING pc=0x000001a7a49023a3 sp=0x00000054a6bff080 mode 2
Event: 14.031 Thread 0x000001a7eb969260 DEOPT PACKING pc=0x000001a7a5e8591f sp=0x00000054a98fecf0
Event: 14.031 Thread 0x000001a7eb969260 DEOPT UNPACKING pc=0x000001a7a4902b43 sp=0x00000054a98fe328 mode 0
Event: 14.032 Thread 0x000001a7eb968d90 DEOPT PACKING pc=0x000001a7a5e8591f sp=0x00000054a97ff0f0
Event: 14.032 Thread 0x000001a7eb968d90 DEOPT UNPACKING pc=0x000001a7a4902b43 sp=0x00000054a97fe728 mode 0
Event: 14.039 Thread 0x000001a7eb5c72f0 DEOPT PACKING pc=0x000001a7a5e85736 sp=0x00000054a99fee20
Event: 14.039 Thread 0x000001a7eb5c72f0 DEOPT UNPACKING pc=0x000001a7a4902b43 sp=0x00000054a99fe458 mode 0
Event: 14.039 Thread 0x000001a7eb969260 DEOPT PACKING pc=0x000001a7a5e85736 sp=0x00000054a98fecf0
Event: 14.039 Thread 0x000001a7eb969260 DEOPT UNPACKING pc=0x000001a7a4902b43 sp=0x00000054a98fe328 mode 0
Event: 14.055 Thread 0x000001a7eb969260 DEOPT PACKING pc=0x000001a7a5e8591f sp=0x00000054a98fecf0
Event: 14.055 Thread 0x000001a7eb969260 DEOPT UNPACKING pc=0x000001a7a4902b43 sp=0x00000054a98fe328 mode 0
Event: 14.056 Thread 0x000001a7eb5c72f0 DEOPT PACKING pc=0x000001a7a5e8591f sp=0x00000054a99fee20
Event: 14.056 Thread 0x000001a7eb5c72f0 DEOPT UNPACKING pc=0x000001a7a4902b43 sp=0x00000054a99fe458 mode 0
Event: 14.070 Thread 0x000001a7eb5c77c0 DEOPT PACKING pc=0x000001a7a5e8591f sp=0x00000054a9afed90
Event: 14.070 Thread 0x000001a7eb5c77c0 DEOPT UNPACKING pc=0x000001a7a4902b43 sp=0x00000054a9afe3c8 mode 0
Event: 14.070 Thread 0x000001a7df213ea0 DEOPT PACKING pc=0x000001a7a5e85736 sp=0x00000054a9cfec70
Event: 14.070 Thread 0x000001a7df213ea0 DEOPT UNPACKING pc=0x000001a7a4902b43 sp=0x00000054a9cfe2a8 mode 0
Classes unloaded (0 events):
No events
Classes redefined (0 events):
No events
Internal exceptions (20 events):
Event: 4.387 Thread 0x000001a79cdedec0 Implicit null exception at 0x000001a7ac587a9a to 0x000001a7ac587ea8
Event: 4.392 Thread 0x000001a79cdedec0 Exception <a 'java/lang/NoSuchMethodError'{0x0000000418b1c398}: 'java.lang.Object java.lang.invoke.DirectMethodHandle$Holder.invokeSpecial(java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object)'> (0x0000000418b1c398)
thrown [e:\jenkins\tmp\workspace\build\src\src\hotspot\share\interpreter\linkResolver.cpp, line 766]
Event: 4.392 Thread 0x000001a79cdedec0 Exception <a 'java/lang/NoSuchMethodError'{0x0000000418b28f20}: 'java.lang.Object java.lang.invoke.DirectMethodHandle$Holder.newInvokeSpecial(java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object)'> (0x0000000418b28f20)
thrown [e:\jenkins\tmp\workspace\build\src\src\hotspot\share\interpreter\linkResolver.cpp, line 766]
Event: 4.392 Thread 0x000001a79cdedec0 Exception <a 'java/lang/NoSuchMethodError'{0x0000000418b2e0b0}: 'java.lang.Object java.lang.invoke.DirectMethodHandle$Holder.invokeSpecial(java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object)'> (0x0000000418b2e0b0)
thrown [e:\jenkins\tmp\workspace\build\src\src\hotspot\share\interpreter\linkResolver.cpp, line 766]
Event: 4.392 Thread 0x000001a79cdedec0 Exception <a 'java/lang/NoSuchMethodError'{0x0000000418b32a00}: 'java.lang.Object java.lang.invoke.Invokers$Holder.linkToTargetMethod(java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object)'> (0x0000000418b32a00)
thrown [e:\jenkins\tmp\workspace\build\src\src\hotspot\share\interpreter\linkResolver.cpp, line 766]
Event: 4.406 Thread 0x000001a79cdedec0 Exception <a 'sun/nio/fs/WindowsException'{0x0000000418b7b278}> (0x0000000418b7b278)
thrown [e:\jenkins\tmp\workspace\build\src\src\hotspot\share\prims\jni.cpp, line 516]
Event: 4.406 Thread 0x000001a79cdedec0 Exception <a 'sun/nio/fs/WindowsException'{0x0000000418b7b600}> (0x0000000418b7b600)
thrown [e:\jenkins\tmp\workspace\build\src\src\hotspot\share\prims\jni.cpp, line 516]
Event: 4.408 Thread 0x000001a79cdedec0 Exception <a 'java/lang/NoSuchMethodError'{0x0000000418b86d30}: 'void java.lang.invoke.DirectMethodHandle$Holder.invokeStatic(java.lang.Object, long)'> (0x0000000418b86d30)
thrown [e:\jenkins\tmp\workspace\build\src\src\hotspot\share\interpreter\linkResolver.cpp, line 766]
Event: 4.408 Thread 0x000001a79cdedec0 Exception <a 'java/lang/NoSuchMethodError'{0x0000000418b8c7c0}: 'java.lang.Object java.lang.invoke.DirectMethodHandle$Holder.newInvokeSpecial(java.lang.Object, long)'> (0x0000000418b8c7c0)
thrown [e:\jenkins\tmp\workspace\build\src\src\hotspot\share\interpreter\linkResolver.cpp, line 766]
Event: 4.410 Thread 0x000001a7eb727600 Implicit null exception at 0x000001a7ac7fb40d to 0x000001a7ac7fd934
Event: 4.410 Thread 0x000001a7eb728940 Implicit null exception at 0x000001a7ac80cdf5 to 0x000001a7ac80eca8
Event: 4.410 Thread 0x000001a7eb727600 Implicit null exception at 0x000001a7ac78af21 to 0x000001a7ac78b3d8
Event: 4.414 Thread 0x000001a7eb727600 Implicit null exception at 0x000001a7ac7895f8 to 0x000001a7ac789a94
Event: 4.553 Thread 0x000001a79cdedec0 Exception <a 'java/lang/UnsatisfiedLinkError'{0x0000000418764888}: Íå íàéäåíà óêàçàííàÿ ïðîöåäóðà.
> (0x0000000418764888)
thrown [e:\jenkins\tmp\workspace\build\src\src\hotspot\share\prims\jni.cpp, line 535]
Event: 4.571 Thread 0x000001a79cdedec0 Exception <a 'java/lang/NoSuchMethodError'{0x000000041788de00}: 'java.lang.Object java.lang.invoke.DirectMethodHandle$Holder.newInvokeSpecial(java.lang.Object, java.lang.Object, int, java.lang.Object)'> (0x000000041788de00)
thrown [e:\jenkins\tmp\workspace\build\src\src\hotspot\share\interpreter\linkResolver.cpp, line 766]
Event: 4.571 Thread 0x000001a79cdedec0 Exception <a 'java/lang/NoSuchMethodError'{0x0000000417891c48}: 'java.lang.Object java.lang.invoke.DirectMethodHandle$Holder.invokeSpecial(java.lang.Object, java.lang.Object, java.lang.Object, int, java.lang.Object)'> (0x0000000417891c48)
thrown [e:\jenkins\tmp\workspace\build\src\src\hotspot\share\interpreter\linkResolver.cpp, line 766]
Event: 4.599 Thread 0x000001a79cdedec0 Exception <a 'java/lang/NoSuchMethodError'{0x0000000417a10508}: 'int java.lang.invoke.DirectMethodHandle$Holder.invokeSpecial(java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object)'> (0x0000000417a10508)
thrown [e:\jenkins\tmp\workspace\build\src\src\hotspot\share\interpreter\linkResolver.cpp, line 766]
Event: 4.603 Thread 0x000001a79cdedec0 Exception <a 'java/lang/NoSuchMethodError'{0x0000000417a674a8}: 'java.lang.Object java.lang.invoke.DirectMethodHandle$Holder.invokeSpecial(java.lang.Object, java.lang.Object, java.lang.Object, long, java.lang.Object)'> (0x0000000417a674a8)
thrown [e:\jenkins\tmp\workspace\build\src\src\hotspot\share\interpreter\linkResolver.cpp, line 766]
Event: 4.604 Thread 0x000001a79cdedec0 Exception <a 'java/lang/NoSuchMethodError'{0x0000000417a6add0}: 'java.lang.Object java.lang.invoke.Invokers$Holder.linkToTargetMethod(java.lang.Object, long, java.lang.Object, java.lang.Object)'> (0x0000000417a6add0)
thrown [e:\jenkins\tmp\workspace\build\src\src\hotspot\share\interpreter\linkResolver.cpp, line 766]
Event: 4.616 Thread 0x000001a79cdedec0 Exception <a 'java/lang/NoSuchMethodError'{0x0000000417b36e88}: 'java.lang.Object java.lang.invoke.DirectMethodHandle$Holder.invokeStatic(java.lang.Object, java.lang.Object, int, int)'> (0x0000000417b36e88)
thrown [e:\jenkins\tmp\workspace\build\src\src\hotspot\share\interpreter\linkResolver.cpp, line 766]
VM Operations (20 events):
Event: 4.750 Executing VM operation: G1CollectForAllocation
Event: 4.768 Executing VM operation: G1CollectForAllocation done
Event: 5.768 Executing VM operation: Cleanup
Event: 5.768 Executing VM operation: Cleanup done
Event: 6.769 Executing VM operation: Cleanup
Event: 6.769 Executing VM operation: Cleanup done
Event: 7.770 Executing VM operation: Cleanup
Event: 7.770 Executing VM operation: Cleanup done
Event: 8.332 Executing VM operation: HandshakeAllThreads
Event: 8.332 Executing VM operation: HandshakeAllThreads done
Event: 9.332 Executing VM operation: Cleanup
Event: 9.332 Executing VM operation: Cleanup done
Event: 10.220 Executing VM operation: G1CollectForAllocation
Event: 10.224 Executing VM operation: G1CollectForAllocation done
Event: 11.224 Executing VM operation: Cleanup
Event: 11.224 Executing VM operation: Cleanup done
Event: 13.226 Executing VM operation: Cleanup
Event: 13.226 Executing VM operation: Cleanup done
Event: 14.053 Executing VM operation: G1CollectForAllocation
Event: 14.054 Executing VM operation: G1CollectForAllocation done
Events (20 events):
Event: 8.526 Thread 0x000001a7de5651d0 Thread exited: 0x000001a7de5651d0
Event: 8.526 Thread 0x000001a7ddd2e480 Thread exited: 0x000001a7ddd2e480
Event: 8.682 Thread 0x000001a7ddd1fd20 Thread exited: 0x000001a7ddd1fd20
Event: 8.902 Thread 0x000001a7f1f51b70 Thread added: 0x000001a7f1f51b70
Event: 8.902 Thread 0x000001a7f1f4d9a0 Thread added: 0x000001a7f1f4d9a0
Event: 9.238 Thread 0x000001a7f1f4d9a0 Thread exited: 0x000001a7f1f4d9a0
Event: 9.238 Thread 0x000001a7f1f51b70 Thread exited: 0x000001a7f1f51b70
Event: 9.256 Thread 0x000001a7f1f51b70 Thread added: 0x000001a7f1f51b70
Event: 10.762 Thread 0x000001a7f1f4e3c0 Thread added: 0x000001a7f1f4e3c0
Event: 12.102 Thread 0x000001a7f1f4e3c0 Thread exited: 0x000001a7f1f4e3c0
Event: 12.102 Thread 0x000001a7f1f51b70 Thread exited: 0x000001a7f1f51b70
Event: 13.308 Thread 0x000001a7f1f4d9a0 Thread added: 0x000001a7f1f4d9a0
Event: 13.311 Thread 0x000001a7f1f52080 Thread added: 0x000001a7f1f52080
Event: 13.312 Thread 0x000001a7f1f539d0 Thread added: 0x000001a7f1f539d0
Event: 13.314 Thread 0x000001a7f1f54e10 Thread added: 0x000001a7f1f54e10
Event: 13.314 Thread 0x000001a7f1f50220 Thread added: 0x000001a7f1f50220
Event: 13.578 Thread 0x000001a7f1f50220 Thread exited: 0x000001a7f1f50220
Event: 13.595 Thread 0x000001a7f1f54e10 Thread exited: 0x000001a7f1f54e10
Event: 13.595 Thread 0x000001a7f1f539d0 Thread exited: 0x000001a7f1f539d0
Event: 13.623 Thread 0x000001a7f1f52080 Thread exited: 0x000001a7f1f52080
Dynamic libraries:
0x00007ff760040000 - 0x00007ff76004e000 C:\Users\dbott\.gradle\jdks\jdk-17.0.1+12\bin\java.exe
0x00007ffbd8050000 - 0x00007ffbd8245000 C:\Windows\SYSTEM32\ntdll.dll
0x00007ffbd7e90000 - 0x00007ffbd7f4d000 C:\Windows\System32\KERNEL32.DLL
0x00007ffbd5990000 - 0x00007ffbd5c5d000 C:\Windows\System32\KERNELBASE.dll
0x00007ffbd5760000 - 0x00007ffbd5860000 C:\Windows\System32\ucrtbase.dll
0x00007ffbc8eb0000 - 0x00007ffbc8ec9000 C:\Users\dbott\.gradle\jdks\jdk-17.0.1+12\bin\VCRUNTIME140.dll
0x00007ffbc8fe0000 - 0x00007ffbc8ff8000 C:\Users\dbott\.gradle\jdks\jdk-17.0.1+12\bin\jli.dll
0x00007ffbd6df0000 - 0x00007ffbd6f90000 C:\Windows\System32\USER32.dll
0x00007ffbd58f0000 - 0x00007ffbd5912000 C:\Windows\System32\win32u.dll
0x00007ffbd7a20000 - 0x00007ffbd7a4a000 C:\Windows\System32\GDI32.dll
0x00007ffbc2400000 - 0x00007ffbc269a000 C:\Windows\WinSxS\amd64_microsoft.windows.common-controls_6595b64144ccf1df_6.0.19041.1110_none_60b5254171f9507e\COMCTL32.dll
0x00007ffbd5d00000 - 0x00007ffbd5e0b000 C:\Windows\System32\gdi32full.dll
0x00007ffbd6410000 - 0x00007ffbd64ae000 C:\Windows\System32\msvcrt.dll
0x00007ffbd5c60000 - 0x00007ffbd5cfd000 C:\Windows\System32\msvcp_win.dll
0x00007ffbd6dc0000 - 0x00007ffbd6df0000 C:\Windows\System32\IMM32.DLL
0x00007ffbcd340000 - 0x00007ffbcd34c000 C:\Users\dbott\.gradle\jdks\jdk-17.0.1+12\bin\vcruntime140_1.dll
0x00007ffba9ae0000 - 0x00007ffba9b71000 C:\Users\dbott\.gradle\jdks\jdk-17.0.1+12\bin\msvcp140.dll
0x00007ffb54660000 - 0x00007ffb552a6000 C:\Users\dbott\.gradle\jdks\jdk-17.0.1+12\bin\server\jvm.dll
0x00007ffbd70b0000 - 0x00007ffbd715e000 C:\Windows\System32\ADVAPI32.dll
0x00007ffbd7500000 - 0x00007ffbd759c000 C:\Windows\System32\sechost.dll
0x00007ffbd6c90000 - 0x00007ffbd6db5000 C:\Windows\System32\RPCRT4.dll
0x00007ffbd7f50000 - 0x00007ffbd7f58000 C:\Windows\System32\PSAPI.DLL
0x00007ffbcbd90000 - 0x00007ffbcbdb7000 C:\Windows\SYSTEM32\WINMM.dll
0x00007ffbcdb10000 - 0x00007ffbcdb1a000 C:\Windows\SYSTEM32\VERSION.dll
0x00007ffbc01d0000 - 0x00007ffbc01d9000 C:\Windows\SYSTEM32\WSOCK32.dll
0x00007ffbd7270000 - 0x00007ffbd72db000 C:\Windows\System32\WS2_32.dll
0x00007ffbd3680000 - 0x00007ffbd3692000 C:\Windows\SYSTEM32\kernel.appcore.dll
0x00007ffbc9240000 - 0x00007ffbc924a000 C:\Users\dbott\.gradle\jdks\jdk-17.0.1+12\bin\jimage.dll
0x00007ffbcf0e0000 - 0x00007ffbcf2c4000 C:\Windows\SYSTEM32\DBGHELP.DLL
0x00007ffbc23d0000 - 0x00007ffbc23fc000 C:\Windows\SYSTEM32\dbgcore.DLL
0x00007ffbd5860000 - 0x00007ffbd58e2000 C:\Windows\System32\bcryptPrimitives.dll
0x00007ffbcd790000 - 0x00007ffbcd79e000 C:\Users\dbott\.gradle\jdks\jdk-17.0.1+12\bin\instrument.dll
0x00007ffbb98c0000 - 0x00007ffbb98e5000 C:\Users\dbott\.gradle\jdks\jdk-17.0.1+12\bin\java.dll
0x00007ffb99a90000 - 0x00007ffb99b66000 C:\Users\dbott\.gradle\jdks\jdk-17.0.1+12\bin\svml.dll
0x00007ffbd64b0000 - 0x00007ffbd6bf4000 C:\Windows\System32\SHELL32.dll
0x00007ffbd3880000 - 0x00007ffbd4014000 C:\Windows\SYSTEM32\windows.storage.dll
0x00007ffbd7b30000 - 0x00007ffbd7e84000 C:\Windows\System32\combase.dll
0x00007ffbd51c0000 - 0x00007ffbd51ec000 C:\Windows\SYSTEM32\Wldp.dll
0x00007ffbd7f60000 - 0x00007ffbd800d000 C:\Windows\System32\SHCORE.dll
0x00007ffbd7ad0000 - 0x00007ffbd7b25000 C:\Windows\System32\shlwapi.dll
0x00007ffbd56a0000 - 0x00007ffbd56bf000 C:\Windows\SYSTEM32\profapi.dll
0x00007ffbbeea0000 - 0x00007ffbbeeb8000 C:\Users\dbott\.gradle\jdks\jdk-17.0.1+12\bin\zip.dll
0x00007ffbc4a00000 - 0x00007ffbc4a19000 C:\Users\dbott\.gradle\jdks\jdk-17.0.1+12\bin\net.dll
0x00007ffbcd8c0000 - 0x00007ffbcd9ca000 C:\Windows\SYSTEM32\WINHTTP.dll
0x00007ffbd4f20000 - 0x00007ffbd4f8a000 C:\Windows\system32\mswsock.dll
0x00007ffbbf010000 - 0x00007ffbbf025000 C:\Users\dbott\.gradle\jdks\jdk-17.0.1+12\bin\nio.dll
0x00007ffbcd760000 - 0x00007ffbcd77a000 C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2021.3\bin\breakgen64.dll
0x00007ffbc4ae0000 - 0x00007ffbc4ae9000 C:\Users\dbott\.gradle\jdks\jdk-17.0.1+12\bin\management.dll
0x00007ffbc22c0000 - 0x00007ffbc22cb000 C:\Users\dbott\.gradle\jdks\jdk-17.0.1+12\bin\management_ext.dll
0x00007ffbbe0f0000 - 0x00007ffbbe107000 C:\Windows\system32\napinsp.dll
0x00007ffbbdf90000 - 0x00007ffbbdfab000 C:\Windows\system32\pnrpnsp.dll
0x00007ffbb6a30000 - 0x00007ffbb6a45000 C:\Windows\system32\wshbth.dll
0x00007ffbd13f0000 - 0x00007ffbd140d000 C:\Windows\system32\NLAapi.dll
0x00007ffbd4ba0000 - 0x00007ffbd4bdb000 C:\Windows\SYSTEM32\IPHLPAPI.DLL
0x00007ffbd4be0000 - 0x00007ffbd4cab000 C:\Windows\SYSTEM32\DNSAPI.dll
0x00007ffbd6c60000 - 0x00007ffbd6c68000 C:\Windows\System32\NSI.dll
0x00007ffbbc030000 - 0x00007ffbbc042000 C:\Windows\System32\winrnr.dll
0x0000000061af0000 - 0x0000000061b16000 C:\Program Files\Bonjour\mdnsNSP.dll
0x00007ffbccc00000 - 0x00007ffbccc0a000 C:\Windows\System32\rasadhlp.dll
0x00007ffbcc2f0000 - 0x00007ffbcc370000 C:\Windows\System32\fwpuclnt.dll
0x00007ffbd5f10000 - 0x00007ffbd5f37000 C:\Windows\System32\bcrypt.dll
0x00007ffbb8c30000 - 0x00007ffbb8ca1000 C:\Users\dbott\AppData\Local\Temp\lwjgldbott\3.3.0-build-21\lwjgl.dll
0x00007ffbac180000 - 0x00007ffbac1e1000 C:\Users\dbott\AppData\Local\Temp\lwjgldbott\3.3.0-build-21\glfw.dll
0x00007ffbb96a0000 - 0x00007ffbb96e5000 C:\Windows\SYSTEM32\dinput8.dll
0x00007ffbbda60000 - 0x00007ffbbda71000 C:\Windows\SYSTEM32\xinput1_4.dll
0x00007ffbd5e10000 - 0x00007ffbd5e5e000 C:\Windows\System32\cfgmgr32.dll
0x00007ffbd5510000 - 0x00007ffbd553c000 C:\Windows\SYSTEM32\DEVOBJ.dll
0x00007ffbd3390000 - 0x00007ffbd33bf000 C:\Windows\SYSTEM32\dwmapi.dll
0x00007ffbc89f0000 - 0x00007ffbc8b42000 C:\Windows\SYSTEM32\inputhost.dll
0x00007ffbd6340000 - 0x00007ffbd640d000 C:\Windows\System32\OLEAUT32.dll
0x00007ffbd16d0000 - 0x00007ffbd1824000 C:\Windows\SYSTEM32\wintypes.dll
0x00007ffbd2d90000 - 0x00007ffbd2e82000 C:\Windows\SYSTEM32\CoreMessaging.dll
0x00007ffbcfe40000 - 0x00007ffbcff36000 C:\Windows\SYSTEM32\PROPSYS.dll
0x00007ffbd2a30000 - 0x00007ffbd2d8e000 C:\Windows\SYSTEM32\CoreUIComponents.dll
0x00007ffbd4460000 - 0x00007ffbd4493000 C:\Windows\SYSTEM32\ntmarta.dll
0x00007ffbd31a0000 - 0x00007ffbd323e000 C:\Windows\system32\uxtheme.dll
0x00007ffbd6f90000 - 0x00007ffbd70a5000 C:\Windows\System32\MSCTF.dll
0x00007ffb9b170000 - 0x00007ffb9b296000 C:\Windows\SYSTEM32\opengl32.dll
0x00007ffb9bf50000 - 0x00007ffb9bf7c000 C:\Windows\SYSTEM32\GLU32.dll
0x00007ffbd71c0000 - 0x00007ffbd7269000 C:\Windows\System32\clbcatq.dll
0x00007ffb9bf20000 - 0x00007ffb9bf4d000 C:\Windows\System32\DriverStore\FileRepository\u0387206.inf_amd64_081d192bd0a4e0cb\B386218\atig6pxx.dll
0x00007ffb7a5b0000 - 0x00007ffb7e2a1000 C:\Windows\System32\DriverStore\FileRepository\u0387206.inf_amd64_081d192bd0a4e0cb\B386218\atio6axx.dll
0x00007ffbd75a0000 - 0x00007ffbd7a11000 C:\Windows\System32\SETUPAPI.dll
0x00007ffbd5920000 - 0x00007ffbd5988000 C:\Windows\System32\WINTRUST.dll
0x00007ffbd5f40000 - 0x00007ffbd6096000 C:\Windows\System32\CRYPT32.dll
0x00007ffbd5350000 - 0x00007ffbd5362000 C:\Windows\SYSTEM32\MSASN1.dll
0x00007ffba99d0000 - 0x00007ffba9a2d000 C:\Users\dbott\AppData\Local\Temp\lwjgldbott\3.3.0-build-21\lwjgl_opengl.dll
0x00007ffbd5110000 - 0x00007ffbd5128000 C:\Windows\SYSTEM32\CRYPTSP.dll
0x00007ffbd47c0000 - 0x00007ffbd47f4000 C:\Windows\system32\rsaenh.dll
0x00007ffbd5660000 - 0x00007ffbd568e000 C:\Windows\SYSTEM32\USERENV.dll
0x00007ffbd5130000 - 0x00007ffbd513c000 C:\Windows\SYSTEM32\CRYPTBASE.dll
0x00007ffbd0000000 - 0x00007ffbd0017000 C:\Windows\SYSTEM32\dhcpcsvc6.DLL
0x00007ffbcffe0000 - 0x00007ffbcfffd000 C:\Windows\SYSTEM32\dhcpcsvc.DLL
0x00007ffba9a90000 - 0x00007ffba9ad5000 C:\Users\dbott\AppData\Local\Temp\jna-95382001\jna11149125972623279360.dll
0x00007ffba4910000 - 0x00007ffba49b3000 K:\git\kstarbound\freetype-2.11.1.dll
0x00007ffbc8b50000 - 0x00007ffbc8c49000 C:\Windows\SYSTEM32\textinputframework.dll
0x00007ffba9840000 - 0x00007ffba98c1000 C:\Users\dbott\AppData\Local\Temp\lwjgldbott\3.3.0-build-21\lwjgl_stb.dll
0x000000006e4c0000 - 0x000000006e4df000 C:\Users\dbott\AppData\Local\Temp\jffi11233893901409584800.dll
0x00007ffbc5210000 - 0x00007ffbc5220000 C:\Users\dbott\.gradle\jdks\jdk-17.0.1+12\bin\verify.dll
0x00007ffba1530000 - 0x00007ffba15d4000 K:\git\kstarbound\lua54.DLL
0x00007ffbbc080000 - 0x00007ffbbc0a3000 K:\git\kstarbound\lua_glue.dll
0x00007ffbd7340000 - 0x00007ffbd746a000 C:\Windows\System32\ole32.dll
dbghelp: loaded successfully - version: 4.0.5 - missing functions: none
symbol engine: initialized successfully - sym options: 0x614 - pdb path: .;C:\Users\dbott\.gradle\jdks\jdk-17.0.1+12\bin;C:\Windows\SYSTEM32;C:\Windows\WinSxS\amd64_microsoft.windows.common-controls_6595b64144ccf1df_6.0.19041.1110_none_60b5254171f9507e;C:\Users\dbott\.gradle\jdks\jdk-17.0.1+12\bin\server;C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2021.3\bin;C:\Program Files\Bonjour;C:\Users\dbott\AppData\Local\Temp\lwjgldbott\3.3.0-build-21;C:\Windows\System32\DriverStore\FileRepository\u0387206.inf_amd64_081d192bd0a4e0cb\B386218;C:\Users\dbott\AppData\Local\Temp\jna-95382001;K:\git\kstarbound;C:\Users\dbott\AppData\Local\Temp
VM Arguments:
jvm_args: -Xms128m -javaagent:C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2021.3\lib\idea_rt.jar=5926:C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2021.3\bin -Dfile.encoding=UTF-8
java_command: ru.dbotthepony.kstarbound.MainKt
java_class_path (initial): K:\git\kstarbound\build\classes\java\main;K:\git\kstarbound\build\classes\kotlin\main;K:\git\kstarbound\build\resources\main;C:\Users\dbott\.gradle\caches\modules-2\files-2.1\org.jetbrains.kotlin\kotlin-reflect\1.6.10\1cbe9c92c12a94eea200d23c2bbaedaf3daf5132\kotlin-reflect-1.6.10.jar;C:\Users\dbott\.gradle\caches\modules-2\files-2.1\org.jetbrains.kotlin\kotlin-stdlib\1.6.10\b8af3fe6f1ca88526914929add63cf5e7c5049af\kotlin-stdlib-1.6.10.jar;C:\Users\dbott\.gradle\caches\modules-2\files-2.1\org.apache.logging.log4j\log4j-core\2.17.1\779f60f3844dadc3ef597976fcb1e5127b1f343d\log4j-core-2.17.1.jar;C:\Users\dbott\.gradle\caches\modules-2\files-2.1\org.apache.logging.log4j\log4j-api\2.17.1\d771af8e336e372fb5399c99edabe0919aeaf5b2\log4j-api-2.17.1.jar;C:\Users\dbott\.gradle\caches\modules-2\files-2.1\com.google.code.gson\gson\2.8.9\8a432c1d6825781e21a02db2e2c33c5fde2833b9\gson-2.8.9.jar;C:\Users\dbott\.gradle\caches\modules-2\files-2.1\it.unimi.dsi\fastutil\8.5.6\76f95700418a68fbc4ac050525261f05dc681ca1\fastutil-8.5.6.jar;C:\Users\dbott\.gradle\caches\modules-2\files-2.1\com.google.guava\guava\31.0.1-jre\119ea2b2bc205b138974d351777b20f02b92704b\guava-31.0.1-jre.jar;C:\Users\dbott\.gradle\caches\modules-2\files-2.1\org.lwjgl\lwjgl-assimp\3.3.0\82135e856184e76d38a97f729141298d3edcf0e4\lwjgl-assimp-3.3.0.jar;C:\Users\dbott\.gradle\caches\modules-2\files-2.1\org.lwjgl\lwjgl-bgfx\3.3.0\b9e9a62b741bdc60f9207a4d4de6e61a2b7de6af\lwjgl-bgfx-3.3.0.jar;C:\Users\dbott\.gradle\caches\modules-2\files-2.1\org.lwjgl\lwjgl-glfw\3.3.0\899e34f314525596f8fdb6476d3e56104da4601d\lwjgl-glfw-3.3.0.jar;C:\Users\dbott\.gradle\caches\modules-2\files-2.1\org.lwjgl\lwjgl-nanovg\3.3.0\a15688d6e6c7136cebc5b63f30d120f702f6587c\lwjgl-nanovg-3.3.0.jar;C:\Users\dbott\.gradle\caches\modules-2\files-2.1\org.lwjgl\lwjgl-nuklear\3.3.0\8dbbdce4f28384c2abdfe8d0abff5f4c9bae286e\lwjgl-nuklear-3.3.0.jar;C:\Users\dbott\.gradle\caches\modules-2\files-2.1\org.lwjgl\lwjgl-openal\3.3.0\902dd57b
Launcher Type: SUN_STANDARD
[Global flags]
intx CICompilerCount = 12 {product} {ergonomic}
uint ConcGCThreads = 3 {product} {ergonomic}
uint G1ConcRefinementThreads = 13 {product} {ergonomic}
size_t G1HeapRegionSize = 8388608 {product} {ergonomic}
uintx GCDrainStackTargetSize = 64 {product} {ergonomic}
size_t InitialHeapSize = 134217728 {product} {command line}
size_t MarkStackSize = 4194304 {product} {ergonomic}
size_t MaxHeapSize = 17163091968 {product} {ergonomic}
size_t MaxNewSize = 10292822016 {product} {ergonomic}
size_t MinHeapDeltaBytes = 8388608 {product} {ergonomic}
size_t MinHeapSize = 134217728 {product} {command line}
uintx NonNMethodCodeHeapSize = 7602480 {pd product} {ergonomic}
uintx NonProfiledCodeHeapSize = 122027880 {pd product} {ergonomic}
uintx ProfiledCodeHeapSize = 122027880 {pd product} {ergonomic}
uintx ReservedCodeCacheSize = 251658240 {pd product} {ergonomic}
bool SegmentedCodeCache = true {product} {ergonomic}
size_t SoftMaxHeapSize = 17163091968 {manageable} {ergonomic}
bool UseCompressedClassPointers = true {product lp64_product} {ergonomic}
bool UseCompressedOops = true {product lp64_product} {ergonomic}
bool UseG1GC = true {product} {ergonomic}
bool UseLargePagesIndividualAllocation = false {pd product} {ergonomic}
Logging:
Log output configuration:
#0: stdout all=warning uptime,level,tags
#1: stderr all=off uptime,level,tags
Environment Variables:
JAVA_HOME=C:\Program Files\Eclipse Adoptium\jdk-17.0.4.101-hotspot\
PATH=C:\Program Files\Eclipse Adoptium\jdk-17.0.4.101-hotspot\bin;C:\Program Files\ImageMagick-7.1.0-Q16;C:\Program Files\Microsoft\jdk-11.0.12.7-hotspot\bin;C:\Program Files\ImageMagick-7.1.0-Q16-HDRI;C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common;C:\Program Files (x86)\VMware\VMware Workstation\bin\;C:\Program Files\ImageMagick-7.0.10-Q16-HDRI;C:\Program Files\Python38\Scripts\;C:\Program Files\Python38\;C:\Program Files\ImageMagick-7.0.9-Q16;C:\Program Files (x86)\Common Files\Oracle\Java\javapath;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;D:\php7;C:\Program Files (x86)\Lua\5.1;C:\Program Files (x86)\Lua\5.1\clibs;C:\Program Files (x86)\Codebox\BitMeterOS;C:\moonscript;C:\Program Files\TortoiseHg\;C:\Program Files\GTK3-Runtime Win64\bin;C:\ProgramData\ComposerSetup\bin;C:\Program Files\Logstalgia\cmd;C:\Program Files\dotnet\;C:\Program Files\TortoiseSVN\bin;C:\Program Files\Gource\cmd;C:\kotlin-native-windows-1.3.72\bin;N:\platform-tools;C:\Program Files\PuTTY\;C:\Program Files\Git\cmd;C:\Windows\System32\OpenSSH\;D:\php-8.0.8-Win32-vs16-x64;C:\Program Files\LLVM\bin;C:\Program Files\PowerShell\7\;C:\Program Files\CMake\bin;C:\pypy3.8-v7.3.7-win64;C:\pypy3.8-v7.3.7-win64\Scripts;C:\Program Files\nodejs\;C:\Program Files\7-Zip;C:\Program Files\TortoiseGit\bin;C:\Users\dbott\.cargo\bin;C:\Users\dbott\.windows-build-tools\python27\;C:\Users\dbott\AppData\Local\Programs\Python\Python37\Scripts\;C:\Users\dbott\AppData\Local\Programs\Python\Python37\;C:\Users\dbott\AppData\Local\Microsoft\WindowsApps;C:\Users\dbott\AppData\Local\Programs\Microsoft VS Code\bin;K:\git\vcpkg\installed\x86-windows\include;K:\git\vcpkg\installed\x86-windows\lib;K:\git\vcpkg\installed\x86-windows\bin;C:\Users\dbott\AppData\Roaming\Composer\vendor\bin;C:\Users\dbott\.dotnet\tools;C:\Users\dbott\AppData\Local\Microsoft\WindowsApps;C:\Program Files (x86)\FreeArc\bin;C:\Users\dbott\AppData\Roaming\npm
USERNAME=dbott
OS=Windows_NT
PROCESSOR_IDENTIFIER=AMD64 Family 23 Model 113 Stepping 0, AuthenticAMD
--------------- S Y S T E M ---------------
OS:
Windows 10 , 64 bit Build 19041 (10.0.19041.1706)
OS uptime: 34 days 23:34 hours
CPU: total 16 (initial active 16) (16 cores per cpu, 2 threads per core) family 23 model 113 stepping 0 microcode 0x0, cx8, cmov, fxsr, ht, mmx, 3dnowpref, sse, sse2, sse3, ssse3, sse4a, sse4.1, sse4.2, popcnt, lzcnt, tsc, tscinvbit, avx, avx2, aes, clmul, bmi1, bmi2, adx, sha, fma, vzeroupper, clflush, clflushopt
Memory: 4k page, system-wide physical 65457M (24517M free)
TotalPageFile size 165457M (AvailPageFile size 106196M)
current process WorkingSet (physical memory assigned to process): 722M, peak: 796M
current process commit charge ("private bytes"): 864M, peak: 973M
vm_info: OpenJDK 64-Bit Server VM (17.0.1+12) for windows-amd64 JRE (17.0.1+12), built on Oct 20 2021 07:42:55 by "" with MS VC++ 16.7 (VS2019)
END.

View File

@ -22,3 +22,6 @@ operator fun <T> ThreadLocal<T>.setValue(thisRef: Any, property: KProperty<*>, v
}
operator fun <K, V> ImmutableMap.Builder<K, V>.set(key: K, value: V): ImmutableMap.Builder<K, V> = put(key, value)
fun String.sintern(): String = Starbound.strings.intern(this)

View File

@ -15,13 +15,24 @@ import ru.dbotthepony.kstarbound.util.JVMTimeSource
import ru.dbotthepony.kstarbound.world.api.IChunkCell
import ru.dbotthepony.kstarbound.world.entities.ItemEntity
import ru.dbotthepony.kstarbound.world.entities.PlayerEntity
import ru.dbotthepony.kstarbound.client.world.`object`.ClientWorldObject
import ru.dbotthepony.kstarbound.io.json.BinaryJsonReader
import ru.dbotthepony.kstarbound.io.json.VersionedJson
import ru.dbotthepony.kstarbound.io.readString
import ru.dbotthepony.kstarbound.io.readVarInt
import ru.dbotthepony.kvector.vector.Vector2d
import ru.dbotthepony.kvector.vector.Vector2f
import ru.dbotthepony.kvector.vector.Vector2i
import java.io.BufferedInputStream
import java.io.ByteArrayInputStream
import java.io.ByteArrayOutputStream
import java.io.DataInputStream
import java.io.File
import java.util.*
import java.util.concurrent.locks.LockSupport
import java.util.zip.Inflater
import java.util.zip.InflaterInputStream
import java.util.zip.InflaterOutputStream
private val LOGGER = LogManager.getLogger()
@ -70,16 +81,12 @@ fun main() {
for (chunkY in 18 .. 24) {
var t = System.currentTimeMillis()
val data = db.read(byteArrayOf(1, 0, chunkX.toByte(), 0, chunkY.toByte()))
val data2 = db.read(byteArrayOf(2, 0, chunkX.toByte(), 0, chunkY.toByte()))
find += System.currentTimeMillis() - t
if (data != null) {
val inflater = Inflater()
inflater.setInput(data)
t = System.currentTimeMillis()
val output = ByteArray(64_000)
val actual = inflater.inflate(output)
val reader = DataInputStream(ByteArrayInputStream(output))
val reader = DataInputStream(BufferedInputStream(InflaterInputStream(ByteArrayInputStream(data), Inflater())))
parse += System.currentTimeMillis() - t
reader.skipBytes(3)
@ -100,6 +107,28 @@ fun main() {
set += System.currentTimeMillis() - t
}
if (data2 != null) {
val reader = DataInputStream(BufferedInputStream(InflaterInputStream(ByteArrayInputStream(data2), Inflater())))
val i = reader.readVarInt()
for (i2 in 0 until i) {
val obj = VersionedJson(reader)
if (obj.identifier == "ObjectEntity") {
try {
val created = ClientWorldObject.create(client.world!!, obj.content.asJsonObject)
//println(obj.content)
//println(created)
} catch (err: Throwable) {
}
}
}
//val read = BinaryJsonReader.readElement(reader)
//println(read)
}
}
}
@ -153,6 +182,7 @@ fun main() {
//ent.position += Vector2d(y = 14.0, x = -10.0)
ent.position = Vector2d(600.0 + 16.0, 721.0 + 48.0)
client.camera.pos = Vector2f(238f, 685f)
//client.camera.pos = Vector2f(0f, 0f)
client.onDrawGUI {
client.gl.font.render("${ent.position}", y = 100f, scale = 0.25f)
@ -268,10 +298,5 @@ fun main() {
}
//ent.wantsToDuck = client.input.KEY_DOWN_DOWN
//if (chunkA != null && glfwGetTime() < 10.0) {
// val tile = Starbound.getTileDefinition("alienrock")
//chunkA!!.foreground[rand.nextInt(0, CHUNK_SIZE_FF), rand.nextInt(0, CHUNK_SIZE_FF)] = tile
//}
}
}

View File

@ -7,6 +7,7 @@ import com.google.gson.JsonObject
import com.google.gson.JsonPrimitive
import com.google.gson.internal.bind.JsonTreeReader
import it.unimi.dsi.fastutil.ints.Int2ObjectMap
import it.unimi.dsi.fastutil.ints.Int2ObjectMaps
import it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap
import it.unimi.dsi.fastutil.ints.IntCollection
import it.unimi.dsi.fastutil.ints.IntIterator
@ -76,28 +77,13 @@ class RegistryObject<T : Any>(
/**
* Оригинальный JSON объекта без каких либо изменений
*/
private val json: JsonElement,
val json: JsonElement,
/**
* Файл, откуда данный объект был загружен
*/
val file: IStarboundFile,
/**
* [Gson], который загрузил данный объект из JSON
*/
val gson: Gson,
/**
* [PathStack] который используется для загрузки и чтения, из какого файла читается объект
*/
val pathStack: PathStack
) {
/**
* Возвращает копию оригинальной JSON структуры, из которой был спрототипирован [value]
*
* Более полная JSON структура (обработанная) доступа из метода [toJson]
*/
fun copy(): JsonElement {
return json.deepCopy()
}
val jsonObject get() = json as JsonObject
fun push(lua: LuaState) {
lua.push(toJson())
@ -114,11 +100,11 @@ class RegistryObject<T : Any>(
* в оригинальной JSON структуре. [copy] не вернёт данные свойства по умолчанию, а [toJson] вернёт.
*/
fun toJson(): JsonElement {
return mergeJsonElements(json, gson.toJsonTree(value))
return mergeJsonElements(json, Starbound.gson.toJsonTree(value))
}
fun traverseJsonPath(path: String): JsonElement? {
return traverseJsonPath(path, mergeJsonElements(json, gson.toJsonTree(value)))
return traverseJsonPath(path, mergeJsonElements(json, Starbound.gson.toJsonTree(value)))
}
override fun equals(other: Any?): Boolean {
@ -147,103 +133,7 @@ class ObjectRegistry<T : Any>(val clazz: KClass<T>, val name: String, val key: (
private val intObjects = Int2ObjectOpenHashMap<RegistryObject<T>>()
val view: Map<String, RegistryObject<T>> = Collections.unmodifiableMap(objects)
val intView = object : Int2ObjectMap<RegistryObject<T>> {
override fun get(key: Int): RegistryObject<T>? = intObjects[key]
override fun containsKey(key: Int) = intObjects.containsKey(key)
override fun defaultReturnValue(rv: RegistryObject<T>) = throw UnsupportedOperationException()
override fun defaultReturnValue(): RegistryObject<T> = throw UnsupportedOperationException()
override fun containsValue(value: RegistryObject<T>) = intObjects.containsValue(value)
override fun isEmpty() = intObjects.isEmpty()
override fun putAll(from: Map<out Int, RegistryObject<T>>) = throw UnsupportedOperationException()
private val int2ObjectEntrySet: ObjectSet<Int2ObjectMap.Entry<RegistryObject<T>>> = object : ObjectSet<Int2ObjectMap.Entry<RegistryObject<T>>> {
override val size: Int
get() = intObjects.int2ObjectEntrySet().size
override fun add(element: Int2ObjectMap.Entry<RegistryObject<T>>) = throw UnsupportedOperationException()
override fun addAll(elements: Collection<Int2ObjectMap.Entry<RegistryObject<T>>>) = throw UnsupportedOperationException()
override fun clear() = throw UnsupportedOperationException()
override fun iterator(): ObjectIterator<Int2ObjectMap.Entry<RegistryObject<T>>> {
return object : ObjectIterator<Int2ObjectMap.Entry<RegistryObject<T>>> {
val iterator = intObjects.int2ObjectEntrySet().iterator()
override fun hasNext() = iterator.hasNext()
override fun remove() = throw UnsupportedOperationException()
override fun next() = iterator.next()
}
}
override fun contains(element: Int2ObjectMap.Entry<RegistryObject<T>>) = intObjects.int2ObjectEntrySet().contains(element)
override fun containsAll(elements: Collection<Int2ObjectMap.Entry<RegistryObject<T>>>) = intObjects.int2ObjectEntrySet().containsAll(elements)
override fun isEmpty() = intObjects.int2ObjectEntrySet().isEmpty()
override fun remove(element: Int2ObjectMap.Entry<RegistryObject<T>>) = throw UnsupportedOperationException()
override fun removeAll(elements: Collection<Int2ObjectMap.Entry<RegistryObject<T>>>) = throw UnsupportedOperationException()
override fun retainAll(elements: Collection<Int2ObjectMap.Entry<RegistryObject<T>>>) = throw UnsupportedOperationException()
}
override fun int2ObjectEntrySet(): ObjectSet<Int2ObjectMap.Entry<RegistryObject<T>>> {
return int2ObjectEntrySet
}
override val keys: IntSet = object : IntSet {
override fun add(key: Int) = throw UnsupportedOperationException()
override fun addAll(c: IntCollection) = throw UnsupportedOperationException()
override fun addAll(elements: Collection<Int>) = throw UnsupportedOperationException()
override fun clear() = throw UnsupportedOperationException()
override fun iterator(): IntIterator {
return object : IntIterator {
val iterator = intObjects.keys.iterator()
override fun hasNext() = iterator.hasNext()
override fun remove() = throw UnsupportedOperationException()
override fun nextInt() = iterator.nextInt()
}
}
override fun remove(k: Int) = throw UnsupportedOperationException()
override fun removeAll(c: IntCollection) = throw UnsupportedOperationException()
override fun removeAll(elements: Collection<Int>) = throw UnsupportedOperationException()
override fun retainAll(c: IntCollection) = throw UnsupportedOperationException()
override fun retainAll(elements: Collection<Int>) = throw UnsupportedOperationException()
override fun contains(key: Int) = intObjects.keys.contains(key)
override fun containsAll(c: IntCollection) = intObjects.keys.containsAll(c)
override fun containsAll(elements: Collection<Int>) = intObjects.keys.containsAll(elements)
override fun isEmpty() = intObjects.keys.isEmpty()
override fun toArray(a: IntArray) = intObjects.keys.toArray(a)
override fun toIntArray() = intObjects.keys.toIntArray()
override val size: Int
get() = intObjects.keys.size
}
override val values: ObjectCollection<RegistryObject<T>> = object : ObjectCollection<RegistryObject<T>> {
override val size: Int
get() = intObjects.values.size
override fun add(element: RegistryObject<T>) = throw UnsupportedOperationException()
override fun addAll(elements: Collection<RegistryObject<T>>) = throw UnsupportedOperationException()
override fun clear() = throw UnsupportedOperationException()
override fun iterator(): ObjectIterator<RegistryObject<T>> {
return object : ObjectIterator<RegistryObject<T>> {
val iterator = intObjects.values.iterator()
override fun hasNext() = iterator.hasNext()
override fun next(): RegistryObject<T> = iterator.next()
override fun remove() = throw UnsupportedOperationException()
}
}
override fun contains(element: RegistryObject<T>) = intObjects.values.contains(element)
override fun containsAll(elements: Collection<RegistryObject<T>>) = intObjects.values.containsAll(elements)
override fun isEmpty() = intObjects.values.isEmpty()
override fun remove(element: RegistryObject<T>) = throw UnsupportedOperationException()
override fun removeAll(elements: Collection<RegistryObject<T>>) = throw UnsupportedOperationException()
override fun retainAll(elements: Collection<RegistryObject<T>>) = throw UnsupportedOperationException()
}
override val size: Int
get() = intObjects.size
}
val intView: Int2ObjectMap<RegistryObject<T>> = Int2ObjectMaps.unmodifiable(intObjects)
fun clear() {
objects.clear()
@ -254,16 +144,16 @@ class ObjectRegistry<T : Any>(val clazz: KClass<T>, val name: String, val key: (
return pathStack(file.computeDirectory()) {
val elem = gson.fromJson(file.reader(), JsonElement::class.java)
val value = gson.fromJson<T>(JsonTreeReader(elem), clazz.java)
add(RegistryObject(value, elem, file, gson, pathStack), this.key?.invoke(value) ?: throw UnsupportedOperationException("No key mapper"))
add(RegistryObject(value, elem, file), this.key?.invoke(value) ?: throw UnsupportedOperationException("No key mapper"))
}
}
fun add(value: T, json: JsonElement, file: IStarboundFile, gson: Gson, pathStack: PathStack): Boolean {
return add(RegistryObject(value, json, file, gson, pathStack), this.key?.invoke(value) ?: throw UnsupportedOperationException("No key mapper"))
fun add(value: T, json: JsonElement, file: IStarboundFile): Boolean {
return add(RegistryObject(value, json, file), this.key?.invoke(value) ?: throw UnsupportedOperationException("No key mapper"))
}
fun add(value: T, json: JsonElement, file: IStarboundFile, gson: Gson, pathStack: PathStack, key: String): Boolean {
return add(RegistryObject(value, json, file, gson, pathStack), key)
fun add(value: T, json: JsonElement, file: IStarboundFile, key: String): Boolean {
return add(RegistryObject(value, json, file), key)
}
private fun add(value: RegistryObject<T>, key: String): Boolean {

View File

@ -37,6 +37,7 @@ import ru.dbotthepony.kstarbound.defs.monster.MonsterSkillDefinition
import ru.dbotthepony.kstarbound.defs.monster.MonsterTypeDefinition
import ru.dbotthepony.kstarbound.defs.npc.NpcTypeDefinition
import ru.dbotthepony.kstarbound.defs.npc.TenantDefinition
import ru.dbotthepony.kstarbound.defs.`object`.ObjectDefinition
import ru.dbotthepony.kstarbound.defs.tile.LiquidDefinition
import ru.dbotthepony.kstarbound.defs.particle.ParticleDefinition
import ru.dbotthepony.kstarbound.defs.player.BlueprintLearnList
@ -96,6 +97,8 @@ import kotlin.collections.ArrayList
import kotlin.random.Random
object Starbound : ISBFileLocator {
const val SECONDS_IN_TICK = 1.0 / 60.0
val strings: Interner<String> = Interner.newWeakInterner()
private val polyfill by lazy { loadInternalScript("polyfill") }
@ -160,6 +163,9 @@ object Starbound : ISBFileLocator {
private val _monsterTypes = ObjectRegistry("monster types", MonsterTypeDefinition::type)
val monsterTypes = _monsterTypes.view
private val _worldObjects = ObjectRegistry("objects", ObjectDefinition::objectName)
val worldObjects = _worldObjects.view
val gson: Gson = with(GsonBuilder()) {
serializeNulls()
setDateFormat(DateFormat.LONG)
@ -227,10 +233,10 @@ object Starbound : ISBFileLocator {
registerTypeAdapterFactory(InventoryIcon.Factory(pathStack))
registerTypeAdapterFactory(IArmorItemDefinition.Frames.Factory)
registerTypeAdapterFactory(AssetPathFactory(pathStack))
registerTypeAdapterFactory(AssetPath.Companion)
registerTypeAdapterFactory(ImageReference.Factory({ atlasRegistry.get(it) }, pathStack))
registerTypeAdapterFactory(AssetReferenceFactory(pathStack, this@Starbound))
registerTypeAdapterFactory(AssetReference.Companion)
registerTypeAdapter(ItemStack.Adapter(this@Starbound))
@ -255,6 +261,7 @@ object Starbound : ISBFileLocator {
add(_treasurePools)
add(_monsterSkills)
add(_monsterTypes)
add(_worldObjects)
})
registerTypeAdapter(LongRangeAdapter)
@ -473,7 +480,7 @@ object Starbound : ISBFileLocator {
state.setTableFunction("projectileConfig", this) { args ->
// Json root.projectileConfig(String projectileName)
val name = args.getString()
args.lua.push(projectiles[name]?.copy() ?: throw kotlin.NoSuchElementException("No such Projectile type $name"))
args.lua.push(projectiles[name]?.json ?: throw kotlin.NoSuchElementException("No such Projectile type $name"))
1
}
@ -518,7 +525,7 @@ object Starbound : ISBFileLocator {
} else {
args.push(JsonObject().also {
it["directory"] = item.item!!.file.computeDirectory()
it["config"] = item.item!!.copy()
it["config"] = item.item!!.json
it["parameters"] = item.parameters
})
}
@ -568,7 +575,7 @@ object Starbound : ISBFileLocator {
.stream()
.filter { it.value.test(actualTags) }
.sorted { a, b -> b.value.compareTo(a.value) }
.map { it.copy() }
.map { it.toJson() }
.collect(JsonArrayCollector))
1
@ -1004,16 +1011,17 @@ object Starbound : ISBFileLocator {
loadStage(callback, _tiles, ext2files["material"] ?: listOf())
loadStage(callback, _tileModifiers, ext2files["matmod"] ?: listOf())
loadStage(callback, _liquid, ext2files["liquid"] ?: listOf())
loadStage(callback, _worldObjects, ext2files["object"] ?: listOf())
loadStage(callback, _statusEffects, ext2files["statuseffect"] ?: listOf())
loadStage(callback, _species, ext2files["species"] ?: listOf())
loadStage(callback, _particles, ext2files["particle"] ?: listOf())
loadStage(callback, _questTemplates, ext2files["questtemplate"] ?: listOf())
loadStage(callback, _techs, ext2files["tech"] ?: listOf())
loadStage(callback, _npcTypes, ext2files["npctype"] ?: listOf())
loadStage(callback, _projectiles, ext2files["projectile"] ?: listOf())
loadStage(callback, _tenants, ext2files["tenant"] ?: listOf())
//loadStage(callback, _projectiles, ext2files["projectile"] ?: listOf())
//loadStage(callback, _tenants, ext2files["tenant"] ?: listOf())
loadStage(callback, _monsterSkills, ext2files["monsterskill"] ?: listOf())
loadStage(callback, _monsterTypes, ext2files["monstertype"] ?: listOf())
//loadStage(callback, _monsterTypes, ext2files["monstertype"] ?: listOf())
pathStack.block("/") {
//playerDefinition = gson.fromJson(locate("/player.config").reader(), PlayerDefinition::class.java)
@ -1080,7 +1088,7 @@ object Starbound : ISBFileLocator {
callback("Loading $listedFile")
val json = gson.fromJson(listedFile.reader(), JsonObject::class.java)
val def: IItemDefinition = pathStack(listedFile.computeDirectory()) { gson.fromJson(JsonTreeReader(json), clazz) }
_items.add(def, json, listedFile, gson, pathStack)
_items.add(def, json, listedFile)
} catch (err: Throwable) {
logger.error("Loading item definition file $listedFile", err)
}
@ -1101,7 +1109,7 @@ object Starbound : ISBFileLocator {
try {
callback("Loading $k from $listedFile")
val fn = gson.fromJson<JsonFunction>(JsonTreeReader(v), JsonFunction::class.java)
_jsonFunctions.add(fn, v, listedFile, gson, pathStack, k)
_jsonFunctions.add(fn, v, listedFile, k)
} catch (err: Throwable) {
logger.error("Loading json function definition $k from file $listedFile", err)
}
@ -1122,7 +1130,7 @@ object Starbound : ISBFileLocator {
try {
callback("Loading $k from $listedFile")
val fn = gson.fromJson<Json2Function>(JsonTreeReader(v), Json2Function::class.java)
_json2Functions.add(fn, v, listedFile, gson, pathStack, k)
_json2Functions.add(fn, v, listedFile, k)
} catch (err: Throwable) {
logger.error("Loading json 2function definition $k from file $listedFile", err)
}
@ -1144,7 +1152,7 @@ object Starbound : ISBFileLocator {
callback("Loading $k from $listedFile")
val result = gson.fromJson<TreasurePoolDefinition>(JsonTreeReader(v), TreasurePoolDefinition::class.java)
result.name = k
_treasurePools.add(result, v, listedFile, gson, pathStack)
_treasurePools.add(result, v, listedFile)
} catch (err: Throwable) {
logger.error("Loading treasure pool definition $k from file $listedFile", err)
}
@ -1162,7 +1170,7 @@ object Starbound : ISBFileLocator {
callback("Loading $listedFile")
val json = gson.fromJson(listedFile.reader(), JsonElement::class.java)
val value = gson.fromJson<RecipeDefinition>(JsonTreeReader(json), RecipeDefinition::class.java)
recipeRegistry.add(RegistryObject(value, json, listedFile, gson, pathStack))
recipeRegistry.add(RegistryObject(value, json, listedFile))
} catch (err: Throwable) {
logger.error("Loading recipe definition file $listedFile", err)
}

View File

@ -1,6 +1,7 @@
package ru.dbotthepony.kstarbound.client
import org.apache.logging.log4j.LogManager
import org.lwjgl.BufferUtils
import org.lwjgl.glfw.Callbacks
import org.lwjgl.glfw.GLFW
import org.lwjgl.glfw.GLFWErrorCallback
@ -18,6 +19,7 @@ import ru.dbotthepony.kstarbound.client.render.Camera
import ru.dbotthepony.kstarbound.client.render.LayeredRenderer
import ru.dbotthepony.kstarbound.client.render.TextAlignY
import ru.dbotthepony.kstarbound.client.render.TileRenderers
import ru.dbotthepony.kstarbound.client.world.ClientWorld
import ru.dbotthepony.kstarbound.math.roundTowardsNegativeInfinity
import ru.dbotthepony.kstarbound.math.roundTowardsPositiveInfinity
import ru.dbotthepony.kstarbound.util.JVMTimeSource
@ -290,12 +292,25 @@ class StarboundClient : Closeable {
var viewportLighting = LightCalculator(viewportCells, viewportCellWidth, viewportCellHeight)
private set
val viewportLightingTexture = gl.newTexture("Viewport Lighting")
private var viewportLightingMem: ByteBuffer? = null
var fullbright = true
init {
//viewportLightingTexture.textureMinFilter = GL_NEAREST
viewportLightingTexture.textureMagFilter = GL_LINEAR
}
fun updateViewportParams() {
viewportRectangle = AABB.rectangle(
camera.pos.toDoubleVector(),
viewportWidth / settings.zoom / PIXELS_IN_STARBOUND_UNIT,
viewportHeight / settings.zoom / PIXELS_IN_STARBOUND_UNIT)
val oldWidth = viewportCellWidth
val oldHeight = viewportCellHeight
viewportCellX = roundTowardsNegativeInfinity(viewportRectangle.mins.x) - 4
viewportCellY = roundTowardsNegativeInfinity(viewportRectangle.mins.y) - 4
viewportCellWidth = roundTowardsPositiveInfinity(viewportRectangle.width) + 8
@ -303,7 +318,15 @@ class StarboundClient : Closeable {
if (viewportLighting.width != viewportCellWidth || viewportLighting.height != viewportCellHeight) {
viewportLighting = LightCalculator(viewportCells, viewportCellWidth, viewportCellHeight)
viewportLighting.multithreaded = true
}
if (oldWidth != viewportCellWidth && oldHeight != viewportCellHeight)
if (viewportCellWidth > 0 && viewportCellHeight > 0) {
viewportLightingMem = ByteBuffer.allocateDirect(viewportCellWidth.coerceAtMost(4096) * viewportCellHeight.coerceAtMost(4096) * 3)
} else {
viewportLightingMem = null
}
}
private val onDrawGUI = ArrayList<() -> Unit>()
@ -332,30 +355,45 @@ class StarboundClient : Closeable {
onPostDrawWorldOnce.add(lambda)
}
private var lastRender = JVMTimeSource.INSTANCE.seconds
fun renderFrame(): Boolean {
gl.ensureSameThread()
val diff = JVMTimeSource.INSTANCE.seconds - lastRender
if (diff < Starbound.SECONDS_IN_TICK)
LockSupport.parkNanos(((Starbound.SECONDS_IN_TICK - diff) * 1_000_000_000.0).toLong())
frameRenderTime = JVMTimeSource.INSTANCE.seconds - lastRender
frameRenderTimes[++frameRenderIndex % frameRenderTimes.size] = frameRenderTime
lastRender = JVMTimeSource.INSTANCE.seconds
if (GLFW.glfwWindowShouldClose(window)) {
close()
return false
}
val world = world
if (!isRenderingGame) {
gl.cleanup()
GLFW.glfwPollEvents()
LockSupport.parkNanos(1_000_000L)
if (world != null) {
if (Starbound.initialized)
world.think()
}
return true
}
val measure = JVMTimeSource.INSTANCE.seconds
val world = world
if (world != null) {
updateViewportParams()
val layers = LayeredRenderer()
if (frameRenderTime != 0.0 && Starbound.initialized)
world.think(frameRenderTime)
if (Starbound.initialized)
world.think()
gl.clearColor = RGBAColor.SLATE_GRAY
glClear(GL_COLOR_BUFFER_BIT or GL_DEPTH_BUFFER_BIT)
@ -375,51 +413,52 @@ class StarboundClient : Closeable {
onPostDrawWorldOnce.removeAt(i)
}
viewportLighting.clear()
world.addLayers(
layers = layers,
size = viewportRectangle)
layers.render(gl.matrixStack)
/*viewportLighting.clear()
val (x, y) = screenToWorld(mouseCoordinates)
//viewportLighting.addPointLight(x.roundToInt() - viewportCellX, y.roundToInt() - viewportCellY, 179f / 255f, 149f / 255f, 107f / 255f)
val ix = x.roundToInt()
val iy = y.roundToInt()
viewportLighting.addPointLight(ix - viewportCellX, iy - viewportCellY, 1f, 1f, 1f)
viewportLighting.addPointLight(ix - viewportCellX - 16, iy - viewportCellY - 4, 1f, 1f, 1f)
viewportLighting.addPointLight(ix - viewportCellX + 17, iy - viewportCellY - 20, 1f, 1f, 1f)
viewportLighting.addPointLight(ix - viewportCellX + 19, iy - viewportCellY - 35, 1f, 1f, 1f)
viewportLighting.addPointLight(ix - viewportCellX + 21, iy - viewportCellY - 39, 1f, 1f, 1f)
viewportLighting.addPointLight(ix - viewportCellX + 24, iy - viewportCellY - 41, 1f, 1f, 1f)
viewportLighting.addPointLight(ix - viewportCellX - 39, iy - viewportCellY - 35, 1f, 1f, 1f)
viewportLighting.addPointLight(ix - viewportCellX - 41, iy - viewportCellY - 39, 1f, 1f, 1f)
viewportLighting.addPointLight(ix - viewportCellX - 44, iy - viewportCellY - 41, 1f, 1f, 1f)
viewportLighting.multithreaded = true
viewportLighting.calculate()
gl.quadColor {
for (x in 0 until viewportLighting.width) {
for (y in 0 until viewportLighting.height) {
val cell = viewportLighting[x, y]
val viewportLightingMem = viewportLightingMem
if (cell.alpha > 0f) {
it.quad(
(viewportCellX + x).toFloat(),
(viewportCellY + y).toFloat(),
(viewportCellX + x + 1.0).toFloat(),
(viewportCellY + y + 1.0).toFloat(),
QuadTransformers.vec4(cell.red, cell.green, cell.blue, cell.alpha),
)
}
}
if (viewportLightingMem != null && !fullbright) {
viewportLightingMem.position(0)
BufferUtils.zeroBuffer(viewportLightingMem)
viewportLightingMem.position(0)
viewportLighting.calculate(viewportLightingMem, viewportLighting.width.coerceAtMost(4096), viewportLighting.height.coerceAtMost(4096))
viewportLightingMem.position(0)
viewportLightingTexture.upload(
GL_RGB,
viewportLighting.width.coerceAtMost(4096),
viewportLighting.height.coerceAtMost(4096),
GL_RGB,
GL_UNSIGNED_BYTE,
viewportLightingMem
)
viewportLightingTexture.textureMinFilter = GL_LINEAR
//viewportLightingTexture.generateMips()
gl.blendFunc = BlendFunc.MULTIPLY_BY_SRC
gl.quadTexture(viewportLightingTexture) {
it.quad(
(viewportCellX).toFloat(),
(viewportCellY).toFloat(),
(viewportCellX + viewportCellWidth).toFloat(),
(viewportCellY + viewportCellHeight).toFloat(),
QuadTransformers.uv()
)
}
}*/
gl.blendFunc = BlendFunc.MULTIPLY_WITH_ALPHA
}
world.physics.debugDraw()
@ -470,13 +509,10 @@ class StarboundClient : Closeable {
GLFW.glfwPollEvents()
input.think()
camera.think(JVMTimeSource.INSTANCE.seconds - measure)
camera.think(Starbound.SECONDS_IN_TICK)
gl.cleanup()
frameRenderTime = JVMTimeSource.INSTANCE.seconds - measure
frameRenderTimes[++frameRenderIndex % frameRenderTimes.size] = frameRenderTime
return true
}

View File

@ -527,6 +527,23 @@ class GLStateTracker(val client: StarboundClient) {
builder.draw(GL_TRIANGLES)
}
inline fun quadTexture(texture: GLTexture2D, lambda: (VertexBuilder) -> Unit) {
val builder = programs.textured2d.builder
builder.builder.begin()
lambda.invoke(builder.builder)
builder.upload()
activeTexture = 0
texture.bind()
programs.textured2d.use()
programs.textured2d.transform = matrixStack.last()
programs.textured2d.texture = 0
builder.draw(GL_TRIANGLES)
}
inline fun quadWireframe(value: AABB, color: RGBAColor = RGBAColor.WHITE, chain: (VertexBuilder) -> Unit = {}) {
quadWireframe(color) {
it.quad(value.mins.x.toFloat(), value.mins.y.toFloat(), value.maxs.x.toFloat(), value.maxs.y.toFloat())

View File

@ -68,6 +68,7 @@ class GLTexture2D(val state: GLStateTracker, val name: String = "<unknown>") {
var textureMinFilter by GLTexturePropertyTracker(GL_TEXTURE_MIN_FILTER, GL_NEAREST_MIPMAP_LINEAR)
var textureMagFilter by GLTexturePropertyTracker(GL_TEXTURE_MAG_FILTER, GL_LINEAR)
var maxLevel by GLTexturePropertyTracker(GL_TEXTURE_MAX_LEVEL, 1000)
var textureWrapS by GLTexturePropertyTracker(GL_TEXTURE_WRAP_S, GL_REPEAT)
var textureWrapT by GLTexturePropertyTracker(GL_TEXTURE_WRAP_T, GL_REPEAT)
@ -217,8 +218,8 @@ class GLTexture2D(val state: GLStateTracker, val name: String = "<unknown>") {
val bytes = STBImage.stbi_load_from_memory(buff, getwidth, getheight, getchannels, 0) ?: throw TextureLoadingException("Unable to load ${buff}. Is it a valid image?")
require(getwidth[0] > 0) { "Image $name has bad width of ${getwidth[0]}" }
require(getheight[0] > 0) { "Image $name has bad height of ${getheight[0]}" }
require(getwidth[0] > 0) { "Image '$name' has bad width of ${getwidth[0]}" }
require(getheight[0] > 0) { "Image '$name' has bad height of ${getheight[0]}" }
upload(memoryFormat, getwidth[0], getheight[0], bufferFormat, GL_UNSIGNED_BYTE, bytes)
STBImage.stbi_image_free(bytes)
@ -235,8 +236,8 @@ class GLTexture2D(val state: GLStateTracker, val name: String = "<unknown>") {
val bytes = STBImage.stbi_load_from_memory(buff, getwidth, getheight, getchannels, 0) ?: throw TextureLoadingException("Unable to load ${buff}. Is it a valid image?")
require(getwidth[0] > 0) { "Image $name has bad width of ${getwidth[0]}" }
require(getheight[0] > 0) { "Image $name has bad height of ${getheight[0]}" }
require(getwidth[0] > 0) { "Image '$name' has bad width of ${getwidth[0]}" }
require(getheight[0] > 0) { "Image '$name' has bad height of ${getheight[0]}" }
val bufferFormat = when (val numChannels = getchannels[0]) {
1 -> GL_R

View File

@ -193,6 +193,23 @@ class GLTexturedProgram(state: GLStateTracker) : GLShaderProgram(state, listOf(s
var transform by F4x4Uniform("transform")
var texture by IUniform("texture0")
val builder by lazy {
StreamVertexBuilder(state, GLAttributeList.Builder().push(GLType.VEC3F, GLType.VEC2F).build(), GeometryType.QUADS, 16384)
}
init {
transform = Matrix4f.identity()
}
}
class GLTextured2dProgram(state: GLStateTracker) : GLShaderProgram(state, listOf(state.internalVertex("shaders/vertex/2dtexture.glsl"), state.internalFragment("shaders/fragment/texture.glsl")), GLAttributeList.VERTEX_TEXTURE) {
var transform by F4x4Uniform("transform")
var texture by IUniform("texture0")
val builder by lazy {
StreamVertexBuilder(state, GLAttributeList.Builder().push(GLType.VEC2F, GLType.VEC2F).build(), GeometryType.QUADS, 16384)
}
init {
transform = Matrix4f.identity()
}
@ -217,6 +234,7 @@ class GLPrograms(val state: GLStateTracker) {
val liquid by lazy { GLLiquidProgram(state) }
val light by lazy { GLLightProgram(state) }
val textured by lazy { GLTexturedProgram(state) }
val textured2d by lazy { GLTextured2dProgram(state) }
val texturedColored by lazy { GLTexturedColoredProgram(state) }
val viewColorQuad by lazy { GLColorQuadProgram(state) }

View File

@ -1,7 +1,7 @@
package ru.dbotthepony.kstarbound.client.render
import ru.dbotthepony.kstarbound.PIXELS_IN_STARBOUND_UNITf
import ru.dbotthepony.kstarbound.client.ClientWorld
import ru.dbotthepony.kstarbound.client.world.ClientWorld
import ru.dbotthepony.kstarbound.defs.animation.AnimationDefinition
import ru.dbotthepony.kvector.arrays.Matrix4fStack
import ru.dbotthepony.kvector.vector.Vector3f

View File

@ -1,7 +1,7 @@
package ru.dbotthepony.kstarbound.client.render.entity
import it.unimi.dsi.fastutil.objects.Reference2ObjectOpenHashMap
import ru.dbotthepony.kstarbound.client.ClientChunk
import ru.dbotthepony.kstarbound.client.world.ClientChunk
import ru.dbotthepony.kstarbound.client.StarboundClient
import ru.dbotthepony.kstarbound.client.gl.GLStateTracker
import ru.dbotthepony.kstarbound.world.entities.Entity

View File

@ -1,7 +1,7 @@
package ru.dbotthepony.kstarbound.client.render.entity
import ru.dbotthepony.kstarbound.PIXELS_IN_STARBOUND_UNITf
import ru.dbotthepony.kstarbound.client.ClientChunk
import ru.dbotthepony.kstarbound.client.world.ClientChunk
import ru.dbotthepony.kstarbound.client.StarboundClient
import ru.dbotthepony.kstarbound.client.render.RebindableSprite
import ru.dbotthepony.kstarbound.world.entities.ItemEntity

View File

@ -1,4 +1,4 @@
package ru.dbotthepony.kstarbound.client
package ru.dbotthepony.kstarbound.client.world
import ru.dbotthepony.kstarbound.client.gl.GLStateTracker
import ru.dbotthepony.kstarbound.client.render.entity.EntityRenderer

View File

@ -1,11 +1,11 @@
package ru.dbotthepony.kstarbound.client
package ru.dbotthepony.kstarbound.client.world
import it.unimi.dsi.fastutil.longs.Long2ObjectFunction
import it.unimi.dsi.fastutil.longs.Long2ObjectOpenHashMap
import it.unimi.dsi.fastutil.longs.LongArraySet
import it.unimi.dsi.fastutil.objects.ObjectArrayList
import it.unimi.dsi.fastutil.objects.ReferenceArraySet
import ru.dbotthepony.kstarbound.client.gl.vertex.QuadTransformers
import ru.dbotthepony.kstarbound.client.gl.vertex.QuadVertexTransformer
import ru.dbotthepony.kstarbound.client.StarboundClient
import ru.dbotthepony.kstarbound.client.render.ConfiguredMesh
import ru.dbotthepony.kstarbound.client.render.LayeredRenderer
import ru.dbotthepony.kstarbound.client.render.Mesh
@ -15,6 +15,7 @@ import ru.dbotthepony.kstarbound.math.roundTowardsNegativeInfinity
import ru.dbotthepony.kstarbound.math.roundTowardsPositiveInfinity
import ru.dbotthepony.kstarbound.world.CHUNK_SIZE
import ru.dbotthepony.kstarbound.world.ChunkPos
import ru.dbotthepony.kstarbound.world.LightCalculator
import ru.dbotthepony.kstarbound.world.World
import ru.dbotthepony.kstarbound.world.api.ITileAccess
import ru.dbotthepony.kstarbound.world.api.OffsetCellAccess
@ -26,7 +27,6 @@ import ru.dbotthepony.kvector.util2d.AABB
import ru.dbotthepony.kvector.vector.RGBAColor
import ru.dbotthepony.kvector.vector.Vector2f
import ru.dbotthepony.kvector.vector.Vector2i
import kotlin.math.roundToInt
class ClientWorld(
val client: StarboundClient,
@ -264,34 +264,22 @@ class ClientWorld(
}
}
/*val pos = client.screenToWorld(client.mouseCoordinatesF).toDoubleVector()
layers.add(-999999) {
val lightsize = 16
val lightmap = floodLight(
Vector2i(pos.x.roundToInt(), pos.y.roundToInt()), lightsize
)
client.gl.quadColor {
for (column in 0 until lightmap.columns) {
for (row in 0 until lightmap.rows) {
if (lightmap[column, row] > 0) {
val color = lightmap[column, row] / 16f
it.quad(
pos.x.roundToInt() + column.toFloat() - lightsize,
pos.y.roundToInt() + row.toFloat() - lightsize,
pos.x.roundToInt() + column + 1f - lightsize,
pos.y.roundToInt() + row + 1f - lightsize,
QuadTransformers.vec4(color, color, color, color),
)
}
for (obj in objects) {
if (obj.pos.x in client.viewportCellX .. client.viewportCellX + client.viewportCellWidth && obj.pos.y in client.viewportCellY .. client.viewportCellY + client.viewportCellHeight) {
layers.add(-999999) {
client.gl.quadWireframe {
it.quad(
obj.pos.x.toFloat(),
obj.pos.y.toFloat(),
obj.pos.x + 1f,
obj.pos.y + 1f,
)
}
}
}
}*/
obj.addLights(client.viewportLighting, client.viewportCellX, client.viewportCellY)
}
}
/*layers.add(-999999) {
val rayFan = ArrayList<Vector2d>()
@ -318,110 +306,13 @@ class ClientWorld(
}*/
//rayLightCircleNaive(pos, 48.0, falloffByTravel = 1.0, falloffByTile = 3.0)
/*
val result = rayLightCircleNaive(pos, 48.0, falloffByTravel = 1.0, falloffByTile = 3.0)
val result2 = rayLightCircleNaive(pos + Vector2d(-8.0), 24.0, falloffByTravel = 1.0, falloffByTile = 3.0)
val frame = GLFrameBuffer(client.gl)
frame.attachTexture(client.viewportWidth, client.viewportHeight)
frame.bind()
client.gl.clearColor = Color.BLACK
glClear(GL_COLOR_BUFFER_BIT)
client.gl.blendFunc = BlendFunc.ADDITIVE*/
/*client.gl.quadColor {
for (row in 0 until result.rows) {
for (column in 0 until result.columns) {
if (result[column, row] > 0.05) {
val color = result[column, row].toFloat() * 1.5f
it.quad(
pos.x.roundToInt() - result.rows.toFloat() / 2f + row.toFloat(),
pos.y.roundToInt() - result.columns.toFloat() / 2f + column.toFloat(),
pos.x.roundToInt() - result.rows.toFloat() / 2f + row + 1f,
pos.y.roundToInt() - result.columns.toFloat() / 2f + column + 1f
) { a, b -> a.pushVec4f(color, color, color, 1f) }
}
}
}
}
client.gl.quadColor {
for (row in 0 until result2.rows) {
for (column in 0 until result2.columns) {
if (result2[column, row] > 0.05) {
val color = result2[column, row].toFloat() * 1.5f
it.quad(
pos.x.roundToInt() - 8f - result2.rows.toFloat() / 2f + row.toFloat(),
pos.y.roundToInt() - result2.columns.toFloat() / 2f + column.toFloat(),
pos.x.roundToInt() - 8f - result2.rows.toFloat() / 2f + row + 1f,
pos.y.roundToInt() - result2.columns.toFloat() / 2f + column + 1f
) { a, b -> a.pushVec4f(color, 0f, 0f, 1f) }
}
}
}
}*/
/*val lightTextureWidth = (client.viewportWidth / PIXELS_IN_STARBOUND_UNIT).roundToInt()
val lightTextureHeight = (client.viewportHeight / PIXELS_IN_STARBOUND_UNIT).roundToInt()
val textureBuffer = ByteBuffer.allocateDirect(lightTextureWidth * lightTextureHeight * 3)
textureBuffer.order(ByteOrder.LITTLE_ENDIAN)
for (x in 0 until result.columns.coerceAtMost(lightTextureWidth)) {
for (y in 0 until result.rows.coerceAtMost(lightTextureHeight)) {
textureBuffer.position(x * 3 + y * lightTextureWidth * 3)
if (result[x, y] > 0.05) {
val color = result[x, y].toFloat() * 1.5f
textureBuffer.put((color * 255).toInt().coerceAtMost(255).toByte())
textureBuffer.put((color * 255).toInt().coerceAtMost(255).toByte())
textureBuffer.put((color * 255).toInt().coerceAtMost(255).toByte())
}
}
}*/
//frame.unbind()
// val texture = GLTexture2D(client.gl)
// textureBuffer.position(0)
// texture.upload(GL_RGB, lightTextureWidth, lightTextureHeight, GL_RGB, GL_UNSIGNED_BYTE, textureBuffer)
// texture.textureMinFilter = GL_LINEAR
// texture.textureMagFilter = GL_LINEAR
// client.gl.blendFunc = BlendFunc.MULTIPLY_BY_SRC
// client.gl.activeTexture = 0
// client.gl.texture2D = texture
// client.gl.programs.viewTextureQuad.run()
// client.gl.blendFunc = old
//frame.close()
//texture.close()
/*for (renderer in determineRenderers) {
renderer.renderDebug()
}*/
}
override fun thinkInner(delta: Double) {
val copy = arrayOfNulls<Entity>(entities.size)
var i = 0
for (ent in entities) {
copy[i++] = ent
}
override fun thinkInner() {
val copy = ObjectArrayList(entities)
for (ent in copy) {
ent!!.think(delta)
ent.think()
}
}

View File

@ -0,0 +1,42 @@
package ru.dbotthepony.kstarbound.client.world.`object`
import com.google.common.collect.ImmutableMap
import com.google.gson.JsonObject
import ru.dbotthepony.kstarbound.RegistryObject
import ru.dbotthepony.kstarbound.Starbound
import ru.dbotthepony.kstarbound.client.world.ClientWorld
import ru.dbotthepony.kstarbound.defs.animation.AnimationDefinition
import ru.dbotthepony.kstarbound.defs.image.ImageReference
import ru.dbotthepony.kstarbound.defs.`object`.ObjectDefinition
import ru.dbotthepony.kstarbound.world.`object`.WorldObject
import ru.dbotthepony.kvector.vector.Vector2i
class ClientWorldObject(world: ClientWorld, prototype: RegistryObject<ObjectDefinition>, pos: Vector2i) : WorldObject(world, prototype, pos) {
val clientWorld get() = world as ClientWorld
var animationParts: ImmutableMap<String, ImageReference> by Property()
var imagePosition: Vector2i by Property(Vector2i.ZERO)
var animationPosition: Vector2i by Property(Vector2i.ZERO)
val animation: AnimationDefinition? by LazyData(listOf("animationCustom", "animation")) {
val custom = dataValue("animationCustom")
if (custom !is JsonObject) {
prototype.value.animation?.value
} else if (prototype.value.animation != null) {
animAdapter.fromJsonTree(merge(prototype.value.animation.json!!, custom))
} else {
null
}
}
companion object {
private val animAdapter by lazy {
Starbound.gson.getAdapter(AnimationDefinition::class.java)
}
fun create(world: ClientWorld, data: JsonObject): ClientWorldObject {
return create(world, data, ::ClientWorldObject)
}
}
}

View File

@ -6,39 +6,31 @@ import com.google.gson.TypeAdapterFactory
import com.google.gson.reflect.TypeToken
import com.google.gson.stream.JsonReader
import com.google.gson.stream.JsonWriter
import ru.dbotthepony.kstarbound.util.PathStack
import ru.dbotthepony.kstarbound.Starbound
/**
* Путь как указан в JSON + Абсолютный путь
*
* @see AssetPath
*/
class AssetPathFactory(val remapper: PathStack) : TypeAdapterFactory {
override fun <T : Any?> create(gson: Gson, type: TypeToken<T>): TypeAdapter<T>? {
if (type.rawType == AssetPath::class.java) {
return object : TypeAdapter<AssetPath>() {
private val strings = gson.getAdapter(String::class.java)
data class AssetPath(val path: String, val fullPath: String) {
companion object : TypeAdapterFactory {
override fun <T : Any?> create(gson: Gson, type: TypeToken<T>): TypeAdapter<T>? {
if (type.rawType == AssetPath::class.java) {
return object : TypeAdapter<AssetPath>() {
private val strings = gson.getAdapter(String::class.java)
override fun write(out: JsonWriter, value: AssetPath?) {
if (value == null)
out.nullValue()
else
out.value(value.fullPath)
}
override fun write(out: JsonWriter, value: AssetPath?) {
if (value == null)
out.nullValue()
else
out.value(value.fullPath)
}
override fun read(`in`: JsonReader): AssetPath? {
val path = strings.read(`in`) ?: return null
if (path == "") return null
return AssetPath(path, remapper.remap(path))
}
} as TypeAdapter<T>
override fun read(`in`: JsonReader): AssetPath? {
val path = strings.read(`in`) ?: return null
if (path == "") return null
return AssetPath(path, Starbound.pathStack.remap(path))
}
} as TypeAdapter<T>
}
return null
}
return null
}
}
/**
* Путь как указан в JSON + Абсолютный путь
*/
data class AssetPath(val path: String, val fullPath: String)

View File

@ -1,88 +1,92 @@
package ru.dbotthepony.kstarbound.defs
import com.google.gson.Gson
import com.google.gson.JsonElement
import com.google.gson.TypeAdapter
import com.google.gson.TypeAdapterFactory
import com.google.gson.internal.bind.JsonTreeReader
import com.google.gson.reflect.TypeToken
import com.google.gson.stream.JsonReader
import com.google.gson.stream.JsonToken
import com.google.gson.stream.JsonWriter
import it.unimi.dsi.fastutil.objects.ObjectOpenHashSet
import org.apache.logging.log4j.LogManager
import ru.dbotthepony.kstarbound.Starbound
import ru.dbotthepony.kstarbound.api.ISBFileLocator
import ru.dbotthepony.kstarbound.util.PathStack
import java.lang.reflect.ParameterizedType
import java.util.*
import java.util.concurrent.ConcurrentHashMap
/**
* Данный [AssetReferenceFactory] реализует возможности чтения данных по "ссылке" на файл.
*
* Созданный [TypeAdapter] имеет встроенный кеш.
*/
class AssetReferenceFactory(val remapper: PathStack, val locator: ISBFileLocator) : TypeAdapterFactory {
override fun <T : Any?> create(gson: Gson, type: TypeToken<T>): TypeAdapter<T>? {
if (type.rawType == AssetReference::class.java) {
val param = type.type as? ParameterizedType ?: return null
data class AssetReference<V>(val path: String?, val fullPath: String?, val value: V?, val json: JsonElement?) {
companion object : TypeAdapterFactory {
override fun <T : Any?> create(gson: Gson, type: TypeToken<T>): TypeAdapter<T>? {
if (type.rawType == AssetReference::class.java) {
val param = type.type as? ParameterizedType ?: return null
return object : TypeAdapter<AssetReference<Any>>() {
private val cache = ConcurrentHashMap<String, Any>()
private val adapter = gson.getAdapter(TypeToken.get(param.actualTypeArguments[0])) as TypeAdapter<Any>
private val strings = gson.getAdapter(String::class.java)
private val missing = Collections.synchronizedSet(ObjectOpenHashSet<String>())
return object : TypeAdapter<AssetReference<Any>>() {
private val cache = ConcurrentHashMap<String, Pair<Any, JsonElement>>()
private val adapter = gson.getAdapter(TypeToken.get(param.actualTypeArguments[0])) as TypeAdapter<Any>
private val strings = gson.getAdapter(String::class.java)
private val jsons = gson.getAdapter(JsonElement::class.java)
private val missing = Collections.synchronizedSet(ObjectOpenHashSet<String>())
private val logger = LogManager.getLogger()
override fun write(out: JsonWriter, value: AssetReference<Any>?) {
if (value == null)
out.nullValue()
else
out.value(value.fullPath)
}
override fun write(out: JsonWriter, value: AssetReference<Any>?) {
if (value == null)
out.nullValue()
else
out.value(value.fullPath)
}
override fun read(`in`: JsonReader): AssetReference<Any>? {
if (`in`.peek() == JsonToken.NULL) {
return null
} else if (`in`.peek() == JsonToken.STRING) {
val path = strings.read(`in`)!!
val fullPath = remapper.remap(path)
val get = cache[fullPath]
if (get != null)
return AssetReference(path, fullPath, get)
if (fullPath in missing)
override fun read(`in`: JsonReader): AssetReference<Any>? {
if (`in`.peek() == JsonToken.NULL) {
return null
} else if (`in`.peek() == JsonToken.STRING) {
val path = strings.read(`in`)!!
val fullPath = Starbound.pathStack.remap(path)
val get = cache[fullPath]
val file = locator.locate(fullPath)
if (get != null)
return AssetReference(path, fullPath, get.first, get.second)
if (!file.exists) {
missing.add(fullPath)
return AssetReference(path, fullPath, null)
}
if (fullPath in missing)
return null
val reader = file.reader()
val file = Starbound.locate(fullPath)
val value = remapper(fullPath) {
adapter.read(JsonReader(reader).also {
if (!file.exists) {
logger.error("File does not exist: ${file.computeFullPath()}")
missing.add(fullPath)
return AssetReference(path, fullPath, null, null)
}
val reader = file.reader()
val json = jsons.read(JsonReader(reader).also {
it.isLenient = true
})
}
if (value == null) {
missing.add(fullPath)
return AssetReference(path, fullPath, null)
}
val value = Starbound.pathStack(fullPath) {
adapter.read(JsonTreeReader(json))
}
cache[fullPath] = value
return AssetReference(path, fullPath, value)
} else {
val value = adapter.read(`in`) ?: return null
return AssetReference(null, null, value)
if (value == null) {
missing.add(fullPath)
return AssetReference(path, fullPath, null, json)
}
cache[fullPath] = value to json
return AssetReference(path, fullPath, value, json)
} else {
val json = jsons.read(`in`)!!
val value = adapter.read(JsonTreeReader(json)) ?: return null
return AssetReference(null, null, value, json)
}
}
}
} as TypeAdapter<T>
}
} as TypeAdapter<T>
}
return null
return null
}
}
}
data class AssetReference<V>(val path: String?, val fullPath: String?, val value: V?)

View File

@ -1,53 +0,0 @@
package ru.dbotthepony.kstarbound.defs
import com.google.gson.JsonObject
import com.google.gson.internal.bind.JsonTreeReader
import ru.dbotthepony.kstarbound.RegistryObject
import ru.dbotthepony.kstarbound.mergeJsonElements
abstract class DynamicDefinition<Def : Any>(val original: RegistryObject<Def>) {
@Volatile
private var isDirty = false
private var dynamicData = JsonObject()
fun markDirty() {
isDirty = true
}
var def: Def = original.value
get() {
if (isDirty) {
synchronized(this) {
if (!isDirty) return field
val copy = original.copy()
mergeJsonElements(copy, dynamicData)
original.pathStack(original.file.computeDirectory()) {
field = original.gson.fromJson(JsonTreeReader(copy), field::class.java)
}
isDirty = false
}
}
return field
}
private set
fun setJson(saveInput: JsonObject) {
if (saveInput == dynamicData) return
sanitize(saveInput)
if (saveInput == dynamicData) return
isDirty = true
dynamicData = saveInput
}
fun toJsonTree(): JsonObject {
val tree = original.gson.toJsonTree(def) as JsonObject
sanitize(tree)
return tree
}
abstract fun sanitize(saveInput: JsonObject)
}

View File

@ -0,0 +1,232 @@
package ru.dbotthepony.kstarbound.defs
import com.google.gson.JsonElement
import com.google.gson.JsonObject
import com.google.gson.TypeAdapter
import com.google.gson.reflect.TypeToken
import it.unimi.dsi.fastutil.objects.Object2ObjectOpenHashMap
import ru.dbotthepony.kstarbound.Starbound
import ru.dbotthepony.kstarbound.util.Either
import ru.dbotthepony.kstarbound.util.set
import java.util.function.Consumer
import java.util.function.Function
import java.util.function.Supplier
import kotlin.properties.ReadWriteProperty
import kotlin.reflect.KProperty
import kotlin.reflect.javaType
/**
* Base class for instances which can be mutated by altering underlying JSON
*/
abstract class JsonDriven(val path: String) {
private val delegates = ArrayList<Property<*>>()
private val delegatesMap = Object2ObjectOpenHashMap<String, ArrayList<Property<*>>>()
private val lazies = ArrayList<LazyData<*>>()
private val namedLazies = Object2ObjectOpenHashMap<String, ArrayList<LazyData<*>>>()
protected val properties = JsonObject()
protected abstract fun defs(): Collection<JsonObject>
protected open fun invalidate() {
delegates.forEach { it.invalidate() }
lazies.forEach { it.invalidate() }
}
protected open fun invalidate(name: String) {
delegatesMap[name]?.forEach { it.invalidate() }
namedLazies[name]?.forEach { it.invalidate() }
lazies.forEach { it.invalidate() }
}
protected inner class LazyData<T>(names: Iterable<String>, private val initializer: () -> T) : Lazy<T> {
constructor(initializer: () -> T) : this(listOf(), initializer)
init {
for (name in names) {
namedLazies.computeIfAbsent(name, Function { ArrayList() }).add(this)
}
}
private var _value: Any? = mark
override val value: T get() {
var value = _value
if (value !== mark) {
return value as T
}
value = initializer.invoke()
_value = value
return value
}
override fun isInitialized(): Boolean {
return _value !== mark
}
fun invalidate() {
_value = mark
}
}
protected inner class Property<T>(
name: String? = null,
val default: Either<Supplier<T>, JsonElement>? = null,
private var adapter: TypeAdapter<T>? = null,
) : Supplier<T>, Consumer<T>, ReadWriteProperty<Any?, T> {
constructor(name: String, default: T, adapter: TypeAdapter<T>? = null) : this(name, Either.left(Supplier { default }), adapter)
constructor(name: String, default: Supplier<T>, adapter: TypeAdapter<T>? = null) : this(name, Either.left(default), adapter)
constructor(name: String, default: JsonElement, adapter: TypeAdapter<T>? = null) : this(name, Either.right(default), adapter)
constructor(default: T, adapter: TypeAdapter<T>? = null) : this(null, Either.left(Supplier { default }), adapter)
constructor(default: Supplier<T>, adapter: TypeAdapter<T>? = null) : this(null, Either.left(default), adapter)
constructor(default: JsonElement, adapter: TypeAdapter<T>? = null) : this(null, Either.right(default), adapter)
var name: String? = name
private set(value) {
if (field != null)
throw IllegalStateException()
field = value
delegatesMap.computeIfAbsent(value, Function { ArrayList() }).add(this)
}
init {
delegates.add(this)
if (name != null)
delegatesMap.computeIfAbsent(name, Function { ArrayList() }).add(this)
}
private var value: Supplier<T> = never as Supplier<T>
private fun compute(): T {
val value = dataValue(checkNotNull(name))
if (value == null) {
if (default == null) {
throw NoSuchElementException("No json value present at '$name', and no default value was provided")
} else if (default.isLeft) {
return default.left().get()
} else {
Starbound.pathStack.block(path) {
return adapter!!.fromJsonTree(default.right())
}
}
} else {
Starbound.pathStack.block(path) {
return adapter!!.fromJsonTree(value)
}
}
}
fun invalidate() {
value = Supplier {
val new = compute()
this.value = Supplier { new }
new
}
}
init {
invalidate()
}
override fun get(): T {
return value.get()
}
override fun accept(t: T) {
Starbound.pathStack.block(path) {
properties[checkNotNull(name)] = adapter!!.toJsonTree(t)
}
value = Supplier { t }
}
@OptIn(ExperimentalStdlibApi::class)
override fun getValue(thisRef: Any?, property: KProperty<*>): T {
if (adapter == null) {
adapter = Starbound.gson.getAdapter(TypeToken.get(property.returnType.javaType)) as TypeAdapter<T>
}
if (name == null) {
name = property.name
}
return value.get()
}
@OptIn(ExperimentalStdlibApi::class)
override fun setValue(thisRef: Any?, property: KProperty<*>, value: T) {
if (adapter == null) {
adapter = Starbound.gson.getAdapter(TypeToken.get(property.returnType.javaType)) as TypeAdapter<T>
}
if (name == null) {
name = property.name
}
return accept(value)
}
}
protected fun dataValue(name: String, alwaysCopy: Boolean = false): JsonElement? {
val defs = defs()
var value: JsonElement?
if (defs.isEmpty()) {
value = properties[name]?.let { if (alwaysCopy) it.deepCopy() else it }
} else {
val itr = defs.iterator()
value = merge(properties[name], itr.next()[name])
while ((value == null || value is JsonObject) && itr.hasNext()) {
value = mergeNoCopy(value, itr.next()[name])
}
}
return value
}
protected fun hasDataValue(name: String): Boolean {
if (properties[name] != null) return true
return defs().any { it[name] != null }
}
companion object {
private val mark = Any()
private val never = Supplier { throw NoSuchElementException() }
@JvmStatic
protected fun mergeNoCopy(a: JsonObject, b: JsonObject): JsonObject {
for ((k, v) in b.entrySet()) {
val existing = a[k]
if (existing == null) {
a[k] = v.deepCopy()
} else {
a[k] = mergeNoCopy(existing, v)!!
}
}
return a
}
@JvmStatic
protected fun mergeNoCopy(a: JsonElement?, b: JsonElement?): JsonElement? {
if (a is JsonObject && b is JsonObject) return mergeNoCopy(a, b)
return a
}
@JvmStatic
protected fun merge(a: JsonElement?, b: JsonElement?): JsonElement? {
if (a == null && b == null) return null
if (a == null) return b!!.deepCopy()
if (b == null) return a.deepCopy()
return mergeNoCopy(a.deepCopy(), b)
}
}
}

View File

@ -5,6 +5,7 @@ import com.google.common.collect.ImmutableMap
import ru.dbotthepony.kstarbound.defs.image.ImageReference
import ru.dbotthepony.kstarbound.defs.particle.ParticleEmitter
import ru.dbotthepony.kstarbound.io.json.builder.JsonFactory
import ru.dbotthepony.kstarbound.util.Either
import ru.dbotthepony.kvector.vector.Vector2d
@JsonFactory
@ -17,10 +18,15 @@ data class AnimationDefinition(
val animatedParts: AnimatedParts? = null,
val sounds: ImmutableMap<String, ImmutableList<String>> = ImmutableMap.of(),
val sounds: ImmutableMap<String, Either<ImmutableList<String>, CustomSound>> = ImmutableMap.of(),
val transformationGroups: ImmutableMap<String, TransformConfig> = ImmutableMap.of(),
val particleEmitters: ImmutableMap<String, ParticleEmitter> = ImmutableMap.of(),
) {
@JsonFactory
data class CustomSound(
val pool: ImmutableList<String>,
)
@JsonFactory
data class TransformConfig(
val interpolated: Boolean? = null

View File

@ -1,15 +0,0 @@
package ru.dbotthepony.kstarbound.defs.item
import com.google.gson.JsonObject
import ru.dbotthepony.kstarbound.RegistryObject
import ru.dbotthepony.kstarbound.defs.DynamicDefinition
import ru.dbotthepony.kstarbound.defs.item.api.IItemDefinition
class DynamicItemDefinition(def: RegistryObject<IItemDefinition>) : DynamicDefinition<IItemDefinition>(def) {
override fun sanitize(saveInput: JsonObject) {
saveInput.remove("itemName")
saveInput.remove("pickupQuestTemplates")
saveInput.remove("scripts")
saveInput.remove("scriptDelta")
}
}

View File

@ -8,7 +8,7 @@ import ru.dbotthepony.kstarbound.defs.item.api.IItemDefinition
import ru.dbotthepony.kstarbound.io.json.builder.JsonFactory
import ru.dbotthepony.kstarbound.io.json.builder.JsonFlat
@JsonFactory
@JsonFactory(logMisses = false)
data class ArmorItemDefinition(
@JsonFlat
val parent: IItemDefinition,
@ -24,25 +24,25 @@ data class ArmorItemDefinition(
override val leveledStatusEffects: ImmutableList<LeveledStatusEffect> = ImmutableList.of(),
) : IArmorItemDefinition, IItemDefinition by parent, IScriptable by script
@JsonFactory
@JsonFactory(logMisses = false)
class HeadArmorItemDefinition(@JsonFlat val parent: ArmorItemDefinition) : IArmorItemDefinition by parent {
override val itemType: String
get() = "headarmor"
}
@JsonFactory
@JsonFactory(logMisses = false)
class ChestArmorItemDefinition(@JsonFlat val parent: ArmorItemDefinition) : IArmorItemDefinition by parent {
override val itemType: String
get() = "chestarmor"
}
@JsonFactory
@JsonFactory(logMisses = false)
class LegsArmorItemDefinition(@JsonFlat val parent: ArmorItemDefinition) : IArmorItemDefinition by parent {
override val itemType: String
get() = "legsarmor"
}
@JsonFactory
@JsonFactory(logMisses = false)
class BackArmorItemDefinition(@JsonFlat val parent: ArmorItemDefinition) : IArmorItemDefinition by parent {
override val itemType: String
get() = "backarmor"

View File

@ -7,7 +7,7 @@ import ru.dbotthepony.kstarbound.io.json.builder.JsonFlat
import ru.dbotthepony.kvector.vector.RGBAColor
import ru.dbotthepony.kvector.vector.Vector2d
@JsonFactory
@JsonFactory(logMisses = false)
class FlashlightDefinition(
@JsonFlat
val parent: IItemDefinition,

View File

@ -7,7 +7,7 @@ import ru.dbotthepony.kstarbound.io.json.builder.JsonFactory
import ru.dbotthepony.kstarbound.io.json.builder.JsonFlat
import ru.dbotthepony.kvector.vector.Vector2d
@JsonFactory
@JsonFactory(logMisses = false)
class HarvestingToolPrototype(
@JsonFlat
val parent: IItemDefinition,

View File

@ -11,7 +11,7 @@ import ru.dbotthepony.kstarbound.defs.item.ItemRarity
import ru.dbotthepony.kstarbound.io.json.builder.JsonFactory
import ru.dbotthepony.kstarbound.io.json.builder.JsonFlat
@JsonFactory
@JsonFactory(logMisses = false)
data class ItemDefinition(
@JsonFlat
val descriptionData: ThingDescription,

View File

@ -0,0 +1,36 @@
package ru.dbotthepony.kstarbound.defs.`object`
import com.google.common.collect.ImmutableList
import com.google.common.collect.ImmutableSet
import ru.dbotthepony.kstarbound.defs.AssetPath
import ru.dbotthepony.kstarbound.defs.AssetReference
import ru.dbotthepony.kstarbound.defs.ItemReference
import ru.dbotthepony.kstarbound.defs.RegistryReference
import ru.dbotthepony.kstarbound.defs.animation.AnimationDefinition
import ru.dbotthepony.kstarbound.defs.item.TreasurePoolDefinition
import ru.dbotthepony.kstarbound.io.json.builder.JsonFactory
/**
* Concrete (final) values of in-world object
*/
@JsonFactory(logMisses = false)
data class ObjectDefinition(
val objectName: String,
val objectType: ObjectType = ObjectType.OBJECT,
val race: String = "generic",
val category: String = "other",
val colonyTags: ImmutableSet<String> = ImmutableSet.of(),
val scripts: ImmutableSet<AssetPath> = ImmutableSet.of(),
val animationScripts: ImmutableSet<AssetPath> = ImmutableSet.of(),
val hasObjectItem: Boolean = true,
val scannable: Boolean = true,
val printable: Boolean = true,
val retainObjectParametersInItem: Boolean = false,
val breakDropPool: RegistryReference<TreasurePoolDefinition>? = null,
val smashDropOptions: ImmutableList<ImmutableList<ItemReference>> = ImmutableList.of(),
val animation: AssetReference<AnimationDefinition>? = null,
)

View File

@ -0,0 +1,10 @@
package ru.dbotthepony.kstarbound.defs.`object`
enum class ObjectType {
OBJECT,
LOUNGEABLE,
CONTAINER,
FARMABLE,
TELEPORTER,
PHYSICS;
}

View File

@ -144,14 +144,16 @@ fun RandomAccessFile.readString(length: Int): String {
return bytes.toString(Charsets.UTF_8)
}
fun InputStream.readString(length: Int): String {
fun InputStream.readString(length: Int, allowSmaller: Boolean = false): String {
require(length >= 0) { "Invalid length $length" }
val bytes = ByteArray(length)
try {
val read = read(bytes)
require(read == bytes.size) { "Read $read, expected ${bytes.size}" }
val read = readNBytes(bytes, 0, length)
if (!allowSmaller)
require(read == bytes.size) { "Read $read bytes, expected ${bytes.size}" }
} catch(err: Throwable) {
throw IOException("Tried to read string with length of $length", err)
}

View File

@ -9,10 +9,12 @@ import com.google.gson.JsonPrimitive
import com.google.gson.JsonSyntaxException
import com.google.gson.stream.JsonReader
import com.google.gson.stream.JsonToken
import ru.dbotthepony.kstarbound.Starbound
import ru.dbotthepony.kstarbound.io.readString
import ru.dbotthepony.kstarbound.io.readVarInt
import ru.dbotthepony.kstarbound.io.readVarLong
import java.io.DataInputStream
import java.io.DataOutputStream
import java.io.EOFException
import java.io.InputStream
import java.io.Reader
@ -354,6 +356,10 @@ class BinaryJsonReader(private val stream: DataInputStream) : JsonReader(unreada
}
}
fun readString(reader: DataInputStream): String {
return Starbound.strings.intern(reader.readString(reader.readVarInt()))
}
/**
* Позволяет читать двоичный JSON прямиком в [JsonElement]
*/
@ -361,9 +367,9 @@ class BinaryJsonReader(private val stream: DataInputStream) : JsonReader(unreada
return when (val id = reader.read()) {
TYPE_NULL -> JsonNull.INSTANCE
TYPE_DOUBLE -> JsonPrimitive(reader.readDouble())
TYPE_BOOLEAN -> JsonPrimitive(reader.readBoolean())
TYPE_BOOLEAN -> InternedJsonElementAdapter.of(reader.readBoolean())
TYPE_INT -> JsonPrimitive(fixSignedInt(reader.readVarLong()))
TYPE_STRING -> JsonPrimitive(reader.readString(reader.readVarInt()))
TYPE_STRING -> JsonPrimitive(readString(reader))
TYPE_ARRAY -> readArray(reader)
TYPE_OBJECT -> readObject(reader)
else -> throw JsonParseException("Unknown element type $id")
@ -382,7 +388,7 @@ class BinaryJsonReader(private val stream: DataInputStream) : JsonReader(unreada
for (i in 0 until values) {
val key = try {
reader.readString(reader.readVarInt())
readString(reader)
} catch(err: Throwable) {
throw JsonSyntaxException("Reading json object at $i", err)
}

View File

@ -0,0 +1,11 @@
package ru.dbotthepony.kstarbound.io.json
import com.google.gson.JsonElement
import java.io.DataInputStream
data class VersionedJson(val identifier: String, val version: Int?, val content: JsonElement) {
constructor(data: DataInputStream) : this(
BinaryJsonReader.readString(data),
data.read().let { if (it > 0) data.readInt() else null },
BinaryJsonReader.readElement(data))
}

View File

@ -68,6 +68,8 @@ annotation class JsonFactory(
* @see FactoryAdapter.Builder.inputAsMap
*/
val asList: Boolean = false,
val logMisses: Boolean = true,
)
/**

View File

@ -45,7 +45,8 @@ class FactoryAdapter<T : Any> private constructor(
aliases: Map<String, String>,
val asJsonArray: Boolean,
val storesJson: Boolean,
val stringInterner: Interner<String>
val stringInterner: Interner<String>,
val logMisses: Boolean,
) : TypeAdapter<T>() {
private val name2index = Object2IntArrayMap<String>()
private val loggedMisses = ObjectArraySet<String>()
@ -224,7 +225,7 @@ class FactoryAdapter<T : Any> private constructor(
if (!iterator.hasNext()) {
val name = fieldId.toString()
if (!storesJson && loggedMisses.add(name)) {
if (!storesJson && logMisses && loggedMisses.add(name)) {
LOGGER.warn("${clazz.qualifiedName} has no property for storing $name")
}
@ -269,7 +270,7 @@ class FactoryAdapter<T : Any> private constructor(
val fieldId = name2index.getInt(name)
if (fieldId == -1) {
if (!storesJson && loggedMisses.add(name)) {
if (!storesJson && logMisses && loggedMisses.add(name)) {
LOGGER.warn("${clazz.qualifiedName} has no property for storing $name")
}
@ -382,6 +383,7 @@ class FactoryAdapter<T : Any> private constructor(
private val types = ArrayList<IResolvableProperty<T, *>>()
private val aliases = Object2ObjectArrayMap<String, String>()
var stringInterner: Interner<String> = Interner { it }
var logMisses = true
init {
for (field in fields) {
@ -409,7 +411,8 @@ class FactoryAdapter<T : Any> private constructor(
asJsonArray = asList,
storesJson = storesJson,
stringInterner = stringInterner,
aliases = aliases
aliases = aliases,
logMisses = logMisses
)
}
@ -484,6 +487,7 @@ class FactoryAdapter<T : Any> private constructor(
builder.storesJson(config.storesJson)
builder.stringInterner = stringInterner
builder.logMisses = config.logMisses
if (properties.isEmpty()) {
throw IllegalArgumentException("${kclass.qualifiedName} has no valid members")

View File

@ -1,35 +0,0 @@
package ru.dbotthepony.kstarbound.util
class Timer(val period: Double, val executionTimes: Int, val func: (Timer) -> Unit) {
private var counter = 0.0
var cycles = 0
private set
var destroyed: Boolean = false
private set
fun think(delta: Double) {
if (destroyed) {
throw IllegalStateException("This timer is destroyed")
}
counter += delta
if (counter >= period) {
counter -= period
func.invoke(this)
cycles++
}
if (!destroyed && executionTimes > 0 && cycles >= executionTimes) {
destroy()
}
}
fun destroy() {
if (destroyed) {
throw IllegalStateException("Already destroyed")
}
destroyed = true
}
}

View File

@ -0,0 +1,6 @@
package ru.dbotthepony.kstarbound.world
enum class Direction {
LEFT,
RIGHT;
}

View File

@ -1,11 +1,13 @@
package ru.dbotthepony.kstarbound.world
import it.unimi.dsi.fastutil.ints.IntArraySet
import org.lwjgl.BufferUtils
import ru.dbotthepony.kstarbound.world.api.ICellAccess
import ru.dbotthepony.kvector.api.IStruct4f
import ru.dbotthepony.kvector.arrays.Object2DArray
import ru.dbotthepony.kvector.util.linearInterpolation
import ru.dbotthepony.kvector.vector.RGBAColor
import java.nio.ByteBuffer
import java.util.concurrent.ConcurrentLinkedQueue
import java.util.concurrent.locks.LockSupport
import kotlin.math.roundToInt
@ -315,7 +317,14 @@ class LightCalculator(val parent: ICellAccess, val width: Int, val height: Int)
override val alpha: Float = 0f
}
private class PointLight(val x: Int, val y: Int, var red: Float, var green: Float, var blue: Float) {
private object Fullbright : ICell {
override val red: Float = 1f
override val green: Float = 1f
override val blue: Float = 1f
override val alpha: Float = 1f
}
private class PointLight(val x: Int, val y: Int, val red: Float, val green: Float, val blue: Float) {
var assignedTo: TaskCluster? = null
fun error(to: TaskCluster): Double {
@ -332,19 +341,31 @@ class LightCalculator(val parent: ICellAccess, val width: Int, val height: Int)
pointLights.add(PointLight(x, y, red, green, blue))
}
fun addPointLight(x: Int, y: Int, color: RGBAColor) {
val (red, green, blue) = color
addPointLight(x, y, red, green, blue)
}
operator fun get(x: Int, y: Int): ICell {
if (fullbright) return Fullbright
if (!mainGrid.isInitialized()) return Empty
return mainGrid.value[x, y] ?: Empty
}
var multithreaded = false
var fullbright = false
fun calculate() {
if (pointLights.isEmpty()) return
fun calculate(targetMem: ByteBuffer? = null, targetWidth: Int = 0, targetHeight: Int = 0) {
if (pointLights.isEmpty() || fullbright) return
val initialPos = targetMem?.position() ?: 0
require(targetWidth >= 0) { "Invalid target width" }
require(targetHeight >= 0) { "Invalid target height" }
if (targetMem != null && (targetWidth == 0 || targetHeight == 0)) return
// perform multithreaded calculation only when it makes sense
if (multithreaded && pointLights.size > 1) {
val mainGrid = mainGrid.value
val thread = Thread.currentThread()
// calculate k-means clusters of point lights
@ -425,7 +446,7 @@ class LightCalculator(val parent: ICellAccess, val width: Int, val height: Int)
}
}
for ((i, cluster) in clusters.withIndex()) {
/*for ((i, cluster) in clusters.withIndex()) {
val (r, g, b) = clusterColors[i]
for (light in cluster.lights) {
@ -433,7 +454,7 @@ class LightCalculator(val parent: ICellAccess, val width: Int, val height: Int)
light.green = g
light.blue = b
}
}
}*/
tasks.addAll(clusters)
wakeup()
@ -443,19 +464,46 @@ class LightCalculator(val parent: ICellAccess, val width: Int, val height: Int)
val grid = it.grid
if (grid != null) {
for (x in grid.minX - 1 .. grid.maxX) {
for (y in grid.minY - 1 .. grid.maxY) {
val a = grid.get0(x, y) ?: continue
var b = mainGrid[x, y]
if (targetMem != null) {
for (x in grid.minX - 1 .. grid.maxX) {
for (y in grid.minY - 1 .. grid.maxY) {
if (x !in 0 until targetWidth || y !in 0 until targetHeight) continue
val a = grid.get0(x, y) ?: continue
val pos = initialPos + (targetWidth * y + x) * 3
targetMem.position(pos)
if (b == null) {
b = Cell()
mainGrid[x, y] = b
var bRed = (targetMem.get().toInt() and 0xFF) / 255f
var bGreen = (targetMem.get().toInt() and 0xFF) / 255f
var bBlue = (targetMem.get().toInt() and 0xFF) / 255f
bRed = a.red.coerceAtLeast(bRed)
bGreen = a.green.coerceAtLeast(bGreen)
bBlue = a.blue.coerceAtLeast(bBlue)
targetMem.position(pos)
targetMem.put((bRed * 255f).coerceIn(0f, 255f).roundToInt().toByte())
targetMem.put((bGreen * 255f).coerceIn(0f, 255f).roundToInt().toByte())
targetMem.put((bBlue * 255f).coerceIn(0f, 255f).roundToInt().toByte())
}
}
} else {
val mainGrid = mainGrid.value
b.red = a.red.coerceAtLeast(b.red)
b.green = a.green.coerceAtLeast(b.green)
b.blue = a.blue.coerceAtLeast(b.blue)
for (x in grid.minX - 1 .. grid.maxX) {
for (y in grid.minY - 1 .. grid.maxY) {
val a = grid.get0(x, y) ?: continue
var b = mainGrid[x, y]
if (b == null) {
b = Cell()
mainGrid[x, y] = b
}
b.red = a.red.coerceAtLeast(b.red)
b.green = a.green.coerceAtLeast(b.green)
b.blue = a.blue.coerceAtLeast(b.blue)
}
}
}
}
@ -467,7 +515,6 @@ class LightCalculator(val parent: ICellAccess, val width: Int, val height: Int)
}
} else {
val grid = Grid()
val mainGrid = mainGrid.value
for (light in pointLights) {
val cell = grid.safeGet(light.x, light.y) ?: continue
@ -488,15 +535,32 @@ class LightCalculator(val parent: ICellAccess, val width: Int, val height: Int)
grid.calculateSpread()
for (x in grid.minX - 1 .. grid.maxX) {
for (y in grid.minY - 1 .. grid.maxY) {
val a = grid.get0(x, y) ?: continue
if (targetMem != null) {
for (x in grid.minX - 1 .. grid.maxX) {
for (y in grid.minY - 1 .. grid.maxY) {
if (x !in 0 until targetWidth || y !in 0 until targetHeight) continue
val a = grid.get0(x, y) ?: continue
val (bRed, bGreen, bBlue) = a
mainGrid[x, y] = Cell(
a.red,
a.green,
a.blue,
)
targetMem.position(initialPos + (targetWidth * y + x) * 3)
targetMem.put((bRed * 255f).coerceIn(0f, 255f).roundToInt().toByte())
targetMem.put((bGreen * 255f).coerceIn(0f, 255f).roundToInt().toByte())
targetMem.put((bBlue * 255f).coerceIn(0f, 255f).roundToInt().toByte())
}
}
} else {
val mainGrid = mainGrid.value
for (x in grid.minX - 1 .. grid.maxX) {
for (y in grid.minY - 1 .. grid.maxY) {
val a = grid.get0(x, y) ?: continue
mainGrid[x, y] = Cell(
a.red,
a.green,
a.blue,
)
}
}
}
}

View File

@ -3,6 +3,7 @@ package ru.dbotthepony.kstarbound.world
import com.google.common.base.Predicate
import it.unimi.dsi.fastutil.longs.Long2ObjectOpenHashMap
import it.unimi.dsi.fastutil.objects.ObjectOpenHashSet
import it.unimi.dsi.fastutil.objects.ReferenceLinkedOpenHashSet
import it.unimi.dsi.fastutil.objects.ReferenceOpenHashSet
import ru.dbotthepony.kbox2d.api.ContactImpulse
import ru.dbotthepony.kbox2d.api.IContactFilter
@ -11,15 +12,15 @@ import ru.dbotthepony.kbox2d.api.Manifold
import ru.dbotthepony.kbox2d.dynamics.B2Fixture
import ru.dbotthepony.kbox2d.dynamics.B2World
import ru.dbotthepony.kbox2d.dynamics.contact.AbstractContact
import ru.dbotthepony.kstarbound.Starbound
import ru.dbotthepony.kstarbound.math.*
import ru.dbotthepony.kstarbound.util.Timer
import ru.dbotthepony.kstarbound.world.api.ICellAccess
import ru.dbotthepony.kstarbound.world.api.IChunkCell
import ru.dbotthepony.kstarbound.world.api.TileView
import ru.dbotthepony.kstarbound.world.entities.Entity
import ru.dbotthepony.kstarbound.world.`object`.WorldObject
import ru.dbotthepony.kvector.api.IStruct2d
import ru.dbotthepony.kvector.api.IStruct2i
import ru.dbotthepony.kvector.arrays.Int2DArray
import ru.dbotthepony.kvector.arrays.Object2DArray
import ru.dbotthepony.kvector.util2d.AABB
import ru.dbotthepony.kvector.vector.Vector2d
@ -245,14 +246,6 @@ abstract class World<This : World<This, ChunkType>, ChunkType : Chunk<This, Chun
val physics = B2World(Vector2d(0.0, -EARTH_FREEFALL_ACCELERATION))
private var timers = ArrayList<Timer>()
fun timer(period: Double, executionTimes: Int, func: (Timer) -> Unit): Timer {
val timer = Timer(period, executionTimes, func)
timers.add(timer)
return timer
}
init {
physics.contactFilter = object : IContactFilter {
override fun shouldCollide(fixtureA: B2Fixture, fixtureB: B2Fixture): Boolean {
@ -322,69 +315,25 @@ abstract class World<This : World<This, ChunkType>, ChunkType : Chunk<This, Chun
}
}
/**
* Таймер этого мира, в секундах.
*
* Условия:
* * Это значение МОЖЕТ уменьшаться, в том числе в силу того, что клиент
* обсчитывает мир быстрее, чем сервер, и наоборот.
* * Точка отсчёта не имеет смысла (по умолчанию отсчитывается от нуля).
* * Все сущности обязаны использовать этот таймер для определения времени своих событий
* * Таймер НЕ МОЖЕТ возвращать разные значения в пределах одного тика.
* т.е. таймер должен быть обновлён только после или перед тиком всех потомков
* * НЕ ОБЯЗАН соответствовать течению реального времени, но как правило, соответствует ему
* (если позволяет скорость обсчёта потомков).
* * ОБЯЗАН быть сохранён при сохранении мира, и выставляться при его загрузке.
*/
var timer: Double = 0.0
protected set
/**
* Заставляет этот мир "думать" на заданное количество секунд.
* Вызывает все необходимые методы у потомков, обновляя игровое состояние.
*/
fun think(delta: Double) {
require(delta > 0.0) { "Tried to update $this by $delta seconds" }
var ticks = 0
private set
fun think() {
try {
for (chunk in dirtyPhysicsChunks) {
chunk.bakeCollisions()
}
dirtyPhysicsChunks.clear()
//physics.step(delta, 6, 4)
timer += delta
if (timers.isNotEmpty()) {
val current = timers
timers = ArrayList()
val iterator = current.iterator()
for (timer in iterator) {
timer.think(delta)
if (timer.destroyed) {
iterator.remove()
}
}
if (timers.isNotEmpty()) {
current.addAll(timers)
}
timers = current
}
thinkInner(delta)
physics.step(Starbound.SECONDS_IN_TICK, 6, 4)
thinkInner()
ticks++
} catch(err: Throwable) {
throw RuntimeException("Ticking world $this", err)
}
}
protected abstract fun thinkInner(delta: Double)
protected abstract fun thinkInner()
/**
* Сущности, у которых нет чанка, но они находятся в этом мире
@ -394,7 +343,9 @@ abstract class World<This : World<This, ChunkType>, ChunkType : Chunk<This, Chun
/**
* Сущности, находящиеся в этом мире
*/
val entities = ReferenceOpenHashSet<Entity>()
val entities = ReferenceLinkedOpenHashSet<Entity>()
val objects = ReferenceLinkedOpenHashSet<WorldObject>()
/**
* Стандартное ускорение свободного падения в Starbound Units/секунда^2

View File

@ -5,6 +5,7 @@ import ru.dbotthepony.kbox2d.api.FixtureDef
import ru.dbotthepony.kbox2d.api.b2_polygonRadius
import ru.dbotthepony.kbox2d.collision.shapes.PolygonShape
import ru.dbotthepony.kbox2d.dynamics.B2Fixture
import ru.dbotthepony.kstarbound.Starbound
import ru.dbotthepony.kstarbound.world.World
import ru.dbotthepony.kvector.util2d.AABB
import ru.dbotthepony.kvector.vector.Vector2d
@ -17,58 +18,10 @@ enum class Move {
MOVE_RIGHT
}
interface IWalkableEntity : IEntity {
/**
* Максимальная скорость передвижения этого AliveMovementController в Starbound Units/секунда
*
* Скорость передвижения: Это скорость вдоль земли (или в воздухе, если парит) при ходьбе.
*
* Если вектор скорости вдоль поверхности (или в воздухе, если парит) больше заданного значения,
* то сущность быстро тормозит (учитывая силу трения)
*/
val topSpeed: Double
/**
* Скорость ускорения сущности в Starbound Units/секунда^2
*
* Если сущность хочет двигаться вправо или влево,
* то она разгоняется с данной скоростью.
*/
val moveSpeed: Double
/**
* То, как сущность может влиять на свою скорость в Starbound Units/секунда^2
* когда находится в свободном падении или в состоянии невесомости.
*
* Позволяет в т.ч. игрокам изменять свою траекторию полёта в стиле Quake.
*/
val freeFallMoveSpeed: Double
/**
* "Сила", с которой сущность останавливается, если не хочет двигаться.
*
* Зависит от текущего трения, так как технически является множителем трения поверхности,
* на которой стоит сущность.
*/
val brakeForce: Double
/**
* Высота шага данной сущности. Данное значение отвечает за то, на сколько блоков
* сможет подняться сущность просто двигаясь в одном направлении без необходимости прыгнуть.
*/
val jumpForce: Double
/**
* Импульс прыжка данной сущности. Если сущность парит, то данное значение не несёт никакой
* полезной нагрузки.
*/
val stepSize: Double
}
/**
* Базовый абстрактный класс, реализующий сущность, которая ходит по земле
*/
abstract class WalkableMovementController<T : IWalkableEntity>(entity: T) : MovementController<T>(entity) {
abstract class WalkableMovementController<T : AliveWalkingEntity>(entity: T) : MovementController<T>(entity) {
init {
body.isFixedRotation = true
}
@ -105,9 +58,9 @@ abstract class WalkableMovementController<T : IWalkableEntity>(entity: T) : Move
open var isDucked = false
protected set
override fun think(delta: Double) {
super.think(delta)
thinkMovement(delta)
override fun think() {
super.think()
thinkMovement()
}
/**
@ -141,20 +94,20 @@ abstract class WalkableMovementController<T : IWalkableEntity>(entity: T) : Move
open val jumpForce by entity::jumpForce
protected var jumpRequested = false
protected var nextJump = 0.0
protected var nextJump = 0
open fun requestJump() {
if (jumpRequested || nextJump > world.timer)
if (jumpRequested || nextJump > world.ticks)
return
jumpRequested = true
nextJump = world.timer + 0.1
nextJump = world.ticks + 15
}
open fun recallJump() {
if (jumpRequested) {
jumpRequested = false
nextJump = 0.0
nextJump = 0
}
}
@ -162,24 +115,24 @@ abstract class WalkableMovementController<T : IWalkableEntity>(entity: T) : Move
protected var previousVelocity = Vector2d.ZERO
protected open fun thinkMovement(delta: Double) {
protected open fun thinkMovement() {
if (onGround && !isDucked) {
when (moveDirection) {
Move.STAND_STILL -> {
body.linearVelocity += Vector2d(x = -body.linearVelocity.x * delta * brakeForce)
body.linearVelocity += Vector2d(x = -body.linearVelocity.x * Starbound.SECONDS_IN_TICK * brakeForce)
}
Move.MOVE_LEFT -> {
if (body.linearVelocity.x > 0.0) {
body.linearVelocity += Vector2d(x = -body.linearVelocity.x * delta * brakeForce)
body.linearVelocity += Vector2d(x = -body.linearVelocity.x * Starbound.SECONDS_IN_TICK * brakeForce)
}
if (body.linearVelocity.x > -topSpeed) {
body.linearVelocity += Vector2d(x = -moveSpeed * delta)
body.linearVelocity += Vector2d(x = -moveSpeed * Starbound.SECONDS_IN_TICK)
// Ghost collision prevention
if (body.linearVelocity.x.absoluteValue < 1) {
body.linearVelocity += -delta * world.gravity * 2.0
body.linearVelocity += -Starbound.SECONDS_IN_TICK * world.gravity * 2.0
}
}
@ -227,22 +180,22 @@ abstract class WalkableMovementController<T : IWalkableEntity>(entity: T) : Move
val velocity = if (previousVelocity.length > body.linearVelocity.length) previousVelocity else body.linearVelocity
body.setTransform(body.position + Vector2d(x = -0.05, y = stepSize), body.angle)
body.linearVelocity = velocity
//body.linearVelocity += Vector2d(y = -delta * 18.0 * stepSize * world.gravity.y)
//body.linearVelocity += Vector2d(y = -Starbound.SECONDS_IN_FRAME * 18.0 * stepSize * world.gravity.y)
}
}
}
Move.MOVE_RIGHT -> {
if (body.linearVelocity.x < 0.0) {
body.linearVelocity += Vector2d(x = -body.linearVelocity.x * delta * brakeForce)
body.linearVelocity += Vector2d(x = -body.linearVelocity.x * Starbound.SECONDS_IN_TICK * brakeForce)
}
if (body.linearVelocity.x < topSpeed) {
body.linearVelocity += Vector2d(x = moveSpeed * delta)
body.linearVelocity += Vector2d(x = moveSpeed * Starbound.SECONDS_IN_TICK)
// Ghost collision prevention
if (body.linearVelocity.x.absoluteValue < 1) {
body.linearVelocity += -delta * world.gravity * 2.0
body.linearVelocity += -Starbound.SECONDS_IN_TICK * world.gravity * 2.0
}
}
@ -290,7 +243,7 @@ abstract class WalkableMovementController<T : IWalkableEntity>(entity: T) : Move
val velocity = if (previousVelocity.length > body.linearVelocity.length) previousVelocity else body.linearVelocity
body.setTransform(body.position + Vector2d(x = 0.05, y = stepSize), body.angle)
body.linearVelocity = velocity
//body.linearVelocity += Vector2d(y = -delta * 18.0 * stepSize * world.gravity.y)
//body.linearVelocity += Vector2d(y = -Starbound.SECONDS_IN_FRAME * 18.0 * stepSize * world.gravity.y)
}
}
}
@ -300,7 +253,7 @@ abstract class WalkableMovementController<T : IWalkableEntity>(entity: T) : Move
if (jumpRequested) {
jumpRequested = false
nextJump = world.timer + 0.1
nextJump = world.ticks + 15
body.linearVelocity += Vector2d(y = jumpForce)
}
@ -311,15 +264,15 @@ abstract class WalkableMovementController<T : IWalkableEntity>(entity: T) : Move
}
Move.MOVE_LEFT -> {
body.linearVelocity += Vector2d(x = -freeFallMoveSpeed * delta)
body.linearVelocity += Vector2d(x = -freeFallMoveSpeed * Starbound.SECONDS_IN_TICK)
}
Move.MOVE_RIGHT -> {
body.linearVelocity += Vector2d(x = freeFallMoveSpeed * delta)
body.linearVelocity += Vector2d(x = freeFallMoveSpeed * Starbound.SECONDS_IN_TICK)
}
}
} else if (onGround && isDucked) {
body.linearVelocity += Vector2d(x = -body.linearVelocity.x * delta * brakeForce)
body.linearVelocity += Vector2d(x = -body.linearVelocity.x * Starbound.SECONDS_IN_TICK * brakeForce)
}
if (wantsToDuck && onGround) {
@ -343,15 +296,54 @@ abstract class AliveEntity(world: World<*, *>) : Entity(world) {
open var health = 10.0
}
abstract class AliveWalkingEntity(world: World<*, *>) : AliveEntity(world), IWalkableEntity {
abstract class AliveWalkingEntity(world: World<*, *>) : AliveEntity(world) {
abstract override val movement: WalkableMovementController<*>
override val topSpeed = 20.0
override val moveSpeed = 64.0
override val freeFallMoveSpeed = 8.0
override val brakeForce = 16.0
override val jumpForce = 20.0
override val stepSize = 1.1
/**
* Максимальная скорость передвижения этого AliveMovementController в Starbound Units/секунда
*
* Скорость передвижения: Это скорость вдоль земли (или в воздухе, если парит) при ходьбе.
*
* Если вектор скорости вдоль поверхности (или в воздухе, если парит) больше заданного значения,
* то сущность быстро тормозит (учитывая силу трения)
*/
open val topSpeed: Double = 20.0
/**
* Скорость ускорения сущности в Starbound Units/секунда^2
*
* Если сущность хочет двигаться вправо или влево,
* то она разгоняется с данной скоростью.
*/
open val moveSpeed: Double = 64.0
/**
* То, как сущность может влиять на свою скорость в Starbound Units/секунда^2
* когда находится в свободном падении или в состоянии невесомости.
*
* Позволяет в т.ч. игрокам изменять свою траекторию полёта в стиле Quake.
*/
open val freeFallMoveSpeed: Double = 8.0
/**
* "Сила", с которой сущность останавливается, если не хочет двигаться.
*
* Зависит от текущего трения, так как технически является множителем трения поверхности,
* на которой стоит сущность.
*/
open val brakeForce: Double = 16.0
/**
* Высота шага данной сущности. Данное значение отвечает за то, на сколько блоков
* сможет подняться сущность просто двигаясь в одном направлении без необходимости прыгнуть.
*/
open val jumpForce: Double = 20.0
/**
* Импульс прыжка данной сущности. Если сущность парит, то данное значение не несёт никакой
* полезной нагрузки.
*/
open val stepSize: Double = 1.1
open var wantsToDuck
get() = movement.wantsToDuck

View File

@ -1,86 +1,19 @@
package ru.dbotthepony.kstarbound.world.entities
import ru.dbotthepony.kstarbound.defs.DamageType
import ru.dbotthepony.kstarbound.world.Chunk
import ru.dbotthepony.kstarbound.world.World
import ru.dbotthepony.kvector.vector.Vector2d
/**
* Интерфейс служит лишь для убирания жёсткой зависимости от класса Entity
*/
interface IEntity {
abstract class Entity(
/**
* The world this entity in, never changes.
*/
val world: World<*, *>
) {
/**
* The chunk this entity currently in, it is automatically updated on each change of [position]
*/
var chunk: Chunk<*, *>?
/**
* Current entity position. If entity is logical, this can only be changed
* by external means, otherwise it always stands where it is.
*
* If entity is physical, then movement controller will update this on each physics step
* to match position of physical body.
*
* Setting this value will update [chunk] immediately, if [isSpawned] is true and [isRemoved] is false.
*/
var position: Vector2d
/**
* This entity's angle in radians.
*
* Logical entities never rotate.
*
* Alive entities usually don't rotate.
*
* If entity is physical, this value is updated by movement controller on
* each physics step to match angle of physical body.
*/
var angle: Double
/**
* This entity's movement controller. Even logical entities have one, but they have
* dummy movement controller, which does nothing.
*
* If entity is physical, this controller handle interaction with Box2D world, update angles and
* position and other stuff.
*/
val movement: MovementController<*>
/**
* Whenever is this entity spawned in world ([spawn] called).
* Doesn't mean entity still exists in world, check it with [isRemoved]
*/
val isSpawned: Boolean
/**
* Whenever is this entity was removed from world ([remove] called).
*/
val isRemoved: Boolean
fun spawn()
fun remove()
fun think(delta: Double)
fun onTouchSurface(velocity: Vector2d, normal: Vector2d)
fun dealDamage(
amount: Double,
kind: String,
type: DamageType,
) {
// Do nothing by default
}
}
/**
* Определяет из себя сущность в мире, которая имеет позицию, скорость и коробку столкновений
*/
abstract class Entity(override val world: World<*, *>) : IEntity {
override var chunk: Chunk<*, *>? = null
var chunk: Chunk<*, *>? = null
set(value) {
if (!isSpawned) {
throw IllegalStateException("Trying to set chunk this entity belong to before spawning in world")
@ -114,7 +47,17 @@ abstract class Entity(override val world: World<*, *>) : IEntity {
}
}
override var position = Vector2d()
/**
* Current entity position. If entity is logical, this can only be changed
* by external means, otherwise it always stands where it is.
*
* If entity is physical, then movement controller will update this on each physics step
* to match position of physical body.
*
* Setting this value will update [chunk] immediately, if [isSpawned] is true and [isRemoved] is false.
*/
var position = Vector2d()
set(value) {
if (field == value)
return
@ -134,7 +77,18 @@ abstract class Entity(override val world: World<*, *>) : IEntity {
}
}
override var angle: Double = 0.0
/**
* This entity's angle in radians.
*
* Logical entities never rotate.
*
* Alive entities usually don't rotate.
*
* If entity is physical, this value is updated by movement controller on
* each physics step to match angle of physical body.
*/
var angle: Double = 0.0
set(value) {
if (field == value)
return
@ -143,12 +97,21 @@ abstract class Entity(override val world: World<*, *>) : IEntity {
movement.notifyPositionChanged()
}
final override var isSpawned = false
private set
final override var isRemoved = false
/**
* Whenever is this entity spawned in world ([spawn] called).
* Doesn't mean entity still exists in world, check it with [isRemoved]
*/
var isSpawned = false
private set
override fun spawn() {
/**
* Whenever is this entity was removed from world ([remove] called).
*/
var isRemoved = false
private set
open fun spawn() {
if (isSpawned)
throw IllegalStateException("Already spawned")
@ -163,7 +126,7 @@ abstract class Entity(override val world: World<*, *>) : IEntity {
movement.onSpawnedInWorld()
}
override fun remove() {
open fun remove() {
if (isRemoved)
throw IllegalStateException("Already removed")
@ -178,31 +141,32 @@ abstract class Entity(override val world: World<*, *>) : IEntity {
}
/**
* Контроллер перемещения данной сущности
* This entity's movement controller. Even logical entities have one, but they have
* dummy movement controller, which does nothing.
*
* Контроллер перемещения реализует физические интерфейсы для KBox2D и отвечает за
* физику сущности в мире.
* If entity is physical, this controller handle interaction with Box2D world, update angles and
* position and other stuff.
*/
abstract override val movement: MovementController<*>
abstract val movement: MovementController<*>
/**
* Внутренний блок "раздумья" сущности, вызывается на каждом тике мира
*/
protected abstract fun thinkAI(delta: Double)
protected abstract fun thinkAI()
/**
* Заставляет сущность "думать".
*/
final override fun think(delta: Double) {
fun think() {
if (!isSpawned) {
throw IllegalStateException("Tried to think before spawning in world")
}
movement.think(delta)
thinkAI(delta)
movement.think()
thinkAI()
}
override fun onTouchSurface(velocity: Vector2d, normal: Vector2d) {
open fun onTouchSurface(velocity: Vector2d, normal: Vector2d) {
}
}

View File

@ -47,7 +47,7 @@ class ItemEntity(world: World<*, *>, val def: IItemDefinition) : Entity(world) {
}
}
override fun thinkAI(delta: Double) {
override fun thinkAI() {
// TODO: деспавнинг?
// просто, как бы, предметы не должны уж так сильно нагружать процессор
}

View File

@ -12,7 +12,7 @@ enum class CollisionResolution {
SLIDE,
}
abstract class MovementController<T : IEntity>(val entity: T) : IContactListener {
abstract class MovementController<T : Entity>(val entity: T) : IContactListener {
val world = entity.world
open var position by entity::position
open var angle by entity::angle
@ -93,7 +93,7 @@ abstract class MovementController<T : IEntity>(val entity: T) : IContactListener
* This is called on each world step to update variables and account of changes of
* physics world and this physics body.
*/
open fun think(delta: Double) {
open fun think() {
mutePositionChanged = true
position = body.position
angle = body.angle
@ -125,7 +125,7 @@ class LogicalMovementController(entity: Entity) : MovementController<Entity>(ent
override val onGround: Boolean = false
override val velocity: Vector2d = Vector2d.ZERO
override fun think(delta: Double) {
override fun think() {
// no-op
}

View File

@ -68,7 +68,7 @@ class PlayerMovementController(entity: PlayerEntity) : WalkableMovementControlle
open class PlayerEntity(world: World<*, *>) : AliveWalkingEntity(world) {
override val movement = PlayerMovementController(this)
override fun thinkAI(delta: Double) {
override fun thinkAI() {
}
}

View File

@ -0,0 +1,110 @@
package ru.dbotthepony.kstarbound.world.`object`
import com.google.common.collect.ImmutableMap
import com.google.gson.JsonArray
import com.google.gson.JsonNull
import com.google.gson.JsonObject
import com.google.gson.JsonPrimitive
import com.google.gson.TypeAdapter
import com.google.gson.reflect.TypeToken
import ru.dbotthepony.kstarbound.RegistryObject
import ru.dbotthepony.kstarbound.Starbound
import ru.dbotthepony.kstarbound.defs.JsonDriven
import ru.dbotthepony.kstarbound.defs.`object`.ObjectDefinition
import ru.dbotthepony.kstarbound.util.set
import ru.dbotthepony.kstarbound.world.Direction
import ru.dbotthepony.kstarbound.world.LightCalculator
import ru.dbotthepony.kstarbound.world.World
import ru.dbotthepony.kvector.vector.RGBAColor
import ru.dbotthepony.kvector.vector.Vector2i
abstract class WorldObject(
val world: World<*, *>,
val prototype: RegistryObject<ObjectDefinition>,
val pos: Vector2i,
) : JsonDriven(prototype.file.computeDirectory()) {
val orientations: JsonArray = prototype.jsonObject["orientations"].asJsonArray
val validOrientations = orientations.size()
// scriptStorage - json object
var uniqueId: String? = null
var interactive = false
var direction = Direction.LEFT
init {
world.objects.add(this)
}
var isRemoved = false
private set
fun remove() {
if (isRemoved) return
check(world.objects.remove(this))
}
var orientation = -1
set(value) {
if (field != value) {
field = value
invalidate()
}
}
override fun defs(): Collection<JsonObject> {
if (orientation in 0 until validOrientations) {
return listOf(orientations[orientation] as JsonObject, prototype.jsonObject)
} else {
return listOf(prototype.jsonObject)
}
}
val lightColors: ImmutableMap<String, RGBAColor> by LazyData(listOf("lightColor", "lightColors")) {
dataValue("lightColor")?.let { ImmutableMap.of("default", colors0.fromJsonTree(it)) }
?: dataValue("lightColors")?.let { colors1.fromJsonTree(it) }
?: ImmutableMap.of()
}
fun addLights(lightCalculator: LightCalculator, xOffset: Int, yOffset: Int) {
if ("default" in lightColors) {
lightCalculator.addPointLight(pos.x - xOffset, pos.y - yOffset, lightColors["default"]!!)
}
}
companion object {
private val colors1 by lazy { Starbound.gson.getAdapter(TypeToken.getParameterized(ImmutableMap::class.java, String::class.java, RGBAColor::class.java)) as TypeAdapter<ImmutableMap<String, RGBAColor>> }
private val colors0 by lazy { Starbound.gson.getAdapter(RGBAColor::class.java) }
private val strings by lazy { Starbound.gson.getAdapter(String::class.java) }
private val directions by lazy { Starbound.gson.getAdapter(Direction::class.java) }
fun <W : World<*, *>, T : WorldObject> create(world: W, data: JsonObject, factory: (W, RegistryObject<ObjectDefinition>, Vector2i) -> T): T {
val tilePosition = Starbound.gson.fromJson(data["tilePosition"], Vector2i::class.java) ?: throw IllegalArgumentException("No tilePosition was present in saved data")
val name = data["name"]?.asString ?: throw IllegalArgumentException("Missing object name")
val def = Starbound.worldObjects[name] ?: throw IllegalArgumentException("No such object defined for '$name'")
val obj = factory(world, def, tilePosition)
data["direction"]?.let {
obj.direction = directions.fromJsonTree(it)
}
data["interactive"]?.let {
obj.interactive = it.asBoolean
}
data["uniqueId"]?.let {
if (!it.isJsonNull)
obj.uniqueId = it.asString
}
data["parameters"]?.let {
for ((k, v) in it.asJsonObject.entrySet()) {
obj.properties[k] = v
}
}
obj.invalidate()
return obj
}
}
}

View File

@ -0,0 +1,13 @@
#version 460
layout (location = 0) in vec2 pos;
layout (location = 1) in vec2 uv_in;
out vec2 uv_out;
uniform mat4 transform;
void main() {
uv_out = uv_in;
gl_Position = transform * vec4(pos, 1.0, 1.0);
}

View File

@ -1421,8 +1421,6 @@ public final class Json2FunctionsTest {
@Test
@DisplayName("Json 2function evaluation")
public void test() {
var sb = new Starbound();
var fnData = """
["linear", "clamp", [
[0, 0, 10, 20, 30, 40, 50, 60, 70, 80, 90, 100, 1000 ], //damage
@ -1441,7 +1439,7 @@ public final class Json2FunctionsTest {
]]
""";
var fn = sb.getGson().fromJson(fnData, Json2Function.class);
var fn = Starbound.INSTANCE.getGson().fromJson(fnData, Json2Function.class);
for (int i = 0; i < test2FunctionData.length; i += 3) {
double result = test2FunctionData[i];

View File

@ -262,8 +262,6 @@ public class JsonFunctionTest {
@Test
@DisplayName("Json functions")
public void test() {
var sb = new Starbound();
var fnData = """
{
"drawTimeMultiplier" : [ "linear", "clamp", [0, 0], [0.1, 0.01], [0.2, 0.25], [0.89, 1.0], [0.9, 1.25], [1.1, 1.25], [1.11, 1.0], [1.2, 1.0] ],
@ -276,12 +274,12 @@ public class JsonFunctionTest {
}
""";
var data = sb.getGson().fromJson(fnData, JsonObject.class);
var data = Starbound.INSTANCE.getGson().fromJson(fnData, JsonObject.class);
var funcs = new HashMap<String, JsonFunction>();
for (var entry : data.entrySet()) {
funcs.put(entry.getKey(), sb.getGson().fromJson(new JsonTreeReader(entry.getValue()), JsonFunction.class));
funcs.put(entry.getKey(), Starbound.INSTANCE.getGson().fromJson(new JsonTreeReader(entry.getValue()), JsonFunction.class));
}
var constant = funcs.get("constant");

View File

@ -47,25 +47,4 @@ object MathTests {
check(roundTowardsPositiveInfinity(-1.1) == -1)
check(roundTowardsPositiveInfinity(-1.6) == -1)
}
@Test
@DisplayName("ChunkPos class tests")
fun chunkPosTests() {
check(ChunkPos.fromPosition(0, 0) == ChunkPos(0, 0))
check(ChunkPos.fromPosition(1, 0) == ChunkPos(0, 0))
check(ChunkPos.fromPosition(0, 1) == ChunkPos(0, 0))
check(ChunkPos.fromPosition(1, 1) == ChunkPos(0, 0))
check(ChunkPos.fromPosition(-1, 1) == ChunkPos(-1, 0))
check(ChunkPos.fromPosition(-1, -1) == ChunkPos(-1, -1))
check(ChunkPos.fromPosition(CHUNK_SIZE_FF, 0) == ChunkPos(0, 0))
check(ChunkPos.fromPosition(CHUNK_SIZE, 0) == ChunkPos(1, 0))
check(ChunkPos.fromPosition(0, CHUNK_SIZE_FF) == ChunkPos(0, 0))
check(ChunkPos.fromPosition(0, CHUNK_SIZE) == ChunkPos(0, 1))
check(ChunkPos.fromPosition(-CHUNK_SIZE_FF, 0) == ChunkPos(-1, 0)) { ChunkPos.fromPosition(-CHUNK_SIZE_FF, 0).toString() }
check(ChunkPos.fromPosition(-CHUNK_SIZE, 0) == ChunkPos(-2, 0)) { ChunkPos.fromPosition(-CHUNK_SIZE, 0) }
check(ChunkPos.fromPosition(0, -CHUNK_SIZE_FF) == ChunkPos(0, -1)) { ChunkPos.fromPosition(0, -CHUNK_SIZE_FF) }
check(ChunkPos.fromPosition(0, -CHUNK_SIZE) == ChunkPos(0, -2)) { ChunkPos.fromPosition(0, -CHUNK_SIZE) }
}
}