The Baron said:Do we have any evidence that it handles it worse than any other PS3.0 cards? (Where are those Series 5 Shadermark benchmarks, damnit!)
DarN said:Yes, but does it handle it Well?
ps_3_0
dcl vFace
def c0, 0, 0, 0, 0
def c1, 1, 0, 0, 0
def c2, 0, 1, 0, 0
if_ge vFace, c0.x
mov oC0, c1
else
mov oC0, c2
endif
Tridam said:DarN said:Yes, but does it handle it Well?
The answer is "No" at least with the current drivers (60.72). PS3.0 support isn't exposed until DX9.0c is installed. I've done some quick tests for our review. Branching is very costly. So costly that it looks like the drivers are buggy. 9 pipeline passes for the simplest branching I was able to think about :
Have You tried the 65.04's?Tridam said:The answer is "No" at least with the current drivers (60.72). PS3.0 support isn't exposed until DX9.0c is installed. I've done some quick tests for our review. Branching is very costly. So costly that it looks like the drivers are buggy. 9 pipeline passes for the simplest branching I was able to think about :
DarN said:Have You tried the 65.04's?Tridam said:The answer is "No" at least with the current drivers (60.72). PS3.0 support isn't exposed until DX9.0c is installed. I've done some quick tests for our review. Branching is very costly. So costly that it looks like the drivers are buggy. 9 pipeline passes for the simplest branching I was able to think about :
The answer is "No" at least with the current drivers (60.72). PS3.0 support isn't exposed until DX9.0c is installed. I've done some quick tests for our review. Branching is very costly. So costly that it looks like the drivers are buggy. 9 pipeline passes for the simplest branching I was able to think about :
Code:
ps_3_0
dcl vFace
def c0, 0, 0, 0, 0
def c1, 1, 0, 0, 0
def c2, 0, 1, 0, 0
if_ge vFace, c0.x
mov oC0, c1
else
mov oC0, c2
endif
sowas soll man ja laut nVidia eigentlich auch mit Predication machen. Zudem steht im SDK das man vFace nur mit >0 bzw <0 vergleichen soll. Also if_gt oder if_lt. Ein if_ge ist Blödsinn an dieser Stelle. Ich vermute aber mal stark das hat der HLSL Compiler da hingesetzt. Bei mir macht er öfter auch solche Scherze.
christoph said:The answer is "No" at least with the current drivers (60.72). PS3.0 support isn't exposed until DX9.0c is installed. I've done some quick tests for our review. Branching is very costly. So costly that it looks like the drivers are buggy. 9 pipeline passes for the simplest branching I was able to think about :
Code:
ps_3_0
dcl vFace
def c0, 0, 0, 0, 0
def c1, 1, 0, 0, 0
def c2, 0, 1, 0, 0
if_ge vFace, c0.x
mov oC0, c1
else
mov oC0, c2
endif
from 3dc here: http://www.forum-3dcenter.org/vbull...readid=137570&perpage=20&pagenumber=7
sowas soll man ja laut nVidia eigentlich auch mit Predication machen. Zudem steht im SDK das man vFace nur mit >0 bzw <0 vergleichen soll. Also if_gt oder if_lt. Ein if_ge ist Blödsinn an dieser Stelle. Ich vermute aber mal stark das hat der HLSL Compiler da hingesetzt. Bei mir macht er öfter auch solche Scherze.
rough translation:
according to nvidia you should use predication here. further the sdk states
you should only compare vface with >0 or <0, ie if_gt or if_lt. an if_ge doesnt make sense here. i stongly assume thats a failure of the hlsl compiler.
The MaxPShaderInstructionsExecuted cap in D3DCAPS9 should be at least 2^16.
DarN said:Yes, but does it handle it Well?
Nuts. I guess that kills the possiblity of NV40 implementing your idea of optimised branching with the vFace register.DemoCoder said:Tridam said:DarN said:Yes, but does it handle it Well?
The answer is "No" at least with the current drivers (60.72). PS3.0 support isn't exposed until DX9.0c is installed. I've done some quick tests for our review. Branching is very costly. So costly that it looks like the drivers are buggy. 9 pipeline passes for the simplest branching I was able to think about :
Try branching on something besides the face register, like an Vn input register. 9 is not the minimum penalty.