chromium/gpu/ipc/common/vulkan_types.mojom

// Copyright 2019 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

// This file is auto-generated from
// gpu/ipc/common/generate_vulkan_types.py
// It's formatted by clang-format using chromium coding style:
//    clang-format -i -style=chromium filename
// DO NOT EDIT!

module gpu.mojom;

struct VkExtensionProperties {
  string extensionName;
  uint32 specVersion;
};

struct VkLayerProperties {
  string layerName;
  uint32 specVersion;
  uint32 implementationVersion;
  string description;
};

enum VkPhysicalDeviceType {
  OTHER = 0,
  INTEGRATED_GPU = 1,
  DISCRETE_GPU = 2,
  VIRTUAL_GPU = 3,
  CPU = 4,
  INVALID_VALUE = -1,
};

struct VkPhysicalDeviceLimits {
  uint32 maxImageDimension1D;
  uint32 maxImageDimension2D;
  uint32 maxImageDimension3D;
  uint32 maxImageDimensionCube;
  uint32 maxImageArrayLayers;
  uint32 maxTexelBufferElements;
  uint32 maxUniformBufferRange;
  uint32 maxStorageBufferRange;
  uint32 maxPushConstantsSize;
  uint32 maxMemoryAllocationCount;
  uint32 maxSamplerAllocationCount;
  uint64 bufferImageGranularity;
  uint64 sparseAddressSpaceSize;
  uint32 maxBoundDescriptorSets;
  uint32 maxPerStageDescriptorSamplers;
  uint32 maxPerStageDescriptorUniformBuffers;
  uint32 maxPerStageDescriptorStorageBuffers;
  uint32 maxPerStageDescriptorSampledImages;
  uint32 maxPerStageDescriptorStorageImages;
  uint32 maxPerStageDescriptorInputAttachments;
  uint32 maxPerStageResources;
  uint32 maxDescriptorSetSamplers;
  uint32 maxDescriptorSetUniformBuffers;
  uint32 maxDescriptorSetUniformBuffersDynamic;
  uint32 maxDescriptorSetStorageBuffers;
  uint32 maxDescriptorSetStorageBuffersDynamic;
  uint32 maxDescriptorSetSampledImages;
  uint32 maxDescriptorSetStorageImages;
  uint32 maxDescriptorSetInputAttachments;
  uint32 maxVertexInputAttributes;
  uint32 maxVertexInputBindings;
  uint32 maxVertexInputAttributeOffset;
  uint32 maxVertexInputBindingStride;
  uint32 maxVertexOutputComponents;
  uint32 maxTessellationGenerationLevel;
  uint32 maxTessellationPatchSize;
  uint32 maxTessellationControlPerVertexInputComponents;
  uint32 maxTessellationControlPerVertexOutputComponents;
  uint32 maxTessellationControlPerPatchOutputComponents;
  uint32 maxTessellationControlTotalOutputComponents;
  uint32 maxTessellationEvaluationInputComponents;
  uint32 maxTessellationEvaluationOutputComponents;
  uint32 maxGeometryShaderInvocations;
  uint32 maxGeometryInputComponents;
  uint32 maxGeometryOutputComponents;
  uint32 maxGeometryOutputVertices;
  uint32 maxGeometryTotalOutputComponents;
  uint32 maxFragmentInputComponents;
  uint32 maxFragmentOutputAttachments;
  uint32 maxFragmentDualSrcAttachments;
  uint32 maxFragmentCombinedOutputResources;
  uint32 maxComputeSharedMemorySize;
  array<uint32, 3> maxComputeWorkGroupCount;
  uint32 maxComputeWorkGroupInvocations;
  array<uint32, 3> maxComputeWorkGroupSize;
  uint32 subPixelPrecisionBits;
  uint32 subTexelPrecisionBits;
  uint32 mipmapPrecisionBits;
  uint32 maxDrawIndexedIndexValue;
  uint32 maxDrawIndirectCount;
  float maxSamplerLodBias;
  float maxSamplerAnisotropy;
  uint32 maxViewports;
  array<uint32, 2> maxViewportDimensions;
  array<float, 2> viewportBoundsRange;
  uint32 viewportSubPixelBits;
  uint64 minMemoryMapAlignment;
  uint64 minTexelBufferOffsetAlignment;
  uint64 minUniformBufferOffsetAlignment;
  uint64 minStorageBufferOffsetAlignment;
  int32 minTexelOffset;
  uint32 maxTexelOffset;
  int32 minTexelGatherOffset;
  uint32 maxTexelGatherOffset;
  float minInterpolationOffset;
  float maxInterpolationOffset;
  uint32 subPixelInterpolationOffsetBits;
  uint32 maxFramebufferWidth;
  uint32 maxFramebufferHeight;
  uint32 maxFramebufferLayers;
  uint32 framebufferColorSampleCounts;
  uint32 framebufferDepthSampleCounts;
  uint32 framebufferStencilSampleCounts;
  uint32 framebufferNoAttachmentsSampleCounts;
  uint32 maxColorAttachments;
  uint32 sampledImageColorSampleCounts;
  uint32 sampledImageIntegerSampleCounts;
  uint32 sampledImageDepthSampleCounts;
  uint32 sampledImageStencilSampleCounts;
  uint32 storageImageSampleCounts;
  uint32 maxSampleMaskWords;
  bool timestampComputeAndGraphics;
  float timestampPeriod;
  uint32 maxClipDistances;
  uint32 maxCullDistances;
  uint32 maxCombinedClipAndCullDistances;
  uint32 discreteQueuePriorities;
  array<float, 2> pointSizeRange;
  array<float, 2> lineWidthRange;
  float pointSizeGranularity;
  float lineWidthGranularity;
  bool strictLines;
  bool standardSampleLocations;
  uint64 optimalBufferCopyOffsetAlignment;
  uint64 optimalBufferCopyRowPitchAlignment;
  uint64 nonCoherentAtomSize;
};

