1
0
mirror of https://github.com/doitsujin/dxvk.git synced 2024-12-05 10:24:13 +01:00
Commit Graph

3206 Commits

Author SHA1 Message Date
Philip Rebohle
4346f82209
[hud] Don't pass DXVK context around in HUD modules 2019-12-13 11:54:13 +01:00
Philip Rebohle
8e587af0da
[dxvk] Add method to retrieve per-heap memory stats 2019-12-13 11:54:13 +01:00
Philip Rebohle
4fcf28f4dc
[util] Spoof Nvidia cards for Crysis 3
The game for some reason runs significantly slower in CPU-bound scenarios
when it recognizes an AMD GPU. On the other hand, there seems to be a small
performance hit on an actual Nvidia GPU (GTX 670) in GPU-bound scenarios when
doing this, but on most setups the tradeoff should be worth it.
2019-12-11 23:01:27 +01:00
Philip Rebohle
b9258c0c49
[dxvk] Separate gfx resource hazard checking and barrier emission
Otherwise, when performing three draws with the same storage buffers or
storage images bound, we don't emit a barrier between the 2nd and 3rd
draw since the tracking information gets cleared by the second draw.

Fixes #1262.
2019-12-11 13:45:57 +01:00
Philip Rebohle
52301d12a7
[meta] Support frog builds 2019-12-11 03:21:10 +01:00
Joshua Ashton
f5dd509429 [spirv] Implement constbReplicant 2019-12-11 03:18:39 +01:00
Joshua Ashton
8b6dd0544e [spirv] Implement constvec4b32 2019-12-11 03:18:39 +01:00
Joshua Ashton
028c6198e4 [spirv] Implement opReflect 2019-12-11 03:18:39 +01:00
Joshua Ashton
3ce678b17d [spirv] Implement opExp 2019-12-11 03:18:39 +01:00
Joshua Ashton
fdbfb2c92d [spirv] Implement opInverse, opNormalize and opLength 2019-12-11 03:18:39 +01:00
Joshua Ashton
edf0661994 [spirv] Implement opTranspose 2019-12-11 03:18:39 +01:00
Joshua Ashton
e144c17363 [spirv] Implement constfReplicant helper 2019-12-11 03:18:39 +01:00
Joshua Ashton
7a956ef8c8 [dxvk] Expose ability to retrieve type from DxvkShaderKey 2019-12-11 03:18:39 +01:00
Joshua Ashton
7c8d03b3e1 [dxvk] Add helper to get size of memory/image in bytes 2019-12-11 03:18:39 +01:00
Philip Rebohle
3063d7fc7c [dxvk] Improve DxvkImageView::handle()
Should fix a silly compiler warning and improves code gen, which
is important since this is *the* most frequently called function
in the backend.
2019-12-11 03:18:39 +01:00
Joshua Ashton
d5d6ae4fe1 [dxvk] Add support for implicit samplers 2019-12-11 03:18:39 +01:00
Joshua Ashton
3fa8691033 [util] Implement simplest ratio helper 2019-12-11 03:18:39 +01:00
Joshua Ashton
16dd1249b7 [util] Add alignDown helper 2019-12-11 03:18:39 +01:00
Joshua Ashton
57b2c02528 [util] Implement lzcnt 2019-12-11 03:18:39 +01:00
Joshua Ashton
aef12f7ee3 [util] Add countof helper 2019-12-11 03:18:39 +01:00
Joshua Ashton
d4cad9055c [util] Implement a clamped version of ComObject, for D3D9
Satisfies a quirk in D3D9, solving an issue in SWTFU.
2019-12-11 03:18:39 +01:00
Joshua Ashton
511ed27733 [util] Add GetPrivateRefCount helper 2019-12-11 03:18:39 +01:00
Joshua Ashton
9280818a57 [util] Implement fclamp for fp special cases 2019-12-11 03:18:39 +01:00
Joshua Ashton
ec197b49f9 [util] Implement some basic vector and matrix math utils 2019-12-11 03:18:39 +01:00
Joshua Ashton
d44707e349 [util] Mark clamp & align as constexpr 2019-12-11 03:18:39 +01:00
Joshua Ashton
a3f74b5eda [util] Implement bit cast. 2019-12-11 03:18:39 +01:00
Philip Rebohle
fc91fe1d34
[dxgi] Add fake implementation of DxgiFactory::EnumWarpAdapter
Apparently FIFA 19 needs this.
2019-12-09 23:27:56 +01:00
Philip Rebohle
945a64252d
[d3d11] Determine exclusive fullscreen mode based on swap chain flags 2019-12-05 13:11:06 +01:00
Philip Rebohle
575a267f07
[vulkan] Support exclusive fullscreen control in presenter 2019-12-05 13:10:11 +01:00
Philip Rebohle
9c26fad40e
[vulkan] Add feature bit for exclusive fullscreen control 2019-12-05 13:05:54 +01:00
Philip Rebohle
dc13f48318
[dxvk] Enable VK_EXT_full_screen_exclusive if available
Also pulls in VK_KHR_get_surface_capabilities2 as a dependency.
2019-12-05 13:05:51 +01:00
Philip Rebohle
07c2de62be
[d3d11] Silence some errors about invalid API usage on deferred contexts
Halo MCC apparently spams calls to GetData on deferred contexts, which
is obviously illegal.
2019-12-04 20:18:51 +01:00
Issam Maghni
e6503188d8 Adding compiler to DXVK_HUD 2019-12-04 19:20:10 +01:00
Philip Rebohle
1ae7d4b302
Revert "[dxvk] Don't clear bind mask for unbound UBOs and samplers"
For some bizarre reason, this crashes Star Citizen. The reason might be
that we create multiple pipelines with identical pipelines when using a
state cache, which used to crash some drivers in the past.

