4547125 | Yong He | 06 October 2023, 00:05:20 UTC | Add intellisense support for spirv_asm blocks. (#3264) Co-authored-by: Yong He <yhe@nvidia.com> | 06 October 2023, 00:05:20 UTC |
441e13e | Sai Praveen Bangaru | 05 October 2023, 16:52:49 UTC | Various AD Fixes (#3263) * Various fixes * Remove unused parameter * Update slang-ir-loop-unroll.cpp --------- Co-authored-by: Yong He <yonghe@outlook.com> | 05 October 2023, 16:52:49 UTC |
65751ce | Ellie Hermaszewska | 05 October 2023, 16:49:19 UTC | Check for extension support before enabling a feature (#3262) Co-authored-by: Yong He <yonghe@outlook.com> | 05 October 2023, 16:49:19 UTC |
8eb504f | Yong He | 05 October 2023, 16:45:54 UTC | Use designated compiler ID in SPIRV backend. (#3261) Co-authored-by: Yong He <yhe@nvidia.com> | 05 October 2023, 16:45:54 UTC |
9572c60 | Yong He | 04 October 2023, 19:16:35 UTC | Add `kIROp_BitOr` to known non-differentiable inst list. (#3259) Co-authored-by: Yong He <yhe@nvidia.com> | 04 October 2023, 19:16:35 UTC |
ac886fd | Yong He | 04 October 2023, 18:20:35 UTC | SPIRV compiler performance fixes. (#3258) * SPIRV compiler performance fixes. * Cleanup. * update project files * Cleanup debug code. * Make redundancy removal non-recursive. --------- Co-authored-by: Yong He <yhe@nvidia.com> | 04 October 2023, 18:20:35 UTC |
d87493a | Yong He | 02 October 2023, 22:39:34 UTC | More direct-SPIRV fixes. (#3257) * More direct-SPIRV fixes. * Fix array-reg-to-mem. --------- Co-authored-by: Yong He <yhe@nvidia.com> | 02 October 2023, 22:39:34 UTC |
cea230b | Ellie Hermaszewska | 02 October 2023, 16:05:39 UTC | Use const ref for mesh payload (#3254) * Use const ref for mesh payload * Test mesh payload hlsl output | 02 October 2023, 16:05:39 UTC |
ccf2611 | Yong He | 02 October 2023, 10:33:58 UTC | Add SPIRV intrinsics for ShaderExecutionReordering and RW/Buffer. (#3252) * 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> | 02 October 2023, 10:33:58 UTC |
6138de5 | jsmall-nvidia | 29 September 2023, 23:10:22 UTC | Fix for problem with OrderedHashSet causing crash (#3251) * Fix for problem with OrderedHashSet causing crashes during running tests on on g++ 7.3 * Fix typo | 29 September 2023, 23:10:22 UTC |
f20f4e2 | Yong He | 29 September 2023, 19:01:36 UTC | Add `requirePrelude()` intrinsic function. (#3250) * Add `requirePrelude()` intrinsic function. * Fix. --------- Co-authored-by: Yong He <yhe@nvidia.com> | 29 September 2023, 19:01:36 UTC |
af61737 | Yong He | 29 September 2023, 01:08:06 UTC | [Direct SPIRV]: ray tracing pipeline intrinsics. (#3244) * 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> | 29 September 2023, 01:08:06 UTC |
b7d318f | Yong He | 29 September 2023, 01:07:40 UTC | Support `constref` parameters passing. (#3249) * 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> | 29 September 2023, 01:07:40 UTC |
e723894 | Sai Praveen Bangaru | 28 September 2023, 06:19:54 UTC | Fix `TensorView.store()` definition (#3248) | 28 September 2023, 06:19:54 UTC |
e698b4a | Sai Praveen Bangaru | 28 September 2023, 05:45:09 UTC | Remove `[NoSideEffect]` from `DiffTensorView.store()` (#3247) Co-authored-by: Yong He <yonghe@outlook.com> | 28 September 2023, 05:45:09 UTC |
e710fac | Yong He | 28 September 2023, 05:39:22 UTC | Fix a bug in `canInstHaveSideEffectAtAddress`. (#3246) Co-authored-by: Yong He <yhe@nvidia.com> | 28 September 2023, 05:39:22 UTC |
12e8ce5 | Yong He | 28 September 2023, 05:35:58 UTC | Fix regression on no_diff type transcription. (#3245) Co-authored-by: Yong He <yhe@nvidia.com> | 28 September 2023, 05:35:58 UTC |
9833ff9 | Yong He | 27 September 2023, 18:46:29 UTC | Fix `isMovableInst`. (#3243) Co-authored-by: Yong He <yhe@nvidia.com> | 27 September 2023, 18:46:29 UTC |
8326248 | Ellie Hermaszewska | 27 September 2023, 18:46:03 UTC | WIP Mesh shaders for SPIR-V (#3226) * 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> | 27 September 2023, 18:46:03 UTC |
771b3ef | Yong He | 27 September 2023, 18:36:31 UTC | Avoid make copies of __ref parameters when doing autodiff. (#3242) Co-authored-by: Yong He <yhe@nvidia.com> | 27 September 2023, 18:36:31 UTC |
ebe8dde | Yong He | 27 September 2023, 06:56:06 UTC | Various SPIRV fixes. (#3231) * 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> | 27 September 2023, 06:56:06 UTC |
c5c8cfb | Sai Praveen Bangaru | 27 September 2023, 00:50:13 UTC | Handle the case where the parent if-else region's after-block is unreachable. (#3241) Also added a test for this. Co-authored-by: Yong He <yonghe@outlook.com> | 27 September 2023, 00:50:13 UTC |
a18dca2 | jsmall-nvidia | 26 September 2023, 19:40:22 UTC | Fix for epoch/ASTBuilder* nullptr issue (#3240) * Fix issue with failing tests tests/serialization/serialized-module-test.slang tests/serialization/extern/extern-test.slang * Fix issue with session destruction order on Session. * Improve comment. | 26 September 2023, 19:40:22 UTC |
6c99194 | Sai Praveen Bangaru | 25 September 2023, 22:30:34 UTC | Add test for vector-element contiguity error (#3235) | 25 September 2023, 22:30:34 UTC |
56c4a8c | Sai Praveen Bangaru | 25 September 2023, 22:29:35 UTC | Update a1-02-slangpy.md (#3237) | 25 September 2023, 22:29:35 UTC |
2e76151 | jsmall-nvidia | 25 September 2023, 15:52:18 UTC | Fix for threading issues around global session & epoch ids. (#3232) * Fix for threading issues around global session & epoch ids. * Make m_epochId atomic for thread visibility. | 25 September 2023, 15:52:18 UTC |
ab04bd0 | Sai Praveen Bangaru | 23 September 2023, 16:11:45 UTC | More `slangpy` features + polishing (#3233) * 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 | 23 September 2023, 16:11:45 UTC |
263f807 | Yong He | 21 September 2023, 23:03:16 UTC | Update a1-02-slangpy.md (#3228) | 21 September 2023, 23:03:16 UTC |
e31a967 | Yong He | 21 September 2023, 23:02:04 UTC | Revert inlining change in #3217. (#3229) Co-authored-by: Yong He <yhe@nvidia.com> | 21 September 2023, 23:02:04 UTC |
5b2eb06 | Yong He | 21 September 2023, 21:00:48 UTC | Various slangpy fixes. (#3227) * 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> | 21 September 2023, 21:00:48 UTC |
af8ce68 | Yong He | 21 September 2023, 17:39:19 UTC | Misc SPIRV fixes. (#3220) Co-authored-by: Yong He <yhe@nvidia.com> | 21 September 2023, 17:39:19 UTC |
85d40ed | Ellie Hermaszewska | 21 September 2023, 16:45:53 UTC | Emit loads for array resources correctly (#3214) * 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> | 21 September 2023, 16:45:53 UTC |
335ca78 | Ellie Hermaszewska | 21 September 2023, 16:43:15 UTC | move global initializers to entry point for spirv (#3225) * move global initializers to entry point for spirv * less expected failure --------- Co-authored-by: Yong He <yonghe@outlook.com> | 21 September 2023, 16:43:15 UTC |
4810dbd | Ellie Hermaszewska | 21 September 2023, 16:42:17 UTC | Do not move movable insts in fuse-satcoop (#3221) * Do not move movable insts in fuse-satcoop * Add case for IRCall in isMovableInst --------- Co-authored-by: Yong He <yonghe@outlook.com> | 21 September 2023, 16:42:17 UTC |
65e1a5b | Ellie Hermaszewska | 21 September 2023, 15:31:03 UTC | fix warnings (#3224) * Remove unused variable * Remove unused variable * Remove unused if bindings | 21 September 2023, 15:31:03 UTC |
c31f456 | Yong He | 21 September 2023, 05:28:51 UTC | Update a1-02-slangpy.md (#3223) | 21 September 2023, 05:28:51 UTC |
c04f5b4 | Sai Praveen Bangaru | 21 September 2023, 05:15:29 UTC | Update user-guide with new slangpy features (#3222) | 21 September 2023, 05:15:29 UTC |
29c318b | Sai Praveen Bangaru | 21 September 2023, 00:54:10 UTC | 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 | Sai Praveen Bangaru | 20 September 2023, 20:47:56 UTC | 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 | Sai Praveen Bangaru | 20 September 2023, 19:22:51 UTC | 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 | Yong He | 20 September 2023, 10:30:27 UTC | 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 | Sai Praveen Bangaru | 19 September 2023, 22:51:24 UTC | 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 | Ellie Hermaszewska | 19 September 2023, 16:56:12 UTC | 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 | Ellie Hermaszewska | 19 September 2023, 16:47:53 UTC | 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 | Yong He | 19 September 2023, 14:21:17 UTC | Direct SPIRV ParameterBlock fix. (#3212) Co-authored-by: Yong He <yhe@nvidia.com> | 19 September 2023, 14:21:17 UTC |
d1efc69 | Yong He | 19 September 2023, 03:46:57 UTC | 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 | Sai Praveen Bangaru | 19 September 2023, 03:45:44 UTC | 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 | Yong He | 18 September 2023, 18:46:53 UTC | Fix highlighting of generic types without argument. (#3208) Co-authored-by: Yong He <yhe@nvidia.com> | 18 September 2023, 18:46:53 UTC |
8bcffcc | Yong He | 18 September 2023, 13:12:30 UTC | 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 | Yong He | 13 September 2023, 23:20:38 UTC | Add missing RayQuery intrinsics. (#3206) Co-authored-by: Yong He <yhe@nvidia.com> | 13 September 2023, 23:20:38 UTC |
c12779b | Ellie Hermaszewska | 13 September 2023, 16:56:53 UTC | 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 | SirKero | 13 September 2023, 16:56:00 UTC | Add gfx d3d12 TextureCube UAV case (#3205) Co-authored-by: Yong He <yonghe@outlook.com> | 13 September 2023, 16:56:00 UTC |
d2466a6 | Yong He | 13 September 2023, 16:48:32 UTC | 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 | Yong He | 12 September 2023, 17:49:16 UTC | 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 | Ellie Hermaszewska | 12 September 2023, 09:44:34 UTC | 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 | Ellie Hermaszewska | 12 September 2023, 03:13:11 UTC | 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 | Sai Praveen Bangaru | 09 September 2023, 00:12:25 UTC | 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 | Yong He | 08 September 2023, 22:57:00 UTC | 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 | Sai Praveen Bangaru | 08 September 2023, 21:03:14 UTC | Remove unsupported torch types + add bool type. (#3197) Co-authored-by: Yong He <yonghe@outlook.com> | 08 September 2023, 21:03:14 UTC |
e8a1dd1 | Yong He | 08 September 2023, 19:26:07 UTC | 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 | Yong He | 08 September 2023, 06:01:53 UTC | 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 | Yong He | 08 September 2023, 00:05:18 UTC | Lower LValue implicit cast before autodiff. (#3194) Co-authored-by: Yong He <yhe@nvidia.com> | 08 September 2023, 00:05:18 UTC |
5d078d9 | Sai Praveen Bangaru | 08 September 2023, 00:04:41 UTC | 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 | Yong He | 07 September 2023, 23:37:55 UTC | 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 | winmad | 07 September 2023, 22:43:58 UTC | 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 | jsmall-nvidia | 07 September 2023, 14:20:26 UTC | Add -repro-fallback-directory (#3188) Co-authored-by: Yong He <yonghe@outlook.com> | 07 September 2023, 14:20:26 UTC |
135a5db | Yong He | 07 September 2023, 01:34:45 UTC | 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 | jsmall-nvidia | 06 September 2023, 23:32:06 UTC | 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 | Sai Praveen Bangaru | 06 September 2023, 21:21:08 UTC | Global values are automatically assigned null derivative (#3186) | 06 September 2023, 21:21:08 UTC |
9333d23 | Yong He | 06 September 2023, 18:48:29 UTC | Update c++ flags for glslang compilation. (#3187) Co-authored-by: Yong He <yhe@nvidia.com> | 06 September 2023, 18:48:29 UTC |
f276c5c | Yong He | 06 September 2023, 18:11:38 UTC | Update glslang (#3185) Co-authored-by: Yong He <yhe@nvidia.com> | 06 September 2023, 18:11:38 UTC |
c754c0b | Yong He | 06 September 2023, 05:10:20 UTC | 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 | skallweitNV | 05 September 2023, 23:07:29 UTC | 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 | Ellie Hermaszewska | 05 September 2023, 15:26:59 UTC | 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 | Sai Praveen Bangaru | 03 September 2023, 19:57:15 UTC | 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 | Yong He | 03 September 2023, 19:56:31 UTC | 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 | Yong He | 01 September 2023, 18:11:58 UTC | Fix github ci. (#3177) Co-authored-by: Yong He <yhe@nvidia.com> | 01 September 2023, 18:11:58 UTC |
d1f7e40 | Yong He | 01 September 2023, 09:12:49 UTC | Fix CI related issues. (#3175) Co-authored-by: Yong He <yhe@nvidia.com> | 01 September 2023, 09:12:49 UTC |
9c11a87 | Yong He | 01 September 2023, 08:25:31 UTC | 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 | Yong He | 31 August 2023, 22:02:16 UTC | 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 | Yong He | 31 August 2023, 20:49:40 UTC | 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 | Sai Praveen Bangaru | 31 August 2023, 18:30:35 UTC | 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 | Ellie Hermaszewska | 31 August 2023, 09:41:28 UTC | Remove redundant define form synchapi emulation (#3169) | 31 August 2023, 09:41:28 UTC |
293153e | Sai Praveen Bangaru | 31 August 2023, 00:59:15 UTC | Fix typo in intrinsic for `WaveActiveMin()` (#3167) | 31 August 2023, 00:59:15 UTC |
4261185 | Sai Praveen Bangaru | 30 August 2023, 18:59:34 UTC | 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 | Yong He | 30 August 2023, 18:45:47 UTC | 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 | Yong He | 29 August 2023, 23:43:25 UTC | Wave intrinsics. (#3164) * Wave intrinsics. * scalar intrinsics. --------- Co-authored-by: Yong He <yhe@nvidia.com> | 29 August 2023, 23:43:25 UTC |
f3ecf97 | Ellie Hermaszewska | 29 August 2023, 12:58:44 UTC | 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 | Yong He | 29 August 2023, 12:55:49 UTC | Add more wave intrinsics. (#3162) Co-authored-by: Yong He <yhe@nvidia.com> | 29 August 2023, 12:55:49 UTC |
b8fcb58 | Ellie Hermaszewska | 29 August 2023, 07:31:31 UTC | clock intrinsics for spirv (#3159) | 29 August 2023, 07:31:31 UTC |
1b9c3ea | Ellie Hermaszewska | 29 August 2023, 07:31:05 UTC | Avoid empty lines when not finding a render api (#3160) | 29 August 2023, 07:31:05 UTC |
0da1e69 | jsmall-nvidia | 29 August 2023, 04:41:33 UTC | 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 | Yong He | 29 August 2023, 04:24:49 UTC | 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 | Ellie Hermaszewska | 29 August 2023, 03:26:27 UTC | s/depreciated/deprecated/ (#3153) | 29 August 2023, 03:26:27 UTC |
508dc3a | Ellie Hermaszewska | 28 August 2023, 22:05:26 UTC | 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 | Sai Praveen Bangaru | 25 August 2023, 18:53:12 UTC | 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 | Ellie Hermaszewska | 25 August 2023, 17:42:34 UTC | 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 | Yong He | 25 August 2023, 15:49:02 UTC | 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 | Yong He | 24 August 2023, 23:32:33 UTC | 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 | Yong He | 23 August 2023, 13:58:50 UTC | 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 |