View Full Version : Futuremark audit revealed cheats in NVIDIA Detonator FX 44.03 and 43.51 WHQL drive


Crusher
23-05-2003, 17:51
1. The loading screen of the 3DMark03 test is detected by the driver. This is used by the driver
to disregard the back buffer clear command that 3DMark03 gives. This incorrectly reduces the
workload. However, if the loading screen is rendered in a different manner, the driver seems
to fail to detect 3DMark03, and performs the back buffer clear command as instructed.
2. A vertex shader used in game test 2 (P_Pointsprite.vsh) is detected by the driver. In this case
the driver uses instructions contained in the driver to determine when to obey the back buffer
clear command and when not to. If the back buffer would not be cleared at all in game test 2,
the stars in the view of outer space in some cameras would appear smeared as have been
reported in the articles mentioned earlier. Back buffer clearing is turned off and on again so
that the back buffer is cleared only when the default benchmark cameras show outer space.
In free camera mode one can keep the camera outside the spaceship through the entire test,
and see how the sky smearing is turned on and off.
3. A vertex shader used in game test 4 (M_HDRsky.vsh) is detected. In this case the driver adds
two static clipping planes to reduce the workload. The clipping planes are placed so that the
sky is cut out just beyond what is visible in the default camera angles. Again, using the free
camera one can look at the sky to see it abruptly cut off. Screenshot of this view was also
reported in the ExtremeTech and Beyond3D articles. This cheat was introduced in the 43.51
drivers as far as we know.
4. In game test 4, the water pixel shader (M_Water.psh) is detected. The driver uses this
detection to artificially achieve a large performance boost - more than doubling the early
frame rate on some systems. In our inspection we noticed a difference in the rendering when
compared either to the DirectX reference rasterizer or to those of other hardware. It appears
the water shader is being totally discarded and replaced with an alternative more efficient
shader implemented in the drivers themselves. The drivers produce a similar looking
rendering, but not an identical one.
5. In game test 4 there is detection of a pixel shader (m_HDRSky.psh). Again it appears the
shader is being totally discarded and replaced with an alternative more efficient shader in a
similar fashion to the water pixel shader above. The rendering looks similar, but it is not
identical.
6. A vertex shader (G_MetalCubeLit.vsh) is detected in game test 1. Preventing this detection
proved to reduce the frame rate with these drivers, but we have not yet determined the cause.
7. A vertex shader in game test 3 (G_PaintBaked.vsh) is detected, and preventing this detection
drops the scores with these drivers. This cheat causes the back buffer clearing to be
disregarded; we are not yet aware of any other cheats.
8. The vertex and pixel shaders used in the 3DMark03 feature tests are also detected by the
driver. When we prevented this detection, the performance dropped by more than a factor of
two in the 2.0 pixel shader test.
We have used various techniques to prevent NVIDIA drivers from performing the above
detections. We have been extremely careful to ensure that none of the changes we have
introduced causes differences in either rendering output or performance. In most case, simple
alterations in the shader code ¨C such as swapping two registers ¨C has been sufficient to prevent
the detection.



O último patch evita que o cheeting se repita:

http://www.futuremark.com/download/?3dmark03patch330.shtml

3DMark®03 version 3.3.0
3DMark03 v3.3.0 is an updated version of 3DMark03. Hardware review sites discovered deliberate cheats in some drivers. These drivers identify 3DMark03 build 3.2.0, and render the tests differently than 3DMark03 instructs, in order to gain additional performance. Build 3.3.0 has been changed so that the test results remain the same, but the questionable drivers do not identify 3DMark03 anymore. The drivers now think 3DMark is a 3D application among others, and render the tests like 3DMark instructs. This produces a result that is genuinely comparable to other hardware.

PDF:
http://www.futuremark.com/companyinfo/3dmark03_audit_report.pdf

Outro quote interessante...

What Is the Performance Difference Due to These Cheats?

A test system with GeForceFX 5900 Ultra and the 44.03 drivers gets 5806 3DMarks with 3DMark03 build 320. The new build 330 of 3DMark03 in which 44.03 drivers cannot identify 3DMark03 or the tests in that build gets 4679 3DMarks – a 24.1% drop.

Our investigations reveal that some drivers from ATI also produce a slightly lower total score on this new build of 3DMark03. The drop in performance on the same test system with a Radeon 9800 Pro using the Catalyst 3.4 drivers is 1.9%. This performance drop is almost entirely due to 8.2% difference in the game test 4 result, which means that the test was also detected and somehow altered by the ATI drivers. We are currently investigating this further.


