Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | Merge pull request #8038 from liamwhite/exit-register-detection | Ameer J | 2022-03-22 | 1 | -0/+4 |
|\ | | | | | shader_recompiler/EXIT: increment output register on failed enable test | ||||
| * | shader_recompiler/EXIT: skip render targets with no outputs | Liam | 2022-03-18 | 1 | -0/+3 |
| | | |||||
| * | shader_recompiler/EXIT: increment output register on failed enable test | Liam | 2022-03-18 | 1 | -0/+1 |
| | | |||||
* | | shader_recompiler: Reduce unused includes | ameerj | 2022-03-20 | 20 | -29/+2 |
|/ | |||||
* | shader_recompiler: Implement LDC.IS address mode | Liam | 2022-03-16 | 1 | -2/+12 |
| | |||||
* | shader_recompiler/LOP3: Use brute force python results within switch/case. | Markus Wick | 2022-03-08 | 2 | -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 selectors | ameerj | 2022-01-27 | 1 | -12/+6 |
| | | | | Used by Pokemon Legends: Arceus | ||||
* | shader: Support out of bound local memory reads and immediate writes | ReinUsesLisp | 2021-07-23 | 1 | -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.X | ameerj | 2021-07-23 | 4 | -44/+57 |
| | |||||
* | shader_recompiler, video_core: Resolve clang errors | lat9nq | 2021-07-23 | 5 | -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 scenario | ameerj | 2021-07-23 | 1 | -2/+10 |
| | |||||
* | shader: Only apply shift on register mode for IADD3 | ReinUsesLisp | 2021-07-23 | 1 | -10/+14 |
| | |||||
* | shader_recompiler: Fix IADD3 input partitioning | ameerj | 2021-07-23 | 1 | -14/+13 |
| | |||||
* | shader: Add logging | ReinUsesLisp | 2021-07-23 | 3 | -6/+6 |
| | |||||
* | shader: Comment why the array component is not read in TMML | ReinUsesLisp | 2021-07-23 | 1 | -0/+2 |
| | |||||
* | tmml: Remove index component from coords vec | ameerj | 2021-07-23 | 1 | -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 SURED | ReinUsesLisp | 2021-07-23 | 1 | -0/+4 |
| | | | | Used by Claybook. | ||||
* | shader: Avoid CPU side undefined behavior on I2F | ReinUsesLisp | 2021-07-23 | 1 | -0/+2 |
| | |||||
* | shader: Add support for "negative" and unaligned offsets | ReinUsesLisp | 2021-07-23 | 1 | -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 ISCADD32I | ReinUsesLisp | 2021-07-23 | 1 | -17/+31 |
| | |||||
* | shader: Fix ImageWrite indexing | ReinUsesLisp | 2021-07-23 | 1 | -1/+1 |
| | |||||
* | shader: Fix TMML queries | ReinUsesLisp | 2021-07-23 | 1 | -5/+9 |
| | |||||
* | shader: Handle host exceptions | ReinUsesLisp | 2021-07-23 | 1 | -4/+9 |
| | |||||
* | glasm: Implement TEX and TEXS instructions | ReinUsesLisp | 2021-07-23 | 2 | -12/+11 |
| | | | | | Remove lod clamp from texture instructions with lod, as this is not needed (nor supported). | ||||
* | glasm: Rework control flow introducing a syntax list | ReinUsesLisp | 2021-07-23 | 2 | -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 I2F | ReinUsesLisp | 2021-07-23 | 1 | -1/+6 |
| | |||||
* | shader: ISET.X implementation | ameerj | 2021-07-23 | 1 | -8/+58 |
| | |||||
* | shader: Stub SR_AFFINITY | FernandoS27 | 2021-07-23 | 1 | -0/+3 |
| | |||||
* | shader: Implement Int32 SUATOM/SURED | ameerj | 2021-07-23 | 3 | -4/+205 |
| | |||||
* | shader: Initial OpenGL implementation | ReinUsesLisp | 2021-07-23 | 1 | -0/+7 |
| | |||||
* | shader: Fix IADD3.CC | ameerj | 2021-07-23 | 1 | -12/+5 |
| | |||||
* | shader: Fix VMNMX selector B | ReinUsesLisp | 2021-07-23 | 1 | -1/+2 |
| | |||||
* | shader: Refactor atomic_operations_global_memory | ameerj | 2021-07-23 | 1 | -44/+36 |
| | |||||
* | shader: add missing include guard in half_floating_point_helper.h | ameerj | 2021-07-23 | 1 | -0/+2 |
| | |||||
* | shader: Simplify code for local memory | ReinUsesLisp | 2021-07-23 | 1 | -6/+11 |
| | |||||
* | shader: Address feedback | FernandoS27 | 2021-07-23 | 2 | -7/+10 |
| | |||||
* | shader: Implement F2F (Imm) | FernandoS27 | 2021-07-23 | 1 | -2/+28 |
| | |||||
* | shader: Implement IADD3.CC/.X | FernandoS27 | 2021-07-23 | 1 | -7/+22 |
| | |||||
* | shader: Implement SR_Y_DIRECTION | FernandoS27 | 2021-07-23 | 1 | -0/+2 |
| | |||||
* | shader: Fix memory barriers | ReinUsesLisp | 2021-07-23 | 1 | -20/+10 |
| | |||||
* | shader: Implement BFE and BFI CC | ameerj | 2021-07-23 | 2 | -12/+16 |
| | | | | Fix two bugs in BFI. | ||||
* | shader: Implement SampleMask | ReinUsesLisp | 2021-07-23 | 1 | -1/+1 |
| | |||||
* | shader: Implement PIXLD.MY_INDEX | ReinUsesLisp | 2021-07-23 | 2 | -4/+46 |
| | |||||
* | shader: Implement tessellation shaders, polygon mode and invocation id | ReinUsesLisp | 2021-07-23 | 2 | -13/+22 |
| | |||||
* | shader: Document and relax cache control on surface instructions | ReinUsesLisp | 2021-07-23 | 1 | -10/+11 |
| | |||||
* | shader: Implement geometry shaders | ReinUsesLisp | 2021-07-23 | 1 | -6/+10 |
| | |||||
* | shader: Implement OUT | ReinUsesLisp | 2021-07-23 | 3 | -17/+47 |
| | |||||
* | internal_stage_buffer_entry_read: Remove pragma optimize off | lat9nq | 2021-07-23 | 1 | -2/+0 |
| | |||||
* | shader: Stub SR_INVOCATION_INFO | ReinUsesLisp | 2021-07-23 | 1 | -2/+5 |
| | |||||
* | shader: Stub ISBERD | ReinUsesLisp | 2021-07-23 | 2 | -4/+55 |
| | |||||
* | shader: Fix CC in I2I | ReinUsesLisp | 2021-07-23 | 1 | -0/+2 |
| | |||||
* | shader: Simplify FLO and throw on CC | ReinUsesLisp | 2021-07-23 | 1 | -12/+13 |
| | |||||
* | shader: Implement LOP CC | ReinUsesLisp | 2021-07-23 | 1 | -3/+11 |
| | |||||
* | shader: Implement SR_THREAD_KILL | ReinUsesLisp | 2021-07-23 | 1 | -0/+2 |
| | |||||
* | shader: Apply sign bit in FCMP (imm) | ReinUsesLisp | 2021-07-23 | 1 | -1/+1 |
| | |||||
* | shader: Implement ATOM/S and RED | ameerj | 2021-07-23 | 3 | -12/+332 |
| | |||||
* | shader: Implement CC for ISET, FSET, PSET, CSET, and DSET | FernandoS27 | 2021-07-23 | 18 | -13/+136 |
| | | | | Throw when other instructions are missing CC. | ||||
* | shader: Remove outdated comment in F2I | ReinUsesLisp | 2021-07-23 | 1 | -4/+0 |
| | |||||
* | shader: Implement SULD and SUST | ReinUsesLisp | 2021-07-23 | 10 | -59/+338 |
| | |||||
* | shader: Fix Windows build issues | ReinUsesLisp | 2021-07-23 | 1 | -1/+1 |
| | |||||
* | shader: Address feedback + clang format | lat9nq | 2021-07-23 | 2 | -3/+3 |
| | |||||
* | shader_recompiler,video_core: Cleanup some GCC and Clang errors | lat9nq | 2021-07-23 | 30 | -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 variant | ReinUsesLisp | 2021-07-23 | 1 | -1/+9 |
| | |||||
* | shader: Fix F2I | ReinUsesLisp | 2021-07-23 | 1 | -1/+1 |
| | |||||
* | shader: Address feedback | FernandoS27 | 2021-07-23 | 1 | -16/+21 |
| | |||||
* | shader: Implement indexed attributes | FernandoS27 | 2021-07-23 | 1 | -13/+25 |
| | |||||
* | shader: Implement AL2P | FernandoS27 | 2021-07-23 | 2 | -4/+35 |
| | |||||
* | shader: Add subgroup masks | ReinUsesLisp | 2021-07-23 | 1 | -35/+75 |
| | |||||
* | shader: Implement BAR and fix memory barriers | ReinUsesLisp | 2021-07-23 | 1 | -2/+56 |
| | |||||
* | shader: Reimplement GetCbufU64 as GetCbufU32x2 | ReinUsesLisp | 2021-07-23 | 1 | -6/+6 |
| | | | | It may generate better code on some compilers and it's easier to handle. | ||||
* | shader: Remove unused header in VOTE | ReinUsesLisp | 2021-07-23 | 1 | -2/+0 |
| | |||||
* | shader: Fix fp16 merge when using native fp16 | ReinUsesLisp | 2021-07-23 | 1 | -3/+3 |
| | |||||
* | shader: Fix FADD32I | ReinUsesLisp | 2021-07-23 | 1 | -6/+4 |
| | |||||
* | shader: "Implement" NOP | FernandoS27 | 2021-07-23 | 1 | -1/+1 |
| | |||||
* | shader: Address Feedback | FernandoS27 | 2021-07-23 | 3 | -12/+7 |
| | |||||
* | shader: Implement SR_LaneId | FernandoS27 | 2021-07-23 | 1 | -0/+2 |
| | |||||
* | shader: Implement MEMBAR | FernandoS27 | 2021-07-23 | 2 | -11/+56 |
| | |||||
* | shader: Improve VOTE.VTG stub | FernandoS27 | 2021-07-23 | 1 | -1/+4 |
| | |||||
* | shader: Stub VOTE.VTG | FernandoS27 | 2021-07-23 | 3 | -4/+8 |
| | |||||
* | shader: Implement LDG .U.128 as .128 | ReinUsesLisp | 2021-07-23 | 1 | -3/+2 |
| | |||||
* | shader: Address feedback | FernandoS27 | 2021-07-23 | 3 | -37/+33 |
| | |||||
* | shader: Always pass a lod for TexelFetch | ReinUsesLisp | 2021-07-23 | 2 | -22/+14 |
| | |||||
* | shader: Implement TXD | FernandoS27 | 2021-07-23 | 2 | -8/+180 |
| | |||||
* | shader: Implement TMML partially | FernandoS27 | 2021-07-23 | 2 | -8/+130 |
| | |||||
* | shader: Implement TLDS | FernandoS27 | 2021-07-23 | 2 | -4/+252 |
| | |||||
* | shader: Implement TLD | FernandoS27 | 2021-07-23 | 2 | -8/+165 |
| | |||||
* | shader: Implement FSWZADD | ameerj | 2021-07-23 | 4 | -4/+49 |
| | |||||
* | shader: Implement BRX | FernandoS27 | 2021-07-23 | 4 | -34/+78 |
| | |||||
* | shader: Implement I2I CC | ameerj | 2021-07-23 | 1 | -3/+4 |
| | |||||
* | shader: Implement I2I SAT | ameerj | 2021-07-23 | 1 | -10/+30 |
| | |||||
* | shader: Fix ISCADD logic for PO/CC | ameerj | 2021-07-23 | 1 | -7/+8 |
| | |||||
* | shader: Implement LDS, STS, LDL, and STS and use SPIR-V 1.4 when available | ReinUsesLisp | 2021-07-23 | 2 | -16/+197 |
| | |||||
* | shader: Implement ISCADD CC | ameerj | 2021-07-23 | 1 | -1/+4 |
| | |||||
* | shader: Implement VMAD, VMNMX, VSETP | ameerj | 2021-07-23 | 6 | -13/+301 |
| | |||||
* | shader: Add missing I2I exception when CC is used | ReinUsesLisp | 2021-07-23 | 1 | -0/+4 |
| | |||||
* | shader: Better interpolation and disabled attributes support | ReinUsesLisp | 2021-07-23 | 1 | -9/+1 |
| | |||||
* | shader: Fix TXQ | FernandoS27 | 2021-07-23 | 1 | -1/+1 |
| | |||||
* | shader: Implement TXQ and fix FragDepth | ReinUsesLisp | 2021-07-23 | 2 | -8/+76 |
| | |||||
* | shader: Refactor PTP and other minor changes | ReinUsesLisp | 2021-07-23 | 1 | -15/+13 |
| | |||||
* | shader: Implement TLD4.PTP | FernandoS27 | 2021-07-23 | 2 | -14/+16 |
| | |||||
* | shader: Fix Array Indices in TEX/TLD4 | FernandoS27 | 2021-07-23 | 2 | -6/+6 |
| | |||||
* | shader: Implement FragDepth | FernandoS27 | 2021-07-23 | 1 | -1/+1 |
| | |||||
* | shader: Implement TLD4S. | FernandoS27 | 2021-07-23 | 2 | -4/+133 |
| | |||||
* | shader: Implement TLD4 and TLD4_B | FernandoS27 | 2021-07-23 | 2 | -8/+209 |
| | |||||
* | shader: Implement SHFL | ameerj | 2021-07-23 | 3 | -6/+71 |
| | |||||
* | shader: Minor style nits | ReinUsesLisp | 2021-07-23 | 1 | -2/+4 |
| | |||||
* | shader: Fix F2I | FernandoS27 | 2021-07-23 | 3 | -5/+102 |
| | |||||
* | shader: Implement VOTE | ameerj | 2021-07-23 | 2 | -4/+52 |
| | |||||
* | shader: Fix TEX mask | ReinUsesLisp | 2021-07-23 | 1 | -1/+3 |
| | |||||
* | shader: Better but still partial interpolation support | ReinUsesLisp | 2021-07-23 | 1 | -5/+7 |
| | |||||
* | shader: Implement DMNMX, DSET, DSETP | ameerj | 2021-07-23 | 5 | -37/+164 |
| | |||||
* | shader: Implement FADD32I | FernandoS27 | 2021-07-23 | 1 | -2/+15 |
| | |||||
* | shader: Implement F2F | FernandoS27 | 2021-07-23 | 2 | -12/+180 |
| | |||||
* | shader: Implement DMUL and DFMA | ameerj | 2021-07-23 | 6 | -29/+108 |
| | | | | Also add a missing const on DADD | ||||
* | shader: Add FP64 register load/store helpers | ameerj | 2021-07-23 | 3 | -21/+24 |
| | |||||
* | shader: Add support for fp16 comparisons and misc fixes | ReinUsesLisp | 2021-07-23 | 4 | -7/+4 |
| | |||||
* | shader: Fix floating point comparison for FP16 | FernandoS27 | 2021-07-23 | 4 | -32/+32 |
| | |||||
* | shader: Implement HSETP2 | FernandoS27 | 2021-07-23 | 2 | -12/+116 |
| | |||||
* | shader: Implement HSET2 | FernandoS27 | 2021-07-23 | 3 | -12/+116 |
| | |||||
* | shader: Implement HMUL2 | FernandoS27 | 2021-07-23 | 2 | -16/+143 |
| | |||||
* | shader: Implement HFMA2 | FernandoS27 | 2021-07-23 | 4 | -20/+191 |
| | |||||
* | shader: Refactor half floating instructions | FernandoS27 | 2021-07-23 | 3 | -58/+82 |
| | |||||
* | shader: Implement I2F | ReinUsesLisp | 2021-07-23 | 6 | -14/+198 |
| | |||||
* | shader: Implement ISCADD (imm) | ReinUsesLisp | 2021-07-23 | 1 | -2/+2 |
| | |||||
* | shader: Implement LOP32I | ReinUsesLisp | 2021-07-23 | 2 | -18/+45 |
| | |||||
* | shader: Add partial rasterizer integration | ReinUsesLisp | 2021-07-23 | 7 | -34/+134 |
| | |||||
* | shader: Implement DADD | ameerj | 2021-07-23 | 4 | -14/+120 |
| | |||||
* | shader: Implement CSET and CSETP | ameerj | 2021-07-23 | 2 | -8/+54 |
| | |||||
* | shader: Implement FSET and FSETP | ameerj | 2021-07-23 | 7 | -92/+198 |
| | | | | Also fix oversight with adding SignedZeroInfNanPreserve execution mode. | ||||
* | shader: Implement TEXS | ReinUsesLisp | 2021-07-23 | 3 | -4/+262 |
| | |||||
* | shader: Implement CAL inlining function calls | ReinUsesLisp | 2021-07-23 | 2 | -3/+3 |
| | |||||
* | shader: Implement FMNMX | ameerj | 2021-07-23 | 3 | -13/+58 |
| | | | | And add a const in FCMP | ||||
* | shader: Implement FCMP | ameerj | 2021-07-23 | 2 | -16/+116 |
| | | | | still need to configure some settings for NV denorm flush and intel NaN | ||||
* | shader: Partial implementation of LDC | ReinUsesLisp | 2021-07-23 | 3 | -8/+97 |
| | |||||
* | shader: Initial support for textures and TEX | ReinUsesLisp | 2021-07-23 | 2 | -8/+232 |
| | |||||
* | shader: Implement R2P | ameerj | 2021-07-23 | 2 | -12/+71 |
| | |||||
* | shader: Implement SHF | ameerj | 2021-07-23 | 2 | -16/+77 |
| | |||||
* | shader: Implement LEA | ameerj | 2021-07-23 | 2 | -20/+100 |
| | |||||
* | shader: Deduplicate HADD2 code | ReinUsesLisp | 2021-07-23 | 1 | -19/+16 |
| | |||||
* | shader: Implement I2I | ameerj | 2021-07-23 | 2 | -12/+99 |
| | |||||
* | shader: Implement HADD2 | ReinUsesLisp | 2021-07-23 | 3 | -17/+185 |
| | |||||
* | shader: Implement LOP and LOP3 | ameerj | 2021-07-23 | 6 | -29/+223 |
| | |||||
* | shader: Implement IADD3 | ameerj | 2021-07-23 | 2 | -12/+103 |
| | |||||
* | shader: Implement PSETP | ameerj | 2021-07-23 | 3 | -4/+38 |
| | |||||
* | Implement PSET, refactor common comparison funcs | ameerj | 2021-07-23 | 8 | -101/+87 |
| | |||||
* | shader: Implement FLO | ameerj | 2021-07-23 | 2 | -12/+46 |
| | |||||
* | shader: Implement ISET, add common_funcs | ameerj | 2021-07-23 | 7 | -50/+147 |
| | |||||
* | shader: Make IMNMX, SHR, SEL stylistically more consistent | ameerj | 2021-07-23 | 3 | -5/+5 |
| | |||||
* | shader: Implement ICMP | ameerj | 2021-07-23 | 2 | -16/+83 |
| | |||||
* | shader: Implement IMNMX | ameerj | 2021-07-23 | 2 | -12/+59 |
| | |||||
* | shader: Implement BFI | ameerj | 2021-07-23 | 2 | -16/+56 |
| | |||||
* | shader: Implement BFE | ameerj | 2021-07-23 | 2 | -12/+66 |
| | |||||
* | shader: Implement POPC | ameerj | 2021-07-23 | 2 | -12/+36 |
| | |||||
* | shader: Implement SHR | ameerj | 2021-07-23 | 2 | -12/+62 |
| | |||||
* | shader: Implement SEL | ameerj | 2021-07-23 | 2 | -12/+44 |
| | |||||
* | shader: Fix control flow | ReinUsesLisp | 2021-07-23 | 2 | -3/+3 |
| | |||||
* | shader: Implement more of XMAD and FFMA32I and fix XMAD.CBCC | ReinUsesLisp | 2021-07-23 | 3 | -22/+70 |
| | |||||
* | shader: FMUL, select, RRO, and MUFU fixes | ReinUsesLisp | 2021-07-23 | 10 | -38/+93 |
| | |||||
* | shader: Fix MOV(reg), add SHL variants and emit neg and abs instructions | ReinUsesLisp | 2021-07-23 | 2 | -5/+5 |
| | |||||
* | spirv: Fixes and Intel specific workarounds | ReinUsesLisp | 2021-07-23 | 1 | -6/+9 |
| | |||||
* | shader: Rename, implement FADD.SAT and P2R (imm) | ReinUsesLisp | 2021-07-23 | 9 | -34/+100 |
| | |||||
* | shader: Add denorm flush support | ReinUsesLisp | 2021-07-23 | 1 | -4/+15 |
| | |||||
* | spirv: Add lower fp16 to fp32 pass | ReinUsesLisp | 2021-07-23 | 2 | -16/+48 |
| | |||||
* | shader: Primitive Vulkan integration | ReinUsesLisp | 2021-07-23 | 4 | -22/+26 |
| | |||||
* | shader: Simplify ISCADD | ReinUsesLisp | 2021-07-23 | 1 | -6/+1 |
| | |||||
* | shader: Misc fixes | ReinUsesLisp | 2021-07-23 | 2 | -4/+4 |
| | |||||
* | shader: Initial implementation of an AST | ReinUsesLisp | 2021-07-23 | 3 | -17/+9 |
| | |||||
* | spirv: Initial SPIR-V support | ReinUsesLisp | 2021-07-23 | 1 | -5/+5 |
| | |||||
* | shader: Add pools and rename files | ReinUsesLisp | 2021-07-23 | 8 | -10/+14 |
| | |||||
* | shader: Make typed IR | ReinUsesLisp | 2021-07-23 | 9 | -46/+74 |
| | |||||
* | shader: Initial instruction support | ReinUsesLisp | 2021-07-23 | 15 | -178/+1038 |
| | |||||
* | shader: SSA and dominance | ReinUsesLisp | 2021-07-23 | 2 | -5/+5 |
| | |||||
* | shader: Initial recompiler work | ReinUsesLisp | 2021-07-23 | 11 | -0/+2012 |