summaryrefslogtreecommitdiff
path: root/README.md
AgeCommit message (Collapse)Author
2024-07-24Update README.mdYong He
2024-07-24Update README.md on Metal support.Yong He
2024-07-10Update badge link in.Yong He
2024-04-09Update README.mdYong He
2024-04-07Add CTS status badge to README (#3901)kaizhangNV
2024-03-27Update README.md with tables for platform & target support (#3847)Shannon Woods
Adds tables to README.md for quick reference of which platforms and targets are supported. Links to detailed information in user guide. Bug Id: shader-slang/slang #3667
2024-03-04Add user-guide section on pointers. (#3670)Yong He
2024-03-01Add documentation for debugging. (#3656)Yong He
* Add documentation for debugging. * typo
2024-02-05Add documentation on capability system. (#3549)Yong He
Fixes #3454.
2024-02-02updating readme (#3537)Nathan V. Morrical
Co-authored-by: Yong He <yonghe@outlook.com>
2024-01-23Adding CONTRIBUTION.md (#3472)Jay Kwak
* Adding CONTRIBUTION.md Fixes #3372 Adding CONTRIBUTION.md that describes the workflow for the contributors at more details. * Add instructions for PR process in CONTRIBUTE.me This commit adds an instruction of how to handle the case when you got feedbacks during Pull Request process. * Fix a formatting problem for Code Style When a word is wrapped with "lessThen" and "greaterThan" characters, it may disappear on the result based on the formatting syntax of .MD file. They need to be wrapped with a single back-tick character to avoid the problem. --------- Co-authored-by: Yong He <yonghe@outlook.com>
2023-12-06Update README.md (#3383)Yong He
2023-11-17Update README.md (#3339)Yong He
2023-10-10Update README.mdYong He
2023-08-17Update README.mdjsmall-nvidia
2023-08-17Update README.mdjsmall-nvidia
2023-05-22Update README.mdYong He
2023-02-11Update README.md on auto diff feature.Yong He
2022-04-25README: fix url of the linux build badge, and add the macOS build badge (#2204)Eric Engestrom
* README: fix url of the linux build badge * README: add macOS build badge
2022-01-10Update build status in READMEYong He
2021-12-20Shader playground improvements (#2066)jsmall-nvidia
* #include an absolute path didn't work - because paths were taken to always be relative. * Improve shader playground docs.
2021-10-25Enabling slang-llvm for host-callable (#1975)jsmall-nvidia
* #include an absolute path didn't work - because paths were taken to always be relative. * First integration of slang-pack. * Use .os * Add optional dependency support. * Update github actions/scripts to update deps. aarch64 needs special handling. * Upgrade to latest slang-pack for ignore-deps support. * Fix linux build issues. * Copying slang-llvm from dependencies. * Add support for LLVM for host callable. Added CodeGenTransitionMap. * Remove hack to enable host callable for LLVM. * Small improvements around transitions/downstream compiler. * Fix typo in method name. * Fix comment. * Update visual studio project. * Updage slang-llvm to include initialization fix. * Fix handling extraction of clang version number. * Fix some formatting problems. * hack - to see if there is a version problem on CI. * Remove progress on github action linux. * Allow version lines to have text before 'prefix'. * Update slang-binaries to include centos-7 premake binaries. * Upgrade slang-binaries. * Upgrade slang-binaries. * Update slang binaries to have certificates. * Fix handling of dependency path. * Update README to include LLVM Update building to include --deps and --arch * Include slang-llvm in packages. * Update building docs.
2021-10-09Upgrade to GLSLANG 11.16.0+ (#1962)jsmall-nvidia
* #include an absolute path didn't work - because paths were taken to always be relative. * Upgrade to GLSLANG 11.16.0+ * Small edit to readme - really to kick another build. * Upgrade slang-binaries to include new glslang binaries. * Update slang-binaries to include linux-x86 * Upgrade slang-binaries.
2021-04-05TypoTim Foley
2021-04-04Fixed a typo on introduction (#1783)Ali Emre Gülcü
2021-03-30Organize landing page (#1769)Tim Foley
The landing page (`README.md`) has been growing larger and less tidy over time as we try to cram more and more information into it. This change makes a few edits to try to make the landing page shorter and more to the point: * Streamline the opening lines and try to make them focus on the credibility of the system * Break off the list of major features into its own subsection and try to highlight the ones that our current users say they benefit from the most * Move a lot of the information about documentation, examples, Shader Playground, etc. into their own sub-pages to avoid clutter * Break out the list of dependencies in the `License` section to make sure we are being accurate With this change the landing page links to the User's Guide directly, so we probably need to get that rendering nicely ASAP.
2021-01-28README.md update (#1679)jsmall-nvidia
* #include an absolute path didn't work - because paths were taken to always be relative. * Added trying out section to README.md Co-authored-by: Tim Foley <tfoleyNV@users.noreply.github.com>
2020-03-23First pass at a Target Compatibility document (#1287)jsmall-nvidia
* WIP compatibility docs. * Test transpose in matrix-float. * Small improvement to CUDA docs. * Added some discussion around tessellation. * Small improvements to target-compatibility.md * Improve compatibility documentation. Co-authored-by: Tim Foley <tfoleyNV@users.noreply.github.com>
2020-03-17Improve CUDA Wave intrinsics documentation. (#1276)jsmall-nvidia
* Improve CUDA Wave intrinsics documentation. Remove inappropriate comment. * Small CUDA doc improvement.
2019-09-23CPU Hello World (#1065)jsmall-nvidia
* First pass on cpu-hello-world application. * Improvements to cpu-hello-world * Improved documentation around cpu-hello-world. Added information about C++/CPU targets to README.md Referenced cpu-target.
2018-09-28Update README.mdYong He
2018-08-03Major overhaul of Renderer abstraction, to support a new example (#624)Tim Foley
The original goal here was to bring up a second example program: `model-viewer`. While the existing `hello-world` example is enough to get somebody up to speed with the basics of the Slang API (as a drop-in replacement for `D3DCompile` or similar), it doesn't really show any of the big-picture stuff that Slang is meant to enable. There wasn't any use of D3D12/Vulkan descriptor tables/sets, and there wasn't any use of interfaces, generics, or `ParameterBlock`s in the shader code. The `model-viewer` example addresses these issues. Its shader code involves generics, interfaces, and multiple `ParameterBlock`s, and the host-side code demonstrates a few key things for working with Slang: * There is an application-level abstraction for parameter blocks, that combines the graphics-API descriptor set object with Slang type information * There is a shader cache layer used to look up an appropriate variant of a rendering effect by using parameter block types to "plug in" global type variables * There is a clear separation between the phases of compilation: a first phase that does semantic checking and enables reflection-based allocation of graphics API objects, followed by one or more code generation passes for specialized kernels. This example is certainly not perfect, and it will need to be revamped more going forward. In particular: * The output picture is ugly as sin. We need a plan for how to get this to load better content, perhaps even popping up an error message to note that the required input data isn't present in the basic repository. * The shader code is too simplistic. There isn't any real material variety, and the `IMaterial` abstraction is completely wrong. * The use of parameter blocks is facile because there are no resource parameters right now. Fixing that will likely expose issues around interfacing with Slang's reflection API. * The whole example exposes the issue that Slang's current APIs aren't really designed for the benefit of two-phase compilation (since our many client application has been stuck on one-phase compilation). * Global type parameters are actually a Bad Idea that we only did for compatibility with existing codebases. We should not be showing them off in an example of the Right Way to use Slang, but the language support for type parameters on entry points is still not complete. Of course, the majority of the changes here are *not* inside the example applications, and instead involve a major overhaul of the `Renderer` abstraction that is used for both tests and examples. The main thrust of the change is to make the abstraction layer be closer to the D3D12/Vulkan model than to a D3D11-style model. This is important for the `model-viewer` example, since it aspires to show how Slang can be incorporated into a renderer that targets a modern API. The most important bit is actually the use of descriptor sets and "pipeline layouts" a la Vulkan, since without these Slang's `ParameterBlock` abstraction won't make a lot of sense. Implementation of the abstraction for the various APIs has very much been on an as-needed basis. The current implementation is just enough for the two examples to work, plus enough to get all the tests to pass in both debug and release builds on Windows. A big missing feature in the API abstraction right now is memory lifetime management. The code had been trending toward something D3D11-like where a constant buffer could be mapped per-frame with the implementation doing behind-the-scenes allocation for targets like D3D12/Vulkan. I'd like to shift more toward a model of just exposing "transient" allocations that are only valid for one frame, because these are more representation of how an efficient renderer for next-generation APIs will work. That transition isn't actually complete, though, so there are problems with the existing examples where `hello-world` is actually scribbling into memory that the GPU might still be using, while `model-viewer` is doing full-on heavy-weight allocations on a per-frame basis with no real concern for the performance implications. All together, there are a lot of things here that need more work, but this branch has been way too long-lived already, and so I'd like to get this checked in as long as all the tests pass.
2018-03-16Typos (#444)Tim Foley
2018-02-02Revamp documentation (#395)Tim Foley
- Remove references to building by embedding source (not recommended at this point) - Push users more toward binary builds rather than building from source (but include a document that talks about how to build) - Remove most (all?) references to supporting GLSL input - Expand the language guide to talk about the new features - Add a document that talks about the parameter layout algorithm
2018-01-23Update README.mdYong He
2017-09-29Get tests running/passing under Linux (#194)Tim Foley
* Get tests running/passing under Linux - Fix up `dlopen` abstraction - Fix up some test cases to request hlsl (rather than default to dxbc) so they can run on non-Windows targets - Fix up test runner ignore tests that can't run on current platform (and not count those as failure) - Fix file handle leeak in process spawner absttraction - Get additional test-related applications building - More tweaks to Travis script; in theory deployment is set up now (yeah, right) * fixup * fixup: Travis environment variable syntax * fixup: Buffer->begin * fixup: actually run full tests on one config * fixup: add build status badge for Travis
2017-07-27Update README.mdTim Foley
Typo fix.
2017-07-26Update documentation.Tim Foley
- Update readme to fill out some of the `TODO` sections - Add an API user's guide that gives the basics of linking against Slang and using it to compile and reflect shaders - Add a bit of usage info for the command-line `slangc` program - Add an overview of the Slang language as it stands today - Add an initial FAQ, mostly to help answer the "why should I use this?" question
2017-06-14AppVeyor: Run tests as part of AppVeyor buildsTim Foley
This includes a bunch of related changes: - `slang-test` - Add a notion of an "output mode" that specifies whether we output to console (the default), or invoke the apprpriate AppVeyor command to update test status - Add a notion of test categories, so that tests can be tagged with categories, and then we can invoke only those tets in a given category, or choose to *exclude* tests with specific categories - Allow the `OSProcessSpawner` to look up an executable by "path" (meaning a full path is expected) or by "name" (meaning it should be allowed to look in the current directory, `PATH` environment variable, etc.). This was important to make sure that I can run `appveyor` without having to know its absolute path. - AppVeyor configuration - Change badge to reflect new build account for organization (rather than a single-user account) - Remove attempt to set AppVeyor build version in a clever way, since it breaks links from GitHub to AppVeyor - Change order or configurations in the build matrix to front-load the Release build (which has the main tests) - Turn on `fast_finish` flag so we don't have to wait as long for failed builds - Turn on `parallel` builds - Set `verbosity: minimal` to avoid getting build spew about Xamarin stuff I'm not using - Add custom `test_script` to invoke `test.bat` - Sets the test category based on teh build configuration, so we don't run the full test suite on every input. - `test.bat` - Allow for `-platform` and `-configuration` arguments - Rewrute a platform of `Win32` over to `x86` to match how the output directories are named - Futz around with how the directories are being passed along to work around annoying `.bat` file quoting behavior (I still don't get how batch files work) - Tests - Mark a bunch of tests as `smoke` tests - Mark the relevant tests as `render` tests (these get filtered out for AppVeyor builds)
2017-06-12AppVeyor: Try to fix errors in `appveyor.yml`Tim Foley
- Also add link to build "badge" so that I can more easily watch build status.
2017-06-09AppVeyor: Try to clone submodules, and add badgeTim Foley
- Add an `install` step that tries to update our submodules (just `glslang` at the moment) - Try to add a "badge" image to the main `README.md`
2017-06-09Initial import of code.Tim Foley
2017-06-09Initial commitTim Foley