---
name: "SDL_GPUPrimitiveType"
section: "3type"
platform: "linux"
package: "libsdl3-doc"
version: "3.2.10+ds-1"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/SDL_GPUPrimitiveType"
---

# SDL\_GPUPrimitiveType(3type)

Specifies the primitive topology of a graphics pipeline.

## NAME

SDL\_GPUPrimitiveType - Specifies the primitive topology of a graphics pipeline.

## HEADER FILE

Defined in SDL3/SDL\_gpu.h

## SYNOPSIS

```
#include "SDL3/SDL.h"
```

**typedef enum SDL\_GPUPrimitiveType** **{**     **SDL\_GPU\_PRIMITIVETYPE\_TRIANGLELIST,  /\*\*\< A series of separate triangles. \*/**     **SDL\_GPU\_PRIMITIVETYPE\_TRIANGLESTRIP, /\*\*\< A series of connected triangles. \*/**     **SDL\_GPU\_PRIMITIVETYPE\_LINELIST,      /\*\*\< A series of separate lines. \*/**     **SDL\_GPU\_PRIMITIVETYPE\_LINESTRIP,     /\*\*\< A series of connected lines. \*/**     **SDL\_GPU\_PRIMITIVETYPE\_POINTLIST      /\*\*\< A series of separate points. \*/** **} SDL\_GPUPrimitiveType;**

## DESCRIPTION

If you are using POINTLIST you must include a point size output in the vertex shader.

• For HLSL compiling to SPIRV you must decorate a float output with\
   \[\[vk::builtin("PointSize")\]\].

• For GLSL you must set the gl\_PointSize builtin.

• For MSL you must include a float output with the \[\[point\_size\]\]\
   decorator.

Note that sized point topology is totally unsupported on D3D12. Any size other than 1 will be ignored. In general, you should avoid using point topology for both compatibility and performance reasons. You WILL regret using it.

## AVAILABILITY

This enum is available since SDL 3.2.0.

## SEE ALSO

**•**(3), [**SDL\_CreateGPUGraphicsPipeline**(3)](/SDL_CreateGPUGraphicsPipeline/3.md)
