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

5845 Commits

Author SHA1 Message Date
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