1
0
mirror of https://github.com/doitsujin/dxvk.git synced 2025-02-02 02:52:11 +01:00
dxvk/src/d3d11/d3d11_util.cpp

63 lines
1.7 KiB
C++
Raw Normal View History

#include "d3d11_util.h"
namespace dxvk {
VkCompareOp DecodeCompareOp(
D3D11_COMPARISON_FUNC mode) {
switch (mode) {
case D3D11_COMPARISON_NEVER:
return VK_COMPARE_OP_NEVER;
case D3D11_COMPARISON_LESS:
return VK_COMPARE_OP_LESS;
case D3D11_COMPARISON_EQUAL:
return VK_COMPARE_OP_EQUAL;
case D3D11_COMPARISON_LESS_EQUAL:
return VK_COMPARE_OP_LESS_OR_EQUAL;
case D3D11_COMPARISON_GREATER:
return VK_COMPARE_OP_GREATER;
case D3D11_COMPARISON_NOT_EQUAL:
return VK_COMPARE_OP_NOT_EQUAL;
case D3D11_COMPARISON_GREATER_EQUAL:
return VK_COMPARE_OP_GREATER_OR_EQUAL;
case D3D11_COMPARISON_ALWAYS:
return VK_COMPARE_OP_ALWAYS;
default:
Logger::err(str::format("D3D11: Unsupported compare op: ", mode));
return VK_COMPARE_OP_ALWAYS;
}
}
VkMemoryPropertyFlags GetMemoryFlagsForUsage(D3D11_USAGE usage) {
VkMemoryPropertyFlags memoryFlags = 0;
switch (usage) {
case D3D11_USAGE_DEFAULT:
case D3D11_USAGE_IMMUTABLE:
memoryFlags |= VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT;
break;
case D3D11_USAGE_DYNAMIC:
memoryFlags |= VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT
| VK_MEMORY_PROPERTY_HOST_COHERENT_BIT;
break;
case D3D11_USAGE_STAGING:
memoryFlags |= VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT
| VK_MEMORY_PROPERTY_HOST_COHERENT_BIT
| VK_MEMORY_PROPERTY_HOST_CACHED_BIT;
break;
}
return memoryFlags;
}
}