|
XenevaOS
|
#include <xe_drm.h>
Public Attributes | |
| __u64 | extensions |
| __u64 | size |
| __u32 | placement |
| __u32 | flags |
| __u32 | vm_id |
| __u32 | handle |
| __u16 | cpu_caching |
| __u16 | pad [3] |
| __u64 | reserved [2] |
struct drm_xe_gem_create - Input of &DRM_IOCTL_XE_GEM_CREATE - A structure for gem creation
The @flags can be:
@cpu_caching supports the following values:
This ioctl supports setting the following properties via the DRM_XE_GEM_CREATE_EXTENSION_SET_PROPERTY extension, which uses the generic &struct drm_xe_ext_set_property:
| __u16 drm_xe_gem_create::cpu_caching |
@cpu_caching: The CPU caching mode to select for this object. If mmapping the object the mode selected here will also be used. The exception is when mapping system memory (including data evicted to system) on discrete GPUs. The caching mode selected will then be overridden to DRM_XE_GEM_CPU_CACHING_WB, and coherency between GPU- and CPU is guaranteed. The caching mode of existing CPU-mappings will be updated transparently to user-space clients.
| __u64 drm_xe_gem_create::extensions |
@extensions: Pointer to the first extension struct, if any
| __u32 drm_xe_gem_create::flags |
@flags: Flags for the GEM object, see DRM_XE_GEM_CREATE_FLAG_*
| __u32 drm_xe_gem_create::handle |
@handle: Returned handle for the object.
Object handles are nonzero.
| __u16 drm_xe_gem_create::pad[3] |
@pad: MBZ
| __u32 drm_xe_gem_create::placement |
@placement: A mask of memory instances of where BO can be placed. Each index in this mask refers directly to the struct drm_xe_query_mem_regions' instance, no assumptions should be made about order. The type of each region is described by struct drm_xe_query_mem_regions' mem_class.
| __u64 drm_xe_gem_create::reserved[2] |
@reserved: Reserved
| __u64 drm_xe_gem_create::size |
@size: Size of the object to be created, must match region (system or vram) minimum alignment (&min_page_size).
| __u32 drm_xe_gem_create::vm_id |
@vm_id: Attached VM, if any
If a VM is specified, this BO must: