Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

enable best practices validation #270

Open
wants to merge 596 commits into
base: main
Choose a base branch
from

Conversation

jjYBdx4IL
Copy link

@jjYBdx4IL jjYBdx4IL commented Feb 26, 2022

There are some best practices validation warnings.

DragonJoker and others added 30 commits June 17, 2019 18:17
L'appel à `createBuffer` n'est fait qu'une seule fois dans `createVertexBuffer` à ce stade du tutoriel.
API est féminin, tandis que pipeline est masulin.
Je me suis permis de mettre des majuscules aux noms d'objets de l'API qui sont en anglais. A valider
Quelques typos et tournures de phrase corrigées
…st in English, because the French version is used everywhere later on.
Overv and others added 27 commits September 19, 2021 21:47
Code samples: add CMakeLists.txt
Update link to Ray Tracing book
Update 04_Swap_chain_recreation.md
Mention std::clamp in explanatory comment instead of min/max
Fix minor typo in french translation
Add full name for vkBindXMemory functions in french translation
Chnage createFrameBuffers to createFramebuffers because it's written as "createFramebuffers" in the source code
Change createFrameBuffers to createFramebuffers
Fixed getMaxUsableSampleCount() formatting
- Removed no-longer updated quick reference
- Update link to chunked Vulkan 1.2 spec
- Added link to the Khronos Vulkan Guide
Added Arch Linux support, plus a "`make`" formatting fix.
Use Vulkan 1.3 spec
* Update tutorial for command buffer re-recording

Means the code now calls recordCommandBuffer every frame instead of ahead of time

Many changes to the structure of chapters 14 & 15, with small changes to subsequent
chapters.

Primary focus was shifting everything away from 'swapchain image count' to
MAX_FRAMES_IN_FLIGHT. This has caused a lot of chapter 15 to need to be rewritten.
Such as: Introducing fences alongside semaphores and not later; Waiting on a fence
at the start of the frame before introducing acquireNextImage; consolidating the
Frames In Flight concepts to apply to command buffers, fences, and semaphores at
the same time.

Chapter 14 saw command buffer allocation reduced to 1 at a time. This allows the
concept of Frames in Flight to not need introduction before having a triangle
drawing on the screen.

* Update introduction to semaphores and fences

Greatly improve the descriptions of semaphores and fences before their
introduction into the code. Provide examples with psuedo code.

By using max_frames_in_flight command buffers & semaphores, we dont
need to keep track of previously sumitted frames' fences and wait
on them "just in case". This removes a lot of the confusion I had
when I first was trying to understand the vulkan update loop.

* Remove accidental code changes

Un-comment vkDeviceWaitIdle and remove resizing of imagesInFlight (which was removed)

* Use uint32_t instead of size_t for currentFrame

* Address typos and fixup changes for re-recording command buffers PR

* Add description of fences needing explicit resetting while semaphores are automatic
* Elaborate on why 2 frames in flight are chosen

* Fix deadlock in resizing from resetting the fence too early

Because acquiring the swapchain image index may cause drawFrame to return early,
it was possible to cause the next vkWaitForFences to deadlock. By delaying fence
resetting till after acquiring, it prevents the deadlock.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet