From 88ccba175ee2c7a0748690395de9ce7defb466e1 Mon Sep 17 00:00:00 2001 From: Tim Foley Date: Tue, 11 Jul 2017 13:08:42 -0700 Subject: Add GLSL lowerings for `ddx*` and `ddy*` --- source/slang/slang-stdlib.cpp | 90 ++++++++++++++++++++++++++++++++++--------- 1 file changed, 72 insertions(+), 18 deletions(-) (limited to 'source/slang/slang-stdlib.cpp') 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 __intrinsic vector cross(vector __intrinsic int4 D3DCOLORtoUBYTE4(float4 x); // Partial-difference derivatives -__generic __intrinsic T ddx(T x); -__generic __intrinsic vector ddx(vector x); -__generic __intrinsic matrix ddx(matrix x); +__generic +__intrinsic(glsl, dFdx) +__intrinsic +T ddx(T x); +__generic +__intrinsic(glsl, dFdx) +__intrinsic +vector ddx(vector x); +__generic +__intrinsic(glsl, dFdx) +__intrinsic +matrix ddx(matrix x); -__generic __intrinsic T ddx_coarse(T x); -__generic __intrinsic vector ddx_coarse(vector x); -__generic __intrinsic matrix ddx_coarse(matrix x); +__generic +__intrinsic(glsl, dFdxCoarse) +__intrinsic +T ddx_coarse(T x); +__generic +__intrinsic(glsl, dFdxCoarse) +__intrinsic +vector ddx_coarse(vector x); +__generic +__intrinsic(glsl, dFdxCoarse) +__intrinsic +matrix ddx_coarse(matrix x); -__generic __intrinsic T ddx_fine(T x); -__generic __intrinsic vector ddx_fine(vector x); -__generic __intrinsic matrix ddx_fine(matrix x); +__generic +__intrinsic(glsl, dFdxFine) +__intrinsic +T ddx_fine(T x); +__generic +__intrinsic(glsl, dFdxFine) +__intrinsic +vector ddx_fine(vector x); +__generic +__intrinsic(glsl, dFdxFine) +__intrinsic +matrix ddx_fine(matrix x); -__generic __intrinsic T ddy(T x); -__generic __intrinsic vector ddy(vector x); -__generic __intrinsic matrix ddy(matrix x); +__generic +__intrinsic(glsl, dFdy) +__intrinsic +T ddy(T x); +__generic +__intrinsic(glsl, dFdy) +__intrinsic +vector ddy(vector x); +__generic +__intrinsic(glsl, dFdy) +__intrinsic + matrix ddy(matrix x); -__generic __intrinsic T ddy_coarse(T x); -__generic __intrinsic vector ddy_coarse(vector x); -__generic __intrinsic matrix ddy_coarse(matrix x); +__generic +__intrinsic(glsl, dFdyCoarse) +__intrinsic +T ddy_coarse(T x); +__generic +__intrinsic(glsl, dFdyCoarse) +__intrinsic +vector ddy_coarse(vector x); +__generic +__intrinsic(glsl, dFdyCoarse) +__intrinsic +matrix ddy_coarse(matrix x); -__generic __intrinsic T ddy_fine(T x); -__generic __intrinsic vector ddy_fine(vector x); -__generic __intrinsic matrix ddy_fine(matrix x); +__generic +__intrinsic(glsl, dFdyFine) +__intrinsic +T ddy_fine(T x); +__generic +__intrinsic(glsl, dFdyFine) +__intrinsic +vector ddy_fine(vector x); +__generic +__intrinsic(glsl, dFdyFine) +__intrinsic +matrix ddy_fine(matrix x); // Radians to degrees -- cgit v1.2.3