Skip to content

Commit 5e77ea9

Browse files
authored
Merge pull request #96 from wpsimon09/patch-1
Fixed old glsl `local_` prefix in the compute shader tutorial and fixed 404 links
2 parents 9f798ad + 80a1524 commit 5e77ea9

File tree

1 file changed

+6
-7
lines changed

1 file changed

+6
-7
lines changed

en/11_Compute_Shader.adoc

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -199,7 +199,7 @@ outputImage[int2(gl_GlobalInvocationID.xy)] = pixel;
199199

200200
== Compute queue families
201201

202-
In the link:03_Drawing_a_triangle/00_Setup/03_Physical_devices_and_queue_families.adoc[physical device and queue families chapter],
202+
In the xref:03_Drawing_a_triangle/00_Setup/03_Physical_devices_and_queue_families.adoc[physical device and queue families chapter],
203203
we have already learned about queue families and how to select a graphics queue family.
204204
Compute uses the queue family properties flag bit `vk::QueueFlagBits::eCompute`.
205205
So if we want to do compute work, we need to get a queue from a queue family that supports compute.
@@ -518,8 +518,7 @@ An interesting thing is this compute-only declaration related to the compute spa
518518

519519
This defines the number of invocations of this compute shader in the current work group.
520520
As noted earlier, this is the local part of the compute space.
521-
Hence, the `local_` prefix.
522-
As we work on a linear 1D array of particles, we only need to specify a number for x dimension in `local_size_x`.
521+
As we work on a linear 1D array of particles, we only need to specify a number for x dimension in `[numthreads(x,y,z)]`.
523522

524523
The `compMain` function then reads from the last frame's SSBO and writes the
525524
updated particle position to the SSBO for the current frame.
@@ -590,8 +589,8 @@ Wrong or lacking synchronization may result in the vertex stage starting to draw
590589
So we must make sure that those cases don't happen by properly synchronizing the graphics and the compute load.
591590
There are different ways of doing so, depending on how you submit your
592591
compute workload, but in our case with two separate submits, we'll be using
593-
link:03_Drawing_a_triangle/03_Drawing/02_Rendering_and_presentation.adoc[semaphores] and
594-
link:03_Drawing_a_triangle/03_Drawing/02_Rendering_and_presentation.adoc[fences] to ensure that the vertex shader won't start fetching
592+
xref:03_Drawing_a_triangle/03_Drawing/02_Rendering_and_presentation.adoc[semaphores] and
593+
xref:03_Drawing_a_triangle/03_Drawing/02_Rendering_and_presentation.adoc[fences] to ensure that the vertex shader won't start fetching
595594
vertices until the compute shader has finished updating them.
596595

597596
This is necessary as even though the two submits are ordered one-after-another, there is no guarantee that they execute on the GPU in this order.
@@ -601,7 +600,7 @@ So we first add a new set of synchronization primitives for the compute work in
601600
The compute fences, just like the graphics fences, are created in the
602601
signaled state because otherwise, the first draw would time out while waiting
603602
for the fences to be signaled as detailed
604-
link:03_Drawing_a_triangle/03_Drawing/02_Rendering_and_presentation.adoc[here]:
603+
xref:03_Drawing_a_triangle/03_Drawing/02_Rendering_and_presentation.adoc[here]:
605604

606605
[,c++]
607606
----
@@ -651,7 +650,7 @@ We then use these to synchronize the compute buffer submission with the graphics
651650
----
652651

653652
Similar to the sample in the
654-
link:03_Drawing_a_triangle/03_Drawing/02_Rendering_and_presentation.adoc[semaphore chapter], this setup will immediately run the
653+
xref:03_Drawing_a_triangle/03_Drawing/02_Rendering_and_presentation.adoc[semaphore chapter], this setup will immediately run the
655654
compute shader as we haven't specified any wait semaphores.
656655
Note that we're using scoping braces above to ensure that the RAII temporary
657656
variables we use get a chance to clean themselves up between the compute and

0 commit comments

Comments
 (0)