# ExecuteCommandBufferAsync(CommandBuffer, ComputeQueueType)

> Executes a command buffer on an async compute queue with the queue selected based on the ComputeQueueType parameter passed.

## Definition

* **Type:** Method
* **Namespace:** [UnityEngine](/engine/6000.7/script-reference/unityengine.md)
* **Assembly:** UnityEngine.CoreModule

```csharp
public static void ExecuteCommandBufferAsync(CommandBuffer buffer, ComputeQueueType queueType)
```

### Parameters

**** (\[CommandBuffer]\(/engine/6000.7/script-reference/unityengine/rendering/commandbuffer)): The [CommandBuffer](/engine/6000.7/script-reference/unityengine/rendering/commandbuffer.md) to be executed.**** (\[ComputeQueueType]\(/engine/6000.7/script-reference/unityengine/rendering/computequeuetype)): Describes the desired async compute queue the supplied [CommandBuffer](/engine/6000.7/script-reference/unityengine/rendering/commandbuffer.md) should be executed on.

### Remarks

It is required that all of the commands within the command buffer be of a type suitable for execution on the async compute queues. If the buffer contains any commands that are not appropriate then an error will be logged and displayed in the editor window.  Specifically the following commands are permitted in a [CommandBuffer](/engine/6000.7/script-reference/unityengine/rendering/commandbuffer.md) intended for async execution:

[CommandBuffer.BeginSample](/engine/6000.7/script-reference/unityengine/rendering/commandbuffer/beginsample.md)

[CommandBuffer.BuildRayTracingAccelerationStructure](/engine/6000.7/script-reference/unityengine/rendering/commandbuffer/buildraytracingaccelerationstructure.md)

[CommandBuffer.CopyCounterValue](/engine/6000.7/script-reference/unityengine/rendering/commandbuffer/copycountervalue.md)

[CommandBuffer.CopyTexture](/engine/6000.7/script-reference/unityengine/rendering/commandbuffer/copytexture.md)

[CommandBuffer.CreateGraphicsFence](/engine/6000.7/script-reference/unityengine/rendering/commandbuffer/creategraphicsfence.md)

[CommandBuffer.DisableShaderKeyword](/engine/6000.7/script-reference/unityengine/rendering/commandbuffer/disableshaderkeyword.md)

[CommandBuffer.DispatchCompute](/engine/6000.7/script-reference/unityengine/rendering/commandbuffer/dispatchcompute.md)

[CommandBuffer.EnableShaderKeyword](/engine/6000.7/script-reference/unityengine/rendering/commandbuffer/enableshaderkeyword.md)

[CommandBuffer.EndSample](/engine/6000.7/script-reference/unityengine/rendering/commandbuffer/endsample.md)

[CommandBuffer.GetTemporaryRT](/engine/6000.7/script-reference/unityengine/rendering/commandbuffer/gettemporaryrt.md)

[CommandBuffer.GetTemporaryRTArray](/engine/6000.7/script-reference/unityengine/rendering/commandbuffer/gettemporaryrtarray.md)

[CommandBuffer.IssuePluginEvent](/engine/6000.7/script-reference/unityengine/rendering/commandbuffer/issuepluginevent.md)

[CommandBuffer.ReleaseTemporaryRT](/engine/6000.7/script-reference/unityengine/rendering/commandbuffer/releasetemporaryrt.md)

SetComputeBufferData

[CommandBuffer.SetComputeBufferParam](/engine/6000.7/script-reference/unityengine/rendering/commandbuffer/setcomputebufferparam.md)

[CommandBuffer.SetComputeFloatParam](/engine/6000.7/script-reference/unityengine/rendering/commandbuffer/setcomputefloatparam.md)

[CommandBuffer.SetComputeFloatParams](/engine/6000.7/script-reference/unityengine/rendering/commandbuffer/setcomputefloatparams.md)

[CommandBuffer.SetComputeIntParam](/engine/6000.7/script-reference/unityengine/rendering/commandbuffer/setcomputeintparam.md)

[CommandBuffer.SetComputeIntParams](/engine/6000.7/script-reference/unityengine/rendering/commandbuffer/setcomputeintparams.md)

[CommandBuffer.SetComputeMatrixArrayParam](/engine/6000.7/script-reference/unityengine/rendering/commandbuffer/setcomputematrixarrayparam.md)

[CommandBuffer.SetComputeMatrixParam](/engine/6000.7/script-reference/unityengine/rendering/commandbuffer/setcomputematrixparam.md)

[CommandBuffer.SetComputeTextureParam](/engine/6000.7/script-reference/unityengine/rendering/commandbuffer/setcomputetextureparam.md)

[CommandBuffer.SetComputeVectorParam](/engine/6000.7/script-reference/unityengine/rendering/commandbuffer/setcomputevectorparam.md)

[CommandBuffer.SetComputeVectorArrayParam](/engine/6000.7/script-reference/unityengine/rendering/commandbuffer/setcomputevectorarrayparam.md)

[CommandBuffer.SetGlobalBuffer](/engine/6000.7/script-reference/unityengine/rendering/commandbuffer/setglobalbuffer.md)

[CommandBuffer.SetGlobalColor](/engine/6000.7/script-reference/unityengine/rendering/commandbuffer/setglobalcolor.md)

[CommandBuffer.SetGlobalFloat](/engine/6000.7/script-reference/unityengine/rendering/commandbuffer/setglobalfloat.md)

[CommandBuffer.SetGlobalFloatArray](/engine/6000.7/script-reference/unityengine/rendering/commandbuffer/setglobalfloatarray.md)

[CommandBuffer.SetGlobalInt](/engine/6000.7/script-reference/unityengine/rendering/commandbuffer/setglobalint.md)

[CommandBuffer.SetGlobalMatrix](/engine/6000.7/script-reference/unityengine/rendering/commandbuffer/setglobalmatrix.md)

[CommandBuffer.SetGlobalMatrixArray](/engine/6000.7/script-reference/unityengine/rendering/commandbuffer/setglobalmatrixarray.md)

[CommandBuffer.SetGlobalTexture](/engine/6000.7/script-reference/unityengine/rendering/commandbuffer/setglobaltexture.md)

[CommandBuffer.SetGlobalVector](/engine/6000.7/script-reference/unityengine/rendering/commandbuffer/setglobalvector.md)

[CommandBuffer.SetGlobalVectorArray](/engine/6000.7/script-reference/unityengine/rendering/commandbuffer/setglobalvectorarray.md)

WaitOnGraphicsFence

All of the commands within the buffer are guaranteed to be executed on the same queue. If the target platform does not support async compute queues then the work is dispatched on the graphics queue.

Additional Resources: [SystemInfo.supportsAsyncCompute](/engine/6000.7/script-reference/unityengine/systeminfo/supportsasynccompute.md) , [GPUFence](/engine/6000.7/script-reference/unityengine/rendering/gpufence.md), [CommandBuffer](/engine/6000.7/script-reference/unityengine/rendering/commandbuffer.md).
