+
     Gi  c                   sB    ^ RI t ^ RIt^ RItR.tR tR tR tR tR t	R# )i    NZnvidiac                 v    \         P                  P                  P                  V R P	                  V4      R4      # )z/sys/class/drm/{}/ueventZMINORtoolshelpersZpropsZfile_getformatargsdev   &&&/usr/lib/waydroid/tools/helpers/gpu.pygetMinorr
      s/    ==''.H.O.OPS.TV]^^    c                 r    )z/sys/class/drm/{}/device/ueventZDRIVERr   r   r   r	   getKernelDriverr   
   s/    ==''.O.V.VWZ.[]effr   c           
      s     R \         P                  P                  \        \        P                  ! RP                  V4      4      4      ^ ,          4      ,           #   \         d     R# i ; i)z	/dev/dri/z"/sys/class/drm/{}/device/drm/card* )ospathbasenamesortedglobr   Z
IndexErrorr   r   r	   getCardFromRenderr      sT    RWW--fTYY?c?j?jkn?o5p.qrs.tuuu s   AA A*)A*c                 sV   \         P                  P                  V 4      pVR ,          P                  R4      pV'       d   \        P
                  P                  V4      '       g   \        RP                  V4      4      h\        P
                  P                  V4      p\        W4      \        9  d   V\        W4      3# R# \        \        P                  ! R4      4       FE  p\        P
                  P                  V4      p\        W4      \        9  g   K8  V\        W4      3u # 	  R# )ZwaydroidZ
drm_devicez*The specified drm_device {} does not existz/dev/dri/renderD*)r   r   )r   ZconfigZloadZgetr   r   ZexistsZOSErrorr   r   r   unsupportedr   r   r   )r   ZcfgZnodeZ	renderDevs   &   r	   
getDriNoder      s    
,,

D
!Cz?|,Dww~~d##FMMdSTTGG$$T*	4+;>*4;;;tyy!456GG$$T*	4+;>*4;;; 7 Mr   c                 s   R RRRRRRRRRRRRRR	R
RR/	p\        W4      pVR 8X  d    \        P                  P                  \	        W4      4      p\
        P                  P                  P                  V RRRP                  \        W4      4      .RRR7      p\        V4      ^	8  d   R#  W29   d	   W#,          # R#     L; i)Zi915ZintelZxeZamdgpuZradeonZpanfrostZmsmZ	freedrenoZmsm_dpuZvc4ZbroadcomZnouveauZawkz&/^graphics version:|^gen:/ {print $NF}z*/sys/kernel/debug/dri/{}/i915_capabilitiesTF)Zoutput_returnZcheckZintel_hasvkr   )r   r   r   r   r   r   r   ZrunZuserr   r
   Zint)r   r   ZmappingZkernel_driverZgens   &&   r	   getVulkanDriverr   $   s    g((J{;z9
G $D.M	''""#4T#?@C--##((u6^<CCHTDWX/Zimuz ) |C3x!|$ 
 %%	s   B B; ;B?)
r   r   Ztools.helpers.propsr   r   r
   r   r   r   r   ) r   r	   <module>r      s0     	 j_g"r   