asahi: Note some more unknowns in the XML

Lot of r/e waiting here...

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18380>
This commit is contained in:
Alyssa Rosenzweig
2022-06-01 20:43:54 -04:00
committed by Marge Bot
parent 47831969c8
commit 968bbca578
2 changed files with 13 additions and 10 deletions
+12 -6
View File
@@ -358,13 +358,14 @@
<struct name="Unknown 4a" size="20">
<field name="Tag" size="32" start="0:0" type="hex" default="0x200004a"/>
<field name="Unk 1" size="1" start="1:9" type="bool" default="true"/>
<!-- Or discards? -->
<field name="Lines or points" size="1" start="1:26" type="bool"/>
<field name="Reads tilebuffer" size="1" start="1:29" type="bool"/>
<field name="Sample mask from shader" size="1" start="1:30" type="bool"/>
<field name="Front" size="32" start="2:0" type="Unknown face"/>
<field name="Back" size="32" start="3:0" type="Unknown face"/>
<!-- maybe sample mask -->
<field name="Unk 4" size="32" start="4:0" type="hex" default="0x1ffff"/>
<!-- Guess. Zeroed when sample mask written from the shader in all CF paths -->
<field name="Sample mask" size="17" start="4:0" type="hex" default="0x1ffff"/>
</struct>
<struct name="Cull" size="8">
@@ -434,7 +435,11 @@
<field name="Tag" size="8" start="0:0" type="hex" default="0x4d"/>
<field name="Unk 1" size="24" start="0:8" type="hex" default="0x90"/>
<field name="Unk 2" size="8" start="1:0" type="hex" default="0x0d"/> <!-- TODO differs with stage -->
<field name="Unk 2b" size="8" start="1:8" type="uint" default="4"/> <!--- Seemingly texture count related? -->
<!--- Seemingly texture count related?,
or number of registers in the preshader? 8 with <4 in the preshader,
12 with more than that?
-->
<field name="Unk 2b" size="8" start="1:8" type="uint" default="4"/>
<field name="Code" size="32" start="1:16" type="address"/>
<field name="Unk 3" size="8" start="2:16" type="hex" default="0x8d"/>
<field name="Register quadwords" size="5" start="2:24" type="uint"/> <!-- 0 for max -->
@@ -454,6 +459,8 @@
discard_fragment) -->
<field name="Early-z testing" size="1" start="24" type="bool"/>
<field name="Unk 2" size="1" start="25" type="bool" default="true"/>
<field name="Unconditional discard 1" size="1" start="26" type="bool"/>
<field name="Unconditional discard 2" size="1" start="27" type="bool"/>
<field name="Unk 3" size="4" start="28" type="hex" default="0xf"/>
</struct>
@@ -461,10 +468,9 @@
<field name="Tag" size="8" start="0:0" type="hex" default="0x4d"/>
<field name="Unk 1" size="24" start="0:8" type="hex" default="0x2010bd"/>
<field name="Unk 2" size="8" start="1:0" type="hex" default="0x0d"/>
<field name="Unk 1 8" size="1" start="1:8" type="bool" default="0"/>
<field name="Loads varyings" size="1" start="1:8" type="bool"/>
<field name="Unk 1 9" size="1" start="1:9" type="bool" default="0"/>
<field name="Unk 1 10" size="1" start="1:10" type="bool" default="0"/>
<field name="Unk 1 11" size="1" start="1:10" type="bool" default="0"/>
<field name="Code size in 64 bytes" size="6" start="1:10" type="uint"/>
<field name="Code" size="32" start="1:16" type="address"/>
<field name="Unk 3" size="8" start="2:16" type="hex" default="0x28d"/>
<field name="Register quadwords" size="5" start="2:24" type="uint"/> <!-- 0 for max -->
+1 -4
View File
@@ -1238,8 +1238,7 @@ agx_build_pipeline(struct agx_context *ctx, struct agx_compiled_shader *cs, enum
cfg.unk_3 = 0x8d;
cfg.unk_1 = 0x2010bd;
cfg.unk_2 = 0x0d;
cfg.unk_1_8 = 1;
cfg.unk_1_10 = writes_sample_mask;
cfg.loads_varyings = true;
cfg.fragment_parameters.early_z_testing = !writes_sample_mask;
cfg.unk_3b = 0x1;
cfg.unk_4 = 0x800;
@@ -1290,7 +1289,6 @@ agx_build_clear_pipeline(struct agx_context *ctx, uint32_t code, uint64_t clear_
cfg.register_quadwords = 1;
cfg.unk_3 = 0x8d;
cfg.unk_2 = 0x0d;
cfg.unk_1_10 = true;
cfg.fragment_parameters.unk_1 = 0x880100;
cfg.fragment_parameters.early_z_testing = false;
cfg.fragment_parameters.unk_2 = false;
@@ -1383,7 +1381,6 @@ agx_build_reload_pipeline(struct agx_context *ctx, uint32_t code, struct pipe_su
cfg.register_quadwords = 0;
cfg.unk_3 = 0x8d;
cfg.unk_2 = 0x0d;
cfg.unk_1_10 = 4;
cfg.unk_4 = 0;
cfg.fragment_parameters.unk_1 = 0x880100;
cfg.fragment_parameters.early_z_testing = false;