summaryrefslogtreecommitdiff
path: root/Source/Core/VideoCommon/RenderBase.cpp
AgeCommit message (Collapse)Author
2021-10-08Merge pull request #9803 from Techjar/bbox-videocommonLéo Lam
VideoCommon: Abstract bounding box
2021-10-04VideoCommon: Abstract bounding boxTechjar
This moves much of the duplicated bounding box code into VideoCommon, leaving only the specific buffer implementations in each backend.
2021-09-29RenderBase: Show input count on m_ShowFrameCountsowens99
Just to stay consistent, I believe it is best to show total input polls alongside the framecount.
2021-09-28RenderBase: show total framecount on movie playbacksowens99
Previously, when playing back a movie, you could not see the total frame count of a movie, only the total number of input polls. This change simply shows the total frame count on movie playback. Note that this change also results in the framecount and framecount total ALWAYS being displayed if show_movie_window is true, regardless of whether or not m_ShowFrameCount is true. I believe this is fine, as TASers are much more likely to reference the framecount than the input poll count.
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-05-31VideoCommon: Add fallback handling for bounding box when disabled or unsupportedTechjar
The SDK seems to write "default" bounding box values before every draw (1023 0 1023 0 are the only values encountered so far, which happen to be the extents allowed by the BP registers) to reset the registers for comparison in the pixel engine, and presumably to detect whether GX has updated the registers with real values. Handling these writes and returning them on read when bounding box emulation is disabled or unsupported, even without computing real values from rendering, seems to prevent games from corrupting memory or crashing. This obviously does not fix any effects that rely on bounding box emulation, but having the game not clobber its own code/data or just outright crash is a definite improvement.
2021-05-31VideoCommon: Restore BBox* forwarding functionsTechjar
2021-05-29VideoCommon: Remove BBox* forwarding functionsTechjar
2021-05-28VideoCommon: Move bounding box pixel quads rounding to shaderTechjar
This avoids rounding values that the game writes to the bounding box registers, especially the default values.
2021-05-22VideoCommon: Account for pixel quads in bounding box calculationTechjar
The GC/Wii GPU rasterizes in 2x2 pixel groups, so bounding box values will be rounded to the extents of these groups, rather than the exact pixel. To account for this, we'll round the top/left down to even and the bottom/right up to odd. I have verified that the values resulting from this change exactly match a real Wii.
2021-05-22VideoCommon: Split BBox* functions into common and backend implementation ↵Techjar
variants This will allow for some aspects of bounding box to be handled in VideoCommon instead of individual backends.
2021-05-14Merge pull request #9707 from JosJuice/remove-atomic-headerMat M
Remove Atomic.h
2021-05-14Merge pull request #9688 from Filoppi/input_cleanupScott Mansell
Input cleanup
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-05-12Add mixed comments to input code, make some tooltip clearerFiloppi
2021-05-07Merge pull request #9417 from Filoppi/input-1Léo Lam
Fix FPS counter and Game Window speed % breaking on pause/unpause
2021-05-06Fix FPS counter and Game Window speed % breaking on pause/unpauseFiloppi
-Add pause state to FPSCounter. -Add ability to have more than one "OnStateChanged" callback in core. -Add GetActualEmulationSpeed() to Core. Returns 1 by default. It's used by my input PRs.
2021-05-05Implement EFB Peeks for compressed z16 formatsScott Mansell
This fixes an issue in RS3 where engine lens flares would shine though ships during cutscenes
2021-03-06Convert BPMemory to BitField and enum classPokechu22
Additional changes: - For TevStageCombiner's ColorCombiner and AlphaCombiner, op/comparison and scale/compare_mode have been split as there are different meanings and enums if bias is set to compare. (Shift has also been renamed to scale) - In TexMode0, min_filter has been split into min_mip and min_filter. - In TexImage1, image_type is now cache_manually_managed. - The unused bit in GenMode is now exposed. - LPSize's lineaspect is now named adjust_for_aspect_ratio.
2021-03-06Fix typo with ztex2 op in UseVertexDepthRangePokechu22
2021-01-27rename Core/Analytics to Core/DolphinAnalyticsShawn Hoffman
2021-01-05Fix a couple of typosFilippo Tarpini
[committer note: fixed commit message style]
2020-12-26VideoCommon: Fix crash that occurs on loading a fifo log due to ↵iwubcode
uninitialized Free Look control type
2020-12-24VideoCommon: Update active config when we check for config changes, this ↵iwubcode
ensures Free Look settings are copied at the start of the frame. Also update the camera's controller type at this time
2020-12-24Core / VideoCommon: Remove old Free Look configiwubcode
2020-12-16Core: Remove ImageWrite and get rid of -Wmissing-declarations warningsLéo Lam
2020-11-27FrameDump: Start timing at 0 ticks when starting from bootJosJuice
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-10-22VideoCommon: FrameDump fixes/cleanups.Jordan Woyak
2020-10-03InputCommon: Introducing the "Dynamic Input Texture". Configuration links ↵iwubcode
an emulated input action to an image based on what host key is defined for that emulated input. Specific regions are called out in configuration that mark where to replace an input button with a host key image.
2020-08-06Remove wait_for_completion parameter from Renderer::SaveScreenshotJosJuice
This is now unused. Seems like it was an improper fix (there would be a race if saving the screenshot took longer than 2 seconds) back when it was used too.
2020-07-04Merge pull request #8884 from iwubcode/freelook_performance_fixConnor McLaughlin
VertexShaderManager: Only look for freelook config changes if we're using freelook
2020-07-02VertexShaderManager: Avoid accessing freelook control type configuration ↵iwubcode
each call which caused a performance hit, move check to RenderBase where it is checked when config changes
2020-06-29VideoCommon: Show profiler output againJosJuice
This profiler was added in 94d9d13, but must've broken at some point.
2020-04-16Merge pull request #8730 from JosJuice/frame-advance-duplicate-frameJMC47
Core: Skip duplicate frames when using frame advance
2020-04-09Core: Clarify Callback_VideoCopiedToXFB and FrameUpdateJosJuice
2020-02-09VideoCommon: Remove widescreen heuristic debug logs.Jordan Woyak
2020-02-09VideoCommon: Tweak widescreen heuristic and clean up some related Renderer ↵Jordan Woyak
logic.
2020-01-24InputCommon: Make "Cursor" inputs aware of the rendered aspect ratio.Jordan Woyak
2020-01-14Add an option to present/skip presenting duplicate framesStenzek
Currently, we do not display every second frame in 25fps/30fps games which run to vsync. This improves performance as there's less rendering for the GPU to perform, but when combined with vsync, could cause frame pacing issues. This commit adds an option to force every frame generated by the console to be displayed to the host, which may improve pacing for these games.
2019-12-05VideoCommon/OpcodeDecoding: Move g_bRecordFifoData into namespaceLioncash
Keeps the global localized with the code that it's primarily related to. Now it's obvious from a glance what the global variable is affecting.
2019-11-23VideoCommon: Make use of fmt outside of shader generatorsLioncash
Migrates most of VideoCommon over to using fmt, with the exception being the shader generator code. The shader generators are quite large and have more corner cases to deal with in terms of conversion (shaders have braces in them, so we need to make sure to escape them). Because of the large amount of code that would need to be converted, the conversion of VideoCommon will be in two parts: - This change (which converts over the general case string formatting), - A follow up change that will specifically deal with converting over the shader generators.
2019-10-02Renderer: Use interface blocks for ImGui shadersStenzek
2019-10-02Renderer: Draw ImGui interface to both eyesStenzek
2019-08-28Core: Use move semantics for Renderer::SaveScreenshotSilent
2019-08-04VideoCommon/RenderBase: Remove dependency on renderer global within rendererLioncash
There's no need to have a dependency when we can simply call the function itself as part of the instance itself.
2019-08-04VideoCommon/RenderBase: Use structured bindings where applicableLioncash
Same behavior, but immediately assigns to variables, allowing them to be const.
2019-08-04VideoCommon/RenderBase: Make functions const where applicableLioncash
2019-07-24TextureCache: Support saving cache entries, including EFB copiesStenzek