Commit Graph

2048 Commits

Author SHA1 Message Date
Philip Rebohle b1c4cba3dc
[meta] Release 1.0.3 2019-04-15 12:45:55 +02:00
Philip Rebohle 2210489200
[dxbc] Do not emit GS system values if rasterization is disabled
Fixes issue in Star Citizen, which declares a max output vertex count
of 128 in a geometry shader which emits eight components per vertex,
which becomes 12 components in DXVK due to the gl_Position builtin.
This should keep us below the magic limit of 1024 output components.
2019-04-15 12:45:55 +02:00
Philip Rebohle 496b77e51d
[d3d11] Fix hasing of geometry shaders with stream output
The xfb struct contains pointers, but we should hash the
strings instead, otherwise the hash changes between runs.
2019-04-15 12:45:55 +02:00
Philip Rebohle d0ecbe67dc
[hud] Show compiler activity indicator for at least one second
Otherwise this would flicker when shaders are already cached.
2019-04-15 12:45:55 +02:00
Philip Rebohle 8c59be1237
[hud] Add new HUD entry to show shader compiler activity 2019-04-15 09:43:55 +02:00
Philip Rebohle 14b5333fef
[hud] Pass surface size to HUD renderer 2019-04-15 09:43:55 +02:00
Philip Rebohle 3f9afa31e6
[dxvk] Add stat counter for shader compiler activity 2019-04-15 09:43:55 +02:00
Jens Peters fbdbb934a9
[meta] Update README with 'api' option for the HUD 2019-04-15 09:43:55 +02:00
Philip Rebohle b2840fca50
[util] Enable D3D11_MAP_FLAG_DO_NOT_WAIT for Anno 1800
Removes a sync point and almost doubles performance as a result.
2019-04-15 09:43:55 +02:00
Robin 57af67038e
[build] Fix MSVC build with version info 2019-04-15 09:43:55 +02:00
pchome ce0f5deb0f
[build] Use `generator` to produce resource files 2019-04-15 09:43:55 +02:00
pchome 34f51907a7
[build] Fix winelib `wrc` 2019-04-15 09:43:55 +02:00
Sveinar Søpler 09baa3758b
[build] Add version info to compiled DLLs
Fixes #980.
2019-04-15 09:43:55 +02:00
Philip Rebohle d88fdb9d55
[util] Enable constant buffer range check for Dark Souls Remastered ans Grim Dawn 2019-04-15 09:43:55 +02:00
Philip Rebohle 676a95505a
[d3d11] Add option to enable constant buffer range checks 2019-04-15 09:43:55 +02:00
Philip Rebohle 39be2da50a
[dxbc] Implement optional constant buffer range check 2019-04-15 09:43:55 +02:00
Liam Middlebrook b6b33db3c1
[dxvk] Zero-Initialize SpecConstantData
Ensure that specialization constant data passed into the driver is
zero-initialized.

Having the pData field in VkSpecializationInfo be zero-initialized helps
to create more deterministic input to the driver, which is particularly
useful when debugging shader issues.
2019-04-15 09:43:55 +02:00
Chip Davis 48befcccc3
Only try once to recreate surfaces on surface loss. 2019-04-15 09:43:55 +02:00
Chip Davis 759d95ef5d
[vulkan] Don't loop endlessly on a lost surface.
If the surface is lost in a way that can't be recovered by recreating
the surface from the window, the previous change would wind up looping
forever. Just retry 5 times before giving up.
2019-04-15 09:43:55 +02:00
Chip Davis ec4ae4d1f7
[vulkan] Recreate the surface on surface loss.
According to the Vulkan spec:

> Several WSI functions return `VK_ERROR_SURFACE_LOST_KHR` if the
> surface becomes no longer available. After such an error, the surface
> (and any child swapchain, if one exists) **should** be destroyed, as
> there is no way to restore them to a not-lost state.

So if we get this error, we need to recreate the surface in addition to
the swapchain.
2019-04-15 09:43:55 +02:00
Philip Rebohle b7c4190896
[meta] Release 1.0.2 2019-04-01 18:25:29 +02:00
Philip Rebohle d74b55b95a
[dxvk] Set empty scissor rect when the app requests empty viewport
Since we cannot set the viewport size to zero, we should set an
empty scissor rect so that rasterization is still effectively
disabled for the given viewport index.

