답변:
여기에는 최소한 두 가지 요소가 있습니다. 인덱스 된 프리미티브가 렌더링 될 때 GPU는 변환 후 정점 캐시를 활용할 수 있습니다. 이 캐시의 크기는 다양하며 개별 드로우 콜 중에 사용됩니다 (알고있는 한 여러 호출이 아닌 해당 컨텍스트에서 버퍼 데이터를 얼마나 자주 변경하는지는 중요하지 않습니다).
이 캐시를 활용하도록 데이터를 구성하면 (예제 알고리즘은 여기 ) 성능이 향상됩니다. 그러나이 조직은 각 인덱스 트리플이 최근에 본 정점을 최대한 재사용 할 수 있도록 인덱스를 정렬하는 것과 더 관련이 있습니다. 인덱스 버퍼를 통한 삼각형이 버퍼에 무작위로 흩어지지 않는 한 특정 시나리오와 거의 관련이 없습니다.이 경우 캐시를 자주 불고 있습니다. 이것이 사실인지 아닌지 귀하의 질문에 분명하지 않았으므로 언급 할 가치가 있다고 생각했습니다.
문제가 될 가능성이 높은 것은 GPU가 그리기 중에 정점 데이터에 대한 메모리 액세스를 캐시한다는 것입니다. 해당 캐시 의 크기 는 상당히 신뢰할 수 없으며 크기를 현지화되지 않은 정점 데이터로 처리하는 개별 코어의 캐시에서 높은 미스 빈도를 얻을 수 있습니다.
그러나 성능 문제가 응용 프로그램에서 적기를 유발할 수 있는지 여부와 알고리즘의 가독성을 희생하면서 데이터를 더 잘 구성하기 위해 알고리즘을 다시 엔지니어링 할 수있는 특정 (사운드처럼 들립니다) ... 그것은 내가 대답 할 수있는 것이 아닙니다. 몇 가지 시나리오를 프로파일 링하고 확인해야합니다.
내가하지만, 개인적으로 잘못을 읽을 수, 유지 보수 코드의 측면에서와 내가 같이 생각하는 모든 캐시는 통지에 대한 사용자 상당한 충분하지 않을 원인에가는 누락.