# AsyncGPUReadbackRequest

> Represents an asynchronous request for a GPU resource.

## Definition

* **Type:** Struct
* **Namespace:** [UnityEngine.Rendering](/engine/6000.0/script-reference/unityengine/rendering.md)
* **Assembly:** UnityEngine.CoreModule

```csharp
public struct AsyncGPUReadbackRequest
```

## Remarks

Use [AsyncGPUReadback.Request](/engine/6000.0/script-reference/unityengine/rendering/asyncgpureadback/request.md) to retrieve an asynchronous request for a GPU resource. Pending requests are automatically updated each frame. The result is accessible only for a single frame once is successfully fulfilled and this request is then disposed of in the following frame. Common uses for this are to query [AsyncGPUReadbackRequest.done](/engine/6000.0/script-reference/unityengine/rendering/asyncgpureadbackrequest/done.md) each frame (or within a coroutine) and then call [AsyncGPUReadbackRequest.GetData](/engine/6000.0/script-reference/unityengine/rendering/asyncgpureadbackrequest/getdata.md) if the [AsyncGPUReadbackRequest.hasError](/engine/6000.0/script-reference/unityengine/rendering/asyncgpureadbackrequest/haserror.md) is false. You don't have to manage the request lifetime as this is managed internally. A request that has been disposed of will result in the [AsyncGPUReadbackRequest.hasError](/engine/6000.0/script-reference/unityengine/rendering/asyncgpureadbackrequest/haserror.md) property being true. Additional Resources:[AsyncGPUReadback](/engine/6000.0/script-reference/unityengine/rendering/asyncgpureadback.md).

## Properties

| Property                                                                                                                        | Description                                                                                                                                                                                            |
| ------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| [depth](/engine/6000.0/script-reference/unityengine/rendering/asyncgpureadbackrequest/depth.md)                                 | When reading data from a [ComputeBuffer](/engine/6000.0/script-reference/unityengine/computebuffer.md), depth is 1, otherwise, the property takes the value of the requested depth from the texture.   |
| [done](/engine/6000.0/script-reference/unityengine/rendering/asyncgpureadbackrequest/done.md)                                   | Checks whether the request has been processed.                                                                                                                                                         |
| [forcePlayerLoopUpdate](/engine/6000.0/script-reference/unityengine/rendering/asyncgpureadbackrequest/forceplayerloopupdate.md) | In the Editor, defines whether the Player loop is updated while the GPU request is in flight.                                                                                                          |
| [hasError](/engine/6000.0/script-reference/unityengine/rendering/asyncgpureadbackrequest/haserror.md)                           | This property is true if the request has encountered an error.                                                                                                                                         |
| [height](/engine/6000.0/script-reference/unityengine/rendering/asyncgpureadbackrequest/height.md)                               | When reading data from a [ComputeBuffer](/engine/6000.0/script-reference/unityengine/computebuffer.md), height is 1, otherwise, the property takes the value of the requested height from the texture. |
| [layerCount](/engine/6000.0/script-reference/unityengine/rendering/asyncgpureadbackrequest/layercount.md)                       | Number of layers in the current request.                                                                                                                                                               |
| [layerDataSize](/engine/6000.0/script-reference/unityengine/rendering/asyncgpureadbackrequest/layerdatasize.md)                 | The size in bytes of one layer of the readback data.                                                                                                                                                   |
| [width](/engine/6000.0/script-reference/unityengine/rendering/asyncgpureadbackrequest/width.md)                                 | The width of the requested GPU data.                                                                                                                                                                   |

## Methods

| Method                                                                                                                  | Description                               |
| ----------------------------------------------------------------------------------------------------------------------- | ----------------------------------------- |
| [GetData](/engine/6000.0/script-reference/unityengine/rendering/asyncgpureadbackrequest/getdata.md)                     | Fetches the data of a successful request. |
| [Update](/engine/6000.0/script-reference/unityengine/rendering/asyncgpureadbackrequest/update.md)                       | Triggers an update of the request.        |
| [WaitForCompletion](/engine/6000.0/script-reference/unityengine/rendering/asyncgpureadbackrequest/waitforcompletion.md) | Waits for completion of the request.      |
