A localidade de referência importa, mas você não precisa se preocupar tanto ... porque você não tem controle absoluto.
Ao usar o OpenGL / DirectX, normalmente você tem controle limitado sobre o layout da memória, o driver fará o resto. Por exemplo, você pode tentar vários layouts de buffers de vértices, como o uso de dados de vértices intercalados ou não intercalados e, dependendo dos dados / driver / GPU, o desempenho variará. Crie um perfil e escolha o que melhor se adequa à sua aplicação.
Por exemplo, na otimização de GPU Gems Pipeline, a localidade de referência é mencionada duas vezes , a primeira:
Acesse dados de vértice de maneira relativamente seqüencial. As GPUs modernas armazenam em cache os acessos à memória ao buscar vértices. Como em qualquer hierarquia de memória, a localidade espacial de referência ajuda a maximizar as ocorrências no cache, reduzindo assim os requisitos de largura de banda.
E o segundo
Otimize para o cache de vértices pós-T&L. As GPUs modernas têm um pequeno cache primeiro a entrar, primeiro a sair (FIFO) que armazena o resultado dos vértices transformados mais recentemente; uma ocorrência nesse cache salva todo o trabalho de transformação e iluminação, além de todo o trabalho realizado anteriormente no pipeline. Para tirar proveito desse cache, você deve usar primitivas indexadas e ordenar seus vértices para maximizar a localidade de referência sobre a malha. Existem ferramentas disponíveis - incluindo D3DX e NVTriStrip (NVIDIA 2003) - que podem ajudá-lo nessa tarefa.
Na minha opinião, essas recomendações seguem o que eu estou falando e implicam que você não tem controle absoluto sobre o layout da memória, mas o que você tem controle, por exemplo, como os vértices de cada VBO são dispostos, pode afetar o desempenho.
Se o seu aplicativo estiver com um desempenho atingido, você deve primeiro detectar o gargalo, pode não ser um local de referência de dados com problema, mas talvez porque haja uma quantidade enorme de dados sem seleção, por exemplo, você não está executando a seleção de frustum. etc Você pode conferir minha resposta aqui no tópico.
Eu acho que você deveria se preocupar mais com a localidade de referência ao usar o OpenCL / CUDA, caso tenha controle absoluto sobre o layout da memória.