Lines Matching defs:const

63 const deUint64								INFINITE_TIMEOUT		= ~(deUint64)0u;
73 VkCommandPool getCommandPool (void) const { return *m_commandPool; }
74 VkCommandBuffer getCommandBuffer (deUint32 bufferIndex) const;
78 const VkDevice m_device;
79 const DeviceInterface& m_vkd;
80 const VkQueue m_queue;
81 const deUint32 m_queueFamilyIndex;
99 const VkCommandBufferAllocateInfo cmdBufferAllocateInfo =
102 DE_NULL, // const void* pNext;
112 VkCommandBuffer CommandBufferBareTestEnvironment<NumBuffers>::getCommandBuffer(deUint32 bufferIndex) const
124 VkRenderPass getRenderPass (void) const { return *m_renderPass; }
125 VkFramebuffer getFrameBuffer (void) const { return *m_frameBuffer; }
126 VkCommandBuffer getPrimaryCommandBuffer (void) const { return getCommandBuffer(0); }
127 VkCommandBuffer getSecondaryCommandBuffer (void) const { return *m_secondaryCommandBuffer; }
135 static const VkImageType DEFAULT_IMAGE_TYPE;
136 static const VkFormat DEFAULT_IMAGE_FORMAT;
137 static const VkExtent3D DEFAULT_IMAGE_SIZE;
138 static const VkRect2D DEFAULT_IMAGE_AREA;
152 const VkImageType CommandBufferRenderPassTestEnvironment::DEFAULT_IMAGE_TYPE = VK_IMAGE_TYPE_2D;
153 const VkFormat CommandBufferRenderPassTestEnvironment::DEFAULT_IMAGE_FORMAT = VK_FORMAT_R8G8B8A8_UINT;
154 const VkExtent3D CommandBufferRenderPassTestEnvironment::DEFAULT_IMAGE_SIZE = {255, 255, 1};
155 const VkRect2D CommandBufferRenderPassTestEnvironment::DEFAULT_IMAGE_AREA =
167 const VkImageCreateInfo imageCreateInfo =
170 DE_NULL, // const void* pNext;
184 &m_queueFamilyIndex, // const deUint32* pQueueFamilyIndices;
195 const VkImageViewCreateInfo imageViewCreateInfo =
198 DE_NULL, // const void* pNext;
222 const VkImageView attachmentViews[1] =
227 const VkFramebufferCreateInfo framebufferCreateInfo =
230 DE_NULL, // const void* pNext;
234 attachmentViews, // const VkImageView* pAttachments;
246 const VkCommandBufferAllocateInfo cmdBufferAllocateInfo =
249 DE_NULL, // const void* pNext;
272 const VkCommandBufferInheritanceInfo commandBufferInheritanceInfo =
275 DE_NULL, // const void* pNext;
284 const VkCommandBufferBeginInfo commandBufferBeginInfo =
287 DE_NULL, // const void* pNext;
289 &commandBufferInheritanceInfo // const VkCommandBufferInheritanceInfo* pInheritanceInfo;
305 const tcu::TextureFormat tcuFormat = mapVkFormat(DEFAULT_IMAGE_FORMAT);
306 const VkDeviceSize pixelDataSize = DEFAULT_IMAGE_SIZE.height * DEFAULT_IMAGE_SIZE.height * tcuFormat.getPixelSize();
311 const VkBufferCreateInfo bufferParams =
314 DE_NULL, // const void* pNext;
320 DE_NULL // const deUint32* pQueueFamilyIndices;
347 const VkDevice vkDevice = context.getDevice();
348 const DeviceInterface& vk = context.getDeviceInterface();
349 const deUint32 queueFamilyIndex = context.getUniversalQueueFamilyIndex();
359 const VkDevice vkDevice = context.getDevice();
360 const DeviceInterface& vk = context.getDeviceInterface();
361 const deUint32 queueFamilyIndex = context.getUniversalQueueFamilyIndex();
362 const VkAllocationCallbacks* allocationCallbacks = getSystemAllocator();
364 const VkCommandPoolCreateInfo cmdPoolParams =
380 const VkDevice vkDevice = context.getDevice();
381 const DeviceInterface& vk = context.getDeviceInterface();
382 const deUint32 queueFamilyIndex = context.getUniversalQueueFamilyIndex();
384 const VkCommandPoolCreateInfo cmdPoolParams =
399 const VkDevice vkDevice = context.getDevice();
400 const DeviceInterface& vk = context.getDeviceInterface();
401 const deUint32 queueFamilyIndex = context.getUniversalQueueFamilyIndex();
403 const VkCommandPoolCreateInfo cmdPoolParams =
419 const VkDevice vkDevice = context.getDevice();
420 const DeviceInterface& vk = context.getDeviceInterface();
421 const deUint32 queueFamilyIndex = context.getUniversalQueueFamilyIndex();
423 const VkCommandPoolCreateInfo cmdPoolParams =
431 const Unique<VkCommandPool> cmdPool (createCommandPool(vk, vkDevice, &cmdPoolParams, DE_NULL));
441 const VkDevice vkDevice = context.getDevice();
442 const DeviceInterface& vk = context.getDeviceInterface();
443 const deUint32 queueFamilyIndex = context.getUniversalQueueFamilyIndex();
445 const VkCommandPoolCreateInfo cmdPoolParams =
453 const Unique<VkCommandPool> cmdPool (createCommandPool(vk, vkDevice, &cmdPoolParams, DE_NULL));
461 bool executeCommandBuffer (const VkDevice device,
462 const DeviceInterface& vk,
463 const VkQueue queue,
464 const VkCommandBuffer commandBuffer,
465 const bool exitBeforeEndCommandBuffer = false)
467 const Unique<VkEvent> event (createEvent(vk, device));
470 const VkPipelineStageFlags stageMask = VK_PIPELINE_STAGE_ALL_COMMANDS_BIT;
480 const VkResult result = vk.getEventStatus(device, *event);
486 const VkDevice vkDevice = context.getDevice();
487 const DeviceInterface& vk = context.getDeviceInterface();
488 const deUint32 queueFamilyIndex = context.getUniversalQueueFamilyIndex();
489 const VkQueue queue = context.getUniversalQueue();
491 const VkCommandPoolCreateInfo cmdPoolParams =
498 const Unique<VkCommandPool> cmdPool (createCommandPool(vk, vkDevice, &cmdPoolParams, DE_NULL));
499 const VkCommandBufferAllocateInfo cmdBufParams =
507 const Move<VkCommandBuffer> commandBuffers[] =
532 const Unique<VkCommandBuffer> afterResetCommandBuffers(allocateCommandBuffer(vk, vkDevice, &cmdBufParams));
544 const VkDevice vkDevice = context.getDevice();
545 const DeviceInterface& vk = context.getDeviceInterface();
546 const deUint32 queueFamilyIndex = context.getUniversalQueueFamilyIndex();
548 const VkCommandPoolCreateInfo cmdPoolParams =
555 const Unique<VkCommandPool> cmdPool (createCommandPool(vk, vkDevice, &cmdPoolParams));
558 const VkCommandBufferAllocateInfo cmdBufParams =
566 const Unique<VkCommandBuffer> cmdBuf (allocateCommandBuffer(vk, vkDevice, &cmdBufParams));
574 const VkDevice vkDevice = context.getDevice();
575 const DeviceInterface& vk = context.getDeviceInterface();
576 const deUint32 queueFamilyIndex = context.getUniversalQueueFamilyIndex();
578 const VkCommandPoolCreateInfo cmdPoolParams =
581 DE_NULL, // const void* pNext;
585 const Unique<VkCommandPool> cmdPool (createCommandPool(vk, vkDevice, &cmdPoolParams));
590 const unsigned minCommandBuffer = 1024;
592 const unsigned minCommandBuffer = 10000;
595 const unsigned minCommandBuffer = 100;
599 const VkCommandBufferAllocateInfo cmdBufParams =
602 DE_NULL, // const void* pNext;
622 const VkDevice vkDevice = context.getDevice();
623 const DeviceInterface& vk = context.getDeviceInterface();
624 const deUint32 queueFamilyIndex = context.getUniversalQueueFamilyIndex();
626 const VkCommandPoolCreateInfo cmdPoolParams =
633 const Unique<VkCommandPool> cmdPool (createCommandPool(vk, vkDevice, &cmdPoolParams));
636 const VkCommandBufferAllocateInfo cmdBufParams =
644 const Unique<VkCommandBuffer> cmdBuf (allocateCommandBuffer(vk, vkDevice, &cmdBufParams));
652 const VkDevice vkDevice = context.getDevice();
653 const DeviceInterface& vk = context.getDeviceInterface();
654 const deUint32 queueFamilyIndex = context.getUniversalQueueFamilyIndex();
656 const VkCommandPoolCreateInfo cmdPoolParams =
659 DE_NULL, // const void* pNext;
663 const Unique<VkCommandPool> cmdPool (createCommandPool(vk, vkDevice, &cmdPoolParams));
668 const unsigned minCommandBuffer = 1024;
670 const unsigned minCommandBuffer = 10000;
673 const unsigned minCommandBuffer = 100;
677 const VkCommandBufferAllocateInfo cmdBufParams =
680 DE_NULL, // const void* pNext;
700 const VkDevice vkDevice = context.getDevice();
701 const DeviceInterface& vk = context.getDeviceInterface();
702 const VkQueue queue = context.getUniversalQueue();
703 const deUint32 queueFamilyIndex = context.getUniversalQueueFamilyIndex();
705 const VkCommandPoolCreateInfo cmdPoolParams =
708 DE_NULL, // const void* pNext;
712 const Unique<VkCommandPool> cmdPool (createCommandPool(vk, vkDevice, &cmdPoolParams));
715 const VkCommandBufferAllocateInfo cmdBufParams =
718 DE_NULL, // const void* pNext;
723 const Unique<VkCommandBuffer> primCmdBuf (allocateCommandBuffer(vk, vkDevice, &cmdBufParams));
726 const Unique<VkEvent> event (createEvent(vk, vkDevice));
754 const VkDevice vkDevice = context.getDevice();
755 const DeviceInterface& vk = context.getDeviceInterface();
756 const VkQueue queue = context.getUniversalQueue();
757 const deUint32 queueFamilyIndex = context.getUniversalQueueFamilyIndex();
759 const deUint32 LARGE_BUFFER_SIZE = 10000;
761 const deUint32 LARGE_BUFFER_SIZE = 100;
765 const VkCommandPoolCreateInfo cmdPoolParams =
768 DE_NULL, // const void* pNext;
772 const Unique<VkCommandPool> cmdPool (createCommandPool(vk, vkDevice, &cmdPoolParams));
775 const VkCommandBufferAllocateInfo cmdBufParams =
778 DE_NULL, // const void* pNext;
783 const Unique<VkCommandBuffer> primCmdBuf (allocateCommandBuffer(vk, vkDevice, &cmdBufParams));
823 const VkDevice vkDevice = context.getDevice();
824 const DeviceInterface& vk = context.getDeviceInterface();
825 const VkQueue queue = context.getUniversalQueue();
826 const deUint32 queueFamilyIndex = context.getUniversalQueueFamilyIndex();
833 const VkCommandPoolCreateInfo cmdPoolParams =
840 const Unique<VkCommandPool> cmdPool (createCommandPool(vk, vkDevice, &cmdPoolParams));
843 const VkCommandBufferAllocateInfo cmdBufParams =
851 const Unique<VkCommandBuffer> cmdBuf (allocateCommandBuffer(vk, vkDevice, &cmdBufParams));
853 const Unique<VkEvent> event (createEvent(vk, vkDevice));
903 const VkDevice vkDevice = context.getDevice();
904 const DeviceInterface& vk = context.getDeviceInterface();
905 const VkQueue queue = context.getUniversalQueue();
906 const Unique<VkFence> fence (createFence(vk, vkDevice));
908 const VkSubmitInfo submitInfo =
914 (const VkPipelineStageFlags*)DE_NULL, // pWaitDstStageMask
934 void createCommadBuffers (const DeviceInterface& vk,
935 const VkDevice vkDevice,
938 const VkCommandBufferLevel cmdBufferLevel,
941 const VkCommandBufferAllocateInfo cmdBufParams =
944 DE_NULL, // const void* pNext;
952 void addCommandsToBuffer (const DeviceInterface& vk, std::vector<VkCommandBuffer>& cmdBuffers, std::vector <VkEventShared>& events)
954 const VkCommandBufferInheritanceInfo secCmdBufInheritInfo =
966 const VkCommandBufferBeginInfo cmdBufBeginInfo =
987 const VkDevice vkDevice = context.getDevice();
988 const DeviceInterface& vk = context.getDeviceInterface();
1001 tcu::TestStatus trimCommandPoolTest (Context& context, const VkCommandBufferLevel cmdBufferLevel)
1006 const VkDevice vkDevice = context.getDevice();
1007 const DeviceInterface& vk = context.getDeviceInterface();
1008 const deUint32 queueFamilyIndex = context.getUniversalQueueFamilyIndex();
1011 const deUint32 cmdBufferIterationCount = 300u;
1012 const deUint32 cmdBufferCount = 10u;
1014 const VkCommandPoolCreateInfo cmdPoolParams =
1021 const Unique<VkCommandPool> cmdPool (createCommandPool(vk, vkDevice, &cmdPoolParams));
1090 const VkDevice vkDevice = context.getDevice();
1091 const DeviceInterface& vk = context.getDeviceInterface();
1092 const deUint32 queueFamilyIndex = context.getUniversalQueueFamilyIndex();
1094 const VkCommandPoolCreateInfo cmdPoolParams =
1097 DE_NULL, // const void* pNext;
1101 const Unique<VkCommandPool> cmdPool (createCommandPool(vk, vkDevice, &cmdPoolParams));
1104 const VkCommandBufferAllocateInfo cmdBufParams =
1107 DE_NULL, // const void* pNext;
1112 const Unique<VkCommandBuffer> primCmdBuf (allocateCommandBuffer(vk, vkDevice, &cmdBufParams));
1115 const Unique<VkEvent> event (createEvent(vk, vkDevice));
1130 const VkDevice vkDevice = context.getDevice();
1131 const DeviceInterface& vk = context.getDeviceInterface();
1132 const VkQueue queue = context.getUniversalQueue();
1133 const deUint32 queueFamilyIndex = context.getUniversalQueueFamilyIndex();
1135 const VkCommandPoolCreateInfo cmdPoolParams =
1138 DE_NULL, // const void* pNext;
1142 const Unique<VkCommandPool> cmdPool (createCommandPool(vk, vkDevice, &cmdPoolParams));
1145 const VkCommandBufferAllocateInfo cmdBufParams =
1148 DE_NULL, // const void* pNext;
1153 const Unique<VkCommandBuffer> primCmdBuf (allocateCommandBuffer(vk, vkDevice, &cmdBufParams));
1156 const Unique<VkEvent> event (createEvent(vk, vkDevice));
1169 const long long unsigned minNumCommands = 10000llu;
1171 const long long unsigned minNumCommands = 1000llu;
1193 const VkDevice vkDevice = context.getDevice();
1194 const DeviceInterface& vk = context.getDeviceInterface();
1195 const deUint32 queueFamilyIndex = context.getUniversalQueueFamilyIndex();
1197 const VkCommandPoolCreateInfo cmdPoolParams =
1200 DE_NULL, // const void* pNext;
1204 const Unique<VkCommandPool> cmdPool (createCommandPool(vk, vkDevice, &cmdPoolParams));
1207 const VkCommandBufferAllocateInfo cmdBufParams =
1210 DE_NULL, // const void* pNext;
1215 const Unique<VkCommandBuffer> secCmdBuf (allocateCommandBuffer(vk, vkDevice, &cmdBufParams));
1217 const VkCommandBufferInheritanceInfo secCmdBufInheritInfo =
1228 const VkCommandBufferBeginInfo secCmdBufBeginInfo =
1237 const Unique<VkEvent> event (createEvent(vk, vkDevice));
1252 const VkDevice vkDevice = context.getDevice();
1253 const DeviceInterface& vk = context.getDeviceInterface();
1254 const VkQueue queue = context.getUniversalQueue();
1255 const deUint32 queueFamilyIndex = context.getUniversalQueueFamilyIndex();
1257 const VkCommandPoolCreateInfo cmdPoolParams =
1260 DE_NULL, // const void* pNext;
1264 const Unique<VkCommandPool> cmdPool (createCommandPool(vk, vkDevice, &cmdPoolParams));
1265 const Unique<VkCommandPool> secCmdPool (createCommandPool(vk, vkDevice, &cmdPoolParams));
1267 const VkCommandBufferAllocateInfo cmdBufParams =
1270 DE_NULL, // const void* pNext;
1275 const Unique<VkCommandBuffer> primCmdBuf (allocateCommandBuffer(vk, vkDevice, &cmdBufParams));
1277 const VkCommandBufferAllocateInfo secCmdBufParams =
1280 DE_NULL, // const void* pNext;
1285 const Unique<VkCommandBuffer> secCmdBuf (allocateCommandBuffer(vk, vkDevice, &secCmdBufParams));
1287 const VkCommandBufferInheritanceInfo secCmdBufInheritInfo =
1298 const VkCommandBufferBeginInfo secCmdBufBeginInfo =
1307 const Unique<VkEvent> event (createEvent(vk, vkDevice));
1323 const long long unsigned minNumCommands = 10000llu;
1325 const long long unsigned minNumCommands = 1000llu;
1353 const VkDevice vkDevice = context.getDevice();
1354 const DeviceInterface& vk = context.getDeviceInterface();
1355 const VkQueue queue = context.getUniversalQueue();
1356 const deUint32 queueFamilyIndex = context.getUniversalQueueFamilyIndex();
1358 const VkCommandPoolCreateInfo cmdPoolParams =
1361 DE_NULL, // const void* pNext;
1365 const Unique<VkCommandPool> cmdPool (createCommandPool(vk, vkDevice, &cmdPoolParams));
1368 const VkCommandBufferAllocateInfo cmdBufParams =
1371 DE_NULL, // const void* pNext;
1376 const Unique<VkCommandBuffer> primCmdBuf (allocateCommandBuffer(vk, vkDevice, &cmdBufParams));
1379 const Unique<VkEvent> event (createEvent(vk, vkDevice));
1417 const VkDevice vkDevice = context.getDevice();
1418 const DeviceInterface& vk = context.getDeviceInterface();
1419 const VkQueue queue = context.getUniversalQueue();
1420 const deUint32 queueFamilyIndex = context.getUniversalQueueFamilyIndex();
1427 const VkCommandPoolCreateInfo cmdPoolParams =
1430 DE_NULL, // const void* pNext;
1435 const Unique<VkCommandPool> cmdPool (createCommandPool(vk, vkDevice, &cmdPoolParams));
1436 const Unique<VkCommandPool> secCmdPool (createCommandPool(vk, vkDevice, &cmdPoolParams));
1439 const VkCommandBufferAllocateInfo cmdBufParams =
1442 DE_NULL, // const void* pNext;
1448 const Unique<VkCommandBuffer> primCmdBuf1 (allocateCommandBuffer(vk, vkDevice, &cmdBufParams));
1449 const Unique<VkCommandBuffer> primCmdBuf2 (allocateCommandBuffer(vk, vkDevice, &cmdBufParams));
1452 const VkCommandBufferAllocateInfo secCmdBufParams =
1455 DE_NULL, // const void* pNext;
1460 const Unique<VkCommandBuffer> secCmdBuf (allocateCommandBuffer(vk, vkDevice, &secCmdBufParams));
1462 const VkCommandBufferInheritanceInfo secCmdBufInheritInfo =
1473 const VkCommandBufferBeginInfo secCmdBufBeginInfo =
1482 const Unique<VkEvent> event (createEvent(vk, vkDevice));
1542 const VkDevice vkDevice = context.getDevice();
1543 const DeviceInterface& vk = context.getDeviceInterface();
1544 const VkQueue queue = context.getUniversalQueue();
1545 const deUint32 queueFamilyIndex = context.getUniversalQueueFamilyIndex();
1552 const VkCommandPoolCreateInfo cmdPoolParams =
1555 DE_NULL, // const void* pNext;
1559 const Unique<VkCommandPool> cmdPool (createCommandPool(vk, vkDevice, &cmdPoolParams));
1562 const VkCommandBufferAllocateInfo cmdBufParams =
1565 DE_NULL, // const void* pNext;
1570 const Unique<VkCommandBuffer> primCmdBuf (allocateCommandBuffer(vk, vkDevice, &cmdBufParams));
1573 const Unique<VkEvent> event (createEvent(vk, vkDevice));
1619 const VkDevice vkDevice = context.getDevice();
1620 const DeviceInterface& vk = context.getDeviceInterface();
1621 const VkQueue queue = context.getUniversalQueue();
1622 const deUint32 queueFamilyIndex = context.getUniversalQueueFamilyIndex();
1629 const VkCommandPoolCreateInfo cmdPoolParams =
1632 DE_NULL, // const void* pNext;
1637 const Unique<VkCommandPool> cmdPool (createCommandPool(vk, vkDevice, &cmdPoolParams));
1638 const Unique<VkCommandPool> secCmdPool (createCommandPool(vk, vkDevice, &cmdPoolParams));
1641 const VkCommandBufferAllocateInfo cmdBufParams =
1644 DE_NULL, // const void* pNext;
1650 const Unique<VkCommandBuffer> primCmdBuf1 (allocateCommandBuffer(vk, vkDevice, &cmdBufParams));
1651 const Unique<VkCommandBuffer> primCmdBuf2 (allocateCommandBuffer(vk, vkDevice, &cmdBufParams));
1654 const VkCommandBufferAllocateInfo secCmdBufParams =
1657 DE_NULL, // const void* pNext;
1662 const Unique<VkCommandBuffer> secCmdBuf (allocateCommandBuffer(vk, vkDevice, &secCmdBufParams));
1664 const VkCommandBufferInheritanceInfo secCmdBufInheritInfo =
1675 const VkCommandBufferBeginInfo secCmdBufBeginInfo =
1684 const Unique<VkEvent> event (createEvent(vk, vkDevice));
1756 const DeviceInterface& vkd = context.getDeviceInterface();
1761 const deUint32 clearColor[4] = { 2, 47, 131, 211 };
1763 const VkClearAttachment clearAttachment =
1773 const VkClearRect clearRect =
1811 const VkDevice vkDevice = context.getDevice();
1812 const DeviceInterface& vk = context.getDeviceInterface();
1813 const VkQueue queue = context.getUniversalQueue();
1814 const deUint32 queueFamilyIndex = context.getUniversalQueueFamilyIndex();
1816 const ComputeInstanceResultBuffer result(vk, vkDevice, allocator, 0.0f);
1818 const VkCommandPoolCreateInfo cmdPoolParams =
1821 DE_NULL, // const void* pNext;
1825 const Unique<VkCommandPool> cmdPool(createCommandPool(vk, vkDevice, &cmdPoolParams));
1828 const VkCommandBufferAllocateInfo cmdBufParams =
1831 DE_NULL, // const void* pNext;
1836 const Unique<VkCommandBuffer> primCmdBuf(allocateCommandBuffer(vk, vkDevice, &cmdBufParams));
1839 const VkCommandBufferAllocateInfo secCmdBufParams =
1842 DE_NULL, // const void* pNext;
1847 const Unique<VkCommandBuffer> secCmdBuf(allocateCommandBuffer(vk, vkDevice, &secCmdBufParams));
1849 const VkCommandBufferInheritanceInfo secCmdBufInheritInfo =
1860 const VkCommandBufferBeginInfo secCmdBufBeginInfo =
1868 const deUint32 offset = (0u);
1869 const deUint32 addressableSize = 256;
1870 const deUint32 dataSize = 8;
1872 const Unique<VkBuffer> buffer(createDataBuffer(context, offset, addressableSize, 0x00, dataSize, 0x5A, &bufferMem));
1874 const Unique<VkDescriptorSetLayout> descriptorSetLayout(createDescriptorSetLayout(context));
1875 const Unique<VkDescriptorPool> descriptorPool(createDescriptorPool(context));
1876 const Unique<VkDescriptorSet> descriptorSet(createDescriptorSet(context, *descriptorPool, *descriptorSetLayout, *buffer, offset, result.getBuffer()));
1877 const VkDescriptorSet descriptorSets[] = { *descriptorSet };
1878 const int numDescriptorSets = DE_LENGTH_OF_ARRAY(descriptorSets);
1880 const VkPipelineLayoutCreateInfo layoutCreateInfo =
1892 const Unique<VkShaderModule> computeModule(createShaderModule(vk, vkDevice, context.getBinaryCollection().get("compute_increment"), (VkShaderModuleCreateFlags)0u));
1894 const VkPipelineShaderStageCreateInfo shaderCreateInfo =
1905 const VkComputePipelineCreateInfo pipelineCreateInfo =
1916 const VkBufferMemoryBarrier bufferBarrier =
1929 const Unique<VkPipeline> pipeline(createComputePipeline(vk, vkDevice, (VkPipelineCache)0u, &pipelineCreateInfo));
1938 0, (const VkMemoryBarrier*)DE_NULL,
1940 0, (const VkImageMemoryBarrier*)DE_NULL);
1976 const auto& vkd = context.getDeviceInterface();
1977 const auto device = context.getDevice();
1978 const auto queue = context.getUniversalQueue();
1979 const auto queueFamilyIndex = context.getUniversalQueueFamilyIndex();
1981 const ComputeInstanceResultBuffer result (vkd, device, allocator, 0.0f);
1984 const auto cmdPool = makeCommandPool(vkd, device, queueFamilyIndex);
1985 const auto cmdBufferPtr = allocateCommandBuffer(vkd, device, cmdPool.get(), VK_COMMAND_BUFFER_LEVEL_PRIMARY);
1986 const auto cmdBuffer = cmdBufferPtr.get();
1989 const deUint32 offset = 0u;
1990 const deUint32 addressableSize = 256u;
1991 const deUint32 dataSize = 8u;
1995 const Unique<VkBuffer> buffer(createDataBuffer(context, offset, addressableSize, 0x00, dataSize, 0x5A, &bufferMem));
1997 const Unique<VkDescriptorSetLayout> descriptorSetLayout (createDescriptorSetLayout(context));
1998 const Unique<VkDescriptorPool> descriptorPool (createDescriptorPool(context));
1999 const Unique<VkDescriptorSet> descriptorSet (createDescriptorSet(context, *descriptorPool, *descriptorSetLayout, *buffer, offset, result.getBuffer()));
2000 const VkDescriptorSet descriptorSets[] = { *descriptorSet };
2001 const int numDescriptorSets = DE_LENGTH_OF_ARRAY(descriptorSets);
2004 const auto pipelineLayout = makePipelineLayout(vkd, device, descriptorSetLayout.get());
2007 const Unique<VkShaderModule> computeModule (createShaderModule(vkd, device, context.getBinaryCollection().get("compute_increment"), (VkShaderModuleCreateFlags)0u));
2009 const VkPipelineShaderStageCreateInfo shaderCreateInfo =
2020 const VkComputePipelineCreateInfo pipelineCreateInfo =
2031 const Unique<VkPipeline> pipeline (createComputePipeline(vkd, device, (VkPipelineCache)0u, &pipelineCreateInfo));
2034 const VkBufferMemoryBarrier bufferBarrier =
2051 nullptr, // const void* pNext;
2053 nullptr, // const VkCommandBufferInheritanceInfo* pInheritanceInfo;
2129 0, (const VkMemoryBarrier*)DE_NULL,
2131 0, (const VkImageMemoryBarrier*)DE_NULL);
2152 const VkDevice vkDevice = context.getDevice();
2153 const DeviceInterface& vk = context.getDeviceInterface();
2154 const VkQueue queue = context.getUniversalQueue();
2155 const deUint32 queueFamilyIndex = context.getUniversalQueueFamilyIndex();
2157 const ComputeInstanceResultBuffer result(vk, vkDevice, allocator, 0.0f);
2159 const VkCommandPoolCreateInfo cmdPoolParams =
2162 DE_NULL, // const void* pNext;
2166 const Unique<VkCommandPool> cmdPool(createCommandPool(vk, vkDevice, &cmdPoolParams));
2169 const VkCommandBufferAllocateInfo cmdBufParams =
2172 DE_NULL, // const void* pNext;
2178 const deUint32 numPrimCmdBufs = 2;
2179 const Unique<VkCommandBuffer> primCmdBufOne(allocateCommandBuffer(vk, vkDevice, &cmdBufParams));
2180 const Unique<VkCommandBuffer> primCmdBufTwo(allocateCommandBuffer(vk, vkDevice, &cmdBufParams));
2186 const VkCommandBufferAllocateInfo secCmdBufParams =
2189 DE_NULL, // const void* pNext;
2194 const Unique<VkCommandBuffer> secCmdBuf(allocateCommandBuffer(vk, vkDevice, &secCmdBufParams));
2196 const VkCommandBufferBeginInfo primCmdBufBeginInfo =
2201 (const VkCommandBufferInheritanceInfo*)DE_NULL,
2204 const VkCommandBufferInheritanceInfo secCmdBufInheritInfo =
2215 const VkCommandBufferBeginInfo secCmdBufBeginInfo =
2223 const deUint32 offset = (0u);
2224 const deUint32 addressableSize = 256;
2225 const deUint32 dataSize = 8;
2227 const Unique<VkBuffer> buffer(createDataBuffer(context, offset, addressableSize, 0x00, dataSize, 0x5A, &bufferMem));
2229 const Unique<VkDescriptorSetLayout> descriptorSetLayout(createDescriptorSetLayout(context));
2230 const Unique<VkDescriptorPool> descriptorPool(createDescriptorPool(context));
2231 const Unique<VkDescriptorSet> descriptorSet(createDescriptorSet(context, *descriptorPool, *descriptorSetLayout, *buffer, offset, result.getBuffer()));
2232 const VkDescriptorSet descriptorSets[] = { *descriptorSet };
2233 const int numDescriptorSets = DE_LENGTH_OF_ARRAY(descriptorSets);
2235 const VkPipelineLayoutCreateInfo layoutCreateInfo =
2247 const Unique<VkShaderModule> computeModule(createShaderModule(vk, vkDevice, context.getBinaryCollection().get("compute_increment"), (VkShaderModuleCreateFlags)0u));
2249 const VkPipelineShaderStageCreateInfo shaderCreateInfo =
2260 const VkComputePipelineCreateInfo pipelineCreateInfo =
2271 const Unique<VkPipeline> pipeline(createComputePipeline(vk, vkDevice, (VkPipelineCache)0u, &pipelineCreateInfo));
2298 const Unique<VkFence> fence(createFence(vk, vkDevice));
2300 const VkSubmitInfo submitInfo =
2306 (const VkPipelineStageFlags*)DE_NULL, // pWaitDstStageMask
2330 const VkDevice vkDevice = context.getDevice();
2331 const DeviceInterface& vk = context.getDeviceInterface();
2332 const deUint32 queueFamilyIndex = context.getUniversalQueueFamilyIndex();
2337 const VkCommandPoolCreateInfo cmdPoolParams =
2344 const Unique<VkCommandPool> cmdPool (createCommandPool(vk, vkDevice, &cmdPoolParams));
2347 const VkCommandBufferAllocateInfo primCmdBufParams =
2355 const Unique<VkCommandBuffer> primCmdBuf (allocateCommandBuffer(vk, vkDevice, &primCmdBufParams));
2358 const VkCommandBufferAllocateInfo secCmdBufParams =
2366 const Unique<VkCommandBuffer> secCmdBuf (allocateCommandBuffer(vk, vkDevice, &secCmdBufParams));
2368 const VkCommandBufferBeginInfo primBufferBeginInfo =
2373 (const VkCommandBufferInheritanceInfo*)DE_NULL,
2376 const VkCommandBufferInheritanceInfo secBufferInheritInfo =
2387 const VkCommandBufferBeginInfo secBufferBeginInfo =
2395 const VkQueryPoolCreateInfo queryPoolCreateInfo =
2425 const VkDevice vkDevice = context.getDevice();
2426 const DeviceInterface& vk = context.getDeviceInterface();
2427 const deUint32 queueFamilyIndex = context.getUniversalQueueFamilyIndex();
2432 const VkCommandPoolCreateInfo cmdPoolParams =
2439 const Unique<VkCommandPool> cmdPool (createCommandPool(vk, vkDevice, &cmdPoolParams));
2442 const VkCommandBufferAllocateInfo primCmdBufParams =
2450 const Unique<VkCommandBuffer> primCmdBuf (allocateCommandBuffer(vk, vkDevice, &primCmdBufParams));
2453 const VkCommandBufferAllocateInfo secCmdBufParams =
2461 const Unique<VkCommandBuffer> secCmdBuf (allocateCommandBuffer(vk, vkDevice, &secCmdBufParams));
2463 const VkCommandBufferBeginInfo primBufferBeginInfo =
2468 (const VkCommandBufferInheritanceInfo*)DE_NULL,
2471 const VkCommandBufferInheritanceInfo secBufferInheritInfo =
2482 const VkCommandBufferBeginInfo secBufferBeginInfo =
2490 const VkQueryPoolCreateInfo queryPoolCreateInfo =
2520 const VkDevice vkDevice = context.getDevice();
2521 const DeviceInterface& vk = context.getDeviceInterface();
2522 const deUint32 queueFamilyIndex = context.getUniversalQueueFamilyIndex();
2527 const VkCommandPoolCreateInfo cmdPoolParams =
2534 const Unique<VkCommandPool> cmdPool (createCommandPool(vk, vkDevice, &cmdPoolParams));
2537 const VkCommandBufferAllocateInfo primCmdBufParams =
2545 const Unique<VkCommandBuffer> primCmdBuf (allocateCommandBuffer(vk, vkDevice, &primCmdBufParams));
2548 const VkCommandBufferAllocateInfo secCmdBufParams =
2556 const Unique<VkCommandBuffer> secCmdBuf (allocateCommandBuffer(vk, vkDevice, &secCmdBufParams));
2558 const VkCommandBufferBeginInfo primBufferBeginInfo =
2563 (const VkCommandBufferInheritanceInfo*)DE_NULL,
2566 const VkCommandBufferInheritanceInfo secBufferInheritInfo =
2577 const VkCommandBufferBeginInfo secBufferBeginInfo =
2585 const VkQueryPoolCreateInfo queryPoolCreateInfo =
2616 const VkDevice vkDevice = context.getDevice();
2617 const DeviceInterface& vk = context.getDeviceInterface();
2618 const VkQueue queue = context.getUniversalQueue();
2619 const deUint32 queueFamilyIndex = context.getUniversalQueueFamilyIndex();
2621 const deUint32 BUFFER_COUNT = 5u;
2623 const VkCommandPoolCreateInfo cmdPoolParams =
2630 const Unique<VkCommandPool> cmdPool (createCommandPool(vk, vkDevice, &cmdPoolParams));
2633 const VkCommandBufferAllocateInfo cmdBufParams =
2644 const VkCommandBufferBeginInfo cmdBufBeginInfo =
2649 (const VkCommandBufferInheritanceInfo*)DE_NULL,
2672 const Unique<VkFence> fence (createFence(vk, vkDevice));
2674 const VkSubmitInfo submitInfo =
2680 (const VkPipelineStageFlags*)DE_NULL, // pWaitDstStageMask
2712 const VkDevice vkDevice = context.getDevice();
2713 const DeviceInterface& vk = context.getDeviceInterface();
2714 const VkQueue queue = context.getUniversalQueue();
2715 const deUint32 queueFamilyIndex = context.getUniversalQueueFamilyIndex();
2717 const deUint32 BUFFER_COUNT = 2u;
2719 const VkCommandPoolCreateInfo cmdPoolParams =
2726 const Unique<VkCommandPool> cmdPool (createCommandPool(vk, vkDevice, &cmdPoolParams));
2729 const VkCommandBufferAllocateInfo cmdBufParams =
2740 const VkCommandBufferBeginInfo cmdBufBeginInfo =
2745 (const VkCommandBufferInheritanceInfo*)DE_NULL,
2763 const Unique<VkFence> fenceZero (createFence(vk, vkDevice));
2764 const Unique<VkFence> fenceOne (createFence(vk, vkDevice));
2767 const VkSubmitInfo submitInfoCountZero =
2773 (const VkPipelineStageFlags*)DE_NULL, // pWaitDstStageMask
2781 const VkSubmitInfo submitInfoCountOne =
2787 (const VkPipelineStageFlags*)DE_NULL, // pWaitDstStageMask
2800 const VkFence fences[] =
2822 const VkDevice vkDevice = context.getDevice();
2823 const DeviceInterface& vk = context.getDeviceInterface();
2824 const VkQueue queue = context.getUniversalQueue();
2825 const deUint32 queueFamilyIndex = context.getUniversalQueueFamilyIndex();
2827 const VkCommandPoolCreateInfo cmdPoolParams =
2830 DE_NULL, // const void* pNext;
2834 const Unique<VkCommandPool> cmdPool (createCommandPool(vk, vkDevice, &cmdPoolParams));
2837 const VkCommandBufferAllocateInfo cmdBufParams =
2840 DE_NULL, // const void* pNext;
2847 const Unique<VkCommandBuffer> primCmdBuf1 (allocateCommandBuffer(vk, vkDevice, &cmdBufParams));
2848 const Unique<VkCommandBuffer> primCmdBuf2 (allocateCommandBuffer(vk, vkDevice, &cmdBufParams));
2850 const VkCommandBufferBeginInfo primCmdBufBeginInfo =
2855 DE_NULL // const VkCommandBufferInheritanceInfo* pInheritanceInfo;
2859 const Unique<VkEvent> event1 (createEvent(vk, vkDevice));
2860 const Unique<VkEvent> event2 (createEvent(vk, vkDevice));
2889 const Unique<VkFence> fence (createFence(vk, vkDevice));
2892 const Unique <VkSemaphore> semaphore (createSemaphore(vk, vkDevice));
2895 const VkSubmitInfo submitInfo1 =
2919 const VkPipelineStageFlags waitDstStageFlags = VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT;
2922 const VkSubmitInfo submitInfo2 =
2958 const deUint32 numSemaphores = 10u; // it must be multiply of numSubmission
2959 const deUint32 numSubmissions = 2u;
2960 const VkDevice vkDevice = context.getDevice();
2961 const DeviceInterface& vk = context.getDeviceInterface();
2962 const VkQueue queue = context.getUniversalQueue();
2963 const deUint32 queueFamilyIndex = context.getUniversalQueueFamilyIndex();
2965 const VkCommandPoolCreateInfo cmdPoolParams =
2968 DE_NULL, // const void* pNext;
2972 const Unique<VkCommandPool> cmdPool (createCommandPool(vk, vkDevice, &cmdPoolParams));
2975 const VkCommandBufferAllocateInfo cmdBufParams =
2978 DE_NULL, // const void* pNext;
2985 const Unique<VkCommandBuffer> primCmdBuf (allocateCommandBuffer(vk, vkDevice, &cmdBufParams));
2987 const VkCommandBufferBeginInfo primCmdBufBeginInfo =
2992 DE_NULL // const VkCommandBufferInheritanceInfo* pInheritanceInfo;
2996 const Unique<VkEvent> event (createEvent(vk, vkDevice));
3013 const Unique<VkFence> fence (createFence(vk, vkDevice));
3015 // numSemaphores is declared const, so this array can be static
3028 const VkSubmitInfo submitInfo1 =
3058 const deUint32 numberOfSemaphoresToBeWaitedByOneSubmission = numSemaphores / numSubmissions;
3059 const std::vector<VkPipelineStageFlags> waitDstStageFlags (numberOfSemaphoresToBeWaitedByOneSubmission, VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT);
3065 const VkSubmitInfo submitInfo2 =
3102 const VkDevice vkDevice = context.getDevice();
3103 const DeviceInterface& vk = context.getDeviceInterface();
3104 const VkQueue queue = context.getUniversalQueue();
3105 const deUint32 queueFamilyIndex = context.getUniversalQueueFamilyIndex();
3107 const short BUFFER_COUNT = 2;
3109 const VkCommandPoolCreateInfo cmdPoolParams =
3116 const Unique<VkCommandPool> cmdPool (createCommandPool(vk, vkDevice, &cmdPoolParams));
3119 const VkCommandBufferAllocateInfo cmdBufParams =
3130 const VkCommandBufferBeginInfo cmdBufBeginInfo =
3135 (const VkCommandBufferInheritanceInfo*)DE_NULL,
3153 const Unique<VkFence> fence (createFence(vk, vkDevice));
3156 const VkSubmitInfo submitInfoNullFence =
3162 (const VkPipelineStageFlags*)DE_NULL, // pWaitDstStageMask
3170 const VkSubmitInfo submitInfoNonNullFence =
3176 (const VkPipelineStageFlags*)DE_NULL, // pWaitDstStageMask
3211 const VkDevice vkDevice = context.getDevice();
3212 const DeviceInterface& vk = context.getDeviceInterface();
3213 const VkQueue queue = context.getUniversalQueue();
3214 const deUint32 queueFamilyIndex = context.getUniversalQueueFamilyIndex();
3215 const deUint32 BUFFER_COUNT = 2u;
3217 const VkCommandPoolCreateInfo cmdPoolParams =
3224 const Unique<VkCommandPool> cmdPool (createCommandPool(vk, vkDevice, &cmdPoolParams));
3226 const VkCommandBufferAllocateInfo cmdBufParams =
3238 const VkCommandBufferBeginInfo cmdBufBeginInfo =
3243 (const VkCommandBufferInheritanceInfo*)DE_NULL, // pInheritanceInfo
3262 const VkSubmitInfo submitInfoNonNullFirst =
3268 (const VkPipelineStageFlags*)DE_NULL, // pWaitDstStageMask
3277 const VkSubmitInfo submitInfoNonNullSecond =
3283 (const VkPipelineStageFlags*)DE_NULL, // pWaitDstStageMask
3291 const Unique<VkFence> fence (createFence(vk, vkDevice));
3308 const VkDevice vkDevice = context.getDevice();
3309 const DeviceInterface& vk = context.getDeviceInterface();
3310 const VkQueue queue = context.getUniversalQueue();
3311 const deUint32 queueFamilyIndex = context.getUniversalQueueFamilyIndex();
3313 const VkCommandPoolCreateInfo cmdPoolParams =
3320 const Unique<VkCommandPool> cmdPool (createCommandPool(vk, vkDevice, &cmdPoolParams));
3323 const VkCommandBufferAllocateInfo cmdBufParams =
3331 const Unique<VkCommandBuffer> primCmdBuf (allocateCommandBuffer(vk, vkDevice, &cmdBufParams));
3334 const VkCommandBufferAllocateInfo secCmdBufParams =
3342 const Unique<VkCommandBuffer> secCmdBuf (allocateCommandBuffer(vk, vkDevice, &secCmdBufParams));
3344 const VkCommandBufferBeginInfo primCmdBufBeginInfo =
3349 (const VkCommandBufferInheritanceInfo*)DE_NULL,
3352 const VkCommandBufferInheritanceInfo secCmdBufInheritInfo =
3363 const VkCommandBufferBeginInfo secCmdBufBeginInfo =
3372 const Unique<VkEvent> event (createEvent(vk, vkDevice));
3408 const deUint32 BUFFER_COUNT = 10u;
3409 const VkDevice vkDevice = context.getDevice();
3410 const DeviceInterface& vk = context.getDeviceInterface();
3411 const VkQueue queue = context.getUniversalQueue();
3412 const deUint32 queueFamilyIndex = context.getUniversalQueueFamilyIndex();
3414 const VkCommandPoolCreateInfo cmdPoolParams =
3417 DE_NULL, // const void* pNext;
3421 const Unique<VkCommandPool> cmdPool (createCommandPool(vk, vkDevice, &cmdPoolParams));
3424 const VkCommandBufferAllocateInfo cmdBufParams =
3427 DE_NULL, // const void* pNext;
3432 const Unique<VkCommandBuffer> primCmdBufOne (allocateCommandBuffer(vk, vkDevice, &cmdBufParams));
3433 const Unique<VkCommandBuffer> primCmdBufTwo (allocateCommandBuffer(vk, vkDevice, &cmdBufParams));
3436 const VkCommandBufferAllocateInfo secCmdBufParams =
3439 DE_NULL, // const void* pNext;
3447 const VkCommandBufferBeginInfo primCmdBufBeginInfo =
3452 (const VkCommandBufferInheritanceInfo*)DE_NULL,
3455 const VkCommandBufferInheritanceInfo secCmdBufInheritInfo =
3466 const VkCommandBufferBeginInfo secCmdBufBeginInfo =
3475 const Unique<VkEvent> eventOne (createEvent(vk, vkDevice));
3512 const Unique<VkFence> fenceOne (createFence(vk, vkDevice));
3513 const Unique<VkFence> fenceTwo (createFence(vk, vkDevice));
3515 const uint64_t semaphoreWaitValue = 1ull;
3516 const VkPipelineStageFlags semaphoreWaitStage = VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT;
3517 const auto semaphore = createSemaphoreType(vk, vkDevice, VK_SEMAPHORE_TYPE_TIMELINE);
3520 const VkTimelineSemaphoreSubmitInfo timelineWaitSubmitInfo =
3523 nullptr, // const void* pNext;
3525 &semaphoreWaitValue, // const uint64_t* pWaitSemaphoreValues;
3527 nullptr, // const uint64_t* pSignalSemaphoreValues;
3530 const VkSubmitInfo submitInfo =
3533 &timelineWaitSubmitInfo, // const void* pNext;
3535 &semaphore.get(), // const VkSemaphore* pWaitSemaphores;
3536 &semaphoreWaitStage, // const VkPipelineStageFlags* pWaitDstStageMask;
3538 &primCmdBufOne.get(), // const VkCommandBuffer* pCommandBuffers;
3540 nullptr, // const VkSemaphore* pSignalSemaphores;
3544 const VkSubmitInfo submitInfo2 =
3547 &timelineWaitSubmitInfo, // const void* pNext;
3549 &semaphore.get(), // const VkSemaphore* pWaitSemaphores;
3550 &semaphoreWaitStage, // const VkPipelineStageFlags* pWaitDstStageMask;
3552 &primCmdBufTwo.get(), // const VkCommandBuffer* pCommandBuffers;
3554 nullptr, // const VkSemaphore* pSignalSemaphores;
3560 const vk::VkSemaphoreSignalInfo signalInfo =
3563 nullptr, // const void* pNext;
3584 const DeviceInterface& vk = context.getDeviceInterface();
3585 const VkDevice device = context.getDevice();
3586 const VkQueue queue = context.getUniversalQueue();
3587 const deUint32 queueFamilyIndex = context.getUniversalQueueFamilyIndex();
3589 const ComputeInstanceResultBuffer result (vk, device, allocator);
3596 const tcu::Vec4 colorA1 = tcu::Vec4(0.0f, 1.0f, 0.0f, 1.0f);
3597 const tcu::Vec4 colorA2 = tcu::Vec4(1.0f, 1.0f, 0.0f, 1.0f);
3598 const tcu::Vec4 colorB1 = tcu::Vec4(1.0f, 0.0f, 0.0f, 1.0f);
3599 const tcu::Vec4 colorB2 = tcu::Vec4(0.0f, 0.0f, 1.0f, 1.0f);
3601 const deUint32 dataOffsetA = (0u);
3602 const deUint32 dataOffsetB = (0u);
3603 const deUint32 viewOffsetA = (0u);
3604 const deUint32 viewOffsetB = (0u);
3605 const deUint32 bufferSizeA = dataOffsetA + ADDRESSABLE_SIZE;
3606 const deUint32 bufferSizeB = dataOffsetB + ADDRESSABLE_SIZE;
3609 const Unique<VkBuffer> bufferA (createColorDataBuffer(dataOffsetA, bufferSizeA, colorA1, colorA2, &bufferMemA, context));
3612 const Unique<VkBuffer> bufferB (createColorDataBuffer(dataOffsetB, bufferSizeB, colorB1, colorB2, &bufferMemB, context));
3614 const Unique<VkDescriptorSetLayout> descriptorSetLayout (createDescriptorSetLayout(context));
3615 const Unique<VkDescriptorPool> descriptorPool (createDescriptorPool(context));
3616 const Unique<VkDescriptorSet> descriptorSet (createDescriptorSet(*descriptorPool, *descriptorSetLayout, *bufferA, viewOffsetA, *bufferB, viewOffsetB, result.getBuffer(), context));
3617 const VkDescriptorSet descriptorSets[] = { *descriptorSet };
3618 const int numDescriptorSets = DE_LENGTH_OF_ARRAY(descriptorSets);
3620 const VkPipelineLayoutCreateInfo layoutCreateInfo =
3632 const Unique<VkShaderModule> computeModuleGood (createShaderModule(vk, device, context.getBinaryCollection().get("compute_good"), (VkShaderModuleCreateFlags)0u));
3633 const Unique<VkShaderModule> computeModuleBad (createShaderModule(vk, device, context.getBinaryCollection().get("compute_bad"), (VkShaderModuleCreateFlags)0u));
3635 const VkPipelineShaderStageCreateInfo shaderCreateInfoGood =
3646 const VkPipelineShaderStageCreateInfo shaderCreateInfoBad =
3657 const VkComputePipelineCreateInfo createInfoGood =
3668 const VkComputePipelineCreateInfo createInfoBad =
3679 const Unique<VkPipeline> pipelineGood (createComputePipeline(vk, device, (VkPipelineCache)0u, &createInfoGood));
3680 const Unique<VkPipeline> pipelineBad (createComputePipeline(vk, device, (VkPipelineCache)0u, &createInfoBad));
3682 const VkAccessFlags inputBit = (VK_ACCESS_UNIFORM_READ_BIT);
3683 const VkBufferMemoryBarrier bufferBarriers[] =
3709 const deUint32 numSrcBuffers = 1u;
3711 const deUint32* const dynamicOffsets = (DE_NULL);
3712 const deUint32 numDynamicOffsets = (0);
3713 const int numPreBarriers = numSrcBuffers;
3714 const vk::VkBufferMemoryBarrier* const postBarriers = result.getResultReadBarrier();
3715 const int numPostBarriers = 1;
3716 const tcu::Vec4 refQuadrantValue14 = (colorA2);
3717 const tcu::Vec4 refQuadrantValue23 = (colorA1);
3718 const tcu::Vec4 references[4] =
3729 const tcu::UVec3 numWorkGroups = tcu::UVec3(4, 1u, 1);
3731 const VkCommandPoolCreateInfo cmdPoolCreateInfo =
3738 const Unique<VkCommandPool> cmdPool (createCommandPool(vk, device, &cmdPoolCreateInfo));
3739 const VkCommandBufferAllocateInfo cmdBufCreateInfo =
3748 const VkCommandBufferBeginInfo cmdBufBeginInfo =
3753 (const VkCommandBufferInheritanceInfo*)DE_NULL,
3756 const Unique<VkCommandBuffer> cmd (allocateCommandBuffer(vk, device, &cmdBufCreateInfo));
3766 0, (const VkMemoryBarrier*)DE_NULL,
3768 0, (const VkImageMemoryBarrier*)DE_NULL);
3772 0, (const VkMemoryBarrier*)DE_NULL,
3774 0, (const VkImageMemoryBarrier*)DE_NULL);
3831 const VkDevice vkDevice = context.getDevice();
3832 const DeviceInterface& vk = context.getDeviceInterface();
3833 const VkQueue queue = context.getUniversalQueue();
3834 const deUint32 queueFamilyIndex = context.getUniversalQueueFamilyIndex();
3841 const Unique<VkCommandPool> cmdPool (createCommandPool(vk, vkDevice, VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT, queueFamilyIndex));
3842 const Unique<VkCommandBuffer> cmdBuffer (allocateCommandBuffer(vk, vkDevice, *cmdPool, VK_COMMAND_BUFFER_LEVEL_PRIMARY));
3843 const Unique<VkEvent> globalEvent (createEvent(vk, vkDevice));
3906 const Unique<VkEvent> localEvent(createEvent(vk, vkDevice));
3940 const char* const versionDecl = glu::getGLSLVersionDeclaration(glu::GLSL_VERSION_310_ES);
3998 const char* const versionDecl = glu::getGLSLVersionDeclaration(glu::GLSL_VERSION_310_ES);
4084 void checkEventSupport (Context& context, const VkCommandBufferLevel)
4096 ManyDrawsParams(VkCommandBufferLevel level_, const VkExtent3D& extent_, deUint32 seed_)
4110 ManyDrawsVertex (const tcu::Vec2& coords_, const Color& color_) : coords(coords_), color(color_) {}
4113 VkFormat getSupportedDepthStencilFormat (const InstanceInterface& vki, VkPhysicalDevice physDev)
4115 const VkFormat formatList[] = { VK_FORMAT_D24_UNORM_S8_UINT, VK_FORMAT_D32_SFLOAT_S8_UINT };
4116 const VkFormatFeatureFlags requirements = (VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT | VK_FORMAT_FEATURE_TRANSFER_SRC_BIT);
4120 const auto properties = getPhysicalDeviceFormatProperties(vki, physDev, formatList[i]);
4132 ManyDrawsCase (tcu::TestContext& testCtx, const std::string& name, const ManyDrawsParams& params);
4135 virtual void checkSupport (Context& context) const;
4136 virtual void initPrograms (vk::SourceCollections& programCollection) const;
4137 virtual TestInstance* createInstance (Context& context) const;
4148 ManyDrawsInstance (Context& context, const ManyDrawsParams& params);
4175 static deUint32 calcNumPixels (const VkExtent3D& extent)
4180 static deUint32 calcNumVertices (const VkExtent3D& extent)
4186 static VkDeviceSize calcVertexBufferSize (const VkExtent3D& extent)
4191 static void makeVertexBuffers (const DeviceInterface& vkd, VkDevice device, Allocator& alloc, VkDeviceSize size, ManyDrawsVertexBuffers& buffers)
4193 const auto stagingBufferInfo = makeBufferCreateInfo(size, VK_BUFFER_USAGE_TRANSFER_SRC_BIT);
4194 const auto vertexBufferInfo = makeBufferCreateInfo(size, (VK_BUFFER_USAGE_TRANSFER_DST_BIT | VK_BUFFER_USAGE_VERTEX_BUFFER_BIT));
4200 ManyDrawsAllocatedData (const DeviceInterface &vkd, VkDevice device, Allocator &alloc, const VkExtent3D& imageExtent, VkFormat colorFormat, VkFormat dsFormat)
4202 const auto numPixels = calcNumPixels(imageExtent);
4203 const auto vertexBufferSize = calcVertexBufferSize(imageExtent);
4208 const auto colorUsage = (VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT | VK_IMAGE_USAGE_TRANSFER_SRC_BIT);
4209 const auto dsUsage = VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT | VK_IMAGE_USAGE_TRANSFER_SRC_BIT;
4211 const VkImageCreateInfo colorAttachmentInfo =
4214 nullptr, // const void* pNext;
4226 nullptr, // const deUint32* pQueueFamilyIndices;
4231 const VkImageCreateInfo dsAttachmentInfo =
4234 nullptr, // const void* pNext;
4246 nullptr, // const deUint32* pQueueFamilyIndices;
4251 const auto colorCheckBufferSize = static_cast<VkDeviceSize>(numPixels * tcu::getPixelSize(mapVkFormat(colorFormat)));
4252 const auto colorCheckBufferInfo = makeBufferCreateInfo(colorCheckBufferSize, VK_BUFFER_USAGE_TRANSFER_DST_BIT);
4256 const auto stencilFormat = tcu::TextureFormat(tcu::TextureFormat::S, tcu::TextureFormat::UNSIGNED_INT8);
4257 const auto stencilCheckBufferSize = static_cast<VkDeviceSize>(numPixels * tcu::getPixelSize(stencilFormat));
4258 const auto stencilCheckBufferInfo = makeBufferCreateInfo(stencilCheckBufferSize, VK_BUFFER_USAGE_TRANSFER_DST_BIT);
4264 ManyDrawsCase::ManyDrawsCase (tcu::TestContext& testCtx, const std::string& name, const ManyDrawsParams& params)
4269 void ManyDrawsCase::checkSupport (Context& context) const
4271 const auto& vki = context.getInstanceInterface();
4272 const auto physDev = context.getPhysicalDevice();
4273 const auto& vkd = context.getDeviceInterface();
4274 const auto device = context.getDevice();
4276 const auto dsFormat = getSupportedDepthStencilFormat(vki, physDev);
4282 catch (const vk::Error& err)
4284 const auto result = err.getError();
4291 void ManyDrawsCase::initPrograms (vk::SourceCollections& programCollection) const
4326 TestInstance* ManyDrawsCase::createInstance (Context& context) const
4331 ManyDrawsInstance::ManyDrawsInstance (Context& context, const ManyDrawsParams& params)
4336 void copyAndFlush (const DeviceInterface& vkd, VkDevice device, BufferWithMemory& buffer, const std::vector<ManyDrawsVertex>& vertices)
4347 const auto& vki = m_context.getInstanceInterface();
4348 const auto physDev = m_context.getPhysicalDevice();
4349 const auto& vkd = m_context.getDeviceInterface();
4350 const auto device = m_context.getDevice();
4352 const auto qIndex = m_context.getUniversalQueueFamilyIndex();
4353 const auto queue = m_context.getUniversalQueue();
4355 const auto colorFormat = ManyDrawsCase::getColorFormat();
4356 const auto dsFormat = getSupportedDepthStencilFormat(vki, physDev);
4357 const auto vertexBufferSize = ManyDrawsAllocatedData::calcVertexBufferSize(m_params.imageExtent);
4358 const auto vertexBufferOffset = static_cast<VkDeviceSize>(0);
4359 const auto numPixels = ManyDrawsAllocatedData::calcNumPixels(m_params.imageExtent);
4360 const auto numVertices = ManyDrawsAllocatedData::calcNumVertices(m_params.imageExtent);
4361 const auto alphaValue = std::numeric_limits<deUint8>::max();
4362 const auto pixelWidth = 2.0f / static_cast<float>(m_params.imageExtent.width); // Normalized size.
4363 const auto pixelWidthHalf = pixelWidth / 2.0f; // Normalized size.
4364 const auto pixelHeight = 2.0f / static_cast<float>(m_params.imageExtent.height); // Normalized size.
4365 const auto useSecondary = (m_params.level == VK_COMMAND_BUFFER_LEVEL_SECONDARY);
4378 const deUint8 red = ((i ) & 0xFFu);
4379 const deUint8 green = ((i >> 8) & 0xFFu);
4380 const deUint8 blue = ((i >> 16) & 0xFFu);
4403 const auto colorIdx = y * m_params.imageExtent.width + x;
4404 const auto& frontColor = colors[colorIdx];
4405 const auto& backColor = colors[colors.size() - 1u - colorIdx];
4407 const tcu::Vec2 triangle[3u] =
4428 const auto colorResourceRange = makeImageSubresourceRange(VK_IMAGE_ASPECT_COLOR_BIT, 0u, 1u, 0u, 1u);
4429 const auto colorAttachmentView = makeImageView(vkd, device, testData.colorAttachment->get(), VK_IMAGE_VIEW_TYPE_2D, colorFormat, colorResourceRange);
4432 const auto dsResourceRange = makeImageSubresourceRange((VK_IMAGE_ASPECT_DEPTH_BIT | VK_IMAGE_ASPECT_STENCIL_BIT), 0u, 1u, 0u, 1u);
4433 const auto dsAttachmentView = makeImageView(vkd, device, testData.dsAttachment->get(), VK_IMAGE_VIEW_TYPE_2D, dsFormat, dsResourceRange);
4435 const VkImageView attachmentArray[] = { colorAttachmentView.get(), dsAttachmentView.get() };
4436 const auto numAttachments = static_cast<deUint32>(DE_LENGTH_OF_ARRAY(attachmentArray));
4438 const auto renderPass = makeRenderPass(vkd, device, colorFormat, dsFormat);
4439 const auto framebuffer = makeFramebuffer(vkd, device, renderPass.get(), numAttachments, attachmentArray, m_params.imageExtent.width, m_params.imageExtent.height);
4441 const auto vertModule = createShaderModule(vkd, device, m_context.getBinaryCollection().get("vert"), 0u);
4442 const auto fragModule = createShaderModule(vkd, device, m_context.getBinaryCollection().get("frag"), 0u);
4444 const std::vector<VkViewport> viewports (1u, makeViewport(m_params.imageExtent));
4445 const std::vector<VkRect2D> scissors (1u, makeRect2D(m_params.imageExtent));
4447 const auto descriptorSetLayout = DescriptorSetLayoutBuilder().build(vkd, device);
4448 const auto pipelineLayout = makePipelineLayout(vkd, device, descriptorSetLayout.get());
4450 const VkVertexInputBindingDescription bindings[] =
4455 const VkVertexInputAttributeDescription attributes[] =
4461 const VkPipelineVertexInputStateCreateInfo inputState =
4464 nullptr, // const void* pNext;
4467 bindings, // const VkVertexInputBindingDescription* pVertexBindingDescriptions;
4469 attributes, // const VkVertexInputAttributeDescription* pVertexAttributeDescriptions;
4479 const auto stencilOpState = makeStencilOpState(VK_STENCIL_OP_INCREMENT_AND_CLAMP, VK_STENCIL_OP_INCREMENT_AND_CLAMP, VK_STENCIL_OP_KEEP,
4482 const VkPipelineDepthStencilStateCreateInfo dsState =
4485 nullptr, // const void* pNext
4498 const auto pipeline = makeGraphicsPipeline(vkd, device, pipelineLayout.get(),
4505 const auto cmdPool = makeCommandPool(vkd, device, qIndex);
4506 const auto secCmdPool = makeCommandPool(vkd, device, qIndex);
4525 const auto copyRegion = makeBufferCopy(0ull, 0ull, vertexBufferSize);
4530 const auto vertexBarier = makeMemoryBarrier(VK_ACCESS_TRANSFER_WRITE_BIT, VK_ACCESS_VERTEX_ATTRIBUTE_READ_BIT);
4534 const auto dsBarrier = makeImageMemoryBarrier(0, (VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT | VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT), VK_IMAGE_LAYOUT_UNDEFINED, VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL, testData.dsAttachment->get(), dsResourceRange);
4547 const VkCommandBufferInheritanceInfo inheritanceInfo =
4550 nullptr, // const void* pNext;
4559 const VkCommandBufferUsageFlags usageFlags = (VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT | VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT);
4560 const VkCommandBufferBeginInfo beginInfo =
4565 &inheritanceInfo, // const VkCommandBufferInheritanceInfo* pInheritanceInfo;
4593 const auto colorAttachmentBarrier = makeImageMemoryBarrier(VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT, VK_ACCESS_TRANSFER_READ_BIT, VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL, VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL, testData.colorAttachment->get(), colorResourceRange);
4596 const auto colorResourceLayers = makeImageSubresourceLayers(VK_IMAGE_ASPECT_COLOR_BIT, 0u, 0u, 1u);
4597 const auto colorCopyRegion = makeBufferImageCopy(m_params.imageExtent, colorResourceLayers);
4600 const auto stencilAttachmentBarrier = makeImageMemoryBarrier(VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT, VK_ACCESS_TRANSFER_READ_BIT, VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL, VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL, testData.dsAttachment->get(), dsResourceRange);
4603 const auto stencilResourceLayers = makeImageSubresourceLayers(VK_IMAGE_ASPECT_STENCIL_BIT, 0u, 0u, 1u);
4604 const auto stencilCopyRegion = makeBufferImageCopy(m_params.imageExtent, stencilResourceLayers);
4607 const auto verificationBuffersBarrier = makeMemoryBarrier(VK_ACCESS_TRANSFER_WRITE_BIT, VK_ACCESS_HOST_READ_BIT);
4622 const auto iWidth = static_cast<int>(m_params.imageExtent.width);
4623 const auto iHeight = static_cast<int>(m_params.imageExtent.height);
4624 const auto colorTcuFormat = mapVkFormat(colorFormat);
4625 const auto stencilTcuFormat = tcu::TextureFormat(tcu::TextureFormat::S, tcu::TextureFormat::UNSIGNED_INT8);
4635 const tcu::Vec4 green (0.0f, 1.0f, 0.0f, 1.0f);
4636 const tcu::Vec4 red (1.0f, 0.0f, 0.0f, 1.0f);
4637 const int expectedStencil = 2;
4644 const tcu::UVec4 colorValue = colorAccess.getPixelUint(x, y);
4645 const auto expectedPixel = colors[y * iWidth + x];
4646 const tcu::UVec4 expectedValue (expectedPixel.x(), expectedPixel.y(), expectedPixel.z(), expectedPixel.w());
4647 const bool colorMismatch = (colorValue != expectedValue);
4649 const auto stencilValue = stencilAccess.getPixStencil(x, y);
4650 const bool stencilMismatch = (stencilValue != expectedStencil);
4720 const auto smallExtent = makeExtent3D(128u, 128u, 1u);
4721 const auto largeExtent = makeExtent3D(512u, 256u, 1u);