1
0
Fork 0
forked from suyu/suyu

Merge pull request #4025 from Morph1984/intel-proprietary-compute

gl_device: Enable compute shaders for Intel proprietary drivers
This commit is contained in:
Rodrigo Locatti 2020-05-31 16:45:21 -03:00 committed by GitHub
commit a280822c82
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
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;