1
0
mirror of https://github.com/doitsujin/dxvk.git synced 2025-02-02 11:52:10 +01:00
dxvk/src/d3d11/d3d11_util.h
Philip Rebohle 2cdbe2e6df
[d3d11] Move GetMemoryFlagsForUsage into D3D11Buffer
D3D11Buffer is the only user of this function and the code sharing
potential is limited. This allows us to implement the memory type
selection for buffers in one single place rather than two.
2019-09-17 17:21:10 +02:00

52 lines
1.2 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);
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);
}