Philip Rebohle
894d9606d5
[dxgi] Add option to force-enable MAILBOX present mode
...
Provides Enhanced Sync-like functionality (#678 ).
2018-09-29 08:13:52 +02:00
Philip Rebohle
b7d8be25f1
[dxgi] Use DXGI back buffer count for the Vulkan swap chain
2018-09-09 19:07:41 +02:00
Philip Rebohle
5f42950650
[dxgi] Don't use FIFO present mode if IMMEDIATE is not available
...
Might fix potential performance issues on Nvidia when VSYNC is disabled.
Based on RPCS3/rpcs3@25ec3789fe
2018-08-26 23:39:53 +02:00
Philip Rebohle
24dd173d12
[dxgi] Fix resolve image usage flags
...
When meta-resolve is used for the back buffer, it will
be used as a color attachment, and we need to set up
the usage and stage/access flags accordingly.
2018-08-07 19:26:59 +02:00
Philip Rebohle
524ff9e233
[dxgi] Use global user config for DXGI options
2018-08-07 14:59:09 +02:00
Philip Rebohle
5fe4c4f610
[dxvk] Use VkImageViewUsageCreateInfoKHR when creating image views
...
Must be used when view formats are used that do not support all
usage bits of the underlying image. Refs #504 .
2018-07-21 10:58:06 +02:00
Philip Rebohle
adcc7a4573
[dxgi] Synchronize presentation to enforce maximum frame latency
...
Some games may rely on the maximum number of frames in flight.
Might fix a related issue in Hard Reset (#503 ) and Okami HD (#283 ).
2018-07-20 11:40:37 +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
4f28d57352
[dxvk] Remove unused rasterizer discard state flag
2018-06-25 16:56:52 +02:00
Philip Rebohle
7fa26f1c87
[d3d11] Implement render pass spilling for UAV rendering
...
Spilling the render pass should make shader storage buffer/image writes
visible due to how external subpass dependencies are defined. For UAV
rendering, we need to do this when changing the UAVs, even if the render
targets themselves do not change.
2018-06-15 20:49:24 +02:00
Philip Rebohle
e8ac81fe8a
[dxvk] Removed support for depth bounds test
...
This feature is not used in D3D11, so we don't need backend support.
2018-06-06 13:11:09 +02:00
Philip Rebohle
e615fc19a9
[dxgi] Support SyncInterval values > 1
...
Required for Eve Online and the Unity Blacksmith demo.
2018-05-28 21:06:35 +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
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
e30a8299e6
[dxvk] Refactor DxvkFramebuffer and DxvkRenderpass
2018-05-02 00:45:10 +02:00
Philip Rebohle
ba53cf92ac
Revert "[dxvk] Refactor DxvkFramebuffer and DxvkRenderpass"
...
This reverts commit 1bbfe77013
.
Breaks Path of Exile.
2018-04-30 18:47:35 +02:00
Philip Rebohle
1bbfe77013
[dxvk] Refactor DxvkFramebuffer and DxvkRenderpass
2018-04-30 15:47:29 +02:00
Philip Rebohle
af19bba048
[dxgi] Remove support gamma-related ScaleAndOffsetSupported
...
Some games, including Heroes of the Storm (#287 ), do not set
the values correctly so it's better to ignore them altogether.
2018-04-15 20:12:41 +02:00
Philip Rebohle
ded6dec7eb
[dxgi] DxgiVkPresenter: use Microsoft-style API
2018-04-13 13:57:29 +02:00
Philip Rebohle
5d7c83855e
[dxgi] Use 1D texture to implement the gamma lookup table
...
This allows us to abuse hardware texture filters for linear
interpolation. Should fix an issue with the latest Nvidia
beta drivers.
2018-04-13 13:47:15 +02:00
Philip Rebohle
f13011f487
[dxgi] Implement gamma ramp in presenter
...
Will be used to fake IDXGIOutput::SetGammaControl.
2018-04-10 20:44:55 +02:00
Philip Rebohle
41132b8c13
[dxgi] Re-implement presentation shaders in GLSL
2018-04-10 18:46:39 +02:00
Philip Rebohle
bd5254f8d3
[d3d11] Fixed compiler errors
...
Why the hell did my GCC not complain about this earlier?
2018-04-08 22:26:35 +02:00
Philip Rebohle
3b43c1c183
[dxgi] Support more formats in the presenter
...
Should surpress "Unsupported format" warnings in games
based on Unreal Engine 4 and Frostbite Engine.
2018-03-17 09:20:06 +01:00
Philip Rebohle
5ef0f31c66
[dxvk/d3d11] Refactored resource binding
...
Slightly reduces overhead of D3D11 *SetShaderResources methods.
2018-03-10 11:16:52 +01:00
Philip Rebohle
e4dae74865
[dxvk] Validate tessellation state for graphics pipeline
...
This should help with freezes as long as Tessellation is
not properly implemented.
2018-02-23 12:55:23 +01:00
Philip Rebohle
cb3daaf856
[dxvk] Change resolveImage interface to accept an explicit format
2018-02-20 22:26:23 +01:00
Philip Rebohle
96a97aa0c4
[dxvk] Added HUD
...
Experimental version of a HUD which displays information
about the hardware, driver version, and frames per second.
2018-01-13 03:53:33 +01:00
Philip Rebohle
5dd9fea011
[dxvk] Implemented input layout validation
...
Checks whether all input slots consumed by the vertex shader
are provided by the input layout, and disables rendering in
case the state validation fails. This should hopefully fix
GPU lockups in Nier:Automata.
2018-01-12 14:25:26 +01:00
Philip Rebohle
39b5d84d6a
[dxgi] Added missing view type definition
2018-01-10 13:43:23 +01:00
Philip Rebohle
d8574666cb
[dxgi] Presenter now sets depth/stencil state properly
2018-01-01 23:00:07 +01:00
Philip Rebohle
4412f2f5ff
[dxgi] Reimplemented parts of DxgiSwapchain with win32 APIs
...
This solves issues in applications that create more than one
swap chain for a given window, and helps applications that
don't like SDL interference in general. Fullscreen support
is currently missing entirely.
2017-12-31 00:23:34 +01:00
Philip Rebohle
c3ccc1a5c7
[dxgi] Fixed resource lifetime issue in presenter
2017-12-27 15:55:46 +01:00
Philip Rebohle
82b2c40405
[dxvk] Simplified resource binding
...
The backend no longer differentiates between compute pipeline
resources and graphics pipeline resources.
2017-12-23 15:11:23 +01:00
Philip Rebohle
41d660f220
[spirv] Added image operand structure for more flexible sample ops
2017-12-20 20:21:44 +01:00
Philip Rebohle
5415b685de
[dxbc] Implemented type conversion instructions
2017-12-19 18:12:18 +01:00
Philip Rebohle
2c5b1c151f
[d3d11] Refactored texture creation
2017-12-19 16:01:50 +01:00
Philip Rebohle
f2587ab1b6
[dxgi] Implemented separate color/depth format tables
...
This is required because in D3D11, typeless formats can be used
to create both depth and stencil images, and color formats can
be used to view depth images. In Vulkan, images and views that
are used as depth-stencil attachments will have to be created
with a depth-stencil format, so we have to take the image's
bind flags into account when picking a format.
2017-12-19 14:47:35 +01:00
Philip Rebohle
ebabc0e578
[dxvk] Implemented proper swap chain synchronization
2017-12-16 21:30:48 +01:00
Philip Rebohle
5f0e94138e
[dxvk] Implemented support for multisampled images and render targets
2017-12-12 00:27:49 +01:00
Philip Rebohle
68ca71d8a4
[dxvk] Implemented recycling of command buffers and staging buffers
2017-12-11 19:17:08 +01:00
Philip Rebohle
4144e3229a
[d3d11] Implemented blend state creation
2017-12-11 13:03:07 +01:00
Philip Rebohle
52f1c4fa00
[dxvk] Implemented staging buffers for large data transfers
2017-12-10 15:57:51 +01:00
Philip Rebohle
4a0ff5343a
[dxgi] Added more format mappings
2017-12-09 14:41:37 +01:00
Philip Rebohle
b49815657e
[dxvk] Refactored blend state
2017-12-08 01:06:48 +01:00
Philip Rebohle
84605a1310
[dxvk] Refactored input layout state
2017-12-08 00:44:58 +01:00
Philip Rebohle
385c92db5a
[dxvk] Refactoring of most constant state objects
2017-12-08 00:02:43 +01:00
Philip Rebohle
19851c8432
[dxvk] Re-implemented pipeline creation within the backend
2017-12-07 09:38:31 +01:00
Philip Rebohle
e0df25a7c5
[dxvk] Implemented proper image memory barriers
2017-12-05 13:00:06 +01:00
Philip Rebohle
f1ee761290
[dxgi] DxgiPresenter now picks format depending on swap chain format
2017-12-04 22:21:02 +01:00