Skip to content

Commit

Permalink
[SDK][WIN32SS] Prepare the d3dkmt APIs up to Vista RTM
Browse files Browse the repository at this point in the history
  • Loading branch information
DarkFire01 committed Oct 20, 2024
1 parent 6907831 commit 23b5d9c
Show file tree
Hide file tree
Showing 15 changed files with 2,210 additions and 15 deletions.
218 changes: 218 additions & 0 deletions sdk/include/ddk/d3dkmddi.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,218 @@
/*
* PROJECT: ReactOS Display Driver Model
* LICENSE: MIT (https://spdx.org/licenses/MIT)
* PURPOSE: Header file for WDDM style DDIs
* COPYRIGHT: Copyright 2024 Justin Miller <[email protected]>
*/

#ifndef _D3DKMDDI_H_
#define _D3DKMDDI_H_

#include <d3dkmdt.h>

typedef struct _DXGK_ALLOCATIONINFOFLAGS_WDDM2_0
{
union
{
struct
{
UINT CpuVisible : 1;
UINT PermanentSysMem : 1;
UINT Cached : 1;
UINT Protected : 1;
UINT ExistingSysMem : 1;
UINT ExistingKernelSysMem : 1;
UINT FromEndOfSegment : 1;
UINT DisableLargePageMapping : 1;
UINT Overlay : 1;
UINT Capture : 1;
#if (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WDDM2_1)
UINT CreateInVpr : 1;
#else
UINT Reserved00 : 1;
#endif
UINT DXGK_ALLOC_RESERVED17 : 1;
UINT Reserved02 : 1;
#if (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WDDM2_9)
UINT MapApertureCpuVisible : 1;
#else
UINT Reserved03 : 1;
#endif
UINT HistoryBuffer : 1;
UINT AccessedPhysically : 1;
UINT ExplicitResidencyNotification : 1;
UINT HardwareProtected : 1;
UINT CpuVisibleOnDemand : 1;
UINT DXGK_ALLOC_RESERVED16 : 1;
UINT DXGK_ALLOC_RESERVED15 : 1;
UINT DXGK_ALLOC_RESERVED14 : 1;
UINT DXGK_ALLOC_RESERVED13 : 1;
UINT DXGK_ALLOC_RESERVED12 : 1;
UINT DXGK_ALLOC_RESERVED11 : 1;
UINT DXGK_ALLOC_RESERVED10 : 1;
UINT DXGK_ALLOC_RESERVED9 : 1;
UINT DXGK_ALLOC_RESERVED4 : 1;
UINT DXGK_ALLOC_RESERVED3 : 1;
UINT DXGK_ALLOC_RESERVED2 : 1;
UINT DXGK_ALLOC_RESERVED1 : 1;
UINT DXGK_ALLOC_RESERVED0 : 1;
};
UINT Value;
};
} DXGK_ALLOCATIONINFOFLAGS_WDDM2_0;

typedef struct _DXGK_SEGMENTPREFERENCE
{
union
{
struct
{
UINT SegmentId0 : 5;
UINT Direction0 : 1;
UINT SegmentId1 : 5;
UINT Direction1 : 1;
UINT SegmentId2 : 5;
UINT Direction2 : 1;
UINT SegmentId3 : 5;
UINT Direction3 : 1;
UINT SegmentId4 : 5;
UINT Direction4 : 1;
UINT Reserved : 2;
};
UINT Value;
};
} DXGK_SEGMENTPREFERENCE, *PDXGK_SEGMENTPREFERENCE;


