1
0
mirror of https://github.com/doitsujin/dxvk.git synced 2024-12-13 16:08:50 +01:00
dxvk/src/d3d11/d3d11_util.h
Philip Rebohle 81a5e2fa0c
[d3d11] Add helper to find exact mapping for depth-stencil formats
This is necessary in situations when we need to get the Vulkan format
that corresponds to the DXGI format rather than the remapped one.
2018-11-08 18:51:43 +01:00

55 lines
1.3 KiB
C++

#pragma once
#include "../dxvk/dxvk_device.h"
#include "../dxbc/dxbc_util.h"
#include "d3d11_include.h"
namespace dxvk {
template<typename T>
UINT CompactSparseList(T* pData, UINT Mask) {
uint32_t count = 0;
while (Mask != 0) {
uint32_t id = bit::tzcnt(Mask);
pData[count++] = pData[id];
Mask &= Mask - 1;
}
return count;
}
HRESULT DecodeSampleCount(
UINT Count,
VkSampleCountFlagBits* pCount);
VkSamplerAddressMode DecodeAddressMode(
D3D11_TEXTURE_ADDRESS_MODE mode);
VkCompareOp DecodeCompareOp(
D3D11_COMPARISON_FUNC Mode);
VkMemoryPropertyFlags GetMemoryFlagsForUsage(
D3D11_USAGE Usage);
VkShaderStageFlagBits GetShaderStage(
DxbcProgramType ProgramType);
VkBufferUsageFlags GetBufferUsageFlags(
UINT BindFlags);
VkImageUsageFlags GetImageUsageFlags(
UINT BindFlags);
VkFormatFeatureFlags GetBufferFormatFeatures(
UINT BindFlags);
VkFormatFeatureFlags GetImageFormatFeatures(
UINT BindFlags);
VkFormat GetPackedDepthStencilFormat(
DXGI_FORMAT Format);
}