[Beignet] [PATCH 2/6] BDW: Add gen8 surface state struct.

Yang Rong rong.r.yang at intel.com
Sun Sep 28 22:37:45 PDT 2014


From: Junyan He <junyan.he at linux.intel.com>

Signed-off-by: Junyan He <junyan.he at linux.intel.com>
---
 src/intel/intel_structs.h | 161 ++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 161 insertions(+)

diff --git a/src/intel/intel_structs.h b/src/intel/intel_structs.h
index ef76bb4..cbda90e 100644
--- a/src/intel/intel_structs.h
+++ b/src/intel/intel_structs.h
@@ -246,6 +246,167 @@ typedef struct gen7_surface_state
   } ss7;
 } gen7_surface_state_t;
 
+typedef struct gen8_surface_state
+{
+  struct {
+    union {
+      struct {
+        uint32_t cube_pos_z:1;
+        uint32_t cube_neg_z:1;
+        uint32_t cube_pos_y:1;
+        uint32_t cube_neg_y:1;
+        uint32_t cube_pos_x:1;
+        uint32_t cube_neg_x:1;
+      };
+      uint32_t pad1:6;
+    };
+    uint32_t media_boundary_pixel_mode:2;
+    uint32_t render_cache_rw_mode:1;
+    uint32_t sampler_L2_bypass_mode:1;
+    uint32_t vertical_line_stride_offset:1;
+    uint32_t vertical_line_stride:1;
+    uint32_t tile_mode:2;
+    uint32_t horizontal_alignment:2;
+    uint32_t vertical_alignment:2;
+    uint32_t surface_format:9;
+    uint32_t pad0:1;
+    uint32_t surface_array:1;
+    uint32_t surface_type:3;
+  } ss0;
+
+  struct {
+    uint32_t pad2:1;
+    uint32_t mem_obj_ctrl_state:7;
+    uint32_t base_mip_level:5;
+    uint32_t pad1:1;
+    uint32_t pad0:3;
+    uint32_t surface_qpitch:15;
+  } ss1;
+
+  struct {
+    uint32_t pad1:2;
+    uint32_t height:14;
+    uint32_t pad0:2;
+    uint32_t width:14;
+  } ss2;
+
+  struct {
+    uint32_t depth:11;
+    uint32_t pad1:1;
+    uint32_t pad0:2;
+    uint32_t surface_pitch:18;
+  } ss3;
+
+  struct {
+    union {
+      struct {
+        uint32_t pad1:1;
+        uint32_t render_target_and_sample_rotation:2;
+        uint32_t min_array_elt:11;
+        uint32_t render_target_view_ext:11;
+        uint32_t multisample_format:1;
+        uint32_t multisample_num:3;
+        uint32_t multisample_pos_palette_idx:3;
+      };
+
+      uint32_t pad0;
+    };
+  } ss4;
+
+  struct {
+    uint32_t x_offset:7;
+    uint32_t pad5:1;
+    uint32_t y_offset:3;
+    union {
+      uint32_t pad4:1;
+      uint32_t cube_ewa:1;
+    };
+    uint32_t pad3:2;
+    uint32_t pad2:3;
+    uint32_t conherency_type:1;
+    uint32_t pad1:2;
+    uint32_t pad0:4;
+    uint32_t surface_min_lod:4;
+    uint32_t mip_count:4;
+  } ss5;
+
+  struct {
+    union {
+      struct {
+        uint32_t seperate_uv_plane_enable:1;
+        uint32_t pad3:1;
+        uint32_t uv_plane_x_offset:14;
+      };
+      struct {
+        uint32_t pad2:1;
+        uint32_t aux_sruface_qpitch:15;
+      };
+    };
+
+    union {
+      struct {
+        uint32_t pad1:2;
+        uint32_t uv_plane_y_offset:14;
+      };
+      struct {
+        uint32_t pad0:4;
+        uint32_t aux_surface_pitch:9;
+        uint32_t aux_surface_mode:3;
+      };
+    };
+  } ss6;
+
+  struct {
+    uint32_t red_clear_color:1;
+    uint32_t green_clear_color:1;
+    uint32_t blue_clear_color:1;
+    uint32_t alpha_clear_color:1;
+    uint32_t shader_channel_select_red:3;
+    uint32_t shader_channel_select_green:3;
+    uint32_t shader_channel_select_blue:3;
+    uint32_t shader_channel_select_alpha:3;
+    uint32_t pad0:4;
+    uint32_t resource_min_lod:12;
+  } ss7;
+
+  struct {
+    uint32_t surface_base_addr_lo;
+    uint32_t surface_base_addr_hi;
+  } ss8_9;
+
+  struct {
+    union {
+      struct {
+        uint32_t pad5:2;
+        uint32_t v_plane_x_offset:14;
+        uint32_t pad4:2;
+        uint32_t v_plane_y_offset:14;
+        uint32_t pad3:20;
+      };
+      uint64_t aux_surface_base_addr:52;
+    };
+
+    uint32_t pad2:1;
+    uint32_t pad1:1;
+    uint32_t pad0:10;
+  } ss10_11;
+
+  struct {
+    uint32_t pad0;
+  } ss12;
+
+  /* 13~15 have meaning only when aux surface mode == AUX_HIZ */
+  struct {
+    uint32_t pad0;
+  } ss13;
+  struct {
+    uint32_t pad0;
+  } ss14;
+  struct {
+    uint32_t pad0;
+  } ss15;
+} gen8_surface_state_t;
+
 STATIC_ASSERT(sizeof(gen6_surface_state_t) == sizeof(gen7_surface_state_t));
 static const size_t surface_state_sz = sizeof(gen6_surface_state_t);
 
-- 
1.8.3.2



More information about the Beignet mailing list