Skip to content

Commit 47a6baa

Browse files
committed
addressing more comments.
1 parent 7bf9dab commit 47a6baa

File tree

3 files changed

+13
-11
lines changed

3 files changed

+13
-11
lines changed

en/Building_a_Simple_Engine/Subsystems/06_conclusion.adoc

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -67,9 +67,9 @@ While our implementations provide a solid foundation, there are several areas wh
6767

6868
==== General Improvements
6969

70-
* *Cross-Platform Support*: Ensure the subsystems work across different platforms, with appropriate fallbacks for devices without Vulkan support.
70+
* *Driver and Platform Coverage*: Test the subsystems across a representative set of Vulkan-capable platforms and drivers (e.g., Windows/Linux, major IHVs, Android, and macOS via MoltenVK). Non-Vulkan fallbacks are out of scope for this tutorial.
7171
* *Profiling and Optimization*: Add detailed profiling to identify and address performance bottlenecks.
72-
* *Memory Management*: Implement more sophisticated memory management to reduce fragmentation and improve cache coherency.
72+
* *Memory Management*: Use allocator suballocation strategies (e.g., Vulkan Memory Allocator or custom pools), batch buffer/image allocations, and group resources by usage to reduce fragmentation and improve cache locality.
7373
* *Multi-Threading*: Further optimize CPU-side processing with multi-threading where appropriate.
7474

7575
=== Integration with Other Engine Systems

en/Building_a_Simple_Engine/Tooling/02_cicd.adoc

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -80,27 +80,27 @@ jobs:
8080

8181
When setting up CI/CD for Vulkan projects, consider these specific challenges:
8282

83-
===== 1. Vulkan SDK Installation
83+
===== Vulkan SDK Installation
8484

8585
Ensure your CI environment has the Vulkan SDK installed. Many CI platforms don't include it by default. In the example above, we used a GitHub Action to install the SDK.
8686

87-
===== 2. GPU Availability in CI Environments
87+
===== GPU Availability in CI Environments
8888

8989
Most CI environments don't have GPUs available, which can make testing Vulkan applications challenging. Consider these approaches:
9090

9191
* Use software rendering (e.g., SwiftShader) for basic tests
9292
* Implement a headless testing mode that doesn't require a display
9393
* Use cloud-based GPU instances for more comprehensive testing
9494

95-
===== 3. Platform-Specific Vulkan Loaders
95+
===== Platform-Specific Vulkan Loaders
9696

9797
Different platforms handle Vulkan loading differently. Ensure your build system correctly handles these differences:
9898

9999
* Windows: Vulkan-1.dll is typically loaded at runtime
100100
* Linux: libvulkan.so.1 is loaded at runtime
101101
* macOS: MoltenVK provides Vulkan support via Metal
102102

103-
===== 4. Shader Compilation
103+
===== Shader Compilation
104104

105105
Shader compilation can be a complex part of the build process. Consider these approaches:
106106

en/Building_a_Simple_Engine/Tooling/03_debugging_and_renderdoc.adoc

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -191,7 +191,9 @@ void submit_work(vk::raii::Queue& queue, vk::raii::CommandBuffer& cmd_buffer) {
191191

192192
=== Using RenderDoc
193193

194-
RenderDoc is a powerful graphics debugging tool that allows you to capture frames from your application and analyze them in detail. It's particularly useful for Vulkan applications due to its comprehensive support for the API.
194+
RenderDoc is a graphics frame debugger and capture/analysis tool (not a compiler). It allows you to capture frames from your application and analyze them in detail. It's particularly useful for Vulkan applications due to its comprehensive support for the API.
195+
196+
NOTE: In this section we refer to the Event Browser, Pipeline State, and Resource Inspector panels in RenderDoc. Screenshots should accompany these instructions to show where debug names and labels appear in the UI.
195197

196198
==== Integrating RenderDoc with Your Application
197199

@@ -261,10 +263,10 @@ Once you've captured a frame, you can analyze it in the RenderDoc application. H
261263

262264
To get the most out of RenderDoc:
263265

264-
1. *Use Object Names*: As discussed earlier, naming your Vulkan objects makes them much easier to identify in RenderDoc
265-
2. *Use Command Buffer Labels*: These appear in RenderDoc's event browser, making it easier to navigate complex frames
266-
3. *Capture Specific Frames*: Use the in-application API to capture frames where issues occur
267-
4. *Reduce Workload*: For complex applications, consider disabling features or reducing resolution when debugging
266+
1. *Use Object Names*: As discussed earlier, naming your Vulkan objects makes them much easier to identify in RenderDoc (you'll see them in the Resource Inspector and Pipeline State views).
267+
2. *Use Command Buffer Labels*: These appear in RenderDoc's Event Browser and help you navigate to the relevant draw/dispatch quickly.
268+
3. *Capture the Problem Frame*: Trigger a capture exactly when the issue occurs (via hotkey or the in-application API) to minimize unrelated events and noise.
269+
4. *Minimize to a Repro*: Create a minimal reproducible scene or toggle features off to isolate the problem. If you reduce resolution, make sure it doesn't alter ordering/timing in a way that hides the bug.
268270

269271
=== Combining VK_KHR_debug_utils and RenderDoc
270272

0 commit comments

Comments
 (0)