Revert "Cleanup core_info_hw_api_supported"

This reverts commit 9f653f27b0c2bc3c1cc6d5e5040b8dd914112dea.
This commit is contained in:
twinaphex 2020-07-26 23:11:38 +02:00
parent 4e5037d7e1
commit b604200730

View File

@ -1285,6 +1285,7 @@ bool core_info_hw_api_supported(core_info_t *info)
#ifdef RARCH_INTERNAL #ifdef RARCH_INTERNAL
unsigned i; unsigned i;
enum gfx_ctx_api sys_api; enum gfx_ctx_api sys_api;
const char *sys_api_version_str = video_driver_get_gpu_api_version_string();
gfx_ctx_flags_t sys_flags = video_driver_get_flags_wrapper(); gfx_ctx_flags_t sys_flags = video_driver_get_flags_wrapper();
int sys_api_version_major = 0; int sys_api_version_major = 0;
int sys_api_version_minor = 0; int sys_api_version_minor = 0;
@ -1352,40 +1353,26 @@ bool core_info_hw_api_supported(core_info_t *info)
} }
case STATE_API_COMPARE_OP: case STATE_API_COMPARE_OP:
{ {
if ( (j < cur_api_len - 1) if (j < cur_api_len - 1 && !(cur_api[j] >= '0' && cur_api[j] <= '9'))
&& !(cur_api[j] >= '0'
&& cur_api[j] <= '9')
)
{ {
if ( (cur_api[j] == '=') if (cur_api[j] == '=' && cur_api[j + 1] == '=')
&& (cur_api[j + 1] == '=')
)
{ {
op = COMPARE_OP_EQUAL; op = COMPARE_OP_EQUAL;
j++; j++;
} }
else if (cur_api[j] == '=') else if (cur_api[j] == '=')
op = COMPARE_OP_EQUAL; op = COMPARE_OP_EQUAL;
else if ( else if (cur_api[j] == '!' && cur_api[j + 1] == '=')
(cur_api[j] == '!')
&& (cur_api[j + 1] == '=')
)
{ {
op = COMPARE_OP_NOT_EQUAL; op = COMPARE_OP_NOT_EQUAL;
j++; j++;
} }
else if ( else if (cur_api[j] == '<' && cur_api[j + 1] == '=')
(cur_api[j] == '<')
&& (cur_api[j + 1] == '=')
)
{ {
op = COMPARE_OP_LESS_EQUAL; op = COMPARE_OP_LESS_EQUAL;
j++; j++;
} }
else if ( else if (cur_api[j] == '>' && cur_api[j + 1] == '=')
(cur_api[j] == '>')
&& (cur_api[j + 1] == '=')
)
{ {
op = COMPARE_OP_GREATER_EQUAL; op = COMPARE_OP_GREATER_EQUAL;
j++; j++;
@ -1402,23 +1389,14 @@ bool core_info_hw_api_supported(core_info_t *info)
} }
case STATE_API_VERSION: case STATE_API_VERSION:
{ {
if ( !found_minor if (!found_minor && cur_api[j] >= '0' && cur_api[j] <= '9' && cur_api[j] != '.')
&& (cur_api[j] >= '0')
&& (cur_api[j] <= '9')
&& (cur_api[j] != '.')
)
{ {
found_major = true; found_major = true;
if (major_str_pos < sizeof(major_str) - 1) if (major_str_pos < sizeof(major_str) - 1)
major_str[major_str_pos++] = cur_api[j]; major_str[major_str_pos++] = cur_api[j];
} }
else if ( else if (found_major && found_minor && cur_api[j] >= '0' && cur_api[j] <= '9')
found_major
&& found_minor
&& (cur_api[j] >= '0')
&& (cur_api[j] <= '9')
)
{ {
if (minor_str_pos < sizeof(minor_str) - 1) if (minor_str_pos < sizeof(minor_str) - 1)
minor_str[minor_str_pos++] = cur_api[j]; minor_str[minor_str_pos++] = cur_api[j];
@ -1451,13 +1429,10 @@ bool core_info_hw_api_supported(core_info_t *info)
|| (string_is_equal_noncase(api_str, "openglcompatibility")) || (string_is_equal_noncase(api_str, "openglcompatibility"))
) )
{ {
const char *sys_api_version_str = NULL;
/* system is running a core context while compat is requested */ /* system is running a core context while compat is requested */
if (sys_flags.flags & (1 << GFX_CTX_FLAGS_GL_CORE_CONTEXT)) if (sys_flags.flags & (1 << GFX_CTX_FLAGS_GL_CORE_CONTEXT))
return false; return false;
sys_api_version_str =
video_driver_get_gpu_api_version_string();
sscanf(sys_api_version_str, "%d.%d", sscanf(sys_api_version_str, "%d.%d",
&sys_api_version_major, &sys_api_version_minor); &sys_api_version_major, &sys_api_version_minor);
@ -1465,8 +1440,6 @@ bool core_info_hw_api_supported(core_info_t *info)
} }
else if (string_is_equal_noncase(api_str, "openglcore")) else if (string_is_equal_noncase(api_str, "openglcore"))
{ {
const char *sys_api_version_str =
video_driver_get_gpu_api_version_string();
sscanf(sys_api_version_str, "%d.%d", sscanf(sys_api_version_str, "%d.%d",
&sys_api_version_major, &sys_api_version_minor); &sys_api_version_major, &sys_api_version_minor);
@ -1476,8 +1449,6 @@ bool core_info_hw_api_supported(core_info_t *info)
case GFX_CTX_OPENGL_ES_API: case GFX_CTX_OPENGL_ES_API:
if (string_is_equal_noncase(api_str, "opengles")) if (string_is_equal_noncase(api_str, "opengles"))
{ {
const char *sys_api_version_str =
video_driver_get_gpu_api_version_string();
sscanf(sys_api_version_str, "OpenGL ES %d.%d", sscanf(sys_api_version_str, "OpenGL ES %d.%d",
&sys_api_version_major, &sys_api_version_minor); &sys_api_version_major, &sys_api_version_minor);
@ -1531,8 +1502,6 @@ bool core_info_hw_api_supported(core_info_t *info)
case GFX_CTX_VULKAN_API: case GFX_CTX_VULKAN_API:
if (string_is_equal_noncase(api_str, "vulkan")) if (string_is_equal_noncase(api_str, "vulkan"))
{ {
const char *sys_api_version_str =
video_driver_get_gpu_api_version_string();
sscanf(sys_api_version_str, "%d.%d", sscanf(sys_api_version_str, "%d.%d",
&sys_api_version_major, &sys_api_version_minor); &sys_api_version_major, &sys_api_version_minor);
@ -1542,8 +1511,6 @@ bool core_info_hw_api_supported(core_info_t *info)
case GFX_CTX_METAL_API: case GFX_CTX_METAL_API:
if (string_is_equal_noncase(api_str, "metal")) if (string_is_equal_noncase(api_str, "metal"))
{ {
const char *sys_api_version_str =
video_driver_get_gpu_api_version_string();
sscanf(sys_api_version_str, "%d.%d", sscanf(sys_api_version_str, "%d.%d",
&sys_api_version_major, &sys_api_version_minor); &sys_api_version_major, &sys_api_version_minor);