Philip Rebohle
af62d423b2
[dxbc] Add per-device option for deferred kills
2018-05-26 17:08:39 +02:00
Philip Rebohle
ec5572aa69
[dxbc] Scan for discard and derivative instructions
2018-05-26 17:08:08 +02:00
Philip Rebohle
667616bc39
[dxvk] Remove unnecessary include
2018-05-26 14:56:36 +02:00
Philip Rebohle
a2d9874b26
[dxvk] Use new spec constant structure for pipeline compilation
2018-05-26 14:54:29 +02:00
Philip Rebohle
d79f39b963
[dxbc] Implement sampleinfo instruction for rasterizer
2018-05-26 14:54:05 +02:00
Philip Rebohle
4ae15f3edf
[dxvk] Add global specialization constant data structures
...
Implements a unified way of defining specialization constants
for graphics and compute pipelines which can be easily extended
in the future.
2018-05-26 14:50:00 +02:00
Philip Rebohle
27816b470a
[spirv] Add support for 32-bit specialization constants
2018-05-26 13:52:33 +02:00
Philip Rebohle
b78130defd
[d3d11] Overwatch: Fake success in CreateGeometryShaderWithStreamOutput
2018-05-25 23:53:34 +02:00
Philip Rebohle
a0e0ba1cc8
[dxvk] Align length when clearing entire buffer
...
Buffer slices in DXVK are always aligned to at least
256 bytes, so this is safe. Fixes a regression leading
to GPU hangs on RADV.
2018-05-25 21:02:15 +02:00
Philip Rebohle
b30e53fa0d
[dxvk] Track image (rather than the view) when generating mip maps
2018-05-25 19:15:14 +02:00
Philip Rebohle
84a62f795f
Merge branch 'meta-mipgen'
2018-05-25 17:46:41 +02:00
Philip Rebohle
4b37590e14
[dxvk] Use new mip map generator
2018-05-25 17:45:41 +02:00
Philip Rebohle
19b6a16173
[dxvk] Add new mip map generator
...
The current approach uses Vulkan blits, which does not
work if the image view in question has a different format
than the image itself.
2018-05-25 17:44:50 +02:00
Philip Rebohle
7ec93debf1
[dxvk] Add shaders for mip map generation
2018-05-25 17:44:34 +02:00
Philip Rebohle
49bda46a37
[d3d11] Validate and correct scissor rects
...
Fixes Vulkan validation errors in Frostpunk and more closely
emulates Windows behaviour.
2018-05-25 00:08:28 +02:00
Philip Rebohle
a9c0f9e7c2
[general] Added DXUP reference to README
2018-05-24 23:08:16 +02:00
Philip Rebohle
254676049a
[dxvk] Added convenience equal checker for unordered maps
2018-05-24 20:18:37 +02:00
Philip Rebohle
2f454e73f6
Merge branch 'image-view-fixes'
2018-05-24 13:53:22 +02:00
Philip Rebohle
d844ddfdfa
[dxgi] Add option for deferred surface creation
...
Deferred surface creation is required for Frostpunk due to conflicts
with the D3D9 swap chain created by the game before it presents the
first frame to the DXGI swap chain, but breaks NieR:Automata due to
threading issues.
2018-05-24 13:04:29 +02:00
Philip Rebohle
f087016e77
[dxgi] Add app-specific DXGI options
2018-05-24 13:04:21 +02:00
Philip Rebohle
23ba3e228a
[dxgi] Add option for deferred surface creation
...
Deferred surface creation is required for Frostpunk due to conflicts
with the D3D9 swap chain created by the game before it presents the
first frame to the DXGI swap chain, but breaks NieR:Automata due to
threading issues.
2018-05-24 12:31:21 +02:00
Philip Rebohle
66db3e8714
[dxgi] Add app-specific DXGI options
2018-05-24 12:31:04 +02:00
Philip Rebohle
a43025294a
[dxbc] Remove DxbcImageInfo::layered property
2018-05-24 12:07:03 +02:00
Philip Rebohle
12d79257be
[dxbc] Remove TexCube -> TexCubeArray workaround
2018-05-24 12:00:31 +02:00
Philip Rebohle
58e9280891
[dxbc] Remove Tex2D -> Tex2DArray workaround
2018-05-24 11:49:12 +02:00
Philip Rebohle
d9772b0ffd
[dxvk] Create image views for all supported view types
...
Rather than creating just one image view per DxvkImageView, we create
views for all compatible types in an attempt to work around game bugs
in Diablo 3, Far Cry 5, Nier Automata, Dishonored 2, Trackmania etc.,
which bind incompatible resource views to some resource slots.
2018-05-24 11:44:04 +02:00
Philip Rebohle
61049c33fb
[dxgi] Reduce reported VRAM on 32-bit platforms
...
This is closer to what Windows does, and some applications may have
trouble with more than 3GB VRAM.
2018-05-24 10:48:06 +02:00
Philip Rebohle
38c5e57025
[dxgi] Refactor Vulkan swap chain and surface creation
...
Creating the Vulkan surface at the latest possible moment fixes
an issue with Frostpunk, which renders to a D3D9 swap chain
before presenting to the GXGI swap chain.
2018-05-23 13:03:12 +02:00
Philip Rebohle
531732fe91
[dxgi] Add IDXGIFactory2 to supported interfaces
2018-05-23 01:32:52 +02:00
Philip Rebohle
d1b705bf0d
[dxgi] Implemented IDXGISwapChain1
2018-05-23 01:06:34 +02:00
Philip Rebohle
58fa815926
[dxgi] Fixed error message formatting in DxgiDevice
2018-05-22 23:52:12 +02:00
Philip Rebohle
56e7389495
[dxgi] Stubbed out IDXGIFactory2
2018-05-22 23:52:03 +02:00
Philip Rebohle
5a61d81135
[dxgi] Stubbed out IDXGISwapChain1
2018-05-22 23:50:28 +02:00
Philip Rebohle
979ba2d7c6
[dxgi] Implemented IDXGIAdapter2
2018-05-22 23:48:07 +02:00
Philip Rebohle
a39b9cb131
[d3d11] Pre-clear buffers with D3D11_USAGE_DEFAULT
...
Some games may expect buffers, like images, to be pre-initialized.
2018-05-22 21:10:39 +02:00
Philip Rebohle
51104c104d
[d3d11] Refactor InitTexture method
2018-05-22 21:06:26 +02:00
Philip Rebohle
fb11acbc91
[dxbc] Implement geometry shader instancing
...
Required for Frostpunk (see #385 ).
2018-05-22 19:36:53 +02:00
Philip Rebohle
7f619d9051
[dxvk] Use only one extra thread for async pipeline compilation
...
With the benefits of asynchronous compilation being generally low and
compilation in advance not being feasible, there is no reason to create
more threads.
2018-05-22 00:32:44 +02:00
Philip Rebohle
425a5bca2e
[d3d11] Optimized buffer mapping on deferred contexts
2018-05-22 00:11:32 +02:00
Joshua Ashton
5cc3afcf30
Fix tzcnt intrinsic on MSVC ( #381 )
2018-05-19 09:26:25 +02:00
Philip Rebohle
126c50a674
[dxbc] SampleMask does not depend on SampleRateShading
...
This was fixed in a later revision of the SPIR-V 1.0 specification.
2018-05-19 09:07:31 +02:00
Philip Rebohle
a6ace7908f
[dxbc] Do not emit empty 'else' blocks
2018-05-18 22:37:23 +02:00
Philip Rebohle
3d9f7c70dd
[general] Update README
2018-05-17 00:35:18 +02:00
Philip Rebohle
7408bc22b5
[dxvk] Remove ability to enable instance layers
2018-05-17 00:35:12 +02:00
Philip Rebohle
a30e1368b1
[dxvk] Implement name set merging
2018-05-17 00:35:04 +02:00
Philip Rebohle
796379a551
[dxvk] Refactor the way instance extensions are enabled
2018-05-17 00:34:48 +02:00
Philip Rebohle
d1eddbdc3f
[dxvk] Make vk::NameSet more versatile
2018-05-17 00:34:38 +02:00
Philip Rebohle
40b52758e3
[dxvk] Enumerate discrete GPUs before integrated GPUs
...
May help with games that do not run on Intel GPUs when
the Intel Vulkan driver is installed alongside the AMD
or Nvidia drivers.
2018-05-16 16:17:39 +02:00
Philip Rebohle
26b319b29b
[d3d11] Fallout 4: Force Flush on GetData calls
2018-05-14 02:40:59 +02:00
Philip Rebohle
a90c2843a7
[dxvk] Remove std::vector from DxvkDataBuffer
...
Vectors are zero-initialized upon resize, which is unnecessary
in this case and potentially impacts performance.
2018-05-13 21:34:38 +02:00