Fixes #813, #957.
2019-04-01 18:24:32 +02:00
Marin Baron 44b79b5dc6
[util] Enable deferred surface creation for "Dissidia Final Fantasy NT Free Edition".
Avoid white screen, "D3D11Device: No such vertex shader semantic: COLOR0"...
https://www.reddit.com/r/archlinux/comments/b7e38x/protondxvk_dissidia_nt/
2019-04-01 18:24:32 +02:00
Philip Rebohle 1ab28bdc19
[util] Enable deferred surface creation for Nioh
See discussion in #284.
2019-04-01 18:24:32 +02:00
Chip Davis bfeec0e022
[dxgi] Use a recursive mutex.
Some games, like Final Fantasy XIV, call `SetFullscreenState()` again
after the window is resized. When the resize itself was triggered by a
`SetFullscreenState()` call, this will cause us to re-enter the mutex.
2019-04-01 18:24:29 +02:00
Philip Rebohle 7fa2fb5188
[meta] Release 1.0.1 2019-03-14 19:07:18 +01:00
Philip Rebohle 19f82826bb
[d3d11] Don't use presentation fence on ANV
Should hopefully fix stuttering issues introduced with 1.0.
2019-03-14 18:50:33 +01:00
Philip Rebohle 1656860486
[dxgi] Remove obsolete global monitor helper functions 2019-03-14 18:26:39 +01:00
Philip Rebohle 5b72e84726
[dxgi] Use IDXGIVkMonitorInfo in DxgiSwapChain 2019-03-14 18:26:39 +01:00
Philip Rebohle 50347e1256
[dxgi] Use IDXGIVkMonitorInfo in DxgiOutput 2019-03-14 18:26:39 +01:00
Philip Rebohle 7d5b5f288c
[dxgi] Implement IDXGIVkMonitorInfo for DxgiFactory 2019-03-14 18:26:39 +01:00
Philip Rebohle cfdac13ea5
[dxgi] Add new COM interface for per-monitor data 2019-03-14 18:26:37 +01:00
Philip Rebohle f272071d8d
[dxvk] Don't enforce HOST_CACHED flag when allocating memory
The better fix would be to support non-coherent memory properly,
but this will have to do for now. Fixes #947.
2019-03-14 16:47:17 +01:00
Philip Rebohle c35af973bb
[util] Disable NvAPI hack for Star Wars Battlefront 2015
Fixes #968.
2019-03-14 16:33:35 +01:00
Philip Rebohle 2d39be4e72
[d3d11] Check image block alignment in UpdateSubresource1
Fixes validation errors in World of Warcraft, which for some reason
tries to update individual pixels of block-compressed textures.
See #964.
2019-03-14 01:11:39 +01:00
Philip Rebohle 833c433556
[util] Enable relaxed barriers for Devil May Cry 5
Same engine as RE2, same ~10% performance improvement.
2019-03-11 18:36:09 +01:00
Philip Rebohle 0326258829 [dxbc] Use SDiv instead of ShiftRightLogical for index calc on Nvidia
Reportedly fixes Resident Evil 2 and Devil May Cry 5 on Nvidia.
2019-03-09 19:59:56 +01:00
Philip Rebohle a40d8d49ea
[dxvk] Only enable xfb subpass barrier if feature is enabled
Silences validation errors when running FL9_x applications, or
a driver which does not support VK_EXT_transform_feedback.
2019-03-02 19:56:01 +01:00
Philip Rebohle 4fc96e60c5
[d3d11] Reimplment GetEnabledShaderStages using getShaderPipelineStages
They do the same thing anyway.
2019-03-02 19:56:01 +01:00
Philip Rebohle d9edb16b75
[dxvk] Use getShaderPipelineStages for dummy resource creation
Fixes some validation errors for FL10_x and FL9_x applications.
2019-03-02 19:56:01 +01:00
Philip Rebohle 2a6d4fa2ba
[dxvk] Implement DxvkDevice::getShaderPipelineStages 2019-03-02 19:56:00 +01:00
Joshua Ashton d01110259c [d3d11, d3d10] Init returnptrs for CreateDevice funcs. 2019-02-27 23:17:08 +01:00
Joshua Ashton 995949a9f9 [d3d10] Fix and cleanup S_FALSE handling 2019-02-27 22:01:04 +01:00
Joshua Ashton 62a833b528 [dxgi] Correct return values for CreateDXGIFactory[1/2] 2019-02-27 22:01:04 +01:00
Joshua Ashton ccf24db428 [d3d10] Fix null pBlendStateDesc being dereferenced on def. desc 2019-02-27 22:01:04 +01:00
Joshua Ashton 2454041903 [d3d10] nullptr checks for resource creation 2019-02-27 22:01:04 +01:00
Joshua Ashton 28df1e0825 [d3d11] nullptr check descs & fix return values 2019-02-27 22:01:04 +01:00
Trevonn 7118685901 Fix uninstall command example 2019-02-26 07:29:48 +01:00
Philip Rebohle 10140f40ca
[dxvk] Release 1.0 2019-02-25 20:26:50 +01:00
Philip Rebohle c53c26a4e6
[meta] Update README 2019-02-25 18:59:26 +01:00