# Counter

> GraphicsBuffer with an internal counter.

## Definition

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

```csharp
Counter = 128
```

### Remarks

Adds a "counter" to a `RWStructuredBuffer` and allows using `IncrementCounter` / `DecrementCounter` HLSL functions on it.

When you construct a GraphicsBuffer of this type, the value of `stride` must match the stride of the corresponding StructuredBuffer struct type in your HLSL code. It must also be a multiple of 4, and less than 2048.

See Microsoft's HLSL documentation on [IncrementCounter](https://docs.microsoft.com/en-us/windows/win32/direct3dhlsl/sm5-object-rwstructuredbuffer-incrementcounter) and [DecrementCounter](https://docs.microsoft.com/en-us/windows/win32/direct3dhlsl/sm5-object-rwstructuredbuffer-decrementcounter).

The buffer size value can be copied into another buffer using [GraphicsBuffer.CopyCount](/engine/6000.7/script-reference/unityengine/graphicsbuffer/copycount.md), or explicitly reset with [GraphicsBuffer.SetCounterValue](/engine/6000.7/script-reference/unityengine/graphicsbuffer/setcountervalue.md).

Additional Resources: [GraphicsBuffer.SetCounterValue](/engine/6000.7/script-reference/unityengine/graphicsbuffer/setcountervalue.md), [GraphicsBuffer.CopyCount](/engine/6000.7/script-reference/unityengine/graphicsbuffer/copycount.md).
