1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
gpu / ipc / common / vulkan_types.mojom [blame]
// 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;
};