Ist StructuredBuffer[ ] eher eine Analogie zu std::vector[ ] oder std::vector>?C++

Programme in C++. Entwicklerforum
Anonymous
 Ist StructuredBuffer[ ] eher eine Analogie zu std::vector[ ] oder std::vector>?

Post by Anonymous »

Sagen wir einfach, ich habe:

Code: Select all

// HLSL
layout (set = 0, binding = 4) StructuredBuffer my_buffer;
Und vergleichen Sie es mit:

Code: Select all

// HLSL
layout (set = 0, binding = 4) StructuredBuffer my_buffers[];
In GLSL wäre dies das Äquivalent des Unterschieds zwischen:

Code: Select all

// GLSL
layout (set = 0, binding = 4) buffer MyBuffer
{
T my_buffer[];
};
und:

Code: Select all

// GLSL
layout (set = 0, binding = 4) buffer MyBuffer
{
T my_buffer[];
}my_buffers[];
Ich frage mich also, ob die Array-Version eine zusätzliche Indirektionsebene einführt? Meiner Meinung nach gilt Folgendes:

Code: Select all

// HLSL
StructuredBuffer my_buffer;
oder

Code: Select all

// GLSL
buffer MyBuffer
{
T my_buffer[];
};
ist im Grunde ein Zeiger auf einen Puffer, dann könnte die Array-Version einfach ein Array von Pufferzeigern ohne die zusätzliche Indirektion sein. Ich denke jedoch, dass es eine zusätzliche Indirektion gibt. Die Analogie, von der ich spreche, ist im Grunde der Unterschied zwischen:

Code: Select all

std::vector my_buffer[]; // THE MORE EFFICIENT WAY
und

Code: Select all

std::vector my_buffers; // THE LESS EFFICIENT WAY, THE WAY I THINK IT'S HANDLED IN GLSL/HLSL/SLANG
Meine Frage lautet:
  • Ist es eher eine Analogie zur Methode der „zusätzlichen Indirektion“?
  • Verhindert die Angabe einer Größe für das Array, dass die zusätzliche Indirektion verschwindet?
  • Führt die zusätzliche Richtung zu einem Leistungsabfall?
Ich denke darüber nach, über einen globalen Deskriptor, der jeden Puffer enthält, auf die oben beschriebene Weise auf den GESAMTEN globalen Speicher des GPU-Geräts zuzugreifen. Dadurch entsteht so etwas wie eine „Puffergeräteadresse“, die auf allen Geräten/Versionen/Plattformen laufen sollte.

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post