Я только что натолкнулся на интересный эффект от использования Chrome компилятора GLSL.Инструкция
#define addf(index) if(weights[i+index]>0.) r+=weights[i+index]*f##index(p);
не компилируется с указанием
preprocessor command must not be preceded by any other statement in that line
Кажется, что синтаксис ##
не поддерживается.Однако на той же платформе (например, Linux 64bit, Nvidia GPU) тот же шейдер компилируется и работает нормально.Почему это?Я думал, что шейдерный компилятор является частью стека драйверов графических процессоров и будет использоваться в обоих случаях.Так почему этот другой опыт?