summaryrefslogtreecommitdiffstats
path: root/src/shader_recompiler/frontend/maxwell/translate (follow)
Commit message (Collapse)AuthorAgeFilesLines
* Merge pull request #8038 from liamwhite/exit-register-detectionAmeer J2022-03-221-0/+4
|\ | | | | shader_recompiler/EXIT: increment output register on failed enable test
| * shader_recompiler/EXIT: skip render targets with no outputsLiam2022-03-181-0/+3
| |
| * shader_recompiler/EXIT: increment output register on failed enable testLiam2022-03-181-0/+1
| |
* | shader_recompiler: Reduce unused includesameerj2022-03-2020-29/+2
|/
* shader_recompiler: Implement LDC.IS address modeLiam2022-03-161-2/+12
|
* shader_recompiler/LOP3: Use brute force python results within switch/case.Markus Wick2022-03-082-52/+620
| | | | | | | | | | | | | | | | | | | | | Thanks to @asLody for optimizing this function. This raised the focus that this function should be optimized more. The current table assumes that the host GPU is able to invert for free, so only AND,OR,XOR are accumulated in the performance metrik. Performance results: Instructions 0: 8 1: 30 2: 114 3: 80 4: 24 Latency 0: 8 1: 30 2: 194 3: 24
* video_minimum_maximum: Implement src operand selectorsameerj2022-01-271-12/+6
| | | | Used by Pokemon Legends: Arceus
* shader: Support out of bound local memory reads and immediate writesReinUsesLisp2021-07-231-4/+21
| | | | | | | | | Support ignoring immediate out of bound writes. Writing dynamically out of bounds is not yet supported (e.g. R0+0x4). Reading out of bounds yields zero. This is supported checking for the size from the IR; if the input is immediate, the optimization passes will drop it.
* shader: Implement ISETP.Xameerj2021-07-234-44/+57
|
* shader_recompiler, video_core: Resolve clang errorslat9nq2021-07-235-20/+19
| | | | | | | | | | Silences the following warnings-turned-errors: -Wsign-conversion -Wunused-private-field -Wbraced-scalar-init -Wunused-variable And some other errors
* shader: Account for 33-bit IADD3 scenarioameerj2021-07-231-2/+10
|
* shader: Only apply shift on register mode for IADD3ReinUsesLisp2021-07-231-10/+14
|
* shader_recompiler: Fix IADD3 input partitioningameerj2021-07-231-14/+13
|
* shader: Add loggingReinUsesLisp2021-07-233-6/+6
|
* shader: Comment why the array component is not read in TMMLReinUsesLisp2021-07-231-0/+2
|
* tmml: Remove index component from coords vecameerj2021-07-231-4/+3
| | | | The lod query functions exposed by the rendering API's do not make use of the texturearray layer indexing.
* shader: Add 2D and 3D variants to SUATOM and SUREDReinUsesLisp2021-07-231-0/+4
| | | | Used by Claybook.
* shader: Avoid CPU side undefined behavior on I2FReinUsesLisp2021-07-231-0/+2
|
* shader: Add support for "negative" and unaligned offsetsReinUsesLisp2021-07-231-2/+2
| | | | | | | | | "Negative" offsets don't exist. They are shown as such due to a bug in nvdisasm. Unaligned offsets have been proved to read the aligned offset. For example, when reading an U32, if the offset is 6, the offset read will be 4.
* shader: Implement ISCADD32IReinUsesLisp2021-07-231-17/+31
|
* shader: Fix ImageWrite indexingReinUsesLisp2021-07-231-1/+1
|
* shader: Fix TMML queriesReinUsesLisp2021-07-231-5/+9
|
* shader: Handle host exceptionsReinUsesLisp2021-07-231-4/+9
|
* glasm: Implement TEX and TEXS instructionsReinUsesLisp2021-07-232-12/+11
| | | | | Remove lod clamp from texture instructions with lod, as this is not needed (nor supported).
* glasm: Rework control flow introducing a syntax listReinUsesLisp2021-07-232-5/+4
| | | | | 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-231-1/+6
|
* shader: ISET.X implementationameerj2021-07-231-8/+58
|
* shader: Stub SR_AFFINITYFernandoS272021-07-231-0/+3
|
* shader: Implement Int32 SUATOM/SUREDameerj2021-07-233-4/+205
|
* shader: Initial OpenGL implementationReinUsesLisp2021-07-231-0/+7
|
* shader: Fix IADD3.CCameerj2021-07-231-12/+5
|
* shader: Fix VMNMX selector BReinUsesLisp2021-07-231-1/+2
|
* 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: Simplify code for local memoryReinUsesLisp2021-07-231-6/+11
|
* 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: Implement SR_Y_DIRECTIONFernandoS272021-07-231-0/+2
|
* shader: Fix memory barriersReinUsesLisp2021-07-231-20/+10
|
* shader: Implement BFE and BFI CCameerj2021-07-232-12/+16
| | | | Fix two bugs in BFI.
* shader: Implement SampleMaskReinUsesLisp2021-07-231-1/+1
|
* shader: Implement PIXLD.MY_INDEXReinUsesLisp2021-07-232-4/+46
|
* shader: Implement tessellation shaders, polygon mode and invocation idReinUsesLisp2021-07-232-13/+22
|
* shader: Document and relax cache control on surface instructionsReinUsesLisp2021-07-231-10/+11
|
* shader: Implement geometry shadersReinUsesLisp2021-07-231-6/+10
|
* shader: Implement OUTReinUsesLisp2021-07-233-17/+47
|
* 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-232-4/+55
|
* shader: Fix CC in I2IReinUsesLisp2021-07-231-0/+2
|
* shader: Simplify FLO and throw on CCReinUsesLisp2021-07-231-12/+13
|
* shader: Implement LOP CCReinUsesLisp2021-07-231-3/+11
|
* shader: Implement SR_THREAD_KILLReinUsesLisp2021-07-231-0/+2
|
* shader: Apply sign bit in FCMP (imm)ReinUsesLisp2021-07-231-1/+1
|
* shader: Implement ATOM/S and REDameerj2021-07-233-12/+332
|
* 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-2310-59/+338
|
* shader: Fix Windows build issuesReinUsesLisp2021-07-231-1/+1
|
* shader: Address feedback + clang formatlat9nq2021-07-232-3/+3
|
* shader_recompiler,video_core: Cleanup some GCC and Clang errorslat9nq2021-07-2330-87/+90
| | | | | | | | | | | | | | | | | 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 F2IReinUsesLisp2021-07-231-1/+1
|
* shader: Address feedbackFernandoS272021-07-231-16/+21
|
* shader: Implement indexed attributesFernandoS272021-07-231-13/+25
|
* shader: Implement AL2PFernandoS272021-07-232-4/+35
|
* shader: Add subgroup masksReinUsesLisp2021-07-231-35/+75
|
* shader: Implement BAR and fix memory barriersReinUsesLisp2021-07-231-2/+56
|
* shader: Reimplement GetCbufU64 as GetCbufU32x2ReinUsesLisp2021-07-231-6/+6
| | | | 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: Fix fp16 merge when using native fp16ReinUsesLisp2021-07-231-3/+3
|
* shader: Fix FADD32IReinUsesLisp2021-07-231-6/+4
|
* shader: "Implement" NOPFernandoS272021-07-231-1/+1
|
* shader: Address FeedbackFernandoS272021-07-233-12/+7
|
* shader: Implement SR_LaneIdFernandoS272021-07-231-0/+2
|
* shader: Implement MEMBARFernandoS272021-07-232-11/+56
|
* shader: Improve VOTE.VTG stubFernandoS272021-07-231-1/+4
|
* shader: Stub VOTE.VTGFernandoS272021-07-233-4/+8
|
* shader: Implement LDG .U.128 as .128ReinUsesLisp2021-07-231-3/+2
|
* shader: Address feedbackFernandoS272021-07-233-37/+33
|
* shader: Always pass a lod for TexelFetchReinUsesLisp2021-07-232-22/+14
|
* shader: Implement TXDFernandoS272021-07-232-8/+180
|
* shader: Implement TMML partiallyFernandoS272021-07-232-8/+130
|
* shader: Implement TLDSFernandoS272021-07-232-4/+252
|
* shader: Implement TLDFernandoS272021-07-232-8/+165
|
* shader: Implement FSWZADDameerj2021-07-234-4/+49
|
* shader: Implement BRXFernandoS272021-07-234-34/+78
|
* shader: Implement I2I CCameerj2021-07-231-3/+4
|
* shader: Implement I2I SATameerj2021-07-231-10/+30
|
* 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-232-16/+197
|
* shader: Implement ISCADD CCameerj2021-07-231-1/+4
|
* shader: Implement VMAD, VMNMX, VSETPameerj2021-07-236-13/+301
|
* shader: Add missing I2I exception when CC is usedReinUsesLisp2021-07-231-0/+4
|
* shader: Better interpolation and disabled attributes supportReinUsesLisp2021-07-231-9/+1
|
* shader: Fix TXQFernandoS272021-07-231-1/+1
|
* shader: Implement TXQ and fix FragDepthReinUsesLisp2021-07-232-8/+76
|
* shader: Refactor PTP and other minor changesReinUsesLisp2021-07-231-15/+13
|
* shader: Implement TLD4.PTPFernandoS272021-07-232-14/+16
|
* shader: Fix Array Indices in TEX/TLD4FernandoS272021-07-232-6/+6
|
* shader: Implement FragDepthFernandoS272021-07-231-1/+1
|
* shader: Implement TLD4S.FernandoS272021-07-232-4/+133
|
* shader: Implement TLD4 and TLD4_BFernandoS272021-07-232-8/+209
|
* shader: Implement SHFLameerj2021-07-233-6/+71
|
* shader: Minor style nitsReinUsesLisp2021-07-231-2/+4
|
* shader: Fix F2IFernandoS272021-07-233-5/+102
|
* shader: Implement VOTEameerj2021-07-232-4/+52
|
* shader: Fix TEX maskReinUsesLisp2021-07-231-1/+3
|
* shader: Better but still partial interpolation supportReinUsesLisp2021-07-231-5/+7
|
* shader: Implement DMNMX, DSET, DSETPameerj2021-07-235-37/+164
|
* shader: Implement FADD32IFernandoS272021-07-231-2/+15
|
* shader: Implement F2FFernandoS272021-07-232-12/+180
|
* shader: Implement DMUL and DFMAameerj2021-07-236-29/+108
| | | | 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-234-7/+4
|
* shader: Fix floating point comparison for FP16FernandoS272021-07-234-32/+32
|
* shader: Implement HSETP2FernandoS272021-07-232-12/+116
|
* shader: Implement HSET2FernandoS272021-07-233-12/+116
|
* shader: Implement HMUL2FernandoS272021-07-232-16/+143
|
* shader: Implement HFMA2FernandoS272021-07-234-20/+191
|
* shader: Refactor half floating instructionsFernandoS272021-07-233-58/+82
|
* shader: Implement I2FReinUsesLisp2021-07-236-14/+198
|
* shader: Implement ISCADD (imm)ReinUsesLisp2021-07-231-2/+2
|
* shader: Implement LOP32IReinUsesLisp2021-07-232-18/+45
|
* shader: Add partial rasterizer integrationReinUsesLisp2021-07-237-34/+134
|
* shader: Implement DADDameerj2021-07-234-14/+120
|
* shader: Implement CSET and CSETPameerj2021-07-232-8/+54
|
* shader: Implement FSET and FSETPameerj2021-07-237-92/+198
| | | | Also fix oversight with adding SignedZeroInfNanPreserve execution mode.
* shader: Implement TEXSReinUsesLisp2021-07-233-4/+262
|
* shader: Implement CAL inlining function callsReinUsesLisp2021-07-232-3/+3
|
* shader: Implement FMNMXameerj2021-07-233-13/+58
| | | | And add a const in FCMP
* shader: Implement FCMPameerj2021-07-232-16/+116
| | | | still need to configure some settings for NV denorm flush and intel NaN
* shader: Partial implementation of LDCReinUsesLisp2021-07-233-8/+97
|
* shader: Initial support for textures and TEXReinUsesLisp2021-07-232-8/+232
|
* shader: Implement R2Pameerj2021-07-232-12/+71
|
* shader: Implement SHFameerj2021-07-232-16/+77
|
* shader: Implement LEAameerj2021-07-232-20/+100
|
* shader: Deduplicate HADD2 codeReinUsesLisp2021-07-231-19/+16
|
* shader: Implement I2Iameerj2021-07-232-12/+99
|
* shader: Implement HADD2ReinUsesLisp2021-07-233-17/+185
|
* shader: Implement LOP and LOP3ameerj2021-07-236-29/+223
|
* shader: Implement IADD3ameerj2021-07-232-12/+103
|
* shader: Implement PSETPameerj2021-07-233-4/+38
|
* Implement PSET, refactor common comparison funcsameerj2021-07-238-101/+87
|
* shader: Implement FLOameerj2021-07-232-12/+46
|
* shader: Implement ISET, add common_funcsameerj2021-07-237-50/+147
|
* shader: Make IMNMX, SHR, SEL stylistically more consistentameerj2021-07-233-5/+5
|
* shader: Implement ICMPameerj2021-07-232-16/+83
|
* shader: Implement IMNMXameerj2021-07-232-12/+59
|
* shader: Implement BFIameerj2021-07-232-16/+56
|
* shader: Implement BFEameerj2021-07-232-12/+66
|
* shader: Implement POPCameerj2021-07-232-12/+36
|
* shader: Implement SHRameerj2021-07-232-12/+62
|
* shader: Implement SELameerj2021-07-232-12/+44
|
* shader: Fix control flowReinUsesLisp2021-07-232-3/+3
|
* shader: Implement more of XMAD and FFMA32I and fix XMAD.CBCCReinUsesLisp2021-07-233-22/+70
|
* shader: FMUL, select, RRO, and MUFU fixesReinUsesLisp2021-07-2310-38/+93
|
* shader: Fix MOV(reg), add SHL variants and emit neg and abs instructionsReinUsesLisp2021-07-232-5/+5
|
* spirv: Fixes and Intel specific workaroundsReinUsesLisp2021-07-231-6/+9
|
* shader: Rename, implement FADD.SAT and P2R (imm)ReinUsesLisp2021-07-239-34/+100
|
* shader: Add denorm flush supportReinUsesLisp2021-07-231-4/+15
|
* spirv: Add lower fp16 to fp32 passReinUsesLisp2021-07-232-16/+48
|
* shader: Primitive Vulkan integrationReinUsesLisp2021-07-234-22/+26
|
* shader: Simplify ISCADDReinUsesLisp2021-07-231-6/+1
|
* shader: Misc fixesReinUsesLisp2021-07-232-4/+4
|
* shader: Initial implementation of an ASTReinUsesLisp2021-07-233-17/+9
|
* spirv: Initial SPIR-V supportReinUsesLisp2021-07-231-5/+5
|
* shader: Add pools and rename filesReinUsesLisp2021-07-238-10/+14
|
* shader: Make typed IRReinUsesLisp2021-07-239-46/+74
|
* shader: Initial instruction supportReinUsesLisp2021-07-2315-178/+1038
|
* shader: SSA and dominanceReinUsesLisp2021-07-232-5/+5
|
* shader: Initial recompiler workReinUsesLisp2021-07-2311-0/+2012