Philip Rebohle
5d49644cdc
[dxgi] Hack: Report Nvidia cards as AMD cards by default
...
Prevents UE4 games from repeatedly trying to load nvapi.dll
on a performance-critical code path.
2018-11-20 13:15:39 +01:00
Philip Rebohle
bfb7e54218
[d3d11] Rename dcMapSpeedHack to dcSingleUseMode
2018-11-20 11:37:48 +01:00
Philip Rebohle
ad5688764c
[d3d11] Use single-use submission mode for CS chunks where possible
2018-11-20 10:44:04 +01:00
Philip Rebohle
c61200d35f
[dxvk] Introduce single-use mode for CS chunks
...
This allows us to reset the CS chunk immediately while executing it,
which can reduce the overhead of the reset operation and may lead to
resources being released earlier.
2018-11-20 10:35:23 +01:00
Philip Rebohle
e744117042
[dxvk] Patch fragment shader for dual-source blending
2018-11-19 17:07:05 +01:00
Philip Rebohle
f69c5e4c4e
[dxbc] Emit Index decoration for pixel shader outputs
...
Simplifies shader patching when dual-source blending is used.
2018-11-19 16:57:11 +01:00
Philip Rebohle
3e3c31f365
[spirv] Add support for Index decoration
...
Needed for dual-source blending
2018-11-19 16:57:08 +01:00
Philip Rebohle
5aad615aef
[dxvk] Unbind graphics pipeline when spilling render pass
...
Otherwise we may in some very rare cases continue using an incorrect
pipeline in subsequent render passes if the same shaders are used for
drawing.
2018-11-19 01:35:41 +01:00
Philip Rebohle
85f0fe729c
[dxvk] Move DxvkEventTracker to dxvk_event.{h,cpp}
...
The upcoming new event and query classes will follow this design.
Reduces the number of files around these small classes.
2018-11-17 01:17:03 +01:00
Andrew Eikum
aea4162198
[dxgi] MultiByteToWideChar counts length in characters
2018-11-16 19:53:37 +01:00
Philip Rebohle
e4d3357e55
[dxgi] Query window size before creating presenter
...
Otherwise we may pass a size of zero to the presenter.
2018-11-16 15:03:09 +01:00
Derek Lesho
66bcc4b3d8
Use std::string for util::getEnvVar input
...
This allows cleaner code when implementing DXVK as a native library
2018-11-16 06:43:45 +01:00
Philip Rebohle
037f2038f0
[meta] Update README
2018-11-15 19:31:25 +01:00
Philip Rebohle
c25483e856
[dxgi] Implement IDXGISwapChain3
...
- Stub IDXGISwapChain3::ResizeBuffers1
2018-11-15 18:02:27 +01:00
Philip Rebohle
81bb561c75
[dxgi] Implement IDXGIAdapter3
2018-11-15 18:02:21 +01:00
Philip Rebohle
171251bc83
[dxgi] Implement IDXGIFactory4
...
Do not support WARP adapters for the moment.
2018-11-15 17:08:36 +01:00
Philip Rebohle
0b7e114cb0
[dxgi] Implement IDXGIDevice3
2018-11-15 17:08:36 +01:00
Philip Rebohle
23ac9b5277
[dxgi] Implement IDXGISwapChain2 stubs
...
Most of the additions are stubs for now, but we should be
able to implement most of the functionality at a later time.
None of the backends implement this yet, but this should be
relatively easy to do.
2018-11-15 17:08:35 +01:00
Philip Rebohle
a849ffc56c
[dxgi] Implement IDXGIOutput3
2018-11-15 17:08:35 +01:00
Philip Rebohle
9af842801c
[dxgi] Implement IDXGIFactory3
2018-11-15 17:08:35 +01:00
Philip Rebohle
f03d87b918
[dxgi] Implement IDXGIOutput1
...
Required for DXGI 1.2.
2018-11-15 17:08:35 +01:00
Philip Rebohle
f7b2194e0b
[dxgi] Include DXGI 1.4 headers
2018-11-15 17:08:27 +01:00
Philip Rebohle
1af96347e1
[dxvk] Forward memory allocation statistics to the adapter
2018-11-15 17:08:05 +01:00
Philip Rebohle
d49de734b7
[dxvk] Set low thread priority for pipeline compiler threads
...
This currently does not have any effect when using regular wine, but
if it ever gets supported then these background jobs should have less
of an influence on the game's performance when they kick in.
2018-11-15 12:19:24 +01:00
Philip Rebohle
305168d2bb
[util] Add method to set thread priority
2018-11-15 12:17:18 +01:00
Philip Rebohle
6adf534589
[dxvk] Add option to set number of pipeline compiler threads
2018-11-15 09:24:11 +01:00
Philip Rebohle
4db5c21ec5
[dxvk] Use ticket lock to synchronize access to query objects
...
Lowers overhead in the uncontested case compared to std::mutex, and
prevents the main rendering thread from blocking updates for too long.
2018-11-13 17:05:37 +01:00
Philip Rebohle
63d42073b8
[util] Add ticket lock implementation
2018-11-13 17:05:06 +01:00
Philip Rebohle
1724d51079
[dxgi] Refactor presenter creation
...
This change is needed to support non-D3D11 presenters in our DXGI code.
2018-11-12 11:39:34 +01:00
Philip Rebohle
8d2f8fca64
[meta] Release v0.92
2018-11-11 16:16:01 +01:00
Philip Rebohle
6f28ce5809
[dxvk] Do not require GL_EXT_samplerless_texture_functions
...
Ubuntu ships a version of the GLSL compiler that does not support
this extension yet, so building DXVK fails on those systems.
Closes #760 .
2018-11-11 15:48:07 +01:00
Philip Rebohle
a971370524
[dxbc] Implement Dmovc instruction
...
Fixes some mandelbrot demo mentioned in #216 .
2018-11-10 23:27:56 +01:00
Philip Rebohle
0cfa5b16d3
[d3d11] Support R11G11B10 format in ClearUnorderedAccessViewUint
...
Silences an error message in Shadow of the Tomb Raider. Does not have
any consequences for this game because it initializes the view to 0.
2018-11-10 18:48:44 +01:00
Philip Rebohle
05856e836b
[d3d11] Don't enable StorageImageReadWithoutFormat feature for FL11_0
...
We don't really need this, although it might be useful in the future.
2018-11-10 11:34:23 +01:00
Philip Rebohle
504de3994b
[dxvk] Inline DxvkBufferView::updateView method
...
Most of the time the condition is false, so we should help
the compiler where we can to optimize for the common case.
2018-11-09 11:40:44 +01:00
Philip Rebohle
bd03225c14
[dxbc] Refactor DxbcOptions
...
A bit mask isn't good enough going forward, and we also don't
need application-specific options for now.
2018-11-09 08:41:02 +01:00
Philip Rebohle
ab3ba776e0
[d3d11] Do not re-upload mapped image if it was mapped for reading
2018-11-08 18:51:53 +01:00
Philip Rebohle
4d103aad5d
[d3d11] Allow mapping depth-stencil images for reading
...
This may be needed for The Surge and Lords of the Fallen.
2018-11-08 18:51:47 +01:00
Philip Rebohle
f483bc9633
[d3d11] Add usage flag for meta-pack operations if necessary
...
- Fix depth-stencil format list
2018-11-08 18:51:43 +01:00
Philip Rebohle
81a5e2fa0c
[d3d11] Add helper to find exact mapping for depth-stencil formats
...
This is necessary in situations when we need to get the Vulkan format
that corresponds to the DXGI format rather than the remapped one.
2018-11-08 18:51:43 +01:00
Philip Rebohle
2b02e692c3
[dxvk] Implement DxvkContext::copyDepthStencilImageToPackedBuffer
2018-11-08 18:10:56 +01:00
Philip Rebohle
d7d1db1b8b
[dxvk] Add convenience method to retrieve image descriptor
2018-11-08 18:10:56 +01:00
Philip Rebohle
fc8f49899a
[dxvk] Create instance of depth-stencil packing objects
2018-11-08 18:10:56 +01:00
Philip Rebohle
119c06e453
[dxvk] Add pipelines needed for depth-stencil packing
...
- Add method to retrieve meta pack pipeline for a given format
- Add descriptor update template
2018-11-08 18:10:49 +01:00
Philip Rebohle
863f2d07fd
[dxvk] Add compute shaders for depth-stencil packing
2018-11-08 18:10:49 +01:00
Philip Rebohle
0dbac29729
[dxvk] Add packed size to depth-stencil formats
2018-11-08 18:10:49 +01:00
Philip Rebohle
1c98b0f6d3
[tests] Add depth-stencil readback test
...
- Add missing unmap call
2018-11-08 18:10:43 +01:00
Philip Rebohle
70b14f9dbf
[dxvk] Report app name to the Vulkan implementation
...
Because why not?
2018-11-07 21:54:00 +01:00
Philip Rebohle
f32aff29fa
[d3d11] Clear compressed images if they do not get initialized
...
This probably makes Quantum Break run even worse, but I don't really
care at this point. Fixes #744 .
2018-11-07 18:41:07 +01:00
Philip Rebohle
7ed9f36769
[dxvk] Add clearCompressedColorImage method
...
Since we can't use regular clears for compressed
formats, we need a new method to zero image memory.
2018-11-07 18:31:01 +01:00