[PATCH xf86-video-amdgpu] Don't install Flush/EventCallback for GPU screens

Michel Dänzer michel at daenzer.net
Tue Nov 22 07:55:55 UTC 2016


From: Michel Dänzer <michel.daenzer at amd.com>

Their purpose is to flush GPU rendering commands corresponding to damage
events, but there can be no damage events corresponding to GPU screen
rendering operations.

(Ported from radeon commit 13c6bc5e382765fe567091e1c616c0a26eec04ca)

Signed-off-by: Michel Dänzer <michel.daenzer at amd.com>
---
 src/amdgpu_kms.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/amdgpu_kms.c b/src/amdgpu_kms.c
index 09b7ea0..aad4a58 100644
--- a/src/amdgpu_kms.c
+++ b/src/amdgpu_kms.c
@@ -223,7 +223,7 @@ amdgpu_flush_callback(CallbackListPtr *list,
 
 static Bool AMDGPUCreateScreenResources_KMS(ScreenPtr pScreen)
 {
-	ExtensionEntry *damage_ext = CheckExtension("DAMAGE");
+	ExtensionEntry *damage_ext;
 	ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen);
 	AMDGPUInfoPtr info = AMDGPUPTR(pScrn);
 	PixmapPtr pixmap;
@@ -277,7 +277,7 @@ static Bool AMDGPUCreateScreenResources_KMS(ScreenPtr pScreen)
 		amdgpu_glamor_create_screen_resources(pScreen);
 
 	info->callback_event_type = -1;
-	if (damage_ext) {
+	if (!pScreen->isGPU && (damage_ext = CheckExtension("DAMAGE"))) {
 		info->callback_event_type = damage_ext->eventBase + XDamageNotify;
 
 		if (!AddCallback(&FlushCallback, amdgpu_flush_callback, pScrn))
-- 
2.10.2



More information about the amd-gfx mailing list