summaryrefslogtreecommitdiffstats
path: root/Graphics/GraphicsEngineVulkan
diff options
context:
space:
mode:
authorassiduous <assiduous@diligentgraphics.com>2020-07-26 18:59:04 +0000
committerassiduous <assiduous@diligentgraphics.com>2020-08-02 19:21:38 +0000
commit2a37e90153caf4aaa1c9d4aa9f082678feb29756 (patch)
treeaac1b2ce61d7814a18180f60f6a52e69fb69daac /Graphics/GraphicsEngineVulkan
parentAdded static asserts for Attachment Load/Store enums (diff)
downloadDiligentCore-2a37e90153caf4aaa1c9d4aa9f082678feb29756.tar.gz
DiligentCore-2a37e90153caf4aaa1c9d4aa9f082678feb29756.zip
Added PIPELINE_STAGE_FLAGS and ACCESS_FLAGS
Diffstat (limited to 'Graphics/GraphicsEngineVulkan')
-rw-r--r--Graphics/GraphicsEngineVulkan/include/VulkanTypeConversions.hpp3
-rw-r--r--Graphics/GraphicsEngineVulkan/src/VulkanTypeConversions.cpp61
2 files changed, 64 insertions, 0 deletions
diff --git a/Graphics/GraphicsEngineVulkan/include/VulkanTypeConversions.hpp b/Graphics/GraphicsEngineVulkan/include/VulkanTypeConversions.hpp
index c680c22d..741ced4f 100644
--- a/Graphics/GraphicsEngineVulkan/include/VulkanTypeConversions.hpp
+++ b/Graphics/GraphicsEngineVulkan/include/VulkanTypeConversions.hpp
@@ -79,4 +79,7 @@ ATTACHMENT_LOAD_OP VkAttachmentLoadOpToAttachmentLoadOp(VkAttachmentLoadOp VkLoa
VkAttachmentStoreOp AttachmentStoreOpToVkAttachmentStoreOp(ATTACHMENT_STORE_OP StoreOp);
ATTACHMENT_STORE_OP VkAttachmentStoreOpToAttachmentStoreOp(VkAttachmentStoreOp VkStoreOp);
+VkPipelineStageFlags PipelineStageFlagsToVkPipelineStageFlags(PIPELINE_STAGE_FLAGS PipelineStageFlags);
+VkAccessFlags AccessFlagsToVkAccessFlags(ACCESS_FLAGS AccessFlags);
+
} // namespace Diligent
diff --git a/Graphics/GraphicsEngineVulkan/src/VulkanTypeConversions.cpp b/Graphics/GraphicsEngineVulkan/src/VulkanTypeConversions.cpp
index 3d34813f..939c8e9d 100644
--- a/Graphics/GraphicsEngineVulkan/src/VulkanTypeConversions.cpp
+++ b/Graphics/GraphicsEngineVulkan/src/VulkanTypeConversions.cpp
@@ -1445,4 +1445,65 @@ ATTACHMENT_STORE_OP VkAttachmentStoreOpToAttachmentStoreOp(VkAttachmentStoreOp V
return static_cast<ATTACHMENT_STORE_OP>(VkStoreOp);
}
+
+// clang-format off
+static_assert(PIPELINE_STAGE_FLAG_TOP_OF_PIPE == VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT, "PIPELINE_STAGE_FLAG_TOP_OF_PIPE != VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT");
+static_assert(PIPELINE_STAGE_FLAG_DRAW_INDIRECT == VK_PIPELINE_STAGE_DRAW_INDIRECT_BIT, "PIPELINE_STAGE_FLAG_DRAW_INDIRECT != VK_PIPELINE_STAGE_DRAW_INDIRECT_BIT");
+static_assert(PIPELINE_STAGE_FLAG_VERTEX_INPUT == VK_PIPELINE_STAGE_VERTEX_INPUT_BIT, "PIPELINE_STAGE_FLAG_VERTEX_INPUT != VK_PIPELINE_STAGE_VERTEX_INPUT_BIT");
+static_assert(PIPELINE_STAGE_FLAG_VERTEX_SHADER == VK_PIPELINE_STAGE_VERTEX_SHADER_BIT, "PIPELINE_STAGE_FLAG_VERTEX_SHADER != VK_PIPELINE_STAGE_VERTEX_SHADER_BIT");
+static_assert(PIPELINE_STAGE_FLAG_HULL_SHADER == VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT, "PIPELINE_STAGE_FLAG_HULL_SHADER != VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT");
+static_assert(PIPELINE_STAGE_FLAG_DOMAIN_SHADER == VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT, "PIPELINE_STAGE_FLAG_DOMAIN_SHADER != VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT");
+static_assert(PIPELINE_STAGE_FLAG_GEOMETRY_SHADER == VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT, "PIPELINE_STAGE_FLAG_GEOMETRY_SHADER != VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT");
+static_assert(PIPELINE_STAGE_FLAG_FRAGMENT_SHADER == VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT, "PIPELINE_STAGE_FLAG_FRAGMENT_SHADER != VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT");
+static_assert(PIPELINE_STAGE_FLAG_EARLY_FRAGMENT_TESTS == VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT, "PIPELINE_STAGE_FLAG_EARLY_FRAGMENT_TESTS != VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT");
+static_assert(PIPELINE_STAGE_FLAG_LATE_FRAGMENT_TESTS == VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT, "PIPELINE_STAGE_FLAG_LATE_FRAGMENT_TESTS != VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT");
+static_assert(PIPELINE_STAGE_FLAG_RENDER_TARGET == VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT, "PIPELINE_STAGE_FLAG_RENDER_TARGET != VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT");
+static_assert(PIPELINE_STAGE_FLAG_COMPUTE_SHADER == VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT, "PIPELINE_STAGE_FLAG_COMPUTE_SHADER != VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT");
+static_assert(PIPELINE_STAGE_FLAG_TRANSFER == VK_PIPELINE_STAGE_TRANSFER_BIT, "PIPELINE_STAGE_FLAG_TRANSFER != VK_PIPELINE_STAGE_TRANSFER_BIT");
+static_assert(PIPELINE_STAGE_FLAG_BOTTOM_OF_PIPE == VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT, "PIPELINE_STAGE_FLAG_BOTTOM_OF_PIPE != VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT");
+static_assert(PIPELINE_STAGE_FLAG_HOST == VK_PIPELINE_STAGE_HOST_BIT, "PIPELINE_STAGE_FLAG_HOST != VK_PIPELINE_STAGE_HOST_BIT");
+static_assert(PIPELINE_STAGE_FLAG_CONDITIONAL_RENDERING == VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT, "PIPELINE_STAGE_FLAG_CONDITIONAL_RENDERING != VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT");
+static_assert(PIPELINE_STAGE_FLAG_SHADING_RATE_TEXTURE == VK_PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV, "PIPELINE_STAGE_FLAG_SHADING_RATE_IMAGE != VK_PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV");
+static_assert(PIPELINE_STAGE_FLAG_RAY_TRACING_SHADER == VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_NV, "PIPELINE_STAGE_FLAG_RAY_TRACING_SHADER != VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_NV");
+static_assert(PIPELINE_STAGE_FLAG_ACCELERATION_STRUCTURE_BUILD == VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_NV, "PIPELINE_STAGE_FLAG_ACCELERATION_STRUCTURE_BUILD != VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_NV");
+static_assert(PIPELINE_STAGE_FLAG_TASK_SHADER == VK_PIPELINE_STAGE_TASK_SHADER_BIT_NV, "PIPELINE_STAGE_FLAG_TASK_SHADER != VK_PIPELINE_STAGE_TASK_SHADER_BIT_NV");
+static_assert(PIPELINE_STAGE_FLAG_MESH_SHADER == VK_PIPELINE_STAGE_MESH_SHADER_BIT_NV, "PIPELINE_STAGE_FLAG_MESH_SHADER != VK_PIPELINE_STAGE_MESH_SHADER_BIT_NV");
+static_assert(PIPELINE_STAGE_FLAG_FRAGMENT_DENSITY_PROCESS == VK_PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT, "PIPELINE_STAGE_FLAG_FRAGMENT_DENSITY_PROCESS != VK_PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT");
+// clang-format on
+VkPipelineStageFlags PipelineStageFlagsToVkPipelineStageFlags(PIPELINE_STAGE_FLAGS PipelineStageFlags)
+{
+ return static_cast<VkPipelineStageFlags>(PipelineStageFlags);
+}
+
+
+// clang-format off
+static_assert(ACCESS_FLAG_NONE == 0, "");
+static_assert(ACCESS_FLAG_INDIRECT_COMMAND_READ == VK_ACCESS_INDIRECT_COMMAND_READ_BIT, "ACCESS_FLAG_INDIRECT_COMMAND_READ != VK_ACCESS_INDIRECT_COMMAND_READ_BIT");
+static_assert(ACCESS_FLAG_INDEX_READ == VK_ACCESS_INDEX_READ_BIT, "ACCESS_FLAG_INDEX_READ != VK_ACCESS_INDEX_READ_BIT");
+static_assert(ACCESS_FLAG_VERTEX_READ == VK_ACCESS_VERTEX_ATTRIBUTE_READ_BIT, "ACCESS_FLAG_VERTEX_READ != VK_ACCESS_VERTEX_ATTRIBUTE_READ_BIT");
+static_assert(ACCESS_FLAG_UNIFORM_READ == VK_ACCESS_UNIFORM_READ_BIT, "ACCESS_FLAG_UNIFORM_READ != VK_ACCESS_UNIFORM_READ_BIT");
+static_assert(ACCESS_FLAG_INPUT_ATTACHMENT_READ == VK_ACCESS_INPUT_ATTACHMENT_READ_BIT, "ACCESS_FLAG_INPUT_ATTACHMENT_READ != VK_ACCESS_INPUT_ATTACHMENT_READ_BIT");
+static_assert(ACCESS_FLAG_SHADER_READ == VK_ACCESS_SHADER_READ_BIT, "ACCESS_FLAG_SHADER_READ != VK_ACCESS_SHADER_READ_BIT");
+static_assert(ACCESS_FLAG_SHADER_WRITE == VK_ACCESS_SHADER_WRITE_BIT, "ACCESS_FLAG_SHADER_WRITE != VK_ACCESS_SHADER_WRITE_BIT");
+static_assert(ACCESS_FLAG_RENDER_TARGET_READ == VK_ACCESS_COLOR_ATTACHMENT_READ_BIT, "ACCESS_FLAG_RENDER_TARGET_READ != VK_ACCESS_COLOR_ATTACHMENT_READ_BIT");
+static_assert(ACCESS_FLAG_RENDER_TARGET_WRITE == VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT, "ACCESS_FLAG_RENDER_TARGET_WRITE != VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT");
+static_assert(ACCESS_FLAG_DEPTH_STENCIL_READ == VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT, "ACCESS_FLAG_DEPTH_STENCIL_READ != VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT");
+static_assert(ACCESS_FLAG_DEPTH_STENCIL_WRITE == VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT, "ACCESS_FLAG_DEPTH_STENCIL_WRITE != VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT");
+static_assert(ACCESS_FLAG_COPY_SRC == VK_ACCESS_TRANSFER_READ_BIT, "ACCESS_FLAG_COPY_SRC != VK_ACCESS_TRANSFER_READ_BIT");
+static_assert(ACCESS_FLAG_COPY_DST == VK_ACCESS_TRANSFER_WRITE_BIT, "ACCESS_FLAG_COPY_DST != VK_ACCESS_TRANSFER_WRITE_BIT");
+static_assert(ACCESS_FLAG_HOST_READ == VK_ACCESS_HOST_READ_BIT, "ACCESS_FLAG_HOST_READ != VK_ACCESS_HOST_READ_BIT");
+static_assert(ACCESS_FLAG_HOST_WRITE == VK_ACCESS_HOST_WRITE_BIT, "ACCESS_FLAG_HOST_WRITE != VK_ACCESS_HOST_WRITE_BIT");
+static_assert(ACCESS_FLAG_MEMORY_READ == VK_ACCESS_MEMORY_READ_BIT, "ACCESS_FLAG_MEMORY_READ != VK_ACCESS_MEMORY_READ_BIT");
+static_assert(ACCESS_FLAG_MEMORY_WRITE == VK_ACCESS_MEMORY_WRITE_BIT, "ACCESS_FLAG_MEMORY_WRITE != VK_ACCESS_MEMORY_WRITE_BIT");
+static_assert(ACCESS_FLAG_CONDITIONAL_RENDERING_READ == VK_ACCESS_CONDITIONAL_RENDERING_READ_BIT_EXT, "ACCESS_FLAG_CONDITIONAL_RENDERING_READ != VK_ACCESS_CONDITIONAL_RENDERING_READ_BIT_EXT");
+static_assert(ACCESS_FLAG_SHADING_RATE_TEXTURE_READ == VK_ACCESS_SHADING_RATE_IMAGE_READ_BIT_NV, "ACCESS_FLAG_SHADING_RATE_TEXTURE_READ != VK_ACCESS_SHADING_RATE_IMAGE_READ_BIT_NV");
+static_assert(ACCESS_FLAG_ACCELERATION_STRUCTURE_READ == VK_ACCESS_ACCELERATION_STRUCTURE_READ_BIT_NV, "ACCESS_FLAG_ACCELERATION_STRUCTURE_READ != VK_ACCESS_ACCELERATION_STRUCTURE_READ_BIT_NV");
+static_assert(ACCESS_FLAG_ACCELERATION_STRUCTURE_WRITE == VK_ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_NV, "ACCESS_FLAG_ACCELERATION_STRUCTURE_WRITE != VK_ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_NV");
+static_assert(ACCESS_FLAG_FRAGMENT_DENSITY_MAP_READ == VK_ACCESS_FRAGMENT_DENSITY_MAP_READ_BIT_EXT, "ACCESS_FLAG_FRAGMENT_DENSITY_MAP_READ != VK_ACCESS_FRAGMENT_DENSITY_MAP_READ_BIT_EXT");
+// clang-format on
+VkAccessFlags AccessFlagsToVkAccessFlags(ACCESS_FLAGS AccessFlags)
+{
+ return static_cast<VkAccessFlags>(AccessFlags);
+}
+
} // namespace Diligent