1 // Licensed under the Apache License, Version 2.0
2 // <LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
3 // <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option.
4 // All files in the project carrying such notice may not be copied, modified, or distributed
5 // except according to those terms.
6 //! Longhorn Display Driver Model (LDDM) kernel mode data type definitions
7 use shared::basetsd::UINT32;
8 use shared::minwindef::UINT;
9 use shared::ntdef::{BOOLEAN, WCHAR};
10 //1932
11 pub const DXGK_MAX_METADATA_NAME_LENGTH: usize = 32;
12 ENUM!{enum DXGK_ENGINE_TYPE {
13     DXGK_ENGINE_TYPE_OTHER,
14     DXGK_ENGINE_TYPE_3D,
15     DXGK_ENGINE_TYPE_VIDEO_DECODE,
16     DXGK_ENGINE_TYPE_VIDEO_ENCODE,
17     DXGK_ENGINE_TYPE_VIDEO_PROCESSING,
18     DXGK_ENGINE_TYPE_SCENE_ASSEMBLY,
19     DXGK_ENGINE_TYPE_COPY,
20     DXGK_ENGINE_TYPE_OVERLAY,
21     DXGK_ENGINE_TYPE_CRYPTO,
22     DXGK_ENGINE_TYPE_MAX,
23 }}
24 STRUCT!{#[repr(packed)] struct DXGK_NODEMETADATA_FLAGS {
25     Value: UINT32,
26 }}
27 BITFIELD!{DXGK_NODEMETADATA_FLAGS Value: UINT32 [
28     ContextSchedulingSupported set_ContextSchedulingSupported[0..1],
29     RingBufferFenceRelease set_RingBufferFenceRelease[1..2],
30     SupportTrackedWorkload set_SupportTrackedWorkload[2..3],
31     Reserved set_Reserved[3..16],
32     MaxInFlightHwQueueBuffers set_MaxInFlightHwQueueBuffers[16..32],
33 ]}
34 STRUCT!{#[repr(packed)] struct DXGK_NODEMETADATA {
35     EngineType: DXGK_ENGINE_TYPE,
36     FriendlyName: [WCHAR; DXGK_MAX_METADATA_NAME_LENGTH],
37     Flags: DXGK_NODEMETADATA_FLAGS,
38     GpuMmuSupported: BOOLEAN,
39     IoMmuSupported: BOOLEAN,
40 }}
41 //2100
42 STRUCT!{#[repr(packed)] struct D3DKMT_NODEMETADATA {
43     NodeOrdinalAndAdapterIndex: UINT,
44     NodeData: DXGK_NODEMETADATA,
45 }}
46