mirror of
https://github.com/doitsujin/dxvk.git
synced 2025-02-21 22:54:16 +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:
parent
2cdbe2e6df
commit
6ce8450b12
@ -224,10 +224,15 @@ namespace dxvk {
|
|||||||
case D3D11_USAGE_DEFAULT:
|
case D3D11_USAGE_DEFAULT:
|
||||||
memoryFlags |= VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT;
|
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
|
memoryFlags |= VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT
|
||||||
| VK_MEMORY_PROPERTY_HOST_COHERENT_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;
|
break;
|
||||||
|
|
||||||
case D3D11_USAGE_DYNAMIC:
|
case D3D11_USAGE_DYNAMIC:
|
||||||
|
@ -1606,7 +1606,7 @@ namespace dxvk {
|
|||||||
info->TiledResourcesTier = D3D11_TILED_RESOURCES_NOT_SUPPORTED;
|
info->TiledResourcesTier = D3D11_TILED_RESOURCES_NOT_SUPPORTED;
|
||||||
info->MinMaxFiltering = FALSE;
|
info->MinMaxFiltering = FALSE;
|
||||||
info->ClearViewAlsoSupportsDepthOnlyFormats = TRUE;
|
info->ClearViewAlsoSupportsDepthOnlyFormats = TRUE;
|
||||||
info->MapOnDefaultBuffers = FALSE;
|
info->MapOnDefaultBuffers = TRUE;
|
||||||
} return S_OK;
|
} return S_OK;
|
||||||
|
|
||||||
case D3D11_FEATURE_D3D9_SIMPLE_INSTANCING_SUPPORT: {
|
case D3D11_FEATURE_D3D9_SIMPLE_INSTANCING_SUPPORT: {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user