Lines Matching refs:params

333 void checkRequirements (Context& context, TestParams params)
344 if ((limits.framebufferColorSampleCounts & params.numColorSamples) == 0u)
347 if ((isIntFormat(params.colorFormat) || isUintFormat(params.colorFormat)))
349 if ((limits.sampledImageIntegerSampleCounts & params.numColorSamples) == 0u)
354 if ((limits.sampledImageColorSampleCounts & params.numColorSamples) == 0u)
359 const bool requireFragmentStores = (params.sampleSource == SAMPLE_SOURCE_SUBPASS_INPUT);
367 checkPipelineConstructionRequirements(vki, physicalDevice, params.pipelineConstructionType);
391 void initPrograms (SourceCollections& programCollection, const TestParams params)
399 switch (params.colorFormat)
503 if (params.sampleSource == SAMPLE_SOURCE_SUBPASS_INPUT)
509 << "layout(set = 0, binding = 0) uniform " << samplerPrefix << "sampler2DMS" << (params.numLayers > 1 ? "Array" : "") << " u_image;\n"
518 << " int width = " << params.renderSize.x() << ";\n"
519 << " int numSamples = " << static_cast<deUint32>(params.numColorSamples) << ";\n"
544 { "comp_fmask_fetch", true, (params.sampleSource != SAMPLE_SOURCE_SUBPASS_INPUT) },
550 const std::string samplingPos = (params.numLayers == 1 ? "ivec2(gl_WorkGroupID.xy)"
555 << "#define NUM_SAMPLES " << static_cast<deUint32>(params.numColorSamples) << "\n"
559 << "layout(set = 0, binding = 0) uniform " << samplerPrefix << "sampler2DMS" << (params.numLayers > 1 ? "Array" : "") << " u_image;\n"
616 void drawAndSampleInputAttachment (Context& context, const TestParams& params, WorkingData& wd)
618 DE_ASSERT(params.numLayers == 1u); // subpass load with single-layer image
651 if (params.sampleSource == SAMPLE_SOURCE_SUBPASS_INPUT)
676 params.colorFormat, // VkFormat format;
677 params.numColorSamples, // VkSampleCountFlagBits samples;
760 renderPass = RenderPassWrapper(params.pipelineConstructionType, vk, device, &renderPassInfo);
761 renderPass.createFramebuffer(vk, device, static_cast<deUint32>(attachments.size()), dataOrNullPtr(images), dataOrNullPtr(attachments), params.renderSize.x(), params.renderSize.y());
764 const std::vector<VkViewport> viewports { makeViewport(params.renderSize) };
765 const std::vector<VkRect2D> scissors { makeRect2D(params.renderSize) };
772 params.numColorSamples, // VkSampleCountFlagBits rasterizationSamples;
808 const PipelineLayoutWrapper pipelineLayout (params.pipelineConstructionType, vk, device, *descriptorSetLayout);
809 GraphicsPipelineWrapper pipelineDraw (vki, vk, physicalDevice, device, context.getDeviceExtensions(), params.pipelineConstructionType);
816 makeVertexInputAttributeDescription(1u, 0u, getVertexInputColorFormat(params.colorFormat), sizeof(Vec4))
850 GraphicsPipelineWrapper pipelineSample(vki, vk, physicalDevice, device, context.getDeviceExtensions(), params.pipelineConstructionType);
881 std::vector<VkClearValue> clearValues = genClearValues(params.colorFormat, params.numLayers);
886 { params.renderSize.x(), params.renderSize.y() }
933 void draw (Context& context, const TestParams& params, WorkingData& wd)
944 for (deUint32 layerNdx = 0u; layerNdx < params.numLayers; ++layerNdx)
947 makeImageView(vk, device, *wd.colorImage, VK_IMAGE_VIEW_TYPE_2D, params.colorFormat, makeImageSubresourceRange(VK_IMAGE_ASPECT_COLOR_BIT, 0u, 1u, layerNdx, 1u)))));
959 attachmentReferences.reserve(params.numLayers);
962 for (deUint32 layerNdx = 0u; layerNdx < params.numLayers; ++layerNdx)
969 params.colorFormat, // VkFormat format;
970 params.numColorSamples, // VkSampleCountFlagBits samples;
1013 renderPass = RenderPassWrapper(params.pipelineConstructionType, vk, device, &renderPassInfo);
1014 renderPass.createFramebuffer(vk, device, static_cast<deUint32>(attachments.size()), dataOrNullPtr(images), dataOrNullPtr(attachments), params.renderSize.x(), params.renderSize.y());
1017 const PipelineLayoutWrapper pipelineLayout (params.pipelineConstructionType, vk, device);
1026 makeVertexInputAttributeDescription(1u, 0u, getVertexInputColorFormat(params.colorFormat), sizeof(Vec4))
1040 const std::vector<VkViewport> viewports { makeViewport(params.renderSize) };
1041 const std::vector<VkRect2D> scissors { makeRect2D(params.renderSize) };
1048 params.numColorSamples, // VkSampleCountFlagBits rasterizationSamples;
1082 pipelines.reserve(params.numLayers);
1083 for (deUint32 layerNdx = 0u; layerNdx < params.numLayers; ++layerNdx)
1085 pipelines.emplace_back(vki, vk, physicalDevice, device, context.getDeviceExtensions(), params.pipelineConstructionType);
1109 std::vector<VkClearValue> clearValues = genClearValues(params.colorFormat, params.numLayers);
1114 { params.renderSize.x(), params.renderSize.y() }
1125 for (deUint32 layerNdx = 0u; layerNdx < params.numLayers; ++layerNdx)
1141 void dispatchSampleImage (Context& context, const TestParams& params, WorkingData& wd, const std::string& shaderName)
1188 vk.cmdDispatch(*cmdBuffer, params.renderSize.x(), params.renderSize.y(), params.numLayers);
1215 tcu::ConstPixelBufferAccess getSingleSampledAccess (const void* const imageData, const TestParams& params, const deUint32 sampleNdx, const deUint32 layerNdx)
1217 const deUint32 numSamples = static_cast<deUint32>(params.numColorSamples);
1218 const deUint32 pixelSize = tcu::getPixelSize(mapVkFormat(params.colorFormat));
1219 const deUint32 rowSize = pixelSize * params.renderSize.x();
1220 const deUint32 layerSize = rowSize * params.renderSize.y();
1224 const tcu::IVec3 size (params.renderSize.x(), params.renderSize.y(), 1);
1228 return tcu::ConstPixelBufferAccess(mapVkFormat(params.colorFormat), size, pitch, src);
1231 tcu::TestStatus test (Context& context, const TestParams params)
1243 | (params.sampleSource == SAMPLE_SOURCE_SUBPASS_INPUT ? VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT : (VkImageUsageFlagBits)0);
1244 wd.colorImage = makeImage(vk, device, params.colorFormat, params.renderSize, params.numLayers, params.numColorSamples, msImageUsage);
1246 wd.colorImageView = makeImageView(vk, device, *wd.colorImage, (params.numLayers == 1u ? VK_IMAGE_VIEW_TYPE_2D : VK_IMAGE_VIEW_TYPE_2D_ARRAY), params.colorFormat,
1247 makeImageSubresourceRange(VK_IMAGE_ASPECT_COLOR_BIT, 0u, 1u, 0u, params.numLayers));
1254 wd.colorBufferSize = static_cast<VkDeviceSize>(tcu::getPixelSize(mapVkFormat(params.colorFormat))
1255 * params.renderSize.x() * params.renderSize.y() * params.numLayers * static_cast<deUint32>(params.numColorSamples));
1262 const std::vector<PositionColor> vertices = genShapes(params.colorFormat);
1273 if (params.sampleSource == SAMPLE_SOURCE_SUBPASS_INPUT)
1276 drawAndSampleInputAttachment (context, params, wd);
1281 draw (context, params, wd);
1282 dispatchSampleImage (context, params, wd, "comp_fmask_fetch");
1294 dispatchSampleImage (context, params, wd, "comp_fetch");
1301 DE_ASSERT(!isFloatFormat(params.colorFormat)); // we're using int compare
1304 for (deUint32 layerNdx = 0u; layerNdx < params.numLayers; ++layerNdx)
1305 for (deUint32 sampleNdx = 0u; sampleNdx < static_cast<deUint32>(params.numColorSamples); ++sampleNdx)
1309 const tcu::ConstPixelBufferAccess expected = getSingleSampledAccess(expectedResult, params, sampleNdx, layerNdx);
1310 const tcu::ConstPixelBufferAccess actual = getSingleSampledAccess(fmaskResult, params, sampleNdx, layerNdx);
1374 TestParams params;
1375 params.pipelineConstructionType = pipelineConstructionType;
1376 params.renderSize = UVec2(32, 32);
1377 params.colorFormat = *pColorFormat;
1378 params.numColorSamples = *pSampleCount;
1379 params.numLayers = pSourceCase->numLayers;
1380 params.sampleSource = pSourceCase->sampleSource;
1382 addFunctionCaseWithPrograms(sourceGroup.get(), getFormatShortString(*pColorFormat), checkRequirements, initPrograms, test, params);