|
|
@ -210,6 +210,12 @@ Device::Device() { |
|
|
const bool is_amd = vendor == "ATI Technologies Inc."; |
|
|
const bool is_amd = vendor == "ATI Technologies Inc."; |
|
|
const bool is_intel = vendor == "Intel"; |
|
|
const bool is_intel = vendor == "Intel"; |
|
|
|
|
|
|
|
|
|
|
|
#ifdef __linux__
|
|
|
|
|
|
const bool is_linux = true; |
|
|
|
|
|
#else
|
|
|
|
|
|
const bool is_linux = false; |
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
bool disable_fast_buffer_sub_data = false; |
|
|
bool disable_fast_buffer_sub_data = false; |
|
|
if (is_nvidia && version == "4.6.0 NVIDIA 443.24") { |
|
|
if (is_nvidia && version == "4.6.0 NVIDIA 443.24") { |
|
|
LOG_WARNING( |
|
|
LOG_WARNING( |
|
|
@ -249,7 +255,9 @@ Device::Device() { |
|
|
GLAD_GL_NV_gpu_program5 && GLAD_GL_NV_compute_program5 && |
|
|
GLAD_GL_NV_gpu_program5 && GLAD_GL_NV_compute_program5 && |
|
|
GLAD_GL_NV_transform_feedback && GLAD_GL_NV_transform_feedback2; |
|
|
GLAD_GL_NV_transform_feedback && GLAD_GL_NV_transform_feedback2; |
|
|
|
|
|
|
|
|
use_asynchronous_shaders = Settings::values.use_asynchronous_shaders.GetValue(); |
|
|
|
|
|
|
|
|
// Blocks AMD and Intel OpenGL drivers on Windows from using asynchronous shader compilation.
|
|
|
|
|
|
use_asynchronous_shaders = Settings::values.use_asynchronous_shaders.GetValue() && |
|
|
|
|
|
!(is_amd || (is_intel && !is_linux)); |
|
|
use_driver_cache = is_nvidia; |
|
|
use_driver_cache = is_nvidia; |
|
|
|
|
|
|
|
|
LOG_INFO(Render_OpenGL, "Renderer_VariableAOFFI: {}", has_variable_aoffi); |
|
|
LOG_INFO(Render_OpenGL, "Renderer_VariableAOFFI: {}", has_variable_aoffi); |
|
|
@ -261,6 +269,10 @@ Device::Device() { |
|
|
if (Settings::values.use_assembly_shaders.GetValue() && !use_assembly_shaders) { |
|
|
if (Settings::values.use_assembly_shaders.GetValue() && !use_assembly_shaders) { |
|
|
LOG_ERROR(Render_OpenGL, "Assembly shaders enabled but not supported"); |
|
|
LOG_ERROR(Render_OpenGL, "Assembly shaders enabled but not supported"); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
if (Settings::values.use_asynchronous_shaders.GetValue() && !use_asynchronous_shaders) { |
|
|
|
|
|
LOG_WARNING(Render_OpenGL, "Asynchronous shader compilation enabled but not supported"); |
|
|
|
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
Device::Device(std::nullptr_t) { |
|
|
Device::Device(std::nullptr_t) { |
|
|
|