Fixes #1266.

This reverts commit 00a064e32b.
2019-12-04 12:24:25 +01:00
Philip Rebohle
0e44bc3068
[meta] Release 1.4.6 2019-12-03 14:52:22 +01:00
Joshua Ashton
c47095a8dc
[meta] Update Vulkan headers 2019-12-03 00:53:16 +01:00
Philip Rebohle
27ea176295
[d3d11] Remove d3d11.strictDivision option 2019-11-30 20:39:32 +01:00
Philip Rebohle
3230cec3f3
[util] Enable d3d11.enableRtOutputNanFixup for FFXIV
And disable strict division. The previous workaround broke radial blur.
2019-11-30 20:39:32 +01:00
Philip Rebohle
3b030d9569
[dxbc] Implement workaround to replace NaN render target outputs by zero 2019-11-30 20:39:32 +01:00
Philip Rebohle
2e51e28849
[spirv] Implement opIsNan 2019-11-30 20:39:28 +01:00
Luis Cáceres
abff2afeaf [dxvk] Fix multiple inclusion of dxvk_platform_exts.h
This fixes build failures when using `--unity on` meson parameter
2019-11-28 17:43:08 +01:00
Philip Rebohle
5fe8d823a0
[dxvk] Disable VK_EXT_conditional_rendering
We're currently not using it, and it prevents sharing RenderDoc captures
between different AMD drivers.
2019-11-28 15:41:02 +01:00
Philip Rebohle
4c0e4fba0c
[dxvk] Don't return a value from updateShaderResources
We're checking the bind point all the time anyway, so the previous
design was inconsistent.
2019-11-28 15:25:12 +01:00
Philip Rebohle
2aa1ff414c
[dxvk] Bind descriptor sets at descriptor update time
Gets rid of one 'if' per draw/dispatch and two functions.
2019-11-28 15:17:42 +01:00
Philip Rebohle
49e7df96ec
[dxbc] Emit a spec constant for uniform buffers
This partially reverts commit fd547b666e.

For some reason, not doing so breaks Overwatch (because of course it does).
2019-11-28 00:55:38 +01:00
Philip Rebohle
00a064e32b
[dxvk] Don't clear bind mask for unbound UBOs and samplers
These don't need special treatment, so we really don't need to
recompile the pipeline if they are not bound.
2019-11-28 00:55:36 +01:00
Joshua Ashton
15ef79be42 [meta] Recommend using new validation layers
VK_LAYER_LUNARG_standard_validation is deprecated and not available in the latest Vulkan SDK, recommend the new VK_LAYER_KHRONOS_validation instead.
2019-11-27 18:30:40 +01:00
Philip Rebohle
32ac8a8d51
[util] Make Fence and Win32Fence final
Otherwise, Josh will keep complaining about this until the end of time.
2019-11-27 12:31:17 +01:00
Philip Rebohle
c9c6b1886b
[d3d11] Synchronize presentation when destroying swap chain
Otherwise, we might destroy the presenter before the CS thread
actually issues the present operation, and the waitForIdle has
not the desired effect.
2019-11-26 23:51:31 +01:00
Philip Rebohle
9ccad0d197
[dxvk] Use waitForIdle when destroying DXVK device
Otherwise, we might call vkDeviceWaitIdle before all command buffers
have been submitted to the Vulkan queue. Found by inspection.
2019-11-26 22:06:13 +01:00