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
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
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
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
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
Philip Rebohle
3d5becaf6a
[d3d11] Implement Acquire/ReleaseWrappedResource
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
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
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
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
Paul Gofman
2263dcad95
[d3d11] Improve video processor caps query stubs
2023-01-31 13:39:09 +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
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
d35bf455d9
[dxvk] Rename bindResourceBuffer to bindUniformBuffer
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
92de3f3f5f
[d3d11] Add missing context locks
2023-01-14 18:40:41 +01:00
Philip Rebohle
e426ec09a1
[d3d11,dxbc] Add d3d11.forceSampleRateShading option
2023-01-09 18:35:02 +01:00
Philip Rebohle
389634f9b9
[d3d11] Fix D3D11Texture2D reference counting
2023-01-06 22:52:29 +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
33acf58ac7
[d3d11] Implement CheckColorSpaceSupport and SetColorSpace
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
Philip Rebohle
4f90d7bf5f
[dxbc,d3d11] Don't access shex chunk if it is not defined
2022-11-25 12:45:32 +01: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
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
3a9e975a71
[dxgi] Implement DxgiSurfaceFactory
2022-11-07 14:14:05 +01:00
Philip Rebohle
b055c2daea
[d3d11] Avoid querying environment variables on shader creation
2022-10-24 17:58:57 +02:00
Philip Rebohle
859de7e828
[dxvk] Always enable depth clip feature if supported
2022-10-24 16:39:24 +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
aca67f64da
[d3d11] Implement IDXGIVkSwapChainFactory for D3D11
2022-10-16 16:38:29 +02: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
Philip Rebohle
bd7d2aac71
[dxgi] Get rid of NotifyModeChange method
...
Was only used for the FPS limiter.
2022-10-07 13:25:56 +02:00
Philip Rebohle
a14ce8d1b0
[d3d11] Enable ROV support if corresponding Vulkan features are supported
2022-09-19 15:44:23 +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