Le të themi se kam një teksturë të thjeshtë 2D (burim shader)
ID3D11ShaderResourceView* srvTexture;
Dhe një kontekst i paracaktuar (i menjëhershëm) i pajisjes
ID3D11DeviceContext* dc;
Tani, e vendos strukturën time në Pixel Shader si kjo
ID3D11ShaderResourceView* srvArrayTexture[1];
srvArrayTexture[0] = srvTexture;
dc->PSSetShaderResources(
0, // start slot (not important in this case)
1, // nb of views (one texture)
srvArrayTexture); // my texture as array (because DirectX wants array)
Unë e kuptoj këtë proces si dërgimin e teksturës aktuale nga memoria RAM në memorien GPU. Unë endem, pse ka edhe metoda të ngjashme si VSSetShaderResources, GSSetShaderResources dhe kështu me radhë. A do të thotë se çdo fazë e tubacionit (VS, GS, ...) ka memorien e vet GPU?
Nëse unë telefonoj
dc->VSSetShaderResources(A);
dc->GSSetShaderResources(A);
dc->PSSetShaderResources(A);
A do të thotë se po dërgoj të njëjtat të dhëna tre herë? Apo ndoshta koncepti im i dërgimit të të dhënave është joefikas?