diff options
| author | Tim Foley <tfoley@nvidia.com> | 2017-07-11 13:08:42 -0700 |
|---|---|---|
| committer | Tim Foley <tfoley@nvidia.com> | 2017-07-11 14:46:48 -0700 |
| commit | 88ccba175ee2c7a0748690395de9ce7defb466e1 (patch) | |
| tree | 07870578a1390a19900197e751fc3f19707f195a /source | |
| parent | 20aac944ed3d5ab2af89ee0425af06768253fdbd (diff) | |
Add GLSL lowerings for `ddx*` and `ddy*`
Diffstat (limited to 'source')
| -rw-r--r-- | source/slang/slang-stdlib.cpp | 90 |
1 files changed, 72 insertions, 18 deletions
diff --git a/source/slang/slang-stdlib.cpp b/source/slang/slang-stdlib.cpp index 09958ddab..bcc87b201 100644 --- a/source/slang/slang-stdlib.cpp +++ b/source/slang/slang-stdlib.cpp @@ -399,29 +399,83 @@ __generic<T : __BuiltinArithmeticType> __intrinsic vector<T,3> cross(vector<T,3> __intrinsic int4 D3DCOLORtoUBYTE4(float4 x); // Partial-difference derivatives -__generic<T : __BuiltinFloatingPointType> __intrinsic T ddx(T x); -__generic<T : __BuiltinFloatingPointType, let N : int> __intrinsic vector<T,N> ddx(vector<T,N> x); -__generic<T : __BuiltinFloatingPointType, let N : int, let M : int> __intrinsic matrix<T,N,M> ddx(matrix<T,N,M> x); +__generic<T : __BuiltinFloatingPointType> +__intrinsic(glsl, dFdx) +__intrinsic +T ddx(T x); +__generic<T : __BuiltinFloatingPointType, let N : int> +__intrinsic(glsl, dFdx) +__intrinsic +vector<T,N> ddx(vector<T,N> x); +__generic<T : __BuiltinFloatingPointType, let N : int, let M : int> +__intrinsic(glsl, dFdx) +__intrinsic +matrix<T,N,M> ddx(matrix<T,N,M> x); -__generic<T : __BuiltinFloatingPointType> __intrinsic T ddx_coarse(T x); -__generic<T : __BuiltinFloatingPointType, let N : int> __intrinsic vector<T,N> ddx_coarse(vector<T,N> x); -__generic<T : __BuiltinFloatingPointType, let N : int, let M : int> __intrinsic matrix<T,N,M> ddx_coarse(matrix<T,N,M> x); +__generic<T : __BuiltinFloatingPointType> +__intrinsic(glsl, dFdxCoarse) +__intrinsic +T ddx_coarse(T x); +__generic<T : __BuiltinFloatingPointType, let N : int> +__intrinsic(glsl, dFdxCoarse) +__intrinsic +vector<T,N> ddx_coarse(vector<T,N> x); +__generic<T : __BuiltinFloatingPointType, let N : int, let M : int> +__intrinsic(glsl, dFdxCoarse) +__intrinsic +matrix<T,N,M> ddx_coarse(matrix<T,N,M> x); -__generic<T : __BuiltinFloatingPointType> __intrinsic T ddx_fine(T x); -__generic<T : __BuiltinFloatingPointType, let N : int> __intrinsic vector<T,N> ddx_fine(vector<T,N> x); -__generic<T : __BuiltinFloatingPointType, let N : int, let M : int> __intrinsic matrix<T,N,M> ddx_fine(matrix<T,N,M> x); +__generic<T : __BuiltinFloatingPointType> +__intrinsic(glsl, dFdxFine) +__intrinsic +T ddx_fine(T x); +__generic<T : __BuiltinFloatingPointType, let N : int> +__intrinsic(glsl, dFdxFine) +__intrinsic +vector<T,N> ddx_fine(vector<T,N> x); +__generic<T : __BuiltinFloatingPointType, let N : int, let M : int> +__intrinsic(glsl, dFdxFine) +__intrinsic +matrix<T,N,M> ddx_fine(matrix<T,N,M> x); -__generic<T : __BuiltinFloatingPointType> __intrinsic T ddy(T x); -__generic<T : __BuiltinFloatingPointType, let N : int> __intrinsic vector<T,N> ddy(vector<T,N> x); -__generic<T : __BuiltinFloatingPointType, let N : int, let M : int> __intrinsic matrix<T,N,M> ddy(matrix<T,N,M> x); +__generic<T : __BuiltinFloatingPointType> +__intrinsic(glsl, dFdy) +__intrinsic +T ddy(T x); +__generic<T : __BuiltinFloatingPointType, let N : int> +__intrinsic(glsl, dFdy) +__intrinsic +vector<T,N> ddy(vector<T,N> x); +__generic<T : __BuiltinFloatingPointType, let N : int, let M : int> +__intrinsic(glsl, dFdy) +__intrinsic + matrix<T,N,M> ddy(matrix<T,N,M> x); -__generic<T : __BuiltinFloatingPointType> __intrinsic T ddy_coarse(T x); -__generic<T : __BuiltinFloatingPointType, let N : int> __intrinsic vector<T,N> ddy_coarse(vector<T,N> x); -__generic<T : __BuiltinFloatingPointType, let N : int, let M : int> __intrinsic matrix<T,N,M> ddy_coarse(matrix<T,N,M> x); +__generic<T : __BuiltinFloatingPointType> +__intrinsic(glsl, dFdyCoarse) +__intrinsic +T ddy_coarse(T x); +__generic<T : __BuiltinFloatingPointType, let N : int> +__intrinsic(glsl, dFdyCoarse) +__intrinsic +vector<T,N> ddy_coarse(vector<T,N> x); +__generic<T : __BuiltinFloatingPointType, let N : int, let M : int> +__intrinsic(glsl, dFdyCoarse) +__intrinsic +matrix<T,N,M> ddy_coarse(matrix<T,N,M> x); -__generic<T : __BuiltinFloatingPointType> __intrinsic T ddy_fine(T x); -__generic<T : __BuiltinFloatingPointType, let N : int> __intrinsic vector<T,N> ddy_fine(vector<T,N> x); -__generic<T : __BuiltinFloatingPointType, let N : int, let M : int> __intrinsic matrix<T,N,M> ddy_fine(matrix<T,N,M> x); +__generic<T : __BuiltinFloatingPointType> +__intrinsic(glsl, dFdyFine) +__intrinsic +T ddy_fine(T x); +__generic<T : __BuiltinFloatingPointType, let N : int> +__intrinsic(glsl, dFdyFine) +__intrinsic +vector<T,N> ddy_fine(vector<T,N> x); +__generic<T : __BuiltinFloatingPointType, let N : int, let M : int> +__intrinsic(glsl, dFdyFine) +__intrinsic +matrix<T,N,M> ddy_fine(matrix<T,N,M> x); // Radians to degrees |
