Commit Graph

3485 Commits

Author SHA1 Message Date
Philip Rebohle f1e069568d
[build] Remove .spec files
No longer needed now that we don't support winelib builds anymore.
2020-05-01 00:52:33 +02:00
Philip Rebohle 6face8a1dc [d3d11] Enable new robustness features if available 2020-04-30 16:36:59 +02:00
Philip Rebohle 80009831d4 [d3d11] Use explicit spec constant for gamma texture
With null descriptors, the "bound" spec constants would always be 1.
2020-04-30 16:36:59 +02:00
Philip Rebohle 7b8a65589e [dxvk] Use null descriptors for unbound resources
This way we won't have to recompile pipelines any time the app
unbinds a resource.
2020-04-30 16:36:59 +02:00
Philip Rebohle 6ea9d83f94 [dxvk] Enable VK_EXT_robustness2 if available 2020-04-30 16:36:59 +02:00
Philip Rebohle 6d9a1e69d6 [meta] Update Vulkan headers 2020-04-30 16:36:59 +02:00
Philip Rebohle 2a25e3f899 [dxvk] Skip draws if no index buffer is bound
It doesn't make much sense to bind the null buffer here, as we'd
just draw the same vertex over and over again.
2020-04-30 16:36:59 +02:00
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
Joshua Ashton 353c7f7671 [tests] Add D3D9 swapchain refcounting tests 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
Tk-Glitch 6b6347ea2c [meta] Restore .a files removal on non-devbuilds.
This was -supposedly mistakenly- removed with 436357e280
2020-04-22 10:04:40 +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
yao mtc ce3d0ab4b4
[meta] Correct Mingw-w64 name (#1565) 2020-04-14 09:18:37 +02:00
Philip Rebohle 2204cff86a [tests] Remove unused variables from D3D9 test
Fixes a whole bunch of annoying compiler warnings.
2020-04-13 22:05:27 +01:00
Philip Rebohle ab8ab4052f [d3d9] Fix compiler warnings 2020-04-13 22:05:27 +01:00
Philip Rebohle f257a794cc
[meta] Trim \r character from winepath output.
Wine 5.6 for some reason now requires this. Fixes #1569.
2020-04-13 20:16:51 +02: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 8d7bdc5392 [test] Add tests for adapter functions 2020-04-09 02:34: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