summaryrefslogtreecommitdiffstats
path: root/src/shader_recompiler/frontend/ir (unfollow)
Commit message (Collapse)AuthorFilesLines
2021-07-26shader: Add TryInstRecursive utility to valuesReinUsesLisp1-0/+8
2021-07-23shader_recompiler, video_core: Resolve clang errorslat9nq1-1/+2
Silences the following warnings-turned-errors: -Wsign-conversion -Wunused-private-field -Wbraced-scalar-init -Wunused-variable And some other errors
2021-07-23shader: Ignore global memory ops on devices lacking int64 supportameerj1-14/+14
2021-07-23shader: Rework varyings and implement passthrough geometry shadersReinUsesLisp2-0/+7
Put all varyings into a single std::bitset with helpers to access it. Implement passthrough geometry shaders using host's.
2021-07-23shader: Remove IAbs64ReinUsesLisp3-11/+3
2021-07-23shader: Move loop safety tests to code emissionReinUsesLisp3-13/+0
2021-07-23shader: Add loggingReinUsesLisp1-1/+1
2021-07-23shader: Add shader loop safety check settingslat9nq3-2/+17
Also add a setting for enable Nsight Aftermath.
2021-07-23Revert "glasm: Skip phi moves on undefined instructions"ReinUsesLisp1-13/+0
Causes regressions on Bowser's Fury.
2021-07-23glasm: Skip phi moves on undefined instructionsReinUsesLisp1-0/+13
2021-07-23video_core,shader: Clang-format fixesReinUsesLisp2-2/+2
2021-07-23shader: Read branch conditions from an instructionReinUsesLisp4-5/+13
Fixes the identity removal pass.
2021-07-23glasm: Implement TEX and TEXS instructionsReinUsesLisp2-10/+6
Remove lod clamp from texture instructions with lod, as this is not needed (nor supported).
2021-07-23shader_recompiler: GCC fixeslat9nq2-8/+5
Fixes members of unnamed union not being accessible, and one function without a declaration.
2021-07-23shader: Use a non-trivial dummy to construct ASL node unionReinUsesLisp1-1/+6
2021-07-23glasm: Initial implementation of phi nodes on GLASMReinUsesLisp5-7/+25
2021-07-23glasm: Rework control flow introducing a syntax listReinUsesLisp14-225/+151
This commit regresses VertexA shaders, their transformation pass has to be adapted to the new control flow.
2021-07-23shader: Add floating-point rounding to I2FReinUsesLisp2-34/+36
2021-07-23glasm: Implement basic GLASM instructionsReinUsesLisp1-0/+6
2021-07-23glasm: Add GLASM backend infrastructureReinUsesLisp1-0/+6
2021-07-23shader: Implement Int32 SUATOM/SUREDameerj4-0/+186
2021-07-23shader: Initial OpenGL implementationReinUsesLisp2-0/+5
2021-07-23shader: Implement VertexA stageFernandoS272-0/+2
2021-07-23shader: Add missing UndoUse case for GetSparseFromOpReinUsesLisp1-0/+4
2021-07-23shader: Simplify code in opcodes.h to fix IntellisenseReinUsesLisp1-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.
2021-07-23shader: Implement indexed texturesReinUsesLisp2-20/+21
2021-07-23shader: Fix gcc warningsReinUsesLisp1-1/+1
2021-07-23shader: Inline common Value gettersReinUsesLisp2-109/+102
2021-07-23shader: Intrusively store in a block if it's sealed or notReinUsesLisp1-0/+9
2021-07-23shader: Use memset to reset instruction argumentsReinUsesLisp2-4/+7
2021-07-23shader: Inline common Value functions into the headerReinUsesLisp2-19/+23
2021-07-23shader: Move microinstruction header to the value headerReinUsesLisp7-168/+152
2021-07-23shader: Intrusively store register values in block for SSA passReinUsesLisp1-0/+10
2021-07-23shader: Inline common Opcode and Inst functionsReinUsesLisp4-112/+83
2021-07-23shader: Inline common IR::Block methodsReinUsesLisp2-17/+12
2021-07-23shader: Use a small_vector for phi blocksReinUsesLisp1-1/+2
2021-07-23shader: Calculate number of arguments in an opcode at compile timeReinUsesLisp1-3/+12
2021-07-23shader: Add coarse derivativesFernandoS273-0/+14
2021-07-23shader: Implement fine derivates constant propagationFernandoS273-0/+14
2021-07-23shader: Implement SR_Y_DIRECTIONFernandoS273-0/+6
2021-07-23shader: Fix Phi node typesReinUsesLisp1-4/+0
2021-07-23shader: Fix memory barriersReinUsesLisp5-30/+13
2021-07-23shader: Implement SampleMaskReinUsesLisp4-0/+7
2021-07-23shader: Implement PIXLD.MY_INDEXReinUsesLisp3-0/+6
2021-07-23shader: Implement tessellation shaders, polygon mode and invocation idReinUsesLisp10-20/+232
2021-07-23shader: Implement transform feedbacks and define file formatReinUsesLisp2-0/+9
2021-07-23shader: Implement geometry shadersReinUsesLisp4-12/+26
2021-07-23shader: Implement OUTReinUsesLisp4-0/+15
2021-07-23shader: Implement SR_THREAD_KILLReinUsesLisp3-0/+7
2021-07-23shader: Implement ATOM/S and REDameerj4-1/+374
2021-07-23shader: Move LaneId to the warp emission file and fix AMDReinUsesLisp1-1/+1
2021-07-23shader: Mark ImageWrite with side effectsReinUsesLisp1-0/+3
2021-07-23shader: Implement SULD and SUSTReinUsesLisp4-9/+27
2021-07-23shader: Address feedback + clang formatlat9nq1-1/+1
2021-07-23shader_recompiler,video_core: Cleanup some GCC and Clang errorslat9nq11-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>
2021-07-23shader: Address feedbackFernandoS272-4/+4
2021-07-23shader: Implement indexed attributesFernandoS272-0/+11
2021-07-23shader: Add subgroup masksReinUsesLisp3-0/+30
2021-07-23shader: Implement BAR and fix memory barriersReinUsesLisp4-0/+10
2021-07-23shader: Abstract breadth searches and use the abstractionReinUsesLisp1-0/+57
2021-07-23shader: Reimplement GetCbufU64 as GetCbufU32x2ReinUsesLisp3-6/+6
It may generate better code on some compilers and it's easier to handle.
2021-07-23shader: Fix undetected bug from reviewFernandoS271-0/+3
2021-07-23shader: Address feedbackFernandoS271-1/+7
2021-07-23shader: Address FeedbackFernandoS274-68/+18
2021-07-23shader: Implement SR_LaneIdFernandoS273-0/+7
2021-07-23shader: Implement MEMBARFernandoS274-0/+22
2021-07-23shader: Improve VOTE.VTG stubFernandoS273-2/+53
2021-07-23shader: Stub VOTE.VTGFernandoS271-0/+7
2021-07-23shader: Unroll "using enum" for opcode declarationsReinUsesLisp1-1/+27
2021-07-23shader: Fix TXDFernandoS271-1/+1
2021-07-23shader: Always pass a lod for TexelFetchReinUsesLisp1-3/+3
2021-07-23shader: Implement ImageGradientFernandoS274-0/+15
2021-07-23shader: Implement TMML partiallyFernandoS272-3/+4
2021-07-23shader,spirv: Implement ImageQueryLod.FernandoS273-0/+11
2021-07-23shader: Implement TLDFernandoS271-3/+3
2021-07-23shader: Store type of phi nodes in flagsReinUsesLisp2-1/+9
This is needed because pseudo-instructions where invalidated.
2021-07-23shader: Add missing new linesReinUsesLisp1-0/+2
2021-07-23shader: Implement FSWZADDameerj3-0/+6
2021-07-23shader: Implement BRXFernandoS274-0/+20
2021-07-23shader: Fix alignment checks on RZReinUsesLisp1-1/+1
2021-07-23shader: Implement I2I SATameerj3-0/+12
2021-07-23shader: Implement LDS, STS, LDL, and STS and use SPIR-V 1.4 when availableReinUsesLisp5-0/+78
2021-07-23shader: Implement VMAD, VMNMX, VSETPameerj2-10/+13
2021-07-23spirv: Remove dependencies on Environment when generating SPIR-VReinUsesLisp1-0/+2
2021-07-23shader: Fix structured control flow on KIL instructionsReinUsesLisp1-0/+1
This could potentially leave unvisited blocks, leading to illegal phi nodes.
2021-07-23shader: Implement TXQ and fix FragDepthReinUsesLisp3-0/+10
2021-07-23shader: Refactor PTP and other minor changesReinUsesLisp6-31/+6
2021-07-23shader: Add IR opcode for ImageFetchFernandoS273-2/+15
2021-07-23shader: Implement TLD4.PTPFernandoS276-5/+36
2021-07-23shader: Implement TLD4 and TLD4_BFernandoS274-0/+26
2021-07-23shader: Implement SHFLameerj5-2/+53
2021-07-23shader: Fix F2IFernandoS273-0/+22
2021-07-23shader: Implement NDC [-1, 1], attribute types and default varying initializationReinUsesLisp4-0/+17
2021-07-23shader: Implement VOTEameerj3-0/+27
2021-07-23shader: Implement DMNMX, DSET, DSETPameerj2-0/+3
2021-07-23shader: Implement F2FFernandoS272-7/+8
2021-07-23shader: Add support for fp16 comparisons and misc fixesReinUsesLisp3-7/+24
2021-07-23shader: Implement I2FReinUsesLisp3-55/+117
2021-07-23shader: Add partial rasterizer integrationReinUsesLisp8-8/+34
2021-07-23shader: Implement DADDameerj2-0/+9
2021-07-23shader: Implement CSET and CSETPameerj3-7/+59
2021-07-23shader: Fix instruction transitions in and out of PhiReinUsesLisp1-9/+11
2021-07-23shader: Implement TEXSReinUsesLisp3-1/+13
2021-07-23shader: Implement CAL inlining function callsReinUsesLisp6-802/+10
2021-07-23shader: Implement FMNMXameerj2-0/+30
And add a const in FCMP
2021-07-23shader: Fix rebase issueReinUsesLisp1-1/+0
2021-07-23shader: Implement FCMPameerj3-33/+68
still need to configure some settings for NV denorm flush and intel NaN
2021-07-23shader: Partial implementation of LDCReinUsesLisp3-2/+31
2021-07-23shader: Initial support for textures and TEXReinUsesLisp9-305/+537
2021-07-23shader: Implement R2Pameerj2-0/+3
2021-07-23shader: Implement SHFameerj3-6/+22
2021-07-23shader: Implement LEAameerj3-6/+22
2021-07-23shader: Implement HADD2ReinUsesLisp3-6/+105
2021-07-23shader: Implement FLOameerj3-3/+15
2021-07-23shader: Implement IMNMXameerj3-0/+25
2021-07-23shader: Implement POPCameerj3-0/+12
2021-07-23shader: Implement SHRameerj3-0/+6
2021-07-23shader: Fix control flowReinUsesLisp5-16/+35
2021-07-23shader: FMUL, select, RRO, and MUFU fixesReinUsesLisp3-28/+184
2021-07-23spirv: Fixes and Intel specific workaroundsReinUsesLisp1-3/+0
2021-07-23shader: Rename, implement FADD.SAT and P2R (imm)ReinUsesLisp2-10/+10
2021-07-23shader: Add denorm flush supportReinUsesLisp3-29/+34
2021-07-23spirv: Add lower fp16 to fp32 passReinUsesLisp6-39/+47
2021-07-23shader: Primitive Vulkan integrationReinUsesLisp2-1/+3
2021-07-23shader: Add utility to resolve identities on a valueReinUsesLisp2-0/+8
2021-07-23spirv: Initial bindings supportReinUsesLisp2-0/+18
2021-07-23shader: Improve object poolReinUsesLisp1-5/+5
2021-07-23shader: Add support for forward declarationsReinUsesLisp6-13/+27
2021-07-23shader: Support SSA loops on IRReinUsesLisp3-0/+62
2021-07-23shader: Misc fixesReinUsesLisp3-9/+13
2021-07-23shader: Initial implementation of an ASTReinUsesLisp11-58/+914
2021-07-23spirv: Initial SPIR-V supportReinUsesLisp2-14/+10
2021-07-23shader: Better constant foldingReinUsesLisp1-1/+1
2021-07-23shader: Properly store phi on InstReinUsesLisp4-59/+115
2021-07-23shader: Add pools and rename filesReinUsesLisp10-24/+73
2021-07-23shader: Make typed IRReinUsesLisp7-212/+389
2021-07-23shader: Constant propagation and global memory to storage bufferReinUsesLisp9-25/+73
2021-07-23shader: Initial instruction supportReinUsesLisp8-65/+398
2021-07-23shader: SSA and dominanceReinUsesLisp11-19/+178
2021-07-23shader: Initial recompiler workReinUsesLisp21-0/+3027