asahi: Split up unk 2b
authorAlyssa Rosenzweig <alyssa@rosenzweig.io>
Mon, 23 May 2022 17:13:16 +0000 (13:13 -0400)
committerMarge Bot <emma+marge@anholt.net>
Sun, 4 Sep 2022 18:05:31 +0000 (18:05 +0000)
Seems to be flags.

Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18380>

src/asahi/lib/cmdbuf.xml
src/gallium/drivers/asahi/agx_state.c

index de19912..a653956 100644 (file)
     <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 2b" size="8" start="1:8" type="uint" default="5"/> <!-- 1 for other frag, 5 with discard? -->
+    <field name="Unk 1 8" size="1" start="1:8" type="bool" default="0"/>
+    <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="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 -->
index 514346b..23c18b1 100644 (file)
@@ -1238,7 +1238,8 @@ 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_2b = writes_sample_mask ? 5 : 1;
+         cfg.unk_1_8 = 1;
+         cfg.unk_1_10 = writes_sample_mask;
          cfg.fragment_parameters.early_z_testing = !writes_sample_mask;
          cfg.unk_3b = 0x1;
          cfg.unk_4 = 0x800;
@@ -1289,7 +1290,7 @@ 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_2b = 4;
+      cfg.unk_1_10 = true;
       cfg.fragment_parameters.unk_1 = 0x880100;
       cfg.fragment_parameters.early_z_testing = false;
       cfg.fragment_parameters.unk_2 = false;
@@ -1382,7 +1383,7 @@ 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_2b = 4;
+      cfg.unk_1_10 = 4;
       cfg.unk_4 = 0;
       cfg.fragment_parameters.unk_1 = 0x880100;
       cfg.fragment_parameters.early_z_testing = false;