Commit Graph

3172 Commits

Author SHA1 Message Date
Philip Rebohle c1aeacde29
Update issue template 2020-03-31 23:26:26 +02:00
stefson 16c3c48758 [documentation] improve README.md with regards to mingw64
Signed-off-by: Steffen Kuhn <nielson2@yandex.com>
2020-03-28 11:34:43 +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 bb0772eb8d [tests] Add test for ColorFill on NULL format 2020-03-25 07:21:02 +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
Philip Rebohle c22c30ccf6
[meta] Update README 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
Philip Rebohle c1627a1b57
[meta] Don't install d3d10 and d3d10_1 by default 2020-03-18 21:02:42 +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
Joshua Ashton 19842532c2 [build] Specify C++ std manually in meson build
Meson doesn't specify this otherwise...
2020-03-18 03:47:55 +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
nopjmp 3835230ce5 [meta] use c++latest only for old versions of MSVC
c++latest is only needed for c++17 features when the compiler is before MSVC 15.3
2020-03-14 11:26:03 +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 2ee7facb9f [tests] Add some d3d9 srgb format tests 2020-03-09 03:05:51 +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
Jens Peters f85be773aa [meta] Remove D3D10 HUD restriction in the README
D3D10 in the HUD api option is identified correctly since be16da37d7
2020-03-07 22:58:30 +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