---
title: "GPUComputePassEncoder | JavaScript maps SDK"
description: "Documentation for MapTiler SDK"
---

# Interface GPUComputePassEncoder

The **`GPUComputePassEncoder`** interface of the WebGPU API encodes commands related to controlling the compute shader stage, as issued by a GPUComputePipeline. It forms part of the overall encoding activity of a GPUCommandEncoder. Available only in secure contexts.

[MDN Reference](https://developer.mozilla.org/docs/Web/API/GPUComputePassEncoder)

interface GPUComputePassEncoder {  
    [label](#label): string;  
    [dispatchWorkgroups](#dispatchworkgroups-1)(  
        workgroupCountX: number,  
        workgroupCountY?: number,  
        workgroupCountZ?: number,  
    ): void;  
    [dispatchWorkgroupsIndirect](#dispatchworkgroupsindirect-1)(  
        indirectBuffer: [GPUBuffer](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.GPUBuffer/),  
        indirectOffset: number,  
    ): void;  
    [end](#end-1)(): void;  
    [insertDebugMarker](#insertdebugmarker-1)(markerLabel: string): void;  
    [popDebugGroup](#popdebuggroup-1)(): void;  
    [pushDebugGroup](#pushdebuggroup-1)(groupLabel: string): void;  
    [setBindGroup](#setbindgroup-1)(  
        index: number,  
        bindGroup: [GPUBindGroup](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.GPUBindGroup/) | null,  
        dynamicOffsets?: number\[\],  
    ): void;  
    [setBindGroup](#setbindgroup-2)(  
        index: number,  
        bindGroup: [GPUBindGroup](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.GPUBindGroup/) | null,  
        dynamicOffsetsData: Uint32Array<[ArrayBufferLike](https://docs.maptiler.com/sdk-js/api-reference/types/Externals.ArrayBufferLike/)\>,  
        dynamicOffsetsDataStart: number,  
        dynamicOffsetsDataLength: number,  
    ): void;  
    [setBindGroup](#setbindgroup-3)(  
        index: number,  
        bindGroup: [GPUBindGroup](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.GPUBindGroup/) | null,  
        dynamicOffsets?: [Iterable](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.Iterable/)<number, any, any\>,  
    ): void;  
    [setPipeline](#setpipeline-1)(pipeline: [GPUComputePipeline](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.GPUComputePipeline/)): void;  
}

#### Hierarchy ([View Summary](https://docs.maptiler.com/sdk-js/api-reference/hierarchy/#Externals.GPUComputePassEncoder))

-   [GPUBindingCommandsMixin](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.GPUBindingCommandsMixin/)
-   [GPUDebugCommandsMixin](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.GPUDebugCommandsMixin/)
-   [GPUObjectBase](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.GPUObjectBase/)
    -   GPUComputePassEncoder

##### Index

### Properties[](#properties)

[label](#label)

### Methods[](#methods)

[dispatchWorkgroups](#dispatchworkgroups) [dispatchWorkgroupsIndirect](#dispatchworkgroupsindirect) [end](#end) [insertDebugMarker](#insertdebugmarker) [popDebugGroup](#popdebuggroup) [pushDebugGroup](#pushdebuggroup) [setBindGroup](#setbindgroup) [setPipeline](#setpipeline)

## Properties[](#properties-1)

### label[](#label)

label: string

[MDN Reference](https://developer.mozilla.org/docs/Web/API/GPUBindGroup/label)

Inherited from [GPUObjectBase](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.GPUObjectBase/).[label](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.GPUObjectBase/#label)

## Methods[](#methods-1)

### dispatchWorkgroups[](#dispatchworkgroups)

-   dispatchWorkgroups(  
        workgroupCountX: number,  
        workgroupCountY?: number,  
        workgroupCountZ?: number,  
    ): void[](#dispatchworkgroups-1)
    
    The **`dispatchWorkgroups()`** method of the GPUComputePassEncoder interface dispatches a specific grid of workgroups to perform the work being done by the current GPUComputePipeline (i.e., set via GPUComputePassEncoder.setPipeline()).
    
    [MDN Reference](https://developer.mozilla.org/docs/Web/API/GPUComputePassEncoder/dispatchWorkgroups)
    
    #### Parameters
    
    -   workgroupCountX: number
    -   `Optional`workgroupCountY: number
    -   `Optional`workgroupCountZ: number
    
    #### Returns void
    

### dispatchWorkgroupsIndirect[](#dispatchworkgroupsindirect)

-   dispatchWorkgroupsIndirect(  
        indirectBuffer: [GPUBuffer](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.GPUBuffer/),  
        indirectOffset: number,  
    ): void[](#dispatchworkgroupsindirect-1)
    
    The **`dispatchWorkgroupsIndirect()`** method of the GPUComputePassEncoder interface dispatches a grid of workgroups, defined by the parameters of a GPUBuffer, to perform the work being done by the current GPUComputePipeline (i.e., set via GPUComputePassEncoder.setPipeline()).
    
    [MDN Reference](https://developer.mozilla.org/docs/Web/API/GPUComputePassEncoder/dispatchWorkgroupsIndirect)
    
    #### Parameters
    
    -   indirectBuffer: [GPUBuffer](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.GPUBuffer/)
    -   indirectOffset: number
    
    #### Returns void
    

### end[](#end)

-   end(): void[](#end-1)
    
    The **`end()`** method of the GPUComputePassEncoder interface completes recording of the current compute pass command sequence.
    
    [MDN Reference](https://developer.mozilla.org/docs/Web/API/GPUComputePassEncoder/end)
    
    #### Returns void
    

### insertDebugMarker[](#insertdebugmarker)

-   insertDebugMarker(markerLabel: string): void[](#insertdebugmarker-1)
    
    [MDN Reference](https://developer.mozilla.org/docs/Web/API/GPUCommandEncoder/insertDebugMarker)
    
    #### Parameters
    
    -   markerLabel: string
    
    #### Returns void
    
    Inherited from [GPUDebugCommandsMixin](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.GPUDebugCommandsMixin/).[insertDebugMarker](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.GPUDebugCommandsMixin/#insertdebugmarker)
    

### popDebugGroup[](#popdebuggroup)

-   popDebugGroup(): void[](#popdebuggroup-1)
    
    [MDN Reference](https://developer.mozilla.org/docs/Web/API/GPUCommandEncoder/popDebugGroup)
    
    #### Returns void
    
    Inherited from [GPUDebugCommandsMixin](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.GPUDebugCommandsMixin/).[popDebugGroup](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.GPUDebugCommandsMixin/#popdebuggroup)
    

### pushDebugGroup[](#pushdebuggroup)

-   pushDebugGroup(groupLabel: string): void[](#pushdebuggroup-1)
    
    [MDN Reference](https://developer.mozilla.org/docs/Web/API/GPUCommandEncoder/pushDebugGroup)
    
    #### Parameters
    
    -   groupLabel: string
    
    #### Returns void
    
    Inherited from [GPUDebugCommandsMixin](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.GPUDebugCommandsMixin/).[pushDebugGroup](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.GPUDebugCommandsMixin/#pushdebuggroup)
    

### setBindGroup[](#setbindgroup)

-   setBindGroup(  
        index: number,  
        bindGroup: [GPUBindGroup](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.GPUBindGroup/) | null,  
        dynamicOffsets?: number\[\],  
    ): void[](#setbindgroup-1)
    
    [MDN Reference](https://developer.mozilla.org/docs/Web/API/GPUComputePassEncoder/setBindGroup)
    
    #### Parameters
    
    -   index: number
    -   bindGroup: [GPUBindGroup](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.GPUBindGroup/) | null
    -   `Optional`dynamicOffsets: number\[\]
    
    #### Returns void
    
    Inherited from [GPUBindingCommandsMixin](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.GPUBindingCommandsMixin/).[setBindGroup](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.GPUBindingCommandsMixin/#setbindgroup)
    
-   setBindGroup(  
        index: number,  
        bindGroup: [GPUBindGroup](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.GPUBindGroup/) | null,  
        dynamicOffsetsData: Uint32Array<[ArrayBufferLike](https://docs.maptiler.com/sdk-js/api-reference/types/Externals.ArrayBufferLike/)\>,  
        dynamicOffsetsDataStart: number,  
        dynamicOffsetsDataLength: number,  
    ): void[](#setbindgroup-2)
    
    #### Parameters
    
    -   index: number
    -   bindGroup: [GPUBindGroup](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.GPUBindGroup/) | null
    -   dynamicOffsetsData: Uint32Array<[ArrayBufferLike](https://docs.maptiler.com/sdk-js/api-reference/types/Externals.ArrayBufferLike/)\>
    -   dynamicOffsetsDataStart: number
    -   dynamicOffsetsDataLength: number
    
    #### Returns void
    
    Inherited from [GPUBindingCommandsMixin](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.GPUBindingCommandsMixin/).[setBindGroup](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.GPUBindingCommandsMixin/#setbindgroup)
    
-   setBindGroup(  
        index: number,  
        bindGroup: [GPUBindGroup](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.GPUBindGroup/) | null,  
        dynamicOffsets?: [Iterable](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.Iterable/)<number, any, any\>,  
    ): void[](#setbindgroup-3)
    
    [MDN Reference](https://developer.mozilla.org/docs/Web/API/GPUComputePassEncoder/setBindGroup)
    
    #### Parameters
    
    -   index: number
    -   bindGroup: [GPUBindGroup](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.GPUBindGroup/) | null
    -   `Optional`dynamicOffsets: [Iterable](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.Iterable/)<number, any, any\>
    
    #### Returns void
    
    Inherited from [GPUBindingCommandsMixin](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.GPUBindingCommandsMixin/).[setBindGroup](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.GPUBindingCommandsMixin/#setbindgroup)
    

### setPipeline[](#setpipeline)

-   setPipeline(pipeline: [GPUComputePipeline](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.GPUComputePipeline/)): void[](#setpipeline-1)
    
    The **`setPipeline()`** method of the GPUComputePassEncoder interface sets the GPUComputePipeline to use for this compute pass.
    
    [MDN Reference](https://developer.mozilla.org/docs/Web/API/GPUComputePassEncoder/setPipeline)
    
    #### Parameters
    
    -   pipeline: [GPUComputePipeline](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.GPUComputePipeline/)
    
    #### Returns void
