C++ - Updating texture data

I would setup a texture like this:

// create dynamic texture
m_pDynamicTexture = UTexture2D::CreateTransient(TEX_WIDTH, TEX_HEIGHT, TEX_PIXEL_FORMAT);
m_pDynamicTexture->UpdateResource();

m_pDynamicTexture->AddressX = TEX_ADDRESS_X;
m_pDynamicTexture->AddressY = TEX_ADDRESS_Y;
m_pDynamicTexture->Filter = TEX_FILTER;
m_pDynamicTexture->RefreshSamplerStates();

setup with a dynamic material instance using UMaterialInstanceDynamic::SetTextureParameterValue,
then update it like this:

ENQUEUE_UNIQUE_RENDER_COMMAND_TWOPARAMETER(
	UpdateDynamicTextureCode,
	UTexture2D*, pTexture, m_pDynamicTexture,
	const uint8*, pData, pData,
	{
		FUpdateTextureRegion2D region;
region.SrcX = 0;
region.SrcY = 0;
region.DestX = 0;
region.DestY = 0;
region.Width = TEX_WIDTH;
region.Height = TEX_HEIGHT;

FTexture2DResource* resource = (FTexture2DResource*)pTexture->Resource;
RHIUpdateTexture2D(resource->GetTexture2DRHI(), 0, region, region.Width * TEX_PIXEL_SIZE_IN_BYTES, pData);
	});

Hope it helps!