mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-01-07 15:10:12 +01:00
panfrost: Init/destroy blitter from per-gen file
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11785>
This commit is contained in:
parent
345778fa6f
commit
88dc4db6be
3 changed files with 19 additions and 5 deletions
|
|
@ -45,6 +45,7 @@
|
|||
#include "pan_util.h"
|
||||
#include "pan_indirect_draw.h"
|
||||
#include "pan_indirect_dispatch.h"
|
||||
#include "pan_blitter.h"
|
||||
|
||||
#include "midgard_pack.h"
|
||||
|
||||
|
|
@ -3682,13 +3683,26 @@ panfrost_get_sample_position(struct pipe_context *context,
|
|||
out_value);
|
||||
}
|
||||
|
||||
static void
|
||||
screen_destroy(struct pipe_screen *pscreen)
|
||||
{
|
||||
struct panfrost_device *dev = pan_device(pscreen);
|
||||
pan_blitter_cleanup(dev);
|
||||
}
|
||||
|
||||
void
|
||||
panfrost_cmdstream_screen_init(struct panfrost_screen *screen)
|
||||
{
|
||||
struct panfrost_device *dev = &screen->dev;
|
||||
|
||||
screen->vtbl.prepare_rsd = prepare_rsd;
|
||||
screen->vtbl.emit_tls = emit_tls;
|
||||
screen->vtbl.emit_fbd = emit_fbd;
|
||||
screen->vtbl.emit_fragment_job = emit_fragment_job;
|
||||
screen->vtbl.screen_destroy = screen_destroy;
|
||||
|
||||
pan_blitter_init(dev, &screen->blitter.bin_pool.base,
|
||||
&screen->blitter.desc_pool.base);
|
||||
}
|
||||
|
||||
void
|
||||
|
|
|
|||
|
|
@ -43,7 +43,6 @@
|
|||
#include "drm-uapi/drm_fourcc.h"
|
||||
#include "drm-uapi/panfrost_drm.h"
|
||||
|
||||
#include "pan_blitter.h"
|
||||
#include "pan_bo.h"
|
||||
#include "pan_shader.h"
|
||||
#include "pan_screen.h"
|
||||
|
|
@ -696,11 +695,12 @@ panfrost_destroy_screen(struct pipe_screen *pscreen)
|
|||
pan_indirect_dispatch_cleanup(dev);
|
||||
panfrost_cleanup_indirect_draw_shaders(dev);
|
||||
panfrost_pool_cleanup(&screen->indirect_draw.bin_pool);
|
||||
pan_blitter_cleanup(dev);
|
||||
panfrost_pool_cleanup(&screen->blitter.bin_pool);
|
||||
panfrost_pool_cleanup(&screen->blitter.desc_pool);
|
||||
pan_blend_shaders_cleanup(dev);
|
||||
|
||||
screen->vtbl.screen_destroy(pscreen);
|
||||
|
||||
if (dev->ro)
|
||||
dev->ro->destroy(dev->ro);
|
||||
panfrost_close_device(dev);
|
||||
|
|
@ -892,9 +892,6 @@ panfrost_create_screen(int fd, struct renderonly *ro)
|
|||
4096, "Blitter shaders", false, true);
|
||||
panfrost_pool_init(&screen->blitter.desc_pool, NULL, dev, 0, 65536,
|
||||
"Blitter RSDs", false, true);
|
||||
pan_blitter_init(dev, &screen->blitter.bin_pool.base,
|
||||
&screen->blitter.desc_pool.base);
|
||||
|
||||
panfrost_cmdstream_screen_init(screen);
|
||||
|
||||
return &screen->base;
|
||||
|
|
|
|||
|
|
@ -63,6 +63,9 @@ struct panfrost_vtable {
|
|||
|
||||
/* Emits a fragment job */
|
||||
mali_ptr (*emit_fragment_job)(struct panfrost_batch *, const struct pan_fb_info *);
|
||||
|
||||
/* General destructor */
|
||||
void (*screen_destroy)(struct pipe_screen *);
|
||||
};
|
||||
|
||||
struct panfrost_screen {
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue