blob: 316de149dc1f5076494fef5c0b549e9f2759c08f [file] [edit]
/*
* * Copyright 2023 Joshua Ashton for Valve Corporation
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
*/
import "vkd3d_d3d12.idl";
[
uuid(18da885c-a7b5-464e-a121-ccb75d4dfc31),
object,
local,
pointer_default(unique)
]
interface IVKD3DCoreInterface
{
HRESULT CreateDevice(IUnknown *adapter, D3D_FEATURE_LEVEL minimum_feature_level, REFIID iid, void **device);
HRESULT CreateRootSignatureDeserializer(const void *data, SIZE_T data_size, REFIID iid, void **deserializer);
HRESULT SerializeRootSignature(const D3D12_ROOT_SIGNATURE_DESC *root_signature_desc, D3D_ROOT_SIGNATURE_VERSION version, ID3DBlob **blob, ID3DBlob **error_blob);
HRESULT CreateVersionedRootSignatureDeserializer(const void *data, SIZE_T data_size, REFIID iid, void **deserializer);
HRESULT SerializeVersionedRootSignature(const D3D12_VERSIONED_ROOT_SIGNATURE_DESC *desc, ID3DBlob **blob, ID3DBlob **error_blob);
HRESULT GetDebugInterface(REFIID iid, void** debug);
HRESULT EnableExperimentalFeatures(UINT feature_count, const IID *iids, void *configurations, UINT *configurations_sizes);
HRESULT GetInterface(REFCLSID rcslid, REFIID iid, void** debug);
}
cpp_quote("DEFINE_GUID(CLSID_VKD3DCore, 0xed53efad, 0xda21, 0x4d96, 0xa1, 0xbc, 0xe7, 0x34, 0xe0, 0x78, 0x87, 0x9c );")
typedef enum VKD3D_DEBUG_CONTROL_OUT_OF_SPEC_BEHAVIOR
{
VKD3D_DEBUG_CONTROL_OUT_OF_SPEC_BEHAVIOR_SAMPLE_COUNT_MISMATCH = 0x0,
VKD3D_DEBUG_CONTROL_OUT_OF_SPEC_BEHAVIOR_COUNT,
} VKD3D_DEBUG_CONTROL_OUT_OF_SPEC_BEHAVIOR;
[
uuid(7eef8448-81b3-4437-962a-188a7fdbd925),
object,
local,
pointer_default(unique)
]
interface IVKD3DDebugControlInterface
{
HRESULT SetRunningUnderTest();
HRESULT SetExplodeOnValidationError(BOOL enable);
HRESULT MuteValidationGlobal();
HRESULT UnmuteValidationGlobal();
HRESULT MuteValidationMessageID(const char *vuid, const char *explanation);
HRESULT UnmuteValidationMessageID(const char *vuid);
HRESULT SetOutOfSpecTestBehavior(VKD3D_DEBUG_CONTROL_OUT_OF_SPEC_BEHAVIOR behavior, BOOL enable);
}
cpp_quote("DEFINE_GUID(CLSID_VKD3DDebugControl, 0xca062def, 0x49e9, 0x4e2b, 0x80, 0x5d, 0x81, 0x79, 0xd0, 0xa7, 0x9b, 0x3b );")