summaryrefslogtreecommitdiffstats
path: root/src/shader_recompiler/frontend (unfollow)
Commit message (Collapse)AuthorFilesLines
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: Improve goto removal algorithm complexityReinUsesLisp1-49/+28
Find sibling node containing a nephew searching from the nephew itself instead of the uncle.
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 headerReinUsesLisp8-169/+153
2021-07-23shader: Move siblings check to a separate function and comment them outReinUsesLisp1-16/+21
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: Simplify code for local memoryReinUsesLisp1-6/+11
2021-07-23shader: Add NVN storage buffer fallbacksReinUsesLisp1-0/+43
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.
2021-07-23shader: Address feedbackFernandoS272-7/+10
2021-07-23shader: Implement F2F (Imm)FernandoS271-2/+28
2021-07-23shader: Implement IADD3.CC/.XFernandoS271-7/+22
2021-07-23shader: Add coarse derivativesFernandoS273-0/+14
2021-07-23shader: Implement fine derivates constant propagationFernandoS273-0/+14
2021-07-23shader: Implement SR_Y_DIRECTIONFernandoS274-0/+8
2021-07-23shader: Fix Phi node typesReinUsesLisp1-4/+0
2021-07-23shader: Fix memory barriersReinUsesLisp6-50/+23
2021-07-23shader: Implement BFE and BFI CCameerj2-12/+16
Fix two bugs in BFI.
2021-07-23shader: Implement SampleMaskReinUsesLisp5-1/+8
2021-07-23shader: Implement PIXLD.MY_INDEXReinUsesLisp5-4/+52
2021-07-23shader: Implement tessellation shaders, polygon mode and invocation idReinUsesLisp13-33/+259
2021-07-23shader: Implement transform feedbacks and define file formatReinUsesLisp2-0/+9
2021-07-23shader: Document and relax cache control on surface instructionsReinUsesLisp1-10/+11
2021-07-23shader: Implement geometry shadersReinUsesLisp6-19/+48
2021-07-23shader: Implement OUTReinUsesLisp7-17/+62
2021-07-23internal_stage_buffer_entry_read: Remove pragma optimize offlat9nq1-2/+0
2021-07-23shader: Stub SR_INVOCATION_INFOReinUsesLisp1-2/+5
2021-07-23shader: Stub ISBERDReinUsesLisp2-4/+55
2021-07-23shader: Fix CC in I2IReinUsesLisp1-0/+2
2021-07-23shader: Simplify FLO and throw on CCReinUsesLisp1-12/+13
2021-07-23shader: Mark blocks with no end branch as unreachableReinUsesLisp1-2/+7
2021-07-23shader: Implement LOP CCReinUsesLisp1-3/+11
2021-07-23shader: Implement SR_THREAD_KILLReinUsesLisp4-0/+9
2021-07-23shader: Apply sign bit in FCMP (imm)ReinUsesLisp1-1/+1
2021-07-23shader: Implement ATOM/S and REDameerj7-13/+706
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 CC for ISET, FSET, PSET, CSET, and DSETFernandoS2718-13/+136
Throw when other instructions are missing CC.
2021-07-23shader: Remove outdated comment in F2IReinUsesLisp1-4/+0
2021-07-23shader: Implement SULD and SUSTReinUsesLisp14-68/+365
2021-07-23shader: Fix Windows build issuesReinUsesLisp1-1/+1
2021-07-23shader: Address feedback + clang formatlat9nq6-15/+15
2021-07-23shader_recompiler,video_core: Cleanup some GCC and Clang errorslat9nq45-206/+184
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: Fix FCMP immediate variantReinUsesLisp1-1/+9
2021-07-23shader: Fix dangling labelsReinUsesLisp1-0/+5
2021-07-23shader: Fix F2IReinUsesLisp1-1/+1
2021-07-23shader: Address feedbackFernandoS273-20/+25
2021-07-23shader: Implement indexed attributesFernandoS274-14/+37
2021-07-23shader: Implement AL2PFernandoS272-4/+35
2021-07-23shader: Fix BRX trackingFernandoS272-3/+4
2021-07-23shader: Fix splits on blocks using indirect branchesReinUsesLisp3-17/+38
2021-07-23shader: Eliminate orphan blocks more efficientlyReinUsesLisp1-7/+8
2021-07-23shader: Add subgroup masksReinUsesLisp4-35/+105
2021-07-23shader: Implement BAR and fix memory barriersReinUsesLisp5-2/+66
2021-07-23shader: Abstract breadth searches and use the abstractionReinUsesLisp1-0/+57
2021-07-23shader: Reimplement GetCbufU64 as GetCbufU32x2ReinUsesLisp4-12/+12
It may generate better code on some compilers and it's easier to handle.
2021-07-23shader: Remove unused header in VOTEReinUsesLisp1-2/+0
2021-07-23shader: Fix fp16 merge when using native fp16ReinUsesLisp1-3/+3
2021-07-23shader: Fix FADD32IReinUsesLisp1-6/+4
2021-07-23shader: Fix undetected bug from reviewFernandoS271-0/+3
2021-07-23shader: Address feedbackFernandoS271-1/+7
2021-07-23shader: "Implement" NOPFernandoS271-1/+1
2021-07-23shader: Address FeedbackFernandoS277-80/+25
2021-07-23shader: Implement SR_LaneIdFernandoS274-0/+9
2021-07-23shader: Implement MEMBARFernandoS276-11/+78
2021-07-23shader: Improve VOTE.VTG stubFernandoS274-3/+57
2021-07-23shader: Stub VOTE.VTGFernandoS274-4/+15
2021-07-23shader: Fix branches to visited virtual blocksReinUsesLisp1-0/+10
2021-07-23shader: Implement LDG .U.128 as .128ReinUsesLisp1-3/+2
2021-07-23shader: Unroll "using enum" for opcode declarationsReinUsesLisp1-1/+27
2021-07-23shader: Fix TXDFernandoS271-1/+1
2021-07-23shader: Address feedbackFernandoS273-37/+33
2021-07-23shader: Always pass a lod for TexelFetchReinUsesLisp3-25/+17
2021-07-23shader: Implement TXDFernandoS273-10/+182
2021-07-23shader: Implement ImageGradientFernandoS274-0/+15
2021-07-23shader: Implement TMML partiallyFernandoS274-11/+134
2021-07-23shader,spirv: Implement ImageQueryLod.FernandoS273-0/+11
2021-07-23shader: Implement TLDSFernandoS272-4/+252
2021-07-23shader: Implement TLDFernandoS274-13/+170
2021-07-23shader: Store type of phi nodes in flagsReinUsesLisp2-1/+9
This is needed because pseudo-instructions where invalidated.
2021-07-23shader: Fix indirect branches to scheduler instructionsReinUsesLisp3-7/+17
2021-07-23shader: Add missing new linesReinUsesLisp1-0/+2
2021-07-23shader: Implement FSWZADDameerj7-4/+55
2021-07-23shader: Implement BRXFernandoS2714-44/+347
2021-07-23shader: Fix alignment checks on RZReinUsesLisp1-1/+1
2021-07-23shader: Implement I2I CCameerj1-3/+4
2021-07-23shader: Implement I2I SATameerj4-10/+42
2021-07-23shader: Fix ISCADD logic for PO/CCameerj1-7/+8
2021-07-23shader: Implement LDS, STS, LDL, and STS and use SPIR-V 1.4 when availableReinUsesLisp8-16/+277
2021-07-23shader: Implement ISCADD CCameerj1-1/+4
2021-07-23shader: Implement VMAD, VMNMX, VSETPameerj8-23/+314
2021-07-23shader: Add missing I2I exception when CC is usedReinUsesLisp1-0/+4
2021-07-23shader: Better interpolation and disabled attributes supportReinUsesLisp2-9/+36
2021-07-23spirv: Remove dependencies on Environment when generating SPIR-VReinUsesLisp2-0/+5
2021-07-23shader: Fix structured control flow on KIL instructionsReinUsesLisp2-3/+7
This could potentially leave unvisited blocks, leading to illegal phi nodes.
2021-07-23shader: Fix TXQFernandoS271-1/+1
2021-07-23shader: Implement TXQ and fix FragDepthReinUsesLisp5-8/+86
2021-07-23shader: Refactor PTP and other minor changesReinUsesLisp7-46/+19
2021-07-23shader: Add IR opcode for ImageFetchFernandoS273-2/+15
2021-07-23shader: Implement TLD4.PTPFernandoS278-19/+52
2021-07-23shader: Fix Array Indices in TEX/TLD4FernandoS272-6/+6
2021-07-23shader: Implement FragDepthFernandoS271-1/+1
2021-07-23shader: Implement TLD4S.FernandoS272-4/+133
2021-07-23shader: Implement TLD4 and TLD4_BFernandoS277-10/+237
2021-07-23shader: Implement SHFLameerj8-8/+124
2021-07-23shader: Properly insert Prologue instructionReinUsesLisp1-1/+2
2021-07-23shader: Minor style nitsReinUsesLisp1-2/+4
2021-07-23shader: Fix F2IFernandoS276-5/+124
2021-07-23shader: Implement NDC [-1, 1], attribute types and default varying initializationReinUsesLisp5-1/+23
2021-07-23shader: Implement VOTEameerj5-4/+79
2021-07-23shader: Fix TEX maskReinUsesLisp1-1/+3
2021-07-23shader: Better but still partial interpolation supportReinUsesLisp1-5/+7
2021-07-23shader: Implement DMNMX, DSET, DSETPameerj8-39/+169
2021-07-23shader: Implement FADD32IFernandoS271-2/+15
2021-07-23shader: Implement F2FFernandoS274-19/+188
2021-07-23shader: Implement DMUL and DFMAameerj7-30/+109
Also add a missing const on DADD
2021-07-23shader: Add FP64 register load/store helpersameerj3-21/+24
2021-07-23shader: Add support for fp16 comparisons and misc fixesReinUsesLisp7-14/+28
2021-07-23shader: Fix floating point comparison for FP16FernandoS274-32/+32
2021-07-23shader: Implement HSETP2FernandoS272-12/+116
2021-07-23shader: Implement HSET2FernandoS274-14/+118
2021-07-23shader: Implement HMUL2FernandoS272-16/+143
2021-07-23shader: Implement HFMA2FernandoS274-20/+191
2021-07-23shader: Refactor half floating instructionsFernandoS273-58/+82
2021-07-23shader: Implement I2FReinUsesLisp9-69/+315
2021-07-23shader: Implement ISCADD (imm)ReinUsesLisp1-2/+2
2021-07-23shader: Implement LOP32IReinUsesLisp2-18/+45
2021-07-23shader: Add partial rasterizer integrationReinUsesLisp19-51/+212
2021-07-23shader: Implement DADDameerj6-14/+129
2021-07-23shader: Implement CSET and CSETPameerj5-15/+113
2021-07-23shader: Fix instruction transitions in and out of PhiReinUsesLisp1-9/+11
2021-07-23shader: Implement FSET and FSETPameerj7-92/+198
Also fix oversight with adding SignedZeroInfNanPreserve execution mode.
2021-07-23shader: Implement TEXSReinUsesLisp6-5/+275
2021-07-23shader: Implement CAL inlining function callsReinUsesLisp11-254/+232
2021-07-23shader: Implement FMNMXameerj5-13/+88
And add a const in FCMP
2021-07-23shader: Fix rebase issueReinUsesLisp1-1/+0
2021-07-23shader: Implement FCMPameerj5-49/+184
still need to configure some settings for NV denorm flush and intel NaN
2021-07-23shader: Partial implementation of LDCReinUsesLisp6-10/+128
2021-07-23shader: Initial support for textures and TEXReinUsesLisp13-315/+772
2021-07-23shader: Implement R2Pameerj4-12/+74
2021-07-23shader: Implement SHFameerj5-22/+99
2021-07-23shader: Implement LEAameerj5-26/+122
2021-07-23shader: Deduplicate HADD2 codeReinUsesLisp1-19/+16
2021-07-23shader: Implement I2Iameerj2-12/+99
2021-07-23shader: Implement HADD2ReinUsesLisp6-23/+290
2021-07-23shader: Implement LOP and LOP3ameerj7-31/+225
2021-07-23shader: Implement IADD3ameerj2-12/+103
2021-07-23shader: Implement PSETPameerj3-4/+38
2021-07-23Implement PSET, refactor common comparison funcsameerj8-101/+87
2021-07-23shader: Implement FLOameerj5-15/+61
2021-07-23shader: Implement ISET, add common_funcsameerj7-50/+147
2021-07-23shader: Make IMNMX, SHR, SEL stylistically more consistentameerj3-5/+5
2021-07-23shader: Implement ICMPameerj2-16/+83
2021-07-23shader: Implement IMNMXameerj5-12/+84
2021-07-23shader: Implement BFIameerj2-16/+56
2021-07-23shader: Implement BFEameerj2-12/+66
2021-07-23shader: Implement POPCameerj5-12/+48
2021-07-23shader: Implement SHRameerj5-12/+68
2021-07-23shader: Implement SELameerj2-12/+44
2021-07-23shader: Fix conditional execution of exit instructionsReinUsesLisp2-5/+6
2021-07-23shader: Fix control flowReinUsesLisp8-20/+39
2021-07-23shader: Implement more of XMAD and FFMA32I and fix XMAD.CBCCReinUsesLisp3-22/+70
2021-07-23shader: FMUL, select, RRO, and MUFU fixesReinUsesLisp13-66/+277
2021-07-23shader: Fix MOV(reg), add SHL variants and emit neg and abs instructionsReinUsesLisp2-5/+5
2021-07-23spirv: Fixes and Intel specific workaroundsReinUsesLisp3-12/+9
2021-07-23shader: Rename, implement FADD.SAT and P2R (imm)ReinUsesLisp12-45/+111
2021-07-23shader: Add denorm flush supportReinUsesLisp4-33/+49
2021-07-23spirv: Add lower fp16 to fp32 passReinUsesLisp9-55/+97
2021-07-23shader: Primitive Vulkan integrationReinUsesLisp7-24/+30
2021-07-23shader: Simplify ISCADDReinUsesLisp1-6/+1
2021-07-23shader: Add utility to resolve identities on a valueReinUsesLisp2-0/+8
2021-07-23spirv: Initial bindings supportReinUsesLisp3-3/+22
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 IRReinUsesLisp4-4/+70
2021-07-23shader: Misc fixesReinUsesLisp5-13/+17
2021-07-23shader: Initial implementation of an ASTReinUsesLisp21-535/+1152
2021-07-23spirv: Initial SPIR-V supportReinUsesLisp3-19/+15
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 filesReinUsesLisp25-87/+113
2021-07-23shader: Make typed IRReinUsesLisp16-258/+463
2021-07-23shader: Constant propagation and global memory to storage bufferReinUsesLisp10-27/+77
2021-07-23shader: Initial instruction supportReinUsesLisp24-243/+1437
2021-07-23shader: SSA and dominanceReinUsesLisp19-74/+401
2021-07-23shader: Initial recompiler workReinUsesLisp45-0/+6582