1
0
mirror of https://github.com/doitsujin/dxvk.git synced 2024-11-29 19:24:10 +01:00
Commit Graph

3033 Commits

Author SHA1 Message Date
Philip Rebohle
aa70369671 [d3d9] Store copy of shader metadata in constant set
Reduces pointer chasing when updating shader constants.
2020-02-06 17:58:15 +01:00
Philip Rebohle
69b04c609a [dxso] Fix GCC warning for an unused variable 2020-02-06 17:50:28 +01:00
Philip Rebohle
2288dd924e [d3d9] Fix GCC warnings for unsigned->signed comparisons 2020-02-06 17:50:28 +01:00
Philip Rebohle
06809587e8 [d3d9] Don't arbitrarily set fog scale to 0
The Witcher 1 sets FOGSTART == FOGEND together with LINEAR fog mode, in
which case we previously set fog_scale to 0 and therefore incorrectly
override the pixel color with the fog color.

Fixes #1401.
2020-02-06 17:50:04 +01:00
Joshua Ashton
87dd8f0122 [d3d9] Validate blit regions are in range
Closes #1392
2020-02-04 23:45:32 +00:00
Joshua Ashton
92ee9c7ef1 [d3d9] Error on StretchRect when not D3DPOOL_DEFAULT 2020-02-04 22:37:44 +00:00
Joshua Ashton
08fc5342a9 [dxso] Initialize vPos in shaders if we have pixel fog
Fixes some fog related regressions since we deferred this
2020-02-04 21:43:16 +00:00
Philip Rebohle
ce51431860
[dxvk] Skip over adapters not supporting Vulkan 1.1
Even with a 1.1 instance it appears to be possible to retrieve 1.0
adapters, so we'll just ignore them.
2020-02-03 11:31:58 +01:00
František Zatloukal
976d3b5ee4 [util] Include ostream in util_rc_ptr.h 2020-01-31 15:17:18 +01:00
Joshua Ashton
1abacc947c [dxso] Apply projection before bumpmapping in TexBem
Also fixes us to use the correct stage id for TexBem matrix indices...

What a truly terrible API this is. This literally makes 0 sense.

This function needs a massive cleanup later too.

Closes #1387
2020-01-31 00:33:47 +00:00
Philip Rebohle
6a5d472e60
[meta] Release 1.5.3 2020-01-30 16:17:31 +01:00
Joshua Ashton
3196fbc759 [d3d9] Unbind fragment shader for ProcessVertices
Fixes validation errors and potential UB on some drivers
2020-01-29 21:43:12 +00:00
Joshua Ashton
201d508626 [dxso] Handle writemask in TexKill op
Turns out this actually applies to what is tested, despite docs saying otherwise and never ever seeing this before!

Fixes some broken ENB shaders which I assume have some manual hand edits because I can't get FXC to generate this code at all.
2020-01-29 17:22:38 +00:00
Philip Rebohle
3ab675c233 Revert "[util] Disable float emulation for Hat in Time"
Turns out this breaks some levels (e.g. Chapter 1 Act 3).
Performance impact seems minimal on RADV+ACO.

This reverts commit 6f93d3bf22.
2020-01-28 17:46:33 +00:00
Philip Rebohle
c560ec44b5 [d3d11] Re-introduce client API HUD item 2020-01-28 16:32:58 +00:00
Philip Rebohle
be16da37d7 [d3d11] Introduce COM interface to set and get API version
Allows us to identify DirectX 10 applications correctly.
2020-01-28 16:32:58 +00:00
Philip Rebohle
1e6ad0b372 [d3d9] Re-introduce client API HUD item 2020-01-28 16:32:58 +00:00
Philip Rebohle
38ad868214 [hud] Add parameter to allow placing HUD items 2020-01-28 16:32:58 +00:00
Philip Rebohle
588beb5b2f [hud] Don't initialize client API HUD item by default
Removes the client API property from the DXVK device as well.
Instead, client APIs should create the HUD item manually.
2020-01-28 16:32:58 +00:00
Philip Rebohle
ca4c03284f [dxvk] Don't oversubscribe memory heaps on UMA devices
Otherwise, we seem to suffer a major performance penalty
on setups with insufficient dedicated system memory.
2020-01-28 16:31:34 +00:00
Philip Rebohle
3beca254e2 [dxvk] Move UMA check to backend 2020-01-28 16:31:34 +00:00
Joshua Ashton
b1edf227f8 [d3d9] Enable depth bounds feature, if supported
Only expose it in format checks if the adapter supports the feature also
2020-01-28 01:51:04 +00:00
Joshua Ashton
6f93d3bf22 [util] Disable float emulation for Hat in Time
Squeezes out some extra performance in this title
2020-01-27 14:21:21 +01:00
Joshua Ashton
720cdf383e [d3d9] Use spec constants for bool constants 2020-01-27 14:21:21 +01:00
Joshua Ashton
a43223256e [d3d9] Fix GetTextureStageState using unmapped types
Closes #1378
2020-01-27 01:07:11 +00:00
Joshua Ashton
65f4437417 [dxso] Initialize vPos value at the start of the shader
Otherwise we can end up initializing it in a branch and that's no good.

