1*d83cc019SAndroid Build Coastguard Worker #ifndef GEN9_RENDER_H 2*d83cc019SAndroid Build Coastguard Worker #define GEN9_RENDER_H 3*d83cc019SAndroid Build Coastguard Worker 4*d83cc019SAndroid Build Coastguard Worker #include "gen8_render.h" 5*d83cc019SAndroid Build Coastguard Worker 6*d83cc019SAndroid Build Coastguard Worker #define GEN9_3DSTATE_COMPONENT_PACKING GEN4_3D(3, 0, 0x55) 7*d83cc019SAndroid Build Coastguard Worker 8*d83cc019SAndroid Build Coastguard Worker #define GEN9_SBE_ACTIVE_COMPONENT_NONE 0 9*d83cc019SAndroid Build Coastguard Worker #define GEN9_SBE_ACTIVE_COMPONENT_XY 1 10*d83cc019SAndroid Build Coastguard Worker #define GEN9_SBE_ACTIVE_COMPONENT_XYZ 2 11*d83cc019SAndroid Build Coastguard Worker #define GEN9_SBE_ACTIVE_COMPONENT_XYZW 3 12*d83cc019SAndroid Build Coastguard Worker 13*d83cc019SAndroid Build Coastguard Worker #define GEN9_PIPELINE_SELECTION_MASK (3 << 8) 14*d83cc019SAndroid Build Coastguard Worker #define GEN9_PIPELINE_SELECT (GEN4_3D(1, 1, 4) | (3 << 8)) 15*d83cc019SAndroid Build Coastguard Worker 16*d83cc019SAndroid Build Coastguard Worker #define GEN9_3DSTATE_MULTISAMPLE_NUMSAMPLES_16 (4 << 1) 17*d83cc019SAndroid Build Coastguard Worker 18*d83cc019SAndroid Build Coastguard Worker /* Shamelessly ripped from mesa */ 19*d83cc019SAndroid Build Coastguard Worker struct gen9_surface_state { 20*d83cc019SAndroid Build Coastguard Worker struct { 21*d83cc019SAndroid Build Coastguard Worker uint32_t cube_pos_z:1; 22*d83cc019SAndroid Build Coastguard Worker uint32_t cube_neg_z:1; 23*d83cc019SAndroid Build Coastguard Worker uint32_t cube_pos_y:1; 24*d83cc019SAndroid Build Coastguard Worker uint32_t cube_neg_y:1; 25*d83cc019SAndroid Build Coastguard Worker uint32_t cube_pos_x:1; 26*d83cc019SAndroid Build Coastguard Worker uint32_t cube_neg_x:1; 27*d83cc019SAndroid Build Coastguard Worker uint32_t media_boundary_pixel_mode:2; 28*d83cc019SAndroid Build Coastguard Worker uint32_t render_cache_read_write:1; 29*d83cc019SAndroid Build Coastguard Worker uint32_t smapler_l2_bypass:1; 30*d83cc019SAndroid Build Coastguard Worker uint32_t vert_line_stride_ofs:1; 31*d83cc019SAndroid Build Coastguard Worker uint32_t vert_line_stride:1; 32*d83cc019SAndroid Build Coastguard Worker uint32_t tiled_mode:2; 33*d83cc019SAndroid Build Coastguard Worker uint32_t horizontal_alignment:2; 34*d83cc019SAndroid Build Coastguard Worker uint32_t vertical_alignment:2; 35*d83cc019SAndroid Build Coastguard Worker uint32_t surface_format:9; /**< BRW_SURFACEFORMAT_x */ 36*d83cc019SAndroid Build Coastguard Worker uint32_t pad0:1; 37*d83cc019SAndroid Build Coastguard Worker uint32_t is_array:1; 38*d83cc019SAndroid Build Coastguard Worker uint32_t surface_type:3; /**< BRW_SURFACE_1D/2D/3D/CUBE */ 39*d83cc019SAndroid Build Coastguard Worker } ss0; 40*d83cc019SAndroid Build Coastguard Worker 41*d83cc019SAndroid Build Coastguard Worker struct { 42*d83cc019SAndroid Build Coastguard Worker uint32_t qpitch:15; 43*d83cc019SAndroid Build Coastguard Worker uint32_t pad1:4; 44*d83cc019SAndroid Build Coastguard Worker uint32_t base_mip_level:5; 45*d83cc019SAndroid Build Coastguard Worker uint32_t memory_object_control:7; 46*d83cc019SAndroid Build Coastguard Worker uint32_t pad0:1; 47*d83cc019SAndroid Build Coastguard Worker } ss1; 48*d83cc019SAndroid Build Coastguard Worker 49*d83cc019SAndroid Build Coastguard Worker struct { 50*d83cc019SAndroid Build Coastguard Worker uint32_t width:14; 51*d83cc019SAndroid Build Coastguard Worker uint32_t pad1:2; 52*d83cc019SAndroid Build Coastguard Worker uint32_t height:14; 53*d83cc019SAndroid Build Coastguard Worker uint32_t pad0:2; 54*d83cc019SAndroid Build Coastguard Worker } ss2; 55*d83cc019SAndroid Build Coastguard Worker 56*d83cc019SAndroid Build Coastguard Worker struct { 57*d83cc019SAndroid Build Coastguard Worker uint32_t pitch:18; 58*d83cc019SAndroid Build Coastguard Worker uint32_t pad:3; 59*d83cc019SAndroid Build Coastguard Worker uint32_t depth:11; 60*d83cc019SAndroid Build Coastguard Worker } ss3; 61*d83cc019SAndroid Build Coastguard Worker 62*d83cc019SAndroid Build Coastguard Worker struct { 63*d83cc019SAndroid Build Coastguard Worker uint32_t minimum_array_element:27; 64*d83cc019SAndroid Build Coastguard Worker uint32_t pad0:5; 65*d83cc019SAndroid Build Coastguard Worker } ss4; 66*d83cc019SAndroid Build Coastguard Worker 67*d83cc019SAndroid Build Coastguard Worker struct { 68*d83cc019SAndroid Build Coastguard Worker uint32_t mip_count:4; 69*d83cc019SAndroid Build Coastguard Worker uint32_t min_lod:4; 70*d83cc019SAndroid Build Coastguard Worker uint32_t mip_tail_start_lod:4; 71*d83cc019SAndroid Build Coastguard Worker uint32_t pad3:2; 72*d83cc019SAndroid Build Coastguard Worker uint32_t coherency_type:1; 73*d83cc019SAndroid Build Coastguard Worker uint32_t pad2:3; 74*d83cc019SAndroid Build Coastguard Worker uint32_t trmode:2; 75*d83cc019SAndroid Build Coastguard Worker uint32_t ewa_disable_for_cube:1; 76*d83cc019SAndroid Build Coastguard Worker uint32_t y_offset:3; 77*d83cc019SAndroid Build Coastguard Worker uint32_t pad0:1; 78*d83cc019SAndroid Build Coastguard Worker uint32_t x_offset:7; 79*d83cc019SAndroid Build Coastguard Worker } ss5; 80*d83cc019SAndroid Build Coastguard Worker 81*d83cc019SAndroid Build Coastguard Worker struct { 82*d83cc019SAndroid Build Coastguard Worker uint32_t aux_mode:3; 83*d83cc019SAndroid Build Coastguard Worker uint32_t aux_pitch:9; 84*d83cc019SAndroid Build Coastguard Worker uint32_t pad0:4; 85*d83cc019SAndroid Build Coastguard Worker uint32_t aux_qpitch:15; 86*d83cc019SAndroid Build Coastguard Worker uint32_t pad1:1; 87*d83cc019SAndroid Build Coastguard Worker } ss6; 88*d83cc019SAndroid Build Coastguard Worker 89*d83cc019SAndroid Build Coastguard Worker struct { 90*d83cc019SAndroid Build Coastguard Worker uint32_t resource_min_lod:12; 91*d83cc019SAndroid Build Coastguard Worker 92*d83cc019SAndroid Build Coastguard Worker /* Only on Haswell */ 93*d83cc019SAndroid Build Coastguard Worker uint32_t pad0:4; 94*d83cc019SAndroid Build Coastguard Worker uint32_t shader_chanel_select_a:3; 95*d83cc019SAndroid Build Coastguard Worker uint32_t shader_chanel_select_b:3; 96*d83cc019SAndroid Build Coastguard Worker uint32_t shader_chanel_select_g:3; 97*d83cc019SAndroid Build Coastguard Worker uint32_t shader_chanel_select_r:3; 98*d83cc019SAndroid Build Coastguard Worker 99*d83cc019SAndroid Build Coastguard Worker uint32_t alpha_clear_color:1; 100*d83cc019SAndroid Build Coastguard Worker uint32_t blue_clear_color:1; 101*d83cc019SAndroid Build Coastguard Worker uint32_t green_clear_color:1; 102*d83cc019SAndroid Build Coastguard Worker uint32_t red_clear_color:1; 103*d83cc019SAndroid Build Coastguard Worker } ss7; 104*d83cc019SAndroid Build Coastguard Worker 105*d83cc019SAndroid Build Coastguard Worker struct { 106*d83cc019SAndroid Build Coastguard Worker uint32_t base_addr; 107*d83cc019SAndroid Build Coastguard Worker } ss8; 108*d83cc019SAndroid Build Coastguard Worker 109*d83cc019SAndroid Build Coastguard Worker struct { 110*d83cc019SAndroid Build Coastguard Worker uint32_t base_addr_hi; 111*d83cc019SAndroid Build Coastguard Worker } ss9; 112*d83cc019SAndroid Build Coastguard Worker 113*d83cc019SAndroid Build Coastguard Worker struct { 114*d83cc019SAndroid Build Coastguard Worker uint32_t aux_base_addr; 115*d83cc019SAndroid Build Coastguard Worker } ss10; 116*d83cc019SAndroid Build Coastguard Worker 117*d83cc019SAndroid Build Coastguard Worker struct { 118*d83cc019SAndroid Build Coastguard Worker uint32_t aux_base_addr_hi; 119*d83cc019SAndroid Build Coastguard Worker } ss11; 120*d83cc019SAndroid Build Coastguard Worker 121*d83cc019SAndroid Build Coastguard Worker struct { 122*d83cc019SAndroid Build Coastguard Worker uint32_t hiz_depth_clear_value; 123*d83cc019SAndroid Build Coastguard Worker } ss12; 124*d83cc019SAndroid Build Coastguard Worker 125*d83cc019SAndroid Build Coastguard Worker struct { 126*d83cc019SAndroid Build Coastguard Worker uint32_t reserved; 127*d83cc019SAndroid Build Coastguard Worker } ss13; 128*d83cc019SAndroid Build Coastguard Worker 129*d83cc019SAndroid Build Coastguard Worker struct { 130*d83cc019SAndroid Build Coastguard Worker uint32_t reserved; 131*d83cc019SAndroid Build Coastguard Worker } ss14; 132*d83cc019SAndroid Build Coastguard Worker 133*d83cc019SAndroid Build Coastguard Worker struct { 134*d83cc019SAndroid Build Coastguard Worker uint32_t reserved; 135*d83cc019SAndroid Build Coastguard Worker } ss15; 136*d83cc019SAndroid Build Coastguard Worker }; 137*d83cc019SAndroid Build Coastguard Worker 138*d83cc019SAndroid Build Coastguard Worker #endif 139