Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
Merge pull request #9063 from JosJuice/default-gfx-backend
Make default graphics backend not show up as empty
  • Loading branch information
JMC47 committed Sep 6, 2020
2 parents aee69b0 + 6eefc3c commit 62467c4
Show file tree
Hide file tree
Showing 13 changed files with 37 additions and 8 deletions.
4 changes: 3 additions & 1 deletion Source/Core/Core/Config/MainSettings.cpp
Expand Up @@ -12,6 +12,7 @@
#include "Core/HW/Memmap.h"
#include "Core/HW/SI/SI_Device.h"
#include "Core/PowerPC/PowerPC.h"
#include "VideoCommon/VideoBackendBase.h"

namespace Config
{
Expand Down Expand Up @@ -97,7 +98,8 @@ const Info<bool> MAIN_OVERCLOCK_ENABLE{{System::Main, "Core", "OverclockEnable"}
const Info<bool> MAIN_RAM_OVERRIDE_ENABLE{{System::Main, "Core", "RAMOverrideEnable"}, false};
const Info<u32> MAIN_MEM1_SIZE{{System::Main, "Core", "MEM1Size"}, Memory::MEM1_SIZE_RETAIL};
const Info<u32> MAIN_MEM2_SIZE{{System::Main, "Core", "MEM2Size"}, Memory::MEM2_SIZE_RETAIL};
const Info<std::string> MAIN_GFX_BACKEND{{System::Main, "Core", "GFXBackend"}, ""};
const Info<std::string> MAIN_GFX_BACKEND{{System::Main, "Core", "GFXBackend"},
VideoBackendBase::GetDefaultBackendName()};
const Info<std::string> MAIN_GPU_DETERMINISM_MODE{{System::Main, "Core", "GPUDeterminismMode"},
"auto"};
const Info<std::string> MAIN_PERF_MAP_DIR{{System::Main, "Core", "PerfMapDir"}, ""};
Expand Down
2 changes: 2 additions & 0 deletions Source/Core/VideoBackends/D3D/VideoBackend.h
Expand Up @@ -21,6 +21,8 @@ class VideoBackend : public VideoBackendBase

void InitBackendInfo() override;

static constexpr const char* NAME = "D3D";

private:
void FillBackendInfo();
};
Expand Down
2 changes: 1 addition & 1 deletion Source/Core/VideoBackends/D3D/main.cpp
Expand Up @@ -29,7 +29,7 @@ namespace DX11
{
std::string VideoBackend::GetName() const
{
return "D3D";
return NAME;
}

std::string VideoBackend::GetDisplayName() const
Expand Down
2 changes: 1 addition & 1 deletion Source/Core/VideoBackends/D3D12/VideoBackend.cpp
Expand Up @@ -27,7 +27,7 @@ namespace DX12
{
std::string VideoBackend::GetName() const
{
return "D3D12";
return NAME;
}

std::string VideoBackend::GetDisplayName() const
Expand Down
2 changes: 2 additions & 0 deletions Source/Core/VideoBackends/D3D12/VideoBackend.h
Expand Up @@ -19,6 +19,8 @@ class VideoBackend final : public VideoBackendBase
std::string GetDisplayName() const override;
void InitBackendInfo() override;

static constexpr const char* NAME = "D3D12";

private:
void FillBackendInfo();
};
Expand Down
5 changes: 4 additions & 1 deletion Source/Core/VideoBackends/Null/VideoBackend.h
Expand Up @@ -10,11 +10,14 @@ namespace Null
{
class VideoBackend final : public VideoBackendBase
{
public:
bool Initialize(const WindowSystemInfo& wsi) override;
void Shutdown() override;

std::string GetName() const override { return "Null"; }
std::string GetName() const override { return NAME; }
std::string GetDisplayName() const override;
void InitBackendInfo() override;

static constexpr const char* NAME = "Null";
};
} // namespace Null
3 changes: 3 additions & 0 deletions Source/Core/VideoBackends/OGL/VideoBackend.h
Expand Up @@ -13,6 +13,7 @@ namespace OGL
{
class VideoBackend : public VideoBackendBase
{
public:
bool Initialize(const WindowSystemInfo& wsi) override;
void Shutdown() override;

Expand All @@ -21,6 +22,8 @@ class VideoBackend : public VideoBackendBase

void InitBackendInfo() override;

static constexpr const char* NAME = "OGL";

private:
bool InitializeGLExtensions(GLContext* context);
bool FillBackendInfo();
Expand Down
2 changes: 1 addition & 1 deletion Source/Core/VideoBackends/OGL/main.cpp
Expand Up @@ -62,7 +62,7 @@ namespace OGL
{
std::string VideoBackend::GetName() const
{
return "OGL";
return NAME;
}

std::string VideoBackend::GetDisplayName() const
Expand Down
2 changes: 1 addition & 1 deletion Source/Core/VideoBackends/Software/SWmain.cpp
Expand Up @@ -45,7 +45,7 @@ class PerfQuery : public PerfQueryBase

std::string VideoSoftware::GetName() const
{
return "Software Renderer";
return NAME;
}

std::string VideoSoftware::GetDisplayName() const
Expand Down
2 changes: 2 additions & 0 deletions Source/Core/VideoBackends/Software/VideoBackend.h
Expand Up @@ -19,5 +19,7 @@ class VideoSoftware : public VideoBackendBase
std::optional<std::string> GetWarningMessage() const override;

void InitBackendInfo() override;

static constexpr const char* NAME = "Software Renderer";
};
} // namespace SW
4 changes: 3 additions & 1 deletion Source/Core/VideoBackends/Vulkan/VideoBackend.h
Expand Up @@ -15,9 +15,11 @@ class VideoBackend : public VideoBackendBase
bool Initialize(const WindowSystemInfo& wsi) override;
void Shutdown() override;

std::string GetName() const override { return "Vulkan"; }
std::string GetName() const override { return NAME; }
std::string GetDisplayName() const override { return _trans("Vulkan"); }
void InitBackendInfo() override;
void PrepareWindow(WindowSystemInfo& wsi) override;

static constexpr const char* NAME = "Vulkan";
};
} // namespace Vulkan
14 changes: 13 additions & 1 deletion Source/Core/VideoCommon/VideoBackendBase.cpp
Expand Up @@ -197,9 +197,21 @@ u16 VideoBackendBase::Video_GetBoundingBox(int index)
return result;
}

// This function is called at static initialization, so we can't rely on s_default_backend being set
std::string VideoBackendBase::GetDefaultBackendName()
{
#ifdef HAS_OPENGL
return OGL::VideoBackend::NAME;
#elif defined(_WIN32)
return DX11::VideoBackend::NAME;
#else
return Vulkan::VideoBackend::NAME;
#endif
}

void VideoBackendBase::PopulateList()
{
// OGL > D3D11 > Vulkan > SW > Null
// OGL > D3D11 > D3D12 > Vulkan > SW > Null
#ifdef HAS_OPENGL
g_available_video_backends.push_back(std::make_unique<OGL::VideoBackend>());
#endif
Expand Down
1 change: 1 addition & 0 deletions Source/Core/VideoCommon/VideoBackendBase.h
Expand Up @@ -59,6 +59,7 @@ class VideoBackendBase
u32 Video_GetQueryResult(PerfQueryType type);
u16 Video_GetBoundingBox(int index);

static std::string GetDefaultBackendName();
static void PopulateList();
static void ClearList();
static void ActivateBackend(const std::string& name);
Expand Down

0 comments on commit 62467c4

Please sign in to comment.