1
0
mirror of https://github.com/doitsujin/dxvk.git synced 2024-12-05 01:24:14 +01:00
Commit Graph

1048 Commits

Author SHA1 Message Date
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
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
Philip Rebohle
516d7f091e
Merge branch 'disable-opt-bit' 2018-05-13 16:19:31 +02:00
Philip Rebohle
f42f7cc743
[dxvk] Make use of the asynchronous pipeline compiler optional
Users can enable this by setting DXVK_USE_PIPECOMPILER=1.
2018-05-13 16:02:23 +02:00
Philip Rebohle
2ee80ce1bd
[dxvk] Log start/stop of pipe compiler worker threads 2018-05-13 15:37:31 +02:00
Philip Rebohle
368eea7310
[dxvk] Use derivative pipelines again 2018-05-13 15:37:18 +02:00
Philip Rebohle
c17f4e2fc0
[dxvk] Increase update buffer size
Helps reduce the number of memory allocations further
when deferred contexts are used for rendering.
2018-05-13 14:45:50 +02:00
Philip Rebohle
9d4654f445
[dxvk] Fix update buffer allocation size 2018-05-13 11:12:54 +02:00
Philip Rebohle
3fc9466a07
[dxvk] Fix query scopes
Occlusion queries must begin and end in the same render pass.
Fixes a rendering issue in Shadow Warrior 2 on AMD drivers.
2018-05-12 19:46:08 +02:00
Philip Rebohle
5f3b65014f
[dxvk] Reset query pools on the init buffer 2018-05-12 19:45:42 +02:00
Philip Rebohle
3135359ee9
[dxvk] Create a separate command buffer for initialization tasks
We'll use this to reset query pools without having to spill
the active render pass. Required to fix a query-related bug.
2018-05-12 19:32:50 +02:00
Philip Rebohle
581e505f54
[dxbc] Fix bit scan instructions
firstbithi counts from the MSB rather than the LSB. Fixes
rendering issues in Hitman.
2018-05-12 01:39:23 +02:00
Philip Rebohle
b805560340
[dxvk] Do not log invalid pipeline state
Fixes some log spam in case games attempt to render geometry
with an invalid pipeline state vector.
2018-05-10 21:59:57 +02:00
Philip Rebohle
cfb4791872
[dxvk] Use VK_PIPELINE_CREATE_DISABLE_OPTIMIZATION_BIT
Optimized versions of the pipelines will be compiled asynchronously.
2018-05-10 14:54:44 +02:00
Philip Rebohle
517a7532be
[dxvk] Added DxvkPipelineCompiler 2018-05-10 14:29:13 +02:00
Philip Rebohle
3b132196d3
[dxvk] Add ability to hold two pipeline handles to pipeline instances 2018-05-10 14:15:47 +02:00
Philip Rebohle
010fc6ad49
[dxvk] Implement DxvkGraphicsPipelineInstance
This should come in handy when compiling an optimized version of
a pipeline asynchronously. This can be extended to hold multiple
pipeline handles, i.e. one optimized one and one without opts.

Collateral damage: We're not using derivative pipelines anymore,
needs to be re-added at a later point.
2018-05-09 22:23:50 +02:00
Philip Rebohle
ec3b7e39af
[util] Fix includes 2018-05-09 20:37:49 +02:00
Philip Rebohle
c7d2957d8f
[util] Remove duplicate tzcnt function 2018-05-09 20:09:09 +02:00
Philip Rebohle
37456d583e
[dxvk] Move DxvkPipelineCache to DxvkPipeManager
Since the pipeline cache isn't used for anything else but compiling
pipelines, keeping this stuff together is much more useful.
2018-05-09 14:26:45 +02:00
Philip Rebohle
47b9fd8b19
[dxvk] Reimplement vertex buffer bindings
Reduces the number of Vulkan calls for vertex buffer bindings and
works around incorrect validation errors emitted when applications
do not use a consecutive range of vertex bindings. No performance
impact is expected in most games.
2018-05-09 13:01:52 +02:00
Philip Rebohle
b6d33e6289
[d3d11] D3D11SamplerState: Cosmetic changes 2018-05-09 11:55:05 +02:00
Philip Rebohle
5465ee8a85
[util] Add tzcnt function 2018-05-09 00:01:00 +02:00
Philip Rebohle
33e511485c
[hud] Fixed uninitialized depth bounds values 2018-05-07 21:53:32 +02:00
Philip Rebohle
cd92d0b992
[dxvk] Allow binding render targets of different sizes
In order to not cause Vulkan validation issues, we have
to reduce the framebuffer size. Fixes a regression in
Bioshock Infinite.
2018-05-07 20:46:20 +02:00
Philip Rebohle
3c611503d6
[dxgi] Fix reported VRAM size for 32-bit builds 2018-05-07 19:04:25 +02:00
Philip Rebohle
3e111086b2
[d3d11] Implement D3D11CoreCreateDevice
Some applications need this function to be present and it's better to
fail for them with an error code rather than crash because the entry
point does not exist in our DLLs.
2018-05-07 14:06:52 +02:00
Philip Rebohle
757be61b70
[dxgi] Use per-adapter format lookup tables
Allows Nvidia cards to use 24-bit depth buffers.
2018-05-06 13:12:30 +02:00
Philip Rebohle
fb3dbd8bcd
[d3d11] Relaxed view format compatibility check
Fixes regressions in multiple games. MSDN docs regarding
format compatibility are wrong in every way.
2018-05-05 20:16:01 +02:00
Philip Rebohle
f4a92a685f
[d3d11] Normalize render target and depth-stencil view types
Fixes a regression in Kingdom Come: Deliverance that was
introduced in a55bee9554.
2018-05-05 15:53:49 +02:00
Philip Rebohle
5a639797d2
[d3d11] Fix stencil component mapping in shader resource views
Fixes terrain rendering in Far Cry 5.
2018-05-05 15:15:09 +02:00
Philip Rebohle
8177898151
[d3d11] Validate image view format compatibility
Fixes Vulkan validation errors in Far Cry 5.
2018-05-05 15:13:35 +02:00