Age | Commit message (Collapse) | Author | |
---|---|---|---|
2023-05-09 | Add missing GLSL instructions | GPUCode | |
2023-01-05 | Add OpGroupNonUniformElect, OpGroupNonUniformBroadcastFirst | Billy Laws | |
2022-11-23 | Add OpDemoteToHelperInvocation, OpTerminateInvocation | Liam | |
2022-11-23 | Add OpGroupNonUniformShuffle subgroup op | Billy Laws | |
2022-10-22 | Add OpGroupNonUniformBroadcast subgroup op | Billy Laws | |
2021-07-27 | sirit: Add TypeSInt/TypeUInt helpers | Lioncash | |
Provides shorthands for specific signedness, so that usage code doesn't need to explicitly use raw booleans. TypeUInt(32), is easier to gloss than TypeInt(32, false), especially for those not familiar with the API. | |||
2021-04-17 | Add Derivatives Instructions. | FernandoS27 | |
2021-04-12 | Add OpEmitStreamVertex and OpEndStreamPrimitive | ReinUsesLisp | |
2021-04-11 | Remove forward references and add phi node patching | ReinUsesLisp | |
The previous API for forward declarations broke when more than one definition was done. Forward references on instructions that are not labels were only needed for phi nodes, so it has been replaced with a deferred phi node instruction and a method to patch these after everything has been defined. | |||
2021-03-29 | Add OpUnreachable | ReinUsesLisp | |
2021-03-28 | Add OpFunctionParameter | ReinUsesLisp | |
2021-03-19 | Add DemoteToHelperInvocation support | ReinUsesLisp | |
2021-03-08 | Add support for sparse texture instructions | ReinUsesLisp | |
2021-02-12 | Add Phi support | ReinUsesLisp | |
2020-11-26 | Add support for `OpGroupNonUniform{All,Any,AllEqual,Ballot}`, and fix ↵ | comex | |
`OpGroupNonUniformShuffleXor`. These Vulkan 1.1 operations can be used in place of `OpSubgroup{All,Any,AllEqual,Ballot}KHR`, among other things. For `OpGroupNonUniformShuffleXor`, which was already implemented, turns out the scope argument needs to be encoded not as an immediate, but as an id that points to a constant integer. | |||
2020-11-25 | Fix Reserve count for trinary ops. | comex | |
2020-08-01 | Stream SPIR-V instructions directly to a binary | ReinUsesLisp | |
Before this commit sirit generated a stream of tokens that would then be inserted to the final SPIR-V binary. This design was carried from the initial design of manually inserting opcodes into the code. Now that all instructions but labels are inserted when their respective function is called, the old design can be dropped in favor of generating a valid stream of SPIR-V opcodes. The API for variables is broken, but adopting the new one is trivial. Instead of calling OpVariable and then adding a global or local variable, OpVariable was removed and global or local variables are generated when they are called. Avoiding duplicates is now done with an std::unordered_set instead of using a linear search jumping through vtables. | |||
2020-07-29 | Upgrade to C++20 and use std::span | ReinUsesLisp | |
2020-06-02 | memory: Add OpImageTexelPointer | ReinUsesLisp | |
2020-05-15 | barrier: Add OpControlBarrier | ReinUsesLisp | |
2020-04-25 | arithmetic: Add IAddCarry | ReinUsesLisp | |
2020-01-19 | atomic: Fix typo | ReinUsesLisp | |
2020-01-19 | atomic: Add memory atomic instructions | ReinUsesLisp | |
2019-12-15 | image: Remove assumed lod in image samples | ReinUsesLisp | |
This commits breaks the API. Depth image samples assumed a lod operand, this made using Grad samples clumsy to use. | |||
2019-12-09 | Add OpMemoryBarrier | ReinUsesLisp | |
2019-11-10 | Add OpSubgroupBallotKHR and vote instructions | ReinUsesLisp | |
2019-11-03 | Add OpSubgroupReadInvocationKHR | ReinUsesLisp | |
2019-11-02 | Add OpGroupNonUniformShuffleXor | ReinUsesLisp | |
2019-11-01 | Add EmitVertex and EndPrimitive | ReinUsesLisp | |
2019-10-24 | instructions/logical: Silence -Wpedantic | ReinUsesLisp | |
2019-10-18 | Remove Emit entry in favor of auto-emitting code | ReinUsesLisp | |
All instructions but OpVariable and OpLabel are automatically emitted. These functions have to call AddLocalVariable/AddGlobalVariable or AddLabel respectively. | |||
2019-09-09 | Add OpAny and OpAll | ReinUsesLisp | |
2019-09-09 | Add OpVectorExtractDynamic and OpVectorInsertDynamic | ReinUsesLisp | |
2019-07-14 | Relicense to The BSD 3-clause license | ReinUsesLisp | |
2019-03-14 | Pass std::string by value where applicable. | Lioncash | |
By taking the std::string by value in the constructor, this allows for certain situations where copies can be elided entirely (when moving an instance into the constructor) e.g. std::string var = ... ... ... = LiteralString(std::move(var)) // Or whatever other initialization // is done. No copy will be done in this case, the move transfers it into the constructor, and then the move within the initializer list transfers it into the member variable. tl;dr: This allows the calling code to potentially construct less std::string instances by allowing moving into the parameters themselves. | |||
2019-03-13 | Remove Op prefix on Type instructions | ReinUsesLisp | |
2019-03-11 | Add ellipsis overloads for instructions ending in vectors | ReinUsesLisp | |
2019-03-11 | Update README.md and remove automatic capabilities addition | ReinUsesLisp | |
2019-03-11 | Change clang-format settings | ReinUsesLisp | |
2019-03-11 | Sort macro defitions for image instructions | ReinUsesLisp | |
2019-01-05 | Add OpSwitch | ReinUsesLisp | |
2018-12-02 | Add OpKill | ReinUsesLisp | |
2018-11-16 | Rename "insts" directory to "instructions" | ReinUsesLisp | |