Advertisement
Guest User

Untitled

a guest
Aug 28th, 2019
179
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.05 KB | None | 0 0
  1. static int
  2. get_back_bo(struct dri2_egl_surface *dri2_surf)
  3. {
  4. struct dri2_egl_display *dri2_dpy =
  5. dri2_egl_display(dri2_surf->base.Resource.Display);
  6. struct gbm_dri_surface *surf = dri2_surf->gbm_surf;
  7. int age = 0;
  8.  
  9. if (dri2_surf->back == NULL) {
  10. printf("--panfrost: look for new backbuffer... %i to pick from\n", (int)ARRAY_SIZE(dri2_surf->color_buffers));
  11. for (unsigned i = 0; i < ARRAY_SIZE(dri2_surf->color_buffers); i++) {
  12. printf("--panfrost: buf [%p] %i locked=%i, age=%i\n", dri2_surf->color_buffers[i].bo, i, dri2_surf->color_buffers[i].locked, dri2_surf->color_buffers[i].age);
  13. if (!dri2_surf->color_buffers[i].locked &&
  14. dri2_surf->color_buffers[i].age >= age) {
  15. dri2_surf->back = &dri2_surf->color_buffers[i];
  16. age = dri2_surf->color_buffers[i].age;
  17. printf("--panfrost: chosen [%p] age=%i\n", dri2_surf->back->bo, age);
  18. }
  19. }
  20. }
  21.  
  22. if (dri2_surf->back == NULL)
  23. return -1;
  24. if (dri2_surf->back->bo == NULL) {
  25. if (surf->base.modifiers)
  26. dri2_surf->back->bo = gbm_bo_create_with_modifiers(&dri2_dpy->gbm_dri->base,
  27. surf->base.width,
  28. surf->base.height,
  29. surf->base.format,
  30. surf->base.modifiers,
  31. surf->base.count);
  32. else
  33. dri2_surf->back->bo = gbm_bo_create(&dri2_dpy->gbm_dri->base,
  34. surf->base.width,
  35. surf->base.height,
  36. surf->base.format,
  37. surf->base.flags);
  38.  
  39. printf("--panfrost: had to create new buffer %p\n", dri2_surf->back->bo);
  40. }
  41. if (dri2_surf->back->bo == NULL)
  42. return -1;
  43.  
  44. return 0;
  45. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement