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

sort by:
Revision Author Date Message Commit Date
4f7d1f4 Fix type checking around generic array types. (#3568) 11 February 2024, 09:05:37 UTC
03cddba Fix spirv legalization of nested ararys. (#3567) * Fix spirv legalization of nested ararys. * Fix test. 11 February 2024, 07:05:35 UTC
20ab161 Support link-time constants. (#3564) * Support link-time constants. * Fix. * Fix. 10 February 2024, 06:00:15 UTC
f44da6c Support pointers in SPIRV. (#3561) * Support pointers in SPIRV. * Fix test. * Enhance test. * Fix test. * Cleanup. 09 February 2024, 02:29:32 UTC
a16f712 Implement basic GLSL built-in functions (#3525) * Implement basic GLSL built-in functions Partially resolves #3362 This change implemented GLSL build-in functions described in the following sections of "OpenGL Spec" document. 8.1. Angle and Trigonometry Functions 8.2. Exponential Functions 8.3. Common Functions 8.5. Geometric Functions 8.7. Vector Relational Functions 8.8. Integer Functions About 40 functions are newly implemented and about 150 functions were preexisted on HLSL side implementation. The implementation of new functions hasn't been tested yet. * Unify some of GLSL functions into hlsl.meta.slang Partially resoves #3362 This change moves Some of GLSL functions from glsl.meta.slang to hlsl.meta.slang, because those functions are generic enough to be used for HLSL. Those functions are: dot, normalize, fma, and reflect. There was "fma" for double in hlsl.meta.slang and it is converted to use __BuiltinFloatingPointType type, which required some modifications in diff.meta.slang. The implementation for "fma" in diff.meta.slang is very similar to how "mad" is implemented. * Implement more GLSL built-in functions Partially resolves #3362 This change implements more GLSL built-in functions mentioned in the following sections. 8.4. Floating-Point Pack and Unpack Functions 8.6. Matrix Functions This change implemented 11 new GLSL built-in functions and there were 3 already working functions. The mistake in "normalize" is fixed. "refract" function is moved from glsl.meta.slang to hlsl.meta.slang. * Implement basic GLSL built-in functions Partially resolves #3362 This change implemented GLSL build-in functions described in the following sections of "OpenGL Spec" document. 8.1. Angle and Trigonometry Functions 8.2. Exponential Functions 8.3. Common Functions 8.5. Geometric Functions 8.7. Vector Relational Functions 8.8. Integer Functions About 40 functions are newly implemented and about 150 functions were preexisted on HLSL side implementation. The implementation of new functions hasn't been tested yet. * Unify some of GLSL functions into hlsl.meta.slang Partially resoves #3362 This change moves Some of GLSL functions from glsl.meta.slang to hlsl.meta.slang, because those functions are generic enough to be used for HLSL. Those functions are: dot, normalize, fma, and reflect. There was "fma" for double in hlsl.meta.slang and it is converted to use __BuiltinFloatingPointType type, which required some modifications in diff.meta.slang. The implementation for "fma" in diff.meta.slang is very similar to how "mad" is implemented. * Implement more GLSL built-in functions Partially resolves #3362 This change implements more GLSL built-in functions mentioned in the following sections. 8.4. Floating-Point Pack and Unpack Functions 8.6. Matrix Functions This change implemented 11 new GLSL built-in functions and there were 3 already working functions. The mistake in "normalize" is fixed. "refract" function is moved from glsl.meta.slang to hlsl.meta.slang. * Fix a few minor bugs on GLSL builtin functions Partially resovles #3362 Following bugs were addressed: 1. "bitCounts" had to have a "Capability" on its function declaration. 2. "roundEven" is implemented. It is almost same to "round()" but the behaivor is slightly different the given value is 1.5, 3.5, 5.5 and so on. 3. umulExtended and imulExtended are simplified. 4. exp2 is implemented with "__target_switch" for GLSL and SPIR-V. 5. "tests/glsl-intrinsic/intrinsic-basic.slang" checks the results from the GLSL functions. Currently it is mainly to test if the functions exist or not, but it can now also test for a simple case where the input value is zero and the result is most of the time zero or one. * Disable GLSL exp2 double type tests This change disables some of GLSL exp2 related tests as a workaround. The spir-v needs to handle the double-type argument for exp2 properly. * Fix exp2(double) problem for SPIR-V SPIR-V can handle a double-type input for exp2 with this change. However, the slang-test is will failing to test it with an error message saying, "abort compilation:". With a simpler test case, I verified that SPIR-V assembly code is properly generated for exp2(double) and I am not sure why slang-test is still failing. We will need to revisit this issue later. The simple testing is done with a following line: outputBuffer.result[0] = float(exp2(double(outputBuffer.result[0]))); And it generated following lines and it looks correct: ; Function main %main = OpFunction %void None %3 %5 = OpLabel %16 = OpAccessChain %_ptr_Uniform_float %outputBuffer_0 %int_0 %uint_0 %17 = OpLoad %float %16 %19 = OpFConvert %double %17 %20 = OpFConvert %float %19 %21 = OpExtInst %float %1 Exp2 %20 %22 = OpAccessChain %_ptr_Uniform_float %outputBuffer_0 %int_0 %uint_0 OpStore %22 %21 OpReturn OpFunctionEnd * Add __floatCast that is safer than slang_noop_cast Adding __floatCast that can be used for exp2 function. 07 February 2024, 20:12:15 UTC
a95b753 CI: cancel onging jobs on commit. (#3557) * CI: cancel onging jobs on commit. * test change * Fix. 07 February 2024, 01:31:57 UTC
3358b3d gfx:Add callback to IPipelineCreationAPIDispatcher (#3556) * gfx:Add callback to IPipelineCreationAPIDispatcher Add the callback to IPipelineCreationAPIDispatcher in Vulkan backend in slang-gfx lib. * gfx:add uuid for vulkan pipeline dispatcher Add a define of SLANG_UUID_IVulkanPipelineCreationAPIDispatcher for Vulkan specific IPipelineCreationAPIDispatcher such that libgfx.so can have special handle to Vulkan pipeline dispatcher without break binary compatibility. In the RendererBase::initialize call, we will provide this new UUID when the DeviceType is Vulkan. * gfx: add new variable to GfxGUID Add new variable to GfxGUID IID_IVulkanPipelineCreationAPIDispatcher with initialization of SLANG_UUID_IVulkanPipelineCreationAPIDispatcher to make the implementation aligned with existing GfxGUID::IID_IPipelineCreationAPIDispatcher. --------- Co-authored-by: Yong He <yonghe@outlook.com> 07 February 2024, 01:31:28 UTC
f359df9 deploy slang-glslang with macos releases (#3554) * deploy slang-glslang with macos releases * sign libslang-glslang.dylib and add it to dist package --------- Co-authored-by: Yong He <yonghe@outlook.com> 07 February 2024, 01:02:47 UTC
ab41d54 Improve Capability System (#3555) * Improve capability system. * Update documentation. * Tuning semantics. * LSP: hierarchical diagnostics. * Fix test. * Fix test. 07 February 2024, 00:30:31 UTC
6365e00 Fix fp16 atomics intrinsics for hlsl. (#3553) 06 February 2024, 17:49:02 UTC
b301c93 Unify GLSL and HLSL buffer block parsing. (#3552) * Unify GLSL and HLSL buffer block parsing. Automatic GLSL module recognition. * Fix. 06 February 2024, 09:03:42 UTC
23c65b8 Add per-buffer data layout control. (#3551) * Add per-buffer data layout control. Fixes #3534. * Fixes. * Robustness. * Update test. * Fix. 06 February 2024, 06:36:02 UTC
af035fb Add glsl implementation of Texture.InterlockedAddF32 (#3550) 06 February 2024, 04:07:58 UTC
a88a7db Implement GLSL build-in functions related to texture (#3544) * Implement GLSL texture related built-in functions Partially resolves #3362 This change implemented GLSL build-in functions described in the following sections of "OpenGL Spec" document. 8.9.1. Texture Query Functions 8.9.2. Texel Lookup Functions 8.9.4. Texture Gather Functions 8.9.5. Compatibility Profile Texture Functions About 200 functions are newly implemented. Most of the functions are calling the HLSL implementation so they are expected to work for all targets but they haven't been tested throughly yet. __TextureImpl got a new generic parameter, "isRectangle", to support sampler2DRect and sampler2DRectShadow. It is a sampler for rectangular texture with no mipmaps. For the reason, its "GetDimentions()" doesn't return mip information. The sampling needs to happen in an integer coordinate not in a normalized [0,1] range. but this hasn't been implemenented yet. Texture functions whose name include "Offset" takes an integer type parameter and those values are required to be a compile-time constant. However, our currentl implementation of slangc seems to make the values not-compile-time constant. As a workaround, the test case uses __LINE__ macro to use a unique numbers so that slangc wouldn't collect them into a runtime variable. I put "constexpr" on "offset" parameters as much as possible. But the issue was still reproduced when targetting SPIRV. Texture functions whose name include "Proj" are emulated by dividing the coordinate value with its last component. For that reason, they take one additional component for its coordinate value. As an example, following function takes two components for sampler1D, instead of one: vec4 textureProj(sampler1D sampler, vec2 p); All shadow samplers stores depth-compare-value at the last component. But sampler1DShadow take one extra component, which is vec3 not vec2. It is unclear what the reason is but the second component is unused in this case. Here is an example, float texture(sampler1DShadow sampler, vec3 p); samplerCubeArrayShadow takes five components for its coordinate and the depth-compare-value cannot be stored in the last component of the cooridnate. It is separated out as an independent parameter, float texture(samplerCubeArrayShadow sampler, vec4 p, float compare); TextureGather functions got some modifications. The existing implementation was calling textureGatherOffset[s] with the parameters in a wrong order. This mistake is corrected. * Bring back GatherCmpRed/Green/Blue/Alpha HLSL has GatherCmpRed/Green/Blue/Alpha functions and it was removed from my previous change by a mistake. This change brings them back. * Disabling two failing tests in intrinsic-texture The new test file, intrinsic-texture.slang, has five test settings and two of them are currently failing; they are targetting HLSL and CPP. This change disables them to avoid confusion. * Remove "isRectangle" parameter from __TextureInfo Partially resolves #3362 This commit has a few changes based on the feedback from the code reviews. 1. Remove "isRectangle" parameter from __TextureInfo, because "sampler2DRect" can be replaced with "sampler2D" that always uses lod level 0. All functions associated to "Rect" are also removed. 2. Enabled tests for "samplerBuffer". 3. Removed "__target_intrinsic(glsl)" from glsl.meta.slang, because we want to stay away from it in the future. 4. Some tests in intrinsic-texture.slang are disabled if the functions take constant offset values or take MultiSample samplers. --------- Co-authored-by: Yong He <yonghe@outlook.com> 06 February 2024, 01:03:04 UTC
71439f7 Add documentation on capability system. (#3549) Fixes #3454. 06 February 2024, 00:15:21 UTC
6dca7e3 Fix spirv emit that leads to pathological downstream time. (#3546) 03 February 2024, 20:29:12 UTC
1476489 Capability type checking. (#3530) * Capability type checking. * Fix. --------- Co-authored-by: Yong He <yhe@nvidia.com> 03 February 2024, 06:28:02 UTC
c15e7ad Atomics+Wave ops intrinsics fixes. (#3542) * Fix atomics intrinsics, increase kMaxDescriptorSets. * Add SPIRVASM to known non-differentiable insts. * Support fp16 wave ops when targeting glsl. * Fixes. * Fix vk validation errors. * Fix. * Add to allowed failures. 03 February 2024, 06:04:40 UTC
a67cb06 GLSL Passthrough support for SSBO types (#3446) * GLSL Passthrough support for SSBO types * GLSL Passthrough support for SSBO types * Correctly apply glsl local size layout to entry points during lowering * Test for glsl layout correctness * typo * Reflect GLSL SSBO as raw buffers * Functional test for glsl ssbo * Allow allow glsl for render tests * Functional test for ssbo passthrough * Functional test for ssbo passthrough with spirv-direct * fix windows build error --------- Co-authored-by: Yong He <yonghe@outlook.com> 03 February 2024, 02:14:04 UTC
6c8626c updating readme (#3537) Co-authored-by: Yong He <yonghe@outlook.com> 02 February 2024, 20:01:26 UTC
1bc84df adding required extensions to gfx to enable basic vulkan printf functionality (#3541) 02 February 2024, 20:01:05 UTC
f370947 FP16 atomics for RWByteAddresBuffer, fp32 atomics for images. (#3536) * FP16 atomics for RWByteAddresBuffer, fp32 atomics for images. * Fix spelling. * Add overload. * Fix test failures. --------- Co-authored-by: Yong He <yhe@nvidia.com> 01 February 2024, 21:26:03 UTC
a2d2018 Add slangc option to specialize entrypoint + auto glsl mode. (#3531) * Add slangc option to specialize entrypoint. * Auto enable glsl mode when input file has glsl extension name. * Fix test. --------- Co-authored-by: Yong He <yhe@nvidia.com> 01 February 2024, 07:53:28 UTC
2d0912b Correctly apply glsl local size layout to entry points during lowering (#3528) * Correctly apply glsl local size layout to entry points during lowering * Test for glsl layout correctness 30 January 2024, 19:28:04 UTC
470c5a2 Fix LSP compatibility issues with Visual Studio. (#3520) * [LSP] compatibility logic for Visual Studio. * [LSP] Fix diagnostic rank parsing. * [LSP] Fix semantic highlighting of cbuffer types. * Fix. * Fix. --------- Co-authored-by: Yong He <yhe@nvidia.com> 27 January 2024, 00:30:19 UTC
013bcf2 Fixes for `module` and `include`. (#3519) * Fix type checking of enum cases. * Allow decl to have same name as module. --------- Co-authored-by: Yong He <yhe@nvidia.com> 26 January 2024, 01:47:40 UTC
64804ce Fix spirv legalization generating duplicate array types. (#3517) * Fix spirv legalization generating duplicate array types. * Fix intrinsics. * Update CI build config. --------- Co-authored-by: Yong He <yhe@nvidia.com> 25 January 2024, 22:54:46 UTC
7ae8f68 Update documentation. (#3492) Co-authored-by: Yong He <yhe@nvidia.com> 24 January 2024, 23:49:52 UTC
e7b6de3 [SPIRV] Support `globallycoherent` and `[vk::index()]`. (#3488) * [SPIRV] Support `globallycoherent` modifier. * Fix. * Disable executable cooperative vector tests. * Update expected failure. * [SPIRV] Emit varying output index decoration. * Add test. * Update tests. * Fix test. * Emit `SpvExecutionModeEarlyFragmentTests`. * Lower `StructuredBuffer<bool>`. * Support globallycoherent on ByteAddressBuffer. --------- Co-authored-by: Yong He <yhe@nvidia.com> 24 January 2024, 23:36:49 UTC
dd57306 IRSPIRVAsmOperandInst instructions may not have IRBlock as the immediate parent. Previously special case was added to handle IRDecoration similarly. Replace this with a common method getBlock that traverses the parent chain till it gets to the Block (#3486) Fixes bug #3432 24 January 2024, 21:55:19 UTC
70f6ae4 Correctly refer to ComPtr type in documentation (#3485) The user guide refers to `SlangComPtr`, but the type is actually called `ComPtr` and resides in the `Slang` namespace. Co-authored-by: Yong He <yonghe@outlook.com> 24 January 2024, 18:24:16 UTC
1afa78a Document that D3D11 fragment stage is optional (#3480) It is not required to specify a pixel shader when rasterizing with D3D11. Omitting it is useful when writing to the depth buffer without writing to any render targets. Co-authored-by: Yong He <yonghe@outlook.com> 24 January 2024, 18:23:52 UTC
4e7e820 Generate lookup tables from cmake (#3461) * Generate lookup tables from cmake * Correct add_custom_command generator dependencies * set options for lookup table source * include path * use slang_add_target for capability generated targets * vs project regenerate * ci wobble --------- Co-authored-by: Yong He <yonghe@outlook.com> 24 January 2024, 09:29:09 UTC
ba4baf4 [LSP] Handle "NotificationReceived" call. (#3481) Co-authored-by: Yong He <yhe@nvidia.com> 24 January 2024, 06:58:36 UTC
ad45062 SPIRV Legalization fixes. (#3479) * Fix CFG legalization for SPIRV backend. * Emit DepthReplacing execution mode. * Fix do-while lowering. --------- Co-authored-by: Yong He <yhe@nvidia.com> 24 January 2024, 03:37:10 UTC
1c1d096 Adding CONTRIBUTION.md (#3472) * Adding CONTRIBUTION.md Fixes #3372 Adding CONTRIBUTION.md that describes the workflow for the contributors at more details. * Add instructions for PR process in CONTRIBUTE.me This commit adds an instruction of how to handle the case when you got feedbacks during Pull Request process. * Fix a formatting problem for Code Style When a word is wrapped with "lessThen" and "greaterThan" characters, it may disappear on the result based on the formatting syntax of .MD file. They need to be wrapped with a single back-tick character to avoid the problem. --------- Co-authored-by: Yong He <yonghe@outlook.com> 24 January 2024, 00:58:12 UTC
4d21790 Fix incorrect behavior of operator% (#3470) * Fix incorrect behavior of operator% Fixes #1059. This change fixes the incorrect translation of "operator%" from HLSL to SPIRV. The issue stems from the fact that the behavior of "operator%" in GLSL differs from that in HLSL. In HLSL it behaves as "remainder" where as it behaves as "modulus" in GLSL. We have been using SpvOpFMod for operator% when Slang compiles from HLSL to SPRIV, which is incorrect. This change switches it to SpvOpFRem. The tests are slightly modified to reveal any potential issues. * Change output type of test/compute/frem For testing the operator%, we are using "int" as the output type of the test, "test/compute/frem.slang". Since the operands are in float type, it is more preferable to have a float type as the resulting type. This can be done with an option, "-output-using-type". --------- Co-authored-by: Yong He <yonghe@outlook.com> 24 January 2024, 00:57:44 UTC
af91e77 Add support for rayQueryGetIntersectionTriangleVertexPositionsEXT (#3463) Add a member function to RayQuery<RAY_FLAG> class GetIntersectionTriangleVertexPositions to support the GLSL built-int rayQueryGetIntersectionTriangleVertexPositionsEXT. Also add new test file under tests/vkray/rayquery-closesthit.slang to test this functionality. 23 January 2024, 23:56:21 UTC
5902acd [LSP] Fetch configs directly from didConfigurationChanged message. (#3478) Co-authored-by: Yong He <yhe@nvidia.com> 23 January 2024, 07:19:40 UTC
fec9c42 Bug fixes for the direct spirv backend. (#3474) * Fix GLSL legalization bug that leads to crash. * Update diagnostic id to avoid conflict. * Fix std140 layout logic. --------- Co-authored-by: Yong He <yhe@nvidia.com> 22 January 2024, 23:19:26 UTC
c4e42ab Fix language server for VS. (#3473) Co-authored-by: Yong He <yhe@nvidia.com> 22 January 2024, 21:13:49 UTC
fdc17a9 Add `-fspv-reflect` support. (#3464) * Add `-fspv-reflect` support. Closes #3462. * Fix. * Fix. * Remove use of `SPV_GOOGLE_hlsl_functionality1`. * Fix spirv validation error. * Fix test. * Update typename hints. * Update commandline options doc. * Remove superfluous empty lines. --------- Co-authored-by: Yong He <yhe@nvidia.com> 20 January 2024, 02:02:40 UTC
84b2143 Docs for local vs global uniform parameters (#3459) 19 January 2024, 02:52:33 UTC
c5c1a25 Capability def parsing & codegen + disjoint sets (#3451) * Capability def parsing & codegen + disjoint sets This change adds a capability definition file, and a code generator to produce C++ code that defines the capability enums and necessary data structures around the capabilities. Extends the existing CapabilitySet class to support expressing disjoint sets of capabilities. This sets up for the next change that will enhance our type checking with reasoning of capability requirements. * Fix cmake. * Fix warning. * Fix. * Fix isBetterForTarget to prefer less specialized option. * Fix. * Fix premake. * Fix intrinsic. * Fix vs sln file. --------- Co-authored-by: Yong He <yhe@nvidia.com> 19 January 2024, 00:46:00 UTC
1a13842 updated docs to more clearly define differences in sizeof(bool) depending on the target platform (#3458) Co-authored-by: Yong He <yonghe@outlook.com> 17 January 2024, 23:34:51 UTC
bf2e0fe Add test to closesthit and anyhit shaders (#3457) Add test to closesthit.slang and anyhit.slang to test the slang stdlib API: HitTriangleVertexPosition. The new test will add the checking for extension declaration, built-in declaration, and built-in variable access. 17 January 2024, 23:33:36 UTC
159e318 Update slang-glslang library (#3449) 17 January 2024, 16:45:15 UTC
4cb183c Update spirv-tools (#3445) Update spirv-tools, spirv-headers and spirv-tools-generated repos. spirv-tools is updated to tag: v2023.6.rc1, branch: vulkan-sdk-1.3.275 commit: 3bb36c2a3f1a72f14e931cc2daca4311733b0014 spirv-headers is updated to branch: vulkan-sdk-1.3.275 commit:1c6bb2743599e6eb6f37b2969acc0aef812e32e3 spirv-tools-generated/*inc, *.h are generated from spirv-tools repo. source/slang/slang-spirv-core-grammar-embed.cpp is generated during slang build. 17 January 2024, 02:56:41 UTC
8e90098 Support for gl_HitTriangleVertexPositionsEXT (#3405) (#3442) * Support for gl_HitTriangleVertexPositionsEXT (#3405) Adding float3 HitTriangleVertexPositions(uint) to slang stdlib to support GLSL gl_HitTriangleVertexPositionsEXT builtin variable under extension of GL_EXT_ray_tracing_position_fetch. This function support emitting GLSL code and spir-V directly. * Update the function name --------- Co-authored-by: Yong He <yonghe@outlook.com> 11 January 2024, 20:10:43 UTC
2c08bc4 Add libgfx to macos release (#3444) 11 January 2024, 18:36:33 UTC
8dd04c8 Fix funcs w/ buffer load being treated as readnone. (#3441) Co-authored-by: Yong He <yhe@nvidia.com> 09 January 2024, 20:41:07 UTC
69f3d79 Add compiler settings to shader cache key (#3439) 09 January 2024, 17:14:13 UTC
b570ad4 Update a1-02-slangpy.md 08 January 2024, 17:58:03 UTC
1abc67c Add test for glsl groupshared init (#3433) 05 January 2024, 09:26:36 UTC
ecfd9da Add abseil_cpp to spirv-tools-generated instructions. 04 January 2024, 15:57:33 UTC
b7a419b Add some files to gitignore (#3434) 04 January 2024, 08:24:33 UTC
62e45e7 Fix issue with entry point result not being available via `spGetEntryPointCodeBlob` if defined in a serialized module. (#3431) 03 January 2024, 15:55:27 UTC
f33485c Update the GetDimension hlsl builtin for spirv path. In case of sampler, a combined sampled image needs an OpImage to be generated. (#3424) 03 January 2024, 00:22:59 UTC
f1f5e60 Fix the intrinsic expansion of ObjectToWorld3x4 in spirv_asm. Data type (#3428) 31 December 2023, 01:30:33 UTC
be06998 Lower sv_vertexid to decoration VertexIndex as defined in GL_KHR_vulkan_glsl (#3419) 19 December 2023, 23:00:04 UTC
93b8f68 macos/vulkan support (#3418) 18 December 2023, 23:16:14 UTC
b6da044 Fix nonuniform decoration on direct-to-spirv backend path. (#3338) (#3417) 16 December 2023, 20:48:27 UTC
eb89ccb Add doc for special scoping syntax. (#3416) Co-authored-by: Yong He <yhe@nvidia.com> 16 December 2023, 02:10:17 UTC
b507d88 Add ConstBufferPointer::subscript. (#3415) Co-authored-by: Yong He <yhe@nvidia.com> 16 December 2023, 01:05:32 UTC
f8b3027 Add language server support for vfx files. (#3414) Co-authored-by: Yong He <yhe@nvidia.com> 16 December 2023, 00:30:09 UTC
21d17ab GLSL SSBO Support (#3400) * Squash warnings and fix build with SLANG_EMBED_STDLIB * Add GLSLShaderStorageBuffer magic wrapper * Make GLSLSSBO not a uniform type * Buffers are global variables * Allow creating ssbo aggregate types * Allow reading from RWSB using builder * Nicer debug printing for ssbos * Lower SSBO to RWSB * Parse interface blocks into wrapped structs * Lower Interface Block Decls to structs * remove comment * Two simple ssbo tests * Move ssbo pass earlier * Correct mutable buffer detection * Do not replace ssbo usages outside of blocks * Treat GLSLSSBO as a mutable buffer for type layouts * regenerate vs projects * Correctly detect ssbo types * Diagnose illegal ssbo * remove unreachable code * neaten * ci wobble * Make GLSLSSBO ast handling more uniform * Add modifier cases for glsl * Use empty val info for unhandled interface blocks necessary for ./tests/glsl/out-binding-redeclaration.slang * more sophisticated modifier check * Correct ssbo wrapper name 15 December 2023, 15:41:27 UTC
34f04a4 Looks like `#3327` left in some debugging code. (#3411) 14 December 2023, 16:22:23 UTC
7e7d9ce Polish language server and documentation. (#3410) Co-authored-by: Yong He <yhe@nvidia.com> 14 December 2023, 00:39:46 UTC
3979660 Fix GLSL static initialization bug. (#3409) * Fix GLSL static initialization bug. Fixes #3408. * Update comment. * Fold global var initializer as an expression if possible. --------- Co-authored-by: Yong He <yhe@nvidia.com> 13 December 2023, 23:15:19 UTC
1406aa2 Add spirv intrinsics for `ConstBufferPointer`. (#3407) Fixes #3305. Fixes #3404. Co-authored-by: Yong He <yhe@nvidia.com> 13 December 2023, 20:24:27 UTC
6cbe215 Define `Texture::Sample` for float element types only. (#3403) * Define `Texture::Sample` for float element types only. * Fixes #490. * Fix checking of groupshared. * Add test. * Fix. --------- Co-authored-by: Yong He <yhe@nvidia.com> 13 December 2023, 00:29:51 UTC
92f21de Add check for invalid use of modifiers. (#3402) * Add check for invalid use of modifiers. * Fixes. * Add test. --------- Co-authored-by: Yong He <yhe@nvidia.com> 12 December 2023, 22:07:35 UTC
ec0224e Diagnose for invalid decl nesting + namespace lookup fixes. (#3397) * Diagnose for invalid decl nesting. * Fix. * Fix. * Fix. * Fix `namespace` lookup and `using` resolution. * fix project files. * revert project files. * Enhance namespace syntax, docs. * Fixes. --------- Co-authored-by: Yong He <yhe@nvidia.com> 12 December 2023, 00:13:32 UTC
12fcffa Handle import, entrypoint and global params in included files. (#3395) * Handle `import`, entrypoint and global params in included files. * Fix language server. * Extend `_createScopeForLegacyLookup` for `__include`. --------- Co-authored-by: Yong He <yhe@nvidia.com> 09 December 2023, 00:10:27 UTC
4321929 WIP: CMake (#3326) * More robust input and output selection in generator tools * Add cmake build system * Get slang-test running with cmake * Bump lz4 and miniz dependencies * Make cmake build more declarative * Correct preprocessor logic in slang.h * Add cuda test to compute/simple * Remove empty cmake files * output placement for cmake, and commenting * Correct include paths in spirv-embed-generator * Format cmake with gersemi * Make cmake build clerer * Neaten header generation Also work around https://gitlab.kitware.com/cmake/cmake/-/issues/18399 by introducing correct_generated_properties to set the GENERATED flag in the correct scope * remove unused files * use 3.20 to set GENERATOR property properly * spelling * more flexible linker arg setting * replace slang-static with obj collection * Set rpath and linker path correctly * neaten generated file generation * tests working with cmake build * fix premake5 build * comment and neaten cmake * remove unnecessary dependency * Build aftermath example only when aftermath is enabled * Add slang-llvm and other dependencies * Put modules alongside binaries * Find slang-glslang correctly * Better option handling * comments * add llvm build test * Better option handling * cmake wobble * use UNICODE and _UNICODE * remove other workflows * use ccache * neaten * limit parallel for llvm build * use ninja for build * Windows and Darwin slang-llvm builds * cache key * verbose llvm build * cl on windows * sccache and cl.exe * use cl.exe * Correct package detection * less verbosity * Simplify miniz inclusion * fix build with sccache * Neaten llvm building * neaten * Neaten slang-llvm fetching * more surgical workarounds * Add ci action * Get version from git * better variable naming * add missing include * clean up after premake in cmake * more docs on cmake build * ci wobble * add imgui target * more selective source * do not download swiftshader * Some missing dependencies * only build llvm on dispatch * Disable /Zi in CI where sccache is present * simplify * set PIC for miniz * set policies before project * reengage workaround * more runs on ci * Add cmake presets * Add cpack * move iterator debug level to preset * Correct lib flag * simplify action * Neaten cmake init * Add todo * Add simple test wrapper * Add tests to workflow presets * rename packing preset * Correctly set definitions * docs * correct preset names * Make slang-test depend on test-server/test-process * neaten * use workflow in actions * install docs * Correct module install dir * debug dist workflow * Install headers * neaten header globbing * Neaten dependency handling * make lib and bin variables * Do not set compiler for vs builds, unnecessary * docs * allow setting explicit source for target * maintain archive subdir * cmake docs * install headers * place targets into folders * cmake docs * nest external projects in folder * remove name clash * Neater external packages * meta targets in folder structure * cleaner slang-glslang dll * Add missing static directive to slang-no-embedded-stdlib * more robust module copying * make slang-test the startup project * folder tweak * Make FETCH_BINARY the default on all platforms * Set DEBUG_DIR * add natvis files to source * skip spirv tests * remove test step from debug dist * Add build to .gitignore * redo warnings to be more like premake * Update imgui * clean more premake files * Disable PCH for glslang, gcc throws a warning * Add /MP for msvc builds * warning wobble * Add script to build llvm * Add slang-llvm and generators components * Build slang-llvm in ci * comments * fetch llvm with git * better abi approximation for cache * better sccache key * formatting * Correct logic around disabling problematic debug info for ccache * exclude gcc and clang from windows ci * Make dist workflows use system llvm * naming * restore normal dist builds * formatting * run tests in ci * Correct slang-llvm url setting * Rely on the system to find the test tool library * actions matrix wiggle * cope with OSX ancient bash * Correct compilers on windows * more ci debugging * Correct rpath handling on OSX * neaten * correct path to slang-llvm * Correct rpath separator on osx * Find slang-llvm correctly * smoke tests only on osx * ci wobble * Give MacOS module a dylib suffix * get swiftshader correctly * cope with bsd cp * remove debug output * full tests on osx * ci wobble * Add some vk tests to expected failures * simplify ci * ci wobble * exclude dx12 tests from github ci * remove cmake code for building llvm * warnings * warnings as errors for cl * spirv-tools in path * add aarch64 ci build * Add SLANG_GENERATORS_PATH option for prebuilt generators * neaten * Correct generator target name * remove yaml anchors because github actions does not support them * Demote CMake in docs Also add info on cross compiling * Restore premake CI * use minimal ci for cmake * Write miniz_export for premake build and .gitignore it * Mention build config tool options in docs * Remove redefined macro for miniz * regenerate vs project 08 December 2023, 11:24:34 UTC
9903688 Update autodiff doc links. 07 December 2023, 01:57:28 UTC
8a15865 Update README.md (#3383) 07 December 2023, 01:56:24 UTC
3e9b0ba Update 04-modules-and-access-control.md 06 December 2023, 23:55:20 UTC
8102e5e Change default visibility of interface members and update docs. (#3381) * Update behavior around interfaces and docs. * Update toc --------- Co-authored-by: Yong He <yhe@nvidia.com> 06 December 2023, 23:52:02 UTC
11111e5 Support visibility control and default to `internal`. (#3380) * Support visibility control and default to `internal`. * Fix wip. * Fixes. * Fix. * Fix test. * Add legacy language detection and compatibility for existing code. * Add doc. --------- Co-authored-by: Yong He <yhe@nvidia.com> 06 December 2023, 20:05:07 UTC
fa6d871 squash warnings (#3378) Co-authored-by: Yong He <yonghe@outlook.com> 06 December 2023, 02:28:23 UTC
1050e0e Support `include` for pulling file into the current module. (#3377) * Support `include` for pulling file into the current module. * Add auto-completion, hover info and goto-def support. * Disable warning for missing `module` declaration for now. --------- Co-authored-by: Yong He <yhe@nvidia.com> 05 December 2023, 18:06:19 UTC
4fb3b10 Improve generic type argument inference. (#3370) * Improve generic type argument inference. * Fix. * Fix. --------- Co-authored-by: Yong He <yhe@nvidia.com> 29 November 2023, 19:29:14 UTC
62426e9 Misc language server fixes. (#3357) 28 November 2023, 17:15:31 UTC
a2083d6 Update 07-autodiff.md 27 November 2023, 21:46:26 UTC
b584526 typo in intro doc (#3350) Co-authored-by: Yong He <yonghe@outlook.com> 27 November 2023, 21:44:54 UTC
a7a7732 typo re: global variables (#3351) Co-authored-by: Yong He <yonghe@outlook.com> 27 November 2023, 21:44:24 UTC
b247fc1 Fix spirv intrinsics for partial derivatives. (#3355) Co-authored-by: Yong He <yhe@nvidia.com> 27 November 2023, 21:43:54 UTC
5af36cf Add SPIRV intrinsics for texture footprint query. (#3345) * Add SPIRV intrinsics for texture footprint query. * Cleanup. --------- Co-authored-by: Yong He <yhe@nvidia.com> 22 November 2023, 01:22:41 UTC
383c0ef Add missing SPIRV intrinsics for texture operations. (#3343) * Add missing SPIRV intrinsics for texture operations.. * Fixes. * Fix. --------- Co-authored-by: Yong He <yhe@nvidia.com> 20 November 2023, 22:51:27 UTC
fcc570c Allow whole program compile when using direct spirv backend. (#3342) Co-authored-by: Yong He <yhe@nvidia.com> 20 November 2023, 19:00:39 UTC
c5a6348 Add spirv intrinsic definition for `printf`. (#3340) 18 November 2023, 01:50:16 UTC
6f22477 Update README.md (#3339) 17 November 2023, 21:26:14 UTC
27243ce warnings (#3335) * ignores * Remove unused variables * Squash out of bounds warning --------- Co-authored-by: Yong He <yonghe@outlook.com> 17 November 2023, 18:50:40 UTC
240aa24 GLSL/SPIRV Fixes. (#3337) 17 November 2023, 05:23:13 UTC
6732f57 experimental fix: return `JSONValue::Type::Null` as "" (#3336) 17 November 2023, 04:53:33 UTC
4c78efd Unify stdlib `Texture` types into one generic type. (#3327) * 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> 16 November 2023, 22:32:33 UTC
12f7237 Add GLSL Compatibility. (#3321) * 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> 15 November 2023, 01:46:05 UTC
c71b127 Fix Phi simplification bug (#3325) Fixes https://github.com/shader-slang/slang/issues/3323 13 November 2023, 17:02:08 UTC
011d428 Cleanup builtin arithmetic interfaces. (#3317) * wip: clean up IArithmetic * wip. * Cleanup builtin arithmetic interfaces. * Fix. * Fixes. * Fix. * Fix. * Fix. --------- Co-authored-by: Yong He <yhe@nvidia.com> 10 November 2023, 21:55:14 UTC
back to top