forked from ShuriZma/suyu
Merge pull request #809 from lioncash/rasterizer
gl_rasterizer: Minor cleanup
This commit is contained in:
commit
a6ea6febc9
|
@ -5,6 +5,7 @@
|
||||||
#include <algorithm>
|
#include <algorithm>
|
||||||
#include <memory>
|
#include <memory>
|
||||||
#include <string>
|
#include <string>
|
||||||
|
#include <string_view>
|
||||||
#include <tuple>
|
#include <tuple>
|
||||||
#include <utility>
|
#include <utility>
|
||||||
#include <glad/glad.h>
|
#include <glad/glad.h>
|
||||||
|
@ -37,11 +38,6 @@ MICROPROFILE_DEFINE(OpenGL_Blits, "OpenGL", "Blits", MP_RGB(100, 100, 255));
|
||||||
MICROPROFILE_DEFINE(OpenGL_CacheManagement, "OpenGL", "Cache Mgmt", MP_RGB(100, 255, 100));
|
MICROPROFILE_DEFINE(OpenGL_CacheManagement, "OpenGL", "Cache Mgmt", MP_RGB(100, 255, 100));
|
||||||
|
|
||||||
RasterizerOpenGL::RasterizerOpenGL() {
|
RasterizerOpenGL::RasterizerOpenGL() {
|
||||||
has_ARB_buffer_storage = false;
|
|
||||||
has_ARB_direct_state_access = false;
|
|
||||||
has_ARB_separate_shader_objects = false;
|
|
||||||
has_ARB_vertex_attrib_binding = false;
|
|
||||||
|
|
||||||
// Create sampler objects
|
// Create sampler objects
|
||||||
for (size_t i = 0; i < texture_samplers.size(); ++i) {
|
for (size_t i = 0; i < texture_samplers.size(); ++i) {
|
||||||
texture_samplers[i].Create();
|
texture_samplers[i].Create();
|
||||||
|
@ -59,7 +55,8 @@ RasterizerOpenGL::RasterizerOpenGL() {
|
||||||
GLint ext_num;
|
GLint ext_num;
|
||||||
glGetIntegerv(GL_NUM_EXTENSIONS, &ext_num);
|
glGetIntegerv(GL_NUM_EXTENSIONS, &ext_num);
|
||||||
for (GLint i = 0; i < ext_num; i++) {
|
for (GLint i = 0; i < ext_num; i++) {
|
||||||
std::string extension{reinterpret_cast<const char*>(glGetStringi(GL_EXTENSIONS, i))};
|
const std::string_view extension{
|
||||||
|
reinterpret_cast<const char*>(glGetStringi(GL_EXTENSIONS, i))};
|
||||||
|
|
||||||
if (extension == "GL_ARB_buffer_storage") {
|
if (extension == "GL_ARB_buffer_storage") {
|
||||||
has_ARB_buffer_storage = true;
|
has_ARB_buffer_storage = true;
|
||||||
|
@ -110,8 +107,6 @@ RasterizerOpenGL::RasterizerOpenGL() {
|
||||||
glBindBufferBase(GL_UNIFORM_BUFFER, index, buffer.handle);
|
glBindBufferBase(GL_UNIFORM_BUFFER, index, buffer.handle);
|
||||||
}
|
}
|
||||||
|
|
||||||
accelerate_draw = AccelDraw::Disabled;
|
|
||||||
|
|
||||||
glEnable(GL_BLEND);
|
glEnable(GL_BLEND);
|
||||||
|
|
||||||
LOG_CRITICAL(Render_OpenGL, "Sync fixed function OpenGL state here!");
|
LOG_CRITICAL(Render_OpenGL, "Sync fixed function OpenGL state here!");
|
||||||
|
@ -694,11 +689,13 @@ u32 RasterizerOpenGL::SetupConstBuffers(Maxwell::ShaderStage stage, GLuint progr
|
||||||
glBindBuffer(GL_UNIFORM_BUFFER, 0);
|
glBindBuffer(GL_UNIFORM_BUFFER, 0);
|
||||||
|
|
||||||
// Now configure the bindpoint of the buffer inside the shader
|
// Now configure the bindpoint of the buffer inside the shader
|
||||||
std::string buffer_name = used_buffer.GetName();
|
const std::string buffer_name = used_buffer.GetName();
|
||||||
GLuint index = glGetProgramResourceIndex(program, GL_UNIFORM_BLOCK, buffer_name.c_str());
|
const GLuint index =
|
||||||
if (index != -1)
|
glGetProgramResourceIndex(program, GL_UNIFORM_BLOCK, buffer_name.c_str());
|
||||||
|
if (index != GL_INVALID_INDEX) {
|
||||||
glUniformBlockBinding(program, index, buffer_draw_state.bindpoint);
|
glUniformBlockBinding(program, index, buffer_draw_state.bindpoint);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
state.Apply();
|
state.Apply();
|
||||||
|
|
||||||
|
|
|
@ -135,10 +135,10 @@ private:
|
||||||
/// Syncs the blend state to match the guest state
|
/// Syncs the blend state to match the guest state
|
||||||
void SyncBlendState();
|
void SyncBlendState();
|
||||||
|
|
||||||
bool has_ARB_buffer_storage;
|
bool has_ARB_buffer_storage = false;
|
||||||
bool has_ARB_direct_state_access;
|
bool has_ARB_direct_state_access = false;
|
||||||
bool has_ARB_separate_shader_objects;
|
bool has_ARB_separate_shader_objects = false;
|
||||||
bool has_ARB_vertex_attrib_binding;
|
bool has_ARB_vertex_attrib_binding = false;
|
||||||
|
|
||||||
OpenGLState state;
|
OpenGLState state;
|
||||||
|
|
||||||
|
@ -167,5 +167,5 @@ private:
|
||||||
void SetupShaders(u8* buffer_ptr, GLintptr buffer_offset);
|
void SetupShaders(u8* buffer_ptr, GLintptr buffer_offset);
|
||||||
|
|
||||||
enum class AccelDraw { Disabled, Arrays, Indexed };
|
enum class AccelDraw { Disabled, Arrays, Indexed };
|
||||||
AccelDraw accelerate_draw;
|
AccelDraw accelerate_draw = AccelDraw::Disabled;
|
||||||
};
|
};
|
||||||
|
|
Loading…
Reference in New Issue