mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2025-12-22 04:50:11 +01:00
zink: slightly better swapinterval failure handling
retain the old mode and print an error cc: mesa-stable Acked-by: Dave Airlie <airlied@redhat.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/28904>
This commit is contained in:
parent
a50c17802a
commit
19e8df39b6
1 changed files with 9 additions and 2 deletions
|
|
@ -1115,14 +1115,21 @@ zink_kopper_set_swap_interval(struct pipe_screen *pscreen, struct pipe_resource
|
||||||
{
|
{
|
||||||
struct zink_resource *res = zink_resource(pres);
|
struct zink_resource *res = zink_resource(pres);
|
||||||
struct zink_screen *screen = zink_screen(pscreen);
|
struct zink_screen *screen = zink_screen(pscreen);
|
||||||
|
if (!res->obj->dt)
|
||||||
|
fprintf(stderr, "NOT SWAPCHAIN %p\n", res);
|
||||||
assert(res->obj->dt);
|
assert(res->obj->dt);
|
||||||
struct kopper_displaytarget *cdt = res->obj->dt;
|
struct kopper_displaytarget *cdt = res->obj->dt;
|
||||||
VkPresentModeKHR old_present_mode = cdt->present_mode;
|
VkPresentModeKHR old_present_mode = cdt->present_mode;
|
||||||
|
|
||||||
zink_kopper_set_present_mode_for_interval(cdt, interval);
|
zink_kopper_set_present_mode_for_interval(cdt, interval);
|
||||||
|
|
||||||
if (old_present_mode != cdt->present_mode)
|
if (old_present_mode == cdt->present_mode)
|
||||||
update_swapchain(screen, cdt, cdt->caps.currentExtent.width, cdt->caps.currentExtent.height);
|
return;
|
||||||
|
VkResult ret = update_swapchain(screen, cdt, cdt->caps.currentExtent.width, cdt->caps.currentExtent.height);
|
||||||
|
if (ret == VK_SUCCESS)
|
||||||
|
return;
|
||||||
|
cdt->present_mode = old_present_mode;
|
||||||
|
mesa_loge("zink: failed to set swap interval!");
|
||||||
}
|
}
|
||||||
|
|
||||||
int
|
int
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue