Henri Verbeet : wined3d: Use the bo bindings in wined3d_context_gl_copy_bo_address().

Alexandre Julliard julliard at winehq.org
Tue Apr 21 15:59:48 CDT 2020


Module: wine
Branch: master
Commit: 97272f58ce49d1158be14f70e116866e1dd5d68a
URL:    https://source.winehq.org/git/wine.git/?a=commit;h=97272f58ce49d1158be14f70e116866e1dd5d68a

Author: Henri Verbeet <hverbeet at codeweavers.com>
Date:   Tue Apr 21 22:55:11 2020 +0430

wined3d: Use the bo bindings in wined3d_context_gl_copy_bo_address().

Signed-off-by: Henri Verbeet <hverbeet at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 dlls/wined3d/adapter_gl.c      |  9 +--------
 dlls/wined3d/context_gl.c      | 19 +++++++++----------
 dlls/wined3d/view.c            |  3 +--
 dlls/wined3d/wined3d_private.h |  3 +--
 4 files changed, 12 insertions(+), 22 deletions(-)

diff --git a/dlls/wined3d/adapter_gl.c b/dlls/wined3d/adapter_gl.c
index 49b9c7bcd9..ec8a2cadd2 100644
--- a/dlls/wined3d/adapter_gl.c
+++ b/dlls/wined3d/adapter_gl.c
@@ -4654,14 +4654,7 @@ static void adapter_gl_copy_bo_address(struct wined3d_context *context,
         const struct wined3d_bo_address *dst, uint32_t dst_bind_flags,
         const struct wined3d_bo_address *src, uint32_t src_bind_flags, size_t size)
 {
-    struct wined3d_context_gl *context_gl;
-    GLenum dst_binding, src_binding;
-
-    context_gl = wined3d_context_gl(context);
-    dst_binding = wined3d_buffer_gl_binding_from_bind_flags(context_gl->gl_info, dst_bind_flags);
-    src_binding = wined3d_buffer_gl_binding_from_bind_flags(context_gl->gl_info, src_bind_flags);
-
-    wined3d_context_gl_copy_bo_address(context_gl, dst, dst_binding, src, src_binding, size);
+    wined3d_context_gl_copy_bo_address(wined3d_context_gl(context), dst, src, size);
 }
 
 static HRESULT adapter_gl_create_swapchain(struct wined3d_device *device, struct wined3d_swapchain_desc *desc,
diff --git a/dlls/wined3d/context_gl.c b/dlls/wined3d/context_gl.c
index f435c7e760..4e0af7474c 100644
--- a/dlls/wined3d/context_gl.c
+++ b/dlls/wined3d/context_gl.c
@@ -2581,8 +2581,7 @@ void wined3d_context_gl_unmap_bo_address(struct wined3d_context_gl *context_gl,
 }
 
 void wined3d_context_gl_copy_bo_address(struct wined3d_context_gl *context_gl,
-        const struct wined3d_bo_address *dst, GLenum dst_binding,
-        const struct wined3d_bo_address *src, GLenum src_binding, size_t size)
+        const struct wined3d_bo_address *dst, const struct wined3d_bo_address *src, size_t size)
 {
     const struct wined3d_gl_info *gl_info;
     struct wined3d_bo_gl *src_bo, *dst_bo;
@@ -2605,27 +2604,27 @@ void wined3d_context_gl_copy_bo_address(struct wined3d_context_gl *context_gl,
         }
         else
         {
-            src_ptr = wined3d_context_gl_map_bo_address(context_gl, src, size, src_binding, WINED3D_MAP_READ);
-            dst_ptr = wined3d_context_gl_map_bo_address(context_gl, dst, size, dst_binding, WINED3D_MAP_WRITE);
+            src_ptr = wined3d_context_gl_map_bo_address(context_gl, src, size, src_bo->binding, WINED3D_MAP_READ);
+            dst_ptr = wined3d_context_gl_map_bo_address(context_gl, dst, size, dst_bo->binding, WINED3D_MAP_WRITE);
 
             memcpy(dst_ptr, src_ptr, size);
 
             range.offset = 0;
             range.size = size;
-            wined3d_context_gl_unmap_bo_address(context_gl, dst, dst_binding, 1, &range);
-            wined3d_context_gl_unmap_bo_address(context_gl, src, src_binding, 0, NULL);
+            wined3d_context_gl_unmap_bo_address(context_gl, dst, dst_bo->binding, 1, &range);
+            wined3d_context_gl_unmap_bo_address(context_gl, src, src_bo->binding, 0, NULL);
         }
     }
     else if (!dst_bo && src_bo)
     {
-        wined3d_context_gl_bind_bo(context_gl, src_binding, src_bo->id);
-        GL_EXTCALL(glGetBufferSubData(src_binding, (GLintptr)src->addr, size, dst->addr));
+        wined3d_context_gl_bind_bo(context_gl, src_bo->binding, src_bo->id);
+        GL_EXTCALL(glGetBufferSubData(src_bo->binding, (GLintptr)src->addr, size, dst->addr));
         checkGLcall("buffer download");
     }
     else if (dst_bo && !src_bo)
     {
-        wined3d_context_gl_bind_bo(context_gl, dst_binding, dst_bo->id);
-        GL_EXTCALL(glBufferSubData(dst_binding, (GLintptr)dst->addr, size, src->addr));
+        wined3d_context_gl_bind_bo(context_gl, dst_bo->binding, dst_bo->id);
+        GL_EXTCALL(glBufferSubData(dst_bo->binding, (GLintptr)dst->addr, size, src->addr));
         checkGLcall("buffer upload");
     }
     else
