crosire / d3d8to9

A D3D8 pseudo-driver which converts API calls and bytecode shaders to equivalent D3D9 ones.
BSD 2-Clause "Simplified" License
892 stars 80 forks source link

Direct3DDevice8::CreateImageSurface pool #6

Closed CookiePLMonster closed 7 years ago

CookiePLMonster commented 7 years ago

Currently Direct3DDevice8::CreateImageSurface puts the surface in D3DPOOL_SYSTEMMEM pool. However MSDN dx8->dx9 migration guide says

D3DPOOL_SCRATCH will return a surface that has identical characteristics to a surface created by IDirect3DDevice8::CreateImageSurface.

So is SYSTEMMEM usage here intentional or an oversight?

crosire commented 7 years ago

It is intentional. The guide appears to be wrong here, since I did some tests and surfaces created in D3DPOOL_SCRATCH did not actually reflect D3D8 behavior, while D3DPOOL_SYSTEMMEM ones did.

CookiePLMonster commented 7 years ago

Fair enough! Seeing how d3d8 partially broke on Win10 (seriously, what the hell is going with its memory footprint on Win10!?!?) it's not so unlikely the docs are wrong. I'll take your word on that :)