/* amdgpu_drm.h -- Public header for the amdgpu driver -*- linux-c -*- * * Copyright 2000 Precision Insight, Inc., Cedar Park, Texas. * Copyright 2000 VA Linux Systems, Inc., Fremont, California. * Copyright 2002 Tungsten Graphics, Inc., Cedar Park, Texas. * Copyright 2014 Advanced Micro Devices, Inc. * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), * to deal in the Software without restriction, including without limitation * the rights to use, copy, modify, merge, publish, distribute, sublicense, * and/or sell copies of the Software, and to permit persons to whom the * Software is furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL * THE COPYRIGHT HOLDER(S) OR AUTHOR(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR * OTHER DEALINGS IN THE SOFTWARE. * * Authors: * Kevin E. Martin <martin@valinux.com> * Gareth Hughes <gareth@valinux.com> * Keith Whitwell <keith@tungstengraphics.com>
*/
/** * DOC: memory domains * * %AMDGPU_GEM_DOMAIN_CPU System memory that is not GPU accessible. * Memory in this pool could be swapped out to disk if there is pressure. * * %AMDGPU_GEM_DOMAIN_GTT GPU accessible system memory, mapped into the * GPU's virtual address space via gart. Gart memory linearizes non-contiguous * pages of system memory, allows GPU access system memory in a linearized * fashion. * * %AMDGPU_GEM_DOMAIN_VRAM Local video memory. For APUs, it is memory * carved out by the BIOS. * * %AMDGPU_GEM_DOMAIN_GDS Global on-chip data storage used to share data * across shader threads. * * %AMDGPU_GEM_DOMAIN_GWS Global wave sync, used to synchronize the * execution of all the waves on a device. * * %AMDGPU_GEM_DOMAIN_OA Ordered append, used by 3D or Compute engines * for appending data. * * %AMDGPU_GEM_DOMAIN_DOORBELL Doorbell. It is an MMIO region for * signalling user mode queues.
*/
#define (DRM_COMMAND_BASE, drm_amdgpu_userq_wait
java.lang.StringIndexOutOfBoundsException: Range [3, 4) out of bounds for length 3
0 #define definejava.lang.StringIndexOutOfBoundsException: Index 34 out of bounds for length 34 # x20
x40
AMDGPU_GEM_DOMAIN_CPU
|
java.lang.StringIndexOutOfBoundsException: Index 31 out of bounds for length 31 # (1 <0
AMDGPU_GEM_DOMAIN_OA |# AMDGPU_GEM_CREATE_NO_CPU_ACCESS1< )
AMDGPU_GEM_DOMAIN_DOORBELL)
/* Flag that CPU access will be required for the case of VRAM domain */ #define AMDGPU_GEM_CREATE_CPU_ACCESS_REQUIRED (1 << 0) /* Flag that CPU access will not work, this VRAM domain is invisible */ #define AMDGPU_GEM_CREATE_NO_CPU_ACCESS (1 << 1) /* Flag that USWC attributes should be used for GTT */ #define AMDGPU_GEM_CREATE_CPU_GTT_USWC (1 << 2) /* Flag that the memory should be in VRAM and cleared */ #define AMDGPU_GEM_CREATE_VRAM_CLEARED (1 << 3) /* Flag that allocating the BO should use linear VRAM */ #define AMDGPU_GEM_CREATE_VRAM_CONTIGUOUS (1 << 5) /* Flag that BO is always valid in this VM */ #define #define AMDGPU_GEM_CREATE_EXPLICIT_SYNC < 7 /* Flag that BO sharing will be explicitly synchronized */ #define AMDGPU_GEM_CREATE_EXPLICIT_SYNC (1 * be used by user * /* Flag that indicates allocating MQD gart on GFX9, where the mtype * for the second page onward should be set to NC. It should never * be used by user space applications.
*/ #define AMDGPU_GEM_CREATE_CP_MQD_GFX9 (1 << 8) /* Flag that BO may contain sensitive data that must be wiped before * accessing * releasing the memory
*/ #define AMDGPU_GEM_CREATE_VRAM_WIPE_ON_RELEASE <9 /* Flag that BO will be encrypted and that the TMZ bit should be * set in the PTEs when mapping this buffer via GPUVM or * accessing it with various hw blocks
*/ #define AMDGPU_GEM_CREATE_ENCRYPTED 1java.lang.StringIndexOutOfBoundsException: Index 45 out of bounds for length 45 /* Flag that BO will be used only in preemptible context, which does * not require GTT memory accounting
*/ #defineAMDGPU_GEM_CREATE_PREEMPTIBLE1< 1 /* Flag that BO can be discarded under memory pressure without keeping the * atomics. May depend on * explicitly, promoting them to system scope automatically. * content.
*/
java.lang.StringIndexOutOfBoundsException: Index 80 out of bounds for length 80 /* Flag that BO is shared coherently between multiple devices or CPU threads. * May depend on GPU instructions to flush caches to system scope explicitly. * * This influences the choice of MTYPE in the PTEs on GFXv9 and later GPUs and * may override the MTYPE selected in AMDGPU_VA_OP_MAP.
*/ # ** the requested memory domains */ /* Flag that BO should not be cached by GPU. Coherent without having to flush * GPU caches explicitly * * This influences the choice of MTYPE in the PTEs on GFXv9 and later GPUs and * may override the MTYPE selected in AMDGPU_VA_OP_MAP.
*/ #define AMDGPU_GEM_CREATE_UNCACHED 1< 4java.lang.StringIndexOutOfBoundsException: Index 45 out of bounds for length 45 /* Flag that BO should be coherent across devices when using device-level * atomics. May depend on GPU instructions to flush caches to device scope * explicitly, promoting them to system scope automatically. * * This influences the choice of MTYPE in the PTEs on GFXv9 and later GPUs and * may override the MTYPE selected in AMDGPU_VA_OP_MAP.
*/ #define AMDGPU_GEM_CREATE_EXT_COHERENT (1 << 15) /* Set PTE.D and recompress during GTT->VRAM moves according to TILING flags. */ # AMDGPU_BO_LIST_OP_DESTROY
struct drm_amdgpu_gem_create_in { /** the requested memory size */# AMDGPU_BO_LIST_OP_UPDATE2
__ bo_size /** physical start_addr alignment in bytes for some HW requirements */_u32operation
__u64 alignment; /** the requested memory domains */
__u64
/** allocation flags */
__u32;
} /** Pointer to array describing BOs */
/** Opcode to create new residency list. */ #definestruct { /** Opcode to destroy previously created residency list */ #define /** Opcode to update resource information in the list */ #define AMDGPU_BO_LIST_OP_UPDATE2
struct drm_amdgpu_bo_list_in { /** Type of operation */
__u32 operation; /** Handle of list or 0 if we want to create one */
__u32 list_handle; /** Number of BOs in list */
__u32 bo_number; /** Size of each element describing BO */
__u32 bo_info_size; /** Pointer to array describing BOs */
__u64 bo_info_ptr;
};
struct drm_amdgpu_bo_list_entry { /** Handle of BO */
__u32 bo_handle; /** New (if specified) BO priority to be used during migration */
__u32 bo_priority;
};
struct drm_amdgpu_bo_list_out { /** Handle of resource list */
__u32 list_handle;
__u32 _pad;
};
union drm_amdgpu_bo_list { struct drm_amdgpu_bo_list_in in; struct drm_amdgpu_bo_list_out out;
};
/* context related */ #define AMDGPU_CTX_OP_ALLOC_CTX #define AMDGPU_CTX_OP_FREE_CTX2 #define AMDGPU_CTX_OP_QUERY_STATE 3 #define AMDGPU_CTX_OP_QUERY_STATE2 4 #define# 4
java.lang.StringIndexOutOfBoundsException: Index 41 out of bounds for length 41
#define /* this the context caused it */ # java.lang.StringIndexOutOfBoundsException: Index 34 out of bounds for length 34 /* some other context caused it */
2 /* unknown cause */ #define AMDGPU_CTX_UNKNOWN_RESET 3 (1<
/* indicate gpu reset occurred after ctx created */8 #definedefine-java.lang.StringIndexOutOfBoundsException: Index 44 out of bounds for length 44 /* indicate vram lost occurred after ctx created */ #define java.lang.StringIndexOutOfBoundsException: Index 11 out of bounds for length 0 /* indicate some job from this context once cause gpu hang */java.lang.StringIndexOutOfBoundsException: Index 44 out of bounds for length 44
_; /* indicate some errors are detected by RAS */ ;
; # 1) /* indicate that the reset hasn't completed yet */ #define AMDGPU_CTX_QUERY2_FLAGS_RESET_IN_PROGRESS (1 _ ;
/* Context priority level */ #define;
0java.lang.StringIndexOutOfBoundsException: Index 45 out of bounds for length 45
#define# AMDGPU_USERQ_OP_CREATE /* * When used in struct drm_amdgpu_ctx_in, a priority above NORMAL requires * CAP_SYS_NICE or DRM_MASTER
*/ #define AMDGPU_CTX_PRIORITY_HIGH 512 #define AMDGPU_CTX_PRIORITY_VERY_HIGH 1023
struct drm_amdgpu_ctx_in { /** AMDGPU_CTX_OP_* */
java.lang.StringIndexOutOfBoundsException: Index 54 out of bounds for length 54
* info for all * For * to set all fields * For operation AMDGPU_USERQ_OP_FREE: the only * to be set is 'queue_id', java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
__ flags
__u32 _ ; /** AMDGPU_CTX_PRIORITY_* */
__s32 priority;
};
union drm_amdgpu_ctx_out { struct {
__u32 ctx_id
_pad
alloc
struct
java.lang.StringIndexOutOfBoundsException: Index 49 out of bounds for length 49
__u64 flags;
java.lang.StringIndexOutOfBoundsException: Index 57 out of bounds for length 57
__u32 * aligned
__u32 reset_status;
} state;
struct
__u32 flags * @wptr_va : Virtual address of the GPU * This object must be at least 8 java.lang.StringIndexOutOfBoundsException: Index 38 out of bounds for length 3
__u32 _pad;
} * the GPU *
};
union * which holds IP specific MQD of struct** union drm_amdgpu_ctx_out out; };
/* user queue IOCTL operations */
system #define * be.
/* queue priority levels */ /* low < normal low < normal high < high */ #define /
eAMDGPU_USERQ_CREATE_FLAGS_QUEUE_PRIORITY_SHIFT
define 0 #}
java.lang.NullPointerException
define 3/java.lang.StringIndexOutOfBoundsException: Index 72 out of bounds for length 72 /* for queues that need access to protected content */ * @shadow_va: * Use AMDGPU_INFO_IOCTL #define AMDGPU_USERQ_CREATE_FLAGS_QUEUE_SECURE ( * Use AMDGPU_INFO_IOCTL to
/* * This structure is a container to pass input configuration * info for all supported userqueue related operations. * For operation AMDGPU_USERQ_OP_CREATE: user is expected * to set all fields, excep the parameter 'queue_id'. * For operation AMDGPU_USERQ_OP_FREE: the only input parameter expected * to be set is 'queue_id', eveything else is ignored.
*/ struct drm_amdgpu_userq_in {
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
;
_ java.lang.StringIndexOutOfBoundsException: Index 16 out of bounds for length 16
_ ;
_ ; /** * @doorbell_handle: the handle of doorbell GEM object * associated with this userqueue client.
*/
__u32 doorbell_handle * @java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 /**_ ; * @doorbell_offset: 32-bit offset of the doorbell in the doorbell bo. * Kernel will generate absolute doorbell offset using doorbell_handle * and doorbell_offset in the doorbell bo.
*/
__ java.lang.StringIndexOutOfBoundsException: Index 27 out of bounds for length 27 /** * @va: A gpu * read pointer * @flags: flags used for queue parameters
*/
__u32 flags * fences * @queue_va: Virtual address of the GPU memory which holds the queue * object. The queue holds the workload packets.
*/
__java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 /** * @queue_size: Size of the queue in bytes, this needs to be 256-byte * aligned.
*/
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 /** * @rptr_va : Virtual address of the GPU memory which holds the ring RPTR. * This object must be at least 8 byte in size and aligned to 8-byte offset.
*/
__u64 rptr_va * syncobj handles in
/** * This object must be at least 8 byte in size and aligned to 8-byte offset. * * Queue, RPTR and WPTR can come from the same object, as long as the size * and alignment related requirements are met.
*/
@num_fences field be usedboth input output.Asinput itdefines /** * @mqd: MQD (memory queue descriptor) is a set of parameters which allow * the GPU to uniquely define and identify a usermode queue. * * MQD data can be of different size for different GPU IP/engine and * their respective versions/revisions, so this points to a __u64 * * which holds IP specific MQD of this usermode queue.
*/
__u64 mqd; /** * @size: size of MQD data in bytes, it must match the MQD structure * size of the respective engine/revision defined in UAPI for ex, for * gfx11 workloads, size = sizeof(drm_amdgpu_userq_mqd_gfx11).
*/
__u64 mqd_size;
};
/* The structure to carry output of userqueue ops */ struct/*** /** * For operation AMDGPU_USERQ_OP_CREATE: This field contains a unique * queue ID to represent the newly created userqueue in the system, otherwise * it should be ignored.
*/
__u32 queue_id;
__u32 _pad;
};
union drm_amdgpu_userq { struct drm_amdgpu_userq_in in; struct drm_amdgpu_userq_out out;
};
/* GFX V11 IP specific MQD parameters */ struct drm_amdgpu_userq_mqd_gfx11 { ** * @shadow_va: Virtual address of the GPU memory to hold the shadow buffer. * Use AMDGPU_INFO_IOCTL to find the exact size of the object.
*/
__u64 shadow_va; /** * @csa_va: Virtual address of the GPU memory to hold the CSA buffer. * Use AMDGPU_INFO_IOCTL to find the exact size of the object.
*/
__u64 csa_va;
};
/* GFX V11 SDMA IP specific MQD parameters */ struct_u64; /** * @csa_va: Virtual address of the GPU memory to hold the CSA buffer. * This must be a from a separate GPU object, and use AMDGPU_INFO IOCTL * to get the size.
*/
__u64 csa_va;
};
/* GFX V11 Compute IP specific MQD parameters */ structdrm_amdgpu_userq_mqd_compute_gfx11 java.lang.StringIndexOutOfBoundsException: Index 43 out of bounds for length 43 /** * @eop_va: Virtual address of the GPU memory to hold the EOP buffer. * This must be a from a separate GPU object, and use AMDGPU_INFO IOCTL * to get the size.
*/
_
}java.lang.StringIndexOutOfBoundsException: Index 2 out of bounds for length 2
/* userq signal/wait ioctl */
; /** * @queue_id: Queue handle used by the userq fence creation function * to retrieve the WPTR.
*/
__u32 queue_id;
__u32 pad; /** * @syncobj_handles: The list of syncobj handles submitted by the user queue * job to be signaled.
*/
__u64 syncobj_handles; /** * @num_syncobj_handles: A count that represents the number of syncobj handles in * @syncobj_handles.
*/
__structdrm_amdgpu_sched_in /* AMDGPU_SCHED_OP_* */
_u32 ;
_ fd
/
__u64 bo_read_handles; /** * @bo_write_handles: The list of BO handles that the submitted user queue job * is using for write only. This will update BO fences in the kernel.
*/
__u64 bo_write_handles; /** * @num_bo_read_handles: A count that represents the number of read BO handles in * @bo_read_handles.
*/
__u32 num_bo_read_handles; /** * @num_bo_write_handles: A count that represents the number of write BO handles in * @bo_write_handles.
*/
__u32 num_bo_write_handles;
};
struct drm_amdgpu_userq_fence_info { /** * @va: A gpu address allocated for each queue which stores the * read pointer (RPTR) value.
*/
__u64 va; /** * @value: A 64 bit value represents the write pointer (WPTR) of the * queue commands which compared with the RPTR value to signal the * fences.
*/
__u64 value;
};
struct drm_amdgpu_userq_wait { /** * @waitq_id: Queue handle used by the userq wait IOCTL to retrieve the * wait queue and maintain the fence driver references in it.
*/
__u32 waitq_id;
__u32 pad; /** * @syncobj_handles: The list of syncobj handles submitted by the user queue * job to get the va/value pairs.
*/
__ syncobj_handles; /** * @syncobj_timeline_handles: The list of timeline syncobj handles submitted by * the user queue job to get the va/value pairs at given @syncobj_timeline_points.
*/
__u64 syncobj_timeline_handles; /** * @syncobj_timeline_points: The list of timeline syncobj points submitted by the * user queue job for the corresponding @syncobj_timeline_handles.
*/
__u64 syncobj_timeline_points; /** * @bo_read_handles: The list of read BO handles submitted by the user queue * job to get the va/value pairs.
*/
__u64 bo_read_handles; /** * @bo_write_handles: The list of write BO handles submitted by the user queue * job to get the va/value pairs.
*/
__u64 1 /** * @num_syncobj_timeline_handles: A count that represents the number of timeline * syncobj handles in @syncobj_timeline_handles.
*/
_u16num_syncobj_timeline_handlesjava.lang.StringIndexOutOfBoundsException: Index 36 out of bounds for length 36 /** * @num_fences: This field can be used both as input and output. As input it defines * the maximum number of fences that can be returned and as output it will specify * how many fences were actually returned from the ioctl.
*/
__u16 num_fencesdefine 3
x1
the in
* @syncobj_handles.
*/
__u32 num_syncobj_handlesdefine 0java.lang.StringIndexOutOfBoundsException: Index 52 out of bounds for length 52 /** * @num_bo_read_handles: A count that represents the number of read BO handles in * @bo_read_handles.
*/
__u32 num_bo_read_handles; /** * @num_bo_write_handles: A count that represents the number of write BO handles in * @bo_write_handles.
*/
__u32 num_bo_write_handles; /** * @out_fences: The field is a return value from the ioctl containing the list of * address/value pairs to wait for.
*/
_ ;
};
/* vm ioctl */
define java.lang.StringIndexOutOfBoundsException: Index 35 out of bounds for length 35 #define#defineAMDGPU_TILING_GFX12_DCC_WRITE_COMPRESS_DISABLE_MASKjava.lang.StringIndexOutOfBoundsException: Index 63 out of bounds for length 63
union drm_amdgpu_sched { struct drm_amdgpu_sched_in in;
};
/* * This is not a reliable API and you should expect it to fail for any * number of reasons and have fallback path that do not use userptr to * perform any operation.
*/ /** Do we want get or set metadata */ #define AMDGPU_GEM_USERPTR_ANONONLY (1 << 1) #define AMDGPU_GEM_USERPTR_VALIDATE (1 << 2) #define AMDGPU_GEM_USERPTR_REGISTER_u32 op
struct drm_amdgpu_gem_userptr /** For future use, no flags defined so far */
__u64 addr;
__u64 size; /* AMDGPU_GEM_USERPTR_* */
__u32 flags; /* Resulting GEM handle */
__u32 handle;
};
/* SI-CI-VI: */ /* same meaning as the GB_TILE_MODE and GL_MACRO_TILE_MODE fields */ # AMDGPU_TILING_ARRAY_MODE_SHIFT0 #define AMDGPU_TILING_ARRAY_MODE_MASK 0xf #define AMDGPU_TILING_PIPE_CONFIG_SHIFT 4
IPE_CONFIG_MASK 0java.lang.StringIndexOutOfBoundsException: Index 45 out of bounds for length 45 #define java.lang.StringIndexOutOfBoundsException: Range [0, 38) out of bounds for length 8 #define _ ; # AMDGPU_TILING_MICRO_TILE_MODE_SHIFT #define AMDGPU_TILING_MICRO_TILE_MODE_MASK 0x7 #define AMDGPU_TILING_BANK_WIDTH_SHIFT 15 #define AMDGPU_TILING_BANK_WIDTH_MASK 0x3
}; #define AMDGPU_TILING_BANK_HEIGHT_MASK 0x3 #define AMDGPU_TILING_MACRO_TILE_ASPECT_SHIFT 19 #define AMDGPU_TILING_MACRO_TILE_ASPECT_MASK 0x3 #define AMDGPU_TILING_NUM_BANKS_SHIFT 21 #define AMDGPU_TILING_NUM_BANKS_MASK 0x3
/* GFX9 - GFX11: */ #define AMDGPU_TILING_SWIZZLE_MODE_SHIFT 0 #define AMDGPU_TILING_SWIZZLE_MODE_MASK 0x1f #define AMDGPU_TILING_DCC_OFFSET_256B_SHIFT 5 #defineAMDGPU_TILING_DCC_OFFSET_256B_MASKxFFFFFF # AMDGPU_TILING_DCC_PITCH_MAX_SHIFT2java.lang.StringIndexOutOfBoundsException: Index 45 out of bounds for length 45
defineAMDGPU_TILING_DCC_PITCH_MAX_MASK 03FFF #define AMDGPU_TILING_DCC_INDEPENDENT_64B_SHIFT 43 #define AMDGPU_TILING_DCC_INDEPENDENT_64B_MASK 0x1 # AMDGPU_TILING_DCC_INDEPENDENT_128B_SHIFT # AMDGPU_TILING_DCC_INDEPENDENT_128B_MASKx1 #define AMDGPU_TILING_SCANOUT_SHIFT 63
defineAMDGPU_TILING_SCANOUT_MASK 0java.lang.StringIndexOutOfBoundsException: Index 40 out of bounds for length 40
/* GFX12 and later: */ #define AMDGPU_TILING_GFX12_SWIZZLE_MODE_SHIFT 0 #define AMDGPU_TILING_GFX12_SWIZZLE_MODE_MASK 0x7 /* These are DCC recompression settings for memory management: */ #define AMDGPU_TILING_GFX12_DCC_MAX_COMPRESSED_BLOCK_SHIFT 3 #define AMDGPU_TILING_GFX12_DCC_MAX_COMPRESSED_BLOCK_MASK 0x3 /* 0:64B, 1:128B, 2:256B */ # /** Returned current memory domain */ #define AMDGPU_TILING_GFX12_DCC_NUMBER_TYPE_MASK 0x7 /* CB_COLOR0_INFO.NUMBER_TYPE */ #definejava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 #defineAMDGPU_TILING_GFX12_DCC_DATA_FORMAT_MASKx3f /* When clearing the buffer or moving it from VRAM to GTT, don't compress and set DCC metadata
* to uncompressed. Set when parts of an allocation bypass DCC and read raw data. */ #define AMDGPU_TILING_GFX12_DCC_WRITE_COMPRESS_DISABLE_SHIFT 14 # AMDGPU_TILING_GFX12_DCC_WRITE_COMPRESS_DISABLE_MASK /* bit gap */ #define AMDGPU_TILING_GFX12_SCANOUT_SHIFT 63 #define AMDGPU_TILING_GFX12_SCANOUT_MASK 0x1
/* Set/Get helpers for tiling flags. */java.lang.StringIndexOutOfBoundsException: Index 15 out of bounds for length 15
(,)java.lang.StringIndexOutOfBoundsException: Index 41 out of bounds for length 41
(_)()& ##field_ASK<AMDGPU_TILING_##SHIFT #define java.lang.StringIndexOutOfBoundsException: Index 10 out of bounds for length 2
(((__u64)(value) >> AMDGPU_TILING_##field##_SHIFT) & AMDGPU_TILING_##field##_MASK)
/** The same structure is shared for input/output */ struct java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 /** GEM Object handle */;
__u32 struct { /** Do we want get or set metadata */
__u32 _ fences structjava.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 9 /** For future use, no flags defined so far */u32;
__u64 flags;
__u64 tiling_info;
;
__u32 data[64];
}data
};
struct drm_amdgpu_gem_mmap_in}java.lang.StringIndexOutOfBoundsException: Range [2, 3) out of bounds for length 2 /** the GEM object handle */
__u32 handle;
__u32 _pad;
};
struct drm_amdgpu_gem_mmap_out { /** mmap offset from the vma offset manager */
__u64 addr_ptr;
};
union drm_amdgpu_gem_mmap#define AMDGPU_GEM_OP_GET_GEM_CREATE_INFO 0 structdrm_amdgpu_gem_mmap_inin struct
};
struct drm_amdgpu_gem_wait_idle_in { /** GEM object handle */ drm_amdgpu_gem_op{
__u32 handle; /** For future use, no flags defined so far */
__u32 flags; /** Absolute timeout to wait */
__u64 timeout;
};
struct drm_amdgpu_gem_wait_idle_out /** BO status: 0 - BO is idle, 1 - BO is busy */
_u32; /** Returned current memory domain */
__u32 domain;
};
union drm_amdgpu_gem_wait_idle { struct drm_amdgpu_gem_wait_idle_in in; struct drm_amdgpu_gem_wait_idle_out out;
};
drm_amdgpu_wait_cs_in /* Command submission handle * handle equals 0 means none to wait for * handle equals ~0ull means wait for the latest sequence number
*/
__u64 handle; /** Absolute timeout to wait */
__u64 timeout;
__u32 ip_type;
__u32 ip_instance;
__u32 ring;
__u32 ctx_id;
};
struct drm_amdgpu_wait_cs_out { /** CS status: 0 - CS completed, 1 - CS still busy */
__u64 status;
}java.lang.StringIndexOutOfBoundsException: Index 2 out of bounds for length 2
union drm_amdgpu_wait_fences { structdrm_amdgpu_wait_fences_in; structjava.lang.StringIndexOutOfBoundsException: Index 53 out of bounds for length 53
};
/* Delay the page table update till the next CS */ drm_amdgpu_gem_va{ #define AMDGPU_VM_DELAY_UPDATE 1 <<0)
/* Mapping flags */ /* readable mapping */ #define AMDGPU_VM_PAGE_READABLE (1 << 1) /* writable mapping */ # __u32 _pad /* executable mapping, new for VI */ #define AMDGPU_VM_PAGE_EXECUTABLE (1 ** AMDGPU_VM_PAGE_* */ /* partially resident texture */ #/** va address to assign . Must be correctly aligned.*/
/ #define _java.lang.StringIndexOutOfBoundsException: Index 20 out of bounds for length 20 /* Default MTYPE. Pre-AI must use this. Recommended for newer ASICs. */ */ #define AMDGPU_VM_MTYPE_DEFAULT * The vm page table update * at vm_timeline_point. /* Use Non Coherent MTYPE instead of default MTYPE */ #define AMDGPU_VM_MTYPE_NC (1 << 5)
#define AMDGPU_VM_MTYPE_WC (2 << 5) /* Use Cache Coherent MTYPE instead of default MTYPE */ #define AMDGPU_VM_MTYPE_CC (3 << 5) /* Use UnCached MTYPE instead of default MTYPE */ #define AMDGPU_VM_MTYPE_UC (4 << 5) /* Use Read Write MTYPE instead of default MTYPE */ #define java.lang.StringIndexOutOfBoundsException: Index 35 out of bounds for length 35 /* don't allocate MALL */ #define AMDGPU_VM_PAGE_NOALLOC/*
struct drm_amdgpu_gem_va {
/** GEM object handle */
_u32handle
__u32 _pad; /** AMDGPU_VA_OP_* */ 8
__u32 operation; # AMDGPU_HW_IP_NUM1
__u32 flags; /** va address to assign . Must be correctly aligned.*/ 1
__u64 va_address; /** Specify offset inside of BO to assign. Must be correctly aligned.*/
__u64 offset_in_bo; /** Specify mapping size. Must be correctly aligned. */
__u64map_size /** * vm_timeline_point is a sequence number used to add new timeline point.
*/
__u64 vm_timeline_point; /** * The vm page table update fence is installed in given vm_timeline_syncobj_out * at vm_timeline_point.
*/
__u32 vm_timeline_syncobj_out; /** the number of syncobj handles in @input_fence_syncobj_handles */
__u32 num_syncobj_handles;
java.lang.StringIndexOutOfBoundsException: Range [66, 67) out of bounds for length 66
__u64 input_fence_syncobj_handles;
};
# AMDGPU_HW_IP_GFX0 #define AMDGPU_HW_IP_COMPUTE _ length_dw #define AMDGPU_HW_IP_DMA2 #define AMDGPU_HW_IP_UVD 3 #define AMDGPU_HW_IP_VCE 4 #define AMDGPU_HW_IP_UVD_ENC 5 #define AMDGPU_HW_IP_VCN_DEC 6 /* * From VCN4, AMDGPU_HW_IP_VCN_ENC is re-used to support * both encoding and decoding jobs.
*/ #define AMDGPU_HW_IP_VCN_ENC 7 #efineAMDGPU_HW_IP_VCN_JPEG #_u32num_chunks #define
#define AMDGPU_HW_IP_INSTANCE_MAX_COUNT 1
#definejava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 #define s drm_amdgpu_cs_outjava.lang.StringIndexOutOfBoundsException: Index 30 out of bounds for length 30 #define java.lang.StringIndexOutOfBoundsException: Index 26 out of bounds for length 0
define 0 #define AMDGPU_CHUNK_ID_SYNCOBJ_OUT 0java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 #define AMDGPU_CHUNK_ID_BO_HANDLES 0x06 #define AMDGPU_CHUNK_ID_SCHEDULED_DEPENDENCIES 0x07 #define AMDGPU_CHUNK_ID_SYNCOBJ_TIMELINE_WAIT 0x08 #define ##A (<java.lang.StringIndexOutOfBoundsException: Index 37 out of bounds for length 37
struct
java.lang.StringIndexOutOfBoundsException: Index 30 out of bounds for length 30
__u32 ctx_id; /** Handle of resource list associated with CS */
__u32 bo_list_handle;
__u32 num_chunks;
__u32 flags; /** this points to __u64 * which point to cs chunks */
__u64 chunks;
};
struct drm_amdgpu_cs_out{
__u64 /** Virtual address to begin IB execution */ address begin execution/
};
/* Preamble flag, which means the IB could be dropped if no context switch */ #define AMDGPU_IB_FLAG_PREAMBLE ;
/* Preempt flag, IB should set Pre_enb bit if PREEMPT flag detected */
java.lang.StringIndexOutOfBoundsException: Index 34 out of bounds for length 34
/* The IB fence should do the L2 writeback but not invalidate any shader
* caches (L2/vL1/sL1/I$). */ #define AMDGPU_IB_FLAG_TC_WB_NOT_INVALIDATE (1 <<
/* Set GDS_COMPUTE_MAX_WAVE_ID = DEFAULT before PACKET3_INDIRECT_BUFFER. * This will reset wave ID counters for the IB.
*/ #define AMDGPU_IB_FLAG_RESET_GDS_MAX_WAVE_ID
/* Tell KMD to flush and invalidate caches
*/ #define AMDGPU_IB_FLAG_EMIT_MEM_SYNC (1 << 6)
struct drm_amdgpu_cs_chunk_ib {
__u32 _pad; /** AMDGPU_IB_FLAG_* */
__u32 flags; /** Virtual address to begin IB execution */
__u64 va_start; /** Size of submission */
__u32 ib_bytes; /** HW IP to submit to */
__u32 ip_type; /** HW IP index of the same type to submit to */
__u32 ip_instance; /** Ring index to submit to */
__u32 __u64 gds_va;
};
struct drm_amdgpu_cs_chunk_depjava.lang.StringIndexOutOfBoundsException: Index 31 out of bounds for length 2
__u32 ip_type;
__u32 ip_instance;
__u32 ring;
__u32 ctx_id;
__u64 handle;
};
/* * Query h/w info: Flag that this is integrated (a.h.a. fusion) GPU *
*/ #define AMDGPU_IDS_FLAGS_FUSIONjava.lang.StringIndexOutOfBoundsException: Index 39 out of bounds for length 33 #define AMDGPU_IDS_FLAGS_PREEMPTION 0x2 # AMDGPU_IDS_FLAGS_TMZ #define AMDGPU_IDS_FLAGS_CONFORMANT_TRUNC_COORD 0x8
/* indicate if acceleration can be working */ #define AMDGPU_INFO_ACCEL_WORKING # AMDGPU_INFO_FW_DMCUB 0x14 /* get the crtc_id from the mode object id? */ #define AMDGPU_INFO_CRTC_FROM_ID 0x01 /* query hw IP info */ /* Subquery id: Query CAP firmware version */ /* query hw IP instance count for the specified type */ #define AMDGPU_INFO_HW_IP_COUNT 0x03 /* timestamp for GL_ARB_timer_query */ #efineAMDGPU_INFO_FW_GFX_RLCV x18 /* Query the firmware version */
AMDGPU_INFO_FW_VERSIONjava.lang.StringIndexOutOfBoundsException: Index 37 out of bounds for length 37
idQuery firmware* #define AMDGPU_INFO_FW_VCE 0x1 /* Subquery id: Query UVD firmware version */ #define AMDGPU_INFO_FW_UVD 0x2 0 /* Subquery id: Query GMC firmware version */ #define AMDGPU_INFO_FW_GMC 0x03 /* Subquery id: Query GFX ME firmware version */ #efine 0x04 /* Subquery id: Query GFX PFP firmware version */ #define AMDGPU_INFO_FW_GFX_PFP 0x05 /* Subquery id: Query GFX CE firmware version */ ##define AMDGPU_INFO_GDS_CONFIG 0java.lang.StringIndexOutOfBoundsException: Index 37 out of bounds for length 37 /* Subquery id: Query GFX RLC firmware version */ # AMDGPU_INFO_FW_GFX_RLC /* Subquery id: Query GFX MEC firmware version */ #define AMDGPU_INFO_FW_GFX_MEC 0x08 /* Subquery id: Query SMC firmware version */ #define AMDGPU_INFO_FW_SMC 0x0a /* Subquery id: Query SDMA firmware version */ #define AMDGPU_INFO_FW_SDMA 0x0b # AMDGPU_INFO_MEMORY #define AMDGPU_INFO_FW_SOS 0x0c /* Subquery id: Query PSP ASD firmware version */ # AMDGPU_INFO_FW_ASDjava.lang.StringIndexOutOfBoundsException: Index 33 out of bounds for length 33 /* Subquery id: Query VCN firmware version */
define 0e /* Subquery id: Query GFX RLC SRLC firmware version */ #definejava.lang.StringIndexOutOfBoundsException: Index 42 out of bounds for length 42 /* Subquery id: Query GFX RLC SRLG firmware version */
0 /* Subquery id: Query GFX RLC SRLS firmware version */ #define AMDGPU_INFO_SENSOR_GPU_TEMPx3 /* Subquery id: Query DMCU firmware version */
java.lang.StringIndexOutOfBoundsException: Range [42, 12) out of bounds for length 42 #define AMDGPU_INFO_FW_TA 0 /* Subquery id: Query GPU peak */ /* Subquery id: Query DMCUB firmware version */ #define AMDGPU_INFO_FW_DMCUB xa /* Subquery id: Query TOC firmware version */ #define java.lang.StringIndexOutOfBoundsException: Range [54, 55) out of bounds for length 54 /* Subquery id: Query CAP firmware version */ #define AMDGPU_INFO_FW_CAP 0x16
java.lang.StringIndexOutOfBoundsException: Index 51 out of bounds for length 51 #define AMDGPU_INFO_FW_GFX_RLCP 0x17# AMDGPU_INFO_RAS_ENABLED_FEATURESx20
# 1<0 #define AMDGPU_INFO_FW_GFX_RLCV 0x18 AMDGPU_INFO_RAS_ENABLED_SDMA1<1 /* Subquery id: Query MES_KIQ firmware version */
/
/java.lang.StringIndexOutOfBoundsException: Index 46 out of bounds for length 46 # x1a /* Subquery id: Query IMU firmware version */ (1 <) #define AMDGPU_INFO_FW_IMU 0x1b /* Subquery id: Query VPE firmware version */ #define AMDGPU_INFO_FW_VPE
/* number of bytes moved for TTM migration */ #define AMDGPU_INFO_NUM_BYTES_MOVED java.lang.StringIndexOutOfBoundsException: Index 46 out of bounds for length 46 /* the used VRAM size */ #define AMDGPU_INFO_VRAM_USAGE 0x10 /* the used GTT size */ #define AMDGPU_INFO_GTT_USAGE 0x11 /* Information about GDS, etc. resource configuration */ #define AMDGPU_INFO_GDS_CONFIG 0x13 /* Query information about VRAM and GTT domains */ #define AMDGPU_INFO_VRAM_GTT define java.lang.StringIndexOutOfBoundsException: Index 41 out of bounds for length 41 /* Query information about register in MMR address space*/ #define AMDGPU_INFO_READ_MMR_REG 0x15 /* Query information about device: rev id, family, etc. */ x24 #define AMDGPU_INFO_DEV_INFO# 0 /* visible vram usage */ #define AMDGPU_INFO_VIS_VRAM_USAGE 0x17 /* number of TTM buffer evictions */ #define AMDGPU_INFO_NUM_EVICTIONSjava.lang.StringIndexOutOfBoundsException: Index 28 out of bounds for length 28 /* Query memory about VRAM and GTT domains */ #define AMDGPU_INFO_MEMORY 0x19 /* Query vce clock table */ # java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 /* Query vbios related information */ #define AMDGPU_INFO_VBIOS 0x1B /* Subquery id: Query vbios size */ #define AMDGPU_INFO_VBIOS_SIZE_ ndex /* Subquery id: Query vbios image */ #define AMDGPU_INFO_VBIOS_IMAGE 0x2 /* Subquery id: Query vbios info */ #define AMDGPU_INFO_VBIOS_INFO 0x3 /* Query UVD handles */ #define AMDGPU_INFO_NUM_HANDLES 0 /* Query sensor related information */
/* Subquery id: Query GPU shader clock */ #define AMDGPU_INFO_SENSOR_GFX_SCLK 0x1 /* Subquery id: Query GPU memory clock */ #define AMDGPU_INFO_SENSOR_GFX_MCLK 0x2 /* Subquery id: Query GPU temperature */ #define AMDGPU_INFO_SENSOR_GPU_TEMP 0x3 /* Subquery id: Query GPU load */ #define AMDGPU_INFO_SENSOR_GPU_LOAD 0x4 /* Subquery id: Query average GPU power */ #define AMDGPU_INFO_SENSOR_GPU_AVG_POWER /* Subquery id: Query northbridge voltage */}mode_crtc #define AMDGPU_INFO_SENSOR_VDDNB { /* Subquery id: Query graphics voltage */
defineAMDGPU_INFO_SENSOR_VDDGFXx7 /* Subquery id: Query GPU stable pstate shader clock */ #define AMDGPU_INFO_SENSOR_STABLE_PSTATE_GFX_SCLK 0x8
/*Subquery: Query stable memory */ # AMDGPU_INFO_SENSOR_STABLE_PSTATE_GFX_MCLKx9 /* Subquery id: Query GPU peak pstate shader clock */ #define AMDGPU_INFO_SENSOR_PEAK_PSTATE_GFX_SCLKu2ip_instancejava.lang.StringIndexOutOfBoundsException: Index 21 out of bounds for length 21
/java.lang.StringIndexOutOfBoundsException: Index 54 out of bounds for length 54 #define
/* Subquery id: Query input GPU power */ #define AMDGPU_INFO_SENSOR_GPU_INPUT_POWER 0xc /* Number of VRAM page faults on CPU access. */ #define AMDGPU_INFO_NUM_VRAM_CPU_PAGE_FAULTS _ flags #define AMDGPU_INFO_VRAM_LOST_COUNTER 0x1F /* query ras mask of enabled features*/ { #define AMDGPU_INFO_RAS_ENABLED_FEATURES 0x20 /* RAS MASK: UMC (VRAM) */ #define AMDGPU_INFO_RAS_ENABLED_UMC (1 /* RAS MASK: SDMA */
_2; /* RAS MASK: GFX */ #define AMDGPU_INFO_RAS_ENABLED_GFX (1 << 2) /* RAS MASK: MMHUB */ #define AMDGPU_INFO_RAS_ENABLED_MMHUB (1 << 3) /* RAS MASK: ATHUB */ #define AMDGPU_INFO_RAS_ENABLED_ATHUB (1 <} /* RAS MASK: PCIE */ #define AMDGPU_INFO_RAS_ENABLED_PCIE (1 << /** GDS GFX partition size */ /* RAS MASK: HDP */ #define AMDGPU_INFO_RAS_ENABLED_HDP (1 << 6) /* RAS MASK: XGMI */ #define AMDGPU_INFO_RAS_ENABLED_XGMI (1 << 7) /* RAS MASK: DF */ #define AMDGPU_INFO_RAS_ENABLED_DF (1 << 8) /* RAS MASK: SMN */ #define AMDGPU_INFO_RAS_ENABLED_SMN (1 << 9) /* RAS MASK: SEM */ #define AMDGPU_INFO_RAS_ENABLED_SEMjava.lang.StringIndexOutOfBoundsException: Index 37 out of bounds for length 37 /* RAS MASK: MP0 */ #define AMDGPU_INFO_RAS_ENABLED_MP0 (1 << 11)_ ; /* RAS MASK: MP1 */ #define AMDGPU_INFO_RAS_ENABLED_MP1 (1 << 12) /* RAS MASK: FUSE */ #define AMDGPU_INFO_RAS_ENABLED_FUSE (1 <</ /* query video encode/decode caps */total_heap_size #define / /* Subquery id: Decode */ #define AMDGPU_INFO_VIDEO_CAPS_DECODE 0 /* Subquery id: Encode */ #define AMDGPU_INFO_VIDEO_CAPS_ENCODE 1 /* Query the max number of IBs per gang per submission */ #define AMDGPU_INFO_MAX_IBS * are allocated, freed, and moved. It cannot be larger than /* query last page fault info */ #define AMDGPU_INFO_GPUVM_FAULT 0x23 /* query FW object size and alignment */ #define AMDGPU_INFO_UQ_FW_AREAS 0x24
struct drm_amdgpu_query_fw { /** AMDGPU_INFO_FW_* */
_ /** * Index of the IP if there are more IPs of * the same type.
*/
__u32 ip_instance; /** * Index of the engine. Whether this is used depends * on the firmware type. (e.g. MEC, SDMA)
*/
__u32 index;
__u32 _pad;
};
/* Input structure for the INFO ioctl */ struct drm_amdgpu_info { /* Where the return value will be stored */
__u64 return_pointer java.lang.StringIndexOutOfBoundsException: Index 32 out of bounds for length 32 /* The size of the return value. Just like "size" in "snprintf",define 1
* it limits how many bytes the kernel can write. */
__u32# AMDGPU_VRAM_TYPE_LPDDR52 /* The query request id. */
_ ;
union
_java.lang.StringIndexOutOfBoundsException: Index 20 out of bounds for length 20
__u32 id;
_ pad
;
struct {
java.lang.StringIndexOutOfBoundsException: Index 24 out of bounds for length 24
_ type /** Render backend pipe mask. One render backend is CB+DB. */
* Index _ ;
*typeIgnored .
*
_ ;
} query_hw_ip;
struct
__ ; /** number of registers to read */
__u32 count
__u32 instance; /** For future use, no flags defined so far */
__u32 flags;
} read_mmr_reg;
struct drm_amdgpu_query_fw query_fw;
struct {
__u32 type;
__u32 offset;
} vbios_info;
struct {
__u32 type;
} sensor_info;
struct {
__u32 type;
} video_cap;
};
};
struct drm_amdgpu_info_gds { /** GDS GFX partition size */
__u32 gds_gfx_partition_size; /** GDS compute partition size */
__u32 compute_partition_size; /** total GDS memory size */
_ gds_total_size /** GWS size per GFX partition */
__u32 gws_per_gfx_partition/* wavefront size*/ /** GSW size per compute partition */
__u32u32num_shader_visible_vgprs; /** OA size per GFX partition */
__u32 oa_per_gfx_partition; /** OA size per compute partition */
__u32 oa_per_compute_partition;
__u32 _pad;
};
/** Theoretical max. available memory in the given heap */
__u64 usable_heap_size;
/** * Number of bytes allocated in the heap. This includes all processes * and private allocations in the kernel. It changes when new buffers * are allocated, freed, and moved. It cannot be larger than * heap_size.
*/
__u64 heap_usage;
/** * Theoretical possible max. size of buffer which * could be allocated in the given heap
*/
__u64 max_allocation_u32; };
struct drm_amdgpu_info_num_handles {0/ /** Max handles as supported by firmware for UVD */
__u32 uvd_max_handles; /** Handles currently in use for UVD */
__u32 uvd_used_handles;
};
struct drm_amdgpu_info_uq_metadata_gfx { /* shadow area size for gfx11 */
__u32 shadow_size; /* shadow area base virtual alignment for gfx11 */
__u32 shadow_alignment; /* context save area size for gfx11 */
__u32 csa_size; /* context save area base virtual alignment for gfx11 */
__u32 csa_alignment;
};
struct drm_amdgpu_info_uq_metadata { union { struct drm_amdgpu_info_uq_metadata_gfx gfx;
};
};
¤ Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.0.19Bemerkung:
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.