1*d83cc019SAndroid Build Coastguard Worker #ifndef GEN7_MEDIA_H 2*d83cc019SAndroid Build Coastguard Worker #define GEN7_MEDIA_H 3*d83cc019SAndroid Build Coastguard Worker 4*d83cc019SAndroid Build Coastguard Worker #include <stdint.h> 5*d83cc019SAndroid Build Coastguard Worker #include "surfaceformat.h" 6*d83cc019SAndroid Build Coastguard Worker 7*d83cc019SAndroid Build Coastguard Worker #define GEN7_FLOATING_POINT_IEEE_754 0 8*d83cc019SAndroid Build Coastguard Worker #define GEN7_FLOATING_POINT_NON_IEEE_754 1 9*d83cc019SAndroid Build Coastguard Worker 10*d83cc019SAndroid Build Coastguard Worker #define GFXPIPE(Pipeline,Opcode,Subopcode) ((3 << 29) | \ 11*d83cc019SAndroid Build Coastguard Worker ((Pipeline) << 27) | \ 12*d83cc019SAndroid Build Coastguard Worker ((Opcode) << 24) | \ 13*d83cc019SAndroid Build Coastguard Worker ((Subopcode) << 16)) 14*d83cc019SAndroid Build Coastguard Worker 15*d83cc019SAndroid Build Coastguard Worker #define GEN7_PIPELINE_SELECT GFXPIPE(1, 1, 4) 16*d83cc019SAndroid Build Coastguard Worker # define PIPELINE_SELECT_3D (0 << 0) 17*d83cc019SAndroid Build Coastguard Worker # define PIPELINE_SELECT_MEDIA (1 << 0) 18*d83cc019SAndroid Build Coastguard Worker # define PIPELINE_SELECT_GPGPU (2 << 0) 19*d83cc019SAndroid Build Coastguard Worker 20*d83cc019SAndroid Build Coastguard Worker #define GEN7_STATE_BASE_ADDRESS GFXPIPE(0, 1, 1) 21*d83cc019SAndroid Build Coastguard Worker # define BASE_ADDRESS_MODIFY (1 << 0) 22*d83cc019SAndroid Build Coastguard Worker 23*d83cc019SAndroid Build Coastguard Worker #define GEN7_MEDIA_VFE_STATE GFXPIPE(2, 0, 0) 24*d83cc019SAndroid Build Coastguard Worker #define GEN7_MEDIA_CURBE_LOAD GFXPIPE(2, 0, 1) 25*d83cc019SAndroid Build Coastguard Worker #define GEN7_MEDIA_INTERFACE_DESCRIPTOR_LOAD GFXPIPE(2, 0, 2) 26*d83cc019SAndroid Build Coastguard Worker #define GEN7_MEDIA_OBJECT GFXPIPE(2, 1, 0) 27*d83cc019SAndroid Build Coastguard Worker #define GEN7_GPGPU_WALKER GFXPIPE(2, 1, 5) 28*d83cc019SAndroid Build Coastguard Worker 29*d83cc019SAndroid Build Coastguard Worker struct gen7_interface_descriptor_data 30*d83cc019SAndroid Build Coastguard Worker { 31*d83cc019SAndroid Build Coastguard Worker struct { 32*d83cc019SAndroid Build Coastguard Worker uint32_t pad0:6; 33*d83cc019SAndroid Build Coastguard Worker uint32_t kernel_start_pointer:26; 34*d83cc019SAndroid Build Coastguard Worker } desc0; 35*d83cc019SAndroid Build Coastguard Worker 36*d83cc019SAndroid Build Coastguard Worker struct { 37*d83cc019SAndroid Build Coastguard Worker uint32_t pad0:7; 38*d83cc019SAndroid Build Coastguard Worker uint32_t software_exception_enable:1; 39*d83cc019SAndroid Build Coastguard Worker uint32_t pad1:3; 40*d83cc019SAndroid Build Coastguard Worker uint32_t maskstack_exception_enable:1; 41*d83cc019SAndroid Build Coastguard Worker uint32_t pad2:1; 42*d83cc019SAndroid Build Coastguard Worker uint32_t illegal_opcode_exception_enable:1; 43*d83cc019SAndroid Build Coastguard Worker uint32_t pad3:2; 44*d83cc019SAndroid Build Coastguard Worker uint32_t floating_point_mode:1; 45*d83cc019SAndroid Build Coastguard Worker uint32_t thread_priority:1; 46*d83cc019SAndroid Build Coastguard Worker uint32_t single_program_flow:1; 47*d83cc019SAndroid Build Coastguard Worker uint32_t pad4:13; 48*d83cc019SAndroid Build Coastguard Worker } desc1; 49*d83cc019SAndroid Build Coastguard Worker 50*d83cc019SAndroid Build Coastguard Worker struct { 51*d83cc019SAndroid Build Coastguard Worker uint32_t pad0:2; 52*d83cc019SAndroid Build Coastguard Worker uint32_t sampler_count:3; 53*d83cc019SAndroid Build Coastguard Worker uint32_t sampler_state_pointer:27; 54*d83cc019SAndroid Build Coastguard Worker } desc2; 55*d83cc019SAndroid Build Coastguard Worker 56*d83cc019SAndroid Build Coastguard Worker struct { 57*d83cc019SAndroid Build Coastguard Worker uint32_t binding_table_entry_count:5; 58*d83cc019SAndroid Build Coastguard Worker uint32_t binding_table_pointer:27; 59*d83cc019SAndroid Build Coastguard Worker } desc3; 60*d83cc019SAndroid Build Coastguard Worker 61*d83cc019SAndroid Build Coastguard Worker struct { 62*d83cc019SAndroid Build Coastguard Worker uint32_t constant_urb_entry_read_offset:16; 63*d83cc019SAndroid Build Coastguard Worker uint32_t constant_urb_entry_read_length:16; 64*d83cc019SAndroid Build Coastguard Worker } desc4; 65*d83cc019SAndroid Build Coastguard Worker 66*d83cc019SAndroid Build Coastguard Worker struct { 67*d83cc019SAndroid Build Coastguard Worker uint32_t num_threads:8; 68*d83cc019SAndroid Build Coastguard Worker uint32_t barrier_return_byte:8; 69*d83cc019SAndroid Build Coastguard Worker uint32_t shared_local_memory_size:5; 70*d83cc019SAndroid Build Coastguard Worker uint32_t barrier_enable:1; 71*d83cc019SAndroid Build Coastguard Worker uint32_t rounding_mode:2; 72*d83cc019SAndroid Build Coastguard Worker uint32_t barrier_return_grf_offset:8; 73*d83cc019SAndroid Build Coastguard Worker } desc5; 74*d83cc019SAndroid Build Coastguard Worker 75*d83cc019SAndroid Build Coastguard Worker struct { 76*d83cc019SAndroid Build Coastguard Worker uint32_t cross_thread_constant_data_read_length:8; 77*d83cc019SAndroid Build Coastguard Worker uint32_t pad0:24; 78*d83cc019SAndroid Build Coastguard Worker } desc6; 79*d83cc019SAndroid Build Coastguard Worker 80*d83cc019SAndroid Build Coastguard Worker struct { 81*d83cc019SAndroid Build Coastguard Worker uint32_t pad0; 82*d83cc019SAndroid Build Coastguard Worker } desc7; 83*d83cc019SAndroid Build Coastguard Worker }; 84*d83cc019SAndroid Build Coastguard Worker 85*d83cc019SAndroid Build Coastguard Worker struct gen7_surface_state 86*d83cc019SAndroid Build Coastguard Worker { 87*d83cc019SAndroid Build Coastguard Worker struct { 88*d83cc019SAndroid Build Coastguard Worker uint32_t cube_pos_z:1; 89*d83cc019SAndroid Build Coastguard Worker uint32_t cube_neg_z:1; 90*d83cc019SAndroid Build Coastguard Worker uint32_t cube_pos_y:1; 91*d83cc019SAndroid Build Coastguard Worker uint32_t cube_neg_y:1; 92*d83cc019SAndroid Build Coastguard Worker uint32_t cube_pos_x:1; 93*d83cc019SAndroid Build Coastguard Worker uint32_t cube_neg_x:1; 94*d83cc019SAndroid Build Coastguard Worker uint32_t pad2:2; 95*d83cc019SAndroid Build Coastguard Worker uint32_t render_cache_read_write:1; 96*d83cc019SAndroid Build Coastguard Worker uint32_t pad1:1; 97*d83cc019SAndroid Build Coastguard Worker uint32_t surface_array_spacing:1; 98*d83cc019SAndroid Build Coastguard Worker uint32_t vert_line_stride_ofs:1; 99*d83cc019SAndroid Build Coastguard Worker uint32_t vert_line_stride:1; 100*d83cc019SAndroid Build Coastguard Worker uint32_t tiled_mode:2; 101*d83cc019SAndroid Build Coastguard Worker uint32_t horizontal_alignment:1; 102*d83cc019SAndroid Build Coastguard Worker uint32_t vertical_alignment:2; 103*d83cc019SAndroid Build Coastguard Worker uint32_t surface_format:9; /**< BRW_SURFACEFORMAT_x */ 104*d83cc019SAndroid Build Coastguard Worker uint32_t pad0:1; 105*d83cc019SAndroid Build Coastguard Worker uint32_t is_array:1; 106*d83cc019SAndroid Build Coastguard Worker uint32_t surface_type:3; /**< BRW_SURFACE_1D/2D/3D/CUBE */ 107*d83cc019SAndroid Build Coastguard Worker } ss0; 108*d83cc019SAndroid Build Coastguard Worker 109*d83cc019SAndroid Build Coastguard Worker struct { 110*d83cc019SAndroid Build Coastguard Worker uint32_t base_addr; 111*d83cc019SAndroid Build Coastguard Worker } ss1; 112*d83cc019SAndroid Build Coastguard Worker 113*d83cc019SAndroid Build Coastguard Worker struct { 114*d83cc019SAndroid Build Coastguard Worker uint32_t width:14; 115*d83cc019SAndroid Build Coastguard Worker uint32_t pad1:2; 116*d83cc019SAndroid Build Coastguard Worker uint32_t height:14; 117*d83cc019SAndroid Build Coastguard Worker uint32_t pad0:2; 118*d83cc019SAndroid Build Coastguard Worker } ss2; 119*d83cc019SAndroid Build Coastguard Worker 120*d83cc019SAndroid Build Coastguard Worker struct { 121*d83cc019SAndroid Build Coastguard Worker uint32_t pitch:18; 122*d83cc019SAndroid Build Coastguard Worker uint32_t pad:3; 123*d83cc019SAndroid Build Coastguard Worker uint32_t depth:11; 124*d83cc019SAndroid Build Coastguard Worker } ss3; 125*d83cc019SAndroid Build Coastguard Worker 126*d83cc019SAndroid Build Coastguard Worker struct { 127*d83cc019SAndroid Build Coastguard Worker uint32_t multisample_position_palette_index:3; 128*d83cc019SAndroid Build Coastguard Worker uint32_t num_multisamples:3; 129*d83cc019SAndroid Build Coastguard Worker uint32_t multisampled_surface_storage_format:1; 130*d83cc019SAndroid Build Coastguard Worker uint32_t render_target_view_extent:11; 131*d83cc019SAndroid Build Coastguard Worker uint32_t min_array_elt:11; 132*d83cc019SAndroid Build Coastguard Worker uint32_t rotation:2; 133*d83cc019SAndroid Build Coastguard Worker uint32_t pad0:1; 134*d83cc019SAndroid Build Coastguard Worker } ss4; 135*d83cc019SAndroid Build Coastguard Worker 136*d83cc019SAndroid Build Coastguard Worker struct { 137*d83cc019SAndroid Build Coastguard Worker uint32_t mip_count:4; 138*d83cc019SAndroid Build Coastguard Worker uint32_t min_lod:4; 139*d83cc019SAndroid Build Coastguard Worker uint32_t pad1:12; 140*d83cc019SAndroid Build Coastguard Worker uint32_t y_offset:4; 141*d83cc019SAndroid Build Coastguard Worker uint32_t pad0:1; 142*d83cc019SAndroid Build Coastguard Worker uint32_t x_offset:7; 143*d83cc019SAndroid Build Coastguard Worker } ss5; 144*d83cc019SAndroid Build Coastguard Worker 145*d83cc019SAndroid Build Coastguard Worker struct { 146*d83cc019SAndroid Build Coastguard Worker uint32_t pad; /* Multisample Control Surface stuff */ 147*d83cc019SAndroid Build Coastguard Worker } ss6; 148*d83cc019SAndroid Build Coastguard Worker 149*d83cc019SAndroid Build Coastguard Worker struct { 150*d83cc019SAndroid Build Coastguard Worker uint32_t resource_min_lod:12; 151*d83cc019SAndroid Build Coastguard Worker uint32_t pad0:4; 152*d83cc019SAndroid Build Coastguard Worker uint32_t shader_chanel_select_a:3; 153*d83cc019SAndroid Build Coastguard Worker uint32_t shader_chanel_select_b:3; 154*d83cc019SAndroid Build Coastguard Worker uint32_t shader_chanel_select_g:3; 155*d83cc019SAndroid Build Coastguard Worker uint32_t shader_chanel_select_r:3; 156*d83cc019SAndroid Build Coastguard Worker uint32_t alpha_clear_color:1; 157*d83cc019SAndroid Build Coastguard Worker uint32_t blue_clear_color:1; 158*d83cc019SAndroid Build Coastguard Worker uint32_t green_clear_color:1; 159*d83cc019SAndroid Build Coastguard Worker uint32_t red_clear_color:1; 160*d83cc019SAndroid Build Coastguard Worker } ss7; 161*d83cc019SAndroid Build Coastguard Worker }; 162*d83cc019SAndroid Build Coastguard Worker 163*d83cc019SAndroid Build Coastguard Worker #endif /* GEN7_MEDIA_H */ 164