diff options
| author | Yong He <yonghe@outlook.com> | 2023-12-06 12:05:07 -0800 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-12-06 12:05:07 -0800 |
| commit | 11111e5733b189127dc2c4934d67693b9bc6e764 (patch) | |
| tree | 0ba84df3e856eb104abec2ecac47242bc70a7b7d /tests/autodiff | |
| parent | fa6d8717d02912697c09f2d7de802723ac6d6e47 (diff) | |
Support visibility control and default to `internal`. (#3380)
* Support visibility control and default to `internal`.
* Fix wip.
* Fixes.
* Fix.
* Fix test.
* Add legacy language detection and compatibility for existing code.
* Add doc.
---------
Co-authored-by: Yong He <yhe@nvidia.com>
Diffstat (limited to 'tests/autodiff')
22 files changed, 96 insertions, 94 deletions
diff --git a/tests/autodiff/bsdf/bsdf-auto-rev.slang b/tests/autodiff/bsdf/bsdf-auto-rev.slang index cd31f2097..1bb1989bf 100644 --- a/tests/autodiff/bsdf/bsdf-auto-rev.slang +++ b/tests/autodiff/bsdf/bsdf-auto-rev.slang @@ -1,4 +1,5 @@ //TEST_IGNORE_FILE: +implementing "bsdf-sample"; struct ShadingData { @@ -103,4 +104,4 @@ float bsdfGGXPDF(in float3 hLocal, in Auto_Bwd_BSDFParameters params) float d = ((cosTheta * a2 - cosTheta) * cosTheta + 1); return (a2 / (d * d * 3.1415926)) * cosTheta; -}
\ No newline at end of file +} diff --git a/tests/autodiff/bsdf/bsdf-sample.slang b/tests/autodiff/bsdf/bsdf-sample.slang index 8a9508791..9dfecf97e 100644 --- a/tests/autodiff/bsdf/bsdf-sample.slang +++ b/tests/autodiff/bsdf/bsdf-sample.slang @@ -2,9 +2,10 @@ //TEST(compute):COMPARE_COMPUTE_EX:-slang -compute -shaderobj -output-using-type //TEST_INPUT:ubuffer(data=[0 0 0 0 0 0 0 0 0 0], stride=4):out,name=outputBuffer -RWStructuredBuffer<float> outputBuffer; +module "bsdf-sample"; +__include bsdf_auto_rev; -__exported import bsdf_auto_rev; +RWStructuredBuffer<float> outputBuffer; [numthreads(1, 1, 1)] void computeMain(uint3 dispatchThreadID: SV_DispatchThreadID) diff --git a/tests/autodiff/cuda-kernel-export.slang b/tests/autodiff/cuda-kernel-export.slang index 928133c94..39815ede8 100644 --- a/tests/autodiff/cuda-kernel-export.slang +++ b/tests/autodiff/cuda-kernel-export.slang @@ -35,7 +35,7 @@ void myKernel(TensorView<float> inValues, TensorView<float> outValues) // TORCH: {{^SLANG_PRELUDE_EXPORT$}} // TORCH-NEXT: std::tuple<std::tuple<float, float>, std::tuple<std::tuple<std::tuple<torch::Tensor, torch::Tensor>>, std::tuple<std::tuple<torch::Tensor, torch::Tensor>>>> runCompute(std::tuple<torch::Tensor, float> input_[[#]]) [TorchEntryPoint] -public __extern_cpp MyType runCompute(MyInput input) +export __extern_cpp MyType runCompute(MyInput input) { MyType rs; var outValues = TorchTensor<float>.alloc(1); diff --git a/tests/autodiff/material/DiffuseMaterial.slang b/tests/autodiff/material/DiffuseMaterial.slang index e762e17c8..3dd2927f5 100644 --- a/tests/autodiff/material/DiffuseMaterial.slang +++ b/tests/autodiff/material/DiffuseMaterial.slang @@ -3,13 +3,13 @@ __exported import IMaterial; __exported import DiffuseMaterialInstance; -struct DiffuseMaterial : IMaterial +public struct DiffuseMaterial : IMaterial { - float3 baseColor; + public float3 baseColor; - typedef DiffuseMaterialInstance MaterialInstance; + public typedef DiffuseMaterialInstance MaterialInstance; - DiffuseMaterialInstance setupMaterialInstance() + public DiffuseMaterialInstance setupMaterialInstance() { DiffuseMaterialInstance mi = { {baseColor} }; return mi; diff --git a/tests/autodiff/material/DiffuseMaterialInstance.slang b/tests/autodiff/material/DiffuseMaterialInstance.slang index ca6bfc69a..c6f0e315b 100644 --- a/tests/autodiff/material/DiffuseMaterialInstance.slang +++ b/tests/autodiff/material/DiffuseMaterialInstance.slang @@ -3,23 +3,23 @@ __exported import IMaterialInstance; __exported import IBSDF; -struct DiffuseBSDF : IBSDF +public struct DiffuseBSDF : IBSDF { - float3 albedo; + public float3 albedo; [TreatAsDifferentiable] - float3 eval(const float3 wiLocal, const float3 woLocal) + public float3 eval(const float3 wiLocal, const float3 woLocal) { return albedo; } }; -struct DiffuseMaterialInstance : IMaterialInstance +public struct DiffuseMaterialInstance : IMaterialInstance { - DiffuseBSDF bsdf; + public DiffuseBSDF bsdf; [TreatAsDifferentiable] - float3 eval(const float3 wi, const float3 wo) + public float3 eval(const float3 wi, const float3 wo) { return bsdf.eval(wi, wo); } diff --git a/tests/autodiff/material/GlossyMaterial.slang b/tests/autodiff/material/GlossyMaterial.slang index 59cee5afe..9848c82ed 100644 --- a/tests/autodiff/material/GlossyMaterial.slang +++ b/tests/autodiff/material/GlossyMaterial.slang @@ -3,13 +3,13 @@ __exported import IMaterial; __exported import GlossyMaterialInstance; -struct GlossyMaterial : IMaterial +public struct GlossyMaterial : IMaterial { - float3 baseColor; + public float3 baseColor; - typedef GlossyMaterialInstance MaterialInstance; + public typedef GlossyMaterialInstance MaterialInstance; - GlossyMaterialInstance setupMaterialInstance() + public GlossyMaterialInstance setupMaterialInstance() { GlossyMaterialInstance mi = { { baseColor } }; return mi; diff --git a/tests/autodiff/material/GlossyMaterialInstance.slang b/tests/autodiff/material/GlossyMaterialInstance.slang index fbbcc1a26..fb1ce55c0 100644 --- a/tests/autodiff/material/GlossyMaterialInstance.slang +++ b/tests/autodiff/material/GlossyMaterialInstance.slang @@ -3,44 +3,44 @@ __exported import IMaterialInstance; __exported import IBSDF; -struct GlossyBSDF : IBSDF +public struct GlossyBSDF : IBSDF { - float3 albedo; + public float3 albedo; - float3 getAlbedo() + public float3 getAlbedo() { return albedo; } [ForwardDerivativeOf(getAlbedo)] [TreatAsDifferentiable] - DifferentialPair<float3> __fwd_d_getAlbedo() + public DifferentialPair<float3> __fwd_d_getAlbedo() { return diffPair(albedo, float3(1.f)); } [BackwardDerivativeOf(getAlbedo)] [TreatAsDifferentiable] - void __bwd_d_getAlbedo(float3 dOut) + public void __bwd_d_getAlbedo(float3 dOut) { [unroll] for (int j = 0; j < 3; j++) outputBuffer[j + 3] += dOut[j]; } [BackwardDifferentiable] - float3 eval(const float3 wiLocal, const float3 woLocal) + public float3 eval(const float3 wiLocal, const float3 woLocal) { float3 a = getAlbedo(); return a * a; } }; -struct GlossyMaterialInstance : IMaterialInstance +public struct GlossyMaterialInstance : IMaterialInstance { - GlossyBSDF bsdf; + public GlossyBSDF bsdf; [BackwardDifferentiable] - float3 eval(const float3 wi, const float3 wo) + public float3 eval(const float3 wi, const float3 wo) { return bsdf.eval(wi, wo); } diff --git a/tests/autodiff/material/IBSDF.slang b/tests/autodiff/material/IBSDF.slang index 9bdeb9197..933392b80 100644 --- a/tests/autodiff/material/IBSDF.slang +++ b/tests/autodiff/material/IBSDF.slang @@ -1,9 +1,9 @@ //TEST_IGNORE_FILE: //TEST_INPUT:ubuffer(data=[0 0 0 0 0 0], stride=4):out,name=outputBuffer -RWStructuredBuffer<float> outputBuffer; +public RWStructuredBuffer<float> outputBuffer; -interface IBSDF +public interface IBSDF { [BackwardDifferentiable] float3 eval(const float3 wi, const float3 wo); diff --git a/tests/autodiff/material/IMaterial.slang b/tests/autodiff/material/IMaterial.slang index 4bdaac2bc..73390ba0e 100644 --- a/tests/autodiff/material/IMaterial.slang +++ b/tests/autodiff/material/IMaterial.slang @@ -2,9 +2,9 @@ __exported import IMaterialInstance; -interface IMaterial +public interface IMaterial { - associatedtype MaterialInstance : IMaterialInstance; + public associatedtype MaterialInstance : IMaterialInstance; - MaterialInstance setupMaterialInstance(); + public MaterialInstance setupMaterialInstance(); } diff --git a/tests/autodiff/material/IMaterialInstance.slang b/tests/autodiff/material/IMaterialInstance.slang index fb13f8982..4425c2c65 100644 --- a/tests/autodiff/material/IMaterialInstance.slang +++ b/tests/autodiff/material/IMaterialInstance.slang @@ -1,7 +1,7 @@ //TEST_IGNORE_FILE: -interface IMaterialInstance +public interface IMaterialInstance { [BackwardDifferentiable] - float3 eval(const float3 wi, const float3 wo); + public float3 eval(const float3 wi, const float3 wo); } diff --git a/tests/autodiff/material/MaterialSystem.slang b/tests/autodiff/material/MaterialSystem.slang index 5e733fad9..9fcee1386 100644 --- a/tests/autodiff/material/MaterialSystem.slang +++ b/tests/autodiff/material/MaterialSystem.slang @@ -2,7 +2,7 @@ __exported import IMaterial; -IMaterial createMaterialClassConformance(int type, float3 value) +public IMaterial createMaterialClassConformance(int type, float3 value) { return createDynamicObject<IMaterial, float3>(type, value); } diff --git a/tests/autodiff/material2/DiffuseMaterial.slang b/tests/autodiff/material2/DiffuseMaterial.slang index 721445249..d4ae579ff 100644 --- a/tests/autodiff/material2/DiffuseMaterial.slang +++ b/tests/autodiff/material2/DiffuseMaterial.slang @@ -3,20 +3,20 @@ __exported import IMaterial; __exported import DiffuseMaterialInstance; -struct DiffuseMaterial : IMaterial +public struct DiffuseMaterial : IMaterial { - float3 baseColor; + public float3 baseColor; - typedef DiffuseMaterialInstance MaterialInstance; + public typedef DiffuseMaterialInstance MaterialInstance; [TreatAsDifferentiable] - float3 getAlbedo(float3 albedo) + public float3 getAlbedo(float3 albedo) { return albedo; } [BackwardDifferentiable] - DiffuseMaterialInstance setupMaterialInstance(out MaterialInstanceData miData) + public DiffuseMaterialInstance setupMaterialInstance(out MaterialInstanceData miData) { float3 albedo = getAlbedo(baseColor); DiffuseMaterialInstance mi = { baseColor }; diff --git a/tests/autodiff/material2/DiffuseMaterialInstance.slang b/tests/autodiff/material2/DiffuseMaterialInstance.slang index e33e3f568..7f8421d9f 100644 --- a/tests/autodiff/material2/DiffuseMaterialInstance.slang +++ b/tests/autodiff/material2/DiffuseMaterialInstance.slang @@ -3,12 +3,12 @@ __exported import IMaterialInstance; __exported import IBSDF; -struct DiffuseMaterialInstance : IMaterialInstance +public struct DiffuseMaterialInstance : IMaterialInstance { - float3 albedo; + public float3 albedo; [BackwardDifferentiable] - float3 eval(const MaterialInstanceData miData, const float3 wi, const float3 wo) + public float3 eval(const MaterialInstanceData miData, const float3 wi, const float3 wo) { float3 albedo; for (uint i = 0; i < 3; i++) albedo[i] = miData.data[i]; diff --git a/tests/autodiff/material2/GlossyMaterial.slang b/tests/autodiff/material2/GlossyMaterial.slang index 34ade54cb..e937443d4 100644 --- a/tests/autodiff/material2/GlossyMaterial.slang +++ b/tests/autodiff/material2/GlossyMaterial.slang @@ -3,34 +3,34 @@ __exported import IMaterial; __exported import GlossyMaterialInstance; -struct GlossyMaterial : IMaterial +public struct GlossyMaterial : IMaterial { - float3 baseColor; + public float3 baseColor; - typedef GlossyMaterialInstance MaterialInstance; + public typedef GlossyMaterialInstance MaterialInstance; - float3 getAlbedo(float3 albedo) + public float3 getAlbedo(float3 albedo) { return albedo; } [ForwardDerivativeOf(getAlbedo)] [TreatAsDifferentiable] - DifferentialPair<float3> __fwd_d_getAlbedo(DifferentialPair<float3> dpAlbedo) + public DifferentialPair<float3> __fwd_d_getAlbedo(DifferentialPair<float3> dpAlbedo) { return diffPair(dpAlbedo.p, float3(1.f)); } [BackwardDerivativeOf(getAlbedo)] [TreatAsDifferentiable] - void __bwd_d_getAlbedo(inout DifferentialPair<float3> dpAlbedo, float3 dOut) + public void __bwd_d_getAlbedo(inout DifferentialPair<float3> dpAlbedo, float3 dOut) { [unroll] for (int j = 0; j < 3; j++) outputBuffer[j + 3] += dOut[j]; } [BackwardDifferentiable] - GlossyMaterialInstance setupMaterialInstance(out MaterialInstanceData miData) + public GlossyMaterialInstance setupMaterialInstance(out MaterialInstanceData miData) { float3 albedo = getAlbedo(baseColor); GlossyMaterialInstance mi = { baseColor }; diff --git a/tests/autodiff/material2/GlossyMaterialInstance.slang b/tests/autodiff/material2/GlossyMaterialInstance.slang index 3cef458ff..64973a5ea 100644 --- a/tests/autodiff/material2/GlossyMaterialInstance.slang +++ b/tests/autodiff/material2/GlossyMaterialInstance.slang @@ -3,12 +3,12 @@ __exported import IMaterialInstance; __exported import IBSDF; -struct GlossyMaterialInstance : IMaterialInstance +public struct GlossyMaterialInstance : IMaterialInstance { - float3 albedo; + public float3 albedo; [BackwardDifferentiable] - float3 eval(const MaterialInstanceData miData, const float3 wi, const float3 wo) + public float3 eval(const MaterialInstanceData miData, const float3 wi, const float3 wo) { float3 albedo = float3(0.0f, 0.0f, 0.0f); for (uint i = 0; i < 3; i++) albedo[i] = miData.data[i]; diff --git a/tests/autodiff/material2/IBSDF.slang b/tests/autodiff/material2/IBSDF.slang index 57cff2883..49bfde6e7 100644 --- a/tests/autodiff/material2/IBSDF.slang +++ b/tests/autodiff/material2/IBSDF.slang @@ -1,10 +1,10 @@ //TEST_IGNORE_FILE: -//TEST_INPUT:ubuffer(data=[0 0 0 0 0 0 0 0 0], stride=4):out,name=outputBuffer -RWStructuredBuffer<float> outputBuffer; +// TEST_INPUT:ubuffer(data=[0 0 0 0 0 0 0 0 0], stride=4):out,name=outputBuffer +public RWStructuredBuffer<float> outputBuffer; -interface IBSDF +public interface IBSDF { [BackwardDifferentiable] - float3 eval(const float3 wi, const float3 wo); + public float3 eval(const float3 wi, const float3 wo); } diff --git a/tests/autodiff/material2/IMaterial.slang b/tests/autodiff/material2/IMaterial.slang index 66780c9ff..cefb69393 100644 --- a/tests/autodiff/material2/IMaterial.slang +++ b/tests/autodiff/material2/IMaterial.slang @@ -2,10 +2,10 @@ __exported import IMaterialInstance; -interface IMaterial +public interface IMaterial { - associatedtype MaterialInstance : IMaterialInstance; + public associatedtype MaterialInstance : IMaterialInstance; [BackwardDifferentiable] - MaterialInstance setupMaterialInstance(out MaterialInstanceData miData); + public MaterialInstance setupMaterialInstance(out MaterialInstanceData miData); } diff --git a/tests/autodiff/material2/IMaterialInstance.slang b/tests/autodiff/material2/IMaterialInstance.slang index ddf5ca0f6..6b6b617b5 100644 --- a/tests/autodiff/material2/IMaterialInstance.slang +++ b/tests/autodiff/material2/IMaterialInstance.slang @@ -1,8 +1,8 @@ //TEST_IGNORE_FILE: -struct MaterialInstanceData : IDifferentiable +public struct MaterialInstanceData : IDifferentiable { - float data[5]; + public float data[5]; } /* @@ -13,8 +13,8 @@ struct MaterialInstanceSetupResult : IDifferentiable } */ -interface IMaterialInstance +public interface IMaterialInstance { [BackwardDifferentiable] - float3 eval(const MaterialInstanceData miData, const float3 wi, const float3 wo); + public float3 eval(const MaterialInstanceData miData, const float3 wi, const float3 wo); } diff --git a/tests/autodiff/material2/MaterialSystem.slang b/tests/autodiff/material2/MaterialSystem.slang index 5e733fad9..9fcee1386 100644 --- a/tests/autodiff/material2/MaterialSystem.slang +++ b/tests/autodiff/material2/MaterialSystem.slang @@ -2,7 +2,7 @@ __exported import IMaterial; -IMaterial createMaterialClassConformance(int type, float3 value) +public IMaterial createMaterialClassConformance(int type, float3 value) { return createDynamicObject<IMaterial, float3>(type, value); } diff --git a/tests/autodiff/material2/MxLayeredMaterial.slang b/tests/autodiff/material2/MxLayeredMaterial.slang index 5e2717b60..8c5cd6d3c 100644 --- a/tests/autodiff/material2/MxLayeredMaterial.slang +++ b/tests/autodiff/material2/MxLayeredMaterial.slang @@ -5,54 +5,54 @@ __exported import IMaterialInstance; import MxLayeredMaterialInstance; import MxWeights; -struct LayeredData_mixedLobes : IMxLayeredMaterialData +public struct LayeredData_mixedLobes : IMxLayeredMaterialData { - static const int bsdfCount = 3; - static const int layerCount = 1; + public static const int bsdfCount = 3; + public static const int layerCount = 1; - int getBsdfCount() { return bsdfCount; } - int getLayerCount() { return layerCount; } + public int getBsdfCount() { return bsdfCount; } + public int getLayerCount() { return layerCount; } } #define TMxLayeredMaterialData LayeredData_mixedLobes -struct Layered_mixedLobes_WeightsCalculator : IMxLayeredWeightCalculator +public struct Layered_mixedLobes_WeightsCalculator : IMxLayeredWeightCalculator { - void calculateWeights<let TBsdfCount : int, let TLayerCount : int, TLayeredMaterialData : IMxLayeredMaterialData>( + public void calculateWeights<let TBsdfCount : int, let TLayerCount : int, TLayeredMaterialData : IMxLayeredMaterialData>( const TLayeredMaterialData data, out MxWeights<TBsdfCount> weights) { for (uint i = 0; i < TBsdfCount; i++) weights.weights[i] = float3(0.f); } } -struct MxLayeredMaterial : IMaterial +public struct MxLayeredMaterial : IMaterial { - float3 baseColor; + public float3 baseColor; - typealias UsedMaterialInstance = MxLayeredMaterialInstance<3, 1, TMxLayeredMaterialData, Layered_mixedLobes_WeightsCalculator>; - typedef UsedMaterialInstance MaterialInstance; + public typealias UsedMaterialInstance = MxLayeredMaterialInstance<3, 1, TMxLayeredMaterialData, Layered_mixedLobes_WeightsCalculator>; + public typedef UsedMaterialInstance MaterialInstance; - float3 getAlbedo(float3 albedo) + public float3 getAlbedo(float3 albedo) { return albedo; } [ForwardDerivativeOf(getAlbedo)] [TreatAsDifferentiable] - DifferentialPair<float3> __fwd_d_getAlbedo(DifferentialPair<float3> dpAlbedo) + public DifferentialPair<float3> __fwd_d_getAlbedo(DifferentialPair<float3> dpAlbedo) { return diffPair(dpAlbedo.p, float3(1.f)); } [BackwardDerivativeOf(getAlbedo)] [TreatAsDifferentiable] - void __bwd_d_getAlbedo(inout DifferentialPair<float3> dpAlbedo, float3 dOut) + public void __bwd_d_getAlbedo(inout DifferentialPair<float3> dpAlbedo, float3 dOut) { [unroll] for (int j = 0; j < 3; j++) outputBuffer[j + 6] += dOut[j]; } - + [Differentiable] - UsedMaterialInstance setupMaterialInstance(out MaterialInstanceData miData) + public UsedMaterialInstance setupMaterialInstance(out MaterialInstanceData miData) { float3 albedo = getAlbedo(baseColor); UsedMaterialInstance mi; diff --git a/tests/autodiff/material2/MxLayeredMaterialInstance.slang b/tests/autodiff/material2/MxLayeredMaterialInstance.slang index 53a319d6f..ed2ef1cb0 100644 --- a/tests/autodiff/material2/MxLayeredMaterialInstance.slang +++ b/tests/autodiff/material2/MxLayeredMaterialInstance.slang @@ -5,17 +5,17 @@ __exported import IBSDF; import MxWeights; -struct MxLayeredMaterialInstance< +public struct MxLayeredMaterialInstance< let TBsdfCount : int, let TLayerCount : int, TLayeredMaterialData : IMxLayeredMaterialData, TWeightsCalc : IMxLayeredWeightCalculator> : IMaterialInstance { - TLayeredMaterialData data; - TWeightsCalc calculator; - typealias Weights = MxWeights<TBsdfCount>; + public TLayeredMaterialData data; + public TWeightsCalc calculator; + public typealias Weights = MxWeights<TBsdfCount>; - Weights calculateWeights() + public Weights calculateWeights() { Weights result; calculator.calculateWeights<TBsdfCount, TLayerCount, TLayeredMaterialData>(data, result); @@ -23,7 +23,7 @@ struct MxLayeredMaterialInstance< } [Differentiable] - float3 eval(const MaterialInstanceData miData, const float3 wi, const float3 wo) + public float3 eval(const MaterialInstanceData miData, const float3 wi, const float3 wo) { float3 albedo; for (uint i = 0; i < 3; i++) albedo[i] = miData.data[i]; diff --git a/tests/autodiff/material2/MxWeights.slang b/tests/autodiff/material2/MxWeights.slang index 1d1a9f543..1e9c7d36c 100644 --- a/tests/autodiff/material2/MxWeights.slang +++ b/tests/autodiff/material2/MxWeights.slang @@ -1,18 +1,18 @@ //TEST_IGNORE_FILE: -struct MxWeights<let TBsdfCount : int> +public struct MxWeights<let TBsdfCount : int> { - float3 weights[TBsdfCount]; + public float3 weights[TBsdfCount]; } -interface IMxLayeredMaterialData +public interface IMxLayeredMaterialData { - int getBsdfCount(); - int getLayerCount(); + public int getBsdfCount(); + public int getLayerCount(); } -interface IMxLayeredWeightCalculator +public interface IMxLayeredWeightCalculator { - void calculateWeights<let TBsdfCount : int, let TLayerCount: int, TLayeredMaterialData : IMxLayeredMaterialData>( + public void calculateWeights<let TBsdfCount : int, let TLayerCount: int, TLayeredMaterialData : IMxLayeredMaterialData>( const TLayeredMaterialData data, out MxWeights<TBsdfCount> weights); } |
