# SDL_AcquireGPUCommandBuffer Acquire a command buffer. ## Header File Defined in [<SDL3/SDL_gpu.h>](https://github.com/libsdl-org/SDL/blob/main/include/SDL3/SDL_gpu.h) ## Syntax ```c SDL_GPUCommandBuffer * SDL_AcquireGPUCommandBuffer( SDL_GPUDevice *device); ``` ## Function Parameters | | | | | -------------------------------- | ---------- | -------------- | | [SDL_GPUDevice](SDL_GPUDevice) * | **device** | a GPU context. | ## Return Value ([SDL_GPUCommandBuffer](SDL_GPUCommandBuffer) *) Returns a command buffer, or NULL on failure; call [SDL_GetError](SDL_GetError)() for more information. ## Remarks This command buffer is managed by the implementation and should not be freed by the user. The command buffer may only be used on the thread it was acquired on. The command buffer should be submitted on the thread it was acquired on. It is valid to acquire multiple command buffers on the same thread at once. In fact a common design pattern is to acquire two command buffers per frame where one is dedicated to render and compute passes and the other is dedicated to copy passes and other preparatory work such as generating mipmaps. Interleaving commands between the two command buffers reduces the total amount of passes overall which improves rendering performance. ## Version This function is available since SDL 3.2.0. ## See Also - [SDL_SubmitGPUCommandBuffer](SDL_SubmitGPUCommandBuffer) - [SDL_SubmitGPUCommandBufferAndAcquireFence](SDL_SubmitGPUCommandBufferAndAcquireFence) ---- [CategoryAPI](CategoryAPI), [CategoryAPIFunction](CategoryAPIFunction), [CategoryGPU](CategoryGPU)