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
Philip Rebohle
0b891a93b2
[spirv] Add support for memory operands on load/store operations
2022-09-10 14:27:13 +02:00
Philip Rebohle
d564be68d6
[spirv] Handle availability and visibility image operands
2022-09-10 14:27:13 +02:00
Philip Rebohle
0f9a042952
[d3d11] Report Tiled Resources Tier 3 again
...
Partially reverts df5756c9a5
.
Turns out that WARP does this, so we might as well expose it too.
2022-09-10 14:26:50 +02:00
xpander69
2ec25f588f
Cap Warhammer Online to 100 FPS
...
Animations break with 100+ FPS. Engine Limitation. WAR-64.exe is affected by this. WAR.exe is capped to 100 by default.
2022-09-10 13:02:47 +02:00
Georg Lehmann
bd5d9d90c9
[d3d9] Use xor to swap bit in depth mask.
2022-09-10 04:16:30 +00:00
Georg Lehmann
1bc6f9660a
[d3d9] Force D3DTADDRESS_CLAMP for cubes.
2022-09-10 04:16:30 +00:00
Philip Rebohle
5babb29922
[d3d11] Set host stage and access bits for staging resources
...
We don't need this for resources that we'll never read back from.
2022-09-08 19:26:55 +02:00
Philip Rebohle
4b8387c9b1
[d3d9] Set host stage and access bits for image staging buffers
...
This is already being done for buffers.
2022-09-08 19:26:55 +02:00
Philip Rebohle
044e2e9dff
[dxvk] Defer host barriers until the end of the current command buffer
2022-09-08 19:26:55 +02:00
Philip Rebohle
72de8a1dc1
[dxvk] Destroy command list fences
...
Fixes a validation error.
2022-09-08 19:26:33 +02:00
Robin Kertels
2b16134b64
[util] Enable d3d9.memoryTrackTest for The Ship
2022-09-07 21:05:48 +02:00
Joshua Ashton
1ea48558e5
[wsi] Fix return value of setMonitorDisplayMode
2022-09-07 21:05:20 +02:00
Joshua Ashton
846db795f8
[dxvk] Link against dl for native builds
...
Fixes build under Steam Runtime Sniper
2022-09-07 17:02:54 +01:00
Philip Rebohle
9964e4a632
[d3d11] Clean up resource validation around tiled resources
2022-09-05 07:51:08 +02:00
Philip Rebohle
df5756c9a5
[d3d11] Do not report Tiled Resources Tier 3
...
Neither Nvidia nor AMD drivers report Tier 3 support on Windows,
so this is likely a D3D11 runtime limitation, even though the
API could technically support it.
2022-09-05 07:51:08 +02:00
Philip Rebohle
b12e4fc59f
[dxvk] Check whether SparseResidency capability is used in a shader
2022-09-05 07:51:08 +02:00
Philip Rebohle
02600706fe
[d3d11] Enable Conservative Rasterization Tier 3
...
Mostly to bring this in line with vkd3d-proton.
2022-09-05 07:27:00 +02:00
Philip Rebohle
d14d70af05
[dxvk] Check whether FragmentFullyCoveredEXT capability is used in a shader
2022-09-05 07:26:23 +02:00
Philip Rebohle
3401964ee2
[dxbc] Implement support for SV_InnerCoverage
2022-09-05 07:21:47 +02:00
Philip Rebohle
bd912212b5
[d3d11] Adjust preferred mapping modes for default images
2022-09-05 05:52:55 +02:00
Philip Rebohle
fdcbdeb28f
[d3d11] Implement dirty trackig for default-mapped images
...
Avoids GPU synchronization when using WriteToSubresource,
and also reduces bandwidth.
2022-09-05 05:52:55 +02:00
Philip Rebohle
40ffac72d9
[d3d11] Introduce methods for dirty region tracking for mapped images
2022-09-05 05:52:55 +02:00
Philip Rebohle
1bed39f266
[d3d11] Rework ReadFromSubresource and WriteToSubresource
...
Mainly changes the code to use existing helpers where possible, and
adds support for planar images, which was previously completely broken
for these functions.
2022-09-05 04:32:01 +02:00
Philip Rebohle
ca833082b5
[d3d11] Fix broken image readback for mapped default images
2022-09-05 04:31:13 +02:00
Philip Rebohle
e9851bee86
[dxvk] Introduce per-aspect version of computeImageDataSize
2022-09-05 04:31:13 +02:00
Philip Rebohle
957d99ed8d
[dxvk] Fix broken layer handling in packImageData
2022-09-05 03:39:23 +02:00
Philip Rebohle
e8c1a8e734
[dxbc] Clean up support check for R32 reads without format
2022-09-04 18:28:27 +02:00
Philip Rebohle
6d9353f4e9
[d3d11] Don't depend on variableMultisampleRate feature
2022-09-04 18:28:27 +02:00
Philip Rebohle
882072e134
[d3d11] Move maximum feature level check to D3D11DeviceFeatures
2022-09-04 18:28:27 +02:00
Philip Rebohle
c082e7f0a9
[d3d11] Add convenience query for Conservative Rasterization tier
2022-09-04 18:28:27 +02:00
Philip Rebohle
59dd2d54cd
[d3d11] Add convenience query for Tiled Resources tier
2022-09-04 18:28:27 +02:00
Philip Rebohle
0e70398d4e
[d3d11] Use D3D11DeviceFeatures in CheckFeatureSupport
2022-09-04 18:28:27 +02:00
Philip Rebohle
71d6e8f849
[d3d11] Introduce D3D11DeviceFeatures
2022-09-04 18:28:27 +02:00
Philip Rebohle
5490aa936b
[d3d11] Rework D3D11 feature enablement
...
Rather than enabling based on requested feature levels, always enable
all supported features that we might use, and report the maximum
feature level based on that.
This fixes an issue in CreateDeviceContextState which may raise the
device feature level, and another issue wherein the feature level
override is ignored if tiled resources are not supported.
2022-09-04 18:28:27 +02:00
Philip Rebohle
c4516c5b04
[dxvk] Improve behaviour when variableMultisampleRate is not supported
2022-09-04 18:28:27 +02:00
Philip Rebohle
8d9d9912ff
[dxvk] Remove extension info from DXVK device
2022-09-04 18:28:27 +02:00
Philip Rebohle
ff6a6e2d37
[d3d11] Use new pseudo-features where applicable
2022-09-04 18:28:27 +02:00
Philip Rebohle
51e0a56243
[dxvk] Use new pseudo-features where applicable
2022-09-04 18:28:27 +02:00
Philip Rebohle
019ebeeaf7
[dxvk] Introduce pseudo-features for extensions with no feature struct
...
Makes it easier to keep track of supported extensions.
2022-09-04 18:28:27 +02:00
Philip Rebohle
1b66b8c9f3
[dxvk] Go back to fence-based command list synchronization
...
Timeline semaphores are too unreliable on 32-bit Proton builds.
2022-09-04 18:23:11 +02:00
Philip Rebohle
439043ddb4
[d3d11] Do not implicitly stall waitable swap chains
2022-09-02 14:33:11 +02:00
Philip Rebohle
17320776f0
[dxgi] Duplicate frame latency handle
...
Apps can call CloseHandle on this.
2022-09-02 14:25:12 +02:00
Philip Rebohle
11ef172c79
[util] Add stubs for DuplicateHandle and GetCurrentProcess
2022-09-02 14:25:12 +02:00
Philip Rebohle
fa743f162b
[dxvk] Don't create queues with QUEUE_FAMILY_IGNORED
...
We accidentally broke drivers which don't support sparse.
Closes #2891 .
Closes #2890 .
Reported-by: mykhailo.skorokhodov@globallogic.com
2022-09-02 11:07:09 +02:00
Joshua Ashton
36f523bbf5
[vulkan] Fix loading libvulkan natively
2022-09-01 04:37:43 +02:00
Joshua Ashton
b05ae33273
[util] Return null if HMODULE is nullptr in GetProcAddress compat
...
dlsym with NULL will try to find the symbol from anything currently
loaded.
2022-09-01 04:37:43 +02:00
Philip Rebohle
735349bf1b
[dxvk] Fix barrier typo
2022-09-01 03:35:58 +02:00
Philip Rebohle
097d3edd05
[dxvk] Create debug messenger if DXVK_DEBUG=validation is set
2022-09-01 00:25:10 +02:00
Philip Rebohle
2f39ae792a
[dxvk] Change DXVK_PERF_EVENTS environment variable to DXVK_DEBUG
2022-09-01 00:25:10 +02:00
Philip Rebohle
f8781e1c4c
[vulkan] Add missing VK_EXT_debug_utils entry points
2022-09-01 00:25:10 +02:00
Philip Rebohle
321338af00
[dxvk] Remove unused m_device member from DxvkBuffer
2022-09-01 00:07:23 +02:00
Philip Rebohle
7b4925dc45
[dxvk] Fix potential sparse allocator lifetime issues
2022-08-31 23:48:46 +02:00
Philip Rebohle
c3c6dbf669
[dxvk] Fix potential buffer lifetime issues
2022-08-31 23:48:34 +02:00
Philip Rebohle
a11fb568b9
[tests] Remove D3D9 tests
2022-08-31 17:01:22 +02:00
Philip Rebohle
e882a7f8ba
[d3d11] Implement extended shader interface
2022-08-31 16:25:44 +02:00
Philip Rebohle
610472e658
[d3d11] Introduce ID3D11VkExtShader
2022-08-31 16:25:44 +02:00
Philip Rebohle
354b88d178
[dxvk] Add shader method to retrieve raw code
2022-08-31 16:25:44 +02:00
WinterSnowfall
3e0031cefe
[util] Add a maxAvailableMemory limit for Heroes of Annihilated Empires
2022-08-30 13:21:29 +02:00
Philip Rebohle
c72c6ec6ed
[d3d10] Remove d3d10.dll and d3d10_1.dll
...
These are incomplete and are already not being used anyway,
so just drop them.
2022-08-30 02:42:03 +02:00
Joshua Ashton
c49b1ee390
[d3d9] Use SetStateTexture in Reset
...
Fixes m_activeTextures not getting updated
2022-08-29 10:16:21 +00:00
Joshua Ashton
86efa46fcf
[dxvk] Throw DxvkError if we failed to load vulkan library
2022-08-27 19:32:03 +02:00
Joshua Ashton
286ab017da
[vulkan] Add valid method to LibraryLoader
2022-08-27 19:32:03 +02:00
Joshua Ashton
482a7e433b
[vulkan] Make LibraryLoader dynamically load vulkan-1
...
This makes LibraryLoader actually load the library and moves ownership
of GetInstanceProcAddr into it, which means we pass through the
loaders into their parents to grab stuff.
2022-08-27 19:32:03 +02:00
Joshua Ashton
f6fcbb7127
[util] Rename CloseLibrary to FreeLibrary in win32 compat headers
...
Typo...
2022-08-27 19:32:03 +02:00
Robin Kertels
bfd47ec876
[d3d9] Try to match either top or bottom mips in UpdateTexture
2022-08-26 20:56:42 +01:00
Philip Rebohle
91bdc8d06c
[d3d11] Expose feature level 12_0
2022-08-26 05:53:03 +02:00
Philip Rebohle
91ff6d68e1
[d3d11] Expose support for tiled resources
2022-08-26 05:53:03 +02:00
Philip Rebohle
790da79512
[d3d11] Implement min/max filters
2022-08-26 05:53:03 +02:00
Philip Rebohle
0a222aaaf0
[d3d11] Implement CopyTiles and UpdateTiles
2022-08-26 05:53:03 +02:00
Philip Rebohle
ca41bb4ea4
[d3d11] Implement CopyTileMappings
2022-08-26 05:53:03 +02:00
Philip Rebohle
ff2ff37696
[d3d11] Implement UpdateTileMappings
2022-08-26 05:53:03 +02:00
Philip Rebohle
5130638ebe
[d3d11] Implement ResizeTilePool
2022-08-26 05:53:03 +02:00
Philip Rebohle
e8f59bfd7c
[d3d11] Implement tile pool creation
2022-08-26 05:53:03 +02:00
Philip Rebohle
0cd67cb98a
[d3d11] Implement tiled image creation
2022-08-26 05:53:03 +02:00
Philip Rebohle
0637fdf82e
[d3d11] Implement tiled buffer creation
2022-08-26 05:53:03 +02:00
Philip Rebohle
7f856b545a
[d3d11] Implement format feature check for tiled resources
2022-08-26 05:53:03 +02:00
Philip Rebohle
ca0dedd213
[d3d11] Implement multisampling support check for tiled resources
2022-08-26 05:53:03 +02:00
Philip Rebohle
3f7093325b
[d3d11] Implement GetResourceTiling
2022-08-26 05:53:03 +02:00
Philip Rebohle
f97660e210
[d3d11] Implement TiledResourceBarrier
2022-08-26 05:53:03 +02:00
Philip Rebohle
626ccef43b
[d3d11] Enable sparse features if supported by the device
2022-08-26 05:53:03 +02:00
Philip Rebohle
eaa5d16616
[dxbc] Use texel buffers for raw/structured buffers with sparse feedback
2022-08-26 05:53:03 +02:00
Philip Rebohle
336aafcdf7
[dxbc] Explicitly store whether a resource is a raw SSBO
2022-08-26 05:53:03 +02:00
Philip Rebohle
d6613f50c5
[dxbc] Implement ld for buffers with sparse feedback
2022-08-26 05:53:03 +02:00
Philip Rebohle
e58f9a5e99
[dxbc] Implement ld for images with sparse feedback
2022-08-26 05:53:03 +02:00
Philip Rebohle
db3b2e23fb
[dxbc] Implement ld_uav_typed with sparse feedback
2022-08-26 05:53:03 +02:00
Philip Rebohle
0faba649da
[dxbc] Implement sample operations with sparse feedback
2022-08-26 05:53:03 +02:00
Philip Rebohle
d5b68b3642
[dxbc] Implement gather operations with sparse feedback
2022-08-26 05:53:03 +02:00
Philip Rebohle
614024873d
[dxbc] Implement CheckAccessFullyMapped instruction
2022-08-26 05:53:03 +02:00
Philip Rebohle
eb8a238d6f
[dxbc] Add definitions for sparse feedback instructions
2022-08-26 05:53:03 +02:00
Philip Rebohle
70158fa9cf
[spirv] Add support for sparse image opcodes
2022-08-26 05:53:03 +02:00
Philip Rebohle
2329c71b6f
[dxvk] Implement sampler reduction mode
2022-08-26 05:53:03 +02:00
Philip Rebohle
43b19f773c
[dxvk] Introduce initSparseImage
2022-08-26 05:53:03 +02:00
Philip Rebohle
fc0d952edb
[dxvk] Introduce copySparsePages{To,From}Buffer
2022-08-26 05:53:03 +02:00
Philip Rebohle
d5348a0cf0
[dxvk] Introduce updatePageTable
2022-08-26 05:53:03 +02:00
Philip Rebohle
12d2f8a9d4
[dxvk] Expose sparse binding operations as part of the command list
2022-08-26 05:53:03 +02:00
Philip Rebohle
2615af7664
[dxvk] Submit sparse binding operations alongside command buffers
2022-08-26 05:53:03 +02:00
Philip Rebohle
d3b6502a17
[dxvk] Introduce DxvkSparseBindSubmission
2022-08-26 05:53:03 +02:00
Philip Rebohle
3057f6a51b
[dxvk] Add structures for sparse binding operations
2022-08-26 05:53:03 +02:00
Philip Rebohle
f9db4921e0
[dxvk] Implement sparse memory allocator
2022-08-26 05:53:03 +02:00
Philip Rebohle
6f216f9df4
[dxvk] Do not discard sparse buffers
...
This would only blow up.
2022-08-26 05:53:03 +02:00
Philip Rebohle
dd54de4d97
[dxvk] Introduce DxvkPagedResource
2022-08-26 05:53:03 +02:00
Philip Rebohle
2d124b811b
[dxvk] Implement sparse image creation
2022-08-26 05:53:03 +02:00
Philip Rebohle
f7c255de2a
[dxvk] Implement sparse buffer creation
2022-08-26 05:53:03 +02:00
Philip Rebohle
bc3affc264
[dxvk] Add functionality to query sparse metadata
2022-08-26 05:53:03 +02:00
Philip Rebohle
e923cc5b69
[dxvk] Change emitGraphicsBarrier to specify a dependency
2022-08-26 05:53:03 +02:00
Philip Rebohle
388288114a
[dxvk] Find a sparse binding queue
2022-08-26 05:53:03 +02:00
Philip Rebohle
71c9c4a5cc
[dxvk] Log sparse features
2022-08-26 05:53:03 +02:00
Philip Rebohle
6e6d64b83e
[dxvk] Remove redundant error message
2022-08-26 05:53:03 +02:00
Philip Rebohle
3ee808afd6
[dxvk] Make memory object of an image publicly accessible
2022-08-26 05:53:03 +02:00
Philip Rebohle
edc74f4c8b
[d3d11] Handle D3D11_FEATURE_D3D11_OPTIONS5
2022-08-26 05:15:28 +02:00
Philip Rebohle
9b4e53cee2
[d3d11] Handle D3D11_FEATURE_SHADER_CACHE
2022-08-26 05:15:28 +02:00
Philip Rebohle
9420391dce
[d3d11] Adjust reported resource sharing caps
2022-08-26 05:15:28 +02:00
Philip Rebohle
f521a342d0
[d3d11] Report marker support appropriately
2022-08-26 05:15:28 +02:00
Blisto91
8f24093864
[util] cap MGS V Ground Zeroes vram at 4095
2022-08-26 03:52:02 +02:00
Philip Rebohle
a2a21cb4d3
[dxvk] Clean up internal memory allocation API
2022-08-25 18:23:02 +02:00
Philip Rebohle
5117210c93
[dxvk] Fix fb resolve barriers
...
No idea how that ended up broken *this* badly.
2022-08-25 02:25:23 +02:00
Philip Rebohle
559fa50f54
[d3d11] Introduce d3d11.enableContextLock option
2022-08-24 12:27:02 +02:00
Philip Rebohle
86bdda70b4
[d3d11] Move D3D10Multithread instance to immediate context
...
Deferred contexts do not support this.
2022-08-24 12:15:35 +02:00
Georg Lehmann
87b1f9fa2d
[dxso] Fix write mask for nrm
2022-08-23 00:38:04 +02:00
Philip Rebohle
17959640c3
[dxvk] Work around vkWaitSemaphore incorrectly returning with VK_TIMEOUT
2022-08-22 20:30:16 +02:00
Philip Rebohle
07a1045ffb
[dxvk] Add context methods for submission splitting
2022-08-22 15:44:00 +02:00
Philip Rebohle
6f2ff2562d
[dxvk] Support splitting command lists into multipe submissions
2022-08-22 15:43:23 +02:00
Philip Rebohle
e378be826e
[dxvk] Use DxvkCommandPool
2022-08-22 14:40:41 +02:00
Philip Rebohle
c3a721f562
[dxvk] Introduce DxvkCommandPool
2022-08-22 14:14:25 +02:00
Philip Rebohle
def93fd18b
[dxvk] Introduce DxvkCommandSubmissionInfo
2022-08-22 14:14:25 +02:00
Philip Rebohle
d367fac64e
[dxvk] Rework queue submission helper
...
We want this to be less verbose and smarter about when to perform
submissions for when we introduce the ability to split a command
list into multiple submissions.
2022-08-22 14:14:25 +02:00
Philip Rebohle
f88239719c
[dxvk] Explicitly mark execution command buffer as used
...
We can omit the execution command buffer in some circumstances,
and for the sparse resource changes we need to track this in
order to be able to merge consecutive sparse binding calls.
We only need to do this on action commands with observable side effects
as long as the backend still properly resets those command buffers.
All draw commands are implcitly covered by cmdBeginRendering.
2022-08-22 12:36:59 +02:00
Philip Rebohle
dd0d611d4d
[dxvk] Reintroduce binary semaphore for transfer <-> graphics sync
...
The global timeline semaphore does not work here since we could be
signaling it from two different queues at the same time, or out of
order.
2022-08-22 05:52:28 +02:00
Philip Rebohle
3d6b687e41
[dxbc] Remove useless lambda
2022-08-22 05:21:49 +02:00