From 7e931e51baf5c85febd5abfe68311576178ed481 Mon Sep 17 00:00:00 2001 From: ziga-lunarg Date: Sat, 8 Oct 2022 20:32:44 +0200 Subject: [PATCH] Remove tests using invalid sType This test creates a structure with sType VK_STRUCTURE_TYPE_MAX_ENUM and passes it to other create info structs through pNext, but this sType is not allowed in the pNext of those create info structs Components: Vulkan VK-GL-CTS issue: 4023 Removed tests: dEQP-VK.api.smoke-triangle_ext_structs Change-Id: Iccfbcebb2bf9b43e93871bfc74aecea921bc31b8 --- android/cts/master/src/vk-incremental-deqp.txt | 1 - android/cts/master/src/vk-master-2020-03-01.txt | 1 - android/cts/master/vk-incremental-deqp/api.txt | 1 - android/cts/master/vk-master-2020-03-01/api.txt | 1 - android/cts/master/vk-master/api.txt | 1 - .../modules/vulkan/api/vktApiSmokeTests.cpp | 598 --------------------- .../vulkancts/mustpass/master/vk-default/api.txt | 1 - 7 files changed, 604 deletions(-) diff --git a/android/cts/master/src/vk-incremental-deqp.txt b/android/cts/master/src/vk-incremental-deqp.txt index fd0f838..965cae8 100644 --- a/android/cts/master/src/vk-incremental-deqp.txt +++ b/android/cts/master/src/vk-incremental-deqp.txt @@ -26,7 +26,6 @@ dEQP-VK.api.driver_properties.info_zero_terminated dEQP-VK.api.smoke.create_sampler dEQP-VK.api.smoke.create_shader dEQP-VK.api.smoke.triangle -dEQP-VK.api.smoke.triangle_ext_structs dEQP-VK.api.smoke.asm_triangle dEQP-VK.api.smoke.asm_triangle_no_opname dEQP-VK.api.smoke.unused_resolve_attachment diff --git a/android/cts/master/src/vk-master-2020-03-01.txt b/android/cts/master/src/vk-master-2020-03-01.txt index 8636fc8..1648c4d 100644 --- a/android/cts/master/src/vk-master-2020-03-01.txt +++ b/android/cts/master/src/vk-master-2020-03-01.txt @@ -1,6 +1,5 @@ dEQP-VK.info.device_memory_budget dEQP-VK.info.device_mandatory_features -dEQP-VK.api.smoke.triangle_ext_structs dEQP-VK.api.info.vulkan1p2.features dEQP-VK.api.info.vulkan1p2.properties dEQP-VK.api.info.vulkan1p2.feature_extensions_consistency diff --git a/android/cts/master/vk-incremental-deqp/api.txt b/android/cts/master/vk-incremental-deqp/api.txt index 6ee42d2..6059d60 100644 --- a/android/cts/master/vk-incremental-deqp/api.txt +++ b/android/cts/master/vk-incremental-deqp/api.txt @@ -7,7 +7,6 @@ dEQP-VK.api.driver_properties.info_zero_terminated dEQP-VK.api.smoke.create_sampler dEQP-VK.api.smoke.create_shader dEQP-VK.api.smoke.triangle -dEQP-VK.api.smoke.triangle_ext_structs dEQP-VK.api.smoke.asm_triangle dEQP-VK.api.smoke.asm_triangle_no_opname dEQP-VK.api.smoke.unused_resolve_attachment diff --git a/android/cts/master/vk-master-2020-03-01/api.txt b/android/cts/master/vk-master-2020-03-01/api.txt index a147e8a..c2832b7 100644 --- a/android/cts/master/vk-master-2020-03-01/api.txt +++ b/android/cts/master/vk-master-2020-03-01/api.txt @@ -1,4 +1,3 @@ -dEQP-VK.api.smoke.triangle_ext_structs dEQP-VK.api.info.vulkan1p2.features dEQP-VK.api.info.vulkan1p2.properties dEQP-VK.api.info.vulkan1p2.feature_extensions_consistency diff --git a/android/cts/master/vk-master/api.txt b/android/cts/master/vk-master/api.txt index 220df02..fe1ae93 100644 --- a/android/cts/master/vk-master/api.txt +++ b/android/cts/master/vk-master/api.txt @@ -7,7 +7,6 @@ dEQP-VK.api.driver_properties.info_zero_terminated dEQP-VK.api.smoke.create_sampler dEQP-VK.api.smoke.create_shader dEQP-VK.api.smoke.triangle -dEQP-VK.api.smoke.triangle_ext_structs dEQP-VK.api.smoke.asm_triangle dEQP-VK.api.smoke.asm_triangle_no_opname dEQP-VK.api.smoke.unused_resolve_attachment diff --git a/external/vulkancts/modules/vulkan/api/vktApiSmokeTests.cpp b/external/vulkancts/modules/vulkan/api/vktApiSmokeTests.cpp index 4a72c7a..0af8a71 100644 --- a/external/vulkancts/modules/vulkan/api/vktApiSmokeTests.cpp +++ b/external/vulkancts/modules/vulkan/api/vktApiSmokeTests.cpp @@ -590,603 +590,6 @@ struct VoidVulkanStruct const void* pNext; }; -tcu::TestStatus renderTriangleUnusedExtStructTest (Context& context) -{ - const VkDevice vkDevice = context.getDevice(); - const DeviceInterface& vk = context.getDeviceInterface(); - const VkQueue queue = context.getUniversalQueue(); - const deUint32 queueFamilyIndex = context.getUniversalQueueFamilyIndex(); - SimpleAllocator memAlloc (vk, vkDevice, getPhysicalDeviceMemoryProperties(context.getInstanceInterface(), context.getPhysicalDevice())); - const tcu::IVec2 renderSize (256, 256); - const VkFormat colorFormat = VK_FORMAT_R8G8B8A8_UNORM; - const tcu::Vec4 clearColor (0.125f, 0.25f, 0.75f, 1.0f); - - // This structure will stand in as an unknown extension structure that must be ignored by implementations. - VoidVulkanStruct unusedExtStruct = - { - VK_STRUCTURE_TYPE_MAX_ENUM, // sType - DE_NULL // pNext - }; - - const tcu::Vec4 vertices[] = - { - tcu::Vec4(-0.5f, -0.5f, 0.0f, 1.0f), - tcu::Vec4(+0.5f, -0.5f, 0.0f, 1.0f), - tcu::Vec4( 0.0f, +0.5f, 0.0f, 1.0f) - }; - - const VkBufferCreateInfo vertexBufferParams = - { - VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO, // sType - &unusedExtStruct, // pNext - 0u, // flags - (VkDeviceSize)sizeof(vertices), // size - VK_BUFFER_USAGE_VERTEX_BUFFER_BIT, // usage - VK_SHARING_MODE_EXCLUSIVE, // sharingMode - 1u, // queueFamilyIndexCount - &queueFamilyIndex, // pQueueFamilyIndices - }; - const Unique vertexBuffer (createBuffer(vk, vkDevice, &vertexBufferParams)); - const UniquePtr vertexBufferMemory (memAlloc.allocate(getBufferMemoryRequirements(vk, vkDevice, *vertexBuffer), MemoryRequirement::HostVisible)); - - VK_CHECK(vk.bindBufferMemory(vkDevice, *vertexBuffer, vertexBufferMemory->getMemory(), vertexBufferMemory->getOffset())); - - const VkDeviceSize imageSizeBytes = (VkDeviceSize)(sizeof(deUint32)*renderSize.x()*renderSize.y()); - const VkBufferCreateInfo readImageBufferParams = - { - VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO, // sType - &unusedExtStruct, // pNext - (VkBufferCreateFlags)0u, // flags - imageSizeBytes, // size - VK_BUFFER_USAGE_TRANSFER_DST_BIT, // usage - VK_SHARING_MODE_EXCLUSIVE, // sharingMode - 1u, // queueFamilyIndexCount - &queueFamilyIndex, // pQueueFamilyIndices - }; - const Unique readImageBuffer (createBuffer(vk, vkDevice, &readImageBufferParams)); - const UniquePtr readImageBufferMemory (memAlloc.allocate(getBufferMemoryRequirements(vk, vkDevice, *readImageBuffer), MemoryRequirement::HostVisible)); - - VK_CHECK(vk.bindBufferMemory(vkDevice, *readImageBuffer, readImageBufferMemory->getMemory(), readImageBufferMemory->getOffset())); - - const VkImageCreateInfo imageParams = - { - VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO, // sType - &unusedExtStruct, // pNext - 0u, // flags - VK_IMAGE_TYPE_2D, // imageType - VK_FORMAT_R8G8B8A8_UNORM, // format - { (deUint32)renderSize.x(), (deUint32)renderSize.y(), 1 }, // extent - 1u, // mipLevels - 1u, // arraySize - VK_SAMPLE_COUNT_1_BIT, // samples - VK_IMAGE_TILING_OPTIMAL, // tiling - VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT|VK_IMAGE_USAGE_TRANSFER_SRC_BIT, // usage - VK_SHARING_MODE_EXCLUSIVE, // sharingMode - 1u, // queueFamilyIndexCount - &queueFamilyIndex, // pQueueFamilyIndices - VK_IMAGE_LAYOUT_UNDEFINED, // initialLayout - }; - - const Unique image (createImage(vk, vkDevice, &imageParams)); - const UniquePtr imageMemory (memAlloc.allocate(getImageMemoryRequirements(vk, vkDevice, *image), MemoryRequirement::Any)); - - VK_CHECK(vk.bindImageMemory(vkDevice, *image, imageMemory->getMemory(), imageMemory->getOffset())); - - // Render pass - const VkAttachmentDescription colorAttachmentDescription = - { - (VkAttachmentDescriptionFlags)0, // VkAttachmentDescriptionFlags flags - VK_FORMAT_R8G8B8A8_UNORM, // VkFormat format - VK_SAMPLE_COUNT_1_BIT, // VkSampleCountFlagBits samples - VK_ATTACHMENT_LOAD_OP_CLEAR, // VkAttachmentLoadOp loadOp - VK_ATTACHMENT_STORE_OP_STORE, // VkAttachmentStoreOp storeOp - VK_ATTACHMENT_LOAD_OP_DONT_CARE, // VkAttachmentLoadOp stencilLoadOp - VK_ATTACHMENT_STORE_OP_DONT_CARE, // VkAttachmentStoreOp stencilStoreOp - VK_IMAGE_LAYOUT_UNDEFINED, // VkImageLayout initialLayout - VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL // VkImageLayout finalLayout - }; - - const VkAttachmentReference colorAttachmentRef = - { - 0u, // deUint32 attachment - VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL // VkImageLayout layout - }; - - const VkSubpassDescription subpassDescription = - { - (VkSubpassDescriptionFlags)0, // VkSubpassDescriptionFlags flags - VK_PIPELINE_BIND_POINT_GRAPHICS, // VkPipelineBindPoint pipelineBindPoint - 0u, // deUint32 inputAttachmentCount - DE_NULL, // const VkAttachmentReference* pInputAttachments - 1u, // deUint32 colorAttachmentCount - &colorAttachmentRef, // const VkAttachmentReference* pColorAttachments - DE_NULL, // const VkAttachmentReference* pResolveAttachments - DE_NULL, // const VkAttachmentReference* pDepthStencilAttachment - 0u, // deUint32 preserveAttachmentCount - DE_NULL // const deUint32* pPreserveAttachments - }; - - const VkRenderPassCreateInfo renderPassInfo = - { - VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO, // VkStructureType sType - &unusedExtStruct, // const void* pNext - (VkRenderPassCreateFlags)0, // VkRenderPassCreateFlags flags - 1u, // deUint32 attachmentCount - &colorAttachmentDescription, // const VkAttachmentDescription* pAttachments - 1u, // deUint32 subpassCount - &subpassDescription, // const VkSubpassDescription* pSubpasses - 0u, // deUint32 dependencyCount - DE_NULL // const VkSubpassDependency* pDependencies - }; - - const Unique renderPass (createRenderPass(vk, vkDevice, &renderPassInfo, DE_NULL)); - - // Color attachment view - const VkImageViewCreateInfo colorAttViewParams = - { - VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO, // sType - &unusedExtStruct, // pNext - 0u, // flags - *image, // image - VK_IMAGE_VIEW_TYPE_2D, // viewType - VK_FORMAT_R8G8B8A8_UNORM, // format - { - VK_COMPONENT_SWIZZLE_R, - VK_COMPONENT_SWIZZLE_G, - VK_COMPONENT_SWIZZLE_B, - VK_COMPONENT_SWIZZLE_A - }, // components - { - VK_IMAGE_ASPECT_COLOR_BIT, // aspectMask - 0u, // baseMipLevel - 1u, // levelCount - 0u, // baseArrayLayer - 1u, // layerCount - }, // subresourceRange - }; - const Unique colorAttView (createImageView(vk, vkDevice, &colorAttViewParams)); - - // Pipeline layout - const VkPipelineLayoutCreateInfo pipelineLayoutParams = - { - VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO, // sType - &unusedExtStruct, // pNext - (vk::VkPipelineLayoutCreateFlags)0, - 0u, // setLayoutCount - DE_NULL, // pSetLayouts - 0u, // pushConstantRangeCount - DE_NULL, // pPushConstantRanges - }; - const Unique pipelineLayout (createPipelineLayout(vk, vkDevice, &pipelineLayoutParams)); - - // Shader modules - const ProgramBinary vertBin = context.getBinaryCollection().get("vert"); - const ProgramBinary fragBin = context.getBinaryCollection().get("frag"); - - const struct VkShaderModuleCreateInfo vertModuleInfo = - { - VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO, - &unusedExtStruct, - 0, - (deUintptr)vertBin.getSize(), - (const deUint32*)vertBin.getBinary(), - }; - - const struct VkShaderModuleCreateInfo fragModuleInfo = - { - VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO, - &unusedExtStruct, - 0, - (deUintptr)fragBin.getSize(), - (const deUint32*)fragBin.getBinary(), - }; - - const Unique vertShaderModule (createShaderModule(vk, vkDevice, &vertModuleInfo)); - const Unique fragShaderModule (createShaderModule(vk, vkDevice, &fragModuleInfo)); - - // Pipeline - const std::vector viewports (1, makeViewport(renderSize)); - const std::vector scissors (1, makeRect2D(renderSize)); - - VkPipelineShaderStageCreateInfo stageCreateInfo = - { - VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO, // VkStructureType sType - &unusedExtStruct, // const void* pNext - 0u, // VkPipelineShaderStageCreateFlags flags - VK_SHADER_STAGE_VERTEX_BIT, // VkShaderStageFlagBits stage - DE_NULL, // VkShaderModule module - "main", // const char* pName - DE_NULL // const VkSpecializationInfo* pSpecializationInfo - }; - - std::vector pipelineShaderStageParams; - - stageCreateInfo.stage = VK_SHADER_STAGE_VERTEX_BIT; - stageCreateInfo.module = *vertShaderModule; - pipelineShaderStageParams.push_back(stageCreateInfo); - - stageCreateInfo.stage = VK_SHADER_STAGE_FRAGMENT_BIT; - stageCreateInfo.module = *fragShaderModule; - pipelineShaderStageParams.push_back(stageCreateInfo); - - const VkVertexInputBindingDescription vertexInputBindingDescription = - { - 0u, // deUint32 binding - sizeof(tcu::Vec4), // deUint32 stride - VK_VERTEX_INPUT_RATE_VERTEX, // VkVertexInputRate inputRate - }; - - const VkVertexInputAttributeDescription vertexInputAttributeDescription = - { - 0u, // deUint32 location - 0u, // deUint32 binding - VK_FORMAT_R32G32B32A32_SFLOAT, // VkFormat format - 0u // deUint32 offset - }; - - const VkPipelineVertexInputStateCreateInfo vertexInputStateCreateInfo = - { - VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO, // VkStructureType sType - &unusedExtStruct, // const void* pNext - (VkPipelineVertexInputStateCreateFlags)0, // VkPipelineVertexInputStateCreateFlags flags - 1u, // deUint32 vertexBindingDescriptionCount - &vertexInputBindingDescription, // const VkVertexInputBindingDescription* pVertexBindingDescriptions - 1u, // deUint32 vertexAttributeDescriptionCount - &vertexInputAttributeDescription // const VkVertexInputAttributeDescription* pVertexAttributeDescriptions - }; - - const VkPipelineInputAssemblyStateCreateInfo inputAssemblyStateCreateInfo = - { - VK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO, // VkStructureType sType - &unusedExtStruct, // const void* pNext - 0u, // VkPipelineInputAssemblyStateCreateFlags flags - VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST, // VkPrimitiveTopology topology - VK_FALSE // VkBool32 primitiveRestartEnable - }; - - const VkPipelineViewportStateCreateInfo viewportStateCreateInfo = - { - VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO, // VkStructureType sType - &unusedExtStruct, // const void* pNext - (VkPipelineViewportStateCreateFlags)0, // VkPipelineViewportStateCreateFlags flags - (deUint32)viewports.size(), // deUint32 viewportCount - viewports.data(), // const VkViewport* pViewports - (deUint32)scissors.size(), // deUint32 scissorCount - scissors.data() // const VkRect2D* pScissors - }; - - const VkPipelineRasterizationStateCreateInfo rasterizationStateCreateInfo = - { - VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO, // VkStructureType sType - &unusedExtStruct, // const void* pNext - 0u, // VkPipelineRasterizationStateCreateFlags flags - VK_FALSE, // VkBool32 depthClampEnable - VK_FALSE, // VkBool32 rasterizerDiscardEnable - VK_POLYGON_MODE_FILL, // VkPolygonMode polygonMode - VK_CULL_MODE_NONE, // VkCullModeFlags cullMode - VK_FRONT_FACE_COUNTER_CLOCKWISE, // VkFrontFace frontFace - VK_FALSE, // VkBool32 depthBiasEnable - 0.0f, // float depthBiasConstantFactor - 0.0f, // float depthBiasClamp - 0.0f, // float depthBiasSlopeFactor - 1.0f // float lineWidth - }; - - const VkPipelineMultisampleStateCreateInfo multisampleStateCreateInfo = - { - VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO, // VkStructureType sType - &unusedExtStruct, // const void* pNext - 0u, // VkPipelineMultisampleStateCreateFlags flags - VK_SAMPLE_COUNT_1_BIT, // VkSampleCountFlagBits rasterizationSamples - VK_FALSE, // VkBool32 sampleShadingEnable - 1.0f, // float minSampleShading - DE_NULL, // const VkSampleMask* pSampleMask - VK_FALSE, // VkBool32 alphaToCoverageEnable - VK_FALSE // VkBool32 alphaToOneEnable - }; - - const VkStencilOpState stencilOpState = - { - VK_STENCIL_OP_KEEP, // VkStencilOp failOp - VK_STENCIL_OP_KEEP, // VkStencilOp passOp - VK_STENCIL_OP_KEEP, // VkStencilOp depthFailOp - VK_COMPARE_OP_NEVER, // VkCompareOp compareOp - 0, // deUint32 compareMask - 0, // deUint32 writeMask - 0 // deUint32 reference - }; - - const VkPipelineDepthStencilStateCreateInfo depthStencilStateCreateInfo = - { - VK_STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO, // VkStructureType sType - &unusedExtStruct, // const void* pNext - 0u, // VkPipelineDepthStencilStateCreateFlags flags - VK_FALSE, // VkBool32 depthTestEnable - VK_FALSE, // VkBool32 depthWriteEnable - VK_COMPARE_OP_LESS_OR_EQUAL, // VkCompareOp depthCompareOp - VK_FALSE, // VkBool32 depthBoundsTestEnable - VK_FALSE, // VkBool32 stencilTestEnable - stencilOpState, // VkStencilOpState front - stencilOpState, // VkStencilOpState back - 0.0f, // float minDepthBounds - 1.0f, // float maxDepthBounds - }; - - const VkPipelineColorBlendAttachmentState colorBlendAttachmentState = - { - VK_FALSE, // VkBool32 blendEnable - VK_BLEND_FACTOR_ZERO, // VkBlendFactor srcColorBlendFactor - VK_BLEND_FACTOR_ZERO, // VkBlendFactor dstColorBlendFactor - VK_BLEND_OP_ADD, // VkBlendOp colorBlendOp - VK_BLEND_FACTOR_ZERO, // VkBlendFactor srcAlphaBlendFactor - VK_BLEND_FACTOR_ZERO, // VkBlendFactor dstAlphaBlendFactor - VK_BLEND_OP_ADD, // VkBlendOp alphaBlendOp - VK_COLOR_COMPONENT_R_BIT // VkColorComponentFlags colorWriteMask - | VK_COLOR_COMPONENT_G_BIT - | VK_COLOR_COMPONENT_B_BIT - | VK_COLOR_COMPONENT_A_BIT - }; - - const VkPipelineColorBlendStateCreateInfo colorBlendStateCreateInfo = - { - VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO, // VkStructureType sType - &unusedExtStruct, // const void* pNext - 0u, // VkPipelineColorBlendStateCreateFlags flags - VK_FALSE, // VkBool32 logicOpEnable - VK_LOGIC_OP_CLEAR, // VkLogicOp logicOp - 1u, // deUint32 attachmentCount - &colorBlendAttachmentState, // const VkPipelineColorBlendAttachmentState* pAttachments - { 0.0f, 0.0f, 0.0f, 0.0f } // float blendConstants[4] - }; - - const VkGraphicsPipelineCreateInfo pipelineCreateInfo = - { - VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO, // VkStructureType sType - &unusedExtStruct, // const void* pNext - 0u, // VkPipelineCreateFlags flags - (deUint32)pipelineShaderStageParams.size(), // deUint32 stageCount - &pipelineShaderStageParams[0], // const VkPipelineShaderStageCreateInfo* pStages - &vertexInputStateCreateInfo, // const VkPipelineVertexInputStateCreateInfo* pVertexInputState - &inputAssemblyStateCreateInfo, // const VkPipelineInputAssemblyStateCreateInfo* pInputAssemblyState - DE_NULL, // const VkPipelineTessellationStateCreateInfo* pTessellationState - &viewportStateCreateInfo, // const VkPipelineViewportStateCreateInfo* pViewportState - &rasterizationStateCreateInfo, // const VkPipelineRasterizationStateCreateInfo* pRasterizationState - &multisampleStateCreateInfo, // const VkPipelineMultisampleStateCreateInfo* pMultisampleState - &depthStencilStateCreateInfo, // const VkPipelineDepthStencilStateCreateInfo* pDepthStencilState - &colorBlendStateCreateInfo, // const VkPipelineColorBlendStateCreateInfo* pColorBlendState - DE_NULL, // const VkPipelineDynamicStateCreateInfo* pDynamicState - *pipelineLayout, // VkPipelineLayout layout - *renderPass, // VkRenderPass renderPass - 0u, // deUint32 subpass - DE_NULL, // VkPipeline basePipelineHandle - 0 // deInt32 basePipelineIndex - }; - - const Unique pipeline (createGraphicsPipeline(vk, vkDevice, DE_NULL, &pipelineCreateInfo)); - - // Framebuffer - const VkFramebufferCreateInfo framebufferParams = - { - VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO, // sType - &unusedExtStruct, // pNext - 0u, // flags - *renderPass, // renderPass - 1u, // attachmentCount - &*colorAttView, // pAttachments - (deUint32)renderSize.x(), // width - (deUint32)renderSize.y(), // height - 1u, // layers - }; - const Unique framebuffer (createFramebuffer(vk, vkDevice, &framebufferParams)); - - // Command buffer - const VkCommandPoolCreateInfo cmdPoolParams = - { - VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO, // sType - &unusedExtStruct, // pNext - VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT, // flags - queueFamilyIndex, // queueFamilyIndex - }; - const Unique cmdPool (createCommandPool(vk, vkDevice, &cmdPoolParams)); - - const VkCommandBufferAllocateInfo cmdBufParams = - { - VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO, // sType - &unusedExtStruct, // pNext - *cmdPool, // pool - VK_COMMAND_BUFFER_LEVEL_PRIMARY, // level - 1u, // bufferCount - }; - const Unique cmdBuf (allocateCommandBuffer(vk, vkDevice, &cmdBufParams)); - - // Record commands - const VkCommandBufferBeginInfo commandBufBeginParams = - { - VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO, // VkStructureType sType; - &unusedExtStruct, // const void* pNext; - VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT, // VkCommandBufferUsageFlags flags; - (const VkCommandBufferInheritanceInfo*)DE_NULL, - }; - VK_CHECK(vk.beginCommandBuffer(*cmdBuf, &commandBufBeginParams)); - - const VkMemoryBarrier vertFlushBarrier = - { - VK_STRUCTURE_TYPE_MEMORY_BARRIER, // sType - &unusedExtStruct, // pNext - VK_ACCESS_HOST_WRITE_BIT, // srcAccessMask - VK_ACCESS_VERTEX_ATTRIBUTE_READ_BIT, // dstAccessMask - }; - - const VkImageMemoryBarrier colorAttBarrier = - { - VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER, // sType - &unusedExtStruct, // pNext - 0u, // srcAccessMask - (VK_ACCESS_COLOR_ATTACHMENT_READ_BIT| - VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT), // dstAccessMask - VK_IMAGE_LAYOUT_UNDEFINED, // oldLayout - VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL, // newLayout - queueFamilyIndex, // srcQueueFamilyIndex - queueFamilyIndex, // dstQueueFamilyIndex - *image, // image - { - VK_IMAGE_ASPECT_COLOR_BIT, // aspectMask - 0u, // baseMipLevel - 1u, // levelCount - 0u, // baseArrayLayer - 1u, // layerCount - } // subresourceRange - }; - vk.cmdPipelineBarrier(*cmdBuf, VK_PIPELINE_STAGE_HOST_BIT, VK_PIPELINE_STAGE_ALL_COMMANDS_BIT, (VkDependencyFlags)0, 1, &vertFlushBarrier, 0, (const VkBufferMemoryBarrier*)DE_NULL, 1, &colorAttBarrier); - - const VkClearValue clearValue = makeClearValueColor(clearColor); - const VkRenderPassBeginInfo renderPassBeginInfo = - { - VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO, // VkStructureType sType; - &unusedExtStruct, // const void* pNext; - *renderPass, // VkRenderPass renderPass; - *framebuffer, // VkFramebuffer framebuffer; - makeRect2D(0, 0, renderSize.x(), renderSize.y()), // VkRect2D renderArea; - 1u, // deUint32 clearValueCount; - &clearValue, // const VkClearValue* pClearValues; - }; - - vk.cmdBeginRenderPass(*cmdBuf, &renderPassBeginInfo, VK_SUBPASS_CONTENTS_INLINE); - - vk.cmdBindPipeline(*cmdBuf, VK_PIPELINE_BIND_POINT_GRAPHICS, *pipeline); - - const VkDeviceSize bindingOffset = 0; - vk.cmdBindVertexBuffers(*cmdBuf, 0u, 1u, &vertexBuffer.get(), &bindingOffset); - - vk.cmdDraw(*cmdBuf, 3u, 1u, 0u, 0u); - endRenderPass(vk, *cmdBuf); - - const VkImageMemoryBarrier imageBarrier = - { - VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER, // VkStructureType sType; - &unusedExtStruct, // const void* pNext; - VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT, // VkAccessFlags srcAccessMask; - VK_ACCESS_TRANSFER_READ_BIT, // VkAccessFlags dstAccessMask; - VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL, // VkImageLayout oldLayout; - VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL, // VkImageLayout newLayout; - VK_QUEUE_FAMILY_IGNORED, // deUint32 srcQueueFamilyIndex; - VK_QUEUE_FAMILY_IGNORED, // deUint32 destQueueFamilyIndex; - *image, // VkImage image; - makeImageSubresourceRange(VK_IMAGE_ASPECT_COLOR_BIT, 0u, 1u, 0, 1u) // VkImageSubresourceRange subresourceRange; - }; - - vk.cmdPipelineBarrier(*cmdBuf, VK_PIPELINE_STAGE_ALL_COMMANDS_BIT, VK_PIPELINE_STAGE_TRANSFER_BIT, 0u, - 0u, DE_NULL, 0u, DE_NULL, 1u, &imageBarrier); - - const VkImageSubresourceLayers subresource = - { - VK_IMAGE_ASPECT_COLOR_BIT, // VkImageAspectFlags aspectMask; - 0u, // deUint32 mipLevel; - 0u, // deUint32 baseArrayLayer; - 1u // deUint32 layerCount; - }; - - const VkBufferImageCopy region = - { - 0ull, // VkDeviceSize bufferOffset; - 0u, // deUint32 bufferRowLength; - 0u, // deUint32 bufferImageHeight; - subresource, // VkImageSubresourceLayers imageSubresource; - makeOffset3D(0, 0, 0), // VkOffset3D imageOffset; - makeExtent3D(renderSize.x(), renderSize.y(), 1u) // VkExtent3D imageExtent; - }; - - vk.cmdCopyImageToBuffer(*cmdBuf, *image, VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL, *readImageBuffer, 1u, ®ion); - - const VkBufferMemoryBarrier bufferBarrier = - { - VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER, // VkStructureType sType; - &unusedExtStruct, // const void* pNext; - VK_ACCESS_TRANSFER_WRITE_BIT, // VkAccessFlags srcAccessMask; - VK_ACCESS_HOST_READ_BIT, // VkAccessFlags dstAccessMask; - VK_QUEUE_FAMILY_IGNORED, // deUint32 srcQueueFamilyIndex; - VK_QUEUE_FAMILY_IGNORED, // deUint32 dstQueueFamilyIndex; - *readImageBuffer, // VkBuffer buffer; - 0ull, // VkDeviceSize offset; - VK_WHOLE_SIZE // VkDeviceSize size; - }; - - vk.cmdPipelineBarrier(*cmdBuf, VK_PIPELINE_STAGE_TRANSFER_BIT, VK_PIPELINE_STAGE_HOST_BIT, 0u, - 0u, DE_NULL, 1u, &bufferBarrier, 0u, DE_NULL); - - endCommandBuffer(vk, *cmdBuf); - - // Upload vertex data - const VkMappedMemoryRange flushRange = - { - VK_STRUCTURE_TYPE_MAPPED_MEMORY_RANGE, - &unusedExtStruct, - vertexBufferMemory->getMemory(), - vertexBufferMemory->getOffset(), - VK_WHOLE_SIZE - }; - deMemcpy(vertexBufferMemory->getHostPtr(), &vertices[0], sizeof(vertices)); - VK_CHECK(vk.flushMappedMemoryRanges(vkDevice, 1u, &flushRange)); - - // Submit & wait for completion - const VkFenceCreateInfo createInfo = - { - VK_STRUCTURE_TYPE_FENCE_CREATE_INFO, - &unusedExtStruct, - 0u - }; - - const Unique fence (createFence(vk, vkDevice, &createInfo, DE_NULL)); - - const VkSubmitInfo submitInfo = - { - VK_STRUCTURE_TYPE_SUBMIT_INFO, // VkStructureType sType; - &unusedExtStruct, // const void* pNext; - 0u, // deUint32 waitSemaphoreCount; - DE_NULL, // const VkSemaphore* pWaitSemaphores; - (const VkPipelineStageFlags*)DE_NULL, // const VkPipelineStageFlags* pWaitDstStageMask; - 1u, // deUint32 commandBufferCount; - &*cmdBuf, // const VkCommandBuffer* pCommandBuffers; - 0u, // deUint32 signalSemaphoreCount; - DE_NULL, // const VkSemaphore* pSignalSemaphores; - }; - - VK_CHECK(vk.queueSubmit(queue, 1u, &submitInfo, *fence)); - VK_CHECK(vk.waitForFences(vkDevice, 1u, &fence.get(), DE_TRUE, ~0ull)); - - // Read results, render reference, compare - { - const tcu::TextureFormat tcuFormat = vk::mapVkFormat(colorFormat); - const tcu::ConstPixelBufferAccess resultAccess (tcuFormat, renderSize.x(), renderSize.y(), 1, readImageBufferMemory->getHostPtr()); - - invalidateAlloc(vk, vkDevice, *readImageBufferMemory); - - { - tcu::TextureLevel refImage (tcuFormat, renderSize.x(), renderSize.y()); - const tcu::UVec4 threshold (0u); - const tcu::IVec3 posDeviation (1,1,0); - - tcu::clear(refImage.getAccess(), clearColor); - renderReferenceTriangle(refImage.getAccess(), vertices, context.getDeviceProperties().limits.subPixelPrecisionBits); - - if (tcu::intThresholdPositionDeviationCompare(context.getTestContext().getLog(), - "ComparisonResult", - "Image comparison result", - refImage.getAccess(), - resultAccess, - threshold, - posDeviation, - false, - tcu::COMPARE_LOG_RESULT)) - return tcu::TestStatus::pass("Rendering succeeded"); - else - return tcu::TestStatus::fail("Image comparison failed"); - } - } - - return tcu::TestStatus::pass("Rendering succeeded"); -} - tcu::TestStatus renderTriangleUnusedResolveAttachmentTest (Context& context) { const VkDevice vkDevice = context.getDevice(); @@ -1498,7 +901,6 @@ tcu::TestCaseGroup* createSmokeTests (tcu::TestContext& testCtx) addFunctionCase (smokeTests.get(), "create_sampler", "", createSamplerTest); addFunctionCaseWithPrograms (smokeTests.get(), "create_shader", "", createShaderProgs, createShaderModuleTest); addFunctionCaseWithPrograms (smokeTests.get(), "triangle", "", createTriangleProgs, renderTriangleTest); - addFunctionCaseWithPrograms (smokeTests.get(), "triangle_ext_structs", "", createTriangleProgs, renderTriangleUnusedExtStructTest); addFunctionCaseWithPrograms (smokeTests.get(), "asm_triangle", "", createTriangleAsmProgs, renderTriangleTest); addFunctionCaseWithPrograms (smokeTests.get(), "asm_triangle_no_opname", "", createProgsNoOpName, renderTriangleTest); addFunctionCaseWithPrograms (smokeTests.get(), "unused_resolve_attachment", "", createTriangleProgs, renderTriangleUnusedResolveAttachmentTest); diff --git a/external/vulkancts/mustpass/master/vk-default/api.txt b/external/vulkancts/mustpass/master/vk-default/api.txt index ea64d6a..95eb886 100644 --- a/external/vulkancts/mustpass/master/vk-default/api.txt +++ b/external/vulkancts/mustpass/master/vk-default/api.txt @@ -8,7 +8,6 @@ dEQP-VK.api.driver_properties.conformance_version dEQP-VK.api.smoke.create_sampler dEQP-VK.api.smoke.create_shader dEQP-VK.api.smoke.triangle -dEQP-VK.api.smoke.triangle_ext_structs dEQP-VK.api.smoke.asm_triangle dEQP-VK.api.smoke.asm_triangle_no_opname dEQP-VK.api.smoke.unused_resolve_attachment -- 2.7.4