ReinUsesLisp
9bb3e008c9
shader: Read branch conditions from an instruction
Fixes the identity removal pass.
5 years ago
ReinUsesLisp
ec6fc5fe78
glasm: Implement TEX and TEXS instructions
Remove lod clamp from texture instructions with lod, as this is not
needed (nor supported).
5 years ago
ReinUsesLisp
db2f0f4108
emit_glasm: Enable ARB_draw_buffers when needed
5 years ago
lat9nq
f7a2340205
shader_recompiler: GCC fixes
Fixes members of unnamed union not being accessible, and one function
without a declaration.
5 years ago
ReinUsesLisp
31d402ee74
glasm: Add Void type to GLASM values
5 years ago
ReinUsesLisp
3764750339
glasm: Add graphics specific shader declarations to GLASM
5 years ago
ameerj
057dee4856
glasm: Implement local memory for glasm
5 years ago
ReinUsesLisp
bf5e48ffe4
glasm: Initial implementation of phi nodes on GLASM
5 years ago
ReinUsesLisp
d4385c34e3
glasm: Declare NV_shader_thread_group when needed
5 years ago
ReinUsesLisp
d54d7de40e
glasm: Rework control flow introducing a syntax list
This commit regresses VertexA shaders, their transformation pass has to
be adapted to the new control flow.
5 years ago
ameerj
7ff5851608
glasm: Implement Storage atomics
StorageAtomicExchangeU64 is failing test seemingly due to failure storing 64-bit
result into the register
5 years ago
ReinUsesLisp
8c81a20ace
glasm: Ensure reg alloc order across compilers on GLASM
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.
5 years ago
ReinUsesLisp
c917290497
glasm: Enable unintentionally disabled register aliasing on GLASM
5 years ago
ReinUsesLisp
c4fd6b55bc
glasm: Implement shuffle and vote instructions on GLASM
5 years ago
ReinUsesLisp
deda89372f
glasm: Fix register allocation when moving immediate on GLASM
5 years ago
ReinUsesLisp
8eb72ff0dc
glasm: Fix moving U64 immediates to registers in GLASM
5 years ago
ameerj
80813b1d14
glasm: Implement storage atomic ops
5 years ago
ReinUsesLisp
ad61b47f80
glasm: Add conversion instructions to GLASM
5 years ago
ReinUsesLisp
4502595bc2
glasm: Initial GLASM fp64 support
5 years ago
ReinUsesLisp
9f851e3832
glasm: Implement GLASM fp16 packing and move bitwise insns
5 years ago
ReinUsesLisp
1c9307969c
glasm: Make GLASM aware of types
5 years ago
ReinUsesLisp
2b04b4d27f
glasm: Remove unused argument in identity instructions on GLASM
5 years ago
ReinUsesLisp
6fd190d1ae
glasm: Implement basic GLASM instructions
5 years ago
ReinUsesLisp
b10cf64c48
glasm: Add GLASM backend infrastructure
5 years ago