mirror of
https://git.code.sf.net/p/quake/quakeforge
synced 2024-11-10 15:22:04 +00:00
[vulkan] Add an undefined to shader-ro barrier
I guess it's kind of UB, but it's handy for images that will be conditionally written by the GPU but need to be in shader-read-only for draw calls and the validation layers can't tell that the layers won't be used.
This commit is contained in:
parent
00040c8900
commit
39bb433498
2 changed files with 14 additions and 0 deletions
|
@ -22,6 +22,7 @@ typedef struct qfv_bufferbarrier_s {
|
||||||
enum {
|
enum {
|
||||||
qfv_LT_Undefined_to_TransferDst,
|
qfv_LT_Undefined_to_TransferDst,
|
||||||
qfv_LT_Undefined_to_General,
|
qfv_LT_Undefined_to_General,
|
||||||
|
qfv_LT_Undefined_to_ShaderReadOnly,
|
||||||
qfv_LT_TransferDst_to_TransferSrc,
|
qfv_LT_TransferDst_to_TransferSrc,
|
||||||
qfv_LT_TransferDst_to_General,
|
qfv_LT_TransferDst_to_General,
|
||||||
qfv_LT_TransferDst_to_ShaderReadOnly,
|
qfv_LT_TransferDst_to_ShaderReadOnly,
|
||||||
|
|
|
@ -57,6 +57,19 @@ const qfv_imagebarrier_t imageBarriers[] = {
|
||||||
{ VK_IMAGE_ASPECT_COLOR_BIT, 0, 1, 0, 1 }
|
{ VK_IMAGE_ASPECT_COLOR_BIT, 0, 1, 0, 1 }
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
[qfv_LT_Undefined_to_ShaderReadOnly] = {
|
||||||
|
.srcStages = VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT,
|
||||||
|
.dstStages = VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT,
|
||||||
|
.barrier = {
|
||||||
|
VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER, 0,
|
||||||
|
0,
|
||||||
|
VK_ACCESS_SHADER_READ_BIT,
|
||||||
|
VK_IMAGE_LAYOUT_UNDEFINED,
|
||||||
|
VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL,
|
||||||
|
VK_QUEUE_FAMILY_IGNORED, VK_QUEUE_FAMILY_IGNORED, 0,
|
||||||
|
{ VK_IMAGE_ASPECT_COLOR_BIT, 0, 1, 0, 1 }
|
||||||
|
},
|
||||||
|
},
|
||||||
[qfv_LT_TransferDst_to_TransferSrc] = {
|
[qfv_LT_TransferDst_to_TransferSrc] = {
|
||||||
.srcStages = VK_PIPELINE_STAGE_TRANSFER_BIT,
|
.srcStages = VK_PIPELINE_STAGE_TRANSFER_BIT,
|
||||||
.dstStages = VK_PIPELINE_STAGE_TRANSFER_BIT,
|
.dstStages = VK_PIPELINE_STAGE_TRANSFER_BIT,
|
||||||
|
|
Loading…
Reference in a new issue