optix のスタックに格納されているものを理解しようとしています。
私が理解しているように、コンテキストごとにスタック サイズを設定し、光線生成プログラムの各スレッドに 1 つのスタックが割り当てられます。レイが起動されると、スレッドはレイのペイロードを格納するスタックを運びます。
たとえば、再帰的なレイトレーサーを実行すると、メモリに保持するにはペイロードが多すぎるため、スタック オーバーフローが発生するのではないかと考えました。しかし、現在、float + 3 uint のペイロードを持つ放射光線と、float のみのシャドウ レイを含むプログラムがあり、バウンスは 1 回しかありません。ただし、スタック オーバーフローを回避するには、スタックを 1024 よりも大きくする必要があります。確かに、これは私の 2 つのペイロードだけではありません。
それで、スタックには他に何がありますか?(私の特定のケースではなく、一般的な意味です。レイ ペイロード以外にスタックに保存されるものは何ですか? (もしそうなら)? たとえば、ヒットに関する情報も保存しますか? シーン ツリーについて? どのプログラムが現在の光線を呼び出したかを追跡しますか?)
ご協力いただきありがとうございます!