Trevonn
77e7e8bfba
[util] Report NVIDIA for Star Wars Battlefront as it errors out on AMD
2023-06-20 13:23:52 +02:00
Alpyne
5d29140f74
[util] replaceNaN: Use unaligned SIMD _mm_loadu_ps
...
There is no good reason to expect games will have aligned the data they're passing in.
2023-06-19 21:13:37 +01:00
Alpyne
0236e780a7
[d3d9] Fix std::hex in D3D9CommonTexture
2023-06-19 21:02:10 +01:00
Alpyne
24dbcf8fd8
[dxso] Shared code for texbem and bem
2023-06-19 20:59:18 +01:00
Alpyne
404c984f9c
[dxso] Implement bem instruction
2023-06-19 20:59:18 +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
Trevonn
36e6a7c2e5
[util] Set maxChunkSize to 1 for GOG and fix EA App exe name
...
Similar to the other launchers the VRAM goes 600MB+ to 100MB+
2023-06-16 16:28:31 +01:00
Trevonn
c5ab5be48d
[util] Set maxChunkSize to 1 for EA App
...
Reduces GPU VRAM usage of EADesktop.exe from 162MB to 6MB
2023-06-15 19:39:28 +01:00
Paul Gofman
af9bd16b8d
[dxvk] Always reference library in VR extension providers
2023-06-15 19:07:26 +02:00
Winter Snowfall
2c014fdb34
[util] Match on the GOG version of KoF XIII as well
2023-06-15 19:06:45 +02:00
Timo Gurr
6478c10a18
[util] Set maxChunkSize to 1 for Battle.net
...
Currently when Diablo 4 is running the Battle.net launcher it uses around
600MB of VRAM. Reducing the max chunk size to 1MB reduces the memory usage
to around 150MB.
2023-06-15 19:06:26 +02:00
Philip Rebohle
7388c243d2
[dxvk] Fix incorrect fullScreenExclusive feature check
2023-06-15 17:32:05 +02:00
Lilium
bd575a4a46
[d3d11] implement 'clampNegativeLodBias' as a conf option
2023-06-14 20:22:27 +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
22f6246fd6
[util] Fix app profile grouping
2023-06-11 16:57:17 +01:00
Robin Kertels
9d6804e40a
[util] Disable direct buffer mapping for Injustice
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
9b877cf623
[util] Remove D&D - The Temple of Evil workaround
...
The game uses SWVP, so we don't need an app hack here.
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
1db2e3a6ec
[util] Re-enable direct buffer mapping for Dark Romance
...
The game uses SWVP, so we don't need the hack anymore.
2023-06-11 16:57:17 +01:00
Robin Kertels
2efd3f3698
[util] Re-enable direct buffer mapping for RE games
...
I cannot reproduce the stalls anymore.
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
Joshua Ashton
3fddc364ee
[util] Fix UTF8 encodeTypedChar for 4 byte chars
...
Some flipped logic here...
2023-06-10 13:58:33 +02:00
Philip Rebohle
4d254b13be
[dxgi] Unlock presenter lock early during presentation
...
If SetGammaControl and Present are called at the same time, we'll
otherwise have a deadlock due to reversed lock order.
Fixes #3458 .
2023-06-05 17:02:15 +02:00
Joshua Ashton
d241daa0b1
[util] Add app profile for Fallout 76
2023-06-05 03:00:53 +02:00
Eric Sullivan
2e70a2b07d
[util] Set maxChunkSize to 1 for the Rockstar launcher and social club
...
Currently when Red Dead Redemption 2 is running the Rockstar launcher,
and social club each use over 600MB of VRAM. The root cause of this is
DXVK creating two memory pools of 256MB for read, and read/write resources.
Reducing the max chunk size to 1MB reduces the memory usage of each to
around 40MB.
2023-06-05 02:17:26 +02:00
Robin Kertels
52f04ca3d4
[d3d9] FF: Fix using wrong texCoord mask
2023-06-04 17:52:18 +01:00
Joshua Ashton
c585ea251e
[dxso] Respect all PS input elements for registers
...
Fixes shadows in Test Drive Unlimited 2.
Closes : #3469
2023-06-02 23:12:22 +02: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
85d52ccb88
[dxvk] Implement dynamic present mode switching
...
This way, we don't need to recreate the swap chain when the app switches
between vsync enabled and disabled. Currently only works when running
bleeding-edge Gamescope with ENABLE_GAMESCOPE_WSI=1.
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
Philip Rebohle
be875cd7e6
[dxvk] Enable VK_EXT_swapchain_maintenance1 and surface_maintenance1
2023-06-01 17:48:51 +02:00
WinterSnowfall
8b6cbda6de
[d3d9] Properly expose the MaxVertexBlendMatrixIndex capability
2023-05-30 23:56:26 +01:00
Robin Kertels
4b10846008
[dxso] Fix RT mask for SM1
2023-05-26 04:28:49 +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
Blisto91
b9b2db510e
[util] Limit fps for some Tomb Raider games
2023-05-24 14:31:38 +02:00
Lilium
d5c6ae2e4d
[dxvk] dxvk_adapter: implement macro to check for feature need in checkFeatureSupport
2023-05-24 11:53:34 +01:00
Lilium
633f6663a4
[dxvk] fix copy mistake in dxvk_adapter
2023-05-24 11:53:34 +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
Robin Kertels
1a2e724c16
[util] Enable apitrace mode for Tomb Raider Anniversary
...
... and Underworld.
2023-05-22 12:24:49 +02:00
Blisto91
6449f583f8
[util] Set dcSingleUseMode to false for SnowRunner
2023-05-21 16:05:41 +02:00
Joshua Ashton
f2bb1d4b69
[d3d9] Add extended swapchain interfaces
...
Allows for controling colorspace, etc.
2023-05-19 19:26:27 +01:00
Joshua Ashton
495dc75ab2
[wsi] Pull out NormalizeDisplayMetadata
2023-05-19 19:26:27 +01:00
Paul Gofman
550e04c579
[dxgi] Preserve system monitor sort order in enumMonitors()
2023-05-19 18:17:40 +02:00
WinterSnowfall
d4a7346198
[dxvk] Add configurable HUD opacity
2023-05-19 18:11:25 +02:00
Blisto91
99b367cdd6
[util] Set floatEmulation to Strict for Halo Online
2023-05-18 17:40:01 +01:00
Blisto91
65520fa18e
[util] Fix BlazBlue Centralfiction config
2023-05-16 18:56:23 +02:00
Joshua Ashton
f30376a1e4
[d3d11] Fix min luminance of HDR Metadata
...
This should be a multiply instead of a divide. Values are 1/10000th of a nit (0.0001 nit).
2023-05-13 21:16:29 +00:00
Philip Rebohle
cae0a1cef3
[meta] Release 2.2
2023-05-12 11:26:07 +02:00
Philip Rebohle
14eb469005
[dxgi] Be more robust against monitor enumeration issues.
...
If there are monitors on the system that are not associated with
any adapter, enumerate all monitors for all adatpers. May solve
some issues if device filter options are used on multi-GPU systems.
2023-05-11 16:38:45 +02: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
Paul Gofman
83a294285e
[dxgi] Only enumerate outputs which belong to the adapter or associated iGPU
2023-05-05 16:44:51 +02:00
Robin Kertels
242ac20752
[d3d9] Release DC in fallback present path
2023-05-04 18:42:04 +02:00
Robin Kertels
b357d16940
[util] Enable deviceLost for DC Universe Online and GTA IV
2023-05-03 13:04:00 +01:00
Robin Kertels
b4366db398
[d3d9] Implement rudimentary device loss
2023-05-03 13:04:00 +01:00
Blisto91
b5f43063b1
[util] Spoof Nvidia for Modern Warfare 2 Campaign Remastered
2023-05-03 13:02:08 +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
9ce1c4df0d
[dxvk] Update tracked rtLayouts when changing image layout
2023-05-03 13:23:47 +02:00
Robin Kertels
860237e775
[d3d9] Skip 0x0 clears
2023-05-03 13:23:47 +02:00
Robin Kertels
ceb3a7f8c6
[dxvk] Do direct FB resolve if resolve format is UNDEFINED
...
If the format is undefined, we use the format of each image
which is obviously also view compatible with the imge.
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
Philip Rebohle
5c8ed491ab
[dxvk] Rewrite thread wrapper
...
Addresses some issues raised in #3378 .
2023-04-26 10:48:47 +02:00
Joshua Ashton
b44c5bbd18
[dxgi] Fallback to P3 color primaries for HDR displays without chroma info in edid
2023-04-21 04:21:16 +01:00
mbriar
16d2a6045c
[util] Switch Nioh deferSurfaceCreation from dxgi to d3d9
...
This game seems to behave similar to all the Tecmo Koei Atelier games
and not deferring surface creation for d3d9 prevents VRR from working on
X11.
2023-04-19 16:42:42 +02:00
mbriar
1971a5d187
[util] Also add d3d9.deferSurfaceCreation for Atelier Ryza 3
...
Reported to help with VRR, see https://github.com/ValveSoftware/Proton/issues/6648#issuecomment-1514394149
2023-04-19 16:42:42 +02:00
Philip Rebohle
e074d83d0b
[dxvk] Introduce GetContext method to retrieve immediate context.
...
Bypasses vtable hooks when retrieving the immediate context internally.
Remaining uses of GetImmediateContext are fine since those only interact
with public methods.
2023-04-18 12:42:24 +02:00
Robin Kertels
990a720525
[d3d9] Handle a bunch of texture converter edge cases
2023-04-16 09:18:30 +01:00
Rémi Bernon
0cf563d5df
[dxgi] Leave current fullscreen mode when SetFullscreenState changes monitors
...
This fixes RiME not moving its window when output display is
changed in the game settings.
2023-04-14 00:41:18 +02:00
Florian Will
01dc9ddc7d
[util] Add new "Zusi 3" exe filename
...
In addition to the legacy "ZusiSim.exe" executable, the recent 3.5
release added a 64-bit "ZusiSim.64.exe" executable. This is now the
default executable when launching the game in Steam. The game is
unplayable without this option, so update the regex for Zusi 3.
Fixes #3250 .
2023-04-13 13:37:07 +02:00
oltolm
6b779206d9
remove unneeded definitions
2023-04-11 18:30:46 +02:00
Blisto91
8508633ba3
[util] Disable allowDirectBufferMapping for Dark Romance: Vampire in Love
2023-04-11 08:37:50 +01: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
31af522cbc
[dxvk] Add VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM
2023-04-08 03:15:44 +01:00
Philip Rebohle
d9a6b40ae3
[dxvk] Create and copy temporary image for resolves as necessary
...
Fixes #3337 .
2023-04-06 21:04:56 +02:00
Tatsuyuki Ishi
6d14fffdbd
[spirv] Declare defaulted copy and move constructor for SpirvCodeBuffer.
...
If a type has a destructor it will not get an implicit move constructor.
But if we declare a defaulted move constructor then we will get the copy
constructor deleted. So declare both to be defaulted.
Cuts 8.8% off shader translation time during loading in Overwatch 2.
2023-04-06 10:23:11 +02:00
Blisto91
3ce3209e3e
[util] Set syncInterval to 1 for Crash Bandicoot N sane trilogy
2023-04-05 16:25:05 +01:00
Philip Rebohle
f212cc8f7d
[dxvk] Only enable dynamic MSAA state if sample shading is enabled
...
Otherwise, create a more specialized fragment output library on demand.
May help RADV since dynamic alpha-to-coverage triggers a less efficient
code path.
2023-04-04 17:34:07 +02:00
Philip Rebohle
306919047b
[dxvk] Log driver name in addition to version
...
Fixes #3313 .
2023-03-27 15:44:19 +02:00
Philip Rebohle
977669c613
[util] Enable cached dynamic vertex/index buffers in GTA V
...
Fixes #3311 .
2023-03-25 22:40:43 +01:00
Zhiyi Zhang
631171cf45
[util] Disable nvapiHack for Tom Clancy's Ghost Recon Breakpoint.
...
Otherwise, it shows a DirectX error dialog and exits when using an NVIDIA GPU.
2023-03-25 22:38:07 +01:00
František Zatloukal
1a5afc77b1
[util] Include cstdint to fix compilation with GCC 13
2023-03-23 23:37:10 +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
Blisto91
b0ed97e070
[util] Disable nvapiHack for Diablo 4
2023-03-22 17:10:18 +01:00
Philip Rebohle
3d5becaf6a
[d3d11] Implement Acquire/ReleaseWrappedResource
2023-03-18 00:50:42 +01:00
Philip Rebohle
5595844f75
[dxvk] Add explicit buffer/image memory barrier methods
...
Useful for interop.
2023-03-18 00:50:42 +01:00
Philip Rebohle
9bdad71dc6
[d3d11] Implement CreateWrappedResource for D3D12 textures
2023-03-18 00:50:42 +01:00
Philip Rebohle
3c99314332
[d3d11] Implement CreateWrappedResource for D3D12 buffers
2023-03-18 00:50:42 +01:00
Philip Rebohle
fa8cf50263
[dxvk] Implement functionality to import foreign buffers
2023-03-18 00:50:42 +01:00
Philip Rebohle
3f9d2269f6
[d3d11] Synchronize queue submissions for 11on12 devices as necessary
...
When the app explicitly calls Flush, Signal or Wait, we need to wait
for the submission to actually take place so that subsequent D3D12
submissions execute in the correct order.
2023-03-18 00:50:42 +01:00
Philip Rebohle
6432787ac3
[d3d11] Implement D3D11on12 device creation
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
Philip Rebohle
27f3648a44
[dxvk] Check instance extensions for feature enablement as necessary
2023-03-16 20:59:43 +01:00
Philip Rebohle
35895ba05b
[dxvk] Add callback to lock submission queue
...
Can be used to perform additional synchronization as necessary.
2023-03-16 20:59:43 +01:00
Philip Rebohle
56a8fa2e6f
[dxvk] Implement functionality to import existing Vulkan device
2023-03-16 20:59:43 +01:00
Philip Rebohle
d8f3a1c83d
[dxvk] Rework device queue initialization
2023-03-16 20:59:43 +01:00
Philip Rebohle
ef9d5048f3
[dxvk] Rework instance creation
...
Allows importing foreign Vulkan instances.
2023-03-16 20:59:43 +01:00
Philip Rebohle
f50f5bc9bc
[vulkan] Allow importing existing Vulkan dispatch tables
2023-03-16 20:59:43 +01:00
Philip Rebohle
687d32cac5
[dxvk] Fix memory reporting derp
2023-03-15 02:14:54 +01:00
WinterSnowfall
243c2f3cf5
[d3d9] remove support for the A1/X1R5G5B5 formats
2023-03-14 13:17:13 +00:00
Philip Rebohle
05fb634f91
[util] Use __wine_dbg_output if available
2023-03-13 16:32:32 +01:00
Blisto91
3a123222e5
[util] Enable cached vertex buffers for SpellForce 3
2023-03-13 13:22:39 +01:00
Philip Rebohle
4faa598e09
[dxvk] Report memory used rather than allocated for heap properties
...
We can do this at least for DXVK's own memory allocations.
2023-03-12 13:59:47 +01:00
Philip Rebohle
6783123654
[dxgi] Use heap size to determine reservable memory
...
Budgets can change dynamically, so this should be more robust.
2023-03-12 13:59:17 +01: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
Blisto91
8ecd1b3b6b
[util] enableDialogMode for Codename Panzers Phase One/Two
2023-03-07 22:51:23 +00:00
Philip Rebohle
7f21a6c491
[dxvk] Accumulate query data into query object
...
And do so when adding additional query handles, in order
to avoid allocating queries indefinitely if End is never
called, which Halo:MCC supposedly does.
Co-authored-by: Sam Edwards <CFSworks@gmail.com>
2023-03-06 12:35:22 +01:00
Philip Rebohle
e430ff5cfd
[dxvk] Use small_vector to store query handles.
2023-03-06 12:35:22 +01:00
Joshua Ashton
1acf885109
[dxvk] Call SDL_Vulkan_LoadLibrary in getInstanceExtensions for SDL WSI
...
Closes : #3275
2023-03-03 00:14:22 +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
Guy1524
5609c5e076
[util] Reduce maximum chunk size for WILD HEARTS.
...
Co-authored-by: Blisto91 <47954800+Blisto91@users.noreply.github.com>
2023-03-01 15:38:14 +01:00
Philip Rebohle
55e7cb1d54
[dxgi] Only log QueryInterface errors once
2023-03-01 13:25:56 +01:00
Philip Rebohle
4c78964679
[d3d9] Only log QueryInterface errors once
2023-03-01 13:25:56 +01:00
Philip Rebohle
cc78276897
[d3d11] Only log QueryInterface errors once
2023-03-01 13:25:56 +01:00
Philip Rebohle
aa92cf48f5
[util] Add function to cache QueryInterface errors
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
Philip Rebohle
2356d34f2e
[d3d11] Create video context resources on demand
...
Saves another memory allocation that we will often not need.
2023-03-01 12:37:06 +01:00
Philip Rebohle
f4b91817fe
[dxvk] Create dummy sampler and buffer on demand
...
We only need the dummy buffer for transform feedback, all other cases
are handled by null descriptors. May save a memory allocation.
2023-03-01 12:10:48 +01:00
Philip Rebohle
2be0d6842e
[dxvk] Add option to limit memory chunk size
2023-03-01 11:53:18 +01:00
Robin Kertels
0d28be4ab8
[d3d9] Fix capturing lights in state block
2023-02-23 13:15:17 +00:00
Blisto91
081181313e
[util] Limit Battle Fantasia Revisited Edition to 60fps ( #3256 )
2023-02-18 10:54:14 +01:00
TacoDeBoss
caf31033d7
[util] Far Cry 2: Set VendorId to Nvidia, enable apitraceMode ( #3241 )
2023-02-07 12:14:48 +01:00
Paul Gofman
2263dcad95
[d3d11] Improve video processor caps query stubs
2023-01-31 13:39:09 +01:00
Jens Peters
41b1efd7ce
[dxgi] Fix potential division by zero in log statement
...
Apparently 0/0 is legal and should be interpreted as 0/1.
2023-01-28 00:51:01 +01:00
Philip Rebohle
c6111eaf61
[dxvk] Fix small_vector size
...
Kind of harmless since we're not using this much.
2023-01-27 05:27:49 +01:00
Philip Rebohle
2abc102d2c
[meta] Release 2.1
2023-01-24 14:54:09 +01: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
d4143429c4
[util] Add Singleton helper
2023-01-23 17:17:43 +01:00
Philip Rebohle
255ab1a63c
[hud] Display more useful driver info in HUD
...
Vulkan versions are irrelevant anyway, not sure why we
ever displayed that in the first place.
2023-01-23 00:10:39 +01:00
Philip Rebohle
3128f4ea8e
[dxgi] Implement IDXGIVkInteropFactory for DXGI factory
2023-01-22 20:04:39 +01:00
Philip Rebohle
0ee69fef00
[dxgi] Define IDXGIVkInteropFactory interface
2023-01-22 19:57:17 +01:00
Philip Rebohle
41ee092b97
[dxvk] Get rid of global timeline semaphore
...
Timeline semaphores are broken on 32-bit Proton, so just use the existing
command list binary semaphore to synchronize sparse binding operation.
This will introduce some additional graphics queue submissions around
sparse binding, but since that is basically unused it's not a concern.
2023-01-21 13:15:09 +01:00
Philip Rebohle
d020f4451a
[dxvk] Invalidate all v16 cache files
...
We were randomly writing bogus data in an irrecoverable way,
so in order to not cause any problems for users, invalidate
all caches created with this version.
2023-01-21 01:24:02 +01:00
Philip Rebohle
3d24560af7
[dxvk] Fix reading out-of-bounds memory in state cache
...
Fixes #3196 , not to mention that this was god-awful code anyway.
2023-01-21 01:14:45 +01:00
Philip Rebohle
0af5ececa6
[dxvk] Also reset descriptor pool when only one pool is in use
...
This way we can often avoid allocating additional descriptor pools.
2023-01-20 15:23:25 +01:00
Philip Rebohle
eacb8da9f7
[dxvk] Tweak descriptor pool numbers
...
Increases the descriptor pool size on 64-bit, but also makes
significantly better use of descriptor pool memory in situations
with very high draw counts and many UBO descriptor set updates.
2023-01-20 14:34:46 +01:00
Philip Rebohle
4d0d455895
[vulkan] Try loading winevulkan.dll before vulkan-1.dll
...
Should bypass issues with third-party overlays trying to hook Vulkan.
2023-01-18 18:10:57 +01:00
Philip Rebohle
c6668ffbaa
[dxvk] Drop shader module workaround for compute pipelines.
...
This was a bug in early Nvidia development drivers, but has been fixed since.
2023-01-18 15:56:00 +01:00
Blisto91
906b931e61
[util] Disable unmapping for BlazBlue Centralfiction
2023-01-17 20:49:26 +01:00
Philip Rebohle
d7a4ddb5d0
[d3d11] Implement more accurate resource tracking on deferred contexts
...
Allows us to track chunks that access any given tracked resource more
accurately and flush as needed, e.g. if a staging buffer is written at
the start of a long command list.
2023-01-17 15:01:06 +01:00
Philip Rebohle
cf5adb8b12
[d3d11] Improve flushing around deferred context submissions
2023-01-17 15:01:06 +01:00
Philip Rebohle
591e2df701
[d3d11] Consider flushing after each CS chunk
...
This way we will never end up with overly long command lists.
2023-01-17 15:01:06 +01:00
Philip Rebohle
2a3d7ee7dc
[d3d11] Use new flush heuristic
2023-01-17 15:01:06 +01:00
Philip Rebohle
f952418958
[d3d11] Determine pending commands based on sequence number
...
We get this for free and this allows us to query how many CS chunks
have been emitted since the last flush.
2023-01-17 15:01:06 +01:00
Philip Rebohle
0ac247c89c
[util] Add helper class for common flush heuristic
2023-01-17 15:01:06 +01:00
Philip Rebohle
741cc493c6
[dxvk] Increase maximum number of command buffers in flight
2023-01-17 15:01:06 +01:00
Philip Rebohle
f7aa310fdd
[dxvk] Disable pipeline lifetime tracking for RADV
...
Seems like this is not needed on this driver, so let's just use
the fast path by default. Makes the current implementation work
with 32-bit games as well since caching does not work yet.
2023-01-17 14:02:38 +01:00
Philip Rebohle
421d7d9077
Revert "[vulkan] Use fence for acquiring a swap chain image"
...
Breaks things and we don't really need this right now anyway.
2023-01-16 23:16:38 +01:00
Philip Rebohle
599357721a
[hud] Support HDR color spaces
...
Blending is broken if we need to do encoding in the shader, but we
cannot do much about that without changing the rendering process,
so this will have to do for now.
2023-01-16 18:04:18 +00:00
Philip Rebohle
0e503ce795
[vulkan] Log swap chain color space
2023-01-16 18:04:18 +00:00
Philip Rebohle
1482715fd1
[vulkan] Use fence for acquiring a swap chain image
...
In practice, drivers will block here anyway.
2023-01-16 16:20:56 +01:00
Joshua Ashton
132bc529c3
[dxgi] Only allow colorspace punting if we started in sRGB
2023-01-16 13:45:03 +01:00
Joshua Ashton
28ee6867be
[dxgi] Expose only sRGB when enableHDR is disabled
...
Death Stranding: Director's Cut crashes if HDR was last enabled in-game and CheckColorSpaceSupport reports support for HDR but it is not globally enabled in DXGIOutput::GetDesc1's ColorSpace.
It seems safer to just lock HDR behind an option to avoid any teething issues like this. It sucks, but it also makes sense in a way.
2023-01-16 13:45:03 +01:00
Joshua Ashton
bb75e214d6
[dxgi] Store top-level DxgiFactory in DxgiSwapChain
...
Can do this now that we tossed the old stuff that depended on the swapchain factory being resident in D3D11.
2023-01-16 13:45:03 +01:00
Joshua Ashton
9010f11adf
[dxgi, d3d11] Remove support for legacy IWineDXGISwapChainFactory interface
...
vkd3d-proton 2.8 released last year with support for the new swapchain
interface.
No need to keep support for this legacy interface hanging around when
it complicates adding DxgiOptions support to the swapchain.
2023-01-16 13:45:03 +01:00
Philip Rebohle
af05265cb6
[dxvk] Set thread priority for background workers
...
We accidentally lost this somehow.
2023-01-15 15:54:03 +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
a8f9fdb21d
[dxvk] Rearrange descriptor sets
...
This allows us not to unnecessarily dirty the FS UBO set when
changing tetxure bindings, leading to a cleaner separation.
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
Philip Rebohle
6f194b0e7b
[d3d11] Bind UAV counter buffers as views
2023-01-15 15:36:05 +01:00
Philip Rebohle
82f500250f
[hud] Bind data buffers as views
2023-01-15 15:36:05 +01:00
Philip Rebohle
c347bd4d8b
[dxvk] Allow creating buffer views with undefined format
2023-01-15 15:36:05 +01:00
Philip Rebohle
92de3f3f5f
[d3d11] Add missing context locks
2023-01-14 18:40:41 +01:00
Philip Rebohle
1c2df54bdf
[dxvk] Improve logging in case of memory errors
2023-01-14 03:39:55 +01:00
Philip Rebohle
2922b780c1
[dxvk] Properly handle bufferImageGranularity for images
...
Fixes validation errors about dedicated allocations being
bigger than the image's memory requirement on Nvidia.
2023-01-14 03:39:55 +01:00
Robin Kertels
97a91c816f
[d3d9] Disable instancing for non-indexed draws
2023-01-13 21:58:41 +00:00
Philip Rebohle
3a84838ac4
[hud] Display approximate progress when compiling shaders
2023-01-13 16:43:27 +01:00
Philip Rebohle
c978e62ec8
[dxvk] Implement better priority system for background shader compiles
...
Reduces the number of workers that perform background optimization,
which may reduce the performance impact when encountering a large
number of new pipelines at once.
2023-01-13 16:43:27 +01:00
Blisto91
cc9266edaa
[util] Add config for Alien Rage
...
Reporting a GTX 295 puts us into the highest behind the scenes graphics settings preset bucket and prevents the shadow issue with `FloatingPointRenderTargets` set to false in the lower preset bucket.
NvapiHack needs to be disabled on Linux since the game pings it in the Windows system folder and want's the VendorId to match your GPU. Else the issue will still happen on Nvidia Linux
2023-01-13 14:15:54 +01:00
Philip Rebohle
070a340115
[dxvk] Remove path to look up optimized pipeline in cache
...
For some reason this sometimes takes several milliseconds, which
leads to noticeable stutter. Linking a pipeline is more consistent.
2023-01-13 11:40:01 +01:00
Philip Rebohle
a22d70e184
[dxvk] Remove unused compileComputePipeline function
2023-01-12 17:35:05 +01:00
Philip Rebohle
e5157a5360
[dxvk] Add pre-rasterization pipeline libraries to the state cache
...
This allows compiling tessellation or geometry shader pipelines
early while still using the pipeline library path.
Also removes compute shaders. Since API-provided compute shaders
are always compiled early, supporting them is no longer needed.
2023-01-11 11:48:16 +01:00
Philip Rebohle
28ae85b7ab
[dxvk] Enable creating full pre-rasterization pipeline libraries
2023-01-11 11:48:16 +01:00
Philip Rebohle
17529101d5
[dxvk] Allow creating pipeline libraries with more than one shader
2023-01-11 11:48:16 +01:00
Philip Rebohle
f9ff96d727
[dxvk] Implement checks for pre-raster pipeline library compatibility
2023-01-11 11:48:16 +01:00
Philip Rebohle
b916dc04e5
[dxbc] Fill in patch vertex count info
2023-01-11 11:48:16 +01:00
Philip Rebohle
5e42230b95
[dxvk] Add patch vertex count to shader info struct
2023-01-11 11:48:16 +01:00
Philip Rebohle
f76a7c285c
[dxvk] Rework DxvkShaderPipelineLibrary to work with multiple shaders
2023-01-11 11:48:16 +01:00
Philip Rebohle
8011a40843
Revert "[dxbc] Handle dead code in shader binaries"
...
Apparently this regressed something, but the reporter who asked
for this fix in the first place did not specify what, so let's
just revert this and break the whole thing again until we get
something to actually work with.
This reverts commit 5115d80d51
.
2023-01-10 20:37:22 +01:00
Philip Rebohle
8052347a22
[dxvk] Keep more empty system memory chunks alive
2023-01-10 03:42:37 +01:00
Philip Rebohle
0342a25e61
[d3d9,dxso] Add d3d9.forceSampleRateShading option
2023-01-09 18:35:02 +01:00
Philip Rebohle
e426ec09a1
[d3d11,dxbc] Add d3d11.forceSampleRateShading option
2023-01-09 18:35:02 +01:00
Philip Rebohle
06fb93daf0
[dxvk] Only create state cache file on demand
...
If no pipelines are ever written to it, we should not create
the cache file in the first place.
2023-01-09 18:31:18 +01:00
Philip Rebohle
6a4fe06ac6
[dxvk] Fix incorrect flags for null fs pipeline layout
2023-01-09 18:31:18 +01:00
Joshua Ashton
5206d97710
[dxgi] Workaround UE4 DX11 + HDR crashes
...
Unreal Engine 4 titles use AGS/NVAPI to try and enable
HDR globally.
They can key this off IDXGIOutput::GetDesc1's ColorSpace
being HDR10.
Many of these UE4 games statically link against AGS.
This is a problem as when UE4 tries to enable HDR via AGS,
it does not check if AGSContext, and the display info etc
are nullptr unlike the rest of the code using AGS.
So we need to special-case UE4 titles to disable reporting a HDR
when they are in DX11 mode.
The simplest way to do this is to key off the fact that all
UE4 titles have an executable ending with "-Win64-Shipping".
We check if d3d12.dll is present, to determine what path in
UE4 we are on, as there are some games that ship both and support HDR.
(eg. The Dark Pictures: House of Ashes, 1281590)
Luckily for us, they only load d3d12.dll on the D3D12 render path
so we can key off that to force disable HDR only in D3D11.
2023-01-09 12:54:28 +00:00
Blisto91
3ed0a4fd43
[util] Set Secret World Legends launcher to SM 2
2023-01-08 10:47:04 +01:00
Beyley Thomas
c11a63f5e5
[wsi] Add GLFW backend
2023-01-08 10:36:25 +01:00
Hunter Kvalevog
3491895960
[dxvk] Remove SDL dummy window
...
SDL >= 2.0.9 permits passing a nullptr window to
SDL_Vulkan_GetInstanceExtensions, so there's no
point in going though the work of creating a
window just to call this function.
2023-01-07 22:43:32 +00:00
Philip Rebohle
196fefec4c
[dxvk] Enable dynamic multisample state if supported by the device
...
Eliminates stutter in situations where sample rate shading is used with MSAA.
2023-01-06 23:48:31 +01:00
Philip Rebohle
f269cde749
[dxvk] Enable device features for dynamic multisample state
2023-01-06 23:48:31 +01:00
Philip Rebohle
389634f9b9
[d3d11] Fix D3D11Texture2D reference counting
2023-01-06 22:52:29 +01:00
Philip Rebohle
5115d80d51
[dxbc] Handle dead code in shader binaries
...
We should not emit any code when not inside a function.
Fixes #3154 .
2023-01-06 20:49:13 +01:00
Joshua Ashton
c10b53ed3e
[dxgi] Add dxgi.enableHDR option
2023-01-06 17:27:38 +01:00
Joshua Ashton
3375cdf1fa
[dxgi] Initialize DxgiOptions before DxgiMonitorInfo
...
Needed to we can access DxgiOptions inside of DxgiMonitorInfo for the dxgi.enableHDR property coming up in a future commit.
2023-01-06 17:27:38 +01:00
Joshua Ashton
f25475d05e
[dxgi] Normalize display metadata to something rational
...
Sometimes we can't get an EDID if things aren't plumbed fully, or some displays just have broken EDIDs.
This accounts for both of those cases by using some dummy data if we are missing information.
Fixes value reporting to match Windows on common displays such as LG OLEDs.
2023-01-06 17:27:38 +01:00
Joshua Ashton
f453d6ee2a
[dxgi] Implement DXGIOutput::GetDesc1's ColorSpace
...
Adds the ability to punt the global colorspace into HDR from SetColorSpace1.
We have no way of checking the actual Windows colorspace as the
only public method for this *is* DXGI which we are re-implementing.
So we just pick our color space based on the DXVK_HDR env var
and the punting from SetColorSpace1.
We might expand on this in future, but this is good enough for an
initial implementation.
2023-01-06 17:27:38 +01:00
Robin Kertels
f94b42f23f
[d3d9] Dont use GenerateDrawInfo in DrawPrimitiveUp
...
This is confusing because it looks like a race condition
at first glance.
2022-12-30 19:29:34 +00:00
Philip Rebohle
12901b52f1
[dxvk] Split barriers with very large VkDependencyInfo structures
...
Works around an AMD driver bug. Fixes #3138 .
2022-12-20 03:10:44 +01:00
Philip Rebohle
f4f4f3647f
[d3d11] Do not create storage image views with swizzle
...
This happens when a game uses A8_UNORM UAVs. Vulkan doesn't allow this,
and it's not meaningful for stores anyway, we'd need shader emulation.
2022-12-20 02:20:11 +01:00
Joshua Ashton
c7be18cb26
[d3d11] Implement SetHDRMetadata
2022-12-19 22:15:18 +01:00
Joshua Ashton
e5418a956a
[vulkan] Add setHdrMetadata method to Presenter
2022-12-19 22:15:18 +01:00
Joshua Ashton
731bf84edd
[dxvk] Enable VK_EXT_hdr_metadata
2022-12-19 22:15:18 +01:00
Joshua Ashton
4335eccae9
[dxvk] Enable VK_EXT_swapchain_colorspace
2022-12-19 22:15:18 +01:00
Joshua Ashton
33acf58ac7
[d3d11] Implement CheckColorSpaceSupport and SetColorSpace
2022-12-19 22:15:18 +01:00
Joshua Ashton
50054d4675
[vulkan] Add supportsColorSpace method to Presenter
2022-12-19 22:15:18 +01:00
Joshua Ashton
fd661d587e
[vulkan] Simplify args to Presenter GetSupported* methods
2022-12-19 22:15:18 +01:00
Robin Kertels
18b0ef697c
[dxvk] Rework SetEventOnCompletion
...
* Create the waiter thread on demand
* Don't wake up the waiter thread every 10ms
when no events are queued
* Wait on caller thread when hEvent = null
2022-12-16 17:37:19 +01:00
Philip Rebohle
c55c09368b
[d3d11] Only store low 8 bits of stencil reference
...
Seems to match behaviour of the D3D11 runtime, in that OMGetDepthStencilState
will not retain the high bits.
Found by CME. Should fix #1784 .
2022-12-11 19:51:57 +01:00
Blisto91
7b2024888e
[util] disable unmapping for Final Fantasy XIV d3d9
2022-12-11 14:01:27 +01:00
Joshua Ashton
c0d843c578
[wsi] Fix overwriting colorimetry info to NULL
2022-12-08 06:48:30 +00:00
Philip Rebohle
b838b65516
[d3d9] Correctly mask alpha reference push constant
...
We accidentally lost this during the rework, since the initial
implementation scaled the alpha ref value on the CPU.
Fixes #3123 .
2022-12-06 21:25:55 +00:00
Blisto91
4a4d880130
[util] Set TRAHA Global to Intel vendor id
2022-12-04 23:06:59 +01:00
Robin Kertels
522909b165
[d3d9] Don't set NeedsReadback when dirtying mip maps
...
It's impossible to lock non 0 mips anyway.
2022-12-03 15:18:40 +00:00
Philip Rebohle
573be24269
[wsi] Fix crash when parsing EDID fails
...
If info is null then we shouldn't pass it around.
Also improve formatting a bit.
2022-12-02 00:23:38 +00:00
Philip Rebohle
9f70666777
[build] Allow standalone DXGI builds
2022-11-28 13:48:05 +01:00
Hans-Kristian Arntzen
42332f7fb8
[dxgi] Fix IDXGISwapchain::CheckColorSpaceSuport
2022-11-28 12:45:34 +01:00
Philip Rebohle
4f90d7bf5f
[dxbc,d3d11] Don't access shex chunk if it is not defined
2022-11-25 12:45:32 +01:00
Joshua Ashton
d01c9cb6d4
[wsi] Free edid info after parsing
2022-11-25 08:44:39 +00:00
Philip Rebohle
ebd29007d4
[dxgi] Actually unlock monitor info
...
Fixes some deadlocks.
2022-11-21 20:24:15 +01:00
Philip Rebohle
c6611dffa7
Revert "[dxbc] Move shex check to constructor"
...
Breaks stuff for unknown reasons.
2022-11-21 19:35:21 +01:00
Joshua Ashton
f0a0e1b964
[dxgi] Report display metadata in IDXGIOutput6::GetDesc1
2022-11-21 17:26:53 +01:00
Joshua Ashton
aa71e7e323
[dxgi] Cache display metadata + colorimetry in DXGI_VK_MONITOR_DATA
2022-11-21 17:26:53 +01:00
Joshua Ashton
fabe4a85e3
[wsi] Add parseColorimetryInfo helper
2022-11-21 17:26:53 +01:00
Philip Rebohle
3b9235fe23
[util] Set max frame latency to 1 for Sonic Frontiers
...
Seems like the only reason this game passes QA is because there *was* no
QA. Seriously broken when GPU-bound even on Windows.
2022-11-21 17:18:01 +01:00
Robin Kertels
4796eb0b0d
[d3d9] Implement capturing lights in state blocks
2022-11-21 16:06:49 +00:00
Robin Kertels
1a3b576d35
[util] Implement bit vector
2022-11-21 16:06:49 +00:00
Robin Kertels
d0a10cc9f8
[d3d9] Handle DS texture uploads
2022-11-21 15:59:25 +00:00
Blisto91
2c53459f4c
[util] disable floatControls for Bad Company 2
2022-11-21 13:13:57 +01:00
Robin Kertels
dd7ec24269
[dxbc] Move shex check to constructor
...
Otherwise we dereference a null pointer when
accessing the DxbcProgramInfo.
2022-11-21 01:49:35 +01:00
Robin Kertels
3393c5f4ff
[d3d9] Only upload mip 0 of managed automipgen textures
2022-11-19 17:34:02 +00:00
Philip Rebohle
a130146f15
[dxvk] Remove dead enableRtOutputNanFixup option
...
Dead code since 2.0, not sure why this was still in here.
2022-11-18 22:31:54 +01:00
Joshua Ashton
e037d24017
[util] Default initialize BitMask to 0
...
Found via an MSVC warning, may not fix anything, but good to do anyway.
2022-11-17 17:38:46 +01:00
Joshua Ashton
287412f746
[util] Cast _tzcnt_u64 to uint32_t
...
MSVC has _tzcnt_u64 return a uint64_t, which obviously, it can never return a number that big.
2022-11-17 17:38:46 +01:00
Joshua Ashton
69b1aa251d
[wsi] Add getMonitorEdid function
...
What an unbelievable pain this is to do on Windows...
No-op on SDL2 right now, as there is nothing for that.
2022-11-17 17:38:16 +01:00
Blisto91
ad3c316d0c
[util] Set Black Mesa customVendorId to Nvidia
2022-11-16 11:30:40 +01:00
Robin Kertels
785bc9738f
[util] Disable DC Single Use Mode for Cardfight!! Vanguard Dear Days
2022-11-15 16:55:38 +01:00
Robin Kertels
8a2e4ef481
[d3d9] Allow locking DEFAULT pool based on texture type
2022-11-10 13:37:52 +01:00
Blisto91
bc08cac220
[util] Enable apitraceMode for Sonic & All-Stars Racing Transformed
2022-11-09 19:22:14 +01:00
Christopher Egert
e30b783505
d3d9: Use a different rvalue for depth bias on NV
2022-11-09 01:15:00 +00:00
Robin Kertels
ecc2302389
[d3d9] Fix query reset counter underflow
2022-11-07 23:34:32 +00:00
Philip Rebohle
76e6b2764b
[dxgi] Change CreateSwapChain to take a surface factory
2022-11-07 14:14:05 +01:00
Philip Rebohle
03dca539cb
[vulkan,d3d9,d3d11] Move surface creation to swap chain implementation
2022-11-07 14:14:05 +01:00
Philip Rebohle
49cf0ecf54
[vulkan] Don't handle SURFACE_LOST in Vulkan presenter
2022-11-07 14:14:05 +01:00
Philip Rebohle
3a9e975a71
[dxgi] Implement DxgiSurfaceFactory
2022-11-07 14:14:05 +01:00
Philip Rebohle
1754b73ade
[wsi] Change interface for surface creation
...
This temporarily breaks Win32 swap chains, but we're fine with that
since this will take some refactoring.
2022-11-07 14:14:05 +01:00
Philip Rebohle
bd87e19de1
[dxgi] Introduce IDXGIVkSurfaceFactory
2022-11-07 14:14:05 +01:00
Robin Kertels
d8933ca175
[d3d9] Only do one allocation for all texture subresources
2022-11-06 19:35:03 +00:00
Blisto91
145c1ce127
[util] Limit fps to 60 for some WayForward games
2022-11-06 15:32:28 +01:00
Robin Kertels
4fb7acc64e
[d3d9] Implement converter for W11V11U10
2022-11-06 02:55:29 +00:00
Vlad
40a4908a2a
Support for MW:R H1-Mod
2022-11-05 16:07:16 +01:00
Blisto91
e1eec9b359
[util] Set Fallout 3 to Nvidia vendor id
2022-11-05 16:07:04 +01:00
Robin Kertels
892f676605
[util] Disable direct buffer mapping for Dragon Age Origins
2022-11-02 16:12:28 +01:00
Philip Rebohle
0b9f785bc5
[dxvk] Remove broken memory budget logic for UMA systems
...
All heaps on an UMA systems are by definition device-local, so this
just leads to unnecessary issues.
2022-11-01 12:48:03 +01:00
Adam Jereczek
0462454d2b
Fix for saving vertex shader constants with a StateBlock
...
Co-authored-by: aroztkow <aneta.roztkowska@intel.com>
2022-10-31 18:16:15 +00:00
Robin Kertels
0fc5c84e7b
[d3d9] Don't advertise support for MS INTZ format
2022-10-30 21:50:44 +00:00
Georg Lehmann
bc31ebe151
[d3d9] Fix OptimizeLayout with feedback loop usage.
...
We kind of need dcc on GFX8/9.
2022-10-29 11:21:55 +02:00
Winter Snowfall
f84f992d44
[util] Also enable workaround for the "mod load exe" of ToEE
2022-10-25 03:45:53 +02:00
Robin Kertels
9c22a58543
[d3d9] Disable locking non-dynamic default textures
2022-10-24 20:55:00 +01:00
Robin Kertels
d771f7cf8f
[d3d9] Remove dead fields
2022-10-24 20:55:00 +01:00
Philip Rebohle
494e01b353
[d3d9] Avoid querying environment variables on shader creation
2022-10-24 18:01:48 +02:00
Philip Rebohle
b055c2daea
[d3d11] Avoid querying environment variables on shader creation
2022-10-24 17:58:57 +02:00
Philip Rebohle
fea86ef116
[dxvk] Use dynamic depth clip enable for linked pipelines if supported
...
This way we won't have to compile any vertex shader pipelines twice.
2022-10-24 16:39:24 +02:00
Philip Rebohle
8e7ea899d2
[dxvk] Enable VK_EXT_extended_dynamic_state_3 if available
2022-10-24 16:39:24 +02:00
Philip Rebohle
859de7e828
[dxvk] Always enable depth clip feature if supported
2022-10-24 16:39:24 +02:00
Paul Gofman
e311f25287
[dxgi] Store device pointer in DxgiSwapChainDispatcher
2022-10-20 19:05:19 +02:00
Philip Rebohle
53a0c3726c
[dxvk] Don't crash immediately on pipeline library compile error
...
Things will blow up down the line but there's no good reason to crash
immediately. Also ignore returned pipeline on error so we'll always
return null.
2022-10-18 00:07:41 +02:00
Philip Rebohle
69d7af42a4
[dxgi] Change swap chain interface to better map to D3D12 needs
2022-10-16 16:38:29 +02:00
Philip Rebohle
d7ac21b6c7
[dxgi] Use new DXVK swap chain factory if available
2022-10-16 16:38:29 +02:00
Philip Rebohle
aca67f64da
[d3d11] Implement IDXGIVkSwapChainFactory for D3D11
2022-10-16 16:38:29 +02:00
Philip Rebohle
580dd5cf4a
[dxgi] Add swap chain factory interface definition
2022-10-16 16:38:29 +02:00
Joshua Ashton
d83e184afd
[d3d10] Enable native builds
...
This started working at some point... may as well!
2022-10-15 18:17:29 +01:00
Joshua Ashton
1d3decf100
[build] Add version scripts for native builds
...
FEX would like clean symbols for experimenting with making thunks down the line.
We also just shouldn't be exporting a bunch of random crap -- sadly -fvisibility=hidden doesn't help with a bunch of stuff :(
For reference, RADV also does this.
2022-10-15 19:10:57 +02:00
Joshua Ashton
25798f6fe1
[build] Set name_prefix to libdxvk_
for native builds
...
Less rude and nicer than just d3d9.so.
Matches old DXVK native behaviour too.
2022-10-15 19:10:57 +02:00
Joshua Ashton
3b90f5a77f
[util] Enable apitrace mode for Hammer World Editor
2022-10-15 17:21:29 +01:00
Robin Kertels
4bcabe8d46
[d3d9] Return 0 if any vertex decl element can't be represented as fvf
2022-10-12 23:07:23 +01:00
Robin Kertels
7090105573
[d3d9] Remove declaration fvf mapping log spam
2022-10-12 23:07:23 +01:00
Robin Kertels
2b964f0c67
[d3d9] Make MapD3DDeclToFvf more readable
...
All branches return, so we might as well
give it a bit more room to breath.
2022-10-12 23:07:23 +01:00
Philip Rebohle
bd7d2aac71
[dxgi] Get rid of NotifyModeChange method
...
Was only used for the FPS limiter.
2022-10-07 13:25:56 +02:00
Vinjul1704
038ed23a5d
[util] Force SM1 for the Escape from Tarkov launcher
2022-10-06 21:32:19 +02:00
Joshua Ashton
fa45e5838e
[util] Fix tzcnt on ARM64 + Clang
...
This needed brackets around this conditional.
2022-10-05 19:01:05 +01:00
Philip Rebohle
ab622760a0
[dxbc] Emit new block only after emitting switch instruction
...
Otherwise emitting the OpSwitch will reset the block ID, which
is not desireable. Fixes #2975 .
2022-10-04 21:00:50 +02:00
Blisto91
f8bd19f210
[util] Cap Sonic Adventure 2 to 60 fps
2022-09-30 19:14:59 -02:30
Adam Jereczek
b2ad25755a
[d3d9] Fix for missing restriction check in ProcessVertices
...
Co-authored-by: aroztkow <aneta.roztkowska@intel.com>
2022-09-28 12:10:41 -02:30
Joshua Ashton
49854dbfba
[d3d9] Saturate viewport depth range
...
Viewport depth range in D3D9 is clamped at 0-1, same as OpenGL.
Drivers like RADV, etc support VK_EXT_depth_range_unrestricted,
which makes the regular UB of this actually work -- which isn't what
we want.
We also don't enable VK_EXT_depth_range_unrestricted, so we shouldn't
be setting depth ranges outside of the 0-1 bounds anyway.
Closes : #2960
2022-09-27 18:58:40 -02:30
Georg Lehmann
50857537d6
[d3d9] Use D32 not D32_S8 when upgrading formats without stencil aspect.
2022-09-27 18:58:32 +01:00
Georg Lehmann
a9bdea72e9
[d3d9] Clamp Dref to [0.0, 1.0] if the texture is emulated UNORM
2022-09-26 21:39:51 +01:00
Georg Lehmann
6fe96d7d82
[dxso] Support clamping Dref.
2022-09-26 21:39:51 +01:00
Georg Lehmann
5684e29718
[d3d9] Track if a texture is upgraded to D32f
2022-09-26 21:39:51 +01:00
Georg Lehmann
6188ffa23a
[d3d9] Add a config option for D24 -> D32
2022-09-26 21:39:51 +01:00
Georg Lehmann
7552cfe62a
[dxso] Always lower projection
2022-09-26 21:39:51 +01:00
Philip Rebohle
f1f8d45fcd
[dxvk] Rework allocation logic for large resources
...
This may reduce internal fragmentation with very large resources.
We previously changed behaviour to not do this in order to reduce memory
pressure in the average case, however by trying to suballocate from existing
chunks and falling back to a dedicated allocation on failure, rather than
allocating a new chunk, we can mostly avoid that situation.
2022-09-24 17:06:00 +02:00
Philip Rebohle
15588004b4
[dxvk] Bump memory chunk size to 256 MiB.
2022-09-24 17:06:00 +02:00
Joshua Ashton
f2950953e0
[d3d9] Avoid depth degenerate viewports
2022-09-23 13:26:50 +01:00
Joshua Ashton
d221bb7a9c
[d3d9] Add ID3D9VkInteropDevice
...
Provides access to the device and instance handles
as well as the queue that is used for rendering.
2022-09-22 17:58:54 +01:00
Joshua Ashton
e976218e17
[d3d9] Make GetDXVKDevice return a const Rc reference
...
Avoids some useless reffing.
2022-09-22 17:58:54 +01:00
Joshua Ashton
ac13112619
[d3d9] Add ID3D9VkInteropTexture
...
Provides access to the backing resource of a D3D9 texture.
2022-09-22 17:58:54 +01:00
Joshua Ashton
ae2465079e
[d3d9] Add ID3D9VkInteropInterface
...
Allows getting the VkInstance handle from a IDirect3D9 interface,
as well as VkPhysicalDevices from adapter ordinals.
2022-09-22 17:58:54 +01:00
Joshie
1451032b83
[d3d9] Minor cleanups in vertex declaration code ( #2950 )
2022-09-22 09:46:51 +00:00
Krzysztof Dobrowolski
1e1ef8f1bd
[d3d9] Fix for missing mapping of VertexElements declarations to FVF bits
...
When Vertex declaration is created by CreateVertexDeclaration
and SetFVF is not called then GetFVF returns 0.
This code change implements mapping of D3D declarations to FVF mask
and sets it if FVF was not set previously.
2022-09-22 08:41:40 +00:00
Michał Pyrzowski
82ebc29e18
[dxso] Fix for illegal OpCompositeConstruct while translating Crs opcode
...
During the translation of the Crs opcode to SPIR-V there is an assumption that the result type is a composite type. This is not always true. If the result is a scalar type the translation adds an OpCompositeConstruct with a scalar result type. This is a spec violation.
This change checks if the result type is a composite type and does not add the OpCompositeConstruct in case of scalar types.
2022-09-21 10:47:16 +00:00
Robin Kertels
5c22e2fbda
[util] Enable GTA IV config for Episodes from Liberty City
2022-09-19 15:11:01 +01:00
Robin Kertels
c759fb45aa
[util] Disable DF support for pretty mirrors in GTA IV
2022-09-19 15:11:01 +01:00
Robin Kertels
5962be44c6
[dxso] Define color inputs as centroids on SM3 too
2022-09-19 15:10:43 +01:00
Philip Rebohle
a14ce8d1b0
[d3d11] Enable ROV support if corresponding Vulkan features are supported
2022-09-19 15:44:23 +02:00
Philip Rebohle
35a84053b5
[dxbc] Implement rasterizer ordered views
2022-09-19 15:44:23 +02:00
Philip Rebohle
8ca5edeacd
[dxbc] Decode rasterizer ordered flag for UAVs
2022-09-19 15:44:23 +02:00
Philip Rebohle
9532126f7c
[dxvk] Enable VK_EXT_fragment_shader_interlock
2022-09-19 15:44:23 +02:00
Philip Rebohle
0bb0c1e646
[util] Enable ignoreGraphicsBarriers for FFXV
...
Massively improves performance when VXAO is enabled.
2022-09-19 15:43:45 +02:00
Philip Rebohle
2a7706ba53
[dxbc] Do not enable SPV_KHR_shader_float_controls
...
This is core in Vulkan 1.2 and SPIR-V 1.5.
2022-09-18 02:27:03 +02:00
Philip Rebohle
9fa587e13c
[dxgi] Always use swap chain-local present count for frame statistics
...
Doesn't appear to match Windows behaviour, but there may be scenarios
when we can't query the current monitor. Statistics still need to be
consistent in this case.
See #2933 .
2022-09-17 05:01:36 +02:00
Philip Rebohle
5b6b9923ab
[dxbc] Write point size in vertex shaders
...
Silences some validation errors when point rendering is enabled.
2022-09-17 01:52:19 +02:00
Philip Rebohle
d93568f1a9
[dxbc] Don't emit built-in position as a block variable
...
This is no longer needed for interface matching.
2022-09-17 01:52:19 +02:00
xpander69
07094ac4f9
[util] Remove fps cap from Warhammer Online
...
This is a bit embarrassing. Added this config few days ago to counter the animation breakages, but now Return of Reckoning devs patched the executable on their side to cap the framerate by default. So the workaround is not needed anymore.
2022-09-16 21:32:49 +01:00
Philip Rebohle
4fb6c200d7
[d3d9] Use precise matrix-vector operations to compute vertex position
2022-09-16 20:04:01 +01:00
Philip Rebohle
b56ec10deb
[d3d9] Add helpers for precise matrix-vector products
2022-09-16 20:04:01 +01:00
Philip Rebohle
3a63c7cb31
[dxvk] Hide some more format compatibility validation errors
2022-09-16 17:24:33 +02:00
Philip Rebohle
67bd2b5e76
[dxgi] Report swap chain frame statistics
2022-09-16 12:49:42 +02:00
Philip Rebohle
fe3fc82d8e
[dxgi] Handle mode changes for frame statistics
2022-09-16 12:49:42 +02:00
Philip Rebohle
faaa6bf1df
[dxgi] Promote output stored in swap chain to IDXGIOutput1
2022-09-16 12:49:42 +02:00
Philip Rebohle
57af9e8760
[dxgi] Estimate vblank count for frame statistics
2022-09-16 12:49:42 +02:00
Philip Rebohle
c56a9b5a3f
[dxgi] Implement WaitForVBlank using new sleep helper
...
Not very accurate, but probably good enough if the display
refresh rate is known.
2022-09-16 12:49:42 +02:00
Philip Rebohle
3543673c5c
[util] Add helper to compute display refresh related stuff
2022-09-16 12:49:42 +02:00
Philip Rebohle
e019edc8c3
[util] Add helper to get time point from raw counter value
2022-09-16 12:49:42 +02:00
Philip Rebohle
c1ab09a048
[util] Move platform-specific sleep code to dedicated helper class
2022-09-16 12:49:42 +02:00
Joshua Ashton
000a647c56
[d3d11] Store D3D11DeviceContextState as private ref
...
Avoids a circular dependency
2022-09-16 12:49:10 +02:00
Joshua Ashton
a69c65265a
[d3d11] Store context predication query as private ref
2022-09-16 12:49:10 +02:00
Joshua Ashton
9e4877be81
[d3d11] Store SoTarget buffer as a private ref
2022-09-16 12:49:10 +02:00
Joshua Ashton
b40935a48d
[d3d11] Store context state ID buffers as private refs
2022-09-16 12:49:10 +02:00
Joshua Ashton
ca38cebe0b
[d3d11] Store private refs for IA layout
2022-09-16 12:49:10 +02:00
Joshua Ashton
9545281542
[d3d11] Store private refs for VB + IB bindings
2022-09-16 12:49:10 +02:00
Joshua Ashton
9bfe46ac50
[d3d11] Store private refs for srv and rtv bindings
2022-09-16 12:49:10 +02:00
Joshua Ashton
2419226456
[d3d11] Store private refs for constant buffer bindings
2022-09-16 12:49:10 +02:00
Joshua Ashton
8758bcedae
[d3d11] Store private refs to context shaders
2022-09-16 12:49:10 +02:00
Joshua Ashton
699d56e35d
[d3d11] Handle nullptr RasterizerState in ApplyRasterizerSampleCount
...
This broke as of a637134c56
is causing a crash in the BGFX d3d11 samples.
2022-09-16 11:40:36 +02:00
Joshua Ashton
3a6f8fa413
[d3d11] Assign ForcedSampleCount to correct value in ApplyRasterizerSampleCount
...
ForcedSampleCount was never being respected as it would always be replaced with 1 as it was being assigned to the wrong variable.
This was also probably causing a bunch of redundant CS work as it was changing state that was dirty checked.
2022-09-16 11:40:36 +02:00
Philip Rebohle
1c33d8be1f
[dxgi] Fix return value of ChangeDisplayMode
2022-09-15 15:35:54 +02:00
Paul Gofman
10d6e15646
[d3d9] Do not set window size and position when restoring from fullscreen state
...
Closes #2920 .
2022-09-15 09:33:24 +01:00
Krzysztof Dobrowolski
19b76825d0
[d3d9] Fix for missing restriction check in UpdateSurface.
...
The spec of IDirect3DDevice9::UpdateSurface contains the following restriction:
- Neither surface can be created with multisampling.
The only valid flag for both surfaces is D3DMULTISAMPLE_NONE.
This commit adds this check and returns D3DERR_INVALIDCALL
when source or destination surfaces are multisampled.
2022-09-15 09:32:31 +01:00
Georg Lehmann
18a801de84
[dxso] Use a * (y - x) + x for lerp.
...
Fixes Alice: Madness Returns.
2022-09-13 23:10:11 +01:00
Rhys Perry
63ca34bb29
[dxbc] Fix forceVolatileTgsmAccess for stores
...
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
2022-09-13 21:41:59 +02:00
Joshua Ashton
68c528d345
[util] Implement bitmask iterator on non-x86 platforms
2022-09-13 20:11:17 +01:00
Joshua Ashton
2218462ff2
[util] Implement spin on ARM64
2022-09-13 20:11:17 +01:00
Joshua Ashton
57cee691b3
[util] Implement replaceNaN for non-x86 platforms
2022-09-13 20:11:17 +01:00
Joshua Ashton
2d8e14fcf4
[util] Implement bcmpeq for non-x86 platforms
2022-09-13 20:11:17 +01:00
Joshua Ashton
c3093b546e
[util] Implement tzcnt for non-x86 platforms
2022-09-13 20:11:17 +01:00
Joshua Ashton
466026632d
[util] Only include x86 intrinsics headers on x86
2022-09-13 20:11:17 +01:00
Joshua Ashton
736f91fad1
[util] Add macro to determine CPU arch
2022-09-13 20:11:17 +01:00
Philip Rebohle
21a521361e
[spirv] Remove OpKill helper
...
This is deprecated, so make sure we never accidentally
use it in the future.
2022-09-13 15:30:13 +02:00
Philip Rebohle
af208ceb9e
[dxbc] Optimize write pattern for TGSM initialization
...
Reduces bank conflicts.
2022-09-12 22:33:40 +02:00
Philip Rebohle
05f36fd97b
[dxbc] Only use workgroup scope in compute shaders
...
Turns out that global barriers can be used in graphics shaders.
2022-09-12 22:05:39 +02:00
Philip Rebohle
0502a0464f
[dxbc] Fix broken barrier around TGSM init code
2022-09-12 22:05:39 +02:00
Philip Rebohle
944a945822
[dxvk] Fix validation error on FS resolve path
2022-09-12 18:59:58 +02:00
Philip Rebohle
d9466eb2b9
[dxvk] Get rid of immutable sampler for resolve operations
2022-09-12 18:59:58 +02:00
Riesi
26c8f46b6b
[util] Limit King Of Fighters XIII to 60 FPS
...
Game speed is tied to FPS
fixes #2647
2022-09-12 18:53:42 +02:00
Blisto91
e05e063df0
[util] Enable memoryTrackTest for SiN Episodes Emergence
2022-09-12 18:37:30 +02:00
Philip Rebohle
eda366662c
[dxbc] Handle workgroup-coherent UAVs more efficiently
...
Some drivers don't handle the workgroup scope on stores and loads properly,
so let's just do the availability and visibility operation on barriers.
2022-09-12 18:19:02 +02:00
Philip Rebohle
8842af2ad6
[dxvk] Get rid of sampler for pack operations
2022-09-12 14:20:30 +02:00
Philip Rebohle
8dc9400045
[d3d11] Report D3D11_FORMAT_SUPPORT2_SHAREABLE appropriately
2022-09-11 16:40:02 +02:00
Philip Rebohle
299fc4c4cf
[d3d11] Determine shared resources tier more accurately
2022-09-11 16:40:02 +02:00
Philip Rebohle
443cb658f7
[dxvk] Clean up DxvkImage::canShareImage
2022-09-11 16:40:02 +02:00
Philip Rebohle
0123e844b2
[dxvk] Move getFormatLimits back to DxvkAdapter
2022-09-11 16:40:02 +02:00
Philip Rebohle
c0fdf1449c
[dxvk] Allow querying external memory features for image formats
2022-09-11 16:40:02 +02:00
Philip Rebohle
3a636f6094
[dxvk] Introduce DxvkFormatQuery
2022-09-11 16:40:02 +02:00
Joshua Ashton
10bb285f2e
[d3d9] Remove unused dstExtent + friends in GetRenderTargetData
2022-09-10 21:46:07 +00:00
Joshua Ashton
935541bcb0
[util] Make math types have implicit copy assignments
...
We define implicit copy constructors, should also define implicit copy assignments.
2022-09-10 21:46:07 +00:00
Joshua Ashton
99e01d64f7
[dxso] Make fallthrough for extra params explicit
2022-09-10 21:46:07 +00:00
Joshua Ashton
9adc6f2d3e
[d3d11] Remove unused this capture in UnbindResources
2022-09-10 21:46:07 +00:00
Joshua Ashton
a3727ebd42
[d3d11] Fix UNKNOWN enum in video view dimension switch cases
2022-09-10 21:46:07 +00:00
Joshua Ashton
64d88c684d
[dxbc] Explicitly cast down to VkAccessFlags when assinging binding.access
...
Otherwise both halves of the terniary are differing types causing a warning.
2022-09-10 21:27:04 +00:00
Joshua Ashton
aa06e71dee
[d3d11] Remove useless const qualifiers on IsYCbCr and NeedsCopy return values
2022-09-10 21:27:04 +00:00
Joshua Ashton
ce5e7ad427
[d3d11] Remove MaxAnisotropy < 0 check
...
This type is unsigned, this is impossible.
2022-09-10 21:27:04 +00:00
Joshua Ashton
b0ac267fd5
[d3d9] Explicitly cast to D3DRENDERSTATETYPE in ColorWriteIndex
...
Need this to silence warnings after doing some arithmetic on an enum.
2022-09-10 21:27:04 +00:00
Joshua Ashton
f42df87937
[dxvk] Remove useless const qualifier on getColorAttachmentIndex return type
...
This does nothing.
2022-09-10 21:27:04 +00:00
Joshua Ashton
ec6ad90f22
[dxvk] Fix value type in QueueItem
...
This was being truncated from uint64_t -> uint32_t then stored in a uint64_t which seems unintentional...
2022-09-10 22:55:58 +02:00
Philip Rebohle
ccfb986e72
[dxbc] Rework TGSM workaround
2022-09-10 14:27:13 +02:00
Philip Rebohle
8176101228
[dxbc] Enable Vulkan memory model
2022-09-10 14:27:13 +02:00
Philip Rebohle
68cfc84329
[dxvk] Enable vulkanMemoryModel feature
2022-09-10 14:27:13 +02:00