Curioso que na ATI também houve um pequeno decrescimo se bem que não foi tão grande como aconteceu com a FX5900... anyway no caso do 3D Mark2k3 a ATI vai levando a melhor.

SKATAN
23-05-2003, 17:55
Mas alguem tinha duvidas dessas praticas da Nvidia ? :D

links ?

Nemesis11
23-05-2003, 18:06
É triste. Não é nada que a Ati já não tenha feito, mas começa a ser dificil acreditar em benchmarks.

Qq bench que não seja aleatório ( siga um padrão ), pode ser facilmente manipolavel.

Noutro dia vi um artigo onde dizia que algumas marcas de computadores escolhiam as gráficas pod 2 factores:
-Preço
-3dmark

O que quer dizer que cheat 3dmark = $$$

Crusher
23-05-2003, 18:48
Originally posted by Nemesis11

Noutro dia vi um artigo onde dizia que algumas marcas de computadores escolhiam as gráficas pod 2 factores:
-Preço
-3dmark



Aonde? :-D


Pá o 3D Mark pode ser usado desde que seja nas mesmas condições, mas também não deve ser o único bench a ser usado para avaliar uma gráfica. ;)

Mas a FX5900U agora estar com aquela pontuação imagino como estará a FX5800U... e isto não são boas noticias para o marketing da Nvidia.

Nemesis11
23-05-2003, 18:53
Se não me engano era uma noticia no extremetech ( não no artigo do cheat ).

Não sei se é verdade ou não, mas se for, é uma boa razão para o cheat.

Tb acredito que empresas maiores (Dell, Compaq, etc) corram mais coisas que o 3dmark.

Raptor
23-05-2003, 19:16
Bem, de acordo com a review na VR-Zone...

http://www.vr-zone.com/reviews/NVIDIA/FX5900U/3DMark2001SE.gif

ups... aonde está a 5900 ultra?

http://www.vr-zone.com/reviews/NVIDIA/FX5900U/3DMark2003.gif

aqui já vemos qualquer coisa, mas mesmo assim... a diferença é mínima...


Ahh, uma cena, ja foi usado o patch 330 para evitar aqueles scores da tanga dos drivers da nvidia!

ptzs
23-05-2003, 19:42
As suspeitas confirmam-se, infelizmente.

Não percebo onde queres chegar Raptor...

Raptor
23-05-2003, 19:52
Simples, anteriormente apareciam scores no 3dmark2003 algo elevados para estas ultimas placas gráficas da Nvidia, mas agora com a introdução do patch novo, os scores reduziram significativamente, e isso pode ser verificado por esta review por exemplo, das primeiras, senão a primeira em que foi utilizado o 3dmark2003 com o novo patch 330.

FELiYCORA
23-05-2003, 20:05
é impressionante k nem com 256mb contra 128 a nvidia consegue levar a melhor...:rolleyes:

NeoToPower
23-05-2003, 20:06
Humf...... pra mim é tudo do mesmo monte! Um dif de 270marks em média tanto no 2k1 e no 2k3 simplesmente é igual ao litro! Se ainda uma delas tivesse uma dif de preço em relação á outra que se justificasse ou por outro lado elas custa-se ela por ela mas uma Oc que nem uma doidinha..... efim..... só interessa mesmo aos freaks por marks! Já me ficava por uma 9700 normal se tivesse dinheiro!

como tal só há uma cois que me chateia..... existem cheaters a torto a direito idependemente da camisola que vestem! Isto é pura e simplesmente uma tentativa de enganar os potencias clientes! Feliamente que existe pessoal com 2 dedinhos de testa que conseguem desmascarar estes chiters, sejam eles nvidia, ati, amd, intel, etc!
comp's

CrazyBomber
23-05-2003, 20:21
Originally posted by NeoToPower
Humf...... pra mim é tudo do mesmo monte! Um dif de 270marks em média tanto no 2k1 e no 2k3 simplesmente é igual ao litro! Se ainda uma delas tivesse uma dif de preço em relação á outra que se justificasse ou por outro lado elas custa-se ela por ela mas uma Oc que nem uma doidinha.....

Acho que a 9800 até têm potência pra overclock, especialmente tendo em conta que eh feita em 0.15microns, enquanto as FX sao produzidas a 0.13... bem, vcs ja sabem isto tudo... ;)
Por mim, acho q a nvidia so se safa no mercado das graficas se... comprar a ATI lol :-D

