v3d: Pass the whole clif_dump structure to v3d_print_group().
[mesa.git] / src / broadcom / clif / v3dx_dump.c
index 506d3bb7b50286bc980b3fc5056b75fd7b02166e..2229fe9d25c03e9df8febf6d5bf8deee4fc2bb05 100644 (file)
@@ -47,12 +47,12 @@ v3dX(clif_dump_packet)(struct clif_dump *clif, uint32_t offset,
         *size = v3d_group_get_length(inst);
 
         out(clif, "%s\n", v3d_group_get_name(inst));
-        v3d_print_group(clif->out, inst, 0, cl, "");
+        v3d_print_group(clif, inst, 0, cl, "");
 
         switch (*cl) {
-        case V3D33_GL_SHADER_STATE_opcode: {
-                struct V3D33_GL_SHADER_STATE values;
-                V3D33_GL_SHADER_STATE_unpack(cl, &values);
+        case V3DX(GL_SHADER_STATE_opcode): {
+                struct V3DX(GL_SHADER_STATE) values;
+                V3DX(GL_SHADER_STATE_unpack)(cl, &values);
 
                 struct reloc_worklist_entry *reloc =
                         clif_dump_add_address_to_worklist(clif,
@@ -65,18 +65,38 @@ v3dX(clif_dump_packet)(struct clif_dump *clif, uint32_t offset,
                 return true;
         }
 
-        case V3D33_STORE_MULTI_SAMPLE_RESOLVED_TILE_COLOR_BUFFER_EXTENDED_opcode: {
-                struct V3D33_STORE_MULTI_SAMPLE_RESOLVED_TILE_COLOR_BUFFER_EXTENDED values;
-                V3D33_STORE_MULTI_SAMPLE_RESOLVED_TILE_COLOR_BUFFER_EXTENDED_unpack(cl, &values);
+#if V3D_VERSION < 40
+        case V3DX(STORE_MULTI_SAMPLE_RESOLVED_TILE_COLOR_BUFFER_EXTENDED_opcode): {
+                struct V3DX(STORE_MULTI_SAMPLE_RESOLVED_TILE_COLOR_BUFFER_EXTENDED) values;
+                V3DX(STORE_MULTI_SAMPLE_RESOLVED_TILE_COLOR_BUFFER_EXTENDED_unpack)(cl, &values);
 
                 if (values.last_tile_of_frame)
                         return false;
                 break;
         }
+#endif /* V3D_VERSION < 40 */
 
-        case V3D33_TRANSFORM_FEEDBACK_ENABLE_opcode: {
-                struct V3D33_TRANSFORM_FEEDBACK_ENABLE values;
-                V3D33_TRANSFORM_FEEDBACK_ENABLE_unpack(cl, &values);
+#if V3D_VERSION > 40
+        case V3DX(TRANSFORM_FEEDBACK_SPECS_opcode): {
+                struct V3DX(TRANSFORM_FEEDBACK_SPECS) values;
+                V3DX(TRANSFORM_FEEDBACK_SPECS_unpack)(cl, &values);
+                struct v3d_group *spec = v3d_spec_find_struct(clif->spec,
+                                                              "Transform Feedback Output Data Spec");
+                assert(spec);
+
+                cl += *size;
+
+                for (int i = 0; i < values.number_of_16_bit_output_data_specs_following; i++) {
+                        v3d_print_group(clif, spec, 0, cl, "");
+                        cl += v3d_group_get_length(spec);
+                        *size += v3d_group_get_length(spec);
+                }
+                break;
+        }
+#else /* V3D_VERSION < 40 */
+        case V3DX(TRANSFORM_FEEDBACK_ENABLE_opcode): {
+                struct V3DX(TRANSFORM_FEEDBACK_ENABLE) values;
+                V3DX(TRANSFORM_FEEDBACK_ENABLE_unpack)(cl, &values);
                 struct v3d_group *spec = v3d_spec_find_struct(clif->spec,
                                                               "Transform Feedback Output Data Spec");
                 struct v3d_group *addr = v3d_spec_find_struct(clif->spec,
@@ -87,22 +107,23 @@ v3dX(clif_dump_packet)(struct clif_dump *clif, uint32_t offset,
                 cl += *size;
 
                 for (int i = 0; i < values.number_of_16_bit_output_data_specs_following; i++) {
-                        v3d_print_group(clif->out, spec, 0, cl, "");
+                        v3d_print_group(clif, spec, 0, cl, "");
                         cl += v3d_group_get_length(spec);
                         *size += v3d_group_get_length(spec);
                 }
 
                 for (int i = 0; i < values.number_of_32_bit_output_buffer_address_following; i++) {
-                        v3d_print_group(clif->out, addr, 0, cl, "");
+                        v3d_print_group(clif, addr, 0, cl, "");
                         cl += v3d_group_get_length(addr);
                         *size += v3d_group_get_length(addr);
                 }
                 break;
         }
+#endif /* V3D_VERSION < 40 */
 
-        case V3D33_START_ADDRESS_OF_GENERIC_TILE_LIST_opcode: {
-                struct V3D33_START_ADDRESS_OF_GENERIC_TILE_LIST values;
-                V3D33_START_ADDRESS_OF_GENERIC_TILE_LIST_unpack(cl, &values);
+        case V3DX(START_ADDRESS_OF_GENERIC_TILE_LIST_opcode): {
+                struct V3DX(START_ADDRESS_OF_GENERIC_TILE_LIST) values;
+                V3DX(START_ADDRESS_OF_GENERIC_TILE_LIST_unpack)(cl, &values);
                 struct reloc_worklist_entry *reloc =
                         clif_dump_add_address_to_worklist(clif,
                                                           reloc_generic_tile_list,
@@ -111,32 +132,9 @@ v3dX(clif_dump_packet)(struct clif_dump *clif, uint32_t offset,
                 break;
         }
 
-        case V3D33_HALT_opcode:
+        case V3DX(HALT_opcode):
                 return false;
         }
 
         return true;
 }
-
-void
-v3dX(clif_dump_gl_shader_state_record)(struct clif_dump *clif,
-                                       struct reloc_worklist_entry *reloc,
-                                       void *vaddr)
-{
-        struct v3d_group *state = v3d_spec_find_struct(clif->spec,
-                                                       "GL Shader State Record");
-        struct v3d_group *attr = v3d_spec_find_struct(clif->spec,
-                                                      "GL Shader State Attribute Record");
-        assert(state);
-        assert(attr);
-
-        out(clif, "GL Shader State Record at 0x%08x\n", reloc->addr);
-        v3d_print_group(clif->out, state, 0, vaddr, "");
-        vaddr += v3d_group_get_length(state);
-
-        for (int i = 0; i < reloc->shader_state.num_attrs; i++) {
-                out(clif, "  Attribute %d\n", i);
-                v3d_print_group(clif->out, attr, 0, vaddr, "");
-                vaddr += v3d_group_get_length(attr);
-        }
-}