Mobile Dynamic texture fliker/jitter in Unreal Engine for oculus go

Hii, I an actually trying to do dynamic texture changing for different surfaces in oculus go using unreal engine, figured out how to change the stuff and all , textures are changing everything is fine but the only problem is with textures.The changed texture is having flickers/Jitters on it i have tried anti aliasing used temporal AA, tried using scalability settings and changed device profiles too but there is no change.I thought there is a problem with Mipmaps of the texture tried changing it using C++ code but no effect below is the code that i have followed .I doubt that it is because of LOD (Level of detail) but not sure about it…

FYI this is the example of what i’m facing in oculus go

can anyone please point me in a right direction…

`void UAsyncTaskFileDownloadImage::HandleImageRequest(FHttpRequestPtr HttpRequest, FHttpResponsePtr HttpResponse, bool bSucceeded, FString TextureKey)
{
#if !UE_SERVER
	RemoveFromRoot();
	if (bSucceeded && HttpResponse.IsValid() && HttpResponse->GetContentLength() > 0)
	{
		EPixelFormat InFormat = EPixelFormat::PF_B8G8R8A8;
		TArray<uint8> PixelData = HttpResponse->GetContent();
		IImageWrapperModule& ImageWrapperModule = FModuleManager::LoadModuleChecked<IImageWrapperModule>(FName("ImageWrapper"));
		EImageFormat ImageFormat = ImageWrapperModule.DetectImageFormat(PixelData.GetData(), PixelData.Num());
		IImageWrapperPtr ImageWrapper = ImageWrapperModule.CreateImageWrapper(ImageFormat);
		const TArray<uint8>* RawData = nullptr;
		ImageWrapper->SetCompressed(PixelData.GetData(), PixelData.Num());
		ImageWrapper->GetRaw(ERGBFormat::BGRA, 8, RawData);
		FDDSLoadHelper DDSLoadHelper(&PixelData[0], PixelData.Num());
		if (ImageWrapper.IsValid())
		{
			TArray<uint8> RawDataCopy = *RawData;
			if (UTexture2D* Texture = UTexture2D::CreateTransient(ImageWrapper->GetWidth(), ImageWrapper->GetHeight()))
			{
				Texture->PlatformData = new FTexturePlatformData();
				Texture->PlatformData->SizeX = ImageWrapper->GetWidth();
				Texture->PlatformData->SizeY = ImageWrapper->GetHeight();
				Texture->PlatformData->PixelFormat = InFormat;
				// Allocate first mipmap and upload the pixel data
				int32 NumBlocksX = ImageWrapper->GetWidth() / GPixelFormats[InFormat].BlockSizeX;
				int32 NumBlocksY = ImageWrapper->GetHeight() / GPixelFormats[InFormat].BlockSizeY;				
					FTexture2DMipMap* Mip = new(Texture->PlatformData->Mips) FTexture2DMipMap();
					Mip->SizeX = ImageWrapper->GetWidth();
					Mip->SizeY = ImageWrapper->GetHeight();
					Mip->BulkData.Lock(LOCK_READ_WRITE);
					void* TextureData = Mip->BulkData.Realloc(NumBlocksX * NumBlocksY * GPixelFormats[InFormat].BlockBytes);
					FMemory::Memcpy(TextureData, RawDataCopy.GetData(), RawDataCopy.Num());
					Mip->BulkData.Unlock();
					Texture->UpdateResource();				
				/*for (int i = 0; i < 11; i++)
				{
					void* TextureData = Texture->PlatformData->Mips[i].BulkData.Lock(LOCK_READ_WRITE);
					FMemory::Memcpy(TextureData, RawDataCopy.GetData(), RawDataCopy.Num());
					Texture->PlatformData->Mips[i].BulkData.Unlock();
					Texture->UpdateResource();
				}*/								
				OnSuccess.Broadcast(Texture, TextureKey);
			}
		}
		OnFail.Broadcast(nullptr, TextureKey);
#endif
	}
}`