Lines Matching +full:ext1 +full:- +full:buffer +full:- +full:low +full:- +full:power
19 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
37 * subject to backwards-compatibility constraints.
43 * I915_L3_PARITY_UEVENT - Generated when the driver receives a parity mismatch
46 * track of these events, and if a specific cache-line seems to have a
48 * intel-gpu-tools. The value supplied with the event is always 1.
50 * I915_ERROR_UEVENT - Generated upon error detection, currently only via
57 * I915_RESET_UEVENT - Event is generated just before an attempt to reset the
66 * struct i915_user_extension - Base class for defining a chain of extensions
82 * .. code-block:: C
92 * struct i915_user_extension ext1 {
98 * struct, and in this case we would feed it the head of the chain(i.e ext1),
158 * enum drm_i915_gem_engine_class - uapi engine type enumeration
184 * Copy engines can perform pre-defined logical or bitwise operations
193 * "vdbox") support instructions that perform fixed-function media
222 I915_ENGINE_CLASS_INVALID = -1
226 * struct i915_engine_class_instance - Engine class/instance identifier
241 #define I915_ENGINE_CLASS_INVALID_NONE -1
242 #define I915_ENGINE_CLASS_INVALID_VIRTUAL -2
284 * Top 4 bits of every non-engine counter are GT id.
300 #define I915_PMU_LAST /* Deprecated - do not use */ I915_PMU_RC6_RESIDENCY
310 #define I915_NR_TEX_REGIONS 255 /* table size 2k - maximum due to use
341 int last_enqueue; /* last time a buffer was enqueued */
342 int last_dispatch; /* age of the most recently dispatched buffer */
347 int pf_current_page; /* which buffer is being displayed? */
389 /* fill out some space for old userspace triple buffer */
393 /* buffer object handles for static buffers. May change
488 /* Must be kept compact -- no holes */
565 /* As above, but pass a pointer to userspace buffer which can be
569 char __user *buf; /* pointer to userspace command buffer */
588 * Different modes of per-process Graphics Translation Table,
657 * -1k to -1 Low priority
667 * -ENODEV if HuC is not present on this platform,
668 * -EOPNOTSUPP if HuC firmware usage is disabled,
669 * -ENOPKG if HuC firmware fetch failed,
670 * -ENOEXEC if HuC firmware is invalid or mismatched,
671 * -ENOMEM if i915 failed to prepare the FW objects for transfer to the uC,
672 * -EIO if the FW transfer or the FW authentication failed.
682 /* Query whether DRM_I915_GEM_EXECBUFFER2 supports the ability to opt-out of
688 /* Query whether DRM_I915_GEM_EXECBUFFER2 supports explicit fence support -
696 * user-specified buffers for post-mortem debugging of GPU hangs. See
704 * per-slice for this system.
709 * Query whether DRM_I915_GEM_EXECBUFFER2 supports supplying the batch buffer
720 * Query whether every context (both per-file default and user created) is
748 * the different read/write domains in use (e.g. set-domain), but the assumption
756 * internal buffer and are _not_ immediately visible to third parties accessing
770 * Revision of the i915-perf uAPI. The value returned helps determine what
771 * i915-perf features are available. See drm_i915_perf_property_id.
794 * -ENODEV = PXP support is not available on the GPU device or in the
801 * initialization of non-i915 system dependencies).
804 * still refer to the GEM PXP context-creation UAPI header specs to be
815 /* Must be kept compact -- no holes and well documented */
818 * struct drm_i915_getparam - Driver parameter query structure.
827 * WARNING: Using pointers instead of fixed-size u64 means we need to write
834 * typedef drm_i915_getparam_t - Driver parameter query structure.
845 /* Must be kept compact -- no holes */
874 /* Allow memory manager to be torn down and re-initialized (eg on
890 /* Schedule buffer swap at given vertical blank:
919 * The (page-aligned) allocated size for the object will be returned.
942 * This is a fixed-size type for 32/64 compatibility.
958 * This is a fixed-size type for 32/64 compatibility.
972 * The value will be page-aligned.
978 * This is a fixed-size type for 32/64 compatibility.
998 * This is a fixed-size type for 32/64 compatibility.
1004 * struct drm_i915_gem_mmap_offset - Retrieve an offset so we can mmap this buffer object.
1021 * This is a fixed-size type for 32/64 compatibility.
1031 * - `I915_MMAP_OFFSET_GTT`: Use mmap with the object bound to GTT. (Write-Combined)
1032 * - `I915_MMAP_OFFSET_WC`: Use Write-Combined caching.
1033 * - `I915_MMAP_OFFSET_WB`: Use Write-Back caching.
1034 * - `I915_MMAP_OFFSET_FIXED`: Use object placement to determine caching.
1052 * @extensions: Zero-terminated chain of extensions.
1060 * struct drm_i915_gem_set_domain - Adjust the objects write or read domain, in
1072 * - I915_GEM_DOMAIN_WC: Uncached write-combined domain
1073 * - I915_GEM_DOMAIN_CPU: CPU cache domain
1074 * - I915_GEM_DOMAIN_GTT: Mappable aperture domain
1086 * - If any of the object placements (see &drm_i915_gem_create_ext_memory_regions)
1088 * mapped as write-combined only.
1090 * - Everything else is always allocated and mapped as write-back, with the
1120 * Handle of the buffer being pointed to by this relocation entry.
1123 * list to refer to the buffer, but this allows the driver to create
1124 * a relocation list for state buffers and not re-write it per
1125 * exec using the buffer.
1130 * Value to be added to the offset of the target buffer to make up
1135 /** Offset in the buffer the relocation entry will be written into */
1139 * Offset value of the target buffer that the relocation entry was last
1142 * If the buffer has the same offset as last time, we can skip syncing
1158 * the application will get -EINVAL back.
1182 /** GTT domain - aperture and scanout */
1184 /** WC domain - uncached access */
1190 * User's handle for a buffer to be bound into the GTT for this
1195 /** Number of relocations to be performed on this buffer */
1199 * the relocations to be performed in this buffer.
1222 * a buffer is performing refer to buffers that have already appeared
1241 * User's handle for a buffer to be bound into the GTT for this
1246 /** Number of relocations to be performed on this buffer */
1250 * the relocations to be performed in this buffer.
1281 * rendering on other devices if exported via dma-buf. However, sometimes
1283 * if the object is split into non-overlapping ranges shared between different
1292 * used by the GPU - this flag only disables the synchronisation prior to
1301 * state upon a GPU hang involving this batch for post-mortem debugging.
1308 #define __EXEC_OBJECT_UNKNOWN_FLAGS -(EXEC_OBJECT_CAPTURE<<1)
1319 * struct drm_i915_gem_exec_fence - An input or output fence for the execbuf
1343 #define __I915_EXEC_FENCE_UNKNOWN_FLAGS (-(I915_EXEC_FENCE_SIGNAL << 1))
1347 * struct drm_i915_gem_execbuffer_ext_timeline_fences - Timeline fences
1382 * struct drm_i915_gem_execbuffer2 - Structure for DRM_I915_GEM_EXECBUFFER2
1399 * @batch_len: Length in bytes of the batch buffer, starting from the
1400 * @batch_start_offset. If 0, length is assumed to be the batch buffer
1452 /** Request a privileged ("secure") batch buffer. Note only available for
1474 * than as the per-file handle.
1481 /* default ping-pong mode */
1495 * Returns -EINVAL if the sync_file fd cannot be found.
1511 * back to userspace. Failure to do so will cause the out-fence to always
1538 * Returns -EINVAL if the sync_file fd cannot be found.
1550 #define __I915_EXEC_UNKNOWN_FLAGS (-(I915_EXEC_USE_EXTENSIONS << 1))
1574 /** Handle of the buffer to be pinned. */
1581 /** Returned GTT offset of the buffer. */
1586 /** Handle of the buffer to be unpinned. */
1592 /** Handle of the buffer to check for busy */
1598 * having flushed any pending activity), and a non-zero return that
1599 * the object is still in-flight on the GPU. (The GPU has not yet
1618 * The low word (bits 0:15) indicate if the object is being written
1644 * struct drm_i915_gem_caching - Set or get the caching for given object
1663 * - If any of the object placements (see &drm_i915_gem_create_ext_memory_regions)
1665 * mapped as write-combined only.
1667 * - Everything else is always allocated and mapped as write-back, with the
1674 * Side note: Part of the reason for this is that changing the at-allocation-time CPU
1684 * @handle: Handle of the buffer to set/get the caching level.
1702 * cached in last-level caches shared between CPU cores and the GPU GT.
1708 * special cache mode (like write-through or gfdt flushing) is
1710 * buffer as a scanout target. Userspace can manually set this mode to
1725 * de-tiling fence registers that no longer exist on modern platforms. Although
1727 * do not need to add them to the uapi that is specific to now-defunct ioctls.
1743 /** Handle of the buffer to have its tiling state updated */
1756 * Buffer contents become undefined when changing tiling_mode.
1774 /** Handle of the buffer to get tiling state for. */
1820 /** Handle of the buffer to change the backing store advice */
1823 /* Advice: either the buffer will be needed again in the near future,
1861 /* stride values and offsets are in bytes, buffer relative */
1947 * struct drm_i915_gem_context_create_ext - Structure for creating contexts.
1969 (-(I915_CONTEXT_CREATE_FLAGS_SINGLE_TIMELINE << 1))
1972 * @extensions: Zero-terminated chain of extensions.
1980 * has attempted to use it, never re-use this extension number.
1988 * struct drm_i915_gem_context_param - Context parameter to set or query.
2001 * someone somewhere has attempted to use it, never re-use this context
2011 #define I915_CONTEXT_MIN_USER_PRIORITY -1023 /* inclusive */
2078 * completion. Persistence allows fire-and-forget clients to queue up a
2083 * cancelled (and exported fences for cancelled requests marked as -EIO).
2090 * attempted to use it, never re-use this context param number.
2107 * .. code-block:: C
2138 * -ENODEV: feature not available
2139 * -EPERM: trying to mark a recoverable or not bannable context as protected
2140 * -ENXIO: A dependency such as a component driver or firmware is not yet
2146 * - ADL/RPL: dependencies may take up to 3 seconds from kernel start
2148 * - MTL: dependencies may take up to 8 seconds from kernel start
2152 * such timeouts and will not return -ENXIO (unless the driver is reloaded,
2154 * -EIO: The firmware did not succeed in creating the protected context.
2161 * Mark this context as a low latency workload which requires aggressive GT
2175 /* Must be kept compact -- no holes and well documented */
2186 * Sub-slice/EU).
2193 * code -ENODEV will be returned.
2197 * combination will return an error code of -EINVAL.
2244 * physical engines, submit a batch buffer, and let the driver execute it on any
2258 * Example of creating a virtual engine and submitting a batch buffer to it:
2260 * .. code-block:: C
2294 * // the driver. The load balancing is dynamic from one batch buffer to
2360 __u16 virtual_index; /* index of virtual engine in ctx->engines[] */
2380 * struct i915_context_engines_parallel_submit - Configure engine for
2390 * N buffer objects or first N if I915_EXEC_BATCH_FIRST is set.
2397 * preempted mid-batch. Rather insert coordinated preemption points on all
2401 * Returns -EINVAL if hardware context placement configuration is invalid or if
2404 * Returns -ENODEV if extension isn't supported on the platform / submission
2407 * .. code-block:: none
2447 * CS[1], CS[3] - Not logically contiguous, return -EINVAL
2488 * @engines: 2-d array of engine instances to configure parallel engine
2511 * Context engine map is a new way of addressing engines when submitting batch-
2525 * .. code-block:: C
2595 * struct drm_i915_gem_context_create_ext_setparam - Context parameter
2615 * struct drm_i915_gem_vm_control - Structure to create or destroy VM.
2617 * DRM_I915_GEM_VM_CREATE -
2629 * DRM_I915_GEM_VM_DESTROY -
2636 /** @extensions: Zero-terminated chain of extensions. */
2661 * Render engine timestamp - 0x2358 + 64bit - gen7+
2662 * - Note this register returns an invalid value if using the default
2669 * struct drm_i915_reset_stats - Return global reset and other context stats
2695 * struct drm_i915_gem_userptr - Create GEM object from user allocated memory.
2738 * Returns -EFAULT if the probe failed.
2745 * returns a non-zero value.
2785 I915_OA_FORMAT_MAX /* non-ABI */
2844 * Specifying this pins all contexts to the specified SSEU power
2856 * at which the i915 driver will check the OA buffer for available data.
2860 * excessively large values would potentially result in OA buffer
2861 * overwrites as captures reach end of the OA buffer.
2886 DRM_I915_PERF_PROP_MAX /* non-ABI */
2911 * to close and re-open a stream with the same configuration.
2976 * command collides with periodic sampling - which would be more likely
2986 DRM_I915_PERF_RECORD_MAX /* non-ABI */
2998 * String formatted like "%\08x-%\04x-%\04x-%\04x-%\012x"
3027 * registers. Expected length of buffer is (2 * sizeof(u32) *
3036 * registers. Expected length of buffer is (2 * sizeof(u32) *
3045 * registers. Expected length of buffer is (2 * sizeof(u32) *
3052 * struct drm_i915_query_item - An individual query for the kernel to process.
3062 * - %DRM_I915_QUERY_TOPOLOGY_INFO (see struct drm_i915_query_topology_info)
3063 * - %DRM_I915_QUERY_ENGINE_INFO (see struct drm_i915_engine_info)
3064 * - %DRM_I915_QUERY_PERF_CONFIG (see struct drm_i915_query_perf_config)
3065 * - %DRM_I915_QUERY_MEMORY_REGIONS (see struct drm_i915_query_memory_regions)
3066 * - %DRM_I915_QUERY_HWCONFIG_BLOB (see `GuC HWCONFIG blob uAPI`)
3067 * - %DRM_I915_QUERY_GEOMETRY_SUBSLICES (see struct drm_i915_query_topology_info)
3068 * - %DRM_I915_QUERY_GUC_SUBMISSION_VERSION (see struct drm_i915_query_guc_submission_version)
3078 /* Must be kept compact -- no holes and well documented */
3098 * - %DRM_I915_QUERY_PERF_CONFIG_LIST
3099 * - %DRM_I915_QUERY_PERF_CONFIG_DATA_FOR_UUID
3100 * - %DRM_I915_QUERY_PERF_CONFIG_FOR_UUID
3121 * struct drm_i915_query - Supply an array of struct drm_i915_query_item for the
3138 * in a buffer/blob equal to or larger than the required size. In this case only
3231 * - The slice mask with one bit per slice telling whether a slice is
3246 * - The subslice mask for each slice with one bit per subslice telling
3249 * describes as a "dual-subslices." The availability of subslice Y
3256 * - The EU mask for each subslice in each slice, with one bit per EU
3287 * .. code-block:: C
3303 * // Alternatively a large buffer can be allocated straightaway enabling
3305 * // length of the provided buffer.
3319 * for (i = 0; i < info->num_engines; i++) {
3320 * struct drm_i915_engine_info einfo = info->engines[i];
3422 * String formatted like "%08x-%04x-%04x-%04x-%012x"
3446 * - &drm_i915_perf_oa_config.n_mux_regs
3447 * - &drm_i915_perf_oa_config.n_boolean_regs
3448 * - &drm_i915_perf_oa_config.n_flex_regs
3454 * enum drm_i915_gem_memory_class - Supported memory classes
3459 /** @I915_MEMORY_CLASS_DEVICE: Device local-memory */
3464 * struct drm_i915_gem_memory_class_instance - Identify particular memory region
3475 * struct drm_i915_memory_region_info - Describes one region as known to the
3493 * here, also note that no current region type will ever return -1 here.
3532 * small-bar uAPI support (including
3574 * .. code-block:: C
3602 * for (i = 0; i < info->num_regions; i++) {
3603 * struct drm_i915_memory_region_info mr = info->regions[i];
3624 * struct drm_i915_query_guc_submission_version - query GuC submission interface version
3648 * struct drm_i915_gem_create_ext - Existing gem_create behaviour, with added
3651 * Note that new buffer flags should be added here, at least for the stuff that
3661 * The (page-aligned) allocated size for the object will be returned.
3697 * I915_GEM_CREATE_EXT_FLAG_NEEDS_CPU_ACCESS - Signal to the kernel that
3714 * Also note that since the kernel only supports flat-CCS on objects
3717 * flat-CCS.
3719 * Without this hint, the kernel will assume that non-mappable
3725 * On older kernels which lack the relevant small-bar uAPI support (see
3762 * struct drm_i915_gem_create_ext_memory_regions - The
3774 * device local-memory we can do something like:
3776 * .. code-block:: C
3805 * On Flat-CCS capable HW, compression is supported for the objects residing
3812 * So i915 supports Flat-CCS, on the objects which can reside only on
3832 * struct drm_i915_gem_create_ext_protected_content - The
3835 * If this extension is provided, buffer contents are expected to be protected
3838 * using this extension will cause the ioctl to fail and return -ENODEV. The
3842 * The buffer contents are considered invalid after a PXP session teardown.
3851 * .. code-block:: C
3873 * struct drm_i915_gem_create_ext_set_pat - The
3877 * applied to the buffer object.
3881 * .. code-block:: C