ptzs
24-05-2003, 02:30
O problema mesmo é o seguidismo cego por 3dmark. É claro que as empresas face a tal fanatismo tentam enganar a malta, estão mesmo a pedir.

Já aconteceu com o Quake3. Agora foi o 3dmark. O doom3 tb vai pelo mesmo caminho!

Crusher
24-05-2003, 14:26
http://www.beyond3d.com/forum/viewtopic.php?t=6042

O.........M..........G.... que pixeis são aqueles? :D


E ainda dizem que os drivers são WHQL quando os drivers forçam uma precissão nos pixel shaders de apenas 16bits.

Nemesis11
24-05-2003, 15:08
Originally posted by Crusher
http://www.beyond3d.com/forum/viewtopic.php?t=6042

O.........M..........G.... que pixeis são aqueles? :D


E ainda dizem que os drivers são WHQL quando os drivers forçam uma precissão nos pixel shaders de apenas 16bits.

Eles devem forçar 16 bits quando detecta o 3DMark, coisa que a Microsoft não testa nos testes para a certificação WHQL (nem tem que testar).

O que eu gostava de saber é que precisão usa o 3dmark no teste GT4.
Já sabemos que 16 não é.
O problema é que a Ati só tem um tipo de precisão (24 bits), enquanto a nVidia pode fazer 16 ou 32 ( penso que tb 12 bits, mas isso já não tenho a certeza ). Mas não faz a 24.
Agora, como é que se pode fazer um benchmark justo para as duas marcas com estas diferenças?

ptzs
24-05-2003, 15:27
Não se pode.

A precisão deve ser exactamente de 24bit para o GT4, acaso? acaso ainda maior nenhum GT "exigir" precisão a 32bit?

Talvez...

Crusher
24-05-2003, 15:29
Originally posted by Nemesis11
O que eu gostava de saber é que precisão usa o 3dmark no teste GT4.
Já sabemos que 16 não é.
O problema é que a Ati só tem um tipo de precisão (24 bits), enquanto a nVidia pode fazer 16 ou 32 ( penso que tb 12 bits, mas isso já não tenho a certeza ). Mas não faz a 24.
Agora, como é que se pode fazer um benchmark justo para as duas marcas com estas diferenças?


O GT4 usa qualquer precissão por causa de usar PS 2.0... os pixel shaders 2.0 é aplicado na água e no ceu... o resto do cenario é uma mistura de PS 1.1 e 1.4.

Eu não acho injusto por causa das diferenças de hardware... é que usar FP24 ou 32FP em qualidade de imagem é a mesma, mas usar FP32 é muito mais lento que FP24.

Isto já faz lembrar aquela história da ATI ter incorporado os PS 1.4 na sua Radeon 8500 e a GF4 Ti ter saído 6 meses depois da 8500, ficando-se pelos PS1.3 que não davam vantagem nenhuma em relação aos PS1.1 da GeForce 3... depois o curioso é que por causa do concorrente ter incorporado PS1.4 num produto, a Nvidia diz que os jogos não vão tirar partido dos PS1.4 por serem uma norma que vai ser pouco aproveitada... mas afinal já há por aí muitos jogos que vão tirar partido dos PS1.4... e um desses jogos é proprio Doom3 que tanto a Nvidia fala.

Se a GF4 Ti tivesse PS1.4 seria mais rápida no Doom3 por exemplo.


Just my 2 cents :)

Nemesis11
24-05-2003, 15:43
Originally posted by Crusher
O GT4 usa qualquer precissão por causa de usar PS 2.0... os pixel shaders 2.0 é aplicado na água e no ceu... o resto do cenario é uma mistura de PS 1.1 e 1.4.

Eu não acho injusto por causa das diferenças de hardware... é que usar FP24 ou 32FP em qualidade de imagem é a mesma, mas usar FP32 é muito mais lento que FP24.

Isto já faz lembrar aquela história da ATI ter incorporado os PS 1.4 na sua Radeon 8500 e a GF4 Ti ter saído 6 meses depois da 8500, ficando-se pelos PS1.3 que não davam vantagem nenhuma em relação aos PS1.1 da GeForce 3... depois o curioso é que por causa do concorrente ter incorporado PS1.4 num produto, a Nvidia diz que os jogos não vão tirar partido dos PS1.4 por serem uma norma que vai ser pouco aproveitada... mas afinal já há por aí muitos jogos que vão tirar partido dos PS1.4... e um desses jogos é proprio Doom3 que tanto a Nvidia fala.

