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

Manna, Animesh animesh.manna at intel.com
Fri Jan 31 17:24:21 UTC 2020


On 31-01-2020 17:33, Ville Syrjälä wrote:
> On Fri, Jan 31, 2020 at 05:12:58PM +0530, Animesh Manna wrote:
>> 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.
> The whole point of the dsb is to avoid doing mmio.a Now you're
> replacing the nice dma with mmio again. Granted lmem is probably
> wc so maybe not as slow as direct mmio register access, and also
> we can do this ahead of time so not as time critical as direct
> mmio during the the vblank.

As per sas documentation Lmem (HBM) memory is preferable for command/batch buffer, planning to do some profiling. Will update the result.

Regards,
Animesh

>
>> 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
>>
>> _______________________________________________
>> Intel-gfx mailing list
>> Intel-gfx at lists.freedesktop.org
>> https://lists.freedesktop.org/mailman/listinfo/intel-gfx


More information about the Intel-gfx mailing list