The array size of gl_SampleMask and gl_SampleMaskIn is ceil(gl_MaxSamples/32)

Oes spec says:
    For the both the input array gl_SampleMaskIn[] and the output array gl_SampleMask[], bit B of mask M
    (gl_SampleMaskIn[M] or gl_SampleMask[M]) corresponds to sample 32*M+B. These arrays have
    ceil(gl_MaxSamples/32) elements, where gl_MaxSamples is the maximum number of color samples
    supported by the implementation.

    But glslang report error "array must have size before use length".

    layout(location = 0) out mediump vec4 fragColor;
    void main (void)
    {
    for (int i = 0; i < gl_SampleMask.length(); ++i)
    gl_SampleMask[i] = int(0xAAAAAAAA);

       fragColor = vec4(0.0, 1.0, 0.0, 1.0);
    }

* Add two test items, one is for gl_MaxSapmles = 32 and the other one is for gl_MaxSapmles = 64.
This commit is contained in:
jimihem 2023-12-30 05:23:16 +08:00 committed by GitHub
parent 88c5373ee4
commit db4d6f85af
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
9 changed files with 402 additions and 1 deletions

View file

@ -282,6 +282,7 @@ INSTANTIATE_TEST_SUITE_P(
"glsl.es320.subgroupQuad.comp",
"glsl.es320.subgroupVote.comp",
"glsl.es320.extTextureShadowLod.frag",
"gl_samplemask_array_size.frag",
"glsl.ext.textureShadowLod.frag",
"terminate.frag",
"terminate.vert",