Command Queue QoS Extension#
Introduced in Level Zero version 1.19
Overview#
The Command Queue QoS extension lets an application express the desired power/energy characteristics (“Quality of Service”) of a command queue, independent of its scheduling priority (ze_command_queue_priority_t).
The requested level is described by ze_command_queue_qos_ext_desc_t, which may be specified at creation time by chaining it to the pNext member of ze_command_queue_desc_t, and/or passed at runtime to zeCommandQueueSetQosExt. Setting the descriptor’s qos member to ZE_COMMAND_QUEUE_QOS_EXT_DEFAULT requests the driver/OS-selected default rather than an explicit level, so a zero-initialized descriptor requests no change in behavior.
zeCommandQueueGetQosExt reports the effective level of a command queue through ze_command_queue_qos_ext_properties_t, along with an isOverridden flag indicating whether that level was specified by the application or selected by the driver/OS. This lets a layered runtime distinguish a deliberately requested level from the default on a command queue it did not configure itself.
Applications must not perform relational comparisons (e.g. less-than, greater-than) between QoS levels; only equality checks are guaranteed to be meaningful. The numeric values are not guaranteed to be ordered by energy efficiency, and future levels may be added without preserving any such order.
API#
Functions
Enumerations
Structures