Commit Graph

4786 Commits

Author SHA1 Message Date
17d7b75a9b Merge pull request #11544 from jmallach/spng
Allow building against system libspng
2023-02-09 14:47:58 +01:00
4b2aa948e6 VideoBackend/OGL: Prefer KHR_subgroup over NV_shader_thread.
While the NV extension is totally fine, the KHR extension should be able to support more hardware.

For NVIDIA, the hardware either supports both or neither, it just needs a driver from the last two years.
For AMD, the drivers from late 2022-12 seems to bring support for the KHR extension.
For Intel, the KHR is also supported for some years.
2023-02-09 13:27:02 +01:00
d0c6b6c9ed VideoCommon: store the configuration used to create the AbstractPipeline on the pipeline itself, so that it's easy to duplicate pipelines with slightly altered configuration 2023-02-09 02:13:53 -06:00
ccf92a3e56 Merge pull request #11522 from phire/KillRendererWithFire
Kill Renderer (with phire)
2023-02-09 19:59:16 +13:00
5c1b3ac61d Hook up Presenter's ConfigChanged function
Fixes issue with post-processing not working
2023-02-09 18:36:20 +13:00
9c1fe59cc9 Insert a more solid abstraction between Qt and Imgui 2023-02-09 18:36:20 +13:00
b2a31103b4 Presenter: Handle blanked frames correctly 2023-02-09 18:36:20 +13:00
83b7b01265 Fix XFB duplicate detection
Frame duplicate detection was inverted. Huge problem for 60fps games
where it would see all frames as "duplicates" and nothing would ever be
presented.
2023-02-09 18:36:20 +13:00
d3ddd96cee Make sure m_prev_efb_format is initilized 2023-02-09 18:36:20 +13:00
8c8bd0e7ac Rename to HookableEvent. Because naming conflict 2023-02-09 18:36:20 +13:00
60f2b5af7b Apply suggestions from code review
Co-authored-by: Mai <mathew1800@gmail.com>
Co-authored-by: BhaaL <bhaalsen@gmail.com>
Co-authored-by: iwubcode <iwubcode@users.noreply.github.com>
2023-02-09 18:36:20 +13:00
e0a1631659 Add comment about "end of frame" 2023-02-09 18:36:20 +13:00
e2de281897 Make sure pixel shaders pick up Initial EFB Scale 2023-02-09 18:36:20 +13:00
cf9a6f8477 Lint fixes 2023-02-09 18:36:20 +13:00
628af9d564 Fix builds with FFMPEG disabled 2023-02-09 18:36:20 +13:00
4422af1272 Cleanup headers 2023-02-09 18:36:20 +13:00
5803786beb Move UseVertexDepthRange() out of Renderer
There wasn't really a good place for it, but this will do
2023-02-09 18:36:20 +13:00
2cfc02a116 Move m_prev_efb_format into FramebufferManager 2023-02-09 18:36:20 +13:00
9b5397abdb Move WidescreenHeuristic to it's own class
It's about the only thing left in renderer
2023-02-09 18:36:20 +13:00
31cfe8250d Lint fixes 2023-02-09 18:36:20 +13:00
11de923dcb Move xfb tracking and IR scaling out of RenderBase 2023-02-09 18:36:20 +13:00
e009002411 Refactor ClearRegion
And fix bug where opengl was getting the wrong coordinates
2023-02-09 18:36:20 +13:00
4d164fcb77 Allow building against system libspng 2023-02-06 13:30:46 +01:00
e98ab0784d Merge pull request #11501 from iwubcode/abstract_texture_load_specify_layer
VideoBackends: add a way to load data into a specific level AND layer
2023-02-01 00:03:59 +13:00
0f037a1af8 Merge pull request #10864 from TellowKrinkle/BetterLogicBlend
VideoCommon: Better logic op invert approximation
2023-01-31 01:55:55 -05:00
b753641dd4 Add some descriptions to new classes 2023-01-31 19:41:24 +13:00
abfc75f362 Cleanup headers 2023-01-31 19:41:24 +13:00
ec8f46b02c Expose Renderer's Framecount
We don't want to move it, because we want to complete
this refactor without changing savestate version
2023-01-31 19:41:24 +13:00
3be63221c7 Renderer still needs to track swaps for savestates 2023-01-31 19:41:24 +13:00
3ae78b8e76 Also use events for config changed 2023-01-31 19:41:24 +13:00
0da69055d9 Split out everying remaining from Swap 2023-01-31 19:41:24 +13:00
2a18b34a73 Wire up frame before/after events 2023-01-31 19:41:24 +13:00
154cb4f722 Introduce an Event system to VideoCommon
A lot of the remaining complexity in Renderer is the massive Swap function
which tries to handle a bunch of FrameBegin/FrameEnd events.

Rather than create a new place for it. This event system will try
to distribute it all over the place
2023-01-31 19:41:24 +13:00
d6cd8de1a7 Delete unused EFBHasAlphaChannel function 2023-01-31 19:41:24 +13:00
9d125a6e43 Move ConfigChanged out of RenderBase
There is this nice VideoConfig file that's perfect for it
2023-01-31 19:41:24 +13:00
ca5ec13e13 Move GraphicsMod out of RenderBase 2023-01-31 19:41:24 +13:00
55d15bdd6e Move utiltily drawing out of RenderBase 2023-01-31 19:41:24 +13:00
99d3e489ea Move BoundingBox out of RenderBase
They were essentially just pass-though methods
2023-01-31 19:41:24 +13:00
8bc8e43dd6 Add virtual Initialize() to PerfQueryBase
Both DX12 and Vulkan already had one.
2023-01-31 19:41:24 +13:00
3c73707dfe Fix dead code. 2023-01-31 19:41:24 +13:00
b007b8e104 Replace BeginUI/EndUI 2023-01-31 19:41:24 +13:00
18c799f0b6 Present: Set surface info before initializing ImGui
Otherwise you get subtle bugs in vulkan that take hours to track down.
2023-01-31 19:41:24 +13:00
f158ff300b Handle VideoSoftware's present fallback better
Not a good idea to abuse bSupportsPostProcessing
2023-01-31 19:41:24 +13:00
26e00c3bb4 Fix warning about using & with bools 2023-01-31 19:41:23 +13:00
74d3b3443a Fix warning about compare sign mismatch 2023-01-31 19:41:23 +13:00
8f5b196019 Minimise include polution from RenderState 2023-01-31 19:41:23 +13:00
2a2014af09 Implement AbstractGfx for Vulkan 2023-01-31 19:41:23 +13:00
58b70b2fb2 Don't set common globals from Video Backends 2023-01-31 19:41:23 +13:00
d37f83ffeb Implement AbstractGfx for Software & Null 2023-01-31 19:41:23 +13:00
f0336a3129 Implement AbstractGfx for OpenGL
Mostly involves moving contents of OGLRender
to OGLGfx and OGLConfig
2023-01-31 18:46:04 +13:00