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