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

# Interface GPUQueue

The **`GPUQueue`** interface of the WebGPU API controls execution of encoded commands on the GPU. Available only in secure contexts.

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

interface GPUQueue {  
    [label](#label): string;  
    [copyExternalImageToTexture](#copyexternalimagetotexture-1)(  
        source: [GPUCopyExternalImageSourceInfo](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.GPUCopyExternalImageSourceInfo/),  
        destination: [GPUCopyExternalImageDestInfo](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.GPUCopyExternalImageDestInfo/),  
        copySize: [GPUExtent3D](https://docs.maptiler.com/sdk-js/api-reference/types/Externals.GPUExtent3D/),  
    ): void;  
    [copyExternalImageToTexture](#copyexternalimagetotexture-2)(  
        source: [GPUCopyExternalImageSourceInfo](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.GPUCopyExternalImageSourceInfo/),  
        destination: [GPUCopyExternalImageDestInfo](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.GPUCopyExternalImageDestInfo/),  
        copySize: [Iterable](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.Iterable/)<number\>,  
    ): void;  
    [onSubmittedWorkDone](#onsubmittedworkdone-1)(): Promise<void\>;  
    [submit](#submit-1)(commandBuffers: [GPUCommandBuffer](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.GPUCommandBuffer/)\[\]): void;  
    [submit](#submit-2)(commandBuffers: [Iterable](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.Iterable/)<[GPUCommandBuffer](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.GPUCommandBuffer/)\>): void;  
    [writeBuffer](#writebuffer-1)(  
        buffer: [GPUBuffer](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.GPUBuffer/),  
        bufferOffset: number,  
        data: [AllowSharedBufferSource](https://docs.maptiler.com/sdk-js/api-reference/types/Externals.AllowSharedBufferSource/),  
        dataOffset?: number,  
        size?: number,  
    ): void;  
    [writeTexture](#writetexture-1)(  
        destination: [GPUTexelCopyTextureInfo](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.GPUTexelCopyTextureInfo/),  
        data: [AllowSharedBufferSource](https://docs.maptiler.com/sdk-js/api-reference/types/Externals.AllowSharedBufferSource/),  
        dataLayout: [GPUTexelCopyBufferLayout](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.GPUTexelCopyBufferLayout/),  
        size: [GPUExtent3D](https://docs.maptiler.com/sdk-js/api-reference/types/Externals.GPUExtent3D/),  
    ): void;  
    [writeTexture](#writetexture-2)(  
        destination: [GPUTexelCopyTextureInfo](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.GPUTexelCopyTextureInfo/),  
        data: [AllowSharedBufferSource](https://docs.maptiler.com/sdk-js/api-reference/types/Externals.AllowSharedBufferSource/),  
        dataLayout: [GPUTexelCopyBufferLayout](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.GPUTexelCopyBufferLayout/),  
        size: [Iterable](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.Iterable/)<number\>,  
    ): void;  
}

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

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

##### Index

### Properties[](#properties)

[label](#label)

### Methods[](#methods)

[copyExternalImageToTexture](#copyexternalimagetotexture) [onSubmittedWorkDone](#onsubmittedworkdone) [submit](#submit) [writeBuffer](#writebuffer) [writeTexture](#writetexture)

## 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)

### copyExternalImageToTexture[](#copyexternalimagetotexture)

-   copyExternalImageToTexture(  
        source: [GPUCopyExternalImageSourceInfo](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.GPUCopyExternalImageSourceInfo/),  
        destination: [GPUCopyExternalImageDestInfo](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.GPUCopyExternalImageDestInfo/),  
        copySize: [GPUExtent3D](https://docs.maptiler.com/sdk-js/api-reference/types/Externals.GPUExtent3D/),  
    ): void[](#copyexternalimagetotexture-1)
    
    The **`copyExternalImageToTexture()`** method of the GPUQueue interface copies a snapshot taken from a source image, video, or canvas into a given GPUTexture.
    
    [MDN Reference](https://developer.mozilla.org/docs/Web/API/GPUQueue/copyExternalImageToTexture)
    
    #### Parameters
    
    -   source: [GPUCopyExternalImageSourceInfo](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.GPUCopyExternalImageSourceInfo/)
    -   destination: [GPUCopyExternalImageDestInfo](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.GPUCopyExternalImageDestInfo/)
    -   copySize: [GPUExtent3D](https://docs.maptiler.com/sdk-js/api-reference/types/Externals.GPUExtent3D/)
    
    #### Returns void
    
-   copyExternalImageToTexture(  
        source: [GPUCopyExternalImageSourceInfo](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.GPUCopyExternalImageSourceInfo/),  
        destination: [GPUCopyExternalImageDestInfo](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.GPUCopyExternalImageDestInfo/),  
        copySize: [Iterable](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.Iterable/)<number\>,  
    ): void[](#copyexternalimagetotexture-2)
    
    The **`copyExternalImageToTexture()`** method of the GPUQueue interface copies a snapshot taken from a source image, video, or canvas into a given GPUTexture.
    
    [MDN Reference](https://developer.mozilla.org/docs/Web/API/GPUQueue/copyExternalImageToTexture)
    
    #### Parameters
    
    -   source: [GPUCopyExternalImageSourceInfo](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.GPUCopyExternalImageSourceInfo/)
    -   destination: [GPUCopyExternalImageDestInfo](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.GPUCopyExternalImageDestInfo/)
    -   copySize: [Iterable](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.Iterable/)<number\>
    
    #### Returns void
    

### onSubmittedWorkDone[](#onsubmittedworkdone)

-   onSubmittedWorkDone(): Promise<void\>[](#onsubmittedworkdone-1)
    
    The **`onSubmittedWorkDone()`** method of the GPUQueue interface returns a Promise that resolves when all the work submitted to the GPU via this GPUQueue at the point the method is called has been processed.
    
    [MDN Reference](https://developer.mozilla.org/docs/Web/API/GPUQueue/onSubmittedWorkDone)
    
    #### Returns Promise<void\>
    

### submit[](#submit)

-   submit(commandBuffers: [GPUCommandBuffer](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.GPUCommandBuffer/)\[\]): void[](#submit-1)
    
    The **`submit()`** method of the GPUQueue interface schedules the execution of command buffers represented by one or more GPUCommandBuffer objects by the GPU.
    
    [MDN Reference](https://developer.mozilla.org/docs/Web/API/GPUQueue/submit)
    
    #### Parameters
    
    -   commandBuffers: [GPUCommandBuffer](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.GPUCommandBuffer/)\[\]
    
    #### Returns void
    
-   submit(commandBuffers: [Iterable](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.Iterable/)<[GPUCommandBuffer](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.GPUCommandBuffer/)\>): void[](#submit-2)
    
    The **`submit()`** method of the GPUQueue interface schedules the execution of command buffers represented by one or more GPUCommandBuffer objects by the GPU.
    
    [MDN Reference](https://developer.mozilla.org/docs/Web/API/GPUQueue/submit)
    
    #### Parameters
    
    -   commandBuffers: [Iterable](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.Iterable/)<[GPUCommandBuffer](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.GPUCommandBuffer/)\>
    
    #### Returns void
    

### writeBuffer[](#writebuffer)

-   writeBuffer(  
        buffer: [GPUBuffer](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.GPUBuffer/),  
        bufferOffset: number,  
        data: [AllowSharedBufferSource](https://docs.maptiler.com/sdk-js/api-reference/types/Externals.AllowSharedBufferSource/),  
        dataOffset?: number,  
        size?: number,  
    ): void[](#writebuffer-1)
    
    The **`writeBuffer()`** method of the GPUQueue interface writes a provided data source into a given GPUBuffer.
    
    [MDN Reference](https://developer.mozilla.org/docs/Web/API/GPUQueue/writeBuffer)
    
    #### Parameters
    
    -   buffer: [GPUBuffer](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.GPUBuffer/)
    -   bufferOffset: number
    -   data: [AllowSharedBufferSource](https://docs.maptiler.com/sdk-js/api-reference/types/Externals.AllowSharedBufferSource/)
    -   `Optional`dataOffset: number
    -   `Optional`size: number
    
    #### Returns void
    

### writeTexture[](#writetexture)

-   writeTexture(  
        destination: [GPUTexelCopyTextureInfo](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.GPUTexelCopyTextureInfo/),  
        data: [AllowSharedBufferSource](https://docs.maptiler.com/sdk-js/api-reference/types/Externals.AllowSharedBufferSource/),  
        dataLayout: [GPUTexelCopyBufferLayout](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.GPUTexelCopyBufferLayout/),  
        size: [GPUExtent3D](https://docs.maptiler.com/sdk-js/api-reference/types/Externals.GPUExtent3D/),  
    ): void[](#writetexture-1)
    
    The **`writeTexture()`** method of the GPUQueue interface writes a provided data source into a given GPUTexture.
    
    [MDN Reference](https://developer.mozilla.org/docs/Web/API/GPUQueue/writeTexture)
    
    #### Parameters
    
    -   destination: [GPUTexelCopyTextureInfo](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.GPUTexelCopyTextureInfo/)
    -   data: [AllowSharedBufferSource](https://docs.maptiler.com/sdk-js/api-reference/types/Externals.AllowSharedBufferSource/)
    -   dataLayout: [GPUTexelCopyBufferLayout](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.GPUTexelCopyBufferLayout/)
    -   size: [GPUExtent3D](https://docs.maptiler.com/sdk-js/api-reference/types/Externals.GPUExtent3D/)
    
    #### Returns void
    
-   writeTexture(  
        destination: [GPUTexelCopyTextureInfo](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.GPUTexelCopyTextureInfo/),  
        data: [AllowSharedBufferSource](https://docs.maptiler.com/sdk-js/api-reference/types/Externals.AllowSharedBufferSource/),  
        dataLayout: [GPUTexelCopyBufferLayout](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.GPUTexelCopyBufferLayout/),  
        size: [Iterable](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.Iterable/)<number\>,  
    ): void[](#writetexture-2)
    
    The **`writeTexture()`** method of the GPUQueue interface writes a provided data source into a given GPUTexture.
    
    [MDN Reference](https://developer.mozilla.org/docs/Web/API/GPUQueue/writeTexture)
    
    #### Parameters
    
    -   destination: [GPUTexelCopyTextureInfo](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.GPUTexelCopyTextureInfo/)
    -   data: [AllowSharedBufferSource](https://docs.maptiler.com/sdk-js/api-reference/types/Externals.AllowSharedBufferSource/)
    -   dataLayout: [GPUTexelCopyBufferLayout](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.GPUTexelCopyBufferLayout/)
    -   size: [Iterable](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.Iterable/)<number\>
    
    #### Returns void
