[Intel-gfx] [PATCH] drm/i915/dsb: Enable lmem for dsb

Animesh Manna animesh.manna at intel.com
Fri Jan 31 11:42:58 UTC 2020


If lmem is supported DSB should use local memeory instead
of system memory. Using local memory surely bring performance
improvement as local memory is close to gpu. Also want to avoid
multiple gpu using system memory.

Used LMEM api to create gem object needed for DSB command buffer.

v1: Initial patch.

Cc: Jani Nikula <jani.nikula at linux.intel.com>
Cc: Matthew Auld <matthew.auld at intel.com>
Cc: Ramalingam C <ramalingam.c at intel.com>
Signed-off-by: Animesh Manna <animesh.manna at intel.com>
---
 drivers/gpu/drm/i915/display/intel_dsb.c | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/i915/display/intel_dsb.c b/drivers/gpu/drm/i915/display/intel_dsb.c
index 9dd18144a664..d67b6a764ba0 100644
--- a/drivers/gpu/drm/i915/display/intel_dsb.c
+++ b/drivers/gpu/drm/i915/display/intel_dsb.c
@@ -6,6 +6,7 @@
 
 #include "i915_drv.h"
 #include "intel_display_types.h"
+#include "gem/i915_gem_lmem.h"
 
 #define DSB_BUF_SIZE    (2 * PAGE_SIZE)
 
@@ -113,7 +114,11 @@ intel_dsb_get(struct intel_crtc *crtc)
 
 	wakeref = intel_runtime_pm_get(&i915->runtime_pm);
 
-	obj = i915_gem_object_create_internal(i915, DSB_BUF_SIZE);
+	if (HAS_LMEM(i915))
+		obj = i915_gem_object_create_lmem(i915, DSB_BUF_SIZE, 0);
+	else
+		obj = i915_gem_object_create_internal(i915, DSB_BUF_SIZE);
+
 	if (IS_ERR(obj)) {
 		DRM_ERROR("Gem object creation failed\n");
 		goto out;
-- 
2.24.0



More information about the Intel-gfx mailing list