On 11/20/18 18:08, Henri Verbeet wrote:
The case I was thinking of above is when the map binding location is current because the application is actually mapping the texture, rather than because it ends up being the same as the default location. We can't really distinguish those two cases right now.
I thought there is download_count texture variable meant for this purpose. It currently makes wined3d_texture_evict_sysmem() do nothing if the application effectively requested to download the texture to sysmem over 50 times. This counter could help to sort out default location case or to ignore just a few application requested mappings during some initialization. Still I suppose more accurate statistics might be ideally required for texture blit. E. g., what if application mapped and downloaded the texture 51 times over the run time for some specific purposes, but other 10000 times did StretchBlt without mapping anything? Maybe just count of total texture blits in addition to download count could help?