47 lines
1.5 KiB
Diff
47 lines
1.5 KiB
Diff
Index: b/src/VBox/Additions/linux/drm/vbox_drv.h
|
|
===================================================================
|
|
--- src/VBox/Additions/linux/drm/vbox_drv.h
|
|
+++ src/VBox/Additions/linux/drm/vbox_drv.h
|
|
@@ -205,6 +205,13 @@ static inline void drm_gem_object_put(st
|
|
}
|
|
#endif
|
|
|
|
+#ifndef TTM_PL_FLAG_SYSTEM
|
|
+#define TTM_PL_FLAG_SYSTEM (1 << TTM_PL_SYSTEM)
|
|
+#endif
|
|
+#ifndef TTM_PL_FLAG_VRAM
|
|
+#define TTM_PL_FLAG_VRAM (1 << TTM_PL_VRAM)
|
|
+#endif
|
|
+
|
|
#define DRIVER_AUTHOR VBOX_VENDOR
|
|
|
|
#define DRIVER_NAME "vboxvideo"
|
|
Index: b/src/VBox/Additions/linux/drm/vbox_ttm.c
|
|
===================================================================
|
|
--- src/VBox/Additions/linux/drm/vbox_ttm.c
|
|
+++ src/VBox/Additions/linux/drm/vbox_ttm.c
|
|
@@ -373,11 +373,23 @@ void vbox_ttm_placement(struct vbox_bo *
|
|
bo->placement.busy_placement = bo->placements;
|
|
|
|
if (domain & TTM_PL_FLAG_VRAM)
|
|
+#if RTLNX_VER_MIN(5,10,0)
|
|
+ bo->placements[c].mem_type = TTM_PL_VRAM;
|
|
+ PLACEMENT_FLAGS(bo->placements[c++]) =
|
|
+ TTM_PL_FLAG_WC | TTM_PL_FLAG_UNCACHED;
|
|
+#else
|
|
PLACEMENT_FLAGS(bo->placements[c++]) =
|
|
TTM_PL_FLAG_WC | TTM_PL_FLAG_UNCACHED | TTM_PL_FLAG_VRAM;
|
|
+#endif
|
|
if (domain & TTM_PL_FLAG_SYSTEM)
|
|
+#if RTLNX_VER_MIN(5,10,0)
|
|
+ bo->placements[c].mem_type = TTM_PL_SYSTEM;
|
|
+ PLACEMENT_FLAGS(bo->placements[c++]) =
|
|
+ TTM_PL_MASK_CACHING;
|
|
+#else
|
|
PLACEMENT_FLAGS(bo->placements[c++]) =
|
|
TTM_PL_MASK_CACHING | TTM_PL_FLAG_SYSTEM;
|
|
+#endif
|
|
if (!c)
|
|
PLACEMENT_FLAGS(bo->placements[c++]) =
|
|
TTM_PL_MASK_CACHING | TTM_PL_FLAG_SYSTEM;
|
|
|