Philip Rebohle
65ffa4122d
[hud] Add option to show DXVK version
...
General idea based on PR #490 . Closes #488 .
2018-07-11 17:40:07 +02:00
Philip Rebohle
2fce0a7685
[build] Extract version number from git if available
...
Logs the version number and game executable name as well.
2018-07-11 17:39:00 +02:00
Philip Rebohle
cc4b53db43
[dxvk] Require VK_KHR_get_physical_device_properties2
...
We have to enable this extension in order to be able to use
VK_EXT_vertex_attribute_divisor without validation errors.
2018-07-11 15:51:43 +02:00
Philip Rebohle
22bb4391ba
[vr] Load OpenVR API DLL if necessary
...
Some games initialize the DXGI factory and D3D11 device even before
loading the OpenVR DLL, so we have to be even more invasive.
2018-07-11 15:31:35 +02:00
Philip Rebohle
67fe452580
[dxvk] Track lifetime of framebuffer attachments
...
We should mark images that are being used for rendering as
in-use by the GPU when binding the corresponding framebuffer.
2018-07-10 04:47:50 +02:00
Philip Rebohle
87b5161b2a
[d3d11] Reset implicit flush timer only when actually flushing
...
In some situations, calling Flush without any commands that
could be flushed would unnecessarily prevent the implicit
flush heuristic from kicking in properly.
2018-07-09 20:31:54 +02:00
Philip Rebohle
43cbe42ea8
[dxvk] Pick memory chunk size dynamically
...
Reduces the number of Vulkan memory allocations, and
can lead to lower CPU overhead in certain situations.
Improves Shadow Warrior 2 by ~2% on RADV.
2018-07-09 19:18:39 +02:00
Philip Rebohle
2aa6b04fd9
[dxvk] Fix tzcnt return value when source value is 0
2018-07-09 13:32:43 +02:00
Philip Rebohle
2caf346fbb
[dxvk] Add access flags to external subpass dependencies again
...
Apparently we need those to make sure that the initial layout
transition itself is valid. We don't need to add shader access
though, since we cannot access attachments inside shaders.
2018-07-09 11:23:28 +02:00
Philip Rebohle
b789187df5
[dxvk] Fixed external subpass dependencies
...
Fixes validation errors and some unnecessary cruft. We don't need
visibility operations in the external-to-renderpass dependency
because that part is handled by regular barriers, an execution
dependency is enough (but still required to handle write-after-read.
2018-07-09 10:08:12 +02:00
Philip Rebohle
c8c6f24b63
[d3d11] Fix log spam when an application uses DiscardView
...
We don't support this method, but we should only issue the warning
once to prevent poor performance.
2018-07-08 15:53:30 +02:00
Philip Rebohle
4d1a70bd89
[dxvk] Fix deferred depth-stencil clears
...
If a game clears the depth and stencil aspects of a depth-stencil
buffer separately, we must not override the load op and clear value
of the previously set aspect. Fixes a rendering issue in Hitman
Absolution.
2018-07-06 15:23:59 +02:00
Philip Rebohle
974db9712b
[dxvk] Remove clear rect parameter from clearRenderTarget
...
With deferred clears and render target-based clears, this was
not properly supported anyway.
2018-07-06 15:01:37 +02:00
Philip Rebohle
04d7f2896a
[dxvk] Disable image format list
...
Causes rendering issues in Far Cry 4.
2018-07-05 22:49:30 +02:00
Philip Rebohle
357a75eb88
[meta] Add RELEASE file containing the latest binary version number
2018-07-04 16:49:18 +02:00
Philip Rebohle
63af141383
[d3d11] Set proper view format list for typed UAVs
...
Typed UAVs are mutable, but we only need them to be compatible to
their typed format and the bit-compatible integer format used for
clears.
2018-07-03 13:31:22 +02:00
Philip Rebohle
cbf4772973
[d3d11] Pass image format family to the backend
2018-07-03 12:44:56 +02:00
Philip Rebohle
9b78738d2c
[dxvk] Pass image format list to the driver
...
Allows drivers to enable DCC in some situations.
2018-07-03 12:44:01 +02:00
Philip Rebohle
c1334e7601
[dxvk] Require VK_KHR_image_format_list
...
All supported drivers support this extension, so we don't make it optional.
2018-07-03 12:43:32 +02:00
Philip Rebohle
9f00e14ca6
[dxgi] Add method to query the family of a given format
2018-07-03 12:42:17 +02:00
Philip Rebohle
4d267a57a7
[dxgi] Added format family list
...
Render target views and shader resource views can only be created
with a format that is within the same format family as the image
format. For UAVs, the restrictions are relaxed.
2018-07-03 12:41:10 +02:00
Philip Rebohle
3bb94f1afb
Merge branch 'vr-init'
2018-07-02 20:12:57 +02:00
Philip Rebohle
4052cad3ff
[dxgi] Fix 'auto' declaration in FindClosestMatchingMode
...
Hopefully fixes an incorrect GCC warning for some people.
2018-07-02 09:19:27 +02:00
Philip Rebohle
a196451400
[dxbc] Respect number of input/output components
...
Fixes issues with geometry shaders exceeding output component limits.
2018-07-01 17:45:50 +02:00
Philip Rebohle
2bce1491c6
WIP: Typed shader interfaces
2018-07-01 12:44:37 +02:00
Philip Rebohle
092331232b
[vr] Initialize and shut down OpenVR if necessary
2018-06-30 18:49:29 +02:00
Philip Rebohle
cf6e3c1fbf
[vr] Refactor compositor initialization
2018-06-30 16:51:20 +02:00
N00byKing
26d7059579
[dxvk] Remove unnecessary Parameter ( #465 )
2018-06-29 21:37:25 +02:00
Philip Rebohle
bc1384b7b4
[d3d11] Issue warning when using a command list more than once
...
The way buffers are invalidated can cause issues when the same command
list is submitted multiple times. Games don't seem to need this right
now.
2018-06-29 12:44:52 +02:00
Philip Rebohle
4520b1ca8f
[d3d11] Fix usage and access flags for multisampled images
...
Meta-resolve operations will use the image in a fragment shader.
2018-06-28 16:47:54 +02:00
Philip Rebohle
db2b6e1219
[dxvk] Optimize image layout transitions
...
This should reduce unnecessary execution dependencies when
transitioning image layouts before executing image copies.
2018-06-28 13:52:54 +02:00
Philip Rebohle
8c65203ac2
[dxvk] Fix potential layout transition issues with depth-stencil images
...
Some operations can operate on only one of the two aspects
of a depth-stencil image. This fixes two possible issues:
- Image memory barriers must be applied to all image aspects
- VK_IMAGE_LAYOUT_UNDEFINED is no longer used as a source layout
if the operation requiring the transition only uses one aspect
2018-06-28 12:44:57 +02:00
Philip Rebohle
c370eea948
[dxbc] Decorate untyped write-only UAVs as NonReadable
2018-06-28 03:42:11 +02:00
Philip Rebohle
04bc13929f
[hud] Added some missing documentation
2018-06-28 01:18:16 +02:00
Philip Rebohle
832b3a9dba
[hud] Render HUD directly to swap chain image
...
Saves a fullscreen render target, render pass, and a queue submission.
2018-06-28 01:00:07 +02:00
Philip Rebohle
42a676bbdb
[d3d11] Tweak implicit flush limits
...
We're going to flush more often in CPU-limited scenarios, but these
new values are reasonable especially in games which submit large
amounts of GPU work at once, and should help reduce rendering latency.
Improves GPU utilization and frame rates in Hellblade by up to 10%.
2018-06-27 20:25:33 +02:00
Philip Rebohle
9fee253d09
[d3d11] Add more implicit flush points
...
All these methods will implicitly spill the active render pass and
are typically not called very often, so we can try to keep the GPU
busy.
2018-06-27 18:34:17 +02:00
Philip Rebohle
6cc303c5ef
[dxbc] Implement SV_ViewportID as pixel shader input
2018-06-27 12:02:54 +02:00
Philip Rebohle
0e6e985210
[vr] Maintain global extension sets
...
Preserves the per-instance and per-adapter extension sets across
multiple Vulkan instances. Works around initialization order issues
with Unity-based VR apps.
2018-06-26 15:56:13 +02:00
Philip Rebohle
eb39cf4b11
[dxvk] Lock queue around acquireNextImage
2018-06-26 15:33:43 +02:00
Philip Rebohle
9cae049b53
[dxvk] Move adapter list to the DXVK instance
2018-06-26 12:33:26 +02:00
Philip Rebohle
3572775635
[build] Disable unity builds
...
Apparently Unity builds are much slower than regular builds
for some reason. Closes #386 .
2018-06-26 10:22:38 +02:00
Philip Rebohle
4f28d57352
[dxvk] Remove unused rasterizer discard state flag
2018-06-25 16:56:52 +02:00
Philip Rebohle
060cd1d87c
[d3d11] Do not use MUTABLE_FORMAT_BIT for strictly typed formats
...
This used to cause issues in the past, but apparently we can safely
enable this optimization now. Improves performance slightly on RADV.
2018-06-24 17:01:05 +02:00
ZeroFault
b62ccfe7a3
[dxvk] Implement dedicated allocation ( #448 )
...
Yields significant performance improvements on some Nvidia GPUs.
2018-06-24 10:55:42 +02:00
Philip Rebohle
845c78fd20
[dxbc] Consider stream index in signature entry lookup
2018-06-23 20:13:00 +02:00
Philip Rebohle
a6c2080156
[tests] Fix compiler error with the DxbcModuleInfo struct
2018-06-23 18:28:22 +02:00
Philip Rebohle
dd51437584
[dxbc] Implement EmitThenCut / EmitThenCutStream
2018-06-23 17:34:50 +02:00
Philip Rebohle
07ef25fec5
[dxbc] Parse OSG5 chunk for Shader Model 5 geometry shaders
2018-06-23 17:25:03 +02:00
Philip Rebohle
102591369e
[dxbc] Add DxbcModuleInfo struct
...
This will be required in the future to pass data from the
application to the shader compiler.
2018-06-23 17:14:35 +02:00