mirror of
https://github.com/RPCS3/rpcs3.git
synced 2025-07-11 01:08:39 +12:00
gl: Disable shader interpreter if hardware does not support bindless textures
This commit is contained in:
parent
2587545eed
commit
99fc90648b
2 changed files with 34 additions and 12 deletions
|
@ -15,6 +15,7 @@ namespace gl
|
||||||
bool EXT_dsa_supported = false;
|
bool EXT_dsa_supported = false;
|
||||||
bool EXT_depth_bounds_test = false;
|
bool EXT_depth_bounds_test = false;
|
||||||
bool ARB_dsa_supported = false;
|
bool ARB_dsa_supported = false;
|
||||||
|
bool ARB_bindless_texture_supported = false;
|
||||||
bool ARB_buffer_storage_supported = false;
|
bool ARB_buffer_storage_supported = false;
|
||||||
bool ARB_texture_buffer_supported = false;
|
bool ARB_texture_buffer_supported = false;
|
||||||
bool ARB_shader_draw_parameters_supported = false;
|
bool ARB_shader_draw_parameters_supported = false;
|
||||||
|
@ -44,7 +45,7 @@ namespace gl
|
||||||
|
|
||||||
void initialize()
|
void initialize()
|
||||||
{
|
{
|
||||||
int find_count = 13;
|
int find_count = 14;
|
||||||
int ext_count = 0;
|
int ext_count = 0;
|
||||||
glGetIntegerv(GL_NUM_EXTENSIONS, &ext_count);
|
glGetIntegerv(GL_NUM_EXTENSIONS, &ext_count);
|
||||||
std::string vendor_string = reinterpret_cast<const char*>(glGetString(GL_VENDOR));
|
std::string vendor_string = reinterpret_cast<const char*>(glGetString(GL_VENDOR));
|
||||||
|
@ -78,6 +79,13 @@ namespace gl
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (check(ext_name, "GL_ARB_bindless_texture"))
|
||||||
|
{
|
||||||
|
ARB_bindless_texture_supported = true;
|
||||||
|
find_count--;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
if (check(ext_name, "GL_ARB_buffer_storage"))
|
if (check(ext_name, "GL_ARB_buffer_storage"))
|
||||||
{
|
{
|
||||||
ARB_buffer_storage_supported = true;
|
ARB_buffer_storage_supported = true;
|
||||||
|
|
|
@ -129,6 +129,20 @@ void GLGSRender::on_init_thread()
|
||||||
rsx_log.warning("Texture barriers are not supported by your GPU. Feedback loops will have undefined results.");
|
rsx_log.warning("Texture barriers are not supported by your GPU. Feedback loops will have undefined results.");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!gl_caps.ARB_bindless_texture_supported)
|
||||||
|
{
|
||||||
|
switch (shadermode)
|
||||||
|
{
|
||||||
|
case shader_mode::async_with_interpreter:
|
||||||
|
case shader_mode::interpreter_only:
|
||||||
|
rsx_log.error("Bindless texture extension required for shader interpreter is not supported on your GPU. Will use async recompiler as a fallback.");
|
||||||
|
g_cfg.video.shadermode.set(shader_mode::async_recompiler);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// Use industry standard resource alignment values as defaults
|
// Use industry standard resource alignment values as defaults
|
||||||
m_uniform_buffer_offset_align = 256;
|
m_uniform_buffer_offset_align = 256;
|
||||||
m_min_texbuffer_alignment = 256;
|
m_min_texbuffer_alignment = 256;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue