# GraphicsBuffer.Target

> The intended targets for GraphicsBuffer.

## Definition

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

```csharp
[Flags]
public enum GraphicsBuffer.Target
```

## Remarks

Provide the intended targets ([GraphicsBuffer.target](/engine/6000.7/script-reference/unityengine/graphicsbuffer/target-1.md)) when creating a GraphicsBuffer. For example, pass [GraphicsBuffer.Target.Index](/engine/6000.7/script-reference/unityengine/graphicsbuffer/target/index.md) for a buffer to be usable as a geometry index buffer.

Different platforms and devices might or might not support different targets. Any target values different from  [Vertex](/engine/6000.7/script-reference/unityengine/graphicsbuffer/target/vertex.md), [Index](/engine/6000.7/script-reference/unityengine/graphicsbuffer/target/index.md) or [Constant](/engine/6000.7/script-reference/unityengine/graphicsbuffer/target/constant.md) require the compute shader support (see [SystemInfo.supportsComputeShaders](/engine/6000.7/script-reference/unityengine/systeminfo/supportscomputeshaders.md)).

You can combine values in this enum. For example, `GraphicsBuffer.Target.Index | GraphicsBuffer.Target.Raw` creates a buffer that can be used both as an index buffer in a [Graphics.DrawProcedural](/engine/6000.7/script-reference/unityengine/graphics/drawprocedural.md) call, and as a raw byte address buffer in a compute shader.

DirectX 11 does not allow [Index](/engine/6000.7/script-reference/unityengine/graphicsbuffer/target/index.md) or [Vertex](/engine/6000.7/script-reference/unityengine/graphicsbuffer/target/vertex.md) buffers to also be [Structured](/engine/6000.7/script-reference/unityengine/graphicsbuffer/target/structured.md). For compute shader mesh data access with DirectX 11 compatibility, use [Raw](/engine/6000.7/script-reference/unityengine/graphicsbuffer/target/raw.md).

Additional Resources: [GraphicsBuffer](/engine/6000.7/script-reference/unityengine/graphicsbuffer.md) class, [GraphicsBuffer constructor](/engine/6000.7/script-reference/unityengine/graphicsbuffer/ctor.md), [Mesh.vertexBufferTarget](/engine/6000.7/script-reference/unityengine/mesh/vertexbuffertarget.md), [Mesh.indexBufferTarget](/engine/6000.7/script-reference/unityengine/mesh/indexbuffertarget.md).

## Fields

| Value                                                                                                       | Description                                                                                  |
| ----------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------- |
| [Append](/engine/6000.7/script-reference/unityengine/graphicsbuffer/target/append.md)                       | GraphicsBuffer can be used as an append-consume buffer.                                      |
| [Constant](/engine/6000.7/script-reference/unityengine/graphicsbuffer/target/constant.md)                   | GraphicsBuffer can be used as a constant buffer (uniform buffer).                            |
| [CopyDestination](/engine/6000.7/script-reference/unityengine/graphicsbuffer/target/copydestination.md)     | GraphicsBuffer can be used as a destination for CopyBuffer.                                  |
| [CopySource](/engine/6000.7/script-reference/unityengine/graphicsbuffer/target/copysource.md)               | GraphicsBuffer can be used as a source for CopyBuffer.                                       |
| [Counter](/engine/6000.7/script-reference/unityengine/graphicsbuffer/target/counter.md)                     | GraphicsBuffer with an internal counter.                                                     |
| [Index](/engine/6000.7/script-reference/unityengine/graphicsbuffer/target/index.md)                         | GraphicsBuffer can be used as an index buffer.                                               |
| [IndirectArguments](/engine/6000.7/script-reference/unityengine/graphicsbuffer/target/indirectarguments.md) | GraphicsBuffer can be used as an indirect argument buffer for indirect draws and dispatches. |
| [Raw](/engine/6000.7/script-reference/unityengine/graphicsbuffer/target/raw.md)                             | GraphicsBuffer can be used as a raw byte-address buffer.                                     |
| [Structured](/engine/6000.7/script-reference/unityengine/graphicsbuffer/target/structured.md)               | GraphicsBuffer can be used as a structured buffer.                                           |
| [Vertex](/engine/6000.7/script-reference/unityengine/graphicsbuffer/target/vertex.md)                       | GraphicsBuffer can be used as a vertex buffer.                                               |
