summaryrefslogtreecommitdiffstats
path: root/src/shader_recompiler/frontend/ir (follow)
Commit message (Collapse)AuthorAgeFilesLines
* Merge pull request #6722 from ReinUsesLisp/xmad-optsbunnei2021-07-301-0/+8
|\ | | | | shader: Fold integer FMA from Nvidia's pattern
| * shader: Add TryInstRecursive utility to valuesReinUsesLisp2021-07-261-0/+8
| |
* | shader_recompiler: Remove unnecessary [[nodiscard]] instancesLioncash2021-07-262-4/+4
|/ | | | | [[nodiscard]] doesn't do anything on functions with a void return type and causes superfluous warnings.
* shader_recompiler, video_core: Resolve clang errorslat9nq2021-07-231-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 supportameerj2021-07-231-14/+14
|
* shader: Rework varyings and implement passthrough geometry shadersReinUsesLisp2021-07-232-0/+7
| | | | | | Put all varyings into a single std::bitset with helpers to access it. Implement passthrough geometry shaders using host's.
* shader: Remove IAbs64ReinUsesLisp2021-07-233-11/+3
|
* shader: Move loop safety tests to code emissionReinUsesLisp2021-07-233-13/+0
|
* shader: Add loggingReinUsesLisp2021-07-231-1/+1
|
* shader: Add shader loop safety check settingslat9nq2021-07-233-2/+17
| | | | Also add a setting for enable Nsight Aftermath.
* Revert "glasm: Skip phi moves on undefined instructions"ReinUsesLisp2021-07-231-13/+0
| | | | Causes regressions on Bowser's Fury.
* glasm: Skip phi moves on undefined instructionsReinUsesLisp2021-07-231-0/+13
|
* video_core,shader: Clang-format fixesReinUsesLisp2021-07-232-2/+2
|
* shader: Read branch conditions from an instructionReinUsesLisp2021-07-234-5/+13
| | | | Fixes the identity removal pass.
* glasm: Implement TEX and TEXS instructionsReinUsesLisp2021-07-232-10/+6
| | | | | Remove lod clamp from texture instructions with lod, as this is not needed (nor supported).
* shader_recompiler: GCC fixeslat9nq2021-07-232-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 unionReinUsesLisp2021-07-231-1/+6
|
* glasm: Initial implementation of phi nodes on GLASMReinUsesLisp2021-07-235-7/+25
|
* glasm: Rework control flow introducing a syntax listReinUsesLisp2021-07-2314-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 I2FReinUsesLisp2021-07-232-34/+36
|
* glasm: Implement basic GLASM instructionsReinUsesLisp2021-07-231-0/+6
|
* glasm: Add GLASM backend infrastructureReinUsesLisp2021-07-231-0/+6
|
* shader: Implement Int32 SUATOM/SUREDameerj2021-07-234-0/+186
|
* shader: Initial OpenGL implementationReinUsesLisp2021-07-232-0/+5
|
* shader: Implement VertexA stageFernandoS272021-07-232-0/+2
|
* shader: Add missing UndoUse case for GetSparseFromOpReinUsesLisp2021-07-231-0/+4
|
* shader: Simplify code in opcodes.h to fix IntellisenseReinUsesLisp2021-07-231-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 texturesReinUsesLisp2021-07-232-20/+21
|
* shader: Fix gcc warningsReinUsesLisp2021-07-231-1/+1
|
* shader: Inline common Value gettersReinUsesLisp2021-07-232-109/+102
|
* shader: Intrusively store in a block if it's sealed or notReinUsesLisp2021-07-231-0/+9
|
* 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-237-168/+152
|
* shader: Intrusively store register values in block for SSA passReinUsesLisp2021-07-231-0/+10
|
* 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: Add coarse derivativesFernandoS272021-07-233-0/+14
|
* shader: Implement fine derivates constant propagationFernandoS272021-07-233-0/+14
|
* shader: Implement SR_Y_DIRECTIONFernandoS272021-07-233-0/+6
|
* shader: Fix Phi node typesReinUsesLisp2021-07-231-4/+0
|
* shader: Fix memory barriersReinUsesLisp2021-07-235-30/+13
|
* shader: Implement SampleMaskReinUsesLisp2021-07-234-0/+7
|
* shader: Implement PIXLD.MY_INDEXReinUsesLisp2021-07-233-0/+6
|
* shader: Implement tessellation shaders, polygon mode and invocation idReinUsesLisp2021-07-2310-20/+232
|
* shader: Implement transform feedbacks and define file formatReinUsesLisp2021-07-232-0/+9
|
* shader: Implement geometry shadersReinUsesLisp2021-07-234-12/+26
|
* shader: Implement OUTReinUsesLisp2021-07-234-0/+15
|
* shader: Implement SR_THREAD_KILLReinUsesLisp2021-07-233-0/+7
|
* shader: Implement ATOM/S and REDameerj2021-07-234-1/+374
|
* shader: Move LaneId to the warp emission file and fix AMDReinUsesLisp2021-07-231-1/+1
|
* shader: Mark ImageWrite with side effectsReinUsesLisp2021-07-231-0/+3
|
* shader: Implement SULD and SUSTReinUsesLisp2021-07-234-9/+27
|
* shader: Address feedback + clang formatlat9nq2021-07-231-1/+1
|
* shader_recompiler,video_core: Cleanup some GCC and Clang errorslat9nq2021-07-2311-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 feedbackFernandoS272021-07-232-4/+4
|
* shader: Implement indexed attributesFernandoS272021-07-232-0/+11
|
* shader: Add subgroup masksReinUsesLisp2021-07-233-0/+30
|
* shader: Implement BAR and fix memory barriersReinUsesLisp2021-07-234-0/+10
|
* shader: Abstract breadth searches and use the abstractionReinUsesLisp2021-07-231-0/+57
|
* shader: Reimplement GetCbufU64 as GetCbufU32x2ReinUsesLisp2021-07-233-6/+6
| | | | It may generate better code on some compilers and it's easier to handle.
* shader: Fix undetected bug from reviewFernandoS272021-07-231-0/+3
|
* shader: Address feedbackFernandoS272021-07-231-1/+7
|
* shader: Address FeedbackFernandoS272021-07-234-68/+18
|
* shader: Implement SR_LaneIdFernandoS272021-07-233-0/+7
|
* shader: Implement MEMBARFernandoS272021-07-234-0/+22
|
* shader: Improve VOTE.VTG stubFernandoS272021-07-233-2/+53
|
* shader: Stub VOTE.VTGFernandoS272021-07-231-0/+7
|
* shader: Unroll "using enum" for opcode declarationsReinUsesLisp2021-07-231-1/+27
|
* shader: Fix TXDFernandoS272021-07-231-1/+1
|
* shader: Always pass a lod for TexelFetchReinUsesLisp2021-07-231-3/+3
|
* shader: Implement ImageGradientFernandoS272021-07-234-0/+15
|
* shader: Implement TMML partiallyFernandoS272021-07-232-3/+4
|
* shader,spirv: Implement ImageQueryLod.FernandoS272021-07-233-0/+11
|
* shader: Implement TLDFernandoS272021-07-231-3/+3
|
* shader: Store type of phi nodes in flagsReinUsesLisp2021-07-232-1/+9
| | | | This is needed because pseudo-instructions where invalidated.
* shader: Add missing new linesReinUsesLisp2021-07-231-0/+2
|
* shader: Implement FSWZADDameerj2021-07-233-0/+6
|
* shader: Implement BRXFernandoS272021-07-234-0/+20
|
* shader: Fix alignment checks on RZReinUsesLisp2021-07-231-1/+1
|
* shader: Implement I2I SATameerj2021-07-233-0/+12
|
* shader: Implement LDS, STS, LDL, and STS and use SPIR-V 1.4 when availableReinUsesLisp2021-07-235-0/+78
|
* shader: Implement VMAD, VMNMX, VSETPameerj2021-07-232-10/+13
|
* spirv: Remove dependencies on Environment when generating SPIR-VReinUsesLisp2021-07-231-0/+2
|
* shader: Fix structured control flow on KIL instructionsReinUsesLisp2021-07-231-0/+1
| | | | | This could potentially leave unvisited blocks, leading to illegal phi nodes.
* shader: Implement TXQ and fix FragDepthReinUsesLisp2021-07-233-0/+10
|
* shader: Refactor PTP and other minor changesReinUsesLisp2021-07-236-31/+6
|
* shader: Add IR opcode for ImageFetchFernandoS272021-07-233-2/+15
|
* shader: Implement TLD4.PTPFernandoS272021-07-236-5/+36
|
* shader: Implement TLD4 and TLD4_BFernandoS272021-07-234-0/+26
|
* shader: Implement SHFLameerj2021-07-235-2/+53
|
* shader: Fix F2IFernandoS272021-07-233-0/+22
|
* shader: Implement NDC [-1, 1], attribute types and default varying initializationReinUsesLisp2021-07-234-0/+17
|
* shader: Implement VOTEameerj2021-07-233-0/+27
|
* shader: Implement DMNMX, DSET, DSETPameerj2021-07-232-0/+3
|
* shader: Implement F2FFernandoS272021-07-232-7/+8
|
* shader: Add support for fp16 comparisons and misc fixesReinUsesLisp2021-07-233-7/+24
|
* shader: Implement I2FReinUsesLisp2021-07-233-55/+117
|
* shader: Add partial rasterizer integrationReinUsesLisp2021-07-238-8/+34
|
* shader: Implement DADDameerj2021-07-232-0/+9
|
* shader: Implement CSET and CSETPameerj2021-07-233-7/+59
|
* shader: Fix instruction transitions in and out of PhiReinUsesLisp2021-07-231-9/+11
|
* shader: Implement TEXSReinUsesLisp2021-07-233-1/+13
|
* shader: Implement CAL inlining function callsReinUsesLisp2021-07-236-802/+10
|
* shader: Implement FMNMXameerj2021-07-232-0/+30
| | | | And add a const in FCMP
* shader: Fix rebase issueReinUsesLisp2021-07-231-1/+0
|
* shader: Implement FCMPameerj2021-07-233-33/+68
| | | | still need to configure some settings for NV denorm flush and intel NaN
* shader: Partial implementation of LDCReinUsesLisp2021-07-233-2/+31
|
* shader: Initial support for textures and TEXReinUsesLisp2021-07-239-305/+537
|
* shader: Implement R2Pameerj2021-07-232-0/+3
|
* shader: Implement SHFameerj2021-07-233-6/+22
|
* shader: Implement LEAameerj2021-07-233-6/+22
|
* shader: Implement HADD2ReinUsesLisp2021-07-233-6/+105
|
* shader: Implement FLOameerj2021-07-233-3/+15
|
* shader: Implement IMNMXameerj2021-07-233-0/+25
|
* shader: Implement POPCameerj2021-07-233-0/+12
|
* shader: Implement SHRameerj2021-07-233-0/+6
|
* shader: Fix control flowReinUsesLisp2021-07-235-16/+35
|
* shader: FMUL, select, RRO, and MUFU fixesReinUsesLisp2021-07-233-28/+184
|
* spirv: Fixes and Intel specific workaroundsReinUsesLisp2021-07-231-3/+0
|
* shader: Rename, implement FADD.SAT and P2R (imm)ReinUsesLisp2021-07-232-10/+10
|
* shader: Add denorm flush supportReinUsesLisp2021-07-233-29/+34
|
* spirv: Add lower fp16 to fp32 passReinUsesLisp2021-07-236-39/+47
|
* shader: Primitive Vulkan integrationReinUsesLisp2021-07-232-1/+3
|
* shader: Add utility to resolve identities on a valueReinUsesLisp2021-07-232-0/+8
|
* spirv: Initial bindings supportReinUsesLisp2021-07-232-0/+18
|
* shader: Improve object poolReinUsesLisp2021-07-231-5/+5
|
* shader: Add support for forward declarationsReinUsesLisp2021-07-236-13/+27
|
* shader: Support SSA loops on IRReinUsesLisp2021-07-233-0/+62
|
* shader: Misc fixesReinUsesLisp2021-07-233-9/+13
|
* shader: Initial implementation of an ASTReinUsesLisp2021-07-2311-58/+914
|
* spirv: Initial SPIR-V supportReinUsesLisp2021-07-232-14/+10
|
* shader: Better constant foldingReinUsesLisp2021-07-231-1/+1
|
* shader: Properly store phi on InstReinUsesLisp2021-07-234-59/+115
|
* shader: Add pools and rename filesReinUsesLisp2021-07-2310-24/+73
|
* shader: Make typed IRReinUsesLisp2021-07-237-212/+389
|
* shader: Constant propagation and global memory to storage bufferReinUsesLisp2021-07-239-25/+73
|
* shader: Initial instruction supportReinUsesLisp2021-07-238-65/+398
|
* shader: SSA and dominanceReinUsesLisp2021-07-2311-19/+178
|
* shader: Initial recompiler workReinUsesLisp2021-07-2321-0/+3027