I'm trying to run my shaders on an Intel card. I found that samplers types cannot be declared as structure fields... It was disappointing.
My shaders, on NVIDIA platforms, compile and run fine, with samplers arrays and struct with sampler fields. I know that NVIDIA platform is more permissive than others, w.t.r. the GLSL syntax, but I think that sampler types should be allowed in structures and arrays.
But, after having read this page, I get more confused. In particoular, I have found interesting the following quotes:
Arrays of sampler types are special. Under GLSL version 3.30, sampler arrays can be declared
Structs cannot contain variables of sampler types.
So, I have investigate on GLSL specifications, and while searching I found that the sampler type in a basic one (para 4.1), the array can be composed by basic types (para ), and the same for structure member declarations (para 4.1.9). Am I misinterpreting the specification, or the Intel driver is too "strict"?
Someone could point a spot on this question? The final question should be "Sampler types are considered a basic one?"