1
0
mirror of https://github.com/doitsujin/dxvk.git synced 2025-02-20 19:54:19 +01:00

[d3d11] Implement D3D11.2 MapOnDefaultBuffers feature

Basically just allocates the buffer on a host-visible memory
type, like DYNAMIC or STAGING buffers depending depending on
the CPU access flags.
This commit is contained in:
Philip Rebohle 2019-09-17 17:25:09 +02:00
parent 2cdbe2e6df
commit 6ce8450b12
No known key found for this signature in database
GPG Key ID: C8CC613427A31C99
2 changed files with 7 additions and 2 deletions

View File

@ -224,10 +224,15 @@ namespace dxvk {
case D3D11_USAGE_DEFAULT:
memoryFlags |= VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT;
if (m_desc.BindFlags & D3D11_BIND_CONSTANT_BUFFER) {
if ((m_desc.BindFlags & D3D11_BIND_CONSTANT_BUFFER) || m_desc.CPUAccessFlags) {
memoryFlags |= VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT
| VK_MEMORY_PROPERTY_HOST_COHERENT_BIT;
}
if (m_desc.CPUAccessFlags & D3D11_CPU_ACCESS_READ) {
memoryFlags |= VK_MEMORY_PROPERTY_HOST_CACHED_BIT;
memoryFlags &= ~VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT;
}
break;
case D3D11_USAGE_DYNAMIC:

View File

@ -1606,7 +1606,7 @@ namespace dxvk {
info->TiledResourcesTier = D3D11_TILED_RESOURCES_NOT_SUPPORTED;
info->MinMaxFiltering = FALSE;
info->ClearViewAlsoSupportsDepthOnlyFormats = TRUE;
info->MapOnDefaultBuffers = FALSE;
info->MapOnDefaultBuffers = TRUE;
} return S_OK;
case D3D11_FEATURE_D3D9_SIMPLE_INSTANCING_SUPPORT: {