summaryrefslogtreecommitdiff
path: root/src/shader_recompiler (follow)
Commit message (Collapse)AuthorAgeFilesLines
* glasm: Do not alias ConditionRef for nowGravatar ReinUsesLisp2021-07-222-3/+2
| | | | | Immediate condition refs where not handled correctly. Just move the value for now.
* shader: Read branch conditions from an instructionGravatar ReinUsesLisp2021-07-2212-16/+36
| | | | Fixes the identity removal pass.
* glasm: Implement InstanceId and VertexIdGravatar ReinUsesLisp2021-07-221-0/+6
|
* glasm: Add missing return value on move assignmentGravatar ReinUsesLisp2021-07-221-0/+1
|
* glasm: Fix aliased bitcasts ref countingGravatar ReinUsesLisp2021-07-223-13/+42
|
* glasm: Remove unintentional comma on vector insertGravatar ReinUsesLisp2021-07-221-1/+1
|
* glasm: Implement TEX and TEXS instructionsGravatar ReinUsesLisp2021-07-2210-69/+275
| | | | | Remove lod clamp from texture instructions with lod, as this is not needed (nor supported).
* glasm: Add support for non-2D texture samplesGravatar ReinUsesLisp2021-07-221-4/+26
|
* glasm: Reorder unreachable image instructions to the bottomGravatar ReinUsesLisp2021-07-221-97/+97
|
* glasm: Add support for texture offsetsGravatar ReinUsesLisp2021-07-221-11/+15
|
* glasm: Improve texture sampling instructionsGravatar ReinUsesLisp2021-07-222-50/+70
|
* emit_glasm: Enable ARB_draw_buffers when neededGravatar ReinUsesLisp2021-07-222-1/+5
|
* emit_glasm: Add support for reading position attributesGravatar ReinUsesLisp2021-07-221-3/+13
|
* shader_recompiler: GCC fixesGravatar lat9nq2021-07-227-58/+55
| | | | | Fixes members of unnamed union not being accessible, and one function without a declaration.
* glasm: Implement rest of shared memGravatar ameerj2021-07-222-35/+29
|
* shader: Use a non-trivial dummy to construct ASL node unionGravatar ReinUsesLisp2021-07-221-1/+6
|
* emit_spirv: Jump to loop body with local variableGravatar ReinUsesLisp2021-07-221-1/+1
| | | | Silence unused variable warning
* glasm: Implement derivative instructions on GLASMGravatar ReinUsesLisp2021-07-222-12/+12
|
* glasm: Initial (broken) implementation of TEX on GLASMGravatar ReinUsesLisp2021-07-223-299/+386
|
* glasm: Implement some graphics instructions on GLASMGravatar ReinUsesLisp2021-07-222-6/+5
|
* glasm: Add Void type to GLASM valuesGravatar ReinUsesLisp2021-07-223-0/+15
|
* glasm: Add graphics specific shader declarations to GLASMGravatar ReinUsesLisp2021-07-222-6/+63
|
* glasm: Implement local memory for glasmGravatar ameerj2021-07-224-9/+12
|
* emit_spirv: Add missing block in caseGravatar ReinUsesLisp2021-07-221-1/+2
|
* glasm: Initial implementation of phi nodes on GLASMGravatar ReinUsesLisp2021-07-2212-25/+117
|
* glasm: Write result to scalar on integer comparison instructionsGravatar ReinUsesLisp2021-07-221-10/+10
|
* glasm: Declare NV_shader_thread_group when neededGravatar ReinUsesLisp2021-07-221-3/+4
|
* glasm: Rework control flow introducing a syntax listGravatar ReinUsesLisp2021-07-2233-505/+437
| | | | | This commit regresses VertexA shaders, their transformation pass has to be adapted to the new control flow.
* glasm: Implement Storage atomicsGravatar ameerj2021-07-225-109/+156
| | | | | StorageAtomicExchangeU64 is failing test seemingly due to failure storing 64-bit result into the register
* glasm: Ensure reg alloc order across compilers on GLASMGravatar ReinUsesLisp2021-07-221-11/+14
| | | | | | | | | | | | | | | | | | 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.
* glasm: Enable unintentionally disabled register aliasing on GLASMGravatar ReinUsesLisp2021-07-221-16/+11
|
* glasm: Review all GLASM insts to be aware of register aliasingGravatar ReinUsesLisp2021-07-224-20/+51
|
* glasm: Implement shuffle and vote instructions on GLASMGravatar ReinUsesLisp2021-07-2210-100/+166
|
* glasm: Add MUFU instructions to GLASMGravatar ReinUsesLisp2021-07-222-21/+22
|
* glasm: Implement IAbs64 and INeg64 on GLASMGravatar ReinUsesLisp2021-07-222-6/+6
|
* shader: Add floating-point rounding to I2FGravatar ReinUsesLisp2021-07-223-35/+42
|
* glasm: Properly clamp Fp64 on GLASMGravatar ReinUsesLisp2021-07-221-6/+6
|
* glasm: Fix register allocation when moving immediate on GLASMGravatar ReinUsesLisp2021-07-223-42/+89
|
* glasm: Implement SelectU64 on GLASMGravatar ReinUsesLisp2021-07-222-4/+20
|
* glasm: Fix clamps so the min value has priority on NAN on GLASMGravatar ReinUsesLisp2021-07-221-12/+15
|
* glasm: Fix moving U64 immediates to registers in GLASMGravatar ReinUsesLisp2021-07-222-3/+4
|
* glasm: Implement storage atomic opsGravatar ameerj2021-07-224-305/+358
|
* glasm: Add conversion instructions to GLASMGravatar ReinUsesLisp2021-07-229-282/+351
|
* glasm: Add fp min/max insts and fix store for fp64 on GLASMGravatar ReinUsesLisp2021-07-222-10/+8
|
* glasm: Add logical instructions on GLASMGravatar ReinUsesLisp2021-07-222-12/+12
|
* glasm: Remove duplicated Fp64 pack instructions on GLASMGravatar ReinUsesLisp2021-07-221-8/+0
|
* glasm: Remove unnecesary new white space on Clamp GLASMGravatar ReinUsesLisp2021-07-221-4/+4
|
* glasm: Add floating-point comparisons on GLASMGravatar ReinUsesLisp2021-07-223-120/+116
|
* emit_glasm: Implement more integer alu opsGravatar ameerj2021-07-222-47/+41
|
* glasm: Reimplement bitwise ops and BFI/BFEGravatar ameerj2021-07-224-88/+108
|