glfwとglewで OpenGL 4.6 ターゲットにプログラムしています。

glslの "layout(binding = N)" が反映されず困っています。

glGet○○すると 0 が返って来ます。
どうやら宣言順にインデックスが付けられてるようで
glGet○○の値を使えば正常に動作します。

でも気持ち悪いです。
何で binding 指定が有効にならいのでしょうか?

初めはUniformBuffer使おうとして気づいたのですが、
ショートプログラムで確認した結果、
shaderStorage、sampler、image等も同じく反映されないようです。

環境はGeforce GTX760、ドライバVer388.13、VSコミュ2017使ってます。