#define VC4_SCREEN_H
#include "pipe/p_screen.h"
+#include "os/os_thread.h"
#include "state_tracker/drm_driver.h"
+#include "util/list.h"
struct vc4_bo;
#define VC4_DEBUG_PERF 0x0020
#define VC4_DEBUG_NORAST 0x0040
#define VC4_DEBUG_ALWAYS_FLUSH 0x0080
+#define VC4_DEBUG_ALWAYS_SYNC 0x0100
+#define VC4_DEBUG_NIR 0x0200
+#define VC4_DEBUG_DUMP 0x0400
#define VC4_MAX_MIP_LEVELS 12
#define VC4_MAX_TEXTURE_SAMPLERS 16
* if we know the job's already done.
*/
uint64_t finished_seqno;
+
+ struct vc4_bo_cache {
+ /** List of struct vc4_bo freed, by age. */
+ struct list_head time_list;
+ /** List of struct vc4_bo freed, per size, by age. */
+ struct list_head *size_list;
+ uint32_t size_list_size;
+
+ pipe_mutex lock;
+
+ uint32_t bo_size;
+ uint32_t bo_count;
+ } bo_cache;
+
+ uint32_t bo_size;
+ uint32_t bo_count;
};
static inline struct vc4_screen *
struct winsys_handle *whandle);
struct vc4_bo *
vc4_screen_bo_from_handle(struct pipe_screen *pscreen,
- struct winsys_handle *whandle,
- unsigned *out_stride);
+ struct winsys_handle *whandle);
extern uint32_t vc4_debug;