Lines Matching defs:const

104 	const SharedGroupParams	groupParams;
120 const float queuePriority = 1.0f;
123 const VkDeviceQueueCreateInfo queueParams
126 DE_NULL, // const void* pNext;
130 &queuePriority // const float* pQueuePriorities;
135 const auto& extensionPtrs = context.getDeviceCreationExtensions();
145 const auto addFeatures = makeStructChainAdder(&features2);
167 const VkDeviceCreateInfo deviceCreateInfo
177 de::dataOrNull(extensionPtrs), // const char* const* ppEnabledExtensionNames;
192 const auto& r = redGradient;
193 const auto& g = greenGradient;
194 const float step = 2.0f / static_cast<float>(viewCount);
200 const float fIndex = static_cast<float>(viewIndex);
201 const deUint32 nextIndex = viewIndex + 1;
202 const float xEnd = (nextIndex == viewCount) ? 1.0f : (-1.0f + step * static_cast<float>(nextIndex));
205 const Vertex4RGBA lowerLeftVertex = { { xStart, 1.0f, 0.0f, 1.0f }, { 0.0f, 1.0f, fIndex, 1.0f }, { r.x(), g.y(), 0.0f, 1.0f } };
206 const Vertex4RGBA upperLeftVertex = { { xStart, -1.0f, 0.0f, 1.0f }, { 0.0f, 0.0f, fIndex, 1.0f }, { r.x(), g.x(), 0.0f, 1.0f } };
207 const Vertex4RGBA lowerRightVertex = { { xEnd, 1.0f, 0.0f, 1.0f }, { 1.0f, 1.0f, fIndex, 1.0f }, { r.y(), g.y(), 0.0f, 1.0f } };
208 const Vertex4RGBA upperRightVertex = { { xEnd, -1.0f, 0.0f, 1.0f }, { 1.0f, 0.0f, fIndex, 1.0f }, { r.y(), g.x(), 0.0f, 1.0f } };
210 const std::vector<Vertex4RGBA> viewData
224 void createVertexBuffer(const DeviceInterface& vk,
226 const deUint32& queueFamilyIndex,
228 const std::vector<T>& vertices,
232 const VkBufferCreateInfo vertexBufferParams =
235 DE_NULL, // const void* pNext;
241 &queueFamilyIndex // const deUint32* pQueueFamilyIndices;
253 void prepareImageAndImageView (const DeviceInterface& vk,
265 const VkComponentMapping& channels,
266 const VkImageSubresourceRange& subresourceRange,
271 const VkImageCreateInfo imageCreateInfo
274 DE_NULL, // const void* pNext;
286 &queueFamilyIndex, // const deUint32* pQueueFamilyIndices;
297 const VkImageViewCreateInfo imageViewCreateInfo =
300 DE_NULL, // const void* pNext;
320 virtual Move<VkRenderPass> createRenderPassProduceDynamicDensityMap (deUint32 viewMask) const = 0;
323 bool resampleSubsampled) const = 0;
324 virtual Move<VkRenderPass> createRenderPassOutputSubsampledImage () const = 0;
327 const VkRenderPassBeginInfo* pRenderPassBegin) const = 0;
328 virtual void cmdNextSubpass (VkCommandBuffer cmdBuffer) const = 0;
329 virtual void cmdEndRenderPass (VkCommandBuffer cmdBuffer) const = 0;
370 RenderPassWrapper(const DeviceInterface& vk, const VkDevice vkDevice, const TestParams& testParams);
373 Move<VkRenderPass> createRenderPassProduceDynamicDensityMap (deUint32 viewMask) const override;
376 bool resampleSubsampled) const override;
377 Move<VkRenderPass> createRenderPassOutputSubsampledImage () const override;
380 const VkRenderPassBeginInfo* pRenderPassBegin) const override;
381 void cmdNextSubpass (VkCommandBuffer cmdBuffer) const override;
382 void cmdEndRenderPass (VkCommandBuffer cmdBuffer) const override;
386 const DeviceInterface& m_vk;
387 const VkDevice m_vkDevice;
388 const TestParams& m_testParams;
390 const typename RenderpassSubpass::SubpassBeginInfo m_subpassBeginInfo;
391 const typename RenderpassSubpass::SubpassEndInfo m_subpassEndInfo;
395 RenderPassWrapper<RenderingTypeValue>::RenderPassWrapper(const DeviceInterface& vk, const VkDevice vkDevice, const TestParams& testParams)
406 Move<VkRenderPass> RenderPassWrapper<RenderingTypeValue>::createRenderPassProduceDynamicDensityMap(deUint32 viewMask) const
413 DE_NULL, // const void* pNext
439 DE_NULL, // const VkAttachmentReference* pInputAttachments
441 colorAttachmentRefs.data(), // const VkAttachmentReference* pColorAttachments
442 DE_NULL, // const VkAttachmentReference* pResolveAttachments
443 DE_NULL, // const VkAttachmentReference* pDepthStencilAttachment
445 DE_NULL // const deUint32* pPreserveAttachments
452 DE_NULL, // const void* pNext
464 const RenderPassCreateInfo renderPassInfo(
465 DE_NULL, // const void* pNext
468 attachmentDescriptions.data(), // const VkAttachmentDescription* pAttachments
470 subpassDescriptions.data(), // const VkSubpassDescription* pSubpasses
472 subpassDependencies.empty() ? DE_NULL : subpassDependencies.data(), // const VkSubpassDependency* pDependencies
474 DE_NULL // const deUint32* pCorrelatedViewMasks
483 bool resampleSubsampled) const
485 const void* constNullPtr = DE_NULL;
496 DE_NULL, // const void* pNext
514 constNullPtr, // const void* pNext
532 constNullPtr, // const void* pNext
548 constNullPtr, // const void* pNext
586 DE_NULL, // const VkAttachmentReference* pInputAttachments
588 colorAttachmentRefs0.data(), // const VkAttachmentReference* pColorAttachments
589 makeCopySubpass ? DE_NULL : pResolveAttachments, // const VkAttachmentReference* pResolveAttachments
590 DE_NULL, // const VkAttachmentReference* pDepthStencilAttachment
592 DE_NULL // const deUint32* pPreserveAttachments
614 inputAttachmentRefs1.data(), // const VkAttachmentReference* pInputAttachments
616 colorAttachmentRefs1.data(), // const VkAttachmentReference* pColorAttachments
617 pResolveAttachments, // const VkAttachmentReference* pResolveAttachments
618 DE_NULL, // const VkAttachmentReference* pDepthStencilAttachment
620 DE_NULL // const deUint32* pPreserveAttachments
628 constNullPtr, // const void* pNext
647 constNullPtr, // const void* pNext
667 const RenderPassCreateInfo renderPassInfo(
668 renderPassInfoPNext, // const void* pNext
671 attachmentDescriptions.data(), // const VkAttachmentDescription* pAttachments
673 subpassDescriptions.data(), // const VkSubpassDescription* pSubpasses
675 subpassDependencies.data(), // const VkSubpassDependency* pDependencies
677 DE_NULL // const deUint32* pCorrelatedViewMasks
684 Move<VkRenderPass> RenderPassWrapper<RenderingTypeValue>::createRenderPassOutputSubsampledImage() const
692 DE_NULL, // const void* pNext
718 DE_NULL, // const VkAttachmentReference* pInputAttachments
720 colorAttachmentRefs.data(), // const VkAttachmentReference* pColorAttachments
721 DE_NULL, // const VkAttachmentReference* pResolveAttachments
722 DE_NULL, // const VkAttachmentReference* pDepthStencilAttachment
724 DE_NULL // const deUint32* pPreserveAttachments
728 const RenderPassCreateInfo renderPassInfo(
729 DE_NULL, // const void* pNext
732 attachmentDescriptions.data(), // const VkAttachmentDescription* pAttachments
734 subpassDescriptions.data(), // const VkSubpassDescription* pSubpasses
736 DE_NULL, // const VkSubpassDependency* pDependencies
738 DE_NULL // const deUint32* pCorrelatedViewMasks
745 void RenderPassWrapper<RenderingTypeValue>::cmdBeginRenderPass(VkCommandBuffer cmdBuffer, const VkRenderPassBeginInfo* pRenderPassBegin) const
751 void RenderPassWrapper<RenderingTypeValue>::cmdNextSubpass(VkCommandBuffer cmdBuffer) const
757 void RenderPassWrapper<RenderingTypeValue>::cmdEndRenderPass(VkCommandBuffer cmdBuffer) const
762 Move<VkFramebuffer> createImagelessFrameBuffer(const DeviceInterface& vk, VkDevice vkDevice, VkRenderPass renderPass, VkExtent3D size, const std::vector<VkFramebufferAttachmentImageInfo>& attachmentInfo)
764 const deUint32 attachmentCount = static_cast<deUint32>(attachmentInfo.size());
765 const VkFramebufferAttachmentsCreateInfo framebufferAttachmentsCreateInfo
768 DE_NULL, // const void* pNext;
770 &attachmentInfo[0] // const VkFramebufferAttachmentImageInfo* pAttachmentImageInfos;
773 const VkFramebufferCreateInfo framebufferParams
776 &framebufferAttachmentsCreateInfo, // const void* pNext;
780 DE_NULL, // const VkImageView* pAttachments;
789 Move<VkFramebuffer> createFrameBuffer(const DeviceInterface& vk, VkDevice vkDevice, VkRenderPass renderPass, VkExtent3D size, const std::vector<VkImageView>& imageViews)
794 void copyBufferToImage(const DeviceInterface& vk,
798 const VkBuffer& buffer,
800 const VkExtent3D& imageSize,
811 const VkCommandBufferBeginInfo cmdBufferBeginInfo =
814 DE_NULL, // const void* pNext;
816 (const VkCommandBufferInheritanceInfo*)DE_NULL,
819 const VkBufferImageCopy copyRegion =
830 const VkBufferMemoryBarrier preBufferBarrier = makeBufferMemoryBarrier(
838 const VkImageSubresourceRange subresourceRange
847 const VkImageMemoryBarrier preImageBarrier = makeImageMemoryBarrier(
856 const VkImageMemoryBarrier postImageBarrier = makeImageMemoryBarrier(
866 vk.cmdPipelineBarrier(*cmdBuffer, VK_PIPELINE_STAGE_HOST_BIT, VK_PIPELINE_STAGE_TRANSFER_BIT, (VkDependencyFlags)0, 0, (const VkMemoryBarrier*)DE_NULL, 1, &preBufferBarrier, 1, &preImageBarrier);
868 vk.cmdPipelineBarrier(*cmdBuffer, VK_PIPELINE_STAGE_TRANSFER_BIT, destImageDstStageFlags, (VkDependencyFlags)0, 0, (const VkMemoryBarrier*)DE_NULL, 0, (const VkBufferMemoryBarrier*)DE_NULL, 1, &postImageBarrier);
871 const VkPipelineStageFlags pipelineStageFlags = VK_PIPELINE_STAGE_ALL_GRAPHICS_BIT;
873 const VkSubmitInfo submitInfo =
876 DE_NULL, // const void* pNext;
878 DE_NULL, // const VkSemaphore* pWaitSemaphores;
879 &pipelineStageFlags, // const VkPipelineStageFlags* pWaitDstStageMask;
881 &cmdBuffer.get(), // const VkCommandBuffer* pCommandBuffers;
883 DE_NULL // const VkSemaphore* pSignalSemaphores;
898 Move<VkPipeline> buildGraphicsPipeline(const DeviceInterface& vk,
899 const VkDevice device,
900 const VkPipelineLayout pipelineLayout,
901 const VkShaderModule vertexShaderModule,
902 const VkShaderModule fragmentShaderModule,
903 const VkRenderPass renderPass,
904 const std::vector<VkViewport>& viewportVect,
905 const std::vector<VkRect2D>& scissorVect,
906 const deUint32 subpass,
907 const VkPipelineMultisampleStateCreateInfo* multisampleStateCreateInfo,
908 const void* pNext,
909 const bool useDensityMapAttachment,
910 const bool useMaintenance5 = false)
915 DE_NULL, // const void* pNext
919 "main", // const char* pName
920 DE_NULL // const VkSpecializationInfo* pSpecializationInfo
925 const VkVertexInputBindingDescription vertexInputBindingDescription
939 const VkPipelineVertexInputStateCreateInfo vertexInputStateCreateInfo
942 DE_NULL, // const void* pNext;
945 &vertexInputBindingDescription, // const VkVertexInputBindingDescription* pVertexBindingDescriptions;
947 vertexInputAttributeDescriptions.data() // const VkVertexInputAttributeDescription* pVertexAttributeDescriptions;
950 const VkPipelineInputAssemblyStateCreateInfo inputAssemblyStateCreateInfo
953 DE_NULL, // const void* pNext
959 const VkPipelineViewportStateCreateInfo viewportStateCreateInfo
962 DE_NULL, // const void* pNext
965 viewportVect.data(), // const VkViewport* pViewports
967 scissorVect.data() // const VkRect2D* pScissors
970 const VkPipelineRasterizationStateCreateInfo rasterizationStateCreateInfoDefault
973 DE_NULL, // const void* pNext
987 const VkPipelineMultisampleStateCreateInfo multisampleStateCreateInfoDefault
990 DE_NULL, // const void* pNext
995 DE_NULL, // const VkSampleMask* pSampleMask
1000 const VkStencilOpState stencilOpState
1011 const VkPipelineDepthStencilStateCreateInfo depthStencilStateCreateInfoDefault
1014 DE_NULL, // const void* pNext
1027 const VkPipelineColorBlendAttachmentState colorBlendAttachmentState
1042 const VkPipelineColorBlendStateCreateInfo colorBlendStateCreateInfoDefault
1045 DE_NULL, // const void* pNext
1050 &colorBlendAttachmentState, // const VkPipelineColorBlendAttachmentState* pAttachments
1057 pNext, // const void* pNext
1062 &pipelineShaderStageParams[0], // const VkPipelineShaderStageCreateInfo* pStages
1063 &vertexInputStateCreateInfo, // const VkPipelineVertexInputStateCreateInfo* pVertexInputState
1064 &inputAssemblyStateCreateInfo, // const VkPipelineInputAssemblyStateCreateInfo* pInputAssemblyState
1065 DE_NULL, // const VkPipelineTessellationStateCreateInfo* pTessellationState
1066 &viewportStateCreateInfo, // const VkPipelineViewportStateCreateInfo* pViewportState
1067 &rasterizationStateCreateInfoDefault, // const VkPipelineRasterizationStateCreateInfo* pRasterizationState
1068 multisampleStateCreateInfo ? multisampleStateCreateInfo: &multisampleStateCreateInfoDefault, // const VkPipelineMultisampleStateCreateInfo* pMultisampleState
1069 &depthStencilStateCreateInfoDefault, // const VkPipelineDepthStencilStateCreateInfo* pDepthStencilState
1070 &colorBlendStateCreateInfoDefault, // const VkPipelineColorBlendStateCreateInfo* pColorBlendState
1071 DE_NULL, // const VkPipelineDynamicStateCreateInfo* pDynamicState
1096 const std::string& name,
1097 const TestParams& testParams);
1098 virtual void initPrograms (SourceCollections& sourceCollections) const;
1099 virtual TestInstance* createInstance (Context& context) const;
1100 virtual void checkSupport (Context& context) const;
1103 const TestParams m_testParams;
1110 const TestParams& testParams);
1122 const VkExtent3D& colorImageSize,
1123 const VkRect2D& dynamicDensityMapRenderArea,
1124 const VkRect2D& colorImageRenderArea,
1125 const VkRect2D& outputRenderArea);
1126 void createCommandBufferForDynamicRendering (const VkRect2D& dynamicDensityMapRenderArea,
1127 const VkRect2D& colorImageRenderArea,
1128 const VkRect2D& outputRenderArea,
1129 const VkDevice& vkDevice);
1222 const std::string& name,
1223 const TestParams& testParams)
1230 void FragmentDensityMapTest::initPrograms(SourceCollections& sourceCollections) const
1232 const std::string vertSourceTemplate(
1321 const char* samplersDefTemplate =
1323 const char* sumColorsTemplate =
1326 const char* densitymapOutputTemplate =
1379 TestInstance* FragmentDensityMapTest::createInstance(Context& context) const
1384 void FragmentDensityMapTest::checkSupport(Context& context) const
1386 const InstanceInterface& vki = context.getInstanceInterface();
1387 const VkPhysicalDevice vkPhysicalDevice = context.getPhysicalDevice();
1406 const auto& fragmentDensityMap2Properties = context.getFragmentDensityMap2PropertiesEXT();
1481 const TestParams& testParams)
1491 const DeviceInterface& vk = m_context.getDeviceInterface();
1492 const VkDevice vkDevice = getDevice(m_context);
1493 const VkPhysicalDevice vkPhysicalDevice = m_context.getPhysicalDevice();
1494 const deUint32 queueFamilyIndex = m_context.getUniversalQueueFamilyIndex();
1495 const VkQueue queue = getDeviceQueue(vk, vkDevice, queueFamilyIndex, 0);
1497 const VkComponentMapping componentMappingRGBA = makeComponentMappingRGBA();
1506 const VkImageSubresourceRange densityMapSubresourceRange = { VK_IMAGE_ASPECT_COLOR_BIT, 0u, 1u, 0u, densityMapImageLayers };
1509 const VkFormat colorImageFormat = VK_FORMAT_R8G8B8A8_UNORM;
1515 const VkImageSubresourceRange colorSubresourceRange = { VK_IMAGE_ASPECT_COLOR_BIT, 0u, 1u, 0u, colorImageLayers };
1520 const VkImageSubresourceRange outputSubresourceRange { VK_IMAGE_ASPECT_COLOR_BIT, 0u, 1u, 0u, 1u };
1586 const vk::VkBufferCreateInfo stagingBufferCreateInfo
1598 const vk::VkMemoryRequirements stagingRequirements = vk::getBufferMemoryRequirements(vk, vkDevice, *stagingBuffer);
1627 const struct VkSamplerCreateInfo samplerInfo
1708 auto createFramebufferAttachmentImageInfo = [](VkImageCreateFlags createFlags, VkImageUsageFlags usageFlags, VkExtent3D& extent, deUint32 layerCount, const VkFormat* format)
1713 DE_NULL, // const void* pNext;
1720 format // const VkFormat* pViewFormats;
1802 const VkPipelineLayoutCreateInfo pipelineLayoutParams
1805 DE_NULL, // const void* pNext;
1808 DE_NULL, // const VkDescriptorSetLayout* pSetLayouts;
1810 DE_NULL // const VkPushConstantRange* pPushConstantRanges;
1833 const VkDescriptorImageInfo inputImageInfo =
1865 const VkDescriptorImageInfo inputImageInfo
1884 const char* moduleName = isColorImageMultisampled ? "frag_copy_subsampled_ms" : "frag_copy_subsampled";
1889 const char* moduleName = "frag_update_subsampled";
1892 const char* moduleName = (m_testParams.viewCount > 1) ? "frag_output_2darray" : "frag_output_2d";
1895 const std::vector<VkRect2D> dynamicDensityMapRenderArea { makeRect2D(densityMapImageSize.width, densityMapImageSize.height) };
1896 const std::vector<VkRect2D> outputRenderArea { makeRect2D(outputImageSize.width, outputImageSize.height) };
1897 const VkRect2D colorImageRect = makeRect2D(colorImageSize.width, colorImageSize.height);
1902 const VkPipelineMultisampleStateCreateInfo multisampleStateCreateInfo
1905 DE_NULL, // const void* pNext
1910 DE_NULL, // const VkSampleMask* pSampleMask
1915 const std::vector<VkViewport> viewportsProduceDynamicDensityMap { makeViewport(densityMapImageSize.width, densityMapImageSize.height) };
1916 const std::vector<VkViewport> viewportsOutputSubsampledImage { makeViewport(outputImageSize.width, outputImageSize.height) };
1922 const deUint32 halfWidth = colorImageSize.width / 2u;
1923 const float halfWidthFloat = static_cast<float>(halfWidth);
1924 const float halfHeightFloat = static_cast<float>(colorImageSize.height / 2u);
1956 const void* pNextForProduceDynamicDensityMap = (isDynamicRendering ? &renderingCreateInfo[0] : DE_NULL);
1957 const void* pNextForeProduceSubsampledImage = (isDynamicRendering ? &renderingCreateInfo[1] : DE_NULL);
1958 const void* pNextForeUpdateSubsampledImage = (isDynamicRendering ? &renderingCreateInfo[1] : DE_NULL);
1959 const void* pNextForOutputSubsampledImage = (isDynamicRendering ? &renderingCreateInfo[2] : DE_NULL);
1962 m_graphicsPipelineProduceDynamicDensityMap = buildGraphicsPipeline(vk, // const DeviceInterface& vk
1963 vkDevice, // const VkDevice device
1964 *m_pipelineLayoutNoDescriptors, // const VkPipelineLayout pipelineLayout
1965 *m_vertexCommonShaderModule, // const VkShaderModule vertexShaderModule
1966 *m_fragmentShaderModuleProduceSubsampledImage, // const VkShaderModule fragmentShaderModule
1967 *m_renderPassProduceDynamicDensityMap, // const VkRenderPass renderPass
1968 viewportsProduceDynamicDensityMap, // const std::vector<VkViewport>& viewport
1969 dynamicDensityMapRenderArea, // const std::vector<VkRect2D>& scissor
1970 0u, // const deUint32 subpass
1971 DE_NULL, // const VkPipelineMultisampleStateCreateInfo* multisampleStateCreateInfo
1972 pNextForProduceDynamicDensityMap, // const void* pNext
1973 isDynamicRendering, // const bool useDensityMapAttachment
1974 m_testParams.useMaintenance5); // const bool useMaintenance5
1976 m_graphicsPipelineProduceSubsampledImage = buildGraphicsPipeline(vk, // const DeviceInterface& vk
1977 vkDevice, // const VkDevice device
1978 *m_pipelineLayoutNoDescriptors, // const VkPipelineLayout pipelineLayout
1979 *m_vertexCommonShaderModule, // const VkShaderModule vertexShaderModule
1980 *m_fragmentShaderModuleProduceSubsampledImage, // const VkShaderModule fragmentShaderModule
1981 *m_renderPassProduceSubsampledImage, // const VkRenderPass renderPass
1982 viewportsSubsampledImage, // const std::vector<VkViewport>& viewport
1983 colorImageRenderArea, // const std::vector<VkRect2D>& scissor
1984 0u, // const deUint32 subpass
1985 &multisampleStateCreateInfo, // const VkPipelineMultisampleStateCreateInfo* multisampleStateCreateInfo
1986 pNextForeProduceSubsampledImage, // const void* pNext
1987 isDynamicRendering, // const bool useDensityMapAttachment
1988 m_testParams.useMaintenance5); // const bool useMaintenance5
1991 m_graphicsPipelineCopySubsampledImage = buildGraphicsPipeline(vk, // const DeviceInterface& vk
1992 vkDevice, // const VkDevice device
1993 *m_pipelineLayoutOperateOnSubsampledImage, // const VkPipelineLayout pipelineLayout
1994 *m_vertexCommonShaderModule, // const VkShaderModule vertexShaderModule
1995 *m_fragmentShaderModuleCopySubsampledImage, // const VkShaderModule fragmentShaderModule
1996 *m_renderPassProduceSubsampledImage, // const VkRenderPass renderPass
1997 viewportsSubsampledImage, // const std::vector<VkViewport>& viewport
1998 colorImageRenderArea, // const std::vector<VkRect2D>& scissor
1999 1u, // const deUint32 subpass
2000 &multisampleStateCreateInfo, // const VkPipelineMultisampleStateCreateInfo* multisampleStateCreateInfo
2001 DE_NULL, // const void* pNext
2002 DE_FALSE); // const bool useDensityMapAttachment
2004 m_graphicsPipelineUpdateSubsampledImage = buildGraphicsPipeline(vk, // const DeviceInterface& vk
2005 vkDevice, // const VkDevice device
2006 *m_pipelineLayoutOperateOnSubsampledImage, // const VkPipelineLayout pipelineLayout
2007 *m_vertexCommonShaderModule, // const VkShaderModule vertexShaderModule
2008 *m_fragmentShaderModuleUpdateSubsampledImage, // const VkShaderModule fragmentShaderModule
2009 *m_renderPassUpdateSubsampledImage, // const VkRenderPass renderPass
2010 viewportsSubsampledImage, // const std::vector<VkViewport>& viewport
2011 colorImageRenderArea, // const std::vector<VkRect2D>& scissor
2012 0u, // const deUint32 subpass
2013 &multisampleStateCreateInfo, // const VkPipelineMultisampleStateCreateInfo* multisampleStateCreateInfo
2014 pNextForeUpdateSubsampledImage, // const void* pNext
2015 isDynamicRendering, // const bool useDensityMapAttachment
2016 m_testParams.useMaintenance5); // const bool useMaintenance5
2019 m_graphicsPipelineOutputSubsampledImage = buildGraphicsPipeline(vk, // const DeviceInterface& vk
2020 vkDevice, // const VkDevice device
2021 *m_pipelineLayoutOutputSubsampledImage, // const VkPipelineLayout pipelineLayout
2022 *m_vertexCommonShaderModule, // const VkShaderModule vertexShaderModule
2023 *m_fragmentShaderModuleOutputSubsampledImage, // const VkShaderModule fragmentShaderModule
2024 *m_renderPassOutputSubsampledImage, // const VkRenderPass renderPass
2025 viewportsOutputSubsampledImage, // const std::vector<VkViewport>& viewport
2026 outputRenderArea, // const std::vector<VkRect2D>& scissor
2027 0u, // const deUint32 subpass
2028 DE_NULL, // const VkPipelineMultisampleStateCreateInfo* multisampleStateCreateInfo
2029 pNextForOutputSubsampledImage, // const void* pNext
2030 DE_FALSE); // const bool useDensityMapAttachment
2034 const tcu::Vec2 densityX(m_densityValue.x());
2035 const tcu::Vec2 densityY(m_densityValue.y());
2058 const DeviceInterface& vk = m_context.getDeviceInterface();
2059 const VkDeviceSize vertexBufferOffset = 0;
2068 const DeviceInterface& vk = m_context.getDeviceInterface();
2069 const VkDeviceSize vertexBufferOffset = 0;
2078 const DeviceInterface& vk = m_context.getDeviceInterface();
2079 const VkDeviceSize vertexBufferOffset = 0;
2089 const DeviceInterface& vk = m_context.getDeviceInterface();
2090 const VkDeviceSize vertexBufferOffset = 0;
2099 const VkExtent3D& colorImageSize,
2100 const VkRect2D& dynamicDensityMapRenderArea,
2101 const VkRect2D& colorImageRenderArea,
2102 const VkRect2D& outputRenderArea)
2104 const DeviceInterface& vk = m_context.getDeviceInterface();
2105 const VkDevice vkDevice = getDevice(m_context);
2106 const VkDeviceSize vertexBufferOffset = 0;
2107 const bool isColorImageMultisampled = m_testParams.colorSamples != VK_SAMPLE_COUNT_1_BIT;
2108 const VkClearValue attachmentClearValue = makeClearValueColorF32(0.0f, 0.0f, 0.0f, 1.0f);
2109 const deUint32 attachmentCount = 1 + m_testParams.makeCopy + isColorImageMultisampled;
2110 const std::vector<VkClearValue> attachmentClearValues (attachmentCount, attachmentClearValue);
2117 DE_NULL, // const void* pNext;
2125 const VkCommandBufferBeginInfo commandBufBeginParams
2128 DE_NULL, // const void* pNext;
2181 const VkRenderPassAttachmentBeginInfo renderPassAttachmentBeginInfo
2184 DE_NULL, // const void* pNext;
2186 &**m_densityMapImageViews[0] // const VkImageView* pAttachments;
2189 const VkRenderPassBeginInfo renderPassBeginInfoProduceDynamicDensityMap
2192 m_testParams.imagelessFramebuffer ? &renderPassAttachmentBeginInfo : DE_NULL, // const void* pNext;
2197 attachmentClearValuesDDM.data() // const VkClearValue* pClearValues;
2219 const VkRenderPassAttachmentBeginInfo renderPassAttachmentBeginInfo
2222 DE_NULL, // const void* pNext;
2224 imageViewsProduceSubsampledImage.data() // const VkImageView* pAttachments;
2227 const VkRenderPassBeginInfo renderPassBeginInfoProduceSubsampledImage
2230 m_testParams.imagelessFramebuffer ? &renderPassAttachmentBeginInfo : DE_NULL, // const void* pNext;
2235 attachmentClearValues.data() // const VkClearValue* pClearValues;
2261 const VkRenderPassAttachmentBeginInfo renderPassAttachmentBeginInfo
2264 DE_NULL, // const void* pNext;
2266 pAttachments // const VkImageView* pAttachments;
2269 const VkRenderPassBeginInfo renderPassBeginInfoUpdateSubsampledImage
2272 m_testParams.imagelessFramebuffer ? &renderPassAttachmentBeginInfo : DE_NULL, // const void* pNext;
2277 DE_NULL // const VkClearValue* pClearValues;
2291 const VkRenderPassAttachmentBeginInfo renderPassAttachmentBeginInfo
2294 DE_NULL, // const void* pNext;
2296 &*m_outputImageView // const VkImageView* pAttachments;
2299 const VkRenderPassBeginInfo renderPassBeginInfoOutputSubsampledImage
2302 m_testParams.imagelessFramebuffer ? &renderPassAttachmentBeginInfo : DE_NULL, // const void* pNext;
2307 attachmentClearValues.data() // const VkClearValue* pClearValues;
2321 void FragmentDensityMapTestInstance::createCommandBufferForDynamicRendering(const VkRect2D& dynamicDensityMapRenderArea,
2322 const VkRect2D& colorImageRenderArea,
2323 const VkRect2D& outputRenderArea,
2324 const VkDevice& vkDevice)
2329 const DeviceInterface& vk = m_context.getDeviceInterface();
2330 const bool isColorImageMultisampled = m_testParams.colorSamples != VK_SAMPLE_COUNT_1_BIT;
2332 const VkClearValue attachmentClearValue = makeClearValueColorF32(0.0f, 0.0f, 0.0f, 1.0f);
2333 const deUint32 attachmentCount = 1 + m_testParams.makeCopy + isColorImageMultisampled;
2334 const std::vector<VkClearValue> attachmentClearValues (attachmentCount, attachmentClearValue);
2335 const VkImageSubresourceRange dynamicDensitMapSubresourceRange { VK_IMAGE_ASPECT_COLOR_BIT, 0u, m_testParams.viewCount, 0u, 1u };
2336 const VkImageSubresourceRange colorSubresourceRange { VK_IMAGE_ASPECT_COLOR_BIT, 0u, 1u, 0u, m_testParams.viewCount };
2337 const VkImageSubresourceRange outputSubresourceRange { VK_IMAGE_ASPECT_COLOR_BIT, 0u, 1u, 0u, 1u };
2339 const VkImageMemoryBarrier dynamicDensitMapBarrier = makeImageMemoryBarrier(
2350 const VkImageMemoryBarrier densityMapImageBarrier = makeImageMemoryBarrier(
2372 const VkImageMemoryBarrier subsampledImageBarrier = makeImageMemoryBarrier(
2383 const VkImageMemoryBarrier outputImageBarrier = makeImageMemoryBarrier(
2393 const VkRenderingFragmentDensityMapAttachmentInfoEXT densityMap0Attachment
2396 DE_NULL, // const void* pNext;
2401 const VkRenderingFragmentDensityMapAttachmentInfoEXT densityMap1Attachment
2404 DE_NULL, // const void* pNext;
2409 const VkRenderingAttachmentInfoKHR dynamicDensityMapColorAttachment
2412 DE_NULL, // const void* pNext;
2432 &dynamicDensityMapColorAttachment, // const VkRenderingAttachmentInfoKHR* pColorAttachments;
2433 DE_NULL, // const VkRenderingAttachmentInfoKHR* pDepthAttachment;
2434 DE_NULL, // const VkRenderingAttachmentInfoKHR* pStencilAttachment;
2437 const VkRenderingAttachmentInfoKHR subsampledImageColorAttachment
2440 DE_NULL, // const void* pNext;
2461 &subsampledImageColorAttachment, // const VkRenderingAttachmentInfoKHR* pColorAttachments;
2462 DE_NULL, // const VkRenderingAttachmentInfoKHR* pDepthAttachment;
2463 DE_NULL, // const VkRenderingAttachmentInfoKHR* pStencilAttachment;
2466 const VkRenderingAttachmentInfoKHR resampleSubsampledImageColorAttachment
2469 DE_NULL, // const void* pNext;
2489 &resampleSubsampledImageColorAttachment, // const VkRenderingAttachmentInfoKHR* pColorAttachments;
2490 DE_NULL, // const VkRenderingAttachmentInfoKHR* pDepthAttachment;
2491 DE_NULL, // const VkRenderingAttachmentInfoKHR* pStencilAttachment;
2494 const VkRenderingAttachmentInfoKHR copySubsampledColorAttachment
2497 DE_NULL, // const void* pNext;
2517 &copySubsampledColorAttachment, // const VkRenderingAttachmentInfoKHR* pColorAttachments;
2518 DE_NULL, // const VkRenderingAttachmentInfoKHR* pDepthAttachment;
2519 DE_NULL, // const VkRenderingAttachmentInfoKHR* pStencilAttachment;
2524 const VkFormat colorImageFormat = VK_FORMAT_R8G8B8A8_UNORM;
2528 DE_NULL, // const void* pNext;
2532 &m_testParams.densityMapFormat, // const VkFormat* pColorAttachmentFormats;
2538 const VkCommandBufferInheritanceInfo bufferInheritanceInfo = initVulkanStructure(&inheritanceRenderingInfo);
2542 DE_NULL, // const void* pNext;
2753 const DeviceInterface& vk = m_context.getDeviceInterface();
2754 const VkDevice vkDevice = getDevice(m_context);
2755 const VkQueue queue = getDeviceQueue(vk, vkDevice, m_context.getUniversalQueueFamilyIndex(), 0);
2768 bool operator()(const tcu::Vec4& lhs, const tcu::Vec4& rhs) const
2782 const DeviceInterface& vk = m_context.getDeviceInterface();
2783 const VkDevice vkDevice = getDevice(m_context);
2784 const deUint32 queueFamilyIndex = m_context.getUniversalQueueFamilyIndex();
2785 const VkQueue queue = getDeviceQueue(vk, vkDevice, queueFamilyIndex, 0);
2789 const tcu::ConstPixelBufferAccess& outputAccess (outputImage->getAccess());
2828 for (const auto& color : colorCount)
2847 static void createChildren (tcu::TestCaseGroup* fdmTests, const SharedGroupParams groupParams)
2851 const struct
2863 const struct
2873 const struct
2883 const struct
2902 for (const auto& view : views)
2908 for (const auto& render : renders)
2914 for (const auto& size : sizes)
2917 for (const auto& sample : samples)
2924 for (const auto& area : fragmentArea)
2991 const struct
3004 for (const auto& sampler : subsampledSamplers)
3064 const struct
3074 for (const auto& cmdBuffType : commandBufferType)
3149 static void cleanupGroup (tcu::TestCaseGroup* group, const SharedGroupParams)
3156 tcu::TestCaseGroup* createFragmentDensityMapTests (tcu::TestContext& testCtx, const SharedGroupParams groupParams)