Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | 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 | 7 | -58/+55 |
| | | | | | 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 |
| | |||||
* | shader: Use a non-trivial dummy to construct ASL node union | ReinUsesLisp | 2021-07-23 | 1 | -1/+6 |
| | |||||
* | emit_spirv: Jump to loop body with local variable | ReinUsesLisp | 2021-07-23 | 1 | -1/+1 |
| | | | | Silence unused variable warning | ||||
* | 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 |
| | |||||
* | emit_spirv: Add missing block in case | ReinUsesLisp | 2021-07-23 | 1 | -1/+2 |
| | |||||
* | glasm: Initial implementation of phi nodes on GLASM | ReinUsesLisp | 2021-07-23 | 12 | -25/+117 |
| | |||||
* | 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 | 33 | -505/+437 |
| | | | | | 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 | 10 | -100/+166 |
| | |||||
* | 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 |
| | |||||
* | shader: Add floating-point rounding to I2F | ReinUsesLisp | 2021-07-23 | 3 | -35/+42 |
| | |||||
* | 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 | 10 | -840/+1173 |
| | |||||
* | 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 | 28 | -4/+3115 |
| | |||||
* | shader: ISET.X implementation | ameerj | 2021-07-23 | 1 | -8/+58 |
| | |||||
* | shader: Fixup SPIR-V emit header namespaces | ReinUsesLisp | 2021-07-23 | 1 | -2/+2 |
| | |||||
* | Move SPIR-V emission functions to their own header | ReinUsesLisp | 2021-07-23 | 24 | -572/+631 |
| | |||||
* | shader: Optimize NVN Fallthrough | FernandoS27 | 2021-07-23 | 4 | -9/+83 |
| | |||||
* | shader: Stub SR_AFFINITY | FernandoS27 | 2021-07-23 | 1 | -0/+3 |
| | |||||
* | shader: Implement Int32 SUATOM/SURED | ameerj | 2021-07-23 | 17 | -6/+733 |
| | |||||
* | shader: Initial OpenGL implementation | ReinUsesLisp | 2021-07-23 | 3 | -0/+12 |
| | |||||
* | spirv: Be aware of NAN unaware drivers | ReinUsesLisp | 2021-07-23 | 1 | -18/+40 |
| | |||||
* | spirv: Add SSBO read fallbacks when no aliasing is available | ReinUsesLisp | 2021-07-23 | 1 | -37/+99 |
| | |||||
* | spirv: Add OpKill fallback to demote | ReinUsesLisp | 2021-07-23 | 1 | -2/+6 |
| | |||||
* | spirv: Do not enable ShaderLayer | ReinUsesLisp | 2021-07-23 | 1 | -3/+0 |
| | | | | This is enabled by an extension instead of the capability. | ||||
* | spirv: Enable DemoteToHelperInvocationEXT only when supported | ReinUsesLisp | 2021-07-23 | 1 | -1/+1 |
| | |||||
* | spirv: Use OriginLowerLeft when requested | ReinUsesLisp | 2021-07-23 | 1 | -1/+5 |
| | |||||
* | spirv: Only add image operands mask when needed | ReinUsesLisp | 2021-07-23 | 1 | -5/+9 |
| | |||||
* | spirv: Workaround image unsigned offset bug | ReinUsesLisp | 2021-07-23 | 2 | -9/+26 |
| | | | | | Workaround bug on Nvidia's OpenGL SPIR-V compiler when using unsigned texture offsets. | ||||
* | spirv: Add int8 and int16 capabilities only when supported | ReinUsesLisp | 2021-07-23 | 1 | -2/+2 |
| | |||||
* | spirv: Add integer clamping workarounds | ReinUsesLisp | 2021-07-23 | 1 | -4/+34 |
| | | | | Workaround more bugs on Nvidia's OpenGL SPIR-V compiler. | ||||
* | spirv: Implement int8 and int16 conversion fallbacks | ReinUsesLisp | 2021-07-23 | 1 | -19/+80 |
| | |||||
* | spirv: Support OpenGL uniform buffers and change bindings | ReinUsesLisp | 2021-07-23 | 5 | -56/+163 |
| | |||||
* | spirv: Desambiguate descriptor names | ReinUsesLisp | 2021-07-23 | 1 | -9/+37 |
| | | | | | Worksaround a bug on Nvidia's OpenGL SPIR-V compiler where names are used for name matching. | ||||
* | shader: Add OpenGL shader profile options | ReinUsesLisp | 2021-07-23 | 1 | -0/+11 |
| | |||||
* | shader: Remove shader util | ReinUsesLisp | 2021-07-23 | 4 | -176/+0 |
| | |||||
* | shader: Address feedback | FernandoS27 | 2021-07-23 | 4 | -35/+33 |
| | |||||
* | shader: Implement VertexA stage | FernandoS27 | 2021-07-23 | 11 | -0/+166 |
| | |||||
* | shader: Implement delegation of Exit to dispatcher on CFG | FernandoS27 | 2021-07-23 | 2 | -3/+47 |
| | |||||
* | shader: Fix IADD3.CC | ameerj | 2021-07-23 | 1 | -12/+5 |
| | |||||
* | shader: Fix BFE s32 undefined check | ameerj | 2021-07-23 | 1 | -1/+1 |
| | | | | Our unit tests were hitting this exception. | ||||
* | shader: Fix error checking in bitfieldExtract and implement bitfieldInsert folding | ReinUsesLisp | 2021-07-23 | 1 | -5/+14 |
| | |||||
* | shader: Fix storage type when reading patches on tess control | ReinUsesLisp | 2021-07-23 | 1 | -1/+2 |
| | |||||
* | shader: Fix VMNMX selector B | ReinUsesLisp | 2021-07-23 | 1 | -1/+2 |
| | |||||
* | shader: Increase the maximum number of storage buffers | ReinUsesLisp | 2021-07-23 | 1 | -1/+1 |
| | | | | | Compute shaders spill uniform buffers on storage buffers, increasing the expected number. | ||||
* | shader: Remove identity removal pass for better build times | ReinUsesLisp | 2021-07-23 | 1 | -1/+0 |
| | |||||
* | shader: Add more strict validation the pass | ReinUsesLisp | 2021-07-23 | 1 | -0/+42 |
| | |||||
* | shader: Fix forward referencing identity instructions when inserting phi | ReinUsesLisp | 2021-07-23 | 1 | -11/+13 |
| | |||||
* | shader: Remove invalidated blocks in dead code elimination pass | ReinUsesLisp | 2021-07-23 | 1 | -3/+6 |
| | |||||
* | shader: Add missing UndoUse case for GetSparseFromOp | ReinUsesLisp | 2021-07-23 | 1 | -0/+4 |
| | |||||
* | shader: Simplify code in opcodes.h to fix Intellisense | ReinUsesLisp | 2021-07-23 | 1 | -8/+6 |
| | | | | | | | | Avoid using std::array to fix Intellisense not properly compiling this code and disabling itself on all files that include it. While we are at it, change the code to use u8 instead of size_t for the number of instructions in an opcode. | ||||
* | shader: Implement indexed textures | ReinUsesLisp | 2021-07-23 | 7 | -93/+189 |
| | |||||
* | shader: Refactor atomic_operations_global_memory | ameerj | 2021-07-23 | 1 | -44/+36 |
| | |||||
* | shader: add missing include guard in half_floating_point_helper.h | ameerj | 2021-07-23 | 1 | -0/+2 |
| | |||||
* | shader: Fix gcc warnings | ReinUsesLisp | 2021-07-23 | 2 | -2/+2 |
| | |||||
* | shader: Inline common Value getters | ReinUsesLisp | 2021-07-23 | 2 | -109/+102 |
| | |||||
* | shader: Intrusively store in a block if it's sealed or not | ReinUsesLisp | 2021-07-23 | 2 | -3/+11 |
| | |||||
* | cmake: Link to common in shader_recompiler | ReinUsesLisp | 2021-07-23 | 1 | -1/+1 |
| | |||||
* | shader: Improve goto removal algorithm complexity | ReinUsesLisp | 2021-07-23 | 1 | -49/+28 |
| | | | | | Find sibling node containing a nephew searching from the nephew itself instead of the uncle. | ||||
* | shader: Use memset to reset instruction arguments | ReinUsesLisp | 2021-07-23 | 2 | -4/+7 |
| | |||||
* | shader: Inline common Value functions into the header | ReinUsesLisp | 2021-07-23 | 2 | -19/+23 |
| | |||||
* | shader: Move microinstruction header to the value header | ReinUsesLisp | 2021-07-23 | 19 | -180/+161 |
| | |||||
* | shader: Move siblings check to a separate function and comment them out | ReinUsesLisp | 2021-07-23 | 1 | -16/+21 |
| | |||||
* | shader: Intrusively store register values in block for SSA pass | ReinUsesLisp | 2021-07-23 | 2 | -21/+53 |
| | |||||
* | shader: Inline common Opcode and Inst functions | ReinUsesLisp | 2021-07-23 | 4 | -112/+83 |
| | |||||
* | shader: Inline common IR::Block methods | ReinUsesLisp | 2021-07-23 | 2 | -17/+12 |
| | |||||
* | shader: Use a small_vector for phi blocks | ReinUsesLisp | 2021-07-23 | 1 | -1/+2 |
| | |||||
* | shader: Calculate number of arguments in an opcode at compile time | ReinUsesLisp | 2021-07-23 | 1 | -3/+12 |
| | |||||
* | shader: Implement D3D samplers | ReinUsesLisp | 2021-07-23 | 3 | -12/+76 |
| | |||||
* | shader: Add constant propagation for arithmetic right shifts | ReinUsesLisp | 2021-07-23 | 1 | -0/+3 |
| | |||||
* | shader: Simplify code for local memory | ReinUsesLisp | 2021-07-23 | 1 | -6/+11 |
| | |||||
* | shader: Add NVN storage buffer fallbacks | ReinUsesLisp | 2021-07-23 | 9 | -62/+214 |
| | | | | | | | When we can't track the SSBO origin of a global memory instruction, leave it as a global memory operation and assume these pointers are in the NVN storage buffer slots, then apply a linear search in the shader's runtime. | ||||
* | spirv: Fix ViewportMask | ReinUsesLisp | 2021-07-23 | 1 | -1/+2 |
| | |||||
* | spirv: Replace Constant/ConstantComposite with Const helper | ameerj | 2021-07-23 | 12 | -112/+101 |
| | |||||
* | shader: Address feedback | FernandoS27 | 2021-07-23 | 2 | -7/+10 |
| | |||||
* | shader: Implement F2F (Imm) | FernandoS27 | 2021-07-23 | 1 | -2/+28 |
| | |||||
* | shader: Implement IADD3.CC/.X | FernandoS27 | 2021-07-23 | 1 | -7/+22 |
| | |||||
* | shader: Address feedback | FernandoS27 | 2021-07-23 | 4 | -7/+4 |
| | |||||
* | shader: Add coarse derivatives | FernandoS27 | 2021-07-23 | 7 | -8/+28 |
| | |||||
* | shader: Implement fine derivates constant propagation | FernandoS27 | 2021-07-23 | 9 | -0/+101 |
| | |||||
* | shader: Implement SR_Y_DIRECTION | FernandoS27 | 2021-07-23 | 7 | -0/+18 |
| | |||||
* | shader: Fix Phi node types | ReinUsesLisp | 2021-07-23 | 2 | -4/+4 |
| | |||||
* | shader: Fix memory barriers | ReinUsesLisp | 2021-07-23 | 8 | -62/+30 |
| | |||||
* | spirv: Fix implicit lod type | ReinUsesLisp | 2021-07-23 | 2 | -1/+5 |
| | |||||
* | spirv: Use explicit lods outside of fragment shaders | ReinUsesLisp | 2021-07-23 | 1 | -5/+16 |
| | |||||
* | spirv: Use ConstOffset instead of Offset when possible | ReinUsesLisp | 2021-07-23 | 3 | -21/+67 |
| | |||||
* | shader: Implement BFE and BFI CC | ameerj | 2021-07-23 | 3 | -14/+17 |
| | | | | Fix two bugs in BFI. | ||||
* | shader: Implement SampleMask | ReinUsesLisp | 2021-07-23 | 11 | -2/+22 |
| | |||||
* | shader: Implement PIXLD.MY_INDEX | ReinUsesLisp | 2021-07-23 | 13 | -4/+69 |
| | |||||
* | spirv: Bitcast non-F32 output attributes to their type before store | ReinUsesLisp | 2021-07-23 | 1 | -13/+28 |
| | |||||
* | spirv: Implement ViewportMask with NV_viewport_array2 | ReinUsesLisp | 2021-07-23 | 7 | -0/+20 |
| | |||||
* | spirv: Bitcast non-F32 attributes to F32 | ReinUsesLisp | 2021-07-23 | 1 | -7/+9 |
| | |||||
* | shader: Implement PrimitiveId | ReinUsesLisp | 2021-07-23 | 5 | -0/+10 |
| | |||||
* | shader: Implement tessellation shaders, polygon mode and invocation id | ReinUsesLisp | 2021-07-23 | 22 | -88/+555 |
| | |||||
* | shader: Mark atomic instructions as writes | ReinUsesLisp | 2021-07-23 | 1 | -0/+27 |
| | |||||
* | spirv: Implement image buffers | ReinUsesLisp | 2021-07-23 | 5 | -23/+86 |
| | |||||
* | spirv: Implement Layer stores | ReinUsesLisp | 2021-07-23 | 6 | -9/+30 |
| | |||||
* | spirv: Fix alpha test | FernandoS27 | 2021-07-23 | 1 | -0/+5 |
| | |||||
* | spirv: Fix non-atomic 64-bit store | ameerj | 2021-07-23 | 1 | -1/+1 |
| | |||||
* | spirv: Implement alpha test | ameerj | 2021-07-23 | 2 | -1/+59 |
| | |||||
* | shader: Implement transform feedbacks and define file format | ReinUsesLisp | 2021-07-23 | 8 | -16/+116 |
| | |||||
* | shader: Implement early Z tests | ReinUsesLisp | 2021-07-23 | 2 | -0/+4 |
| | |||||
* | shader: Document and relax cache control on surface instructions | ReinUsesLisp | 2021-07-23 | 1 | -10/+11 |
| | |||||
* | spirv: Rework storage buffers and shader memory | ReinUsesLisp | 2021-07-23 | 8 | -499/+553 |
| | |||||
* | shader: Fix fixed pipeline point size on geometry shaders | ReinUsesLisp | 2021-07-23 | 1 | -10/+18 |
| | |||||
* | shader: Add constant propagation for *&^| binary operations | ReinUsesLisp | 2021-07-23 | 1 | -0/+12 |
| | |||||
* | shader: Implement geometry shaders | ReinUsesLisp | 2021-07-23 | 12 | -84/+221 |
| | |||||
* | shader: Implement OUT | ReinUsesLisp | 2021-07-23 | 10 | -17/+73 |
| | |||||
* | internal_stage_buffer_entry_read: Remove pragma optimize off | lat9nq | 2021-07-23 | 1 | -2/+0 |
| | |||||
* | shader: Stub SR_INVOCATION_INFO | ReinUsesLisp | 2021-07-23 | 1 | -2/+5 |
| | |||||
* | shader: Stub ISBERD | ReinUsesLisp | 2021-07-23 | 3 | -4/+56 |
| | |||||
* | shader: Fix CC in I2I | ReinUsesLisp | 2021-07-23 | 1 | -0/+2 |
| | |||||
* | spirv: Define StorageImageWriteWithoutFormat capability when used | ReinUsesLisp | 2021-07-23 | 3 | -0/+9 |
| | |||||
* | shader: Simplify FLO and throw on CC | ReinUsesLisp | 2021-07-23 | 1 | -12/+13 |
| | |||||
* | shader: Mark blocks with no end branch as unreachable | ReinUsesLisp | 2021-07-23 | 1 | -2/+7 |
| | |||||
* | shader: Implement LOP CC | ReinUsesLisp | 2021-07-23 | 3 | -12/+29 |
| | |||||
* | shader: Implement SR_THREAD_KILL | ReinUsesLisp | 2021-07-23 | 10 | -0/+22 |
| | |||||
* | shader: Apply sign bit in FCMP (imm) | ReinUsesLisp | 2021-07-23 | 1 | -1/+1 |
| | |||||
* | shader: Implement ATOM/S and RED | ameerj | 2021-07-23 | 18 | -19/+1724 |
| | |||||
* | spirv: Move phi node patching to a separate function | ReinUsesLisp | 2021-07-23 | 1 | -13/+16 |
| | |||||
* | spirv: Guard against typeless image reads on unsupported devices | ReinUsesLisp | 2021-07-23 | 5 | -1/+16 |
| | |||||
* | shader: Move LaneId to the warp emission file and fix AMD | ReinUsesLisp | 2021-07-23 | 5 | -7/+11 |
| | |||||
* | spirv: Fix forward declarations on phi nodes | ReinUsesLisp | 2021-07-23 | 1 | -47/+25 |
| | |||||
* | shader: Mark ImageWrite with side effects | ReinUsesLisp | 2021-07-23 | 1 | -0/+3 |
| | |||||
* | shader: Implement CC for ISET, FSET, PSET, CSET, and DSET | FernandoS27 | 2021-07-23 | 18 | -13/+136 |
| | | | | Throw when other instructions are missing CC. | ||||
* | shader: Remove outdated comment in F2I | ReinUsesLisp | 2021-07-23 | 1 | -4/+0 |
| | |||||
* | shader: Implement SULD and SUST | ReinUsesLisp | 2021-07-23 | 23 | -137/+597 |
| | |||||
* | shader: Fix Windows build issues | ReinUsesLisp | 2021-07-23 | 1 | -1/+1 |
| | |||||
* | shader: Address feedback + clang format | lat9nq | 2021-07-23 | 11 | -22/+20 |
| | |||||
* | shader_recompiler,video_core: Cleanup some GCC and Clang errors | lat9nq | 2021-07-23 | 59 | -297/+289 |
| | | | | | | | | | | | | | | | | | Mostly fixing unused *, implicit conversion, braced scalar init, fpermissive, and some others. Some Clang errors likely remain in video_core, and std::ranges is still a pertinent issue in shader_recompiler shader_recompiler: cmake: Force bracket depth to 1024 on Clang Increases the maximum fold expression depth thread_worker: Include condition_variable Don't use list initializers in control flow Co-authored-by: ReinUsesLisp <reinuseslisp@airmail.cc> | ||||
* | shader: Fix FCMP immediate variant | ReinUsesLisp | 2021-07-23 | 1 | -1/+9 |
| | |||||
* | shader: Fix dangling labels | ReinUsesLisp | 2021-07-23 | 1 | -0/+5 |
| | |||||
* | shader: Interact texture buffers with buffer cache | ReinUsesLisp | 2021-07-23 | 3 | -29/+29 |
| | |||||
* | shader: Fix F2I | ReinUsesLisp | 2021-07-23 | 1 | -1/+1 |
| | |||||
* | shader: Fix TextureGrad | ReinUsesLisp | 2021-07-23 | 1 | -1/+1 |
| | |||||
* | shader: Implement texture buffers | ReinUsesLisp | 2021-07-23 | 6 | -23/+125 |
| | |||||
* | shader: Address feedback | FernandoS27 | 2021-07-23 | 5 | -53/+54 |
| | |||||
* | shader: Implement indexed Position and ClipDistances | FernandoS27 | 2021-07-23 | 3 | -11/+100 |
| | |||||
* | shader: Implement indexed attributes | FernandoS27 | 2021-07-23 | 12 | -35/+279 |
| | |||||
* | shader: Implement AL2P | FernandoS27 | 2021-07-23 | 3 | -4/+36 |
| | |||||
* | shader: Fix BRX tracking | FernandoS27 | 2021-07-23 | 2 | -3/+4 |
| | |||||
* | shader: Move recursive SSA rewrite to the heap | ReinUsesLisp | 2021-07-23 | 1 | -29/+89 |
| | |||||
* | shader: Fix ShadowCube declaration type, set number of pipeline threads based on hardware | FernandoS27 | 2021-07-23 | 1 | -1/+1 |
| | |||||
* | shader: Fix splits on blocks using indirect branches | ReinUsesLisp | 2021-07-23 | 3 | -17/+38 |
| | |||||
* | shader: Eliminate orphan blocks more efficiently | ReinUsesLisp | 2021-07-23 | 1 | -7/+8 |
| | |||||
* | shader: Add subgroup masks | ReinUsesLisp | 2021-07-23 | 10 | -45/+169 |
| | |||||
* | shader: Implement BAR and fix memory barriers | ReinUsesLisp | 2021-07-23 | 7 | -5/+79 |
| | |||||
* | shader: Abstract breadth searches and use the abstraction | ReinUsesLisp | 2021-07-23 | 4 | -104/+106 |
| | |||||
* | shader: Reimplement GetCbufU64 as GetCbufU32x2 | ReinUsesLisp | 2021-07-23 | 9 | -22/+21 |
| | | | | It may generate better code on some compilers and it's easier to handle. | ||||
* | shader: Remove unused header in VOTE | ReinUsesLisp | 2021-07-23 | 1 | -2/+0 |
| | |||||
* | shader: Rework global memory tracking to use breadth-first search | ReinUsesLisp | 2021-07-23 | 1 | -69/+80 |
| | |||||
* | shader: Fix fp16 merge when using native fp16 | ReinUsesLisp | 2021-07-23 | 1 | -3/+3 |
| | |||||
* | shader: Fix FADD32I | ReinUsesLisp | 2021-07-23 | 1 | -6/+4 |
| | |||||
* | shader: Fix undetected bug from review | FernandoS27 | 2021-07-23 | 1 | -0/+3 |
| | |||||
* | shader: Address feedback | FernandoS27 | 2021-07-23 | 3 | -13/+16 |
| | |||||
* | shader: "Implement" NOP | FernandoS27 | 2021-07-23 | 1 | -1/+1 |
| | |||||
* | shader: Address Feedback | FernandoS27 | 2021-07-23 | 16 | -211/+60 |
| | |||||
* | shader: Implement SR_LaneId | FernandoS27 | 2021-07-23 | 7 | -0/+15 |
| | |||||
* | shader: Fix shared memory on cool drivers | FernandoS27 | 2021-07-23 | 1 | -0/+1 |
| | |||||
* | shader: Implement MEMBAR | FernandoS27 | 2021-07-23 | 9 | -11/+121 |
| | |||||
* | shader: Improve VOTE.VTG stub | FernandoS27 | 2021-07-23 | 7 | -4/+147 |
| | |||||
* | shader: Mark SSBOs as written when they are | FernandoS27 | 2021-07-23 | 2 | -2/+30 |
| | |||||
* | shader: Implement ViewportIndex | FernandoS27 | 2021-07-23 | 7 | -2/+32 |
| | |||||
* | shader: Stub TLD4's PTP when it isn't constant | FernandoS27 | 2021-07-23 | 1 | -1/+2 |
| | |||||
* | shader: Stub VOTE.VTG | FernandoS27 | 2021-07-23 | 4 | -4/+15 |
| | |||||
* | shader: Fold composite extract | FernandoS27 | 2021-07-23 | 1 | -0/+62 |
| | |||||
* | shader: Fold comparisons and Pack/Unpack16 | FernandoS27 | 2021-07-23 | 1 | -1/+41 |
| | |||||
* | shader: Fix branches to visited virtual blocks | ReinUsesLisp | 2021-07-23 | 2 | -0/+12 |
| | |||||
* | shader: Fix dependency on identity removal pass | ReinUsesLisp | 2021-07-23 | 2 | -3/+8 |
| | |||||
* | shader: Fix constant propagation to use reverse post order | ReinUsesLisp | 2021-07-23 | 1 | -1/+2 |
| | |||||
* | shader: Implement LDG .U.128 as .128 | ReinUsesLisp | 2021-07-23 | 1 | -3/+2 |
| | |||||
* | shader: Unroll "using enum" for opcode declarations | ReinUsesLisp | 2021-07-23 | 1 | -1/+27 |
| | |||||
* | spirv: Remove unnecesary variable for clip distances | ReinUsesLisp | 2021-07-23 | 2 | -6/+2 |
| | |||||
* | shader: Implement ClipDistance | FernandoS27 | 2021-07-23 | 5 | -0/+36 |
| | |||||
* | shader: Fix TXD | FernandoS27 | 2021-07-23 | 2 | -2/+2 |
| | |||||
* | shader: Address feedback | FernandoS27 | 2021-07-23 | 4 | -52/+48 |
| | |||||
* | shader: Always pass a lod for TexelFetch | ReinUsesLisp | 2021-07-23 | 3 | -25/+17 |
| | |||||
* | shader: Implement TXD | FernandoS27 | 2021-07-23 | 4 | -10/+183 |
| | |||||
* | shader: Implement ImageGradient | FernandoS27 | 2021-07-23 | 8 | -2/+84 |
| | |||||
* | shader: Implement TMML partially | FernandoS27 | 2021-07-23 | 6 | -13/+137 |
| | |||||
* | shader,spirv: Implement ImageQueryLod. | FernandoS27 | 2021-07-23 | 9 | -1/+38 |
| | |||||
* | shader: Implement TLDS | FernandoS27 | 2021-07-23 | 3 | -4/+253 |
| | |||||
* | shader: Implement TLD | FernandoS27 | 2021-07-23 | 7 | -14/+173 |
| | |||||
* | spirv: Add fixed pipeline point size | ReinUsesLisp | 2021-07-23 | 3 | -1/+8 |
| | |||||
* | shader: Add PointCoord attribute | FernandoS27 | 2021-07-23 | 5 | -0/+16 |
| | |||||
* | shader: Add PointSize attribute | ameerj | 2021-07-23 | 5 | -0/+13 |
| | |||||
* | shader: Store type of phi nodes in flags | ReinUsesLisp | 2021-07-23 | 3 | -2/+11 |
| | | | | This is needed because pseudo-instructions where invalidated. | ||||
* | shader: Fix indirect branches to scheduler instructions | ReinUsesLisp | 2021-07-23 | 3 | -7/+17 |
| | |||||
* | spirv: Fix default output attribute initialization | ReinUsesLisp | 2021-07-23 | 1 | -3/+3 |
| | |||||
* | shader: Add missing new lines | ReinUsesLisp | 2021-07-23 | 1 | -0/+2 |
| | |||||
* | shader: Implement FSWZADD | ameerj | 2021-07-23 | 14 | -4/+87 |
| | |||||
* | shader: Implement BRX | FernandoS27 | 2021-07-23 | 20 | -47/+388 |
| | |||||
* | shader: Fix alignment checks on RZ | ReinUsesLisp | 2021-07-23 | 1 | -1/+1 |
| | |||||
* | shader: Implement I2I CC | ameerj | 2021-07-23 | 3 | -24/+45 |
| | |||||
* | shader: Implement I2I SAT | ameerj | 2021-07-23 | 6 | -10/+52 |
| | |||||
* | shader: Fix ISCADD logic for PO/CC | ameerj | 2021-07-23 | 1 | -7/+8 |
| | |||||
* | shader: Implement LDS, STS, LDL, and STS and use SPIR-V 1.4 when available | ReinUsesLisp | 2021-07-23 | 17 | -17/+626 |
| | |||||
* | shader: Implement ISCADD CC | ameerj | 2021-07-23 | 1 | -1/+4 |
| | |||||
* | shader: Implement VMAD, VMNMX, VSETP | ameerj | 2021-07-23 | 9 | -23/+319 |
| | |||||
* | shader: Add missing I2I exception when CC is used | ReinUsesLisp | 2021-07-23 | 1 | -0/+4 |
| | |||||
* | shader: Better interpolation and disabled attributes support | ReinUsesLisp | 2021-07-23 | 7 | -23/+96 |
| | |||||
* | spirv: Remove dependencies on Environment when generating SPIR-V | ReinUsesLisp | 2021-07-23 | 4 | -9/+12 |
| | |||||
* | shader: Implement front face | ReinUsesLisp | 2021-07-23 | 5 | -0/+12 |
| | |||||
* | shader: Fix structured control flow on KIL instructions | ReinUsesLisp | 2021-07-23 | 2 | -3/+7 |
| | | | | | This could potentially leave unvisited blocks, leading to illegal phi nodes. | ||||
* | shader: Fix TXQ | FernandoS27 | 2021-07-23 | 1 | -1/+1 |
| | |||||
* | shader: Implement TXQ and fix FragDepth | ReinUsesLisp | 2021-07-23 | 14 | -21/+172 |
| | |||||
* | shader: Refactor PTP and other minor changes | ReinUsesLisp | 2021-07-23 | 14 | -123/+67 |
| | |||||
* | shader: Add IR opcode for ImageFetch | FernandoS27 | 2021-07-23 | 7 | -5/+55 |
| | |||||
* | shader: Implement TLD4.PTP | FernandoS27 | 2021-07-23 | 15 | -28/+111 |
| | |||||
* | shader: Fix Array Indices in TEX/TLD4 | FernandoS27 | 2021-07-23 | 2 | -6/+6 |
| | |||||
* | shader: Implement FragDepth | FernandoS27 | 2021-07-23 | 2 | -1/+7 |
| | |||||
* | shader: Implement TLD4S. | FernandoS27 | 2021-07-23 | 3 | -4/+134 |
| | |||||
* | shader: Implement TLD4 and TLD4_B | FernandoS27 | 2021-07-23 | 13 | -11/+315 |
| | |||||
* | shader: Implement SHFL | ameerj | 2021-07-23 | 16 | -69/+284 |
| | |||||
* | shader: Track first bindless argument instead of the instruction itself | ReinUsesLisp | 2021-07-23 | 1 | -1/+1 |
| | |||||
* | shader: Properly insert Prologue instruction | ReinUsesLisp | 2021-07-23 | 1 | -1/+2 |
| | |||||
* | shader: Minor style nits | ReinUsesLisp | 2021-07-23 | 1 | -2/+4 |
| | |||||
* | shader: Fix F2I | FernandoS27 | 2021-07-23 | 10 | -9/+147 |
| | |||||
* | shader: Implement NDC [-1, 1], attribute types and default varying initialization | ReinUsesLisp | 2021-07-23 | 12 | -40/+149 |
| | |||||
* | shader: Fix use-after-free bug in object_pool | ReinUsesLisp | 2021-07-23 | 1 | -3/+3 |
| | |||||
* | shader: Implement VOTE | ameerj | 2021-07-23 | 14 | -5/+167 |
| | |||||
* | shader: Fix TEX mask | ReinUsesLisp | 2021-07-23 | 1 | -1/+3 |
| | |||||
* | vk_pipeline_cache: Add pipeline cache | ReinUsesLisp | 2021-07-23 | 4 | -8/+15 |
| | |||||
* | shader: Fold interpolation multiplications | ReinUsesLisp | 2021-07-23 | 1 | -0/+34 |
| | |||||
* | shader: Better but still partial interpolation support | ReinUsesLisp | 2021-07-23 | 1 | -5/+7 |
| | |||||
* | shader: Implement DMNMX, DSET, DSETP | ameerj | 2021-07-23 | 15 | -59/+208 |
| | |||||
* | shader: Implement FADD32I | FernandoS27 | 2021-07-23 | 1 | -2/+15 |
| | |||||
* | shader: Implement F2F | FernandoS27 | 2021-07-23 | 6 | -20/+192 |
| | |||||
* | shader: Add missing fp64 usage flags | ReinUsesLisp | 2021-07-23 | 1 | -0/+34 |
| | |||||
* | shader: Implement DMUL and DFMA | ameerj | 2021-07-23 | 8 | -30/+111 |
| | | | | Also add a missing const on DADD | ||||
* | shader: Add FP64 register load/store helpers | ameerj | 2021-07-23 | 3 | -21/+24 |
| | |||||
* | shader: Add support for fp16 comparisons and misc fixes | ReinUsesLisp | 2021-07-23 | 11 | -14/+56 |
| | |||||
* | shader: Fix floating point comparison for FP16 | FernandoS27 | 2021-07-23 | 5 | -32/+56 |
| | |||||
* | shader: Implement HSETP2 | FernandoS27 | 2021-07-23 | 3 | -12/+117 |
| | |||||
* | shader: Implement HSET2 | FernandoS27 | 2021-07-23 | 5 | -14/+119 |
| | |||||
* | shader: Implement HMUL2 | FernandoS27 | 2021-07-23 | 3 | -16/+144 |
| | |||||
* | shader: Implement HFMA2 | FernandoS27 | 2021-07-23 | 5 | -20/+192 |
| | |||||
* | spirv: Implement VertexId and InstanceId, refactor code | ReinUsesLisp | 2021-07-23 | 9 | -144/+243 |
| | |||||
* | shader: Refactor half floating instructions | FernandoS27 | 2021-07-23 | 4 | -58/+84 |
| | |||||
* | shader: Implement I2F | ReinUsesLisp | 2021-07-23 | 16 | -69/+427 |
| | |||||
* | shader: Implement ISCADD (imm) | ReinUsesLisp | 2021-07-23 | 1 | -2/+2 |
| | |||||
* | shader: Implement LOP32I | ReinUsesLisp | 2021-07-23 | 2 | -18/+45 |
| | |||||
* | shader: Add partial rasterizer integration | ReinUsesLisp | 2021-07-23 | 34 | -156/+629 |
| | |||||
* | shader: Implement DADD | ameerj | 2021-07-23 | 8 | -14/+132 |
| | |||||
* | shader: Implement CSET and CSETP | ameerj | 2021-07-23 | 6 | -15/+114 |
| | |||||
* | shader: Reorder phi nodes when redefined as undefined opcodes | ReinUsesLisp | 2021-07-23 | 1 | -1/+9 |
| | |||||
* | shader: Fix instruction transitions in and out of Phi | ReinUsesLisp | 2021-07-23 | 1 | -9/+11 |
| | |||||
* | shader: Implement FSET and FSETP | ameerj | 2021-07-23 | 9 | -94/+204 |
| | | | | Also fix oversight with adding SignedZeroInfNanPreserve execution mode. | ||||
* | shader: Implement TEXS | ReinUsesLisp | 2021-07-23 | 8 | -7/+287 |
| | |||||
* | shader: Implement CAL inlining function calls | ReinUsesLisp | 2021-07-23 | 24 | -330/+286 |
| | |||||
* | spirv: Add SignedZeroInfNanPreserve logic | ameerj | 2021-07-23 | 2 | -0/+8 |
| | |||||
* | shader: Implement FMNMX | ameerj | 2021-07-23 | 8 | -25/+101 |
| | | | | And add a const in FCMP | ||||
* | shader: Fix rebase issue | ReinUsesLisp | 2021-07-23 | 1 | -1/+0 |
| | |||||
* | shader: Implement FCMP | ameerj | 2021-07-23 | 9 | -50/+203 |
| | | | | still need to configure some settings for NV denorm flush and intel NaN | ||||
* | shader: Partial implementation of LDC | ReinUsesLisp | 2021-07-23 | 16 | -50/+405 |
| | |||||
* | shader: Initial support for textures and TEX | ReinUsesLisp | 2021-07-23 | 29 | -341/+1378 |
| | |||||
* | shader: Implement R2P | ameerj | 2021-07-23 | 8 | -15/+88 |
| | |||||
* | shader: Implement SHF | ameerj | 2021-07-23 | 8 | -31/+119 |
| | |||||
* | shader: Implement LEA | ameerj | 2021-07-23 | 9 | -29/+136 |
| | |||||
* | shader: Deduplicate HADD2 code | ReinUsesLisp | 2021-07-23 | 1 | -19/+16 |
| | |||||
* | shader: Implement I2I | ameerj | 2021-07-23 | 3 | -12/+100 |
| | |||||
* | shader: Implement HADD2 | ReinUsesLisp | 2021-07-23 | 12 | -42/+400 |
| | |||||
* | shader: Implement LOP and LOP3 | ameerj | 2021-07-23 | 8 | -31/+227 |
| | |||||
* | shader: Implement IADD3 | ameerj | 2021-07-23 | 3 | -12/+104 |
| | |||||
* | shader: Implement PSETP | ameerj | 2021-07-23 | 4 | -5/+40 |
| | |||||
* | Implement PSET, refactor common comparison funcs | ameerj | 2021-07-23 | 9 | -101/+88 |
| | |||||
* | shader: Implement FLO | ameerj | 2021-07-23 | 8 | -18/+75 |
| | |||||
* | shader: Implement ISET, add common_funcs | ameerj | 2021-07-23 | 8 | -50/+150 |
| | |||||
* | shader: Make IMNMX, SHR, SEL stylistically more consistent | ameerj | 2021-07-23 | 3 | -5/+5 |
| | |||||
* | shader: Implement ICMP | ameerj | 2021-07-23 | 3 | -16/+84 |
| | |||||
* | shader: Implement IMNMX | ameerj | 2021-07-23 | 8 | -12/+105 |
| | |||||
* | shader: Implement BFI | ameerj | 2021-07-23 | 3 | -16/+57 |
| | |||||
* | shader: Implement BFE | ameerj | 2021-07-23 | 3 | -12/+67 |
| | |||||
* | shader: Implement POPC | ameerj | 2021-07-23 | 8 | -12/+59 |
| | |||||
* | shader: Implement SHR | ameerj | 2021-07-23 | 8 | -18/+80 |
| | |||||
* | shader: Implement SEL | ameerj | 2021-07-23 | 4 | -16/+53 |
| | |||||
* | spirv: Move phi arguments emit to a separate function | ReinUsesLisp | 2021-07-23 | 1 | -27/+27 |
| | |||||
* | shader: Avoid infinite recursion when tracking global memory | ReinUsesLisp | 2021-07-23 | 1 | -5/+26 |
| | |||||
* | shader: Fix conditional execution of exit instructions | ReinUsesLisp | 2021-07-23 | 2 | -5/+6 |
| | |||||
* | spirv: Add support for self-referencing phi nodes | ReinUsesLisp | 2021-07-23 | 1 | -3/+10 |
| | |||||
* | shader: Fix control flow | ReinUsesLisp | 2021-07-23 | 8 | -20/+39 |
| | |||||
* | shader: Implement more of XMAD and FFMA32I and fix XMAD.CBCC | ReinUsesLisp | 2021-07-23 | 5 | -28/+76 |
| | |||||
* | shader: FMUL, select, RRO, and MUFU fixes | ReinUsesLisp | 2021-07-23 | 18 | -119/+507 |
| | |||||
* | shader: Fix MOV(reg), add SHL variants and emit neg and abs instructions | ReinUsesLisp | 2021-07-23 | 4 | -11/+11 |
| | |||||
* | spirv: Fixes and Intel specific workarounds | ReinUsesLisp | 2021-07-23 | 10 | -32/+43 |
| | |||||
* | shader: Rename, implement FADD.SAT and P2R (imm) | ReinUsesLisp | 2021-07-23 | 17 | -125/+211 |
| | |||||
* | shader: Add denorm flush support | ReinUsesLisp | 2021-07-23 | 15 | -60/+210 |
| | |||||
* | spirv: Add lower fp16 to fp32 pass | ReinUsesLisp | 2021-07-23 | 28 | -276/+465 |
| | |||||
* | shader: Primitive Vulkan integration | ReinUsesLisp | 2021-07-23 | 28 | -498/+573 |
| | |||||
* | shader: Add XMAD multiplication folding optimization | ReinUsesLisp | 2021-07-23 | 1 | -5/+77 |
| | |||||
* | shader: Simplify ISCADD | ReinUsesLisp | 2021-07-23 | 1 | -6/+1 |
| | |||||
* | shader: Add utility to resolve identities on a value | ReinUsesLisp | 2021-07-23 | 2 | -0/+8 |
| | |||||
* | spirv: Implement EmitIdentity | ReinUsesLisp | 2021-07-23 | 2 | -3/+3 |
| | |||||
* | spirv: Initial bindings support | ReinUsesLisp | 2021-07-23 | 22 | -292/+671 |
| | |||||
* | shader: Improve object pool | ReinUsesLisp | 2021-07-23 | 3 | -50/+66 |
| | |||||
* | shader: Fix tracking | ReinUsesLisp | 2021-07-23 | 1 | -50/+72 |
| | |||||
* | shader: Add support for forward declarations | ReinUsesLisp | 2021-07-23 | 10 | -68/+79 |
| | |||||
* | shader: Support SSA loops on IR | ReinUsesLisp | 2021-07-23 | 12 | -46/+150 |
| | |||||
* | shader: Misc fixes | ReinUsesLisp | 2021-07-23 | 10 | -89/+104 |
| | |||||
* | shader: Initial implementation of an AST | ReinUsesLisp | 2021-07-23 | 32 | -589/+1345 |
| | |||||
* | spirv: Initial SPIR-V support | ReinUsesLisp | 2021-07-23 | 18 | -34/+1400 |
| | |||||
* | shader: Better constant folding | ReinUsesLisp | 2021-07-23 | 2 | -13/+48 |
| | |||||
* | shader: Properly store phi on Inst | ReinUsesLisp | 2021-07-23 | 6 | -75/+132 |
| | |||||
* | shader: Add pools and rename files | ReinUsesLisp | 2021-07-23 | 30 | -108/+255 |
| | |||||
* | shader: Make typed IR | ReinUsesLisp | 2021-07-23 | 19 | -269/+495 |
| | |||||
* | shader: Remove illegal character in SSA pass | ReinUsesLisp | 2021-07-23 | 1 | -1/+1 |
| | |||||
* | shader: Constant propagation and global memory to storage buffer | ReinUsesLisp | 2021-07-23 | 17 | -63/+652 |
| | |||||
* | shader: Initial instruction support | ReinUsesLisp | 2021-07-23 | 28 | -334/+1450 |
| | |||||
* | shader: SSA and dominance | ReinUsesLisp | 2021-07-23 | 24 | -77/+570 |
| | |||||
* | shader: Initial recompiler work | ReinUsesLisp | 2021-07-23 | 56 | -0/+7060 |