Commit Graph

132 Commits

Author SHA1 Message Date
Philip Rebohle 389634f9b9 [d3d11] Fix D3D11Texture2D reference counting 2023-01-06 22:52:29 +01:00
Philip Rebohle 3a636f6094 [dxvk] Introduce DxvkFormatQuery 2022-09-11 16:40:02 +02: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 9964e4a632 [d3d11] Clean up resource validation around tiled resources 2022-09-05 07:51:08 +02:00
Philip Rebohle bd912212b5 [d3d11] Adjust preferred mapping modes for default images 2022-09-05 05:52:55 +02:00
Philip Rebohle 0cd67cb98a [d3d11] Implement tiled image creation 2022-08-26 05:53:03 +02:00
Joshua Ashton a554a6d60d [d3d11] Include win32 compat headers where applicable 2022-08-21 21:40:55 +02:00
Philip Rebohle 099c70c2bd
[d3d11] Use new format support queries in resource creation 2022-08-17 15:26:03 +02:00
Derek Lesho 57dcf73a54 d3d11: Fix shared textures that export both NT and KMT handles.
We should always create the DxvkImage with the KMT handle type, so that the call later to openKmtHandle succeeds.  Also, don't free sharedHandle when exporting an NT handle.
2022-08-08 23:31:01 +02:00
Philip Rebohle cdf22a4086
[dxvk] Rename imageFormatInfo -> lookupFormatInfo 2022-07-15 17:25:13 +02:00
Philip Rebohle 6ddd0cfe0a
[d3d11] Do not add UINT formats to all UAV format lists
Analogous to vkd3d-proton changes. Allows drivers to use compression more
frequently.
2022-04-25 17:37:10 +02:00
Philip Rebohle 586948df1e
[d3d11] Get strong reference to swap chain in swap chain back buffers 2022-03-22 19:48:13 +01:00
Philip Rebohle ee28f145dc
[d3d11] Explicitly handle R32-compatible UAV formats 2022-03-12 16:23:39 +01:00
Derek Lesho 48046e009c
[d3d11] Add support for shared ID3D11Texture2D resources. 2022-03-12 16:23:06 +01:00
Philip Rebohle 2bceeff5f2
[d3d11] Replace apitrace mode option with something more granular
And enable it only for vertex and index buffers in Nier Replicant.
2022-02-28 22:44:10 +01:00
Philip Rebohle dbd4dad095
[d3d11] Introduce d3d11.maxDynamicImageBufferSize option 2022-02-22 05:31:27 +01:00
Philip Rebohle 33cf522647
[d3d11] Use appropriate memory types for directly mapped images 2022-02-22 05:31:20 +01:00
Philip Rebohle 177e70949c
[d3d11] Apply apitrace mode to image upload buffers 2022-02-22 01:30:43 +01:00
Philip Rebohle d33dac569c
[d3d11] Track last staging resource usage with a sequence number 2022-02-11 18:17:35 +01:00
Philip Rebohle d870b6ff38
[d3d11] Store ID3D11Resource interface in D3D11CommonTexture
Going full circle here, but it's actually useful now.
2022-02-11 18:17:35 +01:00
Philip Rebohle 1abd205216
[d3d11] Compute image data layout for unmapped textures
We sometimes need this information when uploading image data. Fixes #2380.
2021-11-29 16:55:35 +01:00
Philip Rebohle e23792ef91
[d3d11] Fix handling sRGB UAV images 2021-07-07 16:00:12 +02:00
Philip Rebohle 3b857d93b5
[d3d11] Add d3d11.disableMsaa option to disable multisampling
Aims to be mostly transparent to the application, although breakage
can still happen if shaders query the sample count and do not handle
a sample count of 1.
2021-07-02 05:52:05 +02:00
Philip Rebohle 7d76262c52
[d3d11] Use D3D11_COMMON_TEXTURE_MAP_MODE_STAGING if possible 2021-06-24 21:07:48 +02:00
Philip Rebohle 1a6f4456d8
[d3d11] Introduce ComputeMappedOffset for image resources
Modifies GetSubresourceLayout slightly in case only a partial aspect
mask is being passed to the function. This way we can conveniently
compute the offset of a given pixel within the mapped buffer of an
image subresource.
2021-06-24 21:07:48 +02:00
Philip Rebohle 7160b85924
[d3d11] Add texel buffer usage flags to mapped subresource buffers 2021-06-24 21:07:48 +02:00
Philip Rebohle 731e88b196
[d3d11] Handle MAP_MODE_STAGING in initializer
Otherwise, we'll crash if no real image is present.
2021-06-24 21:07:48 +02:00
Philip Rebohle 9e15831a2d
[d3d11] Store packed format info in D3D11CommonTexture 2021-06-24 21:07:48 +02:00
Philip Rebohle f155b8a8b9
[d3d11] Introduce DiscardSlice and GetMappedSlice for image resources
These do the same as they do for buffer resources, but for a mapped
image subresource instead.
2021-06-24 21:07:48 +02:00
Philip Rebohle 11aa2a703a
[d3d11] Introduce D3D11_COMMON_TEXTURE_MAP_MODE_STAGING
This map mode can be used when no Vulkan image is needed to back a
staging resource, which can save a significant amount of memory.
2021-06-24 21:07:48 +02:00
Philip Rebohle 6d72bc94f4
[d3d11] Allow creation of shader resource views for planar images 2021-05-30 19:42:44 +02:00
Philip Rebohle 6d9da5a8d7
[d3d11] Don't use MAP_MODE_DIRECT for multi-plane images 2021-05-30 19:42:44 +02:00
Philip Rebohle 1b296f8338
[d3d11] Introduce GetSubresourceLayout 2021-05-30 19:42:44 +02:00
Philip Rebohle e988895e51
[d3d11] Set mutable and extended usage bits for multi-plane images 2021-05-30 19:42:43 +02:00
Philip Rebohle bce80b523f [d3d11] Mark images as shared if necessary 2021-02-14 04:00:02 +01:00
Philip Rebohle 2787ba8450
[d3d11] Fix D3D11 bind flags and DXGI usage for swap chain images 2021-02-12 03:12:48 +01:00
Philip Rebohle c98c5f5d17
[d3d11] Add internal DXGI usage flags to textures
We need this for swap chain images.
2021-02-12 03:12:48 +01:00
Joshua Ashton 742b52bbb5 [d3d11] Fix device child refs properly 2021-01-15 23:47:48 +01:00
Andrew Eikum a3065fca8e [d3d11] Extend interop interfaces for OpenXR support 2021-01-07 23:54:02 +01:00
Philip Rebohle 2291484696
[d3d11] Fix texture view compatibility check 2020-03-08 01:28:51 +01:00
Philip Rebohle 073669b7e7 [dxvk] Don't enable VK_KHR_maintenance1, VK_KHR_maintenance2
Core in Vulkan 1.1.
2020-01-17 17:46:59 +01:00
Philip Rebohle f9c2e43ffc
[d3d11] Don't set HOST pipeline stage and access flags for resources
The backend does not and will not use that information at all.
2019-10-24 16:57:06 +02:00
Philip Rebohle 127e037627
[d3d11] Validate texture array size
Fixes a wine test failure and possibly prevents invalid Vulkan API usage.
2019-10-11 17:11:01 +02:00
Joshua Ashton 19fa1c405c [d3d10] Remove unused copies of device ptr in D3D10 wrappers
Silences a warning when building with Clang, and removes duplicate unused data.
2019-10-06 00:28:19 +02:00
Philip Rebohle 7e7609cac0
Revert "[d3d11] Don't create linearly tiled compressed images"
This reverts commit b8888ffe6a.

This is no longer beneficial since initialization of a
linear image does not stall Map anymore.
2019-09-20 05:59:54 +02:00
Philip Rebohle e82c87dc52
[d3d11] Implement GetDC / ReleaseDC 2019-09-20 01:44:18 +02:00
Philip Rebohle ae4a5232aa
[d3d11] Use VK_IMAGE_LAYOUT_PREINITIALIZED for mapped images
This way we can directly write image data directly to the image
without having to do it on the GPU.
2019-09-20 01:44:01 +02:00
Philip Rebohle bc853d0e48
[d3d11] Only use mapped buffer for images if bind flags are non-zero
We really shouldn't use the intermediate buffer for DYNAMIC images
that can only ever be used for copy commands, since the copies will
be redundant.
2019-09-18 13:15:22 +02:00
Philip Rebohle 0758f14a35
[d3d11] Implement ID3D11Texture2D1 and ID3D11Texture3D1 2019-09-16 14:27:44 +02:00
Philip Rebohle 7ba7178d14
[d3d11] Implement ID3D11Device2
Adds some extra validation to resource creation so that
apps cannot accidentally create tiled resources.
2019-09-16 12:42:14 +02:00