diff --git a/rpcs3/Emu/RSX/GL/GLHelpers.h b/rpcs3/Emu/RSX/GL/GLHelpers.h index 5bf8e00b6b..a62137aa0a 100644 --- a/rpcs3/Emu/RSX/GL/GLHelpers.h +++ b/rpcs3/Emu/RSX/GL/GLHelpers.h @@ -742,12 +742,16 @@ namespace gl { ensure(m_memory_type != memory_type::local); - target target_ = current_target(); - save_binding_state save(target_, *this); - glBufferData(static_cast(target_), size, data_, usage); + DSA_CALL2(NamedBufferData, m_id, size, data_, usage); m_size = size; } + void sub_data(GLsizeiptr offset, GLsizeiptr length, GLvoid* data) + { + ensure(m_memory_type != memory_type::local); + DSA_CALL2(NamedBufferSubData, m_id, offset, length, data); + } + GLubyte* map(GLsizeiptr offset, GLsizeiptr length, access access_) { ensure(m_memory_type == memory_type::host_visible); diff --git a/rpcs3/Emu/RSX/GL/GLProcTable.h b/rpcs3/Emu/RSX/GL/GLProcTable.h index abc56f4fd6..380f876290 100644 --- a/rpcs3/Emu/RSX/GL/GLProcTable.h +++ b/rpcs3/Emu/RSX/GL/GLProcTable.h @@ -198,6 +198,12 @@ OPENGL_PROC(PFNGLCLEARBUFFERFVPROC, ClearBufferfv); OPENGL_PROC(PFNGLCOPYNAMEDBUFFERSUBDATAPROC, CopyNamedBufferSubData); OPENGL_PROC(PFNGLNAMEDCOPYBUFFERSUBDATAEXTPROC, NamedCopyBufferSubDataEXT); +OPENGL_PROC(PFNGLNAMEDBUFFERDATAPROC, NamedBufferData); +OPENGL_PROC(PFNGLNAMEDBUFFERDATAEXTPROC, NamedBufferDataEXT); + +OPENGL_PROC(PFNGLNAMEDBUFFERSUBDATAPROC, NamedBufferSubData); +OPENGL_PROC(PFNGLNAMEDBUFFERSUBDATAEXTPROC, NamedBufferSubDataEXT); + // Sampler Objects OPENGL_PROC(PFNGLGENSAMPLERSPROC, GenSamplers); OPENGL_PROC(PFNGLDELETESAMPLERSPROC, DeleteSamplers);