Ich bin gerade ein bisschen verwirrt und möchte Sie alle bitten, mir ein paar Ideen klar zu machen.DirectX Shader Resource View in Shadern
In einem HLSL Shader (compute Shader zum Beispiel) kann ich einen StructuredBuffer sb deklarieren, oder? Muss ich es an ein Register binden, wie zum Beispiel: register (t0)?
Von der Anwendungsseite kann ich CSSetShaderResources (...) aufrufen. Das erste Argument (der StartSlot), hat es irgendetwas mit der kleinen Zahl hinter dem "t" in der Registerdeklaration zu tun?
Wenn ich den StartSlot als 0 setze (zum Beispiel), und ich setze das zweite Argument als 2. Ich sage der API, dass ich zwei Shader Resource Views binden werde, eine im Register (t0) und eine andere im Register (t1)?
Wenn ich Texture2D tex [10] deklariere: register (t0) kann ich es durch den Aufruf von CSSetShaderResources (0, 10, ...) setzen. Bedeutet dies, dass alle Register (t0 ~ t9) aufgebraucht sind?
Sorry für solchen „Schnellfeuer“ von Fragen, aber ich bin gerade wirklich verwirrt und einige meiner Tests scheinen confliting Ergebnisse zu geben ...
Jede Hilfe würde geschätzt.
Vielen Dank. Das macht viele Dinge klar ... Nur um sicherzugehen, kann ich für das Texture2D tex [10]: register (t0) keine weitere Variable über Register (t1) oder Register (t2) ... bis danach deklarieren registriere dich (t9), weil sie alle aufgebraucht sind, oder? (Ich habe Ihnen eine +1, sehr explizite Antwort gegeben, nochmals danke. Ich werde es als akzeptiert markieren, nachdem ich diesen letzten kleinen Punkt geklärt habe) – l3utterfly
Das ist richtig, wenn Sie versuchen, mehrere Variablen an das gleiche Register zu binden Compiler wird Ihnen diesen Fehler "überlappende Registersemantik noch nicht implementiert" geben. – catflier
Danke. Akzeptierte Antwort. – l3utterfly