[Libva] [Libva-intel-driver PATCH 15/25] SKL: Add the Render_SURFACE_STATE for SKL
Xiang, Haihao
haihao.xiang at intel.com
Mon Nov 17 20:45:21 PST 2014
From: Zhao Yakui <yakui.zhao at intel.com>
This is based on the hardware spec.
Signed-off-by: Zhao Yakui <yakui.zhao at intel.com>
---
src/i965_structs.h | 128 +++++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 128 insertions(+)
diff --git a/src/i965_structs.h b/src/i965_structs.h
index f15ee64..bb6b919 100644
--- a/src/i965_structs.h
+++ b/src/i965_structs.h
@@ -1283,6 +1283,130 @@ struct gen9_surface_state2
} ss7;
};
+struct gen9_surface_state
+{
+ struct {
+ unsigned int pad0:6;
+ unsigned int media_boundary_pixel_mode:2;
+ unsigned int render_cache_read_write:1;
+ unsigned int sampler_l2bypass_disable:1;
+ unsigned int vert_line_stride_ofs:1;
+ unsigned int vert_line_stride:1;
+ unsigned int tile_walk:1;
+ unsigned int tiled_surface:1;
+ unsigned int horizontal_alignment:2;
+ /* Field 16 */
+ unsigned int vertical_alignment:2;
+ unsigned int surface_format:9; /**< BRW_SURFACEFORMAT_x */
+ unsigned int astc_enable:1;
+ unsigned int is_array:1;
+ unsigned int surface_type:3; /**< BRW_SURFACE_1D/2D/3D/CUBE */
+ } ss0;
+
+ struct {
+ unsigned int surface_qpitch:15;
+ unsigned int pad0:4;
+ unsigned int base_mip_level:5;
+ unsigned int surface_mocs:7;
+ unsigned int pad1:1;
+ } ss1;
+
+ struct {
+ unsigned int width:14;
+ unsigned int pad0:2;
+ unsigned int height:14;
+ unsigned int pad1:2;
+ } ss2;
+
+ struct {
+ unsigned int pitch:18;
+ unsigned int pad:3;
+ unsigned int depth:11;
+ } ss3;
+
+ struct {
+ unsigned int multisample_position_palette_index:3;
+ unsigned int num_multisamples:3;
+ unsigned int multisampled_surface_storage_format:1;
+ unsigned int render_target_view_extent:11;
+ unsigned int min_array_elt:11;
+ unsigned int rotation:2;
+ unsigned int force_ncmp_reduce_type:1;
+ } ss4;
+
+ struct {
+ unsigned int mip_count:4;
+ unsigned int min_lod:4;
+ unsigned int miptail_start_lod:4;
+ unsigned int pad0:2;
+ unsigned int coherence_type:1;
+ unsigned int pad1:3;
+ unsigned int tr_mode:2;
+ unsigned int ewa_disable_cube:1;
+ unsigned int y_offset:3;
+ unsigned int pad2:1;
+ unsigned int x_offset:7;
+ } ss5;
+
+ struct {
+ unsigned int y_offset_uv_plane:14;
+ unsigned int pad0:2;
+ unsigned int x_offset_uv_plane:14;
+ unsigned int pad1:1;
+ unsigned int separate_uv_plane:1;
+ } ss6;
+
+ struct {
+ unsigned int resource_min_lod:12;
+ unsigned int pad0:4;
+ unsigned int shader_chanel_select_a:3;
+ unsigned int shader_chanel_select_b:3;
+ unsigned int shader_chanel_select_g:3;
+ unsigned int shader_chanel_select_r:3;
+ unsigned int pad1:2;
+ unsigned int memory_compression_enable:1;
+ unsigned int memory_compression_mode:1;
+ } ss7;
+
+ struct {
+ unsigned int base_addr;
+ } ss8;
+
+ struct {
+ unsigned int base_addr_high;
+ } ss9;
+
+ struct {
+ unsigned int quilt_width:5;
+ unsigned int quilt_height:5;
+ unsigned int pad0:6;
+ unsigned int pad1:16;
+ } ss10;
+
+ struct {
+ unsigned int y_offset_v_plane:14;
+ unsigned int pad0:2;
+ unsigned int x_offset_v_plane:14;
+ unsigned int pad1:2;
+ } ss11;
+
+ struct {
+ unsigned int pad0;
+ } ss12;
+
+ struct {
+ unsigned int pad0;
+ } ss13;
+
+ struct {
+ unsigned int pad0;
+ } ss14;
+
+ struct {
+ unsigned int pad0;
+ } ss15;
+};
+
struct gen8_sampler_state
{
struct
@@ -2021,4 +2145,8 @@ struct gen8_sampler_8x8_avs {
#define SURFACE_STATE_PADDED_SIZE_1_GEN8 ALIGN(sizeof(struct gen8_surface_state2), 32)
#define SURFACE_STATE_PADDED_SIZE_GEN8 MAX(SURFACE_STATE_PADDED_SIZE_0_GEN8, SURFACE_STATE_PADDED_SIZE_1_GEN8)
+#define SURFACE_STATE_PADDED_SIZE_0_GEN9 ALIGN(sizeof(struct gen9_surface_state), 32)
+#define SURFACE_STATE_PADDED_SIZE_1_GEN9 ALIGN(sizeof(struct gen9_surface_state2), 32)
+#define SURFACE_STATE_PADDED_SIZE_GEN9 MAX(SURFACE_STATE_PADDED_SIZE_0_GEN9, SURFACE_STATE_PADDED_SIZE_1_GEN9)
+
#endif /* _I965_STRUCTS_H_ */
--
1.9.1
More information about the Libva
mailing list