yuzu-emu
/
yuzu
Archived
1
0
Fork 0

gl_device: Enable compute shaders for Intel proprietary drivers

Previously we were disabling compute shaders on Intel's proprietary driver due to broken compute. This has been fixed in the latest Intel drivers. Re-enable compute for Intel proprietary drivers and remove the check for broken compute.
This commit is contained in:
Morph 2020-05-31 03:12:21 -04:00
parent 058ec22787
commit bb8ef38152
3 changed files with 0 additions and 13 deletions

View File

@ -166,8 +166,6 @@ Device::Device() : base_bindings{BuildBaseBindings()} {
const bool is_nvidia = vendor == "NVIDIA Corporation"; const bool is_nvidia = vendor == "NVIDIA Corporation";
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_proprietary = is_intel && std::strstr(renderer, "Mesa") == nullptr;
uniform_buffer_alignment = GetInteger<std::size_t>(GL_UNIFORM_BUFFER_OFFSET_ALIGNMENT); uniform_buffer_alignment = GetInteger<std::size_t>(GL_UNIFORM_BUFFER_OFFSET_ALIGNMENT);
shader_storage_alignment = GetInteger<std::size_t>(GL_SHADER_STORAGE_BUFFER_OFFSET_ALIGNMENT); shader_storage_alignment = GetInteger<std::size_t>(GL_SHADER_STORAGE_BUFFER_OFFSET_ALIGNMENT);
@ -182,7 +180,6 @@ Device::Device() : base_bindings{BuildBaseBindings()} {
has_variable_aoffi = TestVariableAoffi(); has_variable_aoffi = TestVariableAoffi();
has_component_indexing_bug = is_amd; has_component_indexing_bug = is_amd;
has_precise_bug = TestPreciseBug(); has_precise_bug = TestPreciseBug();
has_broken_compute = is_intel_proprietary;
has_fast_buffer_sub_data = is_nvidia; has_fast_buffer_sub_data = is_nvidia;
use_assembly_shaders = Settings::values.use_assembly_shaders && GLAD_GL_NV_gpu_program5 && use_assembly_shaders = Settings::values.use_assembly_shaders && GLAD_GL_NV_gpu_program5 &&
GLAD_GL_NV_compute_program5; GLAD_GL_NV_compute_program5;
@ -206,7 +203,6 @@ Device::Device(std::nullptr_t) {
has_image_load_formatted = true; has_image_load_formatted = true;
has_variable_aoffi = true; has_variable_aoffi = true;
has_component_indexing_bug = false; has_component_indexing_bug = false;
has_broken_compute = false;
has_precise_bug = false; has_precise_bug = false;
} }

View File

@ -80,10 +80,6 @@ public:
return has_precise_bug; return has_precise_bug;
} }
bool HasBrokenCompute() const {
return has_broken_compute;
}
bool HasFastBufferSubData() const { bool HasFastBufferSubData() const {
return has_fast_buffer_sub_data; return has_fast_buffer_sub_data;
} }
@ -109,7 +105,6 @@ private:
bool has_variable_aoffi{}; bool has_variable_aoffi{};
bool has_component_indexing_bug{}; bool has_component_indexing_bug{};
bool has_precise_bug{}; bool has_precise_bug{};
bool has_broken_compute{};
bool has_fast_buffer_sub_data{}; bool has_fast_buffer_sub_data{};
bool use_assembly_shaders{}; bool use_assembly_shaders{};
}; };

View File

@ -655,10 +655,6 @@ void RasterizerOpenGL::Draw(bool is_indexed, bool is_instanced) {
} }
void RasterizerOpenGL::DispatchCompute(GPUVAddr code_addr) { void RasterizerOpenGL::DispatchCompute(GPUVAddr code_addr) {
if (device.HasBrokenCompute()) {
return;
}
buffer_cache.Acquire(); buffer_cache.Acquire();
current_cbuf = 0; current_cbuf = 0;