dri3: Don't enable the DRI3 extension unless some screen supports it
There's no reason to advertise this extension unless one of the hardware drivers actually supports it. Not listing it means it's slightly easier for users to tell what's going on. On the other hand, not listing it means we may have applications that only check for the extension and not for appropriate per-screen support. I don't think that's a real risk as DRI3 is only useful for systems with deep knowledge of the hardware. Signed-off-by: Keith Packard <keithp@keithp.com> Reviewed-by: Eric Anholt <eric@anholt.net>
This commit is contained in:
		
							parent
							
								
									0d7306ffe2
								
							
						
					
					
						commit
						33aeec8a11
					
				
							
								
								
									
										10
									
								
								dri3/dri3.c
								
								
								
								
							
							
						
						
									
										10
									
								
								dri3/dri3.c
								
								
								
								
							| 
						 | 
				
			
			@ -30,6 +30,8 @@ int dri3_request;
 | 
			
		|||
DevPrivateKeyRec dri3_screen_private_key;
 | 
			
		||||
DevPrivateKeyRec dri3_window_private_key;
 | 
			
		||||
 | 
			
		||||
static int dri3_screen_generation;
 | 
			
		||||
 | 
			
		||||
static Bool
 | 
			
		||||
dri3_close_screen(ScreenPtr screen)
 | 
			
		||||
{
 | 
			
		||||
| 
						 | 
				
			
			@ -44,6 +46,8 @@ dri3_close_screen(ScreenPtr screen)
 | 
			
		|||
Bool
 | 
			
		||||
dri3_screen_init(ScreenPtr screen, dri3_screen_info_ptr info)
 | 
			
		||||
{
 | 
			
		||||
    dri3_screen_generation = serverGeneration;
 | 
			
		||||
 | 
			
		||||
    if (!dixRegisterPrivateKey(&dri3_screen_private_key, PRIVATE_SCREEN, 0))
 | 
			
		||||
        return FALSE;
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -68,6 +72,12 @@ dri3_extension_init(void)
 | 
			
		|||
    ExtensionEntry *extension;
 | 
			
		||||
    int i;
 | 
			
		||||
 | 
			
		||||
    /* If no screens support DRI3, there's no point offering the
 | 
			
		||||
     * extension at all
 | 
			
		||||
     */
 | 
			
		||||
    if (dri3_screen_generation != serverGeneration)
 | 
			
		||||
        return;
 | 
			
		||||
 | 
			
		||||
#ifdef PANORAMIX
 | 
			
		||||
    if (!noPanoramiXExtension)
 | 
			
		||||
        return;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue