Browse Source

OpenGL: Guarantee writes to Buffers.

pull/15/merge
Fernando Sahmkow 6 years ago
parent
commit
131b342130
  1. 3
      src/video_core/renderer_opengl/gl_buffer_cache.cpp
  2. 1
      src/video_core/renderer_opengl/gl_rasterizer.cpp
  3. 2
      src/video_core/renderer_vulkan/vk_rasterizer.cpp

3
src/video_core/renderer_opengl/gl_buffer_cache.cpp

@ -52,7 +52,7 @@ Buffer OGLBufferCache::CreateBlock(VAddr cpu_addr, std::size_t size) {
}
void OGLBufferCache::WriteBarrier() {
glMemoryBarrier(GL_ALL_BARRIER_BITS);
glMemoryBarrier(GL_SHADER_STORAGE_BARRIER_BIT);
}
GLuint OGLBufferCache::ToHandle(const Buffer& buffer) {
@ -72,6 +72,7 @@ void OGLBufferCache::UploadBlockData(const Buffer& buffer, std::size_t offset, s
void OGLBufferCache::DownloadBlockData(const Buffer& buffer, std::size_t offset, std::size_t size,
u8* data) {
MICROPROFILE_SCOPE(OpenGL_Buffer_Download);
glMemoryBarrier(GL_BUFFER_UPDATE_BARRIER_BIT);
glGetNamedBufferSubData(buffer->GetHandle(), static_cast<GLintptr>(offset),
static_cast<GLsizeiptr>(size), data);
}

1
src/video_core/renderer_opengl/gl_rasterizer.cpp

@ -630,7 +630,6 @@ void RasterizerOpenGL::DispatchCompute(GPUVAddr code_addr) {
const auto& launch_desc = system.GPU().KeplerCompute().launch_description;
glDispatchCompute(launch_desc.grid_dim_x, launch_desc.grid_dim_y, launch_desc.grid_dim_z);
++num_queued_commands;
system.GPU().TickWork();
}
void RasterizerOpenGL::ResetCounter(VideoCore::QueryType type) {

2
src/video_core/renderer_vulkan/vk_rasterizer.cpp

@ -494,8 +494,6 @@ void RasterizerVulkan::DispatchCompute(GPUVAddr code_addr) {
descriptor_set, {});
cmdbuf.Dispatch(grid_x, grid_y, grid_z);
});
system.GPU().TickWork();
}
void RasterizerVulkan::ResetCounter(VideoCore::QueryType type) {

Loading…
Cancel
Save