Changes

1,663 bytes added ,  18:06, 17 December 2017
no edit summary
Line 656: Line 656:  
     __in u16 flags;        // 0 or 4
 
     __in u16 flags;        // 0 or 4
 
     __in u16 kind;           
 
     __in u16 kind;           
     __in u32 unk0;
+
     __in u32 nvmap_handle;
     __in u32 unk1;
+
     __in u32 padding;
     __in u32 unk2;
+
     __in u32 offset;       // (alloc_space_offset >> 0x10)
     __in u32 unk3;
+
     __in u32 pages;       // alloc_space_pages
 
   };
 
   };
 
   
 
   
Line 704: Line 704:  
! Value || Direction || Size || Description || Notes
 
! Value || Direction || Size || Description || Notes
 
|-
 
|-
| 0x80044701 || Out || 4 || NVGPU_GPU_IOCTL_ZCULL_GET_CTX_SIZE ||
+
| 0x80044701 || Out || 4 || [[#NVGPU_GPU_IOCTL_ZCULL_GET_CTX_SIZE]] ||
 
|-
 
|-
| 0x80284702 || Out || 40 || NVGPU_GPU_IOCTL_ZCULL_GET_INFO ||
+
| 0x80284702 || Out || 40 || [[#NVGPU_GPU_IOCTL_ZCULL_GET_INFO]] ||
 
|-
 
|-
| 0x402C4703 || In || 44 || NVGPU_GPU_IOCTL_ZBC_SET_TABLE ||
+
| 0x402C4703 || In || 44 || [[#NVGPU_GPU_IOCTL_ZBC_SET_TABLE]] ||
 
|-
 
|-
| 0xC0344704 || Inout || 52 || NVGPU_GPU_IOCTL_ZBC_QUERY_TABLE ||
+
| 0xC0344704 || Inout || 52 || [[#NVGPU_GPU_IOCTL_ZBC_QUERY_TABLE]] ||
 
|-
 
|-
 
| 0xC0B04705 || Inout || 176 || [[#NVGPU_GPU_IOCTL_GET_CHARACTERISTICS]] ||
 
| 0xC0B04705 || Inout || 176 || [[#NVGPU_GPU_IOCTL_GET_CHARACTERISTICS]] ||
Line 742: Line 742:  
| 0xC108471D || Inout || 264 || NVGPU_GPU_IOCTL_GET_CPU_TIME_CORRELATION_INFO ||
 
| 0xC108471D || Inout || 264 || NVGPU_GPU_IOCTL_GET_CPU_TIME_CORRELATION_INFO ||
 
|}
 
|}
 +
 +
=== NVGPU_GPU_IOCTL_ZCULL_GET_CTX_SIZE ===
 +
Returns the GPU's ZCULL context size. Identical to Linux driver.
 +
 +
struct {
 +
    __out u32 size;
 +
  };
 +
 +
=== NVGPU_GPU_IOCTL_ZCULL_GET_CTX_SIZE ===
 +
Returns GPU's ZCULL information. Identical to Linux driver.
 +
 +
struct {
 +
    __out u32 width_align_pixels;
 +
    __out u32 height_align_pixels;
 +
    __out u32 pixel_squares_by_aliquots;
 +
    __out u32 aliquot_total;
 +
    __out u32 region_byte_multiplier;
 +
    __out u32 region_header_size;
 +
    __out u32 subregion_header_size;
 +
    __out u32 subregion_width_align_pixels;
 +
    __out u32 subregion_height_align_pixels;
 +
    __out u32 subregion_count;
 +
  };
 +
 +
=== NVGPU_GPU_IOCTL_ZBC_SET_TABLE ===
 +
Sets the active ZBC table. Identical to Linux driver.
 +
 +
struct {
 +
    __in u32 color_ds[4];
 +
    __in u32 color_l2[4];
 +
    __in u32 depth;
 +
    __in u32 format;
 +
    __in u32 type;        // 1=color, 2=depth
 +
  };
 +
 +
=== NVGPU_GPU_IOCTL_ZBC_QUERY_TABLE ===
 +
Queries the active ZBC table. Identical to Linux driver.
 +
 +
struct {
 +
    __out u32 color_ds[4];
 +
    __out u32 color_l2[4];
 +
    __out u32 depth;
 +
    __out u32 ref_cnt;
 +
    __out u32 format;
 +
    __out u32 type;
 +
    __inout u32 index_size;
 +
  };
    
=== NVGPU_GPU_IOCTL_GET_CHARACTERISTICS ===
 
=== NVGPU_GPU_IOCTL_GET_CHARACTERISTICS ===
Line 855: Line 902:  
| 0xC0104809 || 16 || [[#NVGPU_IOCTL_CHANNEL_ALLOC_OBJ_CTX]] ||
 
| 0xC0104809 || 16 || [[#NVGPU_IOCTL_CHANNEL_ALLOC_OBJ_CTX]] ||
 
|-
 
|-
| 0xC010480B || 16 || NVGPU_IOCTL_CHANNEL_ZCULL_BIND ||
+
| 0xC010480B || 16 || [[#NVGPU_IOCTL_CHANNEL_ZCULL_BIND]] ||
 
|-
 
|-
 
| 0xC018480C || 24 || [[#NVGPU_IOCTL_CHANNEL_SET_ERROR_NOTIFIER]] ||
 
| 0xC018480C || 24 || [[#NVGPU_IOCTL_CHANNEL_SET_ERROR_NOTIFIER]] ||
Line 913: Line 960:  
    
 
    
 
   struct gpfifo_entry {
 
   struct gpfifo_entry {
     u32 entry0;
+
     u32 entry0;                           // gpu_va_lo
     u32 entry1;
+
     u32 entry1;                           // gpu_va_hi | (unk_0x02 << 0x08) | (size << 0x0A) | (unk_0x01 << 0x1F)
 
   };
 
   };
 
    
 
    
Line 932: Line 979:  
     __in  u32 flags;
 
     __in  u32 flags;
 
     __out u64 obj_id;      // (ignored) used for FREE_OBJ_CTX ioctl, which is not supported
 
     __out u64 obj_id;      // (ignored) used for FREE_OBJ_CTX ioctl, which is not supported
 +
  };
 +
 +
=== NVGPU_IOCTL_CHANNEL_ZCULL_BIND ===
 +
Binds a ZCULL context to the channel. Identical to Linux driver.
 +
 +
struct {
 +
    __in u64 gpu_va;
 +
    __in u32 mode;        // 0=global, 1=no_ctxsw, 2=separate_buffer, 3=part_of_regular_buf
 +
    __in u32 padding;
 
   };
 
   };