Browse Source
Merge pull request #3213 from ReinUsesLisp/intel-mesa
gl_device: Enable compute shaders for Intel Mesa drivers
pull/15/merge
bunnei
6 years ago
committed by
GitHub
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with
4 additions and
1 deletions
-
src/video_core/renderer_opengl/gl_device.cpp
|
|
|
@ -5,6 +5,7 @@ |
|
|
|
#include <algorithm>
|
|
|
|
#include <array>
|
|
|
|
#include <cstddef>
|
|
|
|
#include <cstring>
|
|
|
|
#include <optional>
|
|
|
|
#include <vector>
|
|
|
|
|
|
|
|
@ -134,11 +135,13 @@ std::array<Device::BaseBindings, Tegra::Engines::MaxShaderTypes> BuildBaseBindin |
|
|
|
|
|
|
|
Device::Device() : base_bindings{BuildBaseBindings()} { |
|
|
|
const std::string_view vendor = reinterpret_cast<const char*>(glGetString(GL_VENDOR)); |
|
|
|
const auto renderer = reinterpret_cast<const char*>(glGetString(GL_RENDERER)); |
|
|
|
const std::vector extensions = GetExtensions(); |
|
|
|
|
|
|
|
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); |
|
|
|
@ -152,7 +155,7 @@ Device::Device() : base_bindings{BuildBaseBindings()} { |
|
|
|
has_variable_aoffi = TestVariableAoffi(); |
|
|
|
has_component_indexing_bug = is_amd; |
|
|
|
has_precise_bug = TestPreciseBug(); |
|
|
|
has_broken_compute = is_intel; |
|
|
|
has_broken_compute = is_intel_proprietary; |
|
|
|
has_fast_buffer_sub_data = is_nvidia; |
|
|
|
|
|
|
|
LOG_INFO(Render_OpenGL, "Renderer_VariableAOFFI: {}", has_variable_aoffi); |
|
|
|
|