--- layout: stdlib-reference --- # fwidth ## Description Texture filter width. Calculates the sum abs(ddx(p)) + abs(ddy(p)). ## Signature
/// Requires Capability Set 1:
T fwidth<T>(T p)
where T : __BuiltinFloatingPointType;
/// Requires Capability Set 2:
vector<T, N> fwidth<T, int N>(vector<T, N> x)
where T : __BuiltinFloatingPointType;
/// Requires Capability Set 3:
matrix<T, N, M> fwidth<T, int N, int M>(matrix<T, N, M> x)
where T : __BuiltinFloatingPointType;
## Generic Parameters
#### T: [\_\_BuiltinFloatingPointType](../interfaces/0_builtinfloatingpointtype-029hm/index.html)
#### N : int
#### M : int
## Parameters
#### p : [T](fwidth.html#typeparam-T)
The value to sum x and y partial derivative magnitudes for.
#### x : [vector](../types/vector/index.html)\<[T](../types/vector/index.html#typeparam-T), [N](../types/vector/index.html#decl-N)\>
#### x : [matrix](../types/matrix/index.html)\<[T](../types/matrix/t-0.html), [N](../types/matrix/index.html#decl-N), [M](../types/matrix/index.html#decl-M)\>
## Return value
The sum of abs(ddx(p)) and abs(ddy(p)).
## Remarks
For SPIR-V, this function maps to OpFwidth.
## Availability and Requirements
### Capability Set 1
Defined for the following targets:
#### hlsl
Available in stages: `amplification`, `fragment`, `compute`, `mesh`, `miss`, `callable`, `closesthit`, `raygen`, `intersection`, `anyhit`.
#### glsl
Available in stages: `amplification`, `fragment`, `compute`, `mesh`, `miss`, `callable`, `closesthit`, `raygen`, `intersection`, `anyhit`.
#### metal
Available in `fragment` stage only.
#### wgsl
Available in `fragment` stage only.
#### spirv
Available in stages: `amplification`, `fragment`, `compute`, `mesh`, `miss`, `callable`, `closesthit`, `raygen`, `intersection`, `anyhit`.
Requires capabilities: `SPV_KHR_compute_shader_derivatives`, `spvMeshShadingEXT`.
### Capability Set 2
Defined for the following targets:
#### hlsl
Available in stages: `amplification`, `fragment`, `compute`, `mesh`, `miss`, `callable`, `closesthit`, `raygen`, `intersection`, `anyhit`.
#### glsl
Available in stages: `amplification`, `fragment`, `compute`, `mesh`, `miss`, `callable`, `closesthit`, `raygen`, `intersection`, `anyhit`.
#### wgsl
Available in `fragment` stage only.
#### spirv
Available in stages: `amplification`, `fragment`, `compute`, `mesh`, `miss`, `callable`, `closesthit`, `raygen`, `intersection`, `anyhit`.
Requires capabilities: `SPV_KHR_compute_shader_derivatives`, `spvMeshShadingEXT`.
### Capability Set 3
Defined for the following targets:
#### hlsl
Available in stages: `amplification`, `fragment`, `compute`, `mesh`, `miss`, `callable`, `closesthit`, `raygen`, `intersection`, `anyhit`.
#### glsl
Available in stages: `amplification`, `fragment`, `compute`, `mesh`, `miss`, `callable`, `closesthit`, `raygen`, `intersection`, `anyhit`.
#### spirv
Available in stages: `amplification`, `fragment`, `compute`, `mesh`, `miss`, `callable`, `closesthit`, `raygen`, `intersection`, `anyhit`.
Requires capabilities: `SPV_KHR_compute_shader_derivatives`, `spvMeshShadingEXT`.