Shaders Unificados

De Wikipedia, la enciclopedia libre
Saltar a: navegación, búsqueda

El término Unified Shader Model se usa para describir dos conceptos similares aunque distintos: la Arquitectura de Shaders Unificados y el Modelo de Shaders Unificados.

Unified Shader Model[editar]

El Unified Shader Model (conocido en OpenGL simplemente como el "Unified Shader Model", y en Direct3D 10 como "Shader Model 4.0") usa un conjunto de instrucciones muy consistente para todos los tipos de shaders.[1] Todos los tipos de shader tienen casi las mismas capacidades -pueden leer texturas, buffers de datos y realizar el mismo conjunto de operaciones aritméticas.

Sin embargo, el conjunto de instrucciones no es exactamente el mismo entre los diferentes tipos de shader -por ejemplo, sólo el pixel shader puede leer texturas con gradientes implícitos de coordenadas; sólo el geometry shader puede emitir primitivas adicionales; etcétera.[1]

Los primeros modelos de shaders (como el Shader Model 1.x) usaban conjuntos de instrucciones muy diferentes para vertex y pixel shaders, teniendo los vertex shaders un conjunto mucho más flexible. Los modelos posteriores (como el Shader Model 2.x y el 3.x) redujeron las diferencias, orientándose hacia el Unified Shader Model.

Unified Shading Architecture[editar]

Cuando el dispositivo de gráficos soporta Unified Shader Model, tiene sentido diseñar sus unidades de computación para que cualquiera de ellas puede ejecutar cualquier tipo de shader. Cuando estas unidades computacionales están "unificadas", a eso se le llama Unified Shading Architecture. Muy a menudo dicho hardware está compuesto de un conjunto de unidades de cálculo y una unidad para el balanceo de carga y la asignación dinámica que distribuye las tareas de shading entre las unidades de cálculo.

No se requiere que un dispositivo que soporte Unified Shader Model tenga Unified Shading Architecture, y viceversa. Un dispositivo Direct3D 10 puede mantener sus procesadores de vértices, geometría y pixeles dedicados (aunque, debido a que tendrían un conjunto de intrucciones muy similares, a nivel de hardware serían muy similares). Por otro lado, un hardware temprano tecnológicamente (por ejemplo, con Shader Model 3.0) puede tener una arquitecture unificada, como en el caso del chip Xenos de la Xbox 360.

La Arquitectura de shaders Unificados permite un uso más flexible del dispositivo de visualización de gráficos.[2] Por ejemplo, en una situación en la que haya mucha sobrecarga con la geometría, el sistema podría ordenar a más unidades de cálculo que procesasen los shaders de vértices y geometría. En casos en los que la sobrecarga sea con el cálculo relacionado con los píxeles y haya poca carga con los vértices, se podría desviar el cálculo para que más unidades realizasen los cálculos de los pixel shaders.

Procesadores gráficos que tienen una arquitectura de Shaders Unificados incluyen: chips Nvidia a partir de la serie GeForce 8, chips ATI (ahora AMD) a partir de la serie Radeon HD 2000, chips S3 Graphics a partir del Chrome 400, chips Intel a partir de la serie GMA X3000 y el chip gráfico Xenos de la Xbox 360.

También hay procesadores gráficos móviles que tienen arquitectura unificada de shaders, como los Mali T600 de segunda generación.[3]

Referencias[editar]

  1. a b Microsoft (ed.): «Common Shader Core (DirectX HLSL)». Consultado el 17-08-2008.
  2. «GeForce 8800 GTX: 3D Architecture Overview». ExtremeTech. Consultado el 17-08-2008.
  3. «ARM Announces 8-core 2nd Gen Mali-T600 GPUs» (en inglés) (6 de agosto de 2012).