aboutsummaryrefslogtreecommitdiff
path: root/src/shader_recompiler/backend/glasm/emit_glasm.cpp
AgeCommit message (Collapse)Author
2021-07-22shader: Read branch conditions from an instructionReinUsesLisp
Fixes the identity removal pass.
2021-07-22glasm: Implement TEX and TEXS instructionsReinUsesLisp
Remove lod clamp from texture instructions with lod, as this is not needed (nor supported).
2021-07-22emit_glasm: Enable ARB_draw_buffers when neededReinUsesLisp
2021-07-22shader_recompiler: GCC fixeslat9nq
Fixes members of unnamed union not being accessible, and one function without a declaration.
2021-07-22glasm: Add Void type to GLASM valuesReinUsesLisp
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: 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: Implement shuffle and vote instructions on GLASMReinUsesLisp
2021-07-22glasm: Fix register allocation when moving immediate 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: Initial GLASM fp64 supportReinUsesLisp
2021-07-22glasm: Implement GLASM fp16 packing and move bitwise insnsReinUsesLisp
2021-07-22glasm: Make GLASM aware of typesReinUsesLisp
2021-07-22glasm: Remove unused argument in identity instructions on GLASMReinUsesLisp
2021-07-22glasm: Implement basic GLASM instructionsReinUsesLisp
2021-07-22glasm: Add GLASM backend infrastructureReinUsesLisp