Merge pull request #3213 from ReinUsesLisp/intel-mesa
gl_device: Enable compute shaders for Intel Mesa drivers
This commit is contained in:
		
						commit
						035ec7d9de
					
				@ -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);
 | 
			
		||||
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user