• Home
  • Raw
  • Download

Lines Matching +full:triangle +full:- +full:v2

1 /*-------------------------------------------------------------------------
3 * -----------------------------------------------
11 * http://www.apache.org/licenses/LICENSE-2.0
22 *//*--------------------------------------------------------------------*/
103 /*--------------------------------------------------------------------*//*!
105 *//*--------------------------------------------------------------------*/
111 return tcu::IVec4(pos.x(), pos.y(), endPos.x() - pos.x(), endPos.y() - pos.y()); in rectIntersection()
114 void convertPrimitiveToBaseType(std::vector<pa::Triangle>& output, std::vector<pa::Triangle>& input) in convertPrimitiveToBaseType()
135 const int baseProvokingVertexIndex = adjacentProvokingVertex-1; in convertPrimitiveToBaseType()
136 output[i] = pa::Line(input[i].v1, input[i].v2, baseProvokingVertexIndex); in convertPrimitiveToBaseType()
140 void convertPrimitiveToBaseType(std::vector<pa::Triangle>& output, std::vector<pa::TriangleAdjacenc… in convertPrimitiveToBaseType()
147 output[i] = pa::Triangle(input[i].v0, input[i].v2, input[i].v4, baseProvokingVertexIndex); in convertPrimitiveToBaseType()
154 /*--------------------------------------------------------------------*//*!
157 * Calculate the intersection of line segment v0-v1 and a given plane. Line
158 * segment is defined by a pair of one-dimensional homogeneous coordinates.
160 *//*--------------------------------------------------------------------*/
169 return (plane*w0 - v0) / ((v1 - v0) - plane*(w1 - w0) + std::numeric_limits<ClipFloat>::epsilon()); in getSegmentVolumeEdgeClip()
172 /*--------------------------------------------------------------------*//*!
175 * How much (in [0-1] range) of a line segment v0-v1 would be clipped
177 *//*--------------------------------------------------------------------*/
187 else if (v0.z() < -v0.w()) in getLineEndpointClipping()
189 // Clip -Z in getLineEndpointClipping()
190 return getSegmentVolumeEdgeClip(v0.z(), v0.w(), v1.z(), v1.w(), -clipVolumeSize); in getLineEndpointClipping()
220 DE_STATIC_ASSERT(Sign == +1 || Sign == -1);
254 …const ClipVec4 clippedV1 = tcu::mix(v0, v1, ComponentPlane<-1, CompNdx>().clipLineSegmentEnd(v0, v… in getLineIntersectionPoint()
278 …umePlane& plane, const TriangleVertex& clipped, const TriangleVertex& v1, const TriangleVertex& v2) in clipTriangleOneVertex() argument
312 const TriangleVertex& inside = v2; in clipTriangleOneVertex()
337 // gen quad (v1) -> mid1 -> mid2 -> (v2) in clipTriangleOneVertex()
341 clippedEdges.push_back(v2); in clipTriangleOneVertex()
348 clippedEdges.push_back(v2); in clipTriangleOneVertex()
412 // gen triangle (v0) -> mid1 -> mid2 in clipTriangleTwoVertices()
488 void flatshadePrimitiveVertices (pa::Triangle& target, size_t outputNdx) in flatshadePrimitiveVertices()
490 const rr::GenericVec4 flatValue = target.getProvokingVertex()->outputs[outputNdx]; in flatshadePrimitiveVertices()
491 target.v0->outputs[outputNdx] = flatValue; in flatshadePrimitiveVertices()
492 target.v1->outputs[outputNdx] = flatValue; in flatshadePrimitiveVertices()
493 target.v2->outputs[outputNdx] = flatValue; in flatshadePrimitiveVertices()
498 const rr::GenericVec4 flatValue = target.getProvokingVertex()->outputs[outputNdx]; in flatshadePrimitiveVertices()
499 target.v0->outputs[outputNdx] = flatValue; in flatshadePrimitiveVertices()
500 target.v1->outputs[outputNdx] = flatValue; in flatshadePrimitiveVertices()
513 …uts = (program.geometryShader) ? (program.geometryShader->getOutputs()) : (program.vertexShader->g… in flatshadeVertices()
521 /*--------------------------------------------------------------------*//*!
523 *//*--------------------------------------------------------------------*/
524 void clipPrimitives (std::vector<pa::Triangle>& list, in clipPrimitives()
532 cliputil::ComponentPlane<-1, 0> clipNegX; in clipPrimitives()
534 cliputil::ComponentPlane<-1, 1> clipNegY; in clipPrimitives()
536 cliputil::ComponentPlane<-1, 2> clipNegZ; in clipPrimitives()
538 …s = (program.geometryShader) ? (program.geometryShader->getOutputs()) : (program.vertexShader->g… in clipPrimitives()
542 std::vector<pa::Triangle> outputTriangles; in clipPrimitives()
556 …const bool v0InsidePlane = plane->pointInClipVolume(vec4ToClipVec4(list[inputTriangleNdx].v0->p… in clipPrimitives()
557 …const bool v1InsidePlane = plane->pointInClipVolume(vec4ToClipVec4(list[inputTriangleNdx].v1->p… in clipPrimitives()
558 …const bool v2InsidePlane = plane->pointInClipVolume(vec4ToClipVec4(list[inputTriangleNdx].v2->p… in clipPrimitives()
592 initialTri.vertices[0].position = vec4ToClipVec4(list[inputTriangleNdx].v0->position); in clipPrimitives()
597 initialTri.vertices[1].position = vec4ToClipVec4(list[inputTriangleNdx].v1->position); in clipPrimitives()
602 initialTri.vertices[2].position = vec4ToClipVec4(list[inputTriangleNdx].v2->position); in clipPrimitives()
619 // Clip triangle and form a convex n-gon ( n c {3, 4} ) in clipPrimitives()
628 //Triangulate planar convex n-gon in clipPrimitives()
634 const float degenerateEpsilon = 1.0e-6f; in clipPrimitives()
636 const TriangleVertex& v2 = convexPrimitive[subsubTriangleNdx + 1]; in clipPrimitives() local
637 …const float visibleArea = de::abs(cross2D(to2DCartesian(clipVec4ToVec4(v1.position)) - to2DCa… in clipPrimitives()
638 … to2DCartesian(clipVec4ToVec4(v2.position)) - to2DCartesian(clipVec4ToVec4(v0.position)))); in clipPrimitives()
647 subsubTriangle.vertices[2] = v2; in clipPrimitives()
664 pa::Triangle ngonFragment (p0, p1, p2, -1); in clipPrimitives()
666 p0->position = clipVec4ToVec4(subTriangles[subTriangleNdx].vertices[0].position); in clipPrimitives()
667 p1->position = clipVec4ToVec4(subTriangles[subTriangleNdx].vertices[1].position); in clipPrimitives()
668 p2->position = clipVec4ToVec4(subTriangles[subTriangleNdx].vertices[2].position); in clipPrimitives()
674 const tcu::Vec4 out0 = list[inputTriangleNdx].v0->outputs[outputNdx].get<float>(); in clipPrimitives()
675 const tcu::Vec4 out1 = list[inputTriangleNdx].v1->outputs[outputNdx].get<float>(); in clipPrimitives()
676 const tcu::Vec4 out2 = list[inputTriangleNdx].v2->outputs[outputNdx].get<float>(); in clipPrimitives()
678 p0->outputs[outputNdx] = (float)subTriangles[subTriangleNdx].vertices[0].weight[0] * out0 in clipPrimitives()
682 p1->outputs[outputNdx] = (float)subTriangles[subTriangleNdx].vertices[1].weight[0] * out0 in clipPrimitives()
686 p2->outputs[outputNdx] = (float)subTriangles[subTriangleNdx].vertices[2].weight[0] * out0 in clipPrimitives()
693 p0->outputs[outputNdx] = list[inputTriangleNdx].getProvokingVertex()->outputs[outputNdx]; in clipPrimitives()
694 p1->outputs[outputNdx] = list[inputTriangleNdx].getProvokingVertex()->outputs[outputNdx]; in clipPrimitives()
695 p2->outputs[outputNdx] = list[inputTriangleNdx].getProvokingVertex()->outputs[outputNdx]; in clipPrimitives()
708 /*--------------------------------------------------------------------*//*!
711 * Clipping to other planes is a by-product of the viewport test (i.e.
713 *//*--------------------------------------------------------------------*/
725 …uts = (program.geometryShader) ? (program.geometryShader->getOutputs()) : (program.vertexShader->g… in clipPrimitives()
728 // Z-clipping disabled, don't do anything in clipPrimitives()
737 if ((l.v0->position.z() < -l.v0->position.w() && l.v1->position.z() < -l.v1->position.w()) || in clipPrimitives()
738 (l.v0->position.z() > l.v0->position.w() && l.v1->position.z() > l.v1->position.w())) in clipPrimitives()
743 const ClipVec4 p0 = vec4ToClipVec4(l.v0->position); in clipPrimitives()
744 const ClipVec4 p1 = vec4ToClipVec4(l.v1->position); in clipPrimitives()
751 visibleLines.push_back(pa::Line(l.v0, l.v1, -1)); in clipPrimitives()
756 l.v0->position = clipVec4ToVec4(tcu::mix(p0, p1, t0)); in clipPrimitives()
757 l.v1->position = clipVec4ToVec4(tcu::mix(p1, p0, t1)); in clipPrimitives()
765 const tcu::Vec4 a0 = l.v0->outputs[outputNdx].get<float>(); in clipPrimitives()
766 const tcu::Vec4 a1 = l.v1->outputs[outputNdx].get<float>(); in clipPrimitives()
768 l.v0->outputs[outputNdx] = tcu::mix(a0, a1, (float)t0); in clipPrimitives()
769 l.v1->outputs[outputNdx] = tcu::mix(a1, a0, (float)t1); in clipPrimitives()
773 visibleLines.push_back(pa::Line(l.v0, l.v1, -1)); in clipPrimitives()
781 /*--------------------------------------------------------------------*//*!
782 * Discard points not within clip volume. Clipping is a by-product
784 *//*--------------------------------------------------------------------*/
795 // Z-clipping disabled, don't do anything in clipPrimitives()
804 if (de::inRange(p.v0->position.z(), -p.v0->position.w(), p.v0->position.w())) in clipPrimitives()
834 packet.position.z()*(zf - zn)/2.0f + (zn + zf)/2.0f, in transformVertexClipCoordsToWindowCoords()
839 void transformPrimitiveClipCoordsToWindowCoords (const RenderState& state, pa::Triangle& target) in transformPrimitiveClipCoordsToWindowCoords()
843 transformVertexClipCoordsToWindowCoords(state, *target.v2); in transformPrimitiveClipCoordsToWindowCoords()
876 newPacket->position = packet->position; in makeSharedVerticeDistinct()
877 newPacket->pointSize = packet->pointSize; in makeSharedVerticeDistinct()
878 newPacket->primitiveID = packet->primitiveID; in makeSharedVerticeDistinct()
881 newPacket->outputs[outputNdx] = packet->outputs[outputNdx]; in makeSharedVerticeDistinct()
888 void makeSharedVerticesDistinct (pa::Triangle& target, std::set<VertexPacket*, std::less<void*> >& … in makeSharedVerticesDistinct()
892 makeSharedVerticeDistinct(target.v2, vertices, vpalloc); in makeSharedVerticesDistinct()
915 void generatePrimitiveIDs (pa::Triangle& target, int id) in generatePrimitiveIDs()
917 target.v0->primitiveID = id; in generatePrimitiveIDs()
918 target.v1->primitiveID = id; in generatePrimitiveIDs()
919 target.v2->primitiveID = id; in generatePrimitiveIDs()
924 target.v0->primitiveID = id; in generatePrimitiveIDs()
925 target.v1->primitiveID = id; in generatePrimitiveIDs()
930 target.v0->primitiveID = id; in generatePrimitiveIDs()
949 const tcu::Vec3 a = ssv0.swizzle(0,1,2) - ssp.swizzle(0,1,2); in findTriangleVertexDepthSlope()
950 const tcu::Vec3 b = ssv1.swizzle(0,1,2) - ssp.swizzle(0,1,2); in findTriangleVertexDepthSlope()
952 const float det = (a.x() * b.y() - b.x() * a.y()); in findTriangleVertexDepthSlope()
954 // degenerate triangle, it won't generate any fragments anyway. Return value doesn't matter in findTriangleVertexDepthSlope()
958 const tcu::Vec2 dxDir = tcu::Vec2( b.y(), -a.y()) / det; in findTriangleVertexDepthSlope()
959 const tcu::Vec2 dyDir = tcu::Vec2(-b.x(), a.x()) / det; in findTriangleVertexDepthSlope()
968 static float findPrimitiveMaximumDepthSlope (const pa::Triangle& triangle) in findPrimitiveMaximumDepthSlope() argument
970 …const float d1 = findTriangleVertexDepthSlope(triangle.v0->position, triangle.v1->position, triang… in findPrimitiveMaximumDepthSlope()
971 …const float d2 = findTriangleVertexDepthSlope(triangle.v1->position, triangle.v2->position, triang… in findPrimitiveMaximumDepthSlope()
972 …const float d3 = findTriangleVertexDepthSlope(triangle.v2->position, triangle.v0->position, triang… in findPrimitiveMaximumDepthSlope()
983 return tcu::Float32::construct(+1, maxExponent - 23, 1 << 23).asFloat(); in getFloatingPointMinimumResolvableDifference()
993 return tcu::Float32::construct(+1, -numBits, 1 << 23).asFloat(); in getFixedPointMinimumResolvableDifference()
996 static float findPrimitiveMinimumResolvableDifference (const pa::Triangle& triangle, const rr::Mult… in findPrimitiveMinimumResolvableDifference() argument
998 … float maxZvalue = de::max(de::max(triangle.v0->position.z(), triangle.v1->position.z()), in findPrimitiveMinimumResolvableDifference()
1041 const size_t numOutputs = program.fragmentShader->getOutputs().size(); in writeFragmentPackets()
1079 // Only the last output-pass has default state, other passes have stencil & depth writemask=0 in writeFragmentPackets()
1080 …const rr::FragmentOperationState& fragOpsState = (outputNdx == numOutputs-1) ? (state.fragOps) : (… in writeFragmentPackets()
1098 // Execute per-fragment ops and write in writeFragmentPackets()
1107 const pa::Triangle& triangle, in rasterizePrimitive() argument
1117 rasterizer.init(triangle.v0->position, triangle.v1->position, triangle.v2->position); in rasterizePrimitive()
1126triangle.v0->outputs, triangle.v1->outputs, triangle.v2->outputs, &buffers.shaderOutputs[0], &buff… in rasterizePrimitive()
1131 const float maximumDepthSlope = findPrimitiveMaximumDepthSlope(triangle); in rasterizePrimitive()
1132 …const float minimumResolvableDifference = findPrimitiveMinimumResolvableDifference(triangle, rende… in rasterizePrimitive()
1137 // Execute rasterize - shade - write loop in rasterizePrimitive()
1159 …program.fragmentShader->shadeFragments(&buffers.fragmentPackets[0], numRasterizedPackets, shadingC… in rasterizePrimitive()
1183->outputs, line.v1->outputs, DE_NULL, &buffers.shaderOutputs[0], &buffers.shaderOutputsSrc1[0], bu… in rasterizePrimitive()
1189 msaaRasterizer.init(line.v0->position, line.v1->position, state.line.lineWidth); in rasterizePrimitive()
1191 aliasedRasterizer.init(line.v0->position, line.v1->position, state.line.lineWidth, 1, 0xFFFF); in rasterizePrimitive()
1212 …program.fragmentShader->shadeFragments(&buffers.fragmentPackets[0], numRasterizedPackets, shadingC… in rasterizePrimitive()
1239 const float offset = point.v0->pointSize / 2.0f; in rasterizePrimitive()
1240 …Vec4 w0 = tcu::Vec4(point.v0->position.x() + offset, point.v0->position.y() + offset, point.v0- in rasterizePrimitive()
1241 …Vec4 w1 = tcu::Vec4(point.v0->position.x() - offset, point.v0->position.y() + offset, point.v0- in rasterizePrimitive()
1242 …Vec4 w2 = tcu::Vec4(point.v0->position.x() - offset, point.v0->position.y() - offset, point.v0- in rasterizePrimitive()
1243 …Vec4 w3 = tcu::Vec4(point.v0->position.x() + offset, point.v0->position.y() - offset, point.v0- in rasterizePrimitive()
1249->outputs, DE_NULL, DE_NULL, &buffers.shaderOutputs[0], &buffers.shaderOutputsSrc1[0], buffers.fra… in rasterizePrimitive()
1251 // Execute rasterize - shade - write loop in rasterizePrimitive()
1265 …Packets[numRasterizedPackets], depthBufferAppendPointer, maxFragmentPackets - numRasterizedPackets… in rasterizePrimitive()
1277 …program.fragmentShader->shadeFragments(&buffers.fragmentPackets[0], numRasterizedPackets, shadingC… in rasterizePrimitive()
1297 const int numFragmentOutputs = (int)program.fragmentShader->getOutputs().size(); in rasterize()
1333 /*--------------------------------------------------------------------*//*!
1335 *//*--------------------------------------------------------------------*/
1368 void copyVertexPacketPointers(const VertexPacket** dst, const pa::Triangle& in) in copyVertexPacketPointers()
1372 dst[2] = in.v2; in copyVertexPacketPointers()
1379 dst[2] = in.v2; in copyVertexPacketPointers()
1387 dst[2] = in.v2; in copyVertexPacketPointers()
1416 VertexPacketAllocator vpalloc(program.geometryShader->getOutputs().size()); in drawWithGeometryShader()
1419 GeometryEmitter emitter (vpalloc, program.geometryShader->getNumVerticesOut()); in drawWithGeometryShader()
1421 const int numInvocations = (int)program.geometryShader->getNumInvocations(); in drawWithGeometryShader()
1437 …program.geometryShader->shadePrimitives(emitter, verticesIn, &primitives[0], (int)primitives.size(… in drawWithGeometryShader()
1462 switch (program.geometryShader->getOutputType()) in drawWithGeometryShader()
1464 …NTS> (state, renderTarget, program, &emitted[primitiveBegin], primitiveEnd-primitiveBegin, vpall… in drawWithGeometryShader()
1465 …TRIP> (state, renderTarget, program, &emitted[primitiveBegin], primitiveEnd-primitiveBegin, vpall… in drawWithGeometryShader()
1466 …STRIP> (state, renderTarget, program, &emitted[primitiveBegin], primitiveEnd-primitiveBegin, vpall… in drawWithGeometryShader()
1477 /*--------------------------------------------------------------------*//*!
1479 *//*--------------------------------------------------------------------*/
1526 if (command.program.vertexShader->getOutputs() != command.program.geometryShader->getInputs()) in isValidCommand()
1529 if (command.program.geometryShader->getOutputs() != command.program.fragmentShader->getInputs()) in isValidCommand()
1534 if (command.program.vertexShader->getOutputs() != command.program.fragmentShader->getInputs()) in isValidCommand()
1539 …for (size_t varyingNdx = 0; varyingNdx < command.program.vertexShader->getInputs().size(); ++varyi… in isValidCommand()
1540 if (command.program.vertexShader->getInputs()[varyingNdx].type != GENERICVECTYPE_FLOAT && in isValidCommand()
1541 command.program.vertexShader->getInputs()[varyingNdx].type != GENERICVECTYPE_INT32 && in isValidCommand()
1542 command.program.vertexShader->getInputs()[varyingNdx].type != GENERICVECTYPE_UINT32) in isValidCommand()
1544 …for (size_t varyingNdx = 0; varyingNdx < command.program.vertexShader->getOutputs().size(); ++vary… in isValidCommand()
1545 if (command.program.vertexShader->getOutputs()[varyingNdx].type != GENERICVECTYPE_FLOAT && in isValidCommand()
1546 command.program.vertexShader->getOutputs()[varyingNdx].type != GENERICVECTYPE_INT32 && in isValidCommand()
1547 command.program.vertexShader->getOutputs()[varyingNdx].type != GENERICVECTYPE_UINT32) in isValidCommand()
1550 …for (size_t varyingNdx = 0; varyingNdx < command.program.fragmentShader->getInputs().size(); ++var… in isValidCommand()
1551 if (command.program.fragmentShader->getInputs()[varyingNdx].type != GENERICVECTYPE_FLOAT && in isValidCommand()
1552 command.program.fragmentShader->getInputs()[varyingNdx].type != GENERICVECTYPE_INT32 && in isValidCommand()
1553 command.program.fragmentShader->getInputs()[varyingNdx].type != GENERICVECTYPE_UINT32) in isValidCommand()
1555 …for (size_t varyingNdx = 0; varyingNdx < command.program.fragmentShader->getOutputs().size(); ++va… in isValidCommand()
1556 if (command.program.fragmentShader->getOutputs()[varyingNdx].type != GENERICVECTYPE_FLOAT && in isValidCommand()
1557 command.program.fragmentShader->getOutputs()[varyingNdx].type != GENERICVECTYPE_INT32 && in isValidCommand()
1558 command.program.fragmentShader->getOutputs()[varyingNdx].type != GENERICVECTYPE_UINT32) in isValidCommand()
1563 …for (size_t varyingNdx = 0; varyingNdx < command.program.geometryShader->getInputs().size(); ++var… in isValidCommand()
1564 if (command.program.geometryShader->getInputs()[varyingNdx].type != GENERICVECTYPE_FLOAT && in isValidCommand()
1565 command.program.geometryShader->getInputs()[varyingNdx].type != GENERICVECTYPE_INT32 && in isValidCommand()
1566 command.program.geometryShader->getInputs()[varyingNdx].type != GENERICVECTYPE_UINT32) in isValidCommand()
1568 …for (size_t varyingNdx = 0; varyingNdx < command.program.geometryShader->getOutputs().size(); ++va… in isValidCommand()
1569 if (command.program.geometryShader->getOutputs()[varyingNdx].type != GENERICVECTYPE_FLOAT && in isValidCommand()
1570 command.program.geometryShader->getOutputs()[varyingNdx].type != GENERICVECTYPE_INT32 && in isValidCommand()
1571 command.program.geometryShader->getOutputs()[varyingNdx].type != GENERICVECTYPE_UINT32) in isValidCommand()
1576 if ((size_t)command.numVertexAttribs < command.program.vertexShader->getInputs().size()) in isValidCommand()
1580 …if ((size_t)command.renderTarget.getNumColorBuffers() < command.program.fragmentShader->getOutputs… in isValidCommand()
1594 …for (size_t varyingNdx = 0; varyingNdx < command.program.fragmentShader->getOutputs().size(); ++va… in isValidCommand()
1599 if (command.program.fragmentShader->getOutputs()[varyingNdx].type != colorType) in isValidCommand()
1604 …for (size_t outputNdx = 0; outputNdx < command.program.vertexShader->getOutputs().size(); ++output… in isValidCommand()
1606 if (!command.program.vertexShader->getOutputs()[outputNdx].flatshade && in isValidCommand()
1607 (command.program.vertexShader->getOutputs()[outputNdx].type == GENERICVECTYPE_INT32 || in isValidCommand()
1608 command.program.vertexShader->getOutputs()[outputNdx].type == GENERICVECTYPE_UINT32)) in isValidCommand()
1612 …for (size_t outputNdx = 0; outputNdx < command.program.geometryShader->getOutputs().size(); ++outp… in isValidCommand()
1614 if (!command.program.geometryShader->getOutputs()[outputNdx].flatshade && in isValidCommand()
1615 (command.program.geometryShader->getOutputs()[outputNdx].type == GENERICVECTYPE_INT32 || in isValidCommand()
1616 command.program.geometryShader->getOutputs()[outputNdx].type == GENERICVECTYPE_UINT32)) in isValidCommand()
1623 …if (command.program.geometryShader->getInputType() == rr::GEOMETRYSHADERINPUTTYPE_POINTS && comman… in isValidCommand()
1626 if (command.program.geometryShader->getInputType() == rr::GEOMETRYSHADERINPUTTYPE_LINES && in isValidCommand()
1632 if (command.program.geometryShader->getInputType() == rr::GEOMETRYSHADERINPUTTYPE_TRIANGLES && in isValidCommand()
1638 …if (command.program.geometryShader->getInputType() == rr::GEOMETRYSHADERINPUTTYPE_LINES_ADJACENCY … in isValidCommand()
1643 …if (command.program.geometryShader->getInputType() == rr::GEOMETRYSHADERINPUTTYPE_TRIANGLES_ADJACE… in isValidCommand()
1775 const size_t numVaryings = command.program.vertexShader->getOutputs().size(); in drawInstanced()
1795 vertexPackets[numVertexPackets]->instanceNdx = instanceID; in drawInstanced()
1796 vertexPackets[numVertexPackets]->vertexNdx = (int)command.primitives.getIndex(elementNdx); in drawInstanced()
1799 …vertexPackets[numVertexPackets]->pointSize = command.state.point.pointSize; // default value from… in drawInstanced()
1800 vertexPackets[numVertexPackets]->position = tcu::Vec4(0, 0, 0, 0); // no undefined values in drawInstanced()
1814 …command.program.vertexShader->shadeVertices(command.vertexAttribs, &vertexPackets[0], numVertexPac… in drawInstanced()