Desde o lançamento das
GPUs Nvidia baseadas na arquitetura
Kepler, houve relatos de que estas suportariam somente
DirectX 11, informação que pode ser confirmada no próprio site da
Nvidia, mas estranhamente por vários meses, no painel de controle dos drivers Nvidia para o
Windows 7 figura o
DirectX 11.1 como
API suportada, apesar de sabermos que o
Windows 7 não suporta
DirectX 11.1.
Então, são as GPUs Nvidia Kepler compativeis com o DirectX 11.1?
Do ponto de vista estrito, para se denominar a uma
GPU como compatível com alguma versão da
API DirectX, se requer que esse tenha suporte expresso (
por hardware) para ela, e deste ponto de vista, as
GPUs Nvidia Kepler (
GTX 600 série) não suportam a
API DirectX 11.1 (
mas sim a API DirectX 11).
Mas o que informa no painel de controle da Nvidia?
A
Nvidia afirma que suas
GPUs são parcialmente compatíveis com a
API DirectX 11.1, não são fisicamente compatíveis, podem
emular por software algumas das funcionalidades da
API (
usando a CPU, com a diminuição evidente no desempenho), obviamente existem funções da
API DirectX 11,1 que seriam de um alto custo (
em termos de perda de rendimento) emular por software, as quais a
Nvidia afirma que suas GPUs não as suportam, entre elas temos:
- Target-Independent Rasterization (2D rendering only).
- 16xMSAA Rasterization (2D rendering only).
- Orthogonal Line Rendering Mode.
- UAV (Unordered Access View) in non-pixel-shader stages.
A
Nvidia afirma que estas instruções não serão usadas nos futuros jogos, mas funciona como se serão utilizados nos jogos se forem suportados em suas
GPUs fazendo uso da característica
Hardware Feature Level 11 (
vía software) do
DirecX 11.1 (
via software).
Entre estas funções estão:
- Partial constant buffer updates.
- Logic operations in the Output Merger.
- 16bpp rendering.
- UAV-only rendering (apenas 8 de los 64 slots soportados por DirectX 11.1).
- Partial clears.
- Large constant buffers.
A
Nvidia relata unicamente não suportar as funcionalidades exclusivas da
API DirectX 11.1 (
Hardware Level DirectX 11.1), mas sim as demais funcionalidades, uma situação que eles mesmos reconhecem como confusa, mas na realidade não há nada de confuso, porque, tradicionalmente, as novas versões da
API DirectX da
Microsoft permitem o uso via software de algumas de suas funções em hardware criados para versões mais antigas do
DirectX (
graças aos nomeados Hardware Levels do DirectX).
Como foi esclarecido que esta é uma característica da
API da
Microsoft, que não se limita unicamente as
GPUs Nvidia Kepler, sendo a todas as
GPUs DirectX 11 (
GeForce 400, 500, Radeon HD 5000 e 6000 Series).
Neste ponto, devemos mencionar que não é a primeira vez que temos uma situação como esta no mundo das
GPUs, quando um fabricante aproveita esse recurso do
DirectX (
Hardware Level) para anunciar seu produto como compatível com uma versão de
DirectX superior a suportada fisicamente, exemplo disso é a (
na época) polêmica
GPUs Nvidia GeForce 4 MX Series, que alegaram ser compatível com
DirectX 8.1 (
página 2 do PDF da Nvidia), quando na verdade suportavam unicamente o
DirectX 7 por hardware.
Alguns programadores de jogos afirmam que as diferenças entre
DirectX 11 e
DirectX 11,1 são mínimas, e que
90% delas podem ser supridas por software (
emulados), de modo que em jogos não seriam um fator determinante em não possuir suporte expresso ao
DirectX 11.1.
Enquanto isso, a
AMD afirma suportar por hardware
100% das funcionalidades do
DirectX 11.1 (
Hardware Level DirectX 11.1) em suas
GPUs baseada em sua arquitetura gráfica
Graphics Core Next "GCN" (
usada em suas GPUs Radeon HD 7750 e superiores).
Então, para acabar com esse tema confuso, temos apenas as
GPUs AMD baseadas no
GCN com
100% de compatibilidade com o
DirectX 11.1, enquanto que as
GPUs DirectX 11 com base em arquiteturas diferentes a
GCN são
"parcialmente compatíveis com o DirectX 11.1".