D3D11 DeviceContext::Unmap Internals


I am wondering what the difference between DeviceContext::Unmap for a dynamic texture vs a dynamic buffer is internally? I would assume this is something determined in the Nvidia drivers and not windows drivers? But in any case, this is on Win7/Win10 on GTX Titan Pascal. If I call unmap on a texture, it stalls the pipeline for a bit (is it uploading? rearranging the linear memory layout to GPU texture tiled layout?) However, unmap for a buffer does not seem to stall the pipeline (if so, when does the upload to GPU through PCIe happen here?) For instance I have an unmap and a dispatch using the output of that unmap. Whether I have the dispatch directly after the unmap, or have some other command in there to add buffer time for the upload to occur, the dispatch takes the same amount of time. So makes me wonder if upload for buffers are lazily occurring? If not how and when does the upload through PCIE happen??