Впрочем, зачем ждать до вечера? Вот слайды моего доклада про SPU Render, в этой ветке я могу ответить на все вопросы, возникшие при прослушивании доклада, прочтении слайдов, или на те которые возникнут после того как выложат аудио/видео :)
Про call/ret/cb - пояснение. У меня на сцену call/ret штук 5. Не на каждый батч, на каждую группу. Соответственно на каждую группу батчей (примерно - opaque сцена, transparent сцена, reflection, refraction, shadows) есть один CB. Там сейчас тупо двойная буферизация, потом наверное будет возможность кольцевой буфер сделать.
Про выигрыш от оптимизации кода - ну, хм, порядок вроде обычный :) а вот с самым полезным сложно. Вот список который велся по ходу разработки (от начала до конца, тут не только оптимизация кода): http://www.everfall.com/paste/id.php?o64o1utg8z3n
shader patch optimization - это в основном всякие loop unroll, apply auto params это много чего (loop unroll, switch -> table lookup, подтягивание пары математических функций, выравнивание входных данных, оптимизация setvertexshaderconstant, etc.).
Про колл-рет все еще не понятно. Если есть всего 4-5 групп, то как объекты распределяются по СПУ? Типа одна группа - один СПУ? Или внутри группы объекты могут пойти на разные СПУ? Если последнее, то как мы поддерживаем порядок объектов (по стейтам-шейдерам, от ближних к дальним, от дальних к ближним, приорететы, и т.п.)?
С оптимизацией порядок был бы обычный если речь шла бы о какой-нибудь потоковой обработке с кучей математики. Типа постпроцессинга. Там, конечно, да. Даблбафер сделал - в два раза быстрее. Векторизовал - в три раза быстрее. А обычный код типа генерации КБ соптимизировать в 6 раз это почетно. Если будет время попробую тоже.
Comments 8
Reply
Reply
Про выигрыш от оптимизации кода - ну, хм, порядок вроде обычный :) а вот с самым полезным сложно. Вот список который велся по ходу разработки (от начала до конца, тут не только оптимизация кода): http://www.everfall.com/paste/id.php?o64o1utg8z3n
shader patch optimization - это в основном всякие loop unroll, apply auto params это много чего (loop unroll, switch -> table lookup, подтягивание пары математических функций, выравнивание входных данных, оптимизация setvertexshaderconstant, etc.).
Reply
С оптимизацией порядок был бы обычный если речь шла бы о какой-нибудь потоковой обработке с кучей математики. Типа постпроцессинга. Там, конечно, да. Даблбафер сделал - в два раза быстрее. Векторизовал - в три раза быстрее. А обычный код типа генерации КБ соптимизировать в 6 раз это почетно. Если будет время попробую тоже.
Reply
С оптимизацией - там не в 6, там в 4 раза. Но вообще я сам удивился, да ;)
Reply
снизойди до смертных
выложи свой доклад про SPU еще раз (ссылка дохлая), пожалуйста
Reply
Если что - http://dl.dropbox.com/u/11731051/kri/kri2009.pdf
Reply
Reply
Leave a comment