DirectX9 to DirectX12 API proxy for Guild Wars 2
Optimized multithreaded GPU write code, this should make replay_threads > 1 configs more viable (AMD rejoice!)
Optimized out batching when no data is written on GPU (less GPU usage)
Extended RTV & DSV heaps, to fix out of slots crash (your 69 characters are safe now =])
Fixed hang due to texture-surface ref counting going out of order
Added new NaN guard flags in config to fix NRM opcode behaivour (fixes that dirty spring snow in BnS, and maybe even more)
Fixed some instability in BnS (probably including prem effects crash)
Changed perf_graph results, now it shows statistics in stacked up image that consists of dx9 and dx12 results.
Updated shader profiles for GW2, shader profiles and cache for BnS.
Do clean install on this release due to shader related pck and config update.
Thanks for Jojo and Alrai for shader profiles and cache.
-Fixed shadows in BnS -Fixes related to BnS GPU crashes -General crashfixes -Optimized GPU-CPU transfers -Optimized DUP calls
Note: Do a clean install with this update.
-Fixed memory leak in com deallocation -Silenced up some error messages -GPU crashfix in DUP calls -GPU crashfix in thread ref logic -Added force crash on vfs file IO error at startup -DEPTH semantic implementation for HLSL generator -Improved RCE code to include more IA entry types -Fixed cull render state -Crashfixes in com ref counting -Fixed GPU execute wait crash -Updated default shader profiles & cache for BnS -Optimized GPU upload code -Optimized DUP calls
apitrace - for providing good method to trace down things on dx9 Ehren Eugen - for troubleshooting BnS GPU crash
Changelog: -Optimized reduntant state set calls (BnS renderer) -Fixed some frame/thread transition errors (visual corruption/flicker) -dx9 mode perf graph now writes data to disk every 5 minutes -Improved debug logging -Crashfix in DUP DPI buffer allocation (BnS UI renderer) -Added placed resource approach for surfaces/textures (that is optional) -Added TDR crash logging and reg files to switch TdrDelay at will (BnS load screen crash)
Changelog: -Fixed CPU over utilization -Added VRAM usage counter to metrics
-Fixed GPU crash with surface_ctor=1 -Lowered default BnS config RAM usage -Fixed draw up GPU crash
Changelog: -Fixed screenshot crash in BnS (may depend on GPU driver) -Fixed some GPU crashes related to overlay/BnS -Fixed GPU crash related to offscreen surface rendering -Fixed visual bug related to texture filtering mode -Fixed visual bug from wrong HLSL precision (black squares on shadow in gw2) -Tweaked default config to save some RAM usage -Added custom config for high power rigs (for Gw2 only, rename/copy gw2_hiend_config.ini to config.ini) -Tweaked thread wake factors to cut some CPU waits -Switched GPU write to lockfree algorithm when replay_threads > 1. (currently it will heavily load GPU) -Optmized out some unused upload memory -Fixed shader profile application and improved PCF profile collection -Added config option to disable GPU object residency manipulation -Allowed >4Gb vstream and upload pools
Note: Do a clean install with this update.
Changelog: -Fixed transparency issues in BnS -Fixed StateSafeFlush to prevent artifacts/garbadge on screen when hiting batch limit (most notable in BnS) -Allowed more than 4 Gb pool limits -Added extra config option to force object residency (for stutter-free configs) -Buffered DUP vstream objects to improve performance (0,4ms cut) -Some crashfixes/GPU crashfixes
In summary this pushed API overhead cut to almost 90%
This proved to fix some memory fragmentation problems lowering extra memory commission
This change lowered summary CPU time usage on whole project,
but opened up some parallelism problems on replay threads more than 1,
effectively showing parts to improve.
This lowered shared GPU memory usage, bandwith and object creation times, what gived less stutter on dynamic scenes.
This lowered memory usage in textures by ~75%
This can be usefull if you want to cut persistent memory usage.
Now it is using plain megabyte values instead of per group limits.
Give a big thanks to Alrai as this pack should fix many problems with reflections in water
By default that switches configured to fix some visual bugs (like a Skyscale horns) with low performance impact Still they give ability to cut more bugs if found.
Occlusion queryes will work only with 1 replay thread. Due to nature of dx12 they will cut overall performance if enabled!
HLSL recompilation switches and upload memory usage improvements fixed most problems with Blade and Soul renderer.
Currently there is still 0.4-1ms frame time improvement window, but overall things work good.
Read wiki page on installing: https://github.com/megai2/d912pxy/wiki/Installing-for-Blade-&-Soul
Changelog: -fixed startup crash in occlusion query code
-Visual fixes -Added memory alloc retry and logging -Added bunch of debugging tools related to memory managing -Fixed memleak in surface code -Crashfix in fixed pipeline draw calls -Replace ps and pb builds with config.ini options -Partly offloaded GPU write code to replay thread -Changed output of perf graphs to html files -Fixed black pieces on mount models(for Skyscale at least) -Optimized memory allocation a bit -Optimized PSO cache memory bandwith -Crashfix in triangle fan skip code
Visual bugs aid:
-HLSL generator fixes & improvements -DX9 PSO realtime check support (optional) -Occlusion query implementation (optional) -CommitBatch2 for more complex drawing -DrawUP/DrawIndexedUP improvements/implementation -MinVertexIndex usage implemenation
Optimizations:
-CommitBatch optimization -Zero write render target optimization -HLSL generator in-memory compile -CPU based API reduction code (optional)
Additional:
Basic support for Blade & Soul
Note:
This release need a clean install.
Special thanks:
to AlraiLux for testing/tinkering with latest occlusion code
Changelog:
Visual bugs aid
-HLSL generator fixes & improvements -DX9 PSO realtime check support (optional) -Occlusion query implementation (currently slow & optional) -CommitBatch2 for more complex drawing -DrawUP/DrawIndexedUP improvements/implementation -MinVertexIndex usage implemenation
Optimizations
-CommitBatch optimization -Zero write render target optimization -HLSL generator in-memory compile -CPU based API reduction code (optional)
Basic support for Blade & Soul