radv/winsys: do not count visible VRAM buffers twice in the budget
[mesa.git] / src / amd / vulkan / radv_radeon_winsys.h
index 59c628b730fceb7e3a7b2e6d5501591eca25f990..e5a4ae57d99094da147e43325226837178302007 100644 (file)
 #include <stdint.h>
 #include <stdbool.h>
 #include <stdlib.h>
-#include "main/macros.h"
+#include <string.h>
 #include "amd_family.h"
+#include "util/u_memory.h"
+#include "util/u_math.h"
 
 struct radeon_info;
 struct ac_surf_info;
 struct radeon_surf;
 
-#define FREE(x) free(x)
-
 enum radeon_bo_domain { /* bitfield */
        RADEON_DOMAIN_GTT  = 2,
        RADEON_DOMAIN_VRAM = 4,
@@ -162,7 +162,7 @@ struct radeon_winsys_fence;
 struct radeon_winsys_bo {
        uint64_t va;
        bool is_local;
-       bool vram_cpu_access;
+       bool vram_no_cpu_access;
 };
 struct radv_winsys_sem_counts {
        uint32_t syncobj_count;
@@ -242,6 +242,10 @@ struct radeon_winsys {
                              struct radeon_winsys_bo *bo,
                              int *fd);
 
+       bool (*buffer_get_flags_from_fd)(struct radeon_winsys *ws, int fd,
+                                        enum radeon_bo_domain *domains,
+                                        enum radeon_bo_flag *flags);
+
        void (*buffer_unmap)(struct radeon_winsys_bo *bo);
 
        void (*buffer_set_metadata)(struct radeon_winsys_bo *bo,