119 Commits

Author SHA1 Message Date
mazes-80
f375ee72a2 CMake: Add option to enable/disable Vulkan video backend 2020-10-23 20:14:46 +02:00
Léo Lam
d08b80828d VideoCommon: Simplify VideoBackendBase::GetDefaultBackendName
Now we can just call GetDefaultVideoBackend to get the default backend
and get its name by calling GetName.
2020-10-21 22:00:10 +02:00
Léo Lam
aaaa3896c0 VideoCommon: Get rid of the global g_available_video_backends
Replace it with a function-local static that is initialized on first
use. This gets rid of a global variable and removes the need for
manual initialization in UICommon.

This commit also replaces the weird find_if that looks for a non-null
unique_ptr with a simple "is vector empty" check considering that
none of the pointers can be null by construction.
2020-10-21 22:00:10 +02:00
Vincent Milum Jr
4e443ed857 Adding AmdPowerXpressRequestHighPerformance
Adding AmdPowerXpressRequestHighPerformance

This will allow AMD drivers to detect the request to use the dGPU instead of the iGPU on compatible hybrid graphics systems.

Reference: https://community.amd.com/thread/169965
2020-09-09 22:09:34 -07:00
JosJuice
6eefc3c524 Make default graphics backend not show up as empty
Fixes https://bugs.dolphin-emu.org/issues/12245.

I considered making a change to DolphinQt instead of
the core, but then additional effort would've been
required to add the same fix to the Android GUI once
we start using the new config system there.
2020-09-06 12:56:45 +02:00
Léo Lam
8df56cb319 Migrate video backend setting to the new config system
Fixes https://bugs.dolphin-emu.org/issues/12087
2020-05-22 16:54:53 +02:00
Ryan Meredith
e5f6d9320f Add Dolphin version and current video backend to shader compilation logs 2020-01-24 03:29:38 -05:00
Stenzek
d744c5a148 Compile fixes for Windows-on-ARM64 2019-12-28 19:20:41 +10:00
Lioncash
10f7674651 VideoCommon/IndexGenerator: Eliminate static state
Now that we've extracted all of the stateless functions that can be
hidden, it's time to make the index generator a regular class with
active data members.

This can just be a member that sits within the vertex manager base
class. By deglobalizing the state of the index generator we also get rid
of the wonky dual-initializing that was going on within the OpenGL
backend.

Since the renderer is always initialized before the vertex manager, we
now only call Init() once throughout the execution lifecycle.
2019-12-05 10:49:32 -05:00
Stenzek
1082468133 TextureCache: Support saving cache entries, including EFB copies 2019-07-24 04:10:38 +10:00
Stenzek
b26bb0605b VideoBackendBase: Do save state logic on the GPU thread 2019-07-24 04:08:25 +10:00
Lioncash
2b9389202e VideoCommon: Remove unused MathUtil.h include from VideoCommon.h
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-07-16 20:54:34 -04:00
Stenzek
113bd60fe7 Implement D3D12 backend 2019-04-01 11:24:55 +10:00
Stenzek
2a4bca8b4a VideoBackends: Verify validity before doing full renderer init
Prevents attempting to create invalid MSAA configurations, for example.
2019-03-29 19:52:38 +10:00
Stenzek
f039149198 Move most backend functionality to VideoCommon 2019-02-19 16:57:54 +10:00
Stenzek
600d1fc0bc Renderer: Use imgui for drawing debug text and OSD 2019-01-25 11:15:57 +10:00
Stenzek
673f1963a0 Vulkan: Support macOS via MoltenVK
The path to the MoltenVK library can be specified by the
LIBMOLTENVK_PATH environment variable, otherwise it assumes it is
located in the application bundle's Contents/MacOS directory.
2018-11-07 05:41:09 -08:00
Stenzek
eb33d7af64 Core: Call InitBackendInfo before loading config 2018-09-28 21:44:41 +10:00
Stenzek
93923e2b29 Don't fill backend info when core is running
The current approach results in the UI thread creating a graphics device
whilst the core is running, leading to races on function pointers, and
potentially crashing.
2018-09-28 21:43:22 +10:00
Stenzek
a877d5f6dc Remove unused Host_ShowVideoConfig 2018-09-28 14:05:53 +10:00
Lioncash
ba94ffd51d VideoBackendBase: Include parameter names in member function declarations
Given this is a base class, we should clearly state what the parameters
to the functions in its exposed interface actually mean or represent.
This avoids needing to hunt for the definition of the functions in cpp
files.

While we're at it, normalize said parameter names so they follow our
naming guidelines.
2018-05-20 16:27:16 -04:00
JosJuice
91732e2baf Remove support for projection hacks
This isn't really useful for anything anymore as far as I know.
2018-04-01 21:41:18 +02:00
Lioncash
b68e8b872e VideoBackendBase: Migrate functions from MainBase.cpp to VideoBackendBase.cpp
Given that this only contains functions from the VideoBackendBase class,
it makes more sense to move these to the relevant cpp file to keep them
all together.
2018-03-18 15:33:59 -04:00
Helios747
a465c483f3 Remove D3D12 2017-05-18 17:01:12 -07:00
Michael Maltese
f301ebf780 Don't build Vulkan video backend on macOS
There's no official implementation of the Vulkan API,
and Dolphin currently isn't set-up to work with the
single, commercially-available third-party implementation.
2016-10-06 16:53:55 -07:00