-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA256 Am 2015-10-21 um 12:13 schrieb Henri Verbeet: I completely missed CopySubresourceRegion. This seems like a much better method to map UpdateSurface to than UpdateSubresource.
Complexities of managing that aside, that would always imply at least one copy of the data for d3d10+ updates. Ya, the design of d3d10's update_sub_resource kinda implies a copy. You can of course try to call GL right away with the application-provided pointer, but then the driver is likely to make a copy internally unless it is really clever too. It seems better to me to do the copy ourselves, write into a client storage buffer object and then blame the driver if it still insists on making an internal copy.
Well yes, but the destination resource being busy generally implies the GPU being somewhat busy too. And in that case it isn't necessarily bad to spend some time on the CPU to copy the data. Probably. Could also be because the worker thread is busy because the driver needs more CPU time than the game logic.
Either way, these things are fairly hypothetical at this point. -----BEGIN PGP SIGNATURE----- Version: GnuPG v2 iQIcBAEBCAAGBQJWJ2+fAAoJEN0/YqbEcdMwy2kP/0YakW8Nn9A3pyrSpFwXXq4n +otk3t4L3B9JQ1elnVkoGpkJDyqXxOimbOLyb80Zrbc0Ll02R0FNmoFgJHRDUDhG dZnnTUwHoXxpQgSf+T/TpJwj7pVGqyaH8+A434l31iQDW+KInjeH6X9T0lakuQaU BzIXUs/Niz2oy8IaZXKY3Ar/8ku//ZKwmN2c4BAlhaznl3SLzgTxEn1d5zAfFFWt VbSb96U5DBRdEpz9EO1X7/5zzRM1m/9CUDowuOIGX8G/wxFI9P6DA9x2iUqBcvTU kkXmZU2av9thjxqjXX9lPMfmuR/0vZskdSGqHgDqUvOhkkTV25rlhEgjbkAbjs7z rLOaojZF0x/rcglkCqlE5MRZ1k7HXt3pGhwxDs3lhkJiuVk4w4d5QYJ06DpICwc7 OgX9QjtnAWlgW8xvBeFx3y9tSierqCW+J+AtzhdAxOiYBxdB1/2AG2TBZiQpoWtl azutl8RUBQ7Sodu4xSsh7AOMiTeOP8mPXaoxuNQYcLVHPh4laRzTppR5jwYUABTI A2lL10z0SCAFF5O4V3mg29x0gwLS4qQbS2Kt27/Xk0bzoHs62Q9qLCgpRf9OEONa QlTYK+BijSn5P3s8BrZaQBmk4OsgNYNuktVIVB/a+7aUOn0jj+RbPjYHj1JNb/OW +TdDO9TPH04MRMa4lpoX =FhGW -----END PGP SIGNATURE-----