Decal created on the basis of the cloned texture is not displayed

I’m working on customizing a 3D model of jeans, and with the addition of the flipX function it doesn’t work correctly. It’s built on basis of Examples/decals

Here I’m modifying texture, and applying it to material

// texture is an image, loaded by TextureLoader
texture.wrapS = THREE.RepeatWrapping;
texture.repeat.x = flipX; // -1 or 1
decalMaterial.map = texture;

This code is in the function that is responsible for adding decal on click

position.copy(intersection.point);
orientation.copy(mouseHelper.rotation);

let material = decalMaterial.clone();
material.color.set(textureColor);
let decal = new THREE.Mesh(new DecalGeometry(basicModel, position, orientation, size), material);
scene.add(decal);

It works perfectly fine, until I’m switching flipX

Because all decals use the same texture, if I change it, it changes even on existing decals

Then I tried to use the copy of texture on each decal

let t = new THREE.Texture();
t = texture.clone(); // or t.copy(texture);
t.wrapS = THREE.RepeatWrapping;
t.repeat.x = flipX; // -1 or 1
decalMaterial.map = t;

I don’t know why, but it adds new mesh to the scene, but it’s not appearing on the canvas.

The only solution I see, is to create duplicate set of textures, and apply it if FlipX is on, but it will use additional traffic and memory, so it’s bad solution.

Does anyone have an idea how to solve this?

After this line, can you please add:

t.needsUpdate = true;

Does it make any difference?

It did help!!!
Thank you!!!