backend-drm: drop use_pixman from drm_backend

Now that the renderer type is stored in struct weston_renderer,
use that instead of use_pixman to determine the renderer type.

Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de>
This commit is contained in:
Philipp Zabel 2022-11-30 11:16:15 +01:00 committed by Daniel Stone
parent 51c8882991
commit a9c1b41f3f
4 changed files with 7 additions and 10 deletions

View File

@ -327,7 +327,6 @@ struct drm_backend {
struct wl_listener session_listener;
uint32_t gbm_format;
bool use_pixman;
bool use_pixman_shadow;
struct udev_input input;

View File

@ -274,7 +274,7 @@ drm_virtual_output_enable(struct weston_output *output_base)
assert(output->virtual);
if (b->use_pixman) {
if (output_base->compositor->renderer->type == WESTON_RENDERER_PIXMAN) {
weston_log("Not support pixman renderer on Virtual output\n");
goto err;
}

View File

@ -365,7 +365,6 @@ drm_output_render(struct drm_output_state *state, pixman_region32_t *damage)
struct drm_plane *scanout_plane = output->scanout_plane;
struct drm_property_info *damage_info =
&scanout_plane->props[WDRM_PLANE_FB_DAMAGE_CLIPS];
struct drm_backend *b = device->backend;
struct drm_fb *fb;
pixman_region32_t scanout_damage;
pixman_box32_t *rects;
@ -391,7 +390,7 @@ drm_output_render(struct drm_output_state *state, pixman_region32_t *damage)
(scanout_plane->state_cur->fb->type == BUFFER_GBM_SURFACE ||
scanout_plane->state_cur->fb->type == BUFFER_PIXMAN_DUMB)) {
fb = drm_fb_ref(scanout_plane->state_cur->fb);
} else if (b->use_pixman) {
} else if (c->renderer->type == WESTON_RENDERER_PIXMAN) {
fb = drm_output_render_pixman(state, damage);
} else {
fb = drm_output_render_gl(state, damage);
@ -733,7 +732,7 @@ drm_output_apply_mode(struct drm_output *output)
*/
device->state_invalid = true;
if (b->use_pixman) {
if (b->compositor->renderer->type == WESTON_RENDERER_PIXMAN) {
drm_output_fini_pixman(output);
if (drm_output_init_pixman(output, b) < 0) {
weston_log("failed to init output pixman state with "
@ -1904,7 +1903,7 @@ drm_output_enable(struct weston_output *base)
if (b->pageflip_timeout)
drm_output_pageflip_timer_create(output);
if (b->use_pixman) {
if (b->compositor->renderer->type == WESTON_RENDERER_PIXMAN) {
if (drm_output_init_pixman(output, b) < 0) {
weston_log("Failed to init output pixman state\n");
goto err_planes;
@ -1950,7 +1949,7 @@ drm_output_deinit(struct weston_output *base)
drm_pending_state_apply_sync(pending);
}
if (b->use_pixman)
if (b->compositor->renderer->type == WESTON_RENDERER_PIXMAN)
drm_output_fini_pixman(output);
else
drm_output_fini_egl(output);
@ -3158,7 +3157,6 @@ drm_backend_create(struct weston_compositor *compositor,
b->drm = device;
b->compositor = compositor;
b->use_pixman = config->use_pixman;
b->pageflip_timeout = config->pageflip_timeout;
b->use_pixman_shadow = config->use_pixman_shadow;
@ -3203,7 +3201,7 @@ drm_backend_create(struct weston_compositor *compositor,
goto err_udev_dev;
}
if (b->use_pixman) {
if (config->use_pixman) {
if (init_pixman(b) < 0) {
weston_log("failed to initialize pixman renderer\n");
goto err_udev_dev;

View File

@ -1343,7 +1343,7 @@ drm_pending_state_apply(struct drm_pending_state *pending_state)
drm_output_state_free(output->state_cur);
output->state_cur = drm_output_state_alloc(output, NULL);
device->state_invalid = true;
if (!b->use_pixman) {
if (b->compositor->renderer->type == WESTON_RENDERER_GL) {
drm_output_fini_egl(output);
drm_output_init_egl(output, b);
}