1// Copyright 2019 The Chromium Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5// This file is auto-generated from
6// gpu/ipc/common/generate_vulkan_types.py
7// It's formatted by clang-format using chromium coding style:
8//    clang-format -i -style=chromium filename
9// DO NOT EDIT!
10
11module gpu.mojom;
12
13struct VkExtensionProperties {
14  string extensionName;
15  uint32 specVersion;
16};
17
18struct VkLayerProperties {
19  string layerName;
20  uint32 specVersion;
21  uint32 implementationVersion;
22  string description;
23};
24
25enum VkPhysicalDeviceType {
26  OTHER = 0,
27  INTEGRATED_GPU = 1,
28  DISCRETE_GPU = 2,
29  VIRTUAL_GPU = 3,
30  CPU = 4,
31  INVALID_VALUE = -1,
32};
33
34struct VkPhysicalDeviceLimits {
35  uint32 maxImageDimension1D;
36  uint32 maxImageDimension2D;
37  uint32 maxImageDimension3D;
38  uint32 maxImageDimensionCube;
39  uint32 maxImageArrayLayers;
40  uint32 maxTexelBufferElements;
41  uint32 maxUniformBufferRange;
42  uint32 maxStorageBufferRange;
43  uint32 maxPushConstantsSize;
44  uint32 maxMemoryAllocationCount;
45  uint32 maxSamplerAllocationCount;
46  uint64 bufferImageGranularity;
47  uint64 sparseAddressSpaceSize;
48  uint32 maxBoundDescriptorSets;
49  uint32 maxPerStageDescriptorSamplers;
50  uint32 maxPerStageDescriptorUniformBuffers;
51  uint32 maxPerStageDescriptorStorageBuffers;
52  uint32 maxPerStageDescriptorSampledImages;
53  uint32 maxPerStageDescriptorStorageImages;
54  uint32 maxPerStageDescriptorInputAttachments;
55  uint32 maxPerStageResources;
56  uint32 maxDescriptorSetSamplers;
57  uint32 maxDescriptorSetUniformBuffers;
58  uint32 maxDescriptorSetUniformBuffersDynamic;
59  uint32 maxDescriptorSetStorageBuffers;
60  uint32 maxDescriptorSetStorageBuffersDynamic;
61  uint32 maxDescriptorSetSampledImages;
62  uint32 maxDescriptorSetStorageImages;
63  uint32 maxDescriptorSetInputAttachments;
64  uint32 maxVertexInputAttributes;
65  uint32 maxVertexInputBindings;
66  uint32 maxVertexInputAttributeOffset;
67  uint32 maxVertexInputBindingStride;
68  uint32 maxVertexOutputComponents;
69  uint32 maxTessellationGenerationLevel;
70  uint32 maxTessellationPatchSize;
71  uint32 maxTessellationControlPerVertexInputComponents;
72  uint32 maxTessellationControlPerVertexOutputComponents;
73  uint32 maxTessellationControlPerPatchOutputComponents;
74  uint32 maxTessellationControlTotalOutputComponents;
75  uint32 maxTessellationEvaluationInputComponents;
76  uint32 maxTessellationEvaluationOutputComponents;
77  uint32 maxGeometryShaderInvocations;
78  uint32 maxGeometryInputComponents;
79  uint32 maxGeometryOutputComponents;
80  uint32 maxGeometryOutputVertices;
81  uint32 maxGeometryTotalOutputComponents;
82  uint32 maxFragmentInputComponents;
83  uint32 maxFragmentOutputAttachments;
84  uint32 maxFragmentDualSrcAttachments;
85  uint32 maxFragmentCombinedOutputResources;
86  uint32 maxComputeSharedMemorySize;
87  array<uint32, 3> maxComputeWorkGroupCount;
88  uint32 maxComputeWorkGroupInvocations;
89  array<uint32, 3> maxComputeWorkGroupSize;
90  uint32 subPixelPrecisionBits;
91  uint32 subTexelPrecisionBits;
92  uint32 mipmapPrecisionBits;
93  uint32 maxDrawIndexedIndexValue;
94  uint32 maxDrawIndirectCount;
95  float maxSamplerLodBias;
96  float maxSamplerAnisotropy;
97  uint32 maxViewports;
98  array<uint32, 2> maxViewportDimensions;
99  array<float, 2> viewportBoundsRange;
100  uint32 viewportSubPixelBits;
101  uint64 minMemoryMapAlignment;
102  uint64 minTexelBufferOffsetAlignment;
103  uint64 minUniformBufferOffsetAlignment;
104  uint64 minStorageBufferOffsetAlignment;
105  int32 minTexelOffset;
106  uint32 maxTexelOffset;
107  int32 minTexelGatherOffset;
108  uint32 maxTexelGatherOffset;
109  float minInterpolationOffset;
110  float maxInterpolationOffset;
111  uint32 subPixelInterpolationOffsetBits;
112  uint32 maxFramebufferWidth;
113  uint32 maxFramebufferHeight;
114  uint32 maxFramebufferLayers;
115  uint32 framebufferColorSampleCounts;
116  uint32 framebufferDepthSampleCounts;
117  uint32 framebufferStencilSampleCounts;
118  uint32 framebufferNoAttachmentsSampleCounts;
119  uint32 maxColorAttachments;
120  uint32 sampledImageColorSampleCounts;
121  uint32 sampledImageIntegerSampleCounts;
122  uint32 sampledImageDepthSampleCounts;
123  uint32 sampledImageStencilSampleCounts;
124  uint32 storageImageSampleCounts;
125  uint32 maxSampleMaskWords;
126  bool timestampComputeAndGraphics;
127  float timestampPeriod;
128  uint32 maxClipDistances;
129  uint32 maxCullDistances;
130  uint32 maxCombinedClipAndCullDistances;
131  uint32 discreteQueuePriorities;
132  array<float, 2> pointSizeRange;
133  array<float, 2> lineWidthRange;
134  float pointSizeGranularity;
135  float lineWidthGranularity;
136  bool strictLines;
137  bool standardSampleLocations;
138  uint64 optimalBufferCopyOffsetAlignment;
139  uint64 optimalBufferCopyRowPitchAlignment;
140  uint64 nonCoherentAtomSize;
141};
142
143struct VkPhysicalDeviceSparseProperties {
144  bool residencyStandard2DBlockShape;
145  bool residencyStandard2DMultisampleBlockShape;
146  bool residencyStandard3DBlockShape;
147  bool residencyAlignedMipSize;
148  bool residencyNonResidentStrict;
149};
150
151struct VkPhysicalDeviceProperties {
152  uint32 apiVersion;
153  uint32 driverVersion;
154  uint32 vendorID;
155  uint32 deviceID;
156  VkPhysicalDeviceType deviceType;
157  string deviceName;
158  array<uint8, 16> pipelineCacheUUID;
159  VkPhysicalDeviceLimits limits;
160  VkPhysicalDeviceSparseProperties sparseProperties;
161};
162
163struct VkPhysicalDeviceFeatures {
164  bool robustBufferAccess;
165  bool fullDrawIndexUint32;
166  bool imageCubeArray;
167  bool independentBlend;
168  bool geometryShader;
169  bool tessellationShader;
170  bool sampleRateShading;
171  bool dualSrcBlend;
172  bool logicOp;
173  bool multiDrawIndirect;
174  bool drawIndirectFirstInstance;
175  bool depthClamp;
176  bool depthBiasClamp;
177  bool fillModeNonSolid;
178  bool depthBounds;
179  bool wideLines;
180  bool largePoints;
181  bool alphaToOne;
182  bool multiViewport;
183  bool samplerAnisotropy;
184  bool textureCompressionETC2;
185  bool textureCompressionASTC_LDR;
186  bool textureCompressionBC;
187  bool occlusionQueryPrecise;
188  bool pipelineStatisticsQuery;
189  bool vertexPipelineStoresAndAtomics;
190  bool fragmentStoresAndAtomics;
191  bool shaderTessellationAndGeometryPointSize;
192  bool shaderImageGatherExtended;
193  bool shaderStorageImageExtendedFormats;
194  bool shaderStorageImageMultisample;
195  bool shaderStorageImageReadWithoutFormat;
196  bool shaderStorageImageWriteWithoutFormat;
197  bool shaderUniformBufferArrayDynamicIndexing;
198  bool shaderSampledImageArrayDynamicIndexing;
199  bool shaderStorageBufferArrayDynamicIndexing;
200  bool shaderStorageImageArrayDynamicIndexing;
201  bool shaderClipDistance;
202  bool shaderCullDistance;
203  bool shaderFloat64;
204  bool shaderInt64;
205  bool shaderInt16;
206  bool shaderResourceResidency;
207  bool shaderResourceMinLod;
208  bool sparseBinding;
209  bool sparseResidencyBuffer;
210  bool sparseResidencyImage2D;
211  bool sparseResidencyImage3D;
212  bool sparseResidency2Samples;
213  bool sparseResidency4Samples;
214  bool sparseResidency8Samples;
215  bool sparseResidency16Samples;
216  bool sparseResidencyAliased;
217  bool variableMultisampleRate;
218  bool inheritedQueries;
219};
220
221struct VkExtent3D {
222  uint32 width;
223  uint32 height;
224  uint32 depth;
225};
226
227struct VkQueueFamilyProperties {
228  uint32 queueFlags;
229  uint32 queueCount;
230  uint32 timestampValidBits;
231  VkExtent3D minImageTransferGranularity;
232};
233