All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 1/2] drm/amdgpu: Set GTT_USWC flag to enable freesync
@ 2021-02-13 16:37 Shashank Sharma
  2021-02-13 16:37 ` [PATCH 2/2] drm/amdgpu: clean-up unused variable Shashank Sharma
  2021-02-13 18:42 ` AW: [PATCH 1/2] drm/amdgpu: Set GTT_USWC flag to enable freesync Koenig, Christian
  0 siblings, 2 replies; 4+ messages in thread
From: Shashank Sharma @ 2021-02-13 16:37 UTC (permalink / raw)
  To: amd-gfx; +Cc: Deucher Alexander, Koenig Christian, Shashank Sharma

This patch sets 'AMDGPU_GEM_CREATE_CPU_GTT_USWC' as input
parameter flag, during object creation of an imported DMA
buffer.

In absence of this flag:
1. Function amdgpu_display_supported_domains() doesn't add
   AMDGPU_GEM_DOMAIN_GTT as supported domain.
2. Due to which, Function amdgpu_display_user_framebuffer_create()
   refuses to create framebuffer for imported DMA buffers.
3. Due to which, AddFB() IOCTL fails.
4. Due to which, amdgpu_present_check_flip() check fails in DDX
5. Due to which DDX driver doesn't allow flips (goes to blitting)
6. Due to which setting Freesync/VRR property fails for PRIME buffers.

So, this patch finally enables Freesync with PRIME buffer offloading.

Cc: Koenig Christian <christian.koenig@amd.com>
Cc: Deucher Alexander <alexander.deucher@amd.com>
Signed-off-by: Shashank Sharma <shashank.sharma@amd.com>
---
 drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.c
index 47e0b48dc26f..db62f3c9d6a5 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.c
@@ -448,8 +448,8 @@ amdgpu_dma_buf_create_obj(struct drm_device *dev, struct dma_buf *dma_buf)
 	bp.resv = resv;
 	dma_resv_lock(resv, NULL);
 	ret = amdgpu_gem_object_create(adev, dma_buf->size, PAGE_SIZE,
-			AMDGPU_GEM_DOMAIN_CPU,
-			0, ttm_bo_type_sg, resv, &gobj);
+			AMDGPU_GEM_DOMAIN_CPU, AMDGPU_GEM_CREATE_CPU_GTT_USWC,
+			ttm_bo_type_sg, resv, &gobj);
 	if (ret)
 		goto error;
 
-- 
2.25.1

_______________________________________________
amd-gfx mailing list
amd-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/amd-gfx

^ permalink raw reply related	[flat|nested] 4+ messages in thread

* [PATCH 2/2] drm/amdgpu: clean-up unused variable
  2021-02-13 16:37 [PATCH 1/2] drm/amdgpu: Set GTT_USWC flag to enable freesync Shashank Sharma
