Philip Rebohle
78f5136fde
[dxvk] Fix image view swizzling
2024-09-26 17:42:02 +02:00
Philip Rebohle
5e5c283149
[d3d11] Always use fast MAP_WRITE_DISCARD path on deferred contexts
...
... but keep the SingleUse option as-is anyway because games do not release
their command lists after submission and end up wasting massive amounts of
memory.
2024-09-26 17:37:50 +02:00
Philip Rebohle
39f50999a3
[d3d11] Cache raw mapped pointer rather than allocation object
...
Reduces ref counting overhead again and matches previous behaviour.
We should probably do something about the possible case of deferred context
execution with MAP_WRITE_DISCARD followed by MAP_WRITE_NO_OVERWRITE on the
immediate context, but we haven't seen a game rely on this yet.
2024-09-26 17:37:50 +02:00
Philip Rebohle
50878f2846
[dxvk] Add function to invalidate images
2024-09-26 17:37:50 +02:00
Philip Rebohle
347925c8b7
[dxvk] Remove legacy DxvkMemory class
2024-09-26 17:37:50 +02:00
Philip Rebohle
25076d9220
[dxvk] Rework image view creation
2024-09-26 17:37:50 +02:00
Philip Rebohle
713b76bea5
[dxvk] Rework image creation
...
Uses DxvkResourceAllocation to manage image backing storage,
which will allow invalidating images in the future.
2024-09-26 17:37:50 +02:00
Philip Rebohle
d7e1794e29
[dxvk] Add function to import existing Vulkan image
2024-09-26 17:37:50 +02:00
Philip Rebohle
eec4f0fb35
[dxvk] Implement sparse image creation in allocator
2024-09-26 17:37:50 +02:00
Philip Rebohle
bcd12a5b56
[dxvk] Refactor sparse page table initialization for images
2024-09-26 17:37:50 +02:00
Philip Rebohle
0f23a17d8f
[dxvk] Refactor sparse page allocation
...
Uses the new allocator directly.
2024-09-26 17:37:50 +02:00
Philip Rebohle
af4a2f7973
[dxvk] Introduce DxvkResourceMemoryInfo
...
And replace the old sparse thing.
2024-09-26 17:37:50 +02:00
Philip Rebohle
bbd2461c8f
[dxvk] Reimplement sparse buffer support
2024-09-26 17:37:50 +02:00
Philip Rebohle
1ba6b81901
[dxvk] Reimplement imported buffers
2024-09-26 17:37:50 +02:00
Philip Rebohle
5263307c4a
[dxvk] Improve lifetime tracking logic
...
Reduces ref counting overhead on the CS thread a bit.
2024-09-26 17:37:50 +02:00
Philip Rebohle
7ac9918b39
[hud] Add cache statistics to detailed memory item
2024-09-26 17:37:50 +02:00
Philip Rebohle
9cf72b5b19
[dxvk] Implement basic pool balancing for shared allocation cache
...
This makes the entire cache available to all allocation sizes rather than
having fixed-size pools for every allocation size. Improves hit rate in
games that primarily use one constant buffer size.
2024-09-26 17:37:50 +02:00
Philip Rebohle
428b1087a0
[dxvk] Implement shared cache statistics
2024-09-26 17:37:50 +02:00
Philip Rebohle
2722a41675
[dxvk] Implement shared allocation cache
...
Allows refilling local caches in constant time.
2024-09-26 17:37:50 +02:00
Philip Rebohle
9a51849920
[d3d11] Use allocation cache for dynamic buffers
2024-09-26 17:37:50 +02:00
Philip Rebohle
4db0007af3
[dxvk] Implement local allocation cache
2024-09-26 17:37:50 +02:00
Philip Rebohle
93547aec8d
[dxvk] Do not track buffer view objects
...
No longer necessary as they have the same lifetime as the
parent buffer now. Only track the buffers themselves.
2024-09-26 17:37:50 +02:00
Philip Rebohle
088ba404a6
[dxvk] Rework buffer view creation
2024-09-26 17:37:50 +02:00
Philip Rebohle
1fd3c8040d
[dxvk] Remove DxvkBufferAllocation
2024-09-26 17:37:50 +02:00
Philip Rebohle
14990dbb49
[dxvk] Rework buffer slice allocation
...
Temporary solution that hits the allocator on every single invalidation,
which isn't great but will do for now.
2024-09-26 17:37:50 +02:00
Philip Rebohle
ec2f43e5e3
[dxvk] Make DxvkResource manage its own destruction
...
Necessary for actual resource refactors. We want view objects
to use the resource's reference count wehenever possible.
2024-09-26 17:37:50 +02:00
Philip Rebohle
10164fdf4d
[dxvk] Store GPU address for allocated chunk memory
2024-09-26 17:37:50 +02:00
Philip Rebohle
51649f6da6
[dxvk] Add function to create image resource
2024-09-26 17:37:50 +02:00
Philip Rebohle
5813e7c031
[dxvk] Add function to create buffer resource
2024-09-26 17:37:50 +02:00
Philip Rebohle
00f7545d15
[dxvk] Add helper to get memory type mask for buffer usage
2024-09-26 17:37:50 +02:00
Philip Rebohle
e80dd6db5f
[dxvk] Cache memory type mask with global buffer support
2024-09-26 17:37:50 +02:00
Philip Rebohle
3bee390d91
[dxvk] Don't log memory errors prematurely
...
Fallback allocations are a thing.
2024-09-26 17:37:50 +02:00
Philip Rebohle
f36a536288
[dxvk] Use DxvkResourceAllocation internally
...
Changes DxvkMemory to be nothing more than a wrapper.
2024-09-26 17:37:50 +02:00
Philip Rebohle
5dd7a29261
[dxvk] Introduce DxvkResourceAllocation
2024-09-26 17:37:50 +02:00
Philip Rebohle
4064c89e8c
[dxvk] Remove legacy buffer renaming interface
2024-09-26 17:37:50 +02:00
Philip Rebohle
6f6e75b4b8
[d3d9] Use DxvkBufferAllocation where appropriate
2024-09-26 17:37:50 +02:00
Philip Rebohle
8e45a60542
[d3d11] Use DxvkBufferAllocation where appropriate
2024-09-26 17:37:50 +02:00
Philip Rebohle
eae66201f6
[dxvk] Use DxvkBufferAllocation for HUD rendering
2024-09-26 17:37:50 +02:00
Philip Rebohle
75dadf2c1c
[dxvk] Use DxvkBufferAllocation in swap chain blitter
2024-09-26 17:37:50 +02:00
Philip Rebohle
5c2f56c9cc
[dxvk] Introduce DxvkBufferAllocation
...
For now, this is merely a wrapper around the existing buffer slice
struct in order to allow easier refactoring.
2024-09-26 17:37:50 +02:00
Philip Rebohle
d0832f8431
[vulkan] Move stage and access mask definitions to header
2024-09-26 17:37:50 +02:00
Philip Rebohle
7ec75aaf81
[util] Make likely/unlikely less annoying to use
2024-09-26 17:37:50 +02:00
Philip Rebohle
888906a6da
[util] Add some functionality to smart pointer
...
Basically lets us deal with objects that manage their own destruction,
which ideally shold be all of them at some point.
Also adds some missing comparison operators.
2024-09-26 17:37:50 +02:00
Philip Rebohle
06baa48c2b
[dxvk] Align allocation size to create global buffer
2024-09-26 13:13:48 +02:00
Philip Rebohle
401ca41091
[dxvk] Do not always keep an empty chunk around
...
Outdated thinking, we have a 20 second timer on this which should
be more than enough to ensure we're not spamming device memory
allocations.
2024-09-26 13:13:48 +02:00
Philip Rebohle
3cd7e3efb5
[dxvk] Tweak memory allocation behaviour on mapped memory types
2024-09-26 13:13:48 +02:00
Philip Rebohle
5c8728abd2
[hud] Use different colors to highlight mapped or non-mapped allocations
...
Useful on UMA systems or when we have to fall back to system memory.
2024-09-26 13:13:48 +02:00
Philip Rebohle
d00ca261af
[dxvk] Use worker to update adapter's memory statistics
...
Takes a bunch of pointer indirections and atomics off the hot path.
2024-09-26 13:13:48 +02:00
Philip Rebohle
27088beea8
[dxvk] Use worker thread to periodically free unused memory
...
System memory allocations typically peak very high while loading, but
just sit there unused afterwards. This allows us to free them based
on when they have last been used.
Works well in practice since best-fit avoids using empty chunks as much
as possible.
2024-09-26 13:13:48 +02:00
Philip Rebohle
e1fd2bff2c
[dxvk] Rewrite memory allocator
...
Uses a single allocator pair per memory type in order to make memory
allocations on the entire memory pool faster, and further reduce
fragmentation by applying the best fit strategy to the whole memory
pool.
2024-09-26 13:13:48 +02:00
Philip Rebohle
3a4dadb528
[dxvk] Add chunk concept to page allocator
...
This allows the allocator to operate on the entire allocated memory pool.
2024-09-26 13:13:48 +02:00
Philip Rebohle
266b99ad8d
[hud] Add HUD item to visualize memory chunk allocation
2024-09-26 13:13:48 +02:00
Philip Rebohle
f679d7d90f
[dxvk] Add detailed allocation statistics
2024-09-26 13:13:48 +02:00
Philip Rebohle
b46ef2ceff
[dxvk] Move memory statistics from memory types to heaps
2024-09-26 13:13:48 +02:00
Philip Rebohle
35fea6475d
[dxvk] Tune small buffer allocation sizes
...
The pool allocator works on powers of two, so buffers should too.
2024-09-26 13:13:48 +02:00
Philip Rebohle
3faa1a76da
[dxvk] Simplify memory chunk allocation
...
Reduces overall waste of memory by reusing already allocated
chunks more aggressively.
2024-09-26 13:13:48 +02:00
Philip Rebohle
661385584a
[dxvk] Use new allocators for chunk suballocation
2024-09-26 13:13:48 +02:00
Philip Rebohle
5efaa06c61
[dxvk] Add new page allocator implementation
2024-09-26 13:13:48 +02:00
Philip Rebohle
1eec969448
[util] Add 64-bit lzcnt
2024-09-26 13:13:48 +02:00
Philip Rebohle
15365f2d82
[d3d11] Synchronize shared texture initialization
2024-09-26 08:21:43 +02:00
WinterSnowfall
97091aad39
[util] Enable legacy DISCARD for Rayman 3
2024-09-26 06:48:13 +02:00
WinterSnowfall
a7b3b1e3a4
[d3d8] Add an option to respect DISCARD only for dynamic write-only buffers
2024-09-26 06:48:13 +02:00
WinterSnowfall
4fad20d77c
[d3d8] Relax viewport validation in windowed mode
2024-09-25 20:46:48 +02:00
琴梨梨OvO
bb6d1b3b4c
[util]Add support for Time Leap Paradise
2024-09-25 19:54:24 +02:00
Robin Kertels
f5ca3cf5df
[d3d9] ResolveZ: Only copy aspects that both images support
2024-09-25 00:32:13 +01:00
Robin Kertels
d7c2e3ac76
[d3d9] Use correct aspect mask when blitting depth stencil textures
...
We don't want to blit stencil when the D3D9 format doesn't have
stencil.
2024-09-25 00:32:13 +01:00
Robin Kertels
ca3aa2014b
[d3d9] Improve comment about synchronization with ProcessVertices
2024-09-22 22:53:55 +02:00
Robin Kertels
1d49f247ac
[d3d9] Remove incorrect early-exit
...
The same texture could be bound to
multiple slots and if the shader doesn't
use the lower index texture, we'd never
end up uploading it.
2024-09-22 22:53:55 +02:00
Robin Kertels
ef8bad33a5
[d3d9] Optimize late buffer uploads
...
... similar to what we're doing for textures.
2024-09-22 22:53:55 +02:00
Blisto91
5a08b3c451
[util] Cap fps for F.E.A.R 1 & expansions
...
Visual glitches can occur at very high fps
2024-09-22 21:07:08 +02:00
Robin Kertels
04ad98690b
[d3d9] Add SWVP HUD item
2024-09-22 21:03:23 +02:00
Robin Kertels
033104f335
[d3d9] Cleanup buffer memory flag selection
2024-09-22 21:03:23 +02:00
Robin Kertels
5bb8d09a96
[d3d9] Always use per-draw buffer uploads on pure SWVP devices
2024-09-22 21:03:23 +02:00
WinterSnowfall
97fb6e4f6d
[d3d9] Clean up supported formats from GetUnsupportedFormatInfo
2024-09-22 20:51:15 +02:00
WinterSnowfall
7985ac9cdb
[d3d9] Add R16 and AL16 as known unsupported formats
2024-09-22 20:51:15 +02:00
Blisto91
e687303197
[util] Cap Prince of Persia (2008) max fps
...
Game can get stuck when loading at very high fps
2024-09-22 17:47:51 +02:00
Robin Kertels
07e7781c0b
[d3d9] Only add meta image usage after determining layout
2024-09-22 15:48:18 +02:00
WinterSnowfall
c7cf0a7368
[d3d8] Respect D3DCREATE_MULTITHREADED and make d3d8 thread safe
2024-09-21 16:05:25 +02:00
Robin Kertels
c8791a6ba5
[d3d9] Don't emit 1-sized vector type in SWVP Emu
...
Fixes a validation error.
2024-09-20 12:57:11 +02:00
Robin Kertels
900edf55b5
[d3d9] Only create sampling image views if the image supports sampling
...
Fixes validation error
2024-09-20 12:57:11 +02:00
Robin Kertels
46e8161649
[d3d9] Enable shaderInt8 for ProcessVertices
2024-09-20 12:57:11 +02:00
Robin Kertels
828aaa5cdd
[d3d9] Add missing TRANSFER_SRC usage for swapchain helper images
2024-09-20 12:57:11 +02:00
Philip Rebohle
43c27670ef
[dxvk] Fix buffer view stuff again
...
Testing fallback paths that we only ever hit in scenarios without validation
output sure is fun....
2024-09-20 02:00:50 +02:00
Philip Rebohle
dd8af9da78
[dxvk] Fix buffer view derp systems not supporting maintenance5
2024-09-20 01:25:06 +02:00
Robin Kertels
80e950ac32
[util] Fix small_vector move
...
... again. We can only move over the ptr
if the other small_vector has MORE than N
elements, otherwise it will still use the local array.
2024-09-20 01:20:25 +02:00
Robin Kertels
2f9ce66879
[util] Fix small_vector move constructor
2024-09-19 20:56:09 +02:00
Philip Rebohle
398c198df6
[dxvk] Fix BDA validation error with dedicated allocations
2024-09-19 18:32:40 +02:00
Philip Rebohle
18ecc17e59
[dxvk] Remove unused discardBuffer method
...
Unused and not safe to use.
2024-09-18 15:55:57 +02:00
Philip Rebohle
c8410e578e
[d3d11] Enable device address usage for non-mappable buffers
...
NVAPI queries the GPU address of certain resources in a way that could
break otherwise.
2024-09-18 15:55:57 +02:00
Philip Rebohle
fb552db65f
[dxvk] Do not invalidate buffers that allow querying the device address
2024-09-18 15:55:57 +02:00
Philip Rebohle
ddb59ae394
[dxvk] Add usage property to buffer views
...
And pass it to the Vulkan driver depending on maintenance5 support.
2024-09-18 15:55:57 +02:00
Philip Rebohle
ab557a2eed
[dxvk] Use global buffer whenever possible
...
Drastically reduces the number of Vulkan buffer objects allocated.
2024-09-18 15:55:57 +02:00
Philip Rebohle
901861c20b
[dxvk] Create global buffer for allocated memory chunks
2024-09-18 15:55:57 +02:00
Blisto91
11ec603540
[util] Enable cachedDynamicBuffers for Battle Mages
...
Helps CPU bound performance
2024-09-18 00:25:05 +02:00
Paul Gofman
ed9ffa6584
[dxgi] Leave fullscreen mode when window looses focus
2024-09-18 00:19:56 +02:00
Paul Gofman
758dc805bb
[dxgi] Prevent recursive fullscreen mode change.
2024-09-18 00:19:56 +02:00
WinterSnowfall
5cf0783edb
[d3d8] Clean up D3D9 shaders on D3D8 device release
2024-09-17 19:45:18 +02:00
Robin Kertels
010738c107
[d3d9] Add HUD item for FF shaders
2024-09-17 18:30:27 +02:00
WinterSnowfall
89e190b771
[d3d8] Ensure d3d9 interface release
2024-09-17 18:30:00 +02:00
WinterSnowfall
84a8ea9d4a
[d3d8] Remove some unneeded explicit ptr use
2024-09-17 18:30:00 +02:00
WinterSnowfall
9f8832dd14
[d3d8] Improve handling of failed d3d9 calls
2024-09-17 18:30:00 +02:00
WinterSnowfall
0a2f2275da
[d3d8] Add a framecap for Chrome: Gold Edition
2024-09-14 23:52:20 +02:00
Philip Rebohle
04cf0008a0
[dxvk] Correctly enable VK_EXT_line_rasterization
...
Oversight, and fixes a validation error.
2024-09-13 11:58:11 +02:00
WinterSnowfall
8e03b64ca4
[d3d8] Validate viewport dimensions on SetViewport
2024-09-12 16:39:40 +02:00
Robin Kertels
903f1af176
[d3d9] Fix PresentGDI
2024-09-12 15:39:21 +02:00
Kacper Michajłow
26a14c5175
[util] Fix GetEnvironmentVariableW usage
2024-09-12 00:04:49 +02:00
WinterSnowfall
3e26958906
[util] Add a framecap for Pandora Tomorrow
2024-09-12 00:02:34 +02:00
llyyr
1a1c3a4202
[d3d9,d3d11] recreate swapchain on VK_SUBOPTIMAL_KHR
...
The vulkan wayland wsi returns suboptimal when the window is
fullscreened and not directly scanned out, and there are modifiers
available that would allow the window to be directly scanned out.
Recreate the swapchain if we receive suboptimal result.
This allows us recreate the swapchain to use a modifier that allows
direct scan-out under winewayland on wayland compositors.
2024-09-11 16:38:26 +02:00
Philip Rebohle
c1a25df468
[dxvk] Fix some logic errors around sysmem chunk size
2024-09-11 15:21:03 +02:00
Philip Rebohle
565ec7e0d3
[dxvk] Remove dxvk.maxChunkSize option
2024-09-09 18:45:34 +02:00
Philip Rebohle
619b9b12c2
[dxvk] Implement dynamically growing chunk size
...
May reduce memory footprint for launchers.
2024-09-09 18:45:34 +02:00
WinterSnowfall
63506ee1ff
[util] Enable cachedDynamicBuffers for Steel Soldiers and FIFA 2003
2024-09-08 19:26:46 +02:00
WinterSnowfall
22ff53013a
[d3d8] Ignore unsupported D3DPRESENT_RATE_UNLIMITED
2024-09-08 19:25:16 +02:00
Billy Laws
9077e5212d
[util] Use cdecl calling convention for __wine_dbg_output
...
This matches wine's definition, fixes crashes when wine is built with clang.
Since __cdecl isn't defined for non-windows targets ifdef this needs all
dbg callback uses to be ifdefed out.
2024-09-07 19:44:36 +02:00
Robin Kertels
daccde7643
[d3d9] Don't set IMAGE_USAGE_SAMPLED_BIT for non-msaa depth stencil surfaces
2024-09-04 22:17:10 +00:00
Robin Kertels
7f8cfec46f
[d3d9] Always set IsAttachmentOnly for CreateOffscreenPlainSurfaceEx
...
Surfaces cannot be bound as textures.
2024-09-04 22:17:10 +00:00
Robin Kertels
1b172344eb
[d3d9] Remove redundant scene check in StretchRect
2024-09-04 22:17:10 +00:00
Robin Kertels
11efd5092e
[d3d9] Handle remaining edge cases of Discard & Lockable
2024-09-04 22:17:10 +00:00
WinterSnowfall
2c23e462b3
[d3d8] Clamp BaseVertexIndex to INT_MAX during use
2024-09-04 21:11:08 +02:00
Philip Rebohle
d0ea5a4a87
[spirv] Account for unreachable continue blocks
...
Fixes code gen in the following pattern encountered in Black Ops 3:
loop
break
endloop
We cannot eliminate the loop since we have to adhere to structured
control flow rules, which might be broken if the code inside the
loop was non-trivial.
2024-09-04 02:26:35 +02:00
Philip Rebohle
427e706a40
[util,d3d11] Be more robust against use-after-free
...
Sims 4 binds an SRV after destroying it, so we need to ensure our internal
view pointers are null or we'll create a problem otherwise.
2024-09-02 22:03:26 +02:00
Philip Rebohle
04d558cf2e
[util] Make frame rate limiter enablement heuristic more robust
...
Allow for more buffering to happen in order to not enable the limiter
too eagerly.
2024-09-02 17:50:47 +02:00
ericzlmd
38308d443e
[build] added <algorithm> header for failed subcommand fix - remove_if
2024-08-31 13:23:26 +02:00
Tiagoquix
d31b7997c0
[util] Enable cachedDynamicBuffers for APB:Reloaded
...
Fixes frametime jumps when shooting.
Discussed on the Discord server.
2024-08-30 20:27:05 +02:00
MickAlmighty
8c58bef9cf
[util] Hide Intel for Kena: Bridge of Spirits to skip faulty water rendering path.
2024-08-30 17:39:21 +02:00
Robin Kertels
a5fc08d176
[util] Disable direct buffer mapping for Max Payne 1
...
Improves performance by avoiding stalls.
2024-08-30 00:37:58 +02:00
Robin Kertels
e4fd9ff16b
[d3d11] Always keep barrier control options set by app profile
2024-08-26 23:15:32 +02:00
Robin Kertels
eb8d1885bd
[dxgi] Remove emulateUMA option
...
The option was only used for GTA IV.
It broke and we have a better solution now.
2024-08-24 19:05:44 +02:00
Robin Kertels
9a280b063a
[util] Set maxDeviceMemory for GTA IV
...
... and replace emulateUMA
2024-08-24 19:05:44 +02:00
Philip Rebohle
1c30bc92bb
[d3d11] Validate viewport parameters
...
And skip invalid calls. Fixes Senran Kagura Peach Ball.
2024-08-23 14:39:56 +02:00
Philip Rebohle
6da1ba7cff
[dxgi] Avoid reporting large VRAM amounts as a power of two
2024-08-23 01:13:10 +02:00
Philip Rebohle
d89e324bc4
[util] Remove obsolete Metro Exodus EE config
...
No longer necessary or useful.
2024-08-20 13:33:04 +02:00
Philip Rebohle
be45907479
[dxgi] Under-report iGPU memory if dGPUs are present
...
Should help games pick the correct GPU on setups with integrated graphics.
2024-08-20 13:33:04 +02:00
Philip Rebohle
02d8fa593b
[dxgi] Change reported UMD driver version
...
Fixes a potential crash in Hunt Showdown.
2024-08-15 22:04:06 +02:00
Philip Rebohle
71e44b380d
[util] Enable context lock for EDF6
...
May or may not fix random crashing.
2024-08-15 20:55:17 +02:00
Philip Rebohle
159f540e10
[dxvk] Bump internal engine version
...
Due to large shader-related changes.
2024-08-14 22:15:50 +02:00
Philip Rebohle
1e5b78e8ea
[d3d9] Enable longMad behaviour by default
...
And remove the respective config option.
2024-08-14 22:15:50 +02:00
Philip Rebohle
60e04503a6
[d3d11] Enable longMad/longDot behaviour by default
...
And remove the respective config options.
2024-08-14 22:15:50 +02:00
Philip Rebohle
beaf01ecad
[dxbc] Reverse order of long dot products
...
Matches output of AMD's dxbc compiler this way.
2024-08-14 22:15:50 +02:00
Philip Rebohle
813b653645
[spirv] Implement basic dead code elimination
...
Fixes invalid SPIR-V in Trails through Daybreak.
2024-08-14 22:15:50 +02:00
Blisto91
6308266a0f
[d3d9] Default to Strict floatEmulation for amdvlk 2024.Q3.1
...
The AMD Linux open source driver now optimizes for the Strict floatEmulation path.
2024-08-13 17:18:34 +02:00
Philip Rebohle
0d0b9eaac1
[util] Enable d3d11.longDot for Trails through Daybreak
2024-08-11 18:30:59 +02:00
Philip Rebohle
4ee907a6df
[dxbc,d3d11] Add option to explicitly emit long dot products
2024-08-11 18:30:59 +02:00
Paul Gofman
5c987ea3d1
[d3d9] Handle map failure in texture initializer
2024-08-08 21:42:04 +02:00
Jeff
e38693cdbc
[d3d9] Allow querying ID3D9VkInteropTexture from surfaces
2024-08-08 05:25:41 +01:00
Blisto91
7c9e1ed7cd
[util] Set maxChunkSize to 1 for Epic Games Launcher
...
Also move up Battle.net so the launchers are grouped
2024-08-03 14:57:36 +02:00
Blisto91
e2b823b760
[util] Enable cachedDynamicBuffers for Art of Murder
...
Horrible CPU bound perf
2024-07-31 18:34:39 +02:00
Blisto91
1077d6a67f
[util] Set textureMemory to 0 for Operation Racoon City
...
Works around a crash
2024-07-30 09:15:28 +02:00
Blisto91
33bf09122c
[util] Add configs for Splinter Cell Conviction
...
The game will sometimes black screen upon alt-tab without deviceLossOnFocusLoss.
Spoofing the GPU through dxgi to a known one from its list prevents the System Detection tool from complaining that it is unsupported on some setups.
2024-07-28 23:04:35 +02:00
Eric Sullivan
c26b2ade1d
[dxvk] Update shouldSubmit to correctly handle descriptorPoolOverallocation
...
Currently shouldSubmit will force the dxvk context to be flushed when
too many descriptor pools have been allocated. This heuristic does not
work when VK_NV_descriptor_pool_overallocation is in use because there
will only ever be a single pool.
This change updates the heuristic to use the number of allocated sets
when VK_NV_descriptor_pool_overallocation is in use.
2024-07-25 23:53:03 +02:00
Tobias Jakobi
10ab85c3ba
[d3d8] Remove references to d3d8.useShadowBuffers for now
...
The current D3D8 codebase in DXVK does not implement this
feature, i.e. setting this option is a NOP. It was
implemented in D8VK at some point, but was removed before
the big merge.
Remove any references to avoid confusion.
2024-07-22 00:14:15 +02:00
Robin Kertels
031a98c232
[d3d9] Allow fourcc formats as the source in CheckFormatConversion
...
The docs say:
"The source format must be a FOURCC format or a valid back buffer format."
2024-07-19 19:25:31 +00:00
Robin Kertels
b7d61b70c1
[d3d9] Use converted format for multiplane formats in CheckFormat
2024-07-19 19:25:31 +00:00
WinterSnowfall
bac7ae2929
[util] Disable countLosableResources for Inquisitor
2024-07-16 16:42:44 +02:00
Felix Klinge
2a2d51e049
changed dxgi.customVendorId to dxgi.hideIntelGpu for Batman Arkham Knight
2024-07-16 16:21:08 +02:00
Felix Klinge
b74725b264
Add Batman Arkham Knight Custom Vendor ID to config to fix the game for Intel GPUs
2024-07-16 16:21:08 +02:00
Robin Kertels
af1ba1b205
[d3d9] FF: Fix return type for lighting op
2024-07-16 16:08:33 +02:00
WinterSnowfall
a8dbbcfa31
[util] Reorder config options by API
2024-07-12 16:42:31 +02:00
Philip Rebohle
008afc1c5f
[meta] Release 2.4
2024-07-10 11:56:14 +02:00
WinterSnowfall
d731608d5e
[d3d8] Mimic native token allocations
2024-07-10 00:28:10 +02:00
WinterSnowfall
ff137dac9f
[d3d8] Implement monotonic state block tokens
2024-07-09 23:20:52 +02:00
Robin Kertels
d456d0b437
[d3d9] StretchRect: Allow using an offscreen surface as dst when stretching
2024-07-09 13:54:59 +00:00
Robin Kertels
cc87870be1
[d3d9] Relax stretch rect check in D3D8 mode
2024-07-09 13:54:59 +00:00
Robin Kertels
a7ae5999a9
[d3d8] Slightly clean up CopyRects
2024-07-09 13:54:59 +00:00
Blisto91
5f9ca08071
[util] Enable deviceLossOnFocussLoss for Rise of Nations
...
To prevent it from crashing on a alt-tab
2024-07-09 15:42:49 +02:00
Blisto91
fe9c875fe9
[util] Set cachedDynamicBuffers for The Sims 2 and friends
...
Helps very low CPU bound performance especially in Castaway Stories.
2024-07-07 14:31:37 +02:00
Blisto91
a63a5753d4
[util] Enable longMad for Tomb Raider Legend
...
Since the enablement of invariant position by default the game suffers from white flickers on characters when you use the Next Generation Content option
2024-07-07 14:23:11 +02:00
Robin Kertels
5a0f05ae66
[util] Disable counting losables for Battlefield 2 & 2142
2024-07-07 14:21:59 +02:00
Er2
38006e9cda
[dxvk] Add FreeBSD support
2024-07-07 11:22:43 +00:00
Jeff
60e523b4bf
[d3d8] Implement Direct3D 8 Frontend
...
Co-authored-by: WinterSnowfall <WinterSnowfall@users.noreply.github.com>
## Config Changes
Co-authored-by: Blisto91 <47954800+Blisto91@users.noreply.github.com>
Co-authored-by: simifor <simirmonfor@gmail.com>
2024-07-07 11:10:48 +00:00
WinterSnowfall
ef0c6b6f6f
[d3d9] Hardware cursor fixes
2024-07-07 01:32:40 -07:00
Robin Kertels
9b504b506e
[d3d9] Rework FF texcoord processing to be more accurate
2024-07-07 01:28:44 -07:00
Blisto91
b2d89db8d8
[util] Disable countLosableResources for Myst V
...
Works around a crash regression in dxvk 2.3 upon resolution change.
2024-07-05 14:16:18 +02:00
Blisto91
fa5ce49675
[util] Enable longMad for Watch_Dogs 2 and Legion
...
Works around flickering on characters when a outline or highlight effect is showing.
2024-07-05 13:04:59 +02:00
Robin Kertels
bbe851f6a2
[d3d9] Reduce data copied for SWVP vertex decls
2024-07-05 00:44:28 -07:00
Robin Kertels
7de88ff993
[util] Add move & copy constructors to small_vector
2024-07-05 00:44:28 -07:00
Robin Kertels
ab12ffa0da
[d3d9] Use max point size of Vulkan device
...
The default render state value has to match what we report in the device caps.
Fixes a Wine stateblock test.
2024-07-05 00:44:28 -07:00
Robin Kertels
dc3dd0f88c
[d3d9] Ignore the vertex stream offset in StateBlock::Capture
...
Fixes a Wine test and matches further testing on Windows.
2024-07-05 00:44:28 -07:00
Robin Kertels
da814668bc
[d3d9] FF: Prevent specular highlights on the back of geometry
...
Fixes the Wine test "test_specular_lighting".
2024-07-05 00:44:28 -07:00
Robin Kertels
df9bdfc6ea
[util] Return unchanged matrix if matrix cannot be inverted
2024-07-05 00:44:28 -07:00
Robin Kertels
9e422a2b63
[d3d9] Fix default light
...
Fixes the diffuse alpha and the direction.
2024-07-05 00:44:28 -07:00
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
Łukasz Zając
1783b9591a
[util] Enable 60 FPS lock for WRC4
...
Fixes an audio issue.
2024-07-04 20:12:08 +02:00
Philip Rebohle
afbcd94569
[util] Fix up recently added app profiles
2024-06-26 00:44:43 +02: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
Philip Rebohle
8573190c7d
[dxvk] Apply frame rate limiter before signaling frame latency event
...
Otherwise we add latency for no reason.
2024-06-24 18:12:59 +02:00
Blisto91
fe0e02de18
[util] Set cachedDynamicBuffers for Battle for Middle-Earth 2
...
Helps slowdowns below 30fps in certain scenarios like when moving the camera over heavy vegetation areas among others
2024-06-22 21:58:16 +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
Blisto91
a276e13821
[util] Set deviceLossOnFocusLoss for Guild Wars
...
Works around the game black screening on alt-tab when it is set to fullscreen with a non native resolution
2024-06-19 15:08:37 +02:00
Blisto91
4b4d323ec3
[util] Set cachedDynamicBuffers for Dragonshard
...
Works around massive FPS decreases in some scenes
2024-06-17 22:49:25 +02:00
Blisto91
d9994665a8
[util] Set strict floatEmulation for New Vegas
...
Fixes various visual issues with some effects in mods such as New Vegas Reloaded. White spots/shapes, black streaks across the screen (rain?) and probably more.
2024-06-17 22:49:25 +02:00
Blisto91
22b13a94ca
[util] Enable deviceLossOnFocusLoss for The Force Unleased
...
Prevents the game from black screening on each alt-tab
2024-06-16 22:04:22 +02:00
Jeff
3e5eb1660f
[d3d8] Implement Dref scaling and fixed-function depth textures ( #3565 )
2024-06-14 12:10:49 +02:00
Trevonn
a8710f70a5
[util] Dead Space 2 - Lock to 60 FPS and enable vsync
...
Similar to the first game it has a poor vsync implementation and physics issues when the frame rate is unlocked.
Locking to 60 FPS and enabling vsync externally provides a better experience after the ingame vsync is disabled
2024-06-13 18:03:12 +02:00