summaryrefslogtreecommitdiff
path: root/Source/Core/VideoCommon/CommandProcessor.cpp
AgeCommit message (Collapse)Author
2026-03-22Remove "please report it to the developers" from unknown opcode messageJosJuice
I think we've gotten all the useful reports we can get from this now. Nowadays we're just getting repeated reports of issues we already know about, like https://bugs.dolphin-emu.org/issues/12321.
2026-01-25Remove unused importsMartino Fontana
Yellow squiggly lines begone! Done automatically on .cpp files through `run-clang-tidy`, with manual corrections to the mistakes. If an import is directly used, but is technically unnecessary since it's recursively imported by something else, it is *not* removed. The tool doesn't touch .h files, so I did some of them by hand while fixing errors due to old recursive imports. Not everything is removed, but the cleanup should be substantial enough. Because this done on Linux, code that isn't used on it is mostly untouched. (Hopefully no open PR is depending on these imports...)
2025-05-05VideoCommon: reset some CP registers during PI_FIFO_RESETTillmann Karras
This fixes the shutdown error in SpongeBob Globs of Doom.
2025-02-08VideoCommon: remove CP readonly field, it's now always falseTillmann Karras
2025-02-08VideoCommon: drop CP MMIO registers that were probably added in the wrong placeTillmann Karras
I think someone confused these with the actual token and bounding box registers in PE, which were added later. In CP they never did anything and it's suspicious that they have the same addresses as their PE counterparts. On real hardware they always read as zero.
2024-10-10VideoCommon: fix common opcode decoding errorsTillmann Karras
Many games call GXSetGPFifo() without first waiting for the GP to finish consuming outstanding commands in the previous GP fifo. Normally, Dolphin runs OpcodeDecoding in 1000-cycle time slices. In that time frame, GXSetGPFifo() has probably completed and the GP read pointer now points to entirely new memory. If the last GP fifo copy ended in an incomplete command, the new GP fifo would most likely desync for a while. To avoid all this, give the GP a time slice right now to copy the remaining data from the previous GP fifo.
2024-01-31Migrate SConfig::bWii to System.Admiral H. Curtiss
2023-12-20VideoCommon/CommandProcessor: Pass system instance through constructorLioncache
Makes the use of the interface a little less noisy, especially given how much of the interface depends on an instance being present.
2023-12-18VideoCommon/Fifo: Pass system instance through FifoManager constructorLioncache
Given how many member functions make use of the system instance, it's likely just better to pass the system instance in on construction. Makes the interface a little less noisy to use.
2023-06-03Merge pull request #11586 from JosJuice/unknown-opcode-msgAdmiral H. Curtiss
VideoCommon: Reword the unknown opcode error message
2023-04-05VideoCommon/CommandProcessor: Pass System to HandleUnknownOpcode().Admiral H. Curtiss
2023-02-19VideoCommon: Reword the unknown opcode error messageJosJuice
When faced with this error, users often don't try disabling dual core, even though the error message suggests it. Perhaps the message is just too long and lists too many things? To try to improve the situation, I'm rewording the message and making it say different things depending on what settings you are using.
2023-02-09CommandProcessor: Fix shadowing warningsPokechu22
2023-01-27PowerPC: Parametrize LR macro.Admiral H. Curtiss
2023-01-27PowerPC: Remove PC macro.Admiral H. Curtiss
2023-01-04HW/ProcessorInterface: Rename member variables to fit naming convention.Admiral H. Curtiss
2023-01-04HW/ProcessorInterface: Refactor to class, move to Core::System.Admiral H. Curtiss
2022-12-10VideoCommon/Fifo: Pass Core::System to methods.Admiral H. Curtiss
2022-12-10VideoCommon/Fifo: Refactor to class, move to Core::System.Admiral H. Curtiss
2022-11-29VideoCommon/CommandProcessor: Refactor to class, move to Core::System.Admiral H. Curtiss
2022-11-27CoreTiming: Refactor to class.Admiral H. Curtiss
2022-11-23Core/CommandProcessor: Reformat single/dual core dependent MMIO handlers.Admiral H. Curtiss
2022-11-23HW: Pass System to MMIO handlers.Admiral H. Curtiss
2022-11-06CoreTiming: Pass Core::System to Events.Admiral H. Curtiss
2022-10-06Common/PointerWrap: Remove DoPODPokechu22
This was added in 385d8e2b15c8accce3b4e4b4f3dc90f63e3fbee4, but became somewhat redundant with Do in 4c7bbd96e435a7516b05d3e8c791ab41505e2e0f, and completely redundant now that std::is_trivially_copyable_v is well-supported.
2022-08-22Edit error messagePEmu2
Edit error message to be less sarcastic. I doubt many users appreciate this when Dolphin has just crashed.
2022-02-15CommandProcessor: Add FIFO_BP_LO/HI to directly_mapped_varsPokechu22
directly_mapped_vars was added in #69 (4129b30494757a79daf8a07e6a07ea937ba1c94b), but for some reason FIFO_BP_LO/HI were split out from it in in #885 (65af90669bd5f9e02bbaa994d51d5c83d147b868). As far as I can tell, this code (and the code that existed at the time) is identical, so there's no reason to have it handled separately.
2022-02-13CommandProcessor: Log ignored unknown opcodes at warn levelPokechu22
Large amounts of logging can have an impact on performance, so moving the ones that have been determined to not matter to the warn level gives a way to hide those messages without hiding actual errors (and also gives a fast visual way of distinguishing between ignored and non-ignored ones due to the different colors).
2022-02-13CommandProcessor: Move unknown opcode log message before the panic alertPokechu22
This way, the extra information is already in the log by the time the panic alert appears, which is slightly more convenient for debugging.
2022-02-12CommandProcessor: Ignore unknown opcode for 0x3fPokechu22
2022-02-12CommandProcessor: Log PC and LR on unknown opcodesPokechu22
2022-02-12CommandProcessor: Move contents of second unknown opcode panic alert to the logPokechu22
This way, the information is always available, and users don't have to deal with a wall of meaningless information.
2022-02-12CommandProcessor: Remove redundant GATHER_PIPE_SIZE constantPokechu22
2022-01-22VideoCommon: Move logging/seen check for unknown opcodes into CommandProcessorPokechu22
That way, they're in the same place the panic alerts are generated.
2022-01-09Config: Port dual core setting to new config system.Admiral H. Curtiss
2021-12-18Refactor OpcodeDecoding and FIFO analyzer to use callbacksPokechu22
2021-12-10Treewide: Adjust order of includesPokechu22
2021-11-02VideoCommon: Fix a -Wclass-memaccess in gcc 11Emmanuel Gil Peyrot
2021-07-05treewide: convert GPLv2+ license info to SPDX tagsPierre Bourdon
SPDX standardizes how source code conveys its copyright and licensing information. See https://spdx.github.io/spdx-spec/1-rationale/ . SPDX tags are adopted in many large projects, including things like the Linux kernel.
2021-06-07Lint: End of namespaceSepalani
2021-05-15Remove all remaining volatile qualifiersJosJuice
2021-05-13Remove Atomic.hJosJuice
The STL has everything we need nowadays. I have tried to not alter any behavior or semantics with this change wherever possible. In particular, WriteLow and WriteHigh in CommandProcessor retain the ability to accidentally undo another thread's write to the upper half or lower half respectively. If that should be fixed, it should be done in a separate commit for clarity. One thing did change: The places where we were using += on a volatile variable (not an atomic operation) are now using fetch_add (actually an atomic operation). Tested with single core and dual core on x86-64 and AArch64.
2021-04-18Fifo: Run/sync with the GPU on command processor register accessStenzek
2020-11-20Fix translatable strings which contain non-positional argumentsJosJuice
2020-11-17VideoCommon: Migrate over to fmtLioncash
Migrates off the printf-based formatting where applicable.
2020-06-25Replace Windows CMake lambda constexpr capture workaroundJosJuice
While manually capturing constexpr variables used in lambda expressions does work, it's really easy to forget doing so since we don't have a Windows CMake builder and the workaround isn't necessary anywhere else. Fortunately, MSVC has a flag that fixes the constexpr capture behavior, so let's use that instead.
2020-05-03Fix Windows CMake build errorsJosJuice
Lambda expressions with uncaptured constants were leading to errors, and there were also some warnings about deprecated functions (QFontMetrics::width and inet_ntoa).
2020-03-24Cleanup warnings of -Wunused-lambda-captureJun Su
Remove unused lambda captures.
2019-05-31VideoCommon: Constrain the array_base registersbooto
The array_base registers as part of CP state do not seem to incorporate the upper bits in the physical address they try to access.
2019-05-11CommandProcessor: Don't reset the video buffer when FIFO distance is changedStenzek
This prevents partially-processed commands from being lost when switching buffers.