Commit Graph

2848 Commits

Author SHA1 Message Date
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
Philip Rebohle b2eeecd624
[meta] Update default config file 2019-11-26 17:27:05 +01:00
Philip Rebohle 7446d3c58a
[dxgi] Don't allow changing the FRAME_LATENCY_WAITABLE_OBJECT flag 2019-11-26 16:54:52 +01:00
Philip Rebohle 9785fba66e
[dxgi] Implement IDXGISwapChain2::GetFrameLatencyWaitableObject 2019-11-26 16:54:52 +01:00
Philip Rebohle 65cc8c2b31
[d3d11] Create frame latency event for swap chain
Needed in order to support the DXGI 1.3 frame latency API.
2019-11-26 16:54:52 +01:00
Philip Rebohle 6ebf3e1656
[util] Implement fence capable of signaling win32 events 2019-11-26 16:11:46 +01:00
Philip Rebohle ef37b5fed6
[dxgi] Implement IDXGISwapChain2::SetFrameLatency 2019-11-26 16:11:46 +01:00
Philip Rebohle 2d1fb52b2f
[util] Reimplement Signal
The new implementation is more akin to D3D12 fences or timeline
semaphores, and should make implementing similar concepts easier.
2019-11-26 16:11:46 +01:00
Philip Rebohle 69bad7bf8c
[d3d11] Move frame latency handling into D3D11SwapChain 2019-11-26 16:11:46 +01:00