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