# ShaderRequirements

> Shader features required by a specific shader. Features are bit flags.

## Definition

* **Type:** Enum
* **Namespace:** [UnityEditor.Rendering](/engine/6000.5/script-reference/unityeditor/rendering.md)
* **Assembly:** UnityEditor.CoreModule

```csharp
[Flags]
public enum ShaderRequirements : long
```

## Fields

| Value                                                                                                                                    | Description                                                                                                                                                                                                 |
| ---------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [BaseShaders](/engine/6000.5/script-reference/unityeditor/rendering/shaderrequirements/baseshaders.md)                                   | Indicates that basic shader capability i.e. Shader Model level 2.0 is required.                                                                                                                             |
| [Compute](/engine/6000.5/script-reference/unityeditor/rendering/shaderrequirements/compute.md)                                           | Indicates that compute shader support is required.                                                                                                                                                          |
| [CubeArray](/engine/6000.5/script-reference/unityeditor/rendering/shaderrequirements/cubearray.md)                                       | Indicates that cubemap array (TextureCubeArray) support is required.                                                                                                                                        |
| [Derivatives](/engine/6000.5/script-reference/unityeditor/rendering/shaderrequirements/derivatives.md)                                   | Indicates that support for derivative (ddx/ddy) instructions from the fragment shader stage is required.                                                                                                    |
| [FragClipDepth](/engine/6000.5/script-reference/unityeditor/rendering/shaderrequirements/fragclipdepth.md)                               | Indicates that support for pixel depth (SV\_Position.zw) input to the fragment shader stage is required.                                                                                                    |
| [FragCoord](/engine/6000.5/script-reference/unityeditor/rendering/shaderrequirements/fragcoord.md)                                       | Indicates that support for pixel position (SV\_Position) input to the fragment shader stage is required.                                                                                                    |
| [FramebufferFetch](/engine/6000.5/script-reference/unityeditor/rendering/shaderrequirements/framebufferfetch.md)                         | Indicates that framebuffer fetch support is required. This is the ability to have fragment shader color arguments with in/out modifiers.                                                                    |
| [Geometry](/engine/6000.5/script-reference/unityeditor/rendering/shaderrequirements/geometry.md)                                         | Indicates that geometry shader stage support is required.                                                                                                                                                   |
| [Instancing](/engine/6000.5/script-reference/unityeditor/rendering/shaderrequirements/instancing.md)                                     | Indicates that support for the SV\_InstanceID input semantic is required.                                                                                                                                   |
| [Interpolators10](/engine/6000.5/script-reference/unityeditor/rendering/shaderrequirements/interpolators10.md)                           | Indicates that support for at least 10 interpolators is required.                                                                                                                                           |
| [Interpolators15Integers](/engine/6000.5/script-reference/unityeditor/rendering/shaderrequirements/interpolators15integers.md)           | Indicates that support for at least 15 integers and interpolators in total are required. Unity bundles them together because it is extremely unlikely a GPU/API will ever exist that only has part of that. |
| [Interpolators32](/engine/6000.5/script-reference/unityeditor/rendering/shaderrequirements/interpolators32.md)                           | Indicates that support for at least 32 interpolators is required.                                                                                                                                           |
| [MRT4](/engine/6000.5/script-reference/unityeditor/rendering/shaderrequirements/mrt4.md)                                                 | Indicates that support for multiple render targets (at least 4) is required i.e. support for fragment shaders that can output at least 4 values.                                                            |
| [MRT8](/engine/6000.5/script-reference/unityeditor/rendering/shaderrequirements/mrt8.md)                                                 | Indicates that support for multiple render targets (at least 8) is required i.e. support for fragment shaders that can output at least 8 values.                                                            |
| [MSAATextureSamples](/engine/6000.5/script-reference/unityeditor/rendering/shaderrequirements/msaatexturesamples.md)                     | Indicates that support for MSAA textures (e.g. Texture2DMS) is required.                                                                                                                                    |
| [None](/engine/6000.5/script-reference/unityeditor/rendering/shaderrequirements/none.md)                                                 | No shader requirements.                                                                                                                                                                                     |
| [RandomWrite](/engine/6000.5/script-reference/unityeditor/rendering/shaderrequirements/randomwrite.md)                                   | Indicates that support for random-write textures (UAVs) is required.                                                                                                                                        |
| [SampleLOD](/engine/6000.5/script-reference/unityeditor/rendering/shaderrequirements/samplelod.md)                                       | Indicates that support for texture sampling from the fragment shader stage with an explicit mipmap level is required.                                                                                       |
| [SetRTArrayIndexFromAnyShader](/engine/6000.5/script-reference/unityeditor/rendering/shaderrequirements/setrtarrayindexfromanyshader.md) | Indicates that support for setting the render target array index (SV\_RenderTargetArrayIndex) from all shader stages (not just from the geometry shader stage) is required.                                 |
| [SparseTexelResident](/engine/6000.5/script-reference/unityeditor/rendering/shaderrequirements/sparsetexelresident.md)                   | Indicates that support of sparse textures with sampling instructions that return residency information is requred.                                                                                          |
| [TessellationCompute](/engine/6000.5/script-reference/unityeditor/rendering/shaderrequirements/tessellationcompute.md)                   | Indicates that support for tessellation using a compute shader for control point processing is required. The Metal graphics API requires this feature for tessellation.                                     |
| [TessellationShaders](/engine/6000.5/script-reference/unityeditor/rendering/shaderrequirements/tessellationshaders.md)                   | Indicates that support for tessellation using hull and domain shader stages is required.                                                                                                                    |
| [Texture2DArray](/engine/6000.5/script-reference/unityeditor/rendering/shaderrequirements/texture2darray.md)                             | Indicates that support for 2D array textures (Texture2DArray) is required.                                                                                                                                  |
