We often need the same native texture objects for new textures. This commit
try to avoid destroying and creation of this textures by pooling them.
This should be a big performance gain for some efb2ram games as they may
overwrites partially a cached texture (which would be deleted) and afterwards
try to read it.
Creating/destroying sounds like an easy task, but it isn't. eg the nvidia ogl
driver synchonize their threads do avoid use-after-free issues.
Block braces on new lines.
Also killed off trailing whitespace and dangling elses.
Spaced some things out to make them more readable (only in places where it looked like a bit of a clusterfuck).
some code additions for future use ;).
please gcc user test this as i don't have opportunity to test it myself i only use reference code to.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@7247 8ced0084-cf51-0410-be5f-012b33b47a6e
Changed non-hi-res textures to use MurmurHash3, which has better performance that the previous hash.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@7080 8ced0084-cf51-0410-be5f-012b33b47a6e
DX11: Fix a DX11 debug runtime error caused by the vertex shader output signature and the pixel shader input signature not matching if per-pixel lighting is disabled. Someone forgot disabling those pixel shader parameters ;P
DX11: Enable use of dynamic textures wherever possible.
DX9: Remove two unnecessary TODOs. Someone forgot removing those since they've been obsolete for a long time ;P
Anyway, at least working mipmaps and dynamic textures should increase DX11 performance a bit. And "a bit" is more than my usual "marginally" ;)
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6473 8ced0084-cf51-0410-be5f-012b33b47a6e
- Add some info about a backend's feature set (MSAA, Real XFB, EFB to RAM, ..) to VideoConfig
- Gray out options if they aren't supported by the backend or if changing them doesn't affect anything (e.g. changing STC mode if STC is disabled)
- Allow signed bytes for D3D11. Not sure if this causes glitches, but it should work
- Call wxEvent.Skip() in the event function handlers, not sure if this fixes any bugs but the old code definitely caused bugs during development of this patch
- Fix a memory leak in the configuration dialog if D3D11 is used
- Other minor stuff that doesn't need to be mentioned or which I forgot
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6450 8ced0084-cf51-0410-be5f-012b33b47a6e
The finding was that 99% of the time, textures are static in memory. However, Dolphin would pessimistically continue to decode and copy the same texture every time. The optimisation is to check if the texture matches what is in the cache, and if it does, Dolphin should early exit.
The result is the speed in New Super Mario Bros Wii increased 35% with spinning coins. Still not as fast as EFB copy to texture though.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6352 8ced0084-cf51-0410-be5f-012b33b47a6e
Upon texture reloading, the cache entry hash wasn't updated and thus we effectively disabled any texture caching in that case.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6308 8ced0084-cf51-0410-be5f-012b33b47a6e
Now, there are two:
Real dimensions: Width and height of the original GameCube texture
Virtual dimensions: Width and height of the texture used by dolphin-emu's renderer
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6291 8ced0084-cf51-0410-be5f-012b33b47a6e