diff options
| author | Yong He <yonghe@outlook.com> | 2022-09-15 20:37:45 -0700 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-09-15 20:37:45 -0700 |
| commit | a5d3bec25d70f23da1e79cd7773981ff34593611 (patch) | |
| tree | 92c8cb983c57bbee141d4e6f3f91f265e04d6a08 /source/slang/core.meta.slang | |
| parent | a6032446c6bf7f64d1e201bf438a4c7605a3dbb4 (diff) | |
Run simple compute kernel in gfx-smoke test. (#2400)
Diffstat (limited to 'source/slang/core.meta.slang')
| -rw-r--r-- | source/slang/core.meta.slang | 50 |
1 files changed, 48 insertions, 2 deletions
diff --git a/source/slang/core.meta.slang b/source/slang/core.meta.slang index 5d4b57543..82783c0b6 100644 --- a/source/slang/core.meta.slang +++ b/source/slang/core.meta.slang @@ -571,12 +571,58 @@ T __attachToNativeRef(NativeRef<T> nativeVal) __magic_type(StringType) __intrinsic_type($(kIROp_StringType)) struct String -{}; +{ + __target_intrinsic(cpp) + __init(int val); + __target_intrinsic(cpp) + __init(uint val); + __target_intrinsic(cpp) + __init(int64_t val); + __target_intrinsic(cpp) + __init(uint64_t val); + __target_intrinsic(cpp) + __init(float val); + __target_intrinsic(cpp) + __init(double val); + + __target_intrinsic(cpp) + int64_t getLength(); + + property int length + { + get { return (int)getLength(); } + } +}; __magic_type(NativeStringType) __intrinsic_type($(kIROp_NativeStringType)) struct NativeString -{}; +{ + __target_intrinsic(cpp, "int(strlen($0))") + int getLength(); + + __target_intrinsic(cpp, "(void*)((const char*)($0))") + Ptr<void> getBuffer(); + + property int length { [__unsafeForceInlineEarly] get{return getLength();} } +}; + +extension Ptr<void> +{ + __implicit_conversion($(kConversionCost_PtrToVoidPtr)) + [__unsafeForceInlineEarly] + __init(NativeString nativeStr) { this = nativeStr.getBuffer(); } + + __generic<T> + __intrinsic_op(0) + __implicit_conversion($(kConversionCost_PtrToVoidPtr)) + __init(Ptr<T> ptr); + + __generic<T> + __intrinsic_op(0) + __implicit_conversion($(kConversionCost_PtrToVoidPtr)) + __init(NativeRef<T> ptr); +} __magic_type(DynamicType) __intrinsic_type($(kIROp_DynamicType)) |
