summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2024-01-30Correctly apply glsl local size layout to entry points during lowering (#3528)Ellie Hermaszewska
* Correctly apply glsl local size layout to entry points during lowering * Test for glsl layout correctness
2024-01-26Fix LSP compatibility issues with Visual Studio. (#3520)Yong He
* [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>
2024-01-25Fixes for `module` and `include`. (#3519)Yong He
* Fix type checking of enum cases. * Allow decl to have same name as module. --------- Co-authored-by: Yong He <yhe@nvidia.com>
2024-01-25Fix spirv legalization generating duplicate array types. (#3517)Yong He
* Fix spirv legalization generating duplicate array types. * Fix intrinsics. * Update CI build config. --------- Co-authored-by: Yong He <yhe@nvidia.com>
2024-01-24Update documentation. (#3492)Yong He
Co-authored-by: Yong He <yhe@nvidia.com>
2024-01-24[SPIRV] Support `globallycoherent` and `[vk::index()]`. (#3488)Yong He
* [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>
2024-01-24IRSPIRVAsmOperandInst instructions may not have IRBlock as the immediate ↵Pankaj Mistry
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
2024-01-24Correctly refer to ComPtr type in documentation (#3485)chloekek
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>
2024-01-24Document that D3D11 fragment stage is optional (#3480)chloekek
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>
2024-01-24Generate lookup tables from cmake (#3461)Ellie Hermaszewska
* 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>
2024-01-23[LSP] Handle "NotificationReceived" call. (#3481)Yong He
Co-authored-by: Yong He <yhe@nvidia.com>
2024-01-23SPIRV Legalization fixes. (#3479)Yong He
* Fix CFG legalization for SPIRV backend. * Emit DepthReplacing execution mode. * Fix do-while lowering. --------- Co-authored-by: Yong He <yhe@nvidia.com>
2024-01-23Adding CONTRIBUTION.md (#3472)Jay Kwak
* 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>
2024-01-23Fix incorrect behavior of operator% (#3470)Jay Kwak
* 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>
2024-01-23Add support for rayQueryGetIntersectionTriangleVertexPositionsEXT (#3463)kaizhangNV
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.
2024-01-22[LSP] Fetch configs directly from didConfigurationChanged message. (#3478)Yong He
Co-authored-by: Yong He <yhe@nvidia.com>
2024-01-22Bug fixes for the direct spirv backend. (#3474)Yong He
* 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>
2024-01-22Fix language server for VS. (#3473)Yong He
Co-authored-by: Yong He <yhe@nvidia.com>
2024-01-19Add `-fspv-reflect` support. (#3464)Yong He
* 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>
2024-01-18Docs for local vs global uniform parameters (#3459)Nathan V. Morrical
2024-01-18Capability def parsing & codegen + disjoint sets (#3451)Yong He
* 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>
2024-01-17updated docs to more clearly define differences in sizeof(bool) depending on ↵Nathan V. Morrical
the target platform (#3458) Co-authored-by: Yong He <yonghe@outlook.com>
2024-01-17Add test to closesthit and anyhit shaders (#3457)kaizhangNV
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.
2024-01-17Update slang-glslang library (#3449)kaizhangNV
2024-01-16Update spirv-tools (#3445)kaizhangNV
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.
2024-01-11Support for gl_HitTriangleVertexPositionsEXT (#3405) (#3442)kaizhangNV
* 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>
2024-01-11Add libgfx to macos release (#3444)skallweitNV
2024-01-09Fix funcs w/ buffer load being treated as readnone. (#3441)Yong He
Co-authored-by: Yong He <yhe@nvidia.com>
2024-01-09Add compiler settings to shader cache key (#3439)skallweitNV
2024-01-08Update a1-02-slangpy.mdYong He
2024-01-05Add test for glsl groupshared init (#3433)Ellie Hermaszewska
2024-01-04Add abseil_cpp to spirv-tools-generated instructions.jsmall-nvidia
2024-01-04Add some files to gitignore (#3434)Ellie Hermaszewska
2024-01-03Fix issue with entry point result not being available via ↵jsmall-nvidia
`spGetEntryPointCodeBlob` if defined in a serialized module. (#3431)
2024-01-02Update the GetDimension hlsl builtin for spirv path. In case of sampler, a ↵Pankaj Mistry
combined sampled image needs an OpImage to be generated. (#3424)
2023-12-30Fix the intrinsic expansion of ObjectToWorld3x4 in spirv_asm. Data type (#3428)Pankaj Mistry
2023-12-19Lower sv_vertexid to decoration VertexIndex as defined in GL_KHR_vulkan_glsl ↵Pankaj Mistry
(#3419)
2023-12-18macos/vulkan support (#3418)skallweitNV
2023-12-16Fix nonuniform decoration on direct-to-spirv backend path. (#3338) (#3417)Pankaj Mistry
2023-12-15Add doc for special scoping syntax. (#3416)Yong He
Co-authored-by: Yong He <yhe@nvidia.com>
2023-12-15Add ConstBufferPointer::subscript. (#3415)Yong He
Co-authored-by: Yong He <yhe@nvidia.com>
2023-12-15Add language server support for vfx files. (#3414)Yong He
Co-authored-by: Yong He <yhe@nvidia.com>
2023-12-15GLSL SSBO Support (#3400)Ellie Hermaszewska
* 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
2023-12-14Looks like `#3327` left in some debugging code. (#3411)jsmall-nvidia
2023-12-13Polish language server and documentation. (#3410)Yong He
Co-authored-by: Yong He <yhe@nvidia.com>
2023-12-13Fix GLSL static initialization bug. (#3409)Yong He
* 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>
2023-12-13Add spirv intrinsics for `ConstBufferPointer`. (#3407)Yong He
Fixes #3305. Fixes #3404. Co-authored-by: Yong He <yhe@nvidia.com>
2023-12-12Define `Texture::Sample` for float element types only. (#3403)Yong He
* 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>
2023-12-12Add check for invalid use of modifiers. (#3402)Yong He
* Add check for invalid use of modifiers. * Fixes. * Add test. --------- Co-authored-by: Yong He <yhe@nvidia.com>
2023-12-11Diagnose for invalid decl nesting + namespace lookup fixes. (#3397)Yong He
* 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>