D912pxy Versions Save

DirectX9 to DirectX12 API proxy for Guild Wars 2

v1.6

4 years ago

Changelog

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.

Extra

Do clean install on this release due to shader related pck and config update.

Thanks for Jojo and Alrai for shader profiles and cache.

v1.5

4 years ago

Summary

-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.

Detailed changelog

-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

Special thanks

apitrace - for providing good method to trace down things on dx9 Ehren Eugen - for troubleshooting BnS GPU crash

v1.4

4 years ago

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)

v1.3.1h2

4 years ago

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

v1.3

4 years ago

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.

v1.2

4 years ago

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

v1.1_

4 years ago

General changes

1. Object layout and COM representation low level optimization

In summary this pushed API overhead cut to almost 90%

2. Page-aligned memory allocation for COM objects and GPU host memory

This proved to fix some memory fragmentation problems lowering extra memory commission

3. Global objects lookup change

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.

Memory usage and pooling

1. Upload memory is now filled tightly, without extra 64kb aligment

This lowered shared GPU memory usage, bandwith and object creation times, what gived less stutter on dynamic scenes.

2. Fixed a BIG bug in texture memory size calculations

This lowered memory usage in textures by ~75%

3. Added per draw replay items configuration

This can be usefull if you want to cut persistent memory usage.

4. Pooling config for vertex streams and upload memory is changed

Now it is using plain megabyte values instead of per group limits.

Visual fixes

1. Added big pack of shader profiles for Gw2

Give a big thanks to Alrai as this pack should fix many problems with reflections in water

2. Added various optional HLSL recompilation switches

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.

3. Fixed occlusion culling flicker

Occlusion queryes will work only with 1 replay thread. Due to nature of dx12 they will cut overall performance if enabled!

Support for "Blade and Soul"

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

Special thanks

BnS version testing and shader profiles collection: HGI.

Gw2 fx bugs debugging: Alrai.

v1.0h1

4 years ago

Changelog: -fixed startup crash in occlusion query code

v1.0

4 years ago

Summary changelog from "Beta v0.9.9"

-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

v0.9.9.4b1

4 years ago

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