summaryrefslogtreecommitdiffstats
path: root/src/video_core/macro_interpreter.cpp (follow)
Commit message (Collapse)AuthorAgeFilesLines
* video_core/macro_interpreter: Make definitions of most private enums/unions hiddenLioncash2019-10-171-0/+71
| | | | | | This allows the implementation of these types to change without requiring a rebuild of everything that includes the macro interpreter header.
* Video Core: initial Implementation of InstanceDraw PackagingFernando Sahmkow2019-09-191-1/+1
|
* Merge pull request #2824 from ReinUsesLisp/mmeFernando Sahmkow2019-09-151-3/+1
|\ | | | | Revert "Revert #2466" and stub FirmwareCall 4
| * Revert "Revert #2466" and stub FirmwareCall 4ReinUsesLisp2019-09-041-3/+1
| |
* | maxwell_3d: Avoid moving macro_paramsReinUsesLisp2019-09-041-5/+13
|/
* GPU: Add a microprofile for macro interpreterFernando Sahmkow2019-07-141-0/+4
|
* Revert #2466Fernando Sahmkow2019-05-191-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.
* GPU/MMEInterpreter: Ignore the 'exit' flag when it's executed inside a delay slot.Sebastian Valle2019-05-121-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.
* video_core/macro_interpreter: Remove assertion within FetchParameter()Lioncash2019-04-061-2/+1
| | | | | We can just use .at(), which essentially does the same thing, but with less code.
* video_core/macro_interpreter: Simplify GetRegister()Lioncash2019-04-061-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.
* Fixed uninitialized memory due to missing returns in canaryDavid Marcec2018-12-191-0/+2
| | | | Functions which are suppose to crash on non canary builds usually don't return anything which lead to uninitialized memory being used.
* gpu: Rewrite GPU command list processing with DmaPusher class.bunnei2018-11-271-1/+1
| | | | - More accurate impl., fixes Undertale (among other games).
* macro_interpreter: Implement AddWithCarry and SubtractWithBorrow.bunnei2018-11-221-7/+22
| | | | - Used by Undertale.
* maxwell_3d: Restructure macro upload to use a single macro code memory.bunnei2018-11-011-9/+10
| | | | | - Fixes an issue where macros could be skipped. - Fixes rendering of distant objects in Super Mario Odyssey.
* global: Use std::optional instead of boost::optional (#1578)Frederic L2018-10-301-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
* MacroInterpreter: Avoid left shifting negative values.Subv2018-07-311-2/+2
| | | | The branch target is signed, so multiply by 4 instead of left shifting by 2
* general: Convert assertion macros over to be fmt-compatibleLioncash2018-04-271-3/+3
|
* GPU: Implemented a gpu macro interpreter.Subv2018-04-011-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.