summaryrefslogtreecommitdiff
path: root/tests
AgeCommit message (Collapse)Author
2023-11-21Add SPIRV intrinsics for texture footprint query. (#3345)Yong He
* Add SPIRV intrinsics for texture footprint query. * Cleanup. --------- Co-authored-by: Yong He <yhe@nvidia.com>
2023-11-20Allow whole program compile when using direct spirv backend. (#3342)Yong He
Co-authored-by: Yong He <yhe@nvidia.com>
2023-11-17Add spirv intrinsic definition for `printf`. (#3340)Yong He
2023-11-16GLSL/SPIRV Fixes. (#3337)Yong He
2023-11-16Unify stdlib `Texture` types into one generic type. (#3327)Yong He
* Unify Texture types in stdlib into 1 generic type. * Fixes. * Fix. * Fixes. * Fix reflection. * Fix binding reflection. * Add gather intrinsics. * Fix gather intrinsics. * Fix texture type toText. * Fix intrinsic. * fix cuda intrinsic. * Fix project files. * cleanup. * Fix. * Fix. * Fix sampler feedback test. * Fix getDimension intrinsics. * Fix spirv sample image intrinsics. * Fix test. * Fix GLSL intrinsic. * Cleanup. --------- Co-authored-by: Yong He <yhe@nvidia.com>
2023-11-14Add GLSL Compatibility. (#3321)Yong He
* Parse glsl buffer blocks to GLSLInterfaceBlockDecl * Parse glsl local size layout declarations * Parse (and ignore) glsl version directives * spelling * Better l-value interpretation for glsl interface blocks * Better l-value interpretation for glsl interface blocks * Add compile flag for enabling glsl * Parse and ignore precision modifiers. * Automatically import `glsl` module for compatiblity. * Complete vector and matrix types for glsl * Remove generated file from repo * Bump .gitignore * do not mark out globals as params * Synthesize entrypoint layout from global inout vars. * update test result. * Allow HLSL semantic on global variables. * Fix. * Fix test. * Fix win32 compile error. * Add more builtin input/output and texture intrinsics. * Add struct/array constructor syntax. * Skip `#extension` lines. * overide operator * for matrix/vector multiplication. * Add `matrixCompMult`. * Parse modifiers in for loop init var declr. * Add more glsl intrinsics, add stage into to var layout. * Allow `int[3] x` syntax. * Fix array type syntax. --------- Co-authored-by: Ellie Hermaszewska <ellieh@nvidia.com> Co-authored-by: Yong He <yhe@nvidia.com>
2023-11-10 Cleanup builtin arithmetic interfaces. (#3317)Yong He
* wip: clean up IArithmetic * wip. * Cleanup builtin arithmetic interfaces. * Fix. * Fixes. * Fix. * Fix. * Fix. --------- Co-authored-by: Yong He <yhe@nvidia.com>
2023-11-07Add `IRThisTypeWitness` to stand in for witness lookups inside an interface ↵Yong He
definition. (#3316) Co-authored-by: Yong He <yhe@nvidia.com>
2023-11-06Fix ICE when lowering an associatedtype declref from an derived interface. ↵Yong He
(#3312) * Fix ICE when lowering an associatedtype declref from an derived interface. * Fixes. * Fix test. * Fix GLSL/SPIRV image subscript swizzle store regression. * Fix. --------- Co-authored-by: Yong He <yhe@nvidia.com>
2023-11-06Correctly pass values from the conditional block to the loop during ↵Ellie Hermaszewska
inversion (#3311) Co-authored-by: Yong He <yonghe@outlook.com>
2023-11-03Add SubgroupQuad intrinsics for glsl/spirv. (#3310)Yong He
* Add SubgroupQuad intrinsics for glsl/spirv. * Fix. * Add test for quad intrinsics. * fix. * improve diagnostics text. * Fix. * Fix. --------- Co-authored-by: Yong He <yhe@nvidia.com>
2023-11-03Add more diagnostics on invalid custom derivative use. (#3309)Yong He
* Add more diagnostics on invalid custom derivative use. * cleanup. --------- Co-authored-by: Yong He <yhe@nvidia.com>
2023-11-02Fix crash when writing to `no_diff` out parameter. (#3308)Yong He
* Fix crash when writing to `no_diff` out parameter. * Fix. --------- Co-authored-by: Yong He <yhe@nvidia.com>
2023-11-01Add mnemonic parsing for `intrinsic_type` modifier. (#3306)Yong He
Co-authored-by: Yong He <yhe@nvidia.com>
2023-11-01Parameter binding and gfx fixes. (#3302)Yong He
* Parameter binding and gfx fixes. * Add diagnostics on entry point parameters. * Fix. --------- Co-authored-by: Yong He <yhe@nvidia.com>
2023-10-26Disable frexp test on swiftshader. (#3294)Yong He
* Disable frexp test on swiftshader. * Fix windows release script. --------- Co-authored-by: Yong He <yhe@nvidia.com>
2023-10-26Make the exponent return value from frexp int (#3284)Ellie Hermaszewska
* Make the exponent return value from frexp int Fixes https://github.com/shader-slang/slang/issues/3282 * Update slang-llvm. --------- Co-authored-by: Yong He <yhe@nvidia.com>
2023-10-26Add more diagnostics around use of custom derivatives. (#3291)Yong He
Co-authored-by: Yong He <yhe@nvidia.com>
2023-10-26Fix generic specialization bug. (#3290)Yong He
* Fix generic specialization bug. * Update test. --------- Co-authored-by: Yong He <yhe@nvidia.com>
2023-10-25Fix single iteration loop detection logic. (#3287)Yong He
Co-authored-by: Yong He <yhe@nvidia.com>
2023-10-25Add `IArray`. (#3281)Yong He
* Initial support for generic interfaces. * Cleanup. * Add generic syntax for interfaces. * Add `IArray`. * Fix. * Fix. * Fix. --------- Co-authored-by: Yong He <yhe@nvidia.com>
2023-10-25Support generic interfaces. (#3278)Yong He
* Initial support for generic interfaces. * Cleanup. * Add generic syntax for interfaces. --------- Co-authored-by: Yong He <yhe@nvidia.com>
2023-10-20Fix issue with transposing `IRMakeVector` with non-singleton operands (#3280)Sai Praveen Bangaru
2023-10-17Type layouts for structured buffers with counters (#3269)Ellie Hermaszewska
* More tests for append structured buffer * Append and Consume structured buffer tests for DX12 * neaten * test wobble * Add counter layout information to append/consume structured buffers * add getRWStructuredBufferType * Correct definition of get size for append/consume structured buffers * tweak append structured buffer test * Allow initializing counter buffer in render test * vulkan test for consume structured buffer * Handle null counterVarLayout in getExplicitCounterBindingRangeOffset * remove dead code * Implement atomic counter increment/decrement for spirv * explicit spirv test * Add missing check on result * Hold on to counter resources --------- Co-authored-by: Yong He <yonghe@outlook.com>
2023-10-09Update slang-glslang binaries to v13.0.0.x-g (#3268)Yong He
* Update slang-glslang binaries to v13.0.0.x-g * Update tests. --------- Co-authored-by: Yong He <yhe@nvidia.com>
2023-10-06Small type system fixes. (#3265)Yong He
2023-10-05Various AD Fixes (#3263)Sai Praveen Bangaru
* Various fixes * Remove unused parameter * Update slang-ir-loop-unroll.cpp --------- Co-authored-by: Yong He <yonghe@outlook.com>
2023-10-02More direct-SPIRV fixes. (#3257)Yong He
* More direct-SPIRV fixes. * Fix array-reg-to-mem. --------- Co-authored-by: Yong He <yhe@nvidia.com>
2023-10-02Use const ref for mesh payload (#3254)Ellie Hermaszewska
* Use const ref for mesh payload * Test mesh payload hlsl output
2023-10-02Add SPIRV intrinsics for ShaderExecutionReordering and RW/Buffer. (#3252)Yong He
* Add SPIRV intrinsics for ShaderExecutionReordering. * Add intrinsics for `Buffer` and `RWBuffer`. * Various spirv fixes. * Marshal bool vector type. * Inline global constants + OpFOrdNotEqual->OpFUnordNotEqual. * Fix. --------- Co-authored-by: Yong He <yhe@nvidia.com>
2023-09-29Add `requirePrelude()` intrinsic function. (#3250)Yong He
* Add `requirePrelude()` intrinsic function. * Fix. --------- Co-authored-by: Yong He <yhe@nvidia.com>
2023-09-28[Direct SPIRV]: ray tracing pipeline intrinsics. (#3244)Yong He
* Use a dedicated inst opcode to retrieve ray payload locations. * [Direct SPIRV]: ray tracing pipeline intrinsics. * Fix. --------- Co-authored-by: Yong He <yhe@nvidia.com>
2023-09-28Support `constref` parameters passing. (#3249)Yong He
* Support `constref` parameters passing. * Fix. * Fix. * Add test and diagnostic on mix use of __constref and no_diff. * check for [constref] on differentiable member method. --------- Co-authored-by: Yong He <yhe@nvidia.com>
2023-09-27WIP Mesh shaders for SPIR-V (#3226)Ellie Hermaszewska
* SPIR-V impl for SetMeshOutputCounts and DispatchMesh * Unsightly fix for legalization ordering differences between GLSL and SPIR-V * spelling * Start a new block after terminating one in the OpEmitMeshTasksExt SPIR-V asm block * Emit mesh shader decorations in SPIR-V * Mesh and task shader stages for spir-v * Output explicit gl builtins for spir-v * Be more hygenic when SOAizing mesh outputs * Do not create builtin paramter block for spirv mesh outputs * Pass mesh payloads around by ref * comment * less expected failure * remove unused * Add spirv op * Correct type query for default flat modifier --------- Co-authored-by: Yong He <yonghe@outlook.com>
2023-09-27Various SPIRV fixes. (#3231)Yong He
* Various SPIRV fixes. - Geometry shader support (WIP). - Fix texture get dimension and load. - Fold global GetElement(MakeArray/MakeVector) insts. - Call spvopt to inline all functions. - Translate OpImageSubscript. - Emit struct member names and global variable names. - Fix lowering of OpBitNot -> OpNot, instead of OpBitReverse. * Fix test. * Fix geometry shader. * Fix geometry shader emit. * Add atomic Image access test. * Fix tests. * don't fail if spirv-opt fails. * Update comments. * Fix test. * Cleanups. * indentation --------- Co-authored-by: Yong He <yhe@nvidia.com> Co-authored-by: Ellie Hermaszewska <ellieh@nvidia.com>
2023-09-26Handle the case where the parent if-else region's after-block is ↵Sai Praveen Bangaru
unreachable. (#3241) Also added a test for this. Co-authored-by: Yong He <yonghe@outlook.com>
2023-09-25Add test for vector-element contiguity error (#3235)Sai Praveen Bangaru
2023-09-23More `slangpy` features + polishing (#3233)Sai Praveen Bangaru
* Update user-guide with new slangpy features * More polishing of new slangpy docs * Update a1-02-slangpy.md * Only require contiguity for vector element types * Added `loadOnce/storeOnce` and subscript operations * Added docs, `DiffTensorView.dims()` & `DiffTensorView.stride(uint)` * Add constructors, remove storeOnce/loadOnce test * Adjusted intrinsic definitions
2023-09-21Various slangpy fixes. (#3227)Yong He
* Make dynamic cast transparent through `IRAttributedType`. * Add [CUDAXxx] variant of attributes. * Support marshaling of vector types. * Wrap cuda kernels in `extern "C"` block. --------- Co-authored-by: Yong He <yhe@nvidia.com>
2023-09-21Emit loads for array resources correctly (#3214)Ellie Hermaszewska
* Emit loads for array resources correctly * Put arrays of UniformConstant resources in UniformConstant * less expected failure * This code was actually used --------- Co-authored-by: Yong He <yonghe@outlook.com>
2023-09-21move global initializers to entry point for spirv (#3225)Ellie Hermaszewska
* move global initializers to entry point for spirv * less expected failure --------- Co-authored-by: Yong He <yonghe@outlook.com>
2023-09-20Redirect destination-driven lowering logic to regular lowering for ↵Sai Praveen Bangaru
`SelectExpr` (#3219) * Redirect destination-driven lowering logic to regular lowering for select expr * Add test
2023-09-20Fix `atan2` stdlib derivative + add tests. (#3218)Sai Praveen Bangaru
* Fix atan2 stdlib derivative. Add tests for atan2 * Create dstdlib-atan2.slang.expected.txt * Update tests
2023-09-20Direct SPIRV: Rasterization pipeline tests. (#3216)Yong He
* Direct SPIRV: Rasterization pipeline tests. * Fixup. * Fix. --------- Co-authored-by: Yong He <yhe@nvidia.com>
2023-09-19Added `[AutoPyBindCUDA]` for automatic kernel binding + `[PyExport]` for ↵Sai Praveen Bangaru
exporting type information (#3209) * Initial: add a DiffTensor impl * Auto-binding and diff tensor implementations now work * Refactored diff-tensor implementation + added py-export for struct types * Cleanup * Update slang-ir-pytorch-cpp-binding.cpp * Updated test names * Update autodiff-data-flow.slang.expected * Add more versions of load/store & default generic args for DiffTensorView. * Add diagnostic for default generic arg and more tests * Add more `[AutoPyBind]` tests
2023-09-19Handle combined image and samplers in spirv (#3213)Ellie Hermaszewska
* Handle combined image and samplers in spirv * less expected failure --------- Co-authored-by: Yong He <yonghe@outlook.com>
2023-09-19Memoize types in spirv asm blocks (#3215)Ellie Hermaszewska
* Neaten emitInst * Memoize types in spirv asm blocks * less expected failure
2023-09-19Direct SPIRV ParameterBlock fix. (#3212)Yong He
Co-authored-by: Yong He <yhe@nvidia.com>
2023-09-18Use target-dependent pointer size in natural layout. (#3210)Yong He
Co-authored-by: Yong He <yhe@nvidia.com>
2023-09-18Fix loop inversion issue that caused ordinary blocks with multiple ↵Sai Praveen Bangaru
predecessors (#3211) * Add test case for while loop * Fix loop inversion issue that caused ordinary blocks with multiple predecessors The original version can leave the CFG in an invalid state with `e4` not being a break block or merge point, but having multiple predecessors. The updated version creates a separate jump block for each break instruction to avoid this issue. * Fixup tests