m1n1/proxyclient/m1n1/agx/uapi.py
Asahi Lina 85e6208a79 m1n1.agx.shim: Move UAPI to m1n1.agx.uapi
Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-08-17 13:42:59 +09:00

116 lines
2.7 KiB
Python

#!/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))