mirror of
https://git.code.sf.net/p/quake/quakeforge
synced 2025-02-25 13:11:00 +00:00
I got a sync validation error on a scatter command (I think) thus the setting was probably wrong. Most of the parameters are still what they were, but I'll be able to tweak the barriers as necessary. Unfortunately, it didn't help with the hang on fetching the light cull query data when starting in fisheye mode (no hang when enabling fisheye after startup). I'm not sure what's going on there other than the queries aren't getting updated: the counts seem to be fine so maybe the commands aren't running. I've probably got a tangled mess of pseudo-parallel command buffers: I need to go through my system and clean everything up.
56 lines
1.5 KiB
C
56 lines
1.5 KiB
C
#ifndef __QF_Vulkan_barrier_h
|
|
#define __QF_Vulkan_barrier_h
|
|
|
|
#ifndef VK_NO_PROTOTYPES
|
|
#define VK_NO_PROTOTYPES
|
|
#endif
|
|
#include <vulkan/vulkan.h>
|
|
|
|
typedef struct qfv_imagebarrier_s {
|
|
VkPipelineStageFlags srcStages;
|
|
VkPipelineStageFlags dstStages;
|
|
VkImageMemoryBarrier barrier;
|
|
} qfv_imagebarrier_t;
|
|
|
|
typedef struct qfv_bufferbarrier_s {
|
|
VkPipelineStageFlags srcStages;
|
|
VkPipelineStageFlags dstStages;
|
|
VkBufferMemoryBarrier barrier;
|
|
} qfv_bufferbarrier_t;
|
|
|
|
// image layout transitions
|
|
enum {
|
|
qfv_LT_Undefined_to_TransferDst,
|
|
qfv_LT_Undefined_to_General,
|
|
qfv_LT_Undefined_to_ShaderReadOnly,
|
|
qfv_LT_TransferDst_to_TransferDst,
|
|
qfv_LT_TransferDst_to_TransferSrc,
|
|
qfv_LT_TransferDst_to_General,
|
|
qfv_LT_TransferDst_to_ShaderReadOnly,
|
|
qfv_LT_TransferSrc_to_ShaderReadOnly,
|
|
qfv_LT_ShaderReadOnly_to_TransferDst,
|
|
qfv_LT_Undefined_to_DepthStencil,
|
|
qfv_LT_Undefined_to_Color,
|
|
};
|
|
|
|
// buffer barriers
|
|
enum {
|
|
qfv_BB_Unknown_to_TransferWrite,
|
|
qfv_BB_UniformRead_to_TransferWrite,
|
|
qfv_BB_VertexAttrRead_to_TransferWrite,
|
|
qfv_BB_TransferWrite_to_VertexAttrRead,
|
|
qfv_BB_TransferWrite_to_IndexRead,
|
|
qfv_BB_TransferWrite_to_UniformRead,
|
|
qfv_BB_TransferWrite_to_ShaderRW,
|
|
qfv_BB_ShaderRW_to_ShaderRO,
|
|
qfv_BB_ShaderRW_to_ShaderRO_VA,
|
|
qfv_BB_ShaderRO_to_ShaderWrite,
|
|
qfv_BB_ShaderRO_VA_to_ShaderWrite,
|
|
qfv_BB_ShaderWrite_to_ShaderRO,
|
|
qfv_BB_ShaderWrite_to_ShaderRW,
|
|
};
|
|
|
|
extern const qfv_imagebarrier_t imageBarriers[];
|
|
extern const qfv_bufferbarrier_t bufferBarriers[];
|
|
|
|
#endif//__QF_Vulkan_barrier_h
|