summaryrefslogtreecommitdiffstats
path: root/src/video_core/macro/macro_interpreter.cpp (unfollow)
Commit message (Collapse)AuthorFilesLines
2022-11-14Add break for default casesKyle Kienapfel1-0/+2
Visual Studio has an option to search all files in a solution, so I did a search in there for "default:" looking for any missing break statements. I've left out default statements that return something, and that throw something, even if via ThrowInvalidType. UNREACHABLE leads towards throw R_THROW macro leads towards a return
2022-10-21video_coare: Reimplementing the maxwell drawing trigger mechanismFengChen1-1/+1
2022-06-14common: Change semantics of UNREACHABLE to unconditionally crashLiam1-1/+0
2022-04-23general: Convert source file copyright comments over to SPDXMorph1-3/+2
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.
2022-01-25video_core/macro_interpreter: Move impl class to the cpp fileLioncash1-8/+84
Keeps the implementation hidden from the intended API and lessens the header dependencies on the interpreter's header.
2020-12-07video_core: Remove unnecessary enum class casting in logging messagesLioncash1-4/+3
fmt now automatically prints the numeric value of an enum class member by default, so we don't need to use casts any more. Reduces the line noise a bit.
2020-12-04video_core: Resolve more variable shadowing scenariosLioncash1-10/+10
Resolves variable shadowing scenarios up to the end of the OpenGL code to make it nicer to review. The rest will be resolved in a following commit.
2020-08-14macro-interpreter: Resolve -Wself-assign-field warningLioncash1-1/+0
This was assigning the field to itself, which is a no-op. The size doesn't change between its initial assignment and this one, so this is a safe change to make.
2020-06-24Macro HLE supportDavid Marcec1-1/+2
2020-06-03Mark parameters as constDavid Marcec1-1/+1
2020-05-30Implement macro JITDavid Marcec1-131/+67
2020-04-28VideoCore/Engines: Refactor Engines CallMethod.Fernando Sahmkow1-1/+1
2020-03-22apply replay logic to all writes. remove replay from MacroInterpreter::Send (@fincs)namkazy1-6/+0
2020-03-22maxwell_3d: update comments for shadow ram usagenamkazy1-1/+1
2020-03-22marco_interpreter: write hw value when shadow ram requestedNguyen Dac Nam1-0/+6
2019-10-17video_core/macro_interpreter: Make definitions of most private enums/unions hiddenLioncash1-0/+71
This allows the implementation of these types to change without requiring a rebuild of everything that includes the macro interpreter header.
2019-09-19Video Core: initial Implementation of InstanceDraw PackagingFernando Sahmkow1-1/+1
2019-09-04Revert "Revert #2466" and stub FirmwareCall 4ReinUsesLisp1-3/+1
2019-09-04maxwell_3d: Avoid moving macro_paramsReinUsesLisp1-5/+13
2019-07-14GPU: Add a microprofile for macro interpreterFernando Sahmkow1-0/+4
2019-05-19Revert #2466Fernando Sahmkow1-1/+3
This reverts a tested behavior on delay slots not exiting if the exit flag is set. Currently new tests are required in order to ensure this behavior.
2019-05-12GPU/MMEInterpreter: Ignore the 'exit' flag when it's executed inside a delay slot.Sebastian Valle1-3/+3
It seems instructions marked with the 'exit' flag will not cause an exit when executed within a delay slot. This was hwtested by fincs.
2019-04-06video_core/macro_interpreter: Remove assertion within FetchParameter()Lioncash1-2/+1
We can just use .at(), which essentially does the same thing, but with less code.
2019-04-06video_core/macro_interpreter: Simplify GetRegister()Lioncash1-11/+6
Given we already ensure nothing can set the zeroth register in SetRegister(), we don't need to check if the index is zero and special case it. We can just access the register normally, since it's already going to be zero. We can also replace the assertion with .at() to perform the equivalent behavior inline as part of the API.
2018-12-19Fixed uninitialized memory due to missing returns in canaryDavid Marcec1-0/+2
Functions which are suppose to crash on non canary builds usually don't return anything which lead to uninitialized memory being used.
2018-11-27gpu: Rewrite GPU command list processing with DmaPusher class.bunnei1-1/+1
- More accurate impl., fixes Undertale (among other games).
2018-11-22macro_interpreter: Implement AddWithCarry and SubtractWithBorrow.bunnei1-7/+22
- Used by Undertale.
2018-11-01maxwell_3d: Restructure macro upload to use a single macro code memory.bunnei1-9/+10
- Fixes an issue where macros could be skipped. - Fixes rendering of distant objects in Super Mario Odyssey.
2018-10-30global: Use std::optional instead of boost::optional (#1578)Frederic L1-3/+3
* get rid of boost::optional * Remove optional references * Use std::reference_wrapper for optional references * Fix clang format * Fix clang format part 2 * Adressed feedback * Fix clang format and MacOS build
2018-07-31MacroInterpreter: Avoid left shifting negative values.Subv1-2/+2
The branch target is signed, so multiply by 4 instead of left shifting by 2
2018-04-27general: Convert assertion macros over to be fmt-compatibleLioncash1-3/+3
2018-04-01GPU: Implemented a gpu macro interpreter.Subv1-0/+257
The Ryujinx macro interpreter and envydis were used as reference. Macros are programs that are uploaded by the games during boot and can later be called by writing to their method id in a GPU command buffer.