aboutsummaryrefslogtreecommitdiff
path: root/src/shader_recompiler/backend/glasm
AgeCommit message (Collapse)Author
2021-07-22glasm: Add graphics specific shader declarations to GLASMReinUsesLisp
2021-07-22glasm: Implement local memory for glasmameerj
2021-07-22glasm: Initial implementation of phi nodes on GLASMReinUsesLisp
2021-07-22glasm: Write result to scalar on integer comparison instructionsReinUsesLisp
2021-07-22glasm: Declare NV_shader_thread_group when neededReinUsesLisp
2021-07-22glasm: Rework control flow introducing a syntax listReinUsesLisp
This commit regresses VertexA shaders, their transformation pass has to be adapted to the new control flow.
2021-07-22glasm: Implement Storage atomicsameerj
StorageAtomicExchangeU64 is failing test seemingly due to failure storing 64-bit result into the register
2021-07-22glasm: Ensure reg alloc order across compilers on GLASMReinUsesLisp
Use a struct constructor to serialize register allocation arguments to ensure registers are allocated in the same order regardless of the compiler used. The A and B functions can be called in any order when passed as arguments to "foo": foo(A(), B()) But the order is guaranteed for curly-braced constructor calls in classes: Foo{A(), B()} Use this to get consistent behavior.
2021-07-22glasm: Enable unintentionally disabled register aliasing on GLASMReinUsesLisp
2021-07-22glasm: Review all GLASM insts to be aware of register aliasingReinUsesLisp
2021-07-22glasm: Implement shuffle and vote instructions on GLASMReinUsesLisp
2021-07-22glasm: Add MUFU instructions to GLASMReinUsesLisp
2021-07-22glasm: Implement IAbs64 and INeg64 on GLASMReinUsesLisp
2021-07-22glasm: Properly clamp Fp64 on GLASMReinUsesLisp
2021-07-22glasm: Fix register allocation when moving immediate on GLASMReinUsesLisp
2021-07-22glasm: Implement SelectU64 on GLASMReinUsesLisp
2021-07-22glasm: Fix clamps so the min value has priority on NAN on GLASMReinUsesLisp
2021-07-22glasm: Fix moving U64 immediates to registers in GLASMReinUsesLisp
2021-07-22glasm: Implement storage atomic opsameerj
2021-07-22glasm: Add conversion instructions to GLASMReinUsesLisp
2021-07-22glasm: Add fp min/max insts and fix store for fp64 on GLASMReinUsesLisp
2021-07-22glasm: Add logical instructions on GLASMReinUsesLisp
2021-07-22glasm: Remove duplicated Fp64 pack instructions on GLASMReinUsesLisp
2021-07-22glasm: Remove unnecesary new white space on Clamp GLASMReinUsesLisp
2021-07-22glasm: Add floating-point comparisons on GLASMReinUsesLisp
2021-07-22emit_glasm: Implement more integer alu opsameerj
2021-07-22glasm: Reimplement bitwise ops and BFI/BFEameerj
2021-07-22glasm: Initial GLASM fp64 supportReinUsesLisp
2021-07-22glasm: Implement GLASM fp16 packing and move bitwise insnsReinUsesLisp
2021-07-22glasm: Remove unused functions left from rebaseReinUsesLisp
2021-07-22glasm: Specify namespace when using FormatToReinUsesLisp
2021-07-22glasm: Implement more GLASM composite instructionsReinUsesLisp
2021-07-22glasm: Make GLASM aware of typesReinUsesLisp
2021-07-22glasm: Use CMP.S for Select32ameerj
also fixes ADD and SUB to use U modifier
2021-07-22glasm: Implement more logical opsameerj
2021-07-22glasm: Implement BFI, BFEameerj
Along with implementations of common instructions along the way
2021-07-22glasm: Use BitField instead of C bitfieldsReinUsesLisp
2021-07-22glasm: Remove unused argument in identity instructions on GLASMReinUsesLisp
2021-07-22glasm: Implement basic GLASM instructionsReinUsesLisp
2021-07-22glasm: Changes to GLASM register allocator and emit contextReinUsesLisp
2021-07-22glasm: Add GLASM backend infrastructureReinUsesLisp