#include <cstring>
#include <map>
#include "dawn/common/Assert.h"
#include "dawn/common/vulkan_platform.h"
#include "dawn/native/stream/Stream.h"
#include "dawn/native/vulkan/RenderPassCache.h"
#include <vulkan/utility/vk_struct_helper.hpp>
namespace dawn::native {
namespace {
namespace detail {
template <typename... VK_STRUCT_TYPES>
void ValidatePnextImpl(const VkBaseOutStructure* root) { … }
template <typename VK_STRUCT_TYPE>
void SerializePnextImpl(stream::Sink* sink, const VkBaseOutStructure* root) { … }
template <typename VK_STRUCT_TYPE,
typename... VK_STRUCT_TYPES,
typename = std::enable_if_t<(sizeof...(VK_STRUCT_TYPES) > 0)>>
void SerializePnextImpl(stream::Sink* sink, const VkBaseOutStructure* root) { … }
template <typename VK_STRUCT_TYPE>
const VkBaseOutStructure* ToVkBaseOutStructure(const VK_STRUCT_TYPE* t) { … }
}
template <typename... VK_STRUCT_TYPES,
typename VK_STRUCT_TYPE,
typename = std::enable_if_t<(sizeof...(VK_STRUCT_TYPES) > 0)>>
void SerializePnext(stream::Sink* sink, const VK_STRUCT_TYPE* t) { … }
template <typename VK_STRUCT_TYPE>
void SerializePnext(stream::Sink* sink, const VK_STRUCT_TYPE* t) { … }
}
template <>
void stream::Stream<VkDescriptorSetLayoutBinding>::Write(stream::Sink* sink,
const VkDescriptorSetLayoutBinding& t) { … }
template <>
void stream::Stream<VkDescriptorSetLayoutCreateInfo>::Write(
stream::Sink* sink,
const VkDescriptorSetLayoutCreateInfo& t) { … }
template <>
void stream::Stream<VkPushConstantRange>::Write(stream::Sink* sink, const VkPushConstantRange& t) { … }
template <>
void stream::Stream<VkPipelineLayoutCreateInfo>::Write(stream::Sink* sink,
const VkPipelineLayoutCreateInfo& t) { … }
template <>
void stream::Stream<VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT>::Write(
stream::Sink* sink,
const VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT& t) { … }
template <>
void stream::Stream<VkPipelineRasterizationDepthClipStateCreateInfoEXT>::Write(
stream::Sink* sink,
const VkPipelineRasterizationDepthClipStateCreateInfoEXT& t) { … }
template <>
void stream::Stream<VkSpecializationMapEntry>::Write(stream::Sink* sink,
const VkSpecializationMapEntry& t) { … }
template <>
void stream::Stream<VkSpecializationInfo>::Write(stream::Sink* sink,
const VkSpecializationInfo& t) { … }
template <>
void stream::Stream<VkPipelineShaderStageCreateInfo>::Write(
stream::Sink* sink,
const VkPipelineShaderStageCreateInfo& t) { … }
template <>
void stream::Stream<VkComputePipelineCreateInfo>::Write(stream::Sink* sink,
const VkComputePipelineCreateInfo& t) { … }
template <>
void stream::Stream<VkVertexInputBindingDescription>::Write(
stream::Sink* sink,
const VkVertexInputBindingDescription& t) { … }
template <>
void stream::Stream<VkVertexInputAttributeDescription>::Write(
stream::Sink* sink,
const VkVertexInputAttributeDescription& t) { … }
template <>
void stream::Stream<VkPipelineVertexInputStateCreateInfo>::Write(
stream::Sink* sink,
const VkPipelineVertexInputStateCreateInfo& t) { … }
template <>
void stream::Stream<VkPipelineInputAssemblyStateCreateInfo>::Write(
stream::Sink* sink,
const VkPipelineInputAssemblyStateCreateInfo& t) { … }
template <>
void stream::Stream<VkPipelineTessellationStateCreateInfo>::Write(
stream::Sink* sink,
const VkPipelineTessellationStateCreateInfo& t) { … }
template <>
void stream::Stream<VkViewport>::Write(stream::Sink* sink, const VkViewport& t) { … }
template <>
void stream::Stream<VkOffset2D>::Write(stream::Sink* sink, const VkOffset2D& t) { … }
template <>
void stream::Stream<VkExtent2D>::Write(stream::Sink* sink, const VkExtent2D& t) { … }
template <>
void stream::Stream<VkRect2D>::Write(stream::Sink* sink, const VkRect2D& t) { … }
template <>
void stream::Stream<VkPipelineViewportStateCreateInfo>::Write(
stream::Sink* sink,
const VkPipelineViewportStateCreateInfo& t) { … }
template <>
void stream::Stream<VkPipelineRasterizationStateCreateInfo>::Write(
stream::Sink* sink,
const VkPipelineRasterizationStateCreateInfo& t) { … }
template <>
void stream::Stream<VkPipelineMultisampleStateCreateInfo>::Write(
stream::Sink* sink,
const VkPipelineMultisampleStateCreateInfo& t) { … }
template <>
void stream::Stream<VkStencilOpState>::Write(stream::Sink* sink, const VkStencilOpState& t) { … }
template <>
void stream::Stream<VkPipelineDepthStencilStateCreateInfo>::Write(
stream::Sink* sink,
const VkPipelineDepthStencilStateCreateInfo& t) { … }
template <>
void stream::Stream<VkPipelineColorBlendAttachmentState>::Write(
stream::Sink* sink,
const VkPipelineColorBlendAttachmentState& t) { … }
template <>
void stream::Stream<VkPipelineColorBlendStateCreateInfo>::Write(
stream::Sink* sink,
const VkPipelineColorBlendStateCreateInfo& t) { … }
template <>
void stream::Stream<VkPipelineDynamicStateCreateInfo>::Write(
stream::Sink* sink,
const VkPipelineDynamicStateCreateInfo& t) { … }
template <>
void stream::Stream<vulkan::RenderPassCacheQuery>::Write(stream::Sink* sink,
const vulkan::RenderPassCacheQuery& t) { … }
template <>
void stream::Stream<VkGraphicsPipelineCreateInfo>::Write(stream::Sink* sink,
const VkGraphicsPipelineCreateInfo& t) { … }
}