Jump to content
Posted 17 May 2012 - 12:33 AM
Posted 17 May 2012 - 12:55 AM
Posted 17 May 2012 - 01:58 AM
Posted 17 May 2012 - 03:53 AM
Edited by Nik02, 17 May 2012 - 03:55 AM.
Posted 17 May 2012 - 04:27 AM
Posted 17 May 2012 - 06:58 AM
Posted 17 May 2012 - 11:23 AM
That's quite a good analogy.
It is best to think about the GPU as a remote machine to which you send requests, and from which you can then download the responses (if you need them). It actually is a remote machine, even though the physical distance from the CPU isn't usually very long.
It appears that the gentleman thought C++ was extremely difficult and he was overjoyed that the machine was absorbing it; he understood that good C++ is difficult but the best C++ is well-nigh unintelligible.
Posted 17 May 2012 - 12:02 PM
So just to clarify, when an app *reads* a GPU buffer using map/unmap() will *always* cause the CPU to wait for the GPU?
Compared to when an app *writes* to a dynamic buffer, which doesn't always cause the cpu to wait (I guess because under the hood dx seems to maintain multiple buffers for dynamic writes).
Also, when you say that the CPU "sits around waiting for the GPU to execute all pending commands", does that truly mean that all dx commands queued up for that frame have to be executed before a buffer can be read, or does it mean that only commands involving the particular append buffer to be read have to be waited for?
Posted 17 May 2012 - 08:32 PM