This commit is contained in:
twinaphex 2020-02-19 19:23:10 +01:00
parent 75eef8a2c9
commit 682462fb20
2 changed files with 30 additions and 34 deletions

View File

@ -176,6 +176,7 @@ bool d3d12_init_base(d3d12_video_t* d3d12)
{
int i = 0;
settings_t *settings = config_get_ptr();
int gpu_index = settings->ints.d3d12_gpu_index;
if (d3d12->gpu_list)
string_list_free(d3d12->gpu_list);
@ -186,7 +187,7 @@ bool d3d12_init_base(d3d12_video_t* d3d12)
{
char str[128];
union string_list_elem_attr attr = {0};
DXGI_ADAPTER_DESC desc = {0};
DXGI_ADAPTER_DESC desc = {0};
str[0] = '\0';
@ -221,16 +222,17 @@ bool d3d12_init_base(d3d12_video_t* d3d12)
video_driver_set_gpu_api_devices(GFX_CTX_DIRECT3D12_API, d3d12->gpu_list);
if (0 <= settings->ints.d3d12_gpu_index && settings->ints.d3d12_gpu_index <= i && settings->ints.d3d12_gpu_index < D3D12_MAX_GPU_COUNT)
if (0 <= gpu_index && gpu_index <= i && gpu_index < D3D12_MAX_GPU_COUNT)
{
d3d12->adapter = d3d12->adapters[settings->ints.d3d12_gpu_index];
d3d12->adapter = d3d12->adapters[gpu_index];
AddRef(d3d12->adapter);
RARCH_LOG("[D3D12]: Using GPU index %d.\n", settings->ints.d3d12_gpu_index);
video_driver_set_gpu_device_string(d3d12->gpu_list->elems[settings->ints.d3d12_gpu_index].data);
RARCH_LOG("[D3D12]: Using GPU index %d.\n", gpu_index);
video_driver_set_gpu_device_string(
d3d12->gpu_list->elems[gpu_index].data);
}
else
{
RARCH_WARN("[D3D12]: Invalid GPU index %d, using first device found.\n", settings->ints.d3d12_gpu_index);
RARCH_WARN("[D3D12]: Invalid GPU index %d, using first device found.\n", gpu_index);
d3d12->adapter = d3d12->adapters[0];
AddRef(d3d12->adapter);
}
@ -245,14 +247,22 @@ bool d3d12_init_base(d3d12_video_t* d3d12)
bool d3d12_init_queue(d3d12_video_t* d3d12)
{
{
static const D3D12_COMMAND_QUEUE_DESC desc = { D3D12_COMMAND_LIST_TYPE_DIRECT, 0,
D3D12_COMMAND_QUEUE_FLAG_NONE, 0 };
static const D3D12_COMMAND_QUEUE_DESC desc = {
D3D12_COMMAND_LIST_TYPE_DIRECT,
0,
D3D12_COMMAND_QUEUE_FLAG_NONE,
0
};
D3D12CreateCommandQueue(
d3d12->device, (D3D12_COMMAND_QUEUE_DESC*)&desc, &d3d12->queue.handle);
d3d12->device,
(D3D12_COMMAND_QUEUE_DESC*)&desc,
&d3d12->queue.handle);
}
D3D12CreateCommandAllocator(
d3d12->device, D3D12_COMMAND_LIST_TYPE_DIRECT, &d3d12->queue.allocator);
d3d12->device,
D3D12_COMMAND_LIST_TYPE_DIRECT,
&d3d12->queue.allocator);
D3D12CreateGraphicsCommandList(
d3d12->device, 0, D3D12_COMMAND_LIST_TYPE_DIRECT, d3d12->queue.allocator,

View File

@ -2263,7 +2263,9 @@ static void gl2_set_texture_frame(void *data,
{
settings_t *settings = config_get_ptr();
enum texture_filter_type
menu_filter = settings->bools.menu_linear_filter ? TEXTURE_FILTER_LINEAR : TEXTURE_FILTER_NEAREST;
menu_filter = settings->bools.menu_linear_filter
? TEXTURE_FILTER_LINEAR
: TEXTURE_FILTER_NEAREST;
unsigned base_size = rgb32 ? sizeof(uint32_t) : sizeof(uint16_t);
gl_t *gl = (gl_t*)data;
if (!gl)
@ -3410,35 +3412,24 @@ static bool gl2_init_pbo_readback(gl_t *gl)
static const gfx_ctx_driver_t *gl2_get_context(gl_t *gl)
{
enum gfx_ctx_api api;
const gfx_ctx_driver_t *gfx_ctx = NULL;
void *ctx_data = NULL;
const char *api_name = NULL;
settings_t *settings = config_get_ptr();
struct retro_hw_render_callback *hwr = video_driver_get_hw_context();
unsigned major = hwr->version_major;
unsigned minor = hwr->version_minor;
bool video_shared_context = settings->bools.video_shared_context;
#ifdef HAVE_OPENGLES
api = GFX_CTX_OPENGL_ES_API;
api_name = "OpenGL ES 2.0";
enum gfx_ctx_api api = GFX_CTX_OPENGL_ES_API;
if (hwr->context_type == RETRO_HW_CONTEXT_OPENGLES3)
{
major = 3;
minor = 0;
api_name = "OpenGL ES 3.0";
}
else if (hwr->context_type == RETRO_HW_CONTEXT_OPENGLES_VERSION)
api_name = "OpenGL ES 3.1+";
#else
api = GFX_CTX_OPENGL_API;
api_name = "OpenGL";
enum gfx_ctx_api api = GFX_CTX_OPENGL_API;
#endif
(void)api_name;
gl_shared_context_use = settings->bools.video_shared_context
gl_shared_context_use = video_shared_context
&& hwr->context_type != RETRO_HW_CONTEXT_NONE;
if ( (libretro_get_shared_context())
@ -3487,11 +3478,6 @@ static void DEBUG_CALLBACK_TYPE gl2_debug_cb(GLenum source, GLenum type,
{
const char *src = NULL;
const char *typestr = NULL;
gl_t *gl = (gl_t*)userParam; /* Useful for debugger. */
(void)gl;
(void)id;
(void)length;
switch (source)
{
@ -3632,7 +3618,7 @@ static void *gl2_init(const video_info_t *video,
video_context_driver_get_video_size(&mode);
#if defined(DINGUX)
mode.width = 320;
mode.width = 320;
mode.height = 240;
#endif
full_x = mode.width;
@ -3780,8 +3766,8 @@ static void *gl2_init(const video_info_t *video,
video_context_driver_get_video_size(&mode);
#if defined(DINGUX)
mode.width = 320;
mode.height = 240;
mode.width = 320;
mode.height = 240;
#endif
temp_width = mode.width;
temp_height = mode.height;