GPUDevice: createSampler() method
        
        
          Limited availability
        
        
        
          
                
              
                
              
                
              
        
        
      
      This feature is not Baseline because it does not work in some of the most widely-used browsers.
Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.
Note: This feature is available in Web Workers.
The createSampler() method of the
GPUDevice interface creates a GPUSampler, which controls how shaders transform and filter texture resource data.
Syntax
createSampler()
createSampler(descriptor)
Parameters
- descriptorOptional
- 
An object containing the following properties: - addressModeUOptional
- 
An enumerated value specifying the behavior of the sampler when the sample footprint width extends beyond the width of the texture. Possible values are: - "clamp-to-edge": The texture coordinates are clamped between 0.0 and 1.0, inclusive.
- "repeat": The texture coordinates wrap to the other side of the texture.
- "mirror-repeat": The texture coordinates wrap to the other side of the texture, but the texture is flipped when the integer part of the coordinate is odd.
 If omitted, addressModeUdefaults to"clamp-to-edge".
- addressModeVOptional
- 
An enumerated value specifying the behavior of the sampler when the sample footprint height extends beyond the height of the texture. Possible and default values are the same as for addressModeU.
- addressModeWOptional
- 
An enumerated value specifying the behavior of the sampler when the sample footprint depth extends beyond the depth of the texture. Possible and default values are the same as for addressModeU.
- compareOptional
- 
If specified, the sampler will be a comparison sampler of the specified type. Possible (enumerated) values are: - "never": Comparison tests never pass.
- "less": A provided value passes the comparison test if it is less than the sampled value.
- "equal": A provided value passes the comparison test if it is equal to the sampled value.
- "less-equal": A provided value passes the comparison test if it is less than or equal to the sampled value.
- "greater": A provided value passes the comparison test if it is greater than the sampled value.
- "not-equal": A provided value passes the comparison test if it is not equal to the sampled value.
- "greater-equal": A provided value passes the comparison test if it is greater than or equal to the sampled value.
- "always": Comparison tests always pass.
 Comparison samplers may use filtering, but the sampling results will be implementation-dependent and may differ from the normal filtering rules. 
- labelOptional
- 
A string providing a label that can be used to identify the object, for example in GPUErrormessages or console warnings.
- lodMinClampOptional
- 
A number specifying the minimum level of detail used internally when sampling a texture. If omitted, lodMinClampdefaults to 0.
- lodMaxClampOptional
- 
A number specifying the maximum level of detail used internally when sampling a texture. If omitted, lodMaxClampdefaults to 32.
- maxAnisotropyOptional
- 
Specifies the maximum anisotropy value clamp used by the sampler. If omitted, maxAnisotropydefaults to 1.Most implementations support maxAnisotropyvalues in a range between 1 and 16, inclusive. The value used will be clamped to the maximum value that the underlying platform supports.
- magFilterOptional
- 
An enumerated value specifying the sampling behavior when the sample footprint is smaller than or equal to one texel. Possible values are: - "nearest": Return the value of the texel nearest to the texture coordinates.
- "linear": Select two texels in each dimension and return a linear interpolation between their values.
 If omitted, magFilterdefaults to"nearest".Note: The float32-filterablefeature needs to be enabled forr32float-,rg32float-, andrgba32float-formatGPUTextures to be filterable.
- minFilterOptional
- 
An enumerated value specifying the sampling behavior when the sample footprint is larger than one texel. Possible and default values are the same as for magFilter.
- mipmapFilterOptional
- 
An enumerated value specifying the behavior when sampling between mipmap levels. Possible and default values are the same as for magFilter.
 
Return value
A GPUSampler object instance.
Validation
The following criteria must be met when calling createSampler(), otherwise a GPUValidationError is generated and an invalid GPUSampler object is returned:
- lodMinClampis equal to or more than 0.
- lodMaxClampis equal to or more than- lodMinClamp.
- maxAnisotropyis equal to or more than 1.
- If maxAnisotropyis more than 1,magFilter,minFilter, andmipmapFilterare"linear".
Examples
The following snippet creates a GPUSampler that does trilinear filtering and repeats texture coordinates:
// …
const sampler = device.createSampler({
  addressModeU: "repeat",
  addressModeV: "repeat",
  magFilter: "linear",
  minFilter: "linear",
  mipmapFilter: "linear",
});
The WebGPU samples Shadow Mapping sample uses comparison samplers to sample from a depth texture to render shadows.
Specifications
| Specification | 
|---|
| WebGPU> # dom-gpudevice-createsampler> | 
Browser compatibility
Loading…
See also
- The WebGPU API