@ 2021-02-13 16:37 ` Shashank Sharma
  2021-02-13 18:43   ` AW: " Koenig, Christian
  2021-02-13 18:42 ` AW: [PATCH 1/2] drm/amdgpu: Set GTT_USWC flag to enable freesync Koenig, Christian
  1 sibling, 1 reply; 4+ messages in thread
From: Shashank Sharma @ 2021-02-13 16:37 UTC (permalink / raw)
  To: amd-gfx; +Cc: Deucher Alexander, Koenig Christian, Shashank Sharma

Variable 'bp' seems to be unused residue from previous
logic, and is not required anymore.

Cc: Koenig Christian <christian.koenig@amd.com>
Cc: Deucher Alexander <alexander.deucher@amd.com>
Signed-off-by: Shashank Sharma <shashank.sharma@amd.com>
---
 drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.c | 8 --------
 1 file changed, 8 deletions(-)

diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.c
index db62f3c9d6a5..d3e4d6a06bbd 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.c
@@ -435,17 +435,9 @@ amdgpu_dma_buf_create_obj(struct drm_device *dev, struct dma_buf *dma_buf)
 	struct dma_resv *resv = dma_buf->resv;
 	struct amdgpu_device *adev = drm_to_adev(dev);
 	struct amdgpu_bo *bo;
-	struct amdgpu_bo_param bp;
 	struct drm_gem_object *gobj;
 	int ret;
 
-	memset(&bp, 0, sizeof(bp));
-	bp.size = dma_buf->size;
-	bp.byte_align = PAGE_SIZE;
-	bp.domain = AMDGPU_GEM_DOMAIN_CPU;
-	bp.flags = 0;
-	bp.type = ttm_bo_type_sg;
-	bp.resv = resv;
 	dma_resv_lock(resv, NULL);
 	ret = amdgpu_gem_object_create(adev, dma_buf->size, PAGE_SIZE,
 			AMDGPU_GEM_DOMAIN_CPU, AMDGPU_GEM_CREATE_CPU_GTT_USWC,
-- 
2.25.1

_______________________________________________
amd-gfx mailing list
amd-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/amd-gfx

^ permalink raw reply related	[flat|nested] 4+ messages in thread

* AW: [PATCH 1/2] drm/amdgpu: Set GTT_USWC flag to enable freesync
  2021-02-13 16:37 [PATCH 1/2] drm/amdgpu: Set GTT_USWC flag to enable freesync Shashank Sharma
  2021-02-13 16:37 ` [PATCH 2/2] drm/amdgpu: clean-up unused variable Shashank Sharma
@ 2021-02-13 18:42 ` Koenig, Christian
  1 sibling, 0 replies; 4+ messages in thread
From: Koenig, Christian @ 2021-02-13 18:42 UTC (permalink / raw)
  To: Sharma, Shashank, amd-gfx; +Cc: Deucher, Alexander


[-- Attachment #1.1: Type: text/plain, Size: 2508 bytes --]

Well that's unfortunately a NAK.

We currently can't communicate by DMA-buf if USWC is possible or not.

For the short term we could add something like a special handling for A+A configurations here. E.g. check if the imported BO is also an andgpu BO and set the flag if it is also set on the exported BO.

Regards,
Christian.

________________________________
Von: Sharma, Shashank <Shashank.Sharma@amd.com>
Gesendet: Samstag, 13. Februar 2021 17:37
An: amd-gfx@lists.freedesktop.org <amd-gfx@lists.freedesktop.org>
Cc: Sharma, Shashank <Shashank.Sharma@amd.com>; Koenig, Christian <Christian.Koenig@amd.com>; Deucher, Alexander <Alexander.Deucher@amd.com>
Betreff: [PATCH 1/2] drm/amdgpu: Set GTT_USWC flag to enable freesync

This patch sets 'AMDGPU_GEM_CREATE_CPU_GTT_USWC' as input
parameter flag, during object creation of an imported DMA
buffer.

In absence of this flag:
1. Function amdgpu_display_supported_domains() doesn't add
   AMDGPU_GEM_DOMAIN_GTT as supported domain.
2. Due to which, Function amdgpu_display_user_framebuffer_create()
   refuses to create framebuffer for imported DMA buffers.
3. Due to which, AddFB() IOCTL fails.
4. Due to which, amdgpu_present_check_flip() check fails in DDX
5. Due to which DDX driver doesn't allow flips (goes to blitting)
6. Due to which setting Freesync/VRR property fails for PRIME buffers.

So, this patch finally enables Freesync with PRIME buffer offloading.

Cc: Koenig Christian <christian.koenig@amd.com>
Cc: Deucher Alexander <alexander.deucher@amd.com>
Signed-off-by: Shashank Sharma <shashank.sharma@amd.com>
---
 drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.c
index 47e0b48dc26f..db62f3c9d6a5 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.c
@@ -448,8 +448,8 @@ amdgpu_dma_buf_create_obj(struct drm_device *dev, struct dma_buf *dma_buf)
         bp.resv = resv;
         dma_resv_lock(resv, NULL);
         ret = amdgpu_gem_object_create(adev, dma_buf->size, PAGE_SIZE,
-                       AMDGPU_GEM_DOMAIN_CPU,
-                       0, ttm_bo_type_sg, resv, &gobj);
+                       AMDGPU_GEM_DOMAIN_CPU, AMDGPU_GEM_CREATE_CPU_GTT_USWC,
+                       ttm_bo_type_sg, resv, &gobj);
         if (ret)
                 goto error;

--
2.25.1


[-- Attachment #1.2: Type: text/html, Size: 5220 bytes --]

[-- Attachment #2: Type: text/plain, Size: 154 bytes --]

_______________________________________________
amd-gfx mailing list
amd-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/amd-gfx

^ permalink raw reply related	[flat|nested] 4+ messages in thread

* AW: [PATCH 2/2] drm/amdgpu: clean-up unused variable
  2021-02-13 16:37 ` [PATCH 2/2] drm/amdgpu: clean-up unused variable Shashank Sharma
