Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

i965_put_surface_dri failure causes a deadlock problem #515

Open
moonpfe opened this issue Jul 24, 2020 · 0 comments
Open

i965_put_surface_dri failure causes a deadlock problem #515

moonpfe opened this issue Jul 24, 2020 · 0 comments

Comments

@moonpfe
Copy link

moonpfe commented Jul 24, 2020

Program is freezed on calling again i965_put_surface_dri() after i965_put_surface_dri() is failed with VA_STATUS_ERROR_ALLOCATION_FAILED.
This is because i965_put_surface_dri lock mutex, but ASSERT_RET does not unlock mutex.

_i965LockMutex(&i965->render_mutex);
dri_drawable = dri_vtable->get_drawable(ctx, (Drawable)draw);
ASSERT_RET(dri_drawable, VA_STATUS_ERROR_ALLOCATION_FAILED);
buffer = dri_vtable->get_rendering_buffer(ctx, dri_drawable);
ASSERT_RET(buffer, VA_STATUS_ERROR_ALLOCATION_FAILED);
dest_region = render_state->draw_region;
if (dest_region == NULL) {
dest_region = (struct intel_region *)calloc(1, sizeof(*dest_region));
ASSERT_RET(dest_region, VA_STATUS_ERROR_ALLOCATION_FAILED);
render_state->draw_region = dest_region;
}

(gdb) bt
#0  0x00007ffff39d9620 in __lll_lock_wait () at /usr/lib/libpthread.so.0
#1  0x00007ffff39d1df3 in pthread_mutex_lock () at /usr/lib/libpthread.so.0
#2  0x00007fffe78f9544 in i965_put_surface_dri () at /usr/lib/dri/i965_drv_video.so
#3  0x00007fffe789f44f in i965_PutSurface () at /usr/lib/dri/i965_drv_video.so
#4  0x00005555557349d5 in edc_va_put_surface
    (surface_id=0x4000140, drawable=<optimized out>, width=<optimized out>, height=<optimized out>, src_x=<optimized out>, src_y=<optimized out>, src_width=1280, src_height=720, dest_width=298, dest_height=200, deinterlace=<optimized out>) at ../edc/edc-va.c:1167
...
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant