mirror of
https://github.com/AsahiLinux/m1n1
synced 2025-01-14 22:15:18 +00:00
85e6208a79
Signed-off-by: Asahi Lina <lina@asahilina.net>
116 lines
2.7 KiB
Python
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))
|