diff options
Diffstat (limited to 'libc/kernel/uapi/drm/i915_drm.h')
-rw-r--r-- | libc/kernel/uapi/drm/i915_drm.h | 82 |
1 files changed, 66 insertions, 16 deletions
diff --git a/libc/kernel/uapi/drm/i915_drm.h b/libc/kernel/uapi/drm/i915_drm.h index f265d9237..52bfad252 100644 --- a/libc/kernel/uapi/drm/i915_drm.h +++ b/libc/kernel/uapi/drm/i915_drm.h @@ -217,6 +217,7 @@ typedef struct _drm_i915_sarea { #define DRM_I915_QUERY 0x39 #define DRM_I915_GEM_VM_CREATE 0x3a #define DRM_I915_GEM_VM_DESTROY 0x3b +#define DRM_I915_GEM_CREATE_EXT 0x3c #define DRM_IOCTL_I915_INIT DRM_IOW(DRM_COMMAND_BASE + DRM_I915_INIT, drm_i915_init_t) #define DRM_IOCTL_I915_FLUSH DRM_IO(DRM_COMMAND_BASE + DRM_I915_FLUSH) #define DRM_IOCTL_I915_FLIP DRM_IO(DRM_COMMAND_BASE + DRM_I915_FLIP) @@ -247,6 +248,7 @@ typedef struct _drm_i915_sarea { #define DRM_IOCTL_I915_GEM_ENTERVT DRM_IO(DRM_COMMAND_BASE + DRM_I915_GEM_ENTERVT) #define DRM_IOCTL_I915_GEM_LEAVEVT DRM_IO(DRM_COMMAND_BASE + DRM_I915_GEM_LEAVEVT) #define DRM_IOCTL_I915_GEM_CREATE DRM_IOWR(DRM_COMMAND_BASE + DRM_I915_GEM_CREATE, struct drm_i915_gem_create) +#define DRM_IOCTL_I915_GEM_CREATE_EXT DRM_IOWR(DRM_COMMAND_BASE + DRM_I915_GEM_CREATE_EXT, struct drm_i915_gem_create_ext) #define DRM_IOCTL_I915_GEM_PREAD DRM_IOW(DRM_COMMAND_BASE + DRM_I915_GEM_PREAD, struct drm_i915_gem_pread) #define DRM_IOCTL_I915_GEM_PWRITE DRM_IOW(DRM_COMMAND_BASE + DRM_I915_GEM_PWRITE, struct drm_i915_gem_pwrite) #define DRM_IOCTL_I915_GEM_MMAP DRM_IOWR(DRM_COMMAND_BASE + DRM_I915_GEM_MMAP, struct drm_i915_gem_mmap) @@ -349,6 +351,7 @@ typedef struct drm_i915_irq_wait { #define I915_SCHEDULER_CAP_PREEMPTION (1ul << 2) #define I915_SCHEDULER_CAP_SEMAPHORES (1ul << 3) #define I915_SCHEDULER_CAP_ENGINE_BUSY_STATS (1ul << 4) +#define I915_SCHEDULER_CAP_STATIC_PRIORITY_MAP (1ul << 5) #define I915_PARAM_HUC_STATUS 42 #define I915_PARAM_HAS_EXEC_ASYNC 43 #define I915_PARAM_HAS_EXEC_FENCE 44 @@ -363,6 +366,7 @@ typedef struct drm_i915_irq_wait { #define I915_PARAM_HAS_EXEC_SUBMIT_FENCE 53 #define I915_PARAM_PERF_REVISION 54 #define I915_PARAM_HAS_EXEC_TIMELINE_FENCES 55 +#define I915_PARAM_HAS_USERPTR_PROBE 56 typedef struct drm_i915_getparam { __s32 param; int __user * value; @@ -453,6 +457,7 @@ struct drm_i915_gem_mmap_offset { #define I915_MMAP_OFFSET_WC 1 #define I915_MMAP_OFFSET_WB 2 #define I915_MMAP_OFFSET_UC 3 +#define I915_MMAP_OFFSET_FIXED 4 __u64 extensions; }; struct drm_i915_gem_set_domain { @@ -590,11 +595,11 @@ struct drm_i915_gem_busy { __u32 handle; __u32 busy; }; +struct drm_i915_gem_caching { + __u32 handle; #define I915_CACHING_NONE 0 #define I915_CACHING_CACHED 1 #define I915_CACHING_DISPLAY 2 -struct drm_i915_gem_caching { - __u32 handle; __u32 caching; }; #define I915_TILING_NONE 0 @@ -736,6 +741,7 @@ struct drm_i915_gem_context_param { #define I915_CONTEXT_PARAM_ENGINES 0xa #define I915_CONTEXT_PARAM_PERSISTENCE 0xb #define I915_CONTEXT_PARAM_RINGSIZE 0xc +#define I915_CONTEXT_PARAM_PROTECTED_CONTENT 0xd __u64 value; }; struct drm_i915_gem_context_param_sseu { @@ -769,10 +775,23 @@ struct i915_context_engines_bond { } __attribute__((packed)); #define I915_DEFINE_CONTEXT_ENGINES_BOND(name__,N__) struct { struct i915_user_extension base; struct i915_engine_class_instance master; __u16 virtual_index; __u16 num_bonds; __u64 flags; __u64 mbz64[4]; struct i915_engine_class_instance engines[N__]; \ } __attribute__((packed)) name__ +struct i915_context_engines_parallel_submit { + struct i915_user_extension base; + __u16 engine_index; + __u16 width; + __u16 num_siblings; + __u16 mbz16; + __u64 flags; + __u64 mbz64[3]; + struct i915_engine_class_instance engines[0]; +} __packed; +#define I915_DEFINE_CONTEXT_ENGINES_PARALLEL_SUBMIT(name__,N__) struct { struct i915_user_extension base; __u16 engine_index; __u16 width; __u16 num_siblings; __u16 mbz16; __u64 flags; __u64 mbz64[3]; struct i915_engine_class_instance engines[N__]; \ +} __attribute__((packed)) name__ struct i915_context_param_engines { __u64 extensions; #define I915_CONTEXT_ENGINES_EXT_LOAD_BALANCE 0 #define I915_CONTEXT_ENGINES_EXT_BOND 1 +#define I915_CONTEXT_ENGINES_EXT_PARALLEL_SUBMIT 2 struct i915_engine_class_instance engines[0]; } __attribute__((packed)); #define I915_DEFINE_CONTEXT_PARAM_ENGINES(name__,N__) struct { __u64 extensions; struct i915_engine_class_instance engines[N__]; \ @@ -782,20 +801,7 @@ struct drm_i915_gem_context_create_ext_setparam { struct i915_user_extension base; struct drm_i915_gem_context_param param; }; -struct drm_i915_gem_context_create_ext_clone { #define I915_CONTEXT_CREATE_EXT_CLONE 1 - struct i915_user_extension base; - __u32 clone_id; - __u32 flags; -#define I915_CONTEXT_CLONE_ENGINES (1u << 0) -#define I915_CONTEXT_CLONE_FLAGS (1u << 1) -#define I915_CONTEXT_CLONE_SCHEDATTR (1u << 2) -#define I915_CONTEXT_CLONE_SSEU (1u << 3) -#define I915_CONTEXT_CLONE_TIMELINE (1u << 4) -#define I915_CONTEXT_CLONE_VM (1u << 5) -#define I915_CONTEXT_CLONE_UNKNOWN - (I915_CONTEXT_CLONE_VM << 1) - __u64 rsvd; -}; struct drm_i915_gem_context_destroy { __u32 ctx_id; __u32 pad; @@ -823,6 +829,7 @@ struct drm_i915_gem_userptr { __u64 user_size; __u32 flags; #define I915_USERPTR_READ_ONLY 0x1 +#define I915_USERPTR_PROBE 0x2 #define I915_USERPTR_UNSYNCHRONIZED 0x80000000 __u32 handle; }; @@ -886,6 +893,7 @@ struct drm_i915_query_item { #define DRM_I915_QUERY_TOPOLOGY_INFO 1 #define DRM_I915_QUERY_ENGINE_INFO 2 #define DRM_I915_QUERY_PERF_CONFIG 3 +#define DRM_I915_QUERY_MEMORY_REGIONS 4 __s32 length; __u32 flags; #define DRM_I915_QUERY_PERF_CONFIG_LIST 1 @@ -913,10 +921,13 @@ struct drm_i915_engine_info { struct i915_engine_class_instance engine; __u32 rsvd0; __u64 flags; +#define I915_ENGINE_INFO_HAS_LOGICAL_INSTANCE (1 << 0) __u64 capabilities; #define I915_VIDEO_CLASS_CAPABILITY_HEVC (1 << 0) #define I915_VIDEO_AND_ENHANCE_CLASS_CAPABILITY_SFC (1 << 1) - __u64 rsvd1[4]; + __u16 logical_instance; + __u16 rsvd1[3]; + __u64 rsvd2[3]; }; struct drm_i915_query_engine_info { __u32 num_engines; @@ -932,6 +943,45 @@ struct drm_i915_query_perf_config { __u32 flags; __u8 data[]; }; +enum drm_i915_gem_memory_class { + I915_MEMORY_CLASS_SYSTEM = 0, + I915_MEMORY_CLASS_DEVICE, +}; +struct drm_i915_gem_memory_class_instance { + __u16 memory_class; + __u16 memory_instance; +}; +struct drm_i915_memory_region_info { + struct drm_i915_gem_memory_class_instance region; + __u32 rsvd0; + __u64 probed_size; + __u64 unallocated_size; + __u64 rsvd1[8]; +}; +struct drm_i915_query_memory_regions { + __u32 num_regions; + __u32 rsvd[3]; + struct drm_i915_memory_region_info regions[]; +}; +struct drm_i915_gem_create_ext { + __u64 size; + __u32 handle; + __u32 flags; +#define I915_GEM_CREATE_EXT_MEMORY_REGIONS 0 +#define I915_GEM_CREATE_EXT_PROTECTED_CONTENT 1 + __u64 extensions; +}; +struct drm_i915_gem_create_ext_memory_regions { + struct i915_user_extension base; + __u32 pad; + __u32 num_regions; + __u64 regions; +}; +struct drm_i915_gem_create_ext_protected_content { + struct i915_user_extension base; + __u32 flags; +}; +#define I915_PROTECTED_CONTENT_DEFAULT_SESSION 0xf #ifdef __cplusplus } #endif |