2017-12-11 01:43:15 +01:00
|
|
|
#pragma once
|
|
|
|
|
2017-12-15 19:11:10 +01:00
|
|
|
#include "../dxvk/dxvk_device.h"
|
|
|
|
|
|
|
|
#include "../dxbc/dxbc_util.h"
|
2017-12-11 01:43:15 +01:00
|
|
|
|
|
|
|
#include "d3d11_include.h"
|
|
|
|
|
|
|
|
namespace dxvk {
|
|
|
|
|
2018-05-30 13:33:48 +02:00
|
|
|
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;
|
|
|
|
}
|
|
|
|
|
2018-04-13 13:46:45 +02:00
|
|
|
HRESULT DecodeSampleCount(
|
2017-12-19 16:01:50 +01:00
|
|
|
UINT Count,
|
|
|
|
VkSampleCountFlagBits* pCount);
|
2018-03-05 02:21:34 +01:00
|
|
|
|
|
|
|
VkSamplerAddressMode DecodeAddressMode(
|
|
|
|
D3D11_TEXTURE_ADDRESS_MODE mode);
|
2017-12-19 16:01:50 +01:00
|
|
|
|
2017-12-21 16:54:20 +01:00
|
|
|
VkBorderColor DecodeBorderColor(
|
|
|
|
const FLOAT BorderColor[4]);
|
|
|
|
|
2017-12-11 01:43:15 +01:00
|
|
|
VkCompareOp DecodeCompareOp(
|
2017-12-21 16:54:20 +01:00
|
|
|
D3D11_COMPARISON_FUNC Mode);
|
2017-12-11 01:43:15 +01:00
|
|
|
|
2017-12-14 15:59:55 +01:00
|
|
|
VkMemoryPropertyFlags GetMemoryFlagsForUsage(
|
2017-12-21 16:54:20 +01:00
|
|
|
D3D11_USAGE Usage);
|
2017-12-11 01:43:15 +01:00
|
|
|
|
2018-07-30 19:34:48 +02:00
|
|
|
VkShaderStageFlagBits GetShaderStage(
|
|
|
|
DxbcProgramType ProgramType);
|
|
|
|
|
2018-08-09 21:49:31 +02:00
|
|
|
VkBufferUsageFlags GetBufferUsageFlags(
|
|
|
|
UINT BindFlags);
|
|
|
|
|
|
|
|
VkImageUsageFlags GetImageUsageFlags(
|
|
|
|
UINT BindFlags);
|
|
|
|
|
2017-12-11 01:43:15 +01:00
|
|
|
}
|