struct VkPhysicalDeviceSparseProperties {
  bool residencyStandard2DBlockShape;
  bool residencyStandard2DMultisampleBlockShape;
  bool residencyStandard3DBlockShape;
  bool residencyAlignedMipSize;
  bool residencyNonResidentStrict;
};

struct VkPhysicalDeviceProperties {
  uint32 apiVersion;
  uint32 driverVersion;
  uint32 vendorID;
  uint32 deviceID;
  VkPhysicalDeviceType deviceType;
  string deviceName;
  array<uint8, 16> pipelineCacheUUID;
  VkPhysicalDeviceLimits limits;
  VkPhysicalDeviceSparseProperties sparseProperties;
};

struct VkPhysicalDeviceFeatures {
  bool robustBufferAccess;
  bool fullDrawIndexUint32;
  bool imageCubeArray;
  bool independentBlend;
  bool geometryShader;
  bool tessellationShader;
  bool sampleRateShading;
  bool dualSrcBlend;
  bool logicOp;
  bool multiDrawIndirect;
  bool drawIndirectFirstInstance;
  bool depthClamp;
  bool depthBiasClamp;
  bool fillModeNonSolid;
  bool depthBounds;
  bool wideLines;
  bool largePoints;
  bool alphaToOne;
  bool multiViewport;
  bool samplerAnisotropy;
  bool textureCompressionETC2;
  bool textureCompressionASTC_LDR;
  bool textureCompressionBC;
  bool occlusionQueryPrecise;
  bool pipelineStatisticsQuery;
  bool vertexPipelineStoresAndAtomics;
  bool fragmentStoresAndAtomics;
  bool shaderTessellationAndGeometryPointSize;
  bool shaderImageGatherExtended;
  bool shaderStorageImageExtendedFormats;
  bool shaderStorageImageMultisample;
  bool shaderStorageImageReadWithoutFormat;
  bool shaderStorageImageWriteWithoutFormat;
  bool shaderUniformBufferArrayDynamicIndexing;
  bool shaderSampledImageArrayDynamicIndexing;
  bool shaderStorageBufferArrayDynamicIndexing;
  bool shaderStorageImageArrayDynamicIndexing;
  bool shaderClipDistance;
  bool shaderCullDistance;
  bool shaderFloat64;
  bool shaderInt64;
  bool shaderInt16;
  bool shaderResourceResidency;
  bool shaderResourceMinLod;
  bool sparseBinding;
  bool sparseResidencyBuffer;
  bool sparseResidencyImage2D;
  bool sparseResidencyImage3D;
  bool sparseResidency2Samples;
  bool sparseResidency4Samples;
  bool sparseResidency8Samples;
  bool sparseResidency16Samples;
  bool sparseResidencyAliased;
  bool variableMultisampleRate;
  bool inheritedQueries;
};

struct VkExtent3D {
  uint32 width;
  uint32 height;
  uint32 depth;
};

struct VkQueueFamilyProperties {
  uint32 queueFlags;
  uint32 queueCount;
  uint32 timestampValidBits;
  VkExtent3D minImageTransferGranularity;
};