Se a GF4 Ti tivesse PS1.4 seria mais rápida no Doom3 por exemplo.


Just my 2 cents :)

Concordo plenamente contigo, mas a questão é que a nVidia pode vir dizer que as suas placas estão a usar FP32 (com a nova build) e que por isso não são comparaveis os resultados.

Pelo que me lembro o minimo para ser compativel com Dx9 é FP24 e FP16 não está dentro das especificações do Dx9.
A nVidia andou até à ultima a tentar que a Microsoft baixasse para 16, mas não consegui nada.

Com esta confusão toda quem perde somos nós, pq ficamos sem saber em que e quem acreditar.

Nemesis11
24-05-2003, 15:54
Esqueci-me de comentar a reacção da nVidia:

"Since NVIDIA is not part in the FutureMark beta program (a program which costs of hundreds of thousands of dollars to participate in) we do not get a chance to work with Futuremark on writing the shaders like we would with a real applications developer. We don't know what they did but it looks like they have intentionally tried to create a scenario that makes our products look bad. This is obvious since our relative performance on games like Unreal Tournament 2003 and Doom3 shows that The GeForce FX 5900 is by far the fastest graphics on the market today."

Meti a bold o que acho mais importante.

Este comunicado é do mais triste que tenho lido. Vamos lá desmontar isto.

1º - We don't know what they did but it looks like they have intentionally tried to create a scenario that makes our products look bad

Agora a culpa é do 3dmark. Os drivers sairam à uns dias e o 3dmark à uns meses e a culpa é do 3dmark.
Quem anda por vários foruns, vê que está mais que provado que houve cheat, mas em vez de admitirem, culpam os outros. Muito mau mesmo.

2º - Unreal Tournament 2003

Jogo que no inicio diz --> "nVidia, The way it's meant to be played"
:rolleyes:
Se fosse mais lento é que era de estranhar, já que eles colaboram tanto uns com os outros ( torneios, desenvolvimento, etc )

3º - Doom3
Ainda não saiu e usa paths diferentes para cada placa. Uma com um path optimizado e outra não.

4º - by far the fastest graphics on the market today

Até pode ser, mas quem vai acreditar neles?

Crusher
24-05-2003, 16:23
Originally posted by Nemesis11
Concordo plenamente contigo, mas a questão é que a nVidia pode vir dizer que as suas placas estão a usar FP32 (com a nova build) e que por isso não são comparaveis os resultados.

Pelo que me lembro o minimo para ser compativel com Dx9 é FP24 e FP16 não está dentro das especificações do Dx9.
A nVidia andou até à ultima a tentar que a Microsoft baixasse para 16, mas não consegui nada.

Com esta confusão toda quem perde somos nós, pq ficamos sem saber em que e quem acreditar.


E se a Nvidia consegui-se convencer a M$ lá voltavamos a perder.... é só compararem as qualidade em jogos sem shaders entre 16bits de cor e 32bits.

Computação cinematográfica? Not... ou vai ser aos slides ao usar FP32 ou irão ter uma bela qualidade de imagem aos usar 16FP. :rolleyes:

Pá o problema da Nvidia é que por vezes poêm-se a pensar que tudo que se passa na industria de jogos/gráficos é tudo por causa dela... e lá por causa do outro concorrente ter introduzido algo de diferente, lá vêm eles com a conversa do costume.

Claro que eles fizeram avançar algumas coisa como o T&L, memória DDR, shaders (grande revolução!)... mas têm que perceber que não é com golpes baixos como estes que irão longe.


Sim já tive placas Nvidia e fiquei contente com elas porque eram boas escolhas agora placas destas como a NV30... são um fiasco.

E apesar da NV35 ter dado um bom boost em relação ao NV30 por causa de ter passado para um bus de memória de 256bits DDR, aquilo para mim, acaba por ser a mesma coisa.

Se querem DX9 vão para uma ATI...e acho que é a aposta mais segura, a não ser que a Nvidia faça algo ao pé dos programadores para que as ATI não se safem e sejam mal vistas... mas para isso há hacks. :D

Raptor
24-05-2003, 18:46
eu gosto é deles referirem que as gffx são mais rapidas no doom3, quando as demos usadas no doom3 são "fornecidas" com a placa para usarem nos testes...

será justo?

PandMonium
25-05-2003, 00:37
bem ta aki a justificaçao da ATI

