• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1/* WARNING: This is auto-generated file. Do not modify, since changes will
2 * be lost! Modify the generating script instead.
3 */
4VkPhysicalDeviceConditionalRenderingFeaturesEXT		deviceConditionalRenderingFeaturesEXT[count];
5VkPhysicalDeviceScalarBlockLayoutFeatures			deviceScalarBlockLayoutFeatures[count];
6VkPhysicalDevicePerformanceQueryFeaturesKHR			devicePerformanceQueryFeaturesKHR[count];
7VkPhysicalDevice16BitStorageFeatures				device16BitStorageFeatures[count];
8VkPhysicalDeviceMultiviewFeatures					deviceMultiviewFeatures[count];
9VkPhysicalDeviceProtectedMemoryFeatures				deviceProtectedMemoryFeatures[count];
10VkPhysicalDeviceSamplerYcbcrConversionFeatures		deviceSamplerYcbcrConversionFeatures[count];
11VkPhysicalDeviceVariablePointersFeatures			deviceVariablePointersFeatures[count];
12VkPhysicalDevice8BitStorageFeatures					device8BitStorageFeatures[count];
13VkPhysicalDeviceShaderAtomicInt64Features			deviceShaderAtomicInt64Features[count];
14VkPhysicalDeviceShaderFloat16Int8Features			deviceShaderFloat16Int8Features[count];
15VkPhysicalDeviceBufferDeviceAddressFeaturesEXT		deviceBufferDeviceAddressFeaturesEXT[count];
16VkPhysicalDeviceBufferDeviceAddressFeatures			deviceBufferDeviceAddressFeatures[count];
17VkPhysicalDeviceDescriptorIndexingFeatures			deviceDescriptorIndexingFeatures[count];
18VkPhysicalDeviceTimelineSemaphoreFeatures			deviceTimelineSemaphoreFeatures[count];
19VkPhysicalDeviceFragmentDensityMapFeaturesEXT		deviceFragmentDensityMapFeaturesEXT[count];
20VkPhysicalDeviceFragmentDensityMap2FeaturesEXT		deviceFragmentDensityMap2FeaturesEXT[count];
21VkPhysicalDeviceShaderIntegerDotProductFeaturesKHR	deviceShaderIntegerDotProductFeaturesKHR[count];
22
23const bool isConditionalRenderingFeaturesEXT	= checkExtension(properties, "VK_EXT_conditional_rendering");
24const bool isScalarBlockLayoutFeatures			= checkExtension(properties, "VK_EXT_scalar_block_layout")			|| context.contextSupports(vk::ApiVersion(1, 2, 0));
25const bool isPerformanceQueryFeaturesKHR		= checkExtension(properties, "VK_KHR_performance_query");
26const bool is16BitStorageFeatures				= checkExtension(properties, "VK_KHR_16bit_storage")				|| context.contextSupports(vk::ApiVersion(1, 1, 0));
27const bool isMultiviewFeatures					= checkExtension(properties, "VK_KHR_multiview")					|| context.contextSupports(vk::ApiVersion(1, 1, 0));
28const bool isProtectedMemoryFeatures			=																	   context.contextSupports(vk::ApiVersion(1, 1, 0));
29const bool isSamplerYcbcrConversionFeatures		= checkExtension(properties, "VK_KHR_sampler_ycbcr_conversion")		|| context.contextSupports(vk::ApiVersion(1, 1, 0));
30const bool isVariablePointersFeatures			= checkExtension(properties, "VK_KHR_variable_pointers")			|| context.contextSupports(vk::ApiVersion(1, 1, 0));
31const bool is8BitStorageFeatures				= checkExtension(properties, "VK_KHR_8bit_storage")					|| context.contextSupports(vk::ApiVersion(1, 2, 0));
32const bool isShaderAtomicInt64Features			= checkExtension(properties, "VK_KHR_shader_atomic_int64")			|| context.contextSupports(vk::ApiVersion(1, 2, 0));
33const bool isShaderFloat16Int8Features			= checkExtension(properties, "VK_KHR_shader_float16_int8")			|| context.contextSupports(vk::ApiVersion(1, 2, 0));
34const bool isBufferDeviceAddressFeaturesEXT		= checkExtension(properties, "VK_EXT_buffer_device_address");
35const bool isBufferDeviceAddressFeatures		= checkExtension(properties, "VK_KHR_buffer_device_address")		|| context.contextSupports(vk::ApiVersion(1, 2, 0));
36const bool isDescriptorIndexingFeatures			= checkExtension(properties, "VK_EXT_descriptor_indexing")			|| context.contextSupports(vk::ApiVersion(1, 2, 0));
37const bool isTimelineSemaphoreFeatures			= checkExtension(properties, "VK_KHR_timeline_semaphore")			|| context.contextSupports(vk::ApiVersion(1, 2, 0));
38const bool isFragmentDensityMapFeaturesEXT		= checkExtension(properties, "VK_EXT_fragment_density_map");
39const bool isFragmentDensityMap2FeaturesEXT		= checkExtension(properties, "VK_EXT_fragment_density_map2");
40const bool isShaderIntegerDotProductFeaturesKHR	= checkExtension(properties, "VK_KHR_shader_integer_dot_product");
41
42for (int ndx = 0; ndx < count; ++ndx)
43{
44	deMemset(&deviceConditionalRenderingFeaturesEXT[ndx],	0xFF * ndx, sizeof(VkPhysicalDeviceConditionalRenderingFeaturesEXT));
45	deMemset(&deviceScalarBlockLayoutFeatures[ndx],			0xFF * ndx, sizeof(VkPhysicalDeviceScalarBlockLayoutFeatures));
46	deMemset(&devicePerformanceQueryFeaturesKHR[ndx],		0xFF * ndx, sizeof(VkPhysicalDevicePerformanceQueryFeaturesKHR));
47	deMemset(&device16BitStorageFeatures[ndx],				0xFF * ndx, sizeof(VkPhysicalDevice16BitStorageFeatures));
48	deMemset(&deviceMultiviewFeatures[ndx],					0xFF * ndx, sizeof(VkPhysicalDeviceMultiviewFeatures));
49	deMemset(&deviceProtectedMemoryFeatures[ndx],			0xFF * ndx, sizeof(VkPhysicalDeviceProtectedMemoryFeatures));
50	deMemset(&deviceSamplerYcbcrConversionFeatures[ndx],	0xFF * ndx, sizeof(VkPhysicalDeviceSamplerYcbcrConversionFeatures));
51	deMemset(&deviceVariablePointersFeatures[ndx],			0xFF * ndx, sizeof(VkPhysicalDeviceVariablePointersFeatures));
52	deMemset(&device8BitStorageFeatures[ndx],				0xFF * ndx, sizeof(VkPhysicalDevice8BitStorageFeatures));
53	deMemset(&deviceShaderAtomicInt64Features[ndx],			0xFF * ndx, sizeof(VkPhysicalDeviceShaderAtomicInt64Features));
54	deMemset(&deviceShaderFloat16Int8Features[ndx],			0xFF * ndx, sizeof(VkPhysicalDeviceShaderFloat16Int8Features));
55	deMemset(&deviceBufferDeviceAddressFeaturesEXT[ndx],	0xFF * ndx, sizeof(VkPhysicalDeviceBufferDeviceAddressFeaturesEXT));
56	deMemset(&deviceBufferDeviceAddressFeatures[ndx],		0xFF * ndx, sizeof(VkPhysicalDeviceBufferDeviceAddressFeatures));
57	deMemset(&deviceDescriptorIndexingFeatures[ndx],		0xFF * ndx, sizeof(VkPhysicalDeviceDescriptorIndexingFeatures));
58	deMemset(&deviceTimelineSemaphoreFeatures[ndx],			0xFF * ndx, sizeof(VkPhysicalDeviceTimelineSemaphoreFeatures));
59	deMemset(&deviceFragmentDensityMapFeaturesEXT[ndx],		0xFF * ndx, sizeof(VkPhysicalDeviceFragmentDensityMapFeaturesEXT));
60	deMemset(&deviceFragmentDensityMap2FeaturesEXT[ndx],	0xFF * ndx, sizeof(VkPhysicalDeviceFragmentDensityMap2FeaturesEXT));
61	deMemset(&deviceShaderIntegerDotProductFeaturesKHR[ndx],0xFF * ndx, sizeof(VkPhysicalDeviceShaderIntegerDotProductFeaturesKHR));
62
63	deviceConditionalRenderingFeaturesEXT[ndx].sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT;
64	deviceConditionalRenderingFeaturesEXT[ndx].pNext = &deviceScalarBlockLayoutFeatures[ndx];
65
66	deviceScalarBlockLayoutFeatures[ndx].sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES;
67	deviceScalarBlockLayoutFeatures[ndx].pNext = &devicePerformanceQueryFeaturesKHR[ndx];
68
69	devicePerformanceQueryFeaturesKHR[ndx].sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_FEATURES_KHR;
70	devicePerformanceQueryFeaturesKHR[ndx].pNext = &device16BitStorageFeatures[ndx];
71
72	device16BitStorageFeatures[ndx].sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES;
73	device16BitStorageFeatures[ndx].pNext = &deviceMultiviewFeatures[ndx];
74
75	deviceMultiviewFeatures[ndx].sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES;
76	deviceMultiviewFeatures[ndx].pNext = &deviceProtectedMemoryFeatures[ndx];
77
78	deviceProtectedMemoryFeatures[ndx].sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES;
79	deviceProtectedMemoryFeatures[ndx].pNext = &deviceSamplerYcbcrConversionFeatures[ndx];
80
81	deviceSamplerYcbcrConversionFeatures[ndx].sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES;
82	deviceSamplerYcbcrConversionFeatures[ndx].pNext = &deviceVariablePointersFeatures[ndx];
83
84	deviceVariablePointersFeatures[ndx].sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES;
85	deviceVariablePointersFeatures[ndx].pNext = &device8BitStorageFeatures[ndx];
86
87	device8BitStorageFeatures[ndx].sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES;
88	device8BitStorageFeatures[ndx].pNext = &deviceShaderAtomicInt64Features[ndx];
89
90	deviceShaderAtomicInt64Features[ndx].sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES;
91	deviceShaderAtomicInt64Features[ndx].pNext = &deviceShaderFloat16Int8Features[ndx];
92
93	deviceShaderFloat16Int8Features[ndx].sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES;
94	deviceShaderFloat16Int8Features[ndx].pNext = &deviceBufferDeviceAddressFeaturesEXT[ndx];
95
96	deviceBufferDeviceAddressFeaturesEXT[ndx].sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_EXT;
97	deviceBufferDeviceAddressFeaturesEXT[ndx].pNext = &deviceBufferDeviceAddressFeatures[ndx];
98
99	deviceBufferDeviceAddressFeatures[ndx].sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES;
100	deviceBufferDeviceAddressFeatures[ndx].pNext = &deviceDescriptorIndexingFeatures[ndx];
101
102	deviceDescriptorIndexingFeatures[ndx].sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES;
103	deviceDescriptorIndexingFeatures[ndx].pNext = &deviceTimelineSemaphoreFeatures[ndx];
104
105	deviceTimelineSemaphoreFeatures[ndx].sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES;
106	deviceTimelineSemaphoreFeatures[ndx].pNext = &deviceFragmentDensityMapFeaturesEXT[ndx];
107
108	deviceFragmentDensityMapFeaturesEXT[ndx].sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_FEATURES_EXT;
109	deviceFragmentDensityMapFeaturesEXT[ndx].pNext = &deviceFragmentDensityMap2FeaturesEXT[ndx];
110
111	deviceFragmentDensityMap2FeaturesEXT[ndx].sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_FEATURES_EXT;
112	deviceFragmentDensityMap2FeaturesEXT[ndx].pNext = &deviceShaderIntegerDotProductFeaturesKHR[ndx];
113
114	deviceShaderIntegerDotProductFeaturesKHR[ndx].sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES_KHR;
115	deviceShaderIntegerDotProductFeaturesKHR[ndx].pNext = DE_NULL;
116
117	deMemset(&extFeatures.features, 0xcd, sizeof(extFeatures.features));
118	extFeatures.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2;
119	extFeatures.pNext = &deviceConditionalRenderingFeaturesEXT[ndx];
120	vki.getPhysicalDeviceFeatures2(physicalDevice, &extFeatures);
121}
122
123if (isConditionalRenderingFeaturesEXT)
124	log << TestLog::Message << deviceConditionalRenderingFeaturesEXT[0] << TestLog::EndMessage;
125if (isScalarBlockLayoutFeatures)
126	log << TestLog::Message << deviceScalarBlockLayoutFeatures[0] << TestLog::EndMessage;
127if (isPerformanceQueryFeaturesKHR)
128	log << TestLog::Message << devicePerformanceQueryFeaturesKHR[0] << TestLog::EndMessage;
129if (is16BitStorageFeatures)
130	log << TestLog::Message << device16BitStorageFeatures[0] << TestLog::EndMessage;
131if (isMultiviewFeatures)
132	log << TestLog::Message << deviceMultiviewFeatures[0] << TestLog::EndMessage;
133if (isProtectedMemoryFeatures)
134	log << TestLog::Message << deviceProtectedMemoryFeatures[0] << TestLog::EndMessage;
135if (isSamplerYcbcrConversionFeatures)
136	log << TestLog::Message << deviceSamplerYcbcrConversionFeatures[0] << TestLog::EndMessage;
137if (isVariablePointersFeatures)
138	log << TestLog::Message << deviceVariablePointersFeatures[0] << TestLog::EndMessage;
139if (is8BitStorageFeatures)
140	log << TestLog::Message << device8BitStorageFeatures[0] << TestLog::EndMessage;
141if (isShaderAtomicInt64Features)
142	log << TestLog::Message << deviceShaderAtomicInt64Features[0] << TestLog::EndMessage;
143if (isShaderFloat16Int8Features)
144	log << TestLog::Message << deviceShaderFloat16Int8Features[0] << TestLog::EndMessage;
145if (isBufferDeviceAddressFeaturesEXT)
146	log << TestLog::Message << deviceBufferDeviceAddressFeaturesEXT[0] << TestLog::EndMessage;
147if (isBufferDeviceAddressFeatures)
148	log << TestLog::Message << deviceBufferDeviceAddressFeatures[0] << TestLog::EndMessage;
149if (isDescriptorIndexingFeatures)
150	log << TestLog::Message << deviceDescriptorIndexingFeatures[0] << TestLog::EndMessage;
151if (isTimelineSemaphoreFeatures)
152	log << TestLog::Message << deviceTimelineSemaphoreFeatures[0] << TestLog::EndMessage;
153if (isFragmentDensityMapFeaturesEXT)
154	log << TestLog::Message << deviceFragmentDensityMapFeaturesEXT[0] << TestLog::EndMessage;
155if (isFragmentDensityMap2FeaturesEXT)
156	log << TestLog::Message << deviceFragmentDensityMap2FeaturesEXT[0] << TestLog::EndMessage;
157if (isShaderIntegerDotProductFeaturesKHR)
158	log << TestLog::Message << deviceShaderIntegerDotProductFeaturesKHR[0] << TestLog::EndMessage;
159
160if (isConditionalRenderingFeaturesEXT &&
161	(deviceConditionalRenderingFeaturesEXT[0].conditionalRendering != deviceConditionalRenderingFeaturesEXT[1].conditionalRendering ||
162	 deviceConditionalRenderingFeaturesEXT[0].inheritedConditionalRendering != deviceConditionalRenderingFeaturesEXT[1].inheritedConditionalRendering))
163{
164		TCU_FAIL("Mismatch between VkPhysicalDeviceConditionalRenderingFeaturesEXT");
165}
166if (isScalarBlockLayoutFeatures &&
167	(deviceScalarBlockLayoutFeatures[0].scalarBlockLayout != deviceScalarBlockLayoutFeatures[1].scalarBlockLayout))
168{
169		TCU_FAIL("Mismatch between VkPhysicalDeviceScalarBlockLayoutFeatures");
170}
171if (isPerformanceQueryFeaturesKHR &&
172	(devicePerformanceQueryFeaturesKHR[0].performanceCounterQueryPools != devicePerformanceQueryFeaturesKHR[1].performanceCounterQueryPools ||
173	 devicePerformanceQueryFeaturesKHR[0].performanceCounterMultipleQueryPools != devicePerformanceQueryFeaturesKHR[1].performanceCounterMultipleQueryPools))
174{
175		TCU_FAIL("Mismatch between VkPhysicalDevicePerformanceQueryFeaturesKHR");
176}
177if (is16BitStorageFeatures &&
178	(device16BitStorageFeatures[0].storageBuffer16BitAccess != device16BitStorageFeatures[1].storageBuffer16BitAccess ||
179	 device16BitStorageFeatures[0].uniformAndStorageBuffer16BitAccess != device16BitStorageFeatures[1].uniformAndStorageBuffer16BitAccess ||
180	 device16BitStorageFeatures[0].storagePushConstant16 != device16BitStorageFeatures[1].storagePushConstant16 ||
181	 device16BitStorageFeatures[0].storageInputOutput16 != device16BitStorageFeatures[1].storageInputOutput16))
182{
183		TCU_FAIL("Mismatch between VkPhysicalDevice16BitStorageFeatures");
184}
185if (isMultiviewFeatures &&
186	(deviceMultiviewFeatures[0].multiview != deviceMultiviewFeatures[1].multiview ||
187	 deviceMultiviewFeatures[0].multiviewGeometryShader != deviceMultiviewFeatures[1].multiviewGeometryShader ||
188	 deviceMultiviewFeatures[0].multiviewTessellationShader != deviceMultiviewFeatures[1].multiviewTessellationShader))
189{
190		TCU_FAIL("Mismatch between VkPhysicalDeviceMultiviewFeatures");
191}
192if (isProtectedMemoryFeatures &&
193	(deviceProtectedMemoryFeatures[0].protectedMemory != deviceProtectedMemoryFeatures[1].protectedMemory))
194{
195		TCU_FAIL("Mismatch between VkPhysicalDeviceProtectedMemoryFeatures");
196}
197if (isSamplerYcbcrConversionFeatures &&
198	(deviceSamplerYcbcrConversionFeatures[0].samplerYcbcrConversion != deviceSamplerYcbcrConversionFeatures[1].samplerYcbcrConversion))
199{
200		TCU_FAIL("Mismatch between VkPhysicalDeviceSamplerYcbcrConversionFeatures");
201}
202if (isVariablePointersFeatures &&
203	(deviceVariablePointersFeatures[0].variablePointersStorageBuffer != deviceVariablePointersFeatures[1].variablePointersStorageBuffer ||
204	 deviceVariablePointersFeatures[0].variablePointers != deviceVariablePointersFeatures[1].variablePointers))
205{
206		TCU_FAIL("Mismatch between VkPhysicalDeviceVariablePointersFeatures");
207}
208if (is8BitStorageFeatures &&
209	(device8BitStorageFeatures[0].storageBuffer8BitAccess != device8BitStorageFeatures[1].storageBuffer8BitAccess ||
210	 device8BitStorageFeatures[0].uniformAndStorageBuffer8BitAccess != device8BitStorageFeatures[1].uniformAndStorageBuffer8BitAccess ||
211	 device8BitStorageFeatures[0].storagePushConstant8 != device8BitStorageFeatures[1].storagePushConstant8))
212{
213		TCU_FAIL("Mismatch between VkPhysicalDevice8BitStorageFeatures");
214}
215if (isShaderAtomicInt64Features &&
216	(deviceShaderAtomicInt64Features[0].shaderBufferInt64Atomics != deviceShaderAtomicInt64Features[1].shaderBufferInt64Atomics ||
217	 deviceShaderAtomicInt64Features[0].shaderSharedInt64Atomics != deviceShaderAtomicInt64Features[1].shaderSharedInt64Atomics))
218{
219		TCU_FAIL("Mismatch between VkPhysicalDeviceShaderAtomicInt64Features");
220}
221if (isShaderFloat16Int8Features &&
222	(deviceShaderFloat16Int8Features[0].shaderFloat16 != deviceShaderFloat16Int8Features[1].shaderFloat16 ||
223	 deviceShaderFloat16Int8Features[0].shaderInt8 != deviceShaderFloat16Int8Features[1].shaderInt8))
224{
225		TCU_FAIL("Mismatch between VkPhysicalDeviceShaderFloat16Int8Features");
226}
227if (isBufferDeviceAddressFeaturesEXT &&
228	(deviceBufferDeviceAddressFeaturesEXT[0].bufferDeviceAddress != deviceBufferDeviceAddressFeaturesEXT[1].bufferDeviceAddress ||
229	 deviceBufferDeviceAddressFeaturesEXT[0].bufferDeviceAddressCaptureReplay != deviceBufferDeviceAddressFeaturesEXT[1].bufferDeviceAddressCaptureReplay ||
230	 deviceBufferDeviceAddressFeaturesEXT[0].bufferDeviceAddressMultiDevice != deviceBufferDeviceAddressFeaturesEXT[1].bufferDeviceAddressMultiDevice))
231{
232		TCU_FAIL("Mismatch between VkPhysicalDeviceBufferDeviceAddressFeaturesEXT");
233}
234if (isBufferDeviceAddressFeatures &&
235	(deviceBufferDeviceAddressFeatures[0].bufferDeviceAddress != deviceBufferDeviceAddressFeatures[1].bufferDeviceAddress ||
236	 deviceBufferDeviceAddressFeatures[0].bufferDeviceAddressCaptureReplay != deviceBufferDeviceAddressFeatures[1].bufferDeviceAddressCaptureReplay ||
237	 deviceBufferDeviceAddressFeatures[0].bufferDeviceAddressMultiDevice != deviceBufferDeviceAddressFeatures[1].bufferDeviceAddressMultiDevice))
238{
239		TCU_FAIL("Mismatch between VkPhysicalDeviceBufferDeviceAddressFeatures");
240}
241if (isDescriptorIndexingFeatures &&
242	(deviceDescriptorIndexingFeatures[0].shaderInputAttachmentArrayDynamicIndexing != deviceDescriptorIndexingFeatures[1].shaderInputAttachmentArrayDynamicIndexing ||
243	 deviceDescriptorIndexingFeatures[0].shaderUniformTexelBufferArrayDynamicIndexing != deviceDescriptorIndexingFeatures[1].shaderUniformTexelBufferArrayDynamicIndexing ||
244	 deviceDescriptorIndexingFeatures[0].shaderStorageTexelBufferArrayDynamicIndexing != deviceDescriptorIndexingFeatures[1].shaderStorageTexelBufferArrayDynamicIndexing ||
245	 deviceDescriptorIndexingFeatures[0].shaderUniformBufferArrayNonUniformIndexing != deviceDescriptorIndexingFeatures[1].shaderUniformBufferArrayNonUniformIndexing ||
246	 deviceDescriptorIndexingFeatures[0].shaderSampledImageArrayNonUniformIndexing != deviceDescriptorIndexingFeatures[1].shaderSampledImageArrayNonUniformIndexing ||
247	 deviceDescriptorIndexingFeatures[0].shaderStorageBufferArrayNonUniformIndexing != deviceDescriptorIndexingFeatures[1].shaderStorageBufferArrayNonUniformIndexing ||
248	 deviceDescriptorIndexingFeatures[0].shaderStorageImageArrayNonUniformIndexing != deviceDescriptorIndexingFeatures[1].shaderStorageImageArrayNonUniformIndexing ||
249	 deviceDescriptorIndexingFeatures[0].shaderInputAttachmentArrayNonUniformIndexing != deviceDescriptorIndexingFeatures[1].shaderInputAttachmentArrayNonUniformIndexing ||
250	 deviceDescriptorIndexingFeatures[0].shaderUniformTexelBufferArrayNonUniformIndexing != deviceDescriptorIndexingFeatures[1].shaderUniformTexelBufferArrayNonUniformIndexing ||
251	 deviceDescriptorIndexingFeatures[0].shaderStorageTexelBufferArrayNonUniformIndexing != deviceDescriptorIndexingFeatures[1].shaderStorageTexelBufferArrayNonUniformIndexing ||
252	 deviceDescriptorIndexingFeatures[0].descriptorBindingUniformBufferUpdateAfterBind != deviceDescriptorIndexingFeatures[1].descriptorBindingUniformBufferUpdateAfterBind ||
253	 deviceDescriptorIndexingFeatures[0].descriptorBindingSampledImageUpdateAfterBind != deviceDescriptorIndexingFeatures[1].descriptorBindingSampledImageUpdateAfterBind ||
254	 deviceDescriptorIndexingFeatures[0].descriptorBindingStorageImageUpdateAfterBind != deviceDescriptorIndexingFeatures[1].descriptorBindingStorageImageUpdateAfterBind ||
255	 deviceDescriptorIndexingFeatures[0].descriptorBindingStorageBufferUpdateAfterBind != deviceDescriptorIndexingFeatures[1].descriptorBindingStorageBufferUpdateAfterBind ||
256	 deviceDescriptorIndexingFeatures[0].descriptorBindingUniformTexelBufferUpdateAfterBind != deviceDescriptorIndexingFeatures[1].descriptorBindingUniformTexelBufferUpdateAfterBind ||
257	 deviceDescriptorIndexingFeatures[0].descriptorBindingStorageTexelBufferUpdateAfterBind != deviceDescriptorIndexingFeatures[1].descriptorBindingStorageTexelBufferUpdateAfterBind ||
258	 deviceDescriptorIndexingFeatures[0].descriptorBindingUpdateUnusedWhilePending != deviceDescriptorIndexingFeatures[1].descriptorBindingUpdateUnusedWhilePending ||
259	 deviceDescriptorIndexingFeatures[0].descriptorBindingPartiallyBound != deviceDescriptorIndexingFeatures[1].descriptorBindingPartiallyBound ||
260	 deviceDescriptorIndexingFeatures[0].descriptorBindingVariableDescriptorCount != deviceDescriptorIndexingFeatures[1].descriptorBindingVariableDescriptorCount ||
261	 deviceDescriptorIndexingFeatures[0].runtimeDescriptorArray != deviceDescriptorIndexingFeatures[1].runtimeDescriptorArray))
262{
263		TCU_FAIL("Mismatch between VkPhysicalDeviceDescriptorIndexingFeatures");
264}
265if (isTimelineSemaphoreFeatures &&
266	(deviceTimelineSemaphoreFeatures[0].timelineSemaphore != deviceTimelineSemaphoreFeatures[1].timelineSemaphore))
267{
268		TCU_FAIL("Mismatch between VkPhysicalDeviceTimelineSemaphoreFeatures");
269}
270if (isFragmentDensityMapFeaturesEXT &&
271	(deviceFragmentDensityMapFeaturesEXT[0].fragmentDensityMap != deviceFragmentDensityMapFeaturesEXT[1].fragmentDensityMap ||
272	 deviceFragmentDensityMapFeaturesEXT[0].fragmentDensityMapDynamic != deviceFragmentDensityMapFeaturesEXT[1].fragmentDensityMapDynamic ||
273	 deviceFragmentDensityMapFeaturesEXT[0].fragmentDensityMapNonSubsampledImages != deviceFragmentDensityMapFeaturesEXT[1].fragmentDensityMapNonSubsampledImages))
274{
275		TCU_FAIL("Mismatch between VkPhysicalDeviceFragmentDensityMapFeaturesEXT");
276}
277if (isFragmentDensityMap2FeaturesEXT &&
278	(deviceFragmentDensityMap2FeaturesEXT[0].fragmentDensityMapDeferred != deviceFragmentDensityMap2FeaturesEXT[1].fragmentDensityMapDeferred))
279{
280		TCU_FAIL("Mismatch between VkPhysicalDeviceFragmentDensityMap2FeaturesEXT");
281}
282if (isShaderIntegerDotProductFeaturesKHR &&
283	(deviceShaderIntegerDotProductFeaturesKHR[0].shaderIntegerDotProduct != deviceShaderIntegerDotProductFeaturesKHR[1].shaderIntegerDotProduct))
284{
285		TCU_FAIL("Mismatch between VkPhysicalDeviceShaderIntegerDotProductFeaturesKHR");
286}
287