Lines Matching defs:const
105 void genUniformBlock (ostringstream& out, const string& blockName, const string& instanceName, int setNdx, int bindingNdx, const vector<Value>& uniforms)
126 void declareReferenceBlock (ostringstream& out, const ValueBlock& valueBlock)
132 void declareUniforms (ostringstream& out, const ValueBlock& valueBlock)
154 string genVertexShader (const ShaderCaseSpecification& spec)
171 const Value& val = spec.values.inputs[ndx];
172 const DataType valueType = val.type.getBasicType();
173 const DataType transportType = getTransportType(valueType);
174 const char* const transportTypeStr = getDataTypeName(transportType);
175 const int numLocs = getNumTransportLocations(valueType);
193 const Value& val = spec.values.inputs[ndx];
194 const string& name = val.name;
204 void genCompareOp (ostringstream& output, const char* dstVec4Var, const ValueBlock& valueBlock, const char* checkVarName)
210 const Value& val = valueBlock.outputs[ndx];
238 string genFragmentShader (const ShaderCaseSpecification& spec)
259 const Value& val = spec.values.outputs[ndx];
260 const DataType valueType = val.type.getBasicType();
261 const char* const valueTypeStr = getDataTypeName(valueType);
262 const DataType transportType = getTransportType(valueType);
263 const char* const transportTypeStr = getDataTypeName(transportType);
264 const int numLocs = getNumTransportLocations(valueType);
290 string specializeVertexShader (const ShaderCaseSpecification& spec, const string& src)
310 const Value& val = spec.values.inputs[ndx];
311 const DataType valueType = val.type.getBasicType();
312 const char* const valueTypeStr = getDataTypeName(valueType);
313 const DataType transportType = getTransportType(valueType);
314 const char* const transportTypeStr = getDataTypeName(transportType);
315 const int numLocs = getNumTransportLocations(valueType);
334 const Value& val = spec.values.outputs[ndx];
335 const DataType valueType = val.type.getBasicType();
336 const char* const valueTypeStr = getDataTypeName(valueType);
337 const DataType transportType = getTransportType(valueType);
338 const char* const transportTypeStr = getDataTypeName(transportType);
339 const int numLocs = getNumTransportLocations(valueType);
364 const string baseSrc = tmpl.specialize(params);
365 const string withExt = injectExtensionRequirements(baseSrc, spec.programs[0].requiredExtensions, glu::SHADERTYPE_VERTEX);
371 string specializeFragmentShader (const ShaderCaseSpecification& spec, const string& src)
388 const Value& val = spec.values.inputs[ndx];
389 const DataType valueType = val.type.getBasicType();
390 const char* const valueTypeStr = getDataTypeName(valueType);
391 const DataType transportType = getTransportType(valueType);
392 const char* const transportTypeStr = getDataTypeName(transportType);
393 const int numLocs = getNumTransportLocations(valueType);
413 const Value& val = spec.values.outputs[ndx];
414 const DataType basicType = val.type.getBasicType();
415 const char* const refTypeStr = getDataTypeName(basicType);
428 const string baseSrc = tmpl.specialize(params);
429 const string withExt = injectExtensionRequirements(baseSrc, spec.programs[0].requiredExtensions, glu::SHADERTYPE_FRAGMENT);
434 map<string, string> generateVertexSpecialization (const ProgramSpecializationParams& specParams)
446 const Value& val = specParams.caseSpec.values.inputs[ndx];
447 const DataType valueType = val.type.getBasicType();
448 const char* const valueTypeStr = getDataTypeName(valueType);
449 const DataType transportType = getTransportType(valueType);
450 const char* const transportTypeStr = getDataTypeName(transportType);
451 const int numLocs = getNumTransportLocations(valueType);
475 map<string, string> generateFragmentSpecialization (const ProgramSpecializationParams& specParams)
488 const Value& val = specParams.caseSpec.values.outputs[ndx];
489 const char* const refTypeStr = getDataTypeName(val.type.getBasicType());
504 map<string, string> generateGeometrySpecialization (const ProgramSpecializationParams& specParams)
520 map<string, string> generateTessControlSpecialization (const ProgramSpecializationParams& specParams)
546 map<string, string> generateTessEvalSpecialization (const ProgramSpecializationParams& specParams)
567 const ProgramSources& src,
568 const ProgramSpecializationParams& specParams,
570 map<string, string> (*specializationGenerator) (const ProgramSpecializationParams& specParams))
574 const map<string, string> tmplParams = specializationGenerator(specParams);
578 const StringTemplate tmpl (src.sources[shaderType][ndx]);
579 const string baseGLSLCode = tmpl.specialize(tmplParams);
580 const string sourceWithExts = injectExtensionRequirements(baseGLSLCode, specParams.requiredExtensions, shaderType);
588 const glu::ProgramSources& src,
589 const ProgramSpecializationParams& specParams)
617 ValueBufferLayout computeStd140Layout (const vector<Value>& values)
625 const DataType basicType = values[ndx].type.getBasicType();
626 const bool isMatrix = isDataTypeMatrix(basicType);
627 const int numVecs = isMatrix ? getDataTypeMatrixNumColumns(basicType) : 1;
628 const DataType vecType = isMatrix ? glu::getDataTypeFloatVec(getDataTypeMatrixNumRows(basicType)) : basicType;
629 const int vecSize = getDataTypeScalarSize(vecType);
630 const int alignment = ((isMatrix || vecSize == 3) ? 4 : vecSize)*int(sizeof(deUint32));
640 ValueBufferLayout computeStd430Layout (const vector<Value>& values)
648 const DataType basicType = values[ndx].type.getBasicType();
649 const int numVecs = isDataTypeMatrix(basicType) ? getDataTypeMatrixNumColumns(basicType) : 1;
650 const DataType vecType = isDataTypeMatrix(basicType) ? glu::getDataTypeFloatVec(getDataTypeMatrixNumRows(basicType)) : basicType;
651 const int vecSize = getDataTypeScalarSize(vecType);
652 const int alignment = (vecSize == 3 ? 4 : vecSize)*int(sizeof(deUint32));
662 void copyToLayout (void* dst, const ValueBufferLayout::Entry& entryLayout, const Value& value, int arrayNdx)
664 const DataType basicType = value.type.getBasicType();
665 const int scalarSize = getDataTypeScalarSize(basicType);
666 const int numVecs = isDataTypeMatrix(basicType) ? getDataTypeMatrixNumColumns(basicType) : 1;
667 const int numComps = isDataTypeMatrix(basicType) ? getDataTypeMatrixNumRows(basicType) : scalarSize;
677 const deUint32 data = value.elements[arrayNdx*scalarSize + vecNdx*numComps + compNdx].bool32 ? ~0u : 0u;
694 void copyToLayout (void* dst, const ValueBufferLayout& layout, const vector<Value>& values, int arrayNdx)
702 deUint32 getShaderStages (const ShaderCaseSpecification& spec)
726 PipelineProgram (Context& context, const ShaderCaseSpecification& spec);
728 deUint32 getStages (void) const { return m_stages; }
730 bool hasShader (glu::ShaderType type) const { return (m_stages & (1u << type)) != 0; }
731 vk::VkShaderModule getShader (glu::ShaderType type) const { return *m_shaderModules[type]; }
734 const deUint32 m_stages;
738 PipelineProgram::PipelineProgram (Context& context, const ShaderCaseSpecification& spec)
756 const deUint32 queueFamilyIndex = context.getUniversalQueueFamilyIndex();
757 const vk::VkBufferCreateInfo params =
774 const deUint32 queueFamilyIndex = context.getUniversalQueueFamilyIndex();
775 const vk::VkImageCreateInfo params =
799 const vk::VkImageViewCreateInfo params =
849 const vk::VkAttachmentReference dsAttRef =
854 const vk::VkSubpassDescription subpassDesc =
868 const vk::VkRenderPassCreateInfo renderPassParams =
910 const vk::VkPipelineLayoutCreateInfo params =
930 const vk::VkFormat vecFmts[] =
942 const vk::VkFormat vecFmts[] =
954 const vk::VkFormat vecFmts[] =
966 const vk::VkFormat vecFmts[] =
982 vector<vk::VkVertexInputAttributeDescription> getVertexAttributeDescriptions (const vector<Value>& inputValues, const ValueBufferLayout& layout)
988 const vk::VkVertexInputAttributeDescription posDesc =
1002 const Value& input = inputValues[inputNdx];
1003 const ValueBufferLayout::Entry& layoutEntry = layout.entries[inputNdx];
1004 const DataType basicType = input.type.getBasicType();
1005 const int numVecs = isDataTypeMatrix(basicType)
1008 const int vecSize = isDataTypeMatrix(basicType)
1011 const DataType scalarType = getDataTypeScalarType(basicType);
1012 const vk::VkFormat vecFmt = getVecFormat(scalarType, vecSize);
1016 const deUint32 curLoc = (deUint32)attribs.size();
1017 const deUint32 offset = (deUint32)(layoutEntry.offset + layoutEntry.vecStride*vecNdx);
1018 const vk::VkVertexInputAttributeDescription desc =
1034 const vector<Value>& inputValues,
1035 const ValueBufferLayout& inputLayout,
1036 const PipelineProgram& program,
1042 const vk::VkShaderModule vertShader = program.hasShader(glu::SHADERTYPE_VERTEX) ? program.getShader(glu::SHADERTYPE_VERTEX) : DE_NULL;
1043 const vk::VkShaderModule tessControlShader = program.hasShader(glu::SHADERTYPE_TESSELLATION_CONTROL) ? program.getShader(glu::SHADERTYPE_TESSELLATION_CONTROL) : DE_NULL;
1044 const vk::VkShaderModule tessEvalShader = program.hasShader(glu::SHADERTYPE_TESSELLATION_EVALUATION) ? program.getShader(glu::SHADERTYPE_TESSELLATION_EVALUATION) : DE_NULL;
1045 const vk::VkShaderModule geomShader = program.hasShader(glu::SHADERTYPE_GEOMETRY) ? program.getShader(glu::SHADERTYPE_GEOMETRY) : DE_NULL;
1046 const vk::VkShaderModule fragShader = program.hasShader(glu::SHADERTYPE_FRAGMENT) ? program.getShader(glu::SHADERTYPE_FRAGMENT) : DE_NULL;
1047 const vector<vk::VkVertexInputAttributeDescription> vertexAttribParams (getVertexAttributeDescriptions(inputValues, inputLayout));
1048 const vector<vk::VkViewport> viewports (1, vk::makeViewport(renderSize));
1049 const vector<vk::VkRect2D> scissors (1, vk::makeRect2D(renderSize));
1050 const vk::VkVertexInputBindingDescription vertexBindings[] =
1063 const vk::VkPipelineVertexInputStateCreateInfo vertexInputStateParams =
1073 const vk::VkColorComponentFlags allCompMask = vk::VK_COLOR_COMPONENT_R_BIT
1094 const vk::VkPipelineColorBlendStateCreateInfo blendParams =
1106 return vk::makeGraphicsPipeline(context.getDeviceInterface(), // const DeviceInterface& vk
1107 context.getDevice(), // const VkDevice device
1108 pipelineLayout, // const VkPipelineLayout pipelineLayout
1109 vertShader, // const VkShaderModule vertexShaderModule
1110 tessControlShader, // const VkShaderModule tessellationControlShaderModule
1111 tessEvalShader, // const VkShaderModule tessellationEvalShaderModule
1112 geomShader, // const VkShaderModule geometryShaderModule
1113 fragShader, // const VkShaderModule fragmentShaderModule
1114 renderPass, // const VkRenderPass renderPass
1115 viewports, // const std::vector<VkViewport>& viewports
1116 scissors, // const std::vector<VkRect2D>& scissors
1117 vk::VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST, // const VkPrimitiveTopology topology
1118 0u, // const deUint32 subpass
1119 0u, // const deUint32 patchControlPoints
1120 &vertexInputStateParams, // const VkPipelineVertexInputStateCreateInfo* vertexInputStateCreateInfo
1121 DE_NULL, // const VkPipelineRasterizationStateCreateInfo* rasterizationStateCreateInfo
1122 DE_NULL, // const VkPipelineMultisampleStateCreateInfo* multisampleStateCreateInfo
1123 DE_NULL, // const VkPipelineDepthStencilStateCreateInfo* depthStencilStateCreateInfo
1124 &blendParams); // const VkPipelineColorBlendStateCreateInfo* colorBlendStateCreateInfo
1134 const vk::VkFramebufferCreateInfo framebufferParams =
1152 const deUint32 queueFamilyIndex = context.getUniversalQueueFamilyIndex();
1166 const vk::VkDescriptorSetAllocateInfo params =
1204 const vk::DeviceInterface& vkd = context.getDeviceInterface();
1205 const vk::VkMemoryRequirements imgReqs = vk::getImageMemoryRequirements(vkd, context.getDevice(), image);
1213 void writeValuesToMem (Context& context, const vk::Allocation& dst, const ValueBufferLayout& layout, const vector<Value>& values, int arrayNdx)
1224 ShaderCaseInstance (Context& context, const ShaderCaseSpecification& spec);
1244 const ShaderCaseSpecification& m_spec;
1246 const Unique<vk::VkBuffer> m_posNdxBuffer;
1247 const UniquePtr<vk::Allocation> m_posNdxMem;
1249 const ValueBufferLayout m_inputLayout;
1250 const Unique<vk::VkBuffer> m_inputBuffer; // Input values (attributes). Can be NULL if no inputs present
1251 const UniquePtr<vk::Allocation> m_inputMem; // Input memory, can be NULL if no input buffer exists
1253 const ValueBufferLayout m_referenceLayout;
1254 const Unique<vk::VkBuffer> m_referenceBuffer; // Output (reference) values. Can be NULL if no outputs present
1255 const UniquePtr<vk::Allocation> m_referenceMem; // Output (reference) memory, can be NULL if no reference buffer exists
1257 const ValueBufferLayout m_uniformLayout;
1258 const Unique<vk::VkBuffer> m_uniformBuffer; // Uniform values. Can be NULL if no uniforms present
1259 const UniquePtr<vk::Allocation> m_uniformMem; // Uniform memory, can be NULL if no uniform buffer exists
1261 const vk::VkFormat m_rtFormat;
1270 const Unique<vk::VkRenderPass> m_renderPass;
1272 const PipelineProgram m_program;
1273 const Unique<vk::VkDescriptorSetLayout> m_descriptorSetLayout;
1274 const Unique<vk::VkPipelineLayout> m_pipelineLayout;
1275 const Unique<vk::VkPipeline> m_pipeline;
1277 const Unique<vk::VkDescriptorPool> m_descriptorPool;
1278 const Unique<vk::VkDescriptorSet> m_descriptorSet;
1280 const Unique<vk::VkCommandPool> m_cmdPool;
1281 const Unique<vk::VkCommandBuffer> m_cmdBuffer;
1286 ShaderCaseInstance::ShaderCaseInstance (Context& context, const ShaderCaseSpecification& spec)
1343 const vk::DeviceInterface& vkd = context.getDeviceInterface();
1344 const deUint32 queueFamilyIndex = context.getUniversalQueueFamilyIndex();
1347 const Vec2 s_positions[] =
1354 const deUint16 s_indices[] =
1371 const vk::VkDescriptorBufferInfo bufInfo =
1386 const vk::VkDescriptorBufferInfo bufInfo =
1404 const vk::VkMemoryBarrier vertFlushBarrier =
1437 0, (const vk::VkBufferMemoryBarrier*)DE_NULL,
1457 const vk::VkBuffer buffers[] = { *m_posNdxBuffer, *m_inputBuffer };
1458 const vk::VkDeviceSize offsets[] = { POSITIONS_OFFSET, 0u };
1459 const deUint32 numBuffers = buffers[1] != 0 ? 2u : 1u;
1494 0, (const vk::VkMemoryBarrier*)DE_NULL,
1495 0, (const vk::VkBufferMemoryBarrier*)DE_NULL,
1502 const vk::VkBufferImageCopy copyParams =
1522 const vk::VkDeviceSize size = (vk::VkDeviceSize)(RENDER_WIDTH * RENDER_HEIGHT * tcu::getPixelSize(vk::mapVkFormat(m_rtFormat)));
1541 0, (const vk::VkMemoryBarrier*)DE_NULL,
1543 0, (const vk::VkImageMemoryBarrier*)DE_NULL);
1553 int getNumSubCases (const ValueBlock& values)
1561 bool checkResultImage (const ConstPixelBufferAccess& result)
1563 const tcu::IVec4 refPix (255, 255, 255, 255);
1569 const tcu::IVec4 resPix = result.getPixelInt(x, y);
1579 bool checkResultImageWithReference (const ConstPixelBufferAccess& result, tcu::IVec4 refPix)
1585 const tcu::IVec4 resPix = result.getPixelInt(x, y);
1596 const vk::DeviceInterface& vkd = m_context.getDeviceInterface();
1597 const vk::VkDevice device = m_context.getDevice();
1598 const vk::VkQueue queue = m_context.getUniversalQueue();
1614 const ConstPixelBufferAccess imgAccess (TextureFormat(TextureFormat::RGBA, TextureFormat::UNORM_INT8), RENDER_WIDTH, RENDER_HEIGHT, 1, m_readImageMem[0]->getHostPtr());
1635 const ConstPixelBufferAccess imgAccess (vk::mapVkFormat(m_rtFormat), RENDER_WIDTH, RENDER_HEIGHT, 1, m_readImageMem[outNdx]->getHostPtr());
1636 const DataType dataType = m_spec.values.outputs[outNdx].type.getBasicType();
1637 const int numComponents = getDataTypeScalarSize(dataType);
1675 ShaderCase (tcu::TestContext& testCtx, const string& name, const ShaderCaseSpecification& spec);
1678 void initPrograms (SourceCollections& programCollection) const;
1679 TestInstance* createInstance (Context& context) const;
1682 const ShaderCaseSpecification m_spec;
1685 ShaderCase::ShaderCase (tcu::TestContext& testCtx, const string& name, const ShaderCaseSpecification& spec)
1691 void ShaderCase::initPrograms (SourceCollections& sourceCollection) const
1716 const int maxPatchVertices = 4; // \todo [2015-08-05 pyry] Query
1720 const ProgramSpecializationParams progSpecParams (m_spec, m_spec.programs[progNdx].requiredExtensions, maxPatchVertices);
1739 TestInstance* ShaderCase::createInstance (Context& context) const
1752 tcu::TestCaseGroup* createGroup (const string& name, const std::string& description, const vector<tcu::TestNode*>& children)
1758 tcu::TestCase* createCase (const string& name, const std::string& description, const ShaderCaseSpecification& spec)
1771 ShaderLibraryGroup (tcu::TestContext& testCtx, const string& name, const string& filename)
1780 const vector<tcu::TestNode*> children = glu::sl::parseFile(m_testCtx.getArchive(), m_filename, &caseFactory);
1798 const string m_filename;
1803 MovePtr<tcu::TestCaseGroup> createShaderLibraryGroup (tcu::TestContext& testCtx, const string& name, const string& filename)