Adding --vendor_gl_extensions flag to disable NV stuff.
This commit is contained in:
parent
76c41edfd6
commit
70c0c0fea1
|
@ -11,6 +11,7 @@
|
||||||
|
|
||||||
#include <poly/assert.h>
|
#include <poly/assert.h>
|
||||||
#include <poly/math.h>
|
#include <poly/math.h>
|
||||||
|
#include <xenia/gpu/gl4/gl4_gpu-private.h>
|
||||||
#include <xenia/gpu/gpu-private.h>
|
#include <xenia/gpu/gpu-private.h>
|
||||||
|
|
||||||
namespace xe {
|
namespace xe {
|
||||||
|
@ -44,7 +45,7 @@ bool CircularBuffer::Initialize() {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (GLEW_NV_shader_buffer_load) {
|
if (FLAGS_vendor_gl_extensions && GLEW_NV_shader_buffer_load) {
|
||||||
// To use this bindlessly we must make it resident.
|
// To use this bindlessly we must make it resident.
|
||||||
glMakeNamedBufferResidentNV(buffer_, GL_WRITE_ONLY);
|
glMakeNamedBufferResidentNV(buffer_, GL_WRITE_ONLY);
|
||||||
glGetNamedBufferParameterui64vNV(buffer_, GL_BUFFER_GPU_ADDRESS_NV,
|
glGetNamedBufferParameterui64vNV(buffer_, GL_BUFFER_GPU_ADDRESS_NV,
|
||||||
|
@ -58,7 +59,7 @@ void CircularBuffer::Shutdown() {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
glUnmapNamedBuffer(buffer_);
|
glUnmapNamedBuffer(buffer_);
|
||||||
if (GLEW_NV_shader_buffer_load) {
|
if (FLAGS_vendor_gl_extensions && GLEW_NV_shader_buffer_load) {
|
||||||
glMakeNamedBufferNonResidentNV(buffer_);
|
glMakeNamedBufferNonResidentNV(buffer_);
|
||||||
}
|
}
|
||||||
glDeleteBuffers(1, &buffer_);
|
glDeleteBuffers(1, &buffer_);
|
||||||
|
|
|
@ -181,11 +181,16 @@ bool CommandProcessor::SetupGL() {
|
||||||
glGenVertexArrays(1, &vertex_array_);
|
glGenVertexArrays(1, &vertex_array_);
|
||||||
glBindVertexArray(vertex_array_);
|
glBindVertexArray(vertex_array_);
|
||||||
|
|
||||||
if (GLEW_NV_vertex_buffer_unified_memory) {
|
if (FLAGS_vendor_gl_extensions && GLEW_NV_vertex_buffer_unified_memory) {
|
||||||
has_bindless_vbos_ = true;
|
has_bindless_vbos_ = true;
|
||||||
glEnableClientState(GL_VERTEX_ATTRIB_ARRAY_UNIFIED_NV);
|
glEnableClientState(GL_VERTEX_ATTRIB_ARRAY_UNIFIED_NV);
|
||||||
glEnableClientState(GL_ELEMENT_ARRAY_UNIFIED_NV);
|
glEnableClientState(GL_ELEMENT_ARRAY_UNIFIED_NV);
|
||||||
}
|
}
|
||||||
|
GLint max_vertex_attribs = 0;
|
||||||
|
glGetIntegerv(GL_MAX_VERTEX_ATTRIBS, &max_vertex_attribs);
|
||||||
|
for (GLint i = 0; i < max_vertex_attribs; ++i) {
|
||||||
|
glEnableVertexAttribArray(i);
|
||||||
|
}
|
||||||
|
|
||||||
const std::string geometry_header =
|
const std::string geometry_header =
|
||||||
"#version 450\n"
|
"#version 450\n"
|
||||||
|
@ -2242,7 +2247,6 @@ CommandProcessor::UpdateStatus CommandProcessor::PopulateVertexBuffers(
|
||||||
assert_unhandled_case(el.format);
|
assert_unhandled_case(el.format);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
glEnableVertexAttribArray(el_index);
|
|
||||||
if (has_bindless_vbos_) {
|
if (has_bindless_vbos_) {
|
||||||
glVertexAttribFormatNV(el_index, comp_count, comp_type,
|
glVertexAttribFormatNV(el_index, comp_count, comp_type,
|
||||||
el.is_normalized,
|
el.is_normalized,
|
||||||
|
|
|
@ -20,6 +20,8 @@ DECLARE_bool(thread_safe_gl);
|
||||||
DECLARE_bool(gl_debug_output);
|
DECLARE_bool(gl_debug_output);
|
||||||
DECLARE_bool(gl_debug_output_synchronous);
|
DECLARE_bool(gl_debug_output_synchronous);
|
||||||
|
|
||||||
|
DECLARE_bool(vendor_gl_extensions);
|
||||||
|
|
||||||
DECLARE_bool(disable_textures);
|
DECLARE_bool(disable_textures);
|
||||||
|
|
||||||
namespace xe {
|
namespace xe {
|
||||||
|
|
|
@ -19,6 +19,9 @@ DEFINE_bool(gl_debug_output, false, "Dump ARB_debug_output to stderr.");
|
||||||
DEFINE_bool(gl_debug_output_synchronous, true,
|
DEFINE_bool(gl_debug_output_synchronous, true,
|
||||||
"ARB_debug_output will synchronize to be thread safe.");
|
"ARB_debug_output will synchronize to be thread safe.");
|
||||||
|
|
||||||
|
DEFINE_bool(vendor_gl_extensions, true,
|
||||||
|
"Enable vendor-specific (NV, AMD, etc) GL extensions.");
|
||||||
|
|
||||||
DEFINE_bool(disable_textures, false, "Disable textures and use colors only.");
|
DEFINE_bool(disable_textures, false, "Disable textures and use colors only.");
|
||||||
|
|
||||||
namespace xe {
|
namespace xe {
|
||||||
|
|
Loading…
Reference in New Issue