Actual world lighting, world objects test
This commit is contained in:
parent
da66fa389d
commit
84e9fd842a
713
hs_err_pid22156.log
Normal file
713
hs_err_pid22156.log
Normal 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
848
hs_err_pid42652.log
Normal 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
841
hs_err_pid54068.log
Normal 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.
|
@ -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)
|
||||
|
||||
|
@ -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
|
||||
//}
|
||||
}
|
||||
}
|
||||
|
@ -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 {
|
||||
|
@ -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)
|
||||
}
|
||||
|
@ -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
|
||||
}
|
||||
|
||||
|
@ -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())
|
||||
|
@ -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
|
||||
|
@ -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) }
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
@ -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()
|
||||
}
|
||||
}
|
||||
|
@ -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)
|
||||
}
|
||||
}
|
||||
}
|
@ -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)
|
||||
|
@ -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?)
|
||||
|
@ -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)
|
||||
}
|
232
src/main/kotlin/ru/dbotthepony/kstarbound/defs/JsonDriven.kt
Normal file
232
src/main/kotlin/ru/dbotthepony/kstarbound/defs/JsonDriven.kt
Normal 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)
|
||||
}
|
||||
}
|
||||
}
|
@ -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
|
||||
|
@ -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")
|
||||
}
|
||||
}
|
@ -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"
|
||||
|
@ -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,
|
||||
|
@ -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,
|
||||
|
@ -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,
|
||||
|
@ -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,
|
||||
)
|
@ -0,0 +1,10 @@
|
||||
package ru.dbotthepony.kstarbound.defs.`object`
|
||||
|
||||
enum class ObjectType {
|
||||
OBJECT,
|
||||
LOUNGEABLE,
|
||||
CONTAINER,
|
||||
FARMABLE,
|
||||
TELEPORTER,
|
||||
PHYSICS;
|
||||
}
|
@ -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)
|
||||
}
|
@ -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)
|
||||
}
|
||||
|
@ -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))
|
||||
}
|
@ -68,6 +68,8 @@ annotation class JsonFactory(
|
||||
* @see FactoryAdapter.Builder.inputAsMap
|
||||
*/
|
||||
val asList: Boolean = false,
|
||||
|
||||
val logMisses: Boolean = true,
|
||||
)
|
||||
|
||||
/**
|
||||
|
@ -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")
|
||||
|
@ -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
|
||||
}
|
||||
}
|
@ -0,0 +1,6 @@
|
||||
package ru.dbotthepony.kstarbound.world
|
||||
|
||||
enum class Direction {
|
||||
LEFT,
|
||||
RIGHT;
|
||||
}
|
@ -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,
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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) {
|
||||
|
||||
}
|
||||
}
|
||||
|
@ -47,7 +47,7 @@ class ItemEntity(world: World<*, *>, val def: IItemDefinition) : Entity(world) {
|
||||
}
|
||||
}
|
||||
|
||||
override fun thinkAI(delta: Double) {
|
||||
override fun thinkAI() {
|
||||
// TODO: деспавнинг?
|
||||
// просто, как бы, предметы не должны уж так сильно нагружать процессор
|
||||
}
|
||||
|
@ -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
|
||||
}
|
||||
|
||||
|
@ -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() {
|
||||
|
||||
}
|
||||
}
|
||||
|
@ -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
|
||||
}
|
||||
}
|
||||
}
|
13
src/main/resources/shaders/vertex/2dtexture.glsl
Normal file
13
src/main/resources/shaders/vertex/2dtexture.glsl
Normal 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);
|
||||
}
|
@ -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];
|
||||
|
@ -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");
|
||||
|
@ -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) }
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user