[Libva] [LIBVA_INTEL_DRIVER][PATCH V2 5/8] Initialize one 10bit-scaling gpe_context for Gen9

Zhao Yakui yakui.zhao at intel.com
Wed Nov 16 01:01:34 UTC 2016


On 11/15/2016 06:43 AM, Sean V Kelley wrote:
> On Thu, Nov 10, 2016 at 5:56 PM, Zhao Yakui<yakui.zhao at intel.com>  wrote:
>> V1->V2: Add the conv_p010.g9b shader into the dist list
>>
>> Signed-off-by: Zhao Yakui<yakui.zhao at intel.com>
>> ---
>>   src/gen75_vpp_vebox.c                          |   2 +
>>   src/gen75_vpp_vebox.h                          |   1 -
>>   src/gen8_post_processing.c                     |   5 +
>>   src/gen8_post_processing.h                     |   9 +
>>   src/gen9_post_processing.c                     | 487 +++++++++++++++
>>   src/i965_drv_video.c                           |   2 +
>>   src/i965_encoder.c                             |   2 +
>>   src/i965_gpe_utils.c                           |  30 +-
>>   src/i965_gpe_utils.h                           |   4 +-
>>   src/i965_post_processing.h                     |  10 +
>>   src/i965_render.h                              |   1 -
>>   src/shaders/post_processing/gen9/Makefile.am   |   4 +
>>   src/shaders/post_processing/gen9/conv_p010.g9b | 783 +++++++++++++++++++++++++
>>   13 files changed, 1336 insertions(+), 4 deletions(-)
>>   create mode 100644 src/shaders/post_processing/gen9/conv_p010.g9b
>>
>> diff --git a/src/gen75_vpp_vebox.c b/src/gen75_vpp_vebox.c
>> index a71f905..0c52765 100644
>> --- a/src/gen75_vpp_vebox.c
>> +++ b/src/gen75_vpp_vebox.c
>> @@ -39,6 +39,8 @@
>>   #include "gen75_vpp_vebox.h"
>>   #include "intel_media.h"
>>
>> +#include "i965_post_processing.h"
>> +
>>   #define PI  3.1415926
>>
>>   extern VAStatus
>> diff --git a/src/gen75_vpp_vebox.h b/src/gen75_vpp_vebox.h
>> index 740c383..d1fb32d 100644
>> --- a/src/gen75_vpp_vebox.h
>> +++ b/src/gen75_vpp_vebox.h
>> @@ -36,7 +36,6 @@
>>   #include<va/va_vpp.h>
>>   #include "i965_drv_video.h"
>>
>> -#include "i965_post_processing.h"
>>   #include "gen75_vpp_gpe.h"
>>
>>   #define INPUT_SURFACE  0
>> diff --git a/src/gen8_post_processing.c b/src/gen8_post_processing.c
>> index 687cedc..708918b 100644
>> --- a/src/gen8_post_processing.c
>> +++ b/src/gen8_post_processing.c
>> @@ -1539,6 +1539,11 @@ static void
>>   gen8_post_processing_context_finalize(VADriverContextP ctx,
>>       struct i965_post_processing_context *pp_context)
>>   {
>> +    if (pp_context->scaling_context_initialized) {
>> +        gen8_gpe_context_destroy(&pp_context->scaling_10bit_context);
>> +        pp_context->scaling_context_initialized = 0;
>> +    }
>> +
>>       if(pp_context->vebox_proc_ctx){
>>          gen75_vebox_context_destroy(ctx,pp_context->vebox_proc_ctx);
>>          pp_context->vebox_proc_ctx = NULL;
>> diff --git a/src/gen8_post_processing.h b/src/gen8_post_processing.h
>> index f3c09a8..bd0601a 100644
>> --- a/src/gen8_post_processing.h
>> +++ b/src/gen8_post_processing.h
>> @@ -85,4 +85,13 @@ gen8_post_processing_context_common_init(VADriverContextP ctx,
>>                                            struct pp_module *pp_modules,
>>                                            int num_pp_modules,
>>                                            struct intel_batchbuffer *batch);
>> +extern VAStatus
>> +gen9_p010_scaling_post_processing(
>> +    VADriverContextP   ctx,
>> +    struct i965_post_processing_context *pp_context,
>> +    struct i965_surface *src_surface,
>> +    VARectangle *src_rect,
>> +    struct i965_surface *dst_surface,
>> +    VARectangle *dst_rect);
>> +
>>   #endif
>> diff --git a/src/gen9_post_processing.c b/src/gen9_post_processing.c
>> index 46a156f..a5d345c 100644
>> --- a/src/gen9_post_processing.c
>> +++ b/src/gen9_post_processing.c
>> @@ -103,6 +103,46 @@ static const uint32_t pp_nv12_load_save_rgbx_gen9[][4] = {
>>   static const uint32_t pp_nv12_blending_gen9[][4] = {
>>   };
>>
>> +#define MAX_SCALING_SURFACES    16
>> +
>> +#define DEFAULT_MOCS    0x02
>> +#define SRC_MSB         0x0001
>> +#define DST_MSB         0x0002
>> +#define SRC_PACKED      0x0004
>> +#define DST_PACKED      0x0008
>> +#define PACKED_MASK     0x000C
>> +
>> +#define BTI_SCALING_INPUT_Y     0
>> +#define BTI_SCALING_OUTPUT_Y    8
>> +
>> +struct scaling_input_parameter {
>> +    unsigned int input_data[5];
>> +
>> +    float inv_width;
>> +    float inv_height;
>> +
>> +    struct {
>> +        unsigned int src_msb : 1;
>> +        unsigned int dst_msb : 1;
>> +        unsigned int src_packed : 1;
>> +        unsigned int dst_packed : 1;
>> +        unsigned int reserved : 28;
>> +    } dw7;
>> +
>> +    int x_dst;
>> +    int y_dst;
>> +    float    x_factor; // src_rect_width / dst_rect_width / Surface_width
>> +    float    y_factor; // src_rect_height / dst_rect_height / Surface_height
>> +    float    x_orig;
>> +    float    y_orig;
>> +    unsigned int bti_input;
>> +    unsigned int bti_output;
>> +};
>> +
>> +static const uint32_t pp_10bit_scaling_gen9[][4] = {
>> +#include "shaders/post_processing/gen9/conv_p010.g9b"
>> +};
>> +
>>   static struct pp_module pp_modules_gen9[] = {
>>       {
>>           {
>> @@ -438,15 +478,462 @@ gen9_post_processing(VADriverContextP ctx,
>>       return va_status;
>>   }
>>
>> +static void
>> +gen9_p010_scaling_sample_state(VADriverContextP ctx,
>> +                               struct i965_gpe_context *gpe_context,
>> +                               VARectangle *src_rect,
>> +                               VARectangle *dst_rect)
>> +{
>> +    struct gen8_sampler_state *sampler_state;
>> +
>> +    if (gpe_context == NULL || !src_rect || !dst_rect)
>> +        return;
>> +    dri_bo_map(gpe_context->dynamic_state.bo, 1);
>> +
>> +    if (gpe_context->dynamic_state.bo->virtual == NULL)
>> +        return;
>> +
>> +    assert(gpe_context->dynamic_state.bo->virtual);
>> +
>> +    sampler_state = (struct gen8_sampler_state *)
>> +       (gpe_context->dynamic_state.bo->virtual + gpe_context->sampler_offset);
>> +
>> +    memset(sampler_state, 0, sizeof(*sampler_state));
>> +
>> +    if ((src_rect->width == dst_rect->width)&&
>> +        (src_rect->height == dst_rect->height)) {
>> +        sampler_state->ss0.min_filter = I965_MAPFILTER_NEAREST;
>> +        sampler_state->ss0.mag_filter = I965_MAPFILTER_NEAREST;
>> +    } else {
>> +        sampler_state->ss0.min_filter = I965_MAPFILTER_LINEAR;
>> +        sampler_state->ss0.mag_filter = I965_MAPFILTER_LINEAR;
>> +    }
>> +
>> +    sampler_state->ss3.r_wrap_mode = I965_TEXCOORDMODE_CLAMP;
>> +    sampler_state->ss3.s_wrap_mode = I965_TEXCOORDMODE_CLAMP;
>> +    sampler_state->ss3.t_wrap_mode = I965_TEXCOORDMODE_CLAMP;
>> +
>> +    dri_bo_unmap(gpe_context->dynamic_state.bo);
>> +}
>> +
>>   void
>>   gen9_post_processing_context_init(VADriverContextP ctx,
>>                                     void *data,
>>                                     struct intel_batchbuffer *batch)
>>   {
>> +    struct i965_driver_data *i965 = i965_driver_data(ctx);
>>       struct i965_post_processing_context *pp_context = data;
>> +    struct i965_gpe_context *gpe_context;
>> +    struct i965_kernel scaling_kernel;
>>
>>       gen8_post_processing_context_common_init(ctx, data, pp_modules_gen9, ARRAY_ELEMS(pp_modules_gen9), batch);
>>       avs_init_state(&pp_context->pp_avs_context.state,&gen9_avs_config);
>>
>>       pp_context->intel_post_processing = gen9_post_processing;
>> +
>> +    gpe_context =&pp_context->scaling_10bit_context;
>> +    memset(&scaling_kernel, 0, sizeof(scaling_kernel));
>> +    scaling_kernel.bin = pp_10bit_scaling_gen9;
>> +    scaling_kernel.size = sizeof(pp_10bit_scaling_gen9);
>> +    gen8_gpe_load_kernels(ctx, gpe_context,&scaling_kernel, 1);
>> +    gpe_context->idrt_size = ALIGN(sizeof(struct gen8_interface_descriptor_data), 64);
>> +    gpe_context->sampler_size = ALIGN(sizeof(struct gen8_sampler_state), 64);
>> +    gpe_context->curbe_size = ALIGN(sizeof(struct scaling_input_parameter), 64);
>> +    gpe_context->curbe.length = gpe_context->curbe_size;
>> +
>> +    gpe_context->surface_state_binding_table.max_entries = MAX_SCALING_SURFACES;
>> +    gpe_context->surface_state_binding_table.binding_table_offset = 0;
>> +    gpe_context->surface_state_binding_table.surface_state_offset = ALIGN(MAX_SCALING_SURFACES * 4, 64);
>> +    gpe_context->surface_state_binding_table.length = ALIGN(MAX_SCALING_SURFACES * 4, 64) + ALIGN(MAX_SCALING_SURFACES * SURFACE_STATE_PADDED_SIZE_GEN9, 64);
>> +
>> +    if (i965->intel.has_bsd2)
>> +        gpe_context->vfe_state.max_num_threads = 300;
>> +    else
>> +        gpe_context->vfe_state.max_num_threads = 60;
>> +
>> +    gpe_context->vfe_state.curbe_allocation_size = 37;
>> +    gpe_context->vfe_state.urb_entry_size = 16;
>> +    gpe_context->vfe_state.num_urb_entries = 127;
>> +    gpe_context->vfe_state.gpgpu_mode = 0;
>> +
>> +    gen8_gpe_context_init(ctx, gpe_context);
>> +    pp_context->scaling_context_initialized = 1;
>> +    return;
>> +}
>> +
>> +static void
>> +gen9_add_dri_buffer_2d_gpe_surface(VADriverContextP ctx,
>> +                                   struct i965_gpe_context *gpe_context,
>> +                                   dri_bo *bo,
>> +                                   unsigned int bo_offset,
>> +                                   unsigned int width,
>> +                                   unsigned int height,
>> +                                   unsigned int pitch,
>> +                                   int is_media_block_rw,
>> +                                   unsigned int format,
>> +                                   int index,
>> +                                   int is_10bit)
>> +{
>> +    struct i965_gpe_resource gpe_resource;
>> +    struct i965_gpe_surface gpe_surface;
>> +
>> +    i965_gpe_dri_object_to_2d_gpe_resource(&gpe_resource, bo, width, height, pitch);
>> +    memset(&gpe_surface, 0, sizeof(gpe_surface));
>> +    gpe_surface.gpe_resource =&gpe_resource;
>> +    gpe_surface.is_2d_surface = 1;
>> +    gpe_surface.is_media_block_rw = !!is_media_block_rw;
>> +    gpe_surface.cacheability_control = DEFAULT_MOCS;
>> +    gpe_surface.format = format;
>> +    gpe_surface.is_override_offset = 1;
>> +    gpe_surface.offset = bo_offset;
>> +    gpe_surface.is_16bpp = is_10bit;
>> +
>> +    gen9_gpe_context_add_surface(gpe_context,&gpe_surface, index);
>> +
>> +    i965_free_gpe_resource(&gpe_resource);
>> +}
>> +
>> +static void
>> +gen9_run_kernel_media_object_walker(VADriverContextP ctx,
>> +                                    struct intel_batchbuffer *batch,
>> +                                    struct i965_gpe_context *gpe_context,
>> +                                    struct gpe_media_object_walker_parameter *param)
>> +{
>> +    if (!batch || !gpe_context || !param)
>> +        return;
>> +
>> +    intel_batchbuffer_start_atomic(batch, 0x1000);
>> +
>> +    intel_batchbuffer_emit_mi_flush(batch);
>> +
>> +    gen9_gpe_pipeline_setup(ctx, gpe_context, batch);
>> +    gen9_gpe_media_object_walker(ctx, gpe_context, batch, param);
>> +    gen8_gpe_media_state_flush(ctx, gpe_context, batch);
>> +
>> +    gen9_gpe_pipeline_end(ctx, gpe_context, batch);
>> +
>> +    intel_batchbuffer_end_atomic(batch);
>> +
>> +    intel_batchbuffer_flush(batch);
>> +    return;
>> +}
>> +
>> +static unsigned int
>> +pp_get_surface_fourcc(VADriverContextP ctx, struct i965_surface *surface)
>> +{
>> +    unsigned int fourcc;
>> +
>> +    if (surface->type == I965_SURFACE_TYPE_IMAGE) {
>> +        struct object_image *obj_image = (struct object_image *)surface->base;
>> +        fourcc = obj_image->image.format.fourcc;
>> +    } else {
>> +        struct object_surface *obj_surface = (struct object_surface *)surface->base;
>> +        fourcc = obj_surface->fourcc;
>> +    }
>> +
>> +    return fourcc;
>> +}
>> +
>> +static void
>> +gen9_gpe_context_p010_scaling_curbe(VADriverContextP ctx,
>> +                               struct i965_gpe_context *gpe_context,
>> +                               VARectangle *src_rect,
>> +                               struct i965_surface *src_surface,
>> +                               VARectangle *dst_rect,
>> +                               struct i965_surface *dst_surface)
>> +{
>> +    struct scaling_input_parameter *scaling_curbe;
>> +    float src_width, src_height;
>> +    float coeff;
>> +    unsigned int fourcc;
>> +
>> +    if ((gpe_context == NULL) ||
>> +        (src_rect == NULL) || (src_surface == NULL) ||
>> +        (dst_rect == NULL) || (dst_surface == NULL))
>> +        return;
>> +
>> +    scaling_curbe = gen8p_gpe_context_map_curbe(gpe_context);
>> +
>> +    if (!scaling_curbe)
>> +        return;
>> +
>> +    memset(scaling_curbe, 0, sizeof(struct scaling_input_parameter));
>> +
>> +    scaling_curbe->bti_input = BTI_SCALING_INPUT_Y;
>> +    scaling_curbe->bti_output = BTI_SCALING_OUTPUT_Y;
>> +
>> +    /* As the src_rect/dst_rect is already checked, it is skipped.*/
>> +    scaling_curbe->x_dst     = dst_rect->x;
>> +    scaling_curbe->y_dst     = dst_rect->y;
>> +
>> +    src_width = src_rect->x + src_rect->width;
>> +    src_height = src_rect->y + src_rect->height;
>> +
>> +    scaling_curbe->inv_width = 1 / src_width;
>> +    scaling_curbe->inv_height = 1 / src_height;
>> +
>> +    coeff = (float) (src_rect->width) / dst_rect->width;
>> +    scaling_curbe->x_factor = coeff / src_width;
>> +    scaling_curbe->x_orig = (float)(src_rect->x) / src_width;
>> +
>> +    coeff = (float) (src_rect->height) / dst_rect->height;
>> +    scaling_curbe->y_factor = coeff / src_height;
>> +    scaling_curbe->y_orig = (float)(src_rect->y) / src_height;
>> +
>> +    fourcc = pp_get_surface_fourcc(ctx, src_surface);
>> +    if (fourcc == VA_FOURCC_P010) {
>> +        scaling_curbe->dw7.src_packed = 1;
>> +        scaling_curbe->dw7.src_msb = 1;
>> +    }
>> +    /* I010 will use LSB */
>> +
>> +    fourcc = pp_get_surface_fourcc(ctx, dst_surface);
>> +
>> +    if (fourcc == VA_FOURCC_P010) {
>> +        scaling_curbe->dw7.dst_packed = 1;
>> +        scaling_curbe->dw7.dst_msb = 1;
>> +    }
>> +    /* I010 will use LSB */
>> +
>> +    gen8p_gpe_context_unmap_curbe(gpe_context);
>> +}
>> +
>> +static bool
>> +gen9_pp_context_get_surface_conf(VADriverContextP ctx,
>> +                                 struct i965_surface *surface,
>> +                                 VARectangle *rect,
>> +                                 int *width,
>> +                                 int *height,
>> +                                 int *pitch,
>> +                                 int *bo_offset)
>> +{
>> +    unsigned int fourcc;
>> +    if (!rect || !surface || !width || !height || !pitch || !bo_offset)
>> +        return false;
>> +
>> +    if (surface->base == NULL)
>> +        return false;
>> +
>> +    fourcc = pp_get_surface_fourcc(ctx, surface);
>> +    if (surface->type == I965_SURFACE_TYPE_SURFACE) {
>> +        struct object_surface *obj_surface;
>> +
>> +        obj_surface = (struct object_surface *)surface->base;
>> +        width[0] = MIN(rect->x + rect->width, obj_surface->orig_width);
>> +        height[0] = MIN(rect->y + rect->height, obj_surface->orig_height);
>> +        pitch[0] = obj_surface->width;
>> +        bo_offset[0] = 0;
>> +
>> +        if (fourcc == VA_FOURCC_P010) {
>> +            width[1] = width[0] / 2;
>> +            height[1] = height[0] / 2;
>> +            pitch[1] = obj_surface->cb_cr_pitch;
>> +            bo_offset[1] = obj_surface->width * obj_surface->y_cb_offset;
>> +        } else {
>> +            /* I010 format */
>> +            width[1] = width[0] / 2;
>> +            height[1] = height[0] / 2;
>> +            pitch[1] = obj_surface->cb_cr_pitch;
>> +            bo_offset[1] = obj_surface->width * obj_surface->y_cb_offset;
>> +            width[2] = width[0] / 2;
>> +            height[2] = height[0] / 2;
>> +            pitch[2] = obj_surface->cb_cr_pitch;
>> +            bo_offset[2] = obj_surface->width * obj_surface->y_cr_offset;
>> +        }
>> +
>> +    } else {
>> +        struct object_image *obj_image;
>> +
>> +        obj_image = (struct object_image *)surface->base;
>> +
>> +        width[0] = MIN(rect->x + rect->width, obj_image->image.width);
>> +        height[0] = MIN(rect->y + rect->height, obj_image->image.height);
>> +        pitch[0] = obj_image->image.pitches[0];
>> +        bo_offset[0] = obj_image->image.offsets[0];
>> +
>> +        if (fourcc == VA_FOURCC_P010) {
>> +            width[1] = width[0] / 2;
>> +            height[1] = height[0] / 2;
>> +            pitch[1] = obj_image->image.pitches[1];
>> +            bo_offset[1] = obj_image->image.offsets[1];
>> +        } else {
>> +            /* I010 format */
>> +            width[1] = width[0] / 2;
>> +            height[1] = height[0] / 2;
>> +            pitch[1] = obj_image->image.pitches[1];
>> +            bo_offset[1] = obj_image->image.offsets[1];
>> +            width[2] = width[0] / 2;
>> +            height[2] = height[0] / 2;
>> +            pitch[2] = obj_image->image.pitches[2];
>> +            bo_offset[2] = obj_image->image.offsets[2];
>> +        }
>> +
>> +    }
>> +
>> +    return true;
>> +}
>> +
>> +static void
>> +gen9_gpe_context_p010_scaling_surfaces(VADriverContextP ctx,
>> +                               struct i965_gpe_context *gpe_context,
>> +                               VARectangle *src_rect,
>> +                               struct i965_surface *src_surface,
>> +                               VARectangle *dst_rect,
>> +                               struct i965_surface *dst_surface)
>> +{
>> +    unsigned int fourcc;
>> +    int width[3], height[3], pitch[3], bo_offset[3];
>> +    dri_bo *bo;
>> +    struct object_surface *obj_surface;
>> +    struct object_image *obj_image;
>> +    int bti;
>> +
>> +    if ((gpe_context == NULL) ||
>> +        (src_rect == NULL) || (src_surface == NULL) ||
>> +        (dst_rect == NULL) || (dst_surface == NULL))
>> +        return;
>> +
>> +    if (src_surface->base == NULL || dst_surface->base == NULL)
>> +        return;
>> +
>> +    fourcc = pp_get_surface_fourcc(ctx, src_surface);
>> +
>> +    if (src_surface->type == I965_SURFACE_TYPE_SURFACE) {
>> +        obj_surface = (struct object_surface *)src_surface->base;
>> +        bo = obj_surface->bo;
>> +    } else {
>> +        obj_image = (struct object_image *)src_surface->base;
>> +        bo = obj_image->bo;
>> +    }
>> +
>> +    bti = 0;
>> +    if (gen9_pp_context_get_surface_conf(ctx, src_surface, src_rect,
>> +                                         width, height, pitch,
>> +                                         bo_offset)) {
>> +        bti = BTI_SCALING_INPUT_Y;
>> +        /* Input surface */
>> +        gen9_add_dri_buffer_2d_gpe_surface(ctx, gpe_context, bo,
>> +                                           bo_offset[0],
>> +                                           width[0], height[0],
>> +                                           pitch[0], 0,
>> +                                           I965_SURFACEFORMAT_R16_UNORM,
>> +                                           bti, 1);
>> +        if (fourcc == VA_FOURCC_P010) {
>> +            gen9_add_dri_buffer_2d_gpe_surface(ctx, gpe_context, bo,
>> +                                           bo_offset[1],
>> +                                           width[1], height[1],
>> +                                           pitch[1], 0,
>> +                                           I965_SURFACEFORMAT_R16G16_UNORM,
>> +                                           bti + 1, 1);
>> +        } else {
>> +            gen9_add_dri_buffer_2d_gpe_surface(ctx, gpe_context, bo,
>> +                                           bo_offset[1],
>> +                                           width[1], height[1],
>> +                                           pitch[1], 0,
>> +                                           I965_SURFACEFORMAT_R16_UNORM,
>> +                                           bti + 1, 1);
>> +
>> +            gen9_add_dri_buffer_2d_gpe_surface(ctx, gpe_context, bo,
>> +                                           bo_offset[2],
>> +                                           width[2], height[2],
>> +                                           pitch[2], 0,
>> +                                           I965_SURFACEFORMAT_R16_UNORM,
>> +                                           bti + 2, 1);
>> +        }
>> +    }
>> +
>> +    fourcc = pp_get_surface_fourcc(ctx, dst_surface);
>> +
>> +    if (dst_surface->type == I965_SURFACE_TYPE_SURFACE) {
>> +        obj_surface = (struct object_surface *)dst_surface->base;
>> +        bo = obj_surface->bo;
>> +    } else {
>> +        obj_image = (struct object_image *)dst_surface->base;
>> +        bo = obj_image->bo;
>> +    }
>> +
>> +    if (gen9_pp_context_get_surface_conf(ctx, dst_surface, dst_rect,
>> +                                         width, height, pitch,
>> +                                         bo_offset)) {
>> +        bti = BTI_SCALING_OUTPUT_Y;
>> +        /* Input surface */
>> +        gen9_add_dri_buffer_2d_gpe_surface(ctx, gpe_context, bo,
>> +                                           bo_offset[0],
>> +                                           width[0], height[0],
>> +                                           pitch[0], 1,
>> +                                           I965_SURFACEFORMAT_R16_UINT,
>> +                                           bti, 1);
>> +        if (fourcc == VA_FOURCC_P010) {
>> +            gen9_add_dri_buffer_2d_gpe_surface(ctx, gpe_context, bo,
>> +                                           bo_offset[1],
>> +                                           width[1] * 2, height[1],
>> +                                           pitch[1], 1,
>> +                                           I965_SURFACEFORMAT_R16_UINT,
>> +                                           bti + 1, 1);
>> +        } else {
>> +            gen9_add_dri_buffer_2d_gpe_surface(ctx, gpe_context, bo,
>> +                                           bo_offset[1],
>> +                                           width[1], height[1],
>> +                                           pitch[1], 1,
>> +                                           I965_SURFACEFORMAT_R16_UINT,
>> +                                           bti + 1, 1);
>> +
>> +            gen9_add_dri_buffer_2d_gpe_surface(ctx, gpe_context, bo,
>> +                                           bo_offset[2],
>> +                                           width[2], height[2],
>> +                                           pitch[2], 1,
>> +                                           I965_SURFACEFORMAT_R16_UINT,
>> +                                           bti + 2, 1);
>> +        }
>> +    }
>> +
>> +    return;
>> +}
>> +
>> +VAStatus
>> +gen9_p010_scaling_post_processing(
>> +    VADriverContextP   ctx,
>> +    struct i965_post_processing_context *pp_context,
>> +    struct i965_surface *src_surface,
>> +    VARectangle *src_rect,
>> +    struct i965_surface *dst_surface,
>> +    VARectangle *dst_rect)
>> +{
>> +    struct i965_gpe_context *gpe_context;
>> +    struct gpe_media_object_walker_parameter media_object_walker_param;
>> +    struct intel_vpp_kernel_walker_parameter kernel_walker_param;
>> +
>> +    if (!pp_context || !src_surface || !src_rect || !dst_surface || !dst_rect)
>> +        return VA_STATUS_ERROR_INVALID_PARAMETER;
>> +
>> +    if (!pp_context->scaling_context_initialized)
>> +        return VA_STATUS_ERROR_UNIMPLEMENTED;
>> +
>> +    gpe_context =&pp_context->scaling_10bit_context;
>> +
>> +    gen8_gpe_context_init(ctx, gpe_context);
>> +    gen9_p010_scaling_sample_state(ctx, gpe_context, src_rect, dst_rect);
>> +    gen9_gpe_reset_binding_table(ctx, gpe_context);
>> +    gen9_gpe_context_p010_scaling_curbe(ctx, gpe_context,
>> +                                        src_rect, src_surface,
>> +                                        dst_rect, dst_surface);
>> +
>> +    gen9_gpe_context_p010_scaling_surfaces(ctx, gpe_context,
>> +                                        src_rect, src_surface,
>> +                                        dst_rect, dst_surface);
>> +
>> +    gen8_gpe_setup_interface_data(ctx, gpe_context);
>> +
>> +    memset(&kernel_walker_param, 0, sizeof(kernel_walker_param));
>> +    kernel_walker_param.resolution_x = ALIGN(dst_rect->width, 16)>>  4;
>> +    kernel_walker_param.resolution_y = ALIGN(dst_rect->height, 16)>>  4;
>> +    kernel_walker_param.no_dependency = 1;
>> +
>> +    intel_vpp_init_media_object_walker_parameter(&kernel_walker_param,&media_object_walker_param);
>> +
>> +    gen9_run_kernel_media_object_walker(ctx, pp_context->batch,
>> +                                        gpe_context,
>> +&media_object_walker_param);
>> +
>> +    return VA_STATUS_SUCCESS;
>>   }
>> diff --git a/src/i965_drv_video.c b/src/i965_drv_video.c
>> index e17c295..ed4dae1 100644
>> --- a/src/i965_drv_video.c
>> +++ b/src/i965_drv_video.c
>> @@ -48,6 +48,8 @@
>>   #include "i965_decoder.h"
>>   #include "i965_encoder.h"
>>
>> +#include "i965_post_processing.h"
>> +
>>   #include "gen9_vp9_encapi.h"
>>
>>   #define CONFIG_ID_OFFSET                0x01000000
>> diff --git a/src/i965_encoder.c b/src/i965_encoder.c
>> index 8587fd5..4ef92eb 100644
>> --- a/src/i965_encoder.c
>> +++ b/src/i965_encoder.c
>> @@ -40,6 +40,8 @@
>>   #include "gen6_vme.h"
>>   #include "gen6_mfc.h"
>>
>> +#include "i965_post_processing.h"
>> +
>>   static VAStatus
>>   clear_border(struct object_surface *obj_surface)
>>   {
>> diff --git a/src/i965_gpe_utils.c b/src/i965_gpe_utils.c
>> index f394c07..5d4ca5c 100644
>> --- a/src/i965_gpe_utils.c
>> +++ b/src/i965_gpe_utils.c
>> @@ -1856,7 +1856,35 @@ gen9_gpe_context_add_surface(struct i965_gpe_context *gpe_context,
>>       buf = (char *)gpe_context->surface_state_binding_table.bo->virtual;
>>       *((unsigned int *)(buf + binding_table_offset)) = surface_state_offset;
>>
>> -    if (gpe_surface->is_2d_surface&&  gpe_surface->is_uv_surface) {
>> +    if (gpe_surface->is_2d_surface&&  gpe_surface->is_override_offset) {
>> +        struct gen9_surface_state *ss = (struct gen9_surface_state *)(buf + surface_state_offset);
>> +
>> +        width = gpe_resource->width;
>> +        height = gpe_resource->height;
>> +        pitch = gpe_resource->pitch;
>> +
>> +        if (gpe_surface->is_media_block_rw) {
>> +            if (gpe_surface->is_16bpp)
>> +                width = (ALIGN(width * 2, 4)>>  2);
>> +            else
>> +                width = (ALIGN(width, 4)>>  2);
>> +        }
>> +
>> +
>> +        gen9_gpe_set_2d_surface_state(ss,
>> +                                      gpe_surface->cacheability_control,
>> +                                      gpe_surface->format,
>> +                                      tiling,
>> +                                      width, height, pitch,
>> +                                      gpe_resource->bo->offset64 + gpe_surface->offset,
>> +                                      0);
>> +
>> +        dri_bo_emit_reloc(gpe_context->surface_state_binding_table.bo,
>> +                          I915_GEM_DOMAIN_RENDER, I915_GEM_DOMAIN_RENDER,
>> +                          gpe_surface->offset,
>> +                          surface_state_offset + offsetof(struct gen9_surface_state, ss8),
>> +                          gpe_resource->bo);
>
> A good rule of thumb:
>
> If you're going to be rendering to a surface using the 3D engine, or
> otherwise writing it via the GPU, I'd suggest I915_GEM_DOMAIN_RENDER.
>
> If you're only sampling from it, or reading constant data, I'd use
> I915_GEM_DOMAIN_SAMPLER.
>
> It looks like to me you are only sampling from the binding table.
> Please correct me if I am wrong.

Thanks for the review.

For the usage scenario of 10bit sampling, it is OK to use the 
DOMAIN_SAMPLER.
But the above code path also covers the other reading function, which is 
based on Render cache. So the DOMAIN_RENDER is used for read domain. And 
it is also safe to configure DOMAIN_RENDER for sampling engine.

>
> I believe the thinking was that GEM would originally handle the
> situation where buffers would switch from one domain to another, and
> flush write/read caches as appropriate to ensure coherency.  Nowadays,
> the kernel just flushes most of them between batches anyway, since we
> never observed reducing that to help performance, and it helped a lot
> with stability (what with all the necessary workarounds).

Right. The current kernel GEM driver doesn't distinguish the 
DOMAIN_SAMPLER and DOMAIN_RENDER very clearly especially for the latest 
hw platform. They only care the domain switch to ensure CPU/GPU cache 
coherency. In such case I think that it is safe/simple to configure the 
DOMAIN_RENDER for read and write domain.


>
> Thanks,
>
> Sean
>
>
>> +    } else if (gpe_surface->is_2d_surface&&  gpe_surface->is_uv_surface) {
>>           unsigned int cbcr_offset;
>>           struct gen9_surface_state *ss = (struct gen9_surface_state *)(buf + surface_state_offset);
>>
>> diff --git a/src/i965_gpe_utils.h b/src/i965_gpe_utils.h
>> index a70638b..0cbef43 100644
>> --- a/src/i965_gpe_utils.h
>> +++ b/src/i965_gpe_utils.h
>> @@ -418,6 +418,8 @@ struct i965_gpe_surface
>>       unsigned int is_media_block_rw:1;
>>       unsigned int is_raw_buffer:1;
>>       unsigned int is_16bpp     :1;
>> +    /* use the override_offset for 2d_surface */
>> +    unsigned int is_override_offset : 1;
>>
>>       unsigned int vert_line_stride_offset;
>>       unsigned int vert_line_stride;
>> @@ -425,7 +427,7 @@ struct i965_gpe_surface
>>       unsigned int format; // 2d surface only
>>       unsigned int v_direction; // adv surface only
>>       unsigned int size; // buffer only
>> -    unsigned int offset; // buffer only
>> +    unsigned int offset;
>>
>>       struct i965_gpe_resource *gpe_resource;
>>   };
>> diff --git a/src/i965_post_processing.h b/src/i965_post_processing.h
>> index a9942b2..e55bf0b 100755
>> --- a/src/i965_post_processing.h
>> +++ b/src/i965_post_processing.h
>> @@ -30,9 +30,15 @@
>>   #define __I965_POST_PROCESSING_H__
>>
>>   #include "i965_vpp_avs.h"
>> +#include<drm.h>
>> +#include<i915_drm.h>
>> +#include<intel_bufmgr.h>
>> +#include "i965_gpe_utils.h"
>>
>>   #define MAX_PP_SURFACES                 48
>>
>> +struct i965_gpe_context;
>> +
>>   enum
>>   {
>>       PP_NULL = 0,
>> @@ -590,6 +596,10 @@ struct i965_post_processing_context
>>                                  void * filter_param);
>>       void (*finalize)(VADriverContextP ctx,
>>           struct i965_post_processing_context *pp_context);
>> +
>> +
>> +    struct i965_gpe_context scaling_10bit_context;
>> +    int scaling_context_initialized;
>>   };
>>
>>   struct i965_proc_context
>> diff --git a/src/i965_render.h b/src/i965_render.h
>> index 2114cad..227a15b 100644
>> --- a/src/i965_render.h
>> +++ b/src/i965_render.h
>> @@ -35,7 +35,6 @@
>>
>>   #define VA_SRC_COLOR_MASK       0x000000f0
>>
>> -#include "i965_post_processing.h"
>>
>>   struct i965_kernel;
>>
>> diff --git a/src/shaders/post_processing/gen9/Makefile.am b/src/shaders/post_processing/gen9/Makefile.am
>> index 3e0c2ce..4155cff 100644
>> --- a/src/shaders/post_processing/gen9/Makefile.am
>> +++ b/src/shaders/post_processing/gen9/Makefile.am
>> @@ -1,6 +1,9 @@
>>   SRCDIR = $(top_srcdir)/src/shaders/post_processing/gen8
>>   VPATH = $(SRCDIR)
>>
>> +INTEL_PP_PRE_G9B =             \
>> +       conv_p010.g9b
>> +
>>   INTEL_PP_G9B = \
>>          pl2_to_pl2.g9b          \
>>          pl2_to_pl3.g9b          \
>> @@ -70,6 +73,7 @@ CLEANFILES = $(INTEL_PP_GEN9_ASM)
>>
>>   EXTRA_DIST = \
>>          $(INTEL_PP_G9B) \
>> +       $(INTEL_PP_PRE_G9B)
>>          $(NULL)
>>
>>   # Extra clean files so that maintainer-clean removes *everything*
>> diff --git a/src/shaders/post_processing/gen9/conv_p010.g9b b/src/shaders/post_processing/gen9/conv_p010.g9b
>> new file mode 100644
>> index 0000000..536a46c
>> --- /dev/null
>> +++ b/src/shaders/post_processing/gen9/conv_p010.g9b
>> @@ -0,0 +1,783 @@
>> +{ 0x00600001, 0x20602648, 0x00000000, 0x76543210 },
>> +{ 0x00000005, 0x2380124c, 0x16000004, 0x07ff07ff },
>> +{ 0x00600001, 0x23a01208, 0x008d0060, 0x00000000 },
>> +{ 0x00000005, 0x2382124c, 0x16000006, 0x07ff07ff },
>> +{ 0x00000041, 0x20a01208, 0x16000380, 0x00100010 },
>> +{ 0x00600040, 0x23c00208, 0x168d03a0, 0x00080008 },
>> +{ 0x00000041, 0x20801228, 0x16000382, 0x00100010 },
>> +{ 0x00000040, 0x20c00208, 0x02000040, 0x000000a0 },
>> +{ 0x00800040, 0x23a00208, 0x028d03a0, 0x000000a0 },
>> +{ 0x00800001, 0x212002e8, 0x00000080, 0x00000000 },
>> +{ 0x00800001, 0x20e002e8, 0x008d03a0, 0x00000000 },
>> +{ 0x00000001, 0x21603ee8, 0x00000000, 0x3f000000 },
>> +{ 0x0080015b, 0x211e0000, 0xc0202a01, 0x02472004 },
>> +{ 0x0080015b, 0x1f1e0000, 0x80202801, 0x01c72004 },
>> +{ 0x0080015b, 0x211e0000, 0x802211c8, 0x02c00403 },
>> +{ 0x0080015b, 0x1f1e0000, 0x4021f1c8, 0x02c00403 },
>> +{ 0x00000001, 0x238c1e28, 0x00000000, 0x00000000 },
>> +{ 0x00000001, 0x25c80208, 0x0000005c, 0x00000000 },
>> +{ 0x00000009, 0x23840228, 0x160000c0, 0x00010001 },
>> +{ 0x00000040, 0x23880228, 0x02000044, 0x00000080 },
>> +{ 0x00600001, 0x20600208, 0x008d0000, 0x00000000 },
>> +{ 0x00800001, 0x21400608, 0x00000000, 0x00000000 },
>> +{ 0x00800001, 0x21001ee8, 0x00000000, 0x00000000 },
>> +{ 0x00800001, 0x20c00208, 0x008d0420, 0x00000000 },
>> +{ 0x00800001, 0x20800208, 0x008d03e0, 0x00000000 },
>> +{ 0x00000040, 0x22000204, 0x06000058, 0x122c0000 },
>> +{ 0x00000001, 0x20680608, 0x00000000, 0x0000e000 },
>> +{ 0x02800031, 0x24600268, 0x00000060, 0x00000200 },
>> +{ 0x00000001, 0x23900ee8, 0x00000000, 0x0000ffff },
>> +{ 0x02000005, 0x20000200, 0x1600003c, 0x00010001 },
>> +{ 0x00800041, 0x24603ae8, 0x3a8d0460, 0x00000390 },
>> +{ 0x00010020, 0x34000004, 0x0e001400, 0x00000020 },
>> +{ 0x00000001, 0x23941ee8, 0x00000000, 0x00400040 },
>> +{ 0x00800041, 0x24603ae8, 0x3a8d0460, 0x00000394 },
>> +{ 0x02000005, 0x20000200, 0x1600003c, 0x00020002 },
>> +{ 0x00010020, 0x34000004, 0x0e001400, 0x00000010 },
>> +{ 0x00800041, 0x24603ae8, 0x3e8d0460, 0x3c800000 },
>> +{ 0x00800040, 0x24203ae8, 0x3a8d0420, 0x0000004c },
>> +{ 0x00600001, 0x20a00208, 0x008d0000, 0x00000000 },
>> +{ 0x00800001, 0x21800608, 0x00000000, 0x00000000 },
>> +{ 0x00800001, 0x21401ee8, 0x00000000, 0x00000000 },
>> +{ 0x00800001, 0x20c00208, 0x008d03e0, 0x00000000 },
>> +{ 0x00800001, 0x20603a28, 0x008d0460, 0x00000000 },
>> +{ 0x00000040, 0x22000204, 0x06000058, 0x122c0000 },
>> +{ 0x00800001, 0x21000208, 0x008d0420, 0x00000000 },
>> +{ 0x00000001, 0x20a80608, 0x00000000, 0x0000e000 },
>> +{ 0x00800001, 0x24a01248, 0x00400060, 0x00000000 },
>> +{ 0x02800031, 0x24600268, 0x000000a0, 0x00000200 },
>> +{ 0x00000001, 0x23900ee8, 0x00000000, 0x0000ffff },
>> +{ 0x02000005, 0x20000200, 0x1600003c, 0x00010001 },
>> +{ 0x00800041, 0x24603ae8, 0x3a8d0460, 0x00000390 },
>> +{ 0x00010020, 0x34000004, 0x0e001400, 0x00000020 },
>> +{ 0x00000001, 0x23941ee8, 0x00000000, 0x00400040 },
>> +{ 0x00800041, 0x24603ae8, 0x3a8d0460, 0x00000394 },
>> +{ 0x02000005, 0x20000200, 0x1600003c, 0x00020002 },
>> +{ 0x00010020, 0x34000004, 0x0e001400, 0x00000010 },
>> +{ 0x00800041, 0x24603ae8, 0x3e8d0460, 0x3c800000 },
>> +{ 0x00800040, 0x24203ae8, 0x3a8d0420, 0x0000004c },
>> +{ 0x00600001, 0x20a00208, 0x008d0000, 0x00000000 },
>> +{ 0x00800001, 0x21800608, 0x00000000, 0x00000000 },
>> +{ 0x00800001, 0x21401ee8, 0x00000000, 0x00000000 },
>> +{ 0x00800001, 0x20c00208, 0x008d03e0, 0x00000000 },
>> +{ 0x00800001, 0x20603a28, 0x008d0460, 0x00000000 },
>> +{ 0x00000040, 0x22000204, 0x06000058, 0x122c0000 },
>> +{ 0x00800001, 0x21000208, 0x008d0420, 0x00000000 },
>> +{ 0x00000001, 0x20a80608, 0x00000000, 0x0000e000 },
>> +{ 0x00800001, 0x24c01248, 0x00400060, 0x00000000 },
>> +{ 0x02800031, 0x24600268, 0x000000a0, 0x00000200 },
>> +{ 0x00000001, 0x23900ee8, 0x00000000, 0x0000ffff },
>> +{ 0x02000005, 0x20000200, 0x1600003c, 0x00010001 },
>> +{ 0x00800041, 0x24603ae8, 0x3a8d0460, 0x00000390 },
>> +{ 0x00010020, 0x34000004, 0x0e001400, 0x00000020 },
>> +{ 0x00000001, 0x23941ee8, 0x00000000, 0x00400040 },
>> +{ 0x00800041, 0x24603ae8, 0x3a8d0460, 0x00000394 },
>> +{ 0x02000005, 0x20000200, 0x1600003c, 0x00020002 },
>> +{ 0x00010020, 0x34000004, 0x0e001400, 0x00000010 },
>> +{ 0x00800041, 0x24603ae8, 0x3e8d0460, 0x3c800000 },
>> +{ 0x00800040, 0x24203ae8, 0x3a8d0420, 0x0000004c },
>> +{ 0x00600001, 0x20a00208, 0x008d0000, 0x00000000 },
>> +{ 0x00800001, 0x21800608, 0x00000000, 0x00000000 },
>> +{ 0x00800001, 0x21401ee8, 0x00000000, 0x00000000 },
>> +{ 0x00800001, 0x20c00208, 0x008d03e0, 0x00000000 },
>> +{ 0x00800001, 0x20603a28, 0x008d0460, 0x00000000 },
>> +{ 0x00000040, 0x22000204, 0x06000058, 0x122c0000 },
>> +{ 0x00800001, 0x21000208, 0x008d0420, 0x00000000 },
>> +{ 0x00000001, 0x20a80608, 0x00000000, 0x0000e000 },
>> +{ 0x00800001, 0x24e01248, 0x00400060, 0x00000000 },
>> +{ 0x02800031, 0x24600268, 0x000000a0, 0x00000200 },
>> +{ 0x00000001, 0x23900ee8, 0x00000000, 0x0000ffff },
>> +{ 0x02000005, 0x20000200, 0x1600003c, 0x00010001 },
>> +{ 0x00800041, 0x24603ae8, 0x3a8d0460, 0x00000390 },
>> +{ 0x00010020, 0x34000004, 0x0e001400, 0x00000020 },
>> +{ 0x00000001, 0x23941ee8, 0x00000000, 0x00400040 },
>> +{ 0x00800041, 0x24603ae8, 0x3a8d0460, 0x00000394 },
>> +{ 0x02000005, 0x20000200, 0x1600003c, 0x00020002 },
>> +{ 0x00010020, 0x34000004, 0x0e001400, 0x00000010 },
>> +{ 0x00800041, 0x24603ae8, 0x3e8d0460, 0x3c800000 },
>> +{ 0x00800001, 0x20603a28, 0x008d0460, 0x00000000 },
>> +{ 0x00600001, 0x20a0020c, 0x008d0000, 0x00000000 },
>> +{ 0x00000040, 0x238c0a28, 0x1e00038c, 0x00010001 },
>> +{ 0x00000040, 0x22000204, 0x060005c8, 0x020a8000 },
>> +{ 0x00800001, 0x25001248, 0x00400060, 0x00000000 },
>> +{ 0x00000001, 0x20a4020c, 0x00000388, 0x00000000 },
>> +{ 0x00000001, 0x20a0020c, 0x00000384, 0x00000000 },
>> +{ 0x00000001, 0x20a8060c, 0x00000000, 0x0003001f },
>> +{ 0x05000010, 0x20000a20, 0x1e00038c, 0x00040004 },
>> +{ 0x00800040, 0x24203ae8, 0x3a8d0420, 0x0000004c },
>> +{ 0x00000040, 0x23880a28, 0x1e000388, 0x00040004 },
>> +{ 0x0c600033, 0x00025014, 0x000020a4, 0x00000000 },
>> +{ 0x00010020, 0x34000004, 0x0e001400, 0xfffffa60 },
>> +{ 0x00600001, 0x20602668, 0x00000000, 0x76543210 },
>> +{ 0x00000041, 0x20a01228, 0x16000382, 0x00100010 },
>> +{ 0x00600009, 0x23c01a08, 0x168d0060, 0x00010001 },
>> +{ 0x00000041, 0x20801208, 0x16000380, 0x00100010 },
>> +{ 0x00600001, 0x20c00a08, 0x000000a0, 0x00000000 },
>> +{ 0x00600001, 0x23a00208, 0x008d03c0, 0x00000000 },
>> +{ 0x00600040, 0x20e00208, 0x168d00c0, 0x00020002 },
>> +{ 0x00800040, 0x23a00208, 0x028d03a0, 0x00000080 },
>> +{ 0x00800001, 0x218002e8, 0x008d00c0, 0x00000000 },
>> +{ 0x00800001, 0x214002e8, 0x008d03a0, 0x00000000 },
>> +{ 0x00000005, 0x21c00208, 0x1600003c, 0x000c000c },
>> +{ 0x0080015b, 0x211e0000, 0xc0202a01, 0x03072004 },
>> +{ 0x0080015b, 0x1f1e0000, 0x80202801, 0x02872004 },
>> +{ 0x00000040, 0x21200228, 0x02000044, 0x000000a0 },
>> +{ 0x00000040, 0x21000208, 0x02000040, 0x00000080 },
>> +{ 0x02000010, 0x20000200, 0x160001c0, 0x000c000c },
>> +{ 0x00800040, 0x24203ae8, 0x3a8d0420, 0x00000038 },
>> +{ 0x00800040, 0x23e03ae8, 0x3a8d03e0, 0x00000034 },
>> +{ 0x00000040, 0x23980208, 0x16000058, 0x00010001 },
>> +{ 0x00000040, 0x239c0208, 0x16000058, 0x00020002 },
>> +{ 0x00000040, 0x25200208, 0x1600005c, 0x00010001 },
>> +{ 0x00000040, 0x25240208, 0x1600005c, 0x00020002 },
>> +{ 0x0000000c, 0x23880a28, 0x1e000120, 0x00010001 },
>> +{ 0x00000009, 0x23840228, 0x16000100, 0x00010001 },
>> +{ 0x00010020, 0x34000004, 0x0e001400, 0x000009a0 },
>> +{ 0x00600001, 0x20600208, 0x008d0000, 0x00000000 },
>> +{ 0x00000040, 0x22000204, 0x06000398, 0x124c0000 },
>> +{ 0x00800001, 0x21400608, 0x00000000, 0x00000000 },
>> +{ 0x00800001, 0x21001ee8, 0x00000000, 0x00000000 },
>> +{ 0x00800001, 0x20c00208, 0x008d0420, 0x00000000 },
>> +{ 0x00800001, 0x20800208, 0x008d03e0, 0x00000000 },
>> +{ 0x00000001, 0x20680608, 0x00000000, 0x0000c000 },
>> +{ 0x02800031, 0x25400268, 0x00000060, 0x00000200 },
>> +{ 0x00000001, 0x25280ee8, 0x00000000, 0x0000ffff },
>> +{ 0x02000005, 0x20000200, 0x1600003c, 0x00010001 },
>> +{ 0x00800041, 0x25403ae8, 0x3a8d0540, 0x00000528 },
>> +{ 0x00800041, 0x25803ae8, 0x3a8d0580, 0x00000528 },
>> +{ 0x00010020, 0x34000004, 0x0e001400, 0x00000030 },
>> +{ 0x00000001, 0x252c1ee8, 0x00000000, 0x00400040 },
>> +{ 0x00800041, 0x25403ae8, 0x3a8d0540, 0x0000052c },
>> +{ 0x00800041, 0x25803ae8, 0x3a8d0580, 0x0000052c },
>> +{ 0x02000005, 0x20000200, 0x1600003c, 0x00020002 },
>> +{ 0x00010020, 0x34000004, 0x0e001400, 0x00000020 },
>> +{ 0x00800041, 0x25803ae8, 0x3e8d0580, 0x3c800000 },
>> +{ 0x00800041, 0x25403ae8, 0x3e8d0540, 0x3c800000 },
>> +{ 0x00600001, 0x20e03a28, 0x008d05a0, 0x00000000 },
>> +{ 0x00600001, 0x20a03a28, 0x008d0580, 0x00000000 },
>> +{ 0x00600001, 0x20803a28, 0x008d0560, 0x00000000 },
>> +{ 0x00600001, 0x20603a28, 0x008d0540, 0x00000000 },
>> +{ 0x00600001, 0x2120020c, 0x008d0000, 0x00000000 },
>> +{ 0x00600001, 0x41000a48, 0x008d00e0, 0x00000000 },
>> +{ 0x00600001, 0x40c00a48, 0x008d00a0, 0x00000000 },
>> +{ 0x00600001, 0x44c00a48, 0x008d0080, 0x00000000 },
>> +{ 0x00600001, 0x44a00a48, 0x008d0060, 0x00000000 },
>> +{ 0x00000040, 0x22000204, 0x06000520, 0x020a8000 },
>> +{ 0x00000001, 0x2124020c, 0x00000388, 0x00000000 },
>> +{ 0x00000001, 0x2120020c, 0x00000384, 0x00000000 },
>> +{ 0x00000001, 0x2128060c, 0x00000000, 0x0001001f },
>> +{ 0x00600001, 0x44c21248, 0x00400100, 0x00000000 },
>> +{ 0x00600001, 0x44a21248, 0x004000c0, 0x00000000 },
>> +{ 0x0c600033, 0x00025014, 0x00002122, 0x00000000 },
>> +{ 0x00000001, 0x21403ee8, 0x00000000, 0x40800000 },
>> +{ 0x00600001, 0x21600208, 0x008d0000, 0x00000000 },
>> +{ 0x0080015b, 0x211e0000, 0x002211c8, 0x00980414 },
>> +{ 0x00800001, 0x22400608, 0x00000000, 0x00000000 },
>> +{ 0x00800001, 0x22001ee8, 0x00000000, 0x00000000 },
>> +{ 0x00800001, 0x21800208, 0x008d03e0, 0x00000000 },
>> +{ 0x00000001, 0x21680608, 0x00000000, 0x0000c000 },
>> +{ 0x00800001, 0x21c00208, 0x008d0420, 0x00000000 },
>> +{ 0x00000040, 0x22000204, 0x06000398, 0x124c0000 },
>> +{ 0x02800031, 0x25400268, 0x00000160, 0x00000200 },
>> +{ 0x00000001, 0x25280ee8, 0x00000000, 0x0000ffff },
>> +{ 0x02000005, 0x20000200, 0x1600003c, 0x00010001 },
>> +{ 0x00000040, 0x23880a28, 0x1e000388, 0x00020002 },
>> +{ 0x00800041, 0x25403ae8, 0x3a8d0540, 0x00000528 },
>> +{ 0x00800041, 0x25803ae8, 0x3a8d0580, 0x00000528 },
>> +{ 0x00010020, 0x34000004, 0x0e001400, 0x00000030 },
>> +{ 0x00000001, 0x252c1ee8, 0x00000000, 0x00400040 },
>> +{ 0x00800041, 0x25403ae8, 0x3a8d0540, 0x0000052c },
>> +{ 0x00800041, 0x25803ae8, 0x3a8d0580, 0x0000052c },
>> +{ 0x02000005, 0x20000200, 0x1600003c, 0x00020002 },
>> +{ 0x00010020, 0x34000004, 0x0e001400, 0x00000020 },
>> +{ 0x00800041, 0x25803ae8, 0x3e8d0580, 0x3c800000 },
>> +{ 0x00800041, 0x25403ae8, 0x3e8d0540, 0x3c800000 },
>> +{ 0x00600001, 0x20e03a28, 0x008d05a0, 0x00000000 },
>> +{ 0x00600001, 0x20a03a28, 0x008d0580, 0x00000000 },
>> +{ 0x00600001, 0x20803a28, 0x008d0560, 0x00000000 },
>> +{ 0x00600001, 0x20603a28, 0x008d0540, 0x00000000 },
>> +{ 0x00600001, 0x2120020c, 0x008d0000, 0x00000000 },
>> +{ 0x00600001, 0x41000a48, 0x008d00e0, 0x00000000 },
>> +{ 0x00600001, 0x40c00a48, 0x008d00a0, 0x00000000 },
>> +{ 0x00600001, 0x44c00a48, 0x008d0080, 0x00000000 },
>> +{ 0x00600001, 0x44a00a48, 0x008d0060, 0x00000000 },
>> +{ 0x00000040, 0x22000204, 0x06000520, 0x020a8000 },
>> +{ 0x00000001, 0x2124020c, 0x00000388, 0x00000000 },
>> +{ 0x00000001, 0x2120020c, 0x00000384, 0x00000000 },
>> +{ 0x00000001, 0x2128060c, 0x00000000, 0x0001001f },
>> +{ 0x00600001, 0x44c21248, 0x00400100, 0x00000000 },
>> +{ 0x00600001, 0x44a21248, 0x004000c0, 0x00000000 },
>> +{ 0x0c600033, 0x00025014, 0x00002122, 0x00000000 },
>> +{ 0x00000001, 0x21403ee8, 0x00000000, 0x40800000 },
>> +{ 0x00600001, 0x21600208, 0x008d0000, 0x00000000 },
>> +{ 0x0080015b, 0x211e0000, 0x002211c8, 0x00980414 },
>> +{ 0x00800001, 0x22400608, 0x00000000, 0x00000000 },
>> +{ 0x00800001, 0x22001ee8, 0x00000000, 0x00000000 },
>> +{ 0x00800001, 0x21800208, 0x008d03e0, 0x00000000 },
>> +{ 0x00000001, 0x21680608, 0x00000000, 0x0000c000 },
>> +{ 0x00800001, 0x21c00208, 0x008d0420, 0x00000000 },
>> +{ 0x00000040, 0x22000204, 0x06000398, 0x124c0000 },
>> +{ 0x02800031, 0x25400268, 0x00000160, 0x00000200 },
>> +{ 0x00000001, 0x25280ee8, 0x00000000, 0x0000ffff },
>> +{ 0x02000005, 0x20000200, 0x1600003c, 0x00010001 },
>> +{ 0x00000040, 0x23880a28, 0x1e000388, 0x00020002 },
>> +{ 0x00800041, 0x25403ae8, 0x3a8d0540, 0x00000528 },
>> +{ 0x00800041, 0x25803ae8, 0x3a8d0580, 0x00000528 },
>> +{ 0x00010020, 0x34000004, 0x0e001400, 0x00000030 },
>> +{ 0x00000001, 0x252c1ee8, 0x00000000, 0x00400040 },
>> +{ 0x00800041, 0x25403ae8, 0x3a8d0540, 0x0000052c },
>> +{ 0x00800041, 0x25803ae8, 0x3a8d0580, 0x0000052c },
>> +{ 0x02000005, 0x20000200, 0x1600003c, 0x00020002 },
>> +{ 0x00010020, 0x34000004, 0x0e001400, 0x00000020 },
>> +{ 0x00800041, 0x25803ae8, 0x3e8d0580, 0x3c800000 },
>> +{ 0x00800041, 0x25403ae8, 0x3e8d0540, 0x3c800000 },
>> +{ 0x00600001, 0x20e03a28, 0x008d05a0, 0x00000000 },
>> +{ 0x00600001, 0x20a03a28, 0x008d0580, 0x00000000 },
>> +{ 0x00600001, 0x20803a28, 0x008d0560, 0x00000000 },
>> +{ 0x00600001, 0x20603a28, 0x008d0540, 0x00000000 },
>> +{ 0x00600001, 0x2120020c, 0x008d0000, 0x00000000 },
>> +{ 0x00600001, 0x41000a48, 0x008d00e0, 0x00000000 },
>> +{ 0x00600001, 0x40c00a48, 0x008d00a0, 0x00000000 },
>> +{ 0x00600001, 0x44c00a48, 0x008d0080, 0x00000000 },
>> +{ 0x00600001, 0x44a00a48, 0x008d0060, 0x00000000 },
>> +{ 0x00000040, 0x22000204, 0x06000520, 0x020a8000 },
>> +{ 0x00000001, 0x2124020c, 0x00000388, 0x00000000 },
>> +{ 0x00000001, 0x2120020c, 0x00000384, 0x00000000 },
>> +{ 0x00000001, 0x2128060c, 0x00000000, 0x0001001f },
>> +{ 0x00600001, 0x44c21248, 0x00400100, 0x00000000 },
>> +{ 0x00600001, 0x44a21248, 0x004000c0, 0x00000000 },
>> +{ 0x0c600033, 0x00025014, 0x00002122, 0x00000000 },
>> +{ 0x00000001, 0x21403ee8, 0x00000000, 0x40800000 },
>> +{ 0x00600001, 0x21600208, 0x008d0000, 0x00000000 },
>> +{ 0x0080015b, 0x211e0000, 0x002211c8, 0x00980414 },
>> +{ 0x00800001, 0x22400608, 0x00000000, 0x00000000 },
>> +{ 0x00800001, 0x22001ee8, 0x00000000, 0x00000000 },
>> +{ 0x00800001, 0x21800208, 0x008d03e0, 0x00000000 },
>> +{ 0x00000001, 0x21680608, 0x00000000, 0x0000c000 },
>> +{ 0x00800001, 0x21c00208, 0x008d0420, 0x00000000 },
>> +{ 0x00000040, 0x22000204, 0x06000398, 0x124c0000 },
>> +{ 0x02800031, 0x25400268, 0x00000160, 0x00000200 },
>> +{ 0x00000001, 0x25280ee8, 0x00000000, 0x0000ffff },
>> +{ 0x02000005, 0x20000200, 0x1600003c, 0x00010001 },
>> +{ 0x00000040, 0x23880a28, 0x1e000388, 0x00020002 },
>> +{ 0x00800041, 0x25403ae8, 0x3a8d0540, 0x00000528 },
>> +{ 0x00800041, 0x25803ae8, 0x3a8d0580, 0x00000528 },
>> +{ 0x00010020, 0x34000004, 0x0e001400, 0x00000030 },
>> +{ 0x00000001, 0x252c1ee8, 0x00000000, 0x00400040 },
>> +{ 0x00800041, 0x25403ae8, 0x3a8d0540, 0x0000052c },
>> +{ 0x00800041, 0x25803ae8, 0x3a8d0580, 0x0000052c },
>> +{ 0x02000005, 0x20000200, 0x1600003c, 0x00020002 },
>> +{ 0x00010020, 0x34000004, 0x0e001400, 0x00000020 },
>> +{ 0x00800041, 0x25803ae8, 0x3e8d0580, 0x3c800000 },
>> +{ 0x00800041, 0x25403ae8, 0x3e8d0540, 0x3c800000 },
>> +{ 0x00600001, 0x20e03a28, 0x008d05a0, 0x00000000 },
>> +{ 0x00600001, 0x20a03a28, 0x008d0580, 0x00000000 },
>> +{ 0x00600001, 0x20803a28, 0x008d0560, 0x00000000 },
>> +{ 0x00600001, 0x20603a28, 0x008d0540, 0x00000000 },
>> +{ 0x00600001, 0x2120020c, 0x008d0000, 0x00000000 },
>> +{ 0x00600001, 0x41000a48, 0x008d00e0, 0x00000000 },
>> +{ 0x00600001, 0x40c00a48, 0x008d00a0, 0x00000000 },
>> +{ 0x00600001, 0x44c00a48, 0x008d0080, 0x00000000 },
>> +{ 0x00600001, 0x44a00a48, 0x008d0060, 0x00000000 },
>> +{ 0x00000040, 0x22000204, 0x06000520, 0x020a8000 },
>> +{ 0x00000001, 0x2124020c, 0x00000388, 0x00000000 },
>> +{ 0x00000001, 0x2120020c, 0x00000384, 0x00000000 },
>> +{ 0x00000001, 0x2128060c, 0x00000000, 0x0001001f },
>> +{ 0x00600001, 0x44c21248, 0x00400100, 0x00000000 },
>> +{ 0x00600001, 0x44a21248, 0x004000c0, 0x00000000 },
>> +{ 0x0c600033, 0x00025014, 0x00002122, 0x00000000 },
>> +{ 0x00000020, 0x34000004, 0x0e001400, 0x00001ec0 },
>> +{ 0x00000005, 0x20600208, 0x1600003c, 0x000c000c },
>> +{ 0x02000010, 0x20000200, 0x16000060, 0x00080008 },
>> +{ 0x00010020, 0x34000004, 0x0e001400, 0x00000960 },
>> +{ 0x00600001, 0x20600208, 0x008d0000, 0x00000000 },
>> +{ 0x00000040, 0x22000204, 0x06000398, 0x122c0000 },
>> +{ 0x00800001, 0x21400608, 0x00000000, 0x00000000 },
>> +{ 0x00800001, 0x21001ee8, 0x00000000, 0x00000000 },
>> +{ 0x00800001, 0x20c00208, 0x008d0420, 0x00000000 },
>> +{ 0x00800001, 0x20800208, 0x008d03e0, 0x00000000 },
>> +{ 0x00000001, 0x20680608, 0x00000000, 0x0000e000 },
>> +{ 0x02800031, 0x25400268, 0x00000060, 0x00000200 },
>> +{ 0x00800001, 0x22600608, 0x00000000, 0x00000000 },
>> +{ 0x00800001, 0x22201ee8, 0x00000000, 0x00000000 },
>> +{ 0x00800001, 0x21e00208, 0x008d0420, 0x00000000 },
>> +{ 0x00800001, 0x21a00208, 0x008d03e0, 0x00000000 },
>> +{ 0x00600001, 0x21800208, 0x008d0060, 0x00000000 },
>> +{ 0x00000040, 0x22000204, 0x0600039c, 0x122c0000 },
>> +{ 0x02800031, 0x25800268, 0x00000180, 0x00000200 },
>> +{ 0x00000001, 0x25300ee8, 0x00000000, 0x0000ffff },
>> +{ 0x02000005, 0x20000200, 0x1600003c, 0x00010001 },
>> +{ 0x00800041, 0x25803ae8, 0x3a8d0580, 0x00000530 },
>> +{ 0x00010020, 0x34000004, 0x0e001400, 0x00000020 },
>> +{ 0x00000001, 0x25341ee8, 0x00000000, 0x00400040 },
>> +{ 0x00800041, 0x25803ae8, 0x3a8d0580, 0x00000534 },
>> +{ 0x02000005, 0x20000200, 0x1600003c, 0x00020002 },
>> +{ 0x00010020, 0x34000004, 0x0e001400, 0x00000010 },
>> +{ 0x00800041, 0x25803ae8, 0x3e8d0580, 0x3c800000 },
>> +{ 0x00600001, 0x20803a28, 0x008d05a0, 0x00000000 },
>> +{ 0x00600001, 0x20603a28, 0x008d0580, 0x00000000 },
>> +{ 0x00600001, 0x20c0020c, 0x008d0000, 0x00000000 },
>> +{ 0x00600001, 0x40a00a48, 0x008d0080, 0x00000000 },
>> +{ 0x00000040, 0x22000204, 0x06000520, 0x020a8000 },
>> +{ 0x00600001, 0x44a00a48, 0x008d0060, 0x00000000 },
>> +{ 0x00000001, 0x20c4020c, 0x00000388, 0x00000000 },
>> +{ 0x00000001, 0x20c0020c, 0x00000384, 0x00000000 },
>> +{ 0x00000001, 0x20c8060c, 0x00000000, 0x0001001f },
>> +{ 0x00600001, 0x44c21248, 0x004000a0, 0x00000000 },
>> +{ 0x0c600033, 0x00025014, 0x000020c2, 0x00000000 },
>> +{ 0x00000001, 0x20e03ee8, 0x00000000, 0x40800000 },
>> +{ 0x00600001, 0x21000208, 0x008d0000, 0x00000000 },
>> +{ 0x0080015b, 0x211e0000, 0x002211c8, 0x0098040e },
>> +{ 0x00800001, 0x21e00608, 0x00000000, 0x00000000 },
>> +{ 0x00800001, 0x21a01ee8, 0x00000000, 0x00000000 },
>> +{ 0x00800001, 0x21200208, 0x008d03e0, 0x00000000 },
>> +{ 0x00000001, 0x21080608, 0x00000000, 0x0000e000 },
>> +{ 0x00800001, 0x21600208, 0x008d0420, 0x00000000 },
>> +{ 0x00000040, 0x22000204, 0x06000398, 0x122c0000 },
>> +{ 0x00600001, 0x22200208, 0x008d0100, 0x00000000 },
>> +{ 0x02800031, 0x25400268, 0x00000100, 0x00000200 },
>> +{ 0x00800001, 0x23000608, 0x00000000, 0x00000000 },
>> +{ 0x00800001, 0x22c01ee8, 0x00000000, 0x00000000 },
>> +{ 0x00800001, 0x22400208, 0x008d03e0, 0x00000000 },
>> +{ 0x00800001, 0x22800208, 0x008d0160, 0x00000000 },
>> +{ 0x00000001, 0x25300ee8, 0x00000000, 0x0000ffff },
>> +{ 0x00000040, 0x22000204, 0x0600039c, 0x122c0000 },
>> +{ 0x02800031, 0x25800268, 0x00000220, 0x00000200 },
>> +{ 0x02000005, 0x20000200, 0x1600003c, 0x00010001 },
>> +{ 0x00000040, 0x23880a28, 0x1e000388, 0x00020002 },
>> +{ 0x00800041, 0x25803ae8, 0x3a8d0580, 0x00000530 },
>> +{ 0x00010020, 0x34000004, 0x0e001400, 0x00000020 },
>> +{ 0x00000001, 0x25341ee8, 0x00000000, 0x00400040 },
>> +{ 0x00800041, 0x25803ae8, 0x3a8d0580, 0x00000534 },
>> +{ 0x02000005, 0x20000200, 0x1600003c, 0x00020002 },
>> +{ 0x00010020, 0x34000004, 0x0e001400, 0x00000010 },
>> +{ 0x00800041, 0x25803ae8, 0x3e8d0580, 0x3c800000 },
>> +{ 0x00600001, 0x20803a28, 0x008d05a0, 0x00000000 },
>> +{ 0x00600001, 0x20603a28, 0x008d0580, 0x00000000 },
>> +{ 0x00600001, 0x20c0020c, 0x008d0000, 0x00000000 },
>> +{ 0x00600001, 0x40a00a48, 0x008d0080, 0x00000000 },
>> +{ 0x00000040, 0x22000204, 0x06000520, 0x020a8000 },
>> +{ 0x00600001, 0x44a00a48, 0x008d0060, 0x00000000 },
>> +{ 0x00000001, 0x20c4020c, 0x00000388, 0x00000000 },
>> +{ 0x00000001, 0x20c0020c, 0x00000384, 0x00000000 },
>> +{ 0x00000001, 0x20c8060c, 0x00000000, 0x0001001f },
>> +{ 0x00600001, 0x44c21248, 0x004000a0, 0x00000000 },
>> +{ 0x0c600033, 0x00025014, 0x000020c2, 0x00000000 },
>> +{ 0x00000001, 0x20e03ee8, 0x00000000, 0x40800000 },
>> +{ 0x00600001, 0x21000208, 0x008d0000, 0x00000000 },
>> +{ 0x0080015b, 0x211e0000, 0x002211c8, 0x0098040e },
>> +{ 0x00800001, 0x21e00608, 0x00000000, 0x00000000 },
>> +{ 0x00800001, 0x21a01ee8, 0x00000000, 0x00000000 },
>> +{ 0x00800001, 0x21200208, 0x008d03e0, 0x00000000 },
>> +{ 0x00000001, 0x21080608, 0x00000000, 0x0000e000 },
>> +{ 0x00800001, 0x21600208, 0x008d0420, 0x00000000 },
>> +{ 0x00000040, 0x22000204, 0x06000398, 0x122c0000 },
>> +{ 0x00600001, 0x22200208, 0x008d0100, 0x00000000 },
>> +{ 0x02800031, 0x25400268, 0x00000100, 0x00000200 },
>> +{ 0x00800001, 0x23000608, 0x00000000, 0x00000000 },
>> +{ 0x00800001, 0x22c01ee8, 0x00000000, 0x00000000 },
>> +{ 0x00800001, 0x22400208, 0x008d03e0, 0x00000000 },
>> +{ 0x00800001, 0x22800208, 0x008d0160, 0x00000000 },
>> +{ 0x00000001, 0x25300ee8, 0x00000000, 0x0000ffff },
>> +{ 0x00000040, 0x22000204, 0x0600039c, 0x122c0000 },
>> +{ 0x02800031, 0x25800268, 0x00000220, 0x00000200 },
>> +{ 0x02000005, 0x20000200, 0x1600003c, 0x00010001 },
>> +{ 0x00000040, 0x23880a28, 0x1e000388, 0x00020002 },
>> +{ 0x00800041, 0x25803ae8, 0x3a8d0580, 0x00000530 },
>> +{ 0x00010020, 0x34000004, 0x0e001400, 0x00000020 },
>> +{ 0x00000001, 0x25341ee8, 0x00000000, 0x00400040 },
>> +{ 0x00800041, 0x25803ae8, 0x3a8d0580, 0x00000534 },
>> +{ 0x02000005, 0x20000200, 0x1600003c, 0x00020002 },
>> +{ 0x00010020, 0x34000004, 0x0e001400, 0x00000010 },
>> +{ 0x00800041, 0x25803ae8, 0x3e8d0580, 0x3c800000 },
>> +{ 0x00600001, 0x20803a28, 0x008d05a0, 0x00000000 },
>> +{ 0x00600001, 0x20603a28, 0x008d0580, 0x00000000 },
>> +{ 0x00600001, 0x20c0020c, 0x008d0000, 0x00000000 },
>> +{ 0x00600001, 0x40a00a48, 0x008d0080, 0x00000000 },
>> +{ 0x00000040, 0x22000204, 0x06000520, 0x020a8000 },
>> +{ 0x00600001, 0x44a00a48, 0x008d0060, 0x00000000 },
>> +{ 0x00000001, 0x20c4020c, 0x00000388, 0x00000000 },
>> +{ 0x00000001, 0x20c0020c, 0x00000384, 0x00000000 },
>> +{ 0x00000001, 0x20c8060c, 0x00000000, 0x0001001f },
>> +{ 0x00600001, 0x44c21248, 0x004000a0, 0x00000000 },
>> +{ 0x0c600033, 0x00025014, 0x000020c2, 0x00000000 },
>> +{ 0x00000001, 0x20e03ee8, 0x00000000, 0x40800000 },
>> +{ 0x00600001, 0x21000208, 0x008d0000, 0x00000000 },
>> +{ 0x0080015b, 0x211e0000, 0x002211c8, 0x0098040e },
>> +{ 0x00800001, 0x21e00608, 0x00000000, 0x00000000 },
>> +{ 0x00800001, 0x21a01ee8, 0x00000000, 0x00000000 },
>> +{ 0x00800001, 0x21200208, 0x008d03e0, 0x00000000 },
>> +{ 0x00000001, 0x21080608, 0x00000000, 0x0000e000 },
>> +{ 0x00800001, 0x21600208, 0x008d0420, 0x00000000 },
>> +{ 0x00000040, 0x22000204, 0x06000398, 0x122c0000 },
>> +{ 0x00600001, 0x22200208, 0x008d0100, 0x00000000 },
>> +{ 0x02800031, 0x25400268, 0x00000100, 0x00000200 },
>> +{ 0x00800001, 0x23000608, 0x00000000, 0x00000000 },
>> +{ 0x00800001, 0x22c01ee8, 0x00000000, 0x00000000 },
>> +{ 0x00800001, 0x22400208, 0x008d03e0, 0x00000000 },
>> +{ 0x00800001, 0x22800208, 0x008d0160, 0x00000000 },
>> +{ 0x00000001, 0x25300ee8, 0x00000000, 0x0000ffff },
>> +{ 0x00000040, 0x22000204, 0x0600039c, 0x122c0000 },
>> +{ 0x02800031, 0x25800268, 0x00000220, 0x00000200 },
>> +{ 0x02000005, 0x20000200, 0x1600003c, 0x00010001 },
>> +{ 0x00000040, 0x23880a28, 0x1e000388, 0x00020002 },
>> +{ 0x00800041, 0x25803ae8, 0x3a8d0580, 0x00000530 },
>> +{ 0x00010020, 0x34000004, 0x0e001400, 0x00000020 },
>> +{ 0x00000001, 0x25341ee8, 0x00000000, 0x00400040 },
>> +{ 0x00800041, 0x25803ae8, 0x3a8d0580, 0x00000534 },
>> +{ 0x02000005, 0x20000200, 0x1600003c, 0x00020002 },
>> +{ 0x00010020, 0x34000004, 0x0e001400, 0x00000010 },
>> +{ 0x00800041, 0x25803ae8, 0x3e8d0580, 0x3c800000 },
>> +{ 0x00600001, 0x20803a28, 0x008d05a0, 0x00000000 },
>> +{ 0x00600001, 0x20603a28, 0x008d0580, 0x00000000 },
>> +{ 0x00600001, 0x20c0020c, 0x008d0000, 0x00000000 },
>> +{ 0x00600001, 0x40a00a48, 0x008d0080, 0x00000000 },
>> +{ 0x00000040, 0x22000204, 0x06000520, 0x020a8000 },
>> +{ 0x00600001, 0x44a00a48, 0x008d0060, 0x00000000 },
>> +{ 0x00000001, 0x20c4020c, 0x00000388, 0x00000000 },
>> +{ 0x00000001, 0x20c0020c, 0x00000384, 0x00000000 },
>> +{ 0x00000001, 0x20c8060c, 0x00000000, 0x0001001f },
>> +{ 0x00600001, 0x44c21248, 0x004000a0, 0x00000000 },
>> +{ 0x0c600033, 0x00025014, 0x000020c2, 0x00000000 },
>> +{ 0x00000020, 0x34000004, 0x0e001400, 0x00001530 },
>> +{ 0x00000005, 0x20600208, 0x1600003c, 0x000c000c },
>> +{ 0x02000010, 0x20000200, 0x16000060, 0x00040004 },
>> +{ 0x0000000c, 0x23840a28, 0x1e000384, 0x00010001 },
>> +{ 0x00010020, 0x34000004, 0x0e001400, 0x000009a0 },
>> +{ 0x00600001, 0x20600208, 0x008d0000, 0x00000000 },
>> +{ 0x00000040, 0x22000204, 0x06000398, 0x124c0000 },
>> +{ 0x00800001, 0x21400608, 0x00000000, 0x00000000 },
>> +{ 0x00800001, 0x21001ee8, 0x00000000, 0x00000000 },
>> +{ 0x00800001, 0x20c00208, 0x008d0420, 0x00000000 },
>> +{ 0x00800001, 0x20800208, 0x008d03e0, 0x00000000 },
>> +{ 0x00000001, 0x20680608, 0x00000000, 0x0000c000 },
>> +{ 0x02800031, 0x25400268, 0x00000060, 0x00000200 },
>> +{ 0x00000001, 0x25380ee8, 0x00000000, 0x0000ffff },
>> +{ 0x02000005, 0x20000200, 0x1600003c, 0x00010001 },
>> +{ 0x00800041, 0x25403ae8, 0x3a8d0540, 0x00000538 },
>> +{ 0x00800041, 0x25803ae8, 0x3a8d0580, 0x00000538 },
>> +{ 0x00010020, 0x34000004, 0x0e001400, 0x00000030 },
>> +{ 0x00000001, 0x253c1ee8, 0x00000000, 0x00400040 },
>> +{ 0x00800041, 0x25403ae8, 0x3a8d0540, 0x0000053c },
>> +{ 0x00800041, 0x25803ae8, 0x3a8d0580, 0x0000053c },
>> +{ 0x02000005, 0x20000200, 0x1600003c, 0x00020002 },
>> +{ 0x00010020, 0x34000004, 0x0e001400, 0x00000020 },
>> +{ 0x00800041, 0x25803ae8, 0x3e8d0580, 0x3c800000 },
>> +{ 0x00800041, 0x25403ae8, 0x3e8d0540, 0x3c800000 },
>> +{ 0x00800001, 0x20603a28, 0x008d0540, 0x00000000 },
>> +{ 0x00600001, 0x20a0020c, 0x008d0000, 0x00000000 },
>> +{ 0x00000040, 0x22000204, 0x06000520, 0x020a8000 },
>> +{ 0x00800001, 0x24a01248, 0x00400060, 0x00000000 },
>> +{ 0x00000001, 0x20a4020c, 0x00000388, 0x00000000 },
>> +{ 0x00000001, 0x20a0020c, 0x00000384, 0x00000000 },
>> +{ 0x00000001, 0x20a8060c, 0x00000000, 0x0001000f },
>> +{ 0x0c600033, 0x00025014, 0x000020a1, 0x00000000 },
>> +{ 0x00800001, 0x20c03a28, 0x008d0580, 0x00000000 },
>> +{ 0x00600001, 0x2100020c, 0x008d0000, 0x00000000 },
>> +{ 0x00000001, 0x2104020c, 0x00000388, 0x00000000 },
>> +{ 0x00000040, 0x23880a28, 0x1e000388, 0x00020002 },
>> +{ 0x00000040, 0x22000204, 0x06000524, 0x020a8000 },
>> +{ 0x00800001, 0x24a01248, 0x004000c0, 0x00000000 },
>> +{ 0x00000001, 0x2100020c, 0x00000384, 0x00000000 },
>> +{ 0x00000001, 0x2108060c, 0x00000000, 0x0001000f },
>> +{ 0x0c600033, 0x00025014, 0x00002101, 0x00000000 },
>> +{ 0x00000001, 0x21203ee8, 0x00000000, 0x40800000 },
>> +{ 0x00600001, 0x21400208, 0x008d0000, 0x00000000 },
>> +{ 0x0080015b, 0x211e0000, 0x002211c8, 0x00980412 },
>> +{ 0x00800001, 0x22200608, 0x00000000, 0x00000000 },
>> +{ 0x00800001, 0x21e01ee8, 0x00000000, 0x00000000 },
>> +{ 0x00800001, 0x21600208, 0x008d03e0, 0x00000000 },
>> +{ 0x00000001, 0x21480608, 0x00000000, 0x0000c000 },
>> +{ 0x00800001, 0x21a00208, 0x008d0420, 0x00000000 },
>> +{ 0x00000040, 0x22000204, 0x06000398, 0x124c0000 },
>> +{ 0x02800031, 0x25400268, 0x00000140, 0x00000200 },
>> +{ 0x00000001, 0x25380ee8, 0x00000000, 0x0000ffff },
>> +{ 0x02000005, 0x20000200, 0x1600003c, 0x00010001 },
>> +{ 0x00800041, 0x25403ae8, 0x3a8d0540, 0x00000538 },
>> +{ 0x00800041, 0x25803ae8, 0x3a8d0580, 0x00000538 },
>> +{ 0x00010020, 0x34000004, 0x0e001400, 0x00000030 },
>> +{ 0x00000001, 0x253c1ee8, 0x00000000, 0x00400040 },
>> +{ 0x00800041, 0x25403ae8, 0x3a8d0540, 0x0000053c },
>> +{ 0x00800041, 0x25803ae8, 0x3a8d0580, 0x0000053c },
>> +{ 0x02000005, 0x20000200, 0x1600003c, 0x00020002 },
>> +{ 0x00010020, 0x34000004, 0x0e001400, 0x00000020 },
>> +{ 0x00800041, 0x25803ae8, 0x3e8d0580, 0x3c800000 },
>> +{ 0x00800041, 0x25403ae8, 0x3e8d0540, 0x3c800000 },
>> +{ 0x00800001, 0x20603a28, 0x008d0540, 0x00000000 },
>> +{ 0x00600001, 0x20a0020c, 0x008d0000, 0x00000000 },
>> +{ 0x00000040, 0x22000204, 0x06000520, 0x020a8000 },
>> +{ 0x00800001, 0x24a01248, 0x00400060, 0x00000000 },
>> +{ 0x00000001, 0x20a4020c, 0x00000388, 0x00000000 },
>> +{ 0x00000001, 0x20a0020c, 0x00000384, 0x00000000 },
>> +{ 0x00000001, 0x20a8060c, 0x00000000, 0x0001000f },
>> +{ 0x0c600033, 0x00025014, 0x000020a1, 0x00000000 },
>> +{ 0x00800001, 0x20c03a28, 0x008d0580, 0x00000000 },
>> +{ 0x00600001, 0x2100020c, 0x008d0000, 0x00000000 },
>> +{ 0x00000001, 0x2104020c, 0x00000388, 0x00000000 },
>> +{ 0x00000040, 0x23880a28, 0x1e000388, 0x00020002 },
>> +{ 0x00000040, 0x22000204, 0x06000524, 0x020a8000 },
>> +{ 0x00800001, 0x24a01248, 0x004000c0, 0x00000000 },
>> +{ 0x00000001, 0x2100020c, 0x00000384, 0x00000000 },
>> +{ 0x00000001, 0x2108060c, 0x00000000, 0x0001000f },
>> +{ 0x0c600033, 0x00025014, 0x00002101, 0x00000000 },
>> +{ 0x00000001, 0x21203ee8, 0x00000000, 0x40800000 },
>> +{ 0x00600001, 0x21400208, 0x008d0000, 0x00000000 },
>> +{ 0x0080015b, 0x211e0000, 0x002211c8, 0x00980412 },
>> +{ 0x00800001, 0x22200608, 0x00000000, 0x00000000 },
>> +{ 0x00800001, 0x21e01ee8, 0x00000000, 0x00000000 },
>> +{ 0x00800001, 0x21600208, 0x008d03e0, 0x00000000 },
>> +{ 0x00000001, 0x21480608, 0x00000000, 0x0000c000 },
>> +{ 0x00800001, 0x21a00208, 0x008d0420, 0x00000000 },
>> +{ 0x00000040, 0x22000204, 0x06000398, 0x124c0000 },
>> +{ 0x02800031, 0x25400268, 0x00000140, 0x00000200 },
>> +{ 0x00000001, 0x25380ee8, 0x00000000, 0x0000ffff },
>> +{ 0x02000005, 0x20000200, 0x1600003c, 0x00010001 },
>> +{ 0x00800041, 0x25403ae8, 0x3a8d0540, 0x00000538 },
>> +{ 0x00800041, 0x25803ae8, 0x3a8d0580, 0x00000538 },
>> +{ 0x00010020, 0x34000004, 0x0e001400, 0x00000030 },
>> +{ 0x00000001, 0x253c1ee8, 0x00000000, 0x00400040 },
>> +{ 0x00800041, 0x25403ae8, 0x3a8d0540, 0x0000053c },
>> +{ 0x00800041, 0x25803ae8, 0x3a8d0580, 0x0000053c },
>> +{ 0x02000005, 0x20000200, 0x1600003c, 0x00020002 },
>> +{ 0x00010020, 0x34000004, 0x0e001400, 0x00000020 },
>> +{ 0x00800041, 0x25803ae8, 0x3e8d0580, 0x3c800000 },
>> +{ 0x00800041, 0x25403ae8, 0x3e8d0540, 0x3c800000 },
>> +{ 0x00800001, 0x20603a28, 0x008d0540, 0x00000000 },
>> +{ 0x00600001, 0x20a0020c, 0x008d0000, 0x00000000 },
>> +{ 0x00000040, 0x22000204, 0x06000520, 0x020a8000 },
>> +{ 0x00800001, 0x24a01248, 0x00400060, 0x00000000 },
>> +{ 0x00000001, 0x20a4020c, 0x00000388, 0x00000000 },
>> +{ 0x00000001, 0x20a0020c, 0x00000384, 0x00000000 },
>> +{ 0x00000001, 0x20a8060c, 0x00000000, 0x0001000f },
>> +{ 0x0c600033, 0x00025014, 0x000020a1, 0x00000000 },
>> +{ 0x00800001, 0x20c03a28, 0x008d0580, 0x00000000 },
>> +{ 0x00600001, 0x2100020c, 0x008d0000, 0x00000000 },
>> +{ 0x00000001, 0x2104020c, 0x00000388, 0x00000000 },
>> +{ 0x00000040, 0x23880a28, 0x1e000388, 0x00020002 },
>> +{ 0x00000040, 0x22000204, 0x06000524, 0x020a8000 },
>> +{ 0x00800001, 0x24a01248, 0x004000c0, 0x00000000 },
>> +{ 0x00000001, 0x2100020c, 0x00000384, 0x00000000 },
>> +{ 0x00000001, 0x2108060c, 0x00000000, 0x0001000f },
>> +{ 0x0c600033, 0x00025014, 0x00002101, 0x00000000 },
>> +{ 0x00000001, 0x21203ee8, 0x00000000, 0x40800000 },
>> +{ 0x00600001, 0x21400208, 0x008d0000, 0x00000000 },
>> +{ 0x0080015b, 0x211e0000, 0x002211c8, 0x00980412 },
>> +{ 0x00800001, 0x22200608, 0x00000000, 0x00000000 },
>> +{ 0x00800001, 0x21e01ee8, 0x00000000, 0x00000000 },
>> +{ 0x00800001, 0x21600208, 0x008d03e0, 0x00000000 },
>> +{ 0x00000001, 0x21480608, 0x00000000, 0x0000c000 },
>> +{ 0x00800001, 0x21a00208, 0x008d0420, 0x00000000 },
>> +{ 0x00000040, 0x22000204, 0x06000398, 0x124c0000 },
>> +{ 0x02800031, 0x25400268, 0x00000140, 0x00000200 },
>> +{ 0x00000001, 0x25380ee8, 0x00000000, 0x0000ffff },
>> +{ 0x02000005, 0x20000200, 0x1600003c, 0x00010001 },
>> +{ 0x00800041, 0x25403ae8, 0x3a8d0540, 0x00000538 },
>> +{ 0x00800041, 0x25803ae8, 0x3a8d0580, 0x00000538 },
>> +{ 0x00010020, 0x34000004, 0x0e001400, 0x00000030 },
>> +{ 0x00000001, 0x253c1ee8, 0x00000000, 0x00400040 },
>> +{ 0x00800041, 0x25403ae8, 0x3a8d0540, 0x0000053c },
>> +{ 0x00800041, 0x25803ae8, 0x3a8d0580, 0x0000053c },
>> +{ 0x02000005, 0x20000200, 0x1600003c, 0x00020002 },
>> +{ 0x00010020, 0x34000004, 0x0e001400, 0x00000020 },
>> +{ 0x00800041, 0x25803ae8, 0x3e8d0580, 0x3c800000 },
>> +{ 0x00800041, 0x25403ae8, 0x3e8d0540, 0x3c800000 },
>> +{ 0x00800001, 0x20603a28, 0x008d0540, 0x00000000 },
>> +{ 0x00600001, 0x20a0020c, 0x008d0000, 0x00000000 },
>> +{ 0x00000040, 0x22000204, 0x06000520, 0x020a8000 },
>> +{ 0x00800001, 0x24a01248, 0x00400060, 0x00000000 },
>> +{ 0x00000001, 0x20a4020c, 0x00000388, 0x00000000 },
>> +{ 0x00000001, 0x20a0020c, 0x00000384, 0x00000000 },
>> +{ 0x00000001, 0x20a8060c, 0x00000000, 0x0001000f },
>> +{ 0x0c600033, 0x00025014, 0x000020a1, 0x00000000 },
>> +{ 0x00800001, 0x20c03a28, 0x008d0580, 0x00000000 },
>> +{ 0x00600001, 0x2100020c, 0x008d0000, 0x00000000 },
>> +{ 0x00000001, 0x2104020c, 0x00000388, 0x00000000 },
>> +{ 0x00000040, 0x22000204, 0x06000524, 0x020a8000 },
>> +{ 0x00800001, 0x24a01248, 0x004000c0, 0x00000000 },
>> +{ 0x00000001, 0x2100020c, 0x00000384, 0x00000000 },
>> +{ 0x00000001, 0x2108060c, 0x00000000, 0x0001000f },
>> +{ 0x0c600033, 0x00025014, 0x00002101, 0x00000000 },
>> +{ 0x00000020, 0x34000004, 0x0e001400, 0x00000b50 },
>> +{ 0x00600001, 0x20600208, 0x008d0000, 0x00000000 },
>> +{ 0x00000040, 0x22000204, 0x06000398, 0x122c0000 },
>> +{ 0x00800001, 0x21400608, 0x00000000, 0x00000000 },
>> +{ 0x00800001, 0x21001ee8, 0x00000000, 0x00000000 },
>> +{ 0x00800001, 0x20c00208, 0x008d0420, 0x00000000 },
>> +{ 0x00800001, 0x20800208, 0x008d03e0, 0x00000000 },
>> +{ 0x00000001, 0x20680608, 0x00000000, 0x0000e000 },
>> +{ 0x02800031, 0x25400268, 0x00000060, 0x00000200 },
>> +{ 0x00800001, 0x22600608, 0x00000000, 0x00000000 },
>> +{ 0x00800001, 0x22201ee8, 0x00000000, 0x00000000 },
>> +{ 0x00800001, 0x21e00208, 0x008d0420, 0x00000000 },
>> +{ 0x00800001, 0x21a00208, 0x008d03e0, 0x00000000 },
>> +{ 0x00600001, 0x21800208, 0x008d0060, 0x00000000 },
>> +{ 0x00000040, 0x22000204, 0x0600039c, 0x122c0000 },
>> +{ 0x02800031, 0x25800268, 0x00000180, 0x00000200 },
>> +{ 0x00000001, 0x25c00ee8, 0x00000000, 0x0000ffff },
>> +{ 0x02000005, 0x20000200, 0x1600003c, 0x00010001 },
>> +{ 0x00800041, 0x25403ae8, 0x3a8d0540, 0x000005c0 },
>> +{ 0x00800041, 0x25803ae8, 0x3a8d0580, 0x000005c0 },
>> +{ 0x00010020, 0x34000004, 0x0e001400, 0x00000030 },
>> +{ 0x00000001, 0x25c41ee8, 0x00000000, 0x00400040 },
>> +{ 0x00800041, 0x25403ae8, 0x3a8d0540, 0x000005c4 },
>> +{ 0x00800041, 0x25803ae8, 0x3a8d0580, 0x000005c4 },
>> +{ 0x02000005, 0x20000200, 0x1600003c, 0x00020002 },
>> +{ 0x00010020, 0x34000004, 0x0e001400, 0x00000020 },
>> +{ 0x00800041, 0x25803ae8, 0x3e8d0580, 0x3c800000 },
>> +{ 0x00800041, 0x25403ae8, 0x3e8d0540, 0x3c800000 },
>> +{ 0x00800001, 0x20603a28, 0x008d0540, 0x00000000 },
>> +{ 0x00600001, 0x20a0020c, 0x008d0000, 0x00000000 },
>> +{ 0x00000040, 0x22000204, 0x06000520, 0x020a8000 },
>> +{ 0x00800001, 0x24a01248, 0x00400060, 0x00000000 },
>> +{ 0x00000001, 0x20a4020c, 0x00000388, 0x00000000 },
>> +{ 0x00000001, 0x20a0020c, 0x00000384, 0x00000000 },
>> +{ 0x00000001, 0x20a8060c, 0x00000000, 0x0001000f },
>> +{ 0x0c600033, 0x00025014, 0x000020a1, 0x00000000 },
>> +{ 0x00800001, 0x20c03a28, 0x008d0580, 0x00000000 },
>> +{ 0x00600001, 0x2100020c, 0x008d0000, 0x00000000 },
>> +{ 0x00000001, 0x2104020c, 0x00000388, 0x00000000 },
>> +{ 0x00000040, 0x23880a28, 0x1e000388, 0x00020002 },
>> +{ 0x00000040, 0x22000204, 0x06000524, 0x020a8000 },
>> +{ 0x00800001, 0x24a01248, 0x004000c0, 0x00000000 },
>> +{ 0x00000001, 0x2100020c, 0x00000384, 0x00000000 },
>> +{ 0x00000001, 0x2108060c, 0x00000000, 0x0001000f },
>> +{ 0x0c600033, 0x00025014, 0x00002101, 0x00000000 },
>> +{ 0x00000001, 0x21203ee8, 0x00000000, 0x40800000 },
>> +{ 0x00600001, 0x21400208, 0x008d0000, 0x00000000 },
>> +{ 0x0080015b, 0x211e0000, 0x002211c8, 0x00980412 },
>> +{ 0x00800001, 0x22200608, 0x00000000, 0x00000000 },
>> +{ 0x00800001, 0x21e01ee8, 0x00000000, 0x00000000 },
>> +{ 0x00800001, 0x21600208, 0x008d03e0, 0x00000000 },
>> +{ 0x00000001, 0x21480608, 0x00000000, 0x0000e000 },
>> +{ 0x00800001, 0x21a00208, 0x008d0420, 0x00000000 },
>> +{ 0x00000040, 0x22000204, 0x06000398, 0x122c0000 },
>> +{ 0x00600001, 0x22600208, 0x008d0140, 0x00000000 },
>> +{ 0x02800031, 0x25400268, 0x00000140, 0x00000200 },
>> +{ 0x00800001, 0x23400608, 0x00000000, 0x00000000 },
>> +{ 0x00800001, 0x23001ee8, 0x00000000, 0x00000000 },
>> +{ 0x00800001, 0x22800208, 0x008d03e0, 0x00000000 },
>> +{ 0x00800001, 0x22c00208, 0x008d01a0, 0x00000000 },
>> +{ 0x00000001, 0x25c00ee8, 0x00000000, 0x0000ffff },
>> +{ 0x00000040, 0x22000204, 0x0600039c, 0x122c0000 },
>> +{ 0x02800031, 0x25800268, 0x00000260, 0x00000200 },
>> +{ 0x02000005, 0x20000200, 0x1600003c, 0x00010001 },
>> +{ 0x00800041, 0x25403ae8, 0x3a8d0540, 0x000005c0 },
>> +{ 0x00800041, 0x25803ae8, 0x3a8d0580, 0x000005c0 },
>> +{ 0x00010020, 0x34000004, 0x0e001400, 0x00000030 },
>> +{ 0x00000001, 0x25c41ee8, 0x00000000, 0x00400040 },
>> +{ 0x00800041, 0x25403ae8, 0x3a8d0540, 0x000005c4 },
>> +{ 0x00800041, 0x25803ae8, 0x3a8d0580, 0x000005c4 },
>> +{ 0x02000005, 0x20000200, 0x1600003c, 0x00020002 },
>> +{ 0x00010020, 0x34000004, 0x0e001400, 0x00000020 },
>> +{ 0x00800041, 0x25803ae8, 0x3e8d0580, 0x3c800000 },
>> +{ 0x00800041, 0x25403ae8, 0x3e8d0540, 0x3c800000 },
>> +{ 0x00800001, 0x20603a28, 0x008d0540, 0x00000000 },
>> +{ 0x00600001, 0x20a0020c, 0x008d0000, 0x00000000 },
>> +{ 0x00000040, 0x22000204, 0x06000520, 0x020a8000 },
>> +{ 0x00800001, 0x24a01248, 0x00400060, 0x00000000 },
>> +{ 0x00000001, 0x20a4020c, 0x00000388, 0x00000000 },
>> +{ 0x00000001, 0x20a0020c, 0x00000384, 0x00000000 },
>> +{ 0x00000001, 0x20a8060c, 0x00000000, 0x0001000f },
>> +{ 0x0c600033, 0x00025014, 0x000020a1, 0x00000000 },
>> +{ 0x00800001, 0x20c03a28, 0x008d0580, 0x00000000 },
>> +{ 0x00600001, 0x2100020c, 0x008d0000, 0x00000000 },
>> +{ 0x00000001, 0x2104020c, 0x00000388, 0x00000000 },
>> +{ 0x00000040, 0x23880a28, 0x1e000388, 0x00020002 },
>> +{ 0x00000040, 0x22000204, 0x06000524, 0x020a8000 },
>> +{ 0x00800001, 0x24a01248, 0x004000c0, 0x00000000 },
>> +{ 0x00000001, 0x2100020c, 0x00000384, 0x00000000 },
>> +{ 0x00000001, 0x2108060c, 0x00000000, 0x0001000f },
>> +{ 0x0c600033, 0x00025014, 0x00002101, 0x00000000 },
>> +{ 0x00000001, 0x21203ee8, 0x00000000, 0x40800000 },
>> +{ 0x00600001, 0x21400208, 0x008d0000, 0x00000000 },
>> +{ 0x0080015b, 0x211e0000, 0x002211c8, 0x00980412 },
>> +{ 0x00800001, 0x22200608, 0x00000000, 0x00000000 },
>> +{ 0x00800001, 0x21e01ee8, 0x00000000, 0x00000000 },
>> +{ 0x00800001, 0x21600208, 0x008d03e0, 0x00000000 },
>> +{ 0x00000001, 0x21480608, 0x00000000, 0x0000e000 },
>> +{ 0x00800001, 0x21a00208, 0x008d0420, 0x00000000 },
>> +{ 0x00000040, 0x22000204, 0x06000398, 0x122c0000 },
>> +{ 0x00600001, 0x22600208, 0x008d0140, 0x00000000 },
>> +{ 0x02800031, 0x25400268, 0x00000140, 0x00000200 },
>> +{ 0x00800001, 0x23400608, 0x00000000, 0x00000000 },
>> +{ 0x00800001, 0x23001ee8, 0x00000000, 0x00000000 },
>> +{ 0x00800001, 0x22800208, 0x008d03e0, 0x00000000 },
>> +{ 0x00800001, 0x22c00208, 0x008d01a0, 0x00000000 },
>> +{ 0x00000001, 0x25c00ee8, 0x00000000, 0x0000ffff },
>> +{ 0x00000040, 0x22000204, 0x0600039c, 0x122c0000 },
>> +{ 0x02800031, 0x25800268, 0x00000260, 0x00000200 },
>> +{ 0x02000005, 0x20000200, 0x1600003c, 0x00010001 },
>> +{ 0x00800041, 0x25403ae8, 0x3a8d0540, 0x000005c0 },
>> +{ 0x00800041, 0x25803ae8, 0x3a8d0580, 0x000005c0 },
>> +{ 0x00010020, 0x34000004, 0x0e001400, 0x00000030 },
>> +{ 0x00000001, 0x25c41ee8, 0x00000000, 0x00400040 },
>> +{ 0x00800041, 0x25403ae8, 0x3a8d0540, 0x000005c4 },
>> +{ 0x00800041, 0x25803ae8, 0x3a8d0580, 0x000005c4 },
>> +{ 0x02000005, 0x20000200, 0x1600003c, 0x00020002 },
>> +{ 0x00010020, 0x34000004, 0x0e001400, 0x00000020 },
>> +{ 0x00800041, 0x25803ae8, 0x3e8d0580, 0x3c800000 },
>> +{ 0x00800041, 0x25403ae8, 0x3e8d0540, 0x3c800000 },
>> +{ 0x00800001, 0x20603a28, 0x008d0540, 0x00000000 },
>> +{ 0x00600001, 0x20a0020c, 0x008d0000, 0x00000000 },
>> +{ 0x00000040, 0x22000204, 0x06000520, 0x020a8000 },
>> +{ 0x00800001, 0x24a01248, 0x00400060, 0x00000000 },
>> +{ 0x00000001, 0x20a4020c, 0x00000388, 0x00000000 },
>> +{ 0x00000001, 0x20a0020c, 0x00000384, 0x00000000 },
>> +{ 0x00000001, 0x20a8060c, 0x00000000, 0x0001000f },
>> +{ 0x0c600033, 0x00025014, 0x000020a1, 0x00000000 },
>> +{ 0x00800001, 0x20c03a28, 0x008d0580, 0x00000000 },
>> +{ 0x00600001, 0x2100020c, 0x008d0000, 0x00000000 },
>> +{ 0x00000001, 0x2104020c, 0x00000388, 0x00000000 },
>> +{ 0x00000040, 0x23880a28, 0x1e000388, 0x00020002 },
>> +{ 0x00000040, 0x22000204, 0x06000524, 0x020a8000 },
>> +{ 0x00800001, 0x24a01248, 0x004000c0, 0x00000000 },
>> +{ 0x00000001, 0x2100020c, 0x00000384, 0x00000000 },
>> +{ 0x00000001, 0x2108060c, 0x00000000, 0x0001000f },
>> +{ 0x0c600033, 0x00025014, 0x00002101, 0x00000000 },
>> +{ 0x00000001, 0x21203ee8, 0x00000000, 0x40800000 },
>> +{ 0x00600001, 0x21400208, 0x008d0000, 0x00000000 },
>> +{ 0x0080015b, 0x211e0000, 0x002211c8, 0x00980412 },
>> +{ 0x00800001, 0x22200608, 0x00000000, 0x00000000 },
>> +{ 0x00800001, 0x21e01ee8, 0x00000000, 0x00000000 },
>> +{ 0x00800001, 0x21600208, 0x008d03e0, 0x00000000 },
>> +{ 0x00000001, 0x21480608, 0x00000000, 0x0000e000 },
>> +{ 0x00800001, 0x21a00208, 0x008d0420, 0x00000000 },
>> +{ 0x00000040, 0x22000204, 0x06000398, 0x122c0000 },
>> +{ 0x00600001, 0x22600208, 0x008d0140, 0x00000000 },
>> +{ 0x02800031, 0x25400268, 0x00000140, 0x00000200 },
>> +{ 0x00800001, 0x23400608, 0x00000000, 0x00000000 },
>> +{ 0x00800001, 0x23001ee8, 0x00000000, 0x00000000 },
>> +{ 0x00800001, 0x22800208, 0x008d03e0, 0x00000000 },
>> +{ 0x00800001, 0x22c00208, 0x008d01a0, 0x00000000 },
>> +{ 0x00000001, 0x25c00ee8, 0x00000000, 0x0000ffff },
>> +{ 0x00000040, 0x22000204, 0x0600039c, 0x122c0000 },
>> +{ 0x02800031, 0x25800268, 0x00000260, 0x00000200 },
>> +{ 0x02000005, 0x20000200, 0x1600003c, 0x00010001 },
>> +{ 0x00800041, 0x25403ae8, 0x3a8d0540, 0x000005c0 },
>> +{ 0x00800041, 0x25803ae8, 0x3a8d0580, 0x000005c0 },
>> +{ 0x00010020, 0x34000004, 0x0e001400, 0x00000030 },
>> +{ 0x00000001, 0x25c41ee8, 0x00000000, 0x00400040 },
>> +{ 0x00800041, 0x25403ae8, 0x3a8d0540, 0x000005c4 },
>> +{ 0x00800041, 0x25803ae8, 0x3a8d0580, 0x000005c4 },
>> +{ 0x02000005, 0x20000200, 0x1600003c, 0x00020002 },
>> +{ 0x00010020, 0x34000004, 0x0e001400, 0x00000020 },
>> +{ 0x00800041, 0x25803ae8, 0x3e8d0580, 0x3c800000 },
>> +{ 0x00800041, 0x25403ae8, 0x3e8d0540, 0x3c800000 },
>> +{ 0x00800001, 0x20603a28, 0x008d0540, 0x00000000 },
>> +{ 0x00600001, 0x20a0020c, 0x008d0000, 0x00000000 },
>> +{ 0x00000040, 0x22000204, 0x06000520, 0x020a8000 },
>> +{ 0x00800001, 0x24a01248, 0x00400060, 0x00000000 },
>> +{ 0x00000001, 0x20a4020c, 0x00000388, 0x00000000 },
>> +{ 0x00000001, 0x20a0020c, 0x00000384, 0x00000000 },
>> +{ 0x00000001, 0x20a8060c, 0x00000000, 0x0001000f },
>> +{ 0x0c600033, 0x00025014, 0x000020a1, 0x00000000 },
>> +{ 0x00800001, 0x20c03a28, 0x008d0580, 0x00000000 },
>> +{ 0x00600001, 0x2100020c, 0x008d0000, 0x00000000 },
>> +{ 0x00000001, 0x2104020c, 0x00000388, 0x00000000 },
>> +{ 0x00000040, 0x22000204, 0x06000524, 0x020a8000 },
>> +{ 0x00800001, 0x24a01248, 0x004000c0, 0x00000000 },
>> +{ 0x00000001, 0x2100020c, 0x00000384, 0x00000000 },
>> +{ 0x00000001, 0x2108060c, 0x00000000, 0x0001000f },
>> +{ 0x0c600033, 0x00025014, 0x00002101, 0x00000000 },
>> +{ 0x00600001, 0x2fe0020c, 0x008d0000, 0x00000000 },
>> +{ 0x07000031, 0x20000200, 0x06000fe0, 0x82000010 },
>> --
>> 1.9.0
>>
>> _______________________________________________
>> Libva mailing list
>> Libva at lists.freedesktop.org
>> https://lists.freedesktop.org/mailman/listinfo/libva
>
>
>



More information about the Libva mailing list