diff --git a/src/gallium/drivers/freedreno/a6xx/fd6_resource.cc b/src/gallium/drivers/freedreno/a6xx/fd6_resource.cc index 3db023a460d..831d90f3809 100644 --- a/src/gallium/drivers/freedreno/a6xx/fd6_resource.cc +++ b/src/gallium/drivers/freedreno/a6xx/fd6_resource.cc @@ -294,14 +294,14 @@ setup_lrz(struct fd_resource *rsc) rsc->lrz = fd_bo_new(screen->dev, lrz_size, FD_BO_NOMAP, "lrz"); } +template static uint32_t fd6_setup_slices(struct fd_resource *rsc) { struct pipe_resource *prsc = &rsc->b.b; - struct fd_screen *screen = fd_screen(prsc->screen); if (!FD_DBG(NOLRZ) && has_depth(prsc->format) && !is_z32(prsc->format)) - FD_CALLX(screen->info, setup_lrz)(rsc); + setup_lrz(rsc); if (rsc->layout.ubwc && !ok_ubwc_format(prsc->screen, prsc->format)) rsc->layout.ubwc = false; @@ -387,12 +387,14 @@ fd6_is_format_supported(struct pipe_screen *pscreen, } } +template void fd6_resource_screen_init(struct pipe_screen *pscreen) { struct fd_screen *screen = fd_screen(pscreen); - screen->setup_slices = fd6_setup_slices; + screen->setup_slices = fd6_setup_slices; screen->layout_resource_for_modifier = fd6_layout_resource_for_modifier; screen->is_format_supported = fd6_is_format_supported; } +FD_GENX(fd6_resource_screen_init); diff --git a/src/gallium/drivers/freedreno/a6xx/fd6_resource.h b/src/gallium/drivers/freedreno/a6xx/fd6_resource.h index d1e21f88984..edf256d578e 100644 --- a/src/gallium/drivers/freedreno/a6xx/fd6_resource.h +++ b/src/gallium/drivers/freedreno/a6xx/fd6_resource.h @@ -36,8 +36,6 @@ enum fd6_format_status { DEMOTE_TO_TILED, }; -BEGINC; - enum fd6_format_status fd6_check_valid_format(struct fd_resource *rsc, enum pipe_format format); void fd6_validate_format(struct fd_context *ctx, struct fd_resource *rsc, @@ -51,8 +49,7 @@ fd6_assert_valid_format(struct fd_resource *rsc, enum pipe_format format) void fd6_emit_flag_reference(struct fd_ringbuffer *ring, struct fd_resource *rsc, int level, int layer); +template void fd6_resource_screen_init(struct pipe_screen *pscreen); -ENDC; - #endif /* FD6_RESOURCE_H_ */ diff --git a/src/gallium/drivers/freedreno/a6xx/fd6_screen.cc b/src/gallium/drivers/freedreno/a6xx/fd6_screen.cc index cefc2a6cbb9..129fe9b4d1d 100644 --- a/src/gallium/drivers/freedreno/a6xx/fd6_screen.cc +++ b/src/gallium/drivers/freedreno/a6xx/fd6_screen.cc @@ -212,7 +212,7 @@ fd6_screen_init(struct pipe_screen *pscreen) screen->tile_mode = fd6_tile_mode; - fd6_resource_screen_init(pscreen); + FD_CALLX(screen->info, fd6_resource_screen_init)(pscreen); fd6_emit_init_screen(pscreen); ir3_screen_init(pscreen);