api opengl directx

api - vulkan vs directx 11



¿Hay una API de nivel inferior más allá de DirectX/OpenGL? (4)

Escuché que las llamadas OpenGL y DirectX en realidad son convertidas por el controlador de video en llamadas específicas a la tarjeta. También sé que a veces un nuevo controlador de video puede mejorar el rendimiento al 50% en un videojuego sin que el desarrollador haga nada. Si quiero control de grano fino sobre la tarjeta de video, ¿es posible en un nivel por debajo de DX / OpenGL? ¿Nvidia / AMD lanzan API específicas del proveedor?


Olvídalo, gastarás MUCHO más tiempo leyendo algún tipo de SDK y admitiendo todas las tarjetas de video posibles. Déjame darte un consejo: solo lee artículos que expliquen cómo hacer que las aplicaciones D3D u OpenGL sean efectivas (almacenamiento en caché, cambio de contexto, etc.).


En AMD / ATI:

OpenCL --compila a -> IL --compila a -> ISA - enlaza a -> ejecutable ELF

En NVIDIA:

OpenCL --compila a -> PTX --compila a -> ISA - enlaces a -> formato ejecutable de algún tipo

Para AMD, solía haber CAL que proporciona acceso de nivel inferior a OpenGL / OpenCL, pero está en desuso. Hay algunos consejos que indican que IL e ISA estarán disponibles a través de OpenCL. Ver este hilo del foro: http://forums.amd.com/forum/messageview.cfm?catid=390&threadid=150149&forumid=9


Estoy de acuerdo con algunas de las otras publicaciones. Debo agregar, sin embargo, que es posible que desee examinar los sombreadores también. Te permiten hacer cosas geniales mientras logras un alto rendimiento.


NVidia mantiene su modelo de programación de GPU en secreto. No hay posibilidad de obtener menos de DirectX, OpenGL, CUDA o OpenCL.

AMD / ATI abrió su documentación, pero probablemente sea un nivel demasiado bajo para el programador de trabajos cotidianos: http://developer.amd.com/documentation/guides/pages/default.aspx#open_gpu

Intel abre las fuentes de sus controladores de Linux y hay algún tipo de documentación.

Los controladores de fuente abierta de Linux para AMD e Intel pasan por una API de bajo nivel llamada DRI2 / DRM; en combinación con KMS también llamado Gallium. MesaGL se sienta encima de DRI, por lo que en Linux existe una API de nivel de OpenGL más baja que la de la tarjeta gráfica. MesaGL es un rastreador de estado DRI, y por lo que he escuchado, los desarrolladores de WINE tienen un rastreador de estado Direct3D-10 (y 11?) Casi terminado, por lo que WIDE tendrá soporte para Direct3D nativo en el futuro previsible. Por supuesto, funcionará con DRI, por lo que no admite NVIDIA GPU.