Scroll to navigation

SDL_BeginGPUComputePass(3) SDL3 FUNCTIONS SDL_BeginGPUComputePass(3)

NAME

SDL_BeginGPUComputePass - Begins a compute pass on a command buffer.

HEADER FILE

Defined in SDL3/SDL_gpu.h

SYNOPSIS

#include "SDL3/SDL.h"
SDL_GPUComputePass* SDL_BeginGPUComputePass(
    SDL_GPUCommandBuffer *command_buffer,
    const SDL_GPUStorageTextureReadWriteBinding *storage_texture_bindings,
    Uint32 num_storage_texture_bindings,
    const SDL_GPUStorageBufferReadWriteBinding *storage_buffer_bindings,
    Uint32 num_storage_buffer_bindings);

DESCRIPTION

A compute pass is defined by a set of texture subresources and buffers that may be written to by compute pipelines. These textures and buffers must have been created with the COMPUTE_STORAGE_WRITE bit or the COMPUTE_STORAGE_SIMULTANEOUS_READ_WRITE bit. If you do not create a texture with COMPUTE_STORAGE_SIMULTANEOUS_READ_WRITE, you must not read from the texture in the compute pass. All operations related to compute pipelines must take place inside of a compute pass. You must not begin another compute pass, or a render pass or copy pass before ending the compute pass.

A VERY IMPORTANT NOTE - Reads and writes in compute passes are NOT implicitly synchronized. This means you may cause data races by both reading and writing a resource region in a compute pass, or by writing multiple times to a resource region. If your compute work depends on reading the completed output from a previous dispatch, you MUST end the current compute pass and begin a new one before you can safely access the data. Otherwise you will receive unexpected results. Reading and writing a texture in the same compute pass is only supported by specific texture formats. Make sure you check the format support!

FUNCTION PARAMETERS

a command buffer.
an array of writeable storage texture binding structs.
the number of storage textures to bind from the array.
an array of writeable storage buffer binding structs.
the number of storage buffers to bind from the array.

RETURN VALUE

( SDL_GPUComputePass
*) Returns a compute pass handle.

AVAILABILITY

This function is available since SDL 3.2.0.

SEE ALSO

(3), SDL_EndGPUComputePass(3)

SDL 3.2.0 Simple Directmedia Layer