From 7cf68de074e429409e83397c3b75e76dfc8a2ac2 Mon Sep 17 00:00:00 2001 From: baldurk Date: Mon, 10 Nov 2025 13:12:13 +0000 Subject: [PATCH] Update D3D12 headers to 1.618.2 * This includes some support for the new serialised-root signature representation for precompilation which also affects runtime. GetRootSignature*() functions in pipeline state and state object are not implemented as it's unclear if they are supported. * The interfaces for the precompilation are *not* supported as there is no need. --- renderdoc/driver/d3d12/d3d12_command_queue.h | 32 +- renderdoc/driver/d3d12/d3d12_commands.cpp | 3 + renderdoc/driver/d3d12/d3d12_common.cpp | 82 +- renderdoc/driver/d3d12/d3d12_common.h | 40 +- renderdoc/driver/d3d12/d3d12_device.cpp | 31 +- renderdoc/driver/d3d12/d3d12_device.h | 6 +- renderdoc/driver/d3d12/d3d12_device_wrap2.cpp | 8 +- renderdoc/driver/d3d12/d3d12_hooks.cpp | 12 + renderdoc/driver/d3d12/d3d12_overlay.cpp | 4 +- renderdoc/driver/d3d12/d3d12_postvs.cpp | 4 +- renderdoc/driver/d3d12/d3d12_resources.cpp | 75 +- renderdoc/driver/d3d12/d3d12_resources.h | 65 +- renderdoc/driver/d3d12/d3d12_serialise.cpp | 68 +- .../driver/d3d12/d3d12_shader_feedback.cpp | 2 +- renderdoc/driver/d3d12/d3d12_shaderdebug.cpp | 6 +- renderdoc/driver/d3d12/d3d12_stringise.cpp | 12 +- renderdoc/driver/dx/official/d3d12.h | 1464 +++++++++++++++-- renderdoc/driver/dx/official/d3d12sdklayers.h | 6 +- util/test/demos/dx/official/d3d12.h | 1464 +++++++++++++++-- util/test/demos/dx/official/d3d12sdklayers.h | 6 +- 20 files changed, 2986 insertions(+), 404 deletions(-) diff --git a/renderdoc/driver/d3d12/d3d12_command_queue.h b/renderdoc/driver/d3d12/d3d12_command_queue.h index 9b8d7b517..249d7e545 100644 --- a/renderdoc/driver/d3d12/d3d12_command_queue.h +++ b/renderdoc/driver/d3d12/d3d12_command_queue.h @@ -148,7 +148,7 @@ struct WrappedDownlevelQueue : public ID3D12CommandQueueDownlevel class WrappedID3D12GraphicsCommandList; -class WrappedID3D12CommandQueue : public ID3D12CommandQueue, +class WrappedID3D12CommandQueue : public ID3D12CommandQueue1, public RefCounter12, public ID3DDevice, public IDXGISwapper @@ -156,6 +156,7 @@ class WrappedID3D12CommandQueue : public ID3D12CommandQueue, friend class WrappedID3D12GraphicsCommandList; ID3D12CommandQueueDownlevel *m_pDownlevel; + ID3D12CommandQueue1 *m_pReal1; WrappedDownlevelQueue m_WrappedDownlevel; @@ -408,6 +409,35 @@ public: virtual HRESULT STDMETHODCALLTYPE Present(ID3D12GraphicsCommandList *pOpenCommandList, ID3D12Resource *pSourceTex2D, HWND hWindow, D3D12_DOWNLEVEL_PRESENT_FLAGS Flags); + + // implement ID3D12CommandQueue1 + virtual HRESULT STDMETHODCALLTYPE SetProcessPriority(D3D12_COMMAND_QUEUE_PROCESS_PRIORITY Priority) + { + if(!m_pReal1) + return E_NOINTERFACE; + return m_pReal1->SetProcessPriority(Priority); + } + + virtual HRESULT STDMETHODCALLTYPE GetProcessPriority(D3D12_COMMAND_QUEUE_PROCESS_PRIORITY *pOutValue) + { + if(!m_pReal1) + return E_NOINTERFACE; + return m_pReal1->GetProcessPriority(pOutValue); + } + + virtual HRESULT STDMETHODCALLTYPE SetGlobalPriority(D3D12_COMMAND_QUEUE_GLOBAL_PRIORITY Priority) + { + if(!m_pReal1) + return E_NOINTERFACE; + return m_pReal1->SetGlobalPriority(Priority); + } + + virtual HRESULT STDMETHODCALLTYPE GetGlobalPriority(D3D12_COMMAND_QUEUE_GLOBAL_PRIORITY *pOutValue) + { + if(!m_pReal1) + return E_NOINTERFACE; + return m_pReal1->GetGlobalPriority(pOutValue); + } }; template <> diff --git a/renderdoc/driver/d3d12/d3d12_commands.cpp b/renderdoc/driver/d3d12/d3d12_commands.cpp index 8c9dc6489..15ff26caa 100644 --- a/renderdoc/driver/d3d12/d3d12_commands.cpp +++ b/renderdoc/driver/d3d12/d3d12_commands.cpp @@ -505,11 +505,13 @@ WrappedID3D12CommandQueue::WrappedID3D12CommandQueue(ID3D12CommandQueue *real, m_WrappedDebug.m_pQueue = this; m_pDownlevel = NULL; + m_pReal1 = NULL; if(m_pReal) { m_pReal->QueryInterface(__uuidof(ID3D12DebugCommandQueue), (void **)&m_WrappedDebug.m_pReal); m_pReal->QueryInterface(__uuidof(ID3D12DebugCommandQueue1), (void **)&m_WrappedDebug.m_pReal1); m_pReal->QueryInterface(__uuidof(ID3D12CommandQueueDownlevel), (void **)&m_pDownlevel); + m_pReal->QueryInterface(__uuidof(ID3D12CommandQueue1), (void **)&m_pReal1); m_pReal->QueryInterface(__uuidof(ID3D12CompatibilityQueue), (void **)&m_WrappedCompat.m_pReal); } @@ -566,6 +568,7 @@ WrappedID3D12CommandQueue::~WrappedID3D12CommandQueue() m_pDevice->RemoveQueue(this); SAFE_RELEASE(m_pDownlevel); + SAFE_RELEASE(m_pReal1); SAFE_RELEASE(m_WrappedCompat.m_pReal); SAFE_RELEASE(m_WrappedDebug.m_pReal); diff --git a/renderdoc/driver/d3d12/d3d12_common.cpp b/renderdoc/driver/d3d12/d3d12_common.cpp index a055c1fbc..931ecf68e 100644 --- a/renderdoc/driver/d3d12/d3d12_common.cpp +++ b/renderdoc/driver/d3d12/d3d12_common.cpp @@ -541,6 +541,10 @@ bool D3D12InitParams::IsSupportedVersion(uint64_t ver) if(ver == 0x13) return true; + // 0x14 -> 0x15 - Add serialisation of new root signature blob in PSO desc + if(ver == 0x14) + return true; + return false; } @@ -1596,6 +1600,7 @@ struct D3D12_PTR_PSO_SUBOBJECT D3D12_INPUT_LAYOUT_DESC InputLayout; D3D12_CACHED_PIPELINE_STATE CachedPSO; D3D12_VIEW_INSTANCING_DESC ViewInstancing; + D3D12_SERIALIZED_ROOT_SIGNATURE_DESC RootSig; } data; }; @@ -1712,6 +1717,12 @@ D3D12_EXPANDED_PIPELINE_STATE_STREAM_DESC::D3D12_EXPANDED_PIPELINE_STATE_STREAM_ ITER_ADV(ID3D12RootSignature *); break; } + case D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_SERIALIZED_ROOT_SIGNATURE: + { + RootSigBlob = ptr->data.RootSig; + ITER_ADV(D3D12_SERIALIZED_ROOT_SIGNATURE_DESC); + break; + } case D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_VS: { VS = ptr->data.shader; @@ -1921,26 +1932,66 @@ D3D12_EXPANDED_PIPELINE_STATE_STREAM_DESC::D3D12_EXPANDED_PIPELINE_STATE_STREAM_ } } +ID3D12RootSignature *D3D12_EXPANDED_PIPELINE_STATE_STREAM_DESC::GetOrCreateRootSig( + WrappedID3D12Device *dev) +{ + if(pRootSignature == NULL && RootSigBlob.SerializedBlobSizeInBytes > 0) + { + pRootSignature = dev->CreateImplicitRootSig(RootSigBlob); + RootSigBlob = {}; + } + + return pRootSignature; +} + void D3D12_PACKED_PIPELINE_STATE_STREAM_DESC::Unwrap() { - m_GraphicsStreamData.pRootSignature = ::Unwrap(m_GraphicsStreamData.pRootSignature); - m_ComputeStreamData.pRootSignature = ::Unwrap(m_ComputeStreamData.pRootSignature); + *m_RootSigToUnwrap = ::Unwrap(*m_RootSigToUnwrap); } D3D12_PACKED_PIPELINE_STATE_STREAM_DESC &D3D12_PACKED_PIPELINE_STATE_STREAM_DESC::operator=( const D3D12_EXPANDED_PIPELINE_STATE_STREAM_DESC &expanded) { +#define WRITE_VERSIONED_SUBOJBECT(subobjType, subobj) \ + type = subobjType; \ + memcpy(ptr, &type, sizeof(type)); \ + ptr += sizeof(type); \ + ptr = AlignUpPtr(ptr, alignof(decltype(subobj))); \ + memcpy(ptr, &subobj, sizeof(subobj)); \ + ptr += sizeof(subobj); \ + ptr = AlignUpPtr(ptr, sizeof(void *)); + if(expanded.CS.BytecodeLength > 0) { - m_ComputeStreamData.pRootSignature = expanded.pRootSignature; m_ComputeStreamData.CS = expanded.CS; m_ComputeStreamData.NodeMask = expanded.NodeMask; m_ComputeStreamData.CachedPSO = expanded.CachedPSO; m_ComputeStreamData.Flags = expanded.Flags; + + byte *ptr = m_ComputeStreamData.VariableVersionedData; + const byte *start = ptr; + D3D12_PIPELINE_STATE_SUBOBJECT_TYPE type; + + D3D12_SERIALIZED_ROOT_SIGNATURE_DESC RootSigBlob = expanded.GetRootSigBlob(); + if(RootSigBlob.SerializedBlobSizeInBytes > 0) + { + WRITE_VERSIONED_SUBOJBECT(D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_SERIALIZED_ROOT_SIGNATURE, + RootSigBlob); + + m_RootSigToUnwrap = NULL; + } + else + { + ID3D12RootSignature *sig = expanded.GetRootSigIfPresent(); + WRITE_VERSIONED_SUBOJBECT(D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_ROOT_SIGNATURE, sig); + + m_RootSigToUnwrap = ((ID3D12RootSignature **)ptr) - 1; + } + + m_VariableVersionedDataLength = ptr - start; } else { - m_GraphicsStreamData.pRootSignature = expanded.pRootSignature; m_GraphicsStreamData.VS = expanded.VS; m_GraphicsStreamData.PS = expanded.PS; m_GraphicsStreamData.DS = expanded.DS; @@ -1966,14 +2017,21 @@ D3D12_PACKED_PIPELINE_STATE_STREAM_DESC &D3D12_PACKED_PIPELINE_STATE_STREAM_DESC const byte *start = ptr; D3D12_PIPELINE_STATE_SUBOBJECT_TYPE type; -#define WRITE_VERSIONED_SUBOJBECT(subobjType, subobj) \ - type = subobjType; \ - memcpy(ptr, &type, sizeof(type)); \ - ptr += sizeof(type); \ - ptr = AlignUpPtr(ptr, alignof(decltype(subobj))); \ - memcpy(ptr, &subobj, sizeof(subobj)); \ - ptr += sizeof(subobj); \ - ptr = AlignUpPtr(ptr, sizeof(void *)); + D3D12_SERIALIZED_ROOT_SIGNATURE_DESC RootSigBlob = expanded.GetRootSigBlob(); + if(RootSigBlob.SerializedBlobSizeInBytes > 0) + { + WRITE_VERSIONED_SUBOJBECT(D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_SERIALIZED_ROOT_SIGNATURE, + RootSigBlob); + + m_RootSigToUnwrap = NULL; + } + else + { + ID3D12RootSignature *sig = expanded.GetRootSigIfPresent(); + WRITE_VERSIONED_SUBOJBECT(D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_ROOT_SIGNATURE, sig); + + m_RootSigToUnwrap = ((ID3D12RootSignature **)ptr) - 1; + } // is the line rasterization mode narrow quadrilateral? if so we need version 2. if(expanded.RasterizerState.LineRasterizationMode == diff --git a/renderdoc/driver/d3d12/d3d12_common.h b/renderdoc/driver/d3d12/d3d12_common.h index 7df184c0d..a7bf74cd8 100644 --- a/renderdoc/driver/d3d12/d3d12_common.h +++ b/renderdoc/driver/d3d12/d3d12_common.h @@ -736,8 +736,16 @@ struct D3D12_EXPANDED_PIPELINE_STATE_STREAM_DESC bool errored = false; + ID3D12RootSignature *GetRootSigIfPresent() const { return pRootSignature; } + ID3D12RootSignature *GetOrCreateRootSig(WrappedID3D12Device *dev); + const D3D12_SERIALIZED_ROOT_SIGNATURE_DESC &GetRootSigBlob() const { return RootSigBlob; } + void SetRootSig(ID3D12RootSignature *sig) + { + RootSigBlob = {}; + pRootSignature = sig; + } + // graphics properties - ID3D12RootSignature *pRootSignature = NULL; D3D12_SHADER_BYTECODE VS = {}; D3D12_SHADER_BYTECODE PS = {}; D3D12_SHADER_BYTECODE DS = {}; @@ -763,6 +771,14 @@ struct D3D12_EXPANDED_PIPELINE_STATE_STREAM_DESC // unique compute properties (many are duplicated above) D3D12_SHADER_BYTECODE CS = {}; + + // governed by accessors so we can hide the ugly blob method +private: + ID3D12RootSignature *pRootSignature = NULL; + D3D12_SERIALIZED_ROOT_SIGNATURE_DESC RootSigBlob = {}; + + template + friend void DoSerialise(SerialiserType &ser, D3D12_EXPANDED_PIPELINE_STATE_STREAM_DESC &el); }; DECLARE_REFLECTION_STRUCT(D3D12_EXPANDED_PIPELINE_STATE_STREAM_DESC); @@ -796,7 +812,8 @@ public: if(m_ComputeStreamData.CS.BytecodeLength > 0) { m_StreamDesc.pPipelineStateSubobjectStream = &m_ComputeStreamData; - m_StreamDesc.SizeInBytes = sizeof(m_ComputeStreamData); + m_StreamDesc.SizeInBytes = + offsetof(ComputeStreamData, VariableVersionedData) + m_VariableVersionedDataLength; return &m_StreamDesc; } else @@ -828,8 +845,6 @@ private: struct GraphicsStreamData { // graphics properties - SUBOBJECT_HEADER(ROOT_SIGNATURE); - ID3D12RootSignature *pRootSignature = NULL; SUBOBJECT_HEADER(INPUT_LAYOUT); D3D12_INPUT_LAYOUT_DESC InputLayout = {}; SUBOBJECT_HEADER(VS); @@ -882,7 +897,9 @@ private: // AS ... sizeof(D3D12_SHADER_BYTECODE) + sizeof(void *) + // ... and MS are optional - sizeof(D3D12_SHADER_BYTECODE) + sizeof(void *)]; + sizeof(D3D12_SHADER_BYTECODE) + sizeof(void *) + + // root signature could come in pointer or blob form + sizeof(D3D12_SERIALIZED_ROOT_SIGNATURE_DESC) + sizeof(void *)]; } m_GraphicsStreamData; D3D12_SHADER_BYTECODE AS = {}; @@ -890,11 +907,9 @@ private: size_t m_VariableVersionedDataLength; - struct + struct ComputeStreamData { // compute properties - SUBOBJECT_HEADER(ROOT_SIGNATURE); - ID3D12RootSignature *pRootSignature = NULL; SUBOBJECT_HEADER(CS); D3D12_SHADER_BYTECODE CS = {}; SUBOBJECT_HEADER(NODE_MASK); @@ -903,9 +918,15 @@ private: D3D12_CACHED_PIPELINE_STATE CachedPSO = {}; SUBOBJECT_HEADER(FLAGS); D3D12_PIPELINE_STATE_FLAGS Flags = D3D12_PIPELINE_STATE_FLAG_NONE; + alignas(void *) byte VariableVersionedData[ + // root signature could come in pointer or blob form + sizeof(D3D12_SERIALIZED_ROOT_SIGNATURE_DESC) + sizeof(void *)]; } m_ComputeStreamData; D3D12_PIPELINE_STATE_STREAM_DESC m_StreamDesc; + +private: + ID3D12RootSignature **m_RootSigToUnwrap; }; #undef SUBOBJECT_HEADER @@ -1126,6 +1147,8 @@ DECLARE_REFLECTION_STRUCT(D3D12_STATE_SUBOBJECT); DECLARE_REFLECTION_STRUCT(D3D12_STATE_OBJECT_CONFIG); DECLARE_REFLECTION_STRUCT(D3D12_GLOBAL_ROOT_SIGNATURE); DECLARE_REFLECTION_STRUCT(D3D12_LOCAL_ROOT_SIGNATURE); +DECLARE_REFLECTION_STRUCT(D3D12_GLOBAL_SERIALIZED_ROOT_SIGNATURE); +DECLARE_REFLECTION_STRUCT(D3D12_LOCAL_SERIALIZED_ROOT_SIGNATURE); DECLARE_REFLECTION_STRUCT(D3D12_NODE_MASK); DECLARE_REFLECTION_STRUCT(D3D12_DXIL_LIBRARY_DESC); DECLARE_REFLECTION_STRUCT(D3D12_EXISTING_COLLECTION_DESC); @@ -1139,6 +1162,7 @@ DECLARE_REFLECTION_STRUCT(D3D12_EXPORT_DESC); DECLARE_REFLECTION_STRUCT(D3D12_GPU_VIRTUAL_ADDRESS_RANGE); DECLARE_REFLECTION_STRUCT(D3D12_GPU_VIRTUAL_ADDRESS_RANGE_AND_STRIDE); DECLARE_REFLECTION_STRUCT(D3D12_DISPATCH_RAYS_DESC); +DECLARE_REFLECTION_STRUCT(D3D12_SERIALIZED_ROOT_SIGNATURE_DESC); DECLARE_DESERIALISE_TYPE(D3D12_DISCARD_REGION); DECLARE_DESERIALISE_TYPE(D3D12_GRAPHICS_PIPELINE_STATE_DESC); diff --git a/renderdoc/driver/d3d12/d3d12_device.cpp b/renderdoc/driver/d3d12/d3d12_device.cpp index d5ad620c5..99e0c4632 100644 --- a/renderdoc/driver/d3d12/d3d12_device.cpp +++ b/renderdoc/driver/d3d12/d3d12_device.cpp @@ -1683,6 +1683,33 @@ ID3D12Resource *WrappedID3D12Device::GetUploadBuffer(uint64_t chunkOffset, uint6 return buf; } +ID3D12RootSignature *WrappedID3D12Device::CreateImplicitRootSig( + D3D12_SERIALIZED_ROOT_SIGNATURE_DESC &RootSigBlob) +{ + rdcfixedarray hash; + DXBC::DXBCContainer::GetHash(hash, false, RootSigBlob.pSerializedBlob, + RootSigBlob.SerializedBlobSizeInBytes); + + ID3D12RootSignature *cacheEntry = m_ImplicitRootSigs[hash]; + + // if we've already cached this root sig, return it! check for collisions by not trusting th + if(cacheEntry) + return cacheEntry; + + // otherwise create it + HRESULT hr = + CreateRootSignature(0, RootSigBlob.pSerializedBlob, RootSigBlob.SerializedBlobSizeInBytes, + __uuidof(ID3D12RootSignature), (void **)&cacheEntry); + if(cacheEntry) + InternalRef(); + if(FAILED(hr)) + RDCERR("Failed to create implicit root signature from blob: %s", ToStr(hr).c_str()); + + m_ImplicitRootSigs[hash] = cacheEntry; + + return NULL; +} + void WrappedID3D12Device::ApplyInitialContents() { RENDERDOC_PROFILEFUNCTION(); @@ -3499,7 +3526,7 @@ HRESULT WrappedID3D12Device::CreatePipeState(D3D12_EXPANDED_PIPELINE_STATE_STREA if(desc.CS.BytecodeLength > 0) { D3D12_COMPUTE_PIPELINE_STATE_DESC compDesc; - compDesc.pRootSignature = desc.pRootSignature; + compDesc.pRootSignature = desc.GetOrCreateRootSig(this); compDesc.CS = desc.CS; compDesc.NodeMask = desc.NodeMask; compDesc.CachedPSO = desc.CachedPSO; @@ -3509,7 +3536,7 @@ HRESULT WrappedID3D12Device::CreatePipeState(D3D12_EXPANDED_PIPELINE_STATE_STREA else { D3D12_GRAPHICS_PIPELINE_STATE_DESC graphicsDesc; - graphicsDesc.pRootSignature = desc.pRootSignature; + graphicsDesc.pRootSignature = desc.GetOrCreateRootSig(this); graphicsDesc.VS = desc.VS; graphicsDesc.PS = desc.PS; graphicsDesc.DS = desc.DS; diff --git a/renderdoc/driver/d3d12/d3d12_device.h b/renderdoc/driver/d3d12/d3d12_device.h index f653a7724..ee63a89a6 100644 --- a/renderdoc/driver/d3d12/d3d12_device.h +++ b/renderdoc/driver/d3d12/d3d12_device.h @@ -64,7 +64,7 @@ struct D3D12InitParams UINT SDKVersion = 0; // check if a frame capture section version is supported - static const uint64_t CurrentVersion = 0x14; + static const uint64_t CurrentVersion = 0x15; static bool IsSupportedVersion(uint64_t ver); }; @@ -714,6 +714,8 @@ private: rdcflatmap m_UploadBuffers; rdcflatmap m_UploadRanges; + rdcflatmap, ID3D12RootSignature *> m_ImplicitRootSigs; + Threading::CriticalSection m_MapsLock; rdcarray m_Maps; @@ -1081,6 +1083,8 @@ public: void CloseInitialStateList(); ID3D12Resource *GetUploadBuffer(uint64_t chunkOffset, uint64_t byteSize); + ID3D12RootSignature *CreateImplicitRootSig(D3D12_SERIALIZED_ROOT_SIGNATURE_DESC &RootSigBlob); + HRESULT CreateInitialStateBuffer(const D3D12_RESOURCE_DESC &desc, ID3D12Resource **buf); rdcarray m_InitialStateHeaps; UINT64 m_LastInitialStateHeapOffset = 0; diff --git a/renderdoc/driver/d3d12/d3d12_device_wrap2.cpp b/renderdoc/driver/d3d12/d3d12_device_wrap2.cpp index 863d4ee8c..2ed0da38a 100644 --- a/renderdoc/driver/d3d12/d3d12_device_wrap2.cpp +++ b/renderdoc/driver/d3d12/d3d12_device_wrap2.cpp @@ -121,8 +121,8 @@ bool WrappedID3D12Device::Serialise_CreatePipelineState(SerialiserType &ser, }; AddResource(pPipelineState, ResourceType::PipelineState, "Pipeline State"); - if(OrigDescriptor.pRootSignature) - DerivedResource(OrigDescriptor.pRootSignature, pPipelineState); + if(OrigDescriptor.GetRootSigIfPresent()) + DerivedResource(OrigDescriptor.GetRootSigIfPresent(), pPipelineState); for(size_t i = 0; i < ARRAY_COUNT(shaders); i++) { @@ -329,8 +329,8 @@ HRESULT WrappedID3D12Device::CreatePipelineState(const D3D12_PIPELINE_STATE_STRE record->Length = 0; wrapped->SetResourceRecord(record); - if(expandedDesc.pRootSignature) - record->AddParent(GetRecord(expandedDesc.pRootSignature)); + if(expandedDesc.GetRootSigIfPresent()) + record->AddParent(GetRecord(expandedDesc.GetRootSigIfPresent())); if(vendorChunk) record->AddChunk(vendorChunk); diff --git a/renderdoc/driver/d3d12/d3d12_hooks.cpp b/renderdoc/driver/d3d12/d3d12_hooks.cpp index 51543eb47..903fa789c 100644 --- a/renderdoc/driver/d3d12/d3d12_hooks.cpp +++ b/renderdoc/driver/d3d12/d3d12_hooks.cpp @@ -942,6 +942,12 @@ private: static HRESULT WINAPI D3D12GetDebugInterface_hook(REFIID riid, void **ppvDebug) { + if(riid == CLSID_D3D12StateObjectFactory) + { + RDCLOG("Deliberately reporting no support for state object factories"); + return E_NOINTERFACE; + } + IUnknown *realUnk = NULL; HRESULT real = d3d12hooks.GetDebugInterface()(riid, (void **)&realUnk); @@ -961,6 +967,12 @@ private: static HRESULT WINAPI D3D12GetInterface_hook(REFCLSID rclsid, REFIID riid, void **ppvDebug) { + if(riid == CLSID_D3D12StateObjectFactory) + { + RDCLOG("Deliberately reporting no support for state object factories"); + return E_NOINTERFACE; + } + IUnknown *realUnk = NULL; HRESULT real = d3d12hooks.GetInterface()(rclsid, riid, (void **)&realUnk); diff --git a/renderdoc/driver/d3d12/d3d12_overlay.cpp b/renderdoc/driver/d3d12/d3d12_overlay.cpp index afb10e8f6..a7d191014 100644 --- a/renderdoc/driver/d3d12/d3d12_overlay.cpp +++ b/renderdoc/driver/d3d12/d3d12_overlay.cpp @@ -166,7 +166,7 @@ struct D3D12QuadOverdrawCallback : public D3D12ActionCallback return; } - pipeDesc.pRootSignature = cache.sig; + pipeDesc.SetRootSig(cache.sig); hr = m_pDevice->CreatePipeState(pipeDesc, &cache.pipe); RDCASSERTEQUAL(hr, S_OK); @@ -1617,7 +1617,7 @@ ResourceId D3D12Replay::RenderOverlay(ResourceId texid, FloatVector clearCol, De D3D12_EXPANDED_PIPELINE_STATE_STREAM_DESC pipeDesc; pipe->Fill(pipeDesc); - pipeDesc.pRootSignature = GetDebugManager()->GetMeshRootSig(); + pipeDesc.SetRootSig(GetDebugManager()->GetMeshRootSig()); pipeDesc.SampleMask = 0xFFFFFFFF; pipeDesc.SampleDesc = overlayTexDesc.SampleDesc; pipeDesc.IBStripCutValue = D3D12_INDEX_BUFFER_STRIP_CUT_VALUE_DISABLED; diff --git a/renderdoc/driver/d3d12/d3d12_postvs.cpp b/renderdoc/driver/d3d12/d3d12_postvs.cpp index 92b0f8d7d..b98958cf4 100644 --- a/renderdoc/driver/d3d12/d3d12_postvs.cpp +++ b/renderdoc/driver/d3d12/d3d12_postvs.cpp @@ -2245,7 +2245,7 @@ void D3D12Replay::InitPostMSBuffers(uint32_t eventId) } } - pipeDesc.pRootSignature = annotatedSig; + pipeDesc.SetRootSig(annotatedSig); HRESULT hr = S_OK; @@ -3041,7 +3041,7 @@ void D3D12Replay::InitPostVSBuffers(uint32_t eventId) psoDesc.DepthStencilState.StencilEnable = FALSE; if(soSig) - psoDesc.pRootSignature = soSig; + psoDesc.SetRootSig(soSig); // render as points psoDesc.PrimitiveTopologyType = D3D12_PRIMITIVE_TOPOLOGY_TYPE_POINT; diff --git a/renderdoc/driver/d3d12/d3d12_resources.cpp b/renderdoc/driver/d3d12/d3d12_resources.cpp index af07c1eb1..da743d68a 100644 --- a/renderdoc/driver/d3d12/d3d12_resources.cpp +++ b/renderdoc/driver/d3d12/d3d12_resources.cpp @@ -702,9 +702,14 @@ void WrappedID3D12PipelineState::FetchRootSig(D3D12ShaderCache *shaderCache) { if(compute) { - if(compute->pRootSignature) + if(compute->GetRootSigBlob().SerializedBlobSizeInBytes > 0) { - usedSig = ((WrappedID3D12RootSignature *)compute->pRootSignature)->sig; + usedSig = DecodeRootSig(compute->GetRootSigBlob().pSerializedBlob, + compute->GetRootSigBlob().SerializedBlobSizeInBytes); + } + else if(compute->GetRootSigIfPresent()) + { + usedSig = ((WrappedID3D12RootSignature *)compute->GetRootSigIfPresent())->sig; } else { @@ -721,9 +726,14 @@ void WrappedID3D12PipelineState::FetchRootSig(D3D12ShaderCache *shaderCache) } else if(graphics) { - if(graphics->pRootSignature) + if(graphics->GetRootSigBlob().SerializedBlobSizeInBytes > 0) { - usedSig = ((WrappedID3D12RootSignature *)graphics->pRootSignature)->sig; + usedSig = DecodeRootSig(graphics->GetRootSigBlob().pSerializedBlob, + graphics->GetRootSigBlob().SerializedBlobSizeInBytes); + } + else if(graphics->GetRootSigIfPresent()) + { + usedSig = ((WrappedID3D12RootSignature *)graphics->GetRootSigIfPresent())->sig; } else { @@ -881,7 +891,7 @@ void D3D12ShaderExportDatabase::PopulateDatabase(size_t NumSubobjects, const D3D12_STATE_SUBOBJECT *subobjects) { // store the default local root signature - if we only find one in the whole state object then it becomes default - ID3D12RootSignature *defaultRoot = NULL; + uint32_t defaultRoot = ~0U; bool unassocDefaultValid = false; bool explicitDefault = false; bool unassocDXILDefaultValid = false; @@ -1051,8 +1061,25 @@ void D3D12ShaderExportDatabase::PopulateDatabase(size_t NumSubobjects, if(!explicitDefault) { // if multiple root signatures are defined, then there can't be an unspecified default - unassocDefaultValid = defaultRoot == NULL; - defaultRoot = ((D3D12_LOCAL_ROOT_SIGNATURE *)subobjects[i].pDesc)->pLocalRootSignature; + unassocDefaultValid = (defaultRoot == ~0U); + WrappedID3D12RootSignature *wrappedRoot = + (WrappedID3D12RootSignature *)((D3D12_LOCAL_ROOT_SIGNATURE *)subobjects[i].pDesc) + ->pLocalRootSignature; + + defaultRoot = wrappedRoot->localRootSigIdx; + } + } + else if(subobjects[i].Type == D3D12_STATE_SUBOBJECT_TYPE_LOCAL_SERIALIZED_ROOT_SIGNATURE) + { + // ignore these if an explicit default association has been made + if(!explicitDefault) + { + // if multiple root signatures are defined, then there can't be an unspecified default + unassocDefaultValid = (defaultRoot == ~0U); + D3D12_SERIALIZED_ROOT_SIGNATURE_DESC &RootDesc = + ((D3D12_LOCAL_SERIALIZED_ROOT_SIGNATURE *)subobjects[i].pDesc)->Desc; + defaultRoot = m_RayManager->RegisterLocalRootSig( + DecodeRootSig(RootDesc.pSerializedBlob, RootDesc.SerializedBlobSizeInBytes)); } } else if(subobjects[i].Type == D3D12_STATE_SUBOBJECT_TYPE_SUBOBJECT_TO_EXPORTS_ASSOCIATION) @@ -1063,26 +1090,40 @@ void D3D12ShaderExportDatabase::PopulateDatabase(size_t NumSubobjects, const D3D12_STATE_SUBOBJECT *other = assoc->pSubobjectToAssociate; // only care about associating local root signatures - if(other->Type == D3D12_STATE_SUBOBJECT_TYPE_LOCAL_ROOT_SIGNATURE) + if(other->Type == D3D12_STATE_SUBOBJECT_TYPE_LOCAL_ROOT_SIGNATURE || + other->Type == D3D12_STATE_SUBOBJECT_TYPE_LOCAL_SERIALIZED_ROOT_SIGNATURE) { - ID3D12RootSignature *root = ((D3D12_LOCAL_ROOT_SIGNATURE *)other->pDesc)->pLocalRootSignature; + uint32_t localRSIdx = ~0U; - WrappedID3D12RootSignature *wrappedRoot = (WrappedID3D12RootSignature *)root; + if(other->Type == D3D12_STATE_SUBOBJECT_TYPE_LOCAL_ROOT_SIGNATURE) + { + ID3D12RootSignature *root = + ((D3D12_LOCAL_ROOT_SIGNATURE *)other->pDesc)->pLocalRootSignature; + + WrappedID3D12RootSignature *wrappedRoot = (WrappedID3D12RootSignature *)root; + localRSIdx = wrappedRoot->localRootSigIdx; + } + else if(other->Type == D3D12_STATE_SUBOBJECT_TYPE_LOCAL_SERIALIZED_ROOT_SIGNATURE) + { + D3D12_SERIALIZED_ROOT_SIGNATURE_DESC &RootDesc = + ((D3D12_LOCAL_SERIALIZED_ROOT_SIGNATURE *)other->pDesc)->Desc; + localRSIdx = m_RayManager->RegisterLocalRootSig( + DecodeRootSig(RootDesc.pSerializedBlob, RootDesc.SerializedBlobSizeInBytes)); + } // if there are no exports this is an explicit default association. We assume this // matches and doesn't conflict if(assoc->NumExports == NULL) { explicitDefault = true; - defaultRoot = root; + defaultRoot = localRSIdx; } else { // otherwise record the explicit associations - these may refer to exports that // haven't been seen yet so we record them locally for(UINT e = 0; e < assoc->NumExports; e++) - explicitRootSigAssocs.push_back( - {StringFormat::Wide2UTF8(assoc->pExports[e]), wrappedRoot->localRootSigIdx}); + explicitRootSigAssocs.push_back({StringFormat::Wide2UTF8(assoc->pExports[e]), localRSIdx}); } } } @@ -1123,16 +1164,12 @@ void D3D12ShaderExportDatabase::PopulateDatabase(size_t NumSubobjects, if(explicitDefault) { - WrappedID3D12RootSignature *wrappedRoot = (WrappedID3D12RootSignature *)defaultRoot; - - ApplyDefaultRoot(SubObjectPriority::CodeExplicitDefault, wrappedRoot->localRootSigIdx); + ApplyDefaultRoot(SubObjectPriority::CodeExplicitDefault, defaultRoot); } // shouldn't be possible to have both explicit and implicit defaults? else if(unassocDefaultValid) { - WrappedID3D12RootSignature *wrappedRoot = (WrappedID3D12RootSignature *)defaultRoot; - - ApplyDefaultRoot(SubObjectPriority::CodeImplicitDefault, wrappedRoot->localRootSigIdx); + ApplyDefaultRoot(SubObjectPriority::CodeImplicitDefault, defaultRoot); } for(size_t i = 0; i < explicitDxilAssocs.size(); i++) diff --git a/renderdoc/driver/d3d12/d3d12_resources.h b/renderdoc/driver/d3d12/d3d12_resources.h index a40946e27..b00099616 100644 --- a/renderdoc/driver/d3d12/d3d12_resources.h +++ b/renderdoc/driver/d3d12/d3d12_resources.h @@ -795,7 +795,8 @@ public: } }; -class WrappedID3D12PipelineState : public WrappedDeviceChild12 +class WrappedID3D12PipelineState + : public WrappedDeviceChild12 { public: ALLOCATE_WITH_WRAPPED_POOL(WrappedID3D12PipelineState); @@ -1087,6 +1088,25 @@ public: { return m_pReal->GetCachedBlob(ppBlob); } + + ////////////////////////////// + // implement ID3D12PipelineState1 + + virtual HRESULT STDMETHODCALLTYPE GetRootSignature(REFIID riid, _COM_Outptr_ void **ppvRootSignature) + { + ID3D12PipelineState1 *real1 = NULL; + m_pReal->QueryInterface(__uuidof(ID3D12PipelineState1), (void **)&real1); + + if(ppvRootSignature) + *ppvRootSignature = NULL; + if(!real1) + return E_NOINTERFACE; + + SAFE_RELEASE(real1); + + // unclear if this is supposed to be supported? + return E_INVALIDARG; + } }; // the priorities of subobject associations. Default associations are not(?) inherited from @@ -1240,10 +1260,11 @@ private: }; class WrappedID3D12StateObject : public WrappedDeviceChild12, - public ID3D12StateObjectProperties1 + public ID3D12StateObjectProperties2 { ID3D12StateObjectProperties *properties; ID3D12StateObjectProperties1 *properties1; + ID3D12StateObjectProperties2 *properties2; public: ALLOCATE_WITH_WRAPPED_POOL(WrappedID3D12StateObject); @@ -1269,12 +1290,14 @@ public: m_pReal = real; real->QueryInterface(__uuidof(ID3D12StateObjectProperties), (void **)&properties); real->QueryInterface(__uuidof(ID3D12StateObjectProperties1), (void **)&properties1); + real->QueryInterface(__uuidof(ID3D12StateObjectProperties2), (void **)&properties2); } virtual ~WrappedID3D12StateObject() { SAFE_RELEASE(properties); SAFE_RELEASE(properties1); + SAFE_RELEASE(properties2); SAFE_RELEASE(exports); Shutdown(); } @@ -1302,6 +1325,19 @@ public: return E_NOINTERFACE; } } + else if(riid == __uuidof(ID3D12StateObjectProperties2)) + { + if(properties2) + { + *ppvObject = (ID3D12StateObjectProperties2 *)this; + AddRef(); + return S_OK; + } + else + { + return E_NOINTERFACE; + } + } if(riid == __uuidof(ID3D12WorkGraphProperties)) { // work graphs are not currently supported @@ -1350,6 +1386,31 @@ public: return properties1->GetProgramIdentifier(pProgramName); return {}; } + + ////////////////////////////// + // implement ID3D12StateObjectProperties2 + + virtual HRESULT STDMETHODCALLTYPE GetGlobalRootSignatureForProgram( + LPCWSTR pProgramName, REFIID riid, _COM_Outptr_ void **ppvRootSignature) + { + if(ppvRootSignature) + *ppvRootSignature = NULL; + if(!properties2) + return E_NOINTERFACE; + // unclear if this is supposed to be supported? + return E_INVALIDARG; + } + + virtual HRESULT STDMETHODCALLTYPE GetGlobalRootSignatureForShader( + LPCWSTR pExportName, REFIID riid, _COM_Outptr_ void **ppvRootSignature) + { + if(ppvRootSignature) + *ppvRootSignature = NULL; + if(!properties2) + return E_NOINTERFACE; + // unclear if this is supposed to be supported? + return E_INVALIDARG; + } }; class WrappedID3D12QueryHeap : public WrappedDeviceChild12 diff --git a/renderdoc/driver/d3d12/d3d12_serialise.cpp b/renderdoc/driver/d3d12/d3d12_serialise.cpp index b8159a19a..9ef5b1c92 100644 --- a/renderdoc/driver/d3d12/d3d12_serialise.cpp +++ b/renderdoc/driver/d3d12/d3d12_serialise.cpp @@ -591,10 +591,40 @@ void DoSerialise(SerialiserType &ser, D3D12Descriptor &el) } } +template +void DoSerialise(SerialiserType &ser, D3D12_SERIALIZED_ROOT_SIGNATURE_DESC &el) +{ + SERIALISE_MEMBER_ARRAY(pSerializedBlob, SerializedBlobSizeInBytes).Important(); + + // don't serialise size_t, otherwise capture/replay between different bit-ness won't work + { + uint64_t SerializedBlobSizeInBytes = el.SerializedBlobSizeInBytes; + ser.Serialise("SerializedBlobSizeInBytes"_lit, SerializedBlobSizeInBytes); + if(ser.IsReading()) + el.SerializedBlobSizeInBytes = (size_t)SerializedBlobSizeInBytes; + } +} + +template <> +void Deserialise(const D3D12_SERIALIZED_ROOT_SIGNATURE_DESC &el) +{ + FreeAlignedBuffer((byte *)(el.pSerializedBlob)); +} + template void DoSerialise(SerialiserType &ser, D3D12_EXPANDED_PIPELINE_STATE_STREAM_DESC &el) { SERIALISE_MEMBER(pRootSignature); + + if(ser.VersionAtLeast(0x15)) + { + SERIALISE_MEMBER(RootSigBlob); + } + else if(ser.IsReading()) + { + el.RootSigBlob = {}; + } + SERIALISE_MEMBER(VS).Important(); SERIALISE_MEMBER(PS).Important(); SERIALISE_MEMBER(DS); @@ -606,6 +636,11 @@ void DoSerialise(SerialiserType &ser, D3D12_EXPANDED_PIPELINE_STATE_STREAM_DESC SERIALISE_MEMBER(AS); SERIALISE_MEMBER(MS); } + else if(ser.IsReading()) + { + el.AS = {}; + el.MS = {}; + } SERIALISE_MEMBER(StreamOutput); SERIALISE_MEMBER(BlendState); @@ -2118,9 +2153,17 @@ void Deserialise(const D3D12_STATE_OBJECT_DESC &el) delete temp; break; } - case D3D12_STATE_SUBOBJECT_TYPE_LOCAL_ROOT_SIGNATURE: + case D3D12_STATE_SUBOBJECT_TYPE_GLOBAL_SERIALIZED_ROOT_SIGNATURE: { - D3D12_LOCAL_ROOT_SIGNATURE *temp = (D3D12_LOCAL_ROOT_SIGNATURE *)el.pSubobjects[i].pDesc; + D3D12_GLOBAL_SERIALIZED_ROOT_SIGNATURE *temp = + (D3D12_GLOBAL_SERIALIZED_ROOT_SIGNATURE *)el.pSubobjects[i].pDesc; + delete temp; + break; + } + case D3D12_STATE_SUBOBJECT_TYPE_LOCAL_SERIALIZED_ROOT_SIGNATURE: + { + D3D12_LOCAL_SERIALIZED_ROOT_SIGNATURE *temp = + (D3D12_LOCAL_SERIALIZED_ROOT_SIGNATURE *)el.pSubobjects[i].pDesc; delete temp; break; } @@ -2213,6 +2256,12 @@ void DoSerialise(SerialiserType &ser, D3D12_STATE_SUBOBJECT &el) case D3D12_STATE_SUBOBJECT_TYPE_LOCAL_ROOT_SIGNATURE: ser.SerialiseNullable("pDesc"_lit, (D3D12_LOCAL_ROOT_SIGNATURE *&)el.pDesc); break; + case D3D12_STATE_SUBOBJECT_TYPE_GLOBAL_SERIALIZED_ROOT_SIGNATURE: + ser.SerialiseNullable("pDesc"_lit, (D3D12_GLOBAL_SERIALIZED_ROOT_SIGNATURE *&)el.pDesc); + break; + case D3D12_STATE_SUBOBJECT_TYPE_LOCAL_SERIALIZED_ROOT_SIGNATURE: + ser.SerialiseNullable("pDesc"_lit, (D3D12_LOCAL_SERIALIZED_ROOT_SIGNATURE *&)el.pDesc); + break; case D3D12_STATE_SUBOBJECT_TYPE_NODE_MASK: ser.SerialiseNullable("pDesc"_lit, (D3D12_NODE_MASK *&)el.pDesc); break; @@ -2262,6 +2311,18 @@ void DoSerialise(SerialiserType &ser, D3D12_LOCAL_ROOT_SIGNATURE &el) SERIALISE_MEMBER(pLocalRootSignature); } +template +void DoSerialise(SerialiserType &ser, D3D12_GLOBAL_SERIALIZED_ROOT_SIGNATURE &el) +{ + SERIALISE_MEMBER(Desc); +} + +template +void DoSerialise(SerialiserType &ser, D3D12_LOCAL_SERIALIZED_ROOT_SIGNATURE &el) +{ + SERIALISE_MEMBER(Desc); +} + template void DoSerialise(SerialiserType &ser, D3D12_NODE_MASK &el) { @@ -2592,6 +2653,8 @@ INSTANTIATE_SERIALISE_TYPE(D3D12_STATE_SUBOBJECT); INSTANTIATE_SERIALISE_TYPE(D3D12_STATE_OBJECT_CONFIG); INSTANTIATE_SERIALISE_TYPE(D3D12_GLOBAL_ROOT_SIGNATURE); INSTANTIATE_SERIALISE_TYPE(D3D12_LOCAL_ROOT_SIGNATURE); +INSTANTIATE_SERIALISE_TYPE(D3D12_GLOBAL_SERIALIZED_ROOT_SIGNATURE); +INSTANTIATE_SERIALISE_TYPE(D3D12_LOCAL_SERIALIZED_ROOT_SIGNATURE); INSTANTIATE_SERIALISE_TYPE(D3D12_NODE_MASK); INSTANTIATE_SERIALISE_TYPE(D3D12_DXIL_LIBRARY_DESC); INSTANTIATE_SERIALISE_TYPE(D3D12_EXISTING_COLLECTION_DESC); @@ -2605,3 +2668,4 @@ INSTANTIATE_SERIALISE_TYPE(D3D12_EXPORT_DESC); INSTANTIATE_SERIALISE_TYPE(D3D12_GPU_VIRTUAL_ADDRESS_RANGE); INSTANTIATE_SERIALISE_TYPE(D3D12_GPU_VIRTUAL_ADDRESS_RANGE_AND_STRIDE); INSTANTIATE_SERIALISE_TYPE(D3D12_DISPATCH_RAYS_DESC); +INSTANTIATE_SERIALISE_TYPE(D3D12_SERIALIZED_ROOT_SIGNATURE_DESC); diff --git a/renderdoc/driver/d3d12/d3d12_shader_feedback.cpp b/renderdoc/driver/d3d12/d3d12_shader_feedback.cpp index 8b6d48adf..08f9b68ca 100644 --- a/renderdoc/driver/d3d12/d3d12_shader_feedback.cpp +++ b/renderdoc/driver/d3d12/d3d12_shader_feedback.cpp @@ -1572,7 +1572,7 @@ bool D3D12Replay::FetchShaderFeedback(uint32_t eventId) ID3D12PipelineState *annotatedPipe = NULL; { - pipeDesc.pRootSignature = annotatedSig; + pipeDesc.SetRootSig(annotatedSig); HRESULT hr = m_pDevice->CreatePipeState(pipeDesc, &annotatedPipe); if(annotatedPipe == NULL || FAILED(hr)) diff --git a/renderdoc/driver/d3d12/d3d12_shaderdebug.cpp b/renderdoc/driver/d3d12/d3d12_shaderdebug.cpp index 7913de35a..97545e889 100644 --- a/renderdoc/driver/d3d12/d3d12_shaderdebug.cpp +++ b/renderdoc/driver/d3d12/d3d12_shaderdebug.cpp @@ -2353,7 +2353,7 @@ ShaderDebugTrace *D3D12Replay::DebugVertex(uint32_t eventId, uint32_t vertid, ui pipeDesc.VS.BytecodeLength = vsBlob->GetBufferSize(); pipeDesc.VS.pShaderBytecode = vsBlob->GetBufferPointer(); - pipeDesc.pRootSignature = pRootSignature; + pipeDesc.SetRootSig(pRootSignature); // disable rasterizaion pipeDesc.PS = {}; @@ -2969,7 +2969,7 @@ ShaderDebugTrace *D3D12Replay::DebugPixel(uint32_t eventId, uint32_t x, uint32_t // All PSO state is the same as the event's, except for the pixel shader and root signature pipeDesc.PS.BytecodeLength = psBlob->GetBufferSize(); pipeDesc.PS.pShaderBytecode = psBlob->GetBufferPointer(); - pipeDesc.pRootSignature = pRootSignature; + pipeDesc.SetRootSig(pRootSignature); ID3D12PipelineState *initialPso = NULL; HRESULT hr = m_pDevice->CreatePipeState(pipeDesc, &initialPso); @@ -3632,7 +3632,7 @@ ShaderDebugTrace *D3D12Replay::DebugThread(uint32_t eventId, pipeDesc.CS.BytecodeLength = csBlob->GetBufferSize(); pipeDesc.CS.pShaderBytecode = csBlob->GetBufferPointer(); - pipeDesc.pRootSignature = pRootSignature; + pipeDesc.SetRootSig(pRootSignature); ID3D12PipelineState *initialPso = NULL; HRESULT hr = m_pDevice->CreatePipeState(pipeDesc, &initialPso); diff --git a/renderdoc/driver/d3d12/d3d12_stringise.cpp b/renderdoc/driver/d3d12/d3d12_stringise.cpp index a708c62ff..c78e22ee6 100644 --- a/renderdoc/driver/d3d12/d3d12_stringise.cpp +++ b/renderdoc/driver/d3d12/d3d12_stringise.cpp @@ -1045,7 +1045,7 @@ rdcstr DoStringise(const D3D12_BARRIER_LAYOUT &el) STRINGISE_ENUM(D3D12_BARRIER_LAYOUT_COMPUTE_QUEUE_SHADER_RESOURCE) STRINGISE_ENUM(D3D12_BARRIER_LAYOUT_COMPUTE_QUEUE_COPY_SOURCE) STRINGISE_ENUM(D3D12_BARRIER_LAYOUT_COMPUTE_QUEUE_COPY_DEST) - STRINGISE_ENUM(D3D12_BARRIER_LAYOUT_VIDEO_QUEUE_COMMON) + STRINGISE_ENUM(D3D12_BARRIER_LAYOUT_DIRECT_QUEUE_GENERIC_READ_COMPUTE_QUEUE_ACCESSIBLE) } END_ENUM_STRINGISE(); } @@ -1230,6 +1230,7 @@ rdcstr DoStringise(const D3D12_RESOURCE_FLAGS &el) STRINGISE_BITFIELD_BIT(D3D12_RESOURCE_FLAG_VIDEO_DECODE_REFERENCE_ONLY); STRINGISE_BITFIELD_BIT(D3D12_RESOURCE_FLAG_VIDEO_ENCODE_REFERENCE_ONLY); STRINGISE_BITFIELD_BIT(D3D12_RESOURCE_FLAG_RAYTRACING_ACCELERATION_STRUCTURE); + STRINGISE_BITFIELD_BIT(D3D12_RESOURCE_FLAG_USE_TIGHT_ALIGNMENT); } END_BITFIELD_STRINGISE(); } @@ -1242,6 +1243,7 @@ rdcstr DoStringise(const D3D12_COMMAND_QUEUE_FLAGS &el) STRINGISE_BITFIELD_VALUE(D3D12_COMMAND_QUEUE_FLAG_NONE); STRINGISE_BITFIELD_BIT(D3D12_COMMAND_QUEUE_FLAG_DISABLE_GPU_TIMEOUT); + STRINGISE_BITFIELD_BIT(D3D12_COMMAND_QUEUE_FLAG_ALLOW_DYNAMIC_PRIORITY); } END_BITFIELD_STRINGISE(); } @@ -1625,6 +1627,10 @@ rdcstr DoStringise(const D3D12_STATE_SUBOBJECT_TYPE &el) STRINGISE_ENUM(D3D12_STATE_SUBOBJECT_TYPE_VIEW_INSTANCING); STRINGISE_ENUM(D3D12_STATE_SUBOBJECT_TYPE_GENERIC_PROGRAM); STRINGISE_ENUM(D3D12_STATE_SUBOBJECT_TYPE_DEPTH_STENCIL2); + STRINGISE_ENUM(D3D12_STATE_SUBOBJECT_TYPE_GLOBAL_SERIALIZED_ROOT_SIGNATURE); + STRINGISE_ENUM(D3D12_STATE_SUBOBJECT_TYPE_LOCAL_SERIALIZED_ROOT_SIGNATURE); + STRINGISE_ENUM(D3D12_STATE_SUBOBJECT_TYPE_COMPILER_EXISITING_COLLECTION); + STRINGISE_ENUM(D3D12_STATE_SUBOBJECT_TYPE_EXISTING_COLLECTION_BY_KEY); STRINGISE_ENUM(D3D12_STATE_SUBOBJECT_TYPE_MAX_VALID); } END_ENUM_STRINGISE(); @@ -1834,6 +1840,10 @@ rdcstr DoStringise(const D3D12_FEATURE &el) STRINGISE_ENUM(D3D12_FEATURE_PLACED_RESOURCE_SUPPORT_INFO); STRINGISE_ENUM(D3D12_FEATURE_HARDWARE_COPY); STRINGISE_ENUM(D3D12_FEATURE_D3D12_OPTIONS21); + STRINGISE_ENUM(D3D12_FEATURE_D3D12_TIGHT_ALIGNMENT); + STRINGISE_ENUM(D3D12_FEATURE_APPLICATION_SPECIFIC_DRIVER_STATE); + STRINGISE_ENUM(D3D12_FEATURE_BYTECODE_BYPASS_HASH_SUPPORTED); + STRINGISE_ENUM(D3D12_FEATURE_SHADER_CACHE_ABI_SUPPORT); } END_ENUM_STRINGISE(); } diff --git a/renderdoc/driver/dx/official/d3d12.h b/renderdoc/driver/dx/official/d3d12.h index bdd86e1e3..0d12a2b6a 100644 --- a/renderdoc/driver/dx/official/d3d12.h +++ b/renderdoc/driver/dx/official/d3d12.h @@ -136,6 +136,13 @@ typedef interface ID3D12PipelineState ID3D12PipelineState; #endif /* __ID3D12PipelineState_FWD_DEFINED__ */ +#ifndef __ID3D12PipelineState1_FWD_DEFINED__ +#define __ID3D12PipelineState1_FWD_DEFINED__ +typedef interface ID3D12PipelineState1 ID3D12PipelineState1; + +#endif /* __ID3D12PipelineState1_FWD_DEFINED__ */ + + #ifndef __ID3D12DescriptorHeap_FWD_DEFINED__ #define __ID3D12DescriptorHeap_FWD_DEFINED__ typedef interface ID3D12DescriptorHeap ID3D12DescriptorHeap; @@ -192,6 +199,13 @@ typedef interface ID3D12CommandQueue ID3D12CommandQueue; #endif /* __ID3D12CommandQueue_FWD_DEFINED__ */ +#ifndef __ID3D12CommandQueue1_FWD_DEFINED__ +#define __ID3D12CommandQueue1_FWD_DEFINED__ +typedef interface ID3D12CommandQueue1 ID3D12CommandQueue1; + +#endif /* __ID3D12CommandQueue1_FWD_DEFINED__ */ + + #ifndef __ID3D12Device_FWD_DEFINED__ #define __ID3D12Device_FWD_DEFINED__ typedef interface ID3D12Device ID3D12Device; @@ -297,6 +311,13 @@ typedef interface ID3D12StateObjectProperties1 ID3D12StateObjectProperties1; #endif /* __ID3D12StateObjectProperties1_FWD_DEFINED__ */ +#ifndef __ID3D12StateObjectProperties2_FWD_DEFINED__ +#define __ID3D12StateObjectProperties2_FWD_DEFINED__ +typedef interface ID3D12StateObjectProperties2 ID3D12StateObjectProperties2; + +#endif /* __ID3D12StateObjectProperties2_FWD_DEFINED__ */ + + #ifndef __ID3D12WorkGraphProperties_FWD_DEFINED__ #define __ID3D12WorkGraphProperties_FWD_DEFINED__ typedef interface ID3D12WorkGraphProperties ID3D12WorkGraphProperties; @@ -472,6 +493,13 @@ typedef interface ID3D12Device14 ID3D12Device14; #endif /* __ID3D12Device14_FWD_DEFINED__ */ +#ifndef __ID3D12StateObjectDatabase_FWD_DEFINED__ +#define __ID3D12StateObjectDatabase_FWD_DEFINED__ +typedef interface ID3D12StateObjectDatabase ID3D12StateObjectDatabase; + +#endif /* __ID3D12StateObjectDatabase_FWD_DEFINED__ */ + + #ifndef __ID3D12VirtualizationGuestDevice_FWD_DEFINED__ #define __ID3D12VirtualizationGuestDevice_FWD_DEFINED__ typedef interface ID3D12VirtualizationGuestDevice ID3D12VirtualizationGuestDevice; @@ -556,6 +584,13 @@ typedef interface ID3D12DeviceConfiguration1 ID3D12DeviceConfiguration1; #endif /* __ID3D12DeviceConfiguration1_FWD_DEFINED__ */ +#ifndef __ID3D12StateObjectDatabaseFactory_FWD_DEFINED__ +#define __ID3D12StateObjectDatabaseFactory_FWD_DEFINED__ +typedef interface ID3D12StateObjectDatabaseFactory ID3D12StateObjectDatabaseFactory; + +#endif /* __ID3D12StateObjectDatabaseFactory_FWD_DEFINED__ */ + + #ifndef __ID3D12GraphicsCommandList5_FWD_DEFINED__ #define __ID3D12GraphicsCommandList5_FWD_DEFINED__ typedef interface ID3D12GraphicsCommandList5 ID3D12GraphicsCommandList5; @@ -1214,6 +1249,10 @@ extern "C"{ #define D3D12_RAYTRACING_MAX_SHADER_RECORD_STRIDE ( 4096 ) +#define D3D12_RAYTRACING_OPACITY_MICROMAP_ARRAY_BYTE_ALIGNMENT ( 128 ) + +#define D3D12_RAYTRACING_OPACITY_MICROMAP_OC1_MAX_SUBDIVISION_LEVEL ( 12 ) + #define D3D12_RAYTRACING_SHADER_RECORD_BYTE_ALIGNMENT ( 32 ) #define D3D12_RAYTRACING_SHADER_TABLE_BYTE_ALIGNMENT ( 64 ) @@ -1277,7 +1316,7 @@ extern "C"{ #define D3D12_RS_SET_SHADING_RATE_COMBINER_COUNT ( 2 ) -#define D3D12_SDK_VERSION ( 616 ) +#define D3D12_SDK_VERSION ( 618 ) #define D3D12_SHADER_IDENTIFIER_SIZE_IN_BYTES ( 32 ) @@ -1375,9 +1414,9 @@ extern "C"{ #define D3D12_TEXTURE_DATA_PLACEMENT_ALIGNMENT ( 512 ) -#define D3D12_TIGHT_ALIGNMENT_MIN_COMMITTED_RESOURCE_ALIGNEMNT ( 4096 ) +#define D3D12_TIGHT_ALIGNMENT_MIN_COMMITTED_RESOURCE_ALIGNMENT ( 4096 ) -#define D3D12_TIGHT_ALIGNMENT_MIN_PLACED_RESOURCE_ALIGNEMNT ( 8 ) +#define D3D12_TIGHT_ALIGNMENT_MIN_PLACED_RESOURCE_ALIGNMENT ( 8 ) #define D3D12_TILED_RESOURCE_TILE_SIZE_IN_BYTES ( 65536 ) @@ -1468,7 +1507,8 @@ typedef enum D3D12_COMMAND_QUEUE_FLAGS { D3D12_COMMAND_QUEUE_FLAG_NONE = 0, - D3D12_COMMAND_QUEUE_FLAG_DISABLE_GPU_TIMEOUT = 0x1 + D3D12_COMMAND_QUEUE_FLAG_DISABLE_GPU_TIMEOUT = 0x1, + D3D12_COMMAND_QUEUE_FLAG_ALLOW_DYNAMIC_PRIORITY = 0x2 } D3D12_COMMAND_QUEUE_FLAGS; DEFINE_ENUM_FLAG_OPERATORS( D3D12_COMMAND_QUEUE_FLAGS ) @@ -2279,6 +2319,31 @@ typedef struct D3D12_COMPUTE_PIPELINE_STATE_DESC D3D12_PIPELINE_STATE_FLAGS Flags; } D3D12_COMPUTE_PIPELINE_STATE_DESC; +typedef +enum D3D_ROOT_SIGNATURE_VERSION + { + D3D_ROOT_SIGNATURE_VERSION_1 = 0x1, + D3D_ROOT_SIGNATURE_VERSION_1_0 = 0x1, + D3D_ROOT_SIGNATURE_VERSION_1_1 = 0x2, + D3D_ROOT_SIGNATURE_VERSION_1_2 = 0x3 + } D3D_ROOT_SIGNATURE_VERSION; + +typedef struct D3D12_SERIALIZED_ROOT_SIGNATURE_DESC + { + _Field_size_bytes_full_(SerializedBlobSizeInBytes) const void *pSerializedBlob; + SIZE_T SerializedBlobSizeInBytes; + } D3D12_SERIALIZED_ROOT_SIGNATURE_DESC; + +typedef struct D3D12_GLOBAL_SERIALIZED_ROOT_SIGNATURE + { + D3D12_SERIALIZED_ROOT_SIGNATURE_DESC Desc; + } D3D12_GLOBAL_SERIALIZED_ROOT_SIGNATURE; + +typedef struct D3D12_LOCAL_SERIALIZED_ROOT_SIGNATURE + { + D3D12_SERIALIZED_ROOT_SIGNATURE_DESC Desc; + } D3D12_LOCAL_SERIALIZED_ROOT_SIGNATURE; + struct D3D12_RT_FORMAT_ARRAY { DXGI_FORMAT RTFormats[ 8 ]; @@ -2321,7 +2386,8 @@ enum D3D12_PIPELINE_STATE_SUBOBJECT_TYPE D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_DEPTH_STENCIL2 = 26, D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_RASTERIZER1 = 27, D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_RASTERIZER2 = 28, - D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_MAX_VALID = ( D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_RASTERIZER2 + 1 ) + D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_SERIALIZED_ROOT_SIGNATURE = 29, + D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_MAX_VALID = ( D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_SERIALIZED_ROOT_SIGNATURE + 1 ) } D3D12_PIPELINE_STATE_SUBOBJECT_TYPE; typedef @@ -2371,8 +2437,10 @@ enum D3D12_FEATURE D3D12_FEATURE_PLACED_RESOURCE_SUPPORT_INFO = 51, D3D12_FEATURE_HARDWARE_COPY = 52, D3D12_FEATURE_D3D12_OPTIONS21 = 53, + D3D12_FEATURE_D3D12_TIGHT_ALIGNMENT = 54, D3D12_FEATURE_APPLICATION_SPECIFIC_DRIVER_STATE = 56, - D3D12_FEATURE_BYTECODE_BYPASS_HASH_SUPPORTED = 57 + D3D12_FEATURE_BYTECODE_BYPASS_HASH_SUPPORTED = 57, + D3D12_FEATURE_SHADER_CACHE_ABI_SUPPORT = 61 } D3D12_FEATURE; typedef @@ -2462,7 +2530,8 @@ enum D3D12_FORMAT_SUPPORT2 D3D12_FORMAT_SUPPORT2_OUTPUT_MERGER_LOGIC_OP = 0x100, D3D12_FORMAT_SUPPORT2_TILED = 0x200, D3D12_FORMAT_SUPPORT2_MULTIPLANE_OVERLAY = 0x4000, - D3D12_FORMAT_SUPPORT2_SAMPLER_FEEDBACK = 0x8000 + D3D12_FORMAT_SUPPORT2_SAMPLER_FEEDBACK = 0x8000, + D3D12_FORMAT_SUPPORT2_DISPLAYABLE = 0x10000 } D3D12_FORMAT_SUPPORT2; DEFINE_ENUM_FLAG_OPERATORS( D3D12_FORMAT_SUPPORT2 ) @@ -2550,15 +2619,6 @@ typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS2 _Out_ D3D12_PROGRAMMABLE_SAMPLE_POSITIONS_TIER ProgrammableSamplePositionsTier; } D3D12_FEATURE_DATA_D3D12_OPTIONS2; -typedef -enum D3D_ROOT_SIGNATURE_VERSION - { - D3D_ROOT_SIGNATURE_VERSION_1 = 0x1, - D3D_ROOT_SIGNATURE_VERSION_1_0 = 0x1, - D3D_ROOT_SIGNATURE_VERSION_1_1 = 0x2, - D3D_ROOT_SIGNATURE_VERSION_1_2 = 0x3 - } D3D_ROOT_SIGNATURE_VERSION; - typedef struct D3D12_FEATURE_DATA_ROOT_SIGNATURE { _Inout_ D3D_ROOT_SIGNATURE_VERSION HighestVersion; @@ -2934,6 +2994,18 @@ typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS21 _Out_ BOOL ExtendedCommandInfoSupported; } D3D12_FEATURE_DATA_D3D12_OPTIONS21; +typedef +enum D3D12_TIGHT_ALIGNMENT_TIER + { + D3D12_TIGHT_ALIGNMENT_TIER_NOT_SUPPORTED = 0, + D3D12_TIGHT_ALIGNMENT_TIER_1 = ( D3D12_TIGHT_ALIGNMENT_TIER_NOT_SUPPORTED + 1 ) + } D3D12_TIGHT_ALIGNMENT_TIER; + +typedef struct D3D12_FEATURE_DATA_TIGHT_ALIGNMENT + { + _Out_ D3D12_TIGHT_ALIGNMENT_TIER SupportTier; + } D3D12_FEATURE_DATA_TIGHT_ALIGNMENT; + typedef struct D3D12_FEATURE_DATA_PREDICATION { _Out_ BOOL Supported; @@ -3073,7 +3145,8 @@ enum D3D12_RESOURCE_FLAGS D3D12_RESOURCE_FLAG_ALLOW_SIMULTANEOUS_ACCESS = 0x20, D3D12_RESOURCE_FLAG_VIDEO_DECODE_REFERENCE_ONLY = 0x40, D3D12_RESOURCE_FLAG_VIDEO_ENCODE_REFERENCE_ONLY = 0x80, - D3D12_RESOURCE_FLAG_RAYTRACING_ACCELERATION_STRUCTURE = 0x100 + D3D12_RESOURCE_FLAG_RAYTRACING_ACCELERATION_STRUCTURE = 0x100, + D3D12_RESOURCE_FLAG_USE_TIGHT_ALIGNMENT = 0x400 } D3D12_RESOURCE_FLAGS; DEFINE_ENUM_FLAG_OPERATORS( D3D12_RESOURCE_FLAGS ) @@ -5747,6 +5820,149 @@ EXTERN_C const IID IID_ID3D12PipelineState; #endif /* __ID3D12PipelineState_INTERFACE_DEFINED__ */ +#ifndef __ID3D12PipelineState1_INTERFACE_DEFINED__ +#define __ID3D12PipelineState1_INTERFACE_DEFINED__ + +/* interface ID3D12PipelineState1 */ +/* [unique][local][object][uuid] */ + + +EXTERN_C const IID IID_ID3D12PipelineState1; + +#if defined(__cplusplus) && !defined(CINTERFACE) + + MIDL_INTERFACE("5646804c-9638-48f7-9182-b3ee5a6b60fb") + ID3D12PipelineState1 : public ID3D12PipelineState + { + public: + virtual HRESULT STDMETHODCALLTYPE GetRootSignature( + REFIID riid, + _COM_Outptr_ void **ppvRootSignature) = 0; + + }; + + +#else /* C style interface */ + + typedef struct ID3D12PipelineState1Vtbl + { + BEGIN_INTERFACE + + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + ID3D12PipelineState1 * This, + REFIID riid, + _COM_Outptr_ void **ppvObject); + + DECLSPEC_XFGVIRT(IUnknown, AddRef) + ULONG ( STDMETHODCALLTYPE *AddRef )( + ID3D12PipelineState1 * This); + + DECLSPEC_XFGVIRT(IUnknown, Release) + ULONG ( STDMETHODCALLTYPE *Release )( + ID3D12PipelineState1 * This); + + DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData) + HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( + ID3D12PipelineState1 * This, + _In_ REFGUID guid, + _Inout_ UINT *pDataSize, + _Out_writes_bytes_opt_( *pDataSize ) void *pData); + + DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData) + HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( + ID3D12PipelineState1 * This, + _In_ REFGUID guid, + _In_ UINT DataSize, + _In_reads_bytes_opt_( DataSize ) const void *pData); + + DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface) + HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( + ID3D12PipelineState1 * This, + _In_ REFGUID guid, + _In_opt_ const IUnknown *pData); + + DECLSPEC_XFGVIRT(ID3D12Object, SetName) + HRESULT ( STDMETHODCALLTYPE *SetName )( + ID3D12PipelineState1 * This, + _In_z_ LPCWSTR Name); + + DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice) + HRESULT ( STDMETHODCALLTYPE *GetDevice )( + ID3D12PipelineState1 * This, + REFIID riid, + _COM_Outptr_opt_ void **ppvDevice); + + DECLSPEC_XFGVIRT(ID3D12PipelineState, GetCachedBlob) + HRESULT ( STDMETHODCALLTYPE *GetCachedBlob )( + ID3D12PipelineState1 * This, + _COM_Outptr_ ID3DBlob **ppBlob); + + DECLSPEC_XFGVIRT(ID3D12PipelineState1, GetRootSignature) + HRESULT ( STDMETHODCALLTYPE *GetRootSignature )( + ID3D12PipelineState1 * This, + REFIID riid, + _COM_Outptr_ void **ppvRootSignature); + + END_INTERFACE + } ID3D12PipelineState1Vtbl; + + interface ID3D12PipelineState1 + { + CONST_VTBL struct ID3D12PipelineState1Vtbl *lpVtbl; + }; + + + +#ifdef COBJMACROS + + +#define ID3D12PipelineState1_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + +#define ID3D12PipelineState1_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) + +#define ID3D12PipelineState1_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) + + +#define ID3D12PipelineState1_GetPrivateData(This,guid,pDataSize,pData) \ + ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) + +#define ID3D12PipelineState1_SetPrivateData(This,guid,DataSize,pData) \ + ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) + +#define ID3D12PipelineState1_SetPrivateDataInterface(This,guid,pData) \ + ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) + +#define ID3D12PipelineState1_SetName(This,Name) \ + ( (This)->lpVtbl -> SetName(This,Name) ) + + +#define ID3D12PipelineState1_GetDevice(This,riid,ppvDevice) \ + ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) ) + + + +#define ID3D12PipelineState1_GetCachedBlob(This,ppBlob) \ + ( (This)->lpVtbl -> GetCachedBlob(This,ppBlob) ) + + +#define ID3D12PipelineState1_GetRootSignature(This,riid,ppvRootSignature) \ + ( (This)->lpVtbl -> GetRootSignature(This,riid,ppvRootSignature) ) + +#endif /* COBJMACROS */ + + +#endif /* C style interface */ + + + + +#endif /* __ID3D12PipelineState1_INTERFACE_DEFINED__ */ + + #ifndef __ID3D12DescriptorHeap_INTERFACE_DEFINED__ #define __ID3D12DescriptorHeap_INTERFACE_DEFINED__ @@ -7943,7 +8159,7 @@ EXTERN_C const IID IID_ID3D12GraphicsCommandList1; #endif /* __ID3D12GraphicsCommandList1_INTERFACE_DEFINED__ */ -/* interface __MIDL_itf_d3d12_0000_0018 */ +/* interface __MIDL_itf_d3d12_0000_0019 */ /* [local] */ typedef struct D3D12_WRITEBUFFERIMMEDIATE_PARAMETER @@ -7962,8 +8178,8 @@ enum D3D12_WRITEBUFFERIMMEDIATE_MODE -extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0018_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0018_v0_0_s_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0019_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0019_v0_0_s_ifspec; #ifndef __ID3D12GraphicsCommandList2_INTERFACE_DEFINED__ #define __ID3D12GraphicsCommandList2_INTERFACE_DEFINED__ @@ -8984,6 +9200,336 @@ EXTERN_C const IID IID_ID3D12CommandQueue; #endif /* __ID3D12CommandQueue_INTERFACE_DEFINED__ */ +/* interface __MIDL_itf_d3d12_0000_0021 */ +/* [local] */ + +typedef struct D3D12_FEATURE_DATA_HARDWARE_SCHEDULING_QUEUE_GROUPINGS + { + _Out_ UINT ComputeQueuesPer3DQueue; + } D3D12_FEATURE_DATA_HARDWARE_SCHEDULING_QUEUE_GROUPINGS; + +typedef +enum D3D12_COMMAND_QUEUE_PROCESS_PRIORITY + { + D3D12_COMMAND_QUEUE_PROCESS_PRIORITY_NORMAL = 0, + D3D12_COMMAND_QUEUE_PROCESS_PRIORITY_HIGH = 1 + } D3D12_COMMAND_QUEUE_PROCESS_PRIORITY; + +typedef +enum D3D12_COMMAND_QUEUE_GLOBAL_PRIORITY + { + D3D12_COMMAND_QUEUE_GLOBAL_PRIORITY_IDLE = 0, + D3D12_COMMAND_QUEUE_GLOBAL_PRIORITY_DEFAULT = 1, + D3D12_COMMAND_QUEUE_GLOBAL_PRIORITY_NORMAL_0 = 2, + D3D12_COMMAND_QUEUE_GLOBAL_PRIORITY_SOFT_REALTIME_0 = 18, + D3D12_COMMAND_QUEUE_GLOBAL_PRIORITY_SOFT_REALTIME_1 = 19, + D3D12_COMMAND_QUEUE_GLOBAL_PRIORITY_SOFT_REALTIME_2 = 20, + D3D12_COMMAND_QUEUE_GLOBAL_PRIORITY_SOFT_REALTIME_3 = 21, + D3D12_COMMAND_QUEUE_GLOBAL_PRIORITY_SOFT_REALTIME_4 = 22, + D3D12_COMMAND_QUEUE_GLOBAL_PRIORITY_SOFT_REALTIME_5 = 23, + D3D12_COMMAND_QUEUE_GLOBAL_PRIORITY_SOFT_REALTIME_6 = 24, + D3D12_COMMAND_QUEUE_GLOBAL_PRIORITY_SOFT_REALTIME_7 = 25, + D3D12_COMMAND_QUEUE_GLOBAL_PRIORITY_SOFT_REALTIME_8 = 26, + D3D12_COMMAND_QUEUE_GLOBAL_PRIORITY_SOFT_REALTIME_9 = 27, + D3D12_COMMAND_QUEUE_GLOBAL_PRIORITY_SOFT_REALTIME_10 = 28, + D3D12_COMMAND_QUEUE_GLOBAL_PRIORITY_SOFT_REALTIME_11 = 29, + D3D12_COMMAND_QUEUE_GLOBAL_PRIORITY_SOFT_REALTIME_12 = 30, + D3D12_COMMAND_QUEUE_GLOBAL_PRIORITY_SOFT_REALTIME_13 = 31, + D3D12_COMMAND_QUEUE_GLOBAL_PRIORITY_HARD_REALTIME = 32 + } D3D12_COMMAND_QUEUE_GLOBAL_PRIORITY; + + + +extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0021_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0021_v0_0_s_ifspec; + +#ifndef __ID3D12CommandQueue1_INTERFACE_DEFINED__ +#define __ID3D12CommandQueue1_INTERFACE_DEFINED__ + +/* interface ID3D12CommandQueue1 */ +/* [unique][local][object][uuid] */ + + +EXTERN_C const IID IID_ID3D12CommandQueue1; + +#if defined(__cplusplus) && !defined(CINTERFACE) + + MIDL_INTERFACE("3a3c3165-0ee7-4b8e-a0af-6356b4c3bbb9") + ID3D12CommandQueue1 : public ID3D12CommandQueue + { + public: + virtual HRESULT STDMETHODCALLTYPE SetProcessPriority( + D3D12_COMMAND_QUEUE_PROCESS_PRIORITY Priority) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetProcessPriority( + D3D12_COMMAND_QUEUE_PROCESS_PRIORITY *pOutValue) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetGlobalPriority( + D3D12_COMMAND_QUEUE_GLOBAL_PRIORITY Priority) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetGlobalPriority( + D3D12_COMMAND_QUEUE_GLOBAL_PRIORITY *pOutValue) = 0; + + }; + + +#else /* C style interface */ + + typedef struct ID3D12CommandQueue1Vtbl + { + BEGIN_INTERFACE + + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + ID3D12CommandQueue1 * This, + REFIID riid, + _COM_Outptr_ void **ppvObject); + + DECLSPEC_XFGVIRT(IUnknown, AddRef) + ULONG ( STDMETHODCALLTYPE *AddRef )( + ID3D12CommandQueue1 * This); + + DECLSPEC_XFGVIRT(IUnknown, Release) + ULONG ( STDMETHODCALLTYPE *Release )( + ID3D12CommandQueue1 * This); + + DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData) + HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( + ID3D12CommandQueue1 * This, + _In_ REFGUID guid, + _Inout_ UINT *pDataSize, + _Out_writes_bytes_opt_( *pDataSize ) void *pData); + + DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData) + HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( + ID3D12CommandQueue1 * This, + _In_ REFGUID guid, + _In_ UINT DataSize, + _In_reads_bytes_opt_( DataSize ) const void *pData); + + DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface) + HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( + ID3D12CommandQueue1 * This, + _In_ REFGUID guid, + _In_opt_ const IUnknown *pData); + + DECLSPEC_XFGVIRT(ID3D12Object, SetName) + HRESULT ( STDMETHODCALLTYPE *SetName )( + ID3D12CommandQueue1 * This, + _In_z_ LPCWSTR Name); + + DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice) + HRESULT ( STDMETHODCALLTYPE *GetDevice )( + ID3D12CommandQueue1 * This, + REFIID riid, + _COM_Outptr_opt_ void **ppvDevice); + + DECLSPEC_XFGVIRT(ID3D12CommandQueue, UpdateTileMappings) + void ( STDMETHODCALLTYPE *UpdateTileMappings )( + ID3D12CommandQueue1 * This, + _In_ ID3D12Resource *pResource, + UINT NumResourceRegions, + _In_reads_opt_(NumResourceRegions) const D3D12_TILED_RESOURCE_COORDINATE *pResourceRegionStartCoordinates, + _In_reads_opt_(NumResourceRegions) const D3D12_TILE_REGION_SIZE *pResourceRegionSizes, + _In_opt_ ID3D12Heap *pHeap, + UINT NumRanges, + _In_reads_opt_(NumRanges) const D3D12_TILE_RANGE_FLAGS *pRangeFlags, + _In_reads_opt_(NumRanges) const UINT *pHeapRangeStartOffsets, + _In_reads_opt_(NumRanges) const UINT *pRangeTileCounts, + D3D12_TILE_MAPPING_FLAGS Flags); + + DECLSPEC_XFGVIRT(ID3D12CommandQueue, CopyTileMappings) + void ( STDMETHODCALLTYPE *CopyTileMappings )( + ID3D12CommandQueue1 * This, + _In_ ID3D12Resource *pDstResource, + _In_ const D3D12_TILED_RESOURCE_COORDINATE *pDstRegionStartCoordinate, + _In_ ID3D12Resource *pSrcResource, + _In_ const D3D12_TILED_RESOURCE_COORDINATE *pSrcRegionStartCoordinate, + _In_ const D3D12_TILE_REGION_SIZE *pRegionSize, + D3D12_TILE_MAPPING_FLAGS Flags); + + DECLSPEC_XFGVIRT(ID3D12CommandQueue, ExecuteCommandLists) + void ( STDMETHODCALLTYPE *ExecuteCommandLists )( + ID3D12CommandQueue1 * This, + _In_ UINT NumCommandLists, + _In_reads_(NumCommandLists) ID3D12CommandList *const *ppCommandLists); + + DECLSPEC_XFGVIRT(ID3D12CommandQueue, SetMarker) + void ( STDMETHODCALLTYPE *SetMarker )( + ID3D12CommandQueue1 * This, + UINT Metadata, + _In_reads_bytes_opt_(Size) const void *pData, + UINT Size); + + DECLSPEC_XFGVIRT(ID3D12CommandQueue, BeginEvent) + void ( STDMETHODCALLTYPE *BeginEvent )( + ID3D12CommandQueue1 * This, + UINT Metadata, + _In_reads_bytes_opt_(Size) const void *pData, + UINT Size); + + DECLSPEC_XFGVIRT(ID3D12CommandQueue, EndEvent) + void ( STDMETHODCALLTYPE *EndEvent )( + ID3D12CommandQueue1 * This); + + DECLSPEC_XFGVIRT(ID3D12CommandQueue, Signal) + HRESULT ( STDMETHODCALLTYPE *Signal )( + ID3D12CommandQueue1 * This, + ID3D12Fence *pFence, + UINT64 Value); + + DECLSPEC_XFGVIRT(ID3D12CommandQueue, Wait) + HRESULT ( STDMETHODCALLTYPE *Wait )( + ID3D12CommandQueue1 * This, + ID3D12Fence *pFence, + UINT64 Value); + + DECLSPEC_XFGVIRT(ID3D12CommandQueue, GetTimestampFrequency) + HRESULT ( STDMETHODCALLTYPE *GetTimestampFrequency )( + ID3D12CommandQueue1 * This, + _Out_ UINT64 *pFrequency); + + DECLSPEC_XFGVIRT(ID3D12CommandQueue, GetClockCalibration) + HRESULT ( STDMETHODCALLTYPE *GetClockCalibration )( + ID3D12CommandQueue1 * This, + _Out_ UINT64 *pGpuTimestamp, + _Out_ UINT64 *pCpuTimestamp); + + DECLSPEC_XFGVIRT(ID3D12CommandQueue, GetDesc) +#if !defined(_WIN32) + D3D12_COMMAND_QUEUE_DESC ( STDMETHODCALLTYPE *GetDesc )( + ID3D12CommandQueue1 * This); + +#else + D3D12_COMMAND_QUEUE_DESC *( STDMETHODCALLTYPE *GetDesc )( + ID3D12CommandQueue1 * This, + D3D12_COMMAND_QUEUE_DESC * RetVal); + +#endif + + DECLSPEC_XFGVIRT(ID3D12CommandQueue1, SetProcessPriority) + HRESULT ( STDMETHODCALLTYPE *SetProcessPriority )( + ID3D12CommandQueue1 * This, + D3D12_COMMAND_QUEUE_PROCESS_PRIORITY Priority); + + DECLSPEC_XFGVIRT(ID3D12CommandQueue1, GetProcessPriority) + HRESULT ( STDMETHODCALLTYPE *GetProcessPriority )( + ID3D12CommandQueue1 * This, + D3D12_COMMAND_QUEUE_PROCESS_PRIORITY *pOutValue); + + DECLSPEC_XFGVIRT(ID3D12CommandQueue1, SetGlobalPriority) + HRESULT ( STDMETHODCALLTYPE *SetGlobalPriority )( + ID3D12CommandQueue1 * This, + D3D12_COMMAND_QUEUE_GLOBAL_PRIORITY Priority); + + DECLSPEC_XFGVIRT(ID3D12CommandQueue1, GetGlobalPriority) + HRESULT ( STDMETHODCALLTYPE *GetGlobalPriority )( + ID3D12CommandQueue1 * This, + D3D12_COMMAND_QUEUE_GLOBAL_PRIORITY *pOutValue); + + END_INTERFACE + } ID3D12CommandQueue1Vtbl; + + interface ID3D12CommandQueue1 + { + CONST_VTBL struct ID3D12CommandQueue1Vtbl *lpVtbl; + }; + + + +#ifdef COBJMACROS + + +#define ID3D12CommandQueue1_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + +#define ID3D12CommandQueue1_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) + +#define ID3D12CommandQueue1_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) + + +#define ID3D12CommandQueue1_GetPrivateData(This,guid,pDataSize,pData) \ + ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) + +#define ID3D12CommandQueue1_SetPrivateData(This,guid,DataSize,pData) \ + ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) + +#define ID3D12CommandQueue1_SetPrivateDataInterface(This,guid,pData) \ + ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) + +#define ID3D12CommandQueue1_SetName(This,Name) \ + ( (This)->lpVtbl -> SetName(This,Name) ) + + +#define ID3D12CommandQueue1_GetDevice(This,riid,ppvDevice) \ + ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) ) + + + +#define ID3D12CommandQueue1_UpdateTileMappings(This,pResource,NumResourceRegions,pResourceRegionStartCoordinates,pResourceRegionSizes,pHeap,NumRanges,pRangeFlags,pHeapRangeStartOffsets,pRangeTileCounts,Flags) \ + ( (This)->lpVtbl -> UpdateTileMappings(This,pResource,NumResourceRegions,pResourceRegionStartCoordinates,pResourceRegionSizes,pHeap,NumRanges,pRangeFlags,pHeapRangeStartOffsets,pRangeTileCounts,Flags) ) + +#define ID3D12CommandQueue1_CopyTileMappings(This,pDstResource,pDstRegionStartCoordinate,pSrcResource,pSrcRegionStartCoordinate,pRegionSize,Flags) \ + ( (This)->lpVtbl -> CopyTileMappings(This,pDstResource,pDstRegionStartCoordinate,pSrcResource,pSrcRegionStartCoordinate,pRegionSize,Flags) ) + +#define ID3D12CommandQueue1_ExecuteCommandLists(This,NumCommandLists,ppCommandLists) \ + ( (This)->lpVtbl -> ExecuteCommandLists(This,NumCommandLists,ppCommandLists) ) + +#define ID3D12CommandQueue1_SetMarker(This,Metadata,pData,Size) \ + ( (This)->lpVtbl -> SetMarker(This,Metadata,pData,Size) ) + +#define ID3D12CommandQueue1_BeginEvent(This,Metadata,pData,Size) \ + ( (This)->lpVtbl -> BeginEvent(This,Metadata,pData,Size) ) + +#define ID3D12CommandQueue1_EndEvent(This) \ + ( (This)->lpVtbl -> EndEvent(This) ) + +#define ID3D12CommandQueue1_Signal(This,pFence,Value) \ + ( (This)->lpVtbl -> Signal(This,pFence,Value) ) + +#define ID3D12CommandQueue1_Wait(This,pFence,Value) \ + ( (This)->lpVtbl -> Wait(This,pFence,Value) ) + +#define ID3D12CommandQueue1_GetTimestampFrequency(This,pFrequency) \ + ( (This)->lpVtbl -> GetTimestampFrequency(This,pFrequency) ) + +#define ID3D12CommandQueue1_GetClockCalibration(This,pGpuTimestamp,pCpuTimestamp) \ + ( (This)->lpVtbl -> GetClockCalibration(This,pGpuTimestamp,pCpuTimestamp) ) +#if !defined(_WIN32) + +#define ID3D12CommandQueue1_GetDesc(This) \ + ( (This)->lpVtbl -> GetDesc(This) ) +#else +#define ID3D12CommandQueue1_GetDesc(This,RetVal) \ + ( (This)->lpVtbl -> GetDesc(This,RetVal) ) +#endif + + +#define ID3D12CommandQueue1_SetProcessPriority(This,Priority) \ + ( (This)->lpVtbl -> SetProcessPriority(This,Priority) ) + +#define ID3D12CommandQueue1_GetProcessPriority(This,pOutValue) \ + ( (This)->lpVtbl -> GetProcessPriority(This,pOutValue) ) + +#define ID3D12CommandQueue1_SetGlobalPriority(This,Priority) \ + ( (This)->lpVtbl -> SetGlobalPriority(This,Priority) ) + +#define ID3D12CommandQueue1_GetGlobalPriority(This,pOutValue) \ + ( (This)->lpVtbl -> GetGlobalPriority(This,pOutValue) ) + +#endif /* COBJMACROS */ + + +#endif /* C style interface */ + + + + +#endif /* __ID3D12CommandQueue1_INTERFACE_DEFINED__ */ + + #ifndef __ID3D12Device_INTERFACE_DEFINED__ #define __ID3D12Device_INTERFACE_DEFINED__ @@ -10121,7 +10667,7 @@ EXTERN_C const IID IID_ID3D12PipelineLibrary1; #endif /* __ID3D12PipelineLibrary1_INTERFACE_DEFINED__ */ -/* interface __MIDL_itf_d3d12_0000_0023 */ +/* interface __MIDL_itf_d3d12_0000_0025 */ /* [local] */ typedef @@ -10145,8 +10691,8 @@ enum D3D12_RESIDENCY_PRIORITY -extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0023_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0023_v0_0_s_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0025_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0025_v0_0_s_ifspec; #ifndef __ID3D12Device1_INTERFACE_DEFINED__ #define __ID3D12Device1_INTERFACE_DEFINED__ @@ -11332,7 +11878,7 @@ EXTERN_C const IID IID_ID3D12Device2; #endif /* __ID3D12Device2_INTERFACE_DEFINED__ */ -/* interface __MIDL_itf_d3d12_0000_0025 */ +/* interface __MIDL_itf_d3d12_0000_0027 */ /* [local] */ typedef @@ -11345,8 +11891,8 @@ enum D3D12_RESIDENCY_FLAGS DEFINE_ENUM_FLAG_OPERATORS( D3D12_RESIDENCY_FLAGS ) -extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0025_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0025_v0_0_s_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0027_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0027_v0_0_s_ifspec; #ifndef __ID3D12Device3_INTERFACE_DEFINED__ #define __ID3D12Device3_INTERFACE_DEFINED__ @@ -11984,7 +12530,7 @@ EXTERN_C const IID IID_ID3D12Device3; #endif /* __ID3D12Device3_INTERFACE_DEFINED__ */ -/* interface __MIDL_itf_d3d12_0000_0026 */ +/* interface __MIDL_itf_d3d12_0000_0028 */ /* [local] */ typedef @@ -12017,8 +12563,8 @@ enum D3D12_PROTECTED_SESSION_STATUS -extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0026_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0026_v0_0_s_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0028_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0028_v0_0_s_ifspec; #ifndef __ID3D12ProtectedSession_INTERFACE_DEFINED__ #define __ID3D12ProtectedSession_INTERFACE_DEFINED__ @@ -12162,7 +12708,7 @@ EXTERN_C const IID IID_ID3D12ProtectedSession; #endif /* __ID3D12ProtectedSession_INTERFACE_DEFINED__ */ -/* interface __MIDL_itf_d3d12_0000_0027 */ +/* interface __MIDL_itf_d3d12_0000_0029 */ /* [local] */ typedef @@ -12194,8 +12740,8 @@ typedef struct D3D12_PROTECTED_RESOURCE_SESSION_DESC -extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0027_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0027_v0_0_s_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0029_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0029_v0_0_s_ifspec; #ifndef __ID3D12ProtectedResourceSession_INTERFACE_DEFINED__ #define __ID3D12ProtectedResourceSession_INTERFACE_DEFINED__ @@ -13121,7 +13667,7 @@ EXTERN_C const IID IID_ID3D12Device4; #endif /* __ID3D12Device4_INTERFACE_DEFINED__ */ -/* interface __MIDL_itf_d3d12_0000_0029 */ +/* interface __MIDL_itf_d3d12_0000_0031 */ /* [local] */ typedef @@ -13134,8 +13680,8 @@ enum D3D12_LIFETIME_STATE -extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0029_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0029_v0_0_s_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0031_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0031_v0_0_s_ifspec; #ifndef __ID3D12LifetimeOwner_INTERFACE_DEFINED__ #define __ID3D12LifetimeOwner_INTERFACE_DEFINED__ @@ -13489,7 +14035,7 @@ EXTERN_C const IID IID_ID3D12LifetimeTracker; #endif /* __ID3D12LifetimeTracker_INTERFACE_DEFINED__ */ -/* interface __MIDL_itf_d3d12_0000_0032 */ +/* interface __MIDL_itf_d3d12_0000_0034 */ /* [local] */ typedef @@ -13561,8 +14107,8 @@ typedef struct D3D12_META_COMMAND_DESC -extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0032_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0032_v0_0_s_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0034_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0034_v0_0_s_ifspec; #ifndef __ID3D12StateObject_INTERFACE_DEFINED__ #define __ID3D12StateObject_INTERFACE_DEFINED__ @@ -13799,7 +14345,7 @@ EXTERN_C const IID IID_ID3D12StateObjectProperties; #endif /* __ID3D12StateObjectProperties_INTERFACE_DEFINED__ */ -/* interface __MIDL_itf_d3d12_0000_0034 */ +/* interface __MIDL_itf_d3d12_0000_0036 */ /* [local] */ typedef struct D3D12_PROGRAM_IDENTIFIER @@ -13809,8 +14355,8 @@ typedef struct D3D12_PROGRAM_IDENTIFIER -extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0034_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0034_v0_0_s_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0036_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0036_v0_0_s_ifspec; #ifndef __ID3D12StateObjectProperties1_INTERFACE_DEFINED__ #define __ID3D12StateObjectProperties1_INTERFACE_DEFINED__ @@ -13947,7 +14493,164 @@ EXTERN_C const IID IID_ID3D12StateObjectProperties1; #endif /* __ID3D12StateObjectProperties1_INTERFACE_DEFINED__ */ -/* interface __MIDL_itf_d3d12_0000_0035 */ +#ifndef __ID3D12StateObjectProperties2_INTERFACE_DEFINED__ +#define __ID3D12StateObjectProperties2_INTERFACE_DEFINED__ + +/* interface ID3D12StateObjectProperties2 */ +/* [unique][local][object][uuid] */ + + +EXTERN_C const IID IID_ID3D12StateObjectProperties2; + +#if defined(__cplusplus) && !defined(CINTERFACE) + + MIDL_INTERFACE("d5e82917-f0f1-44cf-ae5e-ce222dd0b884") + ID3D12StateObjectProperties2 : public ID3D12StateObjectProperties1 + { + public: + virtual HRESULT STDMETHODCALLTYPE GetGlobalRootSignatureForProgram( + LPCWSTR pProgramName, + REFIID riid, + _COM_Outptr_ void **ppvRootSignature) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetGlobalRootSignatureForShader( + LPCWSTR pExportName, + REFIID riid, + _COM_Outptr_ void **ppvRootSignature) = 0; + + }; + + +#else /* C style interface */ + + typedef struct ID3D12StateObjectProperties2Vtbl + { + BEGIN_INTERFACE + + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + ID3D12StateObjectProperties2 * This, + REFIID riid, + _COM_Outptr_ void **ppvObject); + + DECLSPEC_XFGVIRT(IUnknown, AddRef) + ULONG ( STDMETHODCALLTYPE *AddRef )( + ID3D12StateObjectProperties2 * This); + + DECLSPEC_XFGVIRT(IUnknown, Release) + ULONG ( STDMETHODCALLTYPE *Release )( + ID3D12StateObjectProperties2 * This); + + DECLSPEC_XFGVIRT(ID3D12StateObjectProperties, GetShaderIdentifier) + void *( STDMETHODCALLTYPE *GetShaderIdentifier )( + ID3D12StateObjectProperties2 * This, + _In_ LPCWSTR pExportName); + + DECLSPEC_XFGVIRT(ID3D12StateObjectProperties, GetShaderStackSize) + UINT64 ( STDMETHODCALLTYPE *GetShaderStackSize )( + ID3D12StateObjectProperties2 * This, + _In_ LPCWSTR pExportName); + + DECLSPEC_XFGVIRT(ID3D12StateObjectProperties, GetPipelineStackSize) + UINT64 ( STDMETHODCALLTYPE *GetPipelineStackSize )( + ID3D12StateObjectProperties2 * This); + + DECLSPEC_XFGVIRT(ID3D12StateObjectProperties, SetPipelineStackSize) + void ( STDMETHODCALLTYPE *SetPipelineStackSize )( + ID3D12StateObjectProperties2 * This, + UINT64 PipelineStackSizeInBytes); + + DECLSPEC_XFGVIRT(ID3D12StateObjectProperties1, GetProgramIdentifier) +#if !defined(_WIN32) + D3D12_PROGRAM_IDENTIFIER ( STDMETHODCALLTYPE *GetProgramIdentifier )( + ID3D12StateObjectProperties2 * This, + LPCWSTR pProgramName); + +#else + D3D12_PROGRAM_IDENTIFIER *( STDMETHODCALLTYPE *GetProgramIdentifier )( + ID3D12StateObjectProperties2 * This, + D3D12_PROGRAM_IDENTIFIER * RetVal, + LPCWSTR pProgramName); + +#endif + + DECLSPEC_XFGVIRT(ID3D12StateObjectProperties2, GetGlobalRootSignatureForProgram) + HRESULT ( STDMETHODCALLTYPE *GetGlobalRootSignatureForProgram )( + ID3D12StateObjectProperties2 * This, + LPCWSTR pProgramName, + REFIID riid, + _COM_Outptr_ void **ppvRootSignature); + + DECLSPEC_XFGVIRT(ID3D12StateObjectProperties2, GetGlobalRootSignatureForShader) + HRESULT ( STDMETHODCALLTYPE *GetGlobalRootSignatureForShader )( + ID3D12StateObjectProperties2 * This, + LPCWSTR pExportName, + REFIID riid, + _COM_Outptr_ void **ppvRootSignature); + + END_INTERFACE + } ID3D12StateObjectProperties2Vtbl; + + interface ID3D12StateObjectProperties2 + { + CONST_VTBL struct ID3D12StateObjectProperties2Vtbl *lpVtbl; + }; + + + +#ifdef COBJMACROS + + +#define ID3D12StateObjectProperties2_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + +#define ID3D12StateObjectProperties2_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) + +#define ID3D12StateObjectProperties2_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) + + +#define ID3D12StateObjectProperties2_GetShaderIdentifier(This,pExportName) \ + ( (This)->lpVtbl -> GetShaderIdentifier(This,pExportName) ) + +#define ID3D12StateObjectProperties2_GetShaderStackSize(This,pExportName) \ + ( (This)->lpVtbl -> GetShaderStackSize(This,pExportName) ) + +#define ID3D12StateObjectProperties2_GetPipelineStackSize(This) \ + ( (This)->lpVtbl -> GetPipelineStackSize(This) ) + +#define ID3D12StateObjectProperties2_SetPipelineStackSize(This,PipelineStackSizeInBytes) \ + ( (This)->lpVtbl -> SetPipelineStackSize(This,PipelineStackSizeInBytes) ) + +#if !defined(_WIN32) + +#define ID3D12StateObjectProperties2_GetProgramIdentifier(This,pProgramName) \ + ( (This)->lpVtbl -> GetProgramIdentifier(This,pProgramName) ) +#else +#define ID3D12StateObjectProperties2_GetProgramIdentifier(This,RetVal,pProgramName) \ + ( (This)->lpVtbl -> GetProgramIdentifier(This,RetVal,pProgramName) ) +#endif + + +#define ID3D12StateObjectProperties2_GetGlobalRootSignatureForProgram(This,pProgramName,riid,ppvRootSignature) \ + ( (This)->lpVtbl -> GetGlobalRootSignatureForProgram(This,pProgramName,riid,ppvRootSignature) ) + +#define ID3D12StateObjectProperties2_GetGlobalRootSignatureForShader(This,pExportName,riid,ppvRootSignature) \ + ( (This)->lpVtbl -> GetGlobalRootSignatureForShader(This,pExportName,riid,ppvRootSignature) ) + +#endif /* COBJMACROS */ + + +#endif /* C style interface */ + + + + +#endif /* __ID3D12StateObjectProperties2_INTERFACE_DEFINED__ */ + + +/* interface __MIDL_itf_d3d12_0000_0038 */ /* [local] */ typedef struct D3D12_NODE_ID @@ -13965,8 +14668,8 @@ typedef struct D3D12_WORK_GRAPH_MEMORY_REQUIREMENTS -extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0035_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0035_v0_0_s_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0038_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0038_v0_0_s_ifspec; #ifndef __ID3D12WorkGraphProperties_INTERFACE_DEFINED__ #define __ID3D12WorkGraphProperties_INTERFACE_DEFINED__ @@ -14241,7 +14944,7 @@ EXTERN_C const IID IID_ID3D12WorkGraphProperties; #endif /* __ID3D12WorkGraphProperties_INTERFACE_DEFINED__ */ -/* interface __MIDL_itf_d3d12_0000_0036 */ +/* interface __MIDL_itf_d3d12_0000_0039 */ /* [local] */ typedef @@ -14276,7 +14979,11 @@ enum D3D12_STATE_SUBOBJECT_TYPE D3D12_STATE_SUBOBJECT_TYPE_VIEW_INSTANCING = 28, D3D12_STATE_SUBOBJECT_TYPE_GENERIC_PROGRAM = 29, D3D12_STATE_SUBOBJECT_TYPE_DEPTH_STENCIL2 = 30, - D3D12_STATE_SUBOBJECT_TYPE_MAX_VALID = ( D3D12_STATE_SUBOBJECT_TYPE_DEPTH_STENCIL2 + 1 ) + D3D12_STATE_SUBOBJECT_TYPE_GLOBAL_SERIALIZED_ROOT_SIGNATURE = 31, + D3D12_STATE_SUBOBJECT_TYPE_LOCAL_SERIALIZED_ROOT_SIGNATURE = 32, + D3D12_STATE_SUBOBJECT_TYPE_COMPILER_EXISITING_COLLECTION = 33, + D3D12_STATE_SUBOBJECT_TYPE_EXISTING_COLLECTION_BY_KEY = 36, + D3D12_STATE_SUBOBJECT_TYPE_MAX_VALID = ( D3D12_STATE_SUBOBJECT_TYPE_EXISTING_COLLECTION_BY_KEY + 1 ) } D3D12_STATE_SUBOBJECT_TYPE; typedef struct D3D12_STATE_SUBOBJECT @@ -14949,8 +15656,8 @@ enum D3D12_HIT_KIND -extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0036_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0036_v0_0_s_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0039_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0039_v0_0_s_ifspec; #ifndef __ID3D12Device5_INTERFACE_DEFINED__ #define __ID3D12Device5_INTERFACE_DEFINED__ @@ -15780,62 +16487,125 @@ EXTERN_C const IID IID_ID3D12Device5; #endif /* __ID3D12Device5_INTERFACE_DEFINED__ */ -/* interface __MIDL_itf_d3d12_0000_0037 */ +/* interface __MIDL_itf_d3d12_0000_0040 */ /* [local] */ +typedef +enum D3D12_MARKER_API + { + D3D12_MARKER_API_SETMARKER = 0, + D3D12_MARKER_API_BEGINEVENT = 1, + D3D12_MARKER_API_ENDEVENT = 2, + D3D12_MARKER_API_DRAWINSTANCED = 3, + D3D12_MARKER_API_DRAWINDEXEDINSTANCED = 4, + D3D12_MARKER_API_EXECUTEINDIRECT = 5, + D3D12_MARKER_API_DISPATCH = 6, + D3D12_MARKER_API_COPYBUFFERREGION = 7, + D3D12_MARKER_API_COPYTEXTUREREGION = 8, + D3D12_MARKER_API_COPYRESOURCE = 9, + D3D12_MARKER_API_COPYTILES = 10, + D3D12_MARKER_API_RESOLVESUBRESOURCE = 11, + D3D12_MARKER_API_CLEARRENDERTARGETVIEW = 12, + D3D12_MARKER_API_CLEARUNORDEREDACCESSVIEW = 13, + D3D12_MARKER_API_CLEARDEPTHSTENCILVIEW = 14, + D3D12_MARKER_API_RESOURCEBARRIER = 15, + D3D12_MARKER_API_EXECUTEBUNDLE = 16, + D3D12_MARKER_API_PRESENT = 17, + D3D12_MARKER_API_RESOLVEQUERYDATA = 18, + D3D12_MARKER_API_BEGINSUBMISSION = 19, + D3D12_MARKER_API_ENDSUBMISSION = 20, + D3D12_MARKER_API_DECODEFRAME = 21, + D3D12_MARKER_API_PROCESSFRAMES = 22, + D3D12_MARKER_API_ATOMICCOPYBUFFERUINT = 23, + D3D12_MARKER_API_ATOMICCOPYBUFFERUINT64 = 24, + D3D12_MARKER_API_RESOLVESUBRESOURCEREGION = 25, + D3D12_MARKER_API_WRITEBUFFERIMMEDIATE = 26, + D3D12_MARKER_API_DECODEFRAME1 = 27, + D3D12_MARKER_API_SETPROTECTEDRESOURCESESSION = 28, + D3D12_MARKER_API_DECODEFRAME2 = 29, + D3D12_MARKER_API_PROCESSFRAMES1 = 30, + D3D12_MARKER_API_BUILDRAYTRACINGACCELERATIONSTRUCTURE = 31, + D3D12_MARKER_API_EMITRAYTRACINGACCELERATIONSTRUCTUREPOSTBUILDINFO = 32, + D3D12_MARKER_API_COPYRAYTRACINGACCELERATIONSTRUCTURE = 33, + D3D12_MARKER_API_DISPATCHRAYS = 34, + D3D12_MARKER_API_INITIALIZEMETACOMMAND = 35, + D3D12_MARKER_API_EXECUTEMETACOMMAND = 36, + D3D12_MARKER_API_ESTIMATEMOTION = 37, + D3D12_MARKER_API_RESOLVEMOTIONVECTORHEAP = 38, + D3D12_MARKER_API_SETPIPELINESTATE1 = 39, + D3D12_MARKER_API_INITIALIZEEXTENSIONCOMMAND = 40, + D3D12_MARKER_API_EXECUTEEXTENSIONCOMMAND = 41, + D3D12_MARKER_API_DISPATCHMESH = 42, + D3D12_MARKER_API_ENCODEFRAME = 43, + D3D12_MARKER_API_RESOLVEENCODEROUTPUTMETADATA = 44, + D3D12_MARKER_API_BARRIER = 45, + D3D12_MARKER_API_BEGIN_COMMAND_LIST = 46, + D3D12_MARKER_API_DISPATCHGRAPH = 47, + D3D12_MARKER_API_SETPROGRAM = 48, + D3D12_MARKER_API_ENCODEFRAME1 = 49, + D3D12_MARKER_API_RESOLVEENCODEROUTPUTMETADATA1 = 50, + D3D12_MARKER_API_RESOLVEINPUTPARAMLAYOUT = 51, + D3D12_MARKER_API_PROCESSFRAMES2 = 52, + D3D12_MARKER_API_SET_WORK_GRAPH_MAXIMUM_GPU_INPUT_RECORDS = 53 + } D3D12_MARKER_API; + typedef enum D3D12_AUTO_BREADCRUMB_OP { - D3D12_AUTO_BREADCRUMB_OP_SETMARKER = 0, - D3D12_AUTO_BREADCRUMB_OP_BEGINEVENT = 1, - D3D12_AUTO_BREADCRUMB_OP_ENDEVENT = 2, - D3D12_AUTO_BREADCRUMB_OP_DRAWINSTANCED = 3, - D3D12_AUTO_BREADCRUMB_OP_DRAWINDEXEDINSTANCED = 4, - D3D12_AUTO_BREADCRUMB_OP_EXECUTEINDIRECT = 5, - D3D12_AUTO_BREADCRUMB_OP_DISPATCH = 6, - D3D12_AUTO_BREADCRUMB_OP_COPYBUFFERREGION = 7, - D3D12_AUTO_BREADCRUMB_OP_COPYTEXTUREREGION = 8, - D3D12_AUTO_BREADCRUMB_OP_COPYRESOURCE = 9, - D3D12_AUTO_BREADCRUMB_OP_COPYTILES = 10, - D3D12_AUTO_BREADCRUMB_OP_RESOLVESUBRESOURCE = 11, - D3D12_AUTO_BREADCRUMB_OP_CLEARRENDERTARGETVIEW = 12, - D3D12_AUTO_BREADCRUMB_OP_CLEARUNORDEREDACCESSVIEW = 13, - D3D12_AUTO_BREADCRUMB_OP_CLEARDEPTHSTENCILVIEW = 14, - D3D12_AUTO_BREADCRUMB_OP_RESOURCEBARRIER = 15, - D3D12_AUTO_BREADCRUMB_OP_EXECUTEBUNDLE = 16, - D3D12_AUTO_BREADCRUMB_OP_PRESENT = 17, - D3D12_AUTO_BREADCRUMB_OP_RESOLVEQUERYDATA = 18, - D3D12_AUTO_BREADCRUMB_OP_BEGINSUBMISSION = 19, - D3D12_AUTO_BREADCRUMB_OP_ENDSUBMISSION = 20, - D3D12_AUTO_BREADCRUMB_OP_DECODEFRAME = 21, - D3D12_AUTO_BREADCRUMB_OP_PROCESSFRAMES = 22, - D3D12_AUTO_BREADCRUMB_OP_ATOMICCOPYBUFFERUINT = 23, - D3D12_AUTO_BREADCRUMB_OP_ATOMICCOPYBUFFERUINT64 = 24, - D3D12_AUTO_BREADCRUMB_OP_RESOLVESUBRESOURCEREGION = 25, - D3D12_AUTO_BREADCRUMB_OP_WRITEBUFFERIMMEDIATE = 26, - D3D12_AUTO_BREADCRUMB_OP_DECODEFRAME1 = 27, - D3D12_AUTO_BREADCRUMB_OP_SETPROTECTEDRESOURCESESSION = 28, - D3D12_AUTO_BREADCRUMB_OP_DECODEFRAME2 = 29, - D3D12_AUTO_BREADCRUMB_OP_PROCESSFRAMES1 = 30, - D3D12_AUTO_BREADCRUMB_OP_BUILDRAYTRACINGACCELERATIONSTRUCTURE = 31, - D3D12_AUTO_BREADCRUMB_OP_EMITRAYTRACINGACCELERATIONSTRUCTUREPOSTBUILDINFO = 32, - D3D12_AUTO_BREADCRUMB_OP_COPYRAYTRACINGACCELERATIONSTRUCTURE = 33, - D3D12_AUTO_BREADCRUMB_OP_DISPATCHRAYS = 34, - D3D12_AUTO_BREADCRUMB_OP_INITIALIZEMETACOMMAND = 35, - D3D12_AUTO_BREADCRUMB_OP_EXECUTEMETACOMMAND = 36, - D3D12_AUTO_BREADCRUMB_OP_ESTIMATEMOTION = 37, - D3D12_AUTO_BREADCRUMB_OP_RESOLVEMOTIONVECTORHEAP = 38, - D3D12_AUTO_BREADCRUMB_OP_SETPIPELINESTATE1 = 39, - D3D12_AUTO_BREADCRUMB_OP_INITIALIZEEXTENSIONCOMMAND = 40, - D3D12_AUTO_BREADCRUMB_OP_EXECUTEEXTENSIONCOMMAND = 41, - D3D12_AUTO_BREADCRUMB_OP_DISPATCHMESH = 42, - D3D12_AUTO_BREADCRUMB_OP_ENCODEFRAME = 43, - D3D12_AUTO_BREADCRUMB_OP_RESOLVEENCODEROUTPUTMETADATA = 44, - D3D12_AUTO_BREADCRUMB_OP_BARRIER = 45, - D3D12_AUTO_BREADCRUMB_OP_BEGIN_COMMAND_LIST = 46, - D3D12_AUTO_BREADCRUMB_OP_DISPATCHGRAPH = 47, - D3D12_AUTO_BREADCRUMB_OP_SETPROGRAM = 48, - D3D12_AUTO_BREADCRUMB_OP_PROCESSFRAMES2 = 52 + D3D12_AUTO_BREADCRUMB_OP_SETMARKER = D3D12_MARKER_API_SETMARKER, + D3D12_AUTO_BREADCRUMB_OP_BEGINEVENT = D3D12_MARKER_API_BEGINEVENT, + D3D12_AUTO_BREADCRUMB_OP_ENDEVENT = D3D12_MARKER_API_ENDEVENT, + D3D12_AUTO_BREADCRUMB_OP_DRAWINSTANCED = D3D12_MARKER_API_DRAWINSTANCED, + D3D12_AUTO_BREADCRUMB_OP_DRAWINDEXEDINSTANCED = D3D12_MARKER_API_DRAWINDEXEDINSTANCED, + D3D12_AUTO_BREADCRUMB_OP_EXECUTEINDIRECT = D3D12_MARKER_API_EXECUTEINDIRECT, + D3D12_AUTO_BREADCRUMB_OP_DISPATCH = D3D12_MARKER_API_DISPATCH, + D3D12_AUTO_BREADCRUMB_OP_COPYBUFFERREGION = D3D12_MARKER_API_COPYBUFFERREGION, + D3D12_AUTO_BREADCRUMB_OP_COPYTEXTUREREGION = D3D12_MARKER_API_COPYTEXTUREREGION, + D3D12_AUTO_BREADCRUMB_OP_COPYRESOURCE = D3D12_MARKER_API_COPYRESOURCE, + D3D12_AUTO_BREADCRUMB_OP_COPYTILES = D3D12_MARKER_API_COPYTILES, + D3D12_AUTO_BREADCRUMB_OP_RESOLVESUBRESOURCE = D3D12_MARKER_API_RESOLVESUBRESOURCE, + D3D12_AUTO_BREADCRUMB_OP_CLEARRENDERTARGETVIEW = D3D12_MARKER_API_CLEARRENDERTARGETVIEW, + D3D12_AUTO_BREADCRUMB_OP_CLEARUNORDEREDACCESSVIEW = D3D12_MARKER_API_CLEARUNORDEREDACCESSVIEW, + D3D12_AUTO_BREADCRUMB_OP_CLEARDEPTHSTENCILVIEW = D3D12_MARKER_API_CLEARDEPTHSTENCILVIEW, + D3D12_AUTO_BREADCRUMB_OP_RESOURCEBARRIER = D3D12_MARKER_API_RESOURCEBARRIER, + D3D12_AUTO_BREADCRUMB_OP_EXECUTEBUNDLE = D3D12_MARKER_API_EXECUTEBUNDLE, + D3D12_AUTO_BREADCRUMB_OP_PRESENT = D3D12_MARKER_API_PRESENT, + D3D12_AUTO_BREADCRUMB_OP_RESOLVEQUERYDATA = D3D12_MARKER_API_RESOLVEQUERYDATA, + D3D12_AUTO_BREADCRUMB_OP_BEGINSUBMISSION = D3D12_MARKER_API_BEGINSUBMISSION, + D3D12_AUTO_BREADCRUMB_OP_ENDSUBMISSION = D3D12_MARKER_API_ENDSUBMISSION, + D3D12_AUTO_BREADCRUMB_OP_DECODEFRAME = D3D12_MARKER_API_DECODEFRAME, + D3D12_AUTO_BREADCRUMB_OP_PROCESSFRAMES = D3D12_MARKER_API_PROCESSFRAMES, + D3D12_AUTO_BREADCRUMB_OP_ATOMICCOPYBUFFERUINT = D3D12_MARKER_API_ATOMICCOPYBUFFERUINT, + D3D12_AUTO_BREADCRUMB_OP_ATOMICCOPYBUFFERUINT64 = D3D12_MARKER_API_ATOMICCOPYBUFFERUINT64, + D3D12_AUTO_BREADCRUMB_OP_RESOLVESUBRESOURCEREGION = D3D12_MARKER_API_RESOLVESUBRESOURCEREGION, + D3D12_AUTO_BREADCRUMB_OP_WRITEBUFFERIMMEDIATE = D3D12_MARKER_API_WRITEBUFFERIMMEDIATE, + D3D12_AUTO_BREADCRUMB_OP_DECODEFRAME1 = D3D12_MARKER_API_DECODEFRAME1, + D3D12_AUTO_BREADCRUMB_OP_SETPROTECTEDRESOURCESESSION = D3D12_MARKER_API_SETPROTECTEDRESOURCESESSION, + D3D12_AUTO_BREADCRUMB_OP_DECODEFRAME2 = D3D12_MARKER_API_DECODEFRAME2, + D3D12_AUTO_BREADCRUMB_OP_PROCESSFRAMES1 = D3D12_MARKER_API_PROCESSFRAMES1, + D3D12_AUTO_BREADCRUMB_OP_BUILDRAYTRACINGACCELERATIONSTRUCTURE = D3D12_MARKER_API_BUILDRAYTRACINGACCELERATIONSTRUCTURE, + D3D12_AUTO_BREADCRUMB_OP_EMITRAYTRACINGACCELERATIONSTRUCTUREPOSTBUILDINFO = D3D12_MARKER_API_EMITRAYTRACINGACCELERATIONSTRUCTUREPOSTBUILDINFO, + D3D12_AUTO_BREADCRUMB_OP_COPYRAYTRACINGACCELERATIONSTRUCTURE = D3D12_MARKER_API_COPYRAYTRACINGACCELERATIONSTRUCTURE, + D3D12_AUTO_BREADCRUMB_OP_DISPATCHRAYS = D3D12_MARKER_API_DISPATCHRAYS, + D3D12_AUTO_BREADCRUMB_OP_INITIALIZEMETACOMMAND = D3D12_MARKER_API_INITIALIZEMETACOMMAND, + D3D12_AUTO_BREADCRUMB_OP_EXECUTEMETACOMMAND = D3D12_MARKER_API_EXECUTEMETACOMMAND, + D3D12_AUTO_BREADCRUMB_OP_ESTIMATEMOTION = D3D12_MARKER_API_ESTIMATEMOTION, + D3D12_AUTO_BREADCRUMB_OP_RESOLVEMOTIONVECTORHEAP = D3D12_MARKER_API_RESOLVEMOTIONVECTORHEAP, + D3D12_AUTO_BREADCRUMB_OP_SETPIPELINESTATE1 = D3D12_MARKER_API_SETPIPELINESTATE1, + D3D12_AUTO_BREADCRUMB_OP_INITIALIZEEXTENSIONCOMMAND = D3D12_MARKER_API_INITIALIZEEXTENSIONCOMMAND, + D3D12_AUTO_BREADCRUMB_OP_EXECUTEEXTENSIONCOMMAND = D3D12_MARKER_API_EXECUTEEXTENSIONCOMMAND, + D3D12_AUTO_BREADCRUMB_OP_DISPATCHMESH = D3D12_MARKER_API_DISPATCHMESH, + D3D12_AUTO_BREADCRUMB_OP_ENCODEFRAME = D3D12_MARKER_API_ENCODEFRAME, + D3D12_AUTO_BREADCRUMB_OP_RESOLVEENCODEROUTPUTMETADATA = D3D12_MARKER_API_RESOLVEENCODEROUTPUTMETADATA, + D3D12_AUTO_BREADCRUMB_OP_BARRIER = D3D12_MARKER_API_BARRIER, + D3D12_AUTO_BREADCRUMB_OP_BEGIN_COMMAND_LIST = D3D12_MARKER_API_BEGIN_COMMAND_LIST, + D3D12_AUTO_BREADCRUMB_OP_DISPATCHGRAPH = D3D12_MARKER_API_DISPATCHGRAPH, + D3D12_AUTO_BREADCRUMB_OP_SETPROGRAM = D3D12_MARKER_API_SETPROGRAM, + D3D12_AUTO_BREADCRUMB_OP_ENCODEFRAME1 = D3D12_MARKER_API_ENCODEFRAME1, + D3D12_AUTO_BREADCRUMB_OP_RESOLVEENCODEROUTPUTMETADATA1 = D3D12_MARKER_API_RESOLVEENCODEROUTPUTMETADATA1, + D3D12_AUTO_BREADCRUMB_OP_RESOLVEINPUTPARAMLAYOUT = D3D12_MARKER_API_RESOLVEINPUTPARAMLAYOUT, + D3D12_AUTO_BREADCRUMB_OP_PROCESSFRAMES2 = D3D12_MARKER_API_PROCESSFRAMES2, + D3D12_AUTO_BREADCRUMB_OP_SET_WORK_GRAPH_MAXIMUM_GPU_INPUT_RECORDS = D3D12_MARKER_API_SET_WORK_GRAPH_MAXIMUM_GPU_INPUT_RECORDS } D3D12_AUTO_BREADCRUMB_OP; typedef struct D3D12_AUTO_BREADCRUMB_NODE @@ -16041,8 +16811,8 @@ typedef struct D3D12_VERSIONED_DEVICE_REMOVED_EXTENDED_DATA -extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0037_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0037_v0_0_s_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0040_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0040_v0_0_s_ifspec; #ifndef __ID3D12DeviceRemovedExtendedDataSettings_INTERFACE_DEFINED__ #define __ID3D12DeviceRemovedExtendedDataSettings_INTERFACE_DEFINED__ @@ -16705,7 +17475,7 @@ EXTERN_C const IID IID_ID3D12DeviceRemovedExtendedData2; #endif /* __ID3D12DeviceRemovedExtendedData2_INTERFACE_DEFINED__ */ -/* interface __MIDL_itf_d3d12_0000_0043 */ +/* interface __MIDL_itf_d3d12_0000_0046 */ /* [local] */ typedef @@ -16728,8 +17498,8 @@ enum D3D12_MEASUREMENTS_ACTION -extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0043_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0043_v0_0_s_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0046_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0046_v0_0_s_ifspec; #ifndef __ID3D12Device6_INTERFACE_DEFINED__ #define __ID3D12Device6_INTERFACE_DEFINED__ @@ -17538,7 +18308,7 @@ EXTERN_C const IID IID_ID3D12Device6; #endif /* __ID3D12Device6_INTERFACE_DEFINED__ */ -/* interface __MIDL_itf_d3d12_0000_0044 */ +/* interface __MIDL_itf_d3d12_0000_0047 */ /* [local] */ DEFINE_GUID(D3D12_PROTECTED_RESOURCES_SESSION_HARDWARE_PROTECTED, 0x62B0084E, 0xC70E, 0x4DAA, 0xA1, 0x09, 0x30, 0xFF, 0x8D, 0x5A, 0x04, 0x82); @@ -17564,8 +18334,8 @@ typedef struct D3D12_PROTECTED_RESOURCE_SESSION_DESC1 -extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0044_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0044_v0_0_s_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0047_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0047_v0_0_s_ifspec; #ifndef __ID3D12ProtectedResourceSession1_INTERFACE_DEFINED__ #define __ID3D12ProtectedResourceSession1_INTERFACE_DEFINED__ @@ -20874,7 +21644,7 @@ EXTERN_C const IID IID_ID3D12GraphicsCommandList3; #endif /* __ID3D12GraphicsCommandList3_INTERFACE_DEFINED__ */ -/* interface __MIDL_itf_d3d12_0000_0051 */ +/* interface __MIDL_itf_d3d12_0000_0054 */ /* [local] */ typedef @@ -20988,8 +21758,8 @@ enum D3D12_RENDER_PASS_FLAGS DEFINE_ENUM_FLAG_OPERATORS( D3D12_RENDER_PASS_FLAGS ) -extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0051_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0051_v0_0_s_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0054_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0054_v0_0_s_ifspec; #ifndef __ID3D12MetaCommand_INTERFACE_DEFINED__ #define __ID3D12MetaCommand_INTERFACE_DEFINED__ @@ -21125,7 +21895,7 @@ EXTERN_C const IID IID_ID3D12MetaCommand; #endif /* __ID3D12MetaCommand_INTERFACE_DEFINED__ */ -/* interface __MIDL_itf_d3d12_0000_0052 */ +/* interface __MIDL_itf_d3d12_0000_0055 */ /* [local] */ typedef struct D3D12_DISPATCH_RAYS_DESC @@ -21235,8 +22005,8 @@ typedef struct D3D12_DISPATCH_GRAPH_DESC -extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0052_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0052_v0_0_s_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0055_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0055_v0_0_s_ifspec; #ifndef __ID3D12GraphicsCommandList4_INTERFACE_DEFINED__ #define __ID3D12GraphicsCommandList4_INTERFACE_DEFINED__ @@ -22085,7 +22855,7 @@ EXTERN_C const IID IID_ID3D12GraphicsCommandList4; #endif /* __ID3D12GraphicsCommandList4_INTERFACE_DEFINED__ */ -/* interface __MIDL_itf_d3d12_0000_0053 */ +/* interface __MIDL_itf_d3d12_0000_0056 */ /* [local] */ typedef @@ -22121,36 +22891,36 @@ enum D3D12_BARRIER_LAYOUT D3D12_BARRIER_LAYOUT_UNDEFINED = 0xffffffff, D3D12_BARRIER_LAYOUT_COMMON = 0, D3D12_BARRIER_LAYOUT_PRESENT = 0, - D3D12_BARRIER_LAYOUT_GENERIC_READ = ( D3D12_BARRIER_LAYOUT_PRESENT + 1 ) , - D3D12_BARRIER_LAYOUT_RENDER_TARGET = ( D3D12_BARRIER_LAYOUT_GENERIC_READ + 1 ) , - D3D12_BARRIER_LAYOUT_UNORDERED_ACCESS = ( D3D12_BARRIER_LAYOUT_RENDER_TARGET + 1 ) , - D3D12_BARRIER_LAYOUT_DEPTH_STENCIL_WRITE = ( D3D12_BARRIER_LAYOUT_UNORDERED_ACCESS + 1 ) , - D3D12_BARRIER_LAYOUT_DEPTH_STENCIL_READ = ( D3D12_BARRIER_LAYOUT_DEPTH_STENCIL_WRITE + 1 ) , - D3D12_BARRIER_LAYOUT_SHADER_RESOURCE = ( D3D12_BARRIER_LAYOUT_DEPTH_STENCIL_READ + 1 ) , - D3D12_BARRIER_LAYOUT_COPY_SOURCE = ( D3D12_BARRIER_LAYOUT_SHADER_RESOURCE + 1 ) , - D3D12_BARRIER_LAYOUT_COPY_DEST = ( D3D12_BARRIER_LAYOUT_COPY_SOURCE + 1 ) , - D3D12_BARRIER_LAYOUT_RESOLVE_SOURCE = ( D3D12_BARRIER_LAYOUT_COPY_DEST + 1 ) , - D3D12_BARRIER_LAYOUT_RESOLVE_DEST = ( D3D12_BARRIER_LAYOUT_RESOLVE_SOURCE + 1 ) , - D3D12_BARRIER_LAYOUT_SHADING_RATE_SOURCE = ( D3D12_BARRIER_LAYOUT_RESOLVE_DEST + 1 ) , - D3D12_BARRIER_LAYOUT_VIDEO_DECODE_READ = ( D3D12_BARRIER_LAYOUT_SHADING_RATE_SOURCE + 1 ) , - D3D12_BARRIER_LAYOUT_VIDEO_DECODE_WRITE = ( D3D12_BARRIER_LAYOUT_VIDEO_DECODE_READ + 1 ) , - D3D12_BARRIER_LAYOUT_VIDEO_PROCESS_READ = ( D3D12_BARRIER_LAYOUT_VIDEO_DECODE_WRITE + 1 ) , - D3D12_BARRIER_LAYOUT_VIDEO_PROCESS_WRITE = ( D3D12_BARRIER_LAYOUT_VIDEO_PROCESS_READ + 1 ) , - D3D12_BARRIER_LAYOUT_VIDEO_ENCODE_READ = ( D3D12_BARRIER_LAYOUT_VIDEO_PROCESS_WRITE + 1 ) , - D3D12_BARRIER_LAYOUT_VIDEO_ENCODE_WRITE = ( D3D12_BARRIER_LAYOUT_VIDEO_ENCODE_READ + 1 ) , - D3D12_BARRIER_LAYOUT_DIRECT_QUEUE_COMMON = ( D3D12_BARRIER_LAYOUT_VIDEO_ENCODE_WRITE + 1 ) , - D3D12_BARRIER_LAYOUT_DIRECT_QUEUE_GENERIC_READ = ( D3D12_BARRIER_LAYOUT_DIRECT_QUEUE_COMMON + 1 ) , - D3D12_BARRIER_LAYOUT_DIRECT_QUEUE_UNORDERED_ACCESS = ( D3D12_BARRIER_LAYOUT_DIRECT_QUEUE_GENERIC_READ + 1 ) , - D3D12_BARRIER_LAYOUT_DIRECT_QUEUE_SHADER_RESOURCE = ( D3D12_BARRIER_LAYOUT_DIRECT_QUEUE_UNORDERED_ACCESS + 1 ) , - D3D12_BARRIER_LAYOUT_DIRECT_QUEUE_COPY_SOURCE = ( D3D12_BARRIER_LAYOUT_DIRECT_QUEUE_SHADER_RESOURCE + 1 ) , - D3D12_BARRIER_LAYOUT_DIRECT_QUEUE_COPY_DEST = ( D3D12_BARRIER_LAYOUT_DIRECT_QUEUE_COPY_SOURCE + 1 ) , - D3D12_BARRIER_LAYOUT_COMPUTE_QUEUE_COMMON = ( D3D12_BARRIER_LAYOUT_DIRECT_QUEUE_COPY_DEST + 1 ) , - D3D12_BARRIER_LAYOUT_COMPUTE_QUEUE_GENERIC_READ = ( D3D12_BARRIER_LAYOUT_COMPUTE_QUEUE_COMMON + 1 ) , - D3D12_BARRIER_LAYOUT_COMPUTE_QUEUE_UNORDERED_ACCESS = ( D3D12_BARRIER_LAYOUT_COMPUTE_QUEUE_GENERIC_READ + 1 ) , - D3D12_BARRIER_LAYOUT_COMPUTE_QUEUE_SHADER_RESOURCE = ( D3D12_BARRIER_LAYOUT_COMPUTE_QUEUE_UNORDERED_ACCESS + 1 ) , - D3D12_BARRIER_LAYOUT_COMPUTE_QUEUE_COPY_SOURCE = ( D3D12_BARRIER_LAYOUT_COMPUTE_QUEUE_SHADER_RESOURCE + 1 ) , - D3D12_BARRIER_LAYOUT_COMPUTE_QUEUE_COPY_DEST = ( D3D12_BARRIER_LAYOUT_COMPUTE_QUEUE_COPY_SOURCE + 1 ) , - D3D12_BARRIER_LAYOUT_VIDEO_QUEUE_COMMON = ( D3D12_BARRIER_LAYOUT_COMPUTE_QUEUE_COPY_DEST + 1 ) + D3D12_BARRIER_LAYOUT_GENERIC_READ = 1, + D3D12_BARRIER_LAYOUT_RENDER_TARGET = 2, + D3D12_BARRIER_LAYOUT_UNORDERED_ACCESS = 3, + D3D12_BARRIER_LAYOUT_DEPTH_STENCIL_WRITE = 4, + D3D12_BARRIER_LAYOUT_DEPTH_STENCIL_READ = 5, + D3D12_BARRIER_LAYOUT_SHADER_RESOURCE = 6, + D3D12_BARRIER_LAYOUT_COPY_SOURCE = 7, + D3D12_BARRIER_LAYOUT_COPY_DEST = 8, + D3D12_BARRIER_LAYOUT_RESOLVE_SOURCE = 9, + D3D12_BARRIER_LAYOUT_RESOLVE_DEST = 10, + D3D12_BARRIER_LAYOUT_SHADING_RATE_SOURCE = 11, + D3D12_BARRIER_LAYOUT_VIDEO_DECODE_READ = 12, + D3D12_BARRIER_LAYOUT_VIDEO_DECODE_WRITE = 13, + D3D12_BARRIER_LAYOUT_VIDEO_PROCESS_READ = 14, + D3D12_BARRIER_LAYOUT_VIDEO_PROCESS_WRITE = 15, + D3D12_BARRIER_LAYOUT_VIDEO_ENCODE_READ = 16, + D3D12_BARRIER_LAYOUT_VIDEO_ENCODE_WRITE = 17, + D3D12_BARRIER_LAYOUT_DIRECT_QUEUE_COMMON = 18, + D3D12_BARRIER_LAYOUT_DIRECT_QUEUE_GENERIC_READ = 19, + D3D12_BARRIER_LAYOUT_DIRECT_QUEUE_UNORDERED_ACCESS = 20, + D3D12_BARRIER_LAYOUT_DIRECT_QUEUE_SHADER_RESOURCE = 21, + D3D12_BARRIER_LAYOUT_DIRECT_QUEUE_COPY_SOURCE = 22, + D3D12_BARRIER_LAYOUT_DIRECT_QUEUE_COPY_DEST = 23, + D3D12_BARRIER_LAYOUT_COMPUTE_QUEUE_COMMON = 24, + D3D12_BARRIER_LAYOUT_COMPUTE_QUEUE_GENERIC_READ = 25, + D3D12_BARRIER_LAYOUT_COMPUTE_QUEUE_UNORDERED_ACCESS = 26, + D3D12_BARRIER_LAYOUT_COMPUTE_QUEUE_SHADER_RESOURCE = 27, + D3D12_BARRIER_LAYOUT_COMPUTE_QUEUE_COPY_SOURCE = 28, + D3D12_BARRIER_LAYOUT_COMPUTE_QUEUE_COPY_DEST = 29, + D3D12_BARRIER_LAYOUT_DIRECT_QUEUE_GENERIC_READ_COMPUTE_QUEUE_ACCESSIBLE = 31 } D3D12_BARRIER_LAYOUT; typedef @@ -22287,8 +23057,8 @@ typedef struct D3D12_BARRIER_GROUP -extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0053_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0053_v0_0_s_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0056_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0056_v0_0_s_ifspec; #ifndef __ID3D12ShaderCacheSession_INTERFACE_DEFINED__ #define __ID3D12ShaderCacheSession_INTERFACE_DEFINED__ @@ -22488,7 +23258,7 @@ EXTERN_C const IID IID_ID3D12ShaderCacheSession; #endif /* __ID3D12ShaderCacheSession_INTERFACE_DEFINED__ */ -/* interface __MIDL_itf_d3d12_0000_0054 */ +/* interface __MIDL_itf_d3d12_0000_0057 */ /* [local] */ typedef @@ -22512,8 +23282,8 @@ enum D3D12_SHADER_CACHE_CONTROL_FLAGS DEFINE_ENUM_FLAG_OPERATORS( D3D12_SHADER_CACHE_CONTROL_FLAGS ) -extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0054_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0054_v0_0_s_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0057_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0057_v0_0_s_ifspec; #ifndef __ID3D12Device9_INTERFACE_DEFINED__ #define __ID3D12Device9_INTERFACE_DEFINED__ @@ -28644,6 +29414,249 @@ EXTERN_C const IID IID_ID3D12Device14; #endif /* __ID3D12Device14_INTERFACE_DEFINED__ */ +/* interface __MIDL_itf_d3d12_0000_0063 */ +/* [local] */ + +typedef union D3D12_VERSION_NUMBER + { + UINT64 Version; + UINT16 VersionParts[ 4 ]; + } D3D12_VERSION_NUMBER; + +typedef struct D3D12_FEATURE_DATA_SHADERCACHE_ABI_SUPPORT + { + WCHAR szAdapterFamily[ 128 ]; + UINT64 MinimumABISupportVersion; + UINT64 MaximumABISupportVersion; + D3D12_VERSION_NUMBER CompilerVersion; + D3D12_VERSION_NUMBER ApplicationProfileVersion; + } D3D12_FEATURE_DATA_SHADERCACHE_ABI_SUPPORT; + +typedef void ( __stdcall *D3D12PipelineStateFunc )( + _In_reads_bytes_(KeySize) const void *pKey, + UINT KeySize, + UINT Version, + const D3D12_PIPELINE_STATE_STREAM_DESC *pDesc, + _Inout_opt_ void *pContext); + +typedef void ( __stdcall *D3D12StateObjectFunc )( + _In_reads_bytes_(KeySize) const void *pKey, + UINT KeySize, + UINT Version, + const D3D12_STATE_OBJECT_DESC *pDesc, + _In_reads_bytes_(ParentKeySize) const void *pParentKey, + UINT ParentKeySize, + _Inout_opt_ void *pContext); + +typedef struct D3D12_APPLICATION_DESC + { + LPCWSTR pExeFilename; + LPCWSTR pName; + D3D12_VERSION_NUMBER Version; + LPCWSTR pEngineName; + D3D12_VERSION_NUMBER EngineVersion; + } D3D12_APPLICATION_DESC; + +typedef void ( __stdcall *D3D12ApplicationDescFunc )( + _In_ const D3D12_APPLICATION_DESC *pApplicationDesc, + _Inout_opt_ void *pContext); + +typedef struct D3D12_EXISTING_COLLECTION_BY_KEY_DESC + { + _Field_size_bytes_full_(KeySize) const void *pKey; + UINT KeySize; + UINT NumExports; + _In_reads_(NumExports) const D3D12_EXPORT_DESC *pExports; + } D3D12_EXISTING_COLLECTION_BY_KEY_DESC; + + + +extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0063_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0063_v0_0_s_ifspec; + +#ifndef __ID3D12StateObjectDatabase_INTERFACE_DEFINED__ +#define __ID3D12StateObjectDatabase_INTERFACE_DEFINED__ + +/* interface ID3D12StateObjectDatabase */ +/* [unique][local][object][uuid] */ + + +EXTERN_C const IID IID_ID3D12StateObjectDatabase; + +#if defined(__cplusplus) && !defined(CINTERFACE) + + MIDL_INTERFACE("c56060b7-b5fc-4135-98e0-a1e9997eace0") + ID3D12StateObjectDatabase : public IUnknown + { + public: + virtual HRESULT STDMETHODCALLTYPE SetApplicationDesc( + _In_ const D3D12_APPLICATION_DESC *pApplicationDesc) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetApplicationDesc( + _In_ D3D12ApplicationDescFunc CallbackFunc, + _Inout_opt_ void *pContext) = 0; + + virtual HRESULT STDMETHODCALLTYPE StorePipelineStateDesc( + _In_reads_(KeySize) const void *pKey, + UINT KeySize, + UINT Version, + _In_ const D3D12_PIPELINE_STATE_STREAM_DESC *pDesc) = 0; + + virtual HRESULT STDMETHODCALLTYPE FindPipelineStateDesc( + _In_reads_(KeySize) const void *pKey, + UINT KeySize, + _In_ D3D12PipelineStateFunc CallbackFunc, + _Inout_opt_ void *pContext) = 0; + + virtual HRESULT STDMETHODCALLTYPE StoreStateObjectDesc( + _In_reads_(KeySize) const void *pKey, + UINT KeySize, + UINT Version, + _In_ const D3D12_STATE_OBJECT_DESC *pDesc, + _In_reads_opt_(StateObjectToGrowFromKeySize) const void *pStateObjectToGrowFromKey, + UINT StateObjectToGrowFromKeySize) = 0; + + virtual HRESULT STDMETHODCALLTYPE FindStateObjectDesc( + _In_reads_(keySize) const void *pKey, + UINT KeySize, + D3D12StateObjectFunc CallbackFunc, + _Inout_opt_ void *pContext) = 0; + + virtual HRESULT STDMETHODCALLTYPE FindObjectVersion( + _In_reads_(keySize) const void *pKey, + UINT KeySize, + _Out_ UINT *pVersion) = 0; + + }; + + +#else /* C style interface */ + + typedef struct ID3D12StateObjectDatabaseVtbl + { + BEGIN_INTERFACE + + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + ID3D12StateObjectDatabase * This, + REFIID riid, + _COM_Outptr_ void **ppvObject); + + DECLSPEC_XFGVIRT(IUnknown, AddRef) + ULONG ( STDMETHODCALLTYPE *AddRef )( + ID3D12StateObjectDatabase * This); + + DECLSPEC_XFGVIRT(IUnknown, Release) + ULONG ( STDMETHODCALLTYPE *Release )( + ID3D12StateObjectDatabase * This); + + DECLSPEC_XFGVIRT(ID3D12StateObjectDatabase, SetApplicationDesc) + HRESULT ( STDMETHODCALLTYPE *SetApplicationDesc )( + ID3D12StateObjectDatabase * This, + _In_ const D3D12_APPLICATION_DESC *pApplicationDesc); + + DECLSPEC_XFGVIRT(ID3D12StateObjectDatabase, GetApplicationDesc) + HRESULT ( STDMETHODCALLTYPE *GetApplicationDesc )( + ID3D12StateObjectDatabase * This, + _In_ D3D12ApplicationDescFunc CallbackFunc, + _Inout_opt_ void *pContext); + + DECLSPEC_XFGVIRT(ID3D12StateObjectDatabase, StorePipelineStateDesc) + HRESULT ( STDMETHODCALLTYPE *StorePipelineStateDesc )( + ID3D12StateObjectDatabase * This, + _In_reads_(KeySize) const void *pKey, + UINT KeySize, + UINT Version, + _In_ const D3D12_PIPELINE_STATE_STREAM_DESC *pDesc); + + DECLSPEC_XFGVIRT(ID3D12StateObjectDatabase, FindPipelineStateDesc) + HRESULT ( STDMETHODCALLTYPE *FindPipelineStateDesc )( + ID3D12StateObjectDatabase * This, + _In_reads_(KeySize) const void *pKey, + UINT KeySize, + _In_ D3D12PipelineStateFunc CallbackFunc, + _Inout_opt_ void *pContext); + + DECLSPEC_XFGVIRT(ID3D12StateObjectDatabase, StoreStateObjectDesc) + HRESULT ( STDMETHODCALLTYPE *StoreStateObjectDesc )( + ID3D12StateObjectDatabase * This, + _In_reads_(KeySize) const void *pKey, + UINT KeySize, + UINT Version, + _In_ const D3D12_STATE_OBJECT_DESC *pDesc, + _In_reads_opt_(StateObjectToGrowFromKeySize) const void *pStateObjectToGrowFromKey, + UINT StateObjectToGrowFromKeySize); + + DECLSPEC_XFGVIRT(ID3D12StateObjectDatabase, FindStateObjectDesc) + HRESULT ( STDMETHODCALLTYPE *FindStateObjectDesc )( + ID3D12StateObjectDatabase * This, + _In_reads_(keySize) const void *pKey, + UINT KeySize, + D3D12StateObjectFunc CallbackFunc, + _Inout_opt_ void *pContext); + + DECLSPEC_XFGVIRT(ID3D12StateObjectDatabase, FindObjectVersion) + HRESULT ( STDMETHODCALLTYPE *FindObjectVersion )( + ID3D12StateObjectDatabase * This, + _In_reads_(keySize) const void *pKey, + UINT KeySize, + _Out_ UINT *pVersion); + + END_INTERFACE + } ID3D12StateObjectDatabaseVtbl; + + interface ID3D12StateObjectDatabase + { + CONST_VTBL struct ID3D12StateObjectDatabaseVtbl *lpVtbl; + }; + + + +#ifdef COBJMACROS + + +#define ID3D12StateObjectDatabase_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + +#define ID3D12StateObjectDatabase_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) + +#define ID3D12StateObjectDatabase_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) + + +#define ID3D12StateObjectDatabase_SetApplicationDesc(This,pApplicationDesc) \ + ( (This)->lpVtbl -> SetApplicationDesc(This,pApplicationDesc) ) + +#define ID3D12StateObjectDatabase_GetApplicationDesc(This,CallbackFunc,pContext) \ + ( (This)->lpVtbl -> GetApplicationDesc(This,CallbackFunc,pContext) ) + +#define ID3D12StateObjectDatabase_StorePipelineStateDesc(This,pKey,KeySize,Version,pDesc) \ + ( (This)->lpVtbl -> StorePipelineStateDesc(This,pKey,KeySize,Version,pDesc) ) + +#define ID3D12StateObjectDatabase_FindPipelineStateDesc(This,pKey,KeySize,CallbackFunc,pContext) \ + ( (This)->lpVtbl -> FindPipelineStateDesc(This,pKey,KeySize,CallbackFunc,pContext) ) + +#define ID3D12StateObjectDatabase_StoreStateObjectDesc(This,pKey,KeySize,Version,pDesc,pStateObjectToGrowFromKey,StateObjectToGrowFromKeySize) \ + ( (This)->lpVtbl -> StoreStateObjectDesc(This,pKey,KeySize,Version,pDesc,pStateObjectToGrowFromKey,StateObjectToGrowFromKeySize) ) + +#define ID3D12StateObjectDatabase_FindStateObjectDesc(This,pKey,KeySize,CallbackFunc,pContext) \ + ( (This)->lpVtbl -> FindStateObjectDesc(This,pKey,KeySize,CallbackFunc,pContext) ) + +#define ID3D12StateObjectDatabase_FindObjectVersion(This,pKey,KeySize,pVersion) \ + ( (This)->lpVtbl -> FindObjectVersion(This,pKey,KeySize,pVersion) ) + +#endif /* COBJMACROS */ + + +#endif /* C style interface */ + + + + +#endif /* __ID3D12StateObjectDatabase_INTERFACE_DEFINED__ */ + + #ifndef __ID3D12VirtualizationGuestDevice_INTERFACE_DEFINED__ #define __ID3D12VirtualizationGuestDevice_INTERFACE_DEFINED__ @@ -29230,7 +30243,7 @@ EXTERN_C const IID IID_ID3D12DeviceTools; #endif /* __ID3D12DeviceTools_INTERFACE_DEFINED__ */ -/* interface __MIDL_itf_d3d12_0000_0066 */ +/* interface __MIDL_itf_d3d12_0000_0070 */ /* [local] */ typedef @@ -29244,8 +30257,8 @@ enum D3D12_APPLICATION_SPECIFIC_DRIVER_BLOB_STATUS -extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0066_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0066_v0_0_s_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0070_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0070_v0_0_s_ifspec; #ifndef __ID3D12DeviceTools1_INTERFACE_DEFINED__ #define __ID3D12DeviceTools1_INTERFACE_DEFINED__ @@ -29348,7 +30361,7 @@ EXTERN_C const IID IID_ID3D12DeviceTools1; #endif /* __ID3D12DeviceTools1_INTERFACE_DEFINED__ */ -/* interface __MIDL_itf_d3d12_0000_0067 */ +/* interface __MIDL_itf_d3d12_0000_0071 */ /* [local] */ typedef struct D3D12_SUBRESOURCE_DATA @@ -29492,6 +30505,7 @@ DEFINE_GUID(CLSID_D3D12DeviceRemovedExtendedData, 0x4a75bbc4, 0x9ff4, 0x4ad8, DEFINE_GUID(CLSID_D3D12SDKConfiguration, 0x7cda6aca, 0xa03e, 0x49c8, 0x94, 0x58, 0x03, 0x34, 0xd2, 0x0e, 0x07, 0xce); DEFINE_GUID(CLSID_D3D12DeviceFactory, 0x114863bf, 0xc386, 0x4aee, 0xb3, 0x9d, 0x8f, 0x0b, 0xbb, 0x06, 0x29, 0x55); DEFINE_GUID(CLSID_D3D12DSRDeviceFactory, 0xbb6dd27e, 0x94a9, 0x41a6, 0x9f, 0x1b, 0x13, 0x37, 0x72, 0x17, 0x24, 0x28); +DEFINE_GUID(CLSID_D3D12StateObjectFactory, 0x54e1c9f3, 0x1303, 0x4112, 0xbf, 0x8e, 0x7b, 0xf2, 0xbb, 0x60, 0x6a, 0x73); typedef HRESULT (WINAPI* PFN_D3D12_GET_INTERFACE)( _In_ REFCLSID, _In_ REFIID, _COM_Outptr_opt_ void** ); @@ -29499,8 +30513,8 @@ HRESULT WINAPI D3D12GetInterface( _In_ REFCLSID rclsid, _In_ REFIID riid, _COM_O -extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0067_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0067_v0_0_s_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0071_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0071_v0_0_s_ifspec; #ifndef __ID3D12SDKConfiguration_INTERFACE_DEFINED__ #define __ID3D12SDKConfiguration_INTERFACE_DEFINED__ @@ -29695,7 +30709,7 @@ EXTERN_C const IID IID_ID3D12SDKConfiguration1; #endif /* __ID3D12SDKConfiguration1_INTERFACE_DEFINED__ */ -/* interface __MIDL_itf_d3d12_0000_0069 */ +/* interface __MIDL_itf_d3d12_0000_0073 */ /* [local] */ typedef @@ -29710,8 +30724,8 @@ enum D3D12_DEVICE_FACTORY_FLAGS DEFINE_ENUM_FLAG_OPERATORS( D3D12_DEVICE_FACTORY_FLAGS ) -extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0069_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0069_v0_0_s_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0073_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0073_v0_0_s_ifspec; #ifndef __ID3D12DeviceFactory_INTERFACE_DEFINED__ #define __ID3D12DeviceFactory_INTERFACE_DEFINED__ @@ -29872,7 +30886,7 @@ EXTERN_C const IID IID_ID3D12DeviceFactory; #endif /* __ID3D12DeviceFactory_INTERFACE_DEFINED__ */ -/* interface __MIDL_itf_d3d12_0000_0070 */ +/* interface __MIDL_itf_d3d12_0000_0074 */ /* [local] */ typedef @@ -29903,8 +30917,8 @@ typedef struct D3D12_DEVICE_CONFIGURATION_DESC -extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0070_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0070_v0_0_s_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0074_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0074_v0_0_s_ifspec; #ifndef __ID3D12DeviceConfiguration_INTERFACE_DEFINED__ #define __ID3D12DeviceConfiguration_INTERFACE_DEFINED__ @@ -30192,7 +31206,112 @@ EXTERN_C const IID IID_ID3D12DeviceConfiguration1; #endif /* __ID3D12DeviceConfiguration1_INTERFACE_DEFINED__ */ -/* interface __MIDL_itf_d3d12_0000_0072 */ +/* interface __MIDL_itf_d3d12_0000_0076 */ +/* [local] */ + +typedef +enum D3D12_STATE_OBJECT_DATABASE_FLAGS + { + D3D12_STATE_OBJECT_DATABASE_FLAG_NONE = 0, + D3D12_STATE_OBJECT_DATABASE_FLAG_READ_ONLY = 0x1 + } D3D12_STATE_OBJECT_DATABASE_FLAGS; + +DEFINE_ENUM_FLAG_OPERATORS( D3D12_STATE_OBJECT_DATABASE_FLAGS ) + + +extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0076_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0076_v0_0_s_ifspec; + +#ifndef __ID3D12StateObjectDatabaseFactory_INTERFACE_DEFINED__ +#define __ID3D12StateObjectDatabaseFactory_INTERFACE_DEFINED__ + +/* interface ID3D12StateObjectDatabaseFactory */ +/* [unique][local][object][uuid] */ + + +EXTERN_C const IID IID_ID3D12StateObjectDatabaseFactory; + +#if defined(__cplusplus) && !defined(CINTERFACE) + + MIDL_INTERFACE("f5b066f0-648a-4611-bd41-27fd0948b9eb") + ID3D12StateObjectDatabaseFactory : public IUnknown + { + public: + virtual HRESULT STDMETHODCALLTYPE CreateStateObjectDatabaseFromFile( + LPCWSTR pDatabaseFile, + D3D12_STATE_OBJECT_DATABASE_FLAGS flags, + REFIID riid, + _COM_Outptr_ void **ppvStateObjectDatabase) = 0; + + }; + + +#else /* C style interface */ + + typedef struct ID3D12StateObjectDatabaseFactoryVtbl + { + BEGIN_INTERFACE + + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + ID3D12StateObjectDatabaseFactory * This, + REFIID riid, + _COM_Outptr_ void **ppvObject); + + DECLSPEC_XFGVIRT(IUnknown, AddRef) + ULONG ( STDMETHODCALLTYPE *AddRef )( + ID3D12StateObjectDatabaseFactory * This); + + DECLSPEC_XFGVIRT(IUnknown, Release) + ULONG ( STDMETHODCALLTYPE *Release )( + ID3D12StateObjectDatabaseFactory * This); + + DECLSPEC_XFGVIRT(ID3D12StateObjectDatabaseFactory, CreateStateObjectDatabaseFromFile) + HRESULT ( STDMETHODCALLTYPE *CreateStateObjectDatabaseFromFile )( + ID3D12StateObjectDatabaseFactory * This, + LPCWSTR pDatabaseFile, + D3D12_STATE_OBJECT_DATABASE_FLAGS flags, + REFIID riid, + _COM_Outptr_ void **ppvStateObjectDatabase); + + END_INTERFACE + } ID3D12StateObjectDatabaseFactoryVtbl; + + interface ID3D12StateObjectDatabaseFactory + { + CONST_VTBL struct ID3D12StateObjectDatabaseFactoryVtbl *lpVtbl; + }; + + + +#ifdef COBJMACROS + + +#define ID3D12StateObjectDatabaseFactory_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + +#define ID3D12StateObjectDatabaseFactory_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) + +#define ID3D12StateObjectDatabaseFactory_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) + + +#define ID3D12StateObjectDatabaseFactory_CreateStateObjectDatabaseFromFile(This,pDatabaseFile,flags,riid,ppvStateObjectDatabase) \ + ( (This)->lpVtbl -> CreateStateObjectDatabaseFromFile(This,pDatabaseFile,flags,riid,ppvStateObjectDatabase) ) + +#endif /* COBJMACROS */ + + +#endif /* C style interface */ + + + + +#endif /* __ID3D12StateObjectDatabaseFactory_INTERFACE_DEFINED__ */ + + +/* interface __MIDL_itf_d3d12_0000_0077 */ /* [local] */ typedef @@ -30232,8 +31351,8 @@ enum D3D12_SHADING_RATE_COMBINER -extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0072_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0072_v0_0_s_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0077_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0077_v0_0_s_ifspec; #ifndef __ID3D12GraphicsCommandList5_INTERFACE_DEFINED__ #define __ID3D12GraphicsCommandList5_INTERFACE_DEFINED__ @@ -31068,7 +32187,7 @@ EXTERN_C const IID IID_ID3D12GraphicsCommandList5; #endif /* __ID3D12GraphicsCommandList5_INTERFACE_DEFINED__ */ -/* interface __MIDL_itf_d3d12_0000_0073 */ +/* interface __MIDL_itf_d3d12_0000_0078 */ /* [local] */ typedef struct D3D12_DISPATCH_MESH_ARGUMENTS @@ -31080,8 +32199,8 @@ typedef struct D3D12_DISPATCH_MESH_ARGUMENTS -extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0073_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0073_v0_0_s_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0078_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0078_v0_0_s_ifspec; #ifndef __ID3D12GraphicsCommandList6_INTERFACE_DEFINED__ #define __ID3D12GraphicsCommandList6_INTERFACE_DEFINED__ @@ -35659,7 +36778,7 @@ EXTERN_C const IID IID_ID3D12GBVDiagnostics; #endif /* __ID3D12GBVDiagnostics_INTERFACE_DEFINED__ */ -/* interface __MIDL_itf_d3d12_0000_0080 */ +/* interface __MIDL_itf_d3d12_0000_0085 */ /* [local] */ #endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_GAMES) */ @@ -35676,6 +36795,7 @@ DEFINE_GUID(IID_ID3D12CommandAllocator,0x6102dee4,0xaf59,0x4b09,0xb9,0x99,0xb4,0 DEFINE_GUID(IID_ID3D12Fence,0x0a753dcf,0xc4d8,0x4b91,0xad,0xf6,0xbe,0x5a,0x60,0xd9,0x5a,0x76); DEFINE_GUID(IID_ID3D12Fence1,0x433685fe,0xe22b,0x4ca0,0xa8,0xdb,0xb5,0xb4,0xf4,0xdd,0x0e,0x4a); DEFINE_GUID(IID_ID3D12PipelineState,0x765a30f3,0xf624,0x4c6f,0xa8,0x28,0xac,0xe9,0x48,0x62,0x24,0x45); +DEFINE_GUID(IID_ID3D12PipelineState1,0x5646804c,0x9638,0x48f7,0x91,0x82,0xb3,0xee,0x5a,0x6b,0x60,0xfb); DEFINE_GUID(IID_ID3D12DescriptorHeap,0x8efb471d,0x616c,0x4f49,0x90,0xf7,0x12,0x7b,0xb7,0x63,0xfa,0x51); DEFINE_GUID(IID_ID3D12QueryHeap,0x0d9658ae,0xed45,0x469e,0xa6,0x1d,0x97,0x0e,0xc5,0x83,0xca,0xb4); DEFINE_GUID(IID_ID3D12CommandSignature,0xc36a797c,0xec80,0x4f0a,0x89,0x85,0xa7,0xb2,0x47,0x50,0x82,0xd1); @@ -35684,6 +36804,7 @@ DEFINE_GUID(IID_ID3D12GraphicsCommandList,0x5b160d0f,0xac1b,0x4185,0x8b,0xa8,0xb DEFINE_GUID(IID_ID3D12GraphicsCommandList1,0x553103fb,0x1fe7,0x4557,0xbb,0x38,0x94,0x6d,0x7d,0x0e,0x7c,0xa7); DEFINE_GUID(IID_ID3D12GraphicsCommandList2,0x38C3E585,0xFF17,0x412C,0x91,0x50,0x4F,0xC6,0xF9,0xD7,0x2A,0x28); DEFINE_GUID(IID_ID3D12CommandQueue,0x0ec870a6,0x5d7e,0x4c22,0x8c,0xfc,0x5b,0xaa,0xe0,0x76,0x16,0xed); +DEFINE_GUID(IID_ID3D12CommandQueue1,0x3a3c3165,0x0ee7,0x4b8e,0xa0,0xaf,0x63,0x56,0xb4,0xc3,0xbb,0xb9); DEFINE_GUID(IID_ID3D12Device,0x189819f1,0x1db6,0x4b57,0xbe,0x54,0x18,0x21,0x33,0x9b,0x85,0xf7); DEFINE_GUID(IID_ID3D12PipelineLibrary,0xc64226a8,0x9201,0x46af,0xb4,0xcc,0x53,0xfb,0x9f,0xf7,0x41,0x4f); DEFINE_GUID(IID_ID3D12PipelineLibrary1,0x80eabf42,0x2568,0x4e5e,0xbd,0x82,0xc3,0x7f,0x86,0x96,0x1d,0xc3); @@ -35699,6 +36820,7 @@ DEFINE_GUID(IID_ID3D12LifetimeTracker,0x3fd03d36,0x4eb1,0x424a,0xa5,0x82,0x49,0x DEFINE_GUID(IID_ID3D12StateObject,0x47016943,0xfca8,0x4594,0x93,0xea,0xaf,0x25,0x8b,0x55,0x34,0x6d); DEFINE_GUID(IID_ID3D12StateObjectProperties,0xde5fa827,0x9bf9,0x4f26,0x89,0xff,0xd7,0xf5,0x6f,0xde,0x38,0x60); DEFINE_GUID(IID_ID3D12StateObjectProperties1,0x460caac7,0x1d24,0x446a,0xa1,0x84,0xca,0x67,0xdb,0x49,0x41,0x38); +DEFINE_GUID(IID_ID3D12StateObjectProperties2,0xd5e82917,0xf0f1,0x44cf,0xae,0x5e,0xce,0x22,0x2d,0xd0,0xb8,0x84); DEFINE_GUID(IID_ID3D12WorkGraphProperties,0x065acf71,0xf863,0x4b89,0x82,0xf4,0x02,0xe4,0xd5,0x88,0x67,0x57); DEFINE_GUID(IID_ID3D12Device5,0x8b4f173b,0x2fea,0x4b80,0x8f,0x58,0x43,0x07,0x19,0x1a,0xb9,0x5d); DEFINE_GUID(IID_ID3D12DeviceRemovedExtendedDataSettings,0x82BC481C,0x6B9B,0x4030,0xAE,0xDB,0x7E,0xE3,0xD1,0xDF,0x1E,0x63); @@ -35724,6 +36846,7 @@ DEFINE_GUID(IID_ID3D12Device11,0x5405c344,0xd457,0x444e,0xb4,0xdd,0x23,0x66,0xe4 DEFINE_GUID(IID_ID3D12Device12,0x5af5c532,0x4c91,0x4cd0,0xb5,0x41,0x15,0xa4,0x05,0x39,0x5f,0xc5); DEFINE_GUID(IID_ID3D12Device13,0x14eecffc,0x4df8,0x40f7,0xa1,0x18,0x5c,0x81,0x6f,0x45,0x69,0x5e); DEFINE_GUID(IID_ID3D12Device14,0x5f6e592d,0xd895,0x44c2,0x8e,0x4a,0x88,0xad,0x49,0x26,0xd3,0x23); +DEFINE_GUID(IID_ID3D12StateObjectDatabase,0xc56060b7,0xb5fc,0x4135,0x98,0xe0,0xa1,0xe9,0x99,0x7e,0xac,0xe0); DEFINE_GUID(IID_ID3D12VirtualizationGuestDevice,0xbc66d368,0x7373,0x4943,0x87,0x57,0xfc,0x87,0xdc,0x79,0xe4,0x76); DEFINE_GUID(IID_ID3D12Tools,0x7071e1f0,0xe84b,0x4b33,0x97,0x4f,0x12,0xfa,0x49,0xde,0x65,0xc5); DEFINE_GUID(IID_ID3D12Tools1,0xe4fbc019,0xdd3c,0x43e1,0x8f,0x32,0x7f,0x64,0x95,0x75,0xf0,0xa0); @@ -35736,6 +36859,7 @@ DEFINE_GUID(IID_ID3D12SDKConfiguration1,0x8aaf9303,0xad25,0x48b9,0x9a,0x57,0xd9, DEFINE_GUID(IID_ID3D12DeviceFactory,0x61f307d3,0xd34e,0x4e7c,0x83,0x74,0x3b,0xa4,0xde,0x23,0xcc,0xcb); DEFINE_GUID(IID_ID3D12DeviceConfiguration,0x78dbf87b,0xf766,0x422b,0xa6,0x1c,0xc8,0xc4,0x46,0xbd,0xb9,0xad); DEFINE_GUID(IID_ID3D12DeviceConfiguration1,0xed342442,0x6343,0x4e16,0xbb,0x82,0xa3,0xa5,0x77,0x87,0x4e,0x56); +DEFINE_GUID(IID_ID3D12StateObjectDatabaseFactory,0xf5b066f0,0x648a,0x4611,0xbd,0x41,0x27,0xfd,0x09,0x48,0xb9,0xeb); DEFINE_GUID(IID_ID3D12GraphicsCommandList5,0x55050859,0x4024,0x474c,0x87,0xf5,0x64,0x72,0xea,0xee,0x44,0xea); DEFINE_GUID(IID_ID3D12GraphicsCommandList6,0xc3827890,0xe548,0x4cfa,0x96,0xcf,0x56,0x89,0xa9,0x37,0x0f,0x80); DEFINE_GUID(IID_ID3D12GraphicsCommandList7,0xdd171223,0x8b61,0x4769,0x90,0xe3,0x16,0x0c,0xcd,0xe4,0xe2,0xc1); @@ -35746,8 +36870,8 @@ DEFINE_GUID(IID_ID3D12DSRDeviceFactory,0xf343d1a0,0xafe3,0x439f,0xb1,0x3d,0xcd,0 DEFINE_GUID(IID_ID3D12GBVDiagnostics,0x597985ab,0x9b75,0x4dbb,0xbe,0x23,0x07,0x61,0x19,0x5b,0xeb,0xee); -extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0080_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0080_v0_0_s_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0085_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0085_v0_0_s_ifspec; /* Additional Prototypes for ALL interfaces */ diff --git a/renderdoc/driver/dx/official/d3d12sdklayers.h b/renderdoc/driver/dx/official/d3d12sdklayers.h index 0da7960c3..96c812b14 100644 --- a/renderdoc/driver/dx/official/d3d12sdklayers.h +++ b/renderdoc/driver/dx/official/d3d12sdklayers.h @@ -3360,8 +3360,10 @@ enum D3D12_MESSAGE_ID D3D12_MESSAGE_ID_RENDER_TARGET_OR_DEPTH_STENCIL_RESOUCE_NOT_INITIALIZED = 1422, D3D12_MESSAGE_ID_BYTECODE_VALIDATION_ERROR = 1423, D3D12_MESSAGE_ID_FENCE_ZERO_WAIT = 1424, - D3D12_MESSAGE_ID_NON_COMMON_RESOURCE_IN_COPY_QUEUE = 1425, - D3D12_MESSAGE_ID_D3D12_MESSAGES_END = ( D3D12_MESSAGE_ID_NON_COMMON_RESOURCE_IN_COPY_QUEUE + 1 ) + D3D12_MESSAGE_ID_NON_COMMON_RESOURCE_IN_COPY_QUEUE = 1431, + D3D12_MESSAGE_ID_CREATEPIPELINESTATE_MULTIPLE_ROOT_SIGNATURES_DEFINED = 1435, + D3D12_MESSAGE_ID_TEXTURE_BARRIER_INVALID_FLAGS = 1436, + D3D12_MESSAGE_ID_D3D12_MESSAGES_END = 1442 } D3D12_MESSAGE_ID; typedef struct D3D12_MESSAGE diff --git a/util/test/demos/dx/official/d3d12.h b/util/test/demos/dx/official/d3d12.h index bdd86e1e3..0d12a2b6a 100644 --- a/util/test/demos/dx/official/d3d12.h +++ b/util/test/demos/dx/official/d3d12.h @@ -136,6 +136,13 @@ typedef interface ID3D12PipelineState ID3D12PipelineState; #endif /* __ID3D12PipelineState_FWD_DEFINED__ */ +#ifndef __ID3D12PipelineState1_FWD_DEFINED__ +#define __ID3D12PipelineState1_FWD_DEFINED__ +typedef interface ID3D12PipelineState1 ID3D12PipelineState1; + +#endif /* __ID3D12PipelineState1_FWD_DEFINED__ */ + + #ifndef __ID3D12DescriptorHeap_FWD_DEFINED__ #define __ID3D12DescriptorHeap_FWD_DEFINED__ typedef interface ID3D12DescriptorHeap ID3D12DescriptorHeap; @@ -192,6 +199,13 @@ typedef interface ID3D12CommandQueue ID3D12CommandQueue; #endif /* __ID3D12CommandQueue_FWD_DEFINED__ */ +#ifndef __ID3D12CommandQueue1_FWD_DEFINED__ +#define __ID3D12CommandQueue1_FWD_DEFINED__ +typedef interface ID3D12CommandQueue1 ID3D12CommandQueue1; + +#endif /* __ID3D12CommandQueue1_FWD_DEFINED__ */ + + #ifndef __ID3D12Device_FWD_DEFINED__ #define __ID3D12Device_FWD_DEFINED__ typedef interface ID3D12Device ID3D12Device; @@ -297,6 +311,13 @@ typedef interface ID3D12StateObjectProperties1 ID3D12StateObjectProperties1; #endif /* __ID3D12StateObjectProperties1_FWD_DEFINED__ */ +#ifndef __ID3D12StateObjectProperties2_FWD_DEFINED__ +#define __ID3D12StateObjectProperties2_FWD_DEFINED__ +typedef interface ID3D12StateObjectProperties2 ID3D12StateObjectProperties2; + +#endif /* __ID3D12StateObjectProperties2_FWD_DEFINED__ */ + + #ifndef __ID3D12WorkGraphProperties_FWD_DEFINED__ #define __ID3D12WorkGraphProperties_FWD_DEFINED__ typedef interface ID3D12WorkGraphProperties ID3D12WorkGraphProperties; @@ -472,6 +493,13 @@ typedef interface ID3D12Device14 ID3D12Device14; #endif /* __ID3D12Device14_FWD_DEFINED__ */ +#ifndef __ID3D12StateObjectDatabase_FWD_DEFINED__ +#define __ID3D12StateObjectDatabase_FWD_DEFINED__ +typedef interface ID3D12StateObjectDatabase ID3D12StateObjectDatabase; + +#endif /* __ID3D12StateObjectDatabase_FWD_DEFINED__ */ + + #ifndef __ID3D12VirtualizationGuestDevice_FWD_DEFINED__ #define __ID3D12VirtualizationGuestDevice_FWD_DEFINED__ typedef interface ID3D12VirtualizationGuestDevice ID3D12VirtualizationGuestDevice; @@ -556,6 +584,13 @@ typedef interface ID3D12DeviceConfiguration1 ID3D12DeviceConfiguration1; #endif /* __ID3D12DeviceConfiguration1_FWD_DEFINED__ */ +#ifndef __ID3D12StateObjectDatabaseFactory_FWD_DEFINED__ +#define __ID3D12StateObjectDatabaseFactory_FWD_DEFINED__ +typedef interface ID3D12StateObjectDatabaseFactory ID3D12StateObjectDatabaseFactory; + +#endif /* __ID3D12StateObjectDatabaseFactory_FWD_DEFINED__ */ + + #ifndef __ID3D12GraphicsCommandList5_FWD_DEFINED__ #define __ID3D12GraphicsCommandList5_FWD_DEFINED__ typedef interface ID3D12GraphicsCommandList5 ID3D12GraphicsCommandList5; @@ -1214,6 +1249,10 @@ extern "C"{ #define D3D12_RAYTRACING_MAX_SHADER_RECORD_STRIDE ( 4096 ) +#define D3D12_RAYTRACING_OPACITY_MICROMAP_ARRAY_BYTE_ALIGNMENT ( 128 ) + +#define D3D12_RAYTRACING_OPACITY_MICROMAP_OC1_MAX_SUBDIVISION_LEVEL ( 12 ) + #define D3D12_RAYTRACING_SHADER_RECORD_BYTE_ALIGNMENT ( 32 ) #define D3D12_RAYTRACING_SHADER_TABLE_BYTE_ALIGNMENT ( 64 ) @@ -1277,7 +1316,7 @@ extern "C"{ #define D3D12_RS_SET_SHADING_RATE_COMBINER_COUNT ( 2 ) -#define D3D12_SDK_VERSION ( 616 ) +#define D3D12_SDK_VERSION ( 618 ) #define D3D12_SHADER_IDENTIFIER_SIZE_IN_BYTES ( 32 ) @@ -1375,9 +1414,9 @@ extern "C"{ #define D3D12_TEXTURE_DATA_PLACEMENT_ALIGNMENT ( 512 ) -#define D3D12_TIGHT_ALIGNMENT_MIN_COMMITTED_RESOURCE_ALIGNEMNT ( 4096 ) +#define D3D12_TIGHT_ALIGNMENT_MIN_COMMITTED_RESOURCE_ALIGNMENT ( 4096 ) -#define D3D12_TIGHT_ALIGNMENT_MIN_PLACED_RESOURCE_ALIGNEMNT ( 8 ) +#define D3D12_TIGHT_ALIGNMENT_MIN_PLACED_RESOURCE_ALIGNMENT ( 8 ) #define D3D12_TILED_RESOURCE_TILE_SIZE_IN_BYTES ( 65536 ) @@ -1468,7 +1507,8 @@ typedef enum D3D12_COMMAND_QUEUE_FLAGS { D3D12_COMMAND_QUEUE_FLAG_NONE = 0, - D3D12_COMMAND_QUEUE_FLAG_DISABLE_GPU_TIMEOUT = 0x1 + D3D12_COMMAND_QUEUE_FLAG_DISABLE_GPU_TIMEOUT = 0x1, + D3D12_COMMAND_QUEUE_FLAG_ALLOW_DYNAMIC_PRIORITY = 0x2 } D3D12_COMMAND_QUEUE_FLAGS; DEFINE_ENUM_FLAG_OPERATORS( D3D12_COMMAND_QUEUE_FLAGS ) @@ -2279,6 +2319,31 @@ typedef struct D3D12_COMPUTE_PIPELINE_STATE_DESC D3D12_PIPELINE_STATE_FLAGS Flags; } D3D12_COMPUTE_PIPELINE_STATE_DESC; +typedef +enum D3D_ROOT_SIGNATURE_VERSION + { + D3D_ROOT_SIGNATURE_VERSION_1 = 0x1, + D3D_ROOT_SIGNATURE_VERSION_1_0 = 0x1, + D3D_ROOT_SIGNATURE_VERSION_1_1 = 0x2, + D3D_ROOT_SIGNATURE_VERSION_1_2 = 0x3 + } D3D_ROOT_SIGNATURE_VERSION; + +typedef struct D3D12_SERIALIZED_ROOT_SIGNATURE_DESC + { + _Field_size_bytes_full_(SerializedBlobSizeInBytes) const void *pSerializedBlob; + SIZE_T SerializedBlobSizeInBytes; + } D3D12_SERIALIZED_ROOT_SIGNATURE_DESC; + +typedef struct D3D12_GLOBAL_SERIALIZED_ROOT_SIGNATURE + { + D3D12_SERIALIZED_ROOT_SIGNATURE_DESC Desc; + } D3D12_GLOBAL_SERIALIZED_ROOT_SIGNATURE; + +typedef struct D3D12_LOCAL_SERIALIZED_ROOT_SIGNATURE + { + D3D12_SERIALIZED_ROOT_SIGNATURE_DESC Desc; + } D3D12_LOCAL_SERIALIZED_ROOT_SIGNATURE; + struct D3D12_RT_FORMAT_ARRAY { DXGI_FORMAT RTFormats[ 8 ]; @@ -2321,7 +2386,8 @@ enum D3D12_PIPELINE_STATE_SUBOBJECT_TYPE D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_DEPTH_STENCIL2 = 26, D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_RASTERIZER1 = 27, D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_RASTERIZER2 = 28, - D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_MAX_VALID = ( D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_RASTERIZER2 + 1 ) + D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_SERIALIZED_ROOT_SIGNATURE = 29, + D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_MAX_VALID = ( D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_SERIALIZED_ROOT_SIGNATURE + 1 ) } D3D12_PIPELINE_STATE_SUBOBJECT_TYPE; typedef @@ -2371,8 +2437,10 @@ enum D3D12_FEATURE D3D12_FEATURE_PLACED_RESOURCE_SUPPORT_INFO = 51, D3D12_FEATURE_HARDWARE_COPY = 52, D3D12_FEATURE_D3D12_OPTIONS21 = 53, + D3D12_FEATURE_D3D12_TIGHT_ALIGNMENT = 54, D3D12_FEATURE_APPLICATION_SPECIFIC_DRIVER_STATE = 56, - D3D12_FEATURE_BYTECODE_BYPASS_HASH_SUPPORTED = 57 + D3D12_FEATURE_BYTECODE_BYPASS_HASH_SUPPORTED = 57, + D3D12_FEATURE_SHADER_CACHE_ABI_SUPPORT = 61 } D3D12_FEATURE; typedef @@ -2462,7 +2530,8 @@ enum D3D12_FORMAT_SUPPORT2 D3D12_FORMAT_SUPPORT2_OUTPUT_MERGER_LOGIC_OP = 0x100, D3D12_FORMAT_SUPPORT2_TILED = 0x200, D3D12_FORMAT_SUPPORT2_MULTIPLANE_OVERLAY = 0x4000, - D3D12_FORMAT_SUPPORT2_SAMPLER_FEEDBACK = 0x8000 + D3D12_FORMAT_SUPPORT2_SAMPLER_FEEDBACK = 0x8000, + D3D12_FORMAT_SUPPORT2_DISPLAYABLE = 0x10000 } D3D12_FORMAT_SUPPORT2; DEFINE_ENUM_FLAG_OPERATORS( D3D12_FORMAT_SUPPORT2 ) @@ -2550,15 +2619,6 @@ typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS2 _Out_ D3D12_PROGRAMMABLE_SAMPLE_POSITIONS_TIER ProgrammableSamplePositionsTier; } D3D12_FEATURE_DATA_D3D12_OPTIONS2; -typedef -enum D3D_ROOT_SIGNATURE_VERSION - { - D3D_ROOT_SIGNATURE_VERSION_1 = 0x1, - D3D_ROOT_SIGNATURE_VERSION_1_0 = 0x1, - D3D_ROOT_SIGNATURE_VERSION_1_1 = 0x2, - D3D_ROOT_SIGNATURE_VERSION_1_2 = 0x3 - } D3D_ROOT_SIGNATURE_VERSION; - typedef struct D3D12_FEATURE_DATA_ROOT_SIGNATURE { _Inout_ D3D_ROOT_SIGNATURE_VERSION HighestVersion; @@ -2934,6 +2994,18 @@ typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS21 _Out_ BOOL ExtendedCommandInfoSupported; } D3D12_FEATURE_DATA_D3D12_OPTIONS21; +typedef +enum D3D12_TIGHT_ALIGNMENT_TIER + { + D3D12_TIGHT_ALIGNMENT_TIER_NOT_SUPPORTED = 0, + D3D12_TIGHT_ALIGNMENT_TIER_1 = ( D3D12_TIGHT_ALIGNMENT_TIER_NOT_SUPPORTED + 1 ) + } D3D12_TIGHT_ALIGNMENT_TIER; + +typedef struct D3D12_FEATURE_DATA_TIGHT_ALIGNMENT + { + _Out_ D3D12_TIGHT_ALIGNMENT_TIER SupportTier; + } D3D12_FEATURE_DATA_TIGHT_ALIGNMENT; + typedef struct D3D12_FEATURE_DATA_PREDICATION { _Out_ BOOL Supported; @@ -3073,7 +3145,8 @@ enum D3D12_RESOURCE_FLAGS D3D12_RESOURCE_FLAG_ALLOW_SIMULTANEOUS_ACCESS = 0x20, D3D12_RESOURCE_FLAG_VIDEO_DECODE_REFERENCE_ONLY = 0x40, D3D12_RESOURCE_FLAG_VIDEO_ENCODE_REFERENCE_ONLY = 0x80, - D3D12_RESOURCE_FLAG_RAYTRACING_ACCELERATION_STRUCTURE = 0x100 + D3D12_RESOURCE_FLAG_RAYTRACING_ACCELERATION_STRUCTURE = 0x100, + D3D12_RESOURCE_FLAG_USE_TIGHT_ALIGNMENT = 0x400 } D3D12_RESOURCE_FLAGS; DEFINE_ENUM_FLAG_OPERATORS( D3D12_RESOURCE_FLAGS ) @@ -5747,6 +5820,149 @@ EXTERN_C const IID IID_ID3D12PipelineState; #endif /* __ID3D12PipelineState_INTERFACE_DEFINED__ */ +#ifndef __ID3D12PipelineState1_INTERFACE_DEFINED__ +#define __ID3D12PipelineState1_INTERFACE_DEFINED__ + +/* interface ID3D12PipelineState1 */ +/* [unique][local][object][uuid] */ + + +EXTERN_C const IID IID_ID3D12PipelineState1; + +#if defined(__cplusplus) && !defined(CINTERFACE) + + MIDL_INTERFACE("5646804c-9638-48f7-9182-b3ee5a6b60fb") + ID3D12PipelineState1 : public ID3D12PipelineState + { + public: + virtual HRESULT STDMETHODCALLTYPE GetRootSignature( + REFIID riid, + _COM_Outptr_ void **ppvRootSignature) = 0; + + }; + + +#else /* C style interface */ + + typedef struct ID3D12PipelineState1Vtbl + { + BEGIN_INTERFACE + + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + ID3D12PipelineState1 * This, + REFIID riid, + _COM_Outptr_ void **ppvObject); + + DECLSPEC_XFGVIRT(IUnknown, AddRef) + ULONG ( STDMETHODCALLTYPE *AddRef )( + ID3D12PipelineState1 * This); + + DECLSPEC_XFGVIRT(IUnknown, Release) + ULONG ( STDMETHODCALLTYPE *Release )( + ID3D12PipelineState1 * This); + + DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData) + HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( + ID3D12PipelineState1 * This, + _In_ REFGUID guid, + _Inout_ UINT *pDataSize, + _Out_writes_bytes_opt_( *pDataSize ) void *pData); + + DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData) + HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( + ID3D12PipelineState1 * This, + _In_ REFGUID guid, + _In_ UINT DataSize, + _In_reads_bytes_opt_( DataSize ) const void *pData); + + DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface) + HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( + ID3D12PipelineState1 * This, + _In_ REFGUID guid, + _In_opt_ const IUnknown *pData); + + DECLSPEC_XFGVIRT(ID3D12Object, SetName) + HRESULT ( STDMETHODCALLTYPE *SetName )( + ID3D12PipelineState1 * This, + _In_z_ LPCWSTR Name); + + DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice) + HRESULT ( STDMETHODCALLTYPE *GetDevice )( + ID3D12PipelineState1 * This, + REFIID riid, + _COM_Outptr_opt_ void **ppvDevice); + + DECLSPEC_XFGVIRT(ID3D12PipelineState, GetCachedBlob) + HRESULT ( STDMETHODCALLTYPE *GetCachedBlob )( + ID3D12PipelineState1 * This, + _COM_Outptr_ ID3DBlob **ppBlob); + + DECLSPEC_XFGVIRT(ID3D12PipelineState1, GetRootSignature) + HRESULT ( STDMETHODCALLTYPE *GetRootSignature )( + ID3D12PipelineState1 * This, + REFIID riid, + _COM_Outptr_ void **ppvRootSignature); + + END_INTERFACE + } ID3D12PipelineState1Vtbl; + + interface ID3D12PipelineState1 + { + CONST_VTBL struct ID3D12PipelineState1Vtbl *lpVtbl; + }; + + + +#ifdef COBJMACROS + + +#define ID3D12PipelineState1_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + +#define ID3D12PipelineState1_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) + +#define ID3D12PipelineState1_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) + + +#define ID3D12PipelineState1_GetPrivateData(This,guid,pDataSize,pData) \ + ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) + +#define ID3D12PipelineState1_SetPrivateData(This,guid,DataSize,pData) \ + ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) + +#define ID3D12PipelineState1_SetPrivateDataInterface(This,guid,pData) \ + ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) + +#define ID3D12PipelineState1_SetName(This,Name) \ + ( (This)->lpVtbl -> SetName(This,Name) ) + + +#define ID3D12PipelineState1_GetDevice(This,riid,ppvDevice) \ + ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) ) + + + +#define ID3D12PipelineState1_GetCachedBlob(This,ppBlob) \ + ( (This)->lpVtbl -> GetCachedBlob(This,ppBlob) ) + + +#define ID3D12PipelineState1_GetRootSignature(This,riid,ppvRootSignature) \ + ( (This)->lpVtbl -> GetRootSignature(This,riid,ppvRootSignature) ) + +#endif /* COBJMACROS */ + + +#endif /* C style interface */ + + + + +#endif /* __ID3D12PipelineState1_INTERFACE_DEFINED__ */ + + #ifndef __ID3D12DescriptorHeap_INTERFACE_DEFINED__ #define __ID3D12DescriptorHeap_INTERFACE_DEFINED__ @@ -7943,7 +8159,7 @@ EXTERN_C const IID IID_ID3D12GraphicsCommandList1; #endif /* __ID3D12GraphicsCommandList1_INTERFACE_DEFINED__ */ -/* interface __MIDL_itf_d3d12_0000_0018 */ +/* interface __MIDL_itf_d3d12_0000_0019 */ /* [local] */ typedef struct D3D12_WRITEBUFFERIMMEDIATE_PARAMETER @@ -7962,8 +8178,8 @@ enum D3D12_WRITEBUFFERIMMEDIATE_MODE -extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0018_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0018_v0_0_s_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0019_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0019_v0_0_s_ifspec; #ifndef __ID3D12GraphicsCommandList2_INTERFACE_DEFINED__ #define __ID3D12GraphicsCommandList2_INTERFACE_DEFINED__ @@ -8984,6 +9200,336 @@ EXTERN_C const IID IID_ID3D12CommandQueue; #endif /* __ID3D12CommandQueue_INTERFACE_DEFINED__ */ +/* interface __MIDL_itf_d3d12_0000_0021 */ +/* [local] */ + +typedef struct D3D12_FEATURE_DATA_HARDWARE_SCHEDULING_QUEUE_GROUPINGS + { + _Out_ UINT ComputeQueuesPer3DQueue; + } D3D12_FEATURE_DATA_HARDWARE_SCHEDULING_QUEUE_GROUPINGS; + +typedef +enum D3D12_COMMAND_QUEUE_PROCESS_PRIORITY + { + D3D12_COMMAND_QUEUE_PROCESS_PRIORITY_NORMAL = 0, + D3D12_COMMAND_QUEUE_PROCESS_PRIORITY_HIGH = 1 + } D3D12_COMMAND_QUEUE_PROCESS_PRIORITY; + +typedef +enum D3D12_COMMAND_QUEUE_GLOBAL_PRIORITY + { + D3D12_COMMAND_QUEUE_GLOBAL_PRIORITY_IDLE = 0, + D3D12_COMMAND_QUEUE_GLOBAL_PRIORITY_DEFAULT = 1, + D3D12_COMMAND_QUEUE_GLOBAL_PRIORITY_NORMAL_0 = 2, + D3D12_COMMAND_QUEUE_GLOBAL_PRIORITY_SOFT_REALTIME_0 = 18, + D3D12_COMMAND_QUEUE_GLOBAL_PRIORITY_SOFT_REALTIME_1 = 19, + D3D12_COMMAND_QUEUE_GLOBAL_PRIORITY_SOFT_REALTIME_2 = 20, + D3D12_COMMAND_QUEUE_GLOBAL_PRIORITY_SOFT_REALTIME_3 = 21, + D3D12_COMMAND_QUEUE_GLOBAL_PRIORITY_SOFT_REALTIME_4 = 22, + D3D12_COMMAND_QUEUE_GLOBAL_PRIORITY_SOFT_REALTIME_5 = 23, + D3D12_COMMAND_QUEUE_GLOBAL_PRIORITY_SOFT_REALTIME_6 = 24, + D3D12_COMMAND_QUEUE_GLOBAL_PRIORITY_SOFT_REALTIME_7 = 25, + D3D12_COMMAND_QUEUE_GLOBAL_PRIORITY_SOFT_REALTIME_8 = 26, + D3D12_COMMAND_QUEUE_GLOBAL_PRIORITY_SOFT_REALTIME_9 = 27, + D3D12_COMMAND_QUEUE_GLOBAL_PRIORITY_SOFT_REALTIME_10 = 28, + D3D12_COMMAND_QUEUE_GLOBAL_PRIORITY_SOFT_REALTIME_11 = 29, + D3D12_COMMAND_QUEUE_GLOBAL_PRIORITY_SOFT_REALTIME_12 = 30, + D3D12_COMMAND_QUEUE_GLOBAL_PRIORITY_SOFT_REALTIME_13 = 31, + D3D12_COMMAND_QUEUE_GLOBAL_PRIORITY_HARD_REALTIME = 32 + } D3D12_COMMAND_QUEUE_GLOBAL_PRIORITY; + + + +extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0021_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0021_v0_0_s_ifspec; + +#ifndef __ID3D12CommandQueue1_INTERFACE_DEFINED__ +#define __ID3D12CommandQueue1_INTERFACE_DEFINED__ + +/* interface ID3D12CommandQueue1 */ +/* [unique][local][object][uuid] */ + + +EXTERN_C const IID IID_ID3D12CommandQueue1; + +#if defined(__cplusplus) && !defined(CINTERFACE) + + MIDL_INTERFACE("3a3c3165-0ee7-4b8e-a0af-6356b4c3bbb9") + ID3D12CommandQueue1 : public ID3D12CommandQueue + { + public: + virtual HRESULT STDMETHODCALLTYPE SetProcessPriority( + D3D12_COMMAND_QUEUE_PROCESS_PRIORITY Priority) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetProcessPriority( + D3D12_COMMAND_QUEUE_PROCESS_PRIORITY *pOutValue) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetGlobalPriority( + D3D12_COMMAND_QUEUE_GLOBAL_PRIORITY Priority) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetGlobalPriority( + D3D12_COMMAND_QUEUE_GLOBAL_PRIORITY *pOutValue) = 0; + + }; + + +#else /* C style interface */ + + typedef struct ID3D12CommandQueue1Vtbl + { + BEGIN_INTERFACE + + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + ID3D12CommandQueue1 * This, + REFIID riid, + _COM_Outptr_ void **ppvObject); + + DECLSPEC_XFGVIRT(IUnknown, AddRef) + ULONG ( STDMETHODCALLTYPE *AddRef )( + ID3D12CommandQueue1 * This); + + DECLSPEC_XFGVIRT(IUnknown, Release) + ULONG ( STDMETHODCALLTYPE *Release )( + ID3D12CommandQueue1 * This); + + DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData) + HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( + ID3D12CommandQueue1 * This, + _In_ REFGUID guid, + _Inout_ UINT *pDataSize, + _Out_writes_bytes_opt_( *pDataSize ) void *pData); + + DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData) + HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( + ID3D12CommandQueue1 * This, + _In_ REFGUID guid, + _In_ UINT DataSize, + _In_reads_bytes_opt_( DataSize ) const void *pData); + + DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface) + HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( + ID3D12CommandQueue1 * This, + _In_ REFGUID guid, + _In_opt_ const IUnknown *pData); + + DECLSPEC_XFGVIRT(ID3D12Object, SetName) + HRESULT ( STDMETHODCALLTYPE *SetName )( + ID3D12CommandQueue1 * This, + _In_z_ LPCWSTR Name); + + DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice) + HRESULT ( STDMETHODCALLTYPE *GetDevice )( + ID3D12CommandQueue1 * This, + REFIID riid, + _COM_Outptr_opt_ void **ppvDevice); + + DECLSPEC_XFGVIRT(ID3D12CommandQueue, UpdateTileMappings) + void ( STDMETHODCALLTYPE *UpdateTileMappings )( + ID3D12CommandQueue1 * This, + _In_ ID3D12Resource *pResource, + UINT NumResourceRegions, + _In_reads_opt_(NumResourceRegions) const D3D12_TILED_RESOURCE_COORDINATE *pResourceRegionStartCoordinates, + _In_reads_opt_(NumResourceRegions) const D3D12_TILE_REGION_SIZE *pResourceRegionSizes, + _In_opt_ ID3D12Heap *pHeap, + UINT NumRanges, + _In_reads_opt_(NumRanges) const D3D12_TILE_RANGE_FLAGS *pRangeFlags, + _In_reads_opt_(NumRanges) const UINT *pHeapRangeStartOffsets, + _In_reads_opt_(NumRanges) const UINT *pRangeTileCounts, + D3D12_TILE_MAPPING_FLAGS Flags); + + DECLSPEC_XFGVIRT(ID3D12CommandQueue, CopyTileMappings) + void ( STDMETHODCALLTYPE *CopyTileMappings )( + ID3D12CommandQueue1 * This, + _In_ ID3D12Resource *pDstResource, + _In_ const D3D12_TILED_RESOURCE_COORDINATE *pDstRegionStartCoordinate, + _In_ ID3D12Resource *pSrcResource, + _In_ const D3D12_TILED_RESOURCE_COORDINATE *pSrcRegionStartCoordinate, + _In_ const D3D12_TILE_REGION_SIZE *pRegionSize, + D3D12_TILE_MAPPING_FLAGS Flags); + + DECLSPEC_XFGVIRT(ID3D12CommandQueue, ExecuteCommandLists) + void ( STDMETHODCALLTYPE *ExecuteCommandLists )( + ID3D12CommandQueue1 * This, + _In_ UINT NumCommandLists, + _In_reads_(NumCommandLists) ID3D12CommandList *const *ppCommandLists); + + DECLSPEC_XFGVIRT(ID3D12CommandQueue, SetMarker) + void ( STDMETHODCALLTYPE *SetMarker )( + ID3D12CommandQueue1 * This, + UINT Metadata, + _In_reads_bytes_opt_(Size) const void *pData, + UINT Size); + + DECLSPEC_XFGVIRT(ID3D12CommandQueue, BeginEvent) + void ( STDMETHODCALLTYPE *BeginEvent )( + ID3D12CommandQueue1 * This, + UINT Metadata, + _In_reads_bytes_opt_(Size) const void *pData, + UINT Size); + + DECLSPEC_XFGVIRT(ID3D12CommandQueue, EndEvent) + void ( STDMETHODCALLTYPE *EndEvent )( + ID3D12CommandQueue1 * This); + + DECLSPEC_XFGVIRT(ID3D12CommandQueue, Signal) + HRESULT ( STDMETHODCALLTYPE *Signal )( + ID3D12CommandQueue1 * This, + ID3D12Fence *pFence, + UINT64 Value); + + DECLSPEC_XFGVIRT(ID3D12CommandQueue, Wait) + HRESULT ( STDMETHODCALLTYPE *Wait )( + ID3D12CommandQueue1 * This, + ID3D12Fence *pFence, + UINT64 Value); + + DECLSPEC_XFGVIRT(ID3D12CommandQueue, GetTimestampFrequency) + HRESULT ( STDMETHODCALLTYPE *GetTimestampFrequency )( + ID3D12CommandQueue1 * This, + _Out_ UINT64 *pFrequency); + + DECLSPEC_XFGVIRT(ID3D12CommandQueue, GetClockCalibration) + HRESULT ( STDMETHODCALLTYPE *GetClockCalibration )( + ID3D12CommandQueue1 * This, + _Out_ UINT64 *pGpuTimestamp, + _Out_ UINT64 *pCpuTimestamp); + + DECLSPEC_XFGVIRT(ID3D12CommandQueue, GetDesc) +#if !defined(_WIN32) + D3D12_COMMAND_QUEUE_DESC ( STDMETHODCALLTYPE *GetDesc )( + ID3D12CommandQueue1 * This); + +#else + D3D12_COMMAND_QUEUE_DESC *( STDMETHODCALLTYPE *GetDesc )( + ID3D12CommandQueue1 * This, + D3D12_COMMAND_QUEUE_DESC * RetVal); + +#endif + + DECLSPEC_XFGVIRT(ID3D12CommandQueue1, SetProcessPriority) + HRESULT ( STDMETHODCALLTYPE *SetProcessPriority )( + ID3D12CommandQueue1 * This, + D3D12_COMMAND_QUEUE_PROCESS_PRIORITY Priority); + + DECLSPEC_XFGVIRT(ID3D12CommandQueue1, GetProcessPriority) + HRESULT ( STDMETHODCALLTYPE *GetProcessPriority )( + ID3D12CommandQueue1 * This, + D3D12_COMMAND_QUEUE_PROCESS_PRIORITY *pOutValue); + + DECLSPEC_XFGVIRT(ID3D12CommandQueue1, SetGlobalPriority) + HRESULT ( STDMETHODCALLTYPE *SetGlobalPriority )( + ID3D12CommandQueue1 * This, + D3D12_COMMAND_QUEUE_GLOBAL_PRIORITY Priority); + + DECLSPEC_XFGVIRT(ID3D12CommandQueue1, GetGlobalPriority) + HRESULT ( STDMETHODCALLTYPE *GetGlobalPriority )( + ID3D12CommandQueue1 * This, + D3D12_COMMAND_QUEUE_GLOBAL_PRIORITY *pOutValue); + + END_INTERFACE + } ID3D12CommandQueue1Vtbl; + + interface ID3D12CommandQueue1 + { + CONST_VTBL struct ID3D12CommandQueue1Vtbl *lpVtbl; + }; + + + +#ifdef COBJMACROS + + +#define ID3D12CommandQueue1_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + +#define ID3D12CommandQueue1_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) + +#define ID3D12CommandQueue1_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) + + +#define ID3D12CommandQueue1_GetPrivateData(This,guid,pDataSize,pData) \ + ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) + +#define ID3D12CommandQueue1_SetPrivateData(This,guid,DataSize,pData) \ + ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) + +#define ID3D12CommandQueue1_SetPrivateDataInterface(This,guid,pData) \ + ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) + +#define ID3D12CommandQueue1_SetName(This,Name) \ + ( (This)->lpVtbl -> SetName(This,Name) ) + + +#define ID3D12CommandQueue1_GetDevice(This,riid,ppvDevice) \ + ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) ) + + + +#define ID3D12CommandQueue1_UpdateTileMappings(This,pResource,NumResourceRegions,pResourceRegionStartCoordinates,pResourceRegionSizes,pHeap,NumRanges,pRangeFlags,pHeapRangeStartOffsets,pRangeTileCounts,Flags) \ + ( (This)->lpVtbl -> UpdateTileMappings(This,pResource,NumResourceRegions,pResourceRegionStartCoordinates,pResourceRegionSizes,pHeap,NumRanges,pRangeFlags,pHeapRangeStartOffsets,pRangeTileCounts,Flags) ) + +#define ID3D12CommandQueue1_CopyTileMappings(This,pDstResource,pDstRegionStartCoordinate,pSrcResource,pSrcRegionStartCoordinate,pRegionSize,Flags) \ + ( (This)->lpVtbl -> CopyTileMappings(This,pDstResource,pDstRegionStartCoordinate,pSrcResource,pSrcRegionStartCoordinate,pRegionSize,Flags) ) + +#define ID3D12CommandQueue1_ExecuteCommandLists(This,NumCommandLists,ppCommandLists) \ + ( (This)->lpVtbl -> ExecuteCommandLists(This,NumCommandLists,ppCommandLists) ) + +#define ID3D12CommandQueue1_SetMarker(This,Metadata,pData,Size) \ + ( (This)->lpVtbl -> SetMarker(This,Metadata,pData,Size) ) + +#define ID3D12CommandQueue1_BeginEvent(This,Metadata,pData,Size) \ + ( (This)->lpVtbl -> BeginEvent(This,Metadata,pData,Size) ) + +#define ID3D12CommandQueue1_EndEvent(This) \ + ( (This)->lpVtbl -> EndEvent(This) ) + +#define ID3D12CommandQueue1_Signal(This,pFence,Value) \ + ( (This)->lpVtbl -> Signal(This,pFence,Value) ) + +#define ID3D12CommandQueue1_Wait(This,pFence,Value) \ + ( (This)->lpVtbl -> Wait(This,pFence,Value) ) + +#define ID3D12CommandQueue1_GetTimestampFrequency(This,pFrequency) \ + ( (This)->lpVtbl -> GetTimestampFrequency(This,pFrequency) ) + +#define ID3D12CommandQueue1_GetClockCalibration(This,pGpuTimestamp,pCpuTimestamp) \ + ( (This)->lpVtbl -> GetClockCalibration(This,pGpuTimestamp,pCpuTimestamp) ) +#if !defined(_WIN32) + +#define ID3D12CommandQueue1_GetDesc(This) \ + ( (This)->lpVtbl -> GetDesc(This) ) +#else +#define ID3D12CommandQueue1_GetDesc(This,RetVal) \ + ( (This)->lpVtbl -> GetDesc(This,RetVal) ) +#endif + + +#define ID3D12CommandQueue1_SetProcessPriority(This,Priority) \ + ( (This)->lpVtbl -> SetProcessPriority(This,Priority) ) + +#define ID3D12CommandQueue1_GetProcessPriority(This,pOutValue) \ + ( (This)->lpVtbl -> GetProcessPriority(This,pOutValue) ) + +#define ID3D12CommandQueue1_SetGlobalPriority(This,Priority) \ + ( (This)->lpVtbl -> SetGlobalPriority(This,Priority) ) + +#define ID3D12CommandQueue1_GetGlobalPriority(This,pOutValue) \ + ( (This)->lpVtbl -> GetGlobalPriority(This,pOutValue) ) + +#endif /* COBJMACROS */ + + +#endif /* C style interface */ + + + + +#endif /* __ID3D12CommandQueue1_INTERFACE_DEFINED__ */ + + #ifndef __ID3D12Device_INTERFACE_DEFINED__ #define __ID3D12Device_INTERFACE_DEFINED__ @@ -10121,7 +10667,7 @@ EXTERN_C const IID IID_ID3D12PipelineLibrary1; #endif /* __ID3D12PipelineLibrary1_INTERFACE_DEFINED__ */ -/* interface __MIDL_itf_d3d12_0000_0023 */ +/* interface __MIDL_itf_d3d12_0000_0025 */ /* [local] */ typedef @@ -10145,8 +10691,8 @@ enum D3D12_RESIDENCY_PRIORITY -extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0023_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0023_v0_0_s_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0025_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0025_v0_0_s_ifspec; #ifndef __ID3D12Device1_INTERFACE_DEFINED__ #define __ID3D12Device1_INTERFACE_DEFINED__ @@ -11332,7 +11878,7 @@ EXTERN_C const IID IID_ID3D12Device2; #endif /* __ID3D12Device2_INTERFACE_DEFINED__ */ -/* interface __MIDL_itf_d3d12_0000_0025 */ +/* interface __MIDL_itf_d3d12_0000_0027 */ /* [local] */ typedef @@ -11345,8 +11891,8 @@ enum D3D12_RESIDENCY_FLAGS DEFINE_ENUM_FLAG_OPERATORS( D3D12_RESIDENCY_FLAGS ) -extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0025_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0025_v0_0_s_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0027_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0027_v0_0_s_ifspec; #ifndef __ID3D12Device3_INTERFACE_DEFINED__ #define __ID3D12Device3_INTERFACE_DEFINED__ @@ -11984,7 +12530,7 @@ EXTERN_C const IID IID_ID3D12Device3; #endif /* __ID3D12Device3_INTERFACE_DEFINED__ */ -/* interface __MIDL_itf_d3d12_0000_0026 */ +/* interface __MIDL_itf_d3d12_0000_0028 */ /* [local] */ typedef @@ -12017,8 +12563,8 @@ enum D3D12_PROTECTED_SESSION_STATUS -extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0026_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0026_v0_0_s_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0028_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0028_v0_0_s_ifspec; #ifndef __ID3D12ProtectedSession_INTERFACE_DEFINED__ #define __ID3D12ProtectedSession_INTERFACE_DEFINED__ @@ -12162,7 +12708,7 @@ EXTERN_C const IID IID_ID3D12ProtectedSession; #endif /* __ID3D12ProtectedSession_INTERFACE_DEFINED__ */ -/* interface __MIDL_itf_d3d12_0000_0027 */ +/* interface __MIDL_itf_d3d12_0000_0029 */ /* [local] */ typedef @@ -12194,8 +12740,8 @@ typedef struct D3D12_PROTECTED_RESOURCE_SESSION_DESC -extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0027_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0027_v0_0_s_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0029_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0029_v0_0_s_ifspec; #ifndef __ID3D12ProtectedResourceSession_INTERFACE_DEFINED__ #define __ID3D12ProtectedResourceSession_INTERFACE_DEFINED__ @@ -13121,7 +13667,7 @@ EXTERN_C const IID IID_ID3D12Device4; #endif /* __ID3D12Device4_INTERFACE_DEFINED__ */ -/* interface __MIDL_itf_d3d12_0000_0029 */ +/* interface __MIDL_itf_d3d12_0000_0031 */ /* [local] */ typedef @@ -13134,8 +13680,8 @@ enum D3D12_LIFETIME_STATE -extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0029_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0029_v0_0_s_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0031_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0031_v0_0_s_ifspec; #ifndef __ID3D12LifetimeOwner_INTERFACE_DEFINED__ #define __ID3D12LifetimeOwner_INTERFACE_DEFINED__ @@ -13489,7 +14035,7 @@ EXTERN_C const IID IID_ID3D12LifetimeTracker; #endif /* __ID3D12LifetimeTracker_INTERFACE_DEFINED__ */ -/* interface __MIDL_itf_d3d12_0000_0032 */ +/* interface __MIDL_itf_d3d12_0000_0034 */ /* [local] */ typedef @@ -13561,8 +14107,8 @@ typedef struct D3D12_META_COMMAND_DESC -extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0032_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0032_v0_0_s_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0034_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0034_v0_0_s_ifspec; #ifndef __ID3D12StateObject_INTERFACE_DEFINED__ #define __ID3D12StateObject_INTERFACE_DEFINED__ @@ -13799,7 +14345,7 @@ EXTERN_C const IID IID_ID3D12StateObjectProperties; #endif /* __ID3D12StateObjectProperties_INTERFACE_DEFINED__ */ -/* interface __MIDL_itf_d3d12_0000_0034 */ +/* interface __MIDL_itf_d3d12_0000_0036 */ /* [local] */ typedef struct D3D12_PROGRAM_IDENTIFIER @@ -13809,8 +14355,8 @@ typedef struct D3D12_PROGRAM_IDENTIFIER -extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0034_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0034_v0_0_s_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0036_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0036_v0_0_s_ifspec; #ifndef __ID3D12StateObjectProperties1_INTERFACE_DEFINED__ #define __ID3D12StateObjectProperties1_INTERFACE_DEFINED__ @@ -13947,7 +14493,164 @@ EXTERN_C const IID IID_ID3D12StateObjectProperties1; #endif /* __ID3D12StateObjectProperties1_INTERFACE_DEFINED__ */ -/* interface __MIDL_itf_d3d12_0000_0035 */ +#ifndef __ID3D12StateObjectProperties2_INTERFACE_DEFINED__ +#define __ID3D12StateObjectProperties2_INTERFACE_DEFINED__ + +/* interface ID3D12StateObjectProperties2 */ +/* [unique][local][object][uuid] */ + + +EXTERN_C const IID IID_ID3D12StateObjectProperties2; + +#if defined(__cplusplus) && !defined(CINTERFACE) + + MIDL_INTERFACE("d5e82917-f0f1-44cf-ae5e-ce222dd0b884") + ID3D12StateObjectProperties2 : public ID3D12StateObjectProperties1 + { + public: + virtual HRESULT STDMETHODCALLTYPE GetGlobalRootSignatureForProgram( + LPCWSTR pProgramName, + REFIID riid, + _COM_Outptr_ void **ppvRootSignature) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetGlobalRootSignatureForShader( + LPCWSTR pExportName, + REFIID riid, + _COM_Outptr_ void **ppvRootSignature) = 0; + + }; + + +#else /* C style interface */ + + typedef struct ID3D12StateObjectProperties2Vtbl + { + BEGIN_INTERFACE + + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + ID3D12StateObjectProperties2 * This, + REFIID riid, + _COM_Outptr_ void **ppvObject); + + DECLSPEC_XFGVIRT(IUnknown, AddRef) + ULONG ( STDMETHODCALLTYPE *AddRef )( + ID3D12StateObjectProperties2 * This); + + DECLSPEC_XFGVIRT(IUnknown, Release) + ULONG ( STDMETHODCALLTYPE *Release )( + ID3D12StateObjectProperties2 * This); + + DECLSPEC_XFGVIRT(ID3D12StateObjectProperties, GetShaderIdentifier) + void *( STDMETHODCALLTYPE *GetShaderIdentifier )( + ID3D12StateObjectProperties2 * This, + _In_ LPCWSTR pExportName); + + DECLSPEC_XFGVIRT(ID3D12StateObjectProperties, GetShaderStackSize) + UINT64 ( STDMETHODCALLTYPE *GetShaderStackSize )( + ID3D12StateObjectProperties2 * This, + _In_ LPCWSTR pExportName); + + DECLSPEC_XFGVIRT(ID3D12StateObjectProperties, GetPipelineStackSize) + UINT64 ( STDMETHODCALLTYPE *GetPipelineStackSize )( + ID3D12StateObjectProperties2 * This); + + DECLSPEC_XFGVIRT(ID3D12StateObjectProperties, SetPipelineStackSize) + void ( STDMETHODCALLTYPE *SetPipelineStackSize )( + ID3D12StateObjectProperties2 * This, + UINT64 PipelineStackSizeInBytes); + + DECLSPEC_XFGVIRT(ID3D12StateObjectProperties1, GetProgramIdentifier) +#if !defined(_WIN32) + D3D12_PROGRAM_IDENTIFIER ( STDMETHODCALLTYPE *GetProgramIdentifier )( + ID3D12StateObjectProperties2 * This, + LPCWSTR pProgramName); + +#else + D3D12_PROGRAM_IDENTIFIER *( STDMETHODCALLTYPE *GetProgramIdentifier )( + ID3D12StateObjectProperties2 * This, + D3D12_PROGRAM_IDENTIFIER * RetVal, + LPCWSTR pProgramName); + +#endif + + DECLSPEC_XFGVIRT(ID3D12StateObjectProperties2, GetGlobalRootSignatureForProgram) + HRESULT ( STDMETHODCALLTYPE *GetGlobalRootSignatureForProgram )( + ID3D12StateObjectProperties2 * This, + LPCWSTR pProgramName, + REFIID riid, + _COM_Outptr_ void **ppvRootSignature); + + DECLSPEC_XFGVIRT(ID3D12StateObjectProperties2, GetGlobalRootSignatureForShader) + HRESULT ( STDMETHODCALLTYPE *GetGlobalRootSignatureForShader )( + ID3D12StateObjectProperties2 * This, + LPCWSTR pExportName, + REFIID riid, + _COM_Outptr_ void **ppvRootSignature); + + END_INTERFACE + } ID3D12StateObjectProperties2Vtbl; + + interface ID3D12StateObjectProperties2 + { + CONST_VTBL struct ID3D12StateObjectProperties2Vtbl *lpVtbl; + }; + + + +#ifdef COBJMACROS + + +#define ID3D12StateObjectProperties2_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + +#define ID3D12StateObjectProperties2_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) + +#define ID3D12StateObjectProperties2_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) + + +#define ID3D12StateObjectProperties2_GetShaderIdentifier(This,pExportName) \ + ( (This)->lpVtbl -> GetShaderIdentifier(This,pExportName) ) + +#define ID3D12StateObjectProperties2_GetShaderStackSize(This,pExportName) \ + ( (This)->lpVtbl -> GetShaderStackSize(This,pExportName) ) + +#define ID3D12StateObjectProperties2_GetPipelineStackSize(This) \ + ( (This)->lpVtbl -> GetPipelineStackSize(This) ) + +#define ID3D12StateObjectProperties2_SetPipelineStackSize(This,PipelineStackSizeInBytes) \ + ( (This)->lpVtbl -> SetPipelineStackSize(This,PipelineStackSizeInBytes) ) + +#if !defined(_WIN32) + +#define ID3D12StateObjectProperties2_GetProgramIdentifier(This,pProgramName) \ + ( (This)->lpVtbl -> GetProgramIdentifier(This,pProgramName) ) +#else +#define ID3D12StateObjectProperties2_GetProgramIdentifier(This,RetVal,pProgramName) \ + ( (This)->lpVtbl -> GetProgramIdentifier(This,RetVal,pProgramName) ) +#endif + + +#define ID3D12StateObjectProperties2_GetGlobalRootSignatureForProgram(This,pProgramName,riid,ppvRootSignature) \ + ( (This)->lpVtbl -> GetGlobalRootSignatureForProgram(This,pProgramName,riid,ppvRootSignature) ) + +#define ID3D12StateObjectProperties2_GetGlobalRootSignatureForShader(This,pExportName,riid,ppvRootSignature) \ + ( (This)->lpVtbl -> GetGlobalRootSignatureForShader(This,pExportName,riid,ppvRootSignature) ) + +#endif /* COBJMACROS */ + + +#endif /* C style interface */ + + + + +#endif /* __ID3D12StateObjectProperties2_INTERFACE_DEFINED__ */ + + +/* interface __MIDL_itf_d3d12_0000_0038 */ /* [local] */ typedef struct D3D12_NODE_ID @@ -13965,8 +14668,8 @@ typedef struct D3D12_WORK_GRAPH_MEMORY_REQUIREMENTS -extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0035_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0035_v0_0_s_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0038_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0038_v0_0_s_ifspec; #ifndef __ID3D12WorkGraphProperties_INTERFACE_DEFINED__ #define __ID3D12WorkGraphProperties_INTERFACE_DEFINED__ @@ -14241,7 +14944,7 @@ EXTERN_C const IID IID_ID3D12WorkGraphProperties; #endif /* __ID3D12WorkGraphProperties_INTERFACE_DEFINED__ */ -/* interface __MIDL_itf_d3d12_0000_0036 */ +/* interface __MIDL_itf_d3d12_0000_0039 */ /* [local] */ typedef @@ -14276,7 +14979,11 @@ enum D3D12_STATE_SUBOBJECT_TYPE D3D12_STATE_SUBOBJECT_TYPE_VIEW_INSTANCING = 28, D3D12_STATE_SUBOBJECT_TYPE_GENERIC_PROGRAM = 29, D3D12_STATE_SUBOBJECT_TYPE_DEPTH_STENCIL2 = 30, - D3D12_STATE_SUBOBJECT_TYPE_MAX_VALID = ( D3D12_STATE_SUBOBJECT_TYPE_DEPTH_STENCIL2 + 1 ) + D3D12_STATE_SUBOBJECT_TYPE_GLOBAL_SERIALIZED_ROOT_SIGNATURE = 31, + D3D12_STATE_SUBOBJECT_TYPE_LOCAL_SERIALIZED_ROOT_SIGNATURE = 32, + D3D12_STATE_SUBOBJECT_TYPE_COMPILER_EXISITING_COLLECTION = 33, + D3D12_STATE_SUBOBJECT_TYPE_EXISTING_COLLECTION_BY_KEY = 36, + D3D12_STATE_SUBOBJECT_TYPE_MAX_VALID = ( D3D12_STATE_SUBOBJECT_TYPE_EXISTING_COLLECTION_BY_KEY + 1 ) } D3D12_STATE_SUBOBJECT_TYPE; typedef struct D3D12_STATE_SUBOBJECT @@ -14949,8 +15656,8 @@ enum D3D12_HIT_KIND -extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0036_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0036_v0_0_s_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0039_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0039_v0_0_s_ifspec; #ifndef __ID3D12Device5_INTERFACE_DEFINED__ #define __ID3D12Device5_INTERFACE_DEFINED__ @@ -15780,62 +16487,125 @@ EXTERN_C const IID IID_ID3D12Device5; #endif /* __ID3D12Device5_INTERFACE_DEFINED__ */ -/* interface __MIDL_itf_d3d12_0000_0037 */ +/* interface __MIDL_itf_d3d12_0000_0040 */ /* [local] */ +typedef +enum D3D12_MARKER_API + { + D3D12_MARKER_API_SETMARKER = 0, + D3D12_MARKER_API_BEGINEVENT = 1, + D3D12_MARKER_API_ENDEVENT = 2, + D3D12_MARKER_API_DRAWINSTANCED = 3, + D3D12_MARKER_API_DRAWINDEXEDINSTANCED = 4, + D3D12_MARKER_API_EXECUTEINDIRECT = 5, + D3D12_MARKER_API_DISPATCH = 6, + D3D12_MARKER_API_COPYBUFFERREGION = 7, + D3D12_MARKER_API_COPYTEXTUREREGION = 8, + D3D12_MARKER_API_COPYRESOURCE = 9, + D3D12_MARKER_API_COPYTILES = 10, + D3D12_MARKER_API_RESOLVESUBRESOURCE = 11, + D3D12_MARKER_API_CLEARRENDERTARGETVIEW = 12, + D3D12_MARKER_API_CLEARUNORDEREDACCESSVIEW = 13, + D3D12_MARKER_API_CLEARDEPTHSTENCILVIEW = 14, + D3D12_MARKER_API_RESOURCEBARRIER = 15, + D3D12_MARKER_API_EXECUTEBUNDLE = 16, + D3D12_MARKER_API_PRESENT = 17, + D3D12_MARKER_API_RESOLVEQUERYDATA = 18, + D3D12_MARKER_API_BEGINSUBMISSION = 19, + D3D12_MARKER_API_ENDSUBMISSION = 20, + D3D12_MARKER_API_DECODEFRAME = 21, + D3D12_MARKER_API_PROCESSFRAMES = 22, + D3D12_MARKER_API_ATOMICCOPYBUFFERUINT = 23, + D3D12_MARKER_API_ATOMICCOPYBUFFERUINT64 = 24, + D3D12_MARKER_API_RESOLVESUBRESOURCEREGION = 25, + D3D12_MARKER_API_WRITEBUFFERIMMEDIATE = 26, + D3D12_MARKER_API_DECODEFRAME1 = 27, + D3D12_MARKER_API_SETPROTECTEDRESOURCESESSION = 28, + D3D12_MARKER_API_DECODEFRAME2 = 29, + D3D12_MARKER_API_PROCESSFRAMES1 = 30, + D3D12_MARKER_API_BUILDRAYTRACINGACCELERATIONSTRUCTURE = 31, + D3D12_MARKER_API_EMITRAYTRACINGACCELERATIONSTRUCTUREPOSTBUILDINFO = 32, + D3D12_MARKER_API_COPYRAYTRACINGACCELERATIONSTRUCTURE = 33, + D3D12_MARKER_API_DISPATCHRAYS = 34, + D3D12_MARKER_API_INITIALIZEMETACOMMAND = 35, + D3D12_MARKER_API_EXECUTEMETACOMMAND = 36, + D3D12_MARKER_API_ESTIMATEMOTION = 37, + D3D12_MARKER_API_RESOLVEMOTIONVECTORHEAP = 38, + D3D12_MARKER_API_SETPIPELINESTATE1 = 39, + D3D12_MARKER_API_INITIALIZEEXTENSIONCOMMAND = 40, + D3D12_MARKER_API_EXECUTEEXTENSIONCOMMAND = 41, + D3D12_MARKER_API_DISPATCHMESH = 42, + D3D12_MARKER_API_ENCODEFRAME = 43, + D3D12_MARKER_API_RESOLVEENCODEROUTPUTMETADATA = 44, + D3D12_MARKER_API_BARRIER = 45, + D3D12_MARKER_API_BEGIN_COMMAND_LIST = 46, + D3D12_MARKER_API_DISPATCHGRAPH = 47, + D3D12_MARKER_API_SETPROGRAM = 48, + D3D12_MARKER_API_ENCODEFRAME1 = 49, + D3D12_MARKER_API_RESOLVEENCODEROUTPUTMETADATA1 = 50, + D3D12_MARKER_API_RESOLVEINPUTPARAMLAYOUT = 51, + D3D12_MARKER_API_PROCESSFRAMES2 = 52, + D3D12_MARKER_API_SET_WORK_GRAPH_MAXIMUM_GPU_INPUT_RECORDS = 53 + } D3D12_MARKER_API; + typedef enum D3D12_AUTO_BREADCRUMB_OP { - D3D12_AUTO_BREADCRUMB_OP_SETMARKER = 0, - D3D12_AUTO_BREADCRUMB_OP_BEGINEVENT = 1, - D3D12_AUTO_BREADCRUMB_OP_ENDEVENT = 2, - D3D12_AUTO_BREADCRUMB_OP_DRAWINSTANCED = 3, - D3D12_AUTO_BREADCRUMB_OP_DRAWINDEXEDINSTANCED = 4, - D3D12_AUTO_BREADCRUMB_OP_EXECUTEINDIRECT = 5, - D3D12_AUTO_BREADCRUMB_OP_DISPATCH = 6, - D3D12_AUTO_BREADCRUMB_OP_COPYBUFFERREGION = 7, - D3D12_AUTO_BREADCRUMB_OP_COPYTEXTUREREGION = 8, - D3D12_AUTO_BREADCRUMB_OP_COPYRESOURCE = 9, - D3D12_AUTO_BREADCRUMB_OP_COPYTILES = 10, - D3D12_AUTO_BREADCRUMB_OP_RESOLVESUBRESOURCE = 11, - D3D12_AUTO_BREADCRUMB_OP_CLEARRENDERTARGETVIEW = 12, - D3D12_AUTO_BREADCRUMB_OP_CLEARUNORDEREDACCESSVIEW = 13, - D3D12_AUTO_BREADCRUMB_OP_CLEARDEPTHSTENCILVIEW = 14, - D3D12_AUTO_BREADCRUMB_OP_RESOURCEBARRIER = 15, - D3D12_AUTO_BREADCRUMB_OP_EXECUTEBUNDLE = 16, - D3D12_AUTO_BREADCRUMB_OP_PRESENT = 17, - D3D12_AUTO_BREADCRUMB_OP_RESOLVEQUERYDATA = 18, - D3D12_AUTO_BREADCRUMB_OP_BEGINSUBMISSION = 19, - D3D12_AUTO_BREADCRUMB_OP_ENDSUBMISSION = 20, - D3D12_AUTO_BREADCRUMB_OP_DECODEFRAME = 21, - D3D12_AUTO_BREADCRUMB_OP_PROCESSFRAMES = 22, - D3D12_AUTO_BREADCRUMB_OP_ATOMICCOPYBUFFERUINT = 23, - D3D12_AUTO_BREADCRUMB_OP_ATOMICCOPYBUFFERUINT64 = 24, - D3D12_AUTO_BREADCRUMB_OP_RESOLVESUBRESOURCEREGION = 25, - D3D12_AUTO_BREADCRUMB_OP_WRITEBUFFERIMMEDIATE = 26, - D3D12_AUTO_BREADCRUMB_OP_DECODEFRAME1 = 27, - D3D12_AUTO_BREADCRUMB_OP_SETPROTECTEDRESOURCESESSION = 28, - D3D12_AUTO_BREADCRUMB_OP_DECODEFRAME2 = 29, - D3D12_AUTO_BREADCRUMB_OP_PROCESSFRAMES1 = 30, - D3D12_AUTO_BREADCRUMB_OP_BUILDRAYTRACINGACCELERATIONSTRUCTURE = 31, - D3D12_AUTO_BREADCRUMB_OP_EMITRAYTRACINGACCELERATIONSTRUCTUREPOSTBUILDINFO = 32, - D3D12_AUTO_BREADCRUMB_OP_COPYRAYTRACINGACCELERATIONSTRUCTURE = 33, - D3D12_AUTO_BREADCRUMB_OP_DISPATCHRAYS = 34, - D3D12_AUTO_BREADCRUMB_OP_INITIALIZEMETACOMMAND = 35, - D3D12_AUTO_BREADCRUMB_OP_EXECUTEMETACOMMAND = 36, - D3D12_AUTO_BREADCRUMB_OP_ESTIMATEMOTION = 37, - D3D12_AUTO_BREADCRUMB_OP_RESOLVEMOTIONVECTORHEAP = 38, - D3D12_AUTO_BREADCRUMB_OP_SETPIPELINESTATE1 = 39, - D3D12_AUTO_BREADCRUMB_OP_INITIALIZEEXTENSIONCOMMAND = 40, - D3D12_AUTO_BREADCRUMB_OP_EXECUTEEXTENSIONCOMMAND = 41, - D3D12_AUTO_BREADCRUMB_OP_DISPATCHMESH = 42, - D3D12_AUTO_BREADCRUMB_OP_ENCODEFRAME = 43, - D3D12_AUTO_BREADCRUMB_OP_RESOLVEENCODEROUTPUTMETADATA = 44, - D3D12_AUTO_BREADCRUMB_OP_BARRIER = 45, - D3D12_AUTO_BREADCRUMB_OP_BEGIN_COMMAND_LIST = 46, - D3D12_AUTO_BREADCRUMB_OP_DISPATCHGRAPH = 47, - D3D12_AUTO_BREADCRUMB_OP_SETPROGRAM = 48, - D3D12_AUTO_BREADCRUMB_OP_PROCESSFRAMES2 = 52 + D3D12_AUTO_BREADCRUMB_OP_SETMARKER = D3D12_MARKER_API_SETMARKER, + D3D12_AUTO_BREADCRUMB_OP_BEGINEVENT = D3D12_MARKER_API_BEGINEVENT, + D3D12_AUTO_BREADCRUMB_OP_ENDEVENT = D3D12_MARKER_API_ENDEVENT, + D3D12_AUTO_BREADCRUMB_OP_DRAWINSTANCED = D3D12_MARKER_API_DRAWINSTANCED, + D3D12_AUTO_BREADCRUMB_OP_DRAWINDEXEDINSTANCED = D3D12_MARKER_API_DRAWINDEXEDINSTANCED, + D3D12_AUTO_BREADCRUMB_OP_EXECUTEINDIRECT = D3D12_MARKER_API_EXECUTEINDIRECT, + D3D12_AUTO_BREADCRUMB_OP_DISPATCH = D3D12_MARKER_API_DISPATCH, + D3D12_AUTO_BREADCRUMB_OP_COPYBUFFERREGION = D3D12_MARKER_API_COPYBUFFERREGION, + D3D12_AUTO_BREADCRUMB_OP_COPYTEXTUREREGION = D3D12_MARKER_API_COPYTEXTUREREGION, + D3D12_AUTO_BREADCRUMB_OP_COPYRESOURCE = D3D12_MARKER_API_COPYRESOURCE, + D3D12_AUTO_BREADCRUMB_OP_COPYTILES = D3D12_MARKER_API_COPYTILES, + D3D12_AUTO_BREADCRUMB_OP_RESOLVESUBRESOURCE = D3D12_MARKER_API_RESOLVESUBRESOURCE, + D3D12_AUTO_BREADCRUMB_OP_CLEARRENDERTARGETVIEW = D3D12_MARKER_API_CLEARRENDERTARGETVIEW, + D3D12_AUTO_BREADCRUMB_OP_CLEARUNORDEREDACCESSVIEW = D3D12_MARKER_API_CLEARUNORDEREDACCESSVIEW, + D3D12_AUTO_BREADCRUMB_OP_CLEARDEPTHSTENCILVIEW = D3D12_MARKER_API_CLEARDEPTHSTENCILVIEW, + D3D12_AUTO_BREADCRUMB_OP_RESOURCEBARRIER = D3D12_MARKER_API_RESOURCEBARRIER, + D3D12_AUTO_BREADCRUMB_OP_EXECUTEBUNDLE = D3D12_MARKER_API_EXECUTEBUNDLE, + D3D12_AUTO_BREADCRUMB_OP_PRESENT = D3D12_MARKER_API_PRESENT, + D3D12_AUTO_BREADCRUMB_OP_RESOLVEQUERYDATA = D3D12_MARKER_API_RESOLVEQUERYDATA, + D3D12_AUTO_BREADCRUMB_OP_BEGINSUBMISSION = D3D12_MARKER_API_BEGINSUBMISSION, + D3D12_AUTO_BREADCRUMB_OP_ENDSUBMISSION = D3D12_MARKER_API_ENDSUBMISSION, + D3D12_AUTO_BREADCRUMB_OP_DECODEFRAME = D3D12_MARKER_API_DECODEFRAME, + D3D12_AUTO_BREADCRUMB_OP_PROCESSFRAMES = D3D12_MARKER_API_PROCESSFRAMES, + D3D12_AUTO_BREADCRUMB_OP_ATOMICCOPYBUFFERUINT = D3D12_MARKER_API_ATOMICCOPYBUFFERUINT, + D3D12_AUTO_BREADCRUMB_OP_ATOMICCOPYBUFFERUINT64 = D3D12_MARKER_API_ATOMICCOPYBUFFERUINT64, + D3D12_AUTO_BREADCRUMB_OP_RESOLVESUBRESOURCEREGION = D3D12_MARKER_API_RESOLVESUBRESOURCEREGION, + D3D12_AUTO_BREADCRUMB_OP_WRITEBUFFERIMMEDIATE = D3D12_MARKER_API_WRITEBUFFERIMMEDIATE, + D3D12_AUTO_BREADCRUMB_OP_DECODEFRAME1 = D3D12_MARKER_API_DECODEFRAME1, + D3D12_AUTO_BREADCRUMB_OP_SETPROTECTEDRESOURCESESSION = D3D12_MARKER_API_SETPROTECTEDRESOURCESESSION, + D3D12_AUTO_BREADCRUMB_OP_DECODEFRAME2 = D3D12_MARKER_API_DECODEFRAME2, + D3D12_AUTO_BREADCRUMB_OP_PROCESSFRAMES1 = D3D12_MARKER_API_PROCESSFRAMES1, + D3D12_AUTO_BREADCRUMB_OP_BUILDRAYTRACINGACCELERATIONSTRUCTURE = D3D12_MARKER_API_BUILDRAYTRACINGACCELERATIONSTRUCTURE, + D3D12_AUTO_BREADCRUMB_OP_EMITRAYTRACINGACCELERATIONSTRUCTUREPOSTBUILDINFO = D3D12_MARKER_API_EMITRAYTRACINGACCELERATIONSTRUCTUREPOSTBUILDINFO, + D3D12_AUTO_BREADCRUMB_OP_COPYRAYTRACINGACCELERATIONSTRUCTURE = D3D12_MARKER_API_COPYRAYTRACINGACCELERATIONSTRUCTURE, + D3D12_AUTO_BREADCRUMB_OP_DISPATCHRAYS = D3D12_MARKER_API_DISPATCHRAYS, + D3D12_AUTO_BREADCRUMB_OP_INITIALIZEMETACOMMAND = D3D12_MARKER_API_INITIALIZEMETACOMMAND, + D3D12_AUTO_BREADCRUMB_OP_EXECUTEMETACOMMAND = D3D12_MARKER_API_EXECUTEMETACOMMAND, + D3D12_AUTO_BREADCRUMB_OP_ESTIMATEMOTION = D3D12_MARKER_API_ESTIMATEMOTION, + D3D12_AUTO_BREADCRUMB_OP_RESOLVEMOTIONVECTORHEAP = D3D12_MARKER_API_RESOLVEMOTIONVECTORHEAP, + D3D12_AUTO_BREADCRUMB_OP_SETPIPELINESTATE1 = D3D12_MARKER_API_SETPIPELINESTATE1, + D3D12_AUTO_BREADCRUMB_OP_INITIALIZEEXTENSIONCOMMAND = D3D12_MARKER_API_INITIALIZEEXTENSIONCOMMAND, + D3D12_AUTO_BREADCRUMB_OP_EXECUTEEXTENSIONCOMMAND = D3D12_MARKER_API_EXECUTEEXTENSIONCOMMAND, + D3D12_AUTO_BREADCRUMB_OP_DISPATCHMESH = D3D12_MARKER_API_DISPATCHMESH, + D3D12_AUTO_BREADCRUMB_OP_ENCODEFRAME = D3D12_MARKER_API_ENCODEFRAME, + D3D12_AUTO_BREADCRUMB_OP_RESOLVEENCODEROUTPUTMETADATA = D3D12_MARKER_API_RESOLVEENCODEROUTPUTMETADATA, + D3D12_AUTO_BREADCRUMB_OP_BARRIER = D3D12_MARKER_API_BARRIER, + D3D12_AUTO_BREADCRUMB_OP_BEGIN_COMMAND_LIST = D3D12_MARKER_API_BEGIN_COMMAND_LIST, + D3D12_AUTO_BREADCRUMB_OP_DISPATCHGRAPH = D3D12_MARKER_API_DISPATCHGRAPH, + D3D12_AUTO_BREADCRUMB_OP_SETPROGRAM = D3D12_MARKER_API_SETPROGRAM, + D3D12_AUTO_BREADCRUMB_OP_ENCODEFRAME1 = D3D12_MARKER_API_ENCODEFRAME1, + D3D12_AUTO_BREADCRUMB_OP_RESOLVEENCODEROUTPUTMETADATA1 = D3D12_MARKER_API_RESOLVEENCODEROUTPUTMETADATA1, + D3D12_AUTO_BREADCRUMB_OP_RESOLVEINPUTPARAMLAYOUT = D3D12_MARKER_API_RESOLVEINPUTPARAMLAYOUT, + D3D12_AUTO_BREADCRUMB_OP_PROCESSFRAMES2 = D3D12_MARKER_API_PROCESSFRAMES2, + D3D12_AUTO_BREADCRUMB_OP_SET_WORK_GRAPH_MAXIMUM_GPU_INPUT_RECORDS = D3D12_MARKER_API_SET_WORK_GRAPH_MAXIMUM_GPU_INPUT_RECORDS } D3D12_AUTO_BREADCRUMB_OP; typedef struct D3D12_AUTO_BREADCRUMB_NODE @@ -16041,8 +16811,8 @@ typedef struct D3D12_VERSIONED_DEVICE_REMOVED_EXTENDED_DATA -extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0037_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0037_v0_0_s_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0040_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0040_v0_0_s_ifspec; #ifndef __ID3D12DeviceRemovedExtendedDataSettings_INTERFACE_DEFINED__ #define __ID3D12DeviceRemovedExtendedDataSettings_INTERFACE_DEFINED__ @@ -16705,7 +17475,7 @@ EXTERN_C const IID IID_ID3D12DeviceRemovedExtendedData2; #endif /* __ID3D12DeviceRemovedExtendedData2_INTERFACE_DEFINED__ */ -/* interface __MIDL_itf_d3d12_0000_0043 */ +/* interface __MIDL_itf_d3d12_0000_0046 */ /* [local] */ typedef @@ -16728,8 +17498,8 @@ enum D3D12_MEASUREMENTS_ACTION -extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0043_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0043_v0_0_s_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0046_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0046_v0_0_s_ifspec; #ifndef __ID3D12Device6_INTERFACE_DEFINED__ #define __ID3D12Device6_INTERFACE_DEFINED__ @@ -17538,7 +18308,7 @@ EXTERN_C const IID IID_ID3D12Device6; #endif /* __ID3D12Device6_INTERFACE_DEFINED__ */ -/* interface __MIDL_itf_d3d12_0000_0044 */ +/* interface __MIDL_itf_d3d12_0000_0047 */ /* [local] */ DEFINE_GUID(D3D12_PROTECTED_RESOURCES_SESSION_HARDWARE_PROTECTED, 0x62B0084E, 0xC70E, 0x4DAA, 0xA1, 0x09, 0x30, 0xFF, 0x8D, 0x5A, 0x04, 0x82); @@ -17564,8 +18334,8 @@ typedef struct D3D12_PROTECTED_RESOURCE_SESSION_DESC1 -extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0044_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0044_v0_0_s_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0047_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0047_v0_0_s_ifspec; #ifndef __ID3D12ProtectedResourceSession1_INTERFACE_DEFINED__ #define __ID3D12ProtectedResourceSession1_INTERFACE_DEFINED__ @@ -20874,7 +21644,7 @@ EXTERN_C const IID IID_ID3D12GraphicsCommandList3; #endif /* __ID3D12GraphicsCommandList3_INTERFACE_DEFINED__ */ -/* interface __MIDL_itf_d3d12_0000_0051 */ +/* interface __MIDL_itf_d3d12_0000_0054 */ /* [local] */ typedef @@ -20988,8 +21758,8 @@ enum D3D12_RENDER_PASS_FLAGS DEFINE_ENUM_FLAG_OPERATORS( D3D12_RENDER_PASS_FLAGS ) -extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0051_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0051_v0_0_s_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0054_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0054_v0_0_s_ifspec; #ifndef __ID3D12MetaCommand_INTERFACE_DEFINED__ #define __ID3D12MetaCommand_INTERFACE_DEFINED__ @@ -21125,7 +21895,7 @@ EXTERN_C const IID IID_ID3D12MetaCommand; #endif /* __ID3D12MetaCommand_INTERFACE_DEFINED__ */ -/* interface __MIDL_itf_d3d12_0000_0052 */ +/* interface __MIDL_itf_d3d12_0000_0055 */ /* [local] */ typedef struct D3D12_DISPATCH_RAYS_DESC @@ -21235,8 +22005,8 @@ typedef struct D3D12_DISPATCH_GRAPH_DESC -extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0052_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0052_v0_0_s_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0055_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0055_v0_0_s_ifspec; #ifndef __ID3D12GraphicsCommandList4_INTERFACE_DEFINED__ #define __ID3D12GraphicsCommandList4_INTERFACE_DEFINED__ @@ -22085,7 +22855,7 @@ EXTERN_C const IID IID_ID3D12GraphicsCommandList4; #endif /* __ID3D12GraphicsCommandList4_INTERFACE_DEFINED__ */ -/* interface __MIDL_itf_d3d12_0000_0053 */ +/* interface __MIDL_itf_d3d12_0000_0056 */ /* [local] */ typedef @@ -22121,36 +22891,36 @@ enum D3D12_BARRIER_LAYOUT D3D12_BARRIER_LAYOUT_UNDEFINED = 0xffffffff, D3D12_BARRIER_LAYOUT_COMMON = 0, D3D12_BARRIER_LAYOUT_PRESENT = 0, - D3D12_BARRIER_LAYOUT_GENERIC_READ = ( D3D12_BARRIER_LAYOUT_PRESENT + 1 ) , - D3D12_BARRIER_LAYOUT_RENDER_TARGET = ( D3D12_BARRIER_LAYOUT_GENERIC_READ + 1 ) , - D3D12_BARRIER_LAYOUT_UNORDERED_ACCESS = ( D3D12_BARRIER_LAYOUT_RENDER_TARGET + 1 ) , - D3D12_BARRIER_LAYOUT_DEPTH_STENCIL_WRITE = ( D3D12_BARRIER_LAYOUT_UNORDERED_ACCESS + 1 ) , - D3D12_BARRIER_LAYOUT_DEPTH_STENCIL_READ = ( D3D12_BARRIER_LAYOUT_DEPTH_STENCIL_WRITE + 1 ) , - D3D12_BARRIER_LAYOUT_SHADER_RESOURCE = ( D3D12_BARRIER_LAYOUT_DEPTH_STENCIL_READ + 1 ) , - D3D12_BARRIER_LAYOUT_COPY_SOURCE = ( D3D12_BARRIER_LAYOUT_SHADER_RESOURCE + 1 ) , - D3D12_BARRIER_LAYOUT_COPY_DEST = ( D3D12_BARRIER_LAYOUT_COPY_SOURCE + 1 ) , - D3D12_BARRIER_LAYOUT_RESOLVE_SOURCE = ( D3D12_BARRIER_LAYOUT_COPY_DEST + 1 ) , - D3D12_BARRIER_LAYOUT_RESOLVE_DEST = ( D3D12_BARRIER_LAYOUT_RESOLVE_SOURCE + 1 ) , - D3D12_BARRIER_LAYOUT_SHADING_RATE_SOURCE = ( D3D12_BARRIER_LAYOUT_RESOLVE_DEST + 1 ) , - D3D12_BARRIER_LAYOUT_VIDEO_DECODE_READ = ( D3D12_BARRIER_LAYOUT_SHADING_RATE_SOURCE + 1 ) , - D3D12_BARRIER_LAYOUT_VIDEO_DECODE_WRITE = ( D3D12_BARRIER_LAYOUT_VIDEO_DECODE_READ + 1 ) , - D3D12_BARRIER_LAYOUT_VIDEO_PROCESS_READ = ( D3D12_BARRIER_LAYOUT_VIDEO_DECODE_WRITE + 1 ) , - D3D12_BARRIER_LAYOUT_VIDEO_PROCESS_WRITE = ( D3D12_BARRIER_LAYOUT_VIDEO_PROCESS_READ + 1 ) , - D3D12_BARRIER_LAYOUT_VIDEO_ENCODE_READ = ( D3D12_BARRIER_LAYOUT_VIDEO_PROCESS_WRITE + 1 ) , - D3D12_BARRIER_LAYOUT_VIDEO_ENCODE_WRITE = ( D3D12_BARRIER_LAYOUT_VIDEO_ENCODE_READ + 1 ) , - D3D12_BARRIER_LAYOUT_DIRECT_QUEUE_COMMON = ( D3D12_BARRIER_LAYOUT_VIDEO_ENCODE_WRITE + 1 ) , - D3D12_BARRIER_LAYOUT_DIRECT_QUEUE_GENERIC_READ = ( D3D12_BARRIER_LAYOUT_DIRECT_QUEUE_COMMON + 1 ) , - D3D12_BARRIER_LAYOUT_DIRECT_QUEUE_UNORDERED_ACCESS = ( D3D12_BARRIER_LAYOUT_DIRECT_QUEUE_GENERIC_READ + 1 ) , - D3D12_BARRIER_LAYOUT_DIRECT_QUEUE_SHADER_RESOURCE = ( D3D12_BARRIER_LAYOUT_DIRECT_QUEUE_UNORDERED_ACCESS + 1 ) , - D3D12_BARRIER_LAYOUT_DIRECT_QUEUE_COPY_SOURCE = ( D3D12_BARRIER_LAYOUT_DIRECT_QUEUE_SHADER_RESOURCE + 1 ) , - D3D12_BARRIER_LAYOUT_DIRECT_QUEUE_COPY_DEST = ( D3D12_BARRIER_LAYOUT_DIRECT_QUEUE_COPY_SOURCE + 1 ) , - D3D12_BARRIER_LAYOUT_COMPUTE_QUEUE_COMMON = ( D3D12_BARRIER_LAYOUT_DIRECT_QUEUE_COPY_DEST + 1 ) , - D3D12_BARRIER_LAYOUT_COMPUTE_QUEUE_GENERIC_READ = ( D3D12_BARRIER_LAYOUT_COMPUTE_QUEUE_COMMON + 1 ) , - D3D12_BARRIER_LAYOUT_COMPUTE_QUEUE_UNORDERED_ACCESS = ( D3D12_BARRIER_LAYOUT_COMPUTE_QUEUE_GENERIC_READ + 1 ) , - D3D12_BARRIER_LAYOUT_COMPUTE_QUEUE_SHADER_RESOURCE = ( D3D12_BARRIER_LAYOUT_COMPUTE_QUEUE_UNORDERED_ACCESS + 1 ) , - D3D12_BARRIER_LAYOUT_COMPUTE_QUEUE_COPY_SOURCE = ( D3D12_BARRIER_LAYOUT_COMPUTE_QUEUE_SHADER_RESOURCE + 1 ) , - D3D12_BARRIER_LAYOUT_COMPUTE_QUEUE_COPY_DEST = ( D3D12_BARRIER_LAYOUT_COMPUTE_QUEUE_COPY_SOURCE + 1 ) , - D3D12_BARRIER_LAYOUT_VIDEO_QUEUE_COMMON = ( D3D12_BARRIER_LAYOUT_COMPUTE_QUEUE_COPY_DEST + 1 ) + D3D12_BARRIER_LAYOUT_GENERIC_READ = 1, + D3D12_BARRIER_LAYOUT_RENDER_TARGET = 2, + D3D12_BARRIER_LAYOUT_UNORDERED_ACCESS = 3, + D3D12_BARRIER_LAYOUT_DEPTH_STENCIL_WRITE = 4, + D3D12_BARRIER_LAYOUT_DEPTH_STENCIL_READ = 5, + D3D12_BARRIER_LAYOUT_SHADER_RESOURCE = 6, + D3D12_BARRIER_LAYOUT_COPY_SOURCE = 7, + D3D12_BARRIER_LAYOUT_COPY_DEST = 8, + D3D12_BARRIER_LAYOUT_RESOLVE_SOURCE = 9, + D3D12_BARRIER_LAYOUT_RESOLVE_DEST = 10, + D3D12_BARRIER_LAYOUT_SHADING_RATE_SOURCE = 11, + D3D12_BARRIER_LAYOUT_VIDEO_DECODE_READ = 12, + D3D12_BARRIER_LAYOUT_VIDEO_DECODE_WRITE = 13, + D3D12_BARRIER_LAYOUT_VIDEO_PROCESS_READ = 14, + D3D12_BARRIER_LAYOUT_VIDEO_PROCESS_WRITE = 15, + D3D12_BARRIER_LAYOUT_VIDEO_ENCODE_READ = 16, + D3D12_BARRIER_LAYOUT_VIDEO_ENCODE_WRITE = 17, + D3D12_BARRIER_LAYOUT_DIRECT_QUEUE_COMMON = 18, + D3D12_BARRIER_LAYOUT_DIRECT_QUEUE_GENERIC_READ = 19, + D3D12_BARRIER_LAYOUT_DIRECT_QUEUE_UNORDERED_ACCESS = 20, + D3D12_BARRIER_LAYOUT_DIRECT_QUEUE_SHADER_RESOURCE = 21, + D3D12_BARRIER_LAYOUT_DIRECT_QUEUE_COPY_SOURCE = 22, + D3D12_BARRIER_LAYOUT_DIRECT_QUEUE_COPY_DEST = 23, + D3D12_BARRIER_LAYOUT_COMPUTE_QUEUE_COMMON = 24, + D3D12_BARRIER_LAYOUT_COMPUTE_QUEUE_GENERIC_READ = 25, + D3D12_BARRIER_LAYOUT_COMPUTE_QUEUE_UNORDERED_ACCESS = 26, + D3D12_BARRIER_LAYOUT_COMPUTE_QUEUE_SHADER_RESOURCE = 27, + D3D12_BARRIER_LAYOUT_COMPUTE_QUEUE_COPY_SOURCE = 28, + D3D12_BARRIER_LAYOUT_COMPUTE_QUEUE_COPY_DEST = 29, + D3D12_BARRIER_LAYOUT_DIRECT_QUEUE_GENERIC_READ_COMPUTE_QUEUE_ACCESSIBLE = 31 } D3D12_BARRIER_LAYOUT; typedef @@ -22287,8 +23057,8 @@ typedef struct D3D12_BARRIER_GROUP -extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0053_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0053_v0_0_s_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0056_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0056_v0_0_s_ifspec; #ifndef __ID3D12ShaderCacheSession_INTERFACE_DEFINED__ #define __ID3D12ShaderCacheSession_INTERFACE_DEFINED__ @@ -22488,7 +23258,7 @@ EXTERN_C const IID IID_ID3D12ShaderCacheSession; #endif /* __ID3D12ShaderCacheSession_INTERFACE_DEFINED__ */ -/* interface __MIDL_itf_d3d12_0000_0054 */ +/* interface __MIDL_itf_d3d12_0000_0057 */ /* [local] */ typedef @@ -22512,8 +23282,8 @@ enum D3D12_SHADER_CACHE_CONTROL_FLAGS DEFINE_ENUM_FLAG_OPERATORS( D3D12_SHADER_CACHE_CONTROL_FLAGS ) -extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0054_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0054_v0_0_s_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0057_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0057_v0_0_s_ifspec; #ifndef __ID3D12Device9_INTERFACE_DEFINED__ #define __ID3D12Device9_INTERFACE_DEFINED__ @@ -28644,6 +29414,249 @@ EXTERN_C const IID IID_ID3D12Device14; #endif /* __ID3D12Device14_INTERFACE_DEFINED__ */ +/* interface __MIDL_itf_d3d12_0000_0063 */ +/* [local] */ + +typedef union D3D12_VERSION_NUMBER + { + UINT64 Version; + UINT16 VersionParts[ 4 ]; + } D3D12_VERSION_NUMBER; + +typedef struct D3D12_FEATURE_DATA_SHADERCACHE_ABI_SUPPORT + { + WCHAR szAdapterFamily[ 128 ]; + UINT64 MinimumABISupportVersion; + UINT64 MaximumABISupportVersion; + D3D12_VERSION_NUMBER CompilerVersion; + D3D12_VERSION_NUMBER ApplicationProfileVersion; + } D3D12_FEATURE_DATA_SHADERCACHE_ABI_SUPPORT; + +typedef void ( __stdcall *D3D12PipelineStateFunc )( + _In_reads_bytes_(KeySize) const void *pKey, + UINT KeySize, + UINT Version, + const D3D12_PIPELINE_STATE_STREAM_DESC *pDesc, + _Inout_opt_ void *pContext); + +typedef void ( __stdcall *D3D12StateObjectFunc )( + _In_reads_bytes_(KeySize) const void *pKey, + UINT KeySize, + UINT Version, + const D3D12_STATE_OBJECT_DESC *pDesc, + _In_reads_bytes_(ParentKeySize) const void *pParentKey, + UINT ParentKeySize, + _Inout_opt_ void *pContext); + +typedef struct D3D12_APPLICATION_DESC + { + LPCWSTR pExeFilename; + LPCWSTR pName; + D3D12_VERSION_NUMBER Version; + LPCWSTR pEngineName; + D3D12_VERSION_NUMBER EngineVersion; + } D3D12_APPLICATION_DESC; + +typedef void ( __stdcall *D3D12ApplicationDescFunc )( + _In_ const D3D12_APPLICATION_DESC *pApplicationDesc, + _Inout_opt_ void *pContext); + +typedef struct D3D12_EXISTING_COLLECTION_BY_KEY_DESC + { + _Field_size_bytes_full_(KeySize) const void *pKey; + UINT KeySize; + UINT NumExports; + _In_reads_(NumExports) const D3D12_EXPORT_DESC *pExports; + } D3D12_EXISTING_COLLECTION_BY_KEY_DESC; + + + +extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0063_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0063_v0_0_s_ifspec; + +#ifndef __ID3D12StateObjectDatabase_INTERFACE_DEFINED__ +#define __ID3D12StateObjectDatabase_INTERFACE_DEFINED__ + +/* interface ID3D12StateObjectDatabase */ +/* [unique][local][object][uuid] */ + + +EXTERN_C const IID IID_ID3D12StateObjectDatabase; + +#if defined(__cplusplus) && !defined(CINTERFACE) + + MIDL_INTERFACE("c56060b7-b5fc-4135-98e0-a1e9997eace0") + ID3D12StateObjectDatabase : public IUnknown + { + public: + virtual HRESULT STDMETHODCALLTYPE SetApplicationDesc( + _In_ const D3D12_APPLICATION_DESC *pApplicationDesc) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetApplicationDesc( + _In_ D3D12ApplicationDescFunc CallbackFunc, + _Inout_opt_ void *pContext) = 0; + + virtual HRESULT STDMETHODCALLTYPE StorePipelineStateDesc( + _In_reads_(KeySize) const void *pKey, + UINT KeySize, + UINT Version, + _In_ const D3D12_PIPELINE_STATE_STREAM_DESC *pDesc) = 0; + + virtual HRESULT STDMETHODCALLTYPE FindPipelineStateDesc( + _In_reads_(KeySize) const void *pKey, + UINT KeySize, + _In_ D3D12PipelineStateFunc CallbackFunc, + _Inout_opt_ void *pContext) = 0; + + virtual HRESULT STDMETHODCALLTYPE StoreStateObjectDesc( + _In_reads_(KeySize) const void *pKey, + UINT KeySize, + UINT Version, + _In_ const D3D12_STATE_OBJECT_DESC *pDesc, + _In_reads_opt_(StateObjectToGrowFromKeySize) const void *pStateObjectToGrowFromKey, + UINT StateObjectToGrowFromKeySize) = 0; + + virtual HRESULT STDMETHODCALLTYPE FindStateObjectDesc( + _In_reads_(keySize) const void *pKey, + UINT KeySize, + D3D12StateObjectFunc CallbackFunc, + _Inout_opt_ void *pContext) = 0; + + virtual HRESULT STDMETHODCALLTYPE FindObjectVersion( + _In_reads_(keySize) const void *pKey, + UINT KeySize, + _Out_ UINT *pVersion) = 0; + + }; + + +#else /* C style interface */ + + typedef struct ID3D12StateObjectDatabaseVtbl + { + BEGIN_INTERFACE + + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + ID3D12StateObjectDatabase * This, + REFIID riid, + _COM_Outptr_ void **ppvObject); + + DECLSPEC_XFGVIRT(IUnknown, AddRef) + ULONG ( STDMETHODCALLTYPE *AddRef )( + ID3D12StateObjectDatabase * This); + + DECLSPEC_XFGVIRT(IUnknown, Release) + ULONG ( STDMETHODCALLTYPE *Release )( + ID3D12StateObjectDatabase * This); + + DECLSPEC_XFGVIRT(ID3D12StateObjectDatabase, SetApplicationDesc) + HRESULT ( STDMETHODCALLTYPE *SetApplicationDesc )( + ID3D12StateObjectDatabase * This, + _In_ const D3D12_APPLICATION_DESC *pApplicationDesc); + + DECLSPEC_XFGVIRT(ID3D12StateObjectDatabase, GetApplicationDesc) + HRESULT ( STDMETHODCALLTYPE *GetApplicationDesc )( + ID3D12StateObjectDatabase * This, + _In_ D3D12ApplicationDescFunc CallbackFunc, + _Inout_opt_ void *pContext); + + DECLSPEC_XFGVIRT(ID3D12StateObjectDatabase, StorePipelineStateDesc) + HRESULT ( STDMETHODCALLTYPE *StorePipelineStateDesc )( + ID3D12StateObjectDatabase * This, + _In_reads_(KeySize) const void *pKey, + UINT KeySize, + UINT Version, + _In_ const D3D12_PIPELINE_STATE_STREAM_DESC *pDesc); + + DECLSPEC_XFGVIRT(ID3D12StateObjectDatabase, FindPipelineStateDesc) + HRESULT ( STDMETHODCALLTYPE *FindPipelineStateDesc )( + ID3D12StateObjectDatabase * This, + _In_reads_(KeySize) const void *pKey, + UINT KeySize, + _In_ D3D12PipelineStateFunc CallbackFunc, + _Inout_opt_ void *pContext); + + DECLSPEC_XFGVIRT(ID3D12StateObjectDatabase, StoreStateObjectDesc) + HRESULT ( STDMETHODCALLTYPE *StoreStateObjectDesc )( + ID3D12StateObjectDatabase * This, + _In_reads_(KeySize) const void *pKey, + UINT KeySize, + UINT Version, + _In_ const D3D12_STATE_OBJECT_DESC *pDesc, + _In_reads_opt_(StateObjectToGrowFromKeySize) const void *pStateObjectToGrowFromKey, + UINT StateObjectToGrowFromKeySize); + + DECLSPEC_XFGVIRT(ID3D12StateObjectDatabase, FindStateObjectDesc) + HRESULT ( STDMETHODCALLTYPE *FindStateObjectDesc )( + ID3D12StateObjectDatabase * This, + _In_reads_(keySize) const void *pKey, + UINT KeySize, + D3D12StateObjectFunc CallbackFunc, + _Inout_opt_ void *pContext); + + DECLSPEC_XFGVIRT(ID3D12StateObjectDatabase, FindObjectVersion) + HRESULT ( STDMETHODCALLTYPE *FindObjectVersion )( + ID3D12StateObjectDatabase * This, + _In_reads_(keySize) const void *pKey, + UINT KeySize, + _Out_ UINT *pVersion); + + END_INTERFACE + } ID3D12StateObjectDatabaseVtbl; + + interface ID3D12StateObjectDatabase + { + CONST_VTBL struct ID3D12StateObjectDatabaseVtbl *lpVtbl; + }; + + + +#ifdef COBJMACROS + + +#define ID3D12StateObjectDatabase_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + +#define ID3D12StateObjectDatabase_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) + +#define ID3D12StateObjectDatabase_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) + + +#define ID3D12StateObjectDatabase_SetApplicationDesc(This,pApplicationDesc) \ + ( (This)->lpVtbl -> SetApplicationDesc(This,pApplicationDesc) ) + +#define ID3D12StateObjectDatabase_GetApplicationDesc(This,CallbackFunc,pContext) \ + ( (This)->lpVtbl -> GetApplicationDesc(This,CallbackFunc,pContext) ) + +#define ID3D12StateObjectDatabase_StorePipelineStateDesc(This,pKey,KeySize,Version,pDesc) \ + ( (This)->lpVtbl -> StorePipelineStateDesc(This,pKey,KeySize,Version,pDesc) ) + +#define ID3D12StateObjectDatabase_FindPipelineStateDesc(This,pKey,KeySize,CallbackFunc,pContext) \ + ( (This)->lpVtbl -> FindPipelineStateDesc(This,pKey,KeySize,CallbackFunc,pContext) ) + +#define ID3D12StateObjectDatabase_StoreStateObjectDesc(This,pKey,KeySize,Version,pDesc,pStateObjectToGrowFromKey,StateObjectToGrowFromKeySize) \ + ( (This)->lpVtbl -> StoreStateObjectDesc(This,pKey,KeySize,Version,pDesc,pStateObjectToGrowFromKey,StateObjectToGrowFromKeySize) ) + +#define ID3D12StateObjectDatabase_FindStateObjectDesc(This,pKey,KeySize,CallbackFunc,pContext) \ + ( (This)->lpVtbl -> FindStateObjectDesc(This,pKey,KeySize,CallbackFunc,pContext) ) + +#define ID3D12StateObjectDatabase_FindObjectVersion(This,pKey,KeySize,pVersion) \ + ( (This)->lpVtbl -> FindObjectVersion(This,pKey,KeySize,pVersion) ) + +#endif /* COBJMACROS */ + + +#endif /* C style interface */ + + + + +#endif /* __ID3D12StateObjectDatabase_INTERFACE_DEFINED__ */ + + #ifndef __ID3D12VirtualizationGuestDevice_INTERFACE_DEFINED__ #define __ID3D12VirtualizationGuestDevice_INTERFACE_DEFINED__ @@ -29230,7 +30243,7 @@ EXTERN_C const IID IID_ID3D12DeviceTools; #endif /* __ID3D12DeviceTools_INTERFACE_DEFINED__ */ -/* interface __MIDL_itf_d3d12_0000_0066 */ +/* interface __MIDL_itf_d3d12_0000_0070 */ /* [local] */ typedef @@ -29244,8 +30257,8 @@ enum D3D12_APPLICATION_SPECIFIC_DRIVER_BLOB_STATUS -extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0066_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0066_v0_0_s_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0070_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0070_v0_0_s_ifspec; #ifndef __ID3D12DeviceTools1_INTERFACE_DEFINED__ #define __ID3D12DeviceTools1_INTERFACE_DEFINED__ @@ -29348,7 +30361,7 @@ EXTERN_C const IID IID_ID3D12DeviceTools1; #endif /* __ID3D12DeviceTools1_INTERFACE_DEFINED__ */ -/* interface __MIDL_itf_d3d12_0000_0067 */ +/* interface __MIDL_itf_d3d12_0000_0071 */ /* [local] */ typedef struct D3D12_SUBRESOURCE_DATA @@ -29492,6 +30505,7 @@ DEFINE_GUID(CLSID_D3D12DeviceRemovedExtendedData, 0x4a75bbc4, 0x9ff4, 0x4ad8, DEFINE_GUID(CLSID_D3D12SDKConfiguration, 0x7cda6aca, 0xa03e, 0x49c8, 0x94, 0x58, 0x03, 0x34, 0xd2, 0x0e, 0x07, 0xce); DEFINE_GUID(CLSID_D3D12DeviceFactory, 0x114863bf, 0xc386, 0x4aee, 0xb3, 0x9d, 0x8f, 0x0b, 0xbb, 0x06, 0x29, 0x55); DEFINE_GUID(CLSID_D3D12DSRDeviceFactory, 0xbb6dd27e, 0x94a9, 0x41a6, 0x9f, 0x1b, 0x13, 0x37, 0x72, 0x17, 0x24, 0x28); +DEFINE_GUID(CLSID_D3D12StateObjectFactory, 0x54e1c9f3, 0x1303, 0x4112, 0xbf, 0x8e, 0x7b, 0xf2, 0xbb, 0x60, 0x6a, 0x73); typedef HRESULT (WINAPI* PFN_D3D12_GET_INTERFACE)( _In_ REFCLSID, _In_ REFIID, _COM_Outptr_opt_ void** ); @@ -29499,8 +30513,8 @@ HRESULT WINAPI D3D12GetInterface( _In_ REFCLSID rclsid, _In_ REFIID riid, _COM_O -extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0067_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0067_v0_0_s_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0071_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0071_v0_0_s_ifspec; #ifndef __ID3D12SDKConfiguration_INTERFACE_DEFINED__ #define __ID3D12SDKConfiguration_INTERFACE_DEFINED__ @@ -29695,7 +30709,7 @@ EXTERN_C const IID IID_ID3D12SDKConfiguration1; #endif /* __ID3D12SDKConfiguration1_INTERFACE_DEFINED__ */ -/* interface __MIDL_itf_d3d12_0000_0069 */ +/* interface __MIDL_itf_d3d12_0000_0073 */ /* [local] */ typedef @@ -29710,8 +30724,8 @@ enum D3D12_DEVICE_FACTORY_FLAGS DEFINE_ENUM_FLAG_OPERATORS( D3D12_DEVICE_FACTORY_FLAGS ) -extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0069_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0069_v0_0_s_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0073_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0073_v0_0_s_ifspec; #ifndef __ID3D12DeviceFactory_INTERFACE_DEFINED__ #define __ID3D12DeviceFactory_INTERFACE_DEFINED__ @@ -29872,7 +30886,7 @@ EXTERN_C const IID IID_ID3D12DeviceFactory; #endif /* __ID3D12DeviceFactory_INTERFACE_DEFINED__ */ -/* interface __MIDL_itf_d3d12_0000_0070 */ +/* interface __MIDL_itf_d3d12_0000_0074 */ /* [local] */ typedef @@ -29903,8 +30917,8 @@ typedef struct D3D12_DEVICE_CONFIGURATION_DESC -extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0070_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0070_v0_0_s_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0074_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0074_v0_0_s_ifspec; #ifndef __ID3D12DeviceConfiguration_INTERFACE_DEFINED__ #define __ID3D12DeviceConfiguration_INTERFACE_DEFINED__ @@ -30192,7 +31206,112 @@ EXTERN_C const IID IID_ID3D12DeviceConfiguration1; #endif /* __ID3D12DeviceConfiguration1_INTERFACE_DEFINED__ */ -/* interface __MIDL_itf_d3d12_0000_0072 */ +/* interface __MIDL_itf_d3d12_0000_0076 */ +/* [local] */ + +typedef +enum D3D12_STATE_OBJECT_DATABASE_FLAGS + { + D3D12_STATE_OBJECT_DATABASE_FLAG_NONE = 0, + D3D12_STATE_OBJECT_DATABASE_FLAG_READ_ONLY = 0x1 + } D3D12_STATE_OBJECT_DATABASE_FLAGS; + +DEFINE_ENUM_FLAG_OPERATORS( D3D12_STATE_OBJECT_DATABASE_FLAGS ) + + +extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0076_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0076_v0_0_s_ifspec; + +#ifndef __ID3D12StateObjectDatabaseFactory_INTERFACE_DEFINED__ +#define __ID3D12StateObjectDatabaseFactory_INTERFACE_DEFINED__ + +/* interface ID3D12StateObjectDatabaseFactory */ +/* [unique][local][object][uuid] */ + + +EXTERN_C const IID IID_ID3D12StateObjectDatabaseFactory; + +#if defined(__cplusplus) && !defined(CINTERFACE) + + MIDL_INTERFACE("f5b066f0-648a-4611-bd41-27fd0948b9eb") + ID3D12StateObjectDatabaseFactory : public IUnknown + { + public: + virtual HRESULT STDMETHODCALLTYPE CreateStateObjectDatabaseFromFile( + LPCWSTR pDatabaseFile, + D3D12_STATE_OBJECT_DATABASE_FLAGS flags, + REFIID riid, + _COM_Outptr_ void **ppvStateObjectDatabase) = 0; + + }; + + +#else /* C style interface */ + + typedef struct ID3D12StateObjectDatabaseFactoryVtbl + { + BEGIN_INTERFACE + + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + ID3D12StateObjectDatabaseFactory * This, + REFIID riid, + _COM_Outptr_ void **ppvObject); + + DECLSPEC_XFGVIRT(IUnknown, AddRef) + ULONG ( STDMETHODCALLTYPE *AddRef )( + ID3D12StateObjectDatabaseFactory * This); + + DECLSPEC_XFGVIRT(IUnknown, Release) + ULONG ( STDMETHODCALLTYPE *Release )( + ID3D12StateObjectDatabaseFactory * This); + + DECLSPEC_XFGVIRT(ID3D12StateObjectDatabaseFactory, CreateStateObjectDatabaseFromFile) + HRESULT ( STDMETHODCALLTYPE *CreateStateObjectDatabaseFromFile )( + ID3D12StateObjectDatabaseFactory * This, + LPCWSTR pDatabaseFile, + D3D12_STATE_OBJECT_DATABASE_FLAGS flags, + REFIID riid, + _COM_Outptr_ void **ppvStateObjectDatabase); + + END_INTERFACE + } ID3D12StateObjectDatabaseFactoryVtbl; + + interface ID3D12StateObjectDatabaseFactory + { + CONST_VTBL struct ID3D12StateObjectDatabaseFactoryVtbl *lpVtbl; + }; + + + +#ifdef COBJMACROS + + +#define ID3D12StateObjectDatabaseFactory_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + +#define ID3D12StateObjectDatabaseFactory_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) + +#define ID3D12StateObjectDatabaseFactory_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) + + +#define ID3D12StateObjectDatabaseFactory_CreateStateObjectDatabaseFromFile(This,pDatabaseFile,flags,riid,ppvStateObjectDatabase) \ + ( (This)->lpVtbl -> CreateStateObjectDatabaseFromFile(This,pDatabaseFile,flags,riid,ppvStateObjectDatabase) ) + +#endif /* COBJMACROS */ + + +#endif /* C style interface */ + + + + +#endif /* __ID3D12StateObjectDatabaseFactory_INTERFACE_DEFINED__ */ + + +/* interface __MIDL_itf_d3d12_0000_0077 */ /* [local] */ typedef @@ -30232,8 +31351,8 @@ enum D3D12_SHADING_RATE_COMBINER -extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0072_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0072_v0_0_s_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0077_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0077_v0_0_s_ifspec; #ifndef __ID3D12GraphicsCommandList5_INTERFACE_DEFINED__ #define __ID3D12GraphicsCommandList5_INTERFACE_DEFINED__ @@ -31068,7 +32187,7 @@ EXTERN_C const IID IID_ID3D12GraphicsCommandList5; #endif /* __ID3D12GraphicsCommandList5_INTERFACE_DEFINED__ */ -/* interface __MIDL_itf_d3d12_0000_0073 */ +/* interface __MIDL_itf_d3d12_0000_0078 */ /* [local] */ typedef struct D3D12_DISPATCH_MESH_ARGUMENTS @@ -31080,8 +32199,8 @@ typedef struct D3D12_DISPATCH_MESH_ARGUMENTS -extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0073_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0073_v0_0_s_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0078_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0078_v0_0_s_ifspec; #ifndef __ID3D12GraphicsCommandList6_INTERFACE_DEFINED__ #define __ID3D12GraphicsCommandList6_INTERFACE_DEFINED__ @@ -35659,7 +36778,7 @@ EXTERN_C const IID IID_ID3D12GBVDiagnostics; #endif /* __ID3D12GBVDiagnostics_INTERFACE_DEFINED__ */ -/* interface __MIDL_itf_d3d12_0000_0080 */ +/* interface __MIDL_itf_d3d12_0000_0085 */ /* [local] */ #endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_GAMES) */ @@ -35676,6 +36795,7 @@ DEFINE_GUID(IID_ID3D12CommandAllocator,0x6102dee4,0xaf59,0x4b09,0xb9,0x99,0xb4,0 DEFINE_GUID(IID_ID3D12Fence,0x0a753dcf,0xc4d8,0x4b91,0xad,0xf6,0xbe,0x5a,0x60,0xd9,0x5a,0x76); DEFINE_GUID(IID_ID3D12Fence1,0x433685fe,0xe22b,0x4ca0,0xa8,0xdb,0xb5,0xb4,0xf4,0xdd,0x0e,0x4a); DEFINE_GUID(IID_ID3D12PipelineState,0x765a30f3,0xf624,0x4c6f,0xa8,0x28,0xac,0xe9,0x48,0x62,0x24,0x45); +DEFINE_GUID(IID_ID3D12PipelineState1,0x5646804c,0x9638,0x48f7,0x91,0x82,0xb3,0xee,0x5a,0x6b,0x60,0xfb); DEFINE_GUID(IID_ID3D12DescriptorHeap,0x8efb471d,0x616c,0x4f49,0x90,0xf7,0x12,0x7b,0xb7,0x63,0xfa,0x51); DEFINE_GUID(IID_ID3D12QueryHeap,0x0d9658ae,0xed45,0x469e,0xa6,0x1d,0x97,0x0e,0xc5,0x83,0xca,0xb4); DEFINE_GUID(IID_ID3D12CommandSignature,0xc36a797c,0xec80,0x4f0a,0x89,0x85,0xa7,0xb2,0x47,0x50,0x82,0xd1); @@ -35684,6 +36804,7 @@ DEFINE_GUID(IID_ID3D12GraphicsCommandList,0x5b160d0f,0xac1b,0x4185,0x8b,0xa8,0xb DEFINE_GUID(IID_ID3D12GraphicsCommandList1,0x553103fb,0x1fe7,0x4557,0xbb,0x38,0x94,0x6d,0x7d,0x0e,0x7c,0xa7); DEFINE_GUID(IID_ID3D12GraphicsCommandList2,0x38C3E585,0xFF17,0x412C,0x91,0x50,0x4F,0xC6,0xF9,0xD7,0x2A,0x28); DEFINE_GUID(IID_ID3D12CommandQueue,0x0ec870a6,0x5d7e,0x4c22,0x8c,0xfc,0x5b,0xaa,0xe0,0x76,0x16,0xed); +DEFINE_GUID(IID_ID3D12CommandQueue1,0x3a3c3165,0x0ee7,0x4b8e,0xa0,0xaf,0x63,0x56,0xb4,0xc3,0xbb,0xb9); DEFINE_GUID(IID_ID3D12Device,0x189819f1,0x1db6,0x4b57,0xbe,0x54,0x18,0x21,0x33,0x9b,0x85,0xf7); DEFINE_GUID(IID_ID3D12PipelineLibrary,0xc64226a8,0x9201,0x46af,0xb4,0xcc,0x53,0xfb,0x9f,0xf7,0x41,0x4f); DEFINE_GUID(IID_ID3D12PipelineLibrary1,0x80eabf42,0x2568,0x4e5e,0xbd,0x82,0xc3,0x7f,0x86,0x96,0x1d,0xc3); @@ -35699,6 +36820,7 @@ DEFINE_GUID(IID_ID3D12LifetimeTracker,0x3fd03d36,0x4eb1,0x424a,0xa5,0x82,0x49,0x DEFINE_GUID(IID_ID3D12StateObject,0x47016943,0xfca8,0x4594,0x93,0xea,0xaf,0x25,0x8b,0x55,0x34,0x6d); DEFINE_GUID(IID_ID3D12StateObjectProperties,0xde5fa827,0x9bf9,0x4f26,0x89,0xff,0xd7,0xf5,0x6f,0xde,0x38,0x60); DEFINE_GUID(IID_ID3D12StateObjectProperties1,0x460caac7,0x1d24,0x446a,0xa1,0x84,0xca,0x67,0xdb,0x49,0x41,0x38); +DEFINE_GUID(IID_ID3D12StateObjectProperties2,0xd5e82917,0xf0f1,0x44cf,0xae,0x5e,0xce,0x22,0x2d,0xd0,0xb8,0x84); DEFINE_GUID(IID_ID3D12WorkGraphProperties,0x065acf71,0xf863,0x4b89,0x82,0xf4,0x02,0xe4,0xd5,0x88,0x67,0x57); DEFINE_GUID(IID_ID3D12Device5,0x8b4f173b,0x2fea,0x4b80,0x8f,0x58,0x43,0x07,0x19,0x1a,0xb9,0x5d); DEFINE_GUID(IID_ID3D12DeviceRemovedExtendedDataSettings,0x82BC481C,0x6B9B,0x4030,0xAE,0xDB,0x7E,0xE3,0xD1,0xDF,0x1E,0x63); @@ -35724,6 +36846,7 @@ DEFINE_GUID(IID_ID3D12Device11,0x5405c344,0xd457,0x444e,0xb4,0xdd,0x23,0x66,0xe4 DEFINE_GUID(IID_ID3D12Device12,0x5af5c532,0x4c91,0x4cd0,0xb5,0x41,0x15,0xa4,0x05,0x39,0x5f,0xc5); DEFINE_GUID(IID_ID3D12Device13,0x14eecffc,0x4df8,0x40f7,0xa1,0x18,0x5c,0x81,0x6f,0x45,0x69,0x5e); DEFINE_GUID(IID_ID3D12Device14,0x5f6e592d,0xd895,0x44c2,0x8e,0x4a,0x88,0xad,0x49,0x26,0xd3,0x23); +DEFINE_GUID(IID_ID3D12StateObjectDatabase,0xc56060b7,0xb5fc,0x4135,0x98,0xe0,0xa1,0xe9,0x99,0x7e,0xac,0xe0); DEFINE_GUID(IID_ID3D12VirtualizationGuestDevice,0xbc66d368,0x7373,0x4943,0x87,0x57,0xfc,0x87,0xdc,0x79,0xe4,0x76); DEFINE_GUID(IID_ID3D12Tools,0x7071e1f0,0xe84b,0x4b33,0x97,0x4f,0x12,0xfa,0x49,0xde,0x65,0xc5); DEFINE_GUID(IID_ID3D12Tools1,0xe4fbc019,0xdd3c,0x43e1,0x8f,0x32,0x7f,0x64,0x95,0x75,0xf0,0xa0); @@ -35736,6 +36859,7 @@ DEFINE_GUID(IID_ID3D12SDKConfiguration1,0x8aaf9303,0xad25,0x48b9,0x9a,0x57,0xd9, DEFINE_GUID(IID_ID3D12DeviceFactory,0x61f307d3,0xd34e,0x4e7c,0x83,0x74,0x3b,0xa4,0xde,0x23,0xcc,0xcb); DEFINE_GUID(IID_ID3D12DeviceConfiguration,0x78dbf87b,0xf766,0x422b,0xa6,0x1c,0xc8,0xc4,0x46,0xbd,0xb9,0xad); DEFINE_GUID(IID_ID3D12DeviceConfiguration1,0xed342442,0x6343,0x4e16,0xbb,0x82,0xa3,0xa5,0x77,0x87,0x4e,0x56); +DEFINE_GUID(IID_ID3D12StateObjectDatabaseFactory,0xf5b066f0,0x648a,0x4611,0xbd,0x41,0x27,0xfd,0x09,0x48,0xb9,0xeb); DEFINE_GUID(IID_ID3D12GraphicsCommandList5,0x55050859,0x4024,0x474c,0x87,0xf5,0x64,0x72,0xea,0xee,0x44,0xea); DEFINE_GUID(IID_ID3D12GraphicsCommandList6,0xc3827890,0xe548,0x4cfa,0x96,0xcf,0x56,0x89,0xa9,0x37,0x0f,0x80); DEFINE_GUID(IID_ID3D12GraphicsCommandList7,0xdd171223,0x8b61,0x4769,0x90,0xe3,0x16,0x0c,0xcd,0xe4,0xe2,0xc1); @@ -35746,8 +36870,8 @@ DEFINE_GUID(IID_ID3D12DSRDeviceFactory,0xf343d1a0,0xafe3,0x439f,0xb1,0x3d,0xcd,0 DEFINE_GUID(IID_ID3D12GBVDiagnostics,0x597985ab,0x9b75,0x4dbb,0xbe,0x23,0x07,0x61,0x19,0x5b,0xeb,0xee); -extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0080_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0080_v0_0_s_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0085_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0085_v0_0_s_ifspec; /* Additional Prototypes for ALL interfaces */ diff --git a/util/test/demos/dx/official/d3d12sdklayers.h b/util/test/demos/dx/official/d3d12sdklayers.h index 0da7960c3..96c812b14 100644 --- a/util/test/demos/dx/official/d3d12sdklayers.h +++ b/util/test/demos/dx/official/d3d12sdklayers.h @@ -3360,8 +3360,10 @@ enum D3D12_MESSAGE_ID D3D12_MESSAGE_ID_RENDER_TARGET_OR_DEPTH_STENCIL_RESOUCE_NOT_INITIALIZED = 1422, D3D12_MESSAGE_ID_BYTECODE_VALIDATION_ERROR = 1423, D3D12_MESSAGE_ID_FENCE_ZERO_WAIT = 1424, - D3D12_MESSAGE_ID_NON_COMMON_RESOURCE_IN_COPY_QUEUE = 1425, - D3D12_MESSAGE_ID_D3D12_MESSAGES_END = ( D3D12_MESSAGE_ID_NON_COMMON_RESOURCE_IN_COPY_QUEUE + 1 ) + D3D12_MESSAGE_ID_NON_COMMON_RESOURCE_IN_COPY_QUEUE = 1431, + D3D12_MESSAGE_ID_CREATEPIPELINESTATE_MULTIPLE_ROOT_SIGNATURES_DEFINED = 1435, + D3D12_MESSAGE_ID_TEXTURE_BARRIER_INVALID_FLAGS = 1436, + D3D12_MESSAGE_ID_D3D12_MESSAGES_END = 1442 } D3D12_MESSAGE_ID; typedef struct D3D12_MESSAGE