## table of contents

DFDX, DFDY(3G) | [FIXME: manual] | DFDX, DFDY(3G) |

# NAME¶

dFdx,_dFdy - return the partial derivative of an argument with respect to x or y

# DECLARATION¶

**genType dFdx(genType ***p***);**

**genType dFdy(genType ***p***);**

**genType dFdxCoarse(genType ***p***);**

**genType dFdyCoarse(genType ***p***);**

**genType dFdxFine(genType ***p***);**

**genType dFdyFine(genType ***p***);**

# PARAMETERS¶

*p*

# DESCRIPTION¶

*Available only in the fragment shader*, these functions
return the partial derivative of expression *p* with respect to the
window $x$ coordinate (for **dFdx***) and $y$ coordinate (for
**dFdy***).

**dFdxFine** and **dFdyFine** calculate derivatives using
local differencing based on on the value of *p* for the current
fragment and its immediate neighbor(s).

**dFdxCoarse** and **dFdyCoarse** calculate derivatives
using local differencing based on the value of *p* for the current
fragment's neighbors, and will possibly, but not necessarily, include the
value for the current fragment. That is, over a given area, the
implementation can compute derivatives in fewer unique locations than would
be allowed for the corresponding **dFdxFine** and **dFdyFine**
functions.

**dFdx** returns either **dFdxCoarse** or **dFdxFine**.
**dFdy** returns either **dFdyCoarse** or **dFdyFine**. The
implementation may choose which calculation to perform based upon factors
such as performance or the value of the API
**GL_FRAGMENT_SHADER_DERIVATIVE_HINT** hint.

Expressions that imply higher order derivatives such as
dFdx(dFdx(n)) have undefined results, as do mixed-order derivatives such as
dFdx(dFdy(n)). It is assumed that the expression *p* is continuous and
therefore, expressions evaluated via non-uniform control flow may be
undefined.

# VERSION SUPPORT¶

OpenGL Shading
Language Version |
||||||||||||

Function Name |
1.10 |
1.20 |
1.30 |
1.40 |
1.50 |
3.30 |
4.00 |
4.10 |
4.20 |
4.30 |
4.40 |
4.50 |

dFdx | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |

dFdy | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |

dFdxCoarse, dFdxFine, dFdyCoarse, dFdyFine | - | - | - | - | - | - | - | - | - | - | - | ✔ |

# SEE ALSO¶

**fwidth**(), **glHint**()

# COPYRIGHT¶

Copyright © 2011-2014 Khronos Group. This material may be
distributed subject to the terms and conditions set forth in the Open
Publication License, v 1.0, 8 June 1999.
**http://opencontent.org/openpub/**.

# COPYRIGHT¶

Copyright © 2011-2014 Khronos Group

05/21/2015 | [FIXME: source] |