Я о практике вставлять дефайны в шейдер из кода программы, а не в коде шейдера
(т.е. добавлять строчки "#define X " в код шейдера перед компиляцией)
Выглядит как какой-то хак
Сталкивался с таким хаком, но больше в контексте ветвлений шейдеры с большим количетвом ветвлений показывают очевидно плохой перформанс, а если скормить нужную инфу препроцесору и заменить динамические ветвления, ветвлениями препроцесора то можно нехило поднять перф, но тут уж кому как и для каких задач