ATI's Christ Evenden Responses to the Futuremark 3DMark03 Patch and Driver Audit Report The 1.9% performance gain comes from optimization of the two DX9 shaders (water and sky) in Game Test 4 . We render the scene exactly as intended by Futuremark, in full-precision floating point. Our shaders are mathematically and functionally identical to Futuremark's and there are no visual artifacts; we simply shuffle instructions to take advantage of our architecture. These are exactly the sort of optimizations that work in games to improve frame rates without reducing image quality and as such, are a realistic approach to a benchmark intended to measure in-game performance. However, we recognize that these can be used by some people to call into question the legitimacy of benchmark results, and so we are removing them from our driver as soon as is physically possible. We expect them to be gone by the next release of CATALYST."

so ganharam 1.9%, logo as "optimizations" feitas pela nvidia sao mm boas. :D

Nemesis11
25-05-2003, 00:51
Wow, estou agradavelmente surpreendido pela resposta da Ati.

Não quero transformar isto num luta entre Ati e nVidia, mas comparem os dois comunicados.
A Ati pelo menos admite o erro e vai corrigi-lo. Acho que ficava muito bem se a nVidia viesse limpar a imagem que está a deixar.

A tecnologia pode ser a melhor do mundo, mas se começarem a criar ódios por toda a parte (Rambus por ex.), vão começar a perder clientes.

Eu, sinceramente, não estou a reconhecer esta nVidia. Nos temos da riva 128, tnt, era tudo bem diferente.

PandMonium
27-05-2003, 19:48
Futuremark replies to NVIDIA

bem ta aki, ainda nao tive tempo pra ler xeguei agora da school...

http://www.guru3d.com/comments.php?category=1&id=1852
http://www.hardavenue.com/#newsitem1054020435,86380,

mas gostei desta parte:

For the bigger part of it you should not blame FutureMark for this though, but blame the parties that started cheating. These are both nVIDIA and ATI and I don't care wether its a 2% or a 25% difference, cheating is cheating. I actually applaud nVIDIA for the way they did it, if you do it then have the b@lls to do it well
:-D :-D :-D

SKATAN
27-05-2003, 21:07
Só mesmo um idiota pra dizer uma coisa dessas ou alguem que é owned pela Nvidia de alguma maneira

AwakE
27-05-2003, 22:13
For the bigger part of it you should not blame FutureMark for this though, but blame the parties that started cheating. These are both nVIDIA and ATI and I don't care wether its a 2% or a 25% difference, cheating is cheating. I actually applaud nVIDIA for the way they did it, if you do it then have the b@lls to do it well
:-D :-D :-D

Acho que é mais um comentario de uma criança idiota do que de um gajo comprado...

WarLock
28-05-2003, 02:09
Continuing the Futuremark saga, John Carmack has stated his opinions on shader optimization over at Slashdot.

Rewriting shaders behind an application's back in a way that changes the output under non-controlled circumstances is absolutely, positively wrong and indefensible.
Rewriting a shader so that it does exactly the same thing, but in a more efficient way, is generally acceptable compiler optimization, but there is a range of defensibility from completely generic instruction scheduling that helps almost everyone, to exact shader comparisons that only help one specific application. Full shader comparisons are morally grungy, but not deeply evil.

The significant issue that clouds current ATI / Nvidia comparisons is fragment shader precision. Nvidia can work at 12 bit integer, 16 bit float, and 32 bit float. ATI works only at 24 bit float. There isn't actually a mode where they can be exactly compared. DX9 and ARB_fragment_program assume 32 bit float operation, and ATI just converts everything to 24 bit. For just about any given set of operations, the Nvidia card operating at 16 bit float will be faster than the ATI, while the Nvidia operating at 32 bit float will be slower. When DOOM runs the NV30 specific fragment shader, it is faster than the ATI, while if they both run the ARB2 shader, the ATI is faster.

When the output goes to a normal 32 bit framebuffer, as all current tests do, it is possible for Nvidia to analyze data flow from textures, constants, and attributes, and change many 32 bit operations to 16 or even 12 bit operations with absolutely no loss of quality or functionality. This is completely acceptable, and will benefit all applications, but will almost certainly induce hard to find bugs in the shader compiler. You can really go overboard with this -- if you wanted every last possible precision savings, you would need to examine texture dimensions and track vertex buffer data ranges for each shader binding. That would be a really poor architectural decision, but benchmark pressure pushes vendors to such lengths if they avoid outright cheating. If really aggressive compiler optimizations are implemented, I hope they include a hint or pragma for "debug mode" that skips all the optimizations.


que granda confusao

nao considero de qualuqer forma que optimizações sejam cheats a nao ser que o produto final seja alterado ...