Reland "minigbm: introduce test allocation"
This reverts commit08d8dbf094. The original change returned early from drv_bo_create_with_modifiers, which broke reference counting. This must have hit some race condition in the tests, as they no longer flake after fixing reference counting. Original change's description: > Revert "minigbm: introduce test allocation" > > This reverts commitf0e607c7d4. > > Reason for revert: caused flaky regressions across the board. > > BUG=b:150997559 > Exempt-From-Owner-Approval: revert. > > Original change's description: > > minigbm: introduce test allocation > > > > This change introduces a GBM_TEST_ALLOC flag to minigbm, which allows > > for the creation of fake buffers that can be used to determine buffer > > metadata without actually allocating a full buffer. The new flag is > > supported by the i915 backends. This flag also alleviates the need to > > cache buffers when virtio_gpu queries metadata properties. > > > > BUG=b:145994510 > > TEST=play youtube with arcvm demo image plus this and virgl change > > > > Change-Id: I9c6819aa3b5b674e4bb33b0656f2a9f155b0884e > > Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/minigbm/+/1980688 > > Tested-by: David Stevens <stevensd@chromium.org> > > Reviewed-by: Gurchetan Singh <gurchetansingh@chromium.org> > > Commit-Queue: David Stevens <stevensd@chromium.org> > > Bug: b:145994510 > Change-Id: I50079b7f0aabf38e1f373cac0f28c0e057eed760 > Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/minigbm/+/2093923 > Commit-Queue: Ilja H. Friedel <ihf@chromium.org> > Tested-by: Ilja H. Friedel <ihf@chromium.org> > Reviewed-by: Ilja H. Friedel <ihf@chromium.org> Bug: b:150997559, b:145994510 Change-Id: If0f02a4701bb6960b6413d6b0c00b481146914d9 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/minigbm/+/2094068 Reviewed-by: Gurchetan Singh <gurchetansingh@chromium.org> Commit-Queue: David Stevens <stevensd@chromium.org> Tested-by: David Stevens <stevensd@chromium.org>
This commit is contained in:
parent
08d8dbf094
commit
26fe682306
5 changed files with 116 additions and 58 deletions
|
|
@ -8,6 +8,7 @@
|
|||
#define DRV_PRIV_H
|
||||
|
||||
#include <pthread.h>
|
||||
#include <stdbool.h>
|
||||
#include <stdint.h>
|
||||
#include <stdlib.h>
|
||||
#include <sys/types.h>
|
||||
|
|
@ -31,6 +32,7 @@ struct bo_metadata {
|
|||
struct bo {
|
||||
struct driver *drv;
|
||||
struct bo_metadata meta;
|
||||
bool is_test_buffer;
|
||||
union bo_handle handles[DRV_MAX_PLANES];
|
||||
void *priv;
|
||||
};
|
||||
|
|
@ -65,6 +67,11 @@ struct backend {
|
|||
uint64_t use_flags);
|
||||
int (*bo_create_with_modifiers)(struct bo *bo, uint32_t width, uint32_t height,
|
||||
uint32_t format, const uint64_t *modifiers, uint32_t count);
|
||||
// Either both or neither _metadata functions must be implemented.
|
||||
// If the functions are implemented, bo_create and bo_create_with_modifiers must not be.
|
||||
int (*bo_compute_metadata)(struct bo *bo, uint32_t width, uint32_t height, uint32_t format,
|
||||
uint64_t use_flags, const uint64_t *modifiers, uint32_t count);
|
||||
int (*bo_create_from_metadata)(struct bo *bo);
|
||||
int (*bo_destroy)(struct bo *bo);
|
||||
int (*bo_import)(struct bo *bo, struct drv_import_fd_data *data);
|
||||
void *(*bo_map)(struct bo *bo, struct vma *vma, size_t plane, uint32_t map_flags);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue