summaryrefslogtreecommitdiff
path: root/tools/proxyclient/m1n1/agx/uapi.py
diff options
context:
space:
mode:
Diffstat (limited to 'tools/proxyclient/m1n1/agx/uapi.py')
-rw-r--r--tools/proxyclient/m1n1/agx/uapi.py116
1 files changed, 116 insertions, 0 deletions
diff --git a/tools/proxyclient/m1n1/agx/uapi.py b/tools/proxyclient/m1n1/agx/uapi.py
new file mode 100644
index 0000000..75850cb
--- /dev/null
+++ b/tools/proxyclient/m1n1/agx/uapi.py
@@ -0,0 +1,116 @@
+#!/usr/bin/env python3
+# SPDX-License-Identifier: MIT
+
+from construct import *
+from m1n1.constructutils import ConstructClass
+
+__all__ = []
+
+DRM_COMMAND_BASE = 0x40
+
+ASAHI_BO_PIPELINE = 1
+
+class drm_asahi_submit_t(ConstructClass):
+ subcon = Struct(
+ "cmdbuf" / Int64ul,
+ "in_syncs" / Int64ul,
+ "in_sync_count" / Int32ul,
+ "out_sync" / Int32ul,
+ )
+
+class drm_asahi_wait_bo_t(ConstructClass):
+ subcon = Struct(
+ "handle" / Int32ul,
+ Padding(4),
+ "timeout_ns" / Int64sl,
+ )
+
+class drm_asahi_create_bo_t(ConstructClass):
+ subcon = Struct(
+ "size" / Int32ul,
+ "flags" / Int32ul,
+ "handle" / Int32ul,
+ Padding(4),
+ "offset" / Int64ul,
+ )
+
+#class drm_asahi_mmap_bo_t(ConstructClass):
+ #subcon = Struct(
+ #"handle" / Int32ul,
+ #"flags" / Int32ul,
+ #"offset" / Int64ul,
+ #)
+
+class drm_asahi_get_param_t(ConstructClass):
+ subcon = Struct(
+ "param" / Int32ul,
+ Padding(4),
+ "value" / Int64ul,
+ )
+
+class drm_asahi_get_bo_offset_t(ConstructClass):
+ subcon = Struct(
+ "handle" / Int32ul,
+ Padding(4),
+ "offset" / Int64ul,
+ )
+
+ASAHI_MAX_ATTACHMENTS = 16
+
+ASAHI_ATTACHMENT_C = 0
+ASAHI_ATTACHMENT_Z = 1
+ASAHI_ATTACHMENT_S = 2
+
+class drm_asahi_attachment_t(ConstructClass):
+ subcon = Struct(
+ "type" / Int32ul,
+ "size" / Int32ul,
+ "pointer" / Int64ul,
+ )
+
+ASAHI_CMDBUF_LOAD_C = (1 << 0)
+ASAHI_CMDBUF_LOAD_Z = (1 << 1)
+ASAHI_CMDBUF_LOAD_S = (1 << 2)
+
+class drm_asahi_cmdbuf_t(ConstructClass):
+ subcon = Struct(
+ "flags" / Int64ul,
+
+ "encoder_ptr" / Int64ul,
+ "encoder_id" / Int32ul,
+
+ "cmd_ta_id" / Int32ul,
+ "cmd_3d_id" / Int32ul,
+
+ "ds_flags" / Int32ul,
+ "depth_buffer" / Int64ul,
+ "stencil_buffer" / Int64ul,
+
+ "scissor_array" / Int64ul,
+ "depth_bias_array" / Int64ul,
+
+ "fb_width" / Int32ul,
+ "fb_height" / Int32ul,
+
+ "load_pipeline" / Int32ul,
+ "load_pipeline_bind" / Int32ul,
+
+ "store_pipeline" / Int32ul,
+ "store_pipeline_bind" / Int32ul,
+
+ "partial_reload_pipeline" / Int32ul,
+ "partial_reload_pipeline_bind" / Int32ul,
+
+ "partial_store_pipeline" / Int32ul,
+ "partial_store_pipeline_bind" / Int32ul,
+
+ "depth_clear_value" / Float32l,
+ "stencil_clear_value" / Int8ul,
+ Padding(3),
+
+ "attachments" / Array(ASAHI_MAX_ATTACHMENTS, drm_asahi_attachment_t),
+ "attachment_count" / Int32ul,
+ )
+
+__all__.extend(k for k, v in globals().items()
+ if ((callable(v) or isinstance(v, type)) and v.__module__ == __name__) or isinstance(v, int))