Commit Graph

2594 Commits

Author SHA1 Message Date
Philip Rebohle 6b5d01c934
[meta] Release 1.4.1 2019-09-27 23:03:23 +02:00
Philip Rebohle 2e6da26ff0
[dxvk] Spoof Nvidia GPU for HITMAN 2
This game requires a functioning AGS implementation when it detects
an AMD GPU and complains about missing D3D11 support otherwise.
2019-09-26 19:27:19 +02:00
Philip Rebohle a920a7275b
[dxvk] Eliminate some redundant state checks 2019-09-26 14:25:56 +02:00
Philip Rebohle 7cdc402a58
[dxvk] Introduce finalizeDraw
May improve code gen by reducing function call overhead, in a
similar way as the duplicated checks in commitGraphicsState do.
2019-09-26 01:31:51 +02:00
Philip Rebohle 187748e4d3
[d3d11] Add a comment explaining ID3D11Predicate/ID3D11Query hack 2019-09-25 22:18:08 +02:00
Philip Rebohle 53fe3423e2
[d3d11] Fix GetPredication 2019-09-25 20:55:43 +02:00
Philip Rebohle b6cf518962
Revert "[dxbc] Always decorate SV_POSITION as invariant"
This reverts commit 5ee790a4a3.

Breaks Shadow of the Tomb Raider on Nvidia for unknown reasons.
2019-09-24 23:01:36 +02:00
Philip Rebohle 5ee790a4a3
[dxbc] Always decorate SV_POSITION as invariant
Apparently fixes Z-Fighting in Saints Row IV on Nvidia.
2019-09-24 22:19:43 +02:00
Philip Rebohle 51f1d7725c
[dxvk] Store context flags as a 32-bit integer
Might improve code generation for 32-bit builds. We currently
have 31 flags and don't expect any new ones to be added.
2019-09-23 23:34:04 +02:00
Philip Rebohle 8f6df2b7fb
[d3d10] Add some null pointer checks when dealing with resources
Also, fix some more awkward formatting.
2019-09-23 21:59:02 +02:00
Philip Rebohle cb60211ce0
[d3d10] Fix some awkward formatting 2019-09-23 21:47:30 +02:00
Philip Rebohle f498e742ec
[d3d11] Handle D3D_PRIMITIVE_TOPOLOGY_UNDEFINED correctly
Luckily, all known cases where games use UNDEFINED topology fail
validation elsewhere due to missing vertex shaders, but we should
handle this correctly anyway.
2019-09-23 15:20:53 +02:00
Philip Rebohle e8055f81df
[dxvk] Validate primitive topology in pipeline state 2019-09-23 15:19:46 +02:00
Philip Rebohle f38cfd592e
[dbxc] Actually fix callc implementation
Yeah maybe we should close our blocks properly. There seems to be
no way to generate a callc instruction with fxc so this is untested.
2019-09-22 22:36:42 +02:00
Philip Rebohle 94ce76da6b
[dxbc] Implement label, call and callc instructions
Fixes #1200.
2019-09-22 22:28:58 +02:00
Philip Rebohle 1fa8887c47
[d3d11] Return device lost errors in Present if necessary 2019-09-22 19:20:53 +02:00
Philip Rebohle 11b7b1f1a5
[d3d11] Implement GetDeviceRemovedReason 2019-09-22 19:07:48 +02:00
Philip Rebohle 2e9a836adb
[dxvk] Handle device lost errors on command submission 2019-09-22 19:06:53 +02:00
Philip Rebohle 92d1cf8ae0
[d3d11] Fix CheckFeatureSupport formatting and return code 2019-09-22 15:01:49 +02:00
Entryhazard 252d71e55e Retrieve the function pointer once (#1198) 2019-09-22 10:11:17 +02:00
Philip Rebohle f37d4b58b6
[dxvk] Explicitly compare resource use count to zero
Fixes MSVC compiler warnings.
2019-09-21 19:04:23 +02:00
Philip Rebohle 21b2a9a078
[meta] Release 1.4 2019-09-21 16:15:37 +02:00
Philip Rebohle a74eceaf46
[dxvk] Bump state cache version to v6 2019-09-21 14:11:51 +02:00
Philip Rebohle e253183bc2
[dxvk] Apply spec constants to compute shaders as well 2019-09-21 14:11:51 +02:00
Philip Rebohle e926ceb9cc
[dxvk] Only time pipeline compile times if requested
Avoids some unnecessary calls to high_resolution_clock::now().
2019-09-21 13:10:09 +02:00
Philip Rebohle 6ecb74d2c0
[dxvk] Check if xfb buffers have actually changed on binding
We should avoid redundant render pass spilling at all costs.
This affects all games using deferred contexts for rendering
due to their implicit use of ClearState and RestoreState.
2019-09-21 05:13:05 +02:00
Philip Rebohle 1347aeba33
[dxvk] Use separate counters for read/write resource usage
It is not unrealistic at all to overflow the 18-bit and 14-bit
counters in modern games, so just use two 32-bit counters instead.
Avoid 64-bit atomics due to poor performance on 32-bit builts.
2019-09-21 02:45:23 +02:00
Philip Rebohle 71e74f1810
[d3d11] Disable DO_NOT_WAIT for Overwatch
Because of course this game breaks for some people with it enabled.
2019-09-21 01:44:38 +02:00
Philip Rebohle 7514aa1ec8
[d3d11] Implement IDXGIDevice4 2019-09-20 18:06:34 +02:00
Philip Rebohle 32410a4f2b
[dxgi] Implement IDXGISwapChain4 2019-09-20 18:06:34 +02:00
Philip Rebohle 5cb7f26bb7
[dxgi] Implement IDXGIOutput5 2019-09-20 18:06:34 +02:00
Philip Rebohle 3e8a6ec463
[dxgi] Implement IDXGIFactory5 2019-09-20 18:06:34 +02:00
Philip Rebohle 9ed980a962
[dxgi] Include DXGI 1.5 headers 2019-09-20 18:06:34 +02:00
marcin mikołajczak 9941769237 [util] Update comment for FIFA 19+ workaround (#1197) 2019-09-20 16:20:26 +02:00
Philip Rebohle 7e7609cac0
Revert "[d3d11] Don't create linearly tiled compressed images"
This reverts commit b8888ffe6a.

This is no longer beneficial since initialization of a
linear image does not stall Map anymore.
2019-09-20 05:59:54 +02:00
Philip Rebohle e82c87dc52
[d3d11] Implement GetDC / ReleaseDC 2019-09-20 01:44:18 +02:00
Philip Rebohle 028633138a
[d3d11] Implement GDI surface 2019-09-20 01:44:18 +02:00
Joshua Ashton 014870b1ff
[util] Add helpers for GDI/DDI interop 2019-09-20 01:44:18 +02:00
Philip Rebohle c9a0f06ff4
[d3d11] Enable allowMapFlagNoWait by default
We still keep the option around so that in case of regressions,
users can check if disabling this option fixes their issue.
2019-09-20 01:44:02 +02:00
Philip Rebohle e9fcf64a8c
[dxvk] Only wait for writes when mapping with D3D11_MAP_READ 2019-09-20 01:44:02 +02:00
Philip Rebohle 5b5927dd41
[dxvk] Implement read-write tracking for resources 2019-09-20 01:44:01 +02:00
Philip Rebohle 63183141bc
[dxvk] Implement read/write tracking in lifetime tracker
This way we will be able to more accurately determine how a
resource is going to be used by the GPU, and we can also cut
unnecessary atomic operations for non-resource objects.
2019-09-20 01:44:01 +02:00
Philip Rebohle 136ad3e4c9
[d3d11] Write to image memory directly in InitHostVisibleTexture
Avoids performing a potentially expensive copy or clear operation
on the GPU.
2019-09-20 01:44:01 +02:00
Philip Rebohle ae4a5232aa
[d3d11] Use VK_IMAGE_LAYOUT_PREINITIALIZED for mapped images
This way we can directly write image data directly to the image
without having to do it on the GPU.
2019-09-20 01:44:01 +02:00
Philip Rebohle eb0a492f51
[dxvk] Add initial layout to initImage
Allows us to initialize an image from the PREINITIALIZED layout.
2019-09-20 01:44:01 +02:00
Philip Rebohle 4570b34456
[dxvk] Add initial layout to image create info 2019-09-20 01:44:01 +02:00
Philip Rebohle 51c6eb5cdb
[util] Enable FIFA 19 workaround for FIFA 20 as well
Same procedure as every year.
2019-09-20 00:50:01 +02:00
Philip Rebohle 48417c7d19
[d3d11] Implement DiscardView1
Basically just behave like DiscardView if no rects are passed to
the function, otherwise ignore the call since we can't discard
individual rectangles in any meaningful way.
2019-09-19 13:56:50 +02:00
Philip Rebohle 0338b70596
[dxgi] Implement IDXGIVkInteropAdapter for IDXGIAdapter 2019-09-18 14:53:44 +02:00
Philip Rebohle 9af8387e4e
[dxgi] Define IDXGIVkInteropAdapter interface
Can be used to pull the Vulkan instance and physical device from
a DXGI adapter.
2019-09-18 14:53:44 +02:00