Depois de actualizar para o Mavericks, meu OpenGL software executa o shader de vértice na CPU

StackOverflow https://stackoverflow.com//questions/21001453

  •  20-12-2019
  •  | 
  •  

Pergunta

Eu tenho um grande C++ com OpenGL software que foi executado com desempenho muito elevado sob o Mountain Lion.Depois de actualizar para o Mavericks e recompilar, o desempenho caiu significativamente.Alternando entre Triângulo e fitas de triângulos como o tipo de objeto que está sendo processado e, ao ver uma queda no desempenho por um fator de 2 ou 3, eu estou sob a impressão de que o shader de vértice deve ser a causa do problema e dada a forma como ele é simples, eu suspeito que ele está sendo executado no software da CPU, ao invés de incluir na GPU.Como posso recuperar o desempenho que eu tinha sob o Mountain Lion?Existem algumas alterações que eu preciso fazer?

A fonte do meu shader de vértice é dado abaixo.Alimenta-se a seguinte geometry shader.

#version 410

uniform mat3 normalMatrix;
uniform mat4 modelMatrix;
uniform mat4 modelProjMatrix;
uniform vec3 color  = vec3(0.4,0.4, 0.4);

in vec3 vertex;
in vec3 normal;

out NodeData {
    vec3 normal, position;
    vec4 refColor;
} v;

void main()
{
    vec4 position = modelMatrix * vec4(vertex, 1.0);
    vec3 vertNormal = normal;
    v.normal = normalize(normalMatrix * vertNormal);
    v.position = position.xyz;

    v.refColor = vec4(color, 1.0);
    gl_Position = modelProjMatrix * vec4(vertex, 1.0);

}

De 180.000 triângulos eu só posso ficar 3 FPS quando a alimentação como triângulos e cerca de 8 quando alimentado como tiras.O triângulo são ordenadas de acordo com Forsyth do algoritmo de otimização por pós transformar cache de otimização.

Foi útil?

Solução

Solução:Certifique-se de que todas as vetor de buffers que são adicionados para o VAR são utilizados no shader de vértice.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top