# SetBuffer

> Sets an input or output compute buffer.

## Definition

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

## SetBuffer(int, int, ComputeBuffer)

Sets an input or output compute buffer.

```csharp
public void SetBuffer(int kernelIndex, int nameID, ComputeBuffer buffer)
```

### Parameters

**** (\[int]\(https\://learn.microsoft.com/dotnet/api/system.int32)): For which kernel the buffer is being set. See [ComputeShader.FindKernel](/engine/6000.6/script-reference/unityengine/computeshader/findkernel.md).**** (\[int]\(https\://learn.microsoft.com/dotnet/api/system.int32)): Property name ID, use [Shader.PropertyToID](/engine/6000.6/script-reference/unityengine/shader/propertytoid.md) to get it.**** (\[ComputeBuffer]\(/engine/6000.6/script-reference/unityengine/computebuffer)): Buffer to set.

### Remarks

Buffers and textures are set per-kernel. Use [ComputeShader.FindKernel](/engine/6000.6/script-reference/unityengine/computeshader/findkernel.md) to find kernel index by function name.

Setting a compute buffer to a kernel will leave the append/consume counter value unchanged. To set or reset the value, use [ComputeBuffer.SetCounterValue](/engine/6000.6/script-reference/unityengine/computebuffer/setcountervalue.md) or [GraphicsBuffer.SetCounterValue](/engine/6000.6/script-reference/unityengine/graphicsbuffer/setcountervalue.md).

Additional Resources: [ComputeShader.SetFloat](/engine/6000.6/script-reference/unityengine/computeshader/setfloat.md), [ComputeShader.SetFloats](/engine/6000.6/script-reference/unityengine/computeshader/setfloats.md), [ComputeShader.SetInt](/engine/6000.6/script-reference/unityengine/computeshader/setint.md), [ComputeShader.SetInts](/engine/6000.6/script-reference/unityengine/computeshader/setints.md), [ComputeShader.SetBool](/engine/6000.6/script-reference/unityengine/computeshader/setbool.md),  [ComputeShader.SetMatrix](/engine/6000.6/script-reference/unityengine/computeshader/setmatrix.md), [ComputeShader.SetMatrixArray](/engine/6000.6/script-reference/unityengine/computeshader/setmatrixarray.md), [ComputeShader.SetTexture](/engine/6000.6/script-reference/unityengine/computeshader/settexture.md), [ComputeShader.SetVector](/engine/6000.6/script-reference/unityengine/computeshader/setvector.md), [ComputeShader.SetVectorArray](/engine/6000.6/script-reference/unityengine/computeshader/setvectorarray.md).

## SetBuffer(int, int, GraphicsBuffer)

Sets an input or output compute buffer.

```csharp
public void SetBuffer(int kernelIndex, int nameID, GraphicsBuffer buffer)
```

### Parameters

**** (\[int]\(https\://learn.microsoft.com/dotnet/api/system.int32)): For which kernel the buffer is being set. See [ComputeShader.FindKernel](/engine/6000.6/script-reference/unityengine/computeshader/findkernel.md).**** (\[int]\(https\://learn.microsoft.com/dotnet/api/system.int32)): Property name ID, use [Shader.PropertyToID](/engine/6000.6/script-reference/unityengine/shader/propertytoid.md) to get it.**** (\[GraphicsBuffer]\(/engine/6000.6/script-reference/unityengine/graphicsbuffer)): Buffer to set.

### Remarks

Buffers and textures are set per-kernel. Use [ComputeShader.FindKernel](/engine/6000.6/script-reference/unityengine/computeshader/findkernel.md) to find kernel index by function name.

Setting a compute buffer to a kernel will leave the append/consume counter value unchanged. To set or reset the value, use [ComputeBuffer.SetCounterValue](/engine/6000.6/script-reference/unityengine/computebuffer/setcountervalue.md) or [GraphicsBuffer.SetCounterValue](/engine/6000.6/script-reference/unityengine/graphicsbuffer/setcountervalue.md).

Additional Resources: [ComputeShader.SetFloat](/engine/6000.6/script-reference/unityengine/computeshader/setfloat.md), [ComputeShader.SetFloats](/engine/6000.6/script-reference/unityengine/computeshader/setfloats.md), [ComputeShader.SetInt](/engine/6000.6/script-reference/unityengine/computeshader/setint.md), [ComputeShader.SetInts](/engine/6000.6/script-reference/unityengine/computeshader/setints.md), [ComputeShader.SetBool](/engine/6000.6/script-reference/unityengine/computeshader/setbool.md),  [ComputeShader.SetMatrix](/engine/6000.6/script-reference/unityengine/computeshader/setmatrix.md), [ComputeShader.SetMatrixArray](/engine/6000.6/script-reference/unityengine/computeshader/setmatrixarray.md), [ComputeShader.SetTexture](/engine/6000.6/script-reference/unityengine/computeshader/settexture.md), [ComputeShader.SetVector](/engine/6000.6/script-reference/unityengine/computeshader/setvector.md), [ComputeShader.SetVectorArray](/engine/6000.6/script-reference/unityengine/computeshader/setvectorarray.md).

## SetBuffer(int, string, ComputeBuffer)

Sets an input or output compute buffer.

```csharp
public void SetBuffer(int kernelIndex, string name, ComputeBuffer buffer)
```

### Parameters

**** (\[int]\(https\://learn.microsoft.com/dotnet/api/system.int32)): For which kernel the buffer is being set. See [ComputeShader.FindKernel](/engine/6000.6/script-reference/unityengine/computeshader/findkernel.md).**** (\[string]\(https\://learn.microsoft.com/dotnet/api/system.string)): Name of the buffer variable in shader code.**** (\[ComputeBuffer]\(/engine/6000.6/script-reference/unityengine/computebuffer)): Buffer to set.

### Remarks

Buffers and textures are set per-kernel. Use [ComputeShader.FindKernel](/engine/6000.6/script-reference/unityengine/computeshader/findkernel.md) to find kernel index by function name.

Setting a compute buffer to a kernel will leave the append/consume counter value unchanged. To set or reset the value, use [ComputeBuffer.SetCounterValue](/engine/6000.6/script-reference/unityengine/computebuffer/setcountervalue.md) or [GraphicsBuffer.SetCounterValue](/engine/6000.6/script-reference/unityengine/graphicsbuffer/setcountervalue.md).

Additional Resources: [ComputeShader.SetFloat](/engine/6000.6/script-reference/unityengine/computeshader/setfloat.md), [ComputeShader.SetFloats](/engine/6000.6/script-reference/unityengine/computeshader/setfloats.md), [ComputeShader.SetInt](/engine/6000.6/script-reference/unityengine/computeshader/setint.md), [ComputeShader.SetInts](/engine/6000.6/script-reference/unityengine/computeshader/setints.md), [ComputeShader.SetBool](/engine/6000.6/script-reference/unityengine/computeshader/setbool.md),  [ComputeShader.SetMatrix](/engine/6000.6/script-reference/unityengine/computeshader/setmatrix.md), [ComputeShader.SetMatrixArray](/engine/6000.6/script-reference/unityengine/computeshader/setmatrixarray.md), [ComputeShader.SetTexture](/engine/6000.6/script-reference/unityengine/computeshader/settexture.md), [ComputeShader.SetVector](/engine/6000.6/script-reference/unityengine/computeshader/setvector.md), [ComputeShader.SetVectorArray](/engine/6000.6/script-reference/unityengine/computeshader/setvectorarray.md).

## SetBuffer(int, string, GraphicsBuffer)

Sets an input or output compute buffer.

```csharp
public void SetBuffer(int kernelIndex, string name, GraphicsBuffer buffer)
```

### Parameters

**** (\[int]\(https\://learn.microsoft.com/dotnet/api/system.int32)): For which kernel the buffer is being set. See [ComputeShader.FindKernel](/engine/6000.6/script-reference/unityengine/computeshader/findkernel.md).**** (\[string]\(https\://learn.microsoft.com/dotnet/api/system.string)): Name of the buffer variable in shader code.**** (\[GraphicsBuffer]\(/engine/6000.6/script-reference/unityengine/graphicsbuffer)): Buffer to set.

### Remarks

Buffers and textures are set per-kernel. Use [ComputeShader.FindKernel](/engine/6000.6/script-reference/unityengine/computeshader/findkernel.md) to find kernel index by function name.

Setting a compute buffer to a kernel will leave the append/consume counter value unchanged. To set or reset the value, use [ComputeBuffer.SetCounterValue](/engine/6000.6/script-reference/unityengine/computebuffer/setcountervalue.md) or [GraphicsBuffer.SetCounterValue](/engine/6000.6/script-reference/unityengine/graphicsbuffer/setcountervalue.md).

Additional Resources: [ComputeShader.SetFloat](/engine/6000.6/script-reference/unityengine/computeshader/setfloat.md), [ComputeShader.SetFloats](/engine/6000.6/script-reference/unityengine/computeshader/setfloats.md), [ComputeShader.SetInt](/engine/6000.6/script-reference/unityengine/computeshader/setint.md), [ComputeShader.SetInts](/engine/6000.6/script-reference/unityengine/computeshader/setints.md), [ComputeShader.SetBool](/engine/6000.6/script-reference/unityengine/computeshader/setbool.md),  [ComputeShader.SetMatrix](/engine/6000.6/script-reference/unityengine/computeshader/setmatrix.md), [ComputeShader.SetMatrixArray](/engine/6000.6/script-reference/unityengine/computeshader/setmatrixarray.md), [ComputeShader.SetTexture](/engine/6000.6/script-reference/unityengine/computeshader/settexture.md), [ComputeShader.SetVector](/engine/6000.6/script-reference/unityengine/computeshader/setvector.md), [ComputeShader.SetVectorArray](/engine/6000.6/script-reference/unityengine/computeshader/setvectorarray.md).
