..
    **************************************************
    *                                                *
    *   Automatically generated file, do not edit!   *
    *                                                *
    **************************************************

.. _amdgpu_synid_gfx10_waitcnt_depctr:

waitcnt_depctr
==============

Dependency counters to wait for.

This operand may be specified as one of the following:

* An :ref:`integer_number<amdgpu_synid_integer_number>` or an :ref:`absolute_expression<amdgpu_synid_absolute_expression>`. The value must be in the range -32768..65535.
* A combination of *symbolic values* described below.

    ======================== ======================== ================ =================
    Syntax                   Description              Valid *N* Values Default *N* Value
    ======================== ======================== ================ =================
    depctr_sa_sdst(<*N*>)    Wait for SA_SDST <= N       0..1                1
    depctr_va_vdst(<*N*>)    Wait for VA_VDST <= N       0..15              15
    depctr_va_sdst(<*N*>)    Wait for VA_SDST <= N       0..7                7
    depctr_va_ssrc(<*N*>)    Wait for VA_SSRC <= N       0..1                1
    depctr_va_vcc(<*N*>)     Wait for VA_VCC <= N        0..1                1
    depctr_vm_vsrc(<*N*>)    Wait for VM_VSRC <= N       0..7                7
    ======================== ======================== ================ =================

    These values may be specified in any order. Spaces, ampersands and commas may be used as optional separators.

Examples:

.. parsed-literal::

    s_waitcnt_depctr depctr_sa_sdst(0) depctr_va_vdst(0)
    s_waitcnt_depctr depctr_sa_sdst(1) & depctr_va_vdst(1)
    s_waitcnt_depctr depctr_va_vdst(3), depctr_va_sdst(5)
