Can't run compute shaders in new versions of Chrome

Hi,

i’m write code, that work fine in Google Chrome 79.0.3945.79, but get error (linking program) after version 81.0.4044.138 and more.

OS: Windows 10 64 bit
GPU: NVIDIA GeForce GTX 760
Driver version: 27.21.14.5148 (date 21.06.2020)

my html file:

<html>

    <head>

        <style>

            html, body {

                margin:0px;

                padding:0px;

                width:100%;

                height:100%;

            }

            body {

                background-color: #404040;

            }

            canvas {

                border:1px solid black

            }

            div {

                display:flex;

                width:100%;

                height:100%;

                align-items: center;

                justify-content: center;

            }

        </style>

        <script>

            let gl,                 // gl context to make shaders

                gVertCnt = 0,       // Vertices count

                uPointSizeLoc = -1, // VAO object setup

                uAngle = 0,         // angle

                gRLoop;             // global ref for our render loop

            window.addEventListener('load', function() {

                // gl = GLInstance("glcanvas").fSetSize(500, 500).fClear();

                let canvas = document.getElementById('glcanvas'),

                gl = canvas.getContext('webgl2-compute');

                console.log('MAX_SHADER_STORAGE_BUFFER_BINDINGS', gl.getParameter(gl.MAX_SHADER_STORAGE_BUFFER_BINDINGS));

                console.log('this.gl.MAX_COMPUTE_SHADER_STORAGE_BLOCKS', gl.getParameter(gl.MAX_COMPUTE_SHADER_STORAGE_BLOCKS));

                console.log('this.gl.GL_MAX_COMPUTE_UNIFORM_BLOCKS', gl.getParameter(gl.MAX_COMPUTE_UNIFORM_BLOCKS));

                console.log('this.gl.MAX_SHADER_STORAGE_BLOCK_SIZE', gl.getParameter(gl.MAX_SHADER_STORAGE_BLOCK_SIZE));

                console.log('this.gl.MAX_COMBINED_SHADER_STORAGE_BLOCKS', gl.getParameter(gl.MAX_COMBINED_SHADER_STORAGE_BLOCKS));

                console.log('this.gl.MAX_VERTEX_OUTPUT_COMPONENTS', gl.getParameter(gl.MAX_VERTEX_OUTPUT_COMPONENTS));

                console.log('this.gl.MAX_COMPUTE_SHARED_MEMORY_SIZE', gl.getParameter(gl.MAX_COMPUTE_SHARED_MEMORY_SIZE));

                console.log('this.gl.MAX_VARYING_VECTORS', gl.getParameter(gl.MAX_VARYING_VECTORS));

                const shader = gl.createShader(gl.COMPUTE_SHADER);

                const code = document.getElementById('compute_shader').text;

                gl.shaderSource(shader, code);

                gl.compileShader(shader);

                if (gl.getShaderParameter(shader, gl.COMPILE_STATUS) != true) {

                    console.log('ERROR');

                    throw Error(gl.getShaderInfoLog(shader));

                }

                const prog = gl.createProgram();

                gl.attachShader(prog, shader);

                gl.linkProgram(prog);

                if (gl.getProgramParameter(prog, gl.LINK_STATUS) != true) {

                    console.log('ERROR');

                    throw Error(gl.getProgramInfoLog(prog));

                }

                console.log('SUCCESS');

                

            });

        </script>

    </head>

    <body>

        <div>

            <canvas id='glcanvas'></canvas>

            <script id='compute_shader' type='x-shader/x-vertex'>#version 310 es

                layout( local_size_x = 1000, local_size_y = 1, local_size_z = 1 ) in;

                layout (std430, binding = 0) buffer aBuffer

                {

                    int aData[];

                };

                layout (std430, binding = 1) buffer bBuffer

                {

                    int bData[];

                };

                layout (std430, binding = 2) buffer cBuffer

                {

                    int cData[];

                };

                layout (std430, binding = 3) buffer dBuffer

                {

                    int dData[];

                };

                layout (std430, binding = 4) buffer eBuffer

                {

                    int eData[];

                };

                layout (std430, binding = 5) buffer fBuffer

                {

                    int fData[];

                };

                layout (std430, binding = 6) buffer gBuffer

                {

                    int gData[];

                };

                layout (std430, binding = 7) buffer hBuffer

                {

                    int hData[];

                };

                layout (std430, binding = 8) buffer rBuffer

                {

                    int rData[];

                };

                layout (std430, binding = 9) buffer jBuffer

                {

                    int jData[];

                };

                layout (std430, binding = 10) buffer kBuffer

                {

                    int kData[];

                };

                layout (std430, binding = 11) buffer lBuffer

                {

                    int lData[];

                };

                layout (std430, binding = 12) buffer mBuffer

                {

                    int mData[];

                };

                layout (std430, binding = 13) buffer nBuffer

                {

                    float nData[];

                };

                layout (std430, binding = 14) buffer oBuffer

                {

                    int oData[];

                };

                uniform float a;

                uniform float b;

                uniform int c;

                uniform int d;

                uniform float f;

                uniform int g;

                void main(void) {

                    uint index = gl_GlobalInvocationID.x;

                    aData[index] = bData[index];

                    bData[index] = cData[index];

                    cData[index] = dData[index];

                    dData[index] = eData[index];

                    eData[index] = fData[index];

                    fData[index] = gData[index];

                    gData[index] = hData[index];

                    hData[index] = rData[index];

                    rData[index] = jData[index];

                    jData[index] = kData[index];

                    kData[index] = lData[index];

                    lData[index] = mData[index];

                    mData[index] = oData[index];

                    nData[index] = f + a + b;

                    oData[index] = c + d + g;

                }

            </script>

        </div>

    </body>

</html>