https://github.com/shader-slang/slang

sort by:
Revision Author Date Message Commit Date
f6c0177 Update a1-02-slangpy.md 21 September 2023, 05:28:23 UTC
c04f5b4 Update user-guide with new slangpy features (#3222) 21 September 2023, 05:15:29 UTC
29c318b Move force inlining step to before `processAutodiffCalls` (and run in loop) (#3217) * Move auto-diff force inlining step to before `processAutodiffCalls` * Fix `replaceUsesWith` to handle existing inst defined after current use. * Fix. --------- Co-authored-by: Yong He <yhe@nvidia.com> 21 September 2023, 00:54:10 UTC
5b23870 Redirect destination-driven lowering logic to regular lowering for `SelectExpr` (#3219) * Redirect destination-driven lowering logic to regular lowering for select expr * Add test 20 September 2023, 20:47:56 UTC
25c79ad Fix `atan2` stdlib derivative + add tests. (#3218) * Fix atan2 stdlib derivative. Add tests for atan2 * Create dstdlib-atan2.slang.expected.txt * Update tests 20 September 2023, 19:22:51 UTC
73292d9 Direct SPIRV: Rasterization pipeline tests. (#3216) * Direct SPIRV: Rasterization pipeline tests. * Fixup. * Fix. --------- Co-authored-by: Yong He <yhe@nvidia.com> 20 September 2023, 10:30:27 UTC
739c3a7 Added `[AutoPyBindCUDA]` for automatic kernel binding + `[PyExport]` for 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 19 September 2023, 22:51:24 UTC
359fdc9 Handle combined image and samplers in spirv (#3213) * Handle combined image and samplers in spirv * less expected failure --------- Co-authored-by: Yong He <yonghe@outlook.com> 19 September 2023, 16:56:12 UTC
da30696 Memoize types in spirv asm blocks (#3215) * Neaten emitInst * Memoize types in spirv asm blocks * less expected failure 19 September 2023, 16:47:53 UTC
6542d47 Direct SPIRV ParameterBlock fix. (#3212) Co-authored-by: Yong He <yhe@nvidia.com> 19 September 2023, 14:21:17 UTC
d1efc69 Use target-dependent pointer size in natural layout. (#3210) Co-authored-by: Yong He <yhe@nvidia.com> 19 September 2023, 03:46:57 UTC
95fcf65 Fix loop inversion issue that caused ordinary blocks with multiple 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 19 September 2023, 03:45:44 UTC
e884b15 Fix highlighting of generic types without argument. (#3208) Co-authored-by: Yong He <yhe@nvidia.com> 18 September 2023, 18:46:53 UTC
8bcffcc Use direct spirv in hello-world example. (#3207) * Use direct spirv in hello-world example. * Use vulkan 1.1 * Use vulkan 1.2. * fix. * Fix test. --------- Co-authored-by: Yong He <yhe@nvidia.com> 18 September 2023, 13:12:30 UTC
95b470f Add missing RayQuery intrinsics. (#3206) Co-authored-by: Yong He <yhe@nvidia.com> 13 September 2023, 23:20:38 UTC
c12779b Fix build with --enable-xlib=false (#3203) * Fix build with --enable-xlib=false * Correct brace location --------- Co-authored-by: Yong He <yonghe@outlook.com> 13 September 2023, 16:56:53 UTC
894237e Add gfx d3d12 TextureCube UAV case (#3205) Co-authored-by: Yong He <yonghe@outlook.com> 13 September 2023, 16:56:00 UTC
d2466a6 Add all RayQuery SPIRV Intrinsics. (#3204) * Add all RayQuery SPIRV Intrinsics. * Fix * Fix. * fix. * Fix. * Fix. * Fix. --------- Co-authored-by: Yong He <yhe@nvidia.com> 13 September 2023, 16:48:32 UTC
c0a77c3 Direct SPIRV for RayTracing Inline. (#3201) * Direct SPIRV for RayTracing Inline. * Fix. * Cleanup. * Fix compile error. --------- Co-authored-by: Yong He <yhe@nvidia.com> 12 September 2023, 17:49:16 UTC
3f4081d Correctly identify the number of operands to image sampling operands in SPIR-V (#3200) * Correctly identify the number of operands to image sampling operands in SPIR-V * Neaten imageoperands warning test * Neaten imageoperands warning test 12 September 2023, 09:44:34 UTC
09854a4 Add Mesh and Task shader support to GFX (#3190) * Bump vulkan headers Also just use vulkan-headers as a submodule * Add drawMeshTasks to gfx graphics pipelines * Add DispatchMesh overload with no payload, with GLSL intrinsic * Require spirv 1.4 for mesh shaders * Add vulkan mesh shader feature discovery * Add mesh shader stage bits to vk-util * Add mesh and task shader support to render-test * Add mesh and task tests * Preserve "payload" specifier in task shaders * Add mesh shader pipeline support to gfx * Add TODO * Add numThreads attribute for amplification stage * Add payload to task shader test * Drop dependency on d3dx12 * Allow passing payloads from task to mesh shaders * regenerate vs projects * check DispatchMesh name correctly * Add mesh shader tests to failing tests * Detect wave-ops feature on vulkan * Add fuse-product to expected failures This fails because the global varaible `count` is not initialized * Add required extension to WaveMaskMatch SPIR-V impl * Remove meshShader member from pipeline desc * Identify mesh shader support on d3d12 12 September 2023, 03:13:11 UTC
87bb0b5 Add check for contiguous tensors (#3199) Otherwise, this can lead to undetected scenario where the strides are incorrect for non-scalar types (`float2`, `float3`, etc..) Users must call `tensor = tensor.contiguous()` on the inputs to avoid this error. 09 September 2023, 00:12:25 UTC
26a0b3e Fix attribute highlighting + language server crash. (#3198) * Fix attribute highlighting + language server crash. * Fix wave intrinsic. * Fix. * Fix. --------- Co-authored-by: Yong He <yhe@nvidia.com> 08 September 2023, 22:57:00 UTC
26a7cf7 Remove unsupported torch types + add bool type. (#3197) Co-authored-by: Yong He <yonghe@outlook.com> 08 September 2023, 21:03:14 UTC
e8a1dd1 Don't inline callees with custom derivative before autodiff. (#3196) Co-authored-by: Yong He <yhe@nvidia.com> 08 September 2023, 19:26:07 UTC
cb5dd19 Incur l-value conversion cost during overload resolution. (#3195) * Incur l-value conversion cost during overload resolution. * Fix compile error. * cleanup. --------- Co-authored-by: Yong He <yhe@nvidia.com> 08 September 2023, 06:01:53 UTC
a7fa215 Lower LValue implicit cast before autodiff. (#3194) Co-authored-by: Yong He <yhe@nvidia.com> 08 September 2023, 00:05:18 UTC
5d078d9 Fix compiler crashing when `[BackwardDerivativeOf(fn)]` refers to an unresolved `fn` (#3191) * Fix compiler crashing on unresolved decl-ref * Update autodiff-custom-diff-unresolved.slang --------- Co-authored-by: Yong He <yonghe@outlook.com> 08 September 2023, 00:04:41 UTC
818f075 Fix GLSL output for `gl_ClipDistance` input builtin. (#3193) * Fix GLSL output for `gl_ClipDistance` input builtin. * Fix. --------- Co-authored-by: Yong He <yhe@nvidia.com> 07 September 2023, 23:37:55 UTC
6804680 Fix erroneous diagnostic when checking a generic differentiable mutable method. (#3192) * Add a unit test * Fix. --------- Co-authored-by: Lifan Wu <lifanw@nvidia.com> Co-authored-by: Yong He <yhe@nvidia.com> 07 September 2023, 22:43:58 UTC
269282f Add -repro-fallback-directory (#3188) Co-authored-by: Yong He <yonghe@outlook.com> 07 September 2023, 14:20:26 UTC
135a5db Update prebuilt glslang binaries (#3189) * Update prebuilt glslang binaries * Add test for GL_EXT_texture_shadow_lod functions. * fix --------- Co-authored-by: Yong He <yhe@nvidia.com> 07 September 2023, 01:34:45 UTC
891a6cf Make a warning if a [mutating] method is called on an in param. (#3184) * Make a warning if a [mutating] method is passed as an in param. * Kick CI. --------- Co-authored-by: Yong He <yonghe@outlook.com> 06 September 2023, 23:32:06 UTC
20bd5e7 Global values are automatically assigned null derivative (#3186) 06 September 2023, 21:21:08 UTC
9333d23 Update c++ flags for glslang compilation. (#3187) Co-authored-by: Yong He <yhe@nvidia.com> 06 September 2023, 18:48:29 UTC
f276c5c Update glslang (#3185) Co-authored-by: Yong He <yhe@nvidia.com> 06 September 2023, 18:11:38 UTC
c754c0b Fix HLSL SER Intrinsics. (#3183) * Fix HLSL SER Intrinsics. * Fix GFX Vulkan shader creation bug. --------- Co-authored-by: Yong He <yhe@nvidia.com> 06 September 2023, 05:10:20 UTC
f80e01c Add support for getting external semaphore handles (#3181) * Add support for getting external semaphore handles * Fixes * Linux fix * Address reviewer comments --------- Co-authored-by: Yong He <yonghe@outlook.com> 05 September 2023, 23:07:29 UTC
2c2294d SPIR-V image operations (#3163) * Add __truncate and __sampledType for spirv_asm Allows some texture tests to start passing * add __isVector Currently unused * Add 1-vector legalization pass (WIP) * Add capabilities for image types * neaten instruction dumping * add 1-vector test * Add a couple of cases to vec1 legalization * Remove texture tests from expected failures * comment * regenerate vs projects * Remove redundant define form synchapi emulation * refactoring image methods * All sample functions refactored * Remove incorrect glsl intrinsics Partially addresses https://github.com/shader-slang/slang/issues/3174 * __subscript image ops via writing funcs * Extract texture struct writing from core.meta.slang * Abstract out cuda intrinsic * Remvoe erroneous call to opDecorateIndex * spirv asm IR utils * Correct position of loads for SPIR-V asm inst operands * Raise constructors to global scope during spir-v legalization * Correct snippet output * Implement most texture sampling ops for SPIR-V * Legalize 1-vectors for glsl too * Make SPIR-V inst operands non-hoistable * Better 1-vector legalization * Put textures in ptrs for spirv * insert missing break * Add vec1 legalization test * Add some missing pieces to slang-ir-insts * Greatly neaten vec1 legalization * a * Neaten vec1 legalization * Add image read and write intrinsics for spir-v * Squash warnings * regenerate vs projects * Drop redundant guards * Drop 5 tests from expected failure list * Inst numbering changes to cross compile tests * vec1 legalization tests only on vk * Correct location of asm op emit * Inline constant in spirv-asm * Correct signedness for lane in wave intrinsics * Extract element from float1 for cuda * squash warnings * Neaten spirv-emit * dedupe more capabilities * warnings * neaten assert * comments * comments 05 September 2023, 15:26:59 UTC
641f7bd Loop inversion: Handle case where loop can have additional inner breaks (#3178) * Loop inversion: Handle case where loop can have additional inner breaks - We now have another critical-edge-breaking block `e4` that is the target of inner breaks. - Both `e4` and `e1` (the break branch from the loop condition) branch to the loop's ne break block `b2`. - `b2` is a clone of the old break block `b`, and it simply branches to the old break block. This fixes an IR validation issue in `tests/autodiff/reverse-while-loop-2.slang` * Delete region-wave-masks.slang --------- Co-authored-by: Yong He <yonghe@outlook.com> 03 September 2023, 19:57:15 UTC
1d4b5b6 Proper lowering of functiosn that returns NonCopyable values. (#3179) * Proper lowering of functiosn that returns NonCopyable values. * Fix tests. * Fix clang errors. * Fix. * Fix clang error. --------- Co-authored-by: Yong He <yhe@nvidia.com> 03 September 2023, 19:56:31 UTC
355bb42 Fix github ci. (#3177) Co-authored-by: Yong He <yhe@nvidia.com> 01 September 2023, 18:11:58 UTC
d1f7e40 Fix CI related issues. (#3175) Co-authored-by: Yong He <yhe@nvidia.com> 01 September 2023, 09:12:49 UTC
9c11a87 Fix GLSL code gen around RayQuery and HitObject types. (#3173) * Update slang-llvm. * Fix. * fix. * Fix unit tests for multi-thread execution. * Fix tests. * fixes. * update tests. * Add gfx-smoke to linux expected failure list. * Try fix test. --------- Co-authored-by: Yong He <yhe@nvidia.com> 01 September 2023, 08:25:31 UTC
b7d1933 Inline all RayQuery/HitObject typed functions when targeting GLSL. (#3172) * Inline all RayQuery/HitObject typed functions when targeting GLSL. * update test. --------- Co-authored-by: Yong He <yhe@nvidia.com> 31 August 2023, 22:02:16 UTC
cc412af Add SPIRV atomics intrinsics and fix buffer layout lowering. (#3170) * Fix atomics intrinsics and buffer layout lowering. * Fix. * Add more test. * Fix. --------- Co-authored-by: Yong He <yhe@nvidia.com> 31 August 2023, 20:49:40 UTC
1996785 Bottleneck `TypeCastIntVal` creation through ASTBuilder (#3171) * Bottleneck type-cast-int-val creation through ASTBuilder * Update slang-ast-builder.h 31 August 2023, 18:30:35 UTC
0fee59a Remove redundant define form synchapi emulation (#3169) 31 August 2023, 09:41:28 UTC
293153e Fix typo in intrinsic for `WaveActiveMin()` (#3167) 31 August 2023, 00:59:15 UTC
4261185 Fix subtle corner-case with vars getting hoisted out of the loop creating unnecessary loop state (#3165) * Extend the unit tests for MxLayeredMaterial * Add breaking loop test * Fix subtle corner-case with vars getting hoisted out of the loop creating unnecessary loop state * remove whitespace changes * Create loop-init.slang.expected.txt * Add filecheck tests to ensure correct loop state * Update comment --------- Co-authored-by: winmad <winmad.wlf@gmail.com> Co-authored-by: Yong He <yonghe@outlook.com> 30 August 2023, 18:59:34 UTC
bb15f5b Fix memory barrier intrinsics. (#3166) * Fix memory barrier intrinsics. Makes them produce the same spirv code as dxc. * Fix. * filecheck barrier test for spirv backend. * Fix glsl intrinsic definition. * Fix intrinsics. * Fix intrinsics. * Fix. * Fix. --------- Co-authored-by: Yong He <yhe@nvidia.com> 30 August 2023, 18:45:47 UTC
019f702 Wave intrinsics. (#3164) * Wave intrinsics. * scalar intrinsics. --------- Co-authored-by: Yong He <yhe@nvidia.com> 29 August 2023, 23:43:25 UTC
f3ecf97 Correct parsing spirv with no rhs operands (#3161) * Correct parsing spirv with no rhs operands * Guard against eof 29 August 2023, 12:58:44 UTC
9d4e044 Add more wave intrinsics. (#3162) Co-authored-by: Yong He <yhe@nvidia.com> 29 August 2023, 12:55:49 UTC
b8fcb58 clock intrinsics for spirv (#3159) 29 August 2023, 07:31:31 UTC
1b9c3ea Avoid empty lines when not finding a render api (#3160) 29 August 2023, 07:31:05 UTC
0da1e69 Fix cast, needs to be PtrTypeBase rather than PtrType such that InOut/Out work. (#3158) Co-authored-by: Ellie Hermaszewska <ellieh@nvidia.com> Co-authored-by: Yong He <yonghe@outlook.com> 29 August 2023, 04:41:33 UTC
c787c4b Add `target_switch` and `intrinsic_asm` statement. (#3154) * Add `target_switch` and `__intrinsic_asm` statement. * Cleanup. * WaveGetActiveMask, WaveGetActiveMask, WaveCountBits. * WaveIsFirstLane. * More wave intrinsics. * wave intrinsics. * merge fix. * Fix. * Fix. * Update test. * update test. * Fix. --------- Co-authored-by: Yong He <yhe@nvidia.com> 29 August 2023, 04:24:49 UTC
af363c0 s/depreciated/deprecated/ (#3153) 29 August 2023, 03:26:27 UTC
508dc3a Allow bitwise or expressions and numeric literals in spirv_asm blocks (#3157) * Add -spirv-core-grammar option to load alternate spirv defs Also embed a version to use by default * Use perfect hash for spv op lookup * Neaten perfect hash embedding * Refactor spirv grammar lookup in preperation for more kinds of lookups * Load spirv capability list from spec * Add all SPIR-V enums to lookup table * regenerate vs projects * appease msvc * Use string slices for spir-v core grammar lookups * wiggle * comment * Add OpInfo for spv ops * regenerate vs projects * Embed op names * Add min/max operand counts and enum categories to spirv info * neaten * Operand kinds for spirv ops * Store and embed all information relating to spirv enums and qualifiers * Use SPIR-V spec to position instructions in spirv_asm blocks * Neaten spir-v info embedding * Neaten perfect hash embedding * Add assignment syntax to spirv_asm snippets * Better errors for spirv_asm parser * Add warning for too many operands in spirv asm * squash warnings * neaten * test wiggle * Lookup enums for spirv * Put OpCapability and OpExtension in the correct place for spirv_asm blocks * Tests for OpCapability and OpExtension * ci wiggle * Add expected failure * Allow raising immediate values to constant ids where necessary in spirv_asm blocks * Allow bitwise or expressions and numeric literals in spirv_asm blocks * test numeric literals * Fix memory issues. * fix. --------- Co-authored-by: Yong He <yonghe@outlook.com> 28 August 2023, 22:05:26 UTC
06f7ef3 Fix various issues with trivial loops (#3149) * Fix issue with trivial loop detection * Fix issue with unreachable blocks in break elimination Add logic to avoid eliminating loops with multi-level breaks. * Incorporate feedback - Use a boolean for multi-level break check - Use dominator trees for region check instead of exhaustive enumeration - Fix potential issue with enumerating parent break blocks. * fix 25 August 2023, 18:53:12 UTC
ef4c9f1 Initial version of spirv_asm block (#3151) * Initial version of spirv_asm block * Correct indentation of parent instruction dumping * neater dumping for spirv_asm instructions * Add $$ DollarDollar token * Allow passing addresses to spirv_asm blocks * spirv OpUndef * String literals in spirv asm * OpName for spirv_asm ids * Correct failure in lower spirv_asm * correct position for spirv_asm idents * comment correct * several more tests for spirv_asm blocks * Fill out some unimplemented functions for spirv_asm expressions --------- Co-authored-by: Yong He <yonghe@outlook.com> 25 August 2023, 17:42:34 UTC
036abc8 Support SPIRV Capability declaration on intrinsic functions. (#3150) * Spirv Capability lookup. * Fix. --------- Co-authored-by: Yong He <yhe@nvidia.com> 25 August 2023, 15:49:02 UTC
0470ea0 Misc. SPIRV Fixes, Part 2. (#3147) * Misc. SPIRV Fixes, Part 2. * Fix up. * Fix. * Add system smenatic values. * 16 bit int and floats, matrix/vector reshape, bool ops. * Fix. * Fix. * Allow push constant entry point params. * entrypoint params. * swizzleSet and swizzledStore. * packoffset. * string hash. * Fix. * Matrix arithmetics. --------- Co-authored-by: Yong He <yhe@nvidia.com> 24 August 2023, 23:32:33 UTC
c515bf9 Misc. SPIRV Fixes. (#3146) * Lower all ByteAddressBuffer uses for SPIRV. * Misc. SPIRV Fixes. --------- Co-authored-by: Yong He <yhe@nvidia.com> Co-authored-by: Ellie Hermaszewska <ellieh@nvidia.com> 23 August 2023, 13:58:50 UTC
6437c38 Lower all ByteAddressBuffer uses for SPIRV. (#3143) Co-authored-by: Yong He <yhe@nvidia.com> 23 August 2023, 12:49:33 UTC
cdd5e66 Retain int casts when unifying generic params (#3145) 23 August 2023, 09:29:25 UTC
036a2b7 Make `-fvk-u-shift` work on AppendStructuredBuffer. (#3144) Co-authored-by: Yong He <yhe@nvidia.com> 23 August 2023, 06:21:50 UTC
e2e10fb Add test case for RayQuery parameter. (#3140) * Add test case for RayQuery parameter. * Update expeccted failure. --------- Co-authored-by: Yong He <yhe@nvidia.com> 22 August 2023, 18:07:53 UTC
9d7c9b9 color spirv-val output (#3132) * s/invalid code/todo * comment debug disassembled spirv * more convenient spirv-val output * color spirv-val output 22 August 2023, 04:10:10 UTC
bd6dbaf Compile append and consume structured buffers to glsl. (#3142) * Compile append and consume structured buffers to glsl. * Fix. * Update CI config. --------- Co-authored-by: Yong He <yhe@nvidia.com> 22 August 2023, 00:07:34 UTC
f94b2f7 Allow loop counters to be used as constexpr arguments. (#3139) * Allow loop counters to be used as constexpr arguments. * Fix. * Fix. * Fix. * Fix. --------- Co-authored-by: Yong He <yhe@nvidia.com> 18 August 2023, 19:48:46 UTC
4de3d9b Bail out of infinite timeouts in our posix synchapi emulation (#3129) This can happen if vkd3d-proton triggered a VK_DEVICE_LOST 18 August 2023, 04:39:33 UTC
8a292cf SPIRV: Fix matrix layout tests. (#3137) * SPIRV: Fix matrix layout tests. * Remove spaces. * Disable debug output. * Fix. * Update expected-failure list. --------- Co-authored-by: Yong He <yhe@nvidia.com> 18 August 2023, 04:39:16 UTC
80c8f13 Be more careful about merge blocks during loop inversion (#3136) * fix block eater * Be more careful about merge blocks during loop inversion * Restrict loop inversion to loops without continue jumps * Remove multiple back-edges from loops for SPIR-V * Wiggle cross compile test output * Make loop-inversion more conservative * Allow loops on false side in cfg normalization * Do not set loop continue block during inversion * Add loop inversion test to failing test list for spirv * Simplify single use continue blocks in spirv legalization * wobble expected failure list --------- Co-authored-by: Yong He <yonghe@outlook.com> 17 August 2023, 21:57:57 UTC
a0a9c04 Update README.md 17 August 2023, 20:12:51 UTC
efe20a3 Update README.md 17 August 2023, 20:12:10 UTC
945409c Initial support for differentiating existential types (#3111) * Merge * WIP: Complete auto-diff logic for existential types * Revert "Add compiler option for generating representative hash" This reverts commit 13b09ef4621e73844c96d64d9c111a8ed0d45aae. * More fixes for fwd-mode AD on existential types * Add anyValueSize inference pass * Fix checking of `Differential.Differential==Differential` * In-progress: infer any-value-size for existential types * Existentials now work in forward-mode * Overhaul handling of existential AD types. Fwd-mode works, reverse-mode requires front-end changes * Reverse-mode now works on existentials * Cleanup * Remove diff rules for create existential object for now * Revert treat-as-differentiable changes * Fixes * More fixes * Cleanup * more cleanup * signed/unsigned * Revert "Cleanup" This reverts commit e4f7d71f07bb207736f90708961eeecd09a1b652. * Cleanup (again) * Remove public/export/keep-alive on null differential after AD pass * Minor fix * Update dictionary accessors * Keep export decoration * More fixes + Support for `kIROp_PackAnyValue` * Merge upstream * Update expected-failure.txt 17 August 2023, 18:45:13 UTC
216fc18 Create storage types of different layouts for SPIRV emit. (#3116) * Create storage types of different layouts for SPIRV emit. * Fix. * Fix. * Fix. * Update expected failure list. --------- Co-authored-by: Yong He <yhe@nvidia.com> 17 August 2023, 05:47:35 UTC
a0ee2bf Add loop inversion pass (#2899) * Generalize collectInductionValues * Support affine transformations of loop index as induction variables * Test for generalized induction value collection * Neaten inductive variable finding * Make types more specific * Add loop inversion pass * Test output changes after loop inversion * Store the type of implication success when finding inductive variables * Test that loop induction finding does not alway succeed * Support chains of additions and branches of additions in induction variable finding * Use c++17 for downstream compilers * Wiggle expected output for cross compile test after loop inversion * Add loop inversion test * Simplify IfElse instructions with a single trivial block * Invert loops with a user inserted break * Limit loop inversion to loops with a 4 instruction or less comparison block * regenerate vs projects 17 August 2023, 05:41:49 UTC
3e41d69 Run vk tests on spirv backend with expected failure list. (#3128) 17 August 2023, 02:01:39 UTC
eaeb7cf Correct check for empty target flags (#3115) Co-authored-by: Yong He <yonghe@outlook.com> 16 August 2023, 19:38:49 UTC
6bdd19d Simplify IfElse instructions with a single trivial block (#3114) 16 August 2023, 19:38:22 UTC
00e2bf1 squash warnings (#3113) * Remove unused variables * Silence gcc out of bounds warnings * Squash strict-aliasing warnings It is still a naughty thing to be casting to T like this though * Correct equality check when val is nullptr --------- Co-authored-by: Yong He <yonghe@outlook.com> 16 August 2023, 05:27:00 UTC
9ec30a1 Remove -use-glsl-matrix-layout-modifier from test (#3104) Co-authored-by: Yong He <yonghe@outlook.com> 16 August 2023, 05:26:09 UTC
c16f711 SPIRV: debug source and debug line. (#3109) 16 August 2023, 03:55:21 UTC
0c366bc Fix a bug that warning 39001 can't be fully disabled. (#3112) Co-authored-by: Yong He <yhe@nvidia.com> 16 August 2023, 03:30:01 UTC
45d9961 Use ankerl/unordered_dense as a hashmap implementation (#3036) * Correct namespace for getClockFrequency * missing const * Add missing assignment operator * Remove unused variables * Return correct modified variable * Use stable hash code for file system identity * terse static_assert * Structured binding for map iteration * Make (==) and getHashCode const on many structs * Add ConstIterator for LinkedList * Replace uses of ItemProxy::getValue with Dictionary::at * Extract list of loads from gradientsMap before updating it * Const correctness in type layout * Add unordered_dense hashmap submodule * Use wyhash or getHashCode in slang-hash.h * refactor slang-hash.h * Use ankerl/unordered_dense as a hashmap implementation Notable changes: - The subscript operator returns a reference directly to the value, rather than a lazy ItemProxy (pair of dict pointer and key) slang-profile time (95% over 10 runs): - Before: 6.3913906 (±0.0746) - After: 5.9276123 (±0.0964) * 64 bit hash for strings So they have the same hash as char buffers with the same contents * Narrowing warnings for gcc to match msvc * revert back to c++17 * Correct c++ version for msvc * Use path to unordered_dense which keeps tests happy * Do not assign to and read from map in same expression * Remove redundant map operations in primal-hoist * Split out stable hash functions into slang-stable-hash.h * 64 bit hash by default * regenerate vs projects * Correct return type from HashSetBase::getCount() * correct width for call to Dictionary::reserve * Use stable hash for obfuscated module ids * Signed int for reserve * clearer variable naming * Parameterize Dictionary on hash and equality functors * Allow heterogenous lookup for Dictionary * missing const * Use set over operator[] in some places * Remove unused function * s/at/getValue 16 August 2023, 00:57:47 UTC
e34b005 Fix ByteAddressBuffer array legalization. (#3106) Co-authored-by: Yong He <yhe@nvidia.com> 15 August 2023, 20:01:31 UTC
134f27d Disable strict aliasing for gcc (#3105) Co-authored-by: Yong He <yonghe@outlook.com> 15 August 2023, 20:01:11 UTC
3d75525 Fix bug with overload resolution under nested generics (#3107) * Add test for generic param inference bug for nested generics * Change description & simplify test * Add expected file * Check parent decl before unifying type parameters 15 August 2023, 19:24:18 UTC
00bd481 SPIR-V WIP (#3064) * Add type layout for structured buffer * Default to generating spirv directly * vk test for compute simple * Add spirv-dis as a downstream compiler * Emit Array types in SPIR-V * makevector for spirv * Dump whole spirv module on validation failure * register array types todo, use emitTypeInst * Neater formatting for unhandled inst printing * break out emitCompositeConstruct * Correct array type generation * neaten * Allow getElement for vector * Remove unused * Allow predicating target intrinsics on types * Consider functions with intrinsics to have definitions We need to specialize these if they are predicated on types * Correct array type generation * makeArray for spir-v * replace getElement with getElementPtr for spirv * Correct translation of field access for spirv * Push layouts to types for spirv * Spirv intrinsics * operator now makes a pointer * Add structured buffer of struct test * Preserve type layout in spirv structured buffer legalization * neaten * makeVectorFromScalar for SPIRV * placeholder for layouts on param groups * More type safe spirv op construction * Know that constants and types only go in one section * Remove emitTypeInst * Add todo for spirv sampling * Add links to spirv documentation on emit functions * OpTypeImage support for SPIR-V * Add simpler texture test for spirv * s/spirv_direct/spirv/g * Allow several string literals in target_intrinsic * Handle global params without a var layour for SPIR-V For example groupshared vars * uint spirv asm type * Add todo for isDefinition It is currently too broad * Some atomic op spirv intrinsics * Strip ConstantBuffer wrappers for spirv * Add todo for matrix annotations * Do not associate decorations insts with spirv counterparts * Correct entry point parameter generation * Spelling * Assert that fieldAddress is returning a pointer * Add error for existential type layout getting to spir-v emit * Add IRTupleTypeLayout Unused so far * Allow getElementPtr to work with vectors * Correct target name in test * Hide default spirv direct behind a premake option --default-spirv-direct=true * Do not insert space at start of intrinsic def * Correct asm rendering in tests * remove redundant option * Emit directly from direct test * Add source language options for spirv-dis * Add comments to spirv dis * Add dead debug print for before spirv module * Correct asm rendering in tests * s/spirv_direct/spirv/g * Only specialize intrinsic functions with predicates * regenerate vs projects * squash warnings * squash warnings * remove duplication * Silence warnings from msvc * squash warnings * Overload for zero sized array * More msvc warnings * warnings * Add spirv-tools to path for tests * Do not be specific about dxc version for diag test * Normalize line endings from spirv-dis * Correct filecheck matches * Temporarily disable two spirv tests Failing on CI, undebuggable hang :/ * Do not emit storage class more than once for spirv snippet * Do not pass spir-v to spirv-dis by stdin * Do not get spirv-dis output via stream, use file * normalize file endings in spirv-dis output 15 August 2023, 12:28:42 UTC
113a257 Add auto-diff support for `IRSwizzleStore` (#3102) * Add auto-diff support for `IRSwizzleStore` - Lower IRSwizzleStore to multiple stores during AD preprocess. - Fix typo in `transcribeNonDiffInst` * Remove unnecessary file & add more robust check for 'local' addresses * Fix. * Update slang-ir-autodiff-fwd.cpp --------- Co-authored-by: Yong He <yonghe@outlook.com> 15 August 2023, 04:47:43 UTC
b05b126 Update target-deps.json (#3103) * Update target-deps.json Update glslang binaries. * Fix. --------- Co-authored-by: Yong He <yhe@nvidia.com> 15 August 2023, 00:58:29 UTC
661d619 Support per field matrix layout (#3101) * Support per field matrix layout * Fix warnings. * Fix. * Fix tests. * Fix spiv gen. * Fix. * More test fixes. * Fix. * Run only GPU tests on self-hosted servers. * Remove -use-glsl-matrix-layout-modifier. * Fix. --------- Co-authored-by: Yong He <yhe@nvidia.com> 14 August 2023, 23:23:19 UTC
0403e05 Fix issue with nested loop unrolling (#3100) * Do not eliminate single-iter-loops that have inner loops using their break label. * Add test * Delete out-old.hlsl * Update slang-ir-autodiff-cfg-norm.cpp * Fix whitespace 14 August 2023, 07:23:32 UTC
e689d5e Make sure glsl source in spirv is included when compiling with -g3 (#3099) * Make sure glsl source in spirv is included when compiling with -g3. * Exclude vulkan tests on github linux CI. * Fix. --------- Co-authored-by: Yong He <yhe@nvidia.com> 11 August 2023, 20:11:15 UTC
3722316 Add scalar version of `distance`. (#3096) 11 August 2023, 00:30:05 UTC
7691128 Upgrade to glslang 12.3.1 (#3095) Co-authored-by: Yong He <yhe@nvidia.com> 10 August 2023, 23:44:06 UTC
756fdb4 Fix `Texture2D.Load()` with offset. (#3094) Co-authored-by: Yong He <yhe@nvidia.com> 10 August 2023, 21:59:05 UTC
back to top