typedef struct _DXGK_SEGMENTBANKPREFERENCE
{
union
{
struct
{
UINT Bank0 : 7;
UINT Direction0 : 1;
UINT Bank1 : 7;
UINT Direction1 : 1;
UINT Bank2 : 7;
UINT Direction2 : 1;
UINT Bank3 : 7;
UINT Direction3 : 1;
};
UINT Value;
};
} DXGK_SEGMENTBANKPREFERENCE;
typedef struct _DXGK_ALLOCATIONINFOFLAGS
{
union
{
struct
{
UINT CpuVisible : 1;
UINT PermanentSysMem : 1;
UINT Cached : 1;
UINT Protected : 1;
UINT ExistingSysMem : 1;
UINT ExistingKernelSysMem : 1;
UINT FromEndOfSegment : 1;
UINT Swizzled : 1;
UINT Overlay : 1;
UINT Capture : 1;
UINT UseAlternateVA : 1;
UINT SynchronousPaging : 1;
UINT LinkMirrored : 1;
UINT LinkInstanced : 1;
UINT HistoryBuffer : 1;
#if (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WDDM2_0)
UINT AccessedPhysically : 1;
UINT ExplicitResidencyNotification : 1;
UINT HardwareProtected : 1;
UINT CpuVisibleOnDemand : 1;
#else
UINT Reserved : 4;
#endif
UINT DXGK_ALLOC_RESERVED16 : 1;
UINT DXGK_ALLOC_RESERVED15 : 1;
UINT DXGK_ALLOC_RESERVED14 : 1;
UINT DXGK_ALLOC_RESERVED13 : 1;
UINT DXGK_ALLOC_RESERVED12 : 1;
UINT DXGK_ALLOC_RESERVED11 : 1;
UINT DXGK_ALLOC_RESERVED10 : 1;
UINT DXGK_ALLOC_RESERVED9 : 1;
UINT DXGK_ALLOC_RESERVED4 : 1;
UINT DXGK_ALLOC_RESERVED3 : 1;
UINT DXGK_ALLOC_RESERVED2 : 1;
UINT DXGK_ALLOC_RESERVED1 : 1;
UINT DXGK_ALLOC_RESERVED0 : 1;
};
UINT Value;
};
} DXGK_ALLOCATIONINFOFLAGS;
typedef struct _DXGK_ALLOCATIONUSAGEINFO1
{
union
{
struct
{
UINT PrivateFormat : 1;
UINT Swizzled : 1;
UINT MipMap : 1;
UINT Cube : 1;
UINT Volume : 1;
UINT Vertex : 1;
UINT Index : 1;
UINT Reserved : 25;
};
UINT Value;
} Flags;
union
{
D3DDDIFORMAT Format;
UINT PrivateFormat;
};
UINT SwizzledFormat;
UINT ByteOffset;
UINT Width;
UINT Height;
UINT Pitch;
UINT Depth;
UINT SlicePitch;
} DXGK_ALLOCATIONUSAGEINFO1;
typedef struct _DXGK_ALLOCATIONUSAGEHINT
{
UINT Version;
DXGK_ALLOCATIONUSAGEINFO1 v1;
} DXGK_ALLOCATIONUSAGEHINT;
typedef struct _DXGK_ALLOCATIONINFO
{
VOID* pPrivateDriverData;
UINT PrivateDriverDataSize;
UINT Alignment;
SIZE_T Size;
SIZE_T PitchAlignedSize;
DXGK_SEGMENTBANKPREFERENCE HintedBank;
DXGK_SEGMENTPREFERENCE PreferredSegment;
UINT SupportedReadSegmentSet;
UINT SupportedWriteSegmentSet;
UINT EvictionSegmentSet;
union
{
UINT MaximumRenamingListLength;
UINT PhysicalAdapterIndex;
};
HANDLE hAllocation;
union
{
DXGK_ALLOCATIONINFOFLAGS Flags;
#if (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WDDM2_0)
DXGK_ALLOCATIONINFOFLAGS_WDDM2_0 FlagsWddm2;
#endif
};
DXGK_ALLOCATIONUSAGEHINT* pAllocationUsageHint;
UINT AllocationPriority;
#if (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WDDM3_0)
DXGK_ALLOCATIONINFOFLAGS2 Flags2;
#endif
} DXGK_ALLOCATIONINFO;

#endif // _D3DKMDDI_H_
Loading

0 comments on commit 23b5d9c

Please sign in to comment.