Lines Matching defs:attribute
167 BINDING_MAPPING_ONE_TO_ONE, //!< Vertex input bindings will not contain data for more than one attribute.
168 BINDING_MAPPING_ONE_TO_MANY //!< Vertex input bindings can contain data for more than one attribute.
174 ATTRIBUTE_LAYOUT_SEQUENTIAL //!< Data for each attribute is laid out separately: [pos 0][pos 1]...[color 0][color 1]...
175 // Sequential only makes a difference if ONE_TO_MANY mapping is used (more than one attribute in a binding).
180 LAYOUT_SKIP_ENABLED, //!< Skip one location slot after each attribute
377 // Each attribute uses a unique binding
387 //! Number of locations used up by an attribute.
434 // Determine number of location slots required for each attribute
578 // Stride will be updated when creating the attribute descriptions
596 // To place the attributes sequentially we need to know the largest attribute and use its size in stride and offset calculations.
617 // Create attribute descriptions, assign them to bindings and update stride.
638 // Matrix types add each column as a separate attribute.
822 // Generate 1 check per attribute and work out the number of components at compile time.
908 // Build string representing the access to the attribute component
1235 // Create vertex attribute array and check if their VK formats are supported
1310 // 32 is maximal attribute size (4*sizeof(double)),
1429 // Only write vertex input data to bindings referenced by attribute descriptions
1545 void VertexInputInstance::writeVertexInputValue (deUint8* destPtr, const VertexInputAttributeDescription& attribute, int indexId)
1547 const int vertexInputCount = VertexInputTest::s_glslTypeDescriptions[attribute.glslType].vertexInputCount;
1548 const int componentCount = VertexInputTest::s_glslTypeDescriptions[attribute.glslType].vertexInputComponentCount;
1550 const deUint32 vertexInputIndex = indexId * totalComponentCount + attribute.vertexInputIndex * componentCount;
1551 const bool hasBGROrder = isVertexFormatComponentOrderBGR(attribute.vkDescription.format);
1552 const bool hasABGROrder = isVertexFormatComponentOrderABGR(attribute.vkDescription.format);
1553 const bool hasARGBOrder = isVertexFormatComponentOrderARGB(attribute.vkDescription.format);
1554 deUint32 componentOffset = getVertexFormatSize(attribute.vkDescription.format) * 8;
1573 const deInt32 maxIntValue = isVertexFormatPacked(attribute.vkDescription.format) ? (1 << (getPackedVertexFormatComponentWidth(attribute.vkDescription.format, componentNdx) - 1)) - 1 : (1 << (getVertexFormatComponentSize(attribute.vkDescription.format) * 8 - 1)) - 1;
1574 const deUint32 maxUintValue = isVertexFormatPacked(attribute.vkDescription.format) ? ((1 << getPackedVertexFormatComponentWidth(attribute.vkDescription.format, componentNdx)) - 1) : (1 << (getVertexFormatComponentSize(attribute.vkDescription.format) * 8 )) - 1;
1578 switch (attribute.glslType)
1585 if (isVertexFormatPacked(attribute.vkDescription.format))
1586 writeVertexInputValueIntPacked(destPtr, packedFormat32, componentOffset, attribute.vkDescription.format, componentNdx, deClamp32(-(deInt32)(vertexInputIndex + swizzledNdx), minIntValue, maxIntValue));
1588 writeVertexInputValueSint(destPtr, attribute.vkDescription.format, componentNdx, -(deInt32)(vertexInputIndex + swizzledNdx));
1597 if (isVertexFormatPacked(attribute.vkDescription.format))
1598 writeVertexInputValueIntPacked(destPtr, packedFormat32, componentOffset, attribute.vkDescription.format, componentNdx, deClamp32(vertexInputIndex + swizzledNdx, minUintValue, maxUintValue));
1600 writeVertexInputValueUint(destPtr, attribute.vkDescription.format, componentNdx, vertexInputIndex + swizzledNdx);
1616 if (isVertexFormatSfloat(attribute.vkDescription.format))
1618 writeVertexInputValueSfloat(destPtr, attribute.vkDescription.format, componentNdx, -(0.01f * (float)(vertexInputIndex + swizzledNdx)));
1619 } else if (isVertexFormatUfloat(attribute.vkDescription.format))
1621 writeVertexInputValueUfloat(destPtr, packedFormat32, componentOffset, attribute.vkDescription.format, componentNdx, 0.01f * (float)(vertexInputIndex + swizzledNdx));
1623 else if (isVertexFormatSscaled(attribute.vkDescription.format))
1625 if (isVertexFormatPacked(attribute.vkDescription.format))
1626 writeVertexInputValueIntPacked(destPtr, packedFormat32, componentOffset, attribute.vkDescription.format, componentNdx, deClamp32(-(deInt32)(vertexInputIndex + swizzledNdx), minIntValue, maxIntValue));
1628 writeVertexInputValueSint(destPtr, attribute.vkDescription.format, componentNdx, -(deInt32)(vertexInputIndex + swizzledNdx));
1630 else if (isVertexFormatUscaled(attribute.vkDescription.format) || isVertexFormatUnorm(attribute.vkDescription.format) || isVertexFormatSRGB(attribute.vkDescription.format))
1632 if (isVertexFormatPacked(attribute.vkDescription.format))
1633 writeVertexInputValueIntPacked(destPtr, packedFormat32, componentOffset, attribute.vkDescription.format, componentNdx, deClamp32(vertexInputIndex + swizzledNdx, minUintValue, maxUintValue));
1635 writeVertexInputValueUint(destPtr, attribute.vkDescription.format, componentNdx, vertexInputIndex + swizzledNdx);
1637 else if (isVertexFormatSnorm(attribute.vkDescription.format))
1639 if (isVertexFormatPacked(attribute.vkDescription.format))
1640 writeVertexInputValueIntPacked(destPtr, packedFormat32, componentOffset, attribute.vkDescription.format, componentNdx, deClamp32(minIntValue + (vertexInputIndex + swizzledNdx), minIntValue, maxIntValue));
1642 writeVertexInputValueSint(destPtr, attribute.vkDescription.format, componentNdx, minIntValue + (vertexInputIndex + swizzledNdx));
1975 // Select a random compatible format for each attribute
2096 // Skip one layout after each attribute
2099 de::MovePtr<tcu::TestCaseGroup> bindingOneToOneTests(new tcu::TestCaseGroup(testCtx, "binding_one_to_one", "Each attribute uses a unique binding"));
2113 de::MovePtr<tcu::TestCaseGroup> bindingOneToOneTests(new tcu::TestCaseGroup(testCtx, "binding_one_to_one", "Each attribute uses a unique binding"));
2125 de::MovePtr<tcu::TestCaseGroup> bindingOneToOneTests(new tcu::TestCaseGroup(testCtx, "binding_one_to_one", "Each attribute uses a unique binding"));
2213 de::MovePtr<tcu::TestCaseGroup> bindingOneToOneTests(new tcu::TestCaseGroup(testCtx, "binding_one_to_one", "Each attribute uses a unique binding"));
2220 // Use random glslTypes, each consuming one attribute location
2230 // Interleaved attribute layout
2232 // Interleaved attribute layout
2234 // Sequential attribute layout
2247 // Uses one attribute
2249 // Uses more than one attribute