Removed pre 4.3 ARB extensions
This commit is contained in:
parent
377c60645c
commit
0368260c99
|
@ -98,14 +98,9 @@ RasterizerOpenGL::RasterizerOpenGL(Core::Frontend::EmuWindow& window, ScreenInfo
|
||||||
has_ARB_direct_state_access = true;
|
has_ARB_direct_state_access = true;
|
||||||
} else if (extension == "GL_ARB_multi_bind") {
|
} else if (extension == "GL_ARB_multi_bind") {
|
||||||
has_ARB_multi_bind = true;
|
has_ARB_multi_bind = true;
|
||||||
} else if (extension == "GL_ARB_separate_shader_objects") {
|
|
||||||
has_ARB_separate_shader_objects = true;
|
|
||||||
} else if (extension == "GL_ARB_vertex_attrib_binding") {
|
|
||||||
has_ARB_vertex_attrib_binding = true;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
ASSERT_MSG(has_ARB_separate_shader_objects, "has_ARB_separate_shader_objects is unsupported");
|
|
||||||
OpenGLState::ApplyDefaultState();
|
OpenGLState::ApplyDefaultState();
|
||||||
|
|
||||||
// Create render framebuffer
|
// Create render framebuffer
|
||||||
|
|
|
@ -187,8 +187,6 @@ private:
|
||||||
|
|
||||||
bool has_ARB_direct_state_access = false;
|
bool has_ARB_direct_state_access = false;
|
||||||
bool has_ARB_multi_bind = false;
|
bool has_ARB_multi_bind = false;
|
||||||
bool has_ARB_separate_shader_objects = false;
|
|
||||||
bool has_ARB_vertex_attrib_binding = false;
|
|
||||||
|
|
||||||
OpenGLState state;
|
OpenGLState state;
|
||||||
|
|
||||||
|
|
|
@ -265,11 +265,11 @@ static constexpr std::array<FormatTuple, VideoCore::Surface::MaxPixelFormat> tex
|
||||||
{GL_COMPRESSED_RG_RGTC2, GL_RG, GL_UNSIGNED_INT_8_8_8_8, ComponentType::UNorm,
|
{GL_COMPRESSED_RG_RGTC2, GL_RG, GL_UNSIGNED_INT_8_8_8_8, ComponentType::UNorm,
|
||||||
true}, // DXN2UNORM
|
true}, // DXN2UNORM
|
||||||
{GL_COMPRESSED_SIGNED_RG_RGTC2, GL_RG, GL_INT, ComponentType::SNorm, true}, // DXN2SNORM
|
{GL_COMPRESSED_SIGNED_RG_RGTC2, GL_RG, GL_INT, ComponentType::SNorm, true}, // DXN2SNORM
|
||||||
{GL_COMPRESSED_RGBA_BPTC_UNORM_ARB, GL_RGBA, GL_UNSIGNED_INT_8_8_8_8, ComponentType::UNorm,
|
{GL_COMPRESSED_RGBA_BPTC_UNORM, GL_RGBA, GL_UNSIGNED_INT_8_8_8_8, ComponentType::UNorm,
|
||||||
true}, // BC7U
|
true}, // BC7U
|
||||||
{GL_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_ARB, GL_RGB, GL_UNSIGNED_INT_8_8_8_8,
|
{GL_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT, GL_RGB, GL_UNSIGNED_INT_8_8_8_8, ComponentType::Float,
|
||||||
ComponentType::Float, true}, // BC6H_UF16
|
true}, // BC6H_UF16
|
||||||
{GL_COMPRESSED_RGB_BPTC_SIGNED_FLOAT_ARB, GL_RGB, GL_UNSIGNED_INT_8_8_8_8, ComponentType::Float,
|
{GL_COMPRESSED_RGB_BPTC_SIGNED_FLOAT, GL_RGB, GL_UNSIGNED_INT_8_8_8_8, ComponentType::Float,
|
||||||
true}, // BC6H_SF16
|
true}, // BC6H_SF16
|
||||||
{GL_RGBA8, GL_RGBA, GL_UNSIGNED_BYTE, ComponentType::UNorm, false}, // ASTC_2D_4X4
|
{GL_RGBA8, GL_RGBA, GL_UNSIGNED_BYTE, ComponentType::UNorm, false}, // ASTC_2D_4X4
|
||||||
{GL_RG8, GL_RG, GL_UNSIGNED_BYTE, ComponentType::UNorm, false}, // G8R8U
|
{GL_RG8, GL_RG, GL_UNSIGNED_BYTE, ComponentType::UNorm, false}, // G8R8U
|
||||||
|
@ -306,8 +306,8 @@ static constexpr std::array<FormatTuple, VideoCore::Surface::MaxPixelFormat> tex
|
||||||
true}, // DXT23_SRGB
|
true}, // DXT23_SRGB
|
||||||
{GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT, GL_RGBA, GL_UNSIGNED_INT_8_8_8_8, ComponentType::UNorm,
|
{GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT, GL_RGBA, GL_UNSIGNED_INT_8_8_8_8, ComponentType::UNorm,
|
||||||
true}, // DXT45_SRGB
|
true}, // DXT45_SRGB
|
||||||
{GL_COMPRESSED_SRGB_ALPHA_BPTC_UNORM_ARB, GL_RGBA, GL_UNSIGNED_INT_8_8_8_8,
|
{GL_COMPRESSED_SRGB_ALPHA_BPTC_UNORM, GL_RGBA, GL_UNSIGNED_INT_8_8_8_8, ComponentType::UNorm,
|
||||||
ComponentType::UNorm, true}, // BC7U_SRGB
|
true}, // BC7U_SRGB
|
||||||
{GL_SRGB8_ALPHA8, GL_RGBA, GL_UNSIGNED_BYTE, ComponentType::UNorm, false}, // ASTC_2D_4X4_SRGB
|
{GL_SRGB8_ALPHA8, GL_RGBA, GL_UNSIGNED_BYTE, ComponentType::UNorm, false}, // ASTC_2D_4X4_SRGB
|
||||||
{GL_SRGB8_ALPHA8, GL_RGBA, GL_UNSIGNED_BYTE, ComponentType::UNorm, false}, // ASTC_2D_8X8_SRGB
|
{GL_SRGB8_ALPHA8, GL_RGBA, GL_UNSIGNED_BYTE, ComponentType::UNorm, false}, // ASTC_2D_8X8_SRGB
|
||||||
{GL_SRGB8_ALPHA8, GL_RGBA, GL_UNSIGNED_BYTE, ComponentType::UNorm, false}, // ASTC_2D_8X5_SRGB
|
{GL_SRGB8_ALPHA8, GL_RGBA, GL_UNSIGNED_BYTE, ComponentType::UNorm, false}, // ASTC_2D_8X5_SRGB
|
||||||
|
@ -346,7 +346,7 @@ static GLenum SurfaceTargetToGL(SurfaceTarget target) {
|
||||||
case SurfaceTarget::TextureCubemap:
|
case SurfaceTarget::TextureCubemap:
|
||||||
return GL_TEXTURE_CUBE_MAP;
|
return GL_TEXTURE_CUBE_MAP;
|
||||||
case SurfaceTarget::TextureCubeArray:
|
case SurfaceTarget::TextureCubeArray:
|
||||||
return GL_TEXTURE_CUBE_MAP_ARRAY_ARB;
|
return GL_TEXTURE_CUBE_MAP_ARRAY;
|
||||||
}
|
}
|
||||||
LOG_CRITICAL(Render_OpenGL, "Unimplemented texture target={}", static_cast<u32>(target));
|
LOG_CRITICAL(Render_OpenGL, "Unimplemented texture target={}", static_cast<u32>(target));
|
||||||
UNREACHABLE();
|
UNREACHABLE();
|
||||||
|
@ -726,7 +726,7 @@ static void CopySurface(const Surface& src_surface, const Surface& dst_surface,
|
||||||
const std::size_t buffer_size = std::max(src_params.size_in_bytes, dst_params.size_in_bytes);
|
const std::size_t buffer_size = std::max(src_params.size_in_bytes, dst_params.size_in_bytes);
|
||||||
|
|
||||||
glBindBuffer(GL_PIXEL_PACK_BUFFER, copy_pbo_handle);
|
glBindBuffer(GL_PIXEL_PACK_BUFFER, copy_pbo_handle);
|
||||||
glBufferData(GL_PIXEL_PACK_BUFFER, buffer_size, nullptr, GL_STREAM_DRAW_ARB);
|
glBufferData(GL_PIXEL_PACK_BUFFER, buffer_size, nullptr, GL_STREAM_DRAW);
|
||||||
if (source_format.compressed) {
|
if (source_format.compressed) {
|
||||||
glGetCompressedTextureImage(src_surface->Texture().handle, src_attachment,
|
glGetCompressedTextureImage(src_surface->Texture().handle, src_attachment,
|
||||||
static_cast<GLsizei>(src_params.size_in_bytes), nullptr);
|
static_cast<GLsizei>(src_params.size_in_bytes), nullptr);
|
||||||
|
|
|
@ -339,14 +339,14 @@ void OpenGLState::ApplyTargetBlending(std::size_t target, bool force) const {
|
||||||
if (blend_changed || updated.src_rgb_func != current.src_rgb_func ||
|
if (blend_changed || updated.src_rgb_func != current.src_rgb_func ||
|
||||||
updated.dst_rgb_func != current.dst_rgb_func || updated.src_a_func != current.src_a_func ||
|
updated.dst_rgb_func != current.dst_rgb_func || updated.src_a_func != current.src_a_func ||
|
||||||
updated.dst_a_func != current.dst_a_func) {
|
updated.dst_a_func != current.dst_a_func) {
|
||||||
glBlendFuncSeparateiARB(static_cast<GLuint>(target), updated.src_rgb_func,
|
glBlendFuncSeparatei(static_cast<GLuint>(target), updated.src_rgb_func,
|
||||||
updated.dst_rgb_func, updated.src_a_func, updated.dst_a_func);
|
updated.dst_rgb_func, updated.src_a_func, updated.dst_a_func);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (blend_changed || updated.rgb_equation != current.rgb_equation ||
|
if (blend_changed || updated.rgb_equation != current.rgb_equation ||
|
||||||
updated.a_equation != current.a_equation) {
|
updated.a_equation != current.a_equation) {
|
||||||
glBlendEquationSeparateiARB(static_cast<GLuint>(target), updated.rgb_equation,
|
glBlendEquationSeparatei(static_cast<GLuint>(target), updated.rgb_equation,
|
||||||
updated.a_equation);
|
updated.a_equation);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -484,7 +484,7 @@ bool RendererOpenGL::Init() {
|
||||||
Core::Telemetry().AddField(Telemetry::FieldType::UserSystem, "GPU_Model", gpu_model);
|
Core::Telemetry().AddField(Telemetry::FieldType::UserSystem, "GPU_Model", gpu_model);
|
||||||
Core::Telemetry().AddField(Telemetry::FieldType::UserSystem, "GPU_OpenGL_Version", gl_version);
|
Core::Telemetry().AddField(Telemetry::FieldType::UserSystem, "GPU_OpenGL_Version", gl_version);
|
||||||
|
|
||||||
if (!GLAD_GL_VERSION_3_3) {
|
if (!GLAD_GL_VERSION_4_3) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -518,32 +518,18 @@ void GMainWindow::OnDisplayTitleBars(bool show) {
|
||||||
QStringList GMainWindow::GetUnsupportedGLExtensions() {
|
QStringList GMainWindow::GetUnsupportedGLExtensions() {
|
||||||
QStringList unsupported_ext;
|
QStringList unsupported_ext;
|
||||||
|
|
||||||
if (!GLAD_GL_ARB_program_interface_query)
|
|
||||||
unsupported_ext.append("ARB_program_interface_query");
|
|
||||||
if (!GLAD_GL_ARB_separate_shader_objects)
|
|
||||||
unsupported_ext.append("ARB_separate_shader_objects");
|
|
||||||
if (!GLAD_GL_ARB_vertex_attrib_binding)
|
|
||||||
unsupported_ext.append("ARB_vertex_attrib_binding");
|
|
||||||
if (!GLAD_GL_ARB_vertex_type_10f_11f_11f_rev)
|
if (!GLAD_GL_ARB_vertex_type_10f_11f_11f_rev)
|
||||||
unsupported_ext.append("ARB_vertex_type_10f_11f_11f_rev");
|
unsupported_ext.append("ARB_vertex_type_10f_11f_11f_rev");
|
||||||
if (!GLAD_GL_ARB_texture_mirror_clamp_to_edge)
|
if (!GLAD_GL_ARB_texture_mirror_clamp_to_edge)
|
||||||
unsupported_ext.append("ARB_texture_mirror_clamp_to_edge");
|
unsupported_ext.append("ARB_texture_mirror_clamp_to_edge");
|
||||||
if (!GLAD_GL_ARB_base_instance)
|
|
||||||
unsupported_ext.append("ARB_base_instance");
|
|
||||||
if (!GLAD_GL_ARB_texture_storage)
|
|
||||||
unsupported_ext.append("ARB_texture_storage");
|
|
||||||
if (!GLAD_GL_ARB_multi_bind)
|
if (!GLAD_GL_ARB_multi_bind)
|
||||||
unsupported_ext.append("ARB_multi_bind");
|
unsupported_ext.append("ARB_multi_bind");
|
||||||
if (!GLAD_GL_ARB_copy_image)
|
|
||||||
unsupported_ext.append("ARB_copy_image");
|
|
||||||
|
|
||||||
// Extensions required to support some texture formats.
|
// Extensions required to support some texture formats.
|
||||||
if (!GLAD_GL_EXT_texture_compression_s3tc)
|
if (!GLAD_GL_EXT_texture_compression_s3tc)
|
||||||
unsupported_ext.append("EXT_texture_compression_s3tc");
|
unsupported_ext.append("EXT_texture_compression_s3tc");
|
||||||
if (!GLAD_GL_ARB_texture_compression_rgtc)
|
if (!GLAD_GL_ARB_texture_compression_rgtc)
|
||||||
unsupported_ext.append("ARB_texture_compression_rgtc");
|
unsupported_ext.append("ARB_texture_compression_rgtc");
|
||||||
if (!GLAD_GL_ARB_texture_compression_bptc)
|
|
||||||
unsupported_ext.append("ARB_texture_compression_bptc");
|
|
||||||
if (!GLAD_GL_ARB_depth_buffer_float)
|
if (!GLAD_GL_ARB_depth_buffer_float)
|
||||||
unsupported_ext.append("ARB_depth_buffer_float");
|
unsupported_ext.append("ARB_depth_buffer_float");
|
||||||
|
|
||||||
|
|
|
@ -111,32 +111,18 @@ void EmuWindow_SDL2::Fullscreen() {
|
||||||
bool EmuWindow_SDL2::SupportsRequiredGLExtensions() {
|
bool EmuWindow_SDL2::SupportsRequiredGLExtensions() {
|
||||||
std::vector<std::string> unsupported_ext;
|
std::vector<std::string> unsupported_ext;
|
||||||
|
|
||||||
if (!GLAD_GL_ARB_program_interface_query)
|
|
||||||
unsupported_ext.push_back("ARB_program_interface_query");
|
|
||||||
if (!GLAD_GL_ARB_separate_shader_objects)
|
|
||||||
unsupported_ext.push_back("ARB_separate_shader_objects");
|
|
||||||
if (!GLAD_GL_ARB_vertex_attrib_binding)
|
|
||||||
unsupported_ext.push_back("ARB_vertex_attrib_binding");
|
|
||||||
if (!GLAD_GL_ARB_vertex_type_10f_11f_11f_rev)
|
if (!GLAD_GL_ARB_vertex_type_10f_11f_11f_rev)
|
||||||
unsupported_ext.push_back("ARB_vertex_type_10f_11f_11f_rev");
|
unsupported_ext.push_back("ARB_vertex_type_10f_11f_11f_rev");
|
||||||
if (!GLAD_GL_ARB_texture_mirror_clamp_to_edge)
|
if (!GLAD_GL_ARB_texture_mirror_clamp_to_edge)
|
||||||
unsupported_ext.push_back("ARB_texture_mirror_clamp_to_edge");
|
unsupported_ext.push_back("ARB_texture_mirror_clamp_to_edge");
|
||||||
if (!GLAD_GL_ARB_base_instance)
|
|
||||||
unsupported_ext.push_back("ARB_base_instance");
|
|
||||||
if (!GLAD_GL_ARB_texture_storage)
|
|
||||||
unsupported_ext.push_back("ARB_texture_storage");
|
|
||||||
if (!GLAD_GL_ARB_multi_bind)
|
if (!GLAD_GL_ARB_multi_bind)
|
||||||
unsupported_ext.push_back("ARB_multi_bind");
|
unsupported_ext.push_back("ARB_multi_bind");
|
||||||
if (!GLAD_GL_ARB_copy_image)
|
|
||||||
unsupported_ext.push_back("ARB_copy_image");
|
|
||||||
|
|
||||||
// Extensions required to support some texture formats.
|
// Extensions required to support some texture formats.
|
||||||
if (!GLAD_GL_EXT_texture_compression_s3tc)
|
if (!GLAD_GL_EXT_texture_compression_s3tc)
|
||||||
unsupported_ext.push_back("EXT_texture_compression_s3tc");
|
unsupported_ext.push_back("EXT_texture_compression_s3tc");
|
||||||
if (!GLAD_GL_ARB_texture_compression_rgtc)
|
if (!GLAD_GL_ARB_texture_compression_rgtc)
|
||||||
unsupported_ext.push_back("ARB_texture_compression_rgtc");
|
unsupported_ext.push_back("ARB_texture_compression_rgtc");
|
||||||
if (!GLAD_GL_ARB_texture_compression_bptc)
|
|
||||||
unsupported_ext.push_back("ARB_texture_compression_bptc");
|
|
||||||
if (!GLAD_GL_ARB_depth_buffer_float)
|
if (!GLAD_GL_ARB_depth_buffer_float)
|
||||||
unsupported_ext.push_back("ARB_depth_buffer_float");
|
unsupported_ext.push_back("ARB_depth_buffer_float");
|
||||||
|
|
||||||
|
|
Reference in New Issue