mirror of
				https://gitlab.freedesktop.org/wlroots/wlroots.git
				synced 2025-11-03 09:01:40 -05:00 
			
		
		
		
	Add workaround for hardware cursors on nouveau
This commit is contained in:
		
							parent
							
								
									bc048b22fb
								
							
						
					
					
						commit
						26a9fa8148
					
				
					 1 changed files with 9 additions and 0 deletions
				
			
		| 
						 | 
				
			
			@ -729,6 +729,15 @@ static bool drm_connector_set_cursor(struct wlr_output *output,
 | 
			
		|||
		bo = copy_drm_surface_mgpu(&plane->mgpu_surf, plane->surf.back);
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	if (bo) {
 | 
			
		||||
		// workaround for nouveau
 | 
			
		||||
		// Buffers created with GBM_BO_USER_LINEAR are placed in NOUVEAU_GEM_DOMAIN_GART.
 | 
			
		||||
		// When the bo is attached to the cursor plane it is moved to NOUVEAU_GEM_DOMAIN_VRAM.
 | 
			
		||||
		// However, this does not wait for the render operations to complete, leaving an empty surface.
 | 
			
		||||
		// see https://bugs.freedesktop.org/show_bug.cgi?id=109631
 | 
			
		||||
		// The render operations can be waited for using:
 | 
			
		||||
		glFinish();
 | 
			
		||||
	}
 | 
			
		||||
	bool ok = drm->iface->crtc_set_cursor(drm, crtc, bo);
 | 
			
		||||
	if (ok) {
 | 
			
		||||
		wlr_output_update_needs_swap(output);
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue