ReinUsesLisp
0fa421f82f
glasm: Implement gl_FragDepth and gl_SampleMask stores
5 years ago
ReinUsesLisp
1ee7f8b943
glasm: Do not alias ConditionRef for now
Immediate condition refs where not handled correctly. Just move the
value for now.
5 years ago
ReinUsesLisp
9bb3e008c9
shader: Read branch conditions from an instruction
Fixes the identity removal pass.
5 years ago
ReinUsesLisp
4bad415bca
glasm: Implement InstanceId and VertexId
5 years ago
ReinUsesLisp
afcb140185
glasm: Add missing return value on move assignment
5 years ago
ReinUsesLisp
fb3ba62b3a
glasm: Fix aliased bitcasts ref counting
5 years ago
ReinUsesLisp
f1b334b9f9
glasm: Remove unintentional comma on vector insert
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
c42a6143a5
glasm: Add support for non-2D texture samples
5 years ago
ReinUsesLisp
bee9fb0563
glasm: Reorder unreachable image instructions to the bottom
5 years ago
ReinUsesLisp
e6b4d461d2
glasm: Add support for texture offsets
5 years ago
ReinUsesLisp
bf2949df10
glasm: Improve texture sampling instructions
5 years ago
ReinUsesLisp
db2f0f4108
emit_glasm: Enable ARB_draw_buffers when needed
5 years ago
ReinUsesLisp
3c06293e20
emit_glasm: Add support for reading position attributes
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
ameerj
d4f9c798d6
glasm: Implement rest of shared mem
5 years ago
ReinUsesLisp
258f2dec1b
opengl: Initial (broken) support to GLASM shaders
5 years ago
ReinUsesLisp
776ab3ea12
shader: Use a non-trivial dummy to construct ASL node union
5 years ago
ReinUsesLisp
38e7b8c805
emit_spirv: Jump to loop body with local variable
Silence unused variable warning
5 years ago
ReinUsesLisp
464f13fe0b
glasm: Implement derivative instructions on GLASM
5 years ago
ReinUsesLisp
9fb2ea08e8
glasm: Initial (broken) implementation of TEX on GLASM
5 years ago
ReinUsesLisp
1f3446b47e
glasm: Implement some graphics instructions on GLASM
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
ab5dbe7c29
emit_spirv: Add missing block in case
5 years ago
ReinUsesLisp
bf5e48ffe4
glasm: Initial implementation of phi nodes on GLASM
5 years ago
ReinUsesLisp
0f88fb5d72
glasm: Write result to scalar on integer comparison instructions
5 years ago
ReinUsesLisp
d4385c34e3
glasm: Declare NV_shader_thread_group when needed
5 years ago
ReinUsesLisp
568d813eea
vk_update_descriptor: Properly initialize payload on the update descriptor queue
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
70fbede213
glasm: Review all GLASM insts to be aware of register aliasing
5 years ago
ReinUsesLisp
c4fd6b55bc
glasm: Implement shuffle and vote instructions on GLASM
5 years ago
ReinUsesLisp
decda4a2c7
glasm: Add MUFU instructions to GLASM
5 years ago
ReinUsesLisp
5b18a12df2
glasm: Implement IAbs64 and INeg64 on GLASM
5 years ago
ReinUsesLisp
3b6a632237
shader: Add floating-point rounding to I2F
5 years ago
ReinUsesLisp
3f00a2ad3f
glasm: Properly clamp Fp64 on GLASM
5 years ago
ReinUsesLisp
deda89372f
glasm: Fix register allocation when moving immediate on GLASM
5 years ago
ReinUsesLisp
0839e46736
glasm: Implement SelectU64 on GLASM
5 years ago
ReinUsesLisp
6237300e36
glasm: Fix clamps so the min value has priority on NAN 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
7703d65f23
glasm: Add fp min/max insts and fix store for fp64 on GLASM
5 years ago
ReinUsesLisp
43a448d98d
glasm: Add logical instructions on GLASM
5 years ago
ReinUsesLisp
99352741af
glasm: Remove duplicated Fp64 pack instructions on GLASM
5 years ago
ReinUsesLisp
45ef62d3ba
glasm: Remove unnecesary new white space on Clamp GLASM
5 years ago