Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | Merge pull request #9694 from ameerj/txq-mips | liamwhite | 2023-01-29 | 4 | -12/+16 |
|\ | | | | | shader_recompiler: TXQ: Skip QueryLevels when possible | ||||
| * | shader_recompiler: TXQ: Skip QueryLevels when possible | ameerj | 2023-01-28 | 4 | -12/+16 |
| | | |||||
* | | shader_recompiler: Remove S32 IR type | ameerj | 2023-01-26 | 6 | -27/+15 |
|/ | | | | | | The frontend IR opcodes do not distinguish between signed and unsigned integer types. Fixes broken shaders when IR validation/graphics debugging is enabled for shaders that used BitCastS32F32 | ||||
* | Avoid OOB array access reading passthrough attr mask | Billy Laws | 2023-01-07 | 1 | -1/+1 |
| | | | YFC 1.5 extended the size of the varying mask used to hold passthrough attrs without considering this | ||||
* | Run clang-format | Billy Laws | 2023-01-05 | 1 | -13/+19 |
| | |||||
* | shader_recompiler: Add support for lowering geometry passthrough | Billy Laws | 2023-01-05 | 1 | -40/+66 |
| | | | | Reuses most of the existing code for generating the gl_Layer passthrough. Fixes geometry in Nier: Automata on GPUs without HW passthrough support. | ||||
* | shader_recompiler: Align SSBO offsets to meet host requirements | Billy Laws | 2023-01-05 | 1 | -1/+1 |
| | | | | We can take advantage of SSBO addresses being passed in a constant bufer to account for the extra alignment requirements in the shader itself. | ||||
* | Video_core: Address feedback | Fernando Sahmkow | 2023-01-04 | 2 | -0/+3 |
| | |||||
* | MacroHLE: Add HLE replacement for base vertex and base instance. | Fernando Sahmkow | 2023-01-01 | 5 | -1/+19 |
| | |||||
* | Merge pull request #9300 from ameerj/pch | liamwhite | 2022-12-03 | 1 | -1/+0 |
|\ | | | | | CMake: Use precompiled headers to improve compile times | ||||
| * | value.h: remove recursive include | ameerj | 2022-11-30 | 1 | -1/+0 |
| | | |||||
* | | Merge pull request #9289 from liamwhite/fruit-company | liamwhite | 2022-12-03 | 5 | -3/+8 |
|\ \ | | | | | | | general: fix compile for Apple Clang | ||||
| * | | general: fix compile for Apple Clang | Liam | 2022-11-23 | 5 | -3/+8 |
| |/ | |||||
* / | shader_recompiler: add gl_Layer translation GS for older hardware | Liam | 2022-12-01 | 2 | -0/+90 |
|/ | |||||
* | Merge pull request #9167 from vonchenplus/tess | liamwhite | 2022-11-11 | 5 | -5/+8 |
|\ | | | | | video_core: Fix few issues in Tess stage | ||||
| * | video_core: Fix few issues in Tess stage | FengChen | 2022-11-07 | 5 | -5/+8 |
| | | |||||
* | | ir/texture_pass: Use host_info instead of querying Settings::values (#9176) | Morph | 2022-11-11 | 1 | -1/+1 |
|/ | |||||
* | video_core: Fix SNORM texture buffer emulating error (#9001) | Feng Chen | 2022-11-04 | 6 | -15/+38 |
| | |||||
* | Merge pull request #8858 from vonchenplus/mipmap | bunnei | 2022-11-04 | 4 | -0/+14 |
|\ | | | | | video_core: Generate mipmap texture by drawing | ||||
| * | video_core: Generate mipmap texture by drawing | FengChen | 2022-09-20 | 4 | -0/+14 |
| | | |||||
* | | Revert "shader_recompiler/dead_code_elimination: Add DeadBranchElimination pass" | Feng Chen | 2022-10-25 | 2 | -9/+0 |
| | | |||||
* | | Merge pull request #8873 from vonchenplus/fix_legacy_location_error | bunnei | 2022-10-24 | 1 | -19/+28 |
|\ \ | | | | | | | video_core: Fix legacy to generic location unpaired | ||||
| * | | Address feedback | FengChen | 2022-10-17 | 1 | -6/+6 |
| | | | |||||
| * | | video_core: Fix legacy to generic location unpaired | FengChen | 2022-09-20 | 1 | -15/+24 |
| |/ | |||||
* / | Shader Decompiler: Fix dangerous behavior of invalid iterator insertion. | Fernando Sahmkow | 2022-10-06 | 1 | -3/+3 |
|/ | |||||
* | video_code: support rectangle texture | FengChen | 2022-08-25 | 2 | -0/+7 |
| | |||||
* | chore: make yuzu REUSE compliant | Andrea Pappacoda | 2022-07-27 | 1 | -4/+2 |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | [REUSE] is a specification that aims at making file copyright information consistent, so that it can be both human and machine readable. It basically requires that all files have a header containing copyright and licensing information. When this isn't possible, like when dealing with binary assets, generated files or embedded third-party dependencies, it is permitted to insert copyright information in the `.reuse/dep5` file. Oh, and it also requires that all the licenses used in the project are present in the `LICENSES` folder, that's why the diff is so huge. This can be done automatically with `reuse download --all`. The `reuse` tool also contains a handy subcommand that analyzes the project and tells whether or not the project is (still) compliant, `reuse lint`. Following REUSE has a few advantages over the current approach: - Copyright information is easy to access for users / downstream - Files like `dist/license.md` do not need to exist anymore, as `.reuse/dep5` is used instead - `reuse lint` makes it easy to ensure that copyright information of files like binary assets / images is always accurate and up to date To add copyright information of files that didn't have it I looked up who committed what and when, for each file. As yuzu contributors do not have to sign a CLA or similar I couldn't assume that copyright ownership was of the "yuzu Emulator Project", so I used the name and/or email of the commit author instead. [REUSE]: https://reuse.software Follow-up to 01cf05bc75b1e47beb08937439f3ed9339e7b254 | ||||
* | general: fix compilation on GCC 12 | Liam | 2022-06-14 | 1 | -1/+1 |
| | |||||
* | structured_control_flow: Remove constexpr Flow::Block | lat9nq | 2022-06-14 | 1 | -6/+0 |
| | | | | | | This seems to be unsupported in newer libstdc++ versions due to Flow::Block's base class being a non-literal type. It's not clear to me why this was permitted in earlier versions. | ||||
* | general: Avoid ambiguous format_to compilation errors | Lioncash | 2022-05-14 | 2 | -2/+2 |
| | | | | | | | Ensures that we're using the fmt version of format_to. These are also the only three outliers. All of the other formatters we have are properly qualified. | ||||
* | general: Convert source file copyright comments over to SPDX | Morph | 2022-04-23 | 137 | -411/+274 |
| | | | | | This formats all copyright comments according to SPDX formatting guidelines. Additionally, this resolves the remaining GPLv2 only licensed files by relicensing them to GPLv2.0-or-later. | ||||
* | fix: typos | Andrea Pappacoda | 2022-04-02 | 2 | -2/+2 |
| | |||||
* | dead_code_elimination_pass: Remove unreachable Phi arguments | ameerj | 2022-03-23 | 2 | -0/+9 |
| | |||||
* | 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 |
| | | |||||
* | | general: Fix clang/gcc build errors | ameerj | 2022-03-20 | 1 | -0/+1 |
| | | |||||
* | | shader_recompiler: Reduce unused includes | ameerj | 2022-03-20 | 32 | -47/+7 |
|/ | |||||
* | shader_recompiler: Implement LDC.IS address mode | Liam | 2022-03-16 | 1 | -2/+12 |
| | |||||
* | Shader decompiler: do constant propgation before texture pass. | Fernando Sahmkow | 2022-03-13 | 1 | -2/+2 |
| | |||||
* | 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 | ||||
* | lower_int64_to_int32: Add 64-bit atomic fallbacks | ameerj | 2022-01-30 | 1 | -9/+9 |
| | |||||
* | shaders: Add U64->U32x2 Atomic fallback functions | ameerj | 2022-01-30 | 2 | -0/+38 |
| | |||||
* | video_minimum_maximum: Implement src operand selectors | ameerj | 2022-01-27 | 1 | -12/+6 |
| | | | | Used by Pokemon Legends: Arceus | ||||
* | shader_recompiler: Remove unnecessary [[nodiscard]] | Lioncash | 2022-01-25 | 1 | -2/+1 |
| | | | | | Since ConvertLegacyToGeneric has a void return value, there's nothing that is actually returned by the function. | ||||
* | shader: Add integer attribute get optimization pass | ameerj | 2021-12-30 | 1 | -0/+1 |
| | | | | Works around an nvidia driver bug, where casting the integer attributes to float and back to an integer always returned 0. | ||||
* | Address format clang | vonchenplus | 2021-12-18 | 1 | -36/+36 |
| | |||||
* | Remove spirv handle legacy related code | vonchenplus | 2021-12-18 | 1 | -1/+1 |
| | |||||
* | Implement convert legacy to generic | Feng Chen | 2021-11-19 | 3 | -0/+101 |
| | |||||
* | rescaling_pass: Logic simplification and minor style cleanup | ameerj | 2021-11-16 | 1 | -1/+0 |
| | |||||
* | Shader: Don't rescale FragCoord if used by Shuffle | Fernando Sahmkow | 2021-11-16 | 1 | -1/+3 |
| | |||||
* | shader: Properly scale image reads and add GL SPIR-V support | ReinUsesLisp | 2021-11-16 | 3 | -0/+6 |
| | | | | Thanks for everything! | ||||
* | spirv: Implement rescaling patching | ReinUsesLisp | 2021-11-16 | 1 | -0/+3 |
| | |||||
* | shader: Add IsTextureScaled opcode | ReinUsesLisp | 2021-11-16 | 3 | -0/+9 |
| | |||||
* | shader: Add copy constructor to instructions | ReinUsesLisp | 2021-11-16 | 4 | -1/+20 |
| | |||||
* | shader: Add integer division opcodes | ReinUsesLisp | 2021-11-16 | 3 | -0/+7 |
| | |||||
* | shader: Add resolution down factor opcode | ReinUsesLisp | 2021-11-16 | 3 | -0/+7 |
| | |||||
* | ShaderCache: Fix Phi Nodes Type on OGL. | Fernando Sahmkow | 2021-11-01 | 1 | -0/+4 |
| | |||||
* | ShaderCache: Order Phi Arguments from farthest away to nearest. | Fernando Sahmkow | 2021-10-31 | 4 | -0/+30 |
| | |||||
* | structured_control_flow: Skip reordering nested demote branches. | ameerj | 2021-08-30 | 1 | -0/+11 |
| | | | | Nested demote branches add complexity with combining the condition if it has not been initialized yet. Skip them for the time being. | ||||
* | structured_control_flow: Conditionally invoke demote reorder pass | ameerj | 2021-08-30 | 3 | -8/+13 |
| | | | | This is only needed on select drivers when a fragment shader discards/demotes. | ||||
* | structured_control_flow: Add DemoteCombinationPass | ameerj | 2021-08-28 | 1 | -1/+107 |
| | | | | | Some drivers misread data when demotes are interleaved in the program. This moves demote branches to be checked at the end of the program. Fixes "wireframe" issue in Pokemon SwSh on some drivers | ||||
* | Merge pull request #6722 from ReinUsesLisp/xmad-opts | bunnei | 2021-07-30 | 1 | -0/+8 |
|\ | | | | | shader: Fold integer FMA from Nvidia's pattern | ||||
| * | shader: Add TryInstRecursive utility to values | ReinUsesLisp | 2021-07-26 | 1 | -0/+8 |
| | | |||||
* | | Merge pull request #6724 from lioncash/nodisc-shader | Rodrigo Locatti | 2021-07-26 | 2 | -4/+4 |
|\ \ | | | | | | | shader_recompiler: Remove unnecessary [[nodiscard]] instances | ||||
| * | | shader_recompiler: Remove unnecessary [[nodiscard]] instances | Lioncash | 2021-07-26 | 2 | -4/+4 |
| |/ | | | | | | | | | [[nodiscard]] doesn't do anything on functions with a void return type and causes superfluous warnings. | ||||
* / | control_flow: Fix duplicate switch case in OpcodeToken | Lioncash | 2021-07-26 | 1 | -1/+1 |
|/ | | | | This previously duplicated the case of the PBK case above it. | ||||
* | 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: Avoid usage of C++20 ranges to build in clang | ReinUsesLisp | 2021-07-23 | 3 | -18/+23 |
| | |||||
* | shader_recompiler, video_core: Resolve clang errors | lat9nq | 2021-07-23 | 8 | -29/+23 |
| | | | | | | | | | | Silences the following warnings-turned-errors: -Wsign-conversion -Wunused-private-field -Wbraced-scalar-init -Wunused-variable And some other errors | ||||
* | shader: Manually convert from array<u32> to bitset instead of using bit_cast | ReinUsesLisp | 2021-07-23 | 1 | -2/+3 |
| | |||||
* | shader: Ignore global memory ops on devices lacking int64 support | ameerj | 2021-07-23 | 1 | -14/+14 |
| | |||||
* | shader: GCC fmt 8.0.0 fixes | lat9nq | 2021-07-23 | 1 | -1/+1 |
| | |||||
* | 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: Use std::bit_cast instead of Common::BitCast for passthrough | ReinUsesLisp | 2021-07-23 | 1 | -2/+3 |
| | |||||
* | shader: Rework varyings and implement passthrough geometry shaders | ReinUsesLisp | 2021-07-23 | 3 | -8/+17 |
| | | | | | | Put all varyings into a single std::bitset with helpers to access it. Implement passthrough geometry shaders using host's. | ||||
* | shader: Only verify shader when graphics debugging is enabled | ReinUsesLisp | 2021-07-23 | 1 | -2/+7 |
| | |||||
* | shader: Emulate 64-bit integers when not supported | ReinUsesLisp | 2021-07-23 | 1 | -0/+3 |
| | | | | Useful for mobile and Intel Xe devices. | ||||
* | shader: Remove IAbs64 | ReinUsesLisp | 2021-07-23 | 3 | -11/+3 |
| | |||||
* | shader_recompiler: Fix IADD3 input partitioning | ameerj | 2021-07-23 | 1 | -14/+13 |
| | |||||
* | shader: Move loop safety tests to code emission | ReinUsesLisp | 2021-07-23 | 4 | -46/+4 |
| | |||||
* | shader: Calibrate loop safety threshold | ReinUsesLisp | 2021-07-23 | 1 | -1/+1 |
| | |||||
* | shader: Simplify MergeDualVertexPrograms | ReinUsesLisp | 2021-07-23 | 1 | -6/+4 |
| | |||||
* | shader: Properly manage attributes not written from previous stages | ReinUsesLisp | 2021-07-23 | 1 | -1/+3 |
| | |||||
* | shader: Add support for native 16-bit floats | ReinUsesLisp | 2021-07-23 | 2 | -4/+7 |
| | |||||
* | shader: Rename maxwell/program.h to translate_program.h | ReinUsesLisp | 2021-07-23 | 2 | -7/+2 |
| | |||||
* | shader: Fix loop safety to SSA pass | ReinUsesLisp | 2021-07-23 | 1 | -1/+3 |
| | |||||
* | shader: Add logging | ReinUsesLisp | 2021-07-23 | 4 | -7/+7 |
| | |||||
* | shader: Add shader loop safety check settings | lat9nq | 2021-07-23 | 4 | -6/+55 |
| | | | | Also add a setting for enable Nsight Aftermath. | ||||
* | 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: Fix VertexA Shaders. | FernandoS27 | 2021-07-23 | 1 | -5/+14 |
| | |||||
* | 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: Always initialize up reference in structure control flow | ReinUsesLisp | 2021-07-23 | 1 | -31/+36 |
| | | | | Fixes ubsan issue. | ||||
* | 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 | 3 | -5/+11 |
| | |||||
* | Revert "glasm: Skip phi moves on undefined instructions" | ReinUsesLisp | 2021-07-23 | 1 | -13/+0 |
| | | | | Causes regressions on Bowser's Fury. | ||||
* | glasm: Skip phi moves on undefined instructions | ReinUsesLisp | 2021-07-23 | 1 | -0/+13 |
| | |||||
* | video_core,shader: Clang-format fixes | ReinUsesLisp | 2021-07-23 | 2 | -2/+2 |
| | |||||
* | shader: Read branch conditions from an instruction | ReinUsesLisp | 2021-07-23 | 5 | -11/+16 |
| | | | | Fixes the identity removal pass. | ||||
* | glasm: Implement TEX and TEXS instructions | ReinUsesLisp | 2021-07-23 | 4 | -22/+17 |
| | | | | | Remove lod clamp from texture instructions with lod, as this is not needed (nor supported). | ||||
* | shader_recompiler: GCC fixes | lat9nq | 2021-07-23 | 4 | -33/+30 |
| | | | | | Fixes members of unnamed union not being accessible, and one function without a declaration. | ||||
* | shader: Use a non-trivial dummy to construct ASL node union | ReinUsesLisp | 2021-07-23 | 1 | -1/+6 |
| | |||||
* | glasm: Initial implementation of phi nodes on GLASM | ReinUsesLisp | 2021-07-23 | 6 | -10/+28 |
| | |||||
* | glasm: Rework control flow introducing a syntax list | ReinUsesLisp | 2021-07-23 | 19 | -344/+312 |
| | | | | | 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 | 3 | -35/+42 |
| | |||||
* | glasm: Implement basic GLASM instructions | ReinUsesLisp | 2021-07-23 | 1 | -0/+6 |
| | |||||
* | glasm: Add GLASM backend infrastructure | ReinUsesLisp | 2021-07-23 | 1 | -0/+6 |
| | |||||
* | shader: ISET.X implementation | ameerj | 2021-07-23 | 1 | -8/+58 |
| | |||||
* | shader: Optimize NVN Fallthrough | FernandoS27 | 2021-07-23 | 1 | -2/+5 |
| | |||||
* | shader: Stub SR_AFFINITY | FernandoS27 | 2021-07-23 | 1 | -0/+3 |
| | |||||
* | shader: Implement Int32 SUATOM/SURED | ameerj | 2021-07-23 | 8 | -5/+393 |
| | |||||
* | shader: Initial OpenGL implementation | ReinUsesLisp | 2021-07-23 | 3 | -0/+12 |
| | |||||
* | shader: Address feedback | FernandoS27 | 2021-07-23 | 3 | -24/+24 |
| | |||||
* | shader: Implement VertexA stage | FernandoS27 | 2021-07-23 | 4 | -0/+32 |
| | |||||
* | shader: Implement delegation of Exit to dispatcher on CFG | FernandoS27 | 2021-07-23 | 2 | -3/+47 |
| | |||||
* | shader: Fix IADD3.CC | ameerj | 2021-07-23 | 1 | -12/+5 |
| | |||||
* | shader: Fix VMNMX selector B | ReinUsesLisp | 2021-07-23 | 1 | -1/+2 |
| | |||||
* | shader: Remove identity removal pass for better build times | ReinUsesLisp | 2021-07-23 | 1 | -1/+0 |
| | |||||
* | shader: Add missing UndoUse case for GetSparseFromOp | ReinUsesLisp | 2021-07-23 | 1 | -0/+4 |
| | |||||
* | shader: Simplify code in opcodes.h to fix Intellisense | ReinUsesLisp | 2021-07-23 | 1 | -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 textures | ReinUsesLisp | 2021-07-23 | 2 | -20/+21 |
| | |||||
* | 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: Fix gcc warnings | ReinUsesLisp | 2021-07-23 | 2 | -2/+2 |
| | |||||
* | shader: Inline common Value getters | ReinUsesLisp | 2021-07-23 | 2 | -109/+102 |
| | |||||
* | shader: Intrusively store in a block if it's sealed or not | ReinUsesLisp | 2021-07-23 | 1 | -0/+9 |
| | |||||
* | shader: Improve goto removal algorithm complexity | ReinUsesLisp | 2021-07-23 | 1 | -49/+28 |
| | | | | | Find sibling node containing a nephew searching from the nephew itself instead of the uncle. | ||||
* | shader: Use memset to reset instruction arguments | ReinUsesLisp | 2021-07-23 | 2 | -4/+7 |
| | |||||
* | shader: Inline common Value functions into the header | ReinUsesLisp | 2021-07-23 | 2 | -19/+23 |
| | |||||
* | shader: Move microinstruction header to the value header | ReinUsesLisp | 2021-07-23 | 8 | -169/+153 |
| | |||||
* | shader: Move siblings check to a separate function and comment them out | ReinUsesLisp | 2021-07-23 | 1 | -16/+21 |
| | |||||
* | shader: Intrusively store register values in block for SSA pass | ReinUsesLisp | 2021-07-23 | 1 | -0/+10 |
| | |||||
* | shader: Inline common Opcode and Inst functions | ReinUsesLisp | 2021-07-23 | 4 | -112/+83 |
| | |||||
* | shader: Inline common IR::Block methods | ReinUsesLisp | 2021-07-23 | 2 | -17/+12 |
| | |||||
* | shader: Use a small_vector for phi blocks | ReinUsesLisp | 2021-07-23 | 1 | -1/+2 |
| | |||||
* | shader: Calculate number of arguments in an opcode at compile time | ReinUsesLisp | 2021-07-23 | 1 | -3/+12 |
| | |||||
* | shader: Simplify code for local memory | ReinUsesLisp | 2021-07-23 | 1 | -6/+11 |
| | |||||
* | shader: Add NVN storage buffer fallbacks | ReinUsesLisp | 2021-07-23 | 1 | -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. | ||||
* | 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: Add coarse derivatives | FernandoS27 | 2021-07-23 | 3 | -0/+14 |
| | |||||
* | shader: Implement fine derivates constant propagation | FernandoS27 | 2021-07-23 | 3 | -0/+14 |
| | |||||
* | shader: Implement SR_Y_DIRECTION | FernandoS27 | 2021-07-23 | 4 | -0/+8 |
| | |||||
* | shader: Fix Phi node types | ReinUsesLisp | 2021-07-23 | 1 | -4/+0 |
| | |||||
* | shader: Fix memory barriers | ReinUsesLisp | 2021-07-23 | 6 | -50/+23 |
| | |||||
* | 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 | 5 | -1/+8 |
| | |||||
* | shader: Implement PIXLD.MY_INDEX | ReinUsesLisp | 2021-07-23 | 5 | -4/+52 |
| | |||||
* | shader: Implement tessellation shaders, polygon mode and invocation id | ReinUsesLisp | 2021-07-23 | 13 | -33/+259 |
| | |||||
* | shader: Implement transform feedbacks and define file format | ReinUsesLisp | 2021-07-23 | 2 | -0/+9 |
| | |||||
* | shader: Document and relax cache control on surface instructions | ReinUsesLisp | 2021-07-23 | 1 | -10/+11 |
| | |||||
* | shader: Implement geometry shaders | ReinUsesLisp | 2021-07-23 | 6 | -19/+48 |
| | |||||
* | shader: Implement OUT | ReinUsesLisp | 2021-07-23 | 7 | -17/+62 |
| | |||||
* | 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: Mark blocks with no end branch as unreachable | ReinUsesLisp | 2021-07-23 | 1 | -2/+7 |
| | |||||
* | shader: Implement LOP CC | ReinUsesLisp | 2021-07-23 | 1 | -3/+11 |
| | |||||
* | shader: Implement SR_THREAD_KILL | ReinUsesLisp | 2021-07-23 | 4 | -0/+9 |
| | |||||
* | shader: Apply sign bit in FCMP (imm) | ReinUsesLisp | 2021-07-23 | 1 | -1/+1 |
| | |||||
* | shader: Implement ATOM/S and RED | ameerj | 2021-07-23 | 7 | -13/+706 |
| | |||||
* | shader: Move LaneId to the warp emission file and fix AMD | ReinUsesLisp | 2021-07-23 | 1 | -1/+1 |
| | |||||
* | shader: Mark ImageWrite with side effects | ReinUsesLisp | 2021-07-23 | 1 | -0/+3 |
| | |||||
* | 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 | 14 | -68/+365 |
| | |||||
* | shader: Fix Windows build issues | ReinUsesLisp | 2021-07-23 | 1 | -1/+1 |
| | |||||
* | shader: Address feedback + clang format | lat9nq | 2021-07-23 | 6 | -15/+15 |
| | |||||
* | shader_recompiler,video_core: Cleanup some GCC and Clang errors | lat9nq | 2021-07-23 | 45 | -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> | ||||
* | shader: Fix FCMP immediate variant | ReinUsesLisp | 2021-07-23 | 1 | -1/+9 |
| | |||||
* | shader: Fix dangling labels | ReinUsesLisp | 2021-07-23 | 1 | -0/+5 |
| | |||||
* | shader: Fix F2I | ReinUsesLisp | 2021-07-23 | 1 | -1/+1 |
| | |||||
* | shader: Address feedback | FernandoS27 | 2021-07-23 | 3 | -20/+25 |
| | |||||
* | shader: Implement indexed attributes | FernandoS27 | 2021-07-23 | 4 | -14/+37 |
| | |||||
* | shader: Implement AL2P | FernandoS27 | 2021-07-23 | 2 | -4/+35 |
| | |||||
* | shader: Fix BRX tracking | FernandoS27 | 2021-07-23 | 2 | -3/+4 |
| | |||||
* | shader: Fix splits on blocks using indirect branches | ReinUsesLisp | 2021-07-23 | 3 | -17/+38 |
| | |||||
* | shader: Eliminate orphan blocks more efficiently | ReinUsesLisp | 2021-07-23 | 1 | -7/+8 |
| | |||||
* | shader: Add subgroup masks | ReinUsesLisp | 2021-07-23 | 4 | -35/+105 |
| | |||||
* | shader: Implement BAR and fix memory barriers | ReinUsesLisp | 2021-07-23 | 5 | -2/+66 |
| | |||||
* | shader: Abstract breadth searches and use the abstraction | ReinUsesLisp | 2021-07-23 | 1 | -0/+57 |
| | |||||
* | shader: Reimplement GetCbufU64 as GetCbufU32x2 | ReinUsesLisp | 2021-07-23 | 4 | -12/+12 |
| | | | | 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: Fix undetected bug from review | FernandoS27 | 2021-07-23 | 1 | -0/+3 |
| | |||||
* | shader: Address feedback | FernandoS27 | 2021-07-23 | 1 | -1/+7 |
| | |||||
* | shader: "Implement" NOP | FernandoS27 | 2021-07-23 | 1 | -1/+1 |
| | |||||
* | shader: Address Feedback | FernandoS27 | 2021-07-23 | 7 | -80/+25 |
| | |||||
* | shader: Implement SR_LaneId | FernandoS27 | 2021-07-23 | 4 | -0/+9 |
| | |||||
* | shader: Implement MEMBAR | FernandoS27 | 2021-07-23 | 6 | -11/+78 |
| | |||||
* | shader: Improve VOTE.VTG stub | FernandoS27 | 2021-07-23 | 4 | -3/+57 |
| | |||||
* | shader: Stub VOTE.VTG | FernandoS27 | 2021-07-23 | 4 | -4/+15 |
| | |||||
* | shader: Fix branches to visited virtual blocks | ReinUsesLisp | 2021-07-23 | 1 | -0/+10 |
| | |||||
* | shader: Implement LDG .U.128 as .128 | ReinUsesLisp | 2021-07-23 | 1 | -3/+2 |
| | |||||
* | shader: Unroll "using enum" for opcode declarations | ReinUsesLisp | 2021-07-23 | 1 | -1/+27 |
| | |||||
* | shader: Fix TXD | FernandoS27 | 2021-07-23 | 1 | -1/+1 |
| | |||||
* | shader: Address feedback | FernandoS27 | 2021-07-23 | 3 | -37/+33 |
| | |||||
* | shader: Always pass a lod for TexelFetch | ReinUsesLisp | 2021-07-23 | 3 | -25/+17 |
| | |||||
* | shader: Implement TXD | FernandoS27 | 2021-07-23 | 3 | -10/+182 |
| | |||||
* | shader: Implement ImageGradient | FernandoS27 | 2021-07-23 | 4 | -0/+15 |
| | |||||
* | shader: Implement TMML partially | FernandoS27 | 2021-07-23 | 4 | -11/+134 |
| | |||||
* | shader,spirv: Implement ImageQueryLod. | FernandoS27 | 2021-07-23 | 3 | -0/+11 |
| | |||||
* | shader: Implement TLDS | FernandoS27 | 2021-07-23 | 2 | -4/+252 |
| | |||||
* | shader: Implement TLD | FernandoS27 | 2021-07-23 | 4 | -13/+170 |
| | |||||
* | shader: Store type of phi nodes in flags | ReinUsesLisp | 2021-07-23 | 2 | -1/+9 |
| | | | | This is needed because pseudo-instructions where invalidated. | ||||
* | shader: Fix indirect branches to scheduler instructions | ReinUsesLisp | 2021-07-23 | 3 | -7/+17 |
| | |||||
* | shader: Add missing new lines | ReinUsesLisp | 2021-07-23 | 1 | -0/+2 |
| | |||||
* | shader: Implement FSWZADD | ameerj | 2021-07-23 | 7 | -4/+55 |
| | |||||
* | shader: Implement BRX | FernandoS27 | 2021-07-23 | 14 | -44/+347 |
| | |||||
* | shader: Fix alignment checks on RZ | ReinUsesLisp | 2021-07-23 | 1 | -1/+1 |
| | |||||
* | shader: Implement I2I CC | ameerj | 2021-07-23 | 1 | -3/+4 |
| | |||||
* | shader: Implement I2I SAT | ameerj | 2021-07-23 | 4 | -10/+42 |
| | |||||
* | 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 | 8 | -16/+277 |
| | |||||
* | shader: Implement ISCADD CC | ameerj | 2021-07-23 | 1 | -1/+4 |
| | |||||
* | shader: Implement VMAD, VMNMX, VSETP | ameerj | 2021-07-23 | 8 | -23/+314 |
| | |||||
* | 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 | 2 | -9/+36 |
| | |||||
* | spirv: Remove dependencies on Environment when generating SPIR-V | ReinUsesLisp | 2021-07-23 | 2 | -0/+5 |
| | |||||
* | shader: Fix structured control flow on KIL instructions | ReinUsesLisp | 2021-07-23 | 2 | -3/+7 |
| | | | | | This could potentially leave unvisited blocks, leading to illegal phi nodes. | ||||
* | shader: Fix TXQ | FernandoS27 | 2021-07-23 | 1 | -1/+1 |
| | |||||
* | shader: Implement TXQ and fix FragDepth | ReinUsesLisp | 2021-07-23 | 5 | -8/+86 |
| | |||||
* | shader: Refactor PTP and other minor changes | ReinUsesLisp | 2021-07-23 | 7 | -46/+19 |
| | |||||
* | shader: Add IR opcode for ImageFetch | FernandoS27 | 2021-07-23 | 3 | -2/+15 |
| | |||||
* | shader: Implement TLD4.PTP | FernandoS27 | 2021-07-23 | 8 | -19/+52 |
| | |||||
* | 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 | 7 | -10/+237 |
| | |||||
* | shader: Implement SHFL | ameerj | 2021-07-23 | 8 | -8/+124 |
| | |||||
* | shader: Properly insert Prologue instruction | ReinUsesLisp | 2021-07-23 | 1 | -1/+2 |
| | |||||
* | shader: Minor style nits | ReinUsesLisp | 2021-07-23 | 1 | -2/+4 |
| | |||||
* | shader: Fix F2I | FernandoS27 | 2021-07-23 | 6 | -5/+124 |
| | |||||
* | shader: Implement NDC [-1, 1], attribute types and default varying initialization | ReinUsesLisp | 2021-07-23 | 5 | -1/+23 |
| | |||||
* | shader: Implement VOTE | ameerj | 2021-07-23 | 5 | -4/+79 |
| | |||||
* | 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 | 8 | -39/+169 |
| | |||||
* | shader: Implement FADD32I | FernandoS27 | 2021-07-23 | 1 | -2/+15 |
| | |||||
* | shader: Implement F2F | FernandoS27 | 2021-07-23 | 4 | -19/+188 |
| | |||||
* | shader: Implement DMUL and DFMA | ameerj | 2021-07-23 | 7 | -30/+109 |
| | | | | 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 | 7 | -14/+28 |
| | |||||
* | 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 | 4 | -14/+118 |
| | |||||
* | 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 | 9 | -69/+315 |
| | |||||
* | 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 | 19 | -51/+212 |
| | |||||
* | shader: Implement DADD | ameerj | 2021-07-23 | 6 | -14/+129 |
| | |||||
* | shader: Implement CSET and CSETP | ameerj | 2021-07-23 | 5 | -15/+113 |
| | |||||
* | shader: Fix instruction transitions in and out of Phi | ReinUsesLisp | 2021-07-23 | 1 | -9/+11 |
| | |||||
* | 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 | 6 | -5/+275 |
| | |||||
* | shader: Implement CAL inlining function calls | ReinUsesLisp | 2021-07-23 | 11 | -254/+232 |
| | |||||
* | shader: Implement FMNMX | ameerj | 2021-07-23 | 5 | -13/+88 |
| | | | | And add a const in FCMP | ||||
* | shader: Fix rebase issue | ReinUsesLisp | 2021-07-23 | 1 | -1/+0 |
| | |||||
* | shader: Implement FCMP | ameerj | 2021-07-23 | 5 | -49/+184 |
| | | | | still need to configure some settings for NV denorm flush and intel NaN | ||||
* | shader: Partial implementation of LDC | ReinUsesLisp | 2021-07-23 | 6 | -10/+128 |
| | |||||
* | shader: Initial support for textures and TEX | ReinUsesLisp | 2021-07-23 | 13 | -315/+772 |
| | |||||
* | shader: Implement R2P | ameerj | 2021-07-23 | 4 | -12/+74 |
| | |||||
* | shader: Implement SHF | ameerj | 2021-07-23 | 5 | -22/+99 |
| | |||||
* | shader: Implement LEA | ameerj | 2021-07-23 | 5 | -26/+122 |
| | |||||
* | 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 | 6 | -23/+290 |
| | |||||
* | shader: Implement LOP and LOP3 | ameerj | 2021-07-23 | 7 | -31/+225 |
| | |||||
* | 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 | 5 | -15/+61 |
| | |||||
* | 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 | 5 | -12/+84 |
| | |||||
* | 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 | 5 | -12/+48 |
| | |||||
* | shader: Implement SHR | ameerj | 2021-07-23 | 5 | -12/+68 |
| | |||||
* | shader: Implement SEL | ameerj | 2021-07-23 | 2 | -12/+44 |
| | |||||
* | shader: Fix conditional execution of exit instructions | ReinUsesLisp | 2021-07-23 | 2 | -5/+6 |
| | |||||
* | shader: Fix control flow | ReinUsesLisp | 2021-07-23 | 8 | -20/+39 |
| | |||||
* | 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 | 13 | -66/+277 |
| | |||||
* | 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 | 3 | -12/+9 |
| | |||||
* | shader: Rename, implement FADD.SAT and P2R (imm) | ReinUsesLisp | 2021-07-23 | 12 | -45/+111 |
| | |||||
* | shader: Add denorm flush support | ReinUsesLisp | 2021-07-23 | 4 | -33/+49 |
| | |||||
* | spirv: Add lower fp16 to fp32 pass | ReinUsesLisp | 2021-07-23 | 9 | -55/+97 |
| | |||||
* | shader: Primitive Vulkan integration | ReinUsesLisp | 2021-07-23 | 7 | -24/+30 |
| | |||||
* | shader: Simplify ISCADD | ReinUsesLisp | 2021-07-23 | 1 | -6/+1 |
| | |||||
* | shader: Add utility to resolve identities on a value | ReinUsesLisp | 2021-07-23 | 2 | -0/+8 |
| | |||||
* | spirv: Initial bindings support | ReinUsesLisp | 2021-07-23 | 3 | -3/+22 |
| | |||||
* | shader: Improve object pool | ReinUsesLisp | 2021-07-23 | 1 | -5/+5 |
| | |||||
* | shader: Add support for forward declarations | ReinUsesLisp | 2021-07-23 | 6 | -13/+27 |
| | |||||
* | shader: Support SSA loops on IR | ReinUsesLisp | 2021-07-23 | 4 | -4/+70 |
| | |||||
* | shader: Misc fixes | ReinUsesLisp | 2021-07-23 | 5 | -13/+17 |
| | |||||
* | shader: Initial implementation of an AST | ReinUsesLisp | 2021-07-23 | 21 | -535/+1152 |
| | |||||
* | spirv: Initial SPIR-V support | ReinUsesLisp | 2021-07-23 | 3 | -19/+15 |
| | |||||
* | shader: Better constant folding | ReinUsesLisp | 2021-07-23 | 1 | -1/+1 |
| | |||||
* | shader: Properly store phi on Inst | ReinUsesLisp | 2021-07-23 | 4 | -59/+115 |
| | |||||
* | shader: Add pools and rename files | ReinUsesLisp | 2021-07-23 | 25 | -87/+113 |
| | |||||
* | shader: Make typed IR | ReinUsesLisp | 2021-07-23 | 16 | -258/+463 |
| | |||||
* | shader: Constant propagation and global memory to storage buffer | ReinUsesLisp | 2021-07-23 | 10 | -27/+77 |
| | |||||
* | shader: Initial instruction support | ReinUsesLisp | 2021-07-23 | 24 | -243/+1437 |
| | |||||
* | shader: SSA and dominance | ReinUsesLisp | 2021-07-23 | 19 | -74/+401 |
| | |||||
* | shader: Initial recompiler work | ReinUsesLisp | 2021-07-23 | 45 | -0/+6582 |