How to update a bufferAttribute that is being passed to a compute shader WEBGPU

Hi,
I wondered if anyone could help me I have a mesh that I am doing analysis on in a compute shader using the WEBGPU renderer. I update the vertices in the buffer I am using to store the vertex data and then set .needsupdate= true, however nothing updates and the result from the shader is exactly the same. I have attached an example below…

constructor(){
 for(var i =0; i < mesh.geometry.attributes.position.count; i++){
            mesh.getVertexPosition(i,vert);
            float32array[(i*3)]= vert.x;
            float32array[(i*3)+1]= vert.y;
            float32array[(i*3)+2]= vert.z;
        }
        this.positionBaseAttribute = new THREE.Float32BufferAttribute(float32array,3,false);
        this.positionBaseAttribute.setUsage(THREE.StreamReadUsage);
const positionAttribute = storage( this.positionBaseAttribute, 'vec3', this.positionBaseAttribute.count ).toReadOnly()
}




    updatePositions(verts){
    for(var i =0; i < verts/3; i++){
        this.positionBaseAttribute.array[(i*3)] = verts[(i*3)]
        this.positionBaseAttribute.array[(i*3)+1] = verts[(i*3)+1]
        this.positionBaseAttribute.array[(i*3)+2] = verts[(i*3)+2]
    }
    
    this.positionBaseAttribute.needsUpdate = true;
    this.positionBaseAttribute.needsUpdate= true;
 
    }

Any help would be really appreciated !