Philip Rebohle
ca59d8e74b
[dxgi] Implement DXGIDeclareAdapterRemovalSupport
2020-04-28 15:20:43 +02:00
Philip Rebohle
5d0efd87c2
[dxgi] Implement IDXGIOutput6
2020-04-28 15:00:57 +02:00
Philip Rebohle
15f5efe4c3
[dxgi] Implement IDXGIAdapter4
2020-04-28 14:50:36 +02:00
Philip Rebohle
26ea12b18e
[dxgi] Include DXGI 1.6 headers
2020-04-28 14:44:20 +02:00
Joshua Ashton
9f4baf3f55
[d3d9] Fix swapchain surface refs once and for all
...
The refcounting for d3d9 swapchain surfaces is very funny.
They don't actually hold any form of reference to their parent, unlike the surface->texture relationship.
When a swapchain is destroyed, the surfaces become orphans (like offscreen rendertargets) if they are still reffed.
Calling GetContainer on them when orphaned will return E_NOINTERFACE and nullptr for __uuidof(IDirect3DSwapChain)
Fixes some potential lingering refs on the device.
2020-04-26 13:32:22 +01:00
Philip Rebohle
6d5f5580fb
[dxvk] Use correct size to clear zero buffer
2020-04-23 20:49:59 +02:00
Philip Rebohle
9a76645228
[d3d11] Simplify ClearView implementation
...
Removes some code duplication for the no-clear-rect case.
2020-04-22 22:32:53 +02:00
Philip Rebohle
b3c19ba5e8
[d3d11] Optimize ClearView for render target and depth-only views
...
We should use clearRenderTarget whenever we clear the entire view.
The Talos Principle uses ClearView to clear its render targets for
some reason, and we were hitting a slow path there.
2020-04-22 21:02:46 +02:00
Philip Rebohle
bea16263e4
[dxvk] Use GPU-local buffer in clearCompressedColorImage
...
Saves VA space in applications that do not initialize their textures..
2020-04-21 18:10:09 +02:00
Philip Rebohle
436357e280
[meta] Remove support for winelib builds
...
Untested, unmaintained, and constantly causing issues on various
setups for no apparent reason. Time to get rid of it for good.
Closes #1584 .
2020-04-20 17:35:08 +02:00
Philip Rebohle
dbc9f40aa1
[meta] Release 1.6.1
2020-04-19 21:43:03 +02:00
Philip Rebohle
b0503b54ce
[dxvk] Don't pad dedicated image allocations
...
Fixes validation errors on Nvidia.
2020-04-19 17:19:06 +02:00
Joshua Ashton
409eac9d20
[d3d9] Use if/else in GetCommonTexture and TextureRefPrivate
...
These are the only things it can be, and they all end up calling what the compiler will optimize to the same function so we can avoid a branch here.
2020-04-19 01:11:11 +01:00
Joshua Ashton
3f2b582d5f
[d3d9] Avoid prematurely deleting swapchain backbuffers if they are still reffed on reset
2020-04-19 00:59:02 +01:00
Joshua Ashton
837861ffdd
[d3d9] Cleanup private ref code for subresources
2020-04-18 21:06:38 +01:00
Joshua Ashton
42089d73c5
[d3d9] Fix ref-counting for swapchain surfaces
2020-04-18 21:06:38 +01:00
Christian Sturm
97cd91885d
[util] Enable constant buffer range check for Secret World Legends
2020-04-18 21:53:21 +02:00
Robin Kertels
d6e1c19fec
[d3d11] Ignore buffer usage for the single use mapping hack
...
The usage doesn't matter as we swap out the entire backing slice anyway.
2020-04-18 17:15:48 +02:00
Philip Rebohle
8c68236f70
[d3d11] Check return value of Map in UpdateSubresource1
...
And fall back to a GPU-side copy if necessary.
2020-04-18 17:04:16 +02:00
Philip Rebohle
487ecd861c
[util] Enable constant buffer range check for Blue Reflection
...
Fixes #1574 .
2020-04-18 14:00:04 +02:00
Philip Rebohle
ab8ab4052f
[d3d9] Fix compiler warnings
2020-04-13 22:05:27 +01:00
Joshua Ashton
4699d4162a
[d3d9] Implement swapchain containers for surfaces
...
Fixes a crash in L.A. Noire.
Closes #1564
2020-04-13 01:42:30 +01:00
Philip Rebohle
4d8940957c
[d3d11] Add option to enforce mailbox present mode
2020-04-12 20:28:33 +02:00
Philip Rebohle
7f03f45301
[util] Support encapsulated strings in configuration files
...
Fixes #1567 .
2020-04-10 21:16:29 +02:00
Joshua Ashton
6e5e50c359
[d3d9] Optimize hazard tracking in the SetTexture case
...
We don't need to perform DS/RT hazard tracking updates if the texture we replaced and ourselves do not have those usages.
2020-04-09 15:29:41 +01:00
Joshua Ashton
9b4cd8aa87
[d3d9] Remove texMask from UpdateActiveHazardsRT
...
This is an invalid optimization and leads to render hazards being dropped
Our hazard tracking for render targets is done in render target indices as opposed to texture indices for depth stencil tracking so `texMask` doesn't work for that reason, and the fact that even if it did, there is no relationship to an individual texture and a render target index that has a hazard.
2020-04-09 15:29:41 +01:00
Joshua Ashton
6b431851da
[util] Enable d3d9.invariantPosition for Battlefield 2
...
Closes #1558 for good
2020-04-09 14:00:26 +01:00
Joshua Ashton
ecb3e05cb9
[d3d9] Ignore adapter type for CheckDepthStencilMatch and CheckDeviceType when windowed
2020-04-09 02:35:35 +01:00
Joshua Ashton
f549586331
[util] Set d3d9.longMad to True for Battlefield 2
2020-04-08 23:23:21 +01:00
Joshua Ashton
c3cff09c4f
[d3d9] Implement d3d9.longMad option
2020-04-08 23:20:57 +01:00
Joshua Ashton
93b4427a13
[d3d9] Add and use D3D9WindowMessageFilter helper
...
Stops us forgetting to reset the message filter
Previously when the device was intially created with fullscreen, filter would always be enabled
2020-04-08 20:20:01 +01:00
Georg Lehmann
e95e4ca225
[hud] remove unused texture
2020-04-08 20:11:02 +02:00
Joshua Ashton
3f4ffdfba8
[d3d9] Fix MinGW compilation
...
MSVC doesn't care about static.
2020-04-06 20:35:30 +01:00
Joshua Ashton
46329689ba
[d3d9] Handle WM_DESTROY event
2020-04-06 20:16:17 +01:00
Joshua Ashton
18b46e5c22
[d3d9] Move HookWindowProc out of swapchain class
2020-04-06 20:15:49 +01:00
Joshua Ashton
a340cd4dd3
[d3d9] Add CallCharsetFunction helper
2020-04-06 20:06:45 +01:00
Joshua Ashton
6cf052b3f2
[d3d9] Cleanup ResetWindowProc
2020-04-06 19:45:15 +01:00
Joshua Ashton
135d246610
[d3d9] Cleanup and formatting for window proc hook
2020-04-06 19:42:48 +01:00
Joshua Ashton
47ddd8466a
[d3d9] Re-look up wnd proc iterator
...
Avoids a potential issue where this could change address during this time.
2020-04-06 19:40:25 +01:00
Joshua Ashton
a80eea926a
[d3d9] Filter out window messages we cause
...
Closes #1517
2020-04-06 19:38:26 +01:00
Joshua Ashton
83e03ac9d8
[d3d9] Make COPM render state unlikely
...
This is only ever called once per game and we don't support it anyway
2020-04-05 06:27:14 +01:00
Joshua Ashton
92031a7bac
[d3d9] Fix dumb typo in ATOC handling
2020-04-03 21:13:15 +01:00
Philip Rebohle
00d371d78d
[util] Spoof AMD GPU for GTA IV
2020-04-03 16:39:29 +01:00
Joshua Ashton
bbe681d9ca
[dxvk] Fix incorrect logic in resolveDepthStencilImage
...
This fallbath check path should be triggered if we aren't currently using the fb.
Impacts #1537
2020-04-03 11:20:21 +02:00
Joshua Ashton
457c0c3021
[d3d9] Fix state sometimes not being set in SetRenderState
...
Previously this prevented us disabling AlphaToCoverage once the application enabled it.
2020-04-03 07:52:35 +01:00
Philip Rebohle
5c3d0c6836
[util] Enable d3d11.relaxedBarriers option for Resident Evil 3
2020-04-03 02:58:59 +02:00
Philip Rebohle
4d6f47640f
[dxgi] Name adapter event thread
2020-04-03 02:09:06 +02:00
Philip Rebohle
079cda1c0c
[dxgi] Implement RegisterVideoMemoryBudgetChangeNotificationEvent
...
Closes #1544 .
2020-04-03 02:05:23 +02:00
Joshua Ashton
904d3e6c90
[d3d9] Don't declspec dllexport on MinGW builds
...
Fixes ordinal exporting on MinGW, which was causing a crash in CSGO due to it querying a fixed ordinal for a D3D9On12 hack.
2020-04-02 02:00:42 +01:00
Philip Rebohle
5750a7d85c
[dxbc] Fix the udiv crap again
2020-03-26 17:17:01 +01:00
Joshua Ashton
62c2c9cd15
[dxbc] Handle 0 divisors in UDiv
...
UDiv is defined as having 0xffffffff as both the quotient and remainder value when the divisor is 0
This fixes vertex corruption on the water bottles in Half-Life: Alyx
https://github.com/ValveSoftware/Proton/issues/3681
https://docs.microsoft.com/en-us/windows/win32/direct3dhlsl/udiv--sm4---asm-
2020-03-26 10:49:42 +01:00
Samuel Pitoiset
649c3805d9
[util] fix typo for Yooka-Laylee executable name
2020-03-25 14:29:28 +01:00
Joshua Ashton
bb2e88ee06
[d3d9] Fix crash when calling ColorFill with NULL format
...
Impacts #1528
2020-03-25 07:23:17 +00:00
Joshua Ashton
5ff7cad77d
[d3d9] Fix formatting in D3D9WindowProc
2020-03-25 07:14:35 +00:00
Samuel Pitoiset
f6a79c366a
[util] Set enableRtOutputNaNFixup for Super Monkey and Yooka-Laylee
...
Both games output NaNs that introduce glitches with RADV and
AMDVLK.
2020-03-22 15:38:24 +01:00
Philip Rebohle
3104192af7
[d3d11] Fix winelib build
...
Closes #1521 .
2020-03-20 17:01:46 +01:00
Philip Rebohle
9c7945d936
[meta] Release 1.6
2020-03-20 16:07:25 +01:00
Joshua Ashton
a9339ae832
[d3d9] Fix depth hazard case for write + read
...
Closes #1519
2020-03-20 14:23:29 +01:00
Philip Rebohle
1150121606
[d3d9] Fix depth-stencil layouts
...
Otherwise we're always using GENERAL for depth buffers.
2020-03-20 04:04:53 +00:00
Philip Rebohle
a9b6421f60
[d3d11] Support signaling event in Flush1
2020-03-19 23:38:28 +01:00
Philip Rebohle
76fd9013d4
[util] Add missing include
2020-03-19 23:22:13 +01:00
Philip Rebohle
3697583f71
[d3d10] Separate d3d10core from d3d10
...
This way we skip compiling and linking unnecessary garbage
into the core library.
2020-03-18 22:01:11 +01:00
Joshua Ashton
7a134e49be
[d3d10] Implement D3D10[Core]GetVersion and D3D10[Core]RegisterLayers
2020-03-18 20:49:17 +01:00
Joshua Ashton
021c593ad8
[d3d9] Use all heaps when determining initial texture memory
...
Matches behaviour on Windows 10
Merges #1436
2020-03-18 19:40:01 +00:00
Florian Will
ba41a5219a
[util] Disable explicit frontbuffer for ZUSI 3
...
Fixes flickering when parts of the screen are not redrawn in a frame.
Closes #1368
Merges #1437
2020-03-18 19:32:45 +00:00
Florian Will
1a4b15a82d
[d3d9] Add option to disable the explicit frontbuffer
...
The Vulkan swapchain is unaffected by this, but we don't create an
"internal" frontbuffer in D3D9SwapChainEx if this option is set. This
breaks GetFrontBufferData (which returns backbuffer data if the option
is enabled), but it disables front/backbuffer flipping.
Most windows drivers apparently always use the same backbuffer for all
frames in windowed mode. At least one game (ZUSI 3) seems to rely on
this behavior, and only redraws dirty regions for each frame instead of
redrawing everything. With buffer flips, this leads to flickering. When
enabling this new noExplicitFrontBuffer option, the flickering
disappears.
2020-03-18 19:31:00 +00:00
Joshua Ashton
6a8933cf31
[d3d9] Allow arbitrary backbuffer/adapter formats
...
It seems these aren't linked in the way the docs made out, this fixes a crash when starting some titles.
Closes #1508
2020-03-18 06:00:28 +00:00
Joshua Ashton
a9040c5cce
[d3d9] Allow multisampled depth stencil resolves in StretchRect
...
Fixes a crash in some Source 2 titles
2020-03-18 04:59:27 +00:00
Philip Rebohle
bf480ce659
[d3d11] Initialize all D3D11ContextState members
...
Otherwise, SwapDeviceContextState may swap in some uninitialized data.
Closes #1512 .
Reported-by: Danylo Piliaiev <danylo.piliaiev@globallogic.com>
2020-03-16 18:42:57 +01:00
Philip Rebohle
26798eb312
[util] Use SwitchToThread for yield
...
According to MSDN, this doesn't interfere with scheduling of other threads,
unlike Sleep(0).
2020-03-15 03:43:04 +01:00
Philip Rebohle
ba213c1fa0
[dxvk] Factor out waiting for resource to become idle
...
And use the new generic spin function to reduce syscall spam.
2020-03-15 03:43:04 +01:00
Philip Rebohle
da506f5932
[util] Add generic recursive spinlock
2020-03-15 03:43:04 +01:00
Philip Rebohle
55e3240479
[util] Add generic spin function
2020-03-15 03:43:04 +01:00
Philip Rebohle
33b0d4c991
[d3d10] Create type reflection objects on demand
...
See previous commits for details. Fixes #1507 .
2020-03-12 21:03:31 +01:00
Philip Rebohle
3d81b3eb82
[d3d10] Create variable reflection objects on demand
2020-03-12 21:03:30 +01:00
Philip Rebohle
21fe6a3405
[d3d10] Create constant buffer reflection objects on demand
...
The reported constant buffer count does not necessarily match the
number of constant buffers that can be retrieved from reflection.
2020-03-12 21:03:30 +01:00
Rémi Bernon
14946c599f
[d3d9] Hook WM_NCCALCSIZE to get rid of fullscreen non-client areas.
2020-03-11 17:46:08 +00:00
Joshua Ashton
64e649ae18
[d3d9] Don't check IsNull for depth stencil views
...
We don't need to do this. Depth stencils can never be D3DFMT_NULL.
2020-03-09 01:13:54 +00:00
Joshua Ashton
e33627cfdc
[d3d9] Optimize unnecessary loops in hazard tracking
...
We only want to update specific indices of bitfields at a time, so pass through that information and mask it off.
2020-03-09 01:03:18 +00:00
Joshua Ashton
812a113a85
[d3d9] Avoid multiple tzcnts per loop in hazard tracking
2020-03-09 00:53:50 +00:00
Joshua Ashton
f6b26b302d
[d3d9] Handle depth stencil hazards
...
Track depth stencil textures being used and whether we have any active hazards.
Rebind the framebuffer with VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL if we encounter a depth stencil hazard.
Fixes black squares in Mass Effect and validation errors in some titles.
Closes #1484
2020-03-09 00:53:19 +00:00
Joshua Ashton
102d97db02
[d3d9] Add IsDepthStencil helper to D3D9CommonTexture
2020-03-09 00:24:56 +00:00
Joshua Ashton
a432befa8d
[d3d9] Add RT suffix to current hazard tracking
...
We can have DS hazards...
2020-03-09 00:23:22 +00:00
Joshua Ashton
eaa599bf9a
[d3d9] Implement A2W10V10U10 format via conversion
2020-03-08 23:32:33 +00:00
Joshua Ashton
60ec7e8208
[d3d9] Implement X8L8V8U8 format via conversion
2020-03-08 23:22:52 +00:00
Joshua Ashton
afd4e6e457
[d3d9] Use a common header for cs conversion helpers
2020-03-08 22:29:41 +00:00
Philip Rebohle
304dad2d2e
[dxvk] Fix dumb typo in changeImageLayout
2020-03-08 03:18:34 +01:00
Philip Rebohle
7b760800b4
[d3d11] Fix buffer view compatibility check
2020-03-08 01:28:51 +01:00
Philip Rebohle
2291484696
[d3d11] Fix texture view compatibility check
2020-03-08 01:28:51 +01:00
Joshua Ashton
45c8b09104
[d3d9] Don't update present region in Reset
...
Fixes a regression in A Hat in Time when changing resolutions
2020-03-06 18:23:08 +00:00
Philip Rebohle
245007daba
[d3d9] Don't use m_monitor in GetDisplayModeEx
...
Should fix #1495 .
2020-03-05 15:25:05 +00:00
Philip Rebohle
3a1243b05e
[util] Don't set display mode if the desired mode is already set
...
See #1489 .
Co-authored-by: zvova7890 <zvova7890@gmail.com>
2020-03-04 23:06:15 +00:00
Philip Rebohle
5e41e00456
[d3d9] Use new common monitor functions
2020-03-04 23:06:15 +00:00
Philip Rebohle
a623e8e7d6
[dxgi] Use new common monitor functions
2020-03-04 23:06:15 +00:00
Philip Rebohle
4e16d65bb8
[util] Introduce common functions to set, get and restore display modes
2020-03-04 23:06:15 +00:00
Philip Rebohle
66503aeaa0
[util] Factor out common monitor-related functions
2020-03-04 23:06:15 +00:00
Joshua Ashton
8c68cf1551
[d3d9] Fix alignment of SubresourceData
...
This should match SubresourceType...
2020-03-02 16:11:07 +00:00
Joshua Ashton
27d7af65a1
[d3d9] Consolidate format helper code
2020-03-02 04:37:20 +00:00
Joshua Ashton
1b26fabc6e
[d3d9] Use uniform texel buffers for conversion
2020-03-02 04:37:20 +00:00
Joshua Ashton
077f48b4ef
[d3d9] Flush format converter in device after init
...
Otherwise we can be overwritten if its a new resource we just created by the initializer.
2020-03-02 04:37:20 +00:00