diff --git a/src/panfrost/include/panfrost-job.h b/src/panfrost/include/panfrost-job.h
index c99743b..ce5aefd 100644
--- a/src/panfrost/include/panfrost-job.h
+++ b/src/panfrost/include/panfrost-job.h
@@ -53,45 +53,6 @@
 #define MALI_CULL_FACE_FRONT    (1 << 6)
 #define MALI_CULL_FACE_BACK     (1 << 7)
 
-/* Flags apply to unknown2_3? */
-
-#define MALI_HAS_MSAA		(1 << 0)
-
-/* Execute fragment shader per-sample if set (e.g. to implement gl_SampleID
- * reads) */
-#define MALI_PER_SAMPLE         (1 << 2)
-#define MALI_CAN_DISCARD 	(1 << 5)
-
-/* Applies on SFBD systems, specifying that programmable blending is in use */
-#define MALI_HAS_BLEND_SHADER 	(1 << 6)
-
-/* func is mali_func */
-#define MALI_DEPTH_FUNC(func)	   (func << 8)
-#define MALI_GET_DEPTH_FUNC(flags) ((flags >> 8) & 0x7)
-#define MALI_DEPTH_FUNC_MASK	   MALI_DEPTH_FUNC(0x7)
-
-#define MALI_DEPTH_WRITEMASK    (1 << 11)
-
-#define MALI_DEPTH_CLIP_NEAR    (1 << 12)
-#define MALI_DEPTH_CLIP_FAR     (1 << 13)
-
-/* Next flags to unknown2_4 */
-#define MALI_STENCIL_TEST      	(1 << 0)
-
-#define MALI_ALPHA_TO_COVERAGE (1 << 1)
-
-#define MALI_SFBD_ENABLE        (1 << 4)
-#define MALI_SFBD_SRGB          (1 << 8)
-#define MALI_NO_DITHER		(1 << 9)
-#define MALI_DEPTH_RANGE_A	(1 << 12)
-#define MALI_DEPTH_RANGE_B	(1 << 13)
-#define MALI_NO_MSAA		(1 << 14)
-
-#define MALI_MASK_R (1 << 0)
-#define MALI_MASK_G (1 << 1)
-#define MALI_MASK_B (1 << 2)
-#define MALI_MASK_A (1 << 3)
-
 enum mali_nondominant_mode {
         MALI_BLEND_NON_MIRROR = 0,
         MALI_BLEND_NON_ZERO = 1
@@ -292,55 +253,6 @@
         };
 } __attribute__((packed));
 
-/* Descriptor for the shader. Following this is at least one, up to four blend
- * descriptors for each active render target */
-
-struct mali_shader_meta {
-        struct mali_shader_packed shader;
-
-        union {
-                struct mali_bifrost_properties_packed bifrost_props;
-                struct mali_midgard_properties_packed midgard_props;
-        };
-
-        /* Same as glPolygoOffset() arguments */
-        float depth_units;
-        float depth_factor;
-
-        u32 unknown2_2;
-
-        /* Generated from SAMPLE_COVERAGE_VALUE and SAMPLE_COVERAGE_INVERT. See
-         * 13.8.3 ("Multisample Fragment Operations") in the OpenGL ES 3.2
-         * specification. Only matters when multisampling is enabled. */
-        u16 coverage_mask;
-
-        u16 unknown2_3;
-
-        u8 stencil_mask_front;
-        u8 stencil_mask_back;
-        u16 unknown2_4;
-
-        struct mali_stencil_packed stencil_front;
-        struct mali_stencil_packed stencil_back;
-
-        union {
-                struct mali_preload_packed bifrost_preload;
-                struct {
-                        u32 unknown2_7;
-                } midgard2;
-        };
-
-        u32 padding;
-
-        /* Blending information for the older non-MRT Midgard HW. Check for
-         * MALI_HAS_BLEND_SHADER to decide how to interpret.
-         */
-
-        union midgard_blend blend;
-} __attribute__((packed));
-
-/* This only concerns hardware jobs */
-
 /* Possible values for job_descriptor_size */
 
 #define MALI_JOB_32 0
