[Dx11] Constant Buffer

Für Fragen zu Grafik APIs wie DirectX und OpenGL sowie Shaderprogrammierung.
Antworten
MadMax
Beiträge: 59
Registriert: 24.01.2003, 13:31
Kontaktdaten:

[Dx11] Constant Buffer

Beitrag von MadMax »

Hallo zusammen,

ich habe folgende Frage:

kann es sein das constanten buffer in Dx11 nur eine bestimmte größe haben dürfen (z.B. durch 16teilbar)?

Code: Alles auswählen

cbuffer MatrixBuffer : register( b0 )
{
    matrix World;
	matrix View;
	matrix Proj;
	float3 Sun;
};
dieser cb macht Probleme. D.h ich bekomme nur ein weißes Bild.

Code: Alles auswählen

cbuffer MatrixBuffer : register( b0 )
{
    matrix World;
	matrix View;
	matrix Proj;
	float4 Sun;
};
funktioniert problemlos.
MadMax
Beiträge: 59
Registriert: 24.01.2003, 13:31
Kontaktdaten:

Re: [Dx11] Constant Buffer

Beitrag von MadMax »

btw wenn ich den float3 in einen eigenen Buffer auslagere funktioniert auch alles.
Benutzeravatar
dot
Establishment
Beiträge: 1746
Registriert: 06.03.2004, 18:10
Echter Name: Michael Kenzel
Kontaktdaten:

Re: [Dx11] Constant Buffer

Beitrag von dot »

msdn hat geschrieben:If the bind flag is D3D11_BIND_CONSTANT_BUFFER, you must set the ByteWidth value in multiples of 16, and less than or equal to D3D11_REQ_CONSTANT_BUFFER_ELEMENT_COUNT.
;)

Und das solltest du dir vielleicht auch mal anschauen: http://msdn.microsoft.com/en-us/library ... 09632.aspx
Zuletzt geändert von dot am 19.05.2012, 12:37, insgesamt 1-mal geändert.
Benutzeravatar
eXile
Establishment
Beiträge: 1136
Registriert: 28.02.2009, 13:27

Re: [Dx11] Constant Buffer

Beitrag von eXile »

Genau wie dot sagte, und als Ergänzung würde ich hier noch die Packetierungsregeln für Constant Buffers einstreuen. Füg' mal ein paar #pragma pack 4 bzw. __declspec(align(16)) ein.
MadMax
Beiträge: 59
Registriert: 24.01.2003, 13:31
Kontaktdaten:

Re: [Dx11] Constant Buffer

Beitrag von MadMax »

Vielen Dank für die schnellen Antworten
Antworten