diff --git a/dlls/wined3d/view.c b/dlls/wined3d/view.c
index e1dd4de8da..cb0f2e2e25 100644
--- a/dlls/wined3d/view.c
+++ b/dlls/wined3d/view.c
@@ -1073,8 +1073,7 @@ void wined3d_unordered_access_view_copy_counter(struct wined3d_unordered_access_
     src.buffer_object = (uintptr_t)&view_gl->counter_bo;
     src.addr = NULL;
 
-    wined3d_context_gl_copy_bo_address(context_gl, &dst, wined3d_buffer_gl(buffer)->bo.binding,
-            &src, GL_ATOMIC_COUNTER_BUFFER, sizeof(GLuint));
+    wined3d_context_gl_copy_bo_address(context_gl, &dst, &src, sizeof(GLuint));
 
     wined3d_buffer_invalidate_location(buffer, ~dst_location);
 }
diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
index e6cbfce17d..8698620968 100644
--- a/dlls/wined3d/wined3d_private.h
+++ b/dlls/wined3d/wined3d_private.h
@@ -2176,8 +2176,7 @@ void wined3d_context_gl_bind_texture(struct wined3d_context_gl *context_gl,
         GLenum target, GLuint name) DECLSPEC_HIDDEN;
 void wined3d_context_gl_check_fbo_status(const struct wined3d_context_gl *context_gl, GLenum target) DECLSPEC_HIDDEN;
 void wined3d_context_gl_copy_bo_address(struct wined3d_context_gl *context_gl,
-        const struct wined3d_bo_address *dst, GLenum dst_binding,
-        const struct wined3d_bo_address *src, GLenum src_binding, size_t size) DECLSPEC_HIDDEN;
+        const struct wined3d_bo_address *dst, const struct wined3d_bo_address *src, size_t size) DECLSPEC_HIDDEN;
 void wined3d_context_gl_destroy(struct wined3d_context_gl *context_gl) DECLSPEC_HIDDEN;
 void wined3d_context_gl_draw_shaded_quad(struct wined3d_context_gl *context_gl, struct wined3d_texture_gl *texture_gl,
         unsigned int sub_resource_idx, const RECT *src_rect, const RECT *dst_rect,




More information about the wine-cvs mailing list