1
0
mirror of https://github.com/doitsujin/dxvk.git synced 2024-12-03 22:24:13 +01:00
Commit Graph

5963 Commits

Author SHA1 Message Date
Philip Rebohle
f9a99e81f4 [dxvk] Bump state cache format to v18
All D3D11 shader keys change, so we should invalidte existing caches.
2024-10-23 16:56:32 +02:00
Philip Rebohle
f3fa2535e8 [d3d11] Validate shader creation parameters 2024-10-23 16:56:32 +02:00
Philip Rebohle
800f71c4f5 [d3d11] Use existing MD5 hash to look up shader objects
Skips the expensive SHA-1 pass.
2024-10-23 16:56:32 +02:00
Philip Rebohle
ae9024492b [d3d11] Devirtualize context method forwarding 2024-10-23 16:56:22 +02:00
Philip Rebohle
d10df6353b [d3d11] Devirtualize resource and view creation method forwarding 2024-10-23 16:56:22 +02:00
Philip Rebohle
565af8c311 [dxvk] Add important assert to object tracker 2024-10-23 11:30:37 +02:00
Blisto91
24e0440043 [util] Remove The Old Republic config
Looks fine without since dxvk 2.0
2024-10-23 11:19:01 +02:00
Philip Rebohle
01300bb884 [dxvk] Improve some descriptor setup code
Help the compiler out since it cannot fully prove that two consecutive
calls to DxvkImageView::handle with the same argument return the same result.
2024-10-23 10:26:24 +02:00
Philip Rebohle
cd4d68244d [dxvk] Use real shader access types for writeable descriptor types
Mostly relevant for storage buffers since those are often read-only.
2024-10-23 10:08:03 +02:00
Blisto91
f813549ced [util] Set forceSamplerTypeSpecConstants for Alpha Protocol
Some objects like metal containers will have unwanted reflection when they shouldn't otherwise.
2024-10-22 11:34:02 +02:00
Philip Rebohle
ce42ce2f3f [dxvk] Remove memory worker thread 2024-10-21 17:29:38 +02:00
Philip Rebohle
a5dc3400bd [dxvk] Use swap chain fences to synchronize WSI semaphores
Requires EXT_swapchain_maintenance1 to work, otherwise we won't use this.
2024-10-21 12:02:44 +02:00
Philip Rebohle
27539fc838 [dxvk] Use timeline semaphores for GPU synchronization
Ditches the old fence and binary semaphore code.
2024-10-21 12:02:44 +02:00
Philip Rebohle
1ee60048c0 [dxvk] Create timeline semaphores in submission queue 2024-10-21 12:02:44 +02:00
Philip Rebohle
4c0cbbef6a [dxvk] Factor DxvkResource code into DxvkPagedResource
And remove the now obsolete code.
2024-10-18 12:42:33 +02:00
Philip Rebohle
6540ab4f3e [dxvk] Use DxvkPagedResource for CPU synchronization 2024-10-18 12:42:33 +02:00
Philip Rebohle
3a587c5116 [dxvk] Remove old lifetime tracking code 2024-10-18 12:42:33 +02:00
Philip Rebohle
cc22ccfc5c [dxvk] Use new lifetime tracking for resources 2024-10-18 12:42:33 +02:00
Philip Rebohle
8389734e9f [dxvk] Use new lifetime tracking for raw allocations 2024-10-18 12:42:33 +02:00
Philip Rebohle
b011e22406 [dxvk] Use new lifetime tracking for samplers 2024-10-18 12:42:33 +02:00
Philip Rebohle
7fef97dae0 [dxvk] Use new lifetime tracking for events 2024-10-18 12:42:33 +02:00
Philip Rebohle
50d8e3933a [dxvk] Use new lifetime tracking for queries 2024-10-18 12:42:33 +02:00
Philip Rebohle
4a00623c40 [dxvk] Introduce DxvkTrackingRef and new tracking functions
The intention here is to clean up the code significantly while also
paving a way to perform more complex operations on resource release.
2024-10-18 12:42:33 +02:00
Philip Rebohle
56e8d55830 [dxvk] Remove direct resource allocation tracking
Track the containing virtual resources instead and only explicitly
keep allocations alive through invalidations.
2024-10-18 12:42:33 +02:00
Philip Rebohle
863ce5f117 [dxvk] Move DxvkAccess{Flags} to separate file 2024-10-18 12:42:33 +02:00
Philip Rebohle
d72346f2cb [dxvk] Rename various storage-related functions 2024-10-18 12:42:33 +02:00
Philip Rebohle
43355ecd73 [dxvk] Optimize small_vector reallocation code 2024-10-18 12:42:33 +02:00
Philip Rebohle
e2b4060d43 [dxvk] Properly dirty multisample state when binding linked pipelines
Fixes a validation error in GTA V in very specific circumstances.
2024-10-17 19:40:17 +02:00
Philip Rebohle
990c7f562a [dxvk] Rework HUD to use a GPU query directly
Allows us to leverage the global timestamp query pool now that queries
are reference-counted properly.
2024-10-17 14:27:09 +02:00
Philip Rebohle
fb6e0ad6c1 [dxvk] Remove useless DxvkMarker class 2024-10-16 20:57:50 +02:00
Philip Rebohle
500c86c054 [d3d9] Replace staging buffer marker with monotonic fence
Brings this in line with D3D11.
2024-10-16 20:57:50 +02:00
Philip Rebohle
0249193403 [util] Avoid locking fence objects on wait if target value was reached 2024-10-16 20:57:50 +02:00
Philip Rebohle
bdec26b442 [dxvk] Actually flush layout transition in clearImageViewCs
Fixes 2864a5e474.
2024-10-16 20:55:59 +02:00
Philip Rebohle
f8b9efd11e [dxvk] Fix misaligned image uploads on transfer queue 2024-10-16 11:38:42 +02:00
Philip Rebohle
d2155c7f8c [dxvk] End transform feedback when changing the active graphics pipeline 2024-10-16 11:33:40 +02:00
Philip Rebohle
f69dc96c24 [dxvk] Sanitize multisample state for fragment output libraries
Validation complains about MS state being different between fragment shader
pipeline libraries and fragment output libraries on the EDS3 path.
2024-10-16 11:33:29 +02:00
Philip Rebohle
8ab6b8616b [dxvk] Track image initialization 2024-10-16 11:32:55 +02:00
Philip Rebohle
255e7b7d7a [dxvk] Add functions for image subresource initialization tracking 2024-10-16 11:32:55 +02:00
Philip Rebohle
af4ec3c63d [dxvk] Normalize render target layouts when binding framebuffer
No reason to use ATTACHMENT_OPTIMAL when the default layout is GENERAL.
2024-10-16 11:32:55 +02:00
Philip Rebohle
f76fb75956 [d3d9] Prefer GENERAL layout for read-only textures 2024-10-16 11:32:55 +02:00
Philip Rebohle
b2598906ca [d3d11] Prefer GENERAL layout for read-only textures 2024-10-16 11:32:55 +02:00
Philip Rebohle
6301b9d23d [dxvk] Remove old barrier tracking code 2024-10-16 11:32:55 +02:00
Philip Rebohle
708d23ca4b [dxvk] Use new barrier batch and barrier tracker for main command buffer 2024-10-16 11:32:55 +02:00
Philip Rebohle
4d2799f0d4 [dxvk] Add helper to determine pending barriers 2024-10-16 11:32:55 +02:00
Philip Rebohle
56a58095fe [dxvk] Use new barrier helpers for shader execution barriers 2024-10-16 11:32:55 +02:00
Philip Rebohle
4b94b8989d [dxvk] Use new barrier helpers in transition*Attachment 2024-10-16 11:32:55 +02:00
Philip Rebohle
0388f20cd3 [dxvk] Use new barrier helpers in updateGraphicsPipelineState 2024-10-16 11:32:55 +02:00
Philip Rebohle
7c274d0852 [dxvk] Use new barrier helpers in renderPassEmitPostBarriers 2024-10-16 11:32:55 +02:00
Philip Rebohle
3d12c1aea5 [dxvk] Use new barrier helpers in renderPassEmitInitBarriers 2024-10-16 11:32:55 +02:00
Philip Rebohle
d00d0a39ce [dxvk] Use new barrier helpers in spillRenderPass 2024-10-16 11:32:55 +02:00
Philip Rebohle
c2edd0f9bb [dxvk] Use new barrier helpers in resolveImageFb 2024-10-16 11:32:55 +02:00
Philip Rebohle
7b65ee00d9 [dxvk] Use new barrier helpers in resolveImageDs 2024-10-16 11:32:55 +02:00
Philip Rebohle
7b436a63fb [dxvk] Use new barrier helpers in resolveImageHw 2024-10-16 11:32:55 +02:00
Philip Rebohle
63347b5fce [dxvk] Use new barrier helpers in copySparsePages 2024-10-16 11:32:55 +02:00
Philip Rebohle
706d6cbc1c [dxvk] Use new barrier helpers in copyImageFb 2024-10-16 11:32:55 +02:00
Philip Rebohle
42da4348bf [dxvk] Use new barrier helpers in copyImageHw 2024-10-16 11:32:55 +02:00
Philip Rebohle
2864a5e474 [dxvk] Use new barrier helpers in clearImageViewCs
And ensure we're in GENERAL layout. We generally (pun intended) should
be, but there may be a universe where that is not the case.
2024-10-16 11:32:55 +02:00
Philip Rebohle
793f9b3d38 [dxvk] Use new barrier helpers in clearImageViewFb 2024-10-16 11:32:55 +02:00
Philip Rebohle
856a84e6fd [dxvk] Use new barrier helpers in copyImageToBufferCs
And actually rename that function to make sense.
2024-10-16 11:32:55 +02:00
Philip Rebohle
59d37757b0 [dxvk] Use new barrier helpers in copyImageToBufferHw 2024-10-16 11:32:55 +02:00
Philip Rebohle
e21c2977df [dxvk] Use new barrier helpers in copyBufferToImageFb 2024-10-16 11:32:55 +02:00
Philip Rebohle
d7dd80b62f [dxvk] Use new barrier helpers in copyBufferToImageHw 2024-10-16 11:32:55 +02:00
Philip Rebohle
389e40be67 [dxvk] Use new barrier helpers in blitImageHw 2024-10-16 11:32:55 +02:00
Philip Rebohle
82c2f5d5d1 [dxvk] Use new barrier helpers in blitImageFb 2024-10-16 11:32:55 +02:00
Philip Rebohle
a4daa63d2b [dxvk] Use new barrier helpers in launchCuKernelNVX 2024-10-16 11:32:55 +02:00
Philip Rebohle
ab9ade76d7 [dxvk] Use new barrier helpers in emitGraphicsBarrier 2024-10-16 11:32:55 +02:00
Philip Rebohle
e70e72f109 [dxvk] Use new barrier helpers in updateBuffer 2024-10-16 11:32:55 +02:00
Philip Rebohle
ab300dce2f [dxvk] Use new barrier helpers in performClear 2024-10-16 11:32:55 +02:00
Philip Rebohle
a1a9cd5bb6 [dxvk] Use new barrier helpers in transformImage 2024-10-16 11:32:55 +02:00
Philip Rebohle
7edfad763a [dxvk] Use new barrier helpers in ensureImageCompatibility 2024-10-16 11:32:55 +02:00
Philip Rebohle
33b146467a [dxvk] USe new barrier helpers in generateMipmaps 2024-10-16 11:32:55 +02:00
Philip Rebohle
03a716e308 [dxvk] Use new barrier helpers in emit*Barrier 2024-10-16 11:32:55 +02:00
Philip Rebohle
ee9d09c2e2 [dxvk] Use new barrier helpers in dispatchIndirect 2024-10-16 11:32:55 +02:00
Philip Rebohle
826114f612 [dxvk] Use new barrier helpers in copyPackedBufferImage 2024-10-16 11:32:55 +02:00
Philip Rebohle
3ecca3d171 [dxvk] Use new barrier helpers in copyBuffer 2024-10-16 11:32:55 +02:00
Philip Rebohle
6ef6cb3b45 [dxvk] Use new barrier helpers in clearBufferView 2024-10-16 11:32:55 +02:00
Philip Rebohle
5dfc4d6300 [dxvk] Use new barrier helpers in clearBuffer 2024-10-16 11:32:55 +02:00
Philip Rebohle
cc3dd31a5f [dxvk] Use new barrier helpers in changeImageLayout 2024-10-16 11:32:55 +02:00
Philip Rebohle
bbe7767475 [dxvk] Add helpers to flush pending execution barriers if needed 2024-10-16 11:32:55 +02:00
Philip Rebohle
318e79c2ad [dxvk] Use new barrier batch for init and sdma barriers
No tracking needed here.
2024-10-16 11:32:55 +02:00
Philip Rebohle
50b1932aea [dxvk] Use new barrier helper in uploadBuffer 2024-10-16 11:32:55 +02:00
Philip Rebohle
b33f0c3d30 [dxvk] Use new barrier helper in updateBuffer 2024-10-16 11:32:55 +02:00
Philip Rebohle
e6c0903600 [dxvk] Use new barrier helper in initSparseImage 2024-10-16 11:32:55 +02:00
Philip Rebohle
9698653055 [dxvk] Use new barrier helper in initImage 2024-10-16 11:32:55 +02:00
Philip Rebohle
94915fcbe3 [dxvk] Use new barrier helper in initBuffer 2024-10-16 11:32:55 +02:00
Philip Rebohle
6b01203ddf [dxvk] Use new barrier helper in copyBuffer 2024-10-16 11:32:55 +02:00
Philip Rebohle
6e6ee35587 [dxvk] Use new barrier helper in clearBuffer 2024-10-16 11:32:55 +02:00
Philip Rebohle
b771bef837 [dxvk] Add helper functions to record pending barriers 2024-10-16 11:32:55 +02:00
Philip Rebohle
d154a684ad [dxvk] Remove acquire barrier set 2024-10-16 11:32:55 +02:00
Philip Rebohle
3de0f27dd9 [dxvk] Use new layout transition helper in resolveImageFb 2024-10-16 11:32:55 +02:00
Philip Rebohle
801ef39895 [dxvk] Use new layout transition helper in resolveImageDs 2024-10-16 11:32:55 +02:00
Philip Rebohle
154eee96a0 [dxvk] Use new layout transition helper in resolveImageHw 2024-10-16 11:32:55 +02:00
Philip Rebohle
704fc4eaa7 [dxvk] Use new layout transition helper in copySparseImagePages 2024-10-16 11:32:55 +02:00
Philip Rebohle
4d19e58f51 [dxvk] Use new layout transition helper for copyImageFb 2024-10-16 11:32:55 +02:00
Philip Rebohle
7ffde27551 [dxvk] Use new layout transition helper in copyImageHw 2024-10-16 11:32:55 +02:00
Philip Rebohle
bbd041194b [dxvk] Use new layout transition helper in clearImageViewFb 2024-10-16 11:32:55 +02:00
Philip Rebohle
18cdc25773 [dxvk] Use new layout transition helper in copyImageToBufferFb 2024-10-16 11:32:55 +02:00
Philip Rebohle
e8a5583562 [dxvk] Use new layout transition helper in copyImageToBufferHw 2024-10-16 11:32:55 +02:00
Philip Rebohle
088e4024f5 [dxvk] Use new layout transition helper in copyBufferToImageFb 2024-10-16 11:32:55 +02:00
Philip Rebohle
ebd067f098 [dxvk] Use new layout transition helper in copyBufferToImageHw 2024-10-16 11:32:55 +02:00
Philip Rebohle
2353867d54 [dxvk] Use new layout transition helper for blitImageHw 2024-10-16 11:32:55 +02:00
Philip Rebohle
aff6cb744c [dxvk] Use new layout transition helper for blitImageFb 2024-10-16 11:32:55 +02:00
Philip Rebohle
971042b3d3 [dxvk] Use new layout transition helper in performClear 2024-10-16 11:32:55 +02:00
Philip Rebohle
c24be65f2a [dxvk] Use new layout transition helper in generateMipmaps 2024-10-16 11:32:55 +02:00
Philip Rebohle
ef79f8a617 [dxvk] Use new layout transition helper in initImage
Removes another barrier set.
2024-10-16 11:32:55 +02:00
Philip Rebohle
1e8631189c [dxvk] Use new layout transition helper in uploadImageHw
Allows us to get rid of a barrier set.
2024-10-16 11:32:55 +02:00
Philip Rebohle
8955d2a285 [dxvk] Add various helpers to emit image layout transitions 2024-10-16 11:32:55 +02:00
Philip Rebohle
756ff73c8a [dxvk] Add new barrier batch helper
Separates batching from tracking. This is useful because init
and transfer queue barriers do not need any tracking.
2024-10-16 11:32:55 +02:00
Philip Rebohle
c6c85d7532 [dxvk] Add new barrier tracker
Uses a hash table backed by RB trees in order to reduce
worst-case runtime overhead in some edge cases.
2024-10-16 11:32:55 +02:00
Philip Rebohle
af3c46d83c [dxvk] Remove unused buffer barrier array 2024-10-16 11:32:55 +02:00
Robin Kertels
763b82b1e4 [d3d9] Fix render target null pointer deref 2024-10-15 19:29:20 +02:00
Philip Rebohle
35ead85929 [d3d11] Manually free all view objects in view destructor 2024-10-15 11:48:51 +02:00
Philip Rebohle
de65e06831 [dxvk] Do not try to reset pointer in Rc destructor
This gets optimized away in release builds.
2024-10-15 11:48:51 +02:00
Jeff
e4630685e4 [d3d9] Fix mismatched case in MultiSample and MultisampleQuality 2024-10-15 10:09:51 +02:00
Jeff
01a1c8359a [d3d9] Fix spelling nit 2024-10-15 10:09:51 +02:00
Jeff
eafdf0bfd7 [d3d9] Add alternate constructor for D3D9Texture2D 2024-10-15 10:09:51 +02:00
Jeff
25069dbd1d [d3d9] Add alternate constructor for D3D9Surface 2024-10-15 10:09:51 +02:00
Jeff
a044c639f7 [d3d9] Add ID3D9VkInteropDevice::CreateImage to create custom texture/surfaces 2024-10-15 10:09:51 +02:00
Blisto91
98fa338be0 [util] Move Far Cry 2 config to d3d9 section 2024-10-14 18:39:02 +02:00
Blisto91
b707ca1309 [util] Enable memoryTrackTest for Secret World Legends
Otherwise d3d9 mode thinks we only have 512MB vram which will lock the higher graphics presets.
2024-10-14 18:39:02 +02:00
Robin Kertels
f65897be4c [d3d9] Remove a few unnecessary bitmasks 2024-10-13 17:13:31 +02:00
Robin Kertels
421ead5b30 [d3d9] Only dirty frame buffer on render state changes if render area is impacted 2024-10-13 17:13:31 +02:00
WinterSnowfall
b99012d332 [d3d9] Adjust matrix inversion boundary 2024-10-13 11:09:13 +00:00
Blisto91
05d089bee5 [d3d9] Silence unhandled render state D3DRS_ADAPTIVETESS_Y 2024-10-13 12:31:14 +02:00
Philip Rebohle
458b8e3b41 [util] Add missing includes small_vector
Fixes #4357.
2024-10-13 12:29:12 +02:00
Philip Rebohle
693ee7898d [dxvk] Refactor queries to be properly ref-counted
Should fix a long-standing lifetime tracking issue with timestamp
queries as well as invalid Vulkan usage with overlapping scoped
queries.
2024-10-13 12:08:35 +02:00
Philip Rebohle
1b9c59c964 [dxvk] Refactor events to be properly ref-counted
Mostly serves as a proof-of-concept for the pending query rework,
but also cleans up some silly code.
2024-10-13 12:08:35 +02:00
Philip Rebohle
d00669cb52 [dxvk] Rename DxvkGpu{Event,Query} to Dxvk{Event,Query}
The old name only ever existed because DXVK had two separate implementations
of these prior to version 1.1. Let's name them back so that more sensible
names are available for internal use.
2024-10-13 12:08:35 +02:00
Robin Kertels
5890eae32f [d3d9] Don't clear mipGenBit if texture is bound as attachment 2024-10-13 12:07:30 +02:00
Robin Kertels
5ff365b9f1 [d3d9] Remove initializer context 2024-10-12 10:09:17 +02:00
WinterSnowfall
48c57c11e9 [d3d9] Make proper use of X/YHotSpot for software cursors 2024-10-11 12:40:37 +02:00
WinterSnowfall
44b682051b [d3d8] Stub DebugSetMute to fix C&C:Generals performance 2024-10-10 13:06:54 +02:00
WinterSnowfall
c8759418af [d3d9] Fix device reset handling when no cursor is set 2024-10-10 09:31:13 +02:00
Robin Kertels
d39d879838 [d3d9] Add a bunch of missing likely/unlikely to PrepareDraw
PrepareDraw is pretty much the hottest part of the d3d9
frontend, so we take every tiny bit we get.
2024-10-09 21:28:59 +00:00
Robin Kertels
395ac38890 [d3d9] Fix fixed function texture mask
Fixed function supports 8 textures so we need 8 ones.
2024-10-09 21:28:59 +00:00
WinterSnowfall
a1a3800b3f [d3d9] Fix software cursor reset and transitions 2024-10-08 20:20:31 +02:00
Philip Rebohle
a30fdc466b [d3d11] Remove initializer context
This moves all initialization commands to the CS thread and the regular
context in such a way that resource initialization is processed before
any context commands can use the resource.
2024-10-08 17:46:18 +02:00
Philip Rebohle
ac1dfbacb6 [dxvk] Move image initialization to init command buffer 2024-10-08 17:46:18 +02:00
Philip Rebohle
0f6f543583 [dxvk] Silence validation error about invalid shaders
Known validation bug that is already fixed upstream, but this makes
validation layers unusable due to how spammy that is.
2024-10-08 17:46:18 +02:00
Philip Rebohle
df60a061a4 [d3d11] Throttle resource uploads via UpdateSubresource
Otherwise, some games (e.g. Frostpunk, New World) end up allocating over
a gigabyte of staging memory.
2024-10-08 17:46:18 +02:00
Philip Rebohle
ec18dd7846 [d3d11] Throttle resource uploads through staging buffer 2024-10-08 17:46:18 +02:00
Philip Rebohle
d330718353 [dxvk] Implement staging buffer statistics 2024-10-08 17:46:18 +02:00
Philip Rebohle
e137f049ee [dxvk] Make buffer<->image copy format checks more robust
There are situations where the source format may not match
the image format but the copy is valid nonetheless.
2024-10-08 17:46:18 +02:00
Philip Rebohle
e6f90b8003 [dxvk] Remove legacy depth/stencil repacking code 2024-10-08 17:46:18 +02:00
Philip Rebohle
ad1f70beea [dxvk] Support format conversion in copyImageToBuffer 2024-10-08 17:46:18 +02:00
Philip Rebohle
f67c8dd1da [dxvk] Support format conversion in copyBufferToImage 2024-10-08 17:46:18 +02:00
Philip Rebohle
501b0991da [dxvk] Remove per-context staging buffer
No longer used.
2024-10-08 17:46:18 +02:00
Philip Rebohle
725a04b954 [dxvk,d3d11] Refactor uploadImage to consume a staging buffer
And also handle format differences.
2024-10-08 17:46:18 +02:00
Philip Rebohle
34e0f6952b [dxvk] Always enable depth-stencil usage for depth-stencil formats 2024-10-08 17:46:18 +02:00
Philip Rebohle
2fac69b7f9 [dxvk] Add pipelines for buffer-to-image and image-to-buffer copies 2024-10-08 17:46:18 +02:00
Philip Rebohle
15d5b69d2c [dxvk] Add new format conversion shaders
Intended to replace the old pack/unpack shaders.
2024-10-08 17:46:18 +02:00
Philip Rebohle
3c50ac1f12 [dxvk] Rename DxvkCopyBufferImage* stuff
Slightly misleadning name when we're going to introduce copies
between buffers and images.
2024-10-08 17:46:18 +02:00
Philip Rebohle
c92ee8ee07 [dxvk,d3d11] Refactor uploadBuffer to consume a staging buffer 2024-10-08 17:46:18 +02:00
Philip Rebohle
c27cae2f10 [d3d11] Improve per-context staging buffer handling
In D3D11, the staging buffer is only used for UpdateSubresource, which
isn't always used much. Reducing the size and freeing the buffer after
every submission avoids situations where system memory chunks are kept
alive by a single unused 4MB allocation.
2024-10-08 17:46:18 +02:00
Philip Rebohle
c614e537a9 [dxvk] Remove alignment parameter from staging buffers
Just align all suballocations to 256 bytes as usual.
2024-10-08 17:46:18 +02:00
WinterSnowfall
7eec8fb8dc [d3d8] Various logging format adjustments 2024-10-08 00:25:55 +02:00
WinterSnowfall
559398f6a4 [d3d9] Check block alignment on texture creation with DXT formats 2024-10-08 00:25:55 +02:00
WinterSnowfall
1689cacc47 [d3d8] Stub ValidatePixelShader and ValidateVertexShader 2024-10-08 00:25:55 +02:00
WinterSnowfall
66bd9ec4dd [d3d8] Always forward SetRenderTarget calls to D3D9 2024-10-08 00:25:55 +02:00
WinterSnowfall
8c54969552 [d3d8] Skip stride updates for null buffers in SetStreamSource 2024-10-08 00:25:55 +02:00
WinterSnowfall
088cf45439 [d3d9] Validate 0 valued back buffer dimensions for fullscreen mode 2024-10-08 00:25:55 +02:00
WinterSnowfall
6e0c048b88 [d3d9] Return D3DERR_DEVICELOST on reset failure due to losable resources 2024-10-08 00:25:55 +02:00
WinterSnowfall
912a530d1c [d3d9] Enforce various CheckDeviceMultiSampleType validations 2024-10-08 00:25:55 +02:00
WinterSnowfall
eae12e6f23 [d3d8] Cache all back buffers for additional swapchains 2024-10-08 00:25:55 +02:00
WinterSnowfall
bc78fc6ed0 [d3d8] Validate D3D8 present params before conversion 2024-10-08 00:25:55 +02:00
WinterSnowfall
4a8ba388ff [d3d8] Validate CheckDeviceType windowed calls similarly to fullscreen 2024-10-08 00:25:55 +02:00
WinterSnowfall
653559979c [d3d8] Fix LookupSubresource texture type typo 2024-10-08 00:25:55 +02:00
Philip Rebohle
7935f3934f [dxvk] Sanitize sampler LOD range
Silences a validation error in Dishonored 2. At least on AMD,
MinLOD takes precedence over MaxLOD, so let's do the same.
2024-10-07 19:34:02 +02:00
Philip Rebohle
571a2d5811 [dxvk] Tweak staging memory allocation behaviour 2024-10-07 13:32:46 +02:00
Philip Rebohle
813524c146 [d3d11] Remove texel buffer path for ClearUAV
Instead, recreate the image with the given view format as
necessary. Most of the time we will not actually need this.
2024-10-06 08:47:42 +02:00
Philip Rebohle
851f02fa58 [dxvk] Actually apply new create flags when relocating image
Fixes a derp that leads to validation errors when adding view formats.
2024-10-06 08:47:42 +02:00
WinterSnowfall
36907ec01c [d3d8] Adjust shader handles to skip 0x0001 2024-10-05 20:03:05 +02:00
WinterSnowfall
980a8d185c [d3d9] Use D24X8 for D3DFMT_UNKNOWN depth stencils 2024-10-05 20:03:05 +02:00
WinterSnowfall
4f90ad46b9 [d3d8] Validate D3D9 auto depth stencil query 2024-10-05 20:03:05 +02:00
WinterSnowfall
1675aea857 [d3d8] CopyRects validation tweaks 2024-10-05 20:03:05 +02:00
WinterSnowfall
b13b875ca6 [d3d8] Rework D3D8 device GetInfo implementation 2024-10-05 20:03:05 +02:00
WinterSnowfall
bbe82aa534 [d3d9] Fix (most) cursor-related Wine tests 2024-10-05 18:27:19 +02:00
WinterSnowfall
7ff5321910 [d3d9] Implement a software cursor 2024-10-05 18:27:19 +02:00
WinterSnowfall
87a7882812 [d3d8] Automatically capture state on state block creation 2024-10-05 17:58:04 +02:00
WinterSnowfall
050886d08a [d3d8] Capture VB stream state in D3D8 state blocks 2024-10-05 17:58:04 +02:00
WinterSnowfall
9d19fa18a7 [d3d9] Set D3DRS_POINTSIZE_MIN to 0.0f in D3D8 compatibility mode 2024-10-05 17:58:04 +02:00
Philip Rebohle
329d9a0bb2 [dxvk] Add support for drawing a software cursor 2024-10-04 19:10:14 +02:00
Philip Rebohle
4420c39b62 [dxvk] Factor out swapchain blitter texture uploads 2024-10-04 19:10:14 +02:00
Philip Rebohle
dbaa4d8df4 [dxvk] Add blending toggle to swap chain blitter pipelines 2024-10-04 19:10:14 +02:00
Philip Rebohle
836e990dc5 [dxvk] Correctly use VK_SHARING_MODE_CONCURRENT for buffers
Fixes some out-of-spec behaviour introduced with the global buffer rework.
2024-10-04 18:49:23 +02:00
Philip Rebohle
a278d6bf1d [d3d11] Implement sequential swap effects 2024-10-04 12:58:55 +02:00
Philip Rebohle
c9ec2eeab2 [dxvk] Ensure image is in correct layout for invalidation
Otherwise, layout tracking might track a dead image and get confused.
2024-10-04 12:58:55 +02:00
Philip Rebohle
2af3fde5f2 [d3d9] Remove additional swap chain context 2024-10-04 12:58:55 +02:00
Philip Rebohle
172d3450d1 [d3d11] Rename EmitCsChunkExternal for consistency 2024-10-04 12:58:55 +02:00
Philip Rebohle
c678e8c803 [d3d11] Remove additional swap chain context
Do everything on the main context instead. Also only
present once regardless of sync interval.
2024-10-04 12:58:55 +02:00
Philip Rebohle
129efdaba6 [d3d11] Do not use separate context to initialize back buffers 2024-10-04 12:58:55 +02:00
Philip Rebohle
89ebabd8fd [dxgi] Enable frame rate limit for SyncInterval > 1 in windowed mode 2024-10-04 12:58:55 +02:00
Philip Rebohle
bf9dfc77ce [dxvk] Add context method for WSI synchronization
Mostly convenience, but we do want to get rid of Begin/EndRecording
at some point.
2024-10-04 12:58:55 +02:00
Philip Rebohle
63b200f08d [dxvk] Reimplement HUD rendering to use Vulkan directly
And change how rendering works in general so that we emit fewer
draw calls.
2024-10-04 12:58:55 +02:00
Philip Rebohle
b35c0bce4f [dxvk] Always enable multiDrawIndirect and shaderDrawParameters features 2024-10-04 12:58:55 +02:00
Philip Rebohle
46f10c8fd5 [dxvk] Add command list parameter to dispatch-related functions 2024-10-04 12:58:55 +02:00
Philip Rebohle
7d31a7f16f [dxvk] Add command list parameter to some query-related functions
And reintroduce cmdResetQueryPool.
2024-10-04 12:58:55 +02:00
Philip Rebohle
4ce200bcae [dxvk] Add command list parameter to cmdBindDescriptorSet(s) 2024-10-04 12:58:55 +02:00
Philip Rebohle
aa162365ce [dxvk] Add command list parameter to cmdPushConstants
We want to be able to invoke compute shaders during init commands.
2024-10-04 12:58:55 +02:00
Philip Rebohle
207e15eb24 [dxvk] Refactor swap chain blitter to use plain Vulkan
Temporarily disable the HUD until that is refactored too.
2024-10-04 12:58:55 +02:00