wine/include/d3dkmdt.h
2025-02-25 23:02:48 +01:00

208 lines
6.5 KiB
C

/*
* Copyright 2020 Brendan Shanks for CodeWeavers
*
* 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
*/
#ifndef __WINE_D3DKMDT_H
#define __WINE_D3DKMDT_H
#define DXGK_FEATURE_SUPPORT_ALWAYS_OFF ((UINT)0)
#define DXGK_FEATURE_SUPPORT_EXPERIMENTAL ((UINT)1)
#define DXGK_FEATURE_SUPPORT_STABLE ((UINT)2)
#define DXGK_FEATURE_SUPPORT_ALWAYS_ON ((UINT)3)
typedef enum _D3DKMDT_VIDEO_SIGNAL_STANDARD
{
D3DKMDT_VSS_UNINITIALIZED = 0,
D3DKMDT_VSS_VESA_DMT = 1,
D3DKMDT_VSS_VESA_GTF = 2,
D3DKMDT_VSS_VESA_CVT = 3,
D3DKMDT_VSS_IBM = 4,
D3DKMDT_VSS_APPLE = 5,
D3DKMDT_VSS_NTSC_M = 6,
D3DKMDT_VSS_NTSC_J = 7,
D3DKMDT_VSS_NTSC_443 = 8,
D3DKMDT_VSS_PAL_B = 9,
D3DKMDT_VSS_PAL_B1 = 10,
D3DKMDT_VSS_PAL_G = 11,
D3DKMDT_VSS_PAL_H = 12,
D3DKMDT_VSS_PAL_I = 13,
D3DKMDT_VSS_PAL_D = 14,
D3DKMDT_VSS_PAL_N = 15,
D3DKMDT_VSS_PAL_NC = 16,
D3DKMDT_VSS_SECAM_B = 17,
D3DKMDT_VSS_SECAM_D = 18,
D3DKMDT_VSS_SECAM_G = 19,
D3DKMDT_VSS_SECAM_H = 20,
D3DKMDT_VSS_SECAM_K = 21,
D3DKMDT_VSS_SECAM_K1 = 22,
D3DKMDT_VSS_SECAM_L = 23,
D3DKMDT_VSS_SECAM_L1 = 24,
D3DKMDT_VSS_EIA_861 = 25,
D3DKMDT_VSS_EIA_861A = 26,
D3DKMDT_VSS_EIA_861B = 27,
D3DKMDT_VSS_PAL_K = 28,
D3DKMDT_VSS_PAL_K1 = 29,
D3DKMDT_VSS_PAL_L = 30,
D3DKMDT_VSS_PAL_M = 31,
D3DKMDT_VSS_OTHER = 255
} D3DKMDT_VIDEO_SIGNAL_STANDARD;
typedef enum _D3DKMDT_GRAPHICS_PREEMPTION_GRANULARITY
{
D3DKMDT_GRAPHICS_PREEMPTION_NONE = 0,
D3DKMDT_GRAPHICS_PREEMPTION_DMA_BUFFER_BOUNDARY = 100,
D3DKMDT_GRAPHICS_PREEMPTION_PRIMITIVE_BOUNDARY = 200,
D3DKMDT_GRAPHICS_PREEMPTION_TRIANGLE_BOUNDARY = 300,
D3DKMDT_GRAPHICS_PREEMPTION_PIXEL_BOUNDARY = 400,
D3DKMDT_GRAPHICS_PREEMPTION_SHADER_BOUNDARY = 500,
} D3DKMDT_GRAPHICS_PREEMPTION_GRANULARITY;
typedef enum _D3DKMDT_COMPUTE_PREEMPTION_GRANULARITY
{
D3DKMDT_COMPUTE_PREEMPTION_NONE = 0,
D3DKMDT_COMPUTE_PREEMPTION_DMA_BUFFER_BOUNDARY = 100,
D3DKMDT_COMPUTE_PREEMPTION_DISPATCH_BOUNDARY = 200,
D3DKMDT_COMPUTE_PREEMPTION_THREAD_GROUP_BOUNDARY = 300,
D3DKMDT_COMPUTE_PREEMPTION_THREAD_BOUNDARY = 400,
D3DKMDT_COMPUTE_PREEMPTION_SHADER_BOUNDARY = 500,
} D3DKMDT_COMPUTE_PREEMPTION_GRANULARITY;
typedef struct _D3DKMDT_PREEMPTION_CAPS
{
D3DKMDT_GRAPHICS_PREEMPTION_GRANULARITY GraphicsPreemptionGranularity;
D3DKMDT_COMPUTE_PREEMPTION_GRANULARITY ComputePreemptionGranularity;
} D3DKMDT_PREEMPTION_CAPS;
typedef struct _D3DKMT_WDDM_1_2_CAPS
{
D3DKMDT_PREEMPTION_CAPS PreemptionCaps;
union
{
struct
{
UINT SupportNonVGA : 1;
UINT SupportSmoothRotation : 1;
UINT SupportPerEngineTDR : 1;
UINT SupportKernelModeCommandBuffer : 1;
UINT SupportCCD : 1;
UINT SupportSoftwareDeviceBitmaps : 1;
UINT SupportGammaRamp : 1;
UINT SupportHWCursor : 1;
UINT SupportHWVSync : 1;
UINT SupportSurpriseRemovalInHibernation : 1;
UINT Reserved : 22;
};
UINT Value;
};
} D3DKMT_WDDM_1_2_CAPS;
typedef struct _D3DKMT_WDDM_1_3_CAPS
{
union
{
struct
{
UINT SupportMiracast : 1;
UINT IsHybridIntegratedGPU : 1;
UINT IsHybridDiscreteGPU : 1;
UINT SupportPowerManagementPStates : 1;
UINT SupportVirtualModes : 1;
UINT SupportCrossAdapterResource : 1;
UINT Reserved : 26;
};
UINT Value;
};
} D3DKMT_WDDM_1_3_CAPS;
typedef struct _D3DKMT_WDDM_2_0_CAPS
{
union
{
struct
{
UINT Support64BitAtomics : 1;
UINT GpuMmuSupported : 1;
UINT IoMmuSupported : 1;
UINT FlipOverwriteSupported : 1;
UINT SupportContextlessPresent : 1;
UINT SupportSurpriseRemoval : 1;
UINT Reserved : 26;
};
UINT Value;
};
} D3DKMT_WDDM_2_0_CAPS;
typedef struct _D3DKMT_WDDM_2_7_CAPS
{
union
{
struct
{
UINT HwSchSupported : 1;
UINT HwSchEnabled : 1;
UINT HwSchEnabledByDefault : 1;
UINT IndependentVidPnVSyncControl : 1;
UINT Reserved : 28;
};
UINT Value;
};
} D3DKMT_WDDM_2_7_CAPS;
typedef struct _D3DKMT_WDDM_2_9_CAPS
{
union
{
struct
{
UINT HwSchSupportState : 2;
UINT HwSchEnabled : 1;
UINT SelfRefreshMemorySupported : 1;
UINT Reserved : 28;
};
UINT Value;
};
} D3DKMT_WDDM_2_9_CAPS;
typedef struct _D3DKMT_WDDM_3_0_CAPS
{
union
{
struct
{
UINT HwFlipQueueSupportState : 2;
UINT HwFlipQueueEnabled : 1;
UINT DisplayableSupported : 1;
UINT Reserved : 28;
};
UINT Value;
};
} D3DKMT_WDDM_3_0_CAPS;
typedef struct _D3DKMT_WDDM_3_1_CAPS
{
union
{
struct
{
UINT NativeGpuFenceSupported : 1;
UINT Reserved : 31;
};
UINT Value;
};
} D3DKMT_WDDM_3_1_CAPS;
#endif /* __WINE_D3DKMDT_H */