summaryrefslogtreecommitdiff
path: root/tests
AgeCommit message (Collapse)Author
2023-06-01Be lenient on same-size unsigend->signed conversion. (#2913)Yong He
* Be lenient on same-size unsigend->signed conversion. * Fix tests. * Use 250. * wip * Fix. * Fix tests. * Fix. --------- Co-authored-by: Yong He <yhe@nvidia.com>
2023-05-31Preserve type cast during AST constant folding. (#2912)Yong He
* Preserve type cast during AST constant folding. Fixes #2891. * Fix. * Fix truncating. * fix test. --------- Co-authored-by: Yong He <yhe@nvidia.com>
2023-05-31Fix div-by-zero error during sccp. (#2911)Yong He
* Diagnose on div-by-zero during sccp. * fix --------- Co-authored-by: Yong He <yhe@nvidia.com>
2023-05-31Confirm reflection output is valid JSON (#2910)jsmall-nvidia
* #include an absolute path didn't work - because paths were taken to always be relative. * Small fixes and improvements around reflection tool. * Make PrettyWriter printing a class. * Confirm reflection output is valid JSON. * Fix issue with diagnostic tests.
2023-05-30Fix type checking & loop value hoisting (#2907)Yong He
* Fix type checking crash in language server. * Fix loop var hoisting logic. Fixes #2903. * fix. --------- Co-authored-by: Yong He <yhe@nvidia.com>
2023-05-30Fix derivative signature bug in checkDerivativeAttribute. (#2905)Yong He
2023-05-30Disallow duplicate enumerator names in the same enum (#2904)Ellie Hermaszewska
Fixes https://github.com/shader-slang/slang/issues/2895
2023-05-26Fix bug in legalizeFuncType that leads to invalid IR. (#2902)Yong He
* Fix bug in legalizeFuncType that leads to invalid IR. * Diagnose on functions that never returns when differentiate it. --------- Co-authored-by: Yong He <yhe@nvidia.com>
2023-05-22Source embedding for output (#2889)jsmall-nvidia
* #include an absolute path didn't work - because paths were taken to always be relative. * Fix typo. * Add options for source embedding. * Small improvements. * Working with tests. * Add check for supported language types for embedding. * Try and remove assume warning. * Fix warning on MacOSX. * Some extra checking around Style::Text. * Some small improvements to docs/handling for headers extensions. * Fix md issue. * Small fixes around zeroing partial last element. * Another small fix.... * Small improvement in hex conversion. * Add an assert for unsignedness.
2023-05-14Add [Differentiable(n)] syntax to specify max order. (#2883)Yong He
2023-05-12Fusion pass for saturated_cooperation (#2874)Ellie Hermaszewska
* Fusion pass for saturated_cooperation * simplify assert * regenerate vs projects * missing test output files * rename shadowing variable to appease msvc * Fuse calls to sat_coop with differing inputs * formatting * add cpu test for hof simple * Make higher-order functions into compute comparison tests * comment tests * remove redundant test * Add test to confirm inlining in sat_coop fuse * Add clarifying comment for sat coop fusing * Add KnownBuiltin decoration * s/CanUseFuncSignature/TypesFullyResolved for higher order function checking * Add TODO * spelling * Correct detection of sat_coop calls * Disable tests which are unsupported on testing infra
2023-05-11MVP for higher order functions (#2849)Ellie Hermaszewska
* MVP for higher order functions * Add shader subgroup partitioned glsl intrinsics * Implement parsing and checking for tuple types Currently there is no way to do anything useful with them from the source language however * neaten * Correct precedence of function type parsing * neaten * higher order function tests * function types of any arity * Inference for higher order functions * Add second test for unsynchronized params * regenerate vs projects * dx11 -> dx12 for saturated cooperations tests * Disable saturated cooperation tests on vulkan They fail on release builds in CI, not essential for the higher order function work however * remove saturated-cooperation tests * Remove unnecessary assert and clarify control flow in AddDeclRefOverloadCandidates * Add Tuple type name mangling * Use functype keyword to introduce function types * Add more inference tests for hof --------- Co-authored-by: Yong He <yonghe@outlook.com>
2023-05-09Fix function side-effectness prop logic. (#2875)Yong He
2023-05-07Optimize logic around indexed temporary variables (#2873)Sai Praveen Bangaru
2023-05-06Don't store loop induction values + fix minor issue (#2872)Sai Praveen Bangaru
2023-05-05Fix checkpoint hints for higher-order autodiff (#2869)Sai Praveen Bangaru
2023-05-04Improvements around HLSLToVulkanLayout (#2867)jsmall-nvidia
* #include an absolute path didn't work - because paths were taken to always be relative. * Improve the HLSLToVulkanLayoutOptions interface. Add more diagnostics. Add diagnostics test. * Add check for global binding using file check. * Fix issues with some tests around making some diagnostics ids unique. * Small improvements with doc/handling of vk-<>-shift option setup. --------- Co-authored-by: Yong He <yonghe@outlook.com>
2023-05-03HLSL->Vulkan binding support (#2865)jsmall-nvidia
* WIP around VK shift binding. * Refactor around options parsing. * Remove needless passing around of sink. * Some more tidying around OptionsParser. * Handle vulkan shift parsing. * Fix small issue around vk binding and "all". * Fixing some small issues. Missing break. * Split out VulkanLayoutOptions * WIP binding taking into account HLSL->Vulkan options. * First attempt at making binding work with HLSLVulkanOptions. * VulkanLayoutOptions -> HLSLToVulkanLayoutOptions * WIP with HLSL-Vulkan binding. * Some more testing around vk-shift. * Improvements around global binding. More tests. * Improve test coverage. Improve checking for requirements around default space. * Update command line options. * Small fixes. * Small fix in options reporting. * Fix warning issue. * Some fixes for isDefault for HLSLToVulkanLayoutOptions. * Update hlsl-to-vulkan-shift output. The difference was due to default handling if shift isn't specified, and not being specified was not correctly tracked.
2023-05-02Various dxc/fxc compatibility fixes. (#2863)Yong He
* Various dxc/fxc compatibility fixes. * Cleanup. * Fix test cases. * Fix comments. --------- Co-authored-by: Yong He <yhe@nvidia.com>
2023-04-29CommandOptions (#2856)jsmall-nvidia
* WIP CommandOptions * Fix some output issues. * Simplify word wrapping. * Add file extensions. * Change how lookup takes place. Add appendSplit functions to StringUtil. Make Categories hold the index range of their options. * Small improvement. * Lookup with partial option names. * Associate user values. * Encoding flags in the name. * Refactor setting up of command options. * Use CommandOptions in slang-options. * Remove old help text. * Cache the CommandOptions on the Session. * Range checking. Fix bug in the Options handling. * Extra checks for validity. * Get categories directly. * Slight improvements over output. * Added NameValue types. * Fix typo. Remove some now unused diagnostics. Fix diagnostic in testing, as output has changed. * Add minimal usage message. * Remove platform executable extension from diagnostics output. * Some improvements around getting names from NameValue types. * Improve some option descriptions. * Small fixes.
2023-04-28SSA Register Allocation improvements. (#2857)Yong He
* SSA Register Allocation improvements. * Fix. * Rename `Use`->`UseOrPseudoUse`. --------- Co-authored-by: Yong He <yhe@nvidia.com>
2023-04-29Minor tidyings around d3d usage (#2854)Ellie Hermaszewska
* Remove unused COM annotation * Move SLANG_ENABLE_DXBC_SUPPORT to slang.h * Add DX11 simple compute test * Remove unnecessary COM parameter annotation * Run compute smoke test for DX12 * Ignore d3d11 tests when we do not have fxc * Do not try to find NVAPI on Linux * Add some logs to .gitignore * Minor cleanups in d3d12 headers * Fix tautological comparison (due to integer overflow) * Limit OutputDebugStringA to Windows
2023-04-28Fix handling of `[PreferRecompute]`. (#2855)Sai Praveen Bangaru
Co-authored-by: Yong He <yhe@nvidia.com> Co-authored-by: Yong He <yonghe@outlook.com>
2023-04-26Intellisense: show info on decl kind and differentiability. (#2847)Yong He
2023-04-26Autodiff support for dynamically dispatched generic method. (#2846)Yong He
* Autodiff support for dynamically dispatched generic method. * Fix. * Support dynamically dispatched generic type. --------- Co-authored-by: Yong He <yhe@nvidia.com>
2023-04-26For C-like targets, emit resource declarations before other globals (#2843)Sai Praveen Bangaru
* For C-like targets, emit resource declarations before other globals * Remove unused tests
2023-04-25Support recomputing phi params in bwd prop func. (#2841)Yong He
2023-04-24Change AD checkpointing policy to recompute more. (#2836)Yong He
Co-authored-by: Yong He <yhe@nvidia.com>
2023-04-24Fix issue with Obfuscated hash (#2834)jsmall-nvidia
* #include an absolute path didn't work - because paths were taken to always be relative. * Remove legacy container writing. Test using module without source map. * Change hashing for obfuscated source map such that takes into account different line endings.
2023-04-23Add support for `kIROp_MakeExistential` (#2832)Sai Praveen Bangaru
2023-04-21Add support for `kIROp_FloatCast` (#2824)Sai Praveen Bangaru
* Add support for `kIROp_FloatCast` * Update float-cast.slang * Added flag to d3d options
2023-04-21AD: Various fixes around dynamic dispatch (#2820)Sai Praveen Bangaru
* Add a test for the new diff material system * Various fixes for AD - inout primal context params converted to out params, - added attributed types to list of stored types - used differentiated primal func type instead of type of differentiated func to avoid tangling with user-code differential types. --------- Co-authored-by: Lifan Wu <lifanw@nvidia.com>
2023-04-21Add warning for returning without initializing out parameter (#2807)Ellie Hermaszewska
* Add warning for returning without initializing out parameter * Add unused prelude function to squash uninitialized out variable warnings
2023-04-20Improvements outputting containers (#2815)jsmall-nvidia
* #include an absolute path didn't work - because paths were taken to always be relative. * Moved JSON source map writing logic to JSONSourceMapUtil. * Use ArtifactHandler to read/write SourceMaps. Use ObjectCastableAdapter to hold SourceMap Only serialize SourceMap <-> JSON on demand. * Make some types swappable. * BoxValue impl. * Added asBoxValue. * Remove const get funcs. * Fix typo in asBoxValue. * Fix another typo in asBoxValue. * Slightly simplify conversion to blob of SourceMap. * WIP Api improvements around sourcemap/artifact/line-directive. * Small fix for asBoxValue * WIP outputting container with multiple artifacts. * Added ArtifactContailerUtil::filter to produce an artifact hierarchy that only contains "signficant" and "blobable" artifacts. * Make emitting IR disjoint to using a container. Added -emit-ir option. Simplfiy output. * Fix typo in options parsing. * Add a test that ouputs with an emit source map. * Enable emitting our SlangIR module if no targets are specified. * Fix issues constructing container. * Extra checks getting obfuscated source map from a translation unit. * Fix typo.
2023-04-17Round trip source map (#2810)jsmall-nvidia
* #include an absolute path didn't work - because paths were taken to always be relative. * Make output of obfuscation locs work in a slang-module. * Tidy up detection for writing serialized source locs. * Support for .zip references. Handling of obfuscated source maps read from containers. A test to check obfuscated source map working on a module. * When using obfuscation, always obfuscate locs instead of stripping them. We keep a source map, so we can still produce reasonable errors. * Write out source locs if debug information is enabled. * Check output without sourcemap. * Small fixes. * Small improvements around hash calculation for source map name. * Disable test that fails on x86 gcc linux for now. * Fix issues around obfuscated source map using lines rather than columns. Fix some issues around encoding/decoding. * Make column calculation of source locs take into account utf8/tabs. Don't special case obfuscated source map for lookup for source loc. * Support following multiple source maps. * Small fixes/improvements around SourceMap lookup.
2023-04-17WIP: "deprecated" attribute (#2698)Ellie Hermaszewska
* Implement deprecated attribute * Prevent duplicate deprecated diagnostic on non-overloaded functions * Use FileCheck for deprecation test * formatting
2023-04-14Bugfix: compiler will run forever to eliminate dead code (#2809)winmad
* Add a test case that the compile will run forever * Fix. * fix. --------- Co-authored-by: Lifan Wu <lifanw@nvidia.com> Co-authored-by: Yong He <yhe@nvidia.com>
2023-04-14Diagnose on using uninitialized `out` param. (#2803)Yong He
* Diagnose on using uninitialized `out` param. * Hack to allow `out Vertices<T>`. * Fix. --------- Co-authored-by: Yong He <yhe@nvidia.com>
2023-04-14Some small fixes with Windows/DX usage (#2797)Ellie Hermaszewska
* Correct case of windows.h includes * Use Slang::SharedLibrary to load directx dlls * s/max/std::max/ * Factor common OS code in calcHasApi * Add DXIL test for compute/simple * s/false/FALSE for calls to WinAPI functions * Factor common OS code in gfxGetAdapters * 2 missing headers d3d12sdklayers for ID3DDebug climits for UINT_MAX * Define out unused function on Linux * Only try to load Vulkan and CUDA on Windows or Linux * simplify D3DUtil::getDxgiModule * Remove WIN32_LEAN_AND_MEAN &co from source files Add a global define * Set WIN32_LEAN_AND_MEAN &friends in headers Restore previous state also * regenerate vs projects
2023-04-13Warn on float-to-double coercion for arguments. (#2802)Yong He
* Warn on float-to-double coercion for arguments. * Fix test. * Rename. * Fixup. --------- Co-authored-by: Yong He <yhe@nvidia.com>
2023-04-13Fix scalar swizzle write. (#2801)Yong He
Co-authored-by: Yong He <yhe@nvidia.com>
2023-04-13Add inherit interface test. (#2800)Yong He
Fixes #2573. Co-authored-by: Yong He <yhe@nvidia.com>
2023-04-13Matrix swizzle writes (#2713)Ellie Hermaszewska
* Add a bunch of builder emit wrappers for constant indices To avoid cluttering any calling code with int instruction construction * Matrix swizzle stores Closes https://github.com/shader-slang/slang/issues/2512 * Matrix swizzle store tests * Squash vs warnings * Select scalar for singular swizzles * Test singular swizzle materialization * Use IRIntegerValue over UInt for IR wrappers * Correct size of swizzle vector type * Remove variable shadowing
2023-04-12Combine lookupWitness lowering with specialization. (#2794)Yong He
2023-04-11Implement FileCheck tests for several test commands (#2747)Ellie Hermaszewska
* Add missing expected.txt for test * Diagnostics -> StdWriters in render test * Allow specifying several test prefixes to run `slang-test -- tests/foo tests/bar` * Squash warnings in some tests * Enable gfx debug layer in gfx test util Makes this issue present consistently: https://github.com/shader-slang/slang/issues/2766 * Allow DebugDevice to return interfaces instantiated by the debugged object * Check that we actaully have a shader cache for shader cache tests * Implement FileCheck tests for several test commands - SIMPLE, SIMPLE_EX - SIMPLE_LINE - REFLECTION, CPU_REFLECTION - CROSS_COMPILE It does not currently support the render tests or the COMPARE_COMPUTE commands It is invoked by adding `(filecheck=MY_FILECHECK_PREFIX)` to the test command, for example TEST:CROSS_COMPILE(filecheck=SPIRV): -target spirv-assembly * Move LLVM FileCheck interface to slang-llvm * Neaten slang-test tests * Refine handling of expected output in slang-test * Add example FileCheck buffer test * Add cuda-kernel-export tests Which were waiting on FileCheck * Bump vs project files * Make createLLVMFileCheck_V1 return a void* rather than specifically an IFileCheck * Remove use of CharSlice from filecheck interface * Bump slang-llvm version --------- Co-authored-by: jsmall-nvidia <jsmall@nvidia.com>
2023-04-10Cleaner impl of unary stdlib derivative functions. (#2785)Yong He
* Cleaner impl of unary stdlib derivative functions. * fixup * Fix. --------- Co-authored-by: Yong He <yhe@nvidia.com>
2023-04-07Diagnose on attempt to specialize with interface type. (#2780)Yong He
* Diagnose on attempt to specialize with interface type. Fixes ##1445. * Enable fixed test. * Fix test. * Fix. --------- Co-authored-by: Yong He <yhe@nvidia.com>
2023-04-07Fix crash on overloaded custom derivative function (#2782)Sai Praveen Bangaru
* Fix issue with resolving overloaded custom forward derivative methods. * Add test
2023-04-05Warn on dangling comparison operator. (#2779)Yong He
Fixes #1685 Co-authored-by: Yong He <yhe@nvidia.com>
2023-04-05Register `IDifferentiable` witnesses for the differential associated types ↵Sai Praveen Bangaru
of registered types. (#2777) * Create high-order-forward-diff-struct.slang * Add a small pass to register differentials for differentials of registered types * Remove type reg pass and apply logic in differentiable type loading instead * Update slang-ir-autodiff.cpp * Fix comments. --------- Co-authored-by: Yong He <yonghe@outlook.com>