mirror of
https://github.com/doitsujin/dxvk.git
synced 2025-02-02 11:52:10 +01:00
2cdbe2e6df
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.
52 lines
1.2 KiB
C++
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);
|
|
|
|
} |