KhronosGroup / KhronosGroup/Vulkan-Docs

Execution dependency chain with TOP_OF_PIPE/BOTTOM_OF_PIPE/NONE

Open
#2,049 1 comment 1 reaction 1 assignee Claimed by @HansKristian-Work View on GitHub
Dominant language
JavaScript
Stars
3.3k
Forks
549
Avg merge
5d 5h
Merged PRs (30d)
2

Description

As it turns out from https://github.com/KhronosGroup/Vulkan-Docs/issues/755#issuecomment-1411760828, `VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT` and `VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT` can form execution dependency chains with each other and other pipeline stages.

Consider the following example:

```
barrierA.dstStageMask = BOTTOM_OF_PIPE = NONE
barrierB.srcStageMask = BOTTOM_OF_PIPE = ALL_COMMANDS
```
Barriers `barrierA` and `barrierB` do form an execution dependency chain.

This is unexpected at least, since (1) no commands are executing these pipeline stages and (2) it is not spelled out in the specification.

The introduction of `VK_PIPELINE_STAGE_NONE` made this even more confusing, since like in the above example, it **can** form an execution dependency chain as well, despite its name, it is **not** _none_ at all.

To avoid confusions, these semantics should be explicitly spelled out in the specification.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.