Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | ShaderCache: Fix Phi Nodes Type on OGL. | Fernando Sahmkow | 2021-11-01 | 1 | -0/+4 |
| | |||||
* | ShaderCache: Order Phi Arguments from farthest away to nearest. | Fernando Sahmkow | 2021-10-31 | 3 | -0/+28 |
| | |||||
* | Merge pull request #6722 from ReinUsesLisp/xmad-opts | bunnei | 2021-07-30 | 1 | -0/+8 |
|\ | | | | | shader: Fold integer FMA from Nvidia's pattern | ||||
| * | shader: Add TryInstRecursive utility to values | ReinUsesLisp | 2021-07-26 | 1 | -0/+8 |
| | | |||||
* | | shader_recompiler: Remove unnecessary [[nodiscard]] instances | Lioncash | 2021-07-26 | 2 | -4/+4 |
|/ | | | | | [[nodiscard]] doesn't do anything on functions with a void return type and causes superfluous warnings. | ||||
* | shader_recompiler, video_core: Resolve clang errors | lat9nq | 2021-07-23 | 1 | -1/+2 |
| | | | | | | | | | | Silences the following warnings-turned-errors: -Wsign-conversion -Wunused-private-field -Wbraced-scalar-init -Wunused-variable And some other errors | ||||
* | shader: Ignore global memory ops on devices lacking int64 support | ameerj | 2021-07-23 | 1 | -14/+14 |
| | |||||
* | shader: Rework varyings and implement passthrough geometry shaders | ReinUsesLisp | 2021-07-23 | 2 | -0/+7 |
| | | | | | | Put all varyings into a single std::bitset with helpers to access it. Implement passthrough geometry shaders using host's. | ||||
* | shader: Remove IAbs64 | ReinUsesLisp | 2021-07-23 | 3 | -11/+3 |
| | |||||
* | shader: Move loop safety tests to code emission | ReinUsesLisp | 2021-07-23 | 3 | -13/+0 |
| | |||||
* | shader: Add logging | ReinUsesLisp | 2021-07-23 | 1 | -1/+1 |
| | |||||
* | shader: Add shader loop safety check settings | lat9nq | 2021-07-23 | 3 | -2/+17 |
| | | | | Also add a setting for enable Nsight Aftermath. | ||||
* | Revert "glasm: Skip phi moves on undefined instructions" | ReinUsesLisp | 2021-07-23 | 1 | -13/+0 |
| | | | | Causes regressions on Bowser's Fury. | ||||
* | glasm: Skip phi moves on undefined instructions | ReinUsesLisp | 2021-07-23 | 1 | -0/+13 |
| | |||||
* | video_core,shader: Clang-format fixes | ReinUsesLisp | 2021-07-23 | 2 | -2/+2 |
| | |||||
* | shader: Read branch conditions from an instruction | ReinUsesLisp | 2021-07-23 | 4 | -5/+13 |
| | | | | Fixes the identity removal pass. | ||||
* | glasm: Implement TEX and TEXS instructions | ReinUsesLisp | 2021-07-23 | 2 | -10/+6 |
| | | | | | Remove lod clamp from texture instructions with lod, as this is not needed (nor supported). | ||||
* | shader_recompiler: GCC fixes | lat9nq | 2021-07-23 | 2 | -8/+5 |
| | | | | | Fixes members of unnamed union not being accessible, and one function without a declaration. | ||||
* | shader: Use a non-trivial dummy to construct ASL node union | ReinUsesLisp | 2021-07-23 | 1 | -1/+6 |
| | |||||
* | glasm: Initial implementation of phi nodes on GLASM | ReinUsesLisp | 2021-07-23 | 5 | -7/+25 |
| | |||||
* | glasm: Rework control flow introducing a syntax list | ReinUsesLisp | 2021-07-23 | 14 | -225/+151 |
| | | | | | This commit regresses VertexA shaders, their transformation pass has to be adapted to the new control flow. | ||||
* | shader: Add floating-point rounding to I2F | ReinUsesLisp | 2021-07-23 | 2 | -34/+36 |
| | |||||
* | glasm: Implement basic GLASM instructions | ReinUsesLisp | 2021-07-23 | 1 | -0/+6 |
| | |||||
* | glasm: Add GLASM backend infrastructure | ReinUsesLisp | 2021-07-23 | 1 | -0/+6 |
| | |||||
* | shader: Implement Int32 SUATOM/SURED | ameerj | 2021-07-23 | 4 | -0/+186 |
| | |||||
* | shader: Initial OpenGL implementation | ReinUsesLisp | 2021-07-23 | 2 | -0/+5 |
| | |||||
* | shader: Implement VertexA stage | FernandoS27 | 2021-07-23 | 2 | -0/+2 |
| | |||||
* | 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 | 2 | -20/+21 |
| | |||||
* | shader: Fix gcc warnings | ReinUsesLisp | 2021-07-23 | 1 | -1/+1 |
| | |||||
* | 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 | 1 | -0/+9 |
| | |||||
* | 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 | 7 | -168/+152 |
| | |||||
* | shader: Intrusively store register values in block for SSA pass | ReinUsesLisp | 2021-07-23 | 1 | -0/+10 |
| | |||||
* | 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: Add coarse derivatives | FernandoS27 | 2021-07-23 | 3 | -0/+14 |
| | |||||
* | shader: Implement fine derivates constant propagation | FernandoS27 | 2021-07-23 | 3 | -0/+14 |
| | |||||
* | shader: Implement SR_Y_DIRECTION | FernandoS27 | 2021-07-23 | 3 | -0/+6 |
| | |||||
* | shader: Fix Phi node types | ReinUsesLisp | 2021-07-23 | 1 | -4/+0 |
| | |||||
* | shader: Fix memory barriers | ReinUsesLisp | 2021-07-23 | 5 | -30/+13 |
| | |||||
* | shader: Implement SampleMask | ReinUsesLisp | 2021-07-23 | 4 | -0/+7 |
| | |||||
* | shader: Implement PIXLD.MY_INDEX | ReinUsesLisp | 2021-07-23 | 3 | -0/+6 |
| | |||||
* | shader: Implement tessellation shaders, polygon mode and invocation id | ReinUsesLisp | 2021-07-23 | 10 | -20/+232 |
| | |||||
* | shader: Implement transform feedbacks and define file format | ReinUsesLisp | 2021-07-23 | 2 | -0/+9 |
| | |||||
* | shader: Implement geometry shaders | ReinUsesLisp | 2021-07-23 | 4 | -12/+26 |
| | |||||
* | shader: Implement OUT | ReinUsesLisp | 2021-07-23 | 4 | -0/+15 |
| | |||||
* | shader: Implement SR_THREAD_KILL | ReinUsesLisp | 2021-07-23 | 3 | -0/+7 |
| | |||||
* | shader: Implement ATOM/S and RED | ameerj | 2021-07-23 | 4 | -1/+374 |
| | |||||
* | shader: Move LaneId to the warp emission file and fix AMD | ReinUsesLisp | 2021-07-23 | 1 | -1/+1 |
| | |||||
* | shader: Mark ImageWrite with side effects | ReinUsesLisp | 2021-07-23 | 1 | -0/+3 |
| | |||||
* | shader: Implement SULD and SUST | ReinUsesLisp | 2021-07-23 | 4 | -9/+27 |
| | |||||
* | shader: Address feedback + clang format | lat9nq | 2021-07-23 | 1 | -1/+1 |
| | |||||
* | shader_recompiler,video_core: Cleanup some GCC and Clang errors | lat9nq | 2021-07-23 | 11 | -26/+24 |
| | | | | | | | | | | | | | | | | | 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: Address feedback | FernandoS27 | 2021-07-23 | 2 | -4/+4 |
| | |||||
* | shader: Implement indexed attributes | FernandoS27 | 2021-07-23 | 2 | -0/+11 |
| | |||||
* | shader: Add subgroup masks | ReinUsesLisp | 2021-07-23 | 3 | -0/+30 |
| | |||||
* | shader: Implement BAR and fix memory barriers | ReinUsesLisp | 2021-07-23 | 4 | -0/+10 |
| | |||||
* | shader: Abstract breadth searches and use the abstraction | ReinUsesLisp | 2021-07-23 | 1 | -0/+57 |
| | |||||
* | shader: Reimplement GetCbufU64 as GetCbufU32x2 | ReinUsesLisp | 2021-07-23 | 3 | -6/+6 |
| | | | | It may generate better code on some compilers and it's easier to handle. | ||||
* | shader: Fix undetected bug from review | FernandoS27 | 2021-07-23 | 1 | -0/+3 |
| | |||||
* | shader: Address feedback | FernandoS27 | 2021-07-23 | 1 | -1/+7 |
| | |||||
* | shader: Address Feedback | FernandoS27 | 2021-07-23 | 4 | -68/+18 |
| | |||||
* | shader: Implement SR_LaneId | FernandoS27 | 2021-07-23 | 3 | -0/+7 |
| | |||||
* | shader: Implement MEMBAR | FernandoS27 | 2021-07-23 | 4 | -0/+22 |
| | |||||
* | shader: Improve VOTE.VTG stub | FernandoS27 | 2021-07-23 | 3 | -2/+53 |
| | |||||
* | shader: Stub VOTE.VTG | FernandoS27 | 2021-07-23 | 1 | -0/+7 |
| | |||||
* | shader: Unroll "using enum" for opcode declarations | ReinUsesLisp | 2021-07-23 | 1 | -1/+27 |
| | |||||
* | shader: Fix TXD | FernandoS27 | 2021-07-23 | 1 | -1/+1 |
| | |||||
* | shader: Always pass a lod for TexelFetch | ReinUsesLisp | 2021-07-23 | 1 | -3/+3 |
| | |||||
* | shader: Implement ImageGradient | FernandoS27 | 2021-07-23 | 4 | -0/+15 |
| | |||||
* | shader: Implement TMML partially | FernandoS27 | 2021-07-23 | 2 | -3/+4 |
| | |||||
* | shader,spirv: Implement ImageQueryLod. | FernandoS27 | 2021-07-23 | 3 | -0/+11 |
| | |||||
* | shader: Implement TLD | FernandoS27 | 2021-07-23 | 1 | -3/+3 |
| | |||||
* | shader: Store type of phi nodes in flags | ReinUsesLisp | 2021-07-23 | 2 | -1/+9 |
| | | | | This is needed because pseudo-instructions where invalidated. | ||||
* | shader: Add missing new lines | ReinUsesLisp | 2021-07-23 | 1 | -0/+2 |
| | |||||
* | shader: Implement FSWZADD | ameerj | 2021-07-23 | 3 | -0/+6 |
| | |||||
* | shader: Implement BRX | FernandoS27 | 2021-07-23 | 4 | -0/+20 |
| | |||||
* | shader: Fix alignment checks on RZ | ReinUsesLisp | 2021-07-23 | 1 | -1/+1 |
| | |||||
* | shader: Implement I2I SAT | ameerj | 2021-07-23 | 3 | -0/+12 |
| | |||||
* | shader: Implement LDS, STS, LDL, and STS and use SPIR-V 1.4 when available | ReinUsesLisp | 2021-07-23 | 5 | -0/+78 |
| | |||||
* | shader: Implement VMAD, VMNMX, VSETP | ameerj | 2021-07-23 | 2 | -10/+13 |
| | |||||
* | spirv: Remove dependencies on Environment when generating SPIR-V | ReinUsesLisp | 2021-07-23 | 1 | -0/+2 |
| | |||||
* | shader: Fix structured control flow on KIL instructions | ReinUsesLisp | 2021-07-23 | 1 | -0/+1 |
| | | | | | This could potentially leave unvisited blocks, leading to illegal phi nodes. | ||||
* | shader: Implement TXQ and fix FragDepth | ReinUsesLisp | 2021-07-23 | 3 | -0/+10 |
| | |||||
* | shader: Refactor PTP and other minor changes | ReinUsesLisp | 2021-07-23 | 6 | -31/+6 |
| | |||||
* | shader: Add IR opcode for ImageFetch | FernandoS27 | 2021-07-23 | 3 | -2/+15 |
| | |||||
* | shader: Implement TLD4.PTP | FernandoS27 | 2021-07-23 | 6 | -5/+36 |
| | |||||
* | shader: Implement TLD4 and TLD4_B | FernandoS27 | 2021-07-23 | 4 | -0/+26 |
| | |||||
* | shader: Implement SHFL | ameerj | 2021-07-23 | 5 | -2/+53 |
| | |||||
* | shader: Fix F2I | FernandoS27 | 2021-07-23 | 3 | -0/+22 |
| | |||||
* | shader: Implement NDC [-1, 1], attribute types and default varying initialization | ReinUsesLisp | 2021-07-23 | 4 | -0/+17 |
| | |||||
* | shader: Implement VOTE | ameerj | 2021-07-23 | 3 | -0/+27 |
| | |||||
* | shader: Implement DMNMX, DSET, DSETP | ameerj | 2021-07-23 | 2 | -0/+3 |
| | |||||
* | shader: Implement F2F | FernandoS27 | 2021-07-23 | 2 | -7/+8 |
| | |||||
* | shader: Add support for fp16 comparisons and misc fixes | ReinUsesLisp | 2021-07-23 | 3 | -7/+24 |
| | |||||
* | shader: Implement I2F | ReinUsesLisp | 2021-07-23 | 3 | -55/+117 |
| | |||||
* | shader: Add partial rasterizer integration | ReinUsesLisp | 2021-07-23 | 8 | -8/+34 |
| | |||||
* | shader: Implement DADD | ameerj | 2021-07-23 | 2 | -0/+9 |
| | |||||
* | shader: Implement CSET and CSETP | ameerj | 2021-07-23 | 3 | -7/+59 |
| | |||||
* | shader: Fix instruction transitions in and out of Phi | ReinUsesLisp | 2021-07-23 | 1 | -9/+11 |
| | |||||
* | shader: Implement TEXS | ReinUsesLisp | 2021-07-23 | 3 | -1/+13 |
| | |||||
* | shader: Implement CAL inlining function calls | ReinUsesLisp | 2021-07-23 | 6 | -802/+10 |
| | |||||
* | shader: Implement FMNMX | ameerj | 2021-07-23 | 2 | -0/+30 |
| | | | | And add a const in FCMP | ||||
* | shader: Fix rebase issue | ReinUsesLisp | 2021-07-23 | 1 | -1/+0 |
| | |||||
* | shader: Implement FCMP | ameerj | 2021-07-23 | 3 | -33/+68 |
| | | | | still need to configure some settings for NV denorm flush and intel NaN | ||||
* | shader: Partial implementation of LDC | ReinUsesLisp | 2021-07-23 | 3 | -2/+31 |
| | |||||
* | shader: Initial support for textures and TEX | ReinUsesLisp | 2021-07-23 | 9 | -305/+537 |
| | |||||
* | shader: Implement R2P | ameerj | 2021-07-23 | 2 | -0/+3 |
| | |||||
* | shader: Implement SHF | ameerj | 2021-07-23 | 3 | -6/+22 |
| | |||||
* | shader: Implement LEA | ameerj | 2021-07-23 | 3 | -6/+22 |
| | |||||
* | shader: Implement HADD2 | ReinUsesLisp | 2021-07-23 | 3 | -6/+105 |
| | |||||
* | shader: Implement FLO | ameerj | 2021-07-23 | 3 | -3/+15 |
| | |||||
* | shader: Implement IMNMX | ameerj | 2021-07-23 | 3 | -0/+25 |
| | |||||
* | shader: Implement POPC | ameerj | 2021-07-23 | 3 | -0/+12 |
| | |||||
* | shader: Implement SHR | ameerj | 2021-07-23 | 3 | -0/+6 |
| | |||||
* | shader: Fix control flow | ReinUsesLisp | 2021-07-23 | 5 | -16/+35 |
| | |||||
* | shader: FMUL, select, RRO, and MUFU fixes | ReinUsesLisp | 2021-07-23 | 3 | -28/+184 |
| | |||||
* | spirv: Fixes and Intel specific workarounds | ReinUsesLisp | 2021-07-23 | 1 | -3/+0 |
| | |||||
* | shader: Rename, implement FADD.SAT and P2R (imm) | ReinUsesLisp | 2021-07-23 | 2 | -10/+10 |
| | |||||
* | shader: Add denorm flush support | ReinUsesLisp | 2021-07-23 | 3 | -29/+34 |
| | |||||
* | spirv: Add lower fp16 to fp32 pass | ReinUsesLisp | 2021-07-23 | 6 | -39/+47 |
| | |||||
* | shader: Primitive Vulkan integration | ReinUsesLisp | 2021-07-23 | 2 | -1/+3 |
| | |||||
* | shader: Add utility to resolve identities on a value | ReinUsesLisp | 2021-07-23 | 2 | -0/+8 |
| | |||||
* | spirv: Initial bindings support | ReinUsesLisp | 2021-07-23 | 2 | -0/+18 |
| | |||||
* | shader: Improve object pool | ReinUsesLisp | 2021-07-23 | 1 | -5/+5 |
| | |||||
* | shader: Add support for forward declarations | ReinUsesLisp | 2021-07-23 | 6 | -13/+27 |
| | |||||
* | shader: Support SSA loops on IR | ReinUsesLisp | 2021-07-23 | 3 | -0/+62 |
| | |||||
* | shader: Misc fixes | ReinUsesLisp | 2021-07-23 | 3 | -9/+13 |
| | |||||
* | shader: Initial implementation of an AST | ReinUsesLisp | 2021-07-23 | 11 | -58/+914 |
| | |||||
* | spirv: Initial SPIR-V support | ReinUsesLisp | 2021-07-23 | 2 | -14/+10 |
| | |||||
* | shader: Better constant folding | ReinUsesLisp | 2021-07-23 | 1 | -1/+1 |
| | |||||
* | shader: Properly store phi on Inst | ReinUsesLisp | 2021-07-23 | 4 | -59/+115 |
| | |||||
* | shader: Add pools and rename files | ReinUsesLisp | 2021-07-23 | 10 | -24/+73 |
| | |||||
* | shader: Make typed IR | ReinUsesLisp | 2021-07-23 | 7 | -212/+389 |
| | |||||
* | shader: Constant propagation and global memory to storage buffer | ReinUsesLisp | 2021-07-23 | 9 | -25/+73 |
| | |||||
* | shader: Initial instruction support | ReinUsesLisp | 2021-07-23 | 8 | -65/+398 |
| | |||||
* | shader: SSA and dominance | ReinUsesLisp | 2021-07-23 | 11 | -19/+178 |
| | |||||
* | shader: Initial recompiler work | ReinUsesLisp | 2021-07-23 | 21 | -0/+3027 |