Después de actualizar a Mavericks, mi software OpenGL ejecuta el shader de vértice en CPU

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

  •  20-12-2019
  •  | 
  •  

Pregunta

Tengo un gran software C ++ OpenGL que se estaba ejecutando con un rendimiento muy alto bajo león de montaña. Después de actualizar a Mavericks y recompilarse, el rendimiento ha disminuido significativamente. Al cambiar entre las tiras de triángulo y los triángulos como el tipo de objeto que se presenta y al ver una caída en el rendimiento en un factor adicional 2 o 3, estoy bajo la impresión de que el shader del vértice debe ser la causa del problema y se le da lo simple que es, Sospecho que se está ejecutando en software en la CPU en lugar de en la GPU. ¿Cómo puedo recuperar el rendimiento que tenía bajo león de montaña?¿Hay algunos cambios que necesito hacer?

La fuente de mi shader de vértice se da a continuación.Se alimenta a un siguiente sombreador de geometría.

#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);

}

Para 180,000 triángulos, solo puedo obtener 3 fps cuando se alimenta como triángulos y aproximadamente 8 cuando se alimentan como tiras.El triángulo se ordenan de acuerdo con el algoritmo de optimización de Forsyth para la optimización de caché posteriores a la transformación.

¿Fue útil?

Solución

Solución: asegúrese de que todos los buffers vectoriales que se agreguen al VAO se usen en el sombreador de vértices.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top