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

sort by:
Revision Author Date Message Commit Date
cc22270 Add more diagnostics on invalid custom derivative use. (#3309) * Add more diagnostics on invalid custom derivative use. * cleanup. --------- Co-authored-by: Yong He <yhe@nvidia.com> 03 November 2023, 19:49:23 UTC
911a440 Fix crash when writing to `no_diff` out parameter. (#3308) * Fix crash when writing to `no_diff` out parameter. * Fix. --------- Co-authored-by: Yong He <yhe@nvidia.com> 02 November 2023, 21:54:22 UTC
72e95f2 Several spirv intrinsics and small fix (#3307) * spirv intrinsic for faceforward * spirv intrinsic for fwidth * spirv intrinsic for modf * spirv intrinsic for nonuniformresourceindex * spirv intrinsic for transpose * Make sure address space matches for OpAccessChain * Correct placement for OpDecorate instructions in spirv asm blocks 02 November 2023, 20:00:16 UTC
e712ebd Add mnemonic parsing for `intrinsic_type` modifier. (#3306) Co-authored-by: Yong He <yhe@nvidia.com> 02 November 2023, 05:49:30 UTC
6aca381 Parameter binding and gfx fixes. (#3302) * Parameter binding and gfx fixes. * Add diagnostics on entry point parameters. * Fix. --------- Co-authored-by: Yong He <yhe@nvidia.com> 02 November 2023, 04:42:12 UTC
532c432 Add OpDot for spirv (#3304) Co-authored-by: Yong He <yonghe@outlook.com> 02 November 2023, 03:22:14 UTC
12e69ff add support for dx 6.7 profiles (#3299) 01 November 2023, 16:48:44 UTC
1ac6638 Disable frexp test on swiftshader. (#3294) * Disable frexp test on swiftshader. * Fix windows release script. --------- Co-authored-by: Yong He <yhe@nvidia.com> 26 October 2023, 23:19:02 UTC
aed3bd6 Remove use of `::set-output` in github actions. (#3293) Co-authored-by: Yong He <yhe@nvidia.com> 26 October 2023, 22:36:25 UTC
02e6c6b Update to Bearer/tap/gon for macos notarization. (#3292) Co-authored-by: Yong He <yhe@nvidia.com> 26 October 2023, 22:04:25 UTC
41e17d3 Make the exponent return value from frexp int (#3284) * 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> 26 October 2023, 22:03:34 UTC
bee74b1 Add more diagnostics around use of custom derivatives. (#3291) Co-authored-by: Yong He <yhe@nvidia.com> 26 October 2023, 21:01:26 UTC
927d176 Fix generic specialization bug. (#3290) * Fix generic specialization bug. * Update test. --------- Co-authored-by: Yong He <yhe@nvidia.com> 26 October 2023, 17:45:08 UTC
4572976 Update autodiff-texture example with one that auto-diffs a reference impl. (#3288) 25 October 2023, 20:31:49 UTC
1a8216b Fix warnings for gcc 12.3 (#3286) * Silence a few gcc out of bounds warnings * Search upwards from executable for prelude directory instead of assuming depth * comment wording * Check return values of read and write * Correct path to vulkan headers in gfx * Correct diagnostic on missing file in slang-embed * Do not use absolute path to libraries in test-context.cpp --------- Co-authored-by: Yong He <yonghe@outlook.com> 25 October 2023, 19:22:01 UTC
e04abb5 Fix single iteration loop detection logic. (#3287) Co-authored-by: Yong He <yhe@nvidia.com> 25 October 2023, 19:21:35 UTC
0175346 Use GLSL Scalar layout for vulkan device. (#3285) Co-authored-by: Yong He <yhe@nvidia.com> 25 October 2023, 14:50:31 UTC
5dc3c2f Add `IArray`. (#3281) * Initial support for generic interfaces. * Cleanup. * Add generic syntax for interfaces. * Add `IArray`. * Fix. * Fix. * Fix. --------- Co-authored-by: Yong He <yhe@nvidia.com> 25 October 2023, 14:50:14 UTC
f8bf75c Support generic interfaces. (#3278) * Initial support for generic interfaces. * Cleanup. * Add generic syntax for interfaces. --------- Co-authored-by: Yong He <yhe@nvidia.com> 25 October 2023, 14:45:23 UTC
d8f4c94 Fix issue with transposing `IRMakeVector` with non-singleton operands (#3280) 21 October 2023, 01:21:30 UTC
d001a7b Add a tool to dump/replay compute pipeline creation from gfx. (#3275) * Add a tool to dump/replay compute pipeline creation from gfx. * Fix x86 build. --------- Co-authored-by: Yong He <yhe@nvidia.com> 19 October 2023, 10:49:42 UTC
7826afc Type layouts for structured buffers with counters (#3269) * 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> 17 October 2023, 22:26:00 UTC
0a3683d Run Falcor Tests (#3270) * Run Falcor Tests * Update test config. * update config. * fix. * fix * fix. * skip slow test. * Fix ci config. --------- Co-authored-by: Yong He <yhe@nvidia.com> 16 October 2023, 23:17:56 UTC
d4b8edf Update a1-04-interop.md 13 October 2023, 20:49:02 UTC
edf90f5 Update a1-04-interop.md (#3277) 13 October 2023, 20:42:17 UTC
078cf8e Add documentation on target intrinsics. (#3276) Co-authored-by: Yong He <yhe@nvidia.com> 13 October 2023, 20:30:57 UTC
c701013 Add HitObject.GetWorldToObject. (#3273) * Add HitObject.GetWorldToObject. * fix. --------- Co-authored-by: Yong He <yhe@nvidia.com> 12 October 2023, 19:20:34 UTC
459572c Small warnings and bugs (#3272) * Correctly use removeTrivialSingleIterationLoops during simplification * remove unused variables * Fix invalid fallthrough --------- Co-authored-by: Yong He <yonghe@outlook.com> 11 October 2023, 17:53:00 UTC
61132c7 Report spirv-opt time. (#3271) * Report spirv-opt time. * Removing timing logic in `loadModule`. --------- Co-authored-by: Yong He <yhe@nvidia.com> 11 October 2023, 05:07:56 UTC
cd9a8b2 Update README.md 11 October 2023, 00:35:26 UTC
fb91955 Update slang-glslang binaries to v13.0.0.x-g (#3268) * Update slang-glslang binaries to v13.0.0.x-g * Update tests. --------- Co-authored-by: Yong He <yhe@nvidia.com> 09 October 2023, 23:53:51 UTC
a83a8b6 Update prebuilt glslang binaries. (#3267) * Update prebuilt glslang binaries. * Update spirv-disassembling logic in slang-glslang. --------- Co-authored-by: Yong He <yhe@nvidia.com> 09 October 2023, 22:07:26 UTC
67e186f Run curated spirv-opt passes through slang-glslang. (#3266) * Run curated spirv-opt passes through slang-glslang. * Cleanup. * Replace spirv-dis downstream compiler with glslang. * delete slang-spirv-opt.cpp. --------- Co-authored-by: Yong He <yhe@nvidia.com> 09 October 2023, 21:03:43 UTC
17c7163 Small type system fixes. (#3265) 06 October 2023, 21:03:18 UTC
4547125 Add intellisense support for spirv_asm blocks. (#3264) Co-authored-by: Yong He <yhe@nvidia.com> 06 October 2023, 00:05:20 UTC
441e13e 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 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 Use designated compiler ID in SPIRV backend. (#3261) Co-authored-by: Yong He <yhe@nvidia.com> 05 October 2023, 16:45:54 UTC
9572c60 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 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 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 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 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 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 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 [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 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 Fix `TensorView.store()` definition (#3248) 28 September 2023, 06:19:54 UTC
e698b4a Remove `[NoSideEffect]` from `DiffTensorView.store()` (#3247) Co-authored-by: Yong He <yonghe@outlook.com> 28 September 2023, 05:45:09 UTC
e710fac Fix a bug in `canInstHaveSideEffectAtAddress`. (#3246) Co-authored-by: Yong He <yhe@nvidia.com> 28 September 2023, 05:39:22 UTC
12e8ce5 Fix regression on no_diff type transcription. (#3245) Co-authored-by: Yong He <yhe@nvidia.com> 28 September 2023, 05:35:58 UTC
9833ff9 Fix `isMovableInst`. (#3243) Co-authored-by: Yong He <yhe@nvidia.com> 27 September 2023, 18:46:29 UTC
8326248 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 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 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 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 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 Add test for vector-element contiguity error (#3235) 25 September 2023, 22:30:34 UTC
56c4a8c Update a1-02-slangpy.md (#3237) 25 September 2023, 22:29:35 UTC
2e76151 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 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 Update a1-02-slangpy.md (#3228) 21 September 2023, 23:03:16 UTC
e31a967 Revert inlining change in #3217. (#3229) Co-authored-by: Yong He <yhe@nvidia.com> 21 September 2023, 23:02:04 UTC
5b2eb06 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 Misc SPIRV fixes. (#3220) Co-authored-by: Yong He <yhe@nvidia.com> 21 September 2023, 17:39:19 UTC
85d40ed 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 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 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 fix warnings (#3224) * Remove unused variable * Remove unused variable * Remove unused if bindings 21 September 2023, 15:31:03 UTC
c31f456 Update a1-02-slangpy.md (#3223) 21 September 2023, 05:28:51 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
back to top