@ 2021-02-13 18:43   ` Koenig, Christian
  0 siblings, 0 replies; 4+ messages in thread
From: Koenig, Christian @ 2021-02-13 18:43 UTC (permalink / raw)
  To: Sharma, Shashank, amd-gfx; +Cc: Deucher, Alexander


[-- Attachment #1.1: Type: text/plain, Size: 1822 bytes --]

Reviewed-by: Christian König <christian.koenig@amd.com>
________________________________
Von: Sharma, Shashank <Shashank.Sharma@amd.com>
Gesendet: Samstag, 13. Februar 2021 17:37
An: amd-gfx@lists.freedesktop.org <amd-gfx@lists.freedesktop.org>
Cc: Sharma, Shashank <Shashank.Sharma@amd.com>; Koenig, Christian <Christian.Koenig@amd.com>; Deucher, Alexander <Alexander.Deucher@amd.com>
Betreff: [PATCH 2/2] drm/amdgpu: clean-up unused variable

Variable 'bp' seems to be unused residue from previous
logic, and is not required anymore.

Cc: Koenig Christian <christian.koenig@amd.com>
Cc: Deucher Alexander <alexander.deucher@amd.com>
Signed-off-by: Shashank Sharma <shashank.sharma@amd.com>
---
 drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.c | 8 --------
 1 file changed, 8 deletions(-)

diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.c
index db62f3c9d6a5..d3e4d6a06bbd 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.c
@@ -435,17 +435,9 @@ amdgpu_dma_buf_create_obj(struct drm_device *dev, struct dma_buf *dma_buf)
         struct dma_resv *resv = dma_buf->resv;
         struct amdgpu_device *adev = drm_to_adev(dev);
         struct amdgpu_bo *bo;
-       struct amdgpu_bo_param bp;
         struct drm_gem_object *gobj;
         int ret;

-       memset(&bp, 0, sizeof(bp));
-       bp.size = dma_buf->size;
-       bp.byte_align = PAGE_SIZE;
-       bp.domain = AMDGPU_GEM_DOMAIN_CPU;
-       bp.flags = 0;
-       bp.type = ttm_bo_type_sg;
-       bp.resv = resv;
         dma_resv_lock(resv, NULL);
         ret = amdgpu_gem_object_create(adev, dma_buf->size, PAGE_SIZE,
                         AMDGPU_GEM_DOMAIN_CPU, AMDGPU_GEM_CREATE_CPU_GTT_USWC,
--
2.25.1


[-- Attachment #1.2: Type: text/html, Size: 3310 bytes --]

[-- Attachment #2: Type: text/plain, Size: 154 bytes --]

_______________________________________________
amd-gfx mailing list
amd-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/amd-gfx

^ permalink raw reply related	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2021-02-13 18:43 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-02-13 16:37 [PATCH 1/2] drm/amdgpu: Set GTT_USWC flag to enable freesync Shashank Sharma
2021-02-13 16:37 ` [PATCH 2/2] drm/amdgpu: clean-up unused variable Shashank Sharma
2021-02-13 18:43   ` AW: " Koenig, Christian
2021-02-13 18:42 ` AW: [PATCH 1/2] drm/amdgpu: Set GTT_USWC flag to enable freesync Koenig, Christian

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.