Seite 1 von 1

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

Verfasst: 04.10.2010, 05:51
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

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

Verfasst: 05.10.2010, 09:19
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

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

Verfasst: 05.10.2010, 11:40
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.

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

Verfasst: 09.02.2011, 19:53
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.