mirror of
https://github.com/RPCS3/rpcs3.git
synced 2025-04-01 13:20:43 +00:00
d3d12: Move adapter's description to settings.
This commit is contained in:
parent
a5ecbd0b2b
commit
2f211e4e5a
@ -159,20 +159,9 @@ D3D12GSRender::D3D12GSRender()
|
|||||||
Microsoft::WRL::ComPtr<IDXGIFactory4> dxgiFactory;
|
Microsoft::WRL::ComPtr<IDXGIFactory4> dxgiFactory;
|
||||||
ThrowIfFailed(CreateDXGIFactory(IID_PPV_ARGS(&dxgiFactory)));
|
ThrowIfFailed(CreateDXGIFactory(IID_PPV_ARGS(&dxgiFactory)));
|
||||||
// Create adapter
|
// Create adapter
|
||||||
IDXGIAdapter* adaptater = nullptr;
|
ComPtr<IDXGIAdapter> adaptater = nullptr;
|
||||||
switch (Ini.GSD3DAdaptater.GetValue())
|
ThrowIfFailed(dxgiFactory->EnumAdapters(Ini.GSD3DAdaptater.GetValue(), adaptater.GetAddressOf()));
|
||||||
{
|
ThrowIfFailed(wrapD3D12CreateDevice(adaptater.Get(), D3D_FEATURE_LEVEL_11_0, IID_PPV_ARGS(&m_device)));
|
||||||
case 0: // WARP
|
|
||||||
ThrowIfFailed(dxgiFactory->EnumWarpAdapter(IID_PPV_ARGS(&adaptater)));
|
|
||||||
break;
|
|
||||||
case 1: // Default
|
|
||||||
dxgiFactory->EnumAdapters(0, &adaptater);
|
|
||||||
break;
|
|
||||||
default: // Adaptater 0, 1, ...
|
|
||||||
dxgiFactory->EnumAdapters(Ini.GSD3DAdaptater.GetValue() - 2,&adaptater);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
ThrowIfFailed(wrapD3D12CreateDevice(adaptater, D3D_FEATURE_LEVEL_11_0, IID_PPV_ARGS(&m_device)));
|
|
||||||
|
|
||||||
// Queues
|
// Queues
|
||||||
D3D12_COMMAND_QUEUE_DESC copyQueueDesc = {}, graphicQueueDesc = {};
|
D3D12_COMMAND_QUEUE_DESC copyQueueDesc = {}, graphicQueueDesc = {};
|
||||||
@ -186,9 +175,6 @@ D3D12GSRender::D3D12GSRender()
|
|||||||
g_descriptorStrideSamplers = m_device->GetDescriptorHandleIncrementSize(D3D12_DESCRIPTOR_HEAP_TYPE_SAMPLER);
|
g_descriptorStrideSamplers = m_device->GetDescriptorHandleIncrementSize(D3D12_DESCRIPTOR_HEAP_TYPE_SAMPLER);
|
||||||
|
|
||||||
m_frame = GetGSFrame();
|
m_frame = GetGSFrame();
|
||||||
DXGI_ADAPTER_DESC adaptaterDesc;
|
|
||||||
adaptater->GetDesc(&adaptaterDesc);
|
|
||||||
m_frame->SetAdaptaterName(adaptaterDesc.Description);
|
|
||||||
|
|
||||||
// Create swap chain and put them in a descriptor heap as rendertarget
|
// Create swap chain and put them in a descriptor heap as rendertarget
|
||||||
DXGI_SWAP_CHAIN_DESC swapChain = {};
|
DXGI_SWAP_CHAIN_DESC swapChain = {};
|
||||||
|
@ -57,7 +57,6 @@ public:
|
|||||||
virtual void DeleteContext(void* ctx) = 0;
|
virtual void DeleteContext(void* ctx) = 0;
|
||||||
virtual void Flip(void* ctx) = 0;
|
virtual void Flip(void* ctx) = 0;
|
||||||
virtual HWND getHandle() const = 0;
|
virtual HWND getHandle() const = 0;
|
||||||
virtual void SetAdaptaterName(const wchar_t *) = 0;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
typedef GSFrameBase2*(*GetGSFrameCb2)();
|
typedef GSFrameBase2*(*GetGSFrameCb2)();
|
||||||
|
@ -20,11 +20,6 @@ D3DGSFrame::~D3DGSFrame()
|
|||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
void D3DGSFrame::SetAdaptaterName(const wchar_t *name)
|
|
||||||
{
|
|
||||||
AdaptaterName = name;
|
|
||||||
}
|
|
||||||
|
|
||||||
void D3DGSFrame::Close()
|
void D3DGSFrame::Close()
|
||||||
{
|
{
|
||||||
GSFrame::Close();
|
GSFrame::Close();
|
||||||
@ -69,7 +64,7 @@ void D3DGSFrame::Flip(void* context)
|
|||||||
// canvas->SwapBuffers();
|
// canvas->SwapBuffers();
|
||||||
m_frames++;
|
m_frames++;
|
||||||
|
|
||||||
const std::string sub_title = Emu.GetTitle() + (Emu.GetTitleID().length() ? " [" + Emu.GetTitleID() + "] | " : " | ") + AdaptaterName.ToStdString() + " | ";
|
const std::string sub_title = Emu.GetTitle() + (Emu.GetTitleID().length() ? " [" + Emu.GetTitleID() + "] | " : " | ") + " | ";
|
||||||
|
|
||||||
if (fps_t.GetElapsedTimeInSec() >= 0.5)
|
if (fps_t.GetElapsedTimeInSec() >= 0.5)
|
||||||
{
|
{
|
||||||
|
@ -9,7 +9,6 @@ struct D3DGSFrame : public GSFrame, public GSFrameBase2
|
|||||||
{
|
{
|
||||||
wxWindow* canvas;
|
wxWindow* canvas;
|
||||||
u32 m_frames;
|
u32 m_frames;
|
||||||
wxString AdaptaterName;
|
|
||||||
|
|
||||||
D3DGSFrame();
|
D3DGSFrame();
|
||||||
~D3DGSFrame();
|
~D3DGSFrame();
|
||||||
@ -29,7 +28,6 @@ struct D3DGSFrame : public GSFrame, public GSFrameBase2
|
|||||||
|
|
||||||
virtual void SetViewport(int x, int y, u32 w, u32 h) override;
|
virtual void SetViewport(int x, int y, u32 w, u32 h) override;
|
||||||
virtual HWND getHandle() const override;
|
virtual HWND getHandle() const override;
|
||||||
virtual void SetAdaptaterName(const wchar_t *) override;
|
|
||||||
|
|
||||||
private:
|
private:
|
||||||
virtual void OnSize(wxSizeEvent& event);
|
virtual void OnSize(wxSizeEvent& event);
|
||||||
|
@ -7,6 +7,13 @@
|
|||||||
#include "Utilities/Log.h"
|
#include "Utilities/Log.h"
|
||||||
#include <wx/radiobox.h>
|
#include <wx/radiobox.h>
|
||||||
|
|
||||||
|
#if defined(DX12_SUPPORT)
|
||||||
|
#undef GetHwnd
|
||||||
|
#include <d3d12.h>
|
||||||
|
#include <wrl/client.h>
|
||||||
|
#include <dxgi1_4.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
SettingsDialog::SettingsDialog(wxWindow *parent)
|
SettingsDialog::SettingsDialog(wxWindow *parent)
|
||||||
: wxDialog(parent, wxID_ANY, "Settings", wxDefaultPosition)
|
: wxDialog(parent, wxID_ANY, "Settings", wxDefaultPosition)
|
||||||
{
|
{
|
||||||
@ -159,11 +166,20 @@ SettingsDialog::SettingsDialog(wxWindow *parent)
|
|||||||
cbox_gs_render->Append("DirectX 12");
|
cbox_gs_render->Append("DirectX 12");
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
cbox_gs_d3d_adaptater->Append("WARP");
|
#if defined(DX12_SUPPORT)
|
||||||
cbox_gs_d3d_adaptater->Append("Default");
|
unsigned id = 0;
|
||||||
cbox_gs_d3d_adaptater->Append("Renderer 0");
|
Microsoft::WRL::ComPtr<IDXGIFactory4> dxgiFactory;
|
||||||
cbox_gs_d3d_adaptater->Append("Renderer 1");
|
CreateDXGIFactory(IID_PPV_ARGS(&dxgiFactory));
|
||||||
cbox_gs_d3d_adaptater->Append("Renderer 2");
|
Microsoft::WRL::ComPtr<IDXGIAdapter> adapter;
|
||||||
|
|
||||||
|
while (dxgiFactory->EnumAdapters(id, adapter.GetAddressOf()) != DXGI_ERROR_NOT_FOUND)
|
||||||
|
{
|
||||||
|
DXGI_ADAPTER_DESC adapterDesc;
|
||||||
|
adapter->GetDesc(&adapterDesc);
|
||||||
|
cbox_gs_d3d_adaptater->Append(adapterDesc.Description);
|
||||||
|
id++;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
#if !defined(DX12_SUPPORT)
|
#if !defined(DX12_SUPPORT)
|
||||||
cbox_gs_d3d_adaptater->Enable(false);
|
cbox_gs_d3d_adaptater->Enable(false);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user