Я пытаюсь понять, что хранится в стеке в optix.Что находится в стеке?
Как я понимаю, мы устанавливаем размер стека для каждого контекста, и один стек прикрепляется к каждому потоку в программе генерации лучей. Когда луч запускается, поток несет с собой стек, в котором хранится полезная нагрузка луча.
Я думал, что когда мы будем использовать рекурсивный трассировщик лучей, произойдет переполнение стека, потому что в памяти будет слишком много полезных нагрузок. Но прямо сейчас у меня есть программа с лучом лучи, которая имеет полезную нагрузку с float + 3 uint и теневой луч с только плавающей точкой, и есть только один отскок. Однако мой стек должен быть больше 1024, чтобы избежать переполнения стека. Несомненно, это больше, чем просто мои две полезные нагрузки.
Так что, интересно, что еще находится в стеке? (я имею в виду, в общем, не в моем конкретном случае. Что хранится в стеке, кроме лучевой (ых) полезной нагрузки (если они есть)? Например, мы также храним информацию о хитах? дерево? Мы отслеживаем, какая программа называется текущим лучом?)
Спасибо за помощь!