mirror of
https://github.com/RPCS3/rpcs3.git
synced 2025-07-10 17:01:24 +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_depth_bounds_test = false;
|
||||
bool ARB_dsa_supported = false;
|
||||
bool ARB_bindless_texture_supported = false;
|
||||
bool ARB_buffer_storage_supported = false;
|
||||
bool ARB_texture_buffer_supported = false;
|
||||
bool ARB_shader_draw_parameters_supported = false;
|
||||
|
@ -44,7 +45,7 @@ namespace gl
|
|||
|
||||
void initialize()
|
||||
{
|
||||
int find_count = 13;
|
||||
int find_count = 14;
|
||||
int ext_count = 0;
|
||||
glGetIntegerv(GL_NUM_EXTENSIONS, &ext_count);
|
||||
std::string vendor_string = reinterpret_cast<const char*>(glGetString(GL_VENDOR));
|
||||
|
@ -78,6 +79,13 @@ namespace gl
|
|||
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"))
|
||||
{
|
||||
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.");
|
||||
}
|
||||
|
||||
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
|
||||
m_uniform_buffer_offset_align = 256;
|
||||
m_min_texbuffer_alignment = 256;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue