Browse Source
Merge pull request #4025 from Morph1984/intel-proprietary-compute
gl_device: Enable compute shaders for Intel proprietary drivers
pull/15/merge
Rodrigo Locatti
6 years ago
committed by
GitHub
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with
0 additions and
13 deletions
-
src/video_core/renderer_opengl/gl_device.cpp
-
src/video_core/renderer_opengl/gl_device.h
-
src/video_core/renderer_opengl/gl_rasterizer.cpp
|
|
|
@ -166,8 +166,6 @@ Device::Device() : base_bindings{BuildBaseBindings()} { |
|
|
|
|
|
|
|
const bool is_nvidia = vendor == "NVIDIA Corporation"; |
|
|
|
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); |
|
|
|
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_component_indexing_bug = is_amd; |
|
|
|
has_precise_bug = TestPreciseBug(); |
|
|
|
has_broken_compute = is_intel_proprietary; |
|
|
|
has_fast_buffer_sub_data = is_nvidia; |
|
|
|
use_assembly_shaders = Settings::values.use_assembly_shaders && GLAD_GL_NV_gpu_program5 && |
|
|
|
GLAD_GL_NV_compute_program5; |
|
|
|
@ -206,7 +203,6 @@ Device::Device(std::nullptr_t) { |
|
|
|
has_image_load_formatted = true; |
|
|
|
has_variable_aoffi = true; |
|
|
|
has_component_indexing_bug = false; |
|
|
|
has_broken_compute = false; |
|
|
|
has_precise_bug = false; |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
@ -80,10 +80,6 @@ public: |
|
|
|
return has_precise_bug; |
|
|
|
} |
|
|
|
|
|
|
|
bool HasBrokenCompute() const { |
|
|
|
return has_broken_compute; |
|
|
|
} |
|
|
|
|
|
|
|
bool HasFastBufferSubData() const { |
|
|
|
return has_fast_buffer_sub_data; |
|
|
|
} |
|
|
|
@ -109,7 +105,6 @@ private: |
|
|
|
bool has_variable_aoffi{}; |
|
|
|
bool has_component_indexing_bug{}; |
|
|
|
bool has_precise_bug{}; |
|
|
|
bool has_broken_compute{}; |
|
|
|
bool has_fast_buffer_sub_data{}; |
|
|
|
bool use_assembly_shaders{}; |
|
|
|
}; |
|
|
|
|
|
|
|
@ -655,10 +655,6 @@ void RasterizerOpenGL::Draw(bool is_indexed, bool is_instanced) { |
|
|
|
} |
|
|
|
|
|
|
|
void RasterizerOpenGL::DispatchCompute(GPUVAddr code_addr) { |
|
|
|
if (device.HasBrokenCompute()) { |
|
|
|
return; |
|
|
|
} |
|
|
|
|
|
|
|
buffer_cache.Acquire(); |
|
|
|
current_cbuf = 0; |
|
|
|
|
|
|
|
|