Various updates (#489)
* Update DX Compiler release for July 2022 * Update DirectX headers to agility SDK 1.606.3 Update D3D12MemAlloc to latest version. * Update Vulkan headers to 1.3.221 Update volk Update VMA * Revert DXC update.
This commit is contained in:
@@ -27,6 +27,7 @@
|
||||
#include <algorithm>
|
||||
#include <utility>
|
||||
#include <cstdlib>
|
||||
#include <cstdint>
|
||||
#include <malloc.h> // for _aligned_malloc, _aligned_free
|
||||
#ifndef _WIN32
|
||||
#include <shared_mutex>
|
||||
@@ -377,7 +378,15 @@ template <typename T>
|
||||
static T RoundDiv(T x, T y) { return (x + (y / (T)2)) / y; }
|
||||
template <typename T>
|
||||
static T DivideRoundingUp(T x, T y) { return (x + y - 1) / y; }
|
||||
|
||||
|
||||
static WCHAR HexDigitToChar(UINT8 digit)
|
||||
{
|
||||
if(digit < 10)
|
||||
return L'0' + digit;
|
||||
else
|
||||
return L'A' + (digit - 10);
|
||||
}
|
||||
|
||||
/*
|
||||
Performs binary search and returns iterator to first element that is greater or
|
||||
equal to `key`, according to comparison `cmp`.
|
||||
@@ -1180,6 +1189,7 @@ public:
|
||||
void AddNewLine() { Add(L'\n'); }
|
||||
void AddNumber(UINT num);
|
||||
void AddNumber(UINT64 num);
|
||||
void AddPointer(const void* ptr);
|
||||
|
||||
private:
|
||||
Vector<WCHAR> m_Data;
|
||||
@@ -1224,6 +1234,22 @@ void StringBuilder::AddNumber(UINT64 num)
|
||||
while (num);
|
||||
Add(p);
|
||||
}
|
||||
|
||||
void StringBuilder::AddPointer(const void* ptr)
|
||||
{
|
||||
WCHAR buf[21];
|
||||
uintptr_t num = (uintptr_t)ptr;
|
||||
buf[20] = L'\0';
|
||||
WCHAR *p = &buf[20];
|
||||
do
|
||||
{
|
||||
*--p = HexDigitToChar((UINT8)(num & 0xF));
|
||||
num >>= 4;
|
||||
}
|
||||
while (num);
|
||||
Add(p);
|
||||
}
|
||||
|
||||
#endif // _D3D12MA_STRING_BUILDER_FUNCTIONS
|
||||
#endif // _D3D12MA_STRING_BUILDER
|
||||
|
||||
@@ -1267,6 +1293,7 @@ public:
|
||||
// Posts next part of an open string. The number is converted to decimal characters.
|
||||
void ContinueString(UINT num);
|
||||
void ContinueString(UINT64 num);
|
||||
void ContinueString_Pointer(const void* ptr);
|
||||
// Posts next part of an open string. Pointer value is converted to characters
|
||||
// using "%p" formatting - shown as hexadecimal number, e.g.: 000000081276Ad00
|
||||
// void ContinueString_Pointer(const void* ptr);
|
||||
@@ -1452,6 +1479,12 @@ void JsonWriter::ContinueString(UINT64 num)
|
||||
m_SB.AddNumber(num);
|
||||
}
|
||||
|
||||
void JsonWriter::ContinueString_Pointer(const void* ptr)
|
||||
{
|
||||
D3D12MA_ASSERT(m_InsideString);
|
||||
m_SB.AddPointer(ptr);
|
||||
}
|
||||
|
||||
void JsonWriter::EndString(LPCWSTR pStr)
|
||||
{
|
||||
D3D12MA_ASSERT(m_InsideString);
|
||||
@@ -1524,7 +1557,9 @@ void JsonWriter::AddAllocationToObject(const Allocation& alloc)
|
||||
if (privateData)
|
||||
{
|
||||
WriteString(L"CustomData");
|
||||
WriteNumber((uintptr_t)privateData);
|
||||
BeginString();
|
||||
ContinueString_Pointer(privateData);
|
||||
EndString();
|
||||
}
|
||||
|
||||
LPCWSTR name = alloc.GetName();
|
||||
@@ -2975,10 +3010,10 @@ void BlockMetadata::PrintDetailedMap_Begin(JsonWriter& json,
|
||||
json.WriteNumber(unusedBytes);
|
||||
|
||||
json.WriteString(L"Allocations");
|
||||
json.WriteNumber(allocationCount);
|
||||
json.WriteNumber((UINT64)allocationCount);
|
||||
|
||||
json.WriteString(L"UnusedRanges");
|
||||
json.WriteNumber(unusedRangeCount);
|
||||
json.WriteNumber((UINT64)unusedRangeCount);
|
||||
|
||||
json.WriteString(L"Suballocations");
|
||||
json.BeginArray();
|
||||
@@ -5193,7 +5228,7 @@ bool BlockMetadata_TLSF::CreateAllocationRequest(
|
||||
|
||||
// Round up to the next block
|
||||
UINT64 sizeForNextList = allocSize;
|
||||
UINT64 smallSizeStep = SMALL_BUFFER_SIZE / (IsVirtual() ? 1 << SECOND_LEVEL_INDEX : 4);
|
||||
UINT16 smallSizeStep = SMALL_BUFFER_SIZE / (IsVirtual() ? 1 << SECOND_LEVEL_INDEX : 4);
|
||||
if (allocSize > SMALL_BUFFER_SIZE)
|
||||
{
|
||||
sizeForNextList += (1ULL << (BitScanMSB(allocSize) - SECOND_LEVEL_INDEX));
|
||||
@@ -6085,7 +6120,7 @@ private:
|
||||
D3D12MA_ATOMIC_UINT64 m_BlockBytes[DXGI_MEMORY_SEGMENT_GROUP_COUNT] = {};
|
||||
D3D12MA_ATOMIC_UINT64 m_AllocationBytes[DXGI_MEMORY_SEGMENT_GROUP_COUNT] = {};
|
||||
|
||||
D3D12MA_ATOMIC_UINT32 m_OperationsSinceBudgetFetch = 0;
|
||||
D3D12MA_ATOMIC_UINT32 m_OperationsSinceBudgetFetch = {0};
|
||||
D3D12MA_RW_MUTEX m_BudgetMutex;
|
||||
UINT64 m_D3D12Usage[DXGI_MEMORY_SEGMENT_GROUP_COUNT] = {};
|
||||
UINT64 m_D3D12Budget[DXGI_MEMORY_SEGMENT_GROUP_COUNT] = {};
|
||||
@@ -6320,7 +6355,7 @@ class AllocatorPimpl
|
||||
friend class Allocator;
|
||||
friend class Pool;
|
||||
public:
|
||||
std::atomic_uint32_t m_RefCount = 1;
|
||||
std::atomic_uint32_t m_RefCount = {1};
|
||||
CurrentBudgetData m_Budget;
|
||||
|
||||
AllocatorPimpl(const ALLOCATION_CALLBACKS& allocationCallbacks, const ALLOCATOR_DESC& desc);
|
||||
@@ -6547,6 +6582,8 @@ AllocatorPimpl::AllocatorPimpl(const ALLOCATION_CALLBACKS& allocationCallbacks,
|
||||
|
||||
HRESULT AllocatorPimpl::Init(const ALLOCATOR_DESC& desc)
|
||||
{
|
||||
bool notZeroedSupported = false;
|
||||
|
||||
#if D3D12MA_DXGI_1_4
|
||||
desc.pAdapter->QueryInterface(D3D12MA_IID_PPV_ARGS(&m_Adapter3));
|
||||
#endif
|
||||
@@ -6557,6 +6594,12 @@ HRESULT AllocatorPimpl::Init(const ALLOCATOR_DESC& desc)
|
||||
|
||||
#ifdef __ID3D12Device8_INTERFACE_DEFINED__
|
||||
m_Device->QueryInterface(D3D12MA_IID_PPV_ARGS(&m_Device8));
|
||||
|
||||
D3D12_FEATURE_DATA_D3D12_OPTIONS7 options7 = {};
|
||||
if(SUCCEEDED(m_Device->CheckFeatureSupport(D3D12_FEATURE_D3D12_OPTIONS7, &options7, sizeof(options7))))
|
||||
{
|
||||
notZeroedSupported = true;
|
||||
}
|
||||
#endif
|
||||
|
||||
HRESULT hr = m_Adapter->GetDesc(&m_AdapterDesc);
|
||||
@@ -6589,8 +6632,10 @@ HRESULT AllocatorPimpl::Init(const ALLOCATOR_DESC& desc)
|
||||
CalcDefaultPoolParams(heapProps.Type, heapFlags, i);
|
||||
|
||||
#ifdef __ID3D12Device8_INTERFACE_DEFINED__
|
||||
if (desc.Flags & ALLOCATOR_FLAG_DEFAULT_POOLS_NOT_ZEROED)
|
||||
if ((desc.Flags & ALLOCATOR_FLAG_DEFAULT_POOLS_NOT_ZEROED) != 0 && notZeroedSupported)
|
||||
{
|
||||
heapFlags |= D3D12_HEAP_FLAG_CREATE_NOT_ZEROED;
|
||||
}
|
||||
#endif
|
||||
|
||||
m_BlockVectors[i] = D3D12MA_NEW(GetAllocs(), BlockVector)(
|
||||
@@ -7146,11 +7191,11 @@ void AllocatorPimpl::BuildStatsString(WCHAR** ppStatsString, BOOL detailedMap)
|
||||
json.WriteString(m_AdapterDesc.Description);
|
||||
|
||||
json.WriteString(L"DedicatedVideoMemory");
|
||||
json.WriteNumber(m_AdapterDesc.DedicatedVideoMemory);
|
||||
json.WriteNumber((UINT64)m_AdapterDesc.DedicatedVideoMemory);
|
||||
json.WriteString(L"DedicatedSystemMemory");
|
||||
json.WriteNumber(m_AdapterDesc.DedicatedSystemMemory);
|
||||
json.WriteNumber((UINT64)m_AdapterDesc.DedicatedSystemMemory);
|
||||
json.WriteString(L"SharedSystemMemory");
|
||||
json.WriteNumber(m_AdapterDesc.SharedSystemMemory);
|
||||
json.WriteNumber((UINT64)m_AdapterDesc.SharedSystemMemory);
|
||||
|
||||
json.WriteString(L"ResourceHeapTier");
|
||||
json.WriteNumber(static_cast<UINT>(m_D3D12Options.ResourceHeapTier));
|
||||
@@ -7196,9 +7241,6 @@ void AllocatorPimpl::BuildStatsString(WCHAR** ppStatsString, BOOL detailedMap)
|
||||
json.WriteString(L"DEFAULT");
|
||||
json.BeginObject();
|
||||
{
|
||||
json.WriteString(L"Flags");
|
||||
json.BeginArray(true);
|
||||
json.EndArray();
|
||||
json.WriteString(L"Stats");
|
||||
json.AddDetailedStatisticsInfoObject(stats.HeapType[0]);
|
||||
}
|
||||
@@ -7207,9 +7249,6 @@ void AllocatorPimpl::BuildStatsString(WCHAR** ppStatsString, BOOL detailedMap)
|
||||
json.WriteString(L"UPLOAD");
|
||||
json.BeginObject();
|
||||
{
|
||||
json.WriteString(L"Flags");
|
||||
json.BeginArray(true);
|
||||
json.EndArray();
|
||||
json.WriteString(L"Stats");
|
||||
json.AddDetailedStatisticsInfoObject(stats.HeapType[1]);
|
||||
}
|
||||
@@ -7218,9 +7257,6 @@ void AllocatorPimpl::BuildStatsString(WCHAR** ppStatsString, BOOL detailedMap)
|
||||
json.WriteString(L"READBACK");
|
||||
json.BeginObject();
|
||||
{
|
||||
json.WriteString(L"Flags");
|
||||
json.BeginArray(true);
|
||||
json.EndArray();
|
||||
json.WriteString(L"Stats");
|
||||
json.AddDetailedStatisticsInfoObject(stats.HeapType[2]);
|
||||
}
|
||||
@@ -7229,9 +7265,6 @@ void AllocatorPimpl::BuildStatsString(WCHAR** ppStatsString, BOOL detailedMap)
|
||||
json.WriteString(L"CUSTOM");
|
||||
json.BeginObject();
|
||||
{
|
||||
json.WriteString(L"Flags");
|
||||
json.BeginArray(true);
|
||||
json.EndArray();
|
||||
json.WriteString(L"Stats");
|
||||
json.AddDetailedStatisticsInfoObject(customHeaps[!IsUMA()]);
|
||||
}
|
||||
@@ -7245,13 +7278,6 @@ void AllocatorPimpl::BuildStatsString(WCHAR** ppStatsString, BOOL detailedMap)
|
||||
json.WriteString(L"L1");
|
||||
json.BeginObject();
|
||||
{
|
||||
json.WriteString(L"Flags");
|
||||
json.BeginArray(true);
|
||||
json.EndArray();
|
||||
|
||||
json.WriteString(L"Size");
|
||||
json.WriteNumber(0U);
|
||||
|
||||
json.WriteString(L"Budget");
|
||||
WriteBudgetToJson(json, localBudget);
|
||||
|
||||
@@ -7264,9 +7290,6 @@ void AllocatorPimpl::BuildStatsString(WCHAR** ppStatsString, BOOL detailedMap)
|
||||
json.WriteString(L"DEFAULT");
|
||||
json.BeginObject();
|
||||
{
|
||||
json.WriteString(L"Flags");
|
||||
json.BeginArray(true);
|
||||
json.EndArray();
|
||||
json.WriteString(L"Stats");
|
||||
json.AddDetailedStatisticsInfoObject(stats.HeapType[0]);
|
||||
}
|
||||
@@ -7275,9 +7298,6 @@ void AllocatorPimpl::BuildStatsString(WCHAR** ppStatsString, BOOL detailedMap)
|
||||
json.WriteString(L"CUSTOM");
|
||||
json.BeginObject();
|
||||
{
|
||||
json.WriteString(L"Flags");
|
||||
json.BeginArray(true);
|
||||
json.EndArray();
|
||||
json.WriteString(L"Stats");
|
||||
json.AddDetailedStatisticsInfoObject(customHeaps[0]);
|
||||
}
|
||||
@@ -7449,8 +7469,8 @@ void AllocatorPimpl::BuildStatsString(WCHAR** ppStatsString, BOOL detailedMap)
|
||||
json.ContinueString(index++);
|
||||
if (item->GetName())
|
||||
{
|
||||
json.WriteString(L" - ");
|
||||
json.WriteString(item->GetName());
|
||||
json.ContinueString(L" - ");
|
||||
json.ContinueString(item->GetName());
|
||||
}
|
||||
json.EndString();
|
||||
|
||||
@@ -7749,9 +7769,10 @@ HRESULT AllocatorPimpl::CalcAllocationParams(const ALLOCATION_DESC& allocDesc, U
|
||||
msaaAlwaysCommitted = pool->GetBlockVector()->DeniesMsaaTextures();
|
||||
outBlockVector = pool->GetBlockVector();
|
||||
|
||||
outCommittedAllocationParams.m_ProtectedSession = pool->GetDesc().pProtectedSession;
|
||||
outCommittedAllocationParams.m_HeapProperties = pool->GetDesc().HeapProperties;
|
||||
outCommittedAllocationParams.m_HeapFlags = pool->GetDesc().HeapFlags;
|
||||
const auto& desc = pool->GetDesc();
|
||||
outCommittedAllocationParams.m_ProtectedSession = desc.pProtectedSession;
|
||||
outCommittedAllocationParams.m_HeapProperties = desc.HeapProperties;
|
||||
outCommittedAllocationParams.m_HeapFlags = desc.HeapFlags;
|
||||
outCommittedAllocationParams.m_List = pool->GetCommittedAllocationList();
|
||||
}
|
||||
else
|
||||
@@ -9118,8 +9139,8 @@ bool DefragmentationContextPimpl::IncrementCounters(UINT64 bytes)
|
||||
// Early return when max found
|
||||
if (++m_PassStats.AllocationsMoved >= m_MaxPassAllocations || m_PassStats.BytesMoved >= m_MaxPassBytes)
|
||||
{
|
||||
D3D12MA_ASSERT(m_PassStats.AllocationsMoved == m_MaxPassAllocations ||
|
||||
m_PassStats.BytesMoved == m_MaxPassBytes && "Exceeded maximal pass threshold!");
|
||||
D3D12MA_ASSERT((m_PassStats.AllocationsMoved == m_MaxPassAllocations ||
|
||||
m_PassStats.BytesMoved == m_MaxPassBytes) && "Exceeded maximal pass threshold!");
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
@@ -9449,8 +9470,8 @@ PoolPimpl::PoolPimpl(AllocatorPimpl* allocator, const POOL_DESC& desc)
|
||||
desc.MinBlockCount, maxBlockCount,
|
||||
explicitBlockSize,
|
||||
D3D12MA_MAX(desc.MinAllocationAlignment, (UINT64)D3D12MA_DEBUG_ALIGNMENT),
|
||||
desc.Flags & POOL_FLAG_ALGORITHM_MASK,
|
||||
desc.Flags & POOL_FLAG_MSAA_TEXTURES_ALWAYS_COMMITTED,
|
||||
(desc.Flags & POOL_FLAG_ALGORITHM_MASK) != 0,
|
||||
(desc.Flags & POOL_FLAG_MSAA_TEXTURES_ALWAYS_COMMITTED) != 0,
|
||||
desc.pProtectedSession);
|
||||
}
|
||||
|
||||
@@ -9699,6 +9720,7 @@ Allocation::Allocation(AllocatorPimpl* allocator, UINT64 size, UINT64 alignment,
|
||||
m_Size{ size },
|
||||
m_Alignment{ alignment },
|
||||
m_Resource{ NULL },
|
||||
m_pPrivateData{ NULL },
|
||||
m_Name{ NULL }
|
||||
{
|
||||
D3D12MA_ASSERT(allocator);
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
|
||||
/** \mainpage D3D12 Memory Allocator
|
||||
|
||||
<b>Version 2.0.0</b> (2022-03-25)
|
||||
<b>Version 2.0.2-development</b> (2022-06-14)
|
||||
|
||||
Copyright (c) 2019-2022 Advanced Micro Devices, Inc. All rights reserved. \n
|
||||
License: MIT
|
||||
@@ -36,6 +36,7 @@ Documentation of all members: D3D12MemAlloc.h
|
||||
- \subpage quick_start
|
||||
- [Project setup](@ref quick_start_project_setup)
|
||||
- [Creating resources](@ref quick_start_creating_resources)
|
||||
- [Resource reference counting](@ref quick_start_resource_reference_counting)
|
||||
- [Mapping memory](@ref quick_start_mapping_memory)
|
||||
- \subpage custom_pools
|
||||
- \subpage defragmentation
|
||||
@@ -144,7 +145,7 @@ public:
|
||||
protected:
|
||||
virtual void ReleaseThis() { delete this; }
|
||||
private:
|
||||
D3D12MA_ATOMIC_UINT32 m_RefCount = 1;
|
||||
D3D12MA_ATOMIC_UINT32 m_RefCount = {1};
|
||||
};
|
||||
} // namespace D3D12MA
|
||||
|
||||
@@ -837,7 +838,7 @@ enum POOL_FLAGS
|
||||
/** \brief Optimization, allocate MSAA textures as committed resources always.
|
||||
|
||||
Specify this flag to create MSAA textures with implicit heaps, as if they were created
|
||||
with flag ALLOCATION_FLAG_COMMITTED. Usage of this flags enables pool to create its heaps
|
||||
with flag D3D12MA::ALLOCATION_FLAG_COMMITTED. Usage of this flags enables pool to create its heaps
|
||||
on smaller alignment not suitable for MSAA textures.
|
||||
*/
|
||||
POOL_FLAG_MSAA_TEXTURES_ALWAYS_COMMITTED = 0x2,
|
||||
@@ -1017,7 +1018,7 @@ enum ALLOCATOR_FLAGS
|
||||
/** \brief Optimization, allocate MSAA textures as committed resources always.
|
||||
|
||||
Specify this flag to create MSAA textures with implicit heaps, as if they were created
|
||||
with flag ALLOCATION_FLAG_COMMITTED. Usage of this flags enables all default pools
|
||||
with flag D3D12MA::ALLOCATION_FLAG_COMMITTED. Usage of this flags enables all default pools
|
||||
to create its heaps on smaller alignment not suitable for MSAA textures.
|
||||
*/
|
||||
ALLOCATOR_FLAG_MSAA_TEXTURES_ALWAYS_COMMITTED = 0x8,
|
||||
@@ -1572,9 +1573,9 @@ to be passed along with `D3D12_RESOURCE_DESC` and other parameters for created
|
||||
resource. This structure describes parameters of the desired memory allocation,
|
||||
including choice of `D3D12_HEAP_TYPE`.
|
||||
|
||||
The function also returns a new object of type D3D12MA::Allocation, created along
|
||||
with usual `ID3D12Resource`. It represents allocated memory and can be queried
|
||||
for size, offset, `ID3D12Resource`, and `ID3D12Heap` if needed.
|
||||
The function returns a new object of type D3D12MA::Allocation.
|
||||
It represents allocated memory and can be queried for size, offset, `ID3D12Heap`.
|
||||
It also holds a reference to the `ID3D12Resource`, which can be accessed by calling D3D12MA::Allocation::GetResource().
|
||||
|
||||
\code
|
||||
D3D12_RESOURCE_DESC resourceDesc = {};
|
||||
@@ -1593,7 +1594,6 @@ resourceDesc.Flags = D3D12_RESOURCE_FLAG_NONE;
|
||||
D3D12MA::ALLOCATION_DESC allocationDesc = {};
|
||||
allocationDesc.HeapType = D3D12_HEAP_TYPE_DEFAULT;
|
||||
|
||||
D3D12Resource* resource;
|
||||
D3D12MA::Allocation* allocation;
|
||||
HRESULT hr = allocator->CreateResource(
|
||||
&allocationDesc,
|
||||
@@ -1601,15 +1601,16 @@ HRESULT hr = allocator->CreateResource(
|
||||
D3D12_RESOURCE_STATE_COPY_DEST,
|
||||
NULL,
|
||||
&allocation,
|
||||
IID_PPV_ARGS(&resource));
|
||||
IID_NULL, NULL);
|
||||
|
||||
// Use allocation->GetResource()...
|
||||
\endcode
|
||||
|
||||
You need to remember both resource and allocation objects and destroy them
|
||||
separately when no longer needed.
|
||||
You need to release the allocation object when no longer needed.
|
||||
This will also release the D3D12 resource.
|
||||
|
||||
\code
|
||||
allocation->Release();
|
||||
resource->Release();
|
||||
\endcode
|
||||
|
||||
The advantage of using the allocator instead of creating committed resource, and
|
||||
@@ -1632,6 +1633,65 @@ they can be kept together. By using this library, you don't need to handle this
|
||||
manually.
|
||||
|
||||
|
||||
\section quick_start_resource_reference_counting Resource reference counting
|
||||
|
||||
`ID3D12Resource` and other interfaces of Direct3D 12 use COM, so they are reference-counted.
|
||||
Objects of this library are reference-counted as well.
|
||||
An object of type D3D12MA::Allocation remembers the resource (buffer or texture)
|
||||
that was created together with this memory allocation
|
||||
and holds a reference to the `ID3D12Resource` object.
|
||||
(Note this is a difference to Vulkan Memory Allocator, where a `VmaAllocation` object has no connection
|
||||
with the buffer or image that was created with it.)
|
||||
Thus, it is important to manage the resource reference counter properly.
|
||||
|
||||
<b>The simplest use case</b> is shown in the code snippet above.
|
||||
When only D3D12MA::Allocation object is obtained from a function call like D3D12MA::Allocator::CreateResource,
|
||||
it remembers the `ID3D12Resource` that was created with it and holds a reference to it.
|
||||
The resource can be obtained by calling `allocation->GetResource()`, which doesn't increment the resource
|
||||
reference counter.
|
||||
Calling `allocation->Release()` will decrease the resource reference counter, which is = 1 in this case,
|
||||
so the resource will be released.
|
||||
|
||||
<b>Second option</b> is to retrieve a pointer to the resource along with D3D12MA::Allocation.
|
||||
Last parameters of the resource creation function can be used for this purpose.
|
||||
|
||||
\code
|
||||
D3D12MA::Allocation* allocation;
|
||||
ID3D12Resource* resource;
|
||||
HRESULT hr = allocator->CreateResource(
|
||||
&allocationDesc,
|
||||
&resourceDesc,
|
||||
D3D12_RESOURCE_STATE_COPY_DEST,
|
||||
NULL,
|
||||
&allocation,
|
||||
IID_PPV_ARGS(&resource));
|
||||
|
||||
// Use resource...
|
||||
\endcode
|
||||
|
||||
In this case, returned pointer `resource` is equal to `allocation->GetResource()`,
|
||||
but the creation function additionally increases resource reference counter for the purpose of returning it from this call
|
||||
(it actually calls `QueryInterface` internally), so the resource will have the counter = 2.
|
||||
The resource then need to be released along with the allocation, in this particular order,
|
||||
to make sure the resource is destroyed before its memory heap can potentially be freed.
|
||||
|
||||
\code
|
||||
resource->Release();
|
||||
allocation->Release();
|
||||
\endcode
|
||||
|
||||
<b>More advanced use cases</b> are possible when we consider that an D3D12MA::Allocation object can just hold
|
||||
a reference to any resource.
|
||||
It can be changed by calling D3D12MA::Allocation::SetResource. This function
|
||||
releases the old resource and calls `AddRef` on the new one.
|
||||
|
||||
Special care must be taken when performing <b>defragmentation</b>.
|
||||
The new resource created at the destination place should be set as `pass.pMoves[i].pDstTmpAllocation->SetResource(newRes)`,
|
||||
but it is moved to the source allocation at end of the defragmentation pass,
|
||||
while the old resource accessible through `pass.pMoves[i].pSrcAllocation->GetResource()` is then released.
|
||||
For more information, see documentation chapter \ref defragmentation.
|
||||
|
||||
|
||||
\section quick_start_mapping_memory Mapping memory
|
||||
|
||||
The process of getting regular CPU-side pointer to the memory of a resource in
|
||||
@@ -1905,9 +1965,20 @@ You can perform the defragmentation incrementally to limit the number of allocat
|
||||
in each pass, e.g. to call it in sync with render frames and not to experience too big hitches.
|
||||
See members: D3D12MA::DEFRAGMENTATION_DESC::MaxBytesPerPass, D3D12MA::DEFRAGMENTATION_DESC::MaxAllocationsPerPass.
|
||||
|
||||
It is also safe to perform the defragmentation asynchronously to render frames and other Direct3D 12 and %D3D12MA
|
||||
<b>Thread safety:</b>
|
||||
It is safe to perform the defragmentation asynchronously to render frames and other Direct3D 12 and %D3D12MA
|
||||
usage, possibly from multiple threads, with the exception that allocations
|
||||
returned in D3D12MA::DEFRAGMENTATION_PASS_MOVE_INFO::pMoves shouldn't be released until the defragmentation pass is ended.
|
||||
During the call to D3D12MA::DefragmentationContext::BeginPass(), any operations on the memory pool
|
||||
affected by the defragmentation are blocked by a mutex.
|
||||
|
||||
What it means in practice is that you shouldn't free any allocations from the defragmented pool
|
||||
since the moment a call to `BeginPass` begins. Otherwise, a thread performing the `allocation->Release()`
|
||||
would block for the time `BeginPass` executes and then free the allocation when it finishes, while the allocation
|
||||
could have ended up on the list of allocations to move.
|
||||
A solution to freeing allocations during defragmentation is to find such allocation on the list
|
||||
`pass.pMoves[i]` and set its operation to D3D12MA::DEFRAGMENTATION_MOVE_OPERATION_DESTROY instead of
|
||||
calling `allocation->Release()`, or simply deferring the release to the time after defragmentation finished.
|
||||
|
||||
<b>Mapping</b> is out of scope of this library and so it is not preserved after an allocation is moved during defragmentation.
|
||||
You need to map the new resource yourself if needed.
|
||||
|
||||
+5625
-58
File diff suppressed because it is too large
Load Diff
@@ -9,7 +9,7 @@
|
||||
/* this ALWAYS GENERATED file contains the definitions for the interfaces */
|
||||
|
||||
|
||||
/* File created by MIDL compiler version 8.01.0625 */
|
||||
/* File created by MIDL compiler version 8.01.0628 */
|
||||
|
||||
|
||||
|
||||
@@ -43,7 +43,7 @@
|
||||
#endif
|
||||
|
||||
#ifndef DECLSPEC_XFGVIRT
|
||||
#if _CONTROL_FLOW_GUARD_XFG
|
||||
#if defined(_CONTROL_FLOW_GUARD_XFG)
|
||||
#define DECLSPEC_XFGVIRT(base, func) __declspec(xfg_virtual(base, func))
|
||||
#else
|
||||
#define DECLSPEC_XFGVIRT(base, func)
|
||||
@@ -94,9 +94,16 @@ typedef interface DirectMLTensorFlowCreatorID DirectMLTensorFlowCreatorID;
|
||||
#endif /* __DirectMLTensorFlowCreatorID_FWD_DEFINED__ */
|
||||
|
||||
|
||||
#ifndef __DirectMLPyTorchCreatorID_FWD_DEFINED__
|
||||
#define __DirectMLPyTorchCreatorID_FWD_DEFINED__
|
||||
typedef interface DirectMLPyTorchCreatorID DirectMLPyTorchCreatorID;
|
||||
|
||||
#endif /* __DirectMLPyTorchCreatorID_FWD_DEFINED__ */
|
||||
|
||||
|
||||
/* header files for imported files */
|
||||
#include "OAIdl.h"
|
||||
#include "OCIdl.h"
|
||||
#include "oaidl.h"
|
||||
#include "ocidl.h"
|
||||
#include "d3d11on12.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
@@ -630,7 +637,79 @@ EXTERN_C const IID IID_DirectMLTensorFlowCreatorID;
|
||||
#endif /* __DirectMLTensorFlowCreatorID_INTERFACE_DEFINED__ */
|
||||
|
||||
|
||||
/* interface __MIDL_itf_d3d12compatibility_0000_0006 */
|
||||
#ifndef __DirectMLPyTorchCreatorID_INTERFACE_DEFINED__
|
||||
#define __DirectMLPyTorchCreatorID_INTERFACE_DEFINED__
|
||||
|
||||
/* interface DirectMLPyTorchCreatorID */
|
||||
/* [unique][local][object][uuid] */
|
||||
|
||||
|
||||
EXTERN_C const IID IID_DirectMLPyTorchCreatorID;
|
||||
|
||||
#if defined(__cplusplus) && !defined(CINTERFACE)
|
||||
|
||||
MIDL_INTERFACE("af029192-fba1-4b05-9116-235e06560354")
|
||||
DirectMLPyTorchCreatorID : public IUnknown
|
||||
{
|
||||
public:
|
||||
};
|
||||
|
||||
|
||||
#else /* C style interface */
|
||||
|
||||
typedef struct DirectMLPyTorchCreatorIDVtbl
|
||||
{
|
||||
BEGIN_INTERFACE
|
||||
|
||||
DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
|
||||
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
|
||||
DirectMLPyTorchCreatorID * This,
|
||||
REFIID riid,
|
||||
_COM_Outptr_ void **ppvObject);
|
||||
|
||||
DECLSPEC_XFGVIRT(IUnknown, AddRef)
|
||||
ULONG ( STDMETHODCALLTYPE *AddRef )(
|
||||
DirectMLPyTorchCreatorID * This);
|
||||
|
||||
DECLSPEC_XFGVIRT(IUnknown, Release)
|
||||
ULONG ( STDMETHODCALLTYPE *Release )(
|
||||
DirectMLPyTorchCreatorID * This);
|
||||
|
||||
END_INTERFACE
|
||||
} DirectMLPyTorchCreatorIDVtbl;
|
||||
|
||||
interface DirectMLPyTorchCreatorID
|
||||
{
|
||||
CONST_VTBL struct DirectMLPyTorchCreatorIDVtbl *lpVtbl;
|
||||
};
|
||||
|
||||
|
||||
|
||||
#ifdef COBJMACROS
|
||||
|
||||
|
||||
#define DirectMLPyTorchCreatorID_QueryInterface(This,riid,ppvObject) \
|
||||
( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
|
||||
|
||||
#define DirectMLPyTorchCreatorID_AddRef(This) \
|
||||
( (This)->lpVtbl -> AddRef(This) )
|
||||
|
||||
#define DirectMLPyTorchCreatorID_Release(This) \
|
||||
( (This)->lpVtbl -> Release(This) )
|
||||
|
||||
|
||||
#endif /* COBJMACROS */
|
||||
|
||||
|
||||
#endif /* C style interface */
|
||||
|
||||
|
||||
|
||||
|
||||
#endif /* __DirectMLPyTorchCreatorID_INTERFACE_DEFINED__ */
|
||||
|
||||
|
||||
/* interface __MIDL_itf_d3d12compatibility_0000_0007 */
|
||||
/* [local] */
|
||||
|
||||
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_GAMES) */
|
||||
@@ -641,10 +720,11 @@ DEFINE_GUID(IID_D3D9On12CreatorID,0xfffcbb7f,0x15d3,0x42a2,0x84,0x1e,0x9d,0x8d,0
|
||||
DEFINE_GUID(IID_OpenGLOn12CreatorID,0x6bb3cd34,0x0d19,0x45ab,0x97,0xed,0xd7,0x20,0xba,0x3d,0xfc,0x80);
|
||||
DEFINE_GUID(IID_OpenCLOn12CreatorID,0x3f76bb74,0x91b5,0x4a88,0xb1,0x26,0x20,0xca,0x03,0x31,0xcd,0x60);
|
||||
DEFINE_GUID(IID_DirectMLTensorFlowCreatorID,0xcb7490ac,0x8a0f,0x44ec,0x9b,0x7b,0x6f,0x4c,0xaf,0xe8,0xe9,0xab);
|
||||
DEFINE_GUID(IID_DirectMLPyTorchCreatorID,0xaf029192,0xfba1,0x4b05,0x91,0x16,0x23,0x5e,0x06,0x56,0x03,0x54);
|
||||
|
||||
|
||||
extern RPC_IF_HANDLE __MIDL_itf_d3d12compatibility_0000_0006_v0_0_c_ifspec;
|
||||
extern RPC_IF_HANDLE __MIDL_itf_d3d12compatibility_0000_0006_v0_0_s_ifspec;
|
||||
extern RPC_IF_HANDLE __MIDL_itf_d3d12compatibility_0000_0007_v0_0_c_ifspec;
|
||||
extern RPC_IF_HANDLE __MIDL_itf_d3d12compatibility_0000_0007_v0_0_s_ifspec;
|
||||
|
||||
/* Additional Prototypes for ALL interfaces */
|
||||
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -201,6 +201,9 @@ typedef struct _D3D12_SHADER_INPUT_BIND_DESC
|
||||
#define D3D_SHADER_REQUIRES_SAMPLER_DESCRIPTOR_HEAP_INDEXING 0x04000000
|
||||
#define D3D_SHADER_REQUIRES_WAVE_MMA 0x08000000
|
||||
#define D3D_SHADER_REQUIRES_ATOMIC_INT64_ON_DESCRIPTOR_HEAP_RESOURCE 0x10000000
|
||||
#define D3D_SHADER_FEATURE_ADVANCED_TEXTURE_OPS 0x20000000
|
||||
#define D3D_SHADER_FEATURE_WRITEABLE_MSAA_TEXTURES 0x40000000
|
||||
|
||||
|
||||
typedef struct _D3D12_LIBRARY_DESC
|
||||
{
|
||||
|
||||
+2186
-1067
File diff suppressed because it is too large
Load Diff
@@ -9,7 +9,7 @@
|
||||
/* this ALWAYS GENERATED file contains the definitions for the interfaces */
|
||||
|
||||
|
||||
/* File created by MIDL compiler version 8.01.0625 */
|
||||
/* File created by MIDL compiler version 8.01.0628 */
|
||||
/* @@MIDL_FILE_HEADING( ) */
|
||||
|
||||
|
||||
@@ -44,7 +44,7 @@
|
||||
#endif
|
||||
|
||||
#ifndef DECLSPEC_XFGVIRT
|
||||
#if _CONTROL_FLOW_GUARD_XFG
|
||||
#if defined(_CONTROL_FLOW_GUARD_XFG)
|
||||
#define DECLSPEC_XFGVIRT(base, func) __declspec(xfg_virtual(base, func))
|
||||
#else
|
||||
#define DECLSPEC_XFGVIRT(base, func)
|
||||
@@ -68,8 +68,8 @@ typedef interface ID3DDestructionNotifier ID3DDestructionNotifier;
|
||||
|
||||
|
||||
/* header files for imported files */
|
||||
#include "OAIdl.h"
|
||||
#include "OCIdl.h"
|
||||
#include "oaidl.h"
|
||||
#include "ocidl.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C"{
|
||||
@@ -130,6 +130,7 @@ enum D3D_PRIMITIVE_TOPOLOGY
|
||||
D3D_PRIMITIVE_TOPOLOGY_LINESTRIP = 3,
|
||||
D3D_PRIMITIVE_TOPOLOGY_TRIANGLELIST = 4,
|
||||
D3D_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP = 5,
|
||||
D3D_PRIMITIVE_TOPOLOGY_TRIANGLEFAN = 6,
|
||||
D3D_PRIMITIVE_TOPOLOGY_LINELIST_ADJ = 10,
|
||||
D3D_PRIMITIVE_TOPOLOGY_LINESTRIP_ADJ = 11,
|
||||
D3D_PRIMITIVE_TOPOLOGY_TRIANGLELIST_ADJ = 12,
|
||||
@@ -386,6 +387,8 @@ enum D3D_SRV_DIMENSION
|
||||
#define D3D_SHADER_FEATURE_SAMPLER_DESCRIPTOR_HEAP_INDEXING 0x4000000
|
||||
#define D3D_SHADER_FEATURE_WAVE_MMA 0x8000000
|
||||
#define D3D_SHADER_FEATURE_ATOMIC_INT64_ON_DESCRIPTOR_HEAP_RESOURCE 0x10000000
|
||||
#define D3D_SHADER_FEATURE_ADVANCED_TEXTURE_OPS 0x20000000
|
||||
#define D3D_SHADER_FEATURE_WRITEABLE_MSAA_TEXTURES 0x40000000
|
||||
typedef struct _D3D_SHADER_MACRO
|
||||
{
|
||||
LPCSTR Name;
|
||||
@@ -733,6 +736,11 @@ enum _D3D_SHADER_VARIABLE_TYPE
|
||||
D3D_SVT_MIN12INT = 55,
|
||||
D3D_SVT_MIN16INT = 56,
|
||||
D3D_SVT_MIN16UINT = 57,
|
||||
D3D_SVT_INT16 = 58,
|
||||
D3D_SVT_UINT16 = 59,
|
||||
D3D_SVT_FLOAT16 = 60,
|
||||
D3D_SVT_INT64 = 61,
|
||||
D3D_SVT_UINT64 = 62,
|
||||
D3D10_SVT_VOID = D3D_SVT_VOID,
|
||||
D3D10_SVT_BOOL = D3D_SVT_BOOL,
|
||||
D3D10_SVT_INT = D3D_SVT_INT,
|
||||
@@ -1036,6 +1044,46 @@ enum _D3D_PARAMETER_FLAGS
|
||||
D3D_PF_FORCE_DWORD = 0x7fffffff
|
||||
} D3D_PARAMETER_FLAGS;
|
||||
|
||||
typedef
|
||||
enum D3D_FORMAT_LAYOUT
|
||||
{
|
||||
D3DFL_STANDARD = 0,
|
||||
D3DFL_CUSTOM = -1
|
||||
} D3D_FORMAT_LAYOUT;
|
||||
|
||||
typedef
|
||||
enum D3D_FORMAT_TYPE_LEVEL
|
||||
{
|
||||
D3DFTL_NO_TYPE = 0,
|
||||
D3DFTL_PARTIAL_TYPE = -2,
|
||||
D3DFTL_FULL_TYPE = -1
|
||||
} D3D_FORMAT_TYPE_LEVEL;
|
||||
|
||||
typedef
|
||||
enum D3D_FORMAT_COMPONENT_NAME
|
||||
{
|
||||
D3DFCN_R = -4,
|
||||
D3DFCN_G = -3,
|
||||
D3DFCN_B = -2,
|
||||
D3DFCN_A = -1,
|
||||
D3DFCN_D = 0,
|
||||
D3DFCN_S = 1,
|
||||
D3DFCN_X = 2
|
||||
} D3D_FORMAT_COMPONENT_NAME;
|
||||
|
||||
typedef
|
||||
enum D3D_FORMAT_COMPONENT_INTERPRETATION
|
||||
{
|
||||
D3DFCI_TYPELESS = 0,
|
||||
D3DFCI_FLOAT = -4,
|
||||
D3DFCI_SNORM = -3,
|
||||
D3DFCI_UNORM = -2,
|
||||
D3DFCI_SINT = -1,
|
||||
D3DFCI_UINT = 1,
|
||||
D3DFCI_UNORM_SRGB = 2,
|
||||
D3DFCI_BIASED_FIXED_2_8 = 3
|
||||
} D3D_FORMAT_COMPONENT_INTERPRETATION;
|
||||
|
||||
DEFINE_GUID(WKPDID_D3DDebugObjectName,0x429b8c22,0x9188,0x4b0c,0x87,0x42,0xac,0xb0,0xbf,0x85,0xc2,0x00);
|
||||
DEFINE_GUID(WKPDID_D3DDebugObjectNameW,0x4cca5fd8,0x921f,0x42c8,0x85,0x66,0x70,0xca,0xf2,0xa9,0xb7,0x41);
|
||||
DEFINE_GUID(WKPDID_CommentStringW,0xd0149dc0,0x90e8,0x4ec8,0x81, 0x44, 0xe9, 0x00, 0xad, 0x26, 0x6b, 0xb2);
|
||||
|
||||
+756
-190
File diff suppressed because it is too large
Load Diff
+152
-112
File diff suppressed because it is too large
Load Diff
@@ -176,6 +176,9 @@ static void volkGenLoadInstance(void* context, PFN_vkVoidFunction (*load)(void*,
|
||||
vkGetPhysicalDeviceQueueFamilyProperties2 = (PFN_vkGetPhysicalDeviceQueueFamilyProperties2)load(context, "vkGetPhysicalDeviceQueueFamilyProperties2");
|
||||
vkGetPhysicalDeviceSparseImageFormatProperties2 = (PFN_vkGetPhysicalDeviceSparseImageFormatProperties2)load(context, "vkGetPhysicalDeviceSparseImageFormatProperties2");
|
||||
#endif /* defined(VK_VERSION_1_1) */
|
||||
#if defined(VK_VERSION_1_3)
|
||||
vkGetPhysicalDeviceToolProperties = (PFN_vkGetPhysicalDeviceToolProperties)load(context, "vkGetPhysicalDeviceToolProperties");
|
||||
#endif /* defined(VK_VERSION_1_3) */
|
||||
#if defined(VK_EXT_acquire_drm_display)
|
||||
vkAcquireDrmDisplayEXT = (PFN_vkAcquireDrmDisplayEXT)load(context, "vkAcquireDrmDisplayEXT");
|
||||
vkGetDrmDisplayEXT = (PFN_vkGetDrmDisplayEXT)load(context, "vkGetDrmDisplayEXT");
|
||||
@@ -503,6 +506,44 @@ static void volkGenLoadDevice(void* context, PFN_vkVoidFunction (*load)(void*, c
|
||||
vkSignalSemaphore = (PFN_vkSignalSemaphore)load(context, "vkSignalSemaphore");
|
||||
vkWaitSemaphores = (PFN_vkWaitSemaphores)load(context, "vkWaitSemaphores");
|
||||
#endif /* defined(VK_VERSION_1_2) */
|
||||
#if defined(VK_VERSION_1_3)
|
||||
vkCmdBeginRendering = (PFN_vkCmdBeginRendering)load(context, "vkCmdBeginRendering");
|
||||
vkCmdBindVertexBuffers2 = (PFN_vkCmdBindVertexBuffers2)load(context, "vkCmdBindVertexBuffers2");
|
||||
vkCmdBlitImage2 = (PFN_vkCmdBlitImage2)load(context, "vkCmdBlitImage2");
|
||||
vkCmdCopyBuffer2 = (PFN_vkCmdCopyBuffer2)load(context, "vkCmdCopyBuffer2");
|
||||
vkCmdCopyBufferToImage2 = (PFN_vkCmdCopyBufferToImage2)load(context, "vkCmdCopyBufferToImage2");
|
||||
vkCmdCopyImage2 = (PFN_vkCmdCopyImage2)load(context, "vkCmdCopyImage2");
|
||||
vkCmdCopyImageToBuffer2 = (PFN_vkCmdCopyImageToBuffer2)load(context, "vkCmdCopyImageToBuffer2");
|
||||
vkCmdEndRendering = (PFN_vkCmdEndRendering)load(context, "vkCmdEndRendering");
|
||||
vkCmdPipelineBarrier2 = (PFN_vkCmdPipelineBarrier2)load(context, "vkCmdPipelineBarrier2");
|
||||
vkCmdResetEvent2 = (PFN_vkCmdResetEvent2)load(context, "vkCmdResetEvent2");
|
||||
vkCmdResolveImage2 = (PFN_vkCmdResolveImage2)load(context, "vkCmdResolveImage2");
|
||||
vkCmdSetCullMode = (PFN_vkCmdSetCullMode)load(context, "vkCmdSetCullMode");
|
||||
vkCmdSetDepthBiasEnable = (PFN_vkCmdSetDepthBiasEnable)load(context, "vkCmdSetDepthBiasEnable");
|
||||
vkCmdSetDepthBoundsTestEnable = (PFN_vkCmdSetDepthBoundsTestEnable)load(context, "vkCmdSetDepthBoundsTestEnable");
|
||||
vkCmdSetDepthCompareOp = (PFN_vkCmdSetDepthCompareOp)load(context, "vkCmdSetDepthCompareOp");
|
||||
vkCmdSetDepthTestEnable = (PFN_vkCmdSetDepthTestEnable)load(context, "vkCmdSetDepthTestEnable");
|
||||
vkCmdSetDepthWriteEnable = (PFN_vkCmdSetDepthWriteEnable)load(context, "vkCmdSetDepthWriteEnable");
|
||||
vkCmdSetEvent2 = (PFN_vkCmdSetEvent2)load(context, "vkCmdSetEvent2");
|
||||
vkCmdSetFrontFace = (PFN_vkCmdSetFrontFace)load(context, "vkCmdSetFrontFace");
|
||||
vkCmdSetPrimitiveRestartEnable = (PFN_vkCmdSetPrimitiveRestartEnable)load(context, "vkCmdSetPrimitiveRestartEnable");
|
||||
vkCmdSetPrimitiveTopology = (PFN_vkCmdSetPrimitiveTopology)load(context, "vkCmdSetPrimitiveTopology");
|
||||
vkCmdSetRasterizerDiscardEnable = (PFN_vkCmdSetRasterizerDiscardEnable)load(context, "vkCmdSetRasterizerDiscardEnable");
|
||||
vkCmdSetScissorWithCount = (PFN_vkCmdSetScissorWithCount)load(context, "vkCmdSetScissorWithCount");
|
||||
vkCmdSetStencilOp = (PFN_vkCmdSetStencilOp)load(context, "vkCmdSetStencilOp");
|
||||
vkCmdSetStencilTestEnable = (PFN_vkCmdSetStencilTestEnable)load(context, "vkCmdSetStencilTestEnable");
|
||||
vkCmdSetViewportWithCount = (PFN_vkCmdSetViewportWithCount)load(context, "vkCmdSetViewportWithCount");
|
||||
vkCmdWaitEvents2 = (PFN_vkCmdWaitEvents2)load(context, "vkCmdWaitEvents2");
|
||||
vkCmdWriteTimestamp2 = (PFN_vkCmdWriteTimestamp2)load(context, "vkCmdWriteTimestamp2");
|
||||
vkCreatePrivateDataSlot = (PFN_vkCreatePrivateDataSlot)load(context, "vkCreatePrivateDataSlot");
|
||||
vkDestroyPrivateDataSlot = (PFN_vkDestroyPrivateDataSlot)load(context, "vkDestroyPrivateDataSlot");
|
||||
vkGetDeviceBufferMemoryRequirements = (PFN_vkGetDeviceBufferMemoryRequirements)load(context, "vkGetDeviceBufferMemoryRequirements");
|
||||
vkGetDeviceImageMemoryRequirements = (PFN_vkGetDeviceImageMemoryRequirements)load(context, "vkGetDeviceImageMemoryRequirements");
|
||||
vkGetDeviceImageSparseMemoryRequirements = (PFN_vkGetDeviceImageSparseMemoryRequirements)load(context, "vkGetDeviceImageSparseMemoryRequirements");
|
||||
vkGetPrivateData = (PFN_vkGetPrivateData)load(context, "vkGetPrivateData");
|
||||
vkQueueSubmit2 = (PFN_vkQueueSubmit2)load(context, "vkQueueSubmit2");
|
||||
vkSetPrivateData = (PFN_vkSetPrivateData)load(context, "vkSetPrivateData");
|
||||
#endif /* defined(VK_VERSION_1_3) */
|
||||
#if defined(VK_AMD_buffer_marker)
|
||||
vkCmdWriteBufferMarkerAMD = (PFN_vkCmdWriteBufferMarkerAMD)load(context, "vkCmdWriteBufferMarkerAMD");
|
||||
#endif /* defined(VK_AMD_buffer_marker) */
|
||||
@@ -583,6 +624,9 @@ static void volkGenLoadDevice(void* context, PFN_vkVoidFunction (*load)(void*, c
|
||||
#if defined(VK_EXT_host_query_reset)
|
||||
vkResetQueryPoolEXT = (PFN_vkResetQueryPoolEXT)load(context, "vkResetQueryPoolEXT");
|
||||
#endif /* defined(VK_EXT_host_query_reset) */
|
||||
#if defined(VK_EXT_image_compression_control)
|
||||
vkGetImageSubresourceLayout2EXT = (PFN_vkGetImageSubresourceLayout2EXT)load(context, "vkGetImageSubresourceLayout2EXT");
|
||||
#endif /* defined(VK_EXT_image_compression_control) */
|
||||
#if defined(VK_EXT_image_drm_format_modifier)
|
||||
vkGetImageDrmFormatModifierPropertiesEXT = (PFN_vkGetImageDrmFormatModifierPropertiesEXT)load(context, "vkGetImageDrmFormatModifierPropertiesEXT");
|
||||
#endif /* defined(VK_EXT_image_drm_format_modifier) */
|
||||
@@ -596,6 +640,9 @@ static void volkGenLoadDevice(void* context, PFN_vkVoidFunction (*load)(void*, c
|
||||
#if defined(VK_EXT_pageable_device_local_memory)
|
||||
vkSetDeviceMemoryPriorityEXT = (PFN_vkSetDeviceMemoryPriorityEXT)load(context, "vkSetDeviceMemoryPriorityEXT");
|
||||
#endif /* defined(VK_EXT_pageable_device_local_memory) */
|
||||
#if defined(VK_EXT_pipeline_properties)
|
||||
vkGetPipelinePropertiesEXT = (PFN_vkGetPipelinePropertiesEXT)load(context, "vkGetPipelinePropertiesEXT");
|
||||
#endif /* defined(VK_EXT_pipeline_properties) */
|
||||
#if defined(VK_EXT_private_data)
|
||||
vkCreatePrivateDataSlotEXT = (PFN_vkCreatePrivateDataSlotEXT)load(context, "vkCreatePrivateDataSlotEXT");
|
||||
vkDestroyPrivateDataSlotEXT = (PFN_vkDestroyPrivateDataSlotEXT)load(context, "vkDestroyPrivateDataSlotEXT");
|
||||
@@ -786,6 +833,9 @@ static void volkGenLoadDevice(void* context, PFN_vkVoidFunction (*load)(void*, c
|
||||
#if defined(VK_KHR_push_descriptor)
|
||||
vkCmdPushDescriptorSetKHR = (PFN_vkCmdPushDescriptorSetKHR)load(context, "vkCmdPushDescriptorSetKHR");
|
||||
#endif /* defined(VK_KHR_push_descriptor) */
|
||||
#if defined(VK_KHR_ray_tracing_maintenance1) && defined(VK_KHR_ray_tracing_pipeline)
|
||||
vkCmdTraceRaysIndirect2KHR = (PFN_vkCmdTraceRaysIndirect2KHR)load(context, "vkCmdTraceRaysIndirect2KHR");
|
||||
#endif /* defined(VK_KHR_ray_tracing_maintenance1) && defined(VK_KHR_ray_tracing_pipeline) */
|
||||
#if defined(VK_KHR_ray_tracing_pipeline)
|
||||
vkCmdSetRayTracingPipelineStackSizeKHR = (PFN_vkCmdSetRayTracingPipelineStackSizeKHR)load(context, "vkCmdSetRayTracingPipelineStackSizeKHR");
|
||||
vkCmdTraceRaysIndirectKHR = (PFN_vkCmdTraceRaysIndirectKHR)load(context, "vkCmdTraceRaysIndirectKHR");
|
||||
@@ -908,6 +958,10 @@ static void volkGenLoadDevice(void* context, PFN_vkVoidFunction (*load)(void*, c
|
||||
vkCmdSetCoarseSampleOrderNV = (PFN_vkCmdSetCoarseSampleOrderNV)load(context, "vkCmdSetCoarseSampleOrderNV");
|
||||
vkCmdSetViewportShadingRatePaletteNV = (PFN_vkCmdSetViewportShadingRatePaletteNV)load(context, "vkCmdSetViewportShadingRatePaletteNV");
|
||||
#endif /* defined(VK_NV_shading_rate_image) */
|
||||
#if defined(VK_VALVE_descriptor_set_host_mapping)
|
||||
vkGetDescriptorSetHostMappingVALVE = (PFN_vkGetDescriptorSetHostMappingVALVE)load(context, "vkGetDescriptorSetHostMappingVALVE");
|
||||
vkGetDescriptorSetLayoutHostMappingInfoVALVE = (PFN_vkGetDescriptorSetLayoutHostMappingInfoVALVE)load(context, "vkGetDescriptorSetLayoutHostMappingInfoVALVE");
|
||||
#endif /* defined(VK_VALVE_descriptor_set_host_mapping) */
|
||||
#if (defined(VK_EXT_full_screen_exclusive) && defined(VK_KHR_device_group)) || (defined(VK_EXT_full_screen_exclusive) && defined(VK_VERSION_1_1))
|
||||
vkGetDeviceGroupSurfacePresentModes2EXT = (PFN_vkGetDeviceGroupSurfacePresentModes2EXT)load(context, "vkGetDeviceGroupSurfacePresentModes2EXT");
|
||||
#endif /* (defined(VK_EXT_full_screen_exclusive) && defined(VK_KHR_device_group)) || (defined(VK_EXT_full_screen_exclusive) && defined(VK_VERSION_1_1)) */
|
||||
@@ -1082,6 +1136,44 @@ static void volkGenLoadDeviceTable(struct VolkDeviceTable* table, void* context,
|
||||
table->vkSignalSemaphore = (PFN_vkSignalSemaphore)load(context, "vkSignalSemaphore");
|
||||
table->vkWaitSemaphores = (PFN_vkWaitSemaphores)load(context, "vkWaitSemaphores");
|
||||
#endif /* defined(VK_VERSION_1_2) */
|
||||
#if defined(VK_VERSION_1_3)
|
||||
table->vkCmdBeginRendering = (PFN_vkCmdBeginRendering)load(context, "vkCmdBeginRendering");
|
||||
table->vkCmdBindVertexBuffers2 = (PFN_vkCmdBindVertexBuffers2)load(context, "vkCmdBindVertexBuffers2");
|
||||
table->vkCmdBlitImage2 = (PFN_vkCmdBlitImage2)load(context, "vkCmdBlitImage2");
|
||||
table->vkCmdCopyBuffer2 = (PFN_vkCmdCopyBuffer2)load(context, "vkCmdCopyBuffer2");
|
||||
table->vkCmdCopyBufferToImage2 = (PFN_vkCmdCopyBufferToImage2)load(context, "vkCmdCopyBufferToImage2");
|
||||
table->vkCmdCopyImage2 = (PFN_vkCmdCopyImage2)load(context, "vkCmdCopyImage2");
|
||||
table->vkCmdCopyImageToBuffer2 = (PFN_vkCmdCopyImageToBuffer2)load(context, "vkCmdCopyImageToBuffer2");
|
||||
table->vkCmdEndRendering = (PFN_vkCmdEndRendering)load(context, "vkCmdEndRendering");
|
||||
table->vkCmdPipelineBarrier2 = (PFN_vkCmdPipelineBarrier2)load(context, "vkCmdPipelineBarrier2");
|
||||
table->vkCmdResetEvent2 = (PFN_vkCmdResetEvent2)load(context, "vkCmdResetEvent2");
|
||||
table->vkCmdResolveImage2 = (PFN_vkCmdResolveImage2)load(context, "vkCmdResolveImage2");
|
||||
table->vkCmdSetCullMode = (PFN_vkCmdSetCullMode)load(context, "vkCmdSetCullMode");
|
||||
table->vkCmdSetDepthBiasEnable = (PFN_vkCmdSetDepthBiasEnable)load(context, "vkCmdSetDepthBiasEnable");
|
||||
table->vkCmdSetDepthBoundsTestEnable = (PFN_vkCmdSetDepthBoundsTestEnable)load(context, "vkCmdSetDepthBoundsTestEnable");
|
||||
table->vkCmdSetDepthCompareOp = (PFN_vkCmdSetDepthCompareOp)load(context, "vkCmdSetDepthCompareOp");
|
||||
table->vkCmdSetDepthTestEnable = (PFN_vkCmdSetDepthTestEnable)load(context, "vkCmdSetDepthTestEnable");
|
||||
table->vkCmdSetDepthWriteEnable = (PFN_vkCmdSetDepthWriteEnable)load(context, "vkCmdSetDepthWriteEnable");
|
||||
table->vkCmdSetEvent2 = (PFN_vkCmdSetEvent2)load(context, "vkCmdSetEvent2");
|
||||
table->vkCmdSetFrontFace = (PFN_vkCmdSetFrontFace)load(context, "vkCmdSetFrontFace");
|
||||
table->vkCmdSetPrimitiveRestartEnable = (PFN_vkCmdSetPrimitiveRestartEnable)load(context, "vkCmdSetPrimitiveRestartEnable");
|
||||
table->vkCmdSetPrimitiveTopology = (PFN_vkCmdSetPrimitiveTopology)load(context, "vkCmdSetPrimitiveTopology");
|
||||
table->vkCmdSetRasterizerDiscardEnable = (PFN_vkCmdSetRasterizerDiscardEnable)load(context, "vkCmdSetRasterizerDiscardEnable");
|
||||
table->vkCmdSetScissorWithCount = (PFN_vkCmdSetScissorWithCount)load(context, "vkCmdSetScissorWithCount");
|
||||
table->vkCmdSetStencilOp = (PFN_vkCmdSetStencilOp)load(context, "vkCmdSetStencilOp");
|
||||
table->vkCmdSetStencilTestEnable = (PFN_vkCmdSetStencilTestEnable)load(context, "vkCmdSetStencilTestEnable");
|
||||
table->vkCmdSetViewportWithCount = (PFN_vkCmdSetViewportWithCount)load(context, "vkCmdSetViewportWithCount");
|
||||
table->vkCmdWaitEvents2 = (PFN_vkCmdWaitEvents2)load(context, "vkCmdWaitEvents2");
|
||||
table->vkCmdWriteTimestamp2 = (PFN_vkCmdWriteTimestamp2)load(context, "vkCmdWriteTimestamp2");
|
||||
table->vkCreatePrivateDataSlot = (PFN_vkCreatePrivateDataSlot)load(context, "vkCreatePrivateDataSlot");
|
||||
table->vkDestroyPrivateDataSlot = (PFN_vkDestroyPrivateDataSlot)load(context, "vkDestroyPrivateDataSlot");
|
||||
table->vkGetDeviceBufferMemoryRequirements = (PFN_vkGetDeviceBufferMemoryRequirements)load(context, "vkGetDeviceBufferMemoryRequirements");
|
||||
table->vkGetDeviceImageMemoryRequirements = (PFN_vkGetDeviceImageMemoryRequirements)load(context, "vkGetDeviceImageMemoryRequirements");
|
||||
table->vkGetDeviceImageSparseMemoryRequirements = (PFN_vkGetDeviceImageSparseMemoryRequirements)load(context, "vkGetDeviceImageSparseMemoryRequirements");
|
||||
table->vkGetPrivateData = (PFN_vkGetPrivateData)load(context, "vkGetPrivateData");
|
||||
table->vkQueueSubmit2 = (PFN_vkQueueSubmit2)load(context, "vkQueueSubmit2");
|
||||
table->vkSetPrivateData = (PFN_vkSetPrivateData)load(context, "vkSetPrivateData");
|
||||
#endif /* defined(VK_VERSION_1_3) */
|
||||
#if defined(VK_AMD_buffer_marker)
|
||||
table->vkCmdWriteBufferMarkerAMD = (PFN_vkCmdWriteBufferMarkerAMD)load(context, "vkCmdWriteBufferMarkerAMD");
|
||||
#endif /* defined(VK_AMD_buffer_marker) */
|
||||
@@ -1162,6 +1254,9 @@ static void volkGenLoadDeviceTable(struct VolkDeviceTable* table, void* context,
|
||||
#if defined(VK_EXT_host_query_reset)
|
||||
table->vkResetQueryPoolEXT = (PFN_vkResetQueryPoolEXT)load(context, "vkResetQueryPoolEXT");
|
||||
#endif /* defined(VK_EXT_host_query_reset) */
|
||||
#if defined(VK_EXT_image_compression_control)
|
||||
table->vkGetImageSubresourceLayout2EXT = (PFN_vkGetImageSubresourceLayout2EXT)load(context, "vkGetImageSubresourceLayout2EXT");
|
||||
#endif /* defined(VK_EXT_image_compression_control) */
|
||||
#if defined(VK_EXT_image_drm_format_modifier)
|
||||
table->vkGetImageDrmFormatModifierPropertiesEXT = (PFN_vkGetImageDrmFormatModifierPropertiesEXT)load(context, "vkGetImageDrmFormatModifierPropertiesEXT");
|
||||
#endif /* defined(VK_EXT_image_drm_format_modifier) */
|
||||
@@ -1175,6 +1270,9 @@ static void volkGenLoadDeviceTable(struct VolkDeviceTable* table, void* context,
|
||||
#if defined(VK_EXT_pageable_device_local_memory)
|
||||
table->vkSetDeviceMemoryPriorityEXT = (PFN_vkSetDeviceMemoryPriorityEXT)load(context, "vkSetDeviceMemoryPriorityEXT");
|
||||
#endif /* defined(VK_EXT_pageable_device_local_memory) */
|
||||
#if defined(VK_EXT_pipeline_properties)
|
||||
table->vkGetPipelinePropertiesEXT = (PFN_vkGetPipelinePropertiesEXT)load(context, "vkGetPipelinePropertiesEXT");
|
||||
#endif /* defined(VK_EXT_pipeline_properties) */
|
||||
#if defined(VK_EXT_private_data)
|
||||
table->vkCreatePrivateDataSlotEXT = (PFN_vkCreatePrivateDataSlotEXT)load(context, "vkCreatePrivateDataSlotEXT");
|
||||
table->vkDestroyPrivateDataSlotEXT = (PFN_vkDestroyPrivateDataSlotEXT)load(context, "vkDestroyPrivateDataSlotEXT");
|
||||
@@ -1365,6 +1463,9 @@ static void volkGenLoadDeviceTable(struct VolkDeviceTable* table, void* context,
|
||||
#if defined(VK_KHR_push_descriptor)
|
||||
table->vkCmdPushDescriptorSetKHR = (PFN_vkCmdPushDescriptorSetKHR)load(context, "vkCmdPushDescriptorSetKHR");
|
||||
#endif /* defined(VK_KHR_push_descriptor) */
|
||||
#if defined(VK_KHR_ray_tracing_maintenance1) && defined(VK_KHR_ray_tracing_pipeline)
|
||||
table->vkCmdTraceRaysIndirect2KHR = (PFN_vkCmdTraceRaysIndirect2KHR)load(context, "vkCmdTraceRaysIndirect2KHR");
|
||||
#endif /* defined(VK_KHR_ray_tracing_maintenance1) && defined(VK_KHR_ray_tracing_pipeline) */
|
||||
#if defined(VK_KHR_ray_tracing_pipeline)
|
||||
table->vkCmdSetRayTracingPipelineStackSizeKHR = (PFN_vkCmdSetRayTracingPipelineStackSizeKHR)load(context, "vkCmdSetRayTracingPipelineStackSizeKHR");
|
||||
table->vkCmdTraceRaysIndirectKHR = (PFN_vkCmdTraceRaysIndirectKHR)load(context, "vkCmdTraceRaysIndirectKHR");
|
||||
@@ -1487,6 +1588,10 @@ static void volkGenLoadDeviceTable(struct VolkDeviceTable* table, void* context,
|
||||
table->vkCmdSetCoarseSampleOrderNV = (PFN_vkCmdSetCoarseSampleOrderNV)load(context, "vkCmdSetCoarseSampleOrderNV");
|
||||
table->vkCmdSetViewportShadingRatePaletteNV = (PFN_vkCmdSetViewportShadingRatePaletteNV)load(context, "vkCmdSetViewportShadingRatePaletteNV");
|
||||
#endif /* defined(VK_NV_shading_rate_image) */
|
||||
#if defined(VK_VALVE_descriptor_set_host_mapping)
|
||||
table->vkGetDescriptorSetHostMappingVALVE = (PFN_vkGetDescriptorSetHostMappingVALVE)load(context, "vkGetDescriptorSetHostMappingVALVE");
|
||||
table->vkGetDescriptorSetLayoutHostMappingInfoVALVE = (PFN_vkGetDescriptorSetLayoutHostMappingInfoVALVE)load(context, "vkGetDescriptorSetLayoutHostMappingInfoVALVE");
|
||||
#endif /* defined(VK_VALVE_descriptor_set_host_mapping) */
|
||||
#if (defined(VK_EXT_full_screen_exclusive) && defined(VK_KHR_device_group)) || (defined(VK_EXT_full_screen_exclusive) && defined(VK_VERSION_1_1))
|
||||
table->vkGetDeviceGroupSurfacePresentModes2EXT = (PFN_vkGetDeviceGroupSurfacePresentModes2EXT)load(context, "vkGetDeviceGroupSurfacePresentModes2EXT");
|
||||
#endif /* (defined(VK_EXT_full_screen_exclusive) && defined(VK_KHR_device_group)) || (defined(VK_EXT_full_screen_exclusive) && defined(VK_VERSION_1_1)) */
|
||||
@@ -1696,6 +1801,45 @@ PFN_vkResetQueryPool vkResetQueryPool;
|
||||
PFN_vkSignalSemaphore vkSignalSemaphore;
|
||||
PFN_vkWaitSemaphores vkWaitSemaphores;
|
||||
#endif /* defined(VK_VERSION_1_2) */
|
||||
#if defined(VK_VERSION_1_3)
|
||||
PFN_vkCmdBeginRendering vkCmdBeginRendering;
|
||||
PFN_vkCmdBindVertexBuffers2 vkCmdBindVertexBuffers2;
|
||||
PFN_vkCmdBlitImage2 vkCmdBlitImage2;
|
||||
PFN_vkCmdCopyBuffer2 vkCmdCopyBuffer2;
|
||||
PFN_vkCmdCopyBufferToImage2 vkCmdCopyBufferToImage2;
|
||||
PFN_vkCmdCopyImage2 vkCmdCopyImage2;
|
||||
PFN_vkCmdCopyImageToBuffer2 vkCmdCopyImageToBuffer2;
|
||||
PFN_vkCmdEndRendering vkCmdEndRendering;
|
||||
PFN_vkCmdPipelineBarrier2 vkCmdPipelineBarrier2;
|
||||
PFN_vkCmdResetEvent2 vkCmdResetEvent2;
|
||||
PFN_vkCmdResolveImage2 vkCmdResolveImage2;
|
||||
PFN_vkCmdSetCullMode vkCmdSetCullMode;
|
||||
PFN_vkCmdSetDepthBiasEnable vkCmdSetDepthBiasEnable;
|
||||
PFN_vkCmdSetDepthBoundsTestEnable vkCmdSetDepthBoundsTestEnable;
|
||||
PFN_vkCmdSetDepthCompareOp vkCmdSetDepthCompareOp;
|
||||
PFN_vkCmdSetDepthTestEnable vkCmdSetDepthTestEnable;
|
||||
PFN_vkCmdSetDepthWriteEnable vkCmdSetDepthWriteEnable;
|
||||
PFN_vkCmdSetEvent2 vkCmdSetEvent2;
|
||||
PFN_vkCmdSetFrontFace vkCmdSetFrontFace;
|
||||
PFN_vkCmdSetPrimitiveRestartEnable vkCmdSetPrimitiveRestartEnable;
|
||||
PFN_vkCmdSetPrimitiveTopology vkCmdSetPrimitiveTopology;
|
||||
PFN_vkCmdSetRasterizerDiscardEnable vkCmdSetRasterizerDiscardEnable;
|
||||
PFN_vkCmdSetScissorWithCount vkCmdSetScissorWithCount;
|
||||
PFN_vkCmdSetStencilOp vkCmdSetStencilOp;
|
||||
PFN_vkCmdSetStencilTestEnable vkCmdSetStencilTestEnable;
|
||||
PFN_vkCmdSetViewportWithCount vkCmdSetViewportWithCount;
|
||||
PFN_vkCmdWaitEvents2 vkCmdWaitEvents2;
|
||||
PFN_vkCmdWriteTimestamp2 vkCmdWriteTimestamp2;
|
||||
PFN_vkCreatePrivateDataSlot vkCreatePrivateDataSlot;
|
||||
PFN_vkDestroyPrivateDataSlot vkDestroyPrivateDataSlot;
|
||||
PFN_vkGetDeviceBufferMemoryRequirements vkGetDeviceBufferMemoryRequirements;
|
||||
PFN_vkGetDeviceImageMemoryRequirements vkGetDeviceImageMemoryRequirements;
|
||||
PFN_vkGetDeviceImageSparseMemoryRequirements vkGetDeviceImageSparseMemoryRequirements;
|
||||
PFN_vkGetPhysicalDeviceToolProperties vkGetPhysicalDeviceToolProperties;
|
||||
PFN_vkGetPrivateData vkGetPrivateData;
|
||||
PFN_vkQueueSubmit2 vkQueueSubmit2;
|
||||
PFN_vkSetPrivateData vkSetPrivateData;
|
||||
#endif /* defined(VK_VERSION_1_3) */
|
||||
#if defined(VK_AMD_buffer_marker)
|
||||
PFN_vkCmdWriteBufferMarkerAMD vkCmdWriteBufferMarkerAMD;
|
||||
#endif /* defined(VK_AMD_buffer_marker) */
|
||||
@@ -1817,6 +1961,9 @@ PFN_vkCreateHeadlessSurfaceEXT vkCreateHeadlessSurfaceEXT;
|
||||
#if defined(VK_EXT_host_query_reset)
|
||||
PFN_vkResetQueryPoolEXT vkResetQueryPoolEXT;
|
||||
#endif /* defined(VK_EXT_host_query_reset) */
|
||||
#if defined(VK_EXT_image_compression_control)
|
||||
PFN_vkGetImageSubresourceLayout2EXT vkGetImageSubresourceLayout2EXT;
|
||||
#endif /* defined(VK_EXT_image_compression_control) */
|
||||
#if defined(VK_EXT_image_drm_format_modifier)
|
||||
PFN_vkGetImageDrmFormatModifierPropertiesEXT vkGetImageDrmFormatModifierPropertiesEXT;
|
||||
#endif /* defined(VK_EXT_image_drm_format_modifier) */
|
||||
@@ -1833,6 +1980,9 @@ PFN_vkCmdDrawMultiIndexedEXT vkCmdDrawMultiIndexedEXT;
|
||||
#if defined(VK_EXT_pageable_device_local_memory)
|
||||
PFN_vkSetDeviceMemoryPriorityEXT vkSetDeviceMemoryPriorityEXT;
|
||||
#endif /* defined(VK_EXT_pageable_device_local_memory) */
|
||||
#if defined(VK_EXT_pipeline_properties)
|
||||
PFN_vkGetPipelinePropertiesEXT vkGetPipelinePropertiesEXT;
|
||||
#endif /* defined(VK_EXT_pipeline_properties) */
|
||||
#if defined(VK_EXT_private_data)
|
||||
PFN_vkCreatePrivateDataSlotEXT vkCreatePrivateDataSlotEXT;
|
||||
PFN_vkDestroyPrivateDataSlotEXT vkDestroyPrivateDataSlotEXT;
|
||||
@@ -2079,6 +2229,9 @@ PFN_vkWaitForPresentKHR vkWaitForPresentKHR;
|
||||
#if defined(VK_KHR_push_descriptor)
|
||||
PFN_vkCmdPushDescriptorSetKHR vkCmdPushDescriptorSetKHR;
|
||||
#endif /* defined(VK_KHR_push_descriptor) */
|
||||
#if defined(VK_KHR_ray_tracing_maintenance1) && defined(VK_KHR_ray_tracing_pipeline)
|
||||
PFN_vkCmdTraceRaysIndirect2KHR vkCmdTraceRaysIndirect2KHR;
|
||||
#endif /* defined(VK_KHR_ray_tracing_maintenance1) && defined(VK_KHR_ray_tracing_pipeline) */
|
||||
#if defined(VK_KHR_ray_tracing_pipeline)
|
||||
PFN_vkCmdSetRayTracingPipelineStackSizeKHR vkCmdSetRayTracingPipelineStackSizeKHR;
|
||||
PFN_vkCmdTraceRaysIndirectKHR vkCmdTraceRaysIndirectKHR;
|
||||
@@ -2252,6 +2405,10 @@ PFN_vkCmdSetViewportShadingRatePaletteNV vkCmdSetViewportShadingRatePaletteNV;
|
||||
PFN_vkCreateScreenSurfaceQNX vkCreateScreenSurfaceQNX;
|
||||
PFN_vkGetPhysicalDeviceScreenPresentationSupportQNX vkGetPhysicalDeviceScreenPresentationSupportQNX;
|
||||
#endif /* defined(VK_QNX_screen_surface) */
|
||||
#if defined(VK_VALVE_descriptor_set_host_mapping)
|
||||
PFN_vkGetDescriptorSetHostMappingVALVE vkGetDescriptorSetHostMappingVALVE;
|
||||
PFN_vkGetDescriptorSetLayoutHostMappingInfoVALVE vkGetDescriptorSetLayoutHostMappingInfoVALVE;
|
||||
#endif /* defined(VK_VALVE_descriptor_set_host_mapping) */
|
||||
#if (defined(VK_EXT_full_screen_exclusive) && defined(VK_KHR_device_group)) || (defined(VK_EXT_full_screen_exclusive) && defined(VK_VERSION_1_1))
|
||||
PFN_vkGetDeviceGroupSurfacePresentModes2EXT vkGetDeviceGroupSurfacePresentModes2EXT;
|
||||
#endif /* (defined(VK_EXT_full_screen_exclusive) && defined(VK_KHR_device_group)) || (defined(VK_EXT_full_screen_exclusive) && defined(VK_VERSION_1_1)) */
|
||||
|
||||
+106
-3
@@ -1,7 +1,7 @@
|
||||
/**
|
||||
* volk
|
||||
*
|
||||
* Copyright (C) 2018-2019, by Arseny Kapoulkine (arseny.kapoulkine@gmail.com)
|
||||
* Copyright (C) 2018-2022, by Arseny Kapoulkine (arseny.kapoulkine@gmail.com)
|
||||
* Report bugs and download new versions at https://github.com/zeux/volk
|
||||
*
|
||||
* This library is distributed under the MIT License. See notice at the end of this file.
|
||||
@@ -15,7 +15,7 @@
|
||||
#endif
|
||||
|
||||
/* VOLK_GENERATE_VERSION_DEFINE */
|
||||
#define VOLK_HEADER_VERSION 198
|
||||
#define VOLK_HEADER_VERSION 216
|
||||
/* VOLK_GENERATE_VERSION_DEFINE */
|
||||
|
||||
#ifndef VK_NO_PROTOTYPES
|
||||
@@ -285,6 +285,44 @@ struct VolkDeviceTable
|
||||
PFN_vkSignalSemaphore vkSignalSemaphore;
|
||||
PFN_vkWaitSemaphores vkWaitSemaphores;
|
||||
#endif /* defined(VK_VERSION_1_2) */
|
||||
#if defined(VK_VERSION_1_3)
|
||||
PFN_vkCmdBeginRendering vkCmdBeginRendering;
|
||||
PFN_vkCmdBindVertexBuffers2 vkCmdBindVertexBuffers2;
|
||||
PFN_vkCmdBlitImage2 vkCmdBlitImage2;
|
||||
PFN_vkCmdCopyBuffer2 vkCmdCopyBuffer2;
|
||||
PFN_vkCmdCopyBufferToImage2 vkCmdCopyBufferToImage2;
|
||||
PFN_vkCmdCopyImage2 vkCmdCopyImage2;
|
||||
PFN_vkCmdCopyImageToBuffer2 vkCmdCopyImageToBuffer2;
|
||||
PFN_vkCmdEndRendering vkCmdEndRendering;
|
||||
PFN_vkCmdPipelineBarrier2 vkCmdPipelineBarrier2;
|
||||
PFN_vkCmdResetEvent2 vkCmdResetEvent2;
|
||||
PFN_vkCmdResolveImage2 vkCmdResolveImage2;
|
||||
PFN_vkCmdSetCullMode vkCmdSetCullMode;
|
||||
PFN_vkCmdSetDepthBiasEnable vkCmdSetDepthBiasEnable;
|
||||
PFN_vkCmdSetDepthBoundsTestEnable vkCmdSetDepthBoundsTestEnable;
|
||||
PFN_vkCmdSetDepthCompareOp vkCmdSetDepthCompareOp;
|
||||
PFN_vkCmdSetDepthTestEnable vkCmdSetDepthTestEnable;
|
||||
PFN_vkCmdSetDepthWriteEnable vkCmdSetDepthWriteEnable;
|
||||
PFN_vkCmdSetEvent2 vkCmdSetEvent2;
|
||||
PFN_vkCmdSetFrontFace vkCmdSetFrontFace;
|
||||
PFN_vkCmdSetPrimitiveRestartEnable vkCmdSetPrimitiveRestartEnable;
|
||||
PFN_vkCmdSetPrimitiveTopology vkCmdSetPrimitiveTopology;
|
||||
PFN_vkCmdSetRasterizerDiscardEnable vkCmdSetRasterizerDiscardEnable;
|
||||
PFN_vkCmdSetScissorWithCount vkCmdSetScissorWithCount;
|
||||
PFN_vkCmdSetStencilOp vkCmdSetStencilOp;
|
||||
PFN_vkCmdSetStencilTestEnable vkCmdSetStencilTestEnable;
|
||||
PFN_vkCmdSetViewportWithCount vkCmdSetViewportWithCount;
|
||||
PFN_vkCmdWaitEvents2 vkCmdWaitEvents2;
|
||||
PFN_vkCmdWriteTimestamp2 vkCmdWriteTimestamp2;
|
||||
PFN_vkCreatePrivateDataSlot vkCreatePrivateDataSlot;
|
||||
PFN_vkDestroyPrivateDataSlot vkDestroyPrivateDataSlot;
|
||||
PFN_vkGetDeviceBufferMemoryRequirements vkGetDeviceBufferMemoryRequirements;
|
||||
PFN_vkGetDeviceImageMemoryRequirements vkGetDeviceImageMemoryRequirements;
|
||||
PFN_vkGetDeviceImageSparseMemoryRequirements vkGetDeviceImageSparseMemoryRequirements;
|
||||
PFN_vkGetPrivateData vkGetPrivateData;
|
||||
PFN_vkQueueSubmit2 vkQueueSubmit2;
|
||||
PFN_vkSetPrivateData vkSetPrivateData;
|
||||
#endif /* defined(VK_VERSION_1_3) */
|
||||
#if defined(VK_AMD_buffer_marker)
|
||||
PFN_vkCmdWriteBufferMarkerAMD vkCmdWriteBufferMarkerAMD;
|
||||
#endif /* defined(VK_AMD_buffer_marker) */
|
||||
@@ -365,6 +403,9 @@ struct VolkDeviceTable
|
||||
#if defined(VK_EXT_host_query_reset)
|
||||
PFN_vkResetQueryPoolEXT vkResetQueryPoolEXT;
|
||||
#endif /* defined(VK_EXT_host_query_reset) */
|
||||
#if defined(VK_EXT_image_compression_control)
|
||||
PFN_vkGetImageSubresourceLayout2EXT vkGetImageSubresourceLayout2EXT;
|
||||
#endif /* defined(VK_EXT_image_compression_control) */
|
||||
#if defined(VK_EXT_image_drm_format_modifier)
|
||||
PFN_vkGetImageDrmFormatModifierPropertiesEXT vkGetImageDrmFormatModifierPropertiesEXT;
|
||||
#endif /* defined(VK_EXT_image_drm_format_modifier) */
|
||||
@@ -378,6 +419,9 @@ struct VolkDeviceTable
|
||||
#if defined(VK_EXT_pageable_device_local_memory)
|
||||
PFN_vkSetDeviceMemoryPriorityEXT vkSetDeviceMemoryPriorityEXT;
|
||||
#endif /* defined(VK_EXT_pageable_device_local_memory) */
|
||||
#if defined(VK_EXT_pipeline_properties)
|
||||
PFN_vkGetPipelinePropertiesEXT vkGetPipelinePropertiesEXT;
|
||||
#endif /* defined(VK_EXT_pipeline_properties) */
|
||||
#if defined(VK_EXT_private_data)
|
||||
PFN_vkCreatePrivateDataSlotEXT vkCreatePrivateDataSlotEXT;
|
||||
PFN_vkDestroyPrivateDataSlotEXT vkDestroyPrivateDataSlotEXT;
|
||||
@@ -568,6 +612,9 @@ struct VolkDeviceTable
|
||||
#if defined(VK_KHR_push_descriptor)
|
||||
PFN_vkCmdPushDescriptorSetKHR vkCmdPushDescriptorSetKHR;
|
||||
#endif /* defined(VK_KHR_push_descriptor) */
|
||||
#if defined(VK_KHR_ray_tracing_maintenance1) && defined(VK_KHR_ray_tracing_pipeline)
|
||||
PFN_vkCmdTraceRaysIndirect2KHR vkCmdTraceRaysIndirect2KHR;
|
||||
#endif /* defined(VK_KHR_ray_tracing_maintenance1) && defined(VK_KHR_ray_tracing_pipeline) */
|
||||
#if defined(VK_KHR_ray_tracing_pipeline)
|
||||
PFN_vkCmdSetRayTracingPipelineStackSizeKHR vkCmdSetRayTracingPipelineStackSizeKHR;
|
||||
PFN_vkCmdTraceRaysIndirectKHR vkCmdTraceRaysIndirectKHR;
|
||||
@@ -690,6 +737,10 @@ struct VolkDeviceTable
|
||||
PFN_vkCmdSetCoarseSampleOrderNV vkCmdSetCoarseSampleOrderNV;
|
||||
PFN_vkCmdSetViewportShadingRatePaletteNV vkCmdSetViewportShadingRatePaletteNV;
|
||||
#endif /* defined(VK_NV_shading_rate_image) */
|
||||
#if defined(VK_VALVE_descriptor_set_host_mapping)
|
||||
PFN_vkGetDescriptorSetHostMappingVALVE vkGetDescriptorSetHostMappingVALVE;
|
||||
PFN_vkGetDescriptorSetLayoutHostMappingInfoVALVE vkGetDescriptorSetLayoutHostMappingInfoVALVE;
|
||||
#endif /* defined(VK_VALVE_descriptor_set_host_mapping) */
|
||||
#if (defined(VK_EXT_full_screen_exclusive) && defined(VK_KHR_device_group)) || (defined(VK_EXT_full_screen_exclusive) && defined(VK_VERSION_1_1))
|
||||
PFN_vkGetDeviceGroupSurfacePresentModes2EXT vkGetDeviceGroupSurfacePresentModes2EXT;
|
||||
#endif /* (defined(VK_EXT_full_screen_exclusive) && defined(VK_KHR_device_group)) || (defined(VK_EXT_full_screen_exclusive) && defined(VK_VERSION_1_1)) */
|
||||
@@ -891,6 +942,45 @@ extern PFN_vkResetQueryPool vkResetQueryPool;
|
||||
extern PFN_vkSignalSemaphore vkSignalSemaphore;
|
||||
extern PFN_vkWaitSemaphores vkWaitSemaphores;
|
||||
#endif /* defined(VK_VERSION_1_2) */
|
||||
#if defined(VK_VERSION_1_3)
|
||||
extern PFN_vkCmdBeginRendering vkCmdBeginRendering;
|
||||
extern PFN_vkCmdBindVertexBuffers2 vkCmdBindVertexBuffers2;
|
||||
extern PFN_vkCmdBlitImage2 vkCmdBlitImage2;
|
||||
extern PFN_vkCmdCopyBuffer2 vkCmdCopyBuffer2;
|
||||
extern PFN_vkCmdCopyBufferToImage2 vkCmdCopyBufferToImage2;
|
||||
extern PFN_vkCmdCopyImage2 vkCmdCopyImage2;
|
||||
extern PFN_vkCmdCopyImageToBuffer2 vkCmdCopyImageToBuffer2;
|
||||
extern PFN_vkCmdEndRendering vkCmdEndRendering;
|
||||
extern PFN_vkCmdPipelineBarrier2 vkCmdPipelineBarrier2;
|
||||
extern PFN_vkCmdResetEvent2 vkCmdResetEvent2;
|
||||
extern PFN_vkCmdResolveImage2 vkCmdResolveImage2;
|
||||
extern PFN_vkCmdSetCullMode vkCmdSetCullMode;
|
||||
extern PFN_vkCmdSetDepthBiasEnable vkCmdSetDepthBiasEnable;
|
||||
extern PFN_vkCmdSetDepthBoundsTestEnable vkCmdSetDepthBoundsTestEnable;
|
||||
extern PFN_vkCmdSetDepthCompareOp vkCmdSetDepthCompareOp;
|
||||
extern PFN_vkCmdSetDepthTestEnable vkCmdSetDepthTestEnable;
|
||||
extern PFN_vkCmdSetDepthWriteEnable vkCmdSetDepthWriteEnable;
|
||||
extern PFN_vkCmdSetEvent2 vkCmdSetEvent2;
|
||||
extern PFN_vkCmdSetFrontFace vkCmdSetFrontFace;
|
||||
extern PFN_vkCmdSetPrimitiveRestartEnable vkCmdSetPrimitiveRestartEnable;
|
||||
extern PFN_vkCmdSetPrimitiveTopology vkCmdSetPrimitiveTopology;
|
||||
extern PFN_vkCmdSetRasterizerDiscardEnable vkCmdSetRasterizerDiscardEnable;
|
||||
extern PFN_vkCmdSetScissorWithCount vkCmdSetScissorWithCount;
|
||||
extern PFN_vkCmdSetStencilOp vkCmdSetStencilOp;
|
||||
extern PFN_vkCmdSetStencilTestEnable vkCmdSetStencilTestEnable;
|
||||
extern PFN_vkCmdSetViewportWithCount vkCmdSetViewportWithCount;
|
||||
extern PFN_vkCmdWaitEvents2 vkCmdWaitEvents2;
|
||||
extern PFN_vkCmdWriteTimestamp2 vkCmdWriteTimestamp2;
|
||||
extern PFN_vkCreatePrivateDataSlot vkCreatePrivateDataSlot;
|
||||
extern PFN_vkDestroyPrivateDataSlot vkDestroyPrivateDataSlot;
|
||||
extern PFN_vkGetDeviceBufferMemoryRequirements vkGetDeviceBufferMemoryRequirements;
|
||||
extern PFN_vkGetDeviceImageMemoryRequirements vkGetDeviceImageMemoryRequirements;
|
||||
extern PFN_vkGetDeviceImageSparseMemoryRequirements vkGetDeviceImageSparseMemoryRequirements;
|
||||
extern PFN_vkGetPhysicalDeviceToolProperties vkGetPhysicalDeviceToolProperties;
|
||||
extern PFN_vkGetPrivateData vkGetPrivateData;
|
||||
extern PFN_vkQueueSubmit2 vkQueueSubmit2;
|
||||
extern PFN_vkSetPrivateData vkSetPrivateData;
|
||||
#endif /* defined(VK_VERSION_1_3) */
|
||||
#if defined(VK_AMD_buffer_marker)
|
||||
extern PFN_vkCmdWriteBufferMarkerAMD vkCmdWriteBufferMarkerAMD;
|
||||
#endif /* defined(VK_AMD_buffer_marker) */
|
||||
@@ -1012,6 +1102,9 @@ extern PFN_vkCreateHeadlessSurfaceEXT vkCreateHeadlessSurfaceEXT;
|
||||
#if defined(VK_EXT_host_query_reset)
|
||||
extern PFN_vkResetQueryPoolEXT vkResetQueryPoolEXT;
|
||||
#endif /* defined(VK_EXT_host_query_reset) */
|
||||
#if defined(VK_EXT_image_compression_control)
|
||||
extern PFN_vkGetImageSubresourceLayout2EXT vkGetImageSubresourceLayout2EXT;
|
||||
#endif /* defined(VK_EXT_image_compression_control) */
|
||||
#if defined(VK_EXT_image_drm_format_modifier)
|
||||
extern PFN_vkGetImageDrmFormatModifierPropertiesEXT vkGetImageDrmFormatModifierPropertiesEXT;
|
||||
#endif /* defined(VK_EXT_image_drm_format_modifier) */
|
||||
@@ -1028,6 +1121,9 @@ extern PFN_vkCmdDrawMultiIndexedEXT vkCmdDrawMultiIndexedEXT;
|
||||
#if defined(VK_EXT_pageable_device_local_memory)
|
||||
extern PFN_vkSetDeviceMemoryPriorityEXT vkSetDeviceMemoryPriorityEXT;
|
||||
#endif /* defined(VK_EXT_pageable_device_local_memory) */
|
||||
#if defined(VK_EXT_pipeline_properties)
|
||||
extern PFN_vkGetPipelinePropertiesEXT vkGetPipelinePropertiesEXT;
|
||||
#endif /* defined(VK_EXT_pipeline_properties) */
|
||||
#if defined(VK_EXT_private_data)
|
||||
extern PFN_vkCreatePrivateDataSlotEXT vkCreatePrivateDataSlotEXT;
|
||||
extern PFN_vkDestroyPrivateDataSlotEXT vkDestroyPrivateDataSlotEXT;
|
||||
@@ -1274,6 +1370,9 @@ extern PFN_vkWaitForPresentKHR vkWaitForPresentKHR;
|
||||
#if defined(VK_KHR_push_descriptor)
|
||||
extern PFN_vkCmdPushDescriptorSetKHR vkCmdPushDescriptorSetKHR;
|
||||
#endif /* defined(VK_KHR_push_descriptor) */
|
||||
#if defined(VK_KHR_ray_tracing_maintenance1) && defined(VK_KHR_ray_tracing_pipeline)
|
||||
extern PFN_vkCmdTraceRaysIndirect2KHR vkCmdTraceRaysIndirect2KHR;
|
||||
#endif /* defined(VK_KHR_ray_tracing_maintenance1) && defined(VK_KHR_ray_tracing_pipeline) */
|
||||
#if defined(VK_KHR_ray_tracing_pipeline)
|
||||
extern PFN_vkCmdSetRayTracingPipelineStackSizeKHR vkCmdSetRayTracingPipelineStackSizeKHR;
|
||||
extern PFN_vkCmdTraceRaysIndirectKHR vkCmdTraceRaysIndirectKHR;
|
||||
@@ -1447,6 +1546,10 @@ extern PFN_vkCmdSetViewportShadingRatePaletteNV vkCmdSetViewportShadingRatePalet
|
||||
extern PFN_vkCreateScreenSurfaceQNX vkCreateScreenSurfaceQNX;
|
||||
extern PFN_vkGetPhysicalDeviceScreenPresentationSupportQNX vkGetPhysicalDeviceScreenPresentationSupportQNX;
|
||||
#endif /* defined(VK_QNX_screen_surface) */
|
||||
#if defined(VK_VALVE_descriptor_set_host_mapping)
|
||||
extern PFN_vkGetDescriptorSetHostMappingVALVE vkGetDescriptorSetHostMappingVALVE;
|
||||
extern PFN_vkGetDescriptorSetLayoutHostMappingInfoVALVE vkGetDescriptorSetLayoutHostMappingInfoVALVE;
|
||||
#endif /* defined(VK_VALVE_descriptor_set_host_mapping) */
|
||||
#if (defined(VK_EXT_full_screen_exclusive) && defined(VK_KHR_device_group)) || (defined(VK_EXT_full_screen_exclusive) && defined(VK_VERSION_1_1))
|
||||
extern PFN_vkGetDeviceGroupSurfacePresentModes2EXT vkGetDeviceGroupSurfacePresentModes2EXT;
|
||||
#endif /* (defined(VK_EXT_full_screen_exclusive) && defined(VK_KHR_device_group)) || (defined(VK_EXT_full_screen_exclusive) && defined(VK_VERSION_1_1)) */
|
||||
@@ -1478,7 +1581,7 @@ extern PFN_vkAcquireNextImage2KHR vkAcquireNextImage2KHR;
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Copyright (c) 2018-2019 Arseny Kapoulkine
|
||||
* Copyright (c) 2018-2022 Arseny Kapoulkine
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
* of this software and associated documentation files (the "Software"), to deal
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
// File: vk_platform.h
|
||||
//
|
||||
/*
|
||||
** Copyright 2014-2021 The Khronos Group Inc.
|
||||
** Copyright 2014-2022 The Khronos Group Inc.
|
||||
**
|
||||
** SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
#define VULKAN_H_ 1
|
||||
|
||||
/*
|
||||
** Copyright 2015-2021 The Khronos Group Inc.
|
||||
** Copyright 2015-2022 The Khronos Group Inc.
|
||||
**
|
||||
** SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
#define VULKAN_ANDROID_H_ 1
|
||||
|
||||
/*
|
||||
** Copyright 2015-2021 The Khronos Group Inc.
|
||||
** Copyright 2015-2022 The Khronos Group Inc.
|
||||
**
|
||||
** SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
@@ -44,7 +44,7 @@ VKAPI_ATTR VkResult VKAPI_CALL vkCreateAndroidSurfaceKHR(
|
||||
|
||||
#define VK_ANDROID_external_memory_android_hardware_buffer 1
|
||||
struct AHardwareBuffer;
|
||||
#define VK_ANDROID_EXTERNAL_MEMORY_ANDROID_HARDWARE_BUFFER_SPEC_VERSION 4
|
||||
#define VK_ANDROID_EXTERNAL_MEMORY_ANDROID_HARDWARE_BUFFER_SPEC_VERSION 5
|
||||
#define VK_ANDROID_EXTERNAL_MEMORY_ANDROID_HARDWARE_BUFFER_EXTENSION_NAME "VK_ANDROID_external_memory_android_hardware_buffer"
|
||||
typedef struct VkAndroidHardwareBufferUsageANDROID {
|
||||
VkStructureType sType;
|
||||
@@ -95,7 +95,7 @@ typedef struct VkAndroidHardwareBufferFormatProperties2ANDROID {
|
||||
void* pNext;
|
||||
VkFormat format;
|
||||
uint64_t externalFormat;
|
||||
VkFormatFeatureFlags2KHR formatFeatures;
|
||||
VkFormatFeatureFlags2 formatFeatures;
|
||||
VkComponentMapping samplerYcbcrConversionComponents;
|
||||
VkSamplerYcbcrModelConversion suggestedYcbcrModel;
|
||||
VkSamplerYcbcrRange suggestedYcbcrRange;
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -2,7 +2,7 @@
|
||||
#define VULKAN_DIRECTFB_H_ 1
|
||||
|
||||
/*
|
||||
** Copyright 2015-2021 The Khronos Group Inc.
|
||||
** Copyright 2015-2022 The Khronos Group Inc.
|
||||
**
|
||||
** SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
#define VULKAN_FUCHSIA_H_ 1
|
||||
|
||||
/*
|
||||
** Copyright 2015-2021 The Khronos Group Inc.
|
||||
** Copyright 2015-2022 The Khronos Group Inc.
|
||||
**
|
||||
** SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
#define VULKAN_GGP_H_ 1
|
||||
|
||||
/*
|
||||
** Copyright 2015-2021 The Khronos Group Inc.
|
||||
** Copyright 2015-2022 The Khronos Group Inc.
|
||||
**
|
||||
** SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
#define VULKAN_IOS_H_ 1
|
||||
|
||||
/*
|
||||
** Copyright 2015-2021 The Khronos Group Inc.
|
||||
** Copyright 2015-2022 The Khronos Group Inc.
|
||||
**
|
||||
** SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
#define VULKAN_MACOS_H_ 1
|
||||
|
||||
/*
|
||||
** Copyright 2015-2021 The Khronos Group Inc.
|
||||
** Copyright 2015-2022 The Khronos Group Inc.
|
||||
**
|
||||
** SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
#define VULKAN_METAL_H_ 1
|
||||
|
||||
/*
|
||||
** Copyright 2015-2021 The Khronos Group Inc.
|
||||
** Copyright 2015-2022 The Khronos Group Inc.
|
||||
**
|
||||
** SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
@@ -20,7 +20,6 @@ extern "C" {
|
||||
|
||||
|
||||
#define VK_EXT_metal_surface 1
|
||||
|
||||
#ifdef __OBJC__
|
||||
@class CAMetalLayer;
|
||||
#else
|
||||
@@ -47,6 +46,146 @@ VKAPI_ATTR VkResult VKAPI_CALL vkCreateMetalSurfaceEXT(
|
||||
VkSurfaceKHR* pSurface);
|
||||
#endif
|
||||
|
||||
|
||||
#define VK_EXT_metal_objects 1
|
||||
#ifdef __OBJC__
|
||||
@protocol MTLDevice;
|
||||
typedef id<MTLDevice> MTLDevice_id;
|
||||
#else
|
||||
typedef void* MTLDevice_id;
|
||||
#endif
|
||||
|
||||
#ifdef __OBJC__
|
||||
@protocol MTLCommandQueue;
|
||||
typedef id<MTLCommandQueue> MTLCommandQueue_id;
|
||||
#else
|
||||
typedef void* MTLCommandQueue_id;
|
||||
#endif
|
||||
|
||||
#ifdef __OBJC__
|
||||
@protocol MTLBuffer;
|
||||
typedef id<MTLBuffer> MTLBuffer_id;
|
||||
#else
|
||||
typedef void* MTLBuffer_id;
|
||||
#endif
|
||||
|
||||
#ifdef __OBJC__
|
||||
@protocol MTLTexture;
|
||||
typedef id<MTLTexture> MTLTexture_id;
|
||||
#else
|
||||
typedef void* MTLTexture_id;
|
||||
#endif
|
||||
|
||||
typedef struct __IOSurface* IOSurfaceRef;
|
||||
#ifdef __OBJC__
|
||||
@protocol MTLSharedEvent;
|
||||
typedef id<MTLSharedEvent> MTLSharedEvent_id;
|
||||
#else
|
||||
typedef void* MTLSharedEvent_id;
|
||||
#endif
|
||||
|
||||
#define VK_EXT_METAL_OBJECTS_SPEC_VERSION 1
|
||||
#define VK_EXT_METAL_OBJECTS_EXTENSION_NAME "VK_EXT_metal_objects"
|
||||
|
||||
typedef enum VkExportMetalObjectTypeFlagBitsEXT {
|
||||
VK_EXPORT_METAL_OBJECT_TYPE_METAL_DEVICE_BIT_EXT = 0x00000001,
|
||||
VK_EXPORT_METAL_OBJECT_TYPE_METAL_COMMAND_QUEUE_BIT_EXT = 0x00000002,
|
||||
VK_EXPORT_METAL_OBJECT_TYPE_METAL_BUFFER_BIT_EXT = 0x00000004,
|
||||
VK_EXPORT_METAL_OBJECT_TYPE_METAL_TEXTURE_BIT_EXT = 0x00000008,
|
||||
VK_EXPORT_METAL_OBJECT_TYPE_METAL_IOSURFACE_BIT_EXT = 0x00000010,
|
||||
VK_EXPORT_METAL_OBJECT_TYPE_METAL_SHARED_EVENT_BIT_EXT = 0x00000020,
|
||||
VK_EXPORT_METAL_OBJECT_TYPE_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
|
||||
} VkExportMetalObjectTypeFlagBitsEXT;
|
||||
typedef VkFlags VkExportMetalObjectTypeFlagsEXT;
|
||||
typedef struct VkExportMetalObjectCreateInfoEXT {
|
||||
VkStructureType sType;
|
||||
const void* pNext;
|
||||
VkExportMetalObjectTypeFlagBitsEXT exportObjectType;
|
||||
} VkExportMetalObjectCreateInfoEXT;
|
||||
|
||||
typedef struct VkExportMetalObjectsInfoEXT {
|
||||
VkStructureType sType;
|
||||
const void* pNext;
|
||||
} VkExportMetalObjectsInfoEXT;
|
||||
|
||||
typedef struct VkExportMetalDeviceInfoEXT {
|
||||
VkStructureType sType;
|
||||
const void* pNext;
|
||||
MTLDevice_id mtlDevice;
|
||||
} VkExportMetalDeviceInfoEXT;
|
||||
|
||||
typedef struct VkExportMetalCommandQueueInfoEXT {
|
||||
VkStructureType sType;
|
||||
const void* pNext;
|
||||
VkQueue queue;
|
||||
MTLCommandQueue_id mtlCommandQueue;
|
||||
} VkExportMetalCommandQueueInfoEXT;
|
||||
|
||||
typedef struct VkExportMetalBufferInfoEXT {
|
||||
VkStructureType sType;
|
||||
const void* pNext;
|
||||
VkDeviceMemory memory;
|
||||
MTLBuffer_id mtlBuffer;
|
||||
} VkExportMetalBufferInfoEXT;
|
||||
|
||||
typedef struct VkImportMetalBufferInfoEXT {
|
||||
VkStructureType sType;
|
||||
const void* pNext;
|
||||
MTLBuffer_id mtlBuffer;
|
||||
} VkImportMetalBufferInfoEXT;
|
||||
|
||||
typedef struct VkExportMetalTextureInfoEXT {
|
||||
VkStructureType sType;
|
||||
const void* pNext;
|
||||
VkImage image;
|
||||
VkImageView imageView;
|
||||
VkBufferView bufferView;
|
||||
VkImageAspectFlagBits plane;
|
||||
MTLTexture_id mtlTexture;
|
||||
} VkExportMetalTextureInfoEXT;
|
||||
|
||||
typedef struct VkImportMetalTextureInfoEXT {
|
||||
VkStructureType sType;
|
||||
const void* pNext;
|
||||
VkImageAspectFlagBits plane;
|
||||
MTLTexture_id mtlTexture;
|
||||
} VkImportMetalTextureInfoEXT;
|
||||
|
||||
typedef struct VkExportMetalIOSurfaceInfoEXT {
|
||||
VkStructureType sType;
|
||||
const void* pNext;
|
||||
VkImage image;
|
||||
IOSurfaceRef ioSurface;
|
||||
} VkExportMetalIOSurfaceInfoEXT;
|
||||
|
||||
typedef struct VkImportMetalIOSurfaceInfoEXT {
|
||||
VkStructureType sType;
|
||||
const void* pNext;
|
||||
IOSurfaceRef ioSurface;
|
||||
} VkImportMetalIOSurfaceInfoEXT;
|
||||
|
||||
typedef struct VkExportMetalSharedEventInfoEXT {
|
||||
VkStructureType sType;
|
||||
const void* pNext;
|
||||
VkSemaphore semaphore;
|
||||
VkEvent event;
|
||||
MTLSharedEvent_id mtlSharedEvent;
|
||||
} VkExportMetalSharedEventInfoEXT;
|
||||
|
||||
typedef struct VkImportMetalSharedEventInfoEXT {
|
||||
VkStructureType sType;
|
||||
const void* pNext;
|
||||
MTLSharedEvent_id mtlSharedEvent;
|
||||
} VkImportMetalSharedEventInfoEXT;
|
||||
|
||||
typedef void (VKAPI_PTR *PFN_vkExportMetalObjectsEXT)(VkDevice device, VkExportMetalObjectsInfoEXT* pMetalObjectsInfo);
|
||||
|
||||
#ifndef VK_NO_PROTOTYPES
|
||||
VKAPI_ATTR void VKAPI_CALL vkExportMetalObjectsEXT(
|
||||
VkDevice device,
|
||||
VkExportMetalObjectsInfoEXT* pMetalObjectsInfo);
|
||||
#endif
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
#define VULKAN_SCREEN_H_ 1
|
||||
|
||||
/*
|
||||
** Copyright 2015-2021 The Khronos Group Inc.
|
||||
** Copyright 2015-2022 The Khronos Group Inc.
|
||||
**
|
||||
** SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
#define VULKAN_VI_H_ 1
|
||||
|
||||
/*
|
||||
** Copyright 2015-2021 The Khronos Group Inc.
|
||||
** Copyright 2015-2022 The Khronos Group Inc.
|
||||
**
|
||||
** SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
#define VULKAN_WAYLAND_H_ 1
|
||||
|
||||
/*
|
||||
** Copyright 2015-2021 The Khronos Group Inc.
|
||||
** Copyright 2015-2022 The Khronos Group Inc.
|
||||
**
|
||||
** SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
#define VULKAN_WIN32_H_ 1
|
||||
|
||||
/*
|
||||
** Copyright 2015-2021 The Khronos Group Inc.
|
||||
** Copyright 2015-2022 The Khronos Group Inc.
|
||||
**
|
||||
** SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
#define VULKAN_XCB_H_ 1
|
||||
|
||||
/*
|
||||
** Copyright 2015-2021 The Khronos Group Inc.
|
||||
** Copyright 2015-2022 The Khronos Group Inc.
|
||||
**
|
||||
** SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
#define VULKAN_XLIB_H_ 1
|
||||
|
||||
/*
|
||||
** Copyright 2015-2021 The Khronos Group Inc.
|
||||
** Copyright 2015-2022 The Khronos Group Inc.
|
||||
**
|
||||
** SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
#define VULKAN_XLIB_XRANDR_H_ 1
|
||||
|
||||
/*
|
||||
** Copyright 2015-2021 The Khronos Group Inc.
|
||||
** Copyright 2015-2022 The Khronos Group Inc.
|
||||
**
|
||||
** SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
|
||||
Reference in New Issue
Block a user