VulkanRenderer using ash 0.38 + winit:
- Instance with KHR_surface + xlib + wayland extensions
- Physical device selection (first GPU with graphics+present)
- Swapchain (FIFO present mode, B8G8R8A8_UNORM)
- Render pass with color attachment
- Graphics pipeline with instanced rendering:
- Vertex buffer: unit quad (4 verts, 6 indices)
- Instance buffer: 8000 CellInstance structs (32 bytes each)
- 2 vertex bindings: per-vertex (quad pos) + per-instance (grid pos,
atlas UV, fg/bg colors)
- Push constants: screen size + cell size
- Glyph atlas: R8_UNORM texture, uploaded via staging buffer
- fontdue rasterizes DejaVu Sans Mono at startup
- Linear filtering sampler
- Descriptor set: combined image sampler for atlas
- 2 frames in flight with semaphores + fences
- Persistent mapped instance buffer (zero-copy per frame)
Shaders (pre-compiled SPIR-V):
- cell.vert: positions quad from instance data, maps to clip space
- cell.frag: samples atlas alpha, blends fg/bg
--mode vulkan: tries Vulkan, falls back to softbuffer window mode
109 tests, 0 failures
336 lines
24 KiB
Plaintext
336 lines
24 KiB
Plaintext
=== Verbatim Headless Run: 60 ticks ===
|
|
|
|
World: 250x250
|
|
Player start: (125.0, 242.0)
|
|
Camera: (85, 230)
|
|
|
|
=== Tick 0 (initial state) ===
|
|
30
|
|
31
|
|
32
|
|
33
|
|
34
|
|
35
|
|
36
|
|
37 TTTTT
|
|
38 T T
|
|
39 T T .
|
|
40 T T @@@@@ ...
|
|
41 T T ## @@@@@@ .....
|
|
42 T T ## @@@@@@ .......
|
|
43 T T ## @@@@@ """"""""""""" .........
|
|
44""" T T ## @@@@@ "":::::::::::::""" ..........
|
|
45:::""" ## """::::::::::::::::::"" ...........
|
|
46::::::"" ## "":::::::::::::::::::::::""".........
|
|
47::::::::"""""""""""""""""""""""""""""""""""::::::::::::::::::::::::::::"""""""""
|
|
48::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
|
|
49################################################################################
|
|
50????????????????????????????????????????????????????????????????????????????????
|
|
51????????????????????????????????????????????????????????????????????????????????
|
|
52????????????????????????????????????????????????????????????????????????????????
|
|
53????????????????????????????????????????????????????????????????????????????????
|
|
54????????????????????????????????????????????????????????????????????????????????
|
|
Player: "Player hp=100.0/100.0 pos=(125.0,242.0) bodies=27/27 on_fire=false"
|
|
Entities: 1
|
|
|
|
=== Tick 6 ===
|
|
30
|
|
31
|
|
32
|
|
33
|
|
34
|
|
35
|
|
36
|
|
37 TTTTT
|
|
38 T T
|
|
39 T T .
|
|
40 T T @@@@@ ...
|
|
41 T T ## @@@@@@ .....
|
|
42 T T ## @@@@@@ .......
|
|
43 T T ## @@@@@ """"""""""""" .........
|
|
44""" T T ## @@@@@ "":::::::::::::""" ..........
|
|
45:::""" ## """::::::::::::::::::"" ...........
|
|
46::::::"" ## "":::::::::::::::::::::::""".........
|
|
47::::::::"""""""""""""""""""""""""""""""""""::::::::::::::::::::::::::::"""""""""
|
|
48::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
|
|
49################################################################################
|
|
50????????????????????????????????????????????????????????????????????????????????
|
|
51????????????????????????????????????????????????????????????????????????????????
|
|
52????????????????????????????????????????????????????????????????????????????????
|
|
53????????????????????????????????????????????????????????????????????????????????
|
|
54????????????????????????????????????????????????????????????????????????????????
|
|
Player: "Player hp=100.0/100.0 pos=(125.0,242.8) bodies=27/27 on_fire=false"
|
|
Entities: 1
|
|
Alive entities: Player(hp=100, pos=(125.0, 242.82616))
|
|
|
|
=== Tick 12 ===
|
|
31
|
|
32
|
|
33
|
|
34
|
|
35
|
|
36
|
|
37 TTTTT
|
|
38 T T
|
|
39 T T .
|
|
40 T T ...
|
|
41 T T ## @@@@@ .....
|
|
42 T T ## @@@@@@ .......
|
|
43 T T ## @@@@@@ """"""""""""" .........
|
|
44""" T T ## @@@@@ "":::::::::::::""" ..........
|
|
45:::""" ## @@@@@ """::::::::::::::::::"" ...........
|
|
46::::::"" ## "":::::::::::::::::::::::""".........
|
|
47::::::::"""""""""""""""""""""""""""""""""""::::::::::::::::::::::::::::"""""""""
|
|
48::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
|
|
49################################################################################
|
|
50????????????????????????????????????????????????????????????????????????????????
|
|
51????????????????????????????????????????????????????????????????????????????????
|
|
52????????????????????????????????????????????????????????????????????????????????
|
|
53????????????????????????????????????????????????????????????????????????????????
|
|
54????????????????????????????????????????????????????????????????????????????????
|
|
55????????????????????????????????????????????????????????????????????????????????
|
|
Player: "Player hp=100.0/100.0 pos=(125.0,243.5) bodies=27/27 on_fire=false"
|
|
Entities: 1
|
|
Alive entities: Player(hp=100, pos=(125.0, 243.5))
|
|
|
|
=== Tick 18 ===
|
|
31
|
|
32
|
|
33
|
|
34
|
|
35
|
|
36
|
|
37 TTTTT
|
|
38 T T
|
|
39 T T .
|
|
40 T T ...
|
|
41 T T ## @@@@@ .....
|
|
42 T T ## @@@@@@ .......
|
|
43 T T ## @@@@@@ """"""""""""" .........
|
|
44""" T T ## @@@@@ "":::::::::::::""" ..........
|
|
45:::""" ## @@@@@ """::::::::::::::::::"" ...........
|
|
46::::::"" ## "":::::::::::::::::::::::""".........
|
|
47::::::::"""""""""""""""""""""""""""""""""""::::::::::::::::::::::::::::"""""""""
|
|
48::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
|
|
49################################################################################
|
|
50????????????????????????????????????????????????????????????????????????????????
|
|
51????????????????????????????????????????????????????????????????????????????????
|
|
52????????????????????????????????????????????????????????????????????????????????
|
|
53????????????????????????????????????????????????????????????????????????????????
|
|
54????????????????????????????????????????????????????????????????????????????????
|
|
55????????????????????????????????????????????????????????????????????????????????
|
|
Player: "Player hp=100.0/100.0 pos=(125.0,243.5) bodies=27/27 on_fire=false"
|
|
Entities: 1
|
|
Alive entities: Player(hp=100, pos=(125.0, 243.5))
|
|
|
|
=== Tick 24 ===
|
|
31
|
|
32
|
|
33
|
|
34
|
|
35
|
|
36
|
|
37 TTTTT
|
|
38 T T
|
|
39 T T .
|
|
40 T T ...
|
|
41 T T ## @@@@@ .....
|
|
42 T T ## @@@@@@ .......
|
|
43 T T ## @@@@@@ """"""""""""" .........
|
|
44""" T T ## @@@@@ "":::::::::::::""" ..........
|
|
45:::""" ## @@@@@ """::::::::::::::::::"" ...........
|
|
46::::::"" ## "":::::::::::::::::::::::""".........
|
|
47::::::::"""""""""""""""""""""""""""""""""""::::::::::::::::::::::::::::"""""""""
|
|
48::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
|
|
49################################################################################
|
|
50????????????????????????????????????????????????????????????????????????????????
|
|
51????????????????????????????????????????????????????????????????????????????????
|
|
52????????????????????????????????????????????????????????????????????????????????
|
|
53????????????????????????????????????????????????????????????????????????????????
|
|
54????????????????????????????????????????????????????????????????????????????????
|
|
55????????????????????????????????????????????????????????????????????????????????
|
|
Player: "Player hp=100.0/100.0 pos=(125.0,243.5) bodies=27/27 on_fire=false"
|
|
Entities: 1
|
|
Alive entities: Player(hp=100, pos=(125.0, 243.5))
|
|
|
|
=== Tick 30 ===
|
|
31
|
|
32
|
|
33
|
|
34
|
|
35
|
|
36
|
|
37 TTTTT
|
|
38 T T
|
|
39 T T .
|
|
40 T T ggggg ...
|
|
41 T T gggggg @@@@@ .....
|
|
42 T T gggggg @@@@@@ .......
|
|
43 T T ggggg @@@@@@ """"""""""""" .........
|
|
44""" T T ggggg @@@@@ "":::::::::::::""" ..........
|
|
45:::""" ## @@@@@ """::::::::::::::::::"" ...........
|
|
46::::::"" ## "":::::::::::::::::::::::""".........
|
|
47::::::::"""""""""""""""""""""""""""""""""""::::::::::::::::::::::::::::"""""""""
|
|
48::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
|
|
49################################################################################
|
|
50????????????????????????????????????????????????????????????????????????????????
|
|
51????????????????????????????????????????????????????????????????????????????????
|
|
52????????????????????????????????????????????????????????????????????????????????
|
|
53????????????????????????????????????????????????????????????????????????????????
|
|
54????????????????????????????????????????????????????????????????????????????????
|
|
55????????????????????????????????????????????????????????????????????????????????
|
|
Player: "Player hp=100.0/100.0 pos=(125.0,243.5) bodies=27/27 on_fire=false"
|
|
Entities: 2
|
|
Alive entities: Player(hp=100, pos=(125.0, 243.5)), Goblin(hp=40, pos=(110.0, 242.0))
|
|
|
|
=== Tick 36 ===
|
|
31
|
|
32
|
|
33
|
|
34
|
|
35
|
|
36 ggggg
|
|
37 TTTTT gggggg
|
|
38 T T gggggg
|
|
39 T T ggggg .
|
|
40 T T ggggg ...
|
|
41 T T ## @@@@@ .....
|
|
42 T T ## @@@@@@ .......
|
|
43 T T ## @@@@@@ """"""""""""" .........
|
|
44""" T T ## @@@@@ "":::::::::::::""" ..........
|
|
45:::""" ## @@@@@ """::::::::::::::::::"" ...........
|
|
46::::::"" ## "":::::::::::::::::::::::""".........
|
|
47::::::::"""""""""""""""""""""""""""""""""""::::::::::::::::::::::::::::"""""""""
|
|
48::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
|
|
49################################################################################
|
|
50????????????????????????????????????????????????????????????????????????????????
|
|
51????????????????????????????????????????????????????????????????????????????????
|
|
52????????????????????????????????????????????????????????????????????????????????
|
|
53????????????????????????????????????????????????????????????????????????????????
|
|
54????????????????????????????????????????????????????????????????????????????????
|
|
55????????????????????????????????????????????????????????????????????????????????
|
|
Player: "Player hp=100.0/100.0 pos=(125.0,243.5) bodies=27/27 on_fire=false"
|
|
Entities: 2
|
|
Alive entities: Player(hp=100, pos=(125.0, 243.5)), Goblin(hp=40, pos=(110.0, 238.5))
|
|
|
|
=== Tick 42 ===
|
|
31
|
|
32
|
|
33
|
|
34
|
|
35
|
|
36 ggggg
|
|
37 TTTTT gggggg
|
|
38 T T gggggg
|
|
39 T T ggggg .
|
|
40 T T ggggg ...
|
|
41 T T ## @@@@@ .....
|
|
42 T T ## @@@@@@ .......
|
|
43 T T ## @@@@@@ """"""""""""" .........
|
|
44""" T T ## @@@@@ "":::::::::::::""" ..........
|
|
45:::""" ## @@@@@ """::::::::::::::::::"" ...........
|
|
46::::::"" ## "":::::::::::::::::::::::""".........
|
|
47::::::::"""""""""""""""""""""""""""""""""""::::::::::::::::::::::::::::"""""""""
|
|
48::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
|
|
49################################################################################
|
|
50????????????????????????????????????????????????????????????????????????????????
|
|
51????????????????????????????????????????????????????????????????????????????????
|
|
52????????????????????????????????????????????????????????????????????????????????
|
|
53????????????????????????????????????????????????????????????????????????????????
|
|
54????????????????????????????????????????????????????????????????????????????????
|
|
55????????????????????????????????????????????????????????????????????????????????
|
|
Player: "Player hp=100.0/100.0 pos=(125.0,243.5) bodies=27/27 on_fire=false"
|
|
Entities: 2
|
|
Alive entities: Player(hp=100, pos=(125.0, 243.5)), Goblin(hp=40, pos=(110.0, 238.5))
|
|
|
|
=== Tick 48 ===
|
|
31
|
|
32
|
|
33
|
|
34
|
|
35
|
|
36 ggggg
|
|
37 TTTTT gggggg
|
|
38 T T gggggg
|
|
39 T T ggggg .
|
|
40 T T ggggg ...
|
|
41 T T ## @@@@@ .....
|
|
42 T T ## @@@@@@ .......
|
|
43 T T ## @@@@@@ """"""""""""" .........
|
|
44""" T T ## @@@@@ "":::::::::::::""" ..........
|
|
45:::""" ## @@@@@ """::::::::::::::::::"" ...........
|
|
46::::::"" ## "":::::::::::::::::::::::""".........
|
|
47::::::::"""""""""""""""""""""""""""""""""""::::::::::::::::::::::::::::"""""""""
|
|
48::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
|
|
49################################################################################
|
|
50????????????????????????????????????????????????????????????????????????????????
|
|
51????????????????????????????????????????????????????????????????????????????????
|
|
52????????????????????????????????????????????????????????????????????????????????
|
|
53????????????????????????????????????????????????????????????????????????????????
|
|
54????????????????????????????????????????????????????????????????????????????????
|
|
55????????????????????????????????????????????????????????????????????????????????
|
|
Player: "Player hp=100.0/100.0 pos=(125.0,243.5) bodies=27/27 on_fire=false"
|
|
Entities: 2
|
|
Alive entities: Player(hp=100, pos=(125.0, 243.5)), Goblin(hp=40, pos=(110.0, 238.5))
|
|
|
|
=== Tick 54 ===
|
|
31
|
|
32
|
|
33
|
|
34
|
|
35
|
|
36 ggggg
|
|
37 TTTTT gggggg
|
|
38 T T gggggg
|
|
39 T T ggggg .
|
|
40 T T ggggg ...
|
|
41 T T ## @@@@@ .....
|
|
42 T T ## @@@@@@ .......
|
|
43 T T ## @@@@@@ """"""""""""" .........
|
|
44""" T T ## @@@@@ "":::::::::::::""" ..........
|
|
45:::""" ## @@@@@ """::::::::::::::::::"" ...........
|
|
46::::::"" ## "":::::::::::::::::::::::""".........
|
|
47::::::::"""""""""""""""""""""""""""""""""""::::::::::::::::::::::::::::"""""""""
|
|
48::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
|
|
49################################################################################
|
|
50????????????????????????????????????????????????????????????????????????????????
|
|
51????????????????????????????????????????????????????????????????????????????????
|
|
52????????????????????????????????????????????????????????????????????????????????
|
|
53????????????????????????????????????????????????????????????????????????????????
|
|
54????????????????????????????????????????????????????????????????????????????????
|
|
55????????????????????????????????????????????????????????????????????????????????
|
|
Player: "Player hp=100.0/100.0 pos=(125.0,243.5) bodies=27/27 on_fire=false"
|
|
Entities: 2
|
|
Alive entities: Player(hp=100, pos=(125.0, 243.5)), Goblin(hp=40, pos=(110.0, 238.5))
|
|
|
|
=== Tick 60 ===
|
|
31
|
|
32
|
|
33
|
|
34
|
|
35
|
|
36 ggggg
|
|
37 TTTTT gggggg
|
|
38 T T gggggg
|
|
39 T T ggggg .
|
|
40 T T ggggg ...
|
|
41 T T gggggg @@@@@ .....
|
|
42 T T gggggg @@@@@@ .......
|
|
43 T T ggggg @@@@@@ """"""""""""" .........
|
|
44""" T T ggggg @@@@@ "":::::::::::::""" ..........
|
|
45:::""" ## @@@@@ """::::::::::::::::::"" ...........
|
|
46::::::"" ## "":::::::::::::::::::::::""".........
|
|
47::::::::"""""""""""""""""""""""""""""""""""::::::::::::::::::::::::::::"""""""""
|
|
48::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
|
|
49################################################################################
|
|
50????????????????????????????????????????????????????????????????????????????????
|
|
51????????????????????????????????????????????????????????????????????????????????
|
|
52????????????????????????????????????????????????????????????????????????????????
|
|
53????????????????????????????????????????????????????????????????????????????????
|
|
54????????????????????????????????????????????????????????????????????????????????
|
|
55????????????????????????????????????????????????????????????????????????????????
|
|
Player: "Player hp=100.0/100.0 pos=(125.0,243.5) bodies=27/27 on_fire=false"
|
|
Entities: 3
|
|
Alive entities: Player(hp=100, pos=(125.0, 243.5)), Goblin(hp=40, pos=(110.0, 238.5)), Goblin(hp=40, pos=(110.0, 242.0))
|
|
|