summaryrefslogtreecommitdiffstats
path: root/src/shader_recompiler/frontend (follow)
Commit message (Collapse)AuthorAgeFilesLines
* Merge branch 'master' into ssbo-alignAmeer J2023-11-275-18/+20
|\
| * Merge pull request #12066 from ameerj/nvidia-nsanityliamwhite2023-11-191-0/+1
| |\ | | | | | | shader_recompiler: add byteswap pattern workaround for Nvidia
| | * shader_recompiler: add byteswap pattern workaround for NvidiaAmeer J2023-11-181-0/+1
| | |
| * | shader_recompiler: Fix spelling of "derivate" (#12067)Ameer J2023-11-184-18/+19
| |/
* / shader_recompiler: Align SSBO offsets to meet host requirementsAmeer J2023-11-011-1/+1
|/ | | | Co-Authored-By: Billy Laws <blaws05@gmail.com>
* Shader Recompiler: Auto stub special registers and dump pipelines on exception.Fernando Sahmkow2023-08-271-1/+2
|
* Shader Recomnpiler: implement textuzreGrad 3D emulation constant propagationFernando Sahmkow2023-08-195-5/+9
|
* Merge pull request #10699 from liamwhite/conditional-barrierMatías Locatti2023-06-121-0/+3
|\ | | | | shader_recompiler: remove barriers in conditional control flow when device lacks support
| * shader_recompiler: remove barriers in conditional control flow when device lacks supportLiam2023-06-101-0/+3
| |
* | shader_recompiler: translate f64 to f32 when unsupported on hostLiam2023-06-101-0/+3
|/
* shader_recompiler: fix copy-paste errorLiam2023-05-261-1/+1
|
* Fix Tears of the Kingdom flickering clouds and depths.Kelebek12023-05-111-6/+1
|
* Merge pull request #9588 from liamwhite/bylaws-revertsliamwhite2023-02-191-1/+1
|\ | | | | Revert "shader_recompiler: Align SSBO offsets to meet host requirements"
| * Revert "shader_recompiler: Align SSBO offsets to meet host requirements"Liam2023-01-071-1/+1
| | | | | | | | This reverts commit 8804a4eb23e0c4f3e4bab03dee7c204bd38bf21e.
* | shader_recompiler/value.h: Remove lingering references to S32ameerj2023-02-041-11/+0
| |
* | Move to Clang Format 15Levi Behunin2023-01-302-8/+8
| | | | | | | | | | | | Depends on https://github.com/yuzu-emu/build-environments/pull/69 clang-15 primary run
* | Merge pull request #9694 from ameerj/txq-mipsliamwhite2023-01-294-12/+16
|\ \ | | | | | | shader_recompiler: TXQ: Skip QueryLevels when possible
| * | shader_recompiler: TXQ: Skip QueryLevels when possibleameerj2023-01-284-12/+16
| | |
* | | shader_recompiler: Remove S32 IR typeameerj2023-01-266-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 maskBilly Laws2023-01-071-1/+1
|/ | | YFC 1.5 extended the size of the varying mask used to hold passthrough attrs without considering this
* Run clang-formatBilly Laws2023-01-051-13/+19
|
* shader_recompiler: Add support for lowering geometry passthroughBilly Laws2023-01-051-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 requirementsBilly Laws2023-01-051-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 feedbackFernando Sahmkow2023-01-042-0/+3
|
* MacroHLE: Add HLE replacement for base vertex and base instance.Fernando Sahmkow2023-01-015-1/+19
|
* Merge pull request #9300 from ameerj/pchliamwhite2022-12-031-1/+0
|\ | | | | CMake: Use precompiled headers to improve compile times
| * value.h: remove recursive includeameerj2022-11-301-1/+0
| |
* | Merge pull request #9289 from liamwhite/fruit-companyliamwhite2022-12-035-3/+8
|\ \ | | | | | | general: fix compile for Apple Clang
| * | general: fix compile for Apple ClangLiam2022-11-235-3/+8
| |/
* / shader_recompiler: add gl_Layer translation GS for older hardwareLiam2022-12-012-0/+90
|/
* Merge pull request #9167 from vonchenplus/tessliamwhite2022-11-115-5/+8
|\ | | | | video_core: Fix few issues in Tess stage
| * video_core: Fix few issues in Tess stageFengChen2022-11-075-5/+8
| |
* | ir/texture_pass: Use host_info instead of querying Settings::values (#9176)Morph2022-11-111-1/+1
|/
* video_core: Fix SNORM texture buffer emulating error (#9001)Feng Chen2022-11-046-15/+38
|
* Merge pull request #8858 from vonchenplus/mipmapbunnei2022-11-044-0/+14
|\ | | | | video_core: Generate mipmap texture by drawing
| * video_core: Generate mipmap texture by drawingFengChen2022-09-204-0/+14
| |
* | Revert "shader_recompiler/dead_code_elimination: Add DeadBranchElimination pass"Feng Chen2022-10-252-9/+0
| |
* | Merge pull request #8873 from vonchenplus/fix_legacy_location_errorbunnei2022-10-241-19/+28
|\ \ | | | | | | video_core: Fix legacy to generic location unpaired
| * | Address feedbackFengChen2022-10-171-6/+6
| | |
| * | video_core: Fix legacy to generic location unpairedFengChen2022-09-201-15/+24
| |/
* / Shader Decompiler: Fix dangerous behavior of invalid iterator insertion.Fernando Sahmkow2022-10-061-3/+3
|/
* video_code: support rectangle textureFengChen2022-08-252-0/+7
|
* chore: make yuzu REUSE compliantAndrea Pappacoda2022-07-271-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 12Liam2022-06-141-1/+1
|
* structured_control_flow: Remove constexpr Flow::Blocklat9nq2022-06-141-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 errorsLioncash2022-05-142-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 SPDXMorph2022-04-23137-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: typosAndrea Pappacoda2022-04-022-2/+2
|
* dead_code_elimination_pass: Remove unreachable Phi argumentsameerj2022-03-232-0/+9
|
* 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
| |
* | general: Fix clang/gcc build errorsameerj2022-03-201-0/+1
| |
* | shader_recompiler: Reduce unused includesameerj2022-03-2032-47/+7
|/
* shader_recompiler: Implement LDC.IS address modeLiam2022-03-161-2/+12
|
* Shader decompiler: do constant propgation before texture pass.Fernando Sahmkow2022-03-131-2/+2
|
* 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
* lower_int64_to_int32: Add 64-bit atomic fallbacksameerj2022-01-301-9/+9
|
* shaders: Add U64->U32x2 Atomic fallback functionsameerj2022-01-302-0/+38
|
* video_minimum_maximum: Implement src operand selectorsameerj2022-01-271-12/+6
| | | | Used by Pokemon Legends: Arceus
* shader_recompiler: Remove unnecessary [[nodiscard]]Lioncash2022-01-251-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 passameerj2021-12-301-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 clangvonchenplus2021-12-181-36/+36
|
* Remove spirv handle legacy related codevonchenplus2021-12-181-1/+1
|
* Implement convert legacy to genericFeng Chen2021-11-193-0/+101
|
* rescaling_pass: Logic simplification and minor style cleanupameerj2021-11-161-1/+0
|
* Shader: Don't rescale FragCoord if used by ShuffleFernando Sahmkow2021-11-161-1/+3
|
* shader: Properly scale image reads and add GL SPIR-V supportReinUsesLisp2021-11-163-0/+6
| | | | Thanks for everything!
* spirv: Implement rescaling patchingReinUsesLisp2021-11-161-0/+3
|
* shader: Add IsTextureScaled opcodeReinUsesLisp2021-11-163-0/+9
|
* shader: Add copy constructor to instructionsReinUsesLisp2021-11-164-1/+20
|
* shader: Add integer division opcodesReinUsesLisp2021-11-163-0/+7
|
* shader: Add resolution down factor opcodeReinUsesLisp2021-11-163-0/+7
|
* ShaderCache: Fix Phi Nodes Type on OGL.Fernando Sahmkow2021-11-011-0/+4
|
* ShaderCache: Order Phi Arguments from farthest away to nearest.Fernando Sahmkow2021-10-314-0/+30
|
* structured_control_flow: Skip reordering nested demote branches.ameerj2021-08-301-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 passameerj2021-08-303-8/+13
| | | | This is only needed on select drivers when a fragment shader discards/demotes.
* structured_control_flow: Add DemoteCombinationPassameerj2021-08-281-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-optsbunnei2021-07-301-0/+8
|\ | | | | shader: Fold integer FMA from Nvidia's pattern
| * shader: Add TryInstRecursive utility to valuesReinUsesLisp2021-07-261-0/+8
| |
* | Merge pull request #6724 from lioncash/nodisc-shaderRodrigo Locatti2021-07-262-4/+4
|\ \ | | | | | | shader_recompiler: Remove unnecessary [[nodiscard]] instances
| * | 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.
* / control_flow: Fix duplicate switch case in OpcodeTokenLioncash2021-07-261-1/+1
|/ | | | This previously duplicated the case of the PBK case above it.
* 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: Avoid usage of C++20 ranges to build in clangReinUsesLisp2021-07-233-18/+23
|
* shader_recompiler, video_core: Resolve clang errorslat9nq2021-07-238-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_castReinUsesLisp2021-07-231-2/+3
|
* shader: Ignore global memory ops on devices lacking int64 supportameerj2021-07-231-14/+14
|
* shader: GCC fmt 8.0.0 fixeslat9nq2021-07-231-1/+1
|
* 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: Use std::bit_cast instead of Common::BitCast for passthroughReinUsesLisp2021-07-231-2/+3
|
* shader: Rework varyings and implement passthrough geometry shadersReinUsesLisp2021-07-233-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 enabledReinUsesLisp2021-07-231-2/+7
|
* shader: Emulate 64-bit integers when not supportedReinUsesLisp2021-07-231-0/+3
| | | | Useful for mobile and Intel Xe devices.
* shader: Remove IAbs64ReinUsesLisp2021-07-233-11/+3
|
* shader_recompiler: Fix IADD3 input partitioningameerj2021-07-231-14/+13
|
* shader: Move loop safety tests to code emissionReinUsesLisp2021-07-234-46/+4
|
* shader: Calibrate loop safety thresholdReinUsesLisp2021-07-231-1/+1
|
* shader: Simplify MergeDualVertexProgramsReinUsesLisp2021-07-231-6/+4
|
* shader: Properly manage attributes not written from previous stagesReinUsesLisp2021-07-231-1/+3
|
* shader: Add support for native 16-bit floatsReinUsesLisp2021-07-232-4/+7
|
* shader: Rename maxwell/program.h to translate_program.hReinUsesLisp2021-07-232-7/+2
|
* shader: Fix loop safety to SSA passReinUsesLisp2021-07-231-1/+3
|
* shader: Add loggingReinUsesLisp2021-07-234-7/+7
|
* shader: Add shader loop safety check settingslat9nq2021-07-234-6/+55
| | | | Also add a setting for enable Nsight Aftermath.
* 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: Fix VertexA Shaders.FernandoS272021-07-231-5/+14
|
* 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: Always initialize up reference in structure control flowReinUsesLisp2021-07-231-31/+36
| | | | Fixes ubsan issue.
* shader: Fix ImageWrite indexingReinUsesLisp2021-07-231-1/+1
|
* shader: Fix TMML queriesReinUsesLisp2021-07-231-5/+9
|
* shader: Handle host exceptionsReinUsesLisp2021-07-233-5/+11
|
* 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-235-11/+16
| | | | Fixes the identity removal pass.
* glasm: Implement TEX and TEXS instructionsReinUsesLisp2021-07-234-22/+17
| | | | | Remove lod clamp from texture instructions with lod, as this is not needed (nor supported).
* shader_recompiler: GCC fixeslat9nq2021-07-234-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 unionReinUsesLisp2021-07-231-1/+6
|
* glasm: Initial implementation of phi nodes on GLASMReinUsesLisp2021-07-236-10/+28
|
* glasm: Rework control flow introducing a syntax listReinUsesLisp2021-07-2319-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 I2FReinUsesLisp2021-07-233-35/+42
|
* glasm: Implement basic GLASM instructionsReinUsesLisp2021-07-231-0/+6
|
* glasm: Add GLASM backend infrastructureReinUsesLisp2021-07-231-0/+6
|
* shader: ISET.X implementationameerj2021-07-231-8/+58
|
* shader: Optimize NVN FallthroughFernandoS272021-07-231-2/+5
|
* shader: Stub SR_AFFINITYFernandoS272021-07-231-0/+3
|
* shader: Implement Int32 SUATOM/SUREDameerj2021-07-238-5/+393
|
* shader: Initial OpenGL implementationReinUsesLisp2021-07-233-0/+12
|
* shader: Address feedbackFernandoS272021-07-233-24/+24
|
* shader: Implement VertexA stageFernandoS272021-07-234-0/+32
|
* shader: Implement delegation of Exit to dispatcher on CFGFernandoS272021-07-232-3/+47
|
* shader: Fix IADD3.CCameerj2021-07-231-12/+5
|
* shader: Fix VMNMX selector BReinUsesLisp2021-07-231-1/+2
|
* shader: Remove identity removal pass for better build timesReinUsesLisp2021-07-231-1/+0
|
* 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: 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-231-0/+9
|
* 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-238-169/+153
|
* 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-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: Simplify code for local memoryReinUsesLisp2021-07-231-6/+11
|
* shader: Add NVN storage buffer fallbacksReinUsesLisp2021-07-231-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 feedbackFernandoS272021-07-232-7/+10
|
* shader: Implement F2F (Imm)FernandoS272021-07-231-2/+28
|
* shader: Implement IADD3.CC/.XFernandoS272021-07-231-7/+22
|
* shader: Add coarse derivativesFernandoS272021-07-233-0/+14
|
* shader: Implement fine derivates constant propagationFernandoS272021-07-233-0/+14
|
* shader: Implement SR_Y_DIRECTIONFernandoS272021-07-234-0/+8
|
* shader: Fix Phi node typesReinUsesLisp2021-07-231-4/+0
|
* shader: Fix memory barriersReinUsesLisp2021-07-236-50/+23
|
* shader: Implement BFE and BFI CCameerj2021-07-232-12/+16
| | | | Fix two bugs in BFI.
* shader: Implement SampleMaskReinUsesLisp2021-07-235-1/+8
|
* shader: Implement PIXLD.MY_INDEXReinUsesLisp2021-07-235-4/+52
|
* shader: Implement tessellation shaders, polygon mode and invocation idReinUsesLisp2021-07-2313-33/+259
|
* shader: Implement transform feedbacks and define file formatReinUsesLisp2021-07-232-0/+9
|
* shader: Document and relax cache control on surface instructionsReinUsesLisp2021-07-231-10/+11
|
* shader: Implement geometry shadersReinUsesLisp2021-07-236-19/+48
|
* shader: Implement OUTReinUsesLisp2021-07-237-17/+62
|
* 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: Mark blocks with no end branch as unreachableReinUsesLisp2021-07-231-2/+7
|
* shader: Implement LOP CCReinUsesLisp2021-07-231-3/+11
|
* shader: Implement SR_THREAD_KILLReinUsesLisp2021-07-234-0/+9
|
* shader: Apply sign bit in FCMP (imm)ReinUsesLisp2021-07-231-1/+1
|
* shader: Implement ATOM/S and REDameerj2021-07-237-13/+706
|
* 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 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-2314-68/+365
|
* shader: Fix Windows build issuesReinUsesLisp2021-07-231-1/+1
|
* shader: Address feedback + clang formatlat9nq2021-07-236-15/+15
|
* shader_recompiler,video_core: Cleanup some GCC and Clang errorslat9nq2021-07-2345-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 variantReinUsesLisp2021-07-231-1/+9
|
* shader: Fix dangling labelsReinUsesLisp2021-07-231-0/+5
|
* shader: Fix F2IReinUsesLisp2021-07-231-1/+1
|
* shader: Address feedbackFernandoS272021-07-233-20/+25
|
* shader: Implement indexed attributesFernandoS272021-07-234-14/+37
|
* shader: Implement AL2PFernandoS272021-07-232-4/+35
|
* shader: Fix BRX trackingFernandoS272021-07-232-3/+4
|
* 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-234-35/+105
|
* shader: Implement BAR and fix memory barriersReinUsesLisp2021-07-235-2/+66
|
* shader: Abstract breadth searches and use the abstractionReinUsesLisp2021-07-231-0/+57
|
* shader: Reimplement GetCbufU64 as GetCbufU32x2ReinUsesLisp2021-07-234-12/+12
| | | | 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: Fix undetected bug from reviewFernandoS272021-07-231-0/+3
|
* shader: Address feedbackFernandoS272021-07-231-1/+7
|
* shader: "Implement" NOPFernandoS272021-07-231-1/+1
|
* shader: Address FeedbackFernandoS272021-07-237-80/+25
|
* shader: Implement SR_LaneIdFernandoS272021-07-234-0/+9
|
* shader: Implement MEMBARFernandoS272021-07-236-11/+78
|
* shader: Improve VOTE.VTG stubFernandoS272021-07-234-3/+57
|
* shader: Stub VOTE.VTGFernandoS272021-07-234-4/+15
|
* shader: Fix branches to visited virtual blocksReinUsesLisp2021-07-231-0/+10
|
* shader: Implement LDG .U.128 as .128ReinUsesLisp2021-07-231-3/+2
|
* shader: Unroll "using enum" for opcode declarationsReinUsesLisp2021-07-231-1/+27
|
* shader: Fix TXDFernandoS272021-07-231-1/+1
|
* shader: Address feedbackFernandoS272021-07-233-37/+33
|
* shader: Always pass a lod for TexelFetchReinUsesLisp2021-07-233-25/+17
|
* shader: Implement TXDFernandoS272021-07-233-10/+182
|
* shader: Implement ImageGradientFernandoS272021-07-234-0/+15
|
* shader: Implement TMML partiallyFernandoS272021-07-234-11/+134
|
* shader,spirv: Implement ImageQueryLod.FernandoS272021-07-233-0/+11
|
* shader: Implement TLDSFernandoS272021-07-232-4/+252
|
* shader: Implement TLDFernandoS272021-07-234-13/+170
|
* shader: Store type of phi nodes in flagsReinUsesLisp2021-07-232-1/+9
| | | | This is needed because pseudo-instructions where invalidated.
* shader: Fix indirect branches to scheduler instructionsReinUsesLisp2021-07-233-7/+17
|
* shader: Add missing new linesReinUsesLisp2021-07-231-0/+2
|
* shader: Implement FSWZADDameerj2021-07-237-4/+55
|
* shader: Implement BRXFernandoS272021-07-2314-44/+347
|
* shader: Fix alignment checks on RZReinUsesLisp2021-07-231-1/+1
|
* shader: Implement I2I CCameerj2021-07-231-3/+4
|
* shader: Implement I2I SATameerj2021-07-234-10/+42
|
* 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-238-16/+277
|
* shader: Implement ISCADD CCameerj2021-07-231-1/+4
|
* shader: Implement VMAD, VMNMX, VSETPameerj2021-07-238-23/+314
|
* shader: Add missing I2I exception when CC is usedReinUsesLisp2021-07-231-0/+4
|
* shader: Better interpolation and disabled attributes supportReinUsesLisp2021-07-232-9/+36
|
* spirv: Remove dependencies on Environment when generating SPIR-VReinUsesLisp2021-07-232-0/+5
|
* 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-235-8/+86
|
* shader: Refactor PTP and other minor changesReinUsesLisp2021-07-237-46/+19
|
* shader: Add IR opcode for ImageFetchFernandoS272021-07-233-2/+15
|
* shader: Implement TLD4.PTPFernandoS272021-07-238-19/+52
|
* 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-237-10/+237
|
* shader: Implement SHFLameerj2021-07-238-8/+124
|
* shader: Properly insert Prologue instructionReinUsesLisp2021-07-231-1/+2
|
* shader: Minor style nitsReinUsesLisp2021-07-231-2/+4
|
* shader: Fix F2IFernandoS272021-07-236-5/+124
|
* shader: Implement NDC [-1, 1], attribute types and default varying initializationReinUsesLisp2021-07-235-1/+23
|
* shader: Implement VOTEameerj2021-07-235-4/+79
|
* 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-238-39/+169
|
* shader: Implement FADD32IFernandoS272021-07-231-2/+15
|
* shader: Implement F2FFernandoS272021-07-234-19/+188
|
* shader: Implement DMUL and DFMAameerj2021-07-237-30/+109
| | | | 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-237-14/+28
|
* shader: Fix floating point comparison for FP16FernandoS272021-07-234-32/+32
|
* shader: Implement HSETP2FernandoS272021-07-232-12/+116
|
* shader: Implement HSET2FernandoS272021-07-234-14/+118
|
* 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-239-69/+315
|
* shader: Implement ISCADD (imm)ReinUsesLisp2021-07-231-2/+2
|
* shader: Implement LOP32IReinUsesLisp2021-07-232-18/+45
|
* shader: Add partial rasterizer integrationReinUsesLisp2021-07-2319-51/+212
|
* shader: Implement DADDameerj2021-07-236-14/+129
|
* shader: Implement CSET and CSETPameerj2021-07-235-15/+113
|
* shader: Fix instruction transitions in and out of PhiReinUsesLisp2021-07-231-9/+11
|
* shader: Implement FSET and FSETPameerj2021-07-237-92/+198
| | | | Also fix oversight with adding SignedZeroInfNanPreserve execution mode.
* shader: Implement TEXSReinUsesLisp2021-07-236-5/+275
|
* shader: Implement CAL inlining function callsReinUsesLisp2021-07-2311-254/+232
|
* shader: Implement FMNMXameerj2021-07-235-13/+88
| | | | And add a const in FCMP
* shader: Fix rebase issueReinUsesLisp2021-07-231-1/+0
|
* shader: Implement FCMPameerj2021-07-235-49/+184
| | | | still need to configure some settings for NV denorm flush and intel NaN
* shader: Partial implementation of LDCReinUsesLisp2021-07-236-10/+128
|
* shader: Initial support for textures and TEXReinUsesLisp2021-07-2313-315/+772
|
* shader: Implement R2Pameerj2021-07-234-12/+74
|
* shader: Implement SHFameerj2021-07-235-22/+99
|
* shader: Implement LEAameerj2021-07-235-26/+122
|
* shader: Deduplicate HADD2 codeReinUsesLisp2021-07-231-19/+16
|
* shader: Implement I2Iameerj2021-07-232-12/+99
|
* shader: Implement HADD2ReinUsesLisp2021-07-236-23/+290
|
* shader: Implement LOP and LOP3ameerj2021-07-237-31/+225
|
* 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-235-15/+61
|
* 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-235-12/+84
|
* shader: Implement BFIameerj2021-07-232-16/+56
|
* shader: Implement BFEameerj2021-07-232-12/+66
|
* shader: Implement POPCameerj2021-07-235-12/+48
|
* shader: Implement SHRameerj2021-07-235-12/+68
|
* shader: Implement SELameerj2021-07-232-12/+44
|
* shader: Fix conditional execution of exit instructionsReinUsesLisp2021-07-232-5/+6
|
* shader: Fix control flowReinUsesLisp2021-07-238-20/+39
|
* shader: Implement more of XMAD and FFMA32I and fix XMAD.CBCCReinUsesLisp2021-07-233-22/+70
|
* shader: FMUL, select, RRO, and MUFU fixesReinUsesLisp2021-07-2313-66/+277
|
* shader: Fix MOV(reg), add SHL variants and emit neg and abs instructionsReinUsesLisp2021-07-232-5/+5
|
* spirv: Fixes and Intel specific workaroundsReinUsesLisp2021-07-233-12/+9
|
* shader: Rename, implement FADD.SAT and P2R (imm)ReinUsesLisp2021-07-2312-45/+111
|
* shader: Add denorm flush supportReinUsesLisp2021-07-234-33/+49
|
* spirv: Add lower fp16 to fp32 passReinUsesLisp2021-07-239-55/+97
|
* shader: Primitive Vulkan integrationReinUsesLisp2021-07-237-24/+30
|
* shader: Simplify ISCADDReinUsesLisp2021-07-231-6/+1
|
* shader: Add utility to resolve identities on a valueReinUsesLisp2021-07-232-0/+8
|
* spirv: Initial bindings supportReinUsesLisp2021-07-233-3/+22
|
* 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-234-4/+70
|
* shader: Misc fixesReinUsesLisp2021-07-235-13/+17
|
* shader: Initial implementation of an ASTReinUsesLisp2021-07-2321-535/+1152
|
* spirv: Initial SPIR-V supportReinUsesLisp2021-07-233-19/+15
|
* 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-2325-87/+113
|
* shader: Make typed IRReinUsesLisp2021-07-2316-258/+463
|
* shader: Constant propagation and global memory to storage bufferReinUsesLisp2021-07-2310-27/+77
|
* shader: Initial instruction supportReinUsesLisp2021-07-2324-243/+1437
|
* shader: SSA and dominanceReinUsesLisp2021-07-2319-74/+401
|
* shader: Initial recompiler workReinUsesLisp2021-07-2345-0/+6582