From 878cf8cae959c14027304e7e5c4598e0fbacb1c7 Mon Sep 17 00:00:00 2001 From: Dave Airlie Date: Tue, 7 Dec 2021 11:52:47 +1000 Subject: [PATCH] mesa/st: move copy image sub data to direct call MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Acked-by: Marek Olšák Part-of: --- src/mesa/main/copyimage.c | 14 ++++++++------ src/mesa/main/dd.h | 25 ------------------------- src/mesa/state_tracker/st_cb_copyimage.c | 8 +------- src/mesa/state_tracker/st_cb_copyimage.h | 13 +++++++++---- src/mesa/state_tracker/st_context.c | 2 -- 5 files changed, 18 insertions(+), 44 deletions(-) diff --git a/src/mesa/main/copyimage.c b/src/mesa/main/copyimage.c index 3373c6e..1e30a84 100644 --- a/src/mesa/main/copyimage.c +++ b/src/mesa/main/copyimage.c @@ -36,6 +36,8 @@ #include "textureview.h" #include "glformats.h" +#include "state_tracker/st_cb_copyimage.h" + enum mesa_block_class { BLOCK_CLASS_128_BITS, BLOCK_CLASS_64_BITS @@ -567,12 +569,12 @@ copy_image_subdata(struct gl_context *ctx, newDstZ = 0; } - ctx->Driver.CopyImageSubData(ctx, - srcTexImage, srcRenderbuffer, - srcX, srcY, newSrcZ, - dstTexImage, dstRenderbuffer, - dstX, dstY, newDstZ, - srcWidth, srcHeight); + st_CopyImageSubData(ctx, + srcTexImage, srcRenderbuffer, + srcX, srcY, newSrcZ, + dstTexImage, dstRenderbuffer, + dstX, dstY, newDstZ, + srcWidth, srcHeight); } } diff --git a/src/mesa/main/dd.h b/src/mesa/main/dd.h index b7fcf32..46f97a4 100644 --- a/src/mesa/main/dd.h +++ b/src/mesa/main/dd.h @@ -117,31 +117,6 @@ struct pipe_vertex_element; */ struct dd_function_table { /** - * Called by glCopyImageSubData(). - * - * This function should copy one 2-D slice from src_teximage or - * src_renderbuffer to dst_teximage or dst_renderbuffer. Either the - * teximage or renderbuffer pointer will be non-null to indicate which - * is the real src/dst. - * - * If one of the textures is 3-D or is a 1-D or 2-D array - * texture, this function will be called multiple times: once for each - * slice. If one of the textures is a cube map, this function will be - * called once for each face to be copied. - */ - void (*CopyImageSubData)(struct gl_context *ctx, - struct gl_texture_image *src_teximage, - struct gl_renderbuffer *src_renderbuffer, - int src_x, int src_y, int src_z, - struct gl_texture_image *dst_teximage, - struct gl_renderbuffer *dst_renderbuffer, - int dst_x, int dst_y, int dst_z, - int src_width, int src_height); - - /*@}*/ - - - /** * \name Vertex/fragment program functions */ /*@{*/ diff --git a/src/mesa/state_tracker/st_cb_copyimage.c b/src/mesa/state_tracker/st_cb_copyimage.c index afef223..324f7cb 100644 --- a/src/mesa/state_tracker/st_cb_copyimage.c +++ b/src/mesa/state_tracker/st_cb_copyimage.c @@ -624,7 +624,7 @@ fallback_copy_image(struct st_context *st, } } -static void +void st_CopyImageSubData(struct gl_context *ctx, struct gl_texture_image *src_image, struct gl_renderbuffer *src_renderbuffer, @@ -688,9 +688,3 @@ st_CopyImageSubData(struct gl_context *ctx, src_res, src_level, &box); } } - -void -st_init_copy_image_functions(struct dd_function_table *functions) -{ - functions->CopyImageSubData = st_CopyImageSubData; -} diff --git a/src/mesa/state_tracker/st_cb_copyimage.h b/src/mesa/state_tracker/st_cb_copyimage.h index d17f35c..950363d 100644 --- a/src/mesa/state_tracker/st_cb_copyimage.h +++ b/src/mesa/state_tracker/st_cb_copyimage.h @@ -25,9 +25,14 @@ #ifndef ST_CB_COPY_IMAGE_H #define ST_CB_COPY_IMAGE_H -struct dd_function_table; - -extern void -st_init_copy_image_functions(struct dd_function_table *functions); +void +st_CopyImageSubData(struct gl_context *ctx, + struct gl_texture_image *src_image, + struct gl_renderbuffer *src_renderbuffer, + int src_x, int src_y, int src_z, + struct gl_texture_image *dst_image, + struct gl_renderbuffer *dst_renderbuffer, + int dst_x, int dst_y, int dst_z, + int src_width, int src_height); #endif /* ST_CB_COPY_IMAGE_H */ diff --git a/src/mesa/state_tracker/st_context.c b/src/mesa/state_tracker/st_context.c index 4d78525..bc6a46e 100644 --- a/src/mesa/state_tracker/st_context.c +++ b/src/mesa/state_tracker/st_context.c @@ -48,7 +48,6 @@ #include "st_cb_clear.h" #include "st_cb_compute.h" #include "st_cb_condrender.h" -#include "st_cb_copyimage.h" #include "st_cb_drawpixels.h" #include "st_cb_drawtex.h" #include "st_cb_eglimage.h" @@ -924,7 +923,6 @@ st_init_driver_functions(struct pipe_screen *screen, st_init_draw_functions(screen, functions); st_init_blit_functions(functions); st_init_bufferobject_functions(screen, functions); - st_init_copy_image_functions(functions); st_init_drawtex_functions(functions); -- 2.7.4