Robin Kertels
11db6d691c
[d3d9] Fix reference leak in ProcessVertices
...
Also fixes a Wine test.
2024-07-05 00:44:28 -07:00
Robin Kertels
9c898bd269
[d3d9] Skip presenting if D3D9Swapchain has no associated window
2024-07-05 00:44:28 -07:00
Robin Kertels
175772944c
[d3d9] Fix Wine test failures in StretchRect
2024-07-05 00:44:28 -07:00
WinterSnowfall
5ae3cfe402
[d3d9] Fix DF Formats selection logic
2024-07-05 00:43:09 -07:00
WinterSnowfall
b03de97f1b
[d3d9] Expose support for D16_LOCKABLE only on AMD
2024-07-05 00:43:09 -07:00
WinterSnowfall
18035820de
[d3d9] Remove vestigial D32 support
2024-07-05 00:43:09 -07:00
Philip Rebohle
86f04a2da3
Revert "[util] Consolidate maxFrameRate options"
...
This reverts commit 1811f4b995
.
The D3D12 Beyond Good and Evil remaster uses the same exe name as the
original D3D9 game, so it turns out the separation was useful after all.
2024-06-26 00:42:31 +02:00
Robin Kertels
3145020a62
[d3d9] Only change vertex offset draw parameters when necessary
...
... Only change it when the vertex data is actually dynamically uploaded.
2024-06-21 13:18:39 +02:00
WinterSnowfall
e9fc071d95
[d3d9] Validate D3DCREATE_PUREDEVICE usage
2024-06-20 03:34:45 +00:00
Jeff
3e5eb1660f
[d3d8] Implement Dref scaling and fixed-function depth textures ( #3565 )
2024-06-14 12:10:49 +02:00
Philip Rebohle
1811f4b995
[util] Consolidate maxFrameRate options
2024-06-11 15:45:17 +02:00
Philip Rebohle
5674abe483
[d3d9] Limit frame rate to display refresh as necessary
2024-06-11 15:45:17 +02:00
Robin Kertels
7df8017e46
[d3d9] FF: Apply transform flags count to generated texture coords
...
... and fix cases where projection doesn't get applied.
2024-05-27 20:52:32 +00:00
WinterSnowfall
c98152683f
[d3d9] Tweak VCache query results
2024-05-27 19:53:19 +02:00
Robin Kertels
60cfafe027
[d3d9] Fix strange type in dynamic vertex upload
2024-05-26 04:58:47 +00:00
Robin Kertels
889802887f
[d3d9] Rework uploading dynamic sysmem buffers at draw time
...
... and handle mismatching vertex sizes and vertex strides.
2024-05-23 16:44:49 +02:00
WinterSnowfall
a1ce690c5c
[d3d9] Determine DF format support in the options parser
2024-05-23 16:37:09 +02:00
WinterSnowfall
07d007c642
[d3d9] Use customVendorId to determine the options vendorId
2024-05-23 16:37:09 +02:00
Danylo Piliaiev
58d8ea2d31
[d3d11,d3d9,util] Add a config option for reproducible VK output
...
It ensures that for the same D3D commands the output VK commands
don't change between runs.
Useful for comparative benchmarking, can negatively affect performance.
Signed-off-by: Danylo Piliaiev <dpiliaiev@igalia.com>
2024-05-23 15:20:28 +02:00
Simon McVittie
2ff2c826a5
[build] Generate pkg-config metadata to link to DXVK libraries
...
This allows dependent projects to query the version and location of DXVK
via the pkg-config interface.
The include directories aren't yet set, because the headers aren't
installed; that will follow in a subsequent commit.
The naming of these pkg-config files is based on proposed Fedora packages
for DXVK 2.0, and is not compatible with older Fedora packages for DXVK
1.x (which used the naming convention dxvk-native-d3d9 and so on).
Packagers can create symlinks such as dxvk-native-d3d9.pc -> dxvk-d3d9.pc
if they want to retain compatibility with older names.
Signed-off-by: Simon McVittie <smcv@collabora.com>
2024-05-21 19:18:12 +00:00
Simon McVittie
83436a97f2
[meson] Set the stem of library names instead of the name_prefix
...
This is necessary for compatibility with Meson's pkg module, which
generates pkg-config metadata containing "-lNAME" where NAME is the
first argument to shared_library(). Changing the name_prefix parameter
would break that.
Conversely, including .dll or .so in the first parameter would also
break that, so remove the `+dll_ext` part (in practice this is not a
functional change, because `dll_ext` is always set to an empty string).
Signed-off-by: Simon McVittie <smcv@collabora.com>
2024-05-21 19:18:12 +00:00
Ethan Lee
f33453afbb
[build] Add soversion to dxvk-native binaries
2024-05-21 19:18:12 +00:00
Robin Kertels
65dd3c7df3
[d3d9] Always enable STORAGE_BUFFER usage
...
Fixes a validation error. Drivers don't care about buffer usage bits anyway.
2024-05-21 20:32:13 +02:00
Robin Kertels
dfc3776b24
[d3d9] FF: Fix a bunch of wine tests with FF texture coordinates
2024-05-21 20:32:13 +02:00
Philip Rebohle
3420cd78ac
[dxvk] Use new Version helper to deal with driver version numbers
2024-05-20 18:30:36 +02:00
WinterSnowfall
20185a5309
[d3d9] Do not enable support for DF formats on Nvidia
2024-05-18 16:16:34 +00:00
Philip Rebohle
611dc60018
[d3d9] Do not support cube textures with depth formats
2024-05-08 17:05:48 +00:00
WinterSnowfall
b2789ab894
[d3d9] Validate DS format support during CheckDepthStencilMatch
2024-05-06 20:26:09 +00:00
Philip Rebohle
2970645f33
[dxvk] Fix push constant compatibility for pipeline libraries
...
When linking pipelines, all pipeline libraries are required to declare
the exact same set of push constants, even for stages not part of the
respective libraries.
This invalidates all fossilize databases.
2024-04-26 19:54:52 +02:00
WinterSnowfall
571948cfc0
[d3d9] Remove support for VERTEXSTATS queries
2024-04-13 19:11:00 +01:00
Joshua Ashton
0beb18ef73
[d3d9] Wait for submission when calling ReturnUnderlyingResource
2024-03-16 19:11:11 +00:00
Joshua Ashton
ef4428ab8c
[d3d9] Improve ReturnUnderlyingResource stub for 9on12
2024-03-16 18:59:03 +00:00
Robin Kertels
8b8be7c2bf
[d3d9] Fix stream count in Reset
2024-03-10 17:12:22 +01:00
Billy Laws
0776d764a4
build: Support building for ARM64EC
...
When targeting ARM64EC, both __x86_64__ and _M_X86_64 are defined but
not all x86 intrinsics are present, treat EC as regular ARM64 so the
native intrinsics are used instead.
2024-03-09 05:43:46 +00:00
Robin Kertels
15ddadc4de
[d3d9] Fix number of streams
2024-03-08 18:42:15 +01:00
Robin Kertels
72c86b8229
[d3d9] Only unbind in EndScene if the game cleared the binding
2024-03-06 22:58:48 +01:00
Robin Kertels
85215b10d6
[d3d9] Respect vertex buffer offset when dynamically uploading geometry
2024-03-06 18:13:26 +01:00
Robin Kertels
20490b678f
[d3d9] Fix missing else brackets in ResetSwapchain
2024-03-06 12:08:45 +01:00
Robin Kertels
a0e39e94fa
[d3d9] Use most recently used swapchain for GetFrontBufferData
2024-03-05 13:54:15 +00:00
Robin Kertels
eaa732d0b3
[d3d9] Place GetFrontBufferData screenshot at window position
2024-03-05 13:54:15 +00:00
Robin Kertels
49b18f03fe
[d3d9] Unbind buffers in EndScene & Reset
2024-03-05 13:52:51 +00:00
Robin Kertels
c5a37d443a
[d3d9] Handle null IBO when uploading data for draw
2024-02-20 13:04:01 -08:00
Robin Kertels
39c19e9299
[d3d9] End scene on reset
2024-02-20 12:58:03 -08:00
Robin Kertels
738fd4f895
[d3d9] Don't actually unbind buffers
2024-02-20 12:58:03 -08:00
Robin Kertels
ab3593185f
[d3d9] Fail GetRTData if src and dst have mismatching sizes
...
MySims tries to do this and needs this to fail,
otherwise mouse picking is off.
2024-02-06 11:02:43 +01:00
Echo J
fae78407a2
d3d9: Remove an unused variable
...
This fixes a gcc warning (originally reported by Saancreed)
2024-02-06 10:19:28 +01:00
Robin Kertels
5312ef1cf9
[d3d9] Upload DYNAMIC+SYSMEM vertex and index data for each draw
2024-02-05 13:13:18 +00:00
Robin Kertels
62d64bd63a
[d3d9] Don't upload buffers before Up draws
2024-02-05 13:13:18 +00:00
Tatsuyuki Ishi
e2a46a347d
[meta] Declare bool conversion operators as explicit
...
Non-explicit conversion operators in general can participate in very
surprising conversion chains. Explicit bool operator is a good place to
start with, because even with explicit they do get automatic contextual
conversion in a lot of places, e.g., if conditions.
2024-01-27 11:44:51 +01:00
Robin Kertels
0841f5faf4
[d3d9] Implement config option to disable rejecting reset
2024-01-26 18:11:25 +00:00
Robin Kertels
7d9864c077
[d3d9] Only enable ATOC when rendering to MS RT
2024-01-26 17:48:21 +00:00
Tatsuyuki Ishi
89267b62ad
[build] Remove declspec UUID annotations
...
MIDL_INTERFACE already implies struct DECLSPEC_UUID.
2024-01-23 15:44:47 +01:00
Joshua Ashton
1568c263fb
[d3d9] Only add unique modes to mode list
2024-01-19 16:28:22 +00:00
Joshua Ashton
0cd4165658
[d3d9] Add D3DDISPLAYMODEEX operator
2024-01-19 16:28:22 +00:00
Joshua Ashton
4b8e8bed6e
[d3d9] Move operators out of dxvk namespace
2024-01-19 16:28:22 +00:00
Robin Kertels
9cde0b5798
[d3d9] Fix off-by-one when copying shader defined constants
2023-12-25 14:51:02 +00:00
Philip Rebohle
ea3149801f
[d3d9] Return empty buffer slice for out-of-bounds offsets
...
Fixes #3715 .
2023-11-14 10:54:54 -08:00
Philip Rebohle
a427d22cde
[dxvk] Add Vulkan instance flag for D3D9 apps
2023-10-31 16:05:58 +01:00
WinterSnowfall
4d974685c9
[d3d9] Mark presenter for recreation on device reset with deferSurfaceCreation
2023-10-06 14:05:39 +02:00
Robin Kertels
494f7fd38d
[d3d9] Only set initial NeedsUpload for D3DPOOL_MANAGED textures
2023-09-19 13:25:12 -07:00
WinterSnowfall
0632da1935
[d3d9] Add a device compatibility mode for d3d8
2023-09-19 09:19:55 -07:00
Robin Kertels
9e26964a96
[d3d9] Divide projected textures by w if ProjectedCount is 0
2023-09-03 18:08:47 -07:00
Robin Kertels
740ebec7ee
[d3d9+dxso] Consider DMAP sampler in bit masks
2023-08-20 10:21:16 -07:00
Robin Kertels
bcaaac4ad7
[d3d9] Handle sampling from DS_READONLY properly
2023-08-18 18:59:53 -07:00
Robin Kertels
295a58afdf
[d3d9] Check depth bounds test when deciding to bind DSV
2023-08-13 20:32:20 +01:00
Robin Kertels
0746a3b91a
[d3d9] Don't resolve an image with 1 sample
2023-08-10 13:45:40 +02:00
Georg Lehmann
549bd86f03
[d3d9] use strict float emulation for nvk
...
nvk supports nir_op_fmulz/ffmaz
2023-08-06 11:01:03 +01:00
WinterSnowfall
b0b46fd075
[d3d9] Don't show/hide a software cursor
2023-08-02 01:51:19 +01:00
Joshua Ashton
a62117cd13
build: Disable stdcall alias-ing and use kill-at
...
Disable stdcall aliasing and enable kill-at to ensure our exported
functions don't have the @8, @40, etc suffixes.
This still keeps `--enable-stdcall-fixup` as otherwise the linker can
get confused trying to find exports from the .def. This does not result
in aliases being added, just for them to be found to add to the export
table.
This also switches d3d11 to use the MinGW provided dxgi.lib for linking
and d3d10 to use the MinGW provided d3d11.lib for linking.
Unfortunately the .a's we output seem to still have the @blah that we
killed so we cannot use them for internal linkage since using kill-at.
Tested that what we get out of MinGW now is what we want with dllexp.
Supercedes: #3590
Exports
```
➜ build git:(master) ✗ winedump -j export src/dxgi/dxgi.dll
Contents of src/dxgi/dxgi.dll: 129505860 bytes
Name: DXGI.DLL
Characteristics: 00000000
TimeDateStamp: 64C97A2D Tue Aug 1 22:33:33 2023
Version: 0.00
Ordinal base: 9
# of functions: 9
# of Names: 5
Addresses of functions: 00423028
Addresses of name ordinals: 00423060
Addresses of names: 0042304C
Entry Pt Ordn Name
00007C17 9 CreateDXGIFactory
00007BF3 10 CreateDXGIFactory1
00007B62 11 CreateDXGIFactory2
00007C3B 16 DXGIDeclareAdapterRemovalSupport
00007CD8 17 DXGIGetDebugInterface1
Done dumping src/dxgi/dxgi.dll
```
```
➜ build git:(fix-stdcall-32-bit) winedump -j export src/d3d11/d3d11.dll
Contents of src/d3d11/d3d11.dll: 263021637 bytes
Name: D3D11.DLL
Characteristics: 00000000
TimeDateStamp: 64C97A2E Tue Aug 1 22:33:34 2023
Version: 0.00
Ordinal base: 18
# of functions: 7
# of Names: 4
Addresses of functions: 005E3028
Addresses of name ordinals: 005E3054
Addresses of names: 005E3044
Entry Pt Ordn Name
00020045 18 D3D11CoreCreateDevice
000200AA 22 D3D11CreateDevice
0002010E 23 D3D11CreateDeviceAndSwapChain
0002025F 24 D3D11On12CreateDevice
Done dumping src/d3d11/d3d11.dll
```
Import of DXGI in D3D11
```
offset 005e1014 dxgi.dll
Hint/Name Table: 005E408C
TimeDateStamp: 00000000 (Thu Jan 1 01:00:00 1970)
ForwarderChain: 00000000
First thunk RVA: 005E4300
Thunk Ordn Name
005e4300 4 CreateDXGIFactory1
```
2023-08-01 23:35:09 +01:00
Joshua Ashton
2f72115f91
[d3d9] Keep 1 presenter per swapchain window
...
Some apps such as level editors such as Hammer World Editor, some GUI apps/launchers etc use window overrides in presentation.
Previously we'd remake a new surface every time, which was incredibly slow making these apps basically unusable.
Now we keep one surface + swapchain + image views around per window/window override we have, along with the frame latency objs + frame counter.
(Obviously an app may present to multiple windows in a frame, so for frame latency purposes we track that per-window.
2023-07-04 16:44:31 +02:00
Philip Rebohle
ccb87d5ea9
[d3d9] Port flush heuristic from D3D11
2023-06-26 01:37:46 +01:00
Alpyne
022bf1d134
[d3d9] Allow changing API name for d3d8
2023-06-24 18:18:38 +01:00
Alpyne
d6e7e3e780
[d3d9] Add DxvkD3D8Bridge for d3d8 interop
2023-06-24 17:58:49 +01:00
Joshua Ashton
3b3ebc9350
[d3d9] Rename some members to be clearer
2023-06-24 04:09:04 +01:00
Joshua Ashton
00ae118655
[d3d9] Don't use m_activeRTs in SetPixelShader
...
These are just textures, not surfaces.
2023-06-24 04:07:19 +01:00
Joshua Ashton
55be12daa5
Revert "[d3d9] Use m_activeRTs in BindFramebuffer"
...
This is only textures. Oops.
This reverts commit ff65599dba
.
2023-06-24 04:06:24 +01:00
Joshua Ashton
0e36a07a93
[d3d9] Don't mark DS as hazardous if depth write is disabled
2023-06-24 03:55:16 +01:00
Joshua Ashton
ff65599dba
[d3d9] Use m_activeRTs in BindFramebuffer
...
Can roll in the anyColorWrites this way.
2023-06-24 03:42:54 +01:00
Joshua Ashton
6b60de2d31
[d3d9] Fix unbinding RTs
...
Fixes a regression with 8560efa3c7
in ND1.
Also more optimized.
2023-06-24 03:41:31 +01:00
Joshua Ashton
362743c1d6
[d3d9] Update DS hazards when PS shader masks change
2023-06-24 02:55:38 +01:00
Joshua Ashton
7f302fc350
[d3d9] Don't mark DS hazards if not used by shader
2023-06-24 02:53:14 +01:00
Joshua Ashton
80b27f95bc
[d3d9] Fix active hazards RT only being 4 bits
2023-06-22 16:37:09 +01:00
Joshua Ashton
a791493d14
[d3d9] Don't rebind AlphaTest when changing RT if not necessary
2023-06-22 16:37:09 +01:00
Joshua Ashton
c768196251
[d3d9] Compress hazard state going into CS
...
This can potentially happen per-draw so make it as small as possible.
2023-06-22 16:37:09 +01:00
Joshua Ashton
3625c5d481
[d3d9] Optimize DS active hazard check
...
There can only be one DS, so no need to loop over.
2023-06-22 16:37:09 +01:00
Robin Kertels
60b6e98529
[d3d9] Transition DS too if there's a feedback loop
2023-06-21 15:16:43 +01:00
Robin Kertels
a20869fb93
[d3d9] Track textures in m_activeHazardsRT instead of RT
...
There's 21 textures and only 4 RTs.
Tracking the textures allows us to mask off the active texture bitfield
instead of the active render target one, potentially resulting in fewer iterations.
2023-06-21 15:16:43 +01:00
Philip Rebohle
7dbe4abb48
[d3d9] Use new presenter signal mechanism for frame pacing
2023-06-21 15:16:37 +02:00
Philip Rebohle
5d1196733b
[dxvk] Implement waiting for specific present requests
2023-06-21 15:16:37 +02:00
Philip Rebohle
ca3492570c
[dxvk] Add functionality to wait for a given present operation
2023-06-21 15:16:37 +02:00
Robin Kertels
5a1ebfa4ee
Revert "[d3d9] Only use direct buffer mapping for DYNAMIC buffers"
...
This reverts commit 1850819483
.
2023-06-20 23:08:52 +01:00
Joshua Ashton
b30a4f0cc7
[d3d9] Use FLOAT or FORCE_UNORM depth bias representation
2023-06-20 13:31:48 +01:00
Alpyne
0236e780a7
[d3d9] Fix std::hex in D3D9CommonTexture
2023-06-19 21:02:10 +01:00
Alpyne
a79772322b
[d3d9] Initialize m_mapFlags to 0
...
Can sometimes get weird default values in there.
2023-06-19 19:52:03 +01:00
Lilium
3fce9886f5
[d3d9] implement 'clampNegativeLodBias' as a conf option
2023-06-14 20:22:27 +01:00
Lilium
5d134b877a
[d3d9] implement 'samplerLodBias' as a conf option
2023-06-14 20:22:27 +01:00
Robin Kertels
c75ed86909
[d3d9] Reset vertex & index buffer in Reset
2023-06-13 22:47:55 +01:00
Robin Kertels
d1707026f9
[d3d9] Remove uninitialized device present params
2023-06-13 22:47:55 +01:00
Robin Kertels
b8d36eeacc
[d3d9] Fix losing auto depth stencil surface
2023-06-13 22:47:55 +01:00
Robin Kertels
8f740c53b4
[d3d9] Remove IsLosable
...
Redundant.
2023-06-13 22:47:55 +01:00
Robin Kertels
52ac271acb
[d3d9] Reject Reset if there's any remaining DEFAULT resources
2023-06-13 14:15:18 +01:00
Robin Kertels
a1a91dd766
[d3d9] Fix potential race when discarding systemmem textures
2023-06-11 16:57:17 +01:00
Robin Kertels
5fd025c513
[d3d9] Rename apitraceMode
...
It's not just used for apitrace and the new name
is more consistent with the D3D11 equivalent option.
2023-06-11 16:57:17 +01:00
Robin Kertels
d9d6316609
[d3d9] Remove allowDiscard hack
2023-06-11 16:57:17 +01:00
Robin Kertels
2c3f2b9ad1
[d3d9] Ignore DISCARD after device loss
2023-06-11 16:57:17 +01:00
Robin Kertels
1850819483
[d3d9] Only use direct buffer mapping for DYNAMIC buffers
...
Tests show that buffers with just D3DUSAGE_WRITEONLY are uploaded on Unlock.
2023-06-11 16:57:17 +01:00
Robin Kertels
bbaf01d9e6
[d3d9] Force staging buffer mapping for pure SWVP devices
2023-06-11 16:57:17 +01:00
Robin Kertels
4a55047dde
[d3d9] Forbid disabling SWVP on a pure SWVP device
2023-06-11 16:57:17 +01:00
Robin Kertels
52f04ca3d4
[d3d9] FF: Fix using wrong texCoord mask
2023-06-04 17:52:18 +01:00
Philip Rebohle
ab00591297
[dxvk] Introduce dxvk.tearFree option
...
And replace the old frontend-specific options.
2023-06-01 17:48:51 +02:00
Philip Rebohle
e6be0cf996
[dxvk] Rework present mode selection for swap chains
2023-06-01 17:48:51 +02:00
Philip Rebohle
1728d9e89d
[dxvk] Rework presenter creation to take a DxvkDevice
...
This way we can easily query available Vulkan features.
2023-06-01 17:48:51 +02:00
Philip Rebohle
b1b0abdbbf
[dxvk] Move presenter implementation to DXVK module
2023-06-01 17:48:51 +02:00
WinterSnowfall
8b6cbda6de
[d3d9] Properly expose the MaxVertexBlendMatrixIndex capability
2023-05-30 23:56:26 +01:00
Joshua Ashton
e0654977c9
[d3d9] Stub out D3D9On12 interfaces
...
Closes : #3445
2023-05-24 14:36:45 +01:00
Joshua Ashton
b5c18a02ae
[d3d9] Optimize UpdateAnyColorWrites for 0th case
...
This is the most common
2023-05-24 14:21:30 +01:00
Joshua Ashton
cafd104783
[d3d9] Pack RT bitmasks tightly
...
No need to waste a whole 32-bits for each entry here when we only have 4 possible RTs at a time.
2023-05-24 14:10:41 +01:00
Joshua Ashton
269bab2c34
[d3d9] Track if any color writes are enabled for an RT
...
Use this for determining whether to rebind FB and in checks, otherwise we can miss stuff for pure surface RTs
2023-05-24 14:05:13 +01:00
Joshua Ashton
075c0bf203
[d3d9] Use m_boundRTs for COLORWRITEENABLE checks
...
Also allows us to check for NULL RTs with this too and avoid extra work!
2023-05-24 13:42:42 +01:00
Joshua Ashton
8560efa3c7
[d3d9] Unbind RTs which are unwritten by a PS
...
Otherwise we can end up with feedback loops on RTs with a 0 color mask.
Closes : #3447
2023-05-24 13:40:17 +01:00
Robin Kertels
d2759c20ba
[d3d9+d3d11] Remove DEVICE_LOCAL flag when forcing cached memory
...
Otherwise DXVK removes both flags at once
and we may end up with uncached memory.
2023-05-22 23:53:01 +02:00
Joshua Ashton
f2bb1d4b69
[d3d9] Add extended swapchain interfaces
...
Allows for controling colorspace, etc.
2023-05-19 19:26:27 +01:00
Oleksii Bozhenko
80f7d2abd8
[d3d9] fix opCompositeExtract out of bound
...
Closes: https://github.com/doitsujin/dxvk/issues/3293
Signed-by: Oleksii Bozhenko <oleksii.bozhenko@globallogic.com>
2023-05-09 20:39:55 +00:00
Alpyne
2b09932d51
[d3d9] Fix crash if device is freed with bound textures
2023-05-09 00:12:35 +00:00
Robin Kertels
bef2ef69ab
[d3d9] Fix stupid variable name
2023-05-07 14:05:39 +02:00
Robin Kertels
b08665c808
[d3d9] Fix compiler warning in Clear size check
2023-05-06 14:16:54 +01:00
Robin Kertels
96e22e7c67
[d3d9+util] Remove a bunch of redundant config options
2023-05-06 14:16:54 +01:00
Robin Kertels
5443a2f9f5
[d3d9] Don't swap buffers for SWAPEFFECT_COPY & DISCARD with 1 backbuffer
2023-05-06 14:16:54 +01:00
Robin Kertels
242ac20752
[d3d9] Release DC in fallback present path
2023-05-04 18:42:04 +02:00
Robin Kertels
b4366db398
[d3d9] Implement rudimentary device loss
2023-05-03 13:04:00 +01:00
Joshua Ashton
f140d2de0d
[d3d9] Handle swapchain OOM and other errors more gracefully
...
Supercedes: #2964
2023-05-03 12:59:02 +01:00
Robin Kertels
860237e775
[d3d9] Skip 0x0 clears
2023-05-03 13:23:47 +02:00
Robin Kertels
a42643b235
[d3d9] Fall back to GDI blit for partial presents
2023-05-03 12:18:11 +01:00
Robin Kertels
990a720525
[d3d9] Handle a bunch of texture converter edge cases
2023-04-16 09:18:30 +01:00
oltolm
6b779206d9
remove unneeded definitions
2023-04-11 18:30:46 +02:00
Robin Kertels
af0009c5de
[d3d9] Use DxvkFormatInfo for video formats
...
And fix UYUY and YUY2 in the process.
2023-04-08 03:15:44 +01:00
Robin Kertels
d11878e793
[d3d9] Only apply viewport zBias if minZ is below 0.5
...
Fixes Space Marine shadows.
Tests show that Windows D3D9 (Nvidia) works like that.
2023-03-23 03:52:08 +00:00
Philip Rebohle
9bdad71dc6
[d3d11] Implement CreateWrappedResource for D3D12 textures
2023-03-18 00:50:42 +01:00
Philip Rebohle
da32453b42
[dxvk] Add submission feedback to command submissions
2023-03-16 20:59:43 +01:00
WinterSnowfall
243c2f3cf5
[d3d9] remove support for the A1/X1R5G5B5 formats
2023-03-14 13:17:13 +00:00
Robin Kertels
d14dcf5d47
[d3d9] Fix redundant copy of SWVP VS consts
...
Fixes performance regression caused by state block changes.
2023-03-10 03:24:32 +00:00
Joshua Ashton
996acbe3f2
[d3d9] Refactor state blocks to allocate dynamically.
2023-03-07 23:24:01 +00:00
Robin Kertels
1c6fc7b5b8
[d3d9] Clamp stage and type in [G,S]etTextureStageState
...
This is what happens on the Nvidia D3D9 driver.
Dawn of Magic 2 calls SetTextureStageState with a
stage > 7 and expects that to succeed.
2023-03-02 13:41:32 +00:00
Philip Rebohle
4c78964679
[d3d9] Only log QueryInterface errors once
2023-03-01 13:25:56 +01:00
Philip Rebohle
81440340ac
[d3d9,dxvk,util] Actually use dxvk::mutex
2023-03-01 13:03:43 +01:00
Robin Kertels
0d28be4ab8
[d3d9] Fix capturing lights in state block
2023-02-23 13:15:17 +00:00
Philip Rebohle
61d72eebc1
[dxgi,d3d9] Use global singleton for DXVK instances
...
No reason to have multiple of these around, and instance creation
is fairly expensive.
2023-01-23 17:17:56 +01:00
Philip Rebohle
459758c6ff
[d3d9] Don't set storage buffer usage unless necessary
...
This actually matters now to some degree.
2023-01-15 15:36:05 +01:00
Philip Rebohle
d35bf455d9
[dxvk] Rename bindResourceBuffer to bindUniformBuffer
2023-01-15 15:36:05 +01:00
Philip Rebohle
4a30933359
[dxvk] Add UBO set property to descriptor info
...
Used to explicitly propagate storage buffer bindings
to the respective UBO set.
2023-01-15 15:36:05 +01:00