
    3jE                     4   S SK r SSKJr  \R                  rS r\b  \ R
                  \ R                  /\R                  l        \ R                  \R                  l
        \ R                  \ R                  /\R                  l        \ R                  \R                  l
        \ R                  /\R                  l        \ R                  \R                  l
        \ R                  /\R                  l        \ R                  \R                  l
         " S S5      rg)    N   )controlc                  f    [        [        [        SS5      5      R                  5       n SU ;   a  S$ S$ )N_name rocmi    i   )strgetattrliblower)lib_names    Q/home/wildlama/miniconda3/lib/python3.13/site-packages/comfy_aimdo/vram_buffer.py_growth_chunk_sizer      s0    73,-335H H,;>,>    c                   0    \ rS rSrS rS rSS jrS rSrg)	
VRAMBuffer   c                 \   [         R                  " U5      U l        X l        Xl        [
        R                  U R                  U R                  5      U l        U R                  (       d  [        S5      e[
        R                  U R                  5      U l
        SU l        [        5       U l        g )NzVRAM reservation failedr   )r   
get_devctx_devctxdevicemax_sizer   vrambuf_create_ptrRuntimeErrorvrambuf_get	base_addr
_allocatedr   _chunk_size)selfr   r   s      r   __init__VRAMBuffer.__init__   ss    ))&1 &&t{{DMMB	yy8993-/r   c                     U R                   $ )N)r   )r    s    r   sizeVRAMBuffer.size(   s    r   c                 ,   [        U5      n[        U5      nX-   nX0R                  :  a[  [        R                  U R                  U5      (       d  [        SU S35      eX0R                  -   S-
  U R                  S-
  ) -  U l        X R                  U-   U4$ )NzVRAM grow failed: z bytesr   )intr   r   vrambuf_growr   r   r   r   )r    r$   offsetrequired_sizes       r   getVRAMBuffer.get+   s    V4y??*##DII}=="%7f#MNN,/?/??!CIYIY\]I]G^^DOnnv-t44r   c                     [        U SS 5      nU(       a-  [        R                  U5      (       d  [        S5      eS U l        g g )Nr   z/VRAM destroy failed: device context unavailable)r
   r   vrambuf_destroyr   r   )r    ptrs     r   __del__VRAMBuffer.__del__7   s<    dFD)&&s++"#TUUDI r   )r   r   r   r   r   r   r   N)r   )	__name__
__module____qualname____firstlineno__r!   r$   r+   r0   __static_attributes__ r   r   r   r      s    
0
5r   r   )ctypesr   r   r   r   c_intc_size_tr   argtypesc_void_prestyper(   c_boolr   c_uint64r.   r   r7   r   r   <module>r@      s     kk?
 ?#)<<"AC!'C!'&// BC%}}C &0COO$ooCOO$*OO#4C "(--C! !r   