What does FlushType in the RHI documentation mean?

In the documentation for the RHI interface there are comments along the lines of:

  • FlushType: Thread safe
  • FlushType: Wait RHI Thread
  • FlushType: Flush Immediate

What do these comments mean? And are they referring to something the RHI method is doing internally or something I must do before calling an RHI method?

Basically, if you read the source code of UE, the flush type are referreing to something the RHI method is doing internally .

	case EImmediateFlushType::WaitForDispatchToRHIThread:
		{
			if (HasCommands())
			{
				GRHICommandList.ExecuteList(*this);
			}
			WaitForDispatch();
		}
		break;