Closes https://github.com/doitsujin/dxvk/issues/1294
2020-01-26 18:40:32 +00:00
Joshua Ashton
b4666ac044 [dxso] Count max constants after we pull out pre-defines 2020-01-26 18:13:45 +00:00
Philip Rebohle
c77a9e3bfe
[util] Unify Risen 1/2/3 app profiles 2020-01-25 12:10:05 +01:00
Philip Rebohle
fdb2b972e9
[util] Add more exe names to Gothic 3 app profile
Fixes #1372.
2020-01-25 12:10:05 +01:00
Joshua Ashton
9b486515fa [d3d9] Allow StretchRect BC -> BC format without stretch 2020-01-25 00:31:45 +00:00
Joshua Ashton
c07f7e2ea0 [test] Add test for StretchRect DXT1 -> DXT1 2020-01-25 00:31:45 +00:00
Philip Rebohle
e242d7f312
[meta] Release 1.5.2 2020-01-25 00:32:25 +01:00
Philip Rebohle
5d2215e898 [d3d9] Don't try to blit to compressed images
Fixes Vulkan validation errors and potential driver crashes in
Dragon Age Origins.
2020-01-24 22:59:26 +00:00
Joshua Ashton
13792df4c5 [d3d9] Don't mark D3DUSAGE_AUTOGENMIPMAP as renderable
We can't access those mips via locking in D3D9 so it's a-okay! :)
2020-01-24 15:54:15 +00:00
Joshua Ashton
2004fba22c [util] Disable d3d9.allowDoNotWait for RTHDRIBL
This app goes into an infinite loop if it gets D3DERR_WASSTILLDRAWING and the perf penalty of blocking on GetRenderTargetData in other apps is too high!
2020-01-24 15:54:15 +00:00
Joshua Ashton
f804c6364d [d3d9] Implement d3d9.allowDoNotWait 2020-01-24 15:54:15 +00:00
Joshua Ashton
764cb5634f [d3d9] Unmark resources as dirty if they get discarded 2020-01-24 15:54:15 +00:00
Joshua Ashton
6fa28bf937 [d3d9] Don't block on GetRenderTargetData
Fixes perf in #1363
2020-01-24 15:54:15 +00:00
Philip Rebohle
7469f5d4a0
[util] Disable supportDFFormats for Gothic 3
See #1367.
2020-01-24 14:21:28 +01:00
Philip Rebohle
38a0d2c552
[d3d9] Don't check for sRGB formats when retrieving back buffer view
Turns out this is always false anyway.
2020-01-24 01:47:52 +01:00
Philip Rebohle
582b06a706 [d3d9] Rotate swap chain back buffers
Restores functionality removed in 81c3daa3d0.
2020-01-24 00:27:09 +00:00
Philip Rebohle
6a6af16195 [d3d9] Retrieve back buffer view from the D3D9Surface 2020-01-24 00:27:09 +00:00
Philip Rebohle
81c3daa3d0
[dxvk] Remove image renaming
Broken by design, has to be implemented by client APIs instead.
2020-01-23 22:21:45 +01:00
Florian Will
0b3f9718c9 [d3d9] Fix some off-by-one TSS types enum values
They are 0-based instead of 1-based, and therefore supposed to be
off-by-one compared to D3DTEXTURESTAGESTATETYPE, but three values in the
enum are actually off-by-two.

For me, this fixes some odd rail rendering in ZUSI 3.

Fixes: 7d0ddc4b
2020-01-23 17:26:51 +00:00
Joshua Ashton
792c74e1d9 [d3d9] Fix texture stage index in stateblocks
Fixes minimap transparency in FHX https://github.com/Joshua-Ashton/d9vk/issues/306
2020-01-23 02:19:43 +00:00
Joshua Ashton
9919ffe5ca [util] Add simple [] operator to our bitset 2020-01-23 02:05:09 +00:00
Joshua Ashton
7d0ddc4b3b [d3d9] Remap texture stage state types onto our own enum
Fits us nicely into a dword for captures while not exclusing D3DTSS_CONSTANT
2020-01-23 02:05:09 +00:00
Joshua Ashton
a1cad25a51 [d3d9] Remove unnecessary loops for some stateblocks applications 2020-01-23 02:05:09 +00:00
Philip Rebohle
21330497e0
[util] Add app profile for Entropia Universe
Fixes #1364 (again).
2020-01-23 01:31:57 +01:00
Philip Rebohle
9721938e57
[d3d11] Introduce d3d11.invariantPosition option
Apparently it's better to make app profiles than risk tanking
performance for all applications. Invariance rules in D3D11 are
undocumented so it's not clear what the correct solution is.
2020-01-23 01:28:19 +01:00