TOP_LEVEL_ARRAY_STRIDE is 0 for top level arrays

Hello,

When using glGetProgramResourceiv to query this block member (GPUSkinningBlock.skinBlendMatrices[0]) for TOP_LEVEL_ARRAY_STRIDE, the Nvidia driver returns 0 where the AMD driver returns the array stride (same value as GL_ARRAY_STRIDE).

buffer GPUSkinningBlock 
  {
    mat4 skinBlendMatrices[MAX_INSTANCES]; 
  } gpuSkinning;

For another block, both AMD and Nvidia drivers return the stride as I would expect when querying any of the two members:

struct ModelStruct
{
  uint modelId;
  mat4 instancingTransform;
};

layout(shared) buffer ModelBlock
{
  ModelStruct model[];
};

So it seems that with the Nvidia driver, GL_TOP_LEVEL_ARRAY_STRIDE returns 0 if the element queried is the top level array itself. The OpenGL specification doesn’t say anything about this special case, so I’d assume it should also return the stride in this case, it’s not completely clear, though.

Am I missing something or could this be considered a bug in the driver?

Regards,
Yves