Commit Graph

19064 Commits (3047eb66889a9782fadfbe479c33e6a8bfc5bf53)
 

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