From: Marek Olšák <marek.ol...@amd.com> --- src/gallium/state_trackers/dri/dri2.c | 4 +--- src/gallium/state_trackers/dri/dri_drawable.c | 2 +- src/gallium/state_trackers/dri/dri_screen.h | 3 +-- 3 files changed, 3 insertions(+), 6 deletions(-)
diff --git a/src/gallium/state_trackers/dri/dri2.c b/src/gallium/state_trackers/dri/dri2.c index efb43c0d797..7edef415505 100644 --- a/src/gallium/state_trackers/dri/dri2.c +++ b/src/gallium/state_trackers/dri/dri2.c @@ -1926,24 +1926,22 @@ dri2_init_screen(__DRIscreen * sPriv) pscreen = pipe_loader_create_screen(screen->dev); } if (!pscreen) goto release_pipe; throttle_ret = pipe_loader_configuration(screen->dev, DRM_CONF_THROTTLE); dmabuf_ret = pipe_loader_configuration(screen->dev, DRM_CONF_SHARE_FD); - if (throttle_ret && throttle_ret->val.val_int != -1) { - screen->throttling_enabled = TRUE; + if (throttle_ret && throttle_ret->val.val_int > 0) screen->default_throttle_frames = throttle_ret->val.val_int; - } if (pscreen->resource_create_with_modifiers) dri2ImageExtension.createImageWithModifiers = dri2_create_image_with_modifiers; if (dmabuf_ret && dmabuf_ret->val.val_bool) { uint64_t cap; if (drmGetCap(sPriv->fd, DRM_CAP_PRIME, &cap) == 0 && (cap & DRM_PRIME_CAP_IMPORT)) { diff --git a/src/gallium/state_trackers/dri/dri_drawable.c b/src/gallium/state_trackers/dri/dri_drawable.c index 92047584224..26bfdbecc53 100644 --- a/src/gallium/state_trackers/dri/dri_drawable.c +++ b/src/gallium/state_trackers/dri/dri_drawable.c @@ -540,21 +540,21 @@ dri_flush(__DRIcontext *cPriv, pipe->flush_resource(pipe, drawable->textures[ST_ATTACHMENT_BACK_LEFT]); } flush_flags = 0; if (flags & __DRI2_FLUSH_CONTEXT) flush_flags |= ST_FLUSH_FRONT; if (reason == __DRI2_THROTTLE_SWAPBUFFER) flush_flags |= ST_FLUSH_END_OF_FRAME; /* Flush the context and throttle if needed. */ - if (dri_screen(ctx->sPriv)->throttling_enabled && + if (dri_screen(ctx->sPriv)->default_throttle_frames && drawable && (reason == __DRI2_THROTTLE_SWAPBUFFER || reason == __DRI2_THROTTLE_FLUSHFRONT)) { /* Throttle. * * This pulls a fence off the throttling queue and waits for it if the * number of fences on the throttling queue has reached the desired * number. * * Then flushes to insert a fence at the current rendering position, and diff --git a/src/gallium/state_trackers/dri/dri_screen.h b/src/gallium/state_trackers/dri/dri_screen.h index 30bde45ce42..85372cb97c8 100644 --- a/src/gallium/state_trackers/dri/dri_screen.h +++ b/src/gallium/state_trackers/dri/dri_screen.h @@ -50,22 +50,21 @@ struct dri_screen { /* st_api */ struct st_manager base; struct st_api *st_api; /* on old libGL's invalidate doesn't get called as it should */ boolean broken_invalidate; /* dri */ __DRIscreen *sPriv; - boolean throttling_enabled; - int default_throttle_frames; + unsigned default_throttle_frames; struct st_config_options options; /* Which postprocessing filters are enabled. */ unsigned pp_enabled[PP_FILTERS]; /* drm */ int fd; boolean can_share_buffer; -- 2.17.1 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev