# SDL_CreateGPUTexture
Creates a texture object to be used in graphics or compute workflows.
## Header File
Defined in [<SDL3/SDL_gpu.h>](https://github.com/libsdl-org/SDL/blob/main/include/SDL3/SDL_gpu.h)
## Syntax
```c
SDL_GPUTexture * SDL_CreateGPUTexture(
SDL_GPUDevice *device,
const SDL_GPUTextureCreateInfo *createinfo);
```
## Function Parameters
| | | |
| ------------------------------------------------------------ | -------------- | ------------------------------------------------------- |
| [SDL_GPUDevice](SDL_GPUDevice) * | **device** | a GPU Context. |
| const [SDL_GPUTextureCreateInfo](SDL_GPUTextureCreateInfo) * | **createinfo** | a struct describing the state of the texture to create. |
## Return Value
([SDL_GPUTexture](SDL_GPUTexture) *) Returns a texture object on success,
or NULL on failure; call [SDL_GetError](SDL_GetError)() for more
information.
## Remarks
The contents of this texture are undefined until data is written to the
texture, either via [SDL_UploadToGPUTexture](SDL_UploadToGPUTexture) or by
performing a render or compute pass with this texture as a target.
Note that certain combinations of usage flags are invalid. For example, a
texture cannot have both the SAMPLER and GRAPHICS_STORAGE_READ flags.
If you request a sample count higher than the hardware supports, the
implementation will automatically fall back to the highest available sample
count.
There are optional properties that can be provided through
[SDL_GPUTextureCreateInfo](SDL_GPUTextureCreateInfo)'s `props`. These are
the supported properties:
- [`SDL_PROP_GPU_TEXTURE_CREATE_D3D12_CLEAR_R_FLOAT`](SDL_PROP_GPU_TEXTURE_CREATE_D3D12_CLEAR_R_FLOAT):
(Direct3D 12 only) if the texture usage is
[SDL_GPU_TEXTUREUSAGE_COLOR_TARGET](SDL_GPU_TEXTUREUSAGE_COLOR_TARGET),
clear the texture to a color with this red intensity. Defaults to zero.
- [`SDL_PROP_GPU_TEXTURE_CREATE_D3D12_CLEAR_G_FLOAT`](SDL_PROP_GPU_TEXTURE_CREATE_D3D12_CLEAR_G_FLOAT):
(Direct3D 12 only) if the texture usage is
[SDL_GPU_TEXTUREUSAGE_COLOR_TARGET](SDL_GPU_TEXTUREUSAGE_COLOR_TARGET),
clear the texture to a color with this green intensity. Defaults to zero.
- [`SDL_PROP_GPU_TEXTURE_CREATE_D3D12_CLEAR_B_FLOAT`](SDL_PROP_GPU_TEXTURE_CREATE_D3D12_CLEAR_B_FLOAT):
(Direct3D 12 only) if the texture usage is
[SDL_GPU_TEXTUREUSAGE_COLOR_TARGET](SDL_GPU_TEXTUREUSAGE_COLOR_TARGET),
clear the texture to a color with this blue intensity. Defaults to zero.
- [`SDL_PROP_GPU_TEXTURE_CREATE_D3D12_CLEAR_A_FLOAT`](SDL_PROP_GPU_TEXTURE_CREATE_D3D12_CLEAR_A_FLOAT):
(Direct3D 12 only) if the texture usage is
[SDL_GPU_TEXTUREUSAGE_COLOR_TARGET](SDL_GPU_TEXTUREUSAGE_COLOR_TARGET),
clear the texture to a color with this alpha intensity. Defaults to zero.
- [`SDL_PROP_GPU_TEXTURE_CREATE_D3D12_CLEAR_DEPTH_FLOAT`](SDL_PROP_GPU_TEXTURE_CREATE_D3D12_CLEAR_DEPTH_FLOAT):
(Direct3D 12 only) if the texture usage is
[SDL_GPU_TEXTUREUSAGE_DEPTH_STENCIL_TARGET](SDL_GPU_TEXTUREUSAGE_DEPTH_STENCIL_TARGET),
clear the texture to a depth of this value. Defaults to zero.
- [`SDL_PROP_GPU_TEXTURE_CREATE_D3D12_CLEAR_STENCIL_NUMBER`](SDL_PROP_GPU_TEXTURE_CREATE_D3D12_CLEAR_STENCIL_NUMBER):
(Direct3D 12 only) if the texture usage is
[SDL_GPU_TEXTUREUSAGE_DEPTH_STENCIL_TARGET](SDL_GPU_TEXTUREUSAGE_DEPTH_STENCIL_TARGET),
clear the texture to a stencil of this Uint8 value. Defaults to zero.
- [`SDL_PROP_GPU_TEXTURE_CREATE_NAME_STRING`](SDL_PROP_GPU_TEXTURE_CREATE_NAME_STRING):
a name that can be displayed in debugging tools.
## Version
This function is available since SDL 3.2.0.
## See Also
- [SDL_UploadToGPUTexture](SDL_UploadToGPUTexture)
- [SDL_DownloadFromGPUTexture](SDL_DownloadFromGPUTexture)
- [SDL_BeginGPURenderPass](SDL_BeginGPURenderPass)
- [SDL_BeginGPUComputePass](SDL_BeginGPUComputePass)
- [SDL_BindGPUVertexSamplers](SDL_BindGPUVertexSamplers)
- [SDL_BindGPUVertexStorageTextures](SDL_BindGPUVertexStorageTextures)
- [SDL_BindGPUFragmentSamplers](SDL_BindGPUFragmentSamplers)
- [SDL_BindGPUFragmentStorageTextures](SDL_BindGPUFragmentStorageTextures)
- [SDL_BindGPUComputeStorageTextures](SDL_BindGPUComputeStorageTextures)
- [SDL_BlitGPUTexture](SDL_BlitGPUTexture)
- [SDL_ReleaseGPUTexture](SDL_ReleaseGPUTexture)
- [SDL_GPUTextureSupportsFormat](SDL_GPUTextureSupportsFormat)
----
[CategoryAPI](CategoryAPI), [CategoryAPIFunction](CategoryAPIFunction), [CategoryGPU](CategoryGPU)