PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Gibts Pixelshader 1.0 in DX9 noch?


aths
2003-10-21, 13:44:04
Kann man mit DirectX9 noch den Pixelshader 1.0 nutzen?

Wie sieht es mit dem Vertex Shader aus?

Demirug
2003-10-21, 13:46:52
Offiziel sind die kleinsten Versionen jeweils 1.1. Wahrscheinlich kann man noch 1.0 Shader übergeben die dann aber wohl als 1.1 behandelt werden.

aths
2003-10-21, 13:52:17
Ich muss die Frage dann genauer stellen:

Ist 0xFFFF0100 ein gültiger Rückgabewert für PixelShaderVerison?

Bzw. wenn man via Treiber 0xFFFF0100 als Rückgabe wert "overdrivt", was macht DX9 dann?

Demirug
2003-10-21, 14:23:23
Der Wert 0xFFFF0100 war für einen DX8 Treiber ein gültiger Wert. Da DX9 ja auch noch mit DX8 Treiber klar kommt kann theoretisch diese Shaderversion gemeldet werden.

Was die Runtime macht wenn ein Treiber diesen Wert liefert ist mir nicht bekannt. Wahrscheinlich wird sie aber diesen Wert über die Caps an die Anwendung weiter melden. Ob es dann bei Anlegen eines PS einen Check gegen diesen Wert in der Runtime gibt bezweifle ich mal ein wenig. Die überprüfung überlässt man dem Treiber.

Warum fragst du das überhaupt? PS und VS 1.0 sind ja ein reines Theoretikum da es keine entsprechende Hardware gibt.

aths
2003-10-21, 14:26:51
Seit Deto 41.03 kann man die Shader-Versionen begrenzen, das progge ich gerade in den aTuner ein. Aus Spaß kann man ja auch 1.0 erlauben.

Quasar
2003-10-21, 14:48:29
Thomas' Shadermark v1.1 kann es offenbar noch.

"PS1.0 Cubic Environment Bump Mapping" nennt er das.

Razor
2003-10-21, 15:08:18
Warum nicht gleich das 'Orginal' ?
:D

ATI's Treasure-Chest:
Shader-File for Import:
F:\Visuals\ATI Demos\TreasureChest\shaders.out
-> 20464 Lines importet...
-> Result:
Shader ps.1.0 = 58 times.
Shader ps.1.1 = 54 times.
Shader ps.1.4 = 120 times.
Pixel-Shader in total = 232 times.

Shader vs.1.0 = 312 times.
Vertex-Shader in total = 312 times.Immerhin noch 58 Stück, oder ?
Und die VS1.0 gibt's sogar ausschließlich...
;-)

Razor

Xmas
2003-10-21, 15:15:00
Treasure Chest nutzt ja auch kein DirectX9...

Ich würde mal logischerweise damit rechnen, dass keine PS1.1 mehr funktionieren, wenn man die Shader-Version im Treiber begrenzt. Was sonst?

ow
2003-10-21, 15:19:44
.

Quasar
2003-10-21, 15:33:20
Original geschrieben von Xmas
Treasure Chest nutzt ja auch kein DirectX9...


Falls das auf mich bezogen war (glaub' ich aber nicht): ShaderMark v1.1 schon...

aths
2003-10-21, 16:06:21
Original geschrieben von ow
Womit sich auch gleich die Frage nach dem Sinn einer derartigen Begrenzung stellt. Afaik nutzt 3DMark 2001 nur Pixelshader 1.0. Das könnte man dann ja testen...

Pitchfork
2003-10-21, 17:10:45
Wenn ich mich recht erinner, dann schmeißt die Runtime oder der Assembler/Compiler Warnings, daß man doch bitteschön 1.1 als Anforderung setzen soll. Ich vermute, daß 1.0 von der DX9 Runtime geblockt wird. Aus dem Wissen heraus, daß es eh nix gibt, was nur 1.0 ist.

Demirug
2003-10-21, 17:33:19
Ich habe es mal auspropiert.

D3DX macht aus einem PS 1.0 einen 1.1.

D3D lehnt PS 1.0 komplett ab.

ow
2003-10-21, 19:06:43
.

ow
2003-10-21, 19:09:11
.

Xmas
2003-10-21, 19:31:54
Original geschrieben von ow
Wie ist das zu verstehen?
DX8 Apps müssen doch ebenfalls unter der DX9 runtime noch funktionieren.
Aber sie nutzen keine DX9-Interfaces.

Demirug
2003-10-21, 19:42:44
Original geschrieben von ow
Wie ist das zu verstehen?
DX8 Apps müssen doch ebenfalls unter der DX9 runtime noch funktionieren.

btw. hat Quasar recht, der Shadermark 1.1 in der DX9 Version mit PS1.1 bsi 1.4 nutzt auch PS1.0 Shader.

Ich bezog mich auf die DX9 Runtime und DX9 D3DX.

Das DX9 Interface lehnt einen Binärshader ab welcher als 1.0 Shader gekenzeichnet ist. Gibt man D3DX einen Assemblershader welcher als 1.0 gekenzeichent ist ändert D3DX das in 1.1 und assembliert in dann.

ow
2003-10-21, 20:00:16
.

Demirug
2003-10-21, 20:18:45
ow, solange die Shader im Shader noch im lessbaren Assemblerformat vorliegen kann man sie auch mit DX9 benutzten. Man bekommt zwar eine Warnung aber es funktioniert. Hat man den Shadern aber noch mit dem DX8 SDK ins Binärformat assemblieren lassen kann man in nicht mehr benutzten weil die entsprechende Funktion im DX9 Interface 1.0 Shader ablehnt.

Beim Shadermark liegen die Shader in den Effektfiles als Assemblercode vor und können daher noch benutzt werden. 1.0 Shader werden aber von der Assemblerfunktion als 1.1 Shader angesehen.