   lineadj
  I cant seem to get this to work, nothing is displayed. Am I doing it right?Im just playing, and what to render out a linestream, like this.adjleft ------------ v0 --------------v1 ---------------adjrightVertex v[4];v[0] = Vertex(  1.0f, 0.0f, 0.0f);   // adjleftv[1] = Vertex(  2.0f, 0.0f, 0.0f);   // V0v[2] = Vertex(  3.0f, 0.0f, 0.0f);   // V1v[3] = Vertex(  4.0f, 0.0f, 0.0f);   // adjrightDWORD i[4]; // indicesi[0] = 0; // adjlefti[1] = 1; // V0i[2] = 2; // V1i[3] = 3; // adjrightUINT stride = sizeof(Vertex);UINT offset = 0;md3dDevice->IASetPrimitiveTopology(D3D10_PRIMITIVE_TOPOLOGY_LINELIST_ADJ);md3dDevice->IASetVertexBuffers(0, 1, &mVB, &stride, &offset);md3dDevice->IASetIndexBuffer(mIB, DXGI_FORMAT_R32_UINT, 0);md3dDevice->DrawIndexed(2, 0, 0);and then my shader looks like this[maxvertexcount(4)]void GS_Bezier1( lineadj VS_OUT gIn[4], inout LineStream<GS_OUT> lineStream){GS_OUT gOut;gOut.posH = mul(float4(gIn[0].posL,1.0f), gWVP);lineStream.Append(gOut);   gOut.posH = mul(float4(gIn[1].posL,1.0f), gWVP);lineStream.Append(gOut);   gOut.posH = mul(float4(gIn[2].posL,1.0f), gWVP);lineStream.Append(gOut);   gOut.posH = mul(float4(gIn[3].posL,1.0f), gWVP);lineStream.Append(gOut);lineStream.RestartStrip();}From what I understand, using lineadj, the vertex shader will get v0 and v1, and the geometry shader adjleft,v0,v1 and adjright.it seems to work when i pass 4 indices, like thismd3dDevice->DrawIndexed(4, 0, 0);But doesnt that mean that Im passing 4 vertices to the Vertex shader too? when I should only really be passing 2 to the vertex shader?   
Quote:Original post by maya18222But doesnt that mean that Im passing 4 vertices to the Vertex shader too? when I should only really be passing 2 to the vertex shader?All of the vertices are actually processed by the vertex shader. Even those that do not correspond to the drawn primitive. The pipeline expects 4 indices from you.