(gelöst)[HLSL] Verhalten von Texture2D.Load() out-of-bounds

Für Fragen zu Grafik APIs wie DirectX und OpenGL sowie Shaderprogrammierung.
Antworten
Benutzeravatar
Krishty
Establishment
Beiträge: 8350
Registriert: 26.02.2009, 11:18
Benutzertext: state is the enemy
Kontaktdaten:

(gelöst)[HLSL] Verhalten von Texture2D.Load() out-of-bounds

Beitrag von Krishty »

Hi,

Wie verhält sich Texture2D.Load(), wenn Location außerhalb des Texturausmaßes liegt? Clamping? Schwarz? Undefiniert? Finde in der Doku nichts.

Gruß, Ky
Zuletzt geändert von Krishty am 09.02.2011, 19:54, insgesamt 1-mal geändert.
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
Benutzeravatar
kimmi
Moderator
Beiträge: 1412
Registriert: 26.02.2009, 09:42
Echter Name: Kim Kulling
Wohnort: Luebeck
Kontaktdaten:

Re: [HLSL] Verhalten von Texture2D.Load() out-of-bounds

Beitrag von kimmi »

Probier doch einfach mal, was bei rauskommt. Ansonsten kann man das Verhalten doch sicher per State vorher setzen? Ich bin nicht so firm in HLSL, daher die Menge an Annahmen von meiner Seite.

Gruß Kimmi
Benutzeravatar
Krishty
Establishment
Beiträge: 8350
Registriert: 26.02.2009, 11:18
Benutzertext: state is the enemy
Kontaktdaten:

Re: [HLSL] Verhalten von Texture2D.Load() out-of-bounds

Beitrag von Krishty »

Bei mir wird geclamped. Da das nicht dokumentiert ist, bin ich äußerst misstrauisch, ob das auch in Zukunft noch so ist … per State kann man garnichts setzen – im Gegensatz zu Sample(), was per Sampler-State konfigurierbar ist, soll Load() ein direkter Speicherzugriff auf einen einzelnen Texel / ein einziges Sample sein.
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
Benutzeravatar
Krishty
Establishment
Beiträge: 8350
Registriert: 26.02.2009, 11:18
Benutzertext: state is the enemy
Kontaktdaten:

Re: [HLSL] Verhalten von Texture2D.Load() out-of-bounds

Beitrag von Krishty »

Soo. Endlich einen Beleg gefunden:
Chas. Boyd — DirectX 11 Compute Shader, Siggraph2008 hat geschrieben:DXGI Resources
– Used for textures, images, vertices, hulls, etc.
– Enables out-of-bounds memory checking
    • Returns 0 on reads
    • Writes are No-Ops
– Improves security, reliability of shipped code
Also immer Null, kein Clamping. Ob das nur für den eingebauten operator[] gilt oder auch für Load() weiß ich zwar nicht, aber Load() benutze ich eh nicht mehr.

Ich weise auf die Möglichkeit hin, das zur Verbesserung der Bandbreite zu nutzen.
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
Antworten