Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | gl_shader_cache,glasm: Conditionally use typeless image reads extension | ReinUsesLisp | 2021-07-23 | 1 | -2/+4 |
| | |||||
* | glasm: Implement forced early Z | ReinUsesLisp | 2021-07-23 | 1 | -2/+6 |
| | |||||
* | glasm: Simplify patch reads | ReinUsesLisp | 2021-07-23 | 1 | -5/+2 |
| | |||||
* | glasm: Fix output patch reads | ReinUsesLisp | 2021-07-23 | 2 | -13/+22 |
| | | | | With this, Luigi's Mansion's sand renders properly. | ||||
* | shader: Split profile and runtime information in separate structs | ReinUsesLisp | 2021-07-23 | 4 | -33/+38 |
| | |||||
* | emit_glasm_context_get_and_set.cpp: Add missing semicolons | ameerj | 2021-07-23 | 1 | -2/+2 |
| | |||||
* | glasm: Fix patch attribute declarations | ReinUsesLisp | 2021-07-23 | 1 | -1/+1 |
| | |||||
* | glasm: Implement FSWZADD | ameerj | 2021-07-23 | 3 | -4/+28 |
| | |||||
* | glasm: Implement PrimitiveId attribute read | ReinUsesLisp | 2021-07-23 | 1 | -0/+3 |
| | |||||
* | glasm: Implement clip distance stores | ReinUsesLisp | 2021-07-23 | 2 | -0/+15 |
| | |||||
* | glasm: Fix tessellation input attributes | ReinUsesLisp | 2021-07-23 | 1 | -2/+5 |
| | |||||
* | glasm: Add missing semicolon on tesscoord reading | ReinUsesLisp | 2021-07-23 | 1 | -1/+1 |
| | |||||
* | glasm: Fix tessellation headers | ReinUsesLisp | 2021-07-23 | 1 | -2/+2 |
| | |||||
* | glasm: Add tessellation shader declarations | ReinUsesLisp | 2021-07-23 | 1 | -0/+35 |
| | |||||
* | glasm: Implement TessellationEvaluationPoint | ReinUsesLisp | 2021-07-23 | 1 | -0/+4 |
| | |||||
* | glasm: Implement patch memory | ReinUsesLisp | 2021-07-23 | 3 | -6/+51 |
| | |||||
* | glasm: Fix InvocationId declaration | ReinUsesLisp | 2021-07-23 | 1 | -1/+1 |
| | |||||
* | glasm: Implement InvocationId | ReinUsesLisp | 2021-07-23 | 2 | -2/+5 |
| | |||||
* | glasm: Optimize EmitVertex into EMIT | ReinUsesLisp | 2021-07-23 | 1 | -1/+5 |
| | |||||
* | glasm: Implement geometry shader attribute reads | ReinUsesLisp | 2021-07-23 | 2 | -4/+18 |
| | |||||
* | glasm: Properly declare attributes on geometry programs | ReinUsesLisp | 2021-07-23 | 3 | -6/+14 |
| | |||||
* | glasm: Declare geometry program headers | ReinUsesLisp | 2021-07-23 | 1 | -0/+35 |
| | |||||
* | glasm: Fix potential aliasing bug on cube array samples | ReinUsesLisp | 2021-07-23 | 2 | -35/+44 |
| | |||||
* | glasm: Implement ImageWrite | ReinUsesLisp | 2021-07-23 | 1 | -4/+7 |
| | |||||
* | glasm: Implement ImageRead | ReinUsesLisp | 2021-07-23 | 4 | -4/+56 |
| | |||||
* | glasm: Implement EmitVertex and EndPrimitive | ReinUsesLisp | 2021-07-23 | 2 | -4/+8 |
| | |||||
* | glasm: Implement ImageGradient | ReinUsesLisp | 2021-07-23 | 2 | -7/+65 |
| | |||||
* | glasm: Implement 64-bit shifts | ReinUsesLisp | 2021-07-23 | 2 | -12/+14 |
| | |||||
* | glasm: Implement barriers | ReinUsesLisp | 2021-07-23 | 1 | -3/+3 |
| | |||||
* | glasm: Fix compute stage name | ReinUsesLisp | 2021-07-23 | 1 | -1/+1 |
| | |||||
* | glasm: Fix phi instruction types | ReinUsesLisp | 2021-07-23 | 1 | -1/+1 |
| | |||||
* | glasm: Implement PREC on relevant instructions | ReinUsesLisp | 2021-07-23 | 1 | -6/+12 |
| | |||||
* | glasm: Implement stores to gl_ViewportIndex | ReinUsesLisp | 2021-07-23 | 4 | -7/+29 |
| | |||||
* | glasm: Implement gl_PointSize stores | ReinUsesLisp | 2021-07-23 | 1 | -0/+3 |
| | |||||
* | glasm: Implement gl_PointCoord | ReinUsesLisp | 2021-07-23 | 1 | -0/+4 |
| | |||||
* | glasm: Implement ImageQueryLod | ReinUsesLisp | 2021-07-23 | 1 | -3/+5 |
| | |||||
* | glasm: Implement ImageFetch | ReinUsesLisp | 2021-07-23 | 4 | -13/+38 |
| | |||||
* | glasm: Implement IADD.CC | ameerj | 2021-07-23 | 1 | -1/+26 |
| | |||||
* | glasm: Implement BFE.CC | ReinUsesLisp | 2021-07-23 | 1 | -0/+8 |
| | |||||
* | glasm: Implement SelectU1 | ReinUsesLisp | 2021-07-23 | 2 | -4/+5 |
| | |||||
* | glasm: Implement gl_WorkGroupID | ReinUsesLisp | 2021-07-23 | 2 | -3/+3 |
| | |||||
* | glasm: Implement TXQ and improve texture info reads | ReinUsesLisp | 2021-07-23 | 2 | -50/+51 |
| | |||||
* | glasm: Implement gl_FrongFacing attribute | ReinUsesLisp | 2021-07-23 | 1 | -0/+3 |
| | |||||
* | glasm: Support textures used in more than one stage | ReinUsesLisp | 2021-07-23 | 3 | -4/+24 |
| | |||||
* | glasm: Implement textureGather instructions | ReinUsesLisp | 2021-07-23 | 2 | -15/+97 |
| | |||||
* | glasm: Implement gl_FragDepth and gl_SampleMask stores | ReinUsesLisp | 2021-07-23 | 2 | -5/+5 |
| | |||||
* | glasm: Do not alias ConditionRef for now | ReinUsesLisp | 2021-07-23 | 2 | -3/+2 |
| | | | | | Immediate condition refs where not handled correctly. Just move the value for now. | ||||
* | shader: Read branch conditions from an instruction | ReinUsesLisp | 2021-07-23 | 5 | -3/+9 |
| | | | | Fixes the identity removal pass. | ||||
* | glasm: Implement InstanceId and VertexId | ReinUsesLisp | 2021-07-23 | 1 | -0/+6 |
| | |||||
* | glasm: Add missing return value on move assignment | ReinUsesLisp | 2021-07-23 | 1 | -0/+1 |
| | |||||
* | glasm: Fix aliased bitcasts ref counting | ReinUsesLisp | 2021-07-23 | 3 | -13/+42 |
| | |||||
* | glasm: Remove unintentional comma on vector insert | ReinUsesLisp | 2021-07-23 | 1 | -1/+1 |
| | |||||
* | glasm: Implement TEX and TEXS instructions | ReinUsesLisp | 2021-07-23 | 4 | -41/+252 |
| | | | | | Remove lod clamp from texture instructions with lod, as this is not needed (nor supported). | ||||
* | glasm: Add support for non-2D texture samples | ReinUsesLisp | 2021-07-23 | 1 | -4/+26 |
| | |||||
* | glasm: Reorder unreachable image instructions to the bottom | ReinUsesLisp | 2021-07-23 | 1 | -97/+97 |
| | |||||
* | glasm: Add support for texture offsets | ReinUsesLisp | 2021-07-23 | 1 | -11/+15 |
| | |||||
* | glasm: Improve texture sampling instructions | ReinUsesLisp | 2021-07-23 | 2 | -50/+70 |
| | |||||
* | emit_glasm: Enable ARB_draw_buffers when needed | ReinUsesLisp | 2021-07-23 | 2 | -1/+5 |
| | |||||
* | emit_glasm: Add support for reading position attributes | ReinUsesLisp | 2021-07-23 | 1 | -3/+13 |
| | |||||
* | shader_recompiler: GCC fixes | lat9nq | 2021-07-23 | 2 | -9/+9 |
| | | | | | Fixes members of unnamed union not being accessible, and one function without a declaration. | ||||
* | glasm: Implement rest of shared mem | ameerj | 2021-07-23 | 2 | -35/+29 |
| | |||||
* | glasm: Implement derivative instructions on GLASM | ReinUsesLisp | 2021-07-23 | 2 | -12/+12 |
| | |||||
* | glasm: Initial (broken) implementation of TEX on GLASM | ReinUsesLisp | 2021-07-23 | 3 | -299/+386 |
| | |||||
* | glasm: Implement some graphics instructions on GLASM | ReinUsesLisp | 2021-07-23 | 2 | -6/+5 |
| | |||||
* | glasm: Add Void type to GLASM values | ReinUsesLisp | 2021-07-23 | 3 | -0/+15 |
| | |||||
* | glasm: Add graphics specific shader declarations to GLASM | ReinUsesLisp | 2021-07-23 | 2 | -6/+63 |
| | |||||
* | glasm: Implement local memory for glasm | ameerj | 2021-07-23 | 4 | -9/+12 |
| | |||||
* | glasm: Initial implementation of phi nodes on GLASM | ReinUsesLisp | 2021-07-23 | 3 | -8/+81 |
| | |||||
* | glasm: Write result to scalar on integer comparison instructions | ReinUsesLisp | 2021-07-23 | 1 | -10/+10 |
| | |||||
* | glasm: Declare NV_shader_thread_group when needed | ReinUsesLisp | 2021-07-23 | 1 | -3/+4 |
| | |||||
* | glasm: Rework control flow introducing a syntax list | ReinUsesLisp | 2021-07-23 | 4 | -39/+42 |
| | | | | | This commit regresses VertexA shaders, their transformation pass has to be adapted to the new control flow. | ||||
* | glasm: Implement Storage atomics | ameerj | 2021-07-23 | 5 | -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 GLASM | ReinUsesLisp | 2021-07-23 | 1 | -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 GLASM | ReinUsesLisp | 2021-07-23 | 1 | -16/+11 |
| | |||||
* | glasm: Review all GLASM insts to be aware of register aliasing | ReinUsesLisp | 2021-07-23 | 4 | -20/+51 |
| | |||||
* | glasm: Implement shuffle and vote instructions on GLASM | ReinUsesLisp | 2021-07-23 | 6 | -97/+158 |
| | |||||
* | glasm: Add MUFU instructions to GLASM | ReinUsesLisp | 2021-07-23 | 2 | -21/+22 |
| | |||||
* | glasm: Implement IAbs64 and INeg64 on GLASM | ReinUsesLisp | 2021-07-23 | 2 | -6/+6 |
| | |||||
* | glasm: Properly clamp Fp64 on GLASM | ReinUsesLisp | 2021-07-23 | 1 | -6/+6 |
| | |||||
* | glasm: Fix register allocation when moving immediate on GLASM | ReinUsesLisp | 2021-07-23 | 3 | -42/+89 |
| | |||||
* | glasm: Implement SelectU64 on GLASM | ReinUsesLisp | 2021-07-23 | 2 | -4/+20 |
| | |||||
* | glasm: Fix clamps so the min value has priority on NAN on GLASM | ReinUsesLisp | 2021-07-23 | 1 | -12/+15 |
| | |||||
* | glasm: Fix moving U64 immediates to registers in GLASM | ReinUsesLisp | 2021-07-23 | 2 | -3/+4 |
| | |||||
* | glasm: Implement storage atomic ops | ameerj | 2021-07-23 | 4 | -305/+358 |
| | |||||
* | glasm: Add conversion instructions to GLASM | ReinUsesLisp | 2021-07-23 | 9 | -282/+351 |
| | |||||
* | glasm: Add fp min/max insts and fix store for fp64 on GLASM | ReinUsesLisp | 2021-07-23 | 2 | -10/+8 |
| | |||||
* | glasm: Add logical instructions on GLASM | ReinUsesLisp | 2021-07-23 | 2 | -12/+12 |
| | |||||
* | glasm: Remove duplicated Fp64 pack instructions on GLASM | ReinUsesLisp | 2021-07-23 | 1 | -8/+0 |
| | |||||
* | glasm: Remove unnecesary new white space on Clamp GLASM | ReinUsesLisp | 2021-07-23 | 1 | -4/+4 |
| | |||||
* | glasm: Add floating-point comparisons on GLASM | ReinUsesLisp | 2021-07-23 | 3 | -120/+116 |
| | |||||
* | emit_glasm: Implement more integer alu ops | ameerj | 2021-07-23 | 2 | -47/+41 |
| | |||||
* | glasm: Reimplement bitwise ops and BFI/BFE | ameerj | 2021-07-23 | 4 | -88/+108 |
| | |||||
* | glasm: Initial GLASM fp64 support | ReinUsesLisp | 2021-07-23 | 9 | -55/+152 |
| | |||||
* | glasm: Implement GLASM fp16 packing and move bitwise insns | ReinUsesLisp | 2021-07-23 | 4 | -66/+77 |
| | |||||
* | glasm: Remove unused functions left from rebase | ReinUsesLisp | 2021-07-23 | 1 | -12/+0 |
| | |||||
* | glasm: Specify namespace when using FormatTo | ReinUsesLisp | 2021-07-23 | 1 | -6/+6 |
| | |||||
* | glasm: Implement more GLASM composite instructions | ReinUsesLisp | 2021-07-23 | 2 | -54/+63 |
| | |||||
* | glasm: Make GLASM aware of types | ReinUsesLisp | 2021-07-23 | 12 | -1244/+1380 |
| | |||||
* | glasm: Use CMP.S for Select32 | ameerj | 2021-07-23 | 3 | -12/+8 |
| | | | | also fixes ADD and SUB to use U modifier | ||||
* | glasm: Implement more logical ops | ameerj | 2021-07-23 | 2 | -5/+5 |
| | |||||
* | glasm: Implement BFI, BFE | ameerj | 2021-07-23 | 4 | -138/+164 |
| | | | | Along with implementations of common instructions along the way | ||||
* | glasm: Use BitField instead of C bitfields | ReinUsesLisp | 2021-07-23 | 2 | -8/+12 |
| | |||||
* | glasm: Remove unused argument in identity instructions on GLASM | ReinUsesLisp | 2021-07-23 | 1 | -7/+7 |
| | |||||
* | glasm: Implement basic GLASM instructions | ReinUsesLisp | 2021-07-23 | 9 | -840/+1167 |
| | |||||
* | glasm: Changes to GLASM register allocator and emit context | ReinUsesLisp | 2021-07-23 | 4 | -26/+64 |
| | |||||
* | glasm: Add GLASM backend infrastructure | ReinUsesLisp | 2021-07-23 | 26 | -0/+3079 |