summaryrefslogtreecommitdiffstats
path: root/src/shader_recompiler (follow)
Commit message (Collapse)AuthorAgeFilesLines
* shader: Refactor atomic_operations_global_memoryameerj2021-07-231-44/+36
|
* shader: add missing include guard in half_floating_point_helper.hameerj2021-07-231-0/+2
|
* shader: Fix gcc warningsReinUsesLisp2021-07-232-2/+2
|
* shader: Inline common Value gettersReinUsesLisp2021-07-232-109/+102
|
* shader: Intrusively store in a block if it's sealed or notReinUsesLisp2021-07-232-3/+11
|
* cmake: Link to common in shader_recompilerReinUsesLisp2021-07-231-1/+1
|
* shader: Improve goto removal algorithm complexityReinUsesLisp2021-07-231-49/+28
| | | | | Find sibling node containing a nephew searching from the nephew itself instead of the uncle.
* shader: Use memset to reset instruction argumentsReinUsesLisp2021-07-232-4/+7
|
* shader: Inline common Value functions into the headerReinUsesLisp2021-07-232-19/+23
|
* shader: Move microinstruction header to the value headerReinUsesLisp2021-07-2319-180/+161
|
* shader: Move siblings check to a separate function and comment them outReinUsesLisp2021-07-231-16/+21
|
* shader: Intrusively store register values in block for SSA passReinUsesLisp2021-07-232-21/+53
|
* shader: Inline common Opcode and Inst functionsReinUsesLisp2021-07-234-112/+83
|
* shader: Inline common IR::Block methodsReinUsesLisp2021-07-232-17/+12
|
* shader: Use a small_vector for phi blocksReinUsesLisp2021-07-231-1/+2
|
* shader: Calculate number of arguments in an opcode at compile timeReinUsesLisp2021-07-231-3/+12
|
* shader: Implement D3D samplersReinUsesLisp2021-07-233-12/+76
|
* shader: Add constant propagation for arithmetic right shiftsReinUsesLisp2021-07-231-0/+3
|
* shader: Simplify code for local memoryReinUsesLisp2021-07-231-6/+11
|
* shader: Add NVN storage buffer fallbacksReinUsesLisp2021-07-239-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 ViewportMaskReinUsesLisp2021-07-231-1/+2
|
* spirv: Replace Constant/ConstantComposite with Const helperameerj2021-07-2312-112/+101
|
* shader: Address feedbackFernandoS272021-07-232-7/+10
|
* shader: Implement F2F (Imm)FernandoS272021-07-231-2/+28
|
* shader: Implement IADD3.CC/.XFernandoS272021-07-231-7/+22
|
* shader: Address feedbackFernandoS272021-07-234-7/+4
|
* shader: Add coarse derivativesFernandoS272021-07-237-8/+28
|
* shader: Implement fine derivates constant propagationFernandoS272021-07-239-0/+101
|
* shader: Implement SR_Y_DIRECTIONFernandoS272021-07-237-0/+18
|
* shader: Fix Phi node typesReinUsesLisp2021-07-232-4/+4
|
* shader: Fix memory barriersReinUsesLisp2021-07-238-62/+30
|
* spirv: Fix implicit lod typeReinUsesLisp2021-07-232-1/+5
|
* spirv: Use explicit lods outside of fragment shadersReinUsesLisp2021-07-231-5/+16
|
* spirv: Use ConstOffset instead of Offset when possibleReinUsesLisp2021-07-233-21/+67
|
* shader: Implement BFE and BFI CCameerj2021-07-233-14/+17
| | | | Fix two bugs in BFI.
* shader: Implement SampleMaskReinUsesLisp2021-07-2311-2/+22
|
* shader: Implement PIXLD.MY_INDEXReinUsesLisp2021-07-2313-4/+69
|
* spirv: Bitcast non-F32 output attributes to their type before storeReinUsesLisp2021-07-231-13/+28
|
* spirv: Implement ViewportMask with NV_viewport_array2ReinUsesLisp2021-07-237-0/+20
|
* spirv: Bitcast non-F32 attributes to F32ReinUsesLisp2021-07-231-7/+9
|
* shader: Implement PrimitiveIdReinUsesLisp2021-07-235-0/+10
|
* shader: Implement tessellation shaders, polygon mode and invocation idReinUsesLisp2021-07-2322-88/+555
|
* shader: Mark atomic instructions as writesReinUsesLisp2021-07-231-0/+27
|
* spirv: Implement image buffersReinUsesLisp2021-07-235-23/+86
|
* spirv: Implement Layer storesReinUsesLisp2021-07-236-9/+30
|
* spirv: Fix alpha testFernandoS272021-07-231-0/+5
|
* spirv: Fix non-atomic 64-bit storeameerj2021-07-231-1/+1
|
* spirv: Implement alpha testameerj2021-07-232-1/+59
|
* shader: Implement transform feedbacks and define file formatReinUsesLisp2021-07-238-16/+116
|
* shader: Implement early Z testsReinUsesLisp2021-07-232-0/+4
|
* shader: Document and relax cache control on surface instructionsReinUsesLisp2021-07-231-10/+11
|
* spirv: Rework storage buffers and shader memoryReinUsesLisp2021-07-238-499/+553
|
* shader: Fix fixed pipeline point size on geometry shadersReinUsesLisp2021-07-231-10/+18
|
* shader: Add constant propagation for *&^| binary operationsReinUsesLisp2021-07-231-0/+12
|
* shader: Implement geometry shadersReinUsesLisp2021-07-2312-84/+221
|
* shader: Implement OUTReinUsesLisp2021-07-2310-17/+73
|
* internal_stage_buffer_entry_read: Remove pragma optimize offlat9nq2021-07-231-2/+0
|
* shader: Stub SR_INVOCATION_INFOReinUsesLisp2021-07-231-2/+5
|
* shader: Stub ISBERDReinUsesLisp2021-07-233-4/+56
|
* shader: Fix CC in I2IReinUsesLisp2021-07-231-0/+2
|
* spirv: Define StorageImageWriteWithoutFormat capability when usedReinUsesLisp2021-07-233-0/+9
|
* shader: Simplify FLO and throw on CCReinUsesLisp2021-07-231-12/+13
|
* shader: Mark blocks with no end branch as unreachableReinUsesLisp2021-07-231-2/+7
|
* shader: Implement LOP CCReinUsesLisp2021-07-233-12/+29
|
* shader: Implement SR_THREAD_KILLReinUsesLisp2021-07-2310-0/+22
|
* shader: Apply sign bit in FCMP (imm)ReinUsesLisp2021-07-231-1/+1
|
* shader: Implement ATOM/S and REDameerj2021-07-2318-19/+1724
|
* spirv: Move phi node patching to a separate functionReinUsesLisp2021-07-231-13/+16
|
* spirv: Guard against typeless image reads on unsupported devicesReinUsesLisp2021-07-235-1/+16
|
* shader: Move LaneId to the warp emission file and fix AMDReinUsesLisp2021-07-235-7/+11
|
* spirv: Fix forward declarations on phi nodesReinUsesLisp2021-07-231-47/+25
|
* shader: Mark ImageWrite with side effectsReinUsesLisp2021-07-231-0/+3
|
* shader: Implement CC for ISET, FSET, PSET, CSET, and DSETFernandoS272021-07-2318-13/+136
| | | | Throw when other instructions are missing CC.
* shader: Remove outdated comment in F2IReinUsesLisp2021-07-231-4/+0
|
* shader: Implement SULD and SUSTReinUsesLisp2021-07-2323-137/+597
|
* shader: Fix Windows build issuesReinUsesLisp2021-07-231-1/+1
|
* shader: Address feedback + clang formatlat9nq2021-07-2311-22/+20
|
* shader_recompiler,video_core: Cleanup some GCC and Clang errorslat9nq2021-07-2359-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 variantReinUsesLisp2021-07-231-1/+9
|
* shader: Fix dangling labelsReinUsesLisp2021-07-231-0/+5
|
* shader: Interact texture buffers with buffer cacheReinUsesLisp2021-07-233-29/+29
|
* shader: Fix F2IReinUsesLisp2021-07-231-1/+1
|
* shader: Fix TextureGradReinUsesLisp2021-07-231-1/+1
|
* shader: Implement texture buffersReinUsesLisp2021-07-236-23/+125
|
* shader: Address feedbackFernandoS272021-07-235-53/+54
|
* shader: Implement indexed Position and ClipDistancesFernandoS272021-07-233-11/+100
|
* shader: Implement indexed attributesFernandoS272021-07-2312-35/+279
|
* shader: Implement AL2PFernandoS272021-07-233-4/+36
|
* shader: Fix BRX trackingFernandoS272021-07-232-3/+4
|
* shader: Move recursive SSA rewrite to the heapReinUsesLisp2021-07-231-29/+89
|
* shader: Fix ShadowCube declaration type, set number of pipeline threads based on hardwareFernandoS272021-07-231-1/+1
|
* shader: Fix splits on blocks using indirect branchesReinUsesLisp2021-07-233-17/+38
|
* shader: Eliminate orphan blocks more efficientlyReinUsesLisp2021-07-231-7/+8
|
* shader: Add subgroup masksReinUsesLisp2021-07-2310-45/+169
|
* shader: Implement BAR and fix memory barriersReinUsesLisp2021-07-237-5/+79
|
* shader: Abstract breadth searches and use the abstractionReinUsesLisp2021-07-234-104/+106
|
* shader: Reimplement GetCbufU64 as GetCbufU32x2ReinUsesLisp2021-07-239-22/+21
| | | | It may generate better code on some compilers and it's easier to handle.
* shader: Remove unused header in VOTEReinUsesLisp2021-07-231-2/+0
|
* shader: Rework global memory tracking to use breadth-first searchReinUsesLisp2021-07-231-69/+80
|
* shader: Fix fp16 merge when using native fp16ReinUsesLisp2021-07-231-3/+3
|
* shader: Fix FADD32IReinUsesLisp2021-07-231-6/+4
|
* shader: Fix undetected bug from reviewFernandoS272021-07-231-0/+3
|
* shader: Address feedbackFernandoS272021-07-233-13/+16
|
* shader: "Implement" NOPFernandoS272021-07-231-1/+1
|
* shader: Address FeedbackFernandoS272021-07-2316-211/+60
|
* shader: Implement SR_LaneIdFernandoS272021-07-237-0/+15
|
* shader: Fix shared memory on cool driversFernandoS272021-07-231-0/+1
|
* shader: Implement MEMBARFernandoS272021-07-239-11/+121
|
* shader: Improve VOTE.VTG stubFernandoS272021-07-237-4/+147
|
* shader: Mark SSBOs as written when they areFernandoS272021-07-232-2/+30
|
* shader: Implement ViewportIndexFernandoS272021-07-237-2/+32
|
* shader: Stub TLD4's PTP when it isn't constantFernandoS272021-07-231-1/+2
|
* shader: Stub VOTE.VTGFernandoS272021-07-234-4/+15
|
* shader: Fold composite extractFernandoS272021-07-231-0/+62
|
* shader: Fold comparisons and Pack/Unpack16FernandoS272021-07-231-1/+41
|
* shader: Fix branches to visited virtual blocksReinUsesLisp2021-07-232-0/+12
|
* shader: Fix dependency on identity removal passReinUsesLisp2021-07-232-3/+8
|
* shader: Fix constant propagation to use reverse post orderReinUsesLisp2021-07-231-1/+2
|
* shader: Implement LDG .U.128 as .128ReinUsesLisp2021-07-231-3/+2
|
* shader: Unroll "using enum" for opcode declarationsReinUsesLisp2021-07-231-1/+27
|
* spirv: Remove unnecesary variable for clip distancesReinUsesLisp2021-07-232-6/+2
|
* shader: Implement ClipDistanceFernandoS272021-07-235-0/+36
|
* shader: Fix TXDFernandoS272021-07-232-2/+2
|
* shader: Address feedbackFernandoS272021-07-234-52/+48
|
* shader: Always pass a lod for TexelFetchReinUsesLisp2021-07-233-25/+17
|
* shader: Implement TXDFernandoS272021-07-234-10/+183
|
* shader: Implement ImageGradientFernandoS272021-07-238-2/+84
|
* shader: Implement TMML partiallyFernandoS272021-07-236-13/+137
|
* shader,spirv: Implement ImageQueryLod.FernandoS272021-07-239-1/+38
|
* shader: Implement TLDSFernandoS272021-07-233-4/+253
|
* shader: Implement TLDFernandoS272021-07-237-14/+173
|
* spirv: Add fixed pipeline point sizeReinUsesLisp2021-07-233-1/+8
|
* shader: Add PointCoord attributeFernandoS272021-07-235-0/+16
|
* shader: Add PointSize attributeameerj2021-07-235-0/+13
|
* shader: Store type of phi nodes in flagsReinUsesLisp2021-07-233-2/+11
| | | | This is needed because pseudo-instructions where invalidated.
* shader: Fix indirect branches to scheduler instructionsReinUsesLisp2021-07-233-7/+17
|
* spirv: Fix default output attribute initializationReinUsesLisp2021-07-231-3/+3
|
* shader: Add missing new linesReinUsesLisp2021-07-231-0/+2
|
* shader: Implement FSWZADDameerj2021-07-2314-4/+87
|
* shader: Implement BRXFernandoS272021-07-2320-47/+388
|
* shader: Fix alignment checks on RZReinUsesLisp2021-07-231-1/+1
|
* shader: Implement I2I CCameerj2021-07-233-24/+45
|
* shader: Implement I2I SATameerj2021-07-236-10/+52
|
* shader: Fix ISCADD logic for PO/CCameerj2021-07-231-7/+8
|
* shader: Implement LDS, STS, LDL, and STS and use SPIR-V 1.4 when availableReinUsesLisp2021-07-2317-17/+626
|
* shader: Implement ISCADD CCameerj2021-07-231-1/+4
|
* shader: Implement VMAD, VMNMX, VSETPameerj2021-07-239-23/+319
|
* shader: Add missing I2I exception when CC is usedReinUsesLisp2021-07-231-0/+4
|
* shader: Better interpolation and disabled attributes supportReinUsesLisp2021-07-237-23/+96
|
* spirv: Remove dependencies on Environment when generating SPIR-VReinUsesLisp2021-07-234-9/+12
|
* shader: Implement front faceReinUsesLisp2021-07-235-0/+12
|
* shader: Fix structured control flow on KIL instructionsReinUsesLisp2021-07-232-3/+7
| | | | | This could potentially leave unvisited blocks, leading to illegal phi nodes.
* shader: Fix TXQFernandoS272021-07-231-1/+1
|
* shader: Implement TXQ and fix FragDepthReinUsesLisp2021-07-2314-21/+172
|
* shader: Refactor PTP and other minor changesReinUsesLisp2021-07-2314-123/+67
|
* shader: Add IR opcode for ImageFetchFernandoS272021-07-237-5/+55
|
* shader: Implement TLD4.PTPFernandoS272021-07-2315-28/+111
|
* shader: Fix Array Indices in TEX/TLD4FernandoS272021-07-232-6/+6
|
* shader: Implement FragDepthFernandoS272021-07-232-1/+7
|
* shader: Implement TLD4S.FernandoS272021-07-233-4/+134
|
* shader: Implement TLD4 and TLD4_BFernandoS272021-07-2313-11/+315
|
* shader: Implement SHFLameerj2021-07-2316-69/+284
|
* shader: Track first bindless argument instead of the instruction itselfReinUsesLisp2021-07-231-1/+1
|
* shader: Properly insert Prologue instructionReinUsesLisp2021-07-231-1/+2
|
* shader: Minor style nitsReinUsesLisp2021-07-231-2/+4
|
* shader: Fix F2IFernandoS272021-07-2310-9/+147
|
* shader: Implement NDC [-1, 1], attribute types and default varying initializationReinUsesLisp2021-07-2312-40/+149
|
* shader: Fix use-after-free bug in object_poolReinUsesLisp2021-07-231-3/+3
|
* shader: Implement VOTEameerj2021-07-2314-5/+167
|
* shader: Fix TEX maskReinUsesLisp2021-07-231-1/+3
|
* vk_pipeline_cache: Add pipeline cacheReinUsesLisp2021-07-234-8/+15
|
* shader: Fold interpolation multiplicationsReinUsesLisp2021-07-231-0/+34
|
* shader: Better but still partial interpolation supportReinUsesLisp2021-07-231-5/+7
|
* shader: Implement DMNMX, DSET, DSETPameerj2021-07-2315-59/+208
|
* shader: Implement FADD32IFernandoS272021-07-231-2/+15
|
* shader: Implement F2FFernandoS272021-07-236-20/+192
|
* shader: Add missing fp64 usage flagsReinUsesLisp2021-07-231-0/+34
|
* shader: Implement DMUL and DFMAameerj2021-07-238-30/+111
| | | | Also add a missing const on DADD
* shader: Add FP64 register load/store helpersameerj2021-07-233-21/+24
|
* shader: Add support for fp16 comparisons and misc fixesReinUsesLisp2021-07-2311-14/+56
|
* shader: Fix floating point comparison for FP16FernandoS272021-07-235-32/+56
|
* shader: Implement HSETP2FernandoS272021-07-233-12/+117
|
* shader: Implement HSET2FernandoS272021-07-235-14/+119
|
* shader: Implement HMUL2FernandoS272021-07-233-16/+144
|
* shader: Implement HFMA2FernandoS272021-07-235-20/+192
|
* spirv: Implement VertexId and InstanceId, refactor codeReinUsesLisp2021-07-239-144/+243
|
* shader: Refactor half floating instructionsFernandoS272021-07-234-58/+84
|
* shader: Implement I2FReinUsesLisp2021-07-2316-69/+427
|
* shader: Implement ISCADD (imm)ReinUsesLisp2021-07-231-2/+2
|
* shader: Implement LOP32IReinUsesLisp2021-07-232-18/+45
|
* shader: Add partial rasterizer integrationReinUsesLisp2021-07-2334-156/+629
|
* shader: Implement DADDameerj2021-07-238-14/+132
|
* shader: Implement CSET and CSETPameerj2021-07-236-15/+114
|
* shader: Reorder phi nodes when redefined as undefined opcodesReinUsesLisp2021-07-231-1/+9
|
* shader: Fix instruction transitions in and out of PhiReinUsesLisp2021-07-231-9/+11
|
* shader: Implement FSET and FSETPameerj2021-07-239-94/+204
| | | | Also fix oversight with adding SignedZeroInfNanPreserve execution mode.
* shader: Implement TEXSReinUsesLisp2021-07-238-7/+287
|
* shader: Implement CAL inlining function callsReinUsesLisp2021-07-2324-330/+286
|
* spirv: Add SignedZeroInfNanPreserve logicameerj2021-07-232-0/+8
|
* shader: Implement FMNMXameerj2021-07-238-25/+101
| | | | And add a const in FCMP
* shader: Fix rebase issueReinUsesLisp2021-07-231-1/+0
|
* shader: Implement FCMPameerj2021-07-239-50/+203
| | | | still need to configure some settings for NV denorm flush and intel NaN
* shader: Partial implementation of LDCReinUsesLisp2021-07-2316-50/+405
|
* shader: Initial support for textures and TEXReinUsesLisp2021-07-2329-341/+1378
|
* shader: Implement R2Pameerj2021-07-238-15/+88
|
* shader: Implement SHFameerj2021-07-238-31/+119
|
* shader: Implement LEAameerj2021-07-239-29/+136
|
* shader: Deduplicate HADD2 codeReinUsesLisp2021-07-231-19/+16
|
* shader: Implement I2Iameerj2021-07-233-12/+100
|
* shader: Implement HADD2ReinUsesLisp2021-07-2312-42/+400
|
* shader: Implement LOP and LOP3ameerj2021-07-238-31/+227
|
* shader: Implement IADD3ameerj2021-07-233-12/+104
|
* shader: Implement PSETPameerj2021-07-234-5/+40
|
* Implement PSET, refactor common comparison funcsameerj2021-07-239-101/+88
|
* shader: Implement FLOameerj2021-07-238-18/+75
|
* shader: Implement ISET, add common_funcsameerj2021-07-238-50/+150
|
* shader: Make IMNMX, SHR, SEL stylistically more consistentameerj2021-07-233-5/+5
|
* shader: Implement ICMPameerj2021-07-233-16/+84
|
* shader: Implement IMNMXameerj2021-07-238-12/+105
|
* shader: Implement BFIameerj2021-07-233-16/+57
|
* shader: Implement BFEameerj2021-07-233-12/+67
|
* shader: Implement POPCameerj2021-07-238-12/+59
|
* shader: Implement SHRameerj2021-07-238-18/+80
|
* shader: Implement SELameerj2021-07-234-16/+53
|
* spirv: Move phi arguments emit to a separate functionReinUsesLisp2021-07-231-27/+27
|
* shader: Avoid infinite recursion when tracking global memoryReinUsesLisp2021-07-231-5/+26
|
* shader: Fix conditional execution of exit instructionsReinUsesLisp2021-07-232-5/+6
|
* spirv: Add support for self-referencing phi nodesReinUsesLisp2021-07-231-3/+10
|
* shader: Fix control flowReinUsesLisp2021-07-238-20/+39
|
* shader: Implement more of XMAD and FFMA32I and fix XMAD.CBCCReinUsesLisp2021-07-235-28/+76
|
* shader: FMUL, select, RRO, and MUFU fixesReinUsesLisp2021-07-2318-119/+507
|
* shader: Fix MOV(reg), add SHL variants and emit neg and abs instructionsReinUsesLisp2021-07-234-11/+11
|
* spirv: Fixes and Intel specific workaroundsReinUsesLisp2021-07-2310-32/+43
|
* shader: Rename, implement FADD.SAT and P2R (imm)ReinUsesLisp2021-07-2317-125/+211
|
* shader: Add denorm flush supportReinUsesLisp2021-07-2315-60/+210
|
* spirv: Add lower fp16 to fp32 passReinUsesLisp2021-07-2328-276/+465
|
* shader: Primitive Vulkan integrationReinUsesLisp2021-07-2328-498/+573
|
* shader: Add XMAD multiplication folding optimizationReinUsesLisp2021-07-231-5/+77
|
* shader: Simplify ISCADDReinUsesLisp2021-07-231-6/+1
|
* shader: Add utility to resolve identities on a valueReinUsesLisp2021-07-232-0/+8
|
* spirv: Implement EmitIdentityReinUsesLisp2021-07-232-3/+3
|
* spirv: Initial bindings supportReinUsesLisp2021-07-2322-292/+671
|
* shader: Improve object poolReinUsesLisp2021-07-233-50/+66
|
* shader: Fix trackingReinUsesLisp2021-07-231-50/+72
|
* shader: Add support for forward declarationsReinUsesLisp2021-07-2310-68/+79
|
* shader: Support SSA loops on IRReinUsesLisp2021-07-2312-46/+150
|
* shader: Misc fixesReinUsesLisp2021-07-2310-89/+104
|
* shader: Initial implementation of an ASTReinUsesLisp2021-07-2332-589/+1345
|
* spirv: Initial SPIR-V supportReinUsesLisp2021-07-2318-34/+1400
|
* shader: Better constant foldingReinUsesLisp2021-07-232-13/+48
|
* shader: Properly store phi on InstReinUsesLisp2021-07-236-75/+132
|
* shader: Add pools and rename filesReinUsesLisp2021-07-2330-108/+255
|
* shader: Make typed IRReinUsesLisp2021-07-2319-269/+495
|
* shader: Remove illegal character in SSA passReinUsesLisp2021-07-231-1/+1
|
* shader: Constant propagation and global memory to storage bufferReinUsesLisp2021-07-2317-63/+652
|
* shader: Initial instruction supportReinUsesLisp2021-07-2328-334/+1450
|
* shader: SSA and dominanceReinUsesLisp2021-07-2324-77/+570
|
* shader: Initial recompiler workReinUsesLisp2021-07-2356-0/+7060