Right now not doing with any framework.. just learning DirectX programming. I already have basic knowledge about OpenGL, but directX seems to be a lot different from this. My queries are: 1) Does usage of D3DCREATE_MULTITHREADED in D3D9 provide true asynchronous nature while creating and uploading the texture? 2) For D3D11, it is mentioned that by default it is multi threaded, how do we make sure that this is true asynchronous as it can be made single threaded with a performance improvement as per its specs. ? 3) If (1) says that using D3DCREATE_MULTITHREADED flag, we cannot achieve true asynchronous nature, could you suggest any approach as how can we achieve performance gain in texture uploads?