Comments (7)
We are deprecating __target_intrinsic
for functions and we recommend all future interop code to be written in the form of __target_switch
and __intrinsic_asm
. As you noticed, __require_prelude
and __intrinsic_asm
does not work when __target_intrinsic
is present.
from slang.
Tentatively assigned labels-- Yong, please advise if this is a "we should add a warning" or something else.
from slang.
__target_intrinsic
is still considered as compiler internal construct and we probably won't plan to add too much comprehensive checking logic around it. We may want to expose something different to the user that will undergo more checking. My suggestion is to close this issue because we don't want to invest too much checking in internal constructs for performance and implementation simplicity considerations.
from slang.
That sounds reasonable -- do we need to add any documentation?
from slang.
We can add a line in https://github.com/shader-slang/slang/edit/master/docs/user-guide/a1-04-interop.md to say that the constructs are still considered compiler internal and users should expect less complete checking around them.
from slang.
Thanks! Updated title, lowered priority, moved to backlog.
from slang.
We are deprecating
__target_intrinsic
for functions
Is there a list of deprecated things? I thought as it was part of the User Guide I was supposed to use it.
we recommend all future interop code to be written in the form of
__target_switch
and__intrinsic_asm
I can also use this.
Generally, what is the suggested way to extend on already existing types that are already in place for spir-v or hlsl but not for C++? I tried to write C++ bindings for the RayQuery
struct. Currently it works by redefining the type in case I am compiling for C++, as inheriting from the already existing RayQuery
struct is forbidden (sealed type). But I have the feeling that this is not the right way to go as this approach relies on preprocessor logic instead of actual language features. Can you give me some guidance on this? Is there documentation or examples somewhere that I missed?
from slang.
Related Issues (20)
- AD Cleanup: Unify how the different transcribers work, and cleanup their dispatch logic
- Capability System: capability-generator-main.cpp runs should support inclusiveJoin and union+error separately HOT 1
- AD Cleanup: Fix confusing naming conventions for synthesized methods and types
- AD Cleanup: Cleanup `slang-ir-autodiff-unzip.cpp` & `slang-ir-autodiff-unzip.h`
- AD Cleanup: Avoid dealing with invalid IR by representing out-of-scope accesses through `Push` and `Pop` instructions
- Add OpCapability only once
- AD Cleanup: CFG normalization replaces break statements with a boolean break flag `bflag`, but this currently means the opposite of what it should
- AD Cleanup: break-elimination during the CFG normalization step can cause the loop condition to be evaluated an extra time.
- Lower CMake version requirement
- GLSL texture functions need to support int and uint types of samplers as well as float HOT 1
- AD Enhancement: Avoid SSA-ing aggregate types by treating pointer-based element & field accesses as if they were differentiable method calls.
- AD Enhancement: Enhance DCE to avoid situations where mutating primal methods are called multiple times during the reverse-mode pass, potentially causing slow-down
- [] operator not supported for Texture2DMS
- .mips operator function not supported Texture2D
- Consider supporting #pragma pack_matrix()
- Capability System: Profile and look into performance with larger systems
- Metal: support integer type texture
- Fix memory leak in slang.dll HOT 1
- Create the breakdown profiling of slang HOT 2
- AD Cleanup: Use a temporary accumulation inst such as `IRAccumulate` instead of explicitly loading, adding and storing differential values in reverse mode
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from slang.