summaryrefslogtreecommitdiff
path: root/Source/Core/VideoCommon/BPFunctions.cpp
AgeCommit message (Collapse)Author
2025-11-20VideoCommon: avoid assuming global state exists for 'EndUtilityDrawing', use ↵iwubcode
last stored viewport/scissor rect instead
2025-10-31VideoCommon: rename ScissorResult 'm_result' to 'rectangles' to better ↵iwubcode
reflect what the member is
2025-10-31VideoCommon: move global variables out of BPFunctionsiwubcode
2025-08-23VideoBackends / VideoCommon: rename member variables in RenderState to be ↵iwubcode
consistent
2025-07-21Vulkan: Add support for unrestricted depth range.CrossVR
2025-03-12VideoCommon: Rename Renderer to EFBInterface.Jordan Woyak
2025-03-09VideoCommon: Move backend_info out of VideoConfig struct.Jordan Woyak
2024-10-10Modernize `std::sort` with rangesmitaclaw
2024-08-20Remove redundant semicolonsDr. Dystopia
2023-08-22Move SmallVector to CommonJosJuice
We had one implementation of this type of data structure in Arm64Emitter and one in VideoCommon. This moves the Arm64Emitter implementation to its own file and adds begin and end functions to it, so that VideoCommon can use it. You may notice that the license header for the new file is CC0. I wrote the Arm64Emitter implementation of SmallVector, so this should be no problem.
2023-02-09Move UseVertexDepthRange() out of RendererScott Mansell
There wasn't really a good place for it, but this will do
2023-02-09Move m_prev_efb_format into FramebufferManagerScott Mansell
2023-02-09Move xfb tracking and IR scaling out of RenderBaseScott Mansell
2023-02-09Refactor ClearRegionScott Mansell
And fix bug where opengl was getting the wrong coordinates
2023-01-31Fix warning about compare sign mismatchScott Mansell
2023-01-31Split AbstractGfx out of RendererScott Mansell
Almost all the virtual functions in Renderer are part of dolphin's "graphics api abstraction layer", which has slowly formed over the last decade or two. Most of the work was done previously with the introduction of the various "AbstractX" classes, associated with texture cache cleanups and implementation of newer graphics APIs (Direct3D 12, Vulkan, Metal). We are simply taking the last step and yeeting these functions out of Renderer. This "AbstractGfx" class is now completely agnostic of any details from the flipper/hollywood GPU we are emulating, though somewhat specialized. (Will not build, this commit only contains changes outside VideoBackends)
2022-04-16VideoCommon: Rework scissor handlingPokechu22
This increases accuracy, fixing the white rendering in Major Minor's Majestic March. However, the hardware backends can only have one viewport and scissor rectangle at a time, while sometimes multiple are needed to accurately emulate what is happening. If possible, this will need to be fixed later.
2022-04-16VideoCommon: Remove bSupportsOversizedViewportsPokechu22
I think this is a relic of D3D9. D3D11 and D3D12 seem to work fine without it. Plus, ViewportCorrectionMatrix just didn't work correctly (at least with the viewports being generated by the new scissor code).
2022-04-08Round viewport coordinates when vertex rounding is enabledPokechu22
This should fix https://bugs.dolphin-emu.org/issues/9105
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-05Update zcompression format change TODOScott Mansell
2021-04-24VideoCommon: Fix scissorOffset, handle negative value correctlyezio1900
VideoCommon: Change the type of BPMemory.scissorOffset to 10bit signed: S32X10Y10 VideoBackends: Fix Software Clipper.PerspectiveDivide function, use BPMemory.scissorOffset instead of hard code 342
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.
2020-11-17VideoCommon: Migrate over to fmtLioncash
Migrates off the printf-based formatting where applicable.
2019-07-16VideoCommon: Remove unused MathUtil.h include from VideoCommon.hLioncash
This header doesn't actually make use of MathUtil.h within itself, so this can be removed. Many other source files used VideoCommon.h as an indirect include to include MathUtil.h, so these includes can also be adjusted. While we're at it, we can also migrate valid inclusions of VideoCommon.h into cpp files where it can feasibly be done to minimize propagating it via other headers.
2019-05-04Replace MathUtil::Clamp with std::clampLéo Lam
2019-04-21Replace EFBRectangle/TargetRectangle with MathUtil::RectangleStenzek
2019-02-19Move most backend functionality to VideoCommonStenzek
2018-03-10Renderer: Remove now-redundant Set{Rasterization,Depth,Blending}StateStenzek
2018-03-10Move shader caches to VideoCommonStenzek
2018-02-20BPFunctions: Move upscaling of scissor rect to VideoCommonStenzek
2018-02-20BPFunctions: Move GX viewport conversion to VideoCommonStenzek
2017-09-11Renderer: Move cull mode to a rasterization state objectStenzek
Also moves logic for primitive handling to VideoCommon.
2017-09-11Renderer: Move depth state to VideoCommon and seperate from bpmemStenzek
2017-09-03Renderer: Change SetBlendState to accept a BlendingStateStenzek
This decouples the state generation (from the emulated GPU) from the management of internal backend state.
2017-09-03RenderBase: Drop SetColorMask and SetLogicOpModeStenzek
These are now incorporated into the blend state for all backends.
2017-04-18VideoCommon: Drop SetDitherMode()Stenzek
It was a no-op on all backends apart from GL anyhow.
2017-03-04VideoCommon: Eliminate static state in RendererStenzek
2016-11-27Remove unnecessary ConfigManager includesLéo Lam
Making changes to ConfigManager.h has always been a pain, because it means rebuilding half of Dolphin, since a lot of files depend on and include this header. However, it turns out some includes are unnecessary. This commit removes ConfigManager includes from files which don't contain SConfig or GPUDeterminismMode or GPU_DETERMINISM (which means the ConfigManager include is not used). (I've also had to get rid of some indirect includes.)
2016-11-02Core: Remove double newlines at the end of *_LOG messages.Emmanuel Gil Peyrot
2016-08-21VertexManagerBase: Get rid of static behaviorLioncash
2016-06-24Reformat all the things. Have fun with merge conflicts.Pierre Bourdon
2016-01-17VideoCommon: Header cleanupLioncash
Also remedies places where the video backends and core rely on things being indirectly included.
2015-11-02VideoCommon: VertexManager -> VertexManagerBaseTillmann Karras
It may be a bit weird to see calls to static functions in VertexManagerBase now, but at least it's easier to see what's going on.
2015-09-05Cleanup and unify handling of efb copy stride.Scott Mansell
2015-05-25Set copyright year to when a file was createdTillmann Karras
2015-05-25Update license headers to GPLv2+Tillmann Karras
2015-02-24VideoCommon: always enable efb copydegasus
2014-12-15VideoCommon: Merge LineGeometryShader into GeometryShaderGen.Jules Blok
This adds line-width emulation support to OpenGL.
2014-09-08Include CommonTypes.h instead of Common